"$mod CTRL, k, resizeactive, 0 -25"
"$mod CTRL, l, resizeactive, 25 0"
- "$mod, D, exec, app -- ghostty"
+ "$mod, a, togglespecialworkspace, term"
+ "$mod, m, togglespecialworkspace, music"
+ "$mod, p, togglespecialworkspace, password"
+ "$mod SHIFT, a, movetoworkspace, special:term"
+ "$mod SHIFT, m, movetoworkspace, special:music"
+ "$mod SHIFT, p, movetoworkspace, special:password"
+
+ "$mod, g, layoutmsg, swapwithmaster"
+
+ "$mod, return, exec, ghostty"
"$mod, b, exec, librewolf"
"$mod, space, exec, pkill rofi || rofi -show drun"
- "$mod, p, exec, pkill hyprpicker || hyprpicker -ar"
+ "$mod, o, exec, pkill hyprpicker || hyprpicker -ar"
+
"$mod SHIFT, s, exec, pkill slurp || grim -g \"$(slurp)\" - | wl-copy"
", PRINT, exec, grim - | wl-copy"
"SHIFT, PRINT, exec, pkill slurp swappy || grim -g \"$(slurp)\" - | swappy -f -"
", XF86Explorer, exec, hyprlock"
- ", F1, exec, hyprlock"
", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ && notify-send 'Volume Up'"
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- && notify-send 'Volume Down'"
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && notify-send 'Mute Toggled'"
", XF86AudioPrev, exec, playerctl previous && notify-send 'Previous Song'"
", XF86AudioPlay, exec, playerctl play-pause && notify-send 'Pause/Play Toggled'"
", XF86AudioStop, exec, playerctl stop && notify-send 'Music Stopped'"
- ", F11, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ && notify-send 'Volume Up'"
- ", F10, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- && notify-send 'Volume Down'"
- ", F9, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && notify-send 'Mute Toggled'"
- ", F6, exec, playerctl next && notify-send 'Next Song'"
- ", F5, exec, playerctl previous && notify-send 'Previous Song'"
- ", F7, exec, playerctl play-pause && notify-send 'Pause/Play Toggled'"
- ", F8, exec, playerctl stop && notify-send 'Music Stopped'"
-
- ", F4, workspace, 3"
- ", XF86Tools, workspace, 3"
+ "$mod, F1, exec, hyprlock"
+ "$mod, F11, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ && notify-send 'Volume Up'"
+ "$mod, F10, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- && notify-send 'Volume Down'"
+ "$mod, F9, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && notify-send 'Mute Toggled'"
+ "$mod, F6, exec, playerctl next && notify-send 'Next Song'"
+ "$mod, F5, exec, playerctl previous && notify-send 'Previous Song'"
+ "$mod, F7, exec, playerctl play-pause && notify-send 'Pause/Play Toggled'"
+ "$mod, F8, exec, playerctl stop && notify-send 'Music Stopped'"
]
++ workspaces;
};
];
wayland.windowManager.hyprland = {
enable = true;
- systemd.enable = false;
settings = {
+ animations.enabled = true;
+ animation = [
+ "specialWorkspaceIn, 1, 10, default, slide top"
+ "specialWorkspaceOut, 1, 10, default, slide bottom"
+ ];
+ general = {
+ layout = "master";
+ };
+ master = {
+ new_on_top = true;
+ };
+ cursor = {
+ enable_hyprcursor = true;
+ default_monitor = "DP-3";
+ };
+ ecosystem = {
+ no_update_news = true;
+ no_donation_nag = true;
+ };
env = [
"EDITOR,nvim"
"VISUAL,nvim"
- "HYPRCURSOR_THEME,Bibata-Original-Classic"
+ # --- AMD GPU (critical) ---
+ "LIBVA_DRIVER_NAME,radeonsi" # VAAPI video accel
+ "XDG_SESSION_TYPE,wayland"
+ "GBM_BACKEND,wayland"
+ "WLR_BACKEND,wayland"
+ "WLR_RENDERER_ALLOW_SOFTWARE,1" # Fallback if needed
+ "WLR_NO_HARDWARE_CURSORS,1" # Fix cursor bugs on some AMD
+
+ #Performance & VRR ---
+ "WLR_DRM_NO_ATOMIC,1" # Fix blank screen on some drivers
+ "AMD_VULKAN_ICD,RADV" # Force RADV (Mesa Vulkan)
+ "__GLX_VENDOR_LIBRARY_NAME,mesa"
+
+ #Input & Scaling ---
"HYPRCURSOR_SIZE,24"
+ "HYPRCURSOR_THEME,Bibata-Original-Classic"
+ "QT_QPA_PLATFORM,wayland"
+ "QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
+ "GDK_BACKEND,wayland"
+ "SDL_VIDEODRIVER,wayland"
+ "CLUTTER_BACKEND,wayland"
+
+ # Polish ---
+ "WLR_DRM_DEVICES,/dev/dri/card0" # Multi-GPU: force primary
+ "MOZ_ENABLE_WAYLAND,1" # Firefox
+ "ELECTRON_OZONE_PLATFORM_HINT,auto" # Electron apps
];
monitor = [
"DP-3,2560x1440@180.00,0x0,1"
"4, monitor:DP-2"
"5, monitor:DP-3"
"6, monitor:DP-2"
- "7, monitor:DP-2"
+ "7, monitor:DP-3"
"8, monitor:DP-2"
"9, monitor:DP-3"
"10, monitor:DP-2"
"w[tv1], gapsout:0, gapsin:0"
"f[1], gapsout:0, gapsin:0"
+ "special:term, monitor:DP-3, gapsout:0, gapsin:0, border:false"
+ "special:music, monitor:DP-3, gapsout:0, gapsin:0, border:false"
+ "special:password, monitor:DP-3, gapsout:0, gapsin:0, border:false"
];
exec-once = [
"gnome-keyring-daemon --replace --start --components=pkcs11,secrets,ssh"
"xrandr --output DP-3 --primary"
- "app -- waybar"
+ "waybar"
"nm-applet --indicator"
"/run/current-system/sw/libexec/polkit-gnome-authentication-agent-1"
- "[workspace 1 silent] app -- ghostty -e tmux attach -t dev || tmux new -s dev -c ~/dev"
- "[workspace 2 silent] app -- librewolf"
- #"[workspace 3 silent] app -- ghostty -e fish -c rmpc"
- "[workspace 3 silent] app -- discord"
- "[workspace 4 silent] app -- keepassxc"
- #"[workspace 8 silent] app -- steam"
- #"[workspace 9 silent] app -- obsidian"
+ "[workspace 1 silent] ghostty -e tmux attach -t dev || tmux new -s dev -c ~/dev"
+ "[workspace 2 silent] librewolf"
+ #"[workspace 3 silent] ghostty -e fish -c rmpc"
+ "[workspace 3 silent] discord"
+ "[workspace special:password silent] keepassxc"
+ "[workspace special:term silent] ghostty"
+ "[workspace special:music silent] ghostty -e rmpc"
+ #"[workspace 8 silent] steam"
+ #"[workspace 9 silent] obsidian"
];
windowrule = [
"workspace 3 silent, class:(discord)"
"workspace 6 silent, class:(steam)"
- "workspace 4 silent, class:(org.keepassxc.KeePassXC)"
"bordersize 0, floating:0, onworkspace:w[tv1]"
"rounding 0, floating:0, onworkspace:w[tv1]"
"bordersize 0, floating:0, onworkspace:f[1]"
"rounding 0, floating:0, onworkspace:f[1]"
+
+ "float, onworkspace:special"
+ "center, onworkspace:special"
+ "size 800 600, onworkspace:special"
+ "rounding 12, onworkspace:special"
+ "noborder, onworkspace:special" # or "border 0"
+ #"animation slide top, onworkspace:special"
+ #"animation fade, onworkspace:special, 0.9"
];
+ misc = {
+ disable_hyprland_logo = true;
+ disable_splash_rendering = true;
+ };
};
};
}