aboutsummaryrefslogtreecommitdiffstats
path: root/modules/desktop/sxhkd
diff options
context:
space:
mode:
authorArpit Chakladar <arpitchakladar@proton.me>2026-03-12 18:48:40 +0530
committerArpit Chakladar <arpitchakladar@proton.me>2026-03-12 18:48:40 +0530
commit51d537e03ad877566f00af3c6a1c00340512ac65 (patch)
tree7f8e1c6fccc68ba2ad7c3a2a02fb6efbc36d37d3 /modules/desktop/sxhkd
parentd6ccf7e455bd6947664d4a44dfe578813fa2b4eb (diff)
downloadhome-manager-config-51d537e03ad877566f00af3c6a1c00340512ac65.tar.gz
home-manager-config-51d537e03ad877566f00af3c6a1c00340512ac65.zip
Using spaces instead of tabs
Diffstat (limited to 'modules/desktop/sxhkd')
-rw-r--r--modules/desktop/sxhkd/default.nix76
-rw-r--r--modules/desktop/sxhkd/keybindings/brightnessctl.nix20
-rw-r--r--modules/desktop/sxhkd/keybindings/bspwm.nix78
-rw-r--r--modules/desktop/sxhkd/keybindings/maim.nix20
-rw-r--r--modules/desktop/sxhkd/keybindings/pamixer.nix30
-rw-r--r--modules/desktop/sxhkd/keybindings/playerctl.nix10
-rwxr-xr-xmodules/desktop/sxhkd/scripts/keybindings.sh86
7 files changed, 160 insertions, 160 deletions
diff --git a/modules/desktop/sxhkd/default.nix b/modules/desktop/sxhkd/default.nix
index 3102efe..19bc540 100644
--- a/modules/desktop/sxhkd/default.nix
+++ b/modules/desktop/sxhkd/default.nix
@@ -1,42 +1,42 @@
{ pkgs, config, lib, ... }:
{
- config = lib.mkIf config.desktop.enable {
- services.sxhkd.enable = true;
- services.sxhkd.keybindings =
- let
- 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/maim.nix { inherit pkgs createKeybinding lib; })
- (import ./keybindings/pamixer.nix { inherit pkgs createKeybindingBase lib; })
- (import ./keybindings/playerctl.nix { inherit pkgs createKeybindingBase lib; })
-
- (createKeybinding
- "s"
- "Show keybindings."
- "kitty --title 'Keybindings' --class floating-termial -e ${pkgs.writeShellScript "keybindings.sh" (builtins.readFile ./scripts/keybindings.sh)}"
- )
-
- (createKeybinding
- "r"
- "Application launcher."
- "rofi -show drun")
-
- (createKeybinding
- "t"
- "Launch terminal."
- "kitty")
-
- (createKeybinding
- "f"
- "Launch File Manager."
- "kitty --title 'File Manager' --class floating-termial -e nnn")
- ];
- };
+ config = lib.mkIf config.desktop.enable {
+ services.sxhkd.enable = true;
+ services.sxhkd.keybindings =
+ let
+ 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/maim.nix { inherit pkgs createKeybinding lib; })
+ (import ./keybindings/pamixer.nix { inherit pkgs createKeybindingBase lib; })
+ (import ./keybindings/playerctl.nix { inherit pkgs createKeybindingBase lib; })
+
+ (createKeybinding
+ "s"
+ "Show keybindings."
+ "kitty --title 'Keybindings' --class floating-termial -e ${pkgs.writeShellScript "keybindings.sh" (builtins.readFile ./scripts/keybindings.sh)}"
+ )
+
+ (createKeybinding
+ "r"
+ "Application launcher."
+ "rofi -show drun")
+
+ (createKeybinding
+ "t"
+ "Launch terminal."
+ "kitty")
+
+ (createKeybinding
+ "f"
+ "Launch File Manager."
+ "kitty --title 'File Manager' --class floating-termial -e nnn")
+ ];
+ };
}
diff --git a/modules/desktop/sxhkd/keybindings/brightnessctl.nix b/modules/desktop/sxhkd/keybindings/brightnessctl.nix
index 6cdf3e7..bc508e6 100644
--- a/modules/desktop/sxhkd/keybindings/brightnessctl.nix
+++ b/modules/desktop/sxhkd/keybindings/brightnessctl.nix
@@ -1,15 +1,15 @@
{ createKeybindingBase, pkgs, lib }:
let
- brightnessctl = "${pkgs.brightnessctl}/bin/brightnessctl";
+ brightnessctl = "${pkgs.brightnessctl}/bin/brightnessctl";
in lib.mkMerge [
- (createKeybindingBase
- "XF86MonBrightnessDown"
- "Decrease brightness."
- "${brightnessctl} set 5%-")
-
- (createKeybindingBase
- "XF86MonBrightnessUp"
- "Increase brightness."
- "${brightnessctl} set +5%")
+ (createKeybindingBase
+ "XF86MonBrightnessDown"
+ "Decrease brightness."
+ "${brightnessctl} set 5%-")
+
+ (createKeybindingBase
+ "XF86MonBrightnessUp"
+ "Increase brightness."
+ "${brightnessctl} set +5%")
]
diff --git a/modules/desktop/sxhkd/keybindings/bspwm.nix b/modules/desktop/sxhkd/keybindings/bspwm.nix
index ffa7d6c..cd838a3 100644
--- a/modules/desktop/sxhkd/keybindings/bspwm.nix
+++ b/modules/desktop/sxhkd/keybindings/bspwm.nix
@@ -1,45 +1,45 @@
{ createKeybinding, pkgs, lib }:
let
- bspc = "${pkgs.bspwm}/bin/bspc";
+ bspc = "${pkgs.bspwm}/bin/bspc";
in lib.mkMerge [
- (createKeybinding
- "q"
- "Kill current window."
- "${bspc} node -c")
-
- (createKeybinding
- "{1-9,0}"
- "Switch workspace."
- "${bspc} desktop -f {1-9,10}")
-
- (createKeybinding
- "shift + {1-9,0}"
- "Move window to workspace."
- "${bspc} node -d {1-9,10} --follow")
-
- (createKeybinding
- "{n,d,m}"
- "Set current window mode (tiled, floating, fullscreen)."
- "${bspc} node focused -t {tiled,floating,fullscreen}")
-
- (createKeybinding
- "{_,shift + }{h,j,k,l}"
- "Navigate between windows."
- "${bspc} node --{focus,swap} {west,south,north,east}")
-
- # the indentation for each line is required to work with the help prompt
- (createKeybinding
- "ctrl + {h,j,k,l}"
- "Resize current window."
- ''
- ${bspc} node {@parent/second -z left -20 0; \
- @parent/first -z right -20 0, \
- @parent/second -z top 0 +20; \
- @parent/first -z bottom 0 +20, \
- @parent/first -z bottom 0 -20; \
- @parent/second -z top 0 -20, \
- @parent/first -z right +20 0; \
- @parent/second -z left +20 0}
+ (createKeybinding
+ "q"
+ "Kill current window."
+ "${bspc} node -c")
+
+ (createKeybinding
+ "{1-9,0}"
+ "Switch workspace."
+ "${bspc} desktop -f {1-9,10}")
+
+ (createKeybinding
+ "shift + {1-9,0}"
+ "Move window to workspace."
+ "${bspc} node -d {1-9,10} --follow")
+
+ (createKeybinding
+ "{n,d,m}"
+ "Set current window mode (tiled, floating, fullscreen)."
+ "${bspc} node focused -t {tiled,floating,fullscreen}")
+
+ (createKeybinding
+ "{_,shift + }{h,j,k,l}"
+ "Navigate between windows."
+ "${bspc} node --{focus,swap} {west,south,north,east}")
+
+ # the indentation for each line is required to work with the help prompt
+ (createKeybinding
+ "ctrl + {h,j,k,l}"
+ "Resize current window."
+ ''
+ ${bspc} node {@parent/second -z left -20 0; \
+ @parent/first -z right -20 0, \
+ @parent/second -z top 0 +20; \
+ @parent/first -z bottom 0 +20, \
+ @parent/first -z bottom 0 -20; \
+ @parent/second -z top 0 -20, \
+ @parent/first -z right +20 0; \
+ @parent/second -z left +20 0}
'')
]
diff --git a/modules/desktop/sxhkd/keybindings/maim.nix b/modules/desktop/sxhkd/keybindings/maim.nix
index b66ec98..2092a71 100644
--- a/modules/desktop/sxhkd/keybindings/maim.nix
+++ b/modules/desktop/sxhkd/keybindings/maim.nix
@@ -1,15 +1,15 @@
{ createKeybinding, pkgs, lib }:
let
- maim = "${pkgs.maim}/bin/maim";
+ maim = "${pkgs.maim}/bin/maim";
in lib.mkMerge [
- (createKeybinding
- "p"
- "Take screenshot of selected area and save to clipboard"
- "${maim} -s | xclip -selection clipboard -t image/png")
-
- (createKeybinding
- "shift + p"
- "Take screenshot of selected area and save to ~/Pictures/Screenshots"
- "mkdir -p ~/Pictures/Screenshots && ${maim} -s ~/Pictures/Screenshots/screenshot-$(date +%Y%m%d-%H%M%S).png")
+ (createKeybinding
+ "p"
+ "Take screenshot of selected area and save to clipboard"
+ "${maim} -s | xclip -selection clipboard -t image/png")
+
+ (createKeybinding
+ "shift + p"
+ "Take screenshot of selected area and save to ~/Pictures/Screenshots"
+ "mkdir -p ~/Pictures/Screenshots && ${maim} -s ~/Pictures/Screenshots/screenshot-$(date +%Y%m%d-%H%M%S).png")
]
diff --git a/modules/desktop/sxhkd/keybindings/pamixer.nix b/modules/desktop/sxhkd/keybindings/pamixer.nix
index a45bf83..e7f056e 100644
--- a/modules/desktop/sxhkd/keybindings/pamixer.nix
+++ b/modules/desktop/sxhkd/keybindings/pamixer.nix
@@ -1,20 +1,20 @@
{ createKeybindingBase, pkgs, lib }:
let
- pamixer = "${pkgs.pamixer}/bin/pamixer";
+ 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")
+ (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/desktop/sxhkd/keybindings/playerctl.nix b/modules/desktop/sxhkd/keybindings/playerctl.nix
index 3e5c4e0..7c3b796 100644
--- a/modules/desktop/sxhkd/keybindings/playerctl.nix
+++ b/modules/desktop/sxhkd/keybindings/playerctl.nix
@@ -1,10 +1,10 @@
{ createKeybindingBase, pkgs, lib }:
let
- playerctl = "${pkgs.playerctl}/bin/playerctl";
+ playerctl = "${pkgs.playerctl}/bin/playerctl";
in lib.mkMerge [
- (createKeybindingBase
- "XF86AudioPlay"
- "Toggle video / audio player."
- "${playerctl} play-pause")
+ (createKeybindingBase
+ "XF86AudioPlay"
+ "Toggle video / audio player."
+ "${playerctl} play-pause")
]
diff --git a/modules/desktop/sxhkd/scripts/keybindings.sh b/modules/desktop/sxhkd/scripts/keybindings.sh
index 1548f1c..e713415 100755
--- a/modules/desktop/sxhkd/scripts/keybindings.sh
+++ b/modules/desktop/sxhkd/scripts/keybindings.sh
@@ -5,9 +5,9 @@ SXHKD_FILE="$HOME/.config/sxhkd/sxhkdrc"
# Function to wrap text to a specified width
wrap_text() {
- local text="$1"
- local width="$2"
- echo "$text" | fold -s -w "$width"
+ local text="$1"
+ local width="$2"
+ echo "$text" | fold -s -w "$width"
}
# Get terminal width
@@ -33,44 +33,44 @@ border_line="├$(printf '%.0s─' $(seq 1 $max_keybinding_length))┼$(printf '
# Pipe all output to less
{
- # Print table header with borders
- echo "┌$(printf '%.0s─' $(seq 1 $max_keybinding_length))┬$(printf '%.0s─' $(seq 1 $description_width))┐"
- printf "│ %-*s │ %-*s │\n" "$max_keybinding_content_length" "KEYBINDING" "$description_content_width" "DESCRIPTION"
-
- description=""
-
- # Load the sxhkd file into an array
- mapfile -t lines < "$SXHKD_FILE"
-
- # Loop through lines for output
- for line in "${lines[@]}"; do
- # Check if the line is a comment
- if [[ $line =~ ^# ]]; then
- # Remove the "#" and any leading/trailing whitespace to capture the description
- description="${line#\# }"
- elif [[ $line =~ ^[^#[:space:]] ]]; then
- # If it's a keybinding line, store it
- keybinding="$line"
- # Move to the next line for the command
- command="${lines[((++i))]}"
-
- # Wrap the description to the calculated width
- wrapped_description=$(wrap_text "$description" "$description_width")
-
- # Print the keybinding with a border line above and below it
- echo "$border_line"
- printf "│ %-*s │ %-*s │\n" "$max_keybinding_content_length" "$keybinding" "$description_content_width" "$(echo "$wrapped_description" | head -n 1)"
-
- # Print wrapped description lines with empty keybinding column
- echo "$wrapped_description" | sed '1d' | while read -r continuation; do
- printf "│ %-*s │ %-*s │\n" "$max_keybinding_content_length" "" "$description_content_width" "$continuation"
- done
-
- # Reset description for the next keybinding
- description=""
- fi
- done
-
- # Print the final border line
- echo "└$(printf '%.0s─' $(seq 1 $max_keybinding_length))┴$(printf '%.0s─' $(seq 1 $description_width))┘"
+ # Print table header with borders
+ echo "┌$(printf '%.0s─' $(seq 1 $max_keybinding_length))┬$(printf '%.0s─' $(seq 1 $description_width))┐"
+ printf "│ %-*s │ %-*s │\n" "$max_keybinding_content_length" "KEYBINDING" "$description_content_width" "DESCRIPTION"
+
+ description=""
+
+ # Load the sxhkd file into an array
+ mapfile -t lines < "$SXHKD_FILE"
+
+ # Loop through lines for output
+ for line in "${lines[@]}"; do
+ # Check if the line is a comment
+ if [[ $line =~ ^# ]]; then
+ # Remove the "#" and any leading/trailing whitespace to capture the description
+ description="${line#\# }"
+ elif [[ $line =~ ^[^#[:space:]] ]]; then
+ # If it's a keybinding line, store it
+ keybinding="$line"
+ # Move to the next line for the command
+ command="${lines[((++i))]}"
+
+ # Wrap the description to the calculated width
+ wrapped_description=$(wrap_text "$description" "$description_width")
+
+ # Print the keybinding with a border line above and below it
+ echo "$border_line"
+ printf "│ %-*s │ %-*s │\n" "$max_keybinding_content_length" "$keybinding" "$description_content_width" "$(echo "$wrapped_description" | head -n 1)"
+
+ # Print wrapped description lines with empty keybinding column
+ echo "$wrapped_description" | sed '1d' | while read -r continuation; do
+ printf "│ %-*s │ %-*s │\n" "$max_keybinding_content_length" "" "$description_content_width" "$continuation"
+ done
+
+ # Reset description for the next keybinding
+ description=""
+ fi
+ done
+
+ # Print the final border line
+ echo "└$(printf '%.0s─' $(seq 1 $max_keybinding_length))┴$(printf '%.0s─' $(seq 1 $description_width))┘"
} | less