Skip to content

Hyprland is a dynamic tiling Wayland compositor based on wlroots that doesn't sacrifice on its looks

License

Notifications You must be signed in to change notification settings

ArtemSmaznov/dotfiles-hyprland

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hyprland

Table of Contents

Dependencies

NameDescription
hyprland
hyprpaper
waybar-hyprland
sudo pacman -S hyprland hyprpaper

Apps

$myScript        = $HOME/.local/bin
$myDMScript      = $HOME/.local/bin/dm-scripts
$myHyprScript    = $HOME/.config/hypr/scripts
$myEwwScript     = $HOME/.config/eww/scripts

# cli tools
$myTerm          = uwsm app -- alacritty
$myCliFiles      = uwsm app -- alacritty -e vifmrun
$myCliMusic      = alacritty --class ncmpcpp -e ncmpcpp
$mySysLog        = alacritty --class syslog -e journalctl --follow
$myCliText       = vim
$myCliSysAudio   = alsamixer
$myCliSysMonitor = btop
$myCliSysTasks   = htop

# core tools
$myWebBrowser    = uwsm app -- qutebrowser
$myIncBrowser    = uwsm app -- qutebrowser --target private-window
$myTorBrowser    = uwsm app -- torbrowser-launcher
$myIde           = uwsm app -- emacs
# $myIde           = uwsm app -- emacsclient -ca ''
$myFiles         = pcmanfm
$myEmail         = uwsm app -- thunderbird
$myEmailClass    = thunderbird

# gaming
$myGZDoom        = uwsm app -- gzdoom
$myFHeroes2      = uwsm app -- fheroes2
$myGameHub       = uwsm app -- gamehub
$myHeroic        = uwsm app -- heroic
$myLutris        = uwsm app -- lutris
$mySteam         = uwsm app -- /usr/bin/steam-runtime %U
$myVCMI          = uwsm app -- vcmilauncher
$myNexus         = uwsm app -- /opt/nexusmods-app/NexusMods.App %u

# extra tools
$myLauncher      = wofi --show drun
$myVirtManager   = uwsm app -- virt-manager
$myTorrent       = transmission-gtk
$myCalculator    = gnome-calculator
$myAnki          = uwsm app -- anki
$myColorPicker   = hyprpicker -anr

# graphics tools
$myPhotoLibrary  = uwsm app -- digikam
$myImgEditor     = uwsm app -- gimp
$myVctEditor     = uwsm app -- inkscape
$myVidEditor     = uwsm app -- 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

Theme

source=./themes/base16.conf

$gaps_inner = 20
$gaps_outer = 40
$borders = 15
$borders_special = 10
$corners = 15

Monitors

See https://wiki.hyprland.org/Configuring/Monitors/

Extras:

  • mirror , DP-1
  • bitdepth , 10
  • vrr , 2
    0off
    1on
    2fullscreen
  • 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

Waybar

Startup

See https://wiki.hyprland.org/Configuring/Keywords/ for more

exec-once = paplay "$HOME/public/audio/windows95-startup.wav"
exec-once = uwsm app -- $HOME/.local/bin/set-wallpaper.sh
exec-once = uwsm app -S both -- eww open-many main-bar second-bar $quick-settings

General

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($base0Baa) rgba($base0Eaa) rgba($base0Caa) rgba($base0Aaa) 45deg
    col.inactive_border = rgba($base03aa) rgba($base0199) 90deg

    # ungroupable window borders
    col.nogroup_border_active = rgba($base08aa) rgba($base00aa) rgba($base09aa) 45deg
    col.nogroup_border = rgba($base0833) rgba($base0033) rgba($base0933) 45deg

    # 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
}

Window stacking

group {
    auto_group = true
    insert_after_current = true
    focus_removed_window = true
    drag_into_group = 1 # 0 (disabled), 1 (enabled), 2 (only when dragging into the groupbar)
    merge_groups_on_drag = false
    merge_groups_on_groupbar = true
    merge_floated_into_tiled_on_groupbar = false
    group_on_movetoworkspace = false

    # group borders
    col.border_active = rgba($base0Baa) rgba($base0Daa) rgba($base0Caa) 45deg
    col.border_inactive = rgba($base0B33) rgba($base0D33) rgba($base0C33) 45deg
    col.border_locked_active = rgba($base09aa) rgba($base0Aaa) rgba($base0Faa)
    col.border_locked_inactive = rgba($base0933) rgba($base0A33) rgba($base0F33)

    groupbar {
        enabled = true
        stacked = false
        render_titles = true
        scrolling = true

        # styling
        height = 26
        font_size = 14
        text_color = rgb($base07)

        gradients = true
        col.active = rgba($base0Baa)
        col.inactive = rgba($base0377)
        col.locked_active = rgba($base09aa)
        col.locked_inactive = rgba($base0377)
    }
}

Window rules

See https://wiki.hyprland.org/Configuring/Window-Rules/ for more

XWayland Windows

windowrulev2 = bordercolor rgba($base09aa) rgba($base08aa) rgba($base0Aaa) 45deg rgba($base0944) rgba($base0844) rgba($base0A44) 45deg,xwayland:1

Floating Windows

windowrulev2 = noborder,pinned:1
windowrulev2 = nodim,pinned:1
windowrulev2 = opacity override 0.7,pinned:1

