update: opencode ghostty zen-browser
This commit is contained in:
parent
de370bf475
commit
62d2b4b0da
2 changed files with 119 additions and 24 deletions
|
|
@ -1,5 +1,95 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
displayBrightness = pkgs.writeShellApplication {
|
||||||
|
name = "display-brightness";
|
||||||
|
runtimeInputs = with pkgs; [
|
||||||
|
brightnessctl
|
||||||
|
ddcutil
|
||||||
|
gawk
|
||||||
|
];
|
||||||
|
text = ''
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
direction="''${1:-}"
|
||||||
|
step="''${DISPLAY_BRIGHTNESS_STEP:-1}"
|
||||||
|
minimum="''${DISPLAY_BRIGHTNESS_MIN:-1}"
|
||||||
|
|
||||||
|
is_uint() {
|
||||||
|
case "$1" in
|
||||||
|
"" | *[!0-9]*)
|
||||||
|
return 1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
if ! is_uint "$step" || [ "$step" -lt 1 ]; then
|
||||||
|
step=1
|
||||||
|
fi
|
||||||
|
if ! is_uint "$minimum"; then
|
||||||
|
minimum=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$direction" in
|
||||||
|
down)
|
||||||
|
backlight_delta="''${step}%-"
|
||||||
|
;;
|
||||||
|
up)
|
||||||
|
backlight_delta="''${step}%+"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
printf 'usage: display-brightness up|down\n' >&2
|
||||||
|
exit 64
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
brightnessctl --class=backlight --min-value set "$backlight_delta" >/dev/null 2>&1 || true
|
||||||
|
|
||||||
|
ddc_displays="$(
|
||||||
|
ddcutil --brief detect 2>/dev/null \
|
||||||
|
| awk '/^Display[[:space:]]+[0-9]+/ { print $2 }' \
|
||||||
|
|| true
|
||||||
|
)"
|
||||||
|
|
||||||
|
for display in $ddc_displays; do
|
||||||
|
parsed="$(
|
||||||
|
ddcutil --brief --display "$display" getvcp 10 2>/dev/null \
|
||||||
|
| awk '$1 == "VCP" && $2 == "10" && NF >= 5 { print $(NF - 1), $NF; exit }' \
|
||||||
|
|| true
|
||||||
|
)"
|
||||||
|
if [ -z "$parsed" ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
read -r current maximum _ <<EOF
|
||||||
|
$parsed
|
||||||
|
EOF
|
||||||
|
|
||||||
|
if ! is_uint "$current" || ! is_uint "$maximum" || [ "$maximum" -lt "$minimum" ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$direction" = "down" ]; then
|
||||||
|
target=$((current - step))
|
||||||
|
if [ "$target" -lt "$minimum" ]; then
|
||||||
|
target="$minimum"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
target=$((current + step))
|
||||||
|
if [ "$target" -gt "$maximum" ]; then
|
||||||
|
target="$maximum"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
ddcutil --display "$display" --sleep-multiplier 0.1 --maxtries 1,1,1 --noverify setvcp 10 "$target" >/dev/null 2>&1 || true
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
boot.loader.systemd-boot.configurationLimit = 3;
|
boot.loader.systemd-boot.configurationLimit = 3;
|
||||||
|
|
@ -109,6 +199,7 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
enable32Bit = true;
|
enable32Bit = true;
|
||||||
};
|
};
|
||||||
|
hardware.i2c.enable = true;
|
||||||
|
|
||||||
# Enable keyd for key remapping
|
# Enable keyd for key remapping
|
||||||
services.keyd = {
|
services.keyd = {
|
||||||
|
|
@ -131,8 +222,8 @@
|
||||||
brightnessdown = "noop"; # ← Key 7: disabled
|
brightnessdown = "noop"; # ← Key 7: disabled
|
||||||
brightnessup = "noop"; # ← Key 8: disabled
|
brightnessup = "noop"; # ← Key 8: disabled
|
||||||
# Key 9: display toggle (leftmeta+p) - disabled below
|
# Key 9: display toggle (leftmeta+p) - disabled below
|
||||||
rfkill = "brightnessdown"; # ← Key 10: brightness down
|
rfkill = "command(${displayBrightness}/bin/display-brightness down)"; # ← Key 10: brightness down
|
||||||
sysrq = "brightnessup"; # ← Key 11: brightness up
|
sysrq = "command(${displayBrightness}/bin/display-brightness up)"; # ← Key 11: brightness up
|
||||||
media = "sysrq"; # ← Key 12: screenshot
|
media = "sysrq"; # ← Key 12: screenshot
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -143,7 +234,7 @@
|
||||||
main = {
|
main = {
|
||||||
brightnessdown = "noop"; # ← Key 7: disabled
|
brightnessdown = "noop"; # ← Key 7: disabled
|
||||||
brightnessup = "noop"; # ← Key 8: disabled
|
brightnessup = "noop"; # ← Key 8: disabled
|
||||||
rfkill = "brightnessdown"; # ← Key 10: brightness down
|
rfkill = "command(${displayBrightness}/bin/display-brightness down)"; # ← Key 10: brightness down
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -327,6 +418,7 @@
|
||||||
"wheel"
|
"wheel"
|
||||||
"video"
|
"video"
|
||||||
"render"
|
"render"
|
||||||
|
"i2c"
|
||||||
"docker"
|
"docker"
|
||||||
"camera"
|
"camera"
|
||||||
"scanner"
|
"scanner"
|
||||||
|
|
@ -408,8 +500,10 @@
|
||||||
"net.ipv4.tcp_congestion_control" = "bbr";
|
"net.ipv4.tcp_congestion_control" = "bbr";
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages =
|
||||||
|
(with pkgs; [
|
||||||
bubblewrap
|
bubblewrap
|
||||||
|
ddcutil
|
||||||
docker
|
docker
|
||||||
docker-compose
|
docker-compose
|
||||||
exfatprogs
|
exfatprogs
|
||||||
|
|
@ -419,7 +513,8 @@
|
||||||
sane-backends
|
sane-backends
|
||||||
simple-scan
|
simple-scan
|
||||||
wget
|
wget
|
||||||
];
|
])
|
||||||
|
++ [ displayBrightness ];
|
||||||
|
|
||||||
programs.steam.enable = true;
|
programs.steam.enable = true;
|
||||||
programs.nix-index-database.comma.enable = true;
|
programs.nix-index-database.comma.enable = true;
|
||||||
|
|
|
||||||
18
flake.lock
generated
18
flake.lock
generated
|
|
@ -107,11 +107,11 @@
|
||||||
"zon2nix": "zon2nix"
|
"zon2nix": "zon2nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1779573072,
|
"lastModified": 1779812402,
|
||||||
"narHash": "sha256-DgdXilZcUCEQdOcgt2+Aj77+up2OkdBFg5Q6En5PUB0=",
|
"narHash": "sha256-gozJEyJHbaAyrbzODKeWJhxpUrGK6m4DIPDogfjz2BU=",
|
||||||
"owner": "ghostty-org",
|
"owner": "ghostty-org",
|
||||||
"repo": "ghostty",
|
"repo": "ghostty",
|
||||||
"rev": "d5d8cef4d3834cc8999eb9344066b0960b033f2d",
|
"rev": "2e5ad917eb4e325a3dbb161c3f41208a8cd35e44",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -362,11 +362,11 @@
|
||||||
"nixpkgs": "nixpkgs_4"
|
"nixpkgs": "nixpkgs_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1779580088,
|
"lastModified": 1779821945,
|
||||||
"narHash": "sha256-oYEtJtyKegw8CO+OistcabbKDmhrRDrVmSbLcXT9mkw=",
|
"narHash": "sha256-6NHOS9mQiUMEDqgnuQXhqgckQ9ZR03PPW3b6P7XdUYQ=",
|
||||||
"owner": "anomalyco",
|
"owner": "anomalyco",
|
||||||
"repo": "opencode",
|
"repo": "opencode",
|
||||||
"rev": "0b3a1c2fdf8032d7168d1a5103c460c84dfee882",
|
"rev": "fdfd0afed7fddbe852ea53b5a75ce1ea8ad725a2",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -470,11 +470,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1779455631,
|
"lastModified": 1779781734,
|
||||||
"narHash": "sha256-svU6Ro4xiMxMA1KJGwQ/nfKwz3yXE/SONCw2Z1qTXHA=",
|
"narHash": "sha256-c2FZ7S/rhnCHcwPkc82GOxlCw88HKYBaJkLtMgi72p8=",
|
||||||
"owner": "0xc000022070",
|
"owner": "0xc000022070",
|
||||||
"repo": "zen-browser-flake",
|
"repo": "zen-browser-flake",
|
||||||
"rev": "5bcdfcef664bf62831dcb4b947004d9c5fbf7201",
|
"rev": "ef7c137fea3d0d0624864db7aa1f068eed79b0fb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue