# IMPORTANT: this module requires the system to already have `programs.hyprland` # enabled. You can enable it by importing `share/system/hyprland.nix` { pkgs, ... }: { imports = [ # Custom home manager modules ../hm-modules/wpaperd.nix # Config ./kitty.nix ./wpaperd.nix ./eww ]; wayland.windowManager.hyprland = { enable = true; extraConfig = '' $mod = SUPER bind = $mod SHIFT, Return, exec, kitty general { layout = master } master { mfact = 0.5 new_is_master = false } # workspaces # binds $mod + [shift +] {1..10} to [move to] workspace {1..10} ${builtins.concatStringsSep "\n" (builtins.genList (x: let ws = let c = (x + 1) / 10; in builtins.toString (x + 1 - (c * 10)); in '' bind = $mod, ${ws}, workspace, ${toString (x + 1)} bind = $mod SHIFT, ${ws}, movetoworkspacesilent, ${toString (x + 1)} '') 10)} bind = $mod SHIFT, C, killactive bind = $mod SHIFT, F, togglefloating bind = $mod SHIFT, Q, exit bind = $mod, P, exec, rofi -show drun bind = $mod SHIFT, P, exec, rofi -show run bind = $mod, H, cyclenext, prev bind = $mod, L, cyclenext bind = $mod SHIFT, H, swapnext, prev bind = $mod SHIFT, L, swapnext # audio control binde =, XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ --limit 1.0 5%+ binde =, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ --limit 1.0 5%- bind =, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle # monitor brightness control binde =, XF86MonBrightnessUp, exec, brightnessctl set +5% binde =, XF86MonBrightnessDown, exec, brightnessctl set 5%- # Screenshotting # My stupid laptop outputs these three key codes when the PrtSc key is # pressed instead of using just one code like any sane device would bind = SUPER SHIFT, S, exec, grim -g "$(slurp)" -t jpeg - | wl-copy --type image/jpeg input { # focus change on cursor move follow_mouse = 1 accel_profile = flat } monitor=,preferred,auto,1 # set opacity to 0.9 active and 0.5 inactive for kitty windowrule = opacity 0.9 override 0.5 override,^(kitty)$ ''; }; home.packages = with pkgs; [ brightnessctl wireplumber grim slurp wl-clipboard ]; services.dunst.enable = true; programs.rofi.enable = true; }