My dotfiles for Arch Linux

Move bindings, autostart and monitors to hyprland.conf

I don't want to split everything up in many small files.

Signed-off-by: Jan Ehrhardt <59441+jehrhardt@users.noreply.github.com>

+322 -56
-2
dot_config/hypr/autostart.conf
··· 1 - # Extra autostart processes 2 - # exec-once = uwsm app -- my-service
-16
dot_config/hypr/bindings.conf
··· 1 - # Application bindings 2 - $terminal = uwsm app -- $TERMINAL 3 - $browser = omarchy-launch-browser 4 - $webapp = $browser --app 5 - 6 - bindd = SUPER, return, Terminal, exec, $terminal --working-directory=$(omarchy-cmd-terminal-cwd) 7 - bindd = SUPER, F, File manager, exec, uwsm app -- nautilus --new-window 8 - bindd = SUPER, B, Browser, exec, $browser 9 - bindd = SUPER SHIFT, B, Browser (private), exec, $browser --private 10 - bindd = SUPER, T, Activity, exec, $terminal -e btop 11 - bindd = SUPER, D, Docker, exec, $terminal -e lazydocker 12 - bindd = SUPER, M, Obsidian, exec, uwsm app -- obsidian -enable-features=UseOzonePlatform -ozone-platform=wayland 13 - 14 - # Overwrite existing bindings, like putting Omarchy Menu on Super + Space 15 - # unbind = SUPER, Space 16 - # bindd = SUPER, SPACE, Omarchy menu, exec, omarchy-menu
+314 -4
dot_config/hypr/hyprland.conf
··· 1 1 # Learn how to configure Hyprland: https://wiki.hyprland.org/Configuring/ 2 2 3 3 # Use defaults Omarchy defaults (but don't edit these directly!) 4 - source = ~/.config/hypr/omarchy-default/autostart.conf 5 4 source = ~/.config/hypr/omarchy-default/media.conf 6 5 source = ~/.config/hypr/omarchy-default/tiling.conf 7 6 source = ~/.config/hypr/omarchy-default/utilities.conf ··· 12 11 source = ~/.config/hypr/omarchy-hyprland-theme.conf 13 12 14 13 # Change your own setup in these files (and overwrite any settings from defaults!) 15 - source = ~/.config/hypr/monitors.conf 16 14 source = ~/.config/hypr/input.conf 17 - source = ~/.config/hypr/bindings.conf 18 15 source = ~/.config/hypr/envs.conf 19 16 source = ~/.config/hypr/looknfeel.conf 20 - source = ~/.config/hypr/autostart.conf 17 + 18 + 19 + # Refer to the wiki for more information. 20 + # https://wiki.hypr.land/Configuring/ 21 + 22 + ################ 23 + ### MONITORS ### 24 + ################ 25 + 26 + # See https://wiki.hypr.land/Configuring/Monitors/ 27 + monitor=,preferred,auto,auto 28 + 29 + # Good compromise for 27" or 32" 4K monitors 30 + env = GDK_SCALE,1.75 31 + monitor=,preferred,auto,1.666667 32 + 33 + # Framework 13 w/ 32" 4K monitor 34 + monitor= eDP-1, 2880x1920@120, auto, 2 35 + monitor=DP-2, 3840x2160@60, auto, 1.333333 36 + 37 + ################### 38 + ### MY PROGRAMS ### 39 + ################### 40 + 41 + # See https://wiki.hypr.land/Configuring/Keywords/ 42 + 43 + # Set programs that you use 44 + $terminal = alacritty 45 + $fileManager = $terminal -e yazi 46 + $browser = chromium 47 + $webapp = $browser --app 48 + 49 + ################# 50 + ### AUTOSTART ### 51 + ################# 52 + 53 + # Autostart necessary processes (like notifications daemons, status bars, etc.) 54 + # Or execute your favorite apps at launch like this: 55 + 56 + exec-once = $terminal 57 + exec-once = hypridle 58 + exec-once = mako 59 + exec-once = waybar 60 + exec-once = walker --gapplication-service & 61 + exec-once = systemctl --user start hyprpolkitagent 62 + 63 + ############################# 64 + ### ENVIRONMENT VARIABLES ### 65 + ############################# 66 + 67 + # See https://wiki.hypr.land/Configuring/Environment-variables/ 68 + 69 + env = XCURSOR_SIZE,24 70 + env = HYPRCURSOR_SIZE,24 71 + 72 + 73 + ################### 74 + ### PERMISSIONS ### 75 + ################### 76 + 77 + # See https://wiki.hypr.land/Configuring/Permissions/ 78 + # Please note permission changes here require a Hyprland restart and are not applied on-the-fly 79 + # for security reasons 80 + 81 + # ecosystem { 82 + # enforce_permissions = 1 83 + # } 84 + 85 + # permission = /usr/(bin|local/bin)/grim, screencopy, allow 86 + # permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow 87 + # permission = /usr/(bin|local/bin)/hyprpm, plugin, allow 88 + 89 + 90 + ##################### 91 + ### LOOK AND FEEL ### 92 + ##################### 93 + 94 + # Refer to https://wiki.hypr.land/Configuring/Variables/ 95 + 96 + # https://wiki.hypr.land/Configuring/Variables/#general 97 + general { 98 + gaps_in = 5 99 + gaps_out = 20 100 + 101 + border_size = 2 102 + 103 + # https://wiki.hypr.land/Configuring/Variables/#variable-types for info about colors 104 + col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg 105 + col.inactive_border = rgba(595959aa) 106 + 107 + # Set to true enable resizing windows by clicking and dragging on borders and gaps 108 + resize_on_border = false 109 + 110 + # Please see https://wiki.hypr.land/Configuring/Tearing/ before you turn this on 111 + allow_tearing = false 112 + 113 + layout = dwindle 114 + } 115 + 116 + # https://wiki.hypr.land/Configuring/Variables/#decoration 117 + decoration { 118 + rounding = 10 119 + rounding_power = 2 120 + 121 + # Change transparency of focused and unfocused windows 122 + active_opacity = 1.0 123 + inactive_opacity = 1.0 124 + 125 + shadow { 126 + enabled = true 127 + range = 4 128 + render_power = 3 129 + color = rgba(1a1a1aee) 130 + } 131 + 132 + # https://wiki.hypr.land/Configuring/Variables/#blur 133 + blur { 134 + enabled = true 135 + size = 3 136 + passes = 1 137 + 138 + vibrancy = 0.1696 139 + } 140 + } 141 + 142 + # https://wiki.hypr.land/Configuring/Variables/#animations 143 + animations { 144 + enabled = yes, please :) 145 + 146 + # Default curves, see https://wiki.hypr.land/Configuring/Animations/#curves 147 + # NAME, X0, Y0, X1, Y1 148 + bezier = easeOutQuint, 0.23, 1, 0.32, 1 149 + bezier = easeInOutCubic, 0.65, 0.05, 0.36, 1 150 + bezier = linear, 0, 0, 1, 1 151 + bezier = almostLinear, 0.5, 0.5, 0.75, 1 152 + bezier = quick, 0.15, 0, 0.1, 1 153 + 154 + # Default animations, see https://wiki.hypr.land/Configuring/Animations/ 155 + # NAME, ONOFF, SPEED, CURVE, [STYLE] 156 + animation = global, 1, 10, default 157 + animation = border, 1, 5.39, easeOutQuint 158 + animation = windows, 1, 4.79, easeOutQuint 159 + animation = windowsIn, 1, 4.1, easeOutQuint, popin 87% 160 + animation = windowsOut, 1, 1.49, linear, popin 87% 161 + animation = fadeIn, 1, 1.73, almostLinear 162 + animation = fadeOut, 1, 1.46, almostLinear 163 + animation = fade, 1, 3.03, quick 164 + animation = layers, 1, 3.81, easeOutQuint 165 + animation = layersIn, 1, 4, easeOutQuint, fade 166 + animation = layersOut, 1, 1.5, linear, fade 167 + animation = fadeLayersIn, 1, 1.79, almostLinear 168 + animation = fadeLayersOut, 1, 1.39, almostLinear 169 + animation = workspaces, 1, 1.94, almostLinear, fade 170 + animation = workspacesIn, 1, 1.21, almostLinear, fade 171 + animation = workspacesOut, 1, 1.94, almostLinear, fade 172 + animation = zoomFactor, 1, 7, quick 173 + } 174 + 175 + # Ref https://wiki.hypr.land/Configuring/Workspace-Rules/ 176 + # "Smart gaps" / "No gaps when only" 177 + # uncomment all if you wish to use that. 178 + # workspace = w[tv1], gapsout:0, gapsin:0 179 + # workspace = f[1], gapsout:0, gapsin:0 180 + # windowrule = bordersize 0, floating:0, onworkspace:w[tv1] 181 + # windowrule = rounding 0, floating:0, onworkspace:w[tv1] 182 + # windowrule = bordersize 0, floating:0, onworkspace:f[1] 183 + # windowrule = rounding 0, floating:0, onworkspace:f[1] 184 + 185 + # See https://wiki.hypr.land/Configuring/Dwindle-Layout/ for more 186 + dwindle { 187 + pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below 188 + preserve_split = true # You probably want this 189 + } 190 + 191 + # See https://wiki.hypr.land/Configuring/Master-Layout/ for more 192 + master { 193 + new_status = master 194 + } 195 + 196 + # https://wiki.hypr.land/Configuring/Variables/#misc 197 + misc { 198 + force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers 199 + disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :( 200 + } 201 + 202 + 203 + ############# 204 + ### INPUT ### 205 + ############# 206 + 207 + # https://wiki.hypr.land/Configuring/Variables/#input 208 + input { 209 + kb_layout = us 210 + kb_variant = 211 + kb_model = 212 + kb_options = 213 + kb_rules = 214 + 215 + follow_mouse = 1 216 + 217 + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. 218 + 219 + touchpad { 220 + natural_scroll = false 221 + } 222 + } 223 + 224 + # See https://wiki.hypr.land/Configuring/Gestures 225 + gesture = 3, horizontal, workspace 226 + 227 + # Example per-device config 228 + # See https://wiki.hypr.land/Configuring/Keywords/#per-device-input-configs for more 229 + device { 230 + name = epic-mouse-v1 231 + sensitivity = -0.5 232 + } 233 + 234 + 235 + ################### 236 + ### KEYBINDINGS ### 237 + ################### 238 + 239 + # See https://wiki.hypr.land/Configuring/Keywords/ 240 + $mainMod = SUPER # Sets "Windows" key as main modifier 241 + 242 + # Example binds, see https://wiki.hypr.land/Configuring/Binds/ for more 243 + bindd = $mainMod, return, Terminal, exec, $terminal 244 + bindd = $mainMod, F, File manager, exec, $fileManager 245 + bindd = $mainMod, B, Browser, exec, $browser 246 + bindd = $mainMod SHIFT, B, Browser (private), exec, $browser --private 247 + bindd = $mainMod, T, Activity, exec, $terminal -e btop 248 + bindd = $mainMod, D, Docker, exec, $terminal -e lazydocker 249 + bindd = $mainMod, M, Obsidian, exec, obsidian -enable-features=UseOzonePlatform -ozone-platform=wayland 250 + 251 + 252 + bind = $mainMod, C, killactive, 253 + bind = $mainMod, M, exit, 254 + bind = $mainMod, E, exec, $fileManager 255 + bind = $mainMod, V, togglefloating, 256 + bind = $mainMod, R, exec, $menu 257 + bind = $mainMod, P, pseudo, # dwindle 258 + bind = $mainMod, J, togglesplit, # dwindle 259 + 260 + # Move focus with mainMod + arrow keys 261 + bind = $mainMod, left, movefocus, l 262 + bind = $mainMod, right, movefocus, r 263 + bind = $mainMod, up, movefocus, u 264 + bind = $mainMod, down, movefocus, d 265 + 266 + # Switch workspaces with mainMod + [0-9] 267 + bind = $mainMod, 1, workspace, 1 268 + bind = $mainMod, 2, workspace, 2 269 + bind = $mainMod, 3, workspace, 3 270 + bind = $mainMod, 4, workspace, 4 271 + bind = $mainMod, 5, workspace, 5 272 + bind = $mainMod, 6, workspace, 6 273 + bind = $mainMod, 7, workspace, 7 274 + bind = $mainMod, 8, workspace, 8 275 + bind = $mainMod, 9, workspace, 9 276 + bind = $mainMod, 0, workspace, 10 277 + 278 + # Move active window to a workspace with mainMod + SHIFT + [0-9] 279 + bind = $mainMod SHIFT, 1, movetoworkspace, 1 280 + bind = $mainMod SHIFT, 2, movetoworkspace, 2 281 + bind = $mainMod SHIFT, 3, movetoworkspace, 3 282 + bind = $mainMod SHIFT, 4, movetoworkspace, 4 283 + bind = $mainMod SHIFT, 5, movetoworkspace, 5 284 + bind = $mainMod SHIFT, 6, movetoworkspace, 6 285 + bind = $mainMod SHIFT, 7, movetoworkspace, 7 286 + bind = $mainMod SHIFT, 8, movetoworkspace, 8 287 + bind = $mainMod SHIFT, 9, movetoworkspace, 9 288 + bind = $mainMod SHIFT, 0, movetoworkspace, 10 289 + 290 + # Example special workspace (scratchpad) 291 + bind = $mainMod, S, togglespecialworkspace, magic 292 + bind = $mainMod SHIFT, S, movetoworkspace, special:magic 293 + 294 + # Scroll through existing workspaces with mainMod + scroll 295 + bind = $mainMod, mouse_down, workspace, e+1 296 + bind = $mainMod, mouse_up, workspace, e-1 297 + 298 + # Move/resize windows with mainMod + LMB/RMB and dragging 299 + bindm = $mainMod, mouse:272, movewindow 300 + bindm = $mainMod, mouse:273, resizewindow 301 + 302 + # Laptop multimedia keys for volume and LCD brightness 303 + bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ 304 + bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- 305 + bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle 306 + bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle 307 + bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+ 308 + bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%- 309 + 310 + # Requires playerctl 311 + bindl = , XF86AudioNext, exec, playerctl next 312 + bindl = , XF86AudioPause, exec, playerctl play-pause 313 + bindl = , XF86AudioPlay, exec, playerctl play-pause 314 + bindl = , XF86AudioPrev, exec, playerctl previous 315 + 316 + ############################## 317 + ### WINDOWS AND WORKSPACES ### 318 + ############################## 319 + 320 + # See https://wiki.hypr.land/Configuring/Window-Rules/ for more 321 + # See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules 322 + 323 + # Example windowrule 324 + # windowrule = float,class:^(kitty)$,title:^(kitty)$ 325 + 326 + # Ignore maximize requests from apps. You'll probably like this. 327 + windowrule = suppressevent maximize, class:.* 328 + 329 + # Fix some dragging issues with XWayland 330 + windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
-23
dot_config/hypr/monitors.conf
··· 1 - # See https://wiki.hyprland.org/Configuring/Monitors/ 2 - # List current monitors and resolutions possible: hyprctl monitors 3 - # Format: monitor = [port], resolution, position, scale 4 - # You must relaunch Hyprland after changing any envs (use Super+Esc, then Relaunch) 5 - 6 - # Optimized for retina-class 2x displays, like 13" 2.8K, 27" 5K, 32" 6K. 7 - # env = GDK_SCALE,2 8 - # monitor=,preferred,auto,auto 9 - 10 - # Good compromise for 27" or 32" 4K monitors (but fractional!) 11 - env = GDK_SCALE,1.75 12 - monitor=,preferred,auto,1.666667 13 - 14 - # Straight 1x setup for low-resolution displays like 1080p or 1440p 15 - # env = GDK_SCALE,1 16 - # monitor=,preferred,auto,1 17 - 18 - # Example for Framework 13 w/ 6K XDR Apple display 19 - # monitor = DP-5, 6016x3384@60, auto, 2 20 - # monitor = eDP-1, 2880x1920@120, auto, 2 21 - 22 - monitor= eDP-1, 2880x1920@120, auto, 2 23 - monitor=DP-2, 3840x2160@60, auto, 1.333333
-10
dot_config/hypr/omarchy-default/autostart.conf
··· 1 - exec-once = uwsm app -- hypridle 2 - exec-once = uwsm app -- mako 3 - exec-once = uwsm app -- waybar 4 - exec-once = uwsm app -- fcitx5 5 - exec-once = uwsm app -- swaybg -i ~/.config/omarchy/current/background -m fill 6 - exec-once = uwsm app -- swayosd-server 7 - exec-once = uwsm app -- walker --gapplication-service & 8 - exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 9 - exec-once = wl-clip-persist --clipboard regular --all-mime-type-regex '^(?!x-kde-passwordManagerHint).+' 10 - exec-once = omarchy-cmd-first-run
+1 -1
dot_config/waybar/config.jsonc
··· 58 58 "tooltip-format-disconnected": "Disconnected", 59 59 "interval": 3, 60 60 "spacing": 1, 61 - "on-click": "exec setsid uwsm app -- $TERMINAL --class=Impala -e impala $@" 61 + "on-click": "alacritty -e impala $@" 62 62 }, 63 63 "battery": { 64 64 "format": "{capacity}% {icon}",
+7
run_once_after_setup.sh
··· 86 86 bat \ 87 87 chezmoi \ 88 88 mise \ 89 + yazi \ 90 + btop \ 91 + impala \ 92 + lazydocker \ 93 + docker \ 94 + docker-buildx \ 95 + docker-compose \ 89 96 lazygit \ 90 97 starship \ 91 98 ttf-firacode-nerd \