exec-once = /nix/store/c9cnbxhxbagj7gfpc1g5hl4x4f8dzayv-dbus-1.16.2/bin/dbus-update-activation-environment --systemd DISPLAY HYPRLAND_INSTANCE_SIGNATURE WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XDG_SESSION_TYPE && systemctl --user stop hyprland-session.target && systemctl --user start hyprland-session.target exec-once=hyprctl plugin load /nix/store/pp3nj4j10p34f3hx2kdwd6m3yxzkaygd-hyprscrolling-0.53.0/lib/libhyprscrolling.so exec-once=hyprctl plugin load /nix/store/bmrcf2a9sa5adbgmlg38kgzssj7s5wjz-hyprexpo-0.53.0/lib/libhyprexpo.so source=/nix/store/mjbgcv2gizslspivcnr7bpqi7igrs75z-catppuccin-hyprland-0-unstable-2024-06-19/mocha.conf source=/nix/store/09fs6r6g6l8s3a433bzqwbjgp8d5dal1-hyprland-blue-accent.conf windowrule=match:class nm-connection-editor, float 1, center 1, size 900 700 source = /home/henrov/.config/hypr/conf.d/90-hyprscrolling.conf ############################################## # These files are just for reference. # If you want to change anything definitive, edit the source files in: # ~/henrovnix/assets/conf # Temporarily(!) testing can by editing this file, edit the file and reloading hyprshell # # After that, run: # cd ~/henrovnix && emacs README.org --batch -f org-babel-tangle && git add . && git commit -m "Adjusted conf files" && sudo nixos-rebuild switch --flake .# # # If everything still works, you can use the same command but: # - keep "switch" # - and add a reboot: # # cd ~/henrovnix && sudo nixos-rebuild switch --flake .# && systemctl reboot # # NOTE: # Make sure the lines starting with: cd ~/henrovnix # are written as ONE single line. ############################################### ############################ # Variables ############################ # Colors (Hyprland "col" values commonly use rgba(aarrggbb)-style hex) # See Hyprland variable / type docs for color formats & bools. :contentReference[oaicite:2]{index=2} $base = rgba(1e1e2eff) $inactive = rgba(595959aa) $blue = rgba(33ccffee) $green = rgba(00ff99ee) # Recommended for correct environment in systemd user session / portals. :contentReference[oaicite:4]{index=4} exec-once = dbus-update-activation-environment --systemd --all exec-once = uwsm app -- waybar # put these at top-level (recommended), not inside general { }: layerrule = blur on, ignore_alpha 1, match:namespace waybar layerrule = xray 1, match:namespace waybar layerrule = blur on, ignore_alpha 1, match:namespace walker layerrule = xray 1, match:namespace walker layerrule = blur on, ignore_alpha 1, match:namespace swaync-control-center layerrule = blur on, ignore_alpha 1, match:namespace swaync-notification-window input { follow_mouse = 1 kb_layout = us kb_options = ctrl:nocaps sensitivity = -0.5 accel_profile = adaptive scroll_factor = 0.5 touchpad { natural_scroll = yes scroll_factor = 0.5 } } cursor { no_hardware_cursors = true } general { gaps_in = 2 gaps_out = 4 border_size = 2 # Gradient syntax: color color angle (e.g. 45deg). :contentReference[oaicite:5]{index=5} col.active_border = $blue $green 45deg col.inactive_border = $inactive layout = scrolling resize_on_border = true extend_border_grab_area = 20 # Makes it easier to "grab" the edge } decoration { rounding = 5 blur { enabled = yes size = 8 passes = 3 new_optimizations = on } } animations { enabled = yes bezier = myBezier, 0.05, 0.9, 0.1, 1.05 animation = windows, 1, 7, myBezier animation = windowsOut, 1, 7, default, popin 80% animation = border, 1, 10, default animation = borderangle, 1, 8, default animation = fade, 1, 7, default animation = workspaces, 1, 6, default } dwindle { pseudotile = yes preserve_split = yes } misc { disable_hyprland_logo = false focus_on_activate = true } # Start required session helpers exec-once = hypridle exec-once = hyprpolkitagent # Lid close: lock only if no external monitor is connected bindl = , switch:on:Lid Switch, exec, ~/.config/hypr/scripts/lid-lock.sh # Lid open: turn DPMS back on (does not unlock) bindl = , switch:off:Lid Switch, exec, hyprctl dispatch dpms on exec-once = systemd-run --user --scope --unit=elephant elephant exec-once = ~/.config/hypr/scripts/hyprscrolling-listener.sh # --- Repo keybindings --- ############################################## # These files are just for reference. # If you want to change anything, edit the source files in: # ~/henrovnix/assets/conf # # Temporarily(!) testing can by editing this file, edit the file and reloading hyprshell # After that, run: # cd ~/henrovnix && emacs README.org --batch -f org-babel-tangle && git add . && git commit -m "Adjusted conf files" && sudo nixos-rebuild switch --flake .# # # If everything still works, you can use the same command but: # - keep "switch" # - and add a reboot: # # cd ~/henrovnix && sudo nixos-rebuild switch --flake .# && systemctl reboot # # Make sure the lines starting with: cd ~/henrovnix # are written as ONE single line. ############################################### # Keybindings # ############### $mainMod = SUPER # use walker to show exec menu bind = $mainMod, Space , exec, walker bind = $mainMod, P, pseudo bind = $mainMod, T, togglesplit # grimblast bind = $mainMod SHIFT, p, exec, grimblast -n -f copysave active bind = $mainMod SHIFT, a, exec, grimblast -n -f copysave area bind = $mainMod ALT, p, exec, grimblast -n -f copysave output bind = $mainMod CTRL, p, exec, grimblast -n -f copysave screen # Terminal / launcher / kill / reload bind = $mainMod, E, exec, thunar bind = $mainMod, RETURN, exec, kitty bind = $mainMod, D, exec, wofi --show drun bind = $mainMod, Q, killactive, bind = $mainMod SHIFT, Q, exit, bind = $mainMod SHIFT, R, exec, hyprctl reload # Switch windows bind = $mainMod, TAB, hyprexpo:expo, toggle bind = ALT, TAB, cyclenext, # bind = ALT SHIFT, TAB, cyclenext prev # Hyprscrolling bind = $mainMod, period, layoutmsg, move +col bind = $mainMod, comma, layoutmsg, swapcol l # Make / break a tab-group (stack) bind = $mainMod, S, togglegroup # Cycle tabs in the group bind = $mainMod, L, changegroupactive, f bind = $mainMod, H, changegroupactive, b bind = $mainMod, T, exec, ~/.config/hypr/scripts/toggle-layout-scrolling-dwindle.sh # Focus movement bind = $mainMod, H, movefocus, l bind = $mainMod, L, movefocus, r bind = $mainMod, K, movefocus, u bind = $mainMod, J, movefocus, d bind = $mainMod, left, movefocus, l bind = $mainMod, right, movefocus, r bind = $mainMod, up, movefocus, u bind = $mainMod, down, movefocus, d # Move windows bind = $mainMod SHIFT, H, movewindow, l bind = $mainMod SHIFT, L, movewindow, r bind = $mainMod SHIFT, K, movewindow, u bind = $mainMod SHIFT, J, movewindow, d bind = $mainMod SHIFT, left, movewindow, l bind = $mainMod SHIFT, right, movewindow, r bind = $mainMod SHIFT, up, movewindow, u bind = $mainMod SHIFT, down, movewindow, d # Resize windows bind = $mainMod CTRL, H, resizeactive, -30 0 bind = $mainMod CTRL, L, resizeactive, 30 0 bind = $mainMod CTRL, K, resizeactive, 0 -30 bind = $mainMod CTRL, J, resizeactive, 0 30 # Floating / fullscreen bind = $mainMod, V, togglefloating, bind = $mainMod, F, fullscreen, 0 bind = $mainMod SHIFT, F, fullscreen, 1 # Workspaces bind = $mainMod, 1, workspace, 1 bind = $mainMod, 2, workspace, 2 bind = $mainMod, 3, workspace, 3 bind = $mainMod, 4, workspace, 4 bind = $mainMod, 5, workspace, 5 bind = $mainMod, 6, workspace, 6 bind = $mainMod, 7, workspace, 7 bind = $mainMod, 8, workspace, 8 bind = $mainMod, 9, workspace, 9 bind = $mainMod, 0, workspace, 10 bind = $mainMod SHIFT, 1, movetoworkspace, 1 bind = $mainMod SHIFT, 2, movetoworkspace, 2 bind = $mainMod SHIFT, 3, movetoworkspace, 3 bind = $mainMod SHIFT, 4, movetoworkspace, 4 bind = $mainMod SHIFT, 5, movetoworkspace, 5 bind = $mainMod SHIFT, 6, movetoworkspace, 6 bind = $mainMod SHIFT, 7, movetoworkspace, 7 bind = $mainMod SHIFT, 8, movetoworkspace, 8 bind = $mainMod SHIFT, 9, movetoworkspace, 9 bind = $mainMod SHIFT, 0, movetoworkspace, 10 # Cycle workspaces bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_up, workspace, e-1 # Mouse drag bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow ######################### # Screenshots ######################### bind = $mainMod SHIFT, s, exec, grim -g "$(slurp)" - | wl-copy bind = , XF86Screenshot, exec, grim - | wl-copy ######################### # Audio (pamixer) ######################### bind = , XF86AudioRaiseVolume, exec, pamixer -i 5 bind = , XF86AudioLowerVolume, exec, pamixer -d 5 bind = , XF86AudioMute, exec, pamixer -t bind = , XF86AudioMicMute, exec, pamixer --default-source -t ######################### # Media (playerctl) ######################### bind = , XF86AudioPlay, exec, playerctl play-pause bind = , XF86AudioPause, exec, playerctl pause bind = , XF86AudioNext, exec, playerctl next bind = , XF86AudioPrev, exec, playerctl previous bind = , XF86AudioStop, exec, playerctl stop ######################### # Brightness (brightnessctl) ######################### bind = , XF86MonBrightnessUp, exec, brightnessctl set +10% bind = , XF86MonBrightnessDown, exec, brightnessctl set 10%- bind = , XF86KbdBrightnessUp, exec, brightnessctl -d '*kbd_backlight*' set +10% bind = , XF86KbdBrightnessDown, exec, brightnessctl -d '*kbd_backlight*' set 10%- ######################### # Power / session ######################### bind = , XF86Sleep, exec, systemctl suspend bind = , XF86PowerOff, exec, systemctl poweroff bind = , XF86WakeUp, exec, systemctl suspend bind = $mainMod, L, exec, loginctl lock-session bind = $mainMod, X, exec, ~/.config/hypr/scripts/powermenu.sh ######################### # Laptop lid settings ######################### bindl = , switch:on:Lid Switch, exec, ~/.config/hypr/scripts/lid-action.sh bindl = , switch:off:Lid Switch, exec, ~/.config/hypr/scripts/lid-restore.sh ######################### # Start apps ######################### bind = CTRL ALT, B, exec, flatpak run eu.betterbird.Betterbird bind = CTRL ALT, S, exec, spotify bind = $mainMod, z, exec, zeditor bind = $mainMod, w, exec, zen --url https://nextcloud.data-pro.nu # Default portable monitor rule monitor=DP-1,3840x1080@144,1920x0,1 ############################ # Hyprexpo (workspace/window overview) ############################ # Basic plugin config (tweak as you like) plugin { hyprexpo { columns = 3 gaps_in = 5 gaps_out = 20 # Optional; comment out if you don't want it # workspace_method = center current } }