🔧 Where my dotfiles lives in harmony and peace, most of the time
at main 7.8 kB view raw
1# Hyprland Configuration 2 3# Monitors - https://wiki.hyprland.org/Configuring/Monitors/ 4source=~/.config/hypr/monitor.conf 5 6# Autostart Applications 7exec-once = uwsm app -- hypridle 8exec-once = uwsm app -- hyprpaper 9exec-once = uwsm app -- waybar 10exec-once = uwsm app -- mako 11exec-once = uwsm app -- nm-applet 12 13# Clipboard Manager 14exec-once = uwsm app -- wl-clip-persist --clipboard regular 15exec-once = uwsm app -- wl-paste --type text --watch cliphist store 16exec-once = uwsm app -- wl-paste --type image --watch cliphist store 17 18# Theme 19source=~/.config/hypr/frappe.conf 20 21# Programs 22$terminal = alacritty 23$fileManager = thunar 24$menu = fuzzel 25 26# Environment Variables 27env = EDITOR,code --wait 28env = ELECTRON_OZONE_PLATFORM_HINT,wayland 29env = GDK_BACKEND,wayland 30 31# Inputs - https://wiki.hyprland.org/Configuring/Variables/#input 32input { 33 numlock_by_default = true 34 kb_layout = es 35 36 follow_mouse = 1 37 38 touchpad { 39 natural_scroll = no 40 } 41 42 sensitivity = 0 43} 44 45# Permissions 46# permission = /usr/(bin|local/bin)/grim, screencopy, allow 47# permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow 48# permission = /usr/(bin|local/bin)/hyprpm, plugin, allow 49 50# General - https://wiki.hyprland.org/Configuring/Variables/ 51general { 52 gaps_in = 6 53 gaps_out = 12 54 border_size = 3 55 col.active_border = $blue $green 90deg 56 col.inactive_border = $crust 57 layout = dwindle 58} 59 60# Ecosystem - https://wiki.hyprland.org/Configuring/Permissions/ 61ecosystem { 62 no_update_news = true 63} 64 65# XWayland - https://wiki.hyprland.org/Configuring/XWayland/ 66xwayland { 67 force_zero_scaling = true 68} 69 70# Decorations - https://wiki.hyprland.org/Configuring/Variables/ 71decoration { 72 rounding = 0 73 74 shadow { 75 enabled = false 76 } 77 78 blur { 79 enabled = false 80 } 81} 82 83# Animations - https://wiki.hyprland.org/Configuring/Animations/ 84animations { 85 enabled = yes 86 87 animation = windows, 1, 5, default, popin 88 animation = fade, 1, 5, default 89 animation = border, 1, 10, default 90 animation = borderangle, 1, 10, default 91 animation = workspaces, 1, 5, default 92} 93 94# Dwindle - https://wiki.hyprland.org/Configuring/Dwindle-Layout/ 95dwindle { 96 pseudotile = yes 97 preserve_split = yes 98 force_split = 2 99} 100 101# Smart Gaps - https://wiki.hyprland.org/Configuring/Workspace-Rules/ 102workspace = w[tv1], gapsout:0, gapsin:0 103workspace = f[1], gapsout:0, gapsin:0 104windowrule = match:workspace w[tv1], match:float no, border_size 0 105windowrule = match:workspace w[tv1], match:float no, rounding 0 106windowrule = match:workspace f[1], match:float no, border_size 0 107windowrule = match:workspace f[1], match:float no, rounding 0 108 109# Layout - https://wiki.hyprland.org/Configuring/Master-Layout/ 110master { 111 new_status = master 112} 113 114# Gestures - https://wiki.hyprland.org/Configuring/Variables/#gestures 115gestures { 116} 117 118# Misc - https://wiki.hyprland.org/Configuring/Variables/#misc 119misc { 120 force_default_wallpaper = false 121 disable_hyprland_logo = true 122 disable_splash_rendering = true 123} 124 125# Keywords - https://wiki.hyprland.org/Configuring/Keywords/ 126$mainMod = SUPER 127 128# Binds - https://wiki.hyprland.org/Configuring/Binds/ 129bind = $mainMod, Return, exec, uwsm app -- $terminal 130bind = $mainMod SHIFT, Q, killactive, 131bind = $mainMod, M, exit, 132bind = $mainMod, E, exec, uwsm app -- $fileManager 133bind = $mainMod, V, togglefloating, 134bind = $mainMod, F, fullscreen, 135bind = $mainMod, BackSpace, exec, uwsm app -- $menu 136bind = $mainMod, P, pseudo, 137bind = $mainMod, J, togglesplit, 138 139# Move focus with mainMod + arrow keys 140bind = $mainMod, left, movefocus, l 141bind = $mainMod, right, movefocus, r 142bind = $mainMod, up, movefocus, u 143bind = $mainMod, down, movefocus, d 144 145# Move windows with mainMod + SHIFT + arrow keys 146bind = $mainMod SHIFT, left, movewindow, l 147bind = $mainMod SHIFT, right, movewindow, r 148bind = $mainMod SHIFT, up, movewindow, u 149bind = $mainMod SHIFT, down, movewindow, d 150 151# Switch workspaces with mainMod + [0-9] 152bind = $mainMod, 1, workspace, 1 153bind = $mainMod, 2, workspace, 2 154bind = $mainMod, 3, workspace, 3 155bind = $mainMod, 4, workspace, 4 156bind = $mainMod, 5, workspace, 5 157bind = $mainMod, 6, workspace, 6 158bind = $mainMod, 7, workspace, 7 159bind = $mainMod, 8, workspace, 8 160bind = $mainMod, 9, workspace, 9 161bind = $mainMod, 0, workspace, 10 162 163# Move active window to a workspace with mainMod + SHIFT + [0-9] 164bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1 165bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2 166bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3 167bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4 168bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5 169bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6 170bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7 171bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8 172bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9 173bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10 174 175# Special workspace (scratchpad) 176bind = $mainMod, S, togglespecialworkspace, magic 177bind = $mainMod SHIFT, S, movetoworkspace, special:magic 178 179# Scroll through existing workspaces with mainMod + scroll 180bind = $mainMod, mouse_down, workspace, e+1 181bind = $mainMod, mouse_up, workspace, e-1 182 183# Move/resize windows with mainMod + LMB/RMB and dragging 184bindm = $mainMod, mouse:272, movewindow 185bindm = $mainMod, mouse:273, resizewindow 186 187# Screenshots 188bind = , PRINT, exec, hyprshot -m output 189bind = SHIFT, PRINT, exec, hyprshot -m region 190bind = $mainMod shift, p, exec, hyprshot -m region 191bind = CTRL, PRINT, exec, hyprshot -m window 192 193# Open Code Projects 194bind = $mainMod shift, BackSpace, exec, ls "$HOME/projects" | fuzzel -x 20 -d -I --prompt="🖥️ > " | xargs -I {} uwsm app -- code -n "$HOME/projects/{}" 195 196# Open AI Agent in Project 197bind = $mainMod shift, minus, exec, open-ai-agent 198 199# AI 200bind = $mainMod SHIFT, A, exec, uwsm app -- brave --app=https://chatgpt.com/?model=gpt-5-2 201bind = $mainMod SHIFT, Y, exec, magic-brush 202 203# Todoist 204bind = $mainMod SHIFT, T, exec, uwsm app -- brave --app=https://app.todoist.com/app/today 205 206# Brave Browser 207bind = $mainMod SHIFT, B, exec, uwsm app -- brave 208 209# Open Common Projects 210bind = $mainMod SHIFT, n, exec, uwsm app -- code -n "$HOME/projects/notes" 211bind = $mainMod SHIFT, h, exec, uwsm app -- code -n "$HOME/projects/handbook" 212 213# Emoji 214bind = $mainMod SHIFT, E, exec, uwsm app -- bemoji -n 215 216# Whisper 217bind = $mainMod SHIFT, O, exec, whispr 218 219# Volume 220bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 2%+ 221bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%- 222bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle 223bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle 224 225# Multimedia Control 226bindl = , XF86AudioNext, exec, playerctl next 227bindl = , XF86AudioPause, exec, playerctl play-pause 228bindl = , XF86AudioPlay, exec, playerctl play-pause 229bindl = , XF86AudioPrev, exec, playerctl previous 230 231# Screen 232bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+ 233bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%- 234 235# Ignore maximize requests from apps 236windowrule = match:class .*, suppress_event maximize 237 238# Resize mode 239bind = $mainMod, R, submap, resize 240submap = resize 241bind = , right, resizeactive, 40 0 242bind = , left, resizeactive, -40 0 243bind = , up, resizeactive, 0 -40 244bind= , down, resizeactive, 0 40 245bind = , escape, submap, reset 246bind = , return, submap, reset 247submap = reset 248 249# Exit mode 250bind = $mainMod shift, l, submap, EXIT 251submap = EXIT 252bind = , s, exec, systemctl suspend 253bind = , r, exec, systemctl reboot 254bind = , p, exec, systemctl poweroff -i 255bind = , l, exec, uwsm app -- hyprlock && hyprctl dispatch submap reset 256bind = , escape, submap, reset 257bind = , return, submap, reset 258submap = reset