Maximized Windows

windowrulev2 = rounding 0,fullscreenstate:1 * # maximized windows
windowrulev2 = rounding 0,fullscreenstate:* 2 # fake fullscreen windows

Idle Inhibit

Games

windowrulev2 = idleinhibit focus,class:^steam_app
windowrulev2 = idleinhibit focus,class:^vimiv$
windowrulev2 = idleinhibit focus,class:x86_64$

windowrulev2 = idleinhibit always,title:cava

Apps

MPV

$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

Steam

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)

Scrcpy

windowrule = tile,^([Ss]crcpy)$

Okular

$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

Thunderbird

$app_filter = ^(thunderbird)$

# float dialogs and stuff
windowrulev2 = float,$app_filter,title:Filters
windowrulev2 = size: 100 70%,$app_filter,title:Filters
windowrulev2 = move: 30% 15%,$app_filter,title:Filters

Scrcpy

$app_filter = ^(scrcpy)$

# float dialogs and stuff
windowrulev2 = float,class:$app_filter

Emacs

$app_filter = ^(\*Org Src .* Doom Emacs)$ # org-edit-special window
windowrulev2 = float,title:$app_filter
windowrulev2 = center,title:$app_filter
windowrulev2 = size 60% 80%,title:$app_filter
windowrulev2 = dimaround,title:$app_filter

Lutris

$app_filter = ^(net.lutris.Lutris)$
windowrulev2 = group,class:$app_filter

SysLog

$app_filter = ^(syslog)$
windowrulev2 = fullscreen,class:$app_filter

Workspaces

Workspace 1 - Internet

# 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)$

Workspace 2 - Mail

windowrule = workspace 2 silent,^(thunderbird)$

Workspace 3 - Coding

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)$

Workspace 4 - Computer

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)$

Workspace 5 - Chat

# 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)$

Workspace 6 - Graphics

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)$

Workspace 7 - Sandbox

windowrule = workspace 7 silent,^(Virt-manager)$
windowrule = workspace 7 silent,^VirtualBox
windowrule = workspace 7 silent,^(Cypress)$

Workspace 8 - Gaming

windowrule   = workspace 8 silent,^([Bb]attle.net)$
windowrule   = workspace 8 silent,^([Ww]ine)$
windowrule   = workspace 8 silent,^(dolphin-emu)$
windowrule   = workspace 8 silent,^(net.lutris.Lutris)$
windowrule   = workspace 8 silent,^(Citra)$
windowrule   = workspace 8 silent,^(SuperTuxKart)$

Workspace 9 - Music

windowrule = workspace 9 silent,^(Spotify)$

Scratchpads

Terminal

# $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

Files

# $scratchpad = ^(sp-files)$
# #---------------------------------------------------
# windowrule = unset,$scratchpad
# # windowrule = workspace special silent,$scratchpad
# windowrule = float,$scratchpad
# windowrule = size 50% 70%,$scratchpad
# windowrule = center,$scratchpad

Torrent

$scratchpad = ^(com.transmissionbt.transmission*)
#---------------------------------------------------
windowrule = unset,$scratchpad
# windowrule = workspace special silent,$scratchpad
windowrule = size 30% 80%,$scratchpad
windowrule = float,$scratchpad
windowrule = center,$scratchpad

Anki

$scratchpad = ^(anki)$
#---------------------------------------------------
windowrule = unset,$scratchpad
windowrule = float,$scratchpad
windowrule = size 20% 70%,$scratchpad
windowrule = center,$scratchpad
windowrule = dimaround,$scratchpad

VM

$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

Htop

$scratchpad = ^(sp-htop)$
#---------------------------------------------------
# windowrule = float,$scratchpad
# windowrule = size 80% 80%,$scratchpad
# windowrule = center,$scratchpad
windowrule = stayfocused,$scratchpad
windowrule = dimaround,$scratchpad

Calculator

$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

Workspace rules

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:false, monitor:DP-3, on-created-empty: $mySysLog
workspace = 8, persistent:true, monitor:DP-1
workspace = 9, persistent:true, monitor:DP-1
# 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 rules

LayerRole
3overlay
2top
1bottom
0background
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

Decoration

See https://wiki.hyprland.org/Configuring/Variables/ for more

decoration {
    rounding = $corners

    # window opacity
    active_opacity = 1.0
    inactive_opacity = 1.0
    fullscreen_opacity = 1.0

    # window dimming
    dim_inactive = false
    dim_strength = 0.25
    dim_special = 0.2
    dim_around = 0.4

    blur {
        enabled = true
        size = 10
        passes = 3
        ignore_opacity = true
        new_optimizations = true
        xray = false
        noise = 0.03
        special = false
        popups = true
        popups_ignorealpha = 0.2
    }

    shadow {
        enabled = true

        range = 20                       # Shadow range (“size”) in layout px
        render_power = 3                 # in what power to render the falloff (more power, the faster the falloff) [1 - 4]
        sharp = false
        ignore_window = true             # if true, the shadow will not be rendered behind the window itself, only around it.

        color = rgba($base00ee)          # shadow’s color. Alpha dictates shadow’s opacity.
        color_inactive = rgba($base00cc) # inactive shadow color. (if not set, will fall back to col.shadow) color unset

        # offset = [0, 0]                  # shadow’s rendering offset. vec2 [0, 0]
        scale = 1.0                      # shadow’s scale. [0.0 - 1.0]
    }
}

Input

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

misc {
    disable_autoreload = false
    disable_hyprland_logo = false
    middle_click_paste = true

    # styling
    font_family = Hack Nerd Font
    col.splash = rgb($base07)

    # 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

    # fullscreen
    new_window_takes_over_fullscreen = 0
    exit_window_retains_fullscreen = false

    # animations
    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

    # dpms
    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.

    # window swallowing
    enable_swallow = false
    # swallow_regex =
    # swallow_exception_regex =

    close_special_on_empty = true
    allow_session_lock_restore = false   # 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
}

Cursor

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

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.
}

Animations

Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more

animations {
    enabled = true
    first_launch_animation = true

    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
}

Layouts

Dwindle

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 = 2           # 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.
    default_split_ratio = 1.00
}

Master

See https://wiki.hyprland.org/Configuring/Master-Layout/ for more

master {
    new_status = slave
}

Gestures

gestures {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more
    workspace_swipe = false
}

Devices

Mouse

Example per-device config See https://wiki.hyprland.org/Configuring/Keywords/#executing for more

# device:logitech-mx-master-3-1 {
#     sensitivity = 0
# }

Core keybindings

Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more

System

bindd = SUPER CTRL , q     , quit hyprland    , exec                , uwsm stop
bindd = SUPER CTRL , r     , restart hyprland , forcerendererreload ,
bindd = SHIFT      , ALT_L , switch language  , exec                , $myScript/toggle-lang.sh

Windows

States

bindd = SUPER       , q   , close focused window   , killactive      ,
bindd = SUPER ALT   , q   , click window to close  , exec            , hyprctl kill
bindd = SUPER SHIFT , F11 , toggle fake fullscreen , fullscreenState , -1 2
bindd = SUPER       , F11 , toggle fullscreen      , fullscreen      , 0
bindd = SUPER SHIFT , f   , toggle fullscreen      , fullscreen      , 0
bindd = SUPER       , m   , toggle maximize        , fullscreen      , 1
bindd = SUPER       , f   , toggle floating        , togglefloating  ,
bind  = SUPER       , f   , centerwindow  ,
bindd = SUPER CTRL  , f   , toggle pinnned         , pin             ,
bindd = SUPER       , up  , toggle pinnned         , pin             ,
bindd = SUPER SHIFT , p   , toggle pseudo          , pseudo          ,
bindd = SUPER SHIFT , m   , mirror layout          , togglesplit     ,

Focus

bindd = SUPER , h , focus left window  , movefocus , l    
bindd = SUPER , j , focus below window , movefocus , d
bindd = SUPER , k , focus above window , movefocus , u
bindd = SUPER , l , focus right window , movefocus , r

Groups

bindd = ALT       , tab , focus next window , changegroupactive , f
bindd = ALT SHIFT , tab , focus prev window , changegroupactive , b

bindd = SUPER , left  , focus prev window         , changegroupactive , b
bindd = SUPER , down  , move window down in stack , movegroupwindow   , f
bindd = SUPER , up    , move window up in stack   , movegroupwindow   , b
bindd = SUPER , right , focus next window         , changegroupactive , f

Resizing windows

bindd = SUPER , equal , reset fucused window size , splitratio , exact 1

bindde = SUPER CTRL , h , grow focused window left  , resizeactive , -20 0
bindde = SUPER CTRL , j , grow focused window down  , resizeactive ,  0 20
bindde = SUPER CTRL , k , grow focused window up    , resizeactive ,  0 -20
bindde = SUPER CTRL , l , grow focused window right , resizeactive , 20 0

Swapping tiled windows

bindd = SUPER SHIFT , h , swap focused window with left window  , swapwindow , l
bindd = SUPER SHIFT , j , swap focused window with below window , swapwindow , d
bindd = SUPER SHIFT , k , swap focused window with above window , swapwindow , u
bindd = SUPER SHIFT , l , swap focused window with right window , swapwindow , r

Move floating windows

binde  = SUPER CTRL  , c     , centerwindow
binded = SUPER       , equal , center floating window     , centerwindow ,
binded = SUPER SHIFT , h     , move floating window left  , moveactive   , -20 0
binded = SUPER SHIFT , j     , move floating window down  , moveactive   ,  0 20
binded = SUPER SHIFT , k     , move floating window up    , moveactive   ,  0 -20
binded = SUPER SHIFT , l     , move floating window right , moveactive   , 20 0

Special Moving windows

bindd = SUPER ALT , h , move focused window left  , movewindoworgroup , l
bindd = SUPER ALT , j , move focused window below , movewindoworgroup , d
bindd = SUPER ALT , k , move focused window above , movewindoworgroup , u
bindd = SUPER ALT , l , move focused window right , movewindoworgroup , r

Masters


Monitors

Focus

bindd = SUPER , F1     , move focus to monitor 1     , focusmonitor , 0
bindd = SUPER , F2     , move focus to monitor 2     , focusmonitor , 1
bindd = SUPER , F3     , move focus to monitor 3     , focusmonitor , 2
bindd = SUPER , comma  , move focus to below monitor , focusmonitor , d
bindd = SUPER , period , move focus to above monitor , focusmonitor , u

Moving Windows

bindd = SUPER SHIFT , comma  , move window to below monitor , movewindow , mon:d
bindd = SUPER SHIFT , period , move window to above monitor , movewindow , mon:u

Swapping

bindd = SUPER SHIFT , F1 , move window to monitor 1 , movewindow , mon:0
bindd = SUPER SHIFT , F2 , move window to monitor 2 , movewindow , mon:1
bindd = SUPER SHIFT , F3 , move window to monitor 3 , movewindow , mon:2

Workspaces

Focus

bindd = SUPER , tab , toggle last workspace    , focusworkspaceoncurrentmonitor , previous
bindd = SUPER , 1   , switch to workspace 1    , focusworkspaceoncurrentmonitor , 1
bindd = SUPER , 2   , switch to workspace 2    , focusworkspaceoncurrentmonitor , 2
bindd = SUPER , 3   , switch to workspace 3    , focusworkspaceoncurrentmonitor , 3
bindd = SUPER , 4   , switch to workspace 4    , focusworkspaceoncurrentmonitor , 4
bindd = SUPER , 5   , switch to workspace 5    , focusworkspaceoncurrentmonitor , 5
bindd = SUPER , 6   , switch to workspace 6    , focusworkspaceoncurrentmonitor , 6
bindd = SUPER , 7   , switch to workspace 7    , focusworkspaceoncurrentmonitor , 7
bindd = SUPER , 8   , switch to workspace 8    , focusworkspaceoncurrentmonitor , 8
bindd = SUPER , 9   , switch to workspace 9    , focusworkspaceoncurrentmonitor , 9
bindd = SUPER , 0   , switch to workspace star , focusworkspaceoncurrentmonitor , name:star

Moving Windows

bindd = SUPER SHIFT , 1 , move window to workspace 1    , movetoworkspacesilent , 1
bindd = SUPER SHIFT , 2 , move window to workspace 2    , movetoworkspacesilent , 2
bindd = SUPER SHIFT , 3 , move window to workspace 3    , movetoworkspacesilent , 3
bindd = SUPER SHIFT , 4 , move window to workspace 4    , movetoworkspacesilent , 4
bindd = SUPER SHIFT , 5 , move window to workspace 5    , movetoworkspacesilent , 5
bindd = SUPER SHIFT , 6 , move window to workspace 6    , movetoworkspacesilent , 6
bindd = SUPER SHIFT , 7 , move window to workspace 7    , movetoworkspacesilent , 7
bindd = SUPER SHIFT , 8 , move window to workspace 8    , movetoworkspacesilent , 8
bindd = SUPER SHIFT , 9 , move window to workspace 9    , movetoworkspacesilent , 9
bindd = SUPER SHIFT , 0 , move window to workspace star , movetoworkspacesilent , name:star

Moving Windows with switching Workspace

bindd = SUPER SHIFT CTRL , 1 , move window to workspace 1 with switch , moveworkspacetomonitor , 1 current
bindd = SUPER SHIFT CTRL , 2 , move window to workspace 2 with switch , moveworkspacetomonitor , 2 current
bindd = SUPER SHIFT CTRL , 3 , move window to workspace 3 with switch , moveworkspacetomonitor , 3 current
bindd = SUPER SHIFT CTRL , 4 , move window to workspace 4 with switch , moveworkspacetomonitor , 4 current
bindd = SUPER SHIFT CTRL , 5 , move window to workspace 5 with switch , moveworkspacetomonitor , 5 current
bindd = SUPER SHIFT CTRL , 6 , move window to workspace 6 with switch , moveworkspacetomonitor , 6 current
bindd = SUPER SHIFT CTRL , 7 , move window to workspace 7 with switch , moveworkspacetomonitor , 7 current
bindd = SUPER SHIFT CTRL , 8 , move window to workspace 8 with switch , moveworkspacetomonitor , 8 current
bindd = SUPER SHIFT CTRL , 9 , move window to workspace 9 with switch , moveworkspacetomonitor , 9 current

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

Special Workspaces

Toggle

bindd = SUPER ALT , grave , toggle special workspace term  , togglespecialworkspace , term
bindd = SUPER ALT , 1     , toggle special workspace 1     , togglespecialworkspace , 1
bindd = SUPER ALT , 2     , toggle special workspace 2     , togglespecialworkspace , 2
bindd = SUPER ALT , 3     , toggle special workspace 3     , togglespecialworkspace , 3
bindd = SUPER ALT , 4     , toggle special workspace 4     , togglespecialworkspace , 4
bindd = SUPER ALT , 5     , toggle special workspace 5     , togglespecialworkspace , 5
bindd = SUPER ALT , m     , toggle special workspace music , togglespecialworkspace , music
bindd = SUPER ALT , a     , toggle special workspace audio , togglespecialworkspace , audio
bindd = SUPER ALT , c     , toggle special workspace chats , togglespecialworkspace , chats
bindd = SUPER ALT , v     , toggle special workspace vm    , togglespecialworkspace , vm

Moving Windows

