hyprland.conf.tmpl

  1#
  2# Please note not all available settings / options are set here.
  3# For a full list, see the wiki
  4#
  5
  6# See https://wiki.hyprland.org/Configuring/Monitors/
  7{{- if eq .chezmoi.hostname "angmar" }}
  8monitor=DP-1,2560x1440@165,auto,auto
  9{{- else if eq .chezmoi.hostname "sidhe" }}
 10monitor=eDP-1,2256x1504@60,auto,auto
 11{{- end }}
 12
 13xwayland {
 14    force_zero_scaling = true
 15}
 16
 17# See https://wiki.hyprland.org/Configuring/Keywords/ for more
 18
 19# Execute your favorite apps at launch
 20# exec-once = waybar & hyprpaper & firefox
 21
 22# Source a file (multi-file configs)
 23# source = ~/.config/hypr/myColors.conf
 24
 25# Some default env vars.
 26env = XCURSOR_SIZE,24
 27
 28# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
 29input {
 30    kb_layout    = us
 31    kb_variant   =
 32    kb_model     =
 33    kb_options   = compose:ralt
 34    kb_rules     =
 35    repeat_rate  = 60
 36    repeat_delay = 300
 37
 38    follow_mouse = 1
 39
 40    touchpad {
 41        natural_scroll       = no
 42        disable_while_typing = yes
 43        clickfinger_behavior = yes
 44        tap-to-click         = yes
 45        drag_lock            = yes
 46        tap-and-drag         = yes
 47    }
 48
 49    sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
 50}
 51
 52general {
 53    # See https://wiki.hyprland.org/Configuring/Variables/ for more
 54
 55    gaps_in     = 10
 56    gaps_out    = 10
 57    border_size = 2
 58    col.active_border   = rgba(33ccffee) rgba(00ff99ee) 45deg
 59    col.inactive_border = rgba(595959aa)
 60
 61    resize_on_border        = yes
 62    extend_border_grab_area = yes
 63    hover_icon_on_border    = yes
 64
 65    layout = dwindle
 66
 67    # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
 68    allow_tearing = false
 69}
 70
 71decoration {
 72    # See https://wiki.hyprland.org/Configuring/Variables/ for more
 73
 74    rounding = 10
 75
 76    blur {
 77        enabled = true
 78        size = 3
 79        passes = 1
 80    }
 81
 82    drop_shadow = yes
 83    shadow_range = 4
 84    shadow_render_power = 3
 85    col.shadow = rgba(1a1a1aee)
 86}
 87
 88animations {
 89    enabled = yes
 90
 91    # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
 92
 93    bezier = myBezier, 0.05, 0.9, 0.1, 1.05
 94
 95    animation = windows    , 1, 7 , myBezier,
 96    animation = windowsOut , 1, 7 , default , popin 80%
 97    animation = border     , 1, 10, default ,
 98    animation = borderangle, 1, 8 , default ,
 99    animation = fade       , 1, 7 , default ,
100    animation = workspaces , 1, 6 , default ,
101}
102
103dwindle {
104    # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
105    pseudotile = false
106    preserve_split = true
107    force_split = 2
108    no_gaps_when_only = true
109}
110
111gestures {
112    # See https://wiki.hyprland.org/Configuring/Variables/ for more
113    {{- if eq .chezmoi.hostname "angmar" }}
114    workspace_swipe = off
115    {{- else if eq .chezmoi.hostname "sidhe" }}
116    workspace_swipe = yes
117    workspace_swipe_forever = yes
118    {{- else }}
119    workspace_swipe = off
120    {{- end }}
121}
122
123group {
124    insert_after_current = false
125
126    groupbar {
127        font_family = "{{ .font }}"
128        font_size = 12
129{{- if eq .theme_variant "light" }}
130        text_color = rgb(4c4f69)
131        col.active = rgba(cdd6f4b0) rgba(cdd6f400) 0deg
132        col.inactive = rgba(dce0e8b0) rgba(dce0e800) 0deg
133{{- else if eq .theme_variant "dark" }}
134        col.active = rgba(b7bdf8ff)
135        col.inactive = rgba(6e738dff)
136{{- end }}
137      }
138}
139
140misc {
141    # See https://wiki.hyprland.org/Configuring/Variables/ for more
142    disable_hyprland_logo   = true
143    force_default_wallpaper = 0 # Set to 0 to disable the anime mascot wallpapers
144    enable_swallow          = yes
145    swallow_regex           = "^c .*"
146    swallow_exception_regex = ".*Doom Emacs$"
147    focus_on_activate       = no
148{{- if eq .chezmoi.hostname "angmar" }}
149    vrr                     = 1
150{{- else if eq .chezmoi.hostname "sidhe" }}
151    vrr                     = 0
152{{- end }}
153{{- if eq .theme_variant "light" }}
154    background_color        = rgb(eff1f5)
155{{- else if eq .theme_variant "dark" }}
156    background_color        = rgb(24273A)
157{{- end }}
158}
159
160# Example windowrule v1
161# windowrule = float, ^(kitty)$
162# Example windowrule v2
163# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
164# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
165# TODO: Migrate this:
166# windowrulev2 = nomaximizerequest, class:.* # You'll probably like this.
167windowrulev2 = workspace 4,class:(steam)
168windowrulev2 = workspace 6,class:(org.gajim.Gajim|org.telegram.desktop)
169
170
171# See https://wiki.hyprland.org/Configuring/Keywords/ for more
172$mod = SUPER
173
174# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
175# Applications
176bindr = $mod      , Z                    , exec          , onagre
177bindr = $mod SHIFT, Z                    , exec          , onagre
178bind  = $mod      , RETURN               , exec          , alacritty
179bind  = $mod SHIFT, RETURN               , exec          , emacsclient -c
180bind  = $mod      , E                    , exec          , nautilus
181
182# System controls
183bind  = $mod SHIFT, Q                    , killactive    ,
184bind  = $mod      , Q                    , togglesplit   , # dwindle
185bind  = $mod SHIFT, E                    , exit          ,
186bind  = $mod SHIFT, B                    , exec          , /home/amolith/.local/bin/lockscreen
187bind  = $mod      , V                    , togglefloating,
188bind  =           , XF86AudioRaiseVolume , exec          , pactl set-sink-volume @DEFAULT_SINK@ +10%
189bind  =           , XF86AudioLowerVolume , exec          , pactl set-sink-volume @DEFAULT_SINK@ -10%
190bind  =           , XF86AudioMute        , exec          , pactl set-sink-mute @DEFAULT_SINK@ toggle
191bind  =           , XF86AudioMicMute     , exec          , pactl set-source-mute @DEFAULT_SOURCE@ toggle
192bind  =           , XF86AudioPlay        , exec          , playerctl play-pause
193bind  =           , XF86AudioNext        , exec          , playerctl next
194bind  =           , XF86AudioPrev        , exec          , playerctl previous
195bind  =           , XF86MonBrightnessUp  , exec          , xbacklight +5
196bind  =           , XF86MonBrightnessDown, exec          , xbacklight -5
197
198# Notification controls
199bind  = $mod      , N, exec, dunstctl close-all
200bind  = $mod SHIFT, N, exec, dunstctl history-pop
201bind  = $mod CTRL , N, exec, dunstctl context
202
203# Window groups (somewhat analogous to i3 tabs)
204bind = $mod SHIFT, g, togglegroup
205bind = $mod      , g, changegroupactive
206
207# Move focus with mod + Vim keys
208bind = $mod, h, movefocus, l
209bind = $mod, l, movefocus, r
210bind = $mod, j, movefocus, d
211bind = $mod, k, movefocus, u
212
213# Move window with mod + Vim keys
214bind = $mod SHIFT, h, movewindow, l
215bind = $mod SHIFT, l, movewindow, r
216bind = $mod SHIFT, j, movewindow, d
217bind = $mod SHIFT, k, movewindow, u
218
219# Switch workspaces with mod + [0-9]
220bind = $mod, 1, workspace, 1
221bind = $mod, 2, workspace, 2
222bind = $mod, 3, workspace, 3
223bind = $mod, 4, workspace, 4
224bind = $mod, 5, workspace, 5
225bind = $mod, 6, workspace, 6
226bind = $mod, 7, workspace, 7
227bind = $mod, 8, workspace, 8
228bind = $mod, 9, workspace, 9
229bind = $mod, 0, workspace, 10
230
231# Move active window to a workspace with mod + SHIFT + [0-9]
232bind = $mod SHIFT, 1, movetoworkspace, 1
233bind = $mod SHIFT, 2, movetoworkspace, 2
234bind = $mod SHIFT, 3, movetoworkspace, 3
235bind = $mod SHIFT, 4, movetoworkspace, 4
236bind = $mod SHIFT, 5, movetoworkspace, 5
237bind = $mod SHIFT, 6, movetoworkspace, 6
238bind = $mod SHIFT, 7, movetoworkspace, 7
239bind = $mod SHIFT, 8, movetoworkspace, 8
240bind = $mod SHIFT, 9, movetoworkspace, 9
241bind = $mod SHIFT, 0, movetoworkspace, 10
242
243# Make window fullscreen
244bind = $mod, F, fullscreen
245
246# Example special workspace (scratchpad)
247bind = $mod      , S, togglespecialworkspace, magic
248bind = $mod SHIFT, S, movetoworkspace       , special:magic
249
250# Scroll through existing workspaces with mod + scroll
251bind = $mod, mouse_down, workspace, e+1
252bind = $mod, mouse_up  , workspace, e-1
253
254# Move/resize windows with mod + LMB/RMB and dragging
255bindm = $mod, mouse:272, movewindow
256bindm = $mod, mouse:273, resizewindow
257
258exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
259exec-once = "/home/amolith/.local/bin/startup"