From: Andrew Date: Wed, 29 Oct 2025 01:26:20 +0000 (-0400) Subject: make hyprland better X-Git-Url: http://git.skullheadx.com/nixos/static/gitweb.css?a=commitdiff_plain;h=6f2074189c24a9853048f8c8c9d9544be534cdb2;p=nixos.git make hyprland better --- diff --git a/hyprland/binds.nix b/hyprland/binds.nix index 477cea9..25e159f 100644 --- a/hyprland/binds.nix +++ b/hyprland/binds.nix @@ -66,15 +66,24 @@ in { "$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'" @@ -82,16 +91,14 @@ in { ", 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; }; diff --git a/hyprland/hyprland.nix b/hyprland/hyprland.nix index 12ea0a8..20f7208 100644 --- a/hyprland/hyprland.nix +++ b/hyprland/hyprland.nix @@ -8,13 +8,55 @@ ]; 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" @@ -34,37 +76,53 @@ "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; + }; }; }; }