161 lines
5.6 KiB
Nix
161 lines
5.6 KiB
Nix
{ lib, config, pkgs, ... }:
|
|
|
|
let
|
|
cfg = config.programs.desktop.wayland.windowManager.hyprland;
|
|
light = "${pkgs.light}/bin/light";
|
|
notifysend = "${pkgs.libnotify}/bin/notify-send";
|
|
#pamixer = "${pkgs.pamixer}/bin/pamixer";
|
|
|
|
brightnessScript = pkgs.writeShellScriptBin "brightness" ''
|
|
#!/bin/sh
|
|
|
|
if [ "$1" == "up" ]; then
|
|
${light} -A 10
|
|
elif [ "$1" == "down" ]; then
|
|
${light} -U 10
|
|
else
|
|
echo "Invalid argument"
|
|
exit 1
|
|
fi
|
|
|
|
BRIGHTNESS=$(${light} -G | awk -F'.' '{print$1}')
|
|
|
|
${notifysend} --app-name="system-notify" -h string:x-canonical-private-synchronous:sys-notify " $BRIGHTNESS%"
|
|
'';
|
|
|
|
volumeScript = pkgs.writeShellScriptBin "volume" ''
|
|
#!/bin/sh
|
|
|
|
if [ "$1" == "up" ]; then
|
|
pamixer --increase 5
|
|
elif [ "$1" == "down" ]; then
|
|
pamixer --decrease 5
|
|
elif [ "$1" == "mute" ]; then
|
|
pamixer --toggle-mute
|
|
fi
|
|
|
|
VOLUME=$(pamixer --get-volume-human)
|
|
|
|
${notifysend} --app-name="system-notify" -h string:x-canonical-private-synchronous:sys-notify " $VOLUME"
|
|
'';
|
|
in
|
|
|
|
{
|
|
wayland.windowManager.hyprland.settings = lib.mkIf cfg.enable {
|
|
bind = let
|
|
terminal = config.home.sessionVariables.TERMINAL;
|
|
browser = config.home.sessionVariables.BROWSER;
|
|
editor = config.home.sessionVariables.EDITOR;
|
|
|
|
bright = "${brightnessScript}/bin/brightness";
|
|
volume = "${volumeScript}/bin/volume";
|
|
|
|
swaylock = "${config.programs.swaylock.package}/bin/swaylock";
|
|
spotify = "${terminal} -e spotify_player";
|
|
spotifyctl = "${pkgs.spotify-player}/bin/spotify_player";
|
|
discord = "${pkgs.vesktop}/bin/vesktop";
|
|
|
|
#makoctl = "${config.services.mako.package}/bin/makoctl";
|
|
|
|
password = "${pkgs._1password-gui}/bin/1password --enable-features=UseOzonePlatform --ozone-platform=wayland";
|
|
|
|
#playerctl = "${config.services.playerctld.package}/bin/playerctl";
|
|
#playerctld = "${config.services.playerctld.package}/bin/playerctld";
|
|
#pactl = "${pkgs.pulseaudio}/bin/pactl";
|
|
in [
|
|
|
|
# Program Launch
|
|
"SUPER, b, exec, ${browser}"
|
|
"SUPER, return, exec, ${terminal}"
|
|
"SUPER, e, exec, ${editor}"
|
|
"SUPER, m, exec, ${spotify}"
|
|
"SUPERSHIFT, P, exec, ${password}"
|
|
"SUPER, d, exec, ${discord}"
|
|
|
|
# Spotify PLayer Controls
|
|
|
|
"SUPER, bracketright, exec, ${spotifyctl} playback next"
|
|
"SUPER, bracketleft, exec, ${spotifyctl} playback previous"
|
|
"SUPER, backslash, exec, ${spotifyctl} playback play-pause"
|
|
|
|
# Brightness
|
|
|
|
",XF86MonBrightnessUp, exec, ${bright} up"
|
|
",XF86MonBrightnessDown, exec, ${bright} down"
|
|
|
|
# Volume
|
|
|
|
",XF86AudioRaiseVolume, exec, ${volume} up"
|
|
",XF86AudioLowerVolume, exec, ${volume} down"
|
|
",XF86AudioMute, exec, ${volume} mute"
|
|
|
|
# Window Management
|
|
|
|
"SUPER, Q, killactive"
|
|
"SUPER CTRL, backspace, killactive"
|
|
"SUPERSHIFT ALT, delete, exit"
|
|
"SUPER, F, fullscreen"
|
|
"SUPER, Space, togglefloating"
|
|
"SUPER, P, pseudo" # dwindle
|
|
"SUPER, S, togglesplit" # dwindle
|
|
|
|
# Focus
|
|
|
|
"SUPER, left, movefocus,l"
|
|
"SUPER, right, movefocus,r"
|
|
"SUPER, up, movefocus,u"
|
|
"SUPER, down, movefocus,d"
|
|
|
|
# Move
|
|
|
|
"SUPERSHIFT, left, movewindow,l"
|
|
"SUPERSHIFT, right, movewindow,r"
|
|
"SUPERSHIFT, up, movewindow,u"
|
|
"SUPERSHIFT, down, movewindow,d"
|
|
|
|
#Resize
|
|
|
|
"SUPER CTRL, left, resizeactive,-20 0"
|
|
"SUPERCTRL, right, resizeactive,20 0"
|
|
"SUPER CTRL, up, resizeactive,0 -20"
|
|
"SUPERCTRL, down, resizeactive,0 20"
|
|
|
|
# Switch workspace
|
|
|
|
"SUPER, 1, workspace,1"
|
|
"SUPER, 2, workspace,2"
|
|
"SUPER, 3, workspace,3"
|
|
"SUPER, 4, workspace,4"
|
|
"SUPER, 5, workspace,5"
|
|
"SUPER, 6, workspace,6"
|
|
"SUPER, 7, workspace,7"
|
|
"SUPER, 8, workspace,8"
|
|
"SUPER, 9, workspace,9"
|
|
"SUPER, 0, workspace,10"
|
|
"SUPER, comma, workspace,e+1"
|
|
"SUPER, period, workspace,e-1"
|
|
"SUPER, tab, focusCurrentOrLast"
|
|
|
|
# Move workspace
|
|
|
|
"SUPERSHIFT, 1, movetoworkspace,1"
|
|
"SUPERSHIFT, 2, movetoworkspace,2"
|
|
"SUPERSHIFT, 3, movetoworkspace,3"
|
|
"SUPERSHIFT, 4, movetoworkspace,4"
|
|
"SUPERSHIFT, 5, movetoworkspace,5"
|
|
"SUPERSHIFT, 6, movetoworkspace,6"
|
|
"SUPERSHIFT, 7, movetoworkspace,7"
|
|
"SUPERSHIFT, 8, movetoworkspace,8"
|
|
"SUPERSHIFT, 9, movetoworkspace,9"
|
|
"SUPERSHIFT, 0, movetoworkspace,10"
|
|
|
|
# Lock Screen
|
|
"SUPER, Backspace, exec, ${swaylock}"
|
|
];
|
|
# Mouse
|
|
bindm = [
|
|
"SUPER, mouse:272, movewindow"
|
|
"SUPER, mouse:273, resizewindow"
|
|
];
|
|
};
|
|
}
|