Arch 2025 rice. Also contains a newly inspired neovim config.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

313 lines
9.3 KiB

2 weeks ago
  1. # This is an example Hyprland config file.
  2. # Refer to the wiki for more information.
  3. # https://wiki.hyprland.org/Configuring/
  4. # Please note not all available settings / options are set here.
  5. # For a full list, see the wiki
  6. # You can split this configuration into multiple files
  7. # Create your files separately and then link them to this file like this:
  8. # source = ~/.config/hypr/myColors.conf
  9. ################
  10. ### MONITORS ###
  11. ################
  12. # See https://wiki.hyprland.org/Configuring/Monitors/
  13. monitor=eDP-1, 1920x1080@60, 0x0, 1
  14. # why the skibidi is this here.
  15. monitor=Unknown-1, disable
  16. ###################
  17. ### MY PROGRAMS ###
  18. ###################
  19. # See https://wiki.hyprland.org/Configuring/Keywords/
  20. # Set programs that you use
  21. $terminal = alacritty
  22. $fileManager = dolphin
  23. $browser = firefox
  24. $menu = rofi -show drun
  25. #################
  26. ### AUTOSTART ###
  27. #################
  28. # Autostart necessary processes (like notifications daemons, status bars, etc.)
  29. # Or execute your favorite apps at launch like this:
  30. # exec-once = $terminal
  31. # exec-once = nm-applet &
  32. # exec-once = waybar & hyprpaper & firefox
  33. exec-once = hyprpaper
  34. exec-once = waybar
  35. #############################
  36. ### ENVIRONMENT VARIABLES ###
  37. #############################
  38. # See https://wiki.hyprland.org/Configuring/Environment-variables/
  39. env = XCURSOR_SIZE,24
  40. env = HYPRCURSOR_SIZE,24
  41. #####################
  42. ### LOOK AND FEEL ###
  43. #####################
  44. # Refer to https://wiki.hyprland.org/Configuring/Variables/
  45. # https://wiki.hyprland.org/Configuring/Variables/#general
  46. general {
  47. gaps_in = 5
  48. gaps_out = 20
  49. border_size = 2
  50. # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
  51. col.active_border = rgba(93b259ee)
  52. col.inactive_border = rgba(595959aa)
  53. # Set to true enable resizing windows by clicking and dragging on borders and gaps
  54. resize_on_border = false
  55. # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
  56. allow_tearing = false
  57. layout = dwindle
  58. }
  59. # https://wiki.hyprland.org/Configuring/Variables/#decoration
  60. decoration {
  61. rounding = 10
  62. # Change transparency of focused and unfocused windows
  63. active_opacity = 1.0
  64. inactive_opacity = 1.0
  65. shadow {
  66. enabled = true
  67. range = 4
  68. render_power = 3
  69. color = rgba(1a1a1aee)
  70. }
  71. # https://wiki.hyprland.org/Configuring/Variables/#blur
  72. blur {
  73. enabled = true
  74. size = 3
  75. passes = 1
  76. vibrancy = 0.1696
  77. }
  78. }
  79. # https://wiki.hyprland.org/Configuring/Variables/#animations
  80. animations {
  81. enabled = yes, please :)
  82. # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
  83. bezier = easeOutQuint,0.23,1,0.32,1
  84. bezier = easeInOutCubic,0.65,0.05,0.36,1
  85. bezier = linear,0,0,1,1
  86. bezier = almostLinear,0.5,0.5,0.75,1.0
  87. bezier = quick,0.15,0,0.1,1
  88. animation = global, 1, 10, default
  89. animation = border, 1, 5.39, easeOutQuint
  90. animation = windows, 1, 4.79, easeOutQuint
  91. animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
  92. animation = windowsOut, 1, 1.49, linear, popin 87%
  93. animation = fadeIn, 1, 1.73, almostLinear
  94. animation = fadeOut, 1, 1.46, almostLinear
  95. animation = fade, 1, 3.03, quick
  96. animation = layers, 1, 3.81, easeOutQuint
  97. animation = layersIn, 1, 4, easeOutQuint, fade
  98. animation = layersOut, 1, 1.5, linear, fade
  99. animation = fadeLayersIn, 1, 1.79, almostLinear
  100. animation = fadeLayersOut, 1, 1.39, almostLinear
  101. animation = workspaces, 1, 1.94, almostLinear, fade
  102. animation = workspacesIn, 1, 1.21, almostLinear, fade
  103. animation = workspacesOut, 1, 1.94, almostLinear, fade
  104. }
  105. # Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
  106. # "Smart gaps" / "No gaps when only"
  107. # uncomment all if you wish to use that.
  108. # workspace = w[tv1], gapsout:0, gapsin:0
  109. # workspace = f[1], gapsout:0, gapsin:0
  110. # windowrulev2 = bordersize 0, floating:0, onworkspace:w[tv1]
  111. # windowrulev2 = rounding 0, floating:0, onworkspace:w[tv1]
  112. # windowrulev2 = bordersize 0, floating:0, onworkspace:f[1]
  113. # windowrulev2 = rounding 0, floating:0, onworkspace:f[1]
  114. # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
  115. dwindle {
  116. pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
  117. preserve_split = true # You probably want this
  118. }
  119. # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
  120. master {
  121. new_status = master
  122. }
  123. # https://wiki.hyprland.org/Configuring/Variables/#misc
  124. misc {
  125. force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
  126. disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :(
  127. }
  128. #############
  129. ### INPUT ###
  130. #############
  131. # https://wiki.hyprland.org/Configuring/Variables/#input
  132. input {
  133. kb_layout = us
  134. kb_variant =
  135. kb_model =
  136. kb_options =
  137. kb_rules =
  138. follow_mouse = 1
  139. sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
  140. touchpad {
  141. natural_scroll = true
  142. tap-to-click = false
  143. }
  144. }
  145. # https://wiki.hyprland.org/Configuring/Variables/#gestures
  146. gestures {
  147. workspace_swipe = false
  148. }
  149. # Example per-device config
  150. # See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
  151. device {
  152. name = epic-mouse-v1
  153. sensitivity = -0.5
  154. }
  155. ###################
  156. ### KEYBINDINGS ###
  157. ###################
  158. # See https://wiki.hyprland.org/Configuring/Keywords/
  159. $mainMod = SUPER # Sets "Windows" key as main modifier
  160. # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
  161. bind = $mainMod SHIFT, A, exec, $terminal
  162. bind = $mainMod SHIFT, Q, killactive,
  163. bind = $mainMod SHIFT, E, exit,
  164. #bind = $mainMod, E, exec, $fileManager
  165. bind = $mainMod SHIFT, W, exec, firefox
  166. bind = $mainMod, V, togglefloating,
  167. bind = $mainMod, SPACE, exec, $menu
  168. bind = $mainMod, P, pseudo, # dwindle
  169. #bind = $mainMod, J, togglesplit, # dwindle
  170. # Move focus with mainMod + arrow keys
  171. bind = $mainMod, h, movefocus, l
  172. bind = $mainMod, l, movefocus, r
  173. bind = $mainMod, k, movefocus, u
  174. bind = $mainMod, j, movefocus, d
  175. bind = $mainMod SHIFT, h, movewindow, l
  176. bind = $mainMod SHIFT, l, movewindow, r
  177. bind = $mainMod SHIFT, k, movewindow, u
  178. bind = $mainMod SHIFT, j, movewindow, d
  179. # Switch workspaces with mainMod + [0-9]
  180. bind = $mainMod, 1, workspace, 1
  181. bind = $mainMod, 2, workspace, 2
  182. bind = $mainMod, 3, workspace, 3
  183. bind = $mainMod, 4, workspace, 4
  184. bind = $mainMod, 5, workspace, 5
  185. bind = $mainMod, 6, workspace, 6
  186. bind = $mainMod, 7, workspace, 7
  187. bind = $mainMod, 8, workspace, 8
  188. bind = $mainMod, 9, workspace, 9
  189. bind = $mainMod, 0, workspace, 10
  190. # Move active window to a workspace with mainMod + SHIFT + [0-9]
  191. bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1
  192. bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
  193. bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
  194. bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
  195. bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
  196. bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
  197. bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
  198. bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
  199. bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
  200. bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10
  201. # Example special workspace (scratchpad)
  202. bind = $mainMod, S, togglespecialworkspace, magic
  203. bind = $mainMod SHIFT, S, movetoworkspace, special:magic
  204. # Scroll through existing workspaces with mainMod + scroll
  205. bind = $mainMod, mouse_down, workspace, e+1
  206. bind = $mainMod, mouse_up, workspace, e-1
  207. # Move/resize windows with mainMod + LMB/RMB and dragging
  208. bindm = $mainMod, mouse:272, movewindow
  209. bindm = $mainMod, mouse:273, resizewindow
  210. # Laptop multimedia keys for volume and LCD brightness
  211. bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
  212. bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
  213. bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
  214. bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
  215. bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+
  216. bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-
  217. # Requires playerctl
  218. bindl = , XF86AudioNext, exec, playerctl next
  219. bindl = , XF86AudioPause, exec, playerctl play-pause
  220. bindl = , XF86AudioPlay, exec, playerctl play-pause
  221. bindl = , XF86AudioPrev, exec, playerctl previous
  222. # Screen Locker
  223. bindl = , switch:Lid Switch, exec, hyprlock
  224. ##############################
  225. ### WINDOWS AND WORKSPACES ###
  226. ##############################
  227. # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
  228. # See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
  229. # Example windowrule v1
  230. # windowrule = float, ^(kitty)$
  231. # Example windowrule v2
  232. # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
  233. windowrulev2 = workspace 1,class:Alacritty
  234. windowrulev2 = workspace 1,class:kitty
  235. windowrulev2 = workspace 3,class:Code
  236. windowrulev2 = workspace 3,class:jetbrains
  237. windowrulev2 = workspace 3,class:sublime
  238. windowrulev2 = workspace 2,class:firefox
  239. windowrulev2 = workspace 8,class:discord
  240. windowrulev2 = workspace 8 float,class:zoom
  241. windowrulev2 = workspace 7 float,class:Blueberry.py
  242. # Ignore maximize requests from apps. You'll probably like this.
  243. windowrulev2 = suppressevent maximize, class:.*
  244. # Fix some dragging issues with XWayland
  245. windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0