Skip to content

Instantly share code, notes, and snippets.

@chrisfls
Last active December 10, 2023 20:25
Show Gist options
  • Save chrisfls/49406c7132ae02f563308bd12d7c65b3 to your computer and use it in GitHub Desktop.
Save chrisfls/49406c7132ae02f563308bd12d7c65b3 to your computer and use it in GitHub Desktop.
# TODO: move this over to config file
monitor=eDP-1,disable
monitor=HDMI-A-1,preferred,auto,auto
# TODO: move this over to config file (scaling settings)
env = GDK_SCALE,1.5
env = XCURSOR_SIZE,16
env = NIXOS_OZONE_WL,1
$statusbar = waybar
$polkit = lxqt-policykit-agent
$menu = rofi -show combi -combi-modes "drun,window,filebrowser" -modes "drun,window,filebrowser"
$run = rofi -show run
$winlist = rofi -show window
$terminal = kitty -1
$fileManager = pcmanfm-qt
$editor = codium
$browser = brave
# session apps
exec-once = $polkit
exec-once = $statusbar
input {
kb_layout = br
numlock_by_default = true
# never refocus mouse, even when moving over windows
mouse_refocus = false
# no focus follow mouse, but scroll unfocused windows
follow_mouse = 2
# do not change focus to cursor position when creating floating windows
float_switch_override_focus = 0
# disable mouse acceleration
accel_profile = flat
}
dwindle {
pseudotile = true
preserve_split = true
no_gaps_when_only = 1
}
xwayland {
# let windows scale themselves
force_zero_scaling = true
}
general {
# behavior
layout = dwindle
allow_tearing = false
resize_on_border=false
# style
gaps_in = 8
gaps_out = 16
border_size = 2
col.active_border = rgb(99C6CA)
col.inactive_border = rgba(458588C0)
}
group {
insert_after_current = false
focus_removed_window = false
col.border_active = rgb(7EC16E)
col.border_inactive = rgba(689D6A80)
col.border_locked_active = rgb(99C6CA)
col.border_locked_inactive = rgba(458588C0)
groupbar {
scrolling = false
font_size = 16
text_color = rgb(EBDBB2)
gradients = false
col.active = rgb(D3869B)
col.inactive = rgba(B16286C0)
col.locked_active = rgb(99C6CA)
col.locked_inactive = rgba(458588C0)
}
}
decoration {
rounding = 4
drop_shadow = false
blur {
enabled = false
}
}
animations {
bezier = linear, 0, 0, 1, 1
bezier = easeIn, 0.42, 0, 1, 1
bezier = easeOut, 0, 0, 0.58, 1
bezier = easeInOut, 0.42, 0, 0.58, 1
bezier = easeInSine, 0.12, 0, 0.39, 0
bezier = easeOutSine, 0.61, 1, 0.88, 1
bezier = easeInOutSine, 0.37, 0, 0.63, 1
bezier = easeInQuad, 0.11, 0, 0.5, 0
bezier = easeOutQuad, 0.5, 1, 0.89, 1
bezier = easeInOutQuad, 0.45, 0, 0.55, 1
bezier = easeInCubic, 0.32, 0, 0.67, 0
bezier = easeOutCubic, 0.33, 1, 0.68, 1
bezier = easeInOutCubic, 0.65, 0, 0.35, 1
bezier = easeInQuart, 0.5, 0, 0.75, 0
bezier = easeOutQuart, 0.25, 1, 0.5, 1
bezier = easeInOutQuart, 0.76, 0, 0.24, 1
bezier = easeInQuint, 0.64, 0, 0.78, 0
bezier = easeOutQuint, 0.22, 1, 0.36, 1
bezier = easeInOutQuint, 0.83, 0, 0.17, 1
bezier = easeInExpo, 0.7, 0, 0.84, 0
bezier = easeOutExpo, 0.16, 1, 0.3, 1
bezier = easeInOutExpo, 0.87, 0, 0.13, 1
bezier = easeInCirc, 0.55, 0, 1, 0.45
bezier = easeOutCirc, 0, 0.55, 0.45, 1
bezier = easeInOutCirc, 0.85, 0, 0.15, 1
bezier = easeInBack, 0.36, 0, 0.66, -0.56
bezier = easeOutBack, 0.34, 1.56, 0.64, 1
bezier = easeInOutBack, 0.68, -0.6, 0.32, 1.6
animation = windows, 1, 2, easeOutExpo, popin
animation = windowsIn, 1, 2, easeOutBack, popin 50%
animation = windowsMove, 1, 2, easeOutExpo, slide
animation = border, 1, 1, easeOutSine
animation = borderangle, 1, 1, linear, once
animation = fade, 1, 1, easeOutQuad
animation = workspaces, 1, 2, easeOutSine, fade
animation = specialWorkspace, 1, 2, easeInSine, slidevert
}
misc {
disable_hyprland_logo = true
# fallback when no wallpaper
background_color = rgb(000000)
}
# block windows from maximizing
windowrulev2 = nomaximizerequest, class:.*
################# ######## #### ## #
# BINDINGS
################# ######## #### ## #
$mod = SUPER
# exit hyprland
bind = $mod SHIFT, Q, exit # TODO: prompt
# APPLICATIONS
######## #### ## #
# menus
bind = $mod, RETURN, exec, $menu
bind = $mod, X, exec, $run
bind = $mod, P, exec, $winlist
# terminal
bind = $mod, BACKSPACE, exec, $terminal
# applications
bind = $mod, E, exec, $fileManager
bind = $mod, D, exec, $editor
bind = $mod, B, exec, $browser
# print screen/window/region
bind = , Print, exec, grimblast copy screen
bind = SHIFT, Print, exec, grimblast copy area
# WINDOW CONTROLS
######## #### ## #
# close focused window
bind = $mod, C, killactive
# toggle monocle layout / toggle fullscreen window
bind = $mod, M, fullscreen, 1
bind = $mod SHIFT, M, fullscreen
# toggle split direction / toggle pseudo tiling
bind = $mod, S, togglesplit
bind = $mod SHIFT, S, pseudo
# toggle window group / toggle window group lock
bind = $mod, G, togglegroup
bind = $mod SHIFT, G, lockactivegroup, toggle
# togge floating window / toggle floating window pin
bind = $mod, F, togglefloating
bind = $mod SHIFT, F, pin
# mouse support
bindm = $mod, mouse:272, movewindow
bindm = $mod, mouse:273, resizewindow
# RESIZE
######## #### ## #
bind=$mod, R, submap, resize
submap=resize
# resize
binde=,H,resizeactive,-10 0
binde=,J,resizeactive,0 10
binde=,K,resizeactive,0 -10
binde=,L,resizeactive,10 0
# resize with arrow key
binde=,LEFT,resizeactive,-10 0
binde=,DOWN,resizeactive,0 10
binde=,UP,resizeactive,0 -10
binde=,RIGHT,resizeactive,10 0
bind=,RETURN,submap,reset
bind=,ESCAPE,submap,reset
bind=$mod, R, submap, resize
submap=reset
# FOCUS
######## #### ## #
# focus
bind = $mod, H, movefocus, l
bind = $mod, J, movefocus, d
bind = $mod, K, movefocus, u
bind = $mod, L, movefocus, r
# focus with arrow keys
bind = $mod, LEFT, movefocus, l
bind = $mod, DOWN, movefocus, d
bind = $mod, UP, movefocus, u
bind = $mod, RIGHT, movefocus, r
# classic alt tab
bind = ALT, TAB, cyclenext
bind = ALT SHIFT, TAB, cyclenext, prev
# focus windows in group containers
bind = $mod, COMMA, changegroupactive, b
bind = $mod, PERIOD, changegroupactive
# focus windows in group containers with page up/down
bind = $mod, PAGE_UP, changegroupactive, b
bind = $mod, PAGE_DOWN, changegroupactive
# MOVEMENT
######## #### ## #
# move window
bind = $mod SHIFT, H, movewindoworgroup, l
bind = $mod SHIFT, J, movewindoworgroup, d
bind = $mod SHIFT, K, movewindoworgroup, u
bind = $mod SHIFT, L, movewindoworgroup, r
# move window with arrow keys
bind = $mod SHIFT, LEFT, movewindoworgroup, l
bind = $mod SHIFT, DOWN, movewindoworgroup, d
bind = $mod SHIFT, UP, movewindoworgroup, u
bind = $mod SHIFT, RIGHT, movewindoworgroup, r
# movel windows in group containers
bind = $mod SHIFT, COMMA, movegroupwindow, b
bind = $mod SHIFT, PERIOD, movegroupwindow
# movel windows in group containers
bind = $mod SHIFT, PAGE_UP, movegroupwindow, b
bind = $mod SHIFT, PAGE_DOWN, movegroupwindow
# WORKSPACES
######## #### ## #
# switch to workspace
bind = $mod, 1, workspace, 1
bind = $mod, 2, workspace, 2
bind = $mod, 3, workspace, 3
bind = $mod, 4, workspace, 4
bind = $mod, 5, workspace, 5
bind = $mod, 6, workspace, 6
bind = $mod, 7, workspace, 7
bind = $mod, 8, workspace, 8
bind = $mod, 9, workspace, 9
bind = $mod, 0, workspace, 10
# switch to workspace
bind = $mod SHIFT, 1, movetoworkspacesilent, 1
bind = $mod SHIFT, 2, movetoworkspacesilent, 2
bind = $mod SHIFT, 3, movetoworkspacesilent, 3
bind = $mod SHIFT, 4, movetoworkspacesilent, 4
bind = $mod SHIFT, 5, movetoworkspacesilent, 5
bind = $mod SHIFT, 6, movetoworkspacesilent, 6
bind = $mod SHIFT, 7, movetoworkspacesilent, 7
bind = $mod SHIFT, 8, movetoworkspacesilent, 8
bind = $mod SHIFT, 9, movetoworkspacesilent, 9
bind = $mod SHIFT, 0, movetoworkspacesilent, 10
# control scratchpad
bind = $mod, apostrophe, togglespecialworkspace
bind = $mod SHIFT, apostrophe, movetoworkspace, special
# start a terminal
bind = $mod, RETURN, exec, $terminal
# kill focused window
bind = $mod SHIFT, Q, killactive
# start dmenu (a program launcher)
bind = $mod, D, exec, $menu
# A more modern dmenu replacement is rofi:
# bindsym Mod1+d exec "rofi -modi drun,run -show drun"
# There also is i3-dmenu-desktop which only displays applications shipping a
# .desktop file. It is a wrapper around dmenu, so you need that installed.
# bindsym Mod1+d exec --no-startup-id i3-dmenu-desktop
# change focus
bind = $mod, H, movefocus, l
bind = $mod, J, movefocus, d
bind = $mod, K, movefocus, u
bind = $mod, L, movefocus, r
# alternatively, you can use the cursor keys:
bind = $mod, LEFT, movefocus, l
bind = $mod, DOWN, movefocus, d
bind = $mod, UP, movefocus, u
bind = $mod, RIGHT, movefocus, r
# move focused window
bind = $mod SHIFT, H, movewindow, l
bind = $mod SHIFT, J, movewindow, d
bind = $mod SHIFT, K, movewindow, u
bind = $mod SHIFT, L, movewindow, r
# alternatively, you can use the cursor keys:
bind = $mod SHIFT, LEFT, movewindow, l
bind = $mod SHIFT, DOWN, movewindow, d
bind = $mod SHIFT, UP, movewindow, u
bind = $mod SHIFT, RIGHT, movewindow, r
# split in horizontal orientation
# bindsym Mod1+h split h
# split in vertical orientation
# bindsym Mod1+v split v
# enter fullscreen mode for the focused container
# bindsym Mod1+f fullscreen toggle
bind = $mod, F, fullscreen
# change container layout (stacked, tabbed, toggle split)
# bindsym Mod1+s layout stacking
bind = $mod, W, togglegroup
bind = $mod, E, togglesplit
# toggle tiling / floating
bind = $mod, SPACE, togglefloating
# change focus between tiling / floating windows
# bindsym Mod1+space focus mode_toggle
# focus the parent container
bind = $mod, A, moveoutofgroup
# focus the child container
bind = $mod, S, changegroupactive, b
bind = $mod SHIFT, S, movegroupwindow, b
# focus the child container
bind = $mod, D, changegroupactive
bind = $mod SHIFT, D, movegroupwindow
# move the currently focused window to the scratchpad
# bindsym Mod1+Shift+minus move scratchpad
# Show the next scratchpad window or hide the focused scratchpad window.
# If there are multiple scratchpad windows, this command cycles through them.
# bindsym Mod1+minus scratchpad show
# switch to workspace
bind = $mod, 1, workspace, 1
bind = $mod, 2, workspace, 2
bind = $mod, 3, workspace, 3
bind = $mod, 4, workspace, 4
bind = $mod, 5, workspace, 5
bind = $mod, 6, workspace, 6
bind = $mod, 7, workspace, 7
bind = $mod, 8, workspace, 8
bind = $mod, 9, workspace, 9
bind = $mod, 0, workspace, 10
# switch to workspace
bind = $mod SHIFT, 1, movetoworkspacesilent, 1
bind = $mod SHIFT, 2, movetoworkspacesilent, 2
bind = $mod SHIFT, 3, movetoworkspacesilent, 3
bind = $mod SHIFT, 4, movetoworkspacesilent, 4
bind = $mod SHIFT, 5, movetoworkspacesilent, 5
bind = $mod SHIFT, 6, movetoworkspacesilent, 6
bind = $mod SHIFT, 7, movetoworkspacesilent, 7
bind = $mod SHIFT, 8, movetoworkspacesilent, 8
bind = $mod SHIFT, 9, movetoworkspacesilent, 9
bind = $mod SHIFT, 0, movetoworkspacesilent, 10
# reload the configuration file
#bindsym Mod1+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
#bindsym Mod1+Shift+r restart
# exit i3 (logs you out of your X session)
bind = $mod SHIFT, E, exit # bindsym Mod1+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
submap=resize
binde=,H,resizeactive,-10 0
binde=,LEFT,resizeactive,-10 0
binde=,J,resizeactive,0 10
binde=,DOWN,resizeactive,0 10
binde=,K,resizeactive,0 -10
binde=,UP,resizeactive,0 -10
binde=,L,resizeactive,10 0
binde=,RIGHT,resizeactive,10 0
bind=,RETURN,submap,reset
bind=,ESCAPE,submap,reset
bind=$mod, R, submap, resize
submap=reset
bind=$mod, R, submap, resize
################# ######## #### ## #
# BINDINGS
################# ######## #### ## #
$mod = SUPER
# exit hyprland
bind = $mod SHIFT, Q, exit # TODO: prompt
# APPLICATIONS
######## #### ## #
# menus
bind = $mod, RETURN, exec, $menu
bind = $mod, X, exec, $run
bind = $mod, P, exec, $winlist
# terminal
bind = $mod, BACKSPACE, exec, $terminal
# applications
bind = $mod, E, exec, $fileManager
bind = $mod, D, exec, $editor
bind = $mod, B, exec, $browser
# print screen/window/region
bind = , Print, exec, grimblast copy screen
bind = SHIFT, Print, exec, grimblast copy area
# WINDOW CONTROLS
######## #### ## #
# close focused window
bind = $mod, C, killactive
# toggle monocle layout / toggle fullscreen window
bind = $mod, M, fullscreen, 1
bind = $mod SHIFT, M, fullscreen
# toggle split direction / toggle pseudo tiling
bind = $mod, S, togglesplit
bind = $mod SHIFT, S, pseudo
# toggle window group / toggle window group lock
bind = $mod, G, togglegroup
bind = $mod SHIFT, G, lockactivegroup, toggle
# togge floating window / toggle floating window pin
bind = $mod, F, togglefloating
bind = $mod SHIFT, F, pin
# mouse support
bindm = $mod, mouse:272, movewindow
bindm = $mod, mouse:273, resizewindow
# RESIZE
######## #### ## #
bind=$mod, R, submap, resize
submap=resize
# resize
binde=,H,resizeactive,-10 0
binde=,J,resizeactive,0 10
binde=,K,resizeactive,0 -10
binde=,L,resizeactive,10 0
# resize with arrow key
binde=,LEFT,resizeactive,-10 0
binde=,DOWN,resizeactive,0 10
binde=,UP,resizeactive,0 -10
binde=,RIGHT,resizeactive,10 0
bind=,RETURN,submap,reset
bind=,ESCAPE,submap,reset
bind=$mod, R, submap, resize
submap=reset
# FOCUS
######## #### ## #
# focus
bind = $mod, H, movefocus, l
bind = $mod, J, movefocus, d
bind = $mod, K, movefocus, u
bind = $mod, L, movefocus, r
# focus with arrow keys
bind = $mod, LEFT, movefocus, l
bind = $mod, DOWN, movefocus, d
bind = $mod, UP, movefocus, u
bind = $mod, RIGHT, movefocus, r
# classic alt tab
bind = ALT, TAB, cyclenext
bind = ALT SHIFT, TAB, cyclenext, prev
# focus windows in group containers
bind = $mod, COMMA, changegroupactive, b
bind = $mod, PERIOD, changegroupactive
# focus windows in group containers with page up/down
bind = $mod, PAGE_UP, changegroupactive, b
bind = $mod, PAGE_DOWN, changegroupactive
# MOVEMENT
######## #### ## #
# move window
bind = $mod SHIFT, H, movewindoworgroup, l
bind = $mod SHIFT, J, movewindoworgroup, d
bind = $mod SHIFT, K, movewindoworgroup, u
bind = $mod SHIFT, L, movewindoworgroup, r
# move window with arrow keys
bind = $mod SHIFT, LEFT, movewindoworgroup, l
bind = $mod SHIFT, DOWN, movewindoworgroup, d
bind = $mod SHIFT, UP, movewindoworgroup, u
bind = $mod SHIFT, RIGHT, movewindoworgroup, r
# movel windows in group containers
bind = $mod SHIFT, COMMA, movegroupwindow, b
bind = $mod SHIFT, PERIOD, movegroupwindow
# movel windows in group containers
bind = $mod SHIFT, PAGE_UP, movegroupwindow, b
bind = $mod SHIFT, PAGE_DOWN, movegroupwindow
# WORKSPACES
######## #### ## #
# switch to workspace
bind = $mod, 1, workspace, 1
bind = $mod, 2, workspace, 2
bind = $mod, 3, workspace, 3
bind = $mod, 4, workspace, 4
bind = $mod, 5, workspace, 5
bind = $mod, 6, workspace, 6
bind = $mod, 7, workspace, 7
bind = $mod, 8, workspace, 8
bind = $mod, 9, workspace, 9
bind = $mod, 0, workspace, 10
# switch to workspace
bind = $mod SHIFT, 1, movetoworkspacesilent, 1
bind = $mod SHIFT, 2, movetoworkspacesilent, 2
bind = $mod SHIFT, 3, movetoworkspacesilent, 3
bind = $mod SHIFT, 4, movetoworkspacesilent, 4
bind = $mod SHIFT, 5, movetoworkspacesilent, 5
bind = $mod SHIFT, 6, movetoworkspacesilent, 6
bind = $mod SHIFT, 7, movetoworkspacesilent, 7
bind = $mod SHIFT, 8, movetoworkspacesilent, 8
bind = $mod SHIFT, 9, movetoworkspacesilent, 9
bind = $mod SHIFT, 0, movetoworkspacesilent, 10
# control scratchpad
bind = $mod, apostrophe, togglespecialworkspace
bind = $mod SHIFT, apostrophe, movetoworkspace, special
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment