# ███████╗ ██████╗ ██████╗██╗ ██████╗ ██████╗██╗ ██╗██████╗ ███████╗██████╗ ███████╗███████╗███╗ ██╗ ██████╗ # ██╔════╝██╔═══██╗██╔════╝██║██╔═══██╗ ██╔════╝╚██╗ ██╔╝██╔══██╗██╔════╝██╔══██╗██╔════╝██╔════╝████╗ ██║██╔════╝ # ███████╗██║ ██║██║ ██║██║ ██║█████╗██║ ╚████╔╝ ██████╔╝█████╗ ██████╔╝█████╗ █████╗ ██╔██╗ ██║██║ ███╗ # ╚════██║██║ ██║██║ ██║██║ ██║╚════╝██║ ╚██╔╝ ██╔══██╗██╔══╝ ██╔══██╗██╔══╝ ██╔══╝ ██║╚██╗██║██║ ██║ # ███████║╚██████╔╝╚██████╗██║╚██████╔╝ ╚██████╗ ██║ ██████╔╝███████╗██║ ██║███████╗███████╗██║ ╚████║╚██████╔╝ # ╚══════╝ ╚═════╝ ╚═════╝╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝╚═╝ ╚═══╝ ╚═════╝ # # T H E O P E R A T I N G S Y S T E M # # HYPRLAND | Linara OS [2026-05-30] # # Tested on: Hyprland 0.55.2 (v0.55.2, commit 39d7e20) # Libraries: Hyprgraphics 0.5.1 | Hyprutils 0.13.1 | Hyprcursor 0.1.13 # Hyprlang 0.6.8 | Aquamarine 0.12.0 # # Reload config without logout: hyprctl reload # Inspect running windows: hyprctl clients # Check active keybinds: hyprctl binds #==============================================================================# # # # 1. MONITORS # # # #==============================================================================# # Syntax: monitor = name, resolution, position, scale # # Examples: # monitor = ,preferred,auto,1 # any monitor, native res, scale 1 # monitor = eDP-1,1920x1080@60,0x0,1 # exact: name, res@Hz, position, scale # monitor = HDMI-A-1,2560x1440,1920x0,1 # second monitor to the right # monitor = HDMI-A-1,disable # turn off a monitor # # Find monitor names: hyprctl monitors monitor=,preferred,auto,1.2 #==============================================================================# # # # 2. ENVIRONMENT # # # #==============================================================================# # Syntax: env = VARIABLE,value # These are set BEFORE autostart apps launch — apps inherit them. # Changing env requires full Hyprland restart (not just hyprctl reload). # Cursor & scaling env = XCURSOR_SIZE,24 env = DPI_SCALE,1.0 # Session env = XDG_CURRENT_DESKTOP="Hyprland"; env = XDG_SESSION_TYPE="wayland"; env = XDG_SESSION_DESKTOP="Hyprland"; # Qt env = QT_AUTO_SCREEN_SCALE_FACTOR="1"; env = QT_QPA_PLATFORM="wayland"; env = QT_QPA_PLATFORMTHEME="gtk3"; #env = QT_QPA_PLATFORMTHEME,qt6ct # change to qt6ct if you have that # Mozilla (Librewolf / Firefox) env = MOZ_ENABLE_WAYLAND, 1 env = MOZ_DBUS_REMOTE,1 # GTK env = GDK_BACKEND,wayland env = GTK_USE_PORTAL,1 env = GTK_USE_PORTAL="1" # Misc env = WLR_NO_HARDWARE_CURSORS,1 xwayland { force_zero_scaling = true } #==============================================================================# # # # 3. AUTOSTART # # # #==============================================================================# # exec-once = command # runs ONCE at Hyprland startup # exec = command # runs at startup AND on every hyprctl reload # # Examples: # exec-once = sleep 5 && myapp # delayed start # exec-once = bash -c "cmd1; cmd2" # multiple commands # exec-once = [workspace 3 silent] librewolf # start on workspace 3 # --- Wallpaper --- exec-once = hyprpaper -c ~/.config/hypr/LibreOS/hyprpaper/hyprpaper.conf # --- Panel --- # waybar must start BEFORE pipewire daemons # Otherwise it cannot write to the pulse file # and throws a memory allocation error exec-once = killall waybar; sleep 3 && waybar -c ~/.config/hypr/LibreOS/waybar/config -s ~/.config/hypr/LibreOS/waybar/style.css # --- Sound --- #exec-once = paplay ~/.config/hypr/LibreOS/audio/welcome-to-socio-cybernetic-operating-system.wav exec-once = ffplay -nodisp -autoexit -af "volume=0.3" ~/.config/hypr/LibreOS/audio/welcome-to-socio-cybernetic-operating-system.wav exec-once = bash /usr/bin/artix-pipewire-launcher restart # --- Network --- #exec-once = connmand exec-once = connman-gtk # --- Apps --- exec-once = qterminal exec-once = [workspace 2 silent] qterminal -e '/usr/share/scripts/nekoray.sh' # --- Screen sharing helper --- exec-once = xwaylandvideobridge # --- Allow nekoray to run as root --- exec-once = xhost +SI:localuser:root #exec-once = alacritty --config-file ~/.config/hypr/LibreOS/alacritty/alacritty.toml #exec-once = QT_QPA_PLATFORM=xcb obs #==============================================================================# # # # 4. INPUT # # # #==============================================================================# # kb_layout — comma-separated layouts (us,ru,de...) # kb_options — xkb options, e.g.: # grp:alt_shift_toggle — Alt+Shift switches layout # grp:caps_toggle — CapsLock switches layout # caps:escape — CapsLock acts as Escape (vim users) # # repeat_rate / repeat_delay — key repeat speed: # repeat_rate = 25 # chars per second when holding key # repeat_delay = 600 # ms before repeat starts input { kb_layout = us,ru kb_variant = kb_model = kb_options = grp:alt_shift_toggle kb_rules = follow_mouse = 1 touchpad { natural_scroll = false } numlock_by_default = true sensitivity = 0 # -1.0 - 1.0, 0 means no modification. } #==============================================================================# # # # 5. APPEARANCE # # # #==============================================================================# # Colors use rgba(RRGGBBAA) or rgb(RRGGBB) hex format. # Gradient borders: list 2+ colors + angle: # col.active_border = rgba(00f0ffff) rgba(ff2bd6ff) 45deg # --- Gaps, borders, colors --- # SCE palette: cyan #00f0ff | magenta #ff2bd6 | amber #ffae5c general { gaps_in = 4 # gap between windows gaps_out = 8 # gap between windows and screen edge border_size = 1 col.active_border = rgba(d8dee8ff) rgba(afc8e9ff) 45deg col.inactive_border = rgba(2f343fff) layout = dwindle # dwindle | master resize_on_border = true # drag window edge to resize, no keybind needed } # --- Window decorations --- decoration { rounding = 12 # corner radius in px, 0 = square corners # Slightly dim unfocused windows — focus is instantly visible dim_inactive = true dim_strength = 0.12 # Inactive windows slightly transparent — depth effect with blur active_opacity = 1.0 inactive_opacity = 0.94 blur { enabled = true size = 6 # blur radius — higher = more blur, more GPU passes = 2 # blur quality — higher = smoother, more GPU vibrancy = 0.17 # saturate colors behind blur — glassy look popups = true # also blur context menus / tooltips } } # --- Animations --- # Syntax: animation = NAME, ONOFF(0/1), SPEED, CURVE [,STYLE] # Custom curve: bezier = name, x0, y0, x1, y1 (cubic-bezier like CSS) # Disable all animations: set enabled = false (good for weak GPU) # Philosophy: FAST and snappy. Animations should be felt, not waited for. animations { enabled = true # Curves bezier = linear, 0, 0, 1, 1 bezier = snappy, 0.16, 1, 0.3, 1 # fast start, soft landing bezier = overshot, 0.13, 0.99, 0.29, 1.08 # tiny bounce at the end bezier = smoothOut, 0.36, 0, 0.66, -0.56 # accelerate away # Windows: quick pop with a slight overshoot animation = windows, 1, 3, overshot, popin 85% animation = windowsOut, 1, 3, smoothOut, popin 85% animation = windowsMove, 1, 3, snappy # Fade: fast animation = fade, 1, 4, snappy animation = fadeDim, 1, 4, snappy # Borders animation = borderangle, 1, 100, linear, loop animation = border, 1, 5, snappy # Borders animation = borderangle, 1, 100, linear, loop animation = border, 1, 5, snappy # Workspaces: quick slide animation = workspaces, 1, 4, snappy, slide # Layers (wofi, notifications): pop in fast animation = layers, 1, 3, snappy, popin 90% } # --- Layer rules (blur for panel & launcher) --- # Makes waybar and wofi translucent-glassy instead of flat layerrule = blur on, match:namespace waybar layerrule = ignore_alpha 0.3, match:namespace waybar layerrule = blur on, match:namespace wofi layerrule = ignore_alpha 0.3, match:namespace wofi layerrule = blur on, match:namespace notifications layerrule = ignore_alpha 0.3, match:namespace notifications #==============================================================================# # # # 6. LAYOUT & MISC # # # #==============================================================================# dwindle { #pseudotile = true # master switch for pseudotiling. Bound to mainMod + P below preserve_split = true # you probably want this # force_split = 2 # always split to the right/bottom } # Disable "app not responding" dialog # When rendering in Blender, this dialog can ruin the whole render misc { enable_anr_dialog = false # Other useful misc options: # disable_hyprland_logo = true # no anime girl on empty workspace # disable_splash_rendering = true # no splash text # mouse_move_enables_dpms = true # wake screen on mouse move } #gestures { # See https://wiki.hyprland.org/Configuring/Variables/ for more #workspace_swipe = false #} #==============================================================================# # # # 7. WINDOW RULES # # # #==============================================================================# # NEW SYNTAX (Hyprland 0.53+): windowrule = RULE [args], match:FIELD value # # Matchers: # match:class regex — by window class (find with: hyprctl clients) # match:title regex — by window title # match:class a, match:title b — combine: both must match # # Boolean rules need "on" / "off": # float on — floating mode # pin on — visible on all workspaces (floating only) # center on — center on screen (floating only) # no_anim on — disable animations # no_blur on — disable blur # # Value rules: # workspace N — open on workspace N (add "silent" to not switch) # size W H — set size (floating only) # max_size W H — maximum size # opacity 0.9 — transparency (add "override" for exact value) # idle_inhibit focus — block screen sleep while focused (video players) # --- Workspace assignment --- # ws1 Terminal | ws2 Browser | ws3 Code | ws4 3D/Editors | ws5 Messengers # ws6 Graphics | ws7 Office/Media | ws8 OBS/VM | ws9 Torrents | ws10 Nekoray # Terminals windowrule = workspace 1, match:class ^(qterminal)$ # Browsers windowrule = workspace 2, match:class ^(librewolf)$ windowrule = workspace 2, match:class ^(firefox)$ windowrule = workspace 2, match:class ^(chromium)$ windowrule = workspace 2, match:class ^(Brave-browser)$ windowrule = workspace 2, match:class ^(Tor Browser)$ # Code editors windowrule = workspace 3, match:class ^(codium)$ windowrule = workspace 3, match:class ^(VSCodium)$ windowrule = workspace 3, match:class ^(code)$ # 3D / Text editors windowrule = workspace 4, match:class ^(blender)$ windowrule = workspace 4, match:class ^(sublime_text)$ # Messengers windowrule = workspace 5, match:class ^(vesktop)$ windowrule = workspace 5, match:class ^(discord)$ windowrule = workspace 5, match:class ^(org.telegram.desktop)$ windowrule = workspace 5, match:class ^(Signal)$ windowrule = workspace 5, match:class ^(Element)$ windowrule = workspace 5, match:class ^(thunderbird)$ # Graphics windowrule = workspace 6, match:class ^(Gimp.*)$ windowrule = workspace 6, match:class ^(org.inkscape.Inkscape)$ windowrule = workspace 6, match:class ^(krita)$ windowrule = workspace 6, match:class ^(darktable)$ # Office / Media production windowrule = workspace 7, match:class ^(libreoffice.*)$ windowrule = workspace 7, match:class ^(org.kde.kdenlive)$ windowrule = workspace 7, match:class ^(Audacity)$ # OBS / Virtualization windowrule = workspace 8, match:class ^(com.obsproject.Studio)$ windowrule = workspace 8, match:class ^(virt-manager)$ windowrule = workspace 8, match:class ^(VirtualBox Machine)$ windowrule = workspace 8, match:class ^(VirtualBox Manager)$ # Torrents / Downloads windowrule = workspace 9 silent, match:class ^(org.qbittorrent.qBittorrent)$ windowrule = workspace 9 silent, match:class ^(transmission-gtk)$ # Notes / Knowledge base windowrule = workspace 4, match:class ^(obsidian)$ windowrule = workspace 4, match:class ^(trilium)$ windowrule = workspace 4, match:class ^(Joplin)$ windowrule = workspace 4, match:class ^(Logseq)$ # Music / Audio windowrule = workspace 7, match:class ^(Spotify)$ windowrule = workspace 7, match:class ^(strawberry)$ windowrule = workspace 7, match:class ^(org.gnome.Rhythmbox3)$ # Dev tools windowrule = workspace 3, match:class ^(jetbrains-.*)$ windowrule = workspace 3, match:class ^(Godot)$ windowrule = workspace 3, match:class ^(DBeaver)$ windowrule = workspace 3, match:class ^(Postman)$ # Video calls windowrule = workspace 5, match:class ^(Zoom)$ windowrule = workspace 5, match:class ^(Slack)$ windowrule = workspace 5, match:class ^(teams-for-linux)$ # Gaming windowrule = workspace 9, match:class ^(steam)$ windowrule = workspace 9, match:class ^(lutris)$ windowrule = workspace 9, match:class ^(heroic)$ # Security research windowrule = workspace 8, match:class ^(org.wireshark.Wireshark)$ windowrule = workspace 8, match:class ^(burp-StartBurp)$ windowrule = workspace 8, match:class ^(ZAP)$ # Crypto wallets windowrule = workspace 10, match:class ^(monero-wallet-gui)$ windowrule = workspace 10, match:class ^(electrum)$ # Proxy (silent, no focus steal) windowrule = workspace 10 silent, no_initial_focus on, match:class ^([Nn]ekoray)$ # --- Floating windows --- # File manager windowrule = float on, size 1000 600, center on, match:class ^(thunar)$ # System utilities windowrule = float on, size 800 500, center on, match:class ^(org.pulseaudio.pavucontrol)$ windowrule = float on, size 800 500, center on, match:class ^(pavucontrol)$ windowrule = float on, center on, match:class ^(blueman-manager)$ windowrule = float on, center on, match:class ^(nm-connection-editor)$ windowrule = float on, center on, match:class ^(connman-gtk)$ windowrule = float on, match:class ^(galculator)$ windowrule = float on, match:class ^(qalculate-gtk)$ windowrule = float on, size 900 600, center on, match:title ^(htop|btop)$ # Image viewers windowrule = float on, match:class ^(imv)$ windowrule = float on, match:class ^(feh)$ windowrule = float on, center on, match:class ^(org.gnome.Loupe)$ # Video players windowrule = float on, pin on, match:class ^(mpv)$ windowrule = float on, match:class ^(vlc)$ # Picture-in-Picture (browser video popout) — pin to all workspaces windowrule = float on, pin on, no_initial_focus on, match:title ^(Picture-in-Picture)$ # Screenshots windowrule = float on, no_anim on, match:class ^(flameshot)$ # Password manager windowrule = float on, center on, match:class ^(org.keepassxc.KeePassXC)$ # Authentication agents (polkit password prompts) windowrule = float on, center on, pin on, match:class ^(polkit-gnome-authentication-agent-1)$ windowrule = float on, center on, pin on, match:class ^(lxqt-policykit-agent)$ # Steam (friends list and dialogs float, main window tiled) windowrule = float on, match:class ^(steam)$, match:title ^(Friends List)$ windowrule = float on, match:class ^(steam)$, match:title ^(Steam Settings)$ # Archive managers windowrule = float on, center on, match:class ^(org.kde.ark)$ windowrule = float on, center on, match:class ^(file-roller)$ windowrule = float on, center on, match:class ^(xarchiver)$ # System tools (disk/partition managers — float to see them over docs) windowrule = float on, center on, size 1100 700, match:class ^(GParted)$ windowrule = float on, center on, match:class ^(gnome-disks)$ windowrule = float on, center on, match:class ^(timeshift-gtk)$ windowrule = float on, center on, match:class ^(org.gnome.baobab)$ windowrule = float on, center on, match:class ^(system-config-printer)$ # Audio routing / effects windowrule = float on, center on, size 1000 600, match:class ^(qpwgraph)$ windowrule = float on, center on, match:class ^(com.github.wwmm.easyeffects)$ windowrule = float on, center on, match:class ^(helvum)$ # Color pickers / small utils windowrule = float on, match:class ^(hyprpicker)$ windowrule = float on, match:class ^(gcolor3)$ windowrule = float on, center on, match:class ^(gnome-calculator)$ windowrule = float on, center on, match:class ^(kcalc)$ # Document readers — keep tiled, but inhibit sleep while reading fullscreen windowrule = idle_inhibit fullscreen, match:class ^(org.pwmt.zathura)$ windowrule = idle_inhibit fullscreen, match:class ^(evince)$ windowrule = idle_inhibit fullscreen, match:class ^(okular)$ # Video — never let screen sleep during playback windowrule = idle_inhibit focus, match:class ^(mpv)$ windowrule = idle_inhibit focus, match:class ^(vlc)$ windowrule = idle_inhibit fullscreen, match:class ^(librewolf)$ windowrule = idle_inhibit fullscreen, match:class ^(firefox)$ # Games — fullscreen + no sleep + immediate frames (reduces input lag) windowrule = idle_inhibit always, match:class ^(steam_app_.*)$ windowrule = immediate on, match:class ^(steam_app_.*)$ windowrule = idle_inhibit always, match:class ^(gamescope)$ windowrule = immediate on, match:class ^(gamescope)$ windowrule = fullscreen on, match:class ^(gamescope)$ # Wine / Windows apps — often misbehave when tiled windowrule = float on, match:class ^(wine)$ windowrule = float on, match:title ^(Wine System Tray)$ # OBS projector windows float windowrule = float on, match:title ^(Windowed Projector.*)$ # qBittorrent dialogs (main window on ws9, dialogs float) windowrule = float on, center on, match:class ^(org.qbittorrent.qBittorrent)$, match:title ^(.*(Options|Add|Delete|Rename).*)$ # Firefox/Librewolf extension + bookmark popups windowrule = float on, match:class ^(librewolf)$, match:title ^(Extension.*)$ windowrule = float on, match:class ^(librewolf)$, match:title ^(Library)$ # Generic dialogs by title (catch-all for many apps) windowrule = float on, center on, match:title ^(Confirm.*)$ windowrule = float on, center on, match:title ^(Error)$ windowrule = float on, center on, match:title ^(Warning)$ windowrule = float on, center on, match:title ^(Authentication Required)$ windowrule = float on, center on, match:title ^(Preferences)$ windowrule = float on, center on, match:title ^(Settings)$ windowrule = float on, center on, match:title ^(About.*)$ # --- File dialogs --- windowrule = float on, match:title ^(Open File)$ windowrule = float on, match:title ^(Save File)$ windowrule = float on, match:title ^(Open Folder)$ windowrule = float on, match:title ^(Save As)$ windowrule = float on, match:title ^(File Upload)$ windowrule = float on, match:class ^(xdg-desktop-portal-gtk)$ windowrule = float on, match:class ^(xdg-desktop-portal-kde)$ # Thunar dialogs (copy progress, rename, properties) windowrule = float on, center on, match:class ^(thunar)$, match:title ^(File Operation Progress)$ windowrule = float on, center on, match:class ^(thunar)$, match:title ^(Rename.*)$ windowrule = float on, center on, match:class ^(thunar)$, match:title ^(.*Properties)$ # --- Hide xwaylandvideobridge (screen sharing helper, must be invisible) --- windowrule = opacity 0.0 override, no_anim on, no_blur on, max_size 1 1, match:class ^(xwaylandvideobridge)$ #==============================================================================# # # # 8. KEYBINDINGS # # # #==============================================================================# # Syntax: bind = MODS, KEY, DISPATCHER, [PARAMS] # # Bind flags (letter after "bind"): # bind = ... # normal # bindm = ... # mouse bind (hold to drag) # bindl = ... # works even on lockscreen # bindr = ... # triggers on key RELEASE # binde = ... # repeats when held (good for resize/volume) # # Examples: # bind = $mainMod, T, exec, qterminal # launch app # bind = $mainMod SHIFT, F, fullscreen, 0 # two modifiers # binde = , XF86AudioRaiseVolume, exec, ... # repeat while held # bind = $mainMod, G, togglegroup # tabbed window group # # Key names: letters, numbers, left/right/up/down, RETURN, SPACE, Print, # XF86Audio*, mouse:272 (LMB), mouse:273 (RMB), mouse_down/up (wheel) $mainMod = SUPER # --- Application launch --- bind = $mainMod, RETURN, exec, qterminal bind = $mainMod, B, exec, thunar bind = $mainMod, D, exec, wofi --show drun --allow-images --allow-markup -c ~/.config/hypr/LibreOS/wofi/ -s ~/.config/hypr/LibreOS/wofi/style.css bind = $mainMod, O, exec, QT_QPA_PLATFORM=xcb obs bind = $mainMod, V, exec, dbus-launch vscodium bind = $mainMod SHIFT, I, exec, dbus-launch flatpak run com.github.zadam.trilium #bind = $mainMod, RETURN, exec, alacritty --config-file ~/.config/hypr/LibreOS/alacritty/alacritty.toml # --- Window management --- bind = $mainMod, Q, killactive, bind = $mainMod, F, togglefloating, bind = $mainMod, P, pseudo, # dwindle #bind = $mainMod, I, togglesplit, # dwindle # --- Session --- bind = $mainMod SHIFT, Q, exit, bind = $mainMod CTRL, P, exec, poweroff bind = $mainMod CTRL, R, exec, reboot # --- Screenshots --- bind = , Print, exec, grim ~/screen-"$(date +%s)".png bind = $mainMod, Print, exec, grim -g "$(slurp)" ~/screen-"$(date +%s)".png # --- Focus switching --- bind = $mainMod, left, movefocus, l bind = $mainMod, right, movefocus, r bind = $mainMod, up, movefocus, u bind = $mainMod, down, movefocus, d # --- Move floating windows --- bind = $mainMod ALT, right, moveactive, 50 0 bind = $mainMod ALT, left, moveactive, -50 0 bind = $mainMod ALT, up, moveactive, 0 -50 bind = $mainMod ALT, down, moveactive, 0 50 # --- Resize windows --- bind = $mainMod CTRL, left, resizeactive,-50 0 bind = $mainMod CTRL, right, resizeactive,50 0 bind = $mainMod CTRL, up, resizeactive,0 -50 bind = $mainMod CTRL, down, resizeactive,0 50 # --- Move/resize with mouse --- bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow #==============================================================================# # # # 9. WORKSPACES # # # #==============================================================================# # Dispatchers: # workspace N — go to workspace N # movetoworkspace N — move window AND follow it # movetoworkspacesilent N — move window, stay where you are # workspace e+1 / e-1 — next / previous existing workspace # --- Switch workspace --- bind = $mainMod, 1, workspace, 1 bind = $mainMod, 2, workspace, 2 bind = $mainMod, 3, workspace, 3 bind = $mainMod, 4, workspace, 4 bind = $mainMod, 5, workspace, 5 bind = $mainMod, 6, workspace, 6 bind = $mainMod, 7, workspace, 7 bind = $mainMod, 8, workspace, 8 bind = $mainMod, 9, workspace, 9 bind = $mainMod, 0, workspace, 10 # --- Move window to workspace --- bind = $mainMod SHIFT, 1, movetoworkspace, 1 bind = $mainMod SHIFT, 2, movetoworkspace, 2 bind = $mainMod SHIFT, 3, movetoworkspace, 3 bind = $mainMod SHIFT, 4, movetoworkspace, 4 bind = $mainMod SHIFT, 5, movetoworkspace, 5 bind = $mainMod SHIFT, 6, movetoworkspace, 6 bind = $mainMod SHIFT, 7, movetoworkspace, 7 bind = $mainMod SHIFT, 8, movetoworkspace, 8 bind = $mainMod SHIFT, 9, movetoworkspace, 9 bind = $mainMod SHIFT, 0, movetoworkspace, 10 # --- Scroll through workspaces --- bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_up, workspace, e-1 bind = $mainMod, n, workspace, e-1 bind = $mainMod, m, workspace, e+1 #==============================================================================# # # # 10. MEDIA KEYS # # # #==============================================================================# # Tip: use "binde" instead of "bind" for volume/brightness — # then holding the key repeats the action. # --- Volume --- bind = ,XF86AudioMute,exec, amixer -D pulse set 'Master' toggle bind = ,XF86AudioLowerVolume,exec, amixer -D pulse set 'Master' 5%- bind = ,XF86AudioRaiseVolume,exec, amixer -D pulse set 'Master' 5%+ bind = ,XF86AudioMicMute,exec, amixer -D pulse set 'Capture' toggle # --- Brightness --- bind = ,XF86MonBrightnessUp, exec, brightnessctl set +10% bind = ,XF86MonBrightnessDown, exec, brightnessctl set 10%- #==============================================================================# # # # 11. EXTRA / PLUGINS # # # #==============================================================================# # --- Kando menu --- #windowrule = no_blur on, opaque on, no_border on, no_anim on, match:class kando #windowrule = float on, pin on, size 100% 100%, match:class kando bind = CTRL, Space, global, menu.kando.Kando:example-menu # --- Source additional config files --- # Split config into multiple files, e.g. keybinds.conf, colors.conf: # source = ~/.config/hypr/myColors.conf