bindd = SUPER ALT SHIFT , grave , move window to special workspace term  , movetoworkspacesilent , term
bindd = SUPER ALT SHIFT , 1     , move window to special workspace 1     , movetoworkspacesilent , special:1
bindd = SUPER ALT SHIFT , 2     , move window to special workspace 2     , movetoworkspacesilent , special:2
bindd = SUPER ALT SHIFT , 3     , move window to special workspace 3     , movetoworkspacesilent , special:3
bindd = SUPER ALT SHIFT , 4     , move window to special workspace 4     , movetoworkspacesilent , special:4
bindd = SUPER ALT SHIFT , 5     , move window to special workspace 5     , movetoworkspacesilent , special:5
bindd = SUPER ALT SHIFT , m     , move window to special workspace music , movetoworkspacesilent , special:music
bindd = SUPER ALT SHIFT , a     , move window to special workspace audio , movetoworkspacesilent , special:audio
bindd = SUPER ALT SHIFT , c     , move window to special workspace chats , movetoworkspacesilent , special:chats
bindd = SUPER ALT SHIFT , v     , move window to special workspace vm    , movetoworkspacesilent , special:vm

Launching Apps

bindd = SUPER , grave , toggle terminal     , exec , $myHyprScript/toggle-special-workspace.sh "term"  "sp-term"  "alacritty --class sp-term"
bindd = SUPER , e     , toggle file manager , exec , $myHyprScript/toggle-special-workspace.sh "files" "sp-files" "alacritty --class sp-files -e vifm"

bindd = SUPER       , return , launch terminal                      , exec , $myTerm
bindd = SUPER CTRL  , return , launch launcher                      , exec , $myLauncher
bindd = SUPER       , r      , launch launcher                      , exec , $myLauncher
bindd = SUPER       , c      , launch ide                           , exec , $myIde
bindd = SUPER SHIFT , e      , launch file manager                  , exec , $myCliFiles
bindd = SUPER       , b      , launch web browser                   , exec , $myWebBrowser
bindd = SUPER       , i      , launch web browser in incognito mode , exec , $myIncBrowser

CTRL ALT

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"

media keys

System audio

bindld = , XF86AudioRaiseVolume , increase system volume , exec , $myScript/set-volume.sh + 5
bindld = , XF86AudioLowerVolume , decrease system volume , exec , $myScript/set-volume.sh - 5
bindld = , XF86AudioMute        , toggle mute            , exec , $myScript/toggle-mute.sh

Player audio

binddl = CTRL , XF86AudioRaiseVolume , player increase volume , exec , $myScript/playerctl.sh vol-up
binddl = CTRL , XF86AudioLowerVolume , player decrease volume , exec , $myScript/playerctl.sh vol-down
binddl =      , XF86AudioPrev        , player prev            , exec , $myScript/playerctl.sh prev
binddl =      , XF86AudioNext        , player next            , exec , $myScript/playerctl.sh next
binddl =      , XF86AudioPlay        , player play/pause      , exec , $myScript/playerctl.sh toggle
binddl =      , XF86AudioStop        , player stop            , exec , $myScript/playerctl.sh stop
binddl = CTRL , XF86AudioPlay        , music [s] single mode  , exec , $myScript/musictl.sh single
binddl = CTRL , XF86AudioStop        , music [z] shuffle mode , exec , $myScript/musictl.sh random

print screen

bindd =             , print , fullscreen screenshot     , exec , $myScript/screenshot.sh monitor
bindd = SUPER SHIFT , print , selection area screenshot , exec , $myScript/screenshot.sh area
bindd = ALT         , print , active window screenshot  , exec , $myScript/screenshot.sh window
bindd = SUPER       , print , full desktop screenshot   , exec , $myScript/screenshot.sh desktop

backslash dm-notify

bind = SUPER , backslash , exec   , $myEwwScript/which-key.sh -p "M-\\\-" dm-notify
bind = SUPER , backslash , submap , dm-notify

submap = dm-notify
bindd  =       , backspace , clear last notification   , exec , $myDMScript/dm-notify close
bindd  = SUPER , backslash , show last notification    , exec , $myDMScript/dm-notify recent
bindd  =       , backslash , show last notification    , exec , $myDMScript/dm-notify recent
bindd  = SHIFT , BACKSLASH , show recent notifications , exec , $myDMScript/dm-notify recents
bindd  =       , a         , open last notification    , exec , $myDMScript/dm-notify context
bindd  =       , c         , clear last notification   , exec , $myDMScript/dm-notify close
bindd  = SHIFT , C         , clear all notifications   , exec , $myDMScript/dm-notify clear
bindd  =       , r         , show recent notifications , exec , $myDMScript/dm-notify recents

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

d dm-scripts

bind = SUPER , d , exec   , $myEwwScript/which-key.sh -p "M-d-" dm-global
bind = SUPER , d , submap , dm-global

submap = dm-global
bindd  =       , backslash , dm-notify     , exec , $myDMScript/dm-notify
bindd  =       , b         , dm-bookman    , exec , $myDMScript/dm-bookman
bindd  = SUPER , d         , dm-master     , exec , $myDMScript/dm-master
bindd  =       , k         , dm-keys       , exec , $myDMScript/dm-keys
bindd  =       , n         , dm-notify     , exec , $myDMScript/dm-notify
bindd  =       , p         , dm-player     , exec , $myDMScript/dm-player
bindd  =       , r         , dm-record     , exec , $myDMScript/dm-record
bindd  =       , s         , dm-screenshot , exec , $myDMScript/dm-screenshot
bindd  =       , t         , dm-theme      , exec , $myDMScript/dm-theme
bindd  =       , w         , dm-wallpaper  , exec , $myDMScript/dm-wallpaper
bindd  =       , z         , dm-power      , exec , $myDMScript/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

