From 5dfc7af69a6fb7bf91d26981bcb2121105b683cc Mon Sep 17 00:00:00 2001
From: Luca Bilke <bilke@tralios.de>
Date: Mon, 29 Jan 2024 14:41:34 +0100
Subject: [PATCH 1/3] fixes

---
 bootstrap.sh                          |  4 +--
 files/etc/sudoers.d/brightness-notify |  2 ++
 files/etc/udev/rules.d/70-u2f.rules   | 48 +++++++++++++--------------
 3 files changed, 28 insertions(+), 26 deletions(-)
 create mode 100644 files/etc/sudoers.d/brightness-notify

diff --git a/bootstrap.sh b/bootstrap.sh
index 0ca2512..071222b 100755
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -4,7 +4,7 @@ DOTS_BRANCH="main"
 STOW_DIR=".local/share/stow"
 DOTS_PACKAGE="dots"
 
-USER_GROUPS="wheel,floppy,audio,video,cdrom,optical,kvm,xbuilder,plugdev" # Comma separated list
+USER_GROUPS="wheel,floppy,audio,video,cdrom,optical,kvm,xbuilder,users" # Comma separated list
 SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
 
 BOLD="$(tput bold)"
@@ -118,7 +118,7 @@ create_user() {
 
 	if id -u "$username" >/dev/null 2>&1; then
 		warn "User \"$username\" already exists, Skipping user creation!"
-		usermod -aG "$USER_GROUPS" "$username"
+		usermod -G "$USER_GROUPS" "$username"
 	else
 		info "Creating user \"$username\" with the following groups: \"$USER_GROUPS\"..."
 		useradd -m -G "$USER_GROUPS" "$username"
diff --git a/files/etc/sudoers.d/brightness-notify b/files/etc/sudoers.d/brightness-notify
new file mode 100644
index 0000000..2c68b5e
--- /dev/null
+++ b/files/etc/sudoers.d/brightness-notify
@@ -0,0 +1,2 @@
+%wheel ALL=(ALL:ALL) NOPASSWD: /usr/bin/tee /sys/class/backlight/*/brightness
+%wheel ALL=(ALL:ALL) NOPASSWD: /usr/bin/tee /sys/class/backlight/*/brightness
diff --git a/files/etc/udev/rules.d/70-u2f.rules b/files/etc/udev/rules.d/70-u2f.rules
index e97d24c..e002679 100644
--- a/files/etc/udev/rules.d/70-u2f.rules
+++ b/files/etc/udev/rules.d/70-u2f.rules
@@ -17,73 +17,73 @@
 ACTION!="add|change", GOTO="u2f_end"
 
 # Yubico YubiKey
-ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0113|0114|0115|0116|0120|0121|0200|0402|0403|0404|0406|0407|0410", TAG+="uaccess", GROUP="plugdev", MODE="0660"
+ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0113|0114|0115|0116|0120|0121|0200|0402|0403|0404|0406|0407|0410", TAG+="uaccess", GROUP="users", MODE="0660"
 
 # Happlink (formerly Plug-Up) Security KEY
-ATTRS{idVendor}=="2581", ATTRS{idProduct}=="f1d0", TAG+="uaccess", GROUP="plugdev", MODE="0660"
+ATTRS{idVendor}=="2581", ATTRS{idProduct}=="f1d0", TAG+="uaccess", GROUP="users", MODE="0660"
 
 # Neowave Keydo and Keydo AES
-ATTRS{idVendor}=="1e0d", ATTRS{idProduct}=="f1d0|f1ae", TAG+="uaccess", GROUP="plugdev", MODE="0660"
+ATTRS{idVendor}=="1e0d", ATTRS{idProduct}=="f1d0|f1ae", TAG+="uaccess", GROUP="users", MODE="0660"
 
 # HyperSecu HyperFIDO
-ATTRS{idVendor}=="096e|2ccf", ATTRS{idProduct}=="0880", TAG+="uaccess", GROUP="plugdev", MODE="0660"
+ATTRS{idVendor}=="096e|2ccf", ATTRS{idProduct}=="0880", TAG+="uaccess", GROUP="users", MODE="0660"
 
 # Feitian ePass FIDO, BioPass FIDO2
-ATTRS{idVendor}=="096e", ATTRS{idProduct}=="0850|0852|0853|0854|0856|0858|085a|085b|085d|0866|0867", TAG+="uaccess", GROUP="plugdev", MODE="0660"
+ATTRS{idVendor}=="096e", ATTRS{idProduct}=="0850|0852|0853|0854|0856|0858|085a|085b|085d|0866|0867", TAG+="uaccess", GROUP="users", MODE="0660"
 
 # JaCarta U2F
-ATTRS{idVendor}=="24dc", ATTRS{idProduct}=="0101|0501", TAG+="uaccess", GROUP="plugdev", MODE="0660"
+ATTRS{idVendor}=="24dc", ATTRS{idProduct}=="0101|0501", TAG+="uaccess", GROUP="users", MODE="0660"
 
 # U2F Zero
-ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="8acf", TAG+="uaccess", GROUP="plugdev", MODE="0660"
+ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="8acf", TAG+="uaccess", GROUP="users", MODE="0660"
 
 # VASCO SecureClick
-ATTRS{idVendor}=="1a44", ATTRS{idProduct}=="00bb", TAG+="uaccess", GROUP="plugdev", MODE="0660"
+ATTRS{idVendor}=="1a44", ATTRS{idProduct}=="00bb", TAG+="uaccess", GROUP="users", MODE="0660"
 
 # Bluink Key
-ATTRS{idVendor}=="2abe", ATTRS{idProduct}=="1002", TAG+="uaccess", GROUP="plugdev", MODE="0660"
+ATTRS{idVendor}=="2abe", ATTRS{idProduct}=="1002", TAG+="uaccess", GROUP="users", MODE="0660"
 
 # Thetis Key
-ATTRS{idVendor}=="1ea8", ATTRS{idProduct}=="f025", TAG+="uaccess", GROUP="plugdev", MODE="0660"
+ATTRS{idVendor}=="1ea8", ATTRS{idProduct}=="f025", TAG+="uaccess", GROUP="users", MODE="0660"
 
 # Nitrokey FIDO U2F, Nitrokey FIDO2, Safetech SafeKey
-ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="4287|42b1|42b3", TAG+="uaccess", GROUP="plugdev", MODE="0660"
+ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="4287|42b1|42b3", TAG+="uaccess", GROUP="users", MODE="0660"
 
 # Google Titan U2F
-ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="5026", TAG+="uaccess", GROUP="plugdev", MODE="0660"
+ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="5026", TAG+="uaccess", GROUP="users", MODE="0660"
 
 # Tomu board + chopstx U2F + SoloKeys
-ATTRS{idVendor}=="0483", ATTRS{idProduct}=="cdab|a2ca", TAG+="uaccess", GROUP="plugdev", MODE="0660"
+ATTRS{idVendor}=="0483", ATTRS{idProduct}=="cdab|a2ca", TAG+="uaccess", GROUP="users", MODE="0660"
 
 # SoloKeys
-ATTRS{idVendor}=="1209", ATTRS{idProduct}=="5070|50b0", TAG+="uaccess", GROUP="plugdev", MODE="0660"
+ATTRS{idVendor}=="1209", ATTRS{idProduct}=="5070|50b0", TAG+="uaccess", GROUP="users", MODE="0660"
 
 # Trezor
-ATTRS{idVendor}=="534c", ATTRS{idProduct}=="0001", TAG+="uaccess", GROUP="plugdev", MODE="0660"
-ATTRS{idVendor}=="1209", ATTRS{idProduct}=="53c1", TAG+="uaccess", GROUP="plugdev", MODE="0660"
+ATTRS{idVendor}=="534c", ATTRS{idProduct}=="0001", TAG+="uaccess", GROUP="users", MODE="0660"
+ATTRS{idVendor}=="1209", ATTRS{idProduct}=="53c1", TAG+="uaccess", GROUP="users", MODE="0660"
 
 # Infineon FIDO
-ATTRS{idVendor}=="058b", ATTRS{idProduct}=="022d", TAG+="uaccess", GROUP="plugdev", MODE="0660"
+ATTRS{idVendor}=="058b", ATTRS{idProduct}=="022d", TAG+="uaccess", GROUP="users", MODE="0660"
 
 # Ledger Blue, Nano S and Nano X
-ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="0000|0001|0004|0005|0015|1005|1015|4005|4015", TAG+="uaccess", GROUP="plugdev", MODE="0660"
+ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="0000|0001|0004|0005|0015|1005|1015|4005|4015", TAG+="uaccess", GROUP="users", MODE="0660"
 
 # Kensington VeriMark
-ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="0088", TAG+="uaccess", GROUP="plugdev", MODE="0660"
+ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="0088", TAG+="uaccess", GROUP="users", MODE="0660"
 
 # Longmai mFIDO
-ATTRS{idVendor}=="4c4d", ATTRS{idProduct}=="f703", TAG+="uaccess", GROUP="plugdev", MODE="0660"
+ATTRS{idVendor}=="4c4d", ATTRS{idProduct}=="f703", TAG+="uaccess", GROUP="users", MODE="0660"
 
 # eWBM FIDO2 - Goldengate 310, 320, 500, 450
-ATTRS{idVendor}=="311f", ATTRS{idProduct}=="4a1a|4c2a|5c2f|f47c", TAG+="uaccess", GROUP="plugdev", MODE="0660"
+ATTRS{idVendor}=="311f", ATTRS{idProduct}=="4a1a|4c2a|5c2f|f47c", TAG+="uaccess", GROUP="users", MODE="0660"
 
 # OnlyKey (FIDO2 / U2F)
-ATTRS{idVendor}=="1d50", ATTRS{idProduct}=="60fc", TAG+="uaccess", GROUP="plugdev", MODE="0660"
+ATTRS{idVendor}=="1d50", ATTRS{idProduct}=="60fc", TAG+="uaccess", GROUP="users", MODE="0660"
 
 # GoTrust Idem Key
-ATTRS{idVendor}=="1fc9", ATTRS{idProduct}=="f143", TAG+="uaccess", GROUP="plugdev", MODE="0660"
+ATTRS{idVendor}=="1fc9", ATTRS{idProduct}=="f143", TAG+="uaccess", GROUP="users", MODE="0660"
 
 # ellipticSecure MIRKey
-ATTRS{idVendor}=="0483", ATTRS{idProduct}=="a2ac", TAG+="uaccess", GROUP="plugdev", MODE="0660"
+ATTRS{idVendor}=="0483", ATTRS{idProduct}=="a2ac", TAG+="uaccess", GROUP="users", MODE="0660"
 
 LABEL="u2f_end"

From d53acbaf5e0b491637acc61d0ddbad3207a8c133 Mon Sep 17 00:00:00 2001
From: Luca Bilke <luca@bil.ke>
Date: Mon, 29 Jan 2024 16:59:20 +0100
Subject: [PATCH 2/3] lowdown -> mdcat

---
 packages.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packages.txt b/packages.txt
index 066d519..b84c322 100644
--- a/packages.txt
+++ b/packages.txt
@@ -79,7 +79,7 @@ cups
 cups-filters
 system-config-printer
 odt2txt
-lowdown
+mdcat
 mpv
 zk
 ripgrep

From d36fa137c35a7aee49527c966cad080c7f4f8194 Mon Sep 17 00:00:00 2001
From: Luca Bilke <bilke@tralios.de>
Date: Wed, 31 Jan 2024 08:13:36 +0100
Subject: [PATCH 3/3] use glow

---
 bootstrap.sh | 2 +-
 packages.txt | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/bootstrap.sh b/bootstrap.sh
index 0ca2512..4de6a6e 100755
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -4,7 +4,7 @@ DOTS_BRANCH="main"
 STOW_DIR=".local/share/stow"
 DOTS_PACKAGE="dots"
 
-USER_GROUPS="wheel,floppy,audio,video,cdrom,optical,kvm,xbuilder,plugdev" # Comma separated list
+USER_GROUPS="wheel,floppy,audio,video,cdrom,optical,kvm,xbuilder,users" # Comma separated list
 SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
 
 BOLD="$(tput bold)"
diff --git a/packages.txt b/packages.txt
index 066d519..f6f3ec5 100644
--- a/packages.txt
+++ b/packages.txt
@@ -79,7 +79,7 @@ cups
 cups-filters
 system-config-printer
 odt2txt
-lowdown
+glow
 mpv
 zk
 ripgrep