From b553b7633a838f6ad023fb2430c95933ea512e4a Mon Sep 17 00:00:00 2001 From: Arpit Chakladar <54011232+arpitchakladar@users.noreply.github.com> Date: Wed, 26 Nov 2025 13:49:55 +0530 Subject: Added volume, brightness and player controls. --- home.nix | 4 ++++ modules/graphical/default.nix | 1 - modules/graphical/sxhkd/default.nix | 10 +++++++--- .../graphical/sxhkd/keybindings/brightnessctl.nix | 15 +++++++++++++++ modules/graphical/sxhkd/keybindings/pamixer.nix | 20 ++++++++++++++++++++ modules/graphical/sxhkd/keybindings/playerctl.nix | 10 ++++++++++ modules/tools/brave/default.nix | 13 +++++++++++++ modules/tools/brightnessctl/default.nix | 13 +++++++++++++ modules/tools/default.nix | 4 ++++ modules/tools/pamixer/default.nix | 13 +++++++++++++ modules/tools/playerctl/default.nix | 13 +++++++++++++ "q\033" | 18 ++++++++++++++++++ 12 files changed, 130 insertions(+), 4 deletions(-) create mode 100644 modules/graphical/sxhkd/keybindings/brightnessctl.nix create mode 100644 modules/graphical/sxhkd/keybindings/pamixer.nix create mode 100644 modules/graphical/sxhkd/keybindings/playerctl.nix create mode 100644 modules/tools/brave/default.nix create mode 100644 modules/tools/brightnessctl/default.nix create mode 100644 modules/tools/pamixer/default.nix create mode 100644 modules/tools/playerctl/default.nix create mode 100644 "q\033" diff --git a/home.nix b/home.nix index 1a66fc9..c530ad2 100644 --- a/home.nix +++ b/home.nix @@ -16,6 +16,8 @@ # Tools tools.bat.enable = true; + tools.brave.enable = true; + tools.brightnessctl.enable = true; tools.feh.enable = true; tools.fzf.enable = true; tools.git.enable = true; @@ -28,6 +30,8 @@ tools.neovim.enable = true; tools.neovim.profile = "full"; tools.nnn.enable = true; + tools.pamixer.enable = true; + tools.playerctl.enable = true; tools.rofi.enable = true; tools.zsh.enable = true; diff --git a/modules/graphical/default.nix b/modules/graphical/default.nix index 37fc04b..411deaa 100644 --- a/modules/graphical/default.nix +++ b/modules/graphical/default.nix @@ -20,7 +20,6 @@ ${if config.tools.feh.enable then "${pkgs.feh}/bin/feh --bg-scale ${../../assets/skeleton-mage.png}" else "xsetroot -solid \"${config.scheme.withHashtag.base00}\""} -${pkgs.bspwm}/bin/bspwm "; }; } diff --git a/modules/graphical/sxhkd/default.nix b/modules/graphical/sxhkd/default.nix index a65d3fa..d19f01f 100644 --- a/modules/graphical/sxhkd/default.nix +++ b/modules/graphical/sxhkd/default.nix @@ -5,12 +5,16 @@ services.sxhkd.enable = true; services.sxhkd.keybindings = let - modKey = "alt"; - createKeybinding = keybinding: description: command: { - "# ${description}\n${modKey} + ${keybinding}" = command; + modKey = "super"; + createKeybinding = keybinding: createKeybindingBase "${modKey} + ${keybinding}"; + createKeybindingBase = keybinding: description: command: { + "# ${description}\n${keybinding}" = command; }; in lib.mkMerge [ + (import ./keybindings/brightnessctl.nix { inherit pkgs createKeybindingBase lib; }) (import ./keybindings/bspwm.nix { inherit pkgs createKeybinding lib; }) + (import ./keybindings/pamixer.nix { inherit pkgs createKeybindingBase lib; }) + (import ./keybindings/playerctl.nix { inherit pkgs createKeybindingBase lib; }) (createKeybinding "s" diff --git a/modules/graphical/sxhkd/keybindings/brightnessctl.nix b/modules/graphical/sxhkd/keybindings/brightnessctl.nix new file mode 100644 index 0000000..acb4ea2 --- /dev/null +++ b/modules/graphical/sxhkd/keybindings/brightnessctl.nix @@ -0,0 +1,15 @@ +{ createKeybindingBase, pkgs, lib }: + +let + brightnessctl = "${pkgs.brightnessctl}/bin/brightnessctl"; +in lib.mkMerge [ + (createKeybindingBase + "XF86MonBrightnessDown" + "Decrease brightness." + "${brightnessctl} set 5%-") + + (createKeybindingBase + "XF86MonBrightnessUp" + "Increase brightness." + "${brightnessctl} set +5%") +] diff --git a/modules/graphical/sxhkd/keybindings/pamixer.nix b/modules/graphical/sxhkd/keybindings/pamixer.nix new file mode 100644 index 0000000..3543d8f --- /dev/null +++ b/modules/graphical/sxhkd/keybindings/pamixer.nix @@ -0,0 +1,20 @@ +{ createKeybindingBase, pkgs, lib }: + +let + pamixer = "${pkgs.pamixer}/bin/pamixer"; +in lib.mkMerge [ + (createKeybindingBase + "XF86AudioLowerVolume" + "Decrease volume." + "${pamixer} --decrease 5") + + (createKeybindingBase + "XF86AudioRaiseVolume" + "Increase volume." + "${pamixer} --increase 5") + + (createKeybindingBase + "XF86AudioMute" + "Mute audio." + "${pamixer} --toggle-mute") +] diff --git a/modules/graphical/sxhkd/keybindings/playerctl.nix b/modules/graphical/sxhkd/keybindings/playerctl.nix new file mode 100644 index 0000000..3e5c4e0 --- /dev/null +++ b/modules/graphical/sxhkd/keybindings/playerctl.nix @@ -0,0 +1,10 @@ +{ createKeybindingBase, pkgs, lib }: + +let + playerctl = "${pkgs.playerctl}/bin/playerctl"; +in lib.mkMerge [ + (createKeybindingBase + "XF86AudioPlay" + "Toggle video / audio player." + "${playerctl} play-pause") +] diff --git a/modules/tools/brave/default.nix b/modules/tools/brave/default.nix new file mode 100644 index 0000000..93b4b84 --- /dev/null +++ b/modules/tools/brave/default.nix @@ -0,0 +1,13 @@ +{ config, lib, pkgs, ... }: + +{ + options.tools.brave = { + enable = lib.mkEnableOption "Enables brave."; + }; + + config = lib.mkIf config.tools.brave.enable { + home.packages = [ + pkgs.brave + ]; + }; +} diff --git a/modules/tools/brightnessctl/default.nix b/modules/tools/brightnessctl/default.nix new file mode 100644 index 0000000..f4aa488 --- /dev/null +++ b/modules/tools/brightnessctl/default.nix @@ -0,0 +1,13 @@ +{ config, lib, pkgs, ... }: + +{ + options.tools.brightnessctl = { + enable = lib.mkEnableOption "Enables brightnessctl."; + }; + + config = lib.mkIf config.tools.brightnessctl.enable { + home.packages = [ + pkgs.brightnessctl + ]; + }; +} diff --git a/modules/tools/default.nix b/modules/tools/default.nix index 631bacc..a76c835 100644 --- a/modules/tools/default.nix +++ b/modules/tools/default.nix @@ -3,6 +3,8 @@ { imports = [ ./bat + ./brave + ./brightnessctl ./feh ./fzf ./git @@ -12,6 +14,8 @@ ./neofetch ./neovim ./nnn + ./pamixer + ./playerctl ./rofi ./zsh ]; diff --git a/modules/tools/pamixer/default.nix b/modules/tools/pamixer/default.nix new file mode 100644 index 0000000..f182099 --- /dev/null +++ b/modules/tools/pamixer/default.nix @@ -0,0 +1,13 @@ +{ config, lib, pkgs, ... }: + +{ + options.tools.pamixer = { + enable = lib.mkEnableOption "Enables pamixer."; + }; + + config = lib.mkIf config.tools.pamixer.enable { + home.packages = [ + pkgs.pamixer + ]; + }; +} diff --git a/modules/tools/playerctl/default.nix b/modules/tools/playerctl/default.nix new file mode 100644 index 0000000..1453bc2 --- /dev/null +++ b/modules/tools/playerctl/default.nix @@ -0,0 +1,13 @@ +{ config, lib, pkgs, ... }: + +{ + options.tools.playerctl = { + enable = lib.mkEnableOption "Enables playerctl."; + }; + + config = lib.mkIf config.tools.playerctl.enable { + home.packages = [ + pkgs.playerctl + ]; + }; +} diff --git "a/q\033" "b/q\033" new file mode 100644 index 0000000..49c9dc0 --- /dev/null +++ "b/q\033" @@ -0,0 +1,18 @@ +# ]8;;file://bertor/etc/systemd/system/display-manager.service\/etc/systemd/system/display-manager.service]8;;\ +[Unit] +After=acpid.service systemd-logind.service systemd-user-sessions.service systemd-user-sessions.service getty@tty7.service plymouth-quit.service systemd-logind.service acpid.service systemd-logind.service systemd-user-sessions.service +Conflicts=getty@tty7.service +Description=Display Manager +StartLimitBurst=3 +StartLimitIntervalSec=30 +[0;1;38:5:245m +[Service] +Environment="LOCALE_ARCHIVE=/nix/store/qdlks9irhx3mn4r287hh1lmpblgp9szw-glibc-locales-2.40-66/lib/locale/locale-archive" +Environment="PATH=/nix/store/zwplch93wbpj82bp7riwaixmdx2xi0ah-coreutils-9.7/bin:/nix/store/c9jzm47zb8j7jbpw4a7zdm35qmhdf6ws-findutils-4.10.0/bin:/nix/store/90r466lzg0jw11v60cki60s0qfhs93vp-gnugrep-3.11/bin:/nix/store/m0i5hf36sv62vgm2ppjkynv03ihdlxvv-gnused-4.9/bin:/nix/store/2dqf465jfs9w73jihy4yk8yc47673i18-systemd-257.10/bin:/nix/store/zwplch93wbpj82bp7riwaixmdx2xi0ah-coreutils-9.7/sbin:/nix/store/c9jzm47zb8j7jbpw4a7zdm35qmhdf6ws-findutils-4.10.0/sbin:/nix/store/90r466lzg0jw11v60cki60s0qfhs93vp-gnugrep-3.11/sbin:/nix/store/m0i5hf36sv62vgm2ppjkynv03ihdlxvv-gnused-4.9/sbin:/nix/store/2dqf465jfs9w73jihy4yk8yc47673i18-systemd-257.10/sbin" +Environment="TZDIR=/nix/store/2s4hpq73hn49jd84x976m3acp3rd3k1x-tzdata-2025b/share/zoneinfo" +X-RestartIfChanged=false +ExecStart=/nix/store/lza5wf5vc420wypam1c8axxawcrjpcyg-unit-script-display-manager-start/bin/display-manager-start +ExecStartPre=/nix/store/4pr54hfqmxi0wbhfkvzqcdcrj1pyhd0j-unit-script-display-manager-pre-start/bin/display-manager-pre-start +Restart=always +RestartSec=200ms +SyslogIdentifier=display-manager -- cgit v1.2.3