forked from pub-solar/os
Compare commits
No commits in common. "e1052d75cdec22576870f181158f97a334f6f623" and "298b4806809974fb9ed102f22241b20404cd99c4" have entirely different histories.
e1052d75cd
...
298b480680
43
flake.lock
43
flake.lock
|
@ -166,27 +166,27 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1713391096,
|
"lastModified": 1712386041,
|
||||||
"narHash": "sha256-5xkzsy+ILgQlmvDDipL5xqAehnjWBenAQXV4/NLg2dE=",
|
"narHash": "sha256-dA82pOMQNnCJMAsPG7AXG35VmCSMZsJHTFlTHizpKWQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "f46814ec7cbef9c2aef18ca1cbe89f2bb1e8c394",
|
"rev": "d6bb9f934f2870e5cbc5b94c79e9db22246141ff",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "master",
|
"ref": "release-23.11",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"master": {
|
"master": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1713276496,
|
"lastModified": 1713124637,
|
||||||
"narHash": "sha256-qhImB8hRIRh2eMLqBSlUPKb870s4N8WJNqGfJfhSfMg=",
|
"narHash": "sha256-RU0SoHGn2aYXYcnjCBg4/1S+zMZx9tA1dPUE+P2IH9g=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "e2ce6703871b62a77f5939d5967833b43c928ed0",
|
"rev": "ec2cb66cbeac92550b324009773b83401a9e2477",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -265,16 +265,16 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1713248628,
|
"lastModified": 1713013257,
|
||||||
"narHash": "sha256-NLznXB5AOnniUtZsyy/aPWOk8ussTuePp2acb9U+ISA=",
|
"narHash": "sha256-ZEfGB3YCBVggvk0BQIqVY7J8XF/9jxQ68fCca6nib+8=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "5672bc9dbf9d88246ddab5ac454e82318d094bb8",
|
"rev": "90055d5e616bd943795d38808c94dbf0dd35abe8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"ref": "nixos-unstable",
|
"ref": "nixos-23.11",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -329,6 +329,7 @@
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"triton-vmtools": "triton-vmtools",
|
"triton-vmtools": "triton-vmtools",
|
||||||
"tritonshell": "tritonshell",
|
"tritonshell": "tritonshell",
|
||||||
|
"unstable": "unstable",
|
||||||
"wayland-pipewire-idle-inhibit": "wayland-pipewire-idle-inhibit"
|
"wayland-pipewire-idle-inhibit": "wayland-pipewire-idle-inhibit"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -399,7 +400,7 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"unstable"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -424,7 +425,7 @@
|
||||||
"devshell": "devshell",
|
"devshell": "devshell",
|
||||||
"flake-utils": "flake-utils_2",
|
"flake-utils": "flake-utils_2",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"unstable"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -442,6 +443,22 @@
|
||||||
"url": "https://git.pub.solar/teutat3s/tritonshell"
|
"url": "https://git.pub.solar/teutat3s/tritonshell"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"unstable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1712963716,
|
||||||
|
"narHash": "sha256-WKm9CvgCldeIVvRz87iOMi8CFVB1apJlkUT4GGvA0iM=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "cfd6b5fc90b15709b780a5a1619695a88505a176",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"utils": {
|
"utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_2"
|
"systems": "systems_2"
|
||||||
|
|
10
flake.nix
10
flake.nix
|
@ -6,8 +6,8 @@
|
||||||
inputs = {
|
inputs = {
|
||||||
# Track channels with commits tested and built by hydra
|
# Track channels with commits tested and built by hydra
|
||||||
nixos-22-05.url = "github:nixos/nixpkgs/nixos-22.05";
|
nixos-22-05.url = "github:nixos/nixpkgs/nixos-22.05";
|
||||||
#nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11";
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
master.url = "github:nixos/nixpkgs/master";
|
master.url = "github:nixos/nixpkgs/master";
|
||||||
|
|
||||||
fork.url = "github:teutat3s/nixpkgs/fix-element-desktop-screen-sharing-23.11";
|
fork.url = "github:teutat3s/nixpkgs/fix-element-desktop-screen-sharing-23.11";
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
nix-darwin.url = "github:lnl7/nix-darwin/master";
|
nix-darwin.url = "github:lnl7/nix-darwin/master";
|
||||||
nix-darwin.inputs.nixpkgs.follows = "nixpkgs";
|
nix-darwin.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
home-manager.url = "github:nix-community/home-manager/master";
|
home-manager.url = "github:nix-community/home-manager/release-23.11";
|
||||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||||
|
@ -37,10 +37,10 @@
|
||||||
|
|
||||||
# PubSolarOS additions
|
# PubSolarOS additions
|
||||||
triton-vmtools.url = "git+https://git.pub.solar/pub-solar/infra-vintage?ref=main&dir=vmtools";
|
triton-vmtools.url = "git+https://git.pub.solar/pub-solar/infra-vintage?ref=main&dir=vmtools";
|
||||||
triton-vmtools.inputs.nixpkgs.follows = "nixpkgs";
|
triton-vmtools.inputs.nixpkgs.follows = "unstable";
|
||||||
|
|
||||||
tritonshell.url = "git+https://git.pub.solar/teutat3s/tritonshell?ref=main";
|
tritonshell.url = "git+https://git.pub.solar/teutat3s/tritonshell?ref=main";
|
||||||
tritonshell.inputs.nixpkgs.follows = "nixpkgs";
|
tritonshell.inputs.nixpkgs.follows = "unstable";
|
||||||
|
|
||||||
wayland-pipewire-idle-inhibit.url = "github:rafaelrc7/wayland-pipewire-idle-inhibit";
|
wayland-pipewire-idle-inhibit.url = "github:rafaelrc7/wayland-pipewire-idle-inhibit";
|
||||||
wayland-pipewire-idle-inhibit.inputs.nixpkgs.follows = "nixpkgs";
|
wayland-pipewire-idle-inhibit.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
|
@ -133,7 +133,8 @@
|
||||||
publicKey = "UhPW8jebAPaMYqjJfSFO9QAMhk0E+dq4i6lB4Wjg91Q=";
|
publicKey = "UhPW8jebAPaMYqjJfSFO9QAMhk0E+dq4i6lB4Wjg91Q=";
|
||||||
presharedKeyFile = "/etc/wireguard/wg5.presharedkey";
|
presharedKeyFile = "/etc/wireguard/wg5.presharedkey";
|
||||||
allowedIPs = [ "192.168.13.0/24" ];
|
allowedIPs = [ "192.168.13.0/24" ];
|
||||||
endpoint = "ktjh20jr89gkcqwr.myfritz.net:59538";
|
#endpoint = "ktjh20jr89gkcqwr.myfritz.net:59538";
|
||||||
|
endpoint = "[2001:4dd0:af08:5725:9ec7:a6ff:feff:e14d]:51820";
|
||||||
persistentKeepalive = 25;
|
persistentKeepalive = 25;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
|
@ -13,6 +13,33 @@ with lib; let
|
||||||
backupDir = "${xdg.dataHome}/PaperlessBackup";
|
backupDir = "${xdg.dataHome}/PaperlessBackup";
|
||||||
consumptionDir = "/home/${psCfg.user.name}/.local/share/scandir";
|
consumptionDir = "/home/${psCfg.user.name}/.local/share/scandir";
|
||||||
|
|
||||||
|
scan2paperless = with pkgs; writeShellScriptBin "scan2paperless" ''
|
||||||
|
DEVICE=$1
|
||||||
|
NUM_PAGES=$2
|
||||||
|
NAME=$3
|
||||||
|
|
||||||
|
if [ -z "''${DEVICE}" ] || [ -z "''${NUM_PAGES}" ] || [ -z "''${NAME}" ]; then
|
||||||
|
echo "Usage: scan2paperless <device> <num_pages> <name>"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
tmpDir=$(${coreutils}/bin/mktemp -d)
|
||||||
|
files=()
|
||||||
|
|
||||||
|
for i in $(seq 1 $NUM_PAGES); do
|
||||||
|
fileName=$(${openssl}/bin/openssl rand -hex 12)
|
||||||
|
file="$tmpDir/$fileName.jpg"
|
||||||
|
echo "Start scanning page $i/$NUM_PAGES";
|
||||||
|
${sane-backends}/bin/scanimage -d $DEVICE --format=jpeg --resolution 300 --progress -o $file
|
||||||
|
echo "Finished scanning page $i";
|
||||||
|
files+=($file)
|
||||||
|
done
|
||||||
|
|
||||||
|
pdf="${consumptionDir}/$NAME.pdf"
|
||||||
|
${python3Packages.img2pdf}/bin/img2pdf --output $pdf ''${files[@]}
|
||||||
|
|
||||||
|
echo "PDF written to $pdf"
|
||||||
|
'';
|
||||||
in {
|
in {
|
||||||
services.paperless = {
|
services.paperless = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -33,6 +60,11 @@ in {
|
||||||
#brscan5.enable = true;
|
#brscan5.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
users.users."${psCfg.user.name}".packages = with pkgs; [
|
||||||
|
scan2paperless
|
||||||
|
python3Packages.img2pdf
|
||||||
|
];
|
||||||
|
|
||||||
home-manager.users."${psCfg.user.name}" = {
|
home-manager.users."${psCfg.user.name}" = {
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
SCANNER_OUTPUT_DIR = consumptionDir;
|
SCANNER_OUTPUT_DIR = consumptionDir;
|
||||||
|
|
|
@ -22,15 +22,14 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
services.blueman.enable = true;
|
services.blueman.enable = true;
|
||||||
services.pipewire.wireplumber.configPackages = [
|
environment.etc."wireplumber/bluetooth.lua.d/51-bluez-config.lua" = {
|
||||||
# https://pipewire.pages.freedesktop.org/wireplumber/daemon/configuration/bluetooth.html
|
text = ''
|
||||||
(pkgs.writeTextDir "share/wireplumber/wireplumber.conf.d/10-bluez.conf" ''
|
bluez_monitor.properties = {
|
||||||
monitor.bluez.properties = {
|
["bluez5.enable-sbc-xq"] = true,
|
||||||
bluez5.enable-hw-volume = true
|
["bluez5.enable-msbc"] = true,
|
||||||
bluez5.enable-msbc = true
|
["bluez5.enable-hw-volume"] = true,
|
||||||
bluez5.enable-sbc-xq = true
|
["bluez5.headset-roles"] = "[ hsp_hs hsp_ag hfp_hf hfp_ag ]"
|
||||||
bluez5.headset-roles = [ hsp_hs hsp_ag hfp_hf hfp_ag ]
|
|
||||||
}
|
}
|
||||||
'')
|
'';
|
||||||
];
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@ in {
|
||||||
|
|
||||||
services.gpg-agent = {
|
services.gpg-agent = {
|
||||||
enable = true;
|
enable = true;
|
||||||
pinentryPackage = lib.mkDefault pkgs.pinentry-gnome3;
|
pinentryFlavor = lib.mkDefault "gnome3";
|
||||||
verbose = true;
|
verbose = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,9 @@
|
||||||
multiplier = 3;
|
multiplier = 3;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# When true, bold text is drawn using the bright variant of colors.
|
||||||
|
draw_bold_text_with_bright_colors = true;
|
||||||
|
|
||||||
font = {
|
font = {
|
||||||
# The normal (roman) font face to use.
|
# The normal (roman) font face to use.
|
||||||
normal = {
|
normal = {
|
||||||
|
@ -65,7 +68,7 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
keyboard.bindings = [
|
key_bindings = [
|
||||||
{
|
{
|
||||||
key = "V";
|
key = "V";
|
||||||
mods = "Control|Super";
|
mods = "Control|Super";
|
||||||
|
@ -169,9 +172,6 @@
|
||||||
# Base16 Burn 256 - alacritty color config
|
# Base16 Burn 256 - alacritty color config
|
||||||
# Benjamin Bädorf
|
# Benjamin Bädorf
|
||||||
colors = {
|
colors = {
|
||||||
# When true, bold text is drawn using the bright variant of colors.
|
|
||||||
draw_bold_text_with_bright_colors = true;
|
|
||||||
|
|
||||||
# Default colors
|
# Default colors
|
||||||
primary = {
|
primary = {
|
||||||
background = "0x1a181a";
|
background = "0x1a181a";
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
psCfg = config.pub-solar;
|
psCfg = config.pub-solar;
|
||||||
tomlFormat = pkgs.formats.toml {};
|
yamlFormat = pkgs.formats.yaml {};
|
||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
WLR_RENDERER =
|
WLR_RENDERER =
|
||||||
if psCfg.graphical.wayland.software-renderer.enable
|
if psCfg.graphical.wayland.software-renderer.enable
|
||||||
|
@ -101,7 +101,7 @@ in {
|
||||||
|
|
||||||
home-manager.users."${psCfg.user.name}" = {
|
home-manager.users."${psCfg.user.name}" = {
|
||||||
home.file."xinitrc".source = ./.xinitrc;
|
home.file."xinitrc".source = ./.xinitrc;
|
||||||
xdg.configFile."alacritty/alacritty.toml".source = tomlFormat.generate "alacritty.toml" (import ./alacritty.nix);
|
xdg.configFile."alacritty/alacritty.yml".source = yamlFormat.generate "alacritty.yml" (import ./alacritty.nix);
|
||||||
xdg.configFile."xmodmap".source = ./.config/xmodmap;
|
xdg.configFile."xmodmap".source = ./.config/xmodmap;
|
||||||
xdg.configFile."user-dirs.dirs".source = ./.config/user-dirs.dirs;
|
xdg.configFile."user-dirs.dirs".source = ./.config/user-dirs.dirs;
|
||||||
xdg.configFile."user-dirs.locale".source = ./.config/user-dirs.locale;
|
xdg.configFile."user-dirs.locale".source = ./.config/user-dirs.locale;
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
"brscan5"
|
"brscan5"
|
||||||
"brscan5-etc-files"
|
"brscan5-etc-files"
|
||||||
"facetimehd-firmware"
|
"facetimehd-firmware"
|
||||||
|
"nomad"
|
||||||
"slack"
|
"slack"
|
||||||
"veracrypt"
|
"veracrypt"
|
||||||
"zoom"
|
"zoom"
|
||||||
|
@ -29,10 +30,17 @@
|
||||||
|
|
||||||
nix = {
|
nix = {
|
||||||
# Use default version alias for nix package
|
# Use default version alias for nix package
|
||||||
package = pkgs.nixVersions.nix_2_21;
|
package = pkgs.nixVersions.nix_2_20;
|
||||||
gc.automatic = true;
|
gc.automatic = true;
|
||||||
optimise.automatic = true;
|
optimise.automatic = true;
|
||||||
|
|
||||||
|
registry = {
|
||||||
|
nixpkgs.flake = flake.inputs.nixpkgs;
|
||||||
|
unstable.flake = flake.inputs.unstable;
|
||||||
|
master.flake = flake.inputs.master;
|
||||||
|
system.flake = flake.self;
|
||||||
|
};
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
# Improve nix store disk usage
|
# Improve nix store disk usage
|
||||||
auto-optimise-store = true;
|
auto-optimise-store = true;
|
||||||
|
|
|
@ -10,7 +10,7 @@ with lib; let
|
||||||
in {
|
in {
|
||||||
services.avahi.enable = true;
|
services.avahi.enable = true;
|
||||||
services.avahi.ipv6 = true;
|
services.avahi.ipv6 = true;
|
||||||
services.avahi.nssmdns4 = true;
|
services.avahi.nssmdns = true;
|
||||||
services.avahi.publish.enable = true;
|
services.avahi.publish.enable = true;
|
||||||
services.avahi.publish.userServices = true;
|
services.avahi.publish.userServices = true;
|
||||||
|
|
||||||
|
|
|
@ -88,6 +88,9 @@ in {
|
||||||
|
|
||||||
# Specify \q{ferdinandyb/mode-indicator} in the mode-indicator prompt
|
# Specify \q{ferdinandyb/mode-indicator} in the mode-indicator prompt
|
||||||
bleopt prompt_vi_mode_indicator='\q{ferdinandyb/mode-indicator}'
|
bleopt prompt_vi_mode_indicator='\q{ferdinandyb/mode-indicator}'
|
||||||
|
|
||||||
|
# In case you would like to show "-- NORMAL --" instead of "~"
|
||||||
|
bleopt keymap_vi_mode_string_nmap=$'\e[1m-- NORMAL --\e[m'
|
||||||
}
|
}
|
||||||
blehook/eval-after-load keymap_vi ferdinandyb/set-up-mode-indicator
|
blehook/eval-after-load keymap_vi ferdinandyb/set-up-mode-indicator
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,14 @@
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
direnv = unstable.direnv;
|
||||||
element-desktop = fork.element-desktop;
|
element-desktop = fork.element-desktop;
|
||||||
|
nixVersions = prev.nixVersions // {inherit (unstable.nixVersions) nix_2_20;};
|
||||||
|
nix-direnv = unstable.nix-direnv;
|
||||||
|
_1password = unstable._1password;
|
||||||
|
_1password-cli = unstable._1password-cli;
|
||||||
|
wayland-pipewire-idle-inhibit = unstable.wayland-pipewire-idle-inhibit;
|
||||||
|
wlvncc = unstable.wlvncc;
|
||||||
#vimPlugins = prev.vimPlugins // {inherit (unstable.vimPlugins) nvim-lspconfig;};
|
#vimPlugins = prev.vimPlugins // {inherit (unstable.vimPlugins) nvim-lspconfig;};
|
||||||
})
|
})
|
||||||
(import ../pkgs)
|
(import ../pkgs)
|
||||||
|
|
|
@ -13,7 +13,6 @@ with prev; {
|
||||||
psos = writeShellScriptBin "psos" (import ./psos.nix final);
|
psos = writeShellScriptBin "psos" (import ./psos.nix final);
|
||||||
psos-docs = import ./psos-docs.nix final;
|
psos-docs = import ./psos-docs.nix final;
|
||||||
s = writeShellScriptBin "s" (import ./s.nix final);
|
s = writeShellScriptBin "s" (import ./s.nix final);
|
||||||
scan2paperless = writeShellScriptBin "scan2paperless" (import ./scan2paperless.nix final);
|
|
||||||
sway-launcher = writeScriptBin "sway-launcher" (import ./sway-launcher.nix final);
|
sway-launcher = writeScriptBin "sway-launcher" (import ./sway-launcher.nix final);
|
||||||
swaylock-bg = writeShellScriptBin "swaylock-bg" (import ./swaylock-bg.nix final);
|
swaylock-bg = writeShellScriptBin "swaylock-bg" (import ./swaylock-bg.nix final);
|
||||||
toggle-kbd-layout = writeShellScriptBin "toggle-kbd-layout" (import ./toggle-kbd-layout.nix final);
|
toggle-kbd-layout = writeShellScriptBin "toggle-kbd-layout" (import ./toggle-kbd-layout.nix final);
|
||||||
|
|
|
@ -1,59 +0,0 @@
|
||||||
self:
|
|
||||||
with self; ''
|
|
||||||
echo "$@"
|
|
||||||
DUPLEX=,Duplex
|
|
||||||
removeempty="true"
|
|
||||||
|
|
||||||
[[ $1 == "-s" ]] && {
|
|
||||||
DUPLEX=""
|
|
||||||
removeempty=false
|
|
||||||
shift
|
|
||||||
}
|
|
||||||
|
|
||||||
[[ $1 == "-a" ]] && {
|
|
||||||
DUPLEX=,Duplex
|
|
||||||
removeempty="true"
|
|
||||||
shift
|
|
||||||
}
|
|
||||||
|
|
||||||
[[ $1 == "-d" ]] && {
|
|
||||||
DUPLEX=,Duplex
|
|
||||||
shift
|
|
||||||
}
|
|
||||||
|
|
||||||
cleanup() {
|
|
||||||
echo finalizing pdf file.
|
|
||||||
${img2pdf}/bin/img2pdf --pdfa --output /tmp/scan2paperless_$$.pdf /tmp/scan2paperless_$$_*.png && \
|
|
||||||
rm -f /tmp/scan2paperless_$$_*.png
|
|
||||||
|
|
||||||
scp /tmp/scan2paperless_$$.pdf pub-solar@paperless.faenix.eu:~/.local/share/scandir \
|
|
||||||
&& rm -f /tmp/scan2paperless_$$* \
|
|
||||||
|| echo upload failed, retaining file /tmp/scan2paperless_$$.pdf >&2
|
|
||||||
}
|
|
||||||
|
|
||||||
trap 'cleanup; exit 1' EXIT
|
|
||||||
|
|
||||||
${sane-backends}/bin/scanimage --device 'brother5:bus1;dev5' --format=png --resolution 300 --batch=/tmp/scan2paperless_$$_%d.png --AutoDeskew=yes --batch-start=10 --source="Automatic Document Feeder(left aligned''${DUPLEX})" -x 210 -y 297
|
|
||||||
|
|
||||||
if $removeempty
|
|
||||||
then
|
|
||||||
threshold=99
|
|
||||||
images=( )
|
|
||||||
values=( )
|
|
||||||
for f in /tmp/scan2paperless_$$_*.png
|
|
||||||
do
|
|
||||||
images[''${#images[@]}]=$f
|
|
||||||
values[''${#values[@]}]=$(${imagemagick}/bin/convert "$f" -fuzz 02% -fill black +opaque white -fill white -opaque white -format "%[fx:100*mean]" info:)
|
|
||||||
done
|
|
||||||
|
|
||||||
for ((i=0;i<''${#images[@]};i++))
|
|
||||||
do
|
|
||||||
if [[ $(echo "''${values[i]} > $threshold" | ${bc}/bin/bc -l) == "1" ]]
|
|
||||||
then
|
|
||||||
# bc will output 1 if the comparison is true, 0 otherwise
|
|
||||||
echo image "''${images[i]}" was found to be mostly white, removing.
|
|
||||||
rm "''${images[i]}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
''
|
|
|
@ -1,4 +1,4 @@
|
||||||
{config, pkgs, ...}: {
|
{config, ...}: {
|
||||||
pub-solar = {
|
pub-solar = {
|
||||||
# These are your personal settings
|
# These are your personal settings
|
||||||
# The only required settings are `name` and `password`,
|
# The only required settings are `name` and `password`,
|
||||||
|
@ -15,5 +15,5 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
home-manager.users.pub-solar.services.gpg-agent.pinentryPackage = pkgs.pinentry-curses;
|
home-manager.users.pub-solar.services.gpg-agent.pinentryFlavor = "curses";
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,16 +66,20 @@ in {
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
AusweisApp2
|
AusweisApp2
|
||||||
|
consul
|
||||||
drone-docker-runner
|
drone-docker-runner
|
||||||
gpu-switch
|
gpu-switch
|
||||||
ifmetric
|
ifmetric
|
||||||
ipmitool
|
ipmitool
|
||||||
|
#keybase-gui
|
||||||
|
nomad
|
||||||
thunderbird
|
thunderbird
|
||||||
|
vault
|
||||||
veracrypt
|
veracrypt
|
||||||
|
waypoint
|
||||||
age-plugin-yubikey
|
age-plugin-yubikey
|
||||||
#cockroach-bin
|
#cockroach-bin
|
||||||
obs-studio
|
obs-studio
|
||||||
scan2paperless
|
|
||||||
wlvncc
|
wlvncc
|
||||||
];
|
];
|
||||||
programs.bash.initExtra = ''
|
programs.bash.initExtra = ''
|
||||||
|
@ -123,7 +127,11 @@ in {
|
||||||
}
|
}
|
||||||
|
|
||||||
complete -F _tailscale tailscale
|
complete -F _tailscale tailscale
|
||||||
|
complete -C ${pkgs.consul}/bin/consul consul
|
||||||
|
complete -C ${pkgs.nomad}/bin/nomad nomad
|
||||||
|
complete -C ${pkgs.vault}/bin/vault vault
|
||||||
complete -C ${flake.inputs.nixos-22-05.legacyPackages.${pkgs.system}.terraform}/bin/terraform terraform
|
complete -C ${flake.inputs.nixos-22-05.legacyPackages.${pkgs.system}.terraform}/bin/terraform terraform
|
||||||
|
complete -C ${pkgs.waypoint}/bin/waypoint waypoint
|
||||||
complete -C ${pkgs.opentofu}/bin/tofu tofu
|
complete -C ${pkgs.opentofu}/bin/tofu tofu
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue