me like nix
1# Sample hyprland.conf (save as e.g. /etc/nixos/hyprland.conf)
2# See https://wiki.hyprland.org/Configuring/Variables/ for more
3
4# Monitor setup (adjust to your needs)
5monitor=,preferred,auto,2 # preferred monitor, auto resolution, auto position, scale 1
6
7# Autostart some essential programs
8exec-once = waybar # Starts Waybar (if you configure it later)
9
10#exec-once = swaybg -m fill -i /path/to/your/wallpaper.png
11# You'll need to find/download a wallpaper
12# Or use `pkgs.swaybg` and specify a package path if you want
13
14exec-once = lxqt-policykit-agent # Starts the polkit agent for authentication
15exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # For portals
16exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # For portals
17# exec-once = mako # Starts Mako notification daemon (if you configure it later)
18# exec-once = cliphist store # Start clipboard history
19
20# Environment variables that Hyprland itself should set
21env = XCURSOR_SIZE,24
22# env = GDK_BACKEND,wayland,x11 # Already in home.sessionVariables generally
23# env = QT_QPA_PLATFORM,wayland;xcb # Already in home.sessionVariables
24# env = SDL_VIDEODRIVER,wayland # Already in home.sessionVariables
25# env = CLUTTER_BACKEND,wayland # Already in home.sessionVariables
26# env = XDG_CURRENT_DESKTOP,Hyprland # Already in home.sessionVariables
27# env = XDG_SESSION_TYPE,wayland # Already in home.sessionVariables
28# env = XDG_SESSION_DESKTOP,Hyprland # Already in home.sessionVariables
29
30# Input settings
31input {
32 kb_layout = us
33 kb_variant =
34 kb_model =
35 kb_options =
36 kb_rules =
37
38 follow_mouse = 1
39
40 touchpad {
41 natural_scroll = no
42 }
43
44 sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
45}
46
47# General settings
48general {
49 gaps_in = 5
50 gaps_out = 10
51 border_size = 2
52 col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
53 col.inactive_border = rgba(595959aa)
54
55 layout = dwindle # master or dwindle
56}
57
58# Decoration (window borders, shadows)
59decoration {
60 rounding = 5
61 blur {
62 enabled = true
63 size = 3
64 passes = 1
65 }
66
67}
68
69# Animations
70animations {
71 enabled = yes
72 bezier = myBezier, 0.05, 0.9, 0.1, 1.05
73 animation = windows, 1, 7, myBezier
74 animation = windowsOut, 1, 7, default, popin 80%
75 animation = border, 1, 10, default
76 animation = fade, 1, 7, default
77 animation = workspaces, 1, 6, default
78}
79
80# Dwindle layout specific
81dwindle {
82 pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
83 preserve_split = yes # you probably want this
84}
85
86
87# Gestures (for touchpads)
88gestures {
89 workspace_swipe = off
90}
91
92# Window rules (example)
93# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ # Example to float kitty terminal
94
95# --- KEYBINDINGS ---
96$mainMod = SUPER # Sets the "Windows" key as the main modifier
97
98# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
99bind = $mainMod, RETURN, exec, kitty # Open terminal (kitty)
100bind = $mainMod, Q, exec, kitty # Alternative to open terminal
101bind = $mainMod, C, killactive, # Close active window
102bind = $mainMod SHIFT, Q, exit, # Exit Hyprland (ends session)
103bind = $mainMod, E, exec, nemo # Open file manager (nemo, install it if you want it)
104bind = $mainMod, V, togglefloating, # Toggle floating for active window
105bind = $mainMod, D, exec, wofi --show drun # Show application launcher (wofi)
106bind = $mainMod, P, pseudo, # dwindle
107bind = $mainMod, J, togglesplit, # dwindle
108
109# Move focus with mainMod + arrow keys
110bind = $mainMod, left, movefocus, l
111bind = $mainMod, right, movefocus, r
112bind = $mainMod, up, movefocus, u
113bind = $mainMod, down, movefocus, d
114
115# Switch workspaces with mainMod + [0-9]
116bind = $mainMod, 1, workspace, 1
117bind = $mainMod, 2, workspace, 2
118bind = $mainMod, 3, workspace, 3
119# ... up to 9 and 0
120
121# Move active window to a workspace with mainMod + SHIFT + [0-9]
122bind = $mainMod SHIFT, 1, movetoworkspace, 1
123bind = $mainMod SHIFT, 2, movetoworkspace, 2
124bind = $mainMod SHIFT, 3, movetoworkspace, 3
125# ... up to 9 and 0
126
127# Scroll through existing workspaces with mainMod + scroll
128bind = $mainMod, mouse_down, workspace, e+1
129bind = $mainMod, mouse_up, workspace, e-1
130
131# Move/resize windows with mainMod + LMB/RMB and dragging
132bindm = $mainMod, mouse:272, movewindow
133bindm = $mainMod, mouse:273, resizewindow