- Dependencies
- Apps
- Theme
- Monitors
- Waybar
- Startup
- Environment Variables
- General
- Window Rules
- Workspace Rules
- Layer Rules
- Decoration
- Input
- Misc
- Cursor
- Binds
- Animations
- Layouts
- Gestures
- Devices
- Keybindings
- Mouse Bindings
- Debug
Name | Description |
---|---|
hyprland | |
hyprpaper | |
waybar-hyprland |
sudo pacman -S hyprland hyprpaper
$myScript = $HOME/.local/bin
$myDMScript = $HOME/.local/bin/dm-scripts
$myHyprScript = $HOME/.config/hypr/scripts
$myEwwScript = $HOME/.config/eww/scripts
# cli tools
$myTerm = alacritty
$myCliFiles = alacritty -e vifmrun
$myCliMusic = alacritty --class ncmpcpp -e ncmpcpp
$myCliText = vim
$myCliSysAudio = alsamixer
$myCliSysMonitor = btop
$myCliSysTasks = htop
# core tools
$myWebBrowser = qutebrowser
$myIncBrowser = qutebrowser --target private-window
$myTorBrowser = torbrowser-launcher
$myIde = emacs
# $myIde = emacsclient -ca ''
$myFiles = pcmanfm
$myEmail = thunderbird
$myEmailClass = thunderbird
$mySteam = /usr/bin/steam-runtime %U
# extra tools
$myLauncher = wofi --show drun
$myVirtManager = virt-manager
$myTorrent = transmission-gtk
$myCalculator = gnome-calculator
$myAnki = anki
$myColorPicker = hyprpicker -anr
# graphics tools
$myPhotoLibrary = digikam
$myImgEditor = gimp
$myVctEditor = inkscape
$myVidEditor = kdenlive
# chat apps
$myWhatsApp = whatsapp-for-linux
# $myDiscord = discord
# $myDiscordClass = discord
$myDiscord = webcord
$myDiscordClass = WebCord
# system tools
$mySysPower = xfce4-power-manager-settings
$mySysNetwork = nm-connection-editor
$mySysBluetooth = blueman-manager
# eww
$panel-monitor = monitor
$panel-power = powermenu-panel
$quick-settings = quick-settings
$which-key = which-key
source=./themes/base16.conf
$gaps_inner = 20
$gaps_outer = 40
$borders = 15
$borders_special = 10
$corners = 15
See https://wiki.hyprland.org/Configuring/Monitors/
Extras:
- mirror , DP-1
- bitdepth , 10
- vrr , 2
0 off 1 on 2 fullscreen - transform , 3
# name , resolution , position , scale , extras
monitor=DP-1 , highrr , 0x0 , auto
monitor=DP-3 , 1920x1080@144 , 760x-1080 , auto
# monitor=DP-3 , disable
monitor= , preferred , auto , auto
See https://wiki.hyprland.org/Configuring/Keywords/ for more
exec-once = eww open-many main-bar second-bar $quick-settings
exec-once = $myScript/auto-start.sh
exec-once = hypridle
# exec-once = swayidle
Toolkit Backend Variables
env = GDK_BACKEND,wayland,x11 # GTK: Use wayland if available, fall back to x11 if not.
# env = MANGOHUD,1
Qt Variables
env = QT_QPA_PLATFORM,wayland;xcb # QT: Use wayland if available, fall back to x11 if not.
env = QT_QPA_PLATFORMTHEME,qt5ct # Tells QT based applications to pick your theme from qt5ct, use with Kvantum.
XDG Specifications
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland
env = XDG_SESSION_DESKTOP,Hyprland
attempt to fix dunst autostart from systemd
# env = WAYLAND_DISPLAY,wayland-0
Theming Related Variables
# env = GTK_THEME, # Set a GTK theme manually, for those who want to avoid appearance tools such as lxappearance or nwg-look
env = XCURSOR_THEME,breeze_cursors # Set your cursor theme. The theme needs to be installed and readable by your user.
env = XCURSOR_SIZE,32 # Set cursor size. See here for why you might want this variable set.
# Set your cursor theme. The theme needs to be installed and readable by your user.
# env = HYPRCURSOR_THEME,capitaine-cursors
env = HYPRCURSOR_THEME,HyprBibataModernClassicSVG
env = HYPRCURSOR_SIZE,32 # Set cursor size. See here for why you might want this variable set.
See https://wiki.hyprland.org/Configuring/Variables/ for more
general {
gaps_in = $gaps_inner # gaps between windows
gaps_out = $gaps_outer # gaps between windows and monitor edges
gaps_workspaces = 20 # for animation transitions
border_size = $borders
col.active_border = rgba($base0Eaa) rgba($base0Aaa) 90deg
col.inactive_border = rgba($base03aa)
# focus
no_focus_fallback = true # will not fall back to the next available window when moving focus in a direction where no window was found
resize_on_border = true # enables resizing windows by clicking and dragging on borders and gaps
layout = dwindle
}
See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
windowrulev2 = bordercolor rgba($base0Faa) rgb($base00),xwayland:1
windowrulev2 = noborder,pinned:1
windowrulev2 = nodim,pinned:1
windowrulev2 = opacity override 0.7,pinned:1
windowrulev2 = rounding 0,fullscreenstate:1 * # maximized windows
windowrulev2 = rounding 0,fullscreenstate:* 2 # fake fullscreen windows
Games
windowrulev2 = idleinhibit focus,class:^steam_app
windowrulev2 = idleinhibit focus,class:^vimiv$
windowrulev2 = idleinhibit focus,class:x86_64$
windowrulev2 = idleinhibit always,title:cava
$app_filter = ^(mpv)$
# floating
windowrulev2 = dimaround,class:$app_filter,floating:1
windowrulev2 = keepaspectratio,class:$app_filter,floating:1
windowrulev2 = stayfocused,class:$app_filter,floating:1
windowrulev2 = center,class:$app_filter,floating:1
# tiled
windowrulev2 = pseudo,class:$app_filter,floating:0
# initial state
windowrule = float,$app_filter
windowrule = workspace 8 silent,^([Ss]team)$
# steam updater floating window
windowrulev2 = workspace 8 silent,title:^(Steam)$,floating:1
windowrulev2 = nofocus,title:^(Steam)$,floating:1
# fix workspace switches for games
windowrulev2 = tag +game,class:^(steam_app)
windowrulev2 = renderunfocused,tag:game
# float dialogs and stuff
windowrulev2 = float,title:^(SteamTinkerLaunch)
windowrule = tile,^([Ss]crcpy)$
$app_filter = ^(org.kde.okular)$
# floating
windowrulev2 = keepaspectratio,class:$app_filter,floating:1
windowrulev2 = stayfocused,class:$app_filter,floating:1
windowrulev2 = center,class:$app_filter,floating:1
# initial state
windowrule = float,$app_filter
$app_filter = ^(thunderbird)$
# float dialogs and stuff
windowrulev2 = float,$app_filter,title:Filters
$app_filter = ^(scrcpy)$
# float dialogs and stuff
windowrulev2 = float,class:$app_filter
# windowrule = workspace 1 silent,^(firefox)$
# windowrule = workspace 1 silent,^(Tor Browser)$
# windowrule = workspace 1 silent,^(Chromium)$
# windowrule = workspace 1 silent,^(Google-chrome)$
# windowrule = workspace 1 silent,^(Brave-browser)$
# windowrule = workspace 1 silent,^(vivaldi-stable)$
# windowrule = workspace 1 silent,^(org.qutebrowser.qutebrowser)$
# windowrule = workspace 1 silent,^(nyxt)$
windowrule = workspace 2 silent,^(thunderbird)$
windowrule = workspace 3 silent,^([Ee]macs)$
windowrule = workspace 3 silent,^(Geany)$
windowrule = workspace 3 silent,^(Atom)$
windowrule = workspace 3 silent,^(Subl3)$
windowrule = workspace 3 silent,^(code-oss)$
windowrule = workspace 3 silent,^(Oomox)$
windowrule = workspace 3 silent,^(Unity)$
windowrule = workspace 3 silent,^(UnityHub)$
windowrule = workspace 3 silent,^(jetbrains-studio)$
windowrule = workspace 4 silent,^(dolphin)$
windowrule = workspace 4 silent,^(ark)$
windowrule = workspace 4 silent,^(File-roller)$
windowrule = workspace 4 silent,^(googledocs)$
windowrule = workspace 4 silent,^(keep)$
windowrule = workspace 4 silent,^(calendar)$
# windowrule = workspace 5 silent,^(whatsapp-for-linux)$
# windowrule = workspace 5 silent,^(Slack)$
# windowrule = workspace 5 silent,^(discord)$
# windowrule = workspace 5 silent,^(signal)$
# windowrulev2 = workspace 5 silent,class:^([Ss]team)$,title:^(Friends List)$
windowrule = workspace 6 silent,^([Gg]imp)$
windowrule = workspace 6 silent,^(Inkscape)$
windowrule = workspace 6 silent,^(Flowblade)$
windowrule = workspace 6 silent,^(org.kde.digikam)$
windowrule = workspace 6 silent,^(obs)$
windowrule = workspace 6 silent,^(kdenlive)$
windowrule = workspace 7 silent,^(Virt-manager)$
windowrule = workspace 7 silent,^VirtualBox
windowrule = workspace 7 silent,^(Cypress)$
windowrule = workspace 8 silent,^([Bb]attle.net)$
windowrule = workspace 8 silent,^([Ww]ine)$
windowrule = workspace 8 silent,^(dolphin-emu)$
windowrule = workspace 8 silent,^([Ll]utris)$
windowrule = workspace 8 silent,^(Citra)$
windowrule = workspace 8 silent,^(SuperTuxKart)$
windowrule = workspace 9 silent,^(Spotify)$
# $app_filter = ^(sp-term)$
# $workspace = sp-term
# #---------------------------------------------------
# windowrule = unset,$app_filter
# windowrule = workspace special:$workspace silent,$app_filter
# windowrule = float,$app_filter
# windowrule = size 50% 80%,$app_filter
# windowrule = center,$app_filter
# $scratchpad = ^(sp-files)$
# #---------------------------------------------------
# windowrule = unset,$scratchpad
# # windowrule = workspace special silent,$scratchpad
# windowrule = float,$scratchpad
# windowrule = size 50% 70%,$scratchpad
# windowrule = center,$scratchpad
$scratchpad = ^(com.transmissionbt.transmission*)
#---------------------------------------------------
windowrule = unset,$scratchpad
# windowrule = workspace special silent,$scratchpad
windowrule = size 30% 80%,$scratchpad
windowrule = float,$scratchpad
windowrule = center,$scratchpad
$scratchpad = ^(anki)$
#---------------------------------------------------
windowrule = unset,$scratchpad
windowrule = float,$scratchpad
windowrule = size 20% 70%,$scratchpad
windowrule = center,$scratchpad
windowrule = dimaround,$scratchpad
$scratchpad = ^(virt-manager)$
#---------------------------------------------------
windowrule = unset,$scratchpad
windowrule = workspace special:vm silent,$scratchpad
windowrule = float,$scratchpad
windowrule = size 20% 50%,$scratchpad
windowrule = move 10% 10%,$scratchpad
$scratchpad = ^(sp-htop)$
#---------------------------------------------------
# windowrule = float,$scratchpad
# windowrule = size 80% 80%,$scratchpad
# windowrule = center,$scratchpad
windowrule = stayfocused,$scratchpad
windowrule = dimaround,$scratchpad
$scratchpad = ^(org.gnome.Calculator)$
#---------------------------------------------------
windowrule = unset,$scratchpad
# windowrule = workspace special silent,$scratchpad
windowrule = float,$scratchpad
windowrule = size 15% 50%,$scratchpad
windowrule = move 82% 5%,$scratchpad
Workspaces
workspace = 1, persistent:true, monitor:DP-1, default:true
workspace = 2, persistent:true, monitor:DP-1
workspace = 3, persistent:true, monitor:DP-1
workspace = 4, persistent:true, monitor:DP-1
workspace = 5, persistent:true, monitor:DP-1
workspace = 6, persistent:true, monitor:DP-1
workspace = 7, persistent:true, monitor:DP-1
workspace = 8, persistent:true, monitor:DP-1
workspace = 9, persistent:true, monitor:DP-3
# workspace = name:star, persistent:true, monitor:DP-1
Special Workspaces
workspace = special:term , bordersize:$borders_special , gapsin:50 , gapsout:125
workspace = special:files , bordersize:$borders_special , gapsin:50 , gapsout:125
workspace = special:music , bordersize:$borders_special , gapsin:50 , gapsout:125
workspace = special:email , bordersize:$borders_special , gapsin:50 , gapsout:125
workspace = special:chats , bordersize:$borders_special , gapsin:50 , gapsout:125
workspace = special:audio , bordersize:$borders_special , gapsin:50 , gapsout:125
workspace = special:torrent , bordersize:$borders_special , gapsin:50 , gapsout:125
workspace = special:anki , bordersize:$borders_special , gapsin:50 , gapsout:125
workspace = special:vm , bordersize:$borders_special , gapsin:50 , gapsout:125
workspace = special:calculator , bordersize:$borders_special , gapsin:50 , gapsout:125
workspace = special:htop , bordersize:$borders_special , gapsin:50 , gapsout:125
workspace = special:btop , bordersize:$borders_special , gapsin:50 , gapsout:125
Native Scratchpad
- compare with toggle script
# workspace = special:foo, on-created-empty:alacritty -e ncmpcpp
# bind = SUPER CTRL , d , togglespecialworkspace , foo
Layer | Role |
---|---|
3 | overlay |
2 | top |
1 | bottom |
0 | background |
layerrule = blur, waybar
eww
# default windows
$namespace = gtk-layer-shell
layerrule = blur, $namespace
layerrule = ignorealpha 0, $namespace
layerrule = animation slide, $namespace
# monitor
layerrule = blur, $panel-monitor
layerrule = ignorealpha 0, $panel-monitor
layerrule = animation slide, $panel-monitor
# quick-settings
layerrule = blur, $quick-settings
layerrule = ignorealpha 0, $quick-settings
layerrule = animation slide, $quick-settings
# which-key
layerrule = blur, $which-key
layerrule = ignorealpha 0, $which-key
layerrule = animation slide, $which-key
wofi
layerrule = blur, wofi
layerrule = ignorealpha 0, wofi
See https://wiki.hyprland.org/Configuring/Variables/ for more
decoration {
rounding = $corners
drop_shadow = yes # enable drop shadows on windows
shadow_range = 20 # Shadow range (“size”) in layout px
shadow_render_power = 3 # in what power to render the falloff (more power, the faster the falloff) [1 - 4]
shadow_ignore_window = true # if true, the shadow will not be rendered behind the window itself, only around it.
col.shadow = rgba($base00ee) # shadow’s color. Alpha dictates shadow’s opacity.
col.shadow_inactive = rgba($base00cc) # inactive shadow color. (if not set, will fall back to col.shadow) color unset
# shadow_offset = [0, 0] # shadow’s rendering offset. vec2 [0, 0]
shadow_scale = 1.0 # shadow’s scale. [0.0 - 1.0]
blur {
enabled = true
size = 10
passes = 3
ignore_opacity = true
new_optimizations = true
xray = false
noise = 0.03
special = false
}
dim_inactive = false
}
For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
kb_layout = us,ru,jp
kb_variant =
kb_model =
# kb_options = grp:lalt_lshift_toggle
kb_options =
kb_rules =
# focus
# Specify if and how cursor movement should affect window focus
# 0 - Cursor movement will not change focus.
# 1 - Cursor movement will always change focus to the window under the cursor.
# 2 - Cursor focus will be detached from keyboard focus. Clicking on a window will move keyboard focus to that window.
# 3 - Cursor focus will be completely separate from keyboard focus. Clicking on a window will not change keyboard focus.
#
follow_mouse = 2
# If disabled, mouse focus won’t switch to the hovered window unless the mouse crosses a window boundary when follow_mouse=1.
mouse_refocus = false
focus_on_close = 0
# 0 - Cursor movement will not change focus.
# 1 - focus will change to the window under the cursor when changing from tiled-to-floating and vice versa.
# 2 - focus will also follow mouse on float-to-float switches.
float_switch_override_focus = 0
repeat_rate = 25 # The repeat rate for held-down keys, in repeats per second.
repeat_delay = 300 # Delay before a held-down key is repeated, in milliseconds.
scroll_factor = 1
natural_scroll = false
touchpad {
natural_scroll = false
}
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
}
misc {
disable_hyprland_logo = false
disable_autoreload = false
# focus
mouse_move_focuses_monitor = false
focus_on_activate = false # Whether Hyprland should focus an app that requests to be focused
layers_hog_keyboard_focus = true
animate_manual_resizes = true # will animate manual window resizes/moves bool false
animate_mouse_windowdragging = true # will animate windows being dragged by mouse, note that this can cause weird behavior on some curves
enable_swallow = false # Enable window swallowing
# allow_session_lock_restore = true # will allow you to restart a lockscreen app in case it crashes
vrr = 2 # controls the VRR (Adaptive Sync) of your monitors. 0 - off, 1 - on, 2 - fullscreen only
mouse_move_enables_dpms = true # If DPMS is set to off, wake up the monitors if the mouse moves.
key_press_enables_dpms = true # If DPMS is set to off, wake up the monitors if a key is pressed.
}
cursor {
inactive_timeout = 15 # after how many seconds of cursor’s inactivity to hide it. Set to 0 for never.
no_warps = true # will not warp the cursor in many cases (focusing, keybinds, etc)
enable_hyprcursor = true
}
binds {
workspace_back_and_forth = true # an attempt to switch to the currently focused workspace will instead switch to the previous workspace
allow_workspace_cycles = true # If enabled, workspaces don’t forget their previous workspace, so cycles can be created by switching to the first workspace in a sequence, then endlessly going to the previous workspace.
# sets the preferred focus finding method when using focuswindow/movewindow/etc with a direction.
# 0 - history (recent have priority)
# 1 - length (longer shared edges have priority)
focus_preferred_method = 0
movefocus_cycles_fullscreen = false # If enabled, when on a fullscreen window, movefocus will cycle fullscreen, if not, it will move the focus in a direction.
}
Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
animations {
enabled = yes
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
bezier = easeInSine, 0.12, 0, 0.39, 0
bezier = easeInQuad, 0.11, 0, 0.5, 0
bezier = easeInCubic, 0.32, 0, 0.67, 0
bezier = easeInQuart, 0.5, 0, 0.75, 0
bezier = easeInQuint, 0.64, 0, 0.78, 0
bezier = easeInExpo, 0.7, 0, 0.84, 0
bezier = easeInCirc, 0.55, 0, 1, 0.45
bezier = easeInBack, 0.36, 0, 0.66, -0.56
bezier = easeOutSine, 0.61, 1, 0.88, 1
bezier = easeOutQuad, 0.5, 1, 0.89, 1
bezier = easeOutCubic, 0.33, 1, 0.68, 1
bezier = easeOutQuart, 0.25, 1, 0.5, 1
bezier = easeOutQuint, 0.22, 1, 0.36, 1
bezier = easeOutExpo, 0.16, 1, 0.3, 1
bezier = easeOutCirc, 0, 0.55, 0.45, 1
bezier = easeOutBack, 0.34, 1.56, 0.64, 1
bezier = easeInOutSine, 0.37, 0, 0.63, 1
bezier = easeInOutQuad, 0.45, 0, 0.55, 1
bezier = easeInOutCubic, 0.65, 0, 0.35, 1
bezier = easeInOutQuart, 0.76, 0, 0.24, 1
bezier = easeInOutQuint, 0.83, 0, 0.17, 1
bezier = easeInOutExpo, 0.87, 0, 0.13, 1
bezier = easeInOutCirc, 0.85, 0, 0.15, 1
bezier = easeInOutBack, 0.68, -0.6, 0.32, 1.6
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, myBezier, popin 80%
animation = layers, 1, 7, myBezier, popin 80%
animation = workspaces, 1, 7, myBezier, fade
animation = specialWorkspace, 1, 7, myBezier, slidefadevert -10%
animation = border, 1, 10, myBezier
animation = borderangle, 1, 20, easeInOutQuint
animation = fade, 1, 7, myBezier
}
See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
dwindle {
pseudotile = true # master switch for pseudotiling. Pseudotiled windows retain their floating size when tiled.
force_split = 1 # 0 - mouse; 1 - left; 2 - right
preserve_split = true # if enabled, the split (side/top) will not change regardless of what happens to the container.
no_gaps_when_only = false # whether to apply gaps when there is only one window on a workspace, aka. smart gaps.
default_split_ratio = 1.00
}
See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
master {
new_status = slave
no_gaps_when_only = false # whether to apply gaps when there is only one window on a workspace, aka. smart gaps.
}
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = false
}
Example per-device config See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
# device:logitech-mx-master-3-1 {
# sensitivity = 0
# }
Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = SUPER CTRL , q , exit , # quit hyprland
bind = SUPER CTRL , r , forcerendererreload , # restart hyprland
bind = SHIFT , ALT_L , exec , $myScript/toggle-lang.sh # switch language
States
bind = SUPER , q , killactive , # close focused window
bind = SUPER ALT , q , exec , hyprctl kill # click window to close
bind = SUPER SHIFT , F11 , fullscreenState , -1 2 # toggle fake fullscreen
bind = SUPER , F11 , fullscreen , 0 # toggle fullscreen
bind = SUPER SHIFT , f , fullscreen , 0 # toggle fullscreen
bind = SUPER , m , fullscreen , 1 # toggle maximize
bind = SUPER , f , togglefloating , # toggle floating
bind = SUPER CTRL , f , pin , # toggle pinnned
bind = SUPER , up , pin , # toggle pinnned
bind = SUPER SHIFT , p , pseudo , # toggle pseudo
bind = SUPER SHIFT , m , togglesplit , # mirror layout
Focus
bind = ALT , tab , cyclenext , # focus next window
bind = ALT SHIFT , tab , cyclenext , prev # focus prev window
bind = SUPER , h , movefocus , l # focus left window
bind = SUPER , j , movefocus , d # focus below window
bind = SUPER , k , movefocus , u # focus above window
bind = SUPER , l , movefocus , r # focus right window
Resizing windows
bind = SUPER , equal , splitratio , exact 1 # reset fucused window size
binde = SUPER CTRL , h , resizeactive , -20 0 # grow focused window left
binde = SUPER CTRL , j , resizeactive , 0 20 # grow focused window down
binde = SUPER CTRL , k , resizeactive , 0 -20 # grow focused window up
binde = SUPER CTRL , l , resizeactive , 20 0 # grow focused window right
Swapping tiled windows
bind = SUPER SHIFT , h , swapwindow , l # swap focused window with left window
bind = SUPER SHIFT , j , swapwindow , d # swap focused window with below window
bind = SUPER SHIFT , k , swapwindow , u # swap focused window with above window
bind = SUPER SHIFT , l , swapwindow , r # swap focused window with right window
Move floating windows
binde = SUPER CTRL , c , centerwindow
binde = SUPER , equal , centerwindow , # center floating window
binde = SUPER SHIFT , h , moveactive , -20 0 # move floating window left
binde = SUPER SHIFT , j , moveactive , 0 20 # move floating window down
binde = SUPER SHIFT , k , moveactive , 0 -20 # move floating window up
binde = SUPER SHIFT , l , moveactive , 20 0 # move floating window right
Special Moving windows
bind = SUPER ALT , h , movewindow , l # move focused window left
bind = SUPER ALT , j , movewindow , d # move focused window below
bind = SUPER ALT , k , movewindow , u # move focused window above
bind = SUPER ALT , l , movewindow , r # move focused window right
Masters
Focus
bind = SUPER , F1 , focusmonitor , 0 # move focus to monitor 1
bind = SUPER , F2 , focusmonitor , 1 # move focus to monitor 2
bind = SUPER , F3 , focusmonitor , 2 # move focus to monitor 3
bind = SUPER , comma , focusmonitor , d # move focus to below monitor
bind = SUPER , period , focusmonitor , u # move focus to above monitor
Moving Windows
bind = SUPER SHIFT , comma , movewindow , mon:d # move window to below monitor
bind = SUPER SHIFT , period , movewindow , mon:u # move window to above monitor
Swapping
bind = SUPER SHIFT , F1 , movewindow , mon:0 # move window to monitor 1
bind = SUPER SHIFT , F2 , movewindow , mon:1 # move window to monitor 2
bind = SUPER SHIFT , F3 , movewindow , mon:2 # move window to monitor 3
Dwindle
bind = SUPER , space , exec , $myHyprScript/toggle-layout.sh # switch layouts
Focus
bind = SUPER , tab , focusworkspaceoncurrentmonitor , previous # toggle last workspace
bind = SUPER , 1 , focusworkspaceoncurrentmonitor , 1 # switch to workspace 1
bind = SUPER , 2 , focusworkspaceoncurrentmonitor , 2 # switch to workspace 2
bind = SUPER , 3 , focusworkspaceoncurrentmonitor , 3 # switch to workspace 3
bind = SUPER , 4 , focusworkspaceoncurrentmonitor , 4 # switch to workspace 4
bind = SUPER , 5 , focusworkspaceoncurrentmonitor , 5 # switch to workspace 5
bind = SUPER , 6 , focusworkspaceoncurrentmonitor , 6 # switch to workspace 6
bind = SUPER , 7 , focusworkspaceoncurrentmonitor , 7 # switch to workspace 7
bind = SUPER , 8 , focusworkspaceoncurrentmonitor , 8 # switch to workspace 8
bind = SUPER , 9 , focusworkspaceoncurrentmonitor , 9 # switch to workspace 9
bind = SUPER , 0 , focusworkspaceoncurrentmonitor , name:star # switch to workspace star
Moving Windows
bind = SUPER SHIFT , 1 , movetoworkspacesilent , 1 # move window to workspace 1
bind = SUPER SHIFT , 2 , movetoworkspacesilent , 2 # move window to workspace 2
bind = SUPER SHIFT , 3 , movetoworkspacesilent , 3 # move window to workspace 3
bind = SUPER SHIFT , 4 , movetoworkspacesilent , 4 # move window to workspace 4
bind = SUPER SHIFT , 5 , movetoworkspacesilent , 5 # move window to workspace 5
bind = SUPER SHIFT , 6 , movetoworkspacesilent , 6 # move window to workspace 6
bind = SUPER SHIFT , 7 , movetoworkspacesilent , 7 # move window to workspace 7
bind = SUPER SHIFT , 8 , movetoworkspacesilent , 8 # move window to workspace 8
bind = SUPER SHIFT , 9 , movetoworkspacesilent , 9 # move window to workspace 9
bind = SUPER SHIFT , 0 , movetoworkspacesilent , name:star # move window to workspace star
Moving Windows with switching Workspace
bind = SUPER SHIFT CTRL , 1 , moveworkspacetomonitor , 1 current # move window to workspace 1 with switch
bind = SUPER SHIFT CTRL , 2 , moveworkspacetomonitor , 2 current # move window to workspace 2 with switch
bind = SUPER SHIFT CTRL , 3 , moveworkspacetomonitor , 3 current # move window to workspace 3 with switch
bind = SUPER SHIFT CTRL , 4 , moveworkspacetomonitor , 4 current # move window to workspace 4 with switch
bind = SUPER SHIFT CTRL , 5 , moveworkspacetomonitor , 5 current # move window to workspace 5 with switch
bind = SUPER SHIFT CTRL , 6 , moveworkspacetomonitor , 6 current # move window to workspace 6 with switch
bind = SUPER SHIFT CTRL , 7 , moveworkspacetomonitor , 7 current # move window to workspace 7 with switch
bind = SUPER SHIFT CTRL , 8 , moveworkspacetomonitor , 8 current # move window to workspace 8 with switch
bind = SUPER SHIFT CTRL , 9 , moveworkspacetomonitor , 9 current # move window to workspace 9 with switch
bind = SUPER SHIFT CTRL , 1 , movetoworkspace , 1
bind = SUPER SHIFT CTRL , 2 , movetoworkspace , 2
bind = SUPER SHIFT CTRL , 3 , movetoworkspace , 3
bind = SUPER SHIFT CTRL , 4 , movetoworkspace , 4
bind = SUPER SHIFT CTRL , 5 , movetoworkspace , 5
bind = SUPER SHIFT CTRL , 6 , movetoworkspace , 6
bind = SUPER SHIFT CTRL , 7 , movetoworkspace , 7
bind = SUPER SHIFT CTRL , 8 , movetoworkspace , 8
bind = SUPER SHIFT CTRL , 9 , movetoworkspace , 9
Toggle
bind = SUPER ALT , grave , togglespecialworkspace , term # toggle special workspace term
bind = SUPER ALT , 1 , togglespecialworkspace , 1 # toggle special workspace 1
bind = SUPER ALT , 2 , togglespecialworkspace , 2 # toggle special workspace 2
bind = SUPER ALT , 3 , togglespecialworkspace , 3 # toggle special workspace 3
bind = SUPER ALT , 4 , togglespecialworkspace , 4 # toggle special workspace 4
bind = SUPER ALT , 5 , togglespecialworkspace , 5 # toggle special workspace 5
bind = SUPER ALT , m , togglespecialworkspace , music # toggle special workspace music
bind = SUPER ALT , a , togglespecialworkspace , audio # toggle special workspace audio
bind = SUPER ALT , c , togglespecialworkspace , chats # toggle special workspace chats
bind = SUPER ALT , v , togglespecialworkspace , vm # toggle special workspace vm
Moving Windows
bind = SUPER ALT SHIFT , grave , movetoworkspacesilent , term # move window to special workspace term
bind = SUPER ALT SHIFT , 1 , movetoworkspacesilent , special:1 # move window to special workspace 1
bind = SUPER ALT SHIFT , 2 , movetoworkspacesilent , special:2 # move window to special workspace 2
bind = SUPER ALT SHIFT , 3 , movetoworkspacesilent , special:3 # move window to special workspace 3
bind = SUPER ALT SHIFT , 4 , movetoworkspacesilent , special:4 # move window to special workspace 4
bind = SUPER ALT SHIFT , 5 , movetoworkspacesilent , special:5 # move window to special workspace 5
bind = SUPER ALT SHIFT , m , movetoworkspacesilent , special:music # move window to special workspace music
bind = SUPER ALT SHIFT , a , movetoworkspacesilent , special:audio # move window to special workspace audio
bind = SUPER ALT SHIFT , c , movetoworkspacesilent , special:chats # move window to special workspace chats
bind = SUPER ALT SHIFT , v , movetoworkspacesilent , special:vm # move window to special workspace vm
bind = SUPER , grave , exec , $myHyprScript/toggle-special-workspace.sh "term" "sp-term" "alacritty --class sp-term" # toggle terminal
bind = SUPER , e , exec , $myHyprScript/toggle-special-workspace.sh "files" "sp-files" "alacritty --class sp-files -e vifm" # toggle file manager
bind = SUPER , return , exec , $myTerm # launch terminal
bind = SUPER CTRL , return , exec , $myLauncher # launch launcher
bind = SUPER , r , exec , $myLauncher # launch launcher
bind = SUPER , c , exec , $myIde # launch ide
bind = SUPER SHIFT , e , exec , $myCliFiles # launch file manager
bind = SUPER , b , exec , $myWebBrowser # launch web browser
bind = SUPER , i , exec , $myIncBrowser # launch web browser in incognito mode
bind = CTRL ALT , delete , exec , $myHyprScript/toggle-special-workspace.sh "htop" "sp-htop" "alacritty --class sp-htop -e htop"
bind = CTRL ALT , end , exec , $myHyprScript/toggle-special-workspace.sh "btop" "sp-btop" "alacritty --class sp-btop -e btop"
bind = CTRL ALT , t , exec , $myTerm
bind = CTRL ALT , a , togglespecialworkspace , audio
bind = CTRL ALT , a , exec , [workspace special:audio] pavucontrol
bind = CTRL ALT , a , exec , [workspace special:audio] qpwgraph
# bind = CTRL ALT , v , exec , $myHyprScript/toggle-special-workspace.sh "volume" "pavucontrol" "pavucontrol"
# bind = CTRL ALT , v , exec , $myHyprScript/toggle-special-workspace.sh "volume" "pavucontrol" "pavucontrol & qpwgraph"
System audio
bindl = , XF86AudioRaiseVolume , exec , $myScript/set-volume.sh + 5 # increase system volume
bindl = , XF86AudioLowerVolume , exec , $myScript/set-volume.sh - 5 # decrease system volume
bindl = , XF86AudioMute , exec , $myScript/toggle-mute.sh # toggle mute
Player audio
bindl = CTRL , XF86AudioRaiseVolume , exec , $myScript/playerctl.sh vol-up # player increase volume
bindl = CTRL , XF86AudioLowerVolume , exec , $myScript/playerctl.sh vol-down # player decrease volumebindl = , XF86AudioPrev , exec , $myScript/playerctl.sh prev # player prev
bindl = , XF86AudioPrev , exec , $myScript/playerctl.sh prev # player prev
bindl = , XF86AudioNext , exec , $myScript/playerctl.sh next # player next
bindl = , XF86AudioPlay , exec , $myScript/playerctl.sh toggle # player play/pause
bindl = , XF86AudioStop , exec , $myScript/playerctl.sh stop # player stop
bindl = CTRL , XF86AudioPlay , exec , $myScript/musictl.sh single # music [s] single mode
bindl = CTRL , XF86AudioStop , exec , $myScript/musictl.sh random # music [z] shuffle mode
bind = , print , exec , $myScript/screenshot.sh monitor # Fullscreen Screenshot
bind = SUPER SHIFT , print , exec , $myScript/screenshot.sh area # Selection Area Screenshot
bind = ALT , print , exec , $myScript/screenshot.sh window # Active Window Screenshot
bind = SUPER , print , exec , $myScript/screenshot.sh desktop # Full Desktop Screenshot
bind = SUPER , backslash , exec , $myEwwScript/which-key.sh dm-notify
bind = SUPER , backslash , submap , dm-notify
submap = dm-notify
bind = , backspace , exec , $myDMScript/dm-notify close # clear last notification
bind = SUPER , backslash , exec , $myDMScript/dm-notify recent # show last notification
bind = , backslash , exec , $myDMScript/dm-notify recent # show last notification
bind = SHIFT , BACKSLASH , exec , $myDMScript/dm-notify recents # show recent notifications
bind = , a , exec , $myDMScript/dm-notify context # open last notification
bind = , c , exec , $myDMScript/dm-notify close # clear last notification
bind = SHIFT , C , exec , $myDMScript/dm-notify clear # clear all notifications
bind = , r , exec , $myDMScript/dm-notify recents # show recent notifications
bindr = , catchall , exec , $myHyprScript/reset-submap.sh
bind = , backspace , exec , $myHyprScript/reset-submap.sh
bind = , a , exec , $myHyprScript/reset-submap.sh
bind = SHIFT , c , exec , $myHyprScript/reset-submap.sh
submap = reset
bind = SUPER , d , exec , $myEwwScript/which-key.sh dm-global
bind = SUPER , d , submap , dm-global
submap = dm-global
bind = , backslash , exec , $myDMScript/dm-notify # dm-notify
bind = , b , exec , $myDMScript/dm-bookman # dm-bookman
bind = SUPER , d , exec , $myDMScript/dm-master # dm-master
bind = , k , exec , $myDMScript/dm-keys # dm-keys
bind = , n , exec , $myDMScript/dm-notify # dm-notify
bind = , p , exec , $myDMScript/dm-player # dm-player
bind = , r , exec , $myDMScript/dm-record # dm-record
bind = , s , exec , $myDMScript/dm-screenshot # dm-screenshot
bind = , t , exec , $myDMScript/dm-theme # dm-theme
bind = , w , exec , $myDMScript/dm-wallpaper # dm-wallpaper
bind = , z , exec , $myDMScript/dm-power # dm-power
bindr = , catchall , exec , $myHyprScript/reset-submap.sh
bind = , backslash , exec , $myHyprScript/reset-submap.sh
bind = , b , exec , $myHyprScript/reset-submap.sh
bind = SUPER , d , exec , $myHyprScript/reset-submap.sh
bind = , k , exec , $myHyprScript/reset-submap.sh
bind = , n , exec , $myHyprScript/reset-submap.sh
bind = , p , exec , $myHyprScript/reset-submap.sh
bind = , r , exec , $myHyprScript/reset-submap.sh
bind = , s , exec , $myHyprScript/reset-submap.sh
bind = , t , exec , $myHyprScript/reset-submap.sh
bind = , w , exec , $myHyprScript/reset-submap.sh
bind = , z , exec , $myHyprScript/reset-submap.sh
submap = reset
bind = SUPER , o , exec , $myEwwScript/which-key.sh open
bind = SUPER , o , submap , open
submap = open
bind = , c , exec , $myColorPicker # color picker
bind = , d , exec , $myHyprScript/toggle-special-workspace.sh "chats" $myDiscordClass $myDiscord # toggle chats
bind = , e , exec , $myEmail # email client
bind = , g , exec , $myEwwScript/which-key.sh games open
bind = , g , submap , games # +games
bind = , i , exec , vimiv $XDG_PICTURES_DIR # image viewer
bind = , m , exec , $myCliMusic # music player
bind = SHIFT , M , exec , [workspace 9 silent] $myCliMusic # music player on default workspace
bind = , t , exec , $myTorBrowser # tor browser
bind = , w , exec , $myHyprScript/toggle-special-workspace.sh "chats" "whatsapp-for-linux" "whatsapp-for-linux" # toggle whatsapp
bindr = , catchall , exec , $myHyprScript/reset-submap.sh
bind = , c , exec , $myHyprScript/reset-submap.sh
bind = , d , exec , $myHyprScript/reset-submap.sh
bind = , e , exec , $myHyprScript/reset-submap.sh
bind = , i , exec , $myHyprScript/reset-submap.sh
bind = , m , exec , $myHyprScript/reset-submap.sh
bind = SHIFT , M , exec , $myHyprScript/reset-submap.sh
bind = , t , exec , $myHyprScript/reset-submap.sh
bind = , v , exec , $myHyprScript/reset-submap.sh
bind = , w , exec , $myHyprScript/reset-submap.sh
submap = reset
submap = games
bind = , d , exec , gzdoom # gzdoom
bind = , f , exec , fheroes2 # fheroes homm
bind = , g , exec , gamehub # gamehub
bind = , h , exec , heroic # heroic
bind = , l , exec , lutris # lutris
bind = , s , exec , $mySteam # steam
bind = , v , exec , vcmilauncher # vcmi homm launcher
bindr = , catchall , exec , $myHyprScript/reset-submap.sh
bind = , backspace , exec , $myEwwScript/which-key.sh open
bind = , backspace , submap , open
bind = , d , exec , $myHyprScript/reset-submap.sh
bind = , f , exec , $myHyprScript/reset-submap.sh
bind = , g , exec , $myHyprScript/reset-submap.sh
bind = , h , exec , $myHyprScript/reset-submap.sh
bind = , l , exec , $myHyprScript/reset-submap.sh
bind = , s , exec , $myHyprScript/reset-submap.sh
bind = , v , exec , $myHyprScript/reset-submap.sh
submap = reset
bind = SUPER , p , exec , $myEwwScript/which-key.sh pass
bind = SUPER , p , submap , pass
submap = pass
bind = , c , exec , wofi-pass --squash # copy field
bind = , p , exec , wofi-pass --squash --type # fill field
bind = , a , exec , wofi-pass --squash --type --autotype # autofill password
bindr = , catchall , exec , $myHyprScript/reset-submap.sh
bind = , c , exec , $myHyprScript/reset-submap.sh
bind = , p , exec , $myHyprScript/reset-submap.sh
bind = , a , exec , $myHyprScript/reset-submap.sh
submap = reset
bind = SUPER , s , exec , $myEwwScript/which-key.sh scratchpad
bind = SUPER , s , submap , scratchpad
# | workspace | class | command
submap = scratchpad
bind = , a , exec , $myHyprScript/toggle-special-workspace.sh "anki" "anki" "anki" # anki
bind = , c , exec , $myHyprScript/toggle-special-workspace.sh "calculator" "org.gnome.Calculator" "gnome-calculator" # calculator
bind = , d , exec , $myHyprScript/toggle-special-workspace.sh "chats" $myDiscordClass $myDiscord # discord
bind = , e , exec , $myHyprScript/toggle-special-workspace.sh "email" $myEmailClass $myEmail # email client
bind = , m , exec , $myHyprScript/toggle-special-workspace.sh "music" "sp-music" "alacritty --class sp-music -e ncmpcpp" # music player
bind = , t , exec , $myHyprScript/toggle-special-workspace.sh "torrent" "com.transmissionbt.transmission" "transmission-gtk" # torrent
bind = , v , exec , $myHyprScript/toggle-special-workspace.sh "vm" "virt-manager" "virt-manager" # vm
bind = , w , exec , $myHyprScript/toggle-special-workspace.sh "chats" "whatsapp-for-linux" "whatsapp-for-linux" # whatsapp
bindr = , catchall , exec , $myHyprScript/reset-submap.sh
bind = , a , exec , $myHyprScript/reset-submap.sh
bind = , c , exec , $myHyprScript/reset-submap.sh
bind = , d , exec , $myHyprScript/reset-submap.sh
bind = , e , exec , $myHyprScript/reset-submap.sh
bind = , m , exec , $myHyprScript/reset-submap.sh
bind = , t , exec , $myHyprScript/reset-submap.sh
bind = , v , exec , $myHyprScript/reset-submap.sh
bind = , w , exec , $myHyprScript/reset-submap.sh
submap = reset
bind = SUPER , t , exec , $myEwwScript/which-key.sh toggle
bind = SUPER , t , submap , toggle
submap = toggle
bind = , b , exec , $myHyprScript/toggle-borders.sh $borders # window borders
bind = , c , exec , $myHyprScript/toggle-corners.sh $corners # corners
bind = , g , exec , $myHyprScript/toggle-gaps.sh $gaps_inner # gaps
bind = , p , exec , $myEwwScript/which-key.sh panels toggle
bind = , p , submap , panels # +panels
bind = , q , exec , $myEwwScript/which-key.sh quick-settings toggle
bind = , q , submap , quick-settings # +quick-settings
bind = , s , exec , $myHyprScript/toggle-status-bar.sh # status bar
bind = , z , exec , $myHyprScript/toggle-zen.sh $borders $corners $gaps_inner # zen mode
bindr = , catchall , exec , $myHyprScript/reset-submap.sh
bind = , b , exec , $myHyprScript/reset-submap.sh
bind = , c , exec , $myHyprScript/reset-submap.sh
bind = , g , exec , $myHyprScript/reset-submap.sh
bind = , s , exec , $myHyprScript/reset-submap.sh
bind = , z , exec , $myHyprScript/reset-submap.sh
submap = reset
submap = panels
bind = , m , exec , $myEwwScript/toggle-window.sh -m $($myScript/get-current-monitor.sh id) $panel-monitor # monitor panel
bind = SHIFT , M , exec , $myEwwScript/toggle-window.sh -m 1 $panel-monitor # monitor panel on secondary monitor
bind = , q , exec , $myEwwScript/toggle-window.sh -m $($myScript/get-current-monitor.sh id) $quick-settings # quick-settings panel
bind = SHIFT , Q , exec , $myEwwScript/toggle-window.sh -m 1 $quick-settings # quick-settings panel on secondary monitor
bindr = , catchall , exec , $myHyprScript/reset-submap.sh
bind = , backspace , exec , $myEwwScript/which-key.sh toggle
bind = , backspace , submap , toggle
bind = , m , exec , $myHyprScript/reset-submap.sh
bind = SHIFT , M , exec , $myHyprScript/reset-submap.sh
bind = , q , exec , $myHyprScript/reset-submap.sh
bind = SHIFT , Q , exec , $myHyprScript/reset-submap.sh
submap = reset
submap = quick-settings
bind = , b , exec , $myScript/btctl.sh toggle # bluetooth
bind = , e , exec , $myScript/netctl.sh toggle ethernet # ethernet
bind = , h , exec , $myScript/toggle-headphones.sh # bluetooth headphones
bind = , s , exec , $myScript/toggle-speakers.sh # bluetooth speakers
bind = , v , exec , $myScript/vpnctl.sh toggle # vpn
bind = , w , exec , $myScript/netctl.sh toggle wifi # wi-fi
bindr = , catchall , exec , $myHyprScript/reset-submap.sh
bind = , backspace , exec , $myEwwScript/which-key.sh toggle
bind = , backspace , submap , toggle
bind = , b , exec , $myHyprScript/reset-submap.sh
bind = , e , exec , $myHyprScript/reset-submap.sh
bind = , h , exec , $myHyprScript/reset-submap.sh
bind = , s , exec , $myHyprScript/reset-submap.sh
bind = , v , exec , $myHyprScript/reset-submap.sh
bind = , w , exec , $myHyprScript/reset-submap.sh
submap = reset
bind = SUPER , z , exec , $myEwwScript/which-key.sh dm-power
bind = SUPER , z , submap , dm-power
submap = dm-power
bind = , c , exec , $myDMScript/dm-power controller # disconnect all controllers
bind = , l , exec , $myDMScript/dm-power lock # lock screen
bind = , p , exec , $myDMScript/dm-power poweroff # shutdown system
bind = , r , exec , $myDMScript/dm-power reboot # reboot system
bind = , s , exec , $myDMScript/dm-power suspend # suspend system
bind = , z , exec , $myDMScript/dm-power suspend # suspend system
bind = SUPER , z , exec , $myDMScript/dm-power suspend # suspend system
bindr = , catchall , exec , $myHyprScript/reset-submap.sh
bind = , c , exec , $myHyprScript/reset-submap.sh
bind = , l , exec , $myHyprScript/reset-submap.sh
bind = , p , exec , $myHyprScript/reset-submap.sh
bind = , r , exec , $myHyprScript/reset-submap.sh
bind = , s , exec , $myHyprScript/reset-submap.sh
bind = , z , exec , $myHyprScript/reset-submap.sh
bind = SUPER , z , exec , $myHyprScript/reset-submap.sh
submap = reset
bind = CTRL ALT , o , exec , $myEwwScript/which-key.sh app-secondary
bind = CTRL ALT , o , submap , app-secondary
submap = app-secondary
bind = , e , exec , $myFiles # gui file manager
bind = , g , exec , $myImgEditor # image editor
bind = , p , exec , $myPhotoLibrary # photo library
bind = , r , exec , $myVctEditor # vector image editor
bind = , v , exec , $myVidEditor # video editor
bindr = , catchall , exec , $myHyprScript/reset-submap.sh
bind = , e , exec , $myHyprScript/reset-submap.sh
bind = , g , exec , $myHyprScript/reset-submap.sh
bind = , p , exec , $myHyprScript/reset-submap.sh
bind = , r , exec , $myHyprScript/reset-submap.sh
bind = , v , exec , $myHyprScript/reset-submap.sh
submap = reset
bind = SUPER , space , submap , leader
submap = leader
bind = , escape , submap , reset
bind = , o , submap , leader-open
submap = leader-open
bind = , escape , submap , reset
bind = , c , togglespecialworkspace , chats
bind = , c , submap , reset
submap = reset
# Scroll through existing workspaces with mainMod + scroll
# bind = SUPER , mouse_down , workspace , e+1
# bind = SUPER , mouse_up , workspace , e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = SUPER , mouse:272 , movewindow
bindm = SUPER , mouse:273 , resizewindow
# bindm = , mouse:133 , movewindow
debug {
overlay = false # print the debug performance overlay. Disable VFR for accurate results. bool false
# damage_blink = false # (epilepsy warning!) flash areas updated with damage tracking bool false
disable_logs = true # disable logging to a file bool true
# disable_time = true # disables time logging bool true
# damage_tracking = 2 # redraw only the needed bits of the display. Do not change. (default: full - 2) monitor - 1, none - 0 int 2
# enable_stdout_logs = false # enables logging to stdout bool false
manual_crash = 0 # set to 1 and then back to 0 to crash Hyprland. int 0
# suppress_errors = false # if true, do not display config file parsing errors. bool false
# watchdog_timeout = 5 # sets the timeout in seconds for watchdog to abort processing of a signal of the main thread. Set to 0 to disable. int 5
# disable_scale_checks = false # disables verifying of the scale factors. Will result in pixel alignment and rounding errors. bool false
# error_limit = 5 # limits the number of displayed config file parsing errors. int 5
}