o open

bind = SUPER , o , exec   , $myEwwScript/which-key.sh -p "M-o-" open
bind = SUPER , o , submap , open

submap = open
bindd  =       , c , color picker                      , exec   , $myColorPicker
bindd  =       , d , toggle chats                      , exec   , $myHyprScript/toggle-special-workspace.sh "chats" $myDiscordClass $myDiscord
bindd  =       , e , email client                      , exec   , $myEmail
bind   =       , g , exec                              , $myEwwScript/which-key.sh -p "M-o g-" games
bindd  =       , g , +games                            , submap , games
bindd  =       , i , image viewer                      , exec   , vimiv $XDG_PICTURES_DIR
bindd  =       , m , music player                      , exec   , $myCliMusic
bindd  = SHIFT , M , music player on default workspace , exec   , [workspace 9 silent] $myCliMusic
bindd  =       , t , tor browser                       , exec   , $myTorBrowser
bindd  =       , w , toggle whatsapp                   , exec   , $myHyprScript/toggle-special-workspace.sh "chats" "whatsapp-for-linux" "whatsapp-for-linux"

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

g games

submap = games
bindd  = , d , gzdoom             , exec , $myGZDoom
bindd  = , f , fheroes homm       , exec , $myFHeroes2
bindd  = , g , gamehub            , exec , $myGameHub
bindd  = , h , heroic             , exec , $myHeroic
bindd  = , l , lutris             , exec , $myLutris
bindd  = , n , Nexus Mods App     , exec , $myNexus
bindd  = , s , steam              , exec , $mySteam
bindd  = , v , vcmi homm launcher , exec , $myVCMI
bindd  = , x , Nexus Mods App     , exec , $myNexus

bindr = , catchall  , exec   , $myHyprScript/reset-submap.sh
bind  = , backspace , exec   , $myEwwScript/which-key.sh -p "M-o-" 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  = , n         , exec   , $myHyprScript/reset-submap.sh
bind  = , s         , exec   , $myHyprScript/reset-submap.sh
bind  = , v         , exec   , $myHyprScript/reset-submap.sh
bind  = , x         , exec   , $myHyprScript/reset-submap.sh

submap = reset

p pass

bind = SUPER , p , exec   , $myEwwScript/which-key.sh -p "M-p-" pass
bind = SUPER , p , submap , pass

submap = pass
bindd  = , c , copy field        , exec , wofi-pass --squash
bindd  = , p , fill field        , exec , wofi-pass --squash --type
bindd  = , a , autofill password , exec , wofi-pass --squash --type --autotype

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

s scratchpad

bind = SUPER , s , exec   , $myEwwScript/which-key.sh -p "M-s-" scratchpad
bind = SUPER , s , submap , scratchpad

submap = scratchpad
#        ,   ,              ,      ,                                           workspace     class                              command
bindd  = , a , anki         , exec , $myHyprScript/toggle-special-workspace.sh "anki"        "anki"                             "anki"
bindd  = , c , calculator   , exec , $myHyprScript/toggle-special-workspace.sh "calculator"  "org.gnome.Calculator"             "gnome-calculator"
bindd  = , d , discord      , exec , $myHyprScript/toggle-special-workspace.sh "chats"       $myDiscordClass                    $myDiscord
bindd  = , e , email client , exec , $myHyprScript/toggle-special-workspace.sh "email"       $myEmailClass                      $myEmail
bindd  = , m , music player , exec , $myHyprScript/toggle-special-workspace.sh "music"       "sp-music"                         "alacritty --class sp-music -e ncmpcpp"
bindd  = , t , torrent      , exec , $myHyprScript/toggle-special-workspace.sh "torrent"     "com.transmissionbt.transmission"  "transmission-gtk"
bindd  = , v , vm           , exec , $myHyprScript/toggle-special-workspace.sh "vm"          "virt-manager"                     "virt-manager"
bindd  = , w , whatsapp     , exec , $myHyprScript/toggle-special-workspace.sh "chats"       "whatsapp-for-linux"               "whatsapp-for-linux"

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

t toggle

bind = SUPER , t , exec   , $myEwwScript/which-key.sh -p "M-t-" toggle
bind = SUPER , t , submap , toggle

z dm-power

bind = SUPER , z , exec   , $myEwwScript/which-key.sh -p "M-z-" dm-power
bind = SUPER , z , submap , dm-power

submap = dm-power
bindd  =       , c , disconnect all controllers , exec , $myDMScript/dm-power controller
bindd  =       , l , lock screen                , exec , $myDMScript/dm-power lock
bindd  = SHIFT , L , logout                     , exec , loginctl terminate-session "$XDG_SESSION_ID"
bindd  =       , p , shutdown system            , exec , $myDMScript/dm-power poweroff
bindd  =       , r , reboot system              , exec , $myDMScript/dm-power reboot
bindd  =       , s , suspend system             , exec , $myDMScript/dm-power suspend
bindd  =       , z , suspend system             , exec , $myDMScript/dm-power suspend
bindd  = SUPER , z , suspend system             , exec , $myDMScript/dm-power suspend

