dot(niri): wpctl with notification

This commit is contained in:
js0ny 2026-03-15 21:43:13 +00:00
parent 1b5c26bc04
commit f740b78081
4 changed files with 158 additions and 91 deletions

191
nixcfgs/flake.lock generated
View file

@ -100,11 +100,11 @@
]
},
"locked": {
"lastModified": 1771987897,
"narHash": "sha256-5pNQFGxG3fxS9pGnNBJjT76veotKIKq2XpAVFGAhCdI=",
"lastModified": 1772764582,
"narHash": "sha256-hSwjmpXHFqzSXrndVekA0IheKrbC7wi0IbfZTYwlmXw=",
"owner": "caelestia-dots",
"repo": "cli",
"rev": "b0d68f0a1c48fa138d6fde94dcbecea801a86a01",
"rev": "4bcd42f482d038b98145b0b03388244b68b7d35d",
"type": "github"
},
"original": {
@ -122,11 +122,11 @@
"quickshell": "quickshell"
},
"locked": {
"lastModified": 1772330657,
"narHash": "sha256-cWblprYsDUeAWA57xAqxIjNxXvDI/rqYn6TFp2OPi/k=",
"lastModified": 1773574600,
"narHash": "sha256-RsBgiq93SjlYVHSYtz/ESALa7WgbLu+xcH0oTJRjztQ=",
"owner": "caelestia-dots",
"repo": "shell",
"rev": "278fd4a4ed1bfb42c3fe197ff38b587539c012aa",
"rev": "377778596acf90451d1bd19f0c03b5f1c0467958",
"type": "github"
},
"original": {
@ -140,11 +140,11 @@
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1772153824,
"narHash": "sha256-T65qXmlcD9qFpPTi+mOXsn4dIkO2N8Ls67nqmuzepv0=",
"lastModified": 1773403535,
"narHash": "sha256-47MZaFrHxNO8tVUAmtVnerXUw2WWVluBOiU9MulN/yM=",
"owner": "catppuccin",
"repo": "nix",
"rev": "4b0f5b7bf7b3eeb484d49524f3c9791864ab9362",
"rev": "d45b5665cc638bad1b794350de02f4dd41b0bb47",
"type": "github"
},
"original": {
@ -174,11 +174,11 @@
"systems": "systems_2"
},
"locked": {
"lastModified": 1770910218,
"narHash": "sha256-IyHoHbhLFuIgFG+n7dqHwJaXuNnRaEsxCfAsfudV1KY=",
"lastModified": 1773079031,
"narHash": "sha256-RvCzINnVISBT3d0F1DoIcQFbQsbRJISW9qZeKTzmNaA=",
"owner": "abenz1267",
"repo": "elephant",
"rev": "c354a596ec7a7e34e9c26478dc7ef9680bc23e6d",
"rev": "53afe39cef252010f7c55bd33c5bae6dd50dcf0c",
"type": "github"
},
"original": {
@ -195,11 +195,11 @@
]
},
"locked": {
"lastModified": 1772672954,
"narHash": "sha256-OGEqiNZnLjQd0R2Ei+0QW9Y+t2MZy8vAOS8caNiQxbw=",
"lastModified": 1773537505,
"narHash": "sha256-MsOpMvnnUjYPAtyApi93HcoHD91pAiCXHrjOCG3F7zY=",
"owner": "petrkozorezov",
"repo": "firefox-addons-nix",
"rev": "8c947cfbce2f6a769c0fcb736fd2eb14ff83b64b",
"rev": "4e6bf49ad4fb8c9ddbb1b4fe2ef63b1b4ab4609a",
"type": "github"
},
"original": {
@ -285,11 +285,11 @@
]
},
"locked": {
"lastModified": 1765835352,
"narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=",
"lastModified": 1772408722,
"narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "a34fae9c08a15ad73f295041fec82323541400a9",
"rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3",
"type": "github"
},
"original": {
@ -440,11 +440,11 @@
]
},
"locked": {
"lastModified": 1765774562,
"narHash": "sha256-UQhfCggNGDc7eam+EittlYmeW89CZVT1KkFIHZWBH7k=",
"lastModified": 1771131391,
"narHash": "sha256-HPBNYf7HiKtBVy7/69vKpLYHX6wTcUxndxmybzDlXP8=",
"owner": "hercules-ci",
"repo": "hercules-ci-effects",
"rev": "edcbb19948b6caf1700434e369fde6ff9e6a3c93",
"rev": "0b152e0f7c5cc265a529cd63374b80e2771b207b",
"type": "github"
},
"original": {
@ -460,11 +460,11 @@
]
},
"locked": {
"lastModified": 1772633327,
"narHash": "sha256-jl+DJB2DUx7EbWLRng+6HNWW/1/VQOnf0NsQB4PlA7I=",
"lastModified": 1773608492,
"narHash": "sha256-QZteyExJYSQzgxqdsesDPbQgjctGG7iKV/6ooyQPITk=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "5a75730e6f21ee624cbf86f4915c6e7489c74acc",
"rev": "9a40ec3b78fc688d0908485887d355caa5666d18",
"type": "github"
},
"original": {
@ -498,11 +498,11 @@
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
},
"locked": {
"lastModified": 1772698812,
"narHash": "sha256-7+K/VaZ7TXUeUGSYshg8wC3UsRZHB+M4x6r38Q1B79c=",
"lastModified": 1773577199,
"narHash": "sha256-Z77lGBRlueA+igtScByJ0soMRnEy5T/XG9w661OCPaw=",
"owner": "sodiboo",
"repo": "niri-flake",
"rev": "5641625ef950f024e3e0e3f38bb91f876290c0be",
"rev": "afc45f69929e5b5ab23d903b24532cfe718de6be",
"type": "github"
},
"original": {
@ -531,11 +531,11 @@
"niri-unstable": {
"flake": false,
"locked": {
"lastModified": 1772207631,
"narHash": "sha256-Jkkg+KqshFO3CbTszVVpkKN2AOObYz+wMsM3ONo1z5g=",
"lastModified": 1773130184,
"narHash": "sha256-3bwx4WqCB06yfQIGB+OgIckOkEDyKxiTD5pOo4Xz2rI=",
"owner": "YaLTeR",
"repo": "niri",
"rev": "e708f546153f74acf33eb183b3b2992587a701e5",
"rev": "b07bde3ee82dd73115e6b949e4f3f63695da35ea",
"type": "github"
},
"original": {
@ -551,11 +551,11 @@
]
},
"locked": {
"lastModified": 1772379624,
"narHash": "sha256-NG9LLTWlz4YiaTAiRGChbrzbVxBfX+Auq4Ab/SWmk4A=",
"lastModified": 1773000227,
"narHash": "sha256-zm3ftUQw0MPumYi91HovoGhgyZBlM4o3Zy0LhPNwzXE=",
"owner": "nix-darwin",
"repo": "nix-darwin",
"rev": "52d061516108769656a8bd9c6e811c677ec5b462",
"rev": "da529ac9e46f25ed5616fd634079a5f3c579135f",
"type": "github"
},
"original": {
@ -587,11 +587,11 @@
]
},
"locked": {
"lastModified": 1772341813,
"narHash": "sha256-/PQ0ubBCMj/MVCWEI/XMStn55a8dIKsvztj4ZVLvUrQ=",
"lastModified": 1773552174,
"narHash": "sha256-mHSRNrT1rjeYBgkAlj07dW3+1nFEgAd8Gu6lgyfT9DU=",
"owner": "nix-community",
"repo": "nix-index-database",
"rev": "a2051ff239ce2e8a0148fa7a152903d9a78e854f",
"rev": "8faeb68130df077450451b6734a221ba0d6cde42",
"type": "github"
},
"original": {
@ -612,11 +612,11 @@
]
},
"locked": {
"lastModified": 1773046894,
"narHash": "sha256-Hf5Q6gkaSXojSu9neW0dxvefUc3aA2T8ZQLTdGKIGOU=",
"lastModified": 1773607491,
"narHash": "sha256-EQ4R6eSwnlpVjRrcfnIPlenCrnumkKU5mA0MkzkYaMo=",
"owner": "openclaw",
"repo": "nix-openclaw",
"rev": "b39fc7f507097858273bda50834c6ab7367d7b09",
"rev": "4136401fbfbed632df86825dfdd4bac2f8d2b285",
"type": "github"
},
"original": {
@ -630,11 +630,11 @@
"nixpkgs": "nixpkgs_5"
},
"locked": {
"lastModified": 1773038583,
"narHash": "sha256-E9Z/7U2ozB7nvCUZp9QlWllFl1yNXaInnuBSiRV5qh4=",
"lastModified": 1773561580,
"narHash": "sha256-wT0bKTp45YnMkc4yXQvk943Zz/rksYiIjEXGdWzxnic=",
"owner": "openclaw",
"repo": "nix-steipete-tools",
"rev": "561592b0b1aa9b53595618fd867be633a192da54",
"rev": "cd4c429ff3b3aaef9f92e59812cf2baf5704b86f",
"type": "github"
},
"original": {
@ -647,14 +647,15 @@
"inputs": {
"flake-compat": "flake-compat",
"flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_6"
"nixpkgs": "nixpkgs_6",
"nixpkgs-nixcord": "nixpkgs-nixcord"
},
"locked": {
"lastModified": 1772671545,
"narHash": "sha256-7CFg6ppK000u+bd87+6HSVkFSC8PKm/N22MMZMtYla4=",
"lastModified": 1773597570,
"narHash": "sha256-A6KsirR9kxR1wVFTr8aagk5vUT3rvKTf79Qht6YkxUA=",
"owner": "kaylorben",
"repo": "nixcord",
"rev": "9c048e21aa13ab529f00ab1f13c3793ba0b49b7c",
"rev": "1cc0ddb766e459b7187e6aeb8b2e046d37361dc4",
"type": "github"
},
"original": {
@ -672,11 +673,11 @@
]
},
"locked": {
"lastModified": 1769288622,
"narHash": "sha256-GaDPnzDQAx5WRi12XVttCHsVw0VkOMYNpniT7KHYNfk=",
"lastModified": 1773434720,
"narHash": "sha256-mK4yEIF+qF7qtAzC5x8GU8kh5lY4v397azT+m1nBvRQ=",
"owner": "nixpak",
"repo": "nixpak",
"rev": "4276954ad4f877d79801fd8952af38a3370bcb65",
"rev": "1bf4e77b07ce445779894f17ab21016db5f58a4e",
"type": "github"
},
"original": {
@ -731,13 +732,29 @@
"type": "github"
}
},
"nixpkgs-stable": {
"nixpkgs-nixcord": {
"locked": {
"lastModified": 1772598333,
"narHash": "sha256-YaHht/C35INEX3DeJQNWjNaTcPjYmBwwjFJ2jdtr+5U=",
"lastModified": 1773222311,
"narHash": "sha256-BHoB/XpbqoZkVYZCfXJXfkR+GXFqwb/4zbWnOr2cRcU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "fabb8c9deee281e50b1065002c9828f2cf7b2239",
"rev": "0590cd39f728e129122770c029970378a79d076a",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-25.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1773524153,
"narHash": "sha256-Jms57zzlFf64ayKzzBWSE2SGvJmK+NGt8Gli71d9kmY=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e9f278faa1d0c2fc835bd331d4666b59b505a410",
"type": "github"
},
"original": {
@ -797,11 +814,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1771848320,
"narHash": "sha256-0MAd+0mun3K/Ns8JATeHT1sX28faLII5hVLq0L3BdZU=",
"lastModified": 1773122722,
"narHash": "sha256-FIqHByVqxCprNjor1NqF80F2QQoiiyqanNNefdlvOg4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "2fc6539b481e1d2569f25f8799236694180c0993",
"rev": "62dc67aa6a52b4364dd75994ec00b51fbf474e50",
"type": "github"
},
"original": {
@ -829,11 +846,11 @@
},
"nixpkgs_4": {
"locked": {
"lastModified": 1772624091,
"narHash": "sha256-QKyJ0QGWBn6r0invrMAK8dmJoBYWoOWy7lN+UHzW1jc=",
"lastModified": 1773389992,
"narHash": "sha256-wvfdLLWJ2I9oEpDd9PfMA8osfIZicoQ5MT1jIwNs9Tk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "80bdc1e5ce51f56b19791b52b2901187931f5353",
"rev": "c06b4ae3d6599a672a6210b7021d699c351eebda",
"type": "github"
},
"original": {
@ -861,11 +878,11 @@
},
"nixpkgs_6": {
"locked": {
"lastModified": 1772465433,
"narHash": "sha256-ywy9troNEfpgh0Ee+zaV1UTgU8kYBVKtvPSxh6clYGU=",
"lastModified": 1773222311,
"narHash": "sha256-BHoB/XpbqoZkVYZCfXJXfkR+GXFqwb/4zbWnOr2cRcU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c581273b8d5bdf1c6ce7e0a54da9841e6a763913",
"rev": "0590cd39f728e129122770c029970378a79d076a",
"type": "github"
},
"original": {
@ -877,11 +894,11 @@
},
"nixpkgs_7": {
"locked": {
"lastModified": 1772674223,
"narHash": "sha256-/suKbHSaSmuC9UY7G0VRQ3aO+QKqxAQPQ19wG7QNkF8=",
"lastModified": 1773507054,
"narHash": "sha256-Q8U5VXgrcxmCxPtCCJCIZkcAX3FCZwGh1GNVIXxMND0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "66d9241e3dc2296726dc522e62dbfe89c7b449f3",
"rev": "e80236013dc8b77aa49ca90e7a12d86f5d8d64c9",
"type": "github"
},
"original": {
@ -893,11 +910,11 @@
},
"nixpkgs_8": {
"locked": {
"lastModified": 1772624091,
"narHash": "sha256-QKyJ0QGWBn6r0invrMAK8dmJoBYWoOWy7lN+UHzW1jc=",
"lastModified": 1773389992,
"narHash": "sha256-wvfdLLWJ2I9oEpDd9PfMA8osfIZicoQ5MT1jIwNs9Tk=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "80bdc1e5ce51f56b19791b52b2901187931f5353",
"rev": "c06b4ae3d6599a672a6210b7021d699c351eebda",
"type": "github"
},
"original": {
@ -929,11 +946,11 @@
"nixpkgs": "nixpkgs_8"
},
"locked": {
"lastModified": 1772725591,
"narHash": "sha256-I5WiAHsTkgUNOEtNvysNC7zVt4VNV0Ve3qsuiTQ9RiI=",
"lastModified": 1773608735,
"narHash": "sha256-dqaylgm5x/cjyqo/V1kAsiyQQ5S6/Kc8QGBAUem9nlg=",
"owner": "nix-community",
"repo": "NUR",
"rev": "3567b1d67fc040f0a9206b1824069b68fe172f05",
"rev": "21d9c792956edffe574411dcf08ea1429175e07a",
"type": "github"
},
"original": {
@ -998,11 +1015,11 @@
]
},
"locked": {
"lastModified": 1771926182,
"narHash": "sha256-QbXuSLhiSxOq6ydBL3+KGe1aiYWBW+e3J6qjJZaRMq0=",
"lastModified": 1772925576,
"narHash": "sha256-mMoiXABDtkSJxCYDrkhJ/TrrJf5M46oUfIlJvv2gkZ0=",
"ref": "refs/heads/master",
"rev": "cddb4f061bab495f4473ca5f2c571b6c710efef7",
"revCount": 744,
"rev": "15a84097653593dd15fad59a56befc2b7bdc270d",
"revCount": 750,
"type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
},
@ -1044,11 +1061,11 @@
]
},
"locked": {
"lastModified": 1772495394,
"narHash": "sha256-hmIvE/slLKEFKNEJz27IZ8BKlAaZDcjIHmkZ7GCEjfw=",
"lastModified": 1773550941,
"narHash": "sha256-wa/++bL2QeMUreNFBZEWluQfOYB0MnQIeGNMuaX9sfs=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "1d9b98a29a45abe9c4d3174bd36de9f28755e3ff",
"rev": "c469b6885f0dcd5c7c56bd935a0f08dbcd9e79e1",
"type": "github"
},
"original": {
@ -1269,11 +1286,11 @@
"systems": "systems_6"
},
"locked": {
"lastModified": 1771062828,
"narHash": "sha256-y1jBFFO0u+V21y3YldHZozrDwVJVrdC+o3c4M8/rasU=",
"lastModified": 1773212610,
"narHash": "sha256-jYvDe44MLx444BfiO1EtCKgHoKfXeIG1DvAw7P2qCrY=",
"owner": "abenz1267",
"repo": "walker",
"rev": "19b1104585305e0806b842af341630f72038a4b9",
"rev": "04ec7aa1b0cf2524370d99d43283c3050178a813",
"type": "github"
},
"original": {
@ -1340,11 +1357,11 @@
"xwayland-satellite-unstable": {
"flake": false,
"locked": {
"lastModified": 1772429643,
"narHash": "sha256-M+bAeCCcjBnVk6w/4dIVvXvpJwOKnXjwi/lDbaN6Yws=",
"lastModified": 1773499041,
"narHash": "sha256-XZ4/tVdLeAYDgKe4JD4C7yYUKydMxwt8c2j6APFWcIc=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"rev": "10f985b84cdbcc3bbf35b3e7e43d1b2a84fa9ce2",
"rev": "309d8e2a29953f7465dc14c939e2afe4682c0aa9",
"type": "github"
},
"original": {
@ -1360,11 +1377,11 @@
]
},
"locked": {
"lastModified": 1772685307,
"narHash": "sha256-5xthZHeqwBeXNhnRIlxnCuaZLky0SZ6vQsxtd+eqhTU=",
"lastModified": 1773290160,
"narHash": "sha256-u09eF4Oafi+OIbTtKe/EWil26q1glcTATiSA7dF1oCI=",
"owner": "youwen5",
"repo": "zen-browser-flake",
"rev": "dc92d88524ee83308795bc90f6a9f1d965265aaa",
"rev": "c7cb51b30960757ed9fb8eb28567b32585d0a688",
"type": "github"
},
"original": {

View file

@ -61,16 +61,19 @@ in {
# spawn-sh "cliphist list | ${launcher} -dmenu | cliphist decode | wl-copy";
spawn "${launcher}" "-m" "clipboard";
# See ../volume-notify.nix
"XF86AudioRaiseVolume".allow-when-locked = true;
"XF86AudioRaiseVolume".action =
spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+";
spawn "volume-notify" "up";
"XF86AudioLowerVolume".allow-when-locked = true;
"XF86AudioLowerVolume".action =
spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-";
spawn "volume-notify" "down";
"XF86AudioMute".allow-when-locked = true;
"XF86AudioMute".action = spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle";
"XF86AudioMute".action =
spawn "volume-notify" "mute";
"XF86AudioMicMute".allow-when-locked = true;
"XF86AudioMicMute".action = spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle";
"XF86AudioMicMute".action =
spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle";
"XF86MonBrightnessUp" = {
action = spawn "brightnessctl" "set" "10%+";

View file

@ -48,6 +48,7 @@ in {
./sunsetr.nix
./systemd.nix
./dunst.nix
./volume-notify.nix
];
home.packages = with pkgs; [
swayidle # Screensaver

View file

@ -0,0 +1,46 @@
{pkgs, ...}: let
volume-notify = pkgs.writeShellApplication {
name = "volume-notify";
runtimeInputs = with pkgs; [
wireplumber
gawk
gnugrep
libnotify
];
text = ''
if [ $# -eq 0 ]; then
echo "Usage: volume-notify {up|down|mute}"
exit 1
fi
case "$1" in
up)
wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+
;;
down)
wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-
;;
mute)
wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
;;
*)
echo "Invalid argument: $1"
exit 1
;;
esac
if wpctl get-volume @DEFAULT_AUDIO_SINK@ | grep -q 'MUTED'; then
TEXT="Volume: Muted"
else
VOLUME=$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | awk '{print $2 * 100}')
TEXT="Volume: ''${VOLUME}%"
fi
notify-send -h string:x-canonical-private-synchronous:volume -t 1500 "🔊 Audio" "$TEXT"
'';
};
in {
home.packages = [volume-notify];
}