bindr =       , catchall , exec , $myHyprScript/reset-submap.sh
bind  =       , c        , exec , $myHyprScript/reset-submap.sh
bind  =       , l        , exec , $myHyprScript/reset-submap.sh
bind  = SHIFT , 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

ctrl-alt-o

bind = CTRL ALT , o , exec   , $myEwwScript/which-key.sh -p "C-A-o-" open-secondary
bind = CTRL ALT , o , submap , open-secondary

submap = open-secondary
bindd  = , e , gui file manager    , exec , $myFiles
bindd  = , g , image editor        , exec , $myImgEditor
bindd  = , p , photo library       , exec , $myPhotoLibrary
bindd  = , r , vector image editor , exec , $myVctEditor
bindd  = , v , video editor        , exec , $myVidEditor

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

Leader keybindings

bind = SUPER , space , exec   , $myEwwScript/which-key.sh -p "SPC-" leader
bind = SUPER , space , submap , leader

submap = leader
bind   =       , e , exec                    , $myEwwScript/which-key.sh -p "SPC e-" eww
bindd  =       , e , +Elkowars Wacky Widgets , submap , eww
bind   =       , l , exec                    , $myEwwScript/which-key.sh -p "SPC l-" layout
bindd  =       , l , +layout                 , submap , layout
bind   =       , t , exec                    , $myEwwScript/which-key.sh -p "SPC t-" toggle
bindd  =       , t , +toggle                 , submap , toggle
bind   =       , w , exec                    , $myEwwScript/which-key.sh -p "SPC w-" window
bindd  =       , w , +window                 , submap , window
bind   = SHIFT , W , exec                    , $myEwwScript/which-key.sh -p "SPC W-" workspace
bindd  = SHIFT , W , +workspace              , submap , workspace

bindr = , catchall , exec , $myHyprScript/reset-submap.sh

submap = reset

e eww

submap = eww
bindd  = , d , toggle debug panel , exec , eww set debug=true
bindd  = , p , open playground    , exec , eww open --toggle playground

bindr = , catchall  , exec   , $myHyprScript/reset-submap.sh
bind  = , backspace , exec   , $myEwwScript/which-key.sh -p "SPC-" leader
bind  = , backspace , submap , leader
bindr = , d         , exec   , $myHyprScript/reset-submap.sh
bindr = , p         , exec   , $myHyprScript/reset-submap.sh

submap = reset

l layout

submap = layout
bindd  = , d , dwindle       , exec   , $myHyprScript/layoutctl.sh set dwindle
bindd  = , l , switch layout , exec   , $myHyprScript/layoutctl.sh toggle
bindd  = , m , master        , exec   , $myHyprScript/layoutctl.sh set master
bind   = , g , exec          , $myEwwScript/which-key.sh -p "SPC l g-" gaps
bindd  = , g , +gaps         , submap , gaps

bindr = , catchall  , exec   , $myHyprScript/reset-submap.sh
bind  = , backspace , exec   , $myEwwScript/which-key.sh -p "SPC-" leader
bind  = , backspace , submap , leader

submap = reset

g gaps

submap = gaps
bindd  =       , g     , toggle      , exec , $myHyprScript/gapctl.sh $gaps_inner toggle
bindd  =       , 0     , reset       , exec , $myHyprScript/gapctl.sh $gaps_inner reset
bindde =       , minus , shrink      , exec , $myHyprScript/gapctl.sh $gaps_inner shrink 1
bindde =       , equal , grow        , exec , $myHyprScript/gapctl.sh $gaps_inner grow 1
bindd  = SHIFT , 0     , disable     , exec , $myHyprScript/gapctl.sh $gaps_inner disable
bindde = SHIFT , minus , shrink more , exec , $myHyprScript/gapctl.sh $gaps_inner shrink 5
bindde = SHIFT , equal , grow more   , exec , $myHyprScript/gapctl.sh $borders grow 5

bindr = , catchall  , exec   , $myHyprScript/reset-submap.sh
bind  = , backspace , exec   , $myEwwScript/which-key.sh -p "SPC l-" layout
bind  = , backspace , submap , layout

submap = reset

t toggle

submap = toggle
bindd  = , b , window borders  , exec   , $myHyprScript/borderctl.sh $borders toggle
bindd  = , c , rounded corners , exec   , $myHyprScript/toggle-corners.sh $corners
bindd  = , d , window dimming  , exec   , $myHyprScript/toggle-dimming.sh 1
bindd  = , g , window gaps     , exec   , $myHyprScript/gapctl.sh $gaps_inner toggle
bind   = , p , exec            , $myEwwScript/which-key.sh -p "SPC t p-" panels
bindd  = , p , +panels         , submap , panels
bind   = , q , exec            , $myEwwScript/which-key.sh -p "SPC t q-" quick-settings
bindd  = , q , +quick-settings , submap , quick-settings
bindd  = , s , status bar      , exec   , $myHyprScript/toggle-status-bar.sh
bindd  = , z , zen mode        , exec   , $myHyprScript/toggle-zen.sh $borders $corners $gaps_inner

bindr = , catchall  , exec   , $myHyprScript/reset-submap.sh
bind  = , backspace , exec   , $myEwwScript/which-key.sh -p "SPC-" leader
bind  = , backspace , submap , leader
bind  = , b         , exec   , $myHyprScript/reset-submap.sh
bind  = , c         , exec   , $myHyprScript/reset-submap.sh
bind  = , d         , 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

p panels

submap = panels
bindd  =       , m , monitor panel                             , exec , $myEwwScript/toggle-window.sh -m $($myScript/get-current-monitor.sh id) $panel-monitor
bindd  = SHIFT , M , monitor panel on secondary monitor        , exec , $myEwwScript/toggle-window.sh -m 1 $panel-monitor
bindd  =       , q , quick-settings panel                      , exec , $myEwwScript/toggle-window.sh -m $($myScript/get-current-monitor.sh id) $quick-settings
bindd  = SHIFT , Q , quick-settings panel on secondary monitor , exec , $myEwwScript/toggle-window.sh -m 1 $quick-settings

bindr =       , catchall  , exec   , $myHyprScript/reset-submap.sh
bind  =       , backspace , exec   , $myEwwScript/which-key.sh -p "SPC t-" 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

q quick-settings

submap = quick-settings
bindd  = , b , bluetooth            , exec , systemd-run --user -u btctl-toggle.service -- $myScript/btctl.sh toggle
bindd  = , e , ethernet             , exec , $myScript/netctl.sh toggle ethernet
bindd  = , h , bluetooth headphones , exec , systemd-run --user -u btctl-headphones.service -- $myScript/toggle-headphones.sh
bindd  = , s , bluetooth speakers   , exec , systemd-run --user -u btctl-speakers.service -- $myScript/toggle-speakers.sh
bindd  = , v , vpn                  , exec , $myScript/vpnctl.sh toggle
bindd  = , w , wi-fi                , exec , $myScript/netctl.sh toggle wifi

bindr = , catchall  , exec   , $myHyprScript/reset-submap.sh
bind  = , backspace , exec   , $myEwwScript/which-key.sh -p "SPC t-" 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

w window

submap = window
bind   = , b , exec     , $myEwwScript/which-key.sh -p "SPC w b-" borders
bindd  = , b , +borders , submap , borders
bind   = , s , exec     , $myEwwScript/which-key.sh -p "SPC w s-" stack
bindd  = , s , +stack   , submap , stack

bindr = , catchall  , exec   , $myHyprScript/reset-submap.sh
bind  = , backspace , exec   , $myEwwScript/which-key.sh -p "SPC-" leader
bind  = , backspace , submap , leader

submap = reset

b borders

submap = borders
bindd  =       , b     , toggle      , exec , $myHyprScript/borderctl.sh $borders toggle
bindd  =       , 0     , reset       , exec , $myHyprScript/borderctl.sh $borders reset
bindde =       , minus , shrink      , exec , $myHyprScript/borderctl.sh $borders shrink 1
bindde =       , equal , grow        , exec , $myHyprScript/borderctl.sh $borders grow 1
bindd  = SHIFT , 0     , disable     , exec , $myHyprScript/borderctl.sh $borders disable
bindde = SHIFT , minus , shrink more , exec , $myHyprScript/borderctl.sh $borders shrink 5
bindde = SHIFT , equal , grow more   , exec , $myHyprScript/borderctl.sh $borders grow 5

bindr = , catchall  , exec   , $myHyprScript/reset-submap.sh
bind  = , backspace , exec   , $myEwwScript/which-key.sh -p "SPC w-" window
bind  = , backspace , submap , window

submap = reset

s stack

submap = stack
bindd  =       , tab , next window                  , changegroupactive
bindd  =       , l   , toggle lock on stack         , lockactivegroup     , toggle
bindd  = SHIFT , L   , toggle lock on all stacks    , lockgroups          , toggle
bindd  =       , s   , toggle window stacking       , togglegroup
bindd  =       , x   , restict window from stacking , denywindowfromgroup , toggle

bindr =       , catchall  , exec   , $myHyprScript/reset-submap.sh
bind  =       , backspace , exec   , $myEwwScript/which-key.sh -p "SPC w-" window
bind  =       , backspace , submap , window
bind  =       , l         , exec   , $myHyprScript/reset-submap.sh
bind  = SHIFT , L         , exec   , $myHyprScript/reset-submap.sh
bind  =       , s         , exec   , $myHyprScript/reset-submap.sh
bind  =       , x         , exec   , $myHyprScript/reset-submap.sh

submap = reset

W workspace

submap = workspace
bind   = , b , exec     , $myEwwScript/which-key.sh -p "SPC w b-" borders
bindd  = , b , +borders , submap , borders

bindr = , catchall  , exec   , $myHyprScript/reset-submap.sh
bind  = , backspace , exec   , $myEwwScript/which-key.sh -p "SPC-" leader
bind  = , backspace , submap , leader

submap = reset

Mouse bindings

# 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

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
}

About

Hyprland is a dynamic tiling Wayland compositor based on wlroots that doesn't sacrifice on its looks

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages