This is where you put your own keybinds. Be Mindful to check as well ~/.config/hypr/configs/Keybinds.conf to avoid conflict
if you think I should replace the Pre-defined Keybinds in ~/.config/hypr/configs/Keybinds.conf , submit an issue or let me know in DC and present me a valid reason as to why, such as conflicting with global shortcuts, etc etc
Regression?
No
System Info and Version
▄▀▀▀▀▄
▄▀▀▀▀▀▀▀▀▀▄
▄▀▀▀▀▀▀▀▀▀▀▀▄
▀▀▀▀▀▀▀▀▀▀▀▀▀
▀▀▀▀▀▀▀▀▀▀▀▀
▀▀▀▀▀▀▀▀▀▀▄
▀▀▀▀▀▀▀▀▀▀▀
▀▀▀▀▀▀▀▀▀▀▀ ▄▄▄ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
▀▀▀▀▀▀▀▀▀▀▀▀▀
▀▀▀▀▀
archlinux :: ~ » hyprctl systeminfo -c Hyprland, built from branch at commit 918d8340afd652b011b937d29d5eea0be08467f5 (flake.lock: update). Date: Tue Jun 25 12:06:02 2024 Tag: v0.41.2, commits: 4886
flags: (if any)
System Information: System name: Linux Node name: archlinux Release: 6.10.2-arch1-1 Version: #1 SMP PREEMPT_DYNAMIC Sat, 27 Jul 2024 16:49:55 +0000
GPU information: 00:02.0 VGA compatible controller [0300]: Intel Corporation GeminiLake [UHD Graphics 605] [8086:3184] (rev 03) (prog-if 00 [VGA controller])
os-release: NAME="Arch Linux" PRETTY_NAME="Arch Linux" ID=arch BUILD_ID=rolling ANSI_COLOR="38;2;23;147;209" HOME_URL="https://archlinux.org/" DOCUMENTATION_URL="https://wiki.archlinux.org/" SUPPORT_URL="https://bbs.archlinux.org/" BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues" PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/" LOGO=archlinux-logo
plugins:
======Config-Start======
Config File: /home/noble/.config/hypr/hyprland.conf: Read Succeeded
Sourcing external config files
Default Configs
$configs = $HOME/.config/hypr/configs
source=$configs/Settings.conf source=$configs/Keybinds.conf
User Configs
$UserConfigs = $HOME/.config/hypr/UserConfigs
source= $UserConfigs/Startup_Apps.conf source= $UserConfigs/ENVariables.conf source= $UserConfigs/Monitors.conf source= $UserConfigs/Laptops.conf source= $UserConfigs/LaptopDisplay.conf source= $UserConfigs/WindowRules.conf source= $UserConfigs/UserKeybinds.conf source= $UserConfigs/UserSettings.conf source= $UserConfigs/WorkspaceRules.conf input{ touchpad{ natural_scroll=true } } general{ gaps_out=0 gaps_in=0
} decoration{ blur{ passes=4 size=10 } }
numkeys to workspace bindings
bind = ,KP_End, workspace, 1
bind = , KP_Down, workspace, 2
bind = , KP_Next, workspace, 3
bind = , KP_Left, workspace, 4
bind = , KP_Begin, workspace, 5
bind = , KP_Right, workspace, 6
bind = , KP_Home, workspace, 7
bind = , KP_Up, workspace, 8
bind = , KP_Prior, workspace, 9
bind = , KP_Insert, workspace, 10
turn on night light on boot
exec-once= hyprshade on blue-light-filter
start eww daemon on boot
exec-once=eww daemon exec-once=eww open deathnotedate
open widgets
windowrulev2= opacity 0.7, class:([Tt]hunar) windowrulev2= float, class:(fdm) windowrulev2 = size 60% 60% , class:(fdm) windowrulev2 = opacity 0.8, class:(firefox-nightly|fdm|OpenLP|Spotify) workspace=1,monitor:eDP-1 workspace = 1,monitor:eDP-1 workspace = 2,monitor:eDP-1 workspace = 3,monitor:eDP-1 workspace = 4,monitor:eDP-1 workspace = 5,monitor:eDP-1 workspace = 6,monitor:eDP-1 workspace = 7,monitor:eDP-1 workspace = 8,monitor:eDP-1
Config File: /home/noble/.config/hypr/configs/Settings.conf: Read Succeeded
/ ---- 💫 https://github.com/JaKooLit 💫 ---- /
Default Settings. avoid changing this file as during update, this will be replaced
refer to Hyprland wiki for more info https://wiki.hyprland.org/Configuring/Variables
Initial boot script enable to apply initial wallpapers, theming, new settings etc.
exec-once = $HOME/.config/hypr/initial-boot.sh
Config File: /home/noble/.config/hypr/configs/Keybinds.conf: Read Succeeded
/ ---- 💫 https://github.com/JaKooLit 💫 ---- /
Default Keybinds
visit https://wiki.hyprland.org/Configuring/Binds/ for more info
$mainMod = SUPER
Default
$scriptsDir = $HOME/.config/hypr/scripts $configs = $HOME/.config/hypr/configs
User
$UserConfigs = $HOME/.config/hypr/UserConfigs $UserScripts = $HOME/.config/hypr/UserScripts
bind = CTRL ALT, Delete, exec, hyprctl dispatch exit 0 bind = $mainMod, Q, killactive, bind = $mainMod, F, fullscreen bind = $mainMod SHIFT, Q, exec, $scriptsDir/KillActiveProcess.sh bind = $mainMod SHIFT, F, togglefloating, bind = $mainMod ALT, F, exec, hyprctl dispatch workspaceopt allfloat bind = CTRL ALT, L, exec, $scriptsDir/LockScreen.sh bind = CTRL ALT, P, exec, $scriptsDir/Wlogout.sh
FEATURES / EXTRAS
bind = $mainMod, H, exec, $scriptsDir/KeyHints.sh # Small help file bind = $mainMod ALT, R, exec, $scriptsDir/Refresh.sh # Refresh waybar, swaync, rofi bind = $mainMod ALT, E, exec, $scriptsDir/RofiEmoji.sh # emoji bind = $mainMod, S, exec, $scriptsDir/RofiSearch.sh # Google search from Rofi bind = $mainMod SHIFT, B, exec, $scriptsDir/ChangeBlur.sh # Toggle blur settings bind = $mainMod SHIFT, G, exec, $scriptsDir/GameMode.sh # animations ON/OFF bind = $mainMod ALT, L, exec, $scriptsDir/ChangeLayout.sh # Toggle Master or Dwindle Layout bind = $mainMod ALT, V, exec, $scriptsDir/ClipManager.sh # Clipboard Manager bind = $mainMod SHIFT, N, exec, swaync-client -t -sw # swayNC panel
FEATURES / EXTRAS (UserScripts)
bind = $mainMod, E, exec, $UserScripts/QuickEdit.sh # Quick Edit Hyprland Settings bind = $mainMod SHIFT, M, exec, $UserScripts/RofiBeats.sh # online music bind = $mainMod, W, exec, $UserScripts/WallpaperSelect.sh # Select wallpaper to apply bind = $mainMod SHIFT, W, exec, $UserScripts/WallpaperEffects.sh # Wallpaper Effects by imagemagickWW bind = CTRL ALT, W, exec, $UserScripts/WallpaperRandom.sh # Random wallpapers
Waybar / Bar related
bind = $mainMod, B, exec, killall -SIGUSR1 waybar # Toggle hide/show waybar bind = $mainMod , V, exec, waybar & bind = $mainMod CTRL, B, exec, $scriptsDir/WaybarStyles.sh # Waybar Styles Menu bind = $mainMod ALT, B, exec, $scriptsDir/WaybarLayout.sh # Waybar Layout Menu
Master Layout
bind = $mainMod CTRL, D, layoutmsg, removemaster bind = $mainMod, I, layoutmsg, addmaster bind = $mainMod, J, layoutmsg, cyclenext bind = $mainMod, K, layoutmsg, cycleprev bind = $mainMod, M, exec, hyprctl dispatch splitratio 0.3 bind = $mainMod, P, pseudo, # dwindle bind = $mainMod CTRL, Return, layoutmsg, swapwithmaster
group
bind = $mainMod, G, togglegroup bind = $mainMod SHIFT, tab, changegroupactive #change focus to another window
Cycle windows if floating bring to top
bind = ALT,Tab,cyclenext bind = ALT,Tab,bringactivetotop
Special Keys / Hot Keys
bindel = , xf86audioraisevolume, exec, $scriptsDir/Volume.sh --inc #volume up bindel = , xf86audiolowervolume, exec, $scriptsDir/Volume.sh --dec #volume down bindl = , xf86AudioMicMute, exec, $scriptsDir/Volume.sh --toggle-mic #mute mic bindl = , xf86audiomute, exec, $scriptsDir/Volume.sh --toggle bindl = , xf86Sleep, exec, systemctl suspend # sleep button bindl = , xf86Rfkill, exec, $scriptsDir/AirplaneMode.sh #Airplane mode
media controls using keyboards
bindl = , xf86AudioPlayPause, exec, $scriptsDir/MediaCtrl.sh --pause bindl = , xf86AudioPause, exec, $scriptsDir/MediaCtrl.sh --pause bindl = , xf86AudioPlay, exec, $scriptsDir/MediaCtrl.sh --pause bindl = , xf86AudioNext, exec, $scriptsDir/MediaCtrl.sh --nxt bindl = , xf86AudioPrev, exec, $scriptsDir/MediaCtrl.sh --prv bindl = , xf86audiostop, exec, $scriptsDir/MediaCtrl.sh --stop
Screenshot keybindings NOTE: You may need to press Fn key as well
bind = $mainMod, Print, exec, $scriptsDir/ScreenShot.sh --now bind = $mainMod SHIFT, Print, exec, $scriptsDir/ScreenShot.sh --area bind = $mainMod CTRL, Print, exec, $scriptsDir/ScreenShot.sh --in5 #screenshot in 5 secs bind = $mainMod CTRL SHIFT, Print, exec, $scriptsDir/ScreenShot.sh --in10 #screenshot in 10 secs bind = ALT, Print, exec, $scriptsDir/ScreenShot.sh --active #take screenshot of active window
screenshot with swappy (another screenshot tool)
bind = $mainMod SHIFT, S, exec, $scriptsDir/ScreenShot.sh --swappy
Resize windows
bind = $mainMod SHIFT, left, exec, resizeactive,-50 0 binde = $mainMod SHIFT, right, resizeactive,50 0 binde = $mainMod SHIFT, up, resizeactive,0 -50 binde = $mainMod SHIFT, down, resizeactive,0 50
Move windows
bind = $mainMod CTRL, left, movewindow, l bind = $mainMod CTRL, right, movewindow, r bind = $mainMod CTRL, up, movewindow, u bind = $mainMod CTRL, down, movewindow, d
Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l bind = $mainMod, right, movefocus, r bind = $mainMod, up, movefocus, u bind = $mainMod, down, movefocus, d
Workspaces related
bind = $mainMod, tab, workspace, m+1 bind = $mainMod SHIFT, tab, workspace, m-1
Special workspace
bind = $mainMod SHIFT, U, movetoworkspace, special bind = $mainMod, U, togglespecialworkspace,
The following mappings use the key codes to better support various keyboard layouts
1 is code:10, 2 is code 11, etc
Switch workspaces with mainMod + [0-9]
bind = $mainMod, code:10, workspace, 1 bind = $mainMod, code:11, workspace, 2 bind = $mainMod, code:12, workspace, 3 bind = $mainMod, code:13, workspace, 4 bind = $mainMod, code:14, workspace, 5 bind = $mainMod, code:15, workspace, 6 bind = $mainMod, code:16, workspace, 7 bind = $mainMod, code:17, workspace, 8 bind = $mainMod, code:18, workspace, 9 bind = $mainMod, code:19, workspace, 10
Move active window and follow to workspace mainMod + SHIFT [0-9]
bind = $mainMod SHIFT, code:10, movetoworkspace, 1 bind = $mainMod SHIFT, code:11, movetoworkspace, 2 bind = $mainMod SHIFT, code:12, movetoworkspace, 3 bind = $mainMod SHIFT, code:13, movetoworkspace, 4 bind = $mainMod SHIFT, code:14, movetoworkspace, 5 bind = $mainMod SHIFT, code:15, movetoworkspace, 6 bind = $mainMod SHIFT, code:16, movetoworkspace, 7 bind = $mainMod SHIFT, code:17, movetoworkspace, 8 bind = $mainMod SHIFT, code:18, movetoworkspace, 9 bind = $mainMod SHIFT, code:19, movetoworkspace, 10 bind = $mainMod SHIFT, bracketleft, movetoworkspace, -1 # brackets [ or ] bind = $mainMod SHIFT, bracketright, movetoworkspace, +1
Move active window to a workspace silently mainMod + CTRL [0-9]
bind = $mainMod CTRL, code:10, movetoworkspacesilent, 1 bind = $mainMod CTRL, code:11, movetoworkspacesilent, 2 bind = $mainMod CTRL, code:12, movetoworkspacesilent, 3 bind = $mainMod CTRL, code:13, movetoworkspacesilent, 4 bind = $mainMod CTRL, code:14, movetoworkspacesilent, 5 bind = $mainMod CTRL, code:15, movetoworkspacesilent, 6 bind = $mainMod CTRL, code:16, movetoworkspacesilent, 7 bind = $mainMod CTRL, code:17, movetoworkspacesilent, 8 bind = $mainMod CTRL, code:18, movetoworkspacesilent, 9 bind = $mainMod CTRL, code:19, movetoworkspacesilent, 10 bind = $mainMod CTRL, bracketleft, movetoworkspacesilent, -1 # brackets [ or ] bind = $mainMod CTRL, bracketright, movetoworkspacesilent, +1
Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_up, workspace, e-1 bind = $mainMod, period, workspace, e+1 bind = $mainMod, comma, workspace, e-1
Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow
Config File: /home/noble/.config/hypr/UserConfigs/Startup_Apps.conf: Read Succeeded
/ ---- 💫 https://github.com/JaKooLit 💫 ---- /
Commands & Apps to be executed at launch
$scriptsDir = $HOME/.config/hypr/scripts $UserScripts = $HOME/.config/hypr/UserScripts
$wallDIR=$HOME/Pictures/wallpapers $lock = $scriptsDir/LockScreen.sh $SwwwRandom = $UserScripts/WallpaperAutoChange.sh
wallpaper stuff / More wallpaper options below
exec-once = swww-daemon --format xrgb
exec-once = $SwwwRandom $wallDIR # random wallpaper switcher every 30 minutes
Startup
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
Polkit (Polkit Gnome / KDE)
exec-once = $scriptsDir/Polkit.sh
starup apps
exec-once = waybar & exec-once = nm-applet --indicator & exec-once = swaync & exec-once = ags &
exec-once = blueman-applet &
exec-once = rog-control-center &
clipboard manager
exec-once = wl-paste --type text --watch cliphist store exec-once = wl-paste --type image --watch cliphist store
Rainbow borders
exec-once = $UserScripts/RainbowBorders.sh &
Starting hypridle to start hyprlock
exec-once = hypridle &
Start pyprland daemon
exec-once = pypr &
Here are list of features available but disabled by default
exec-once = swww-daemon --format xrgb && swww img $HOME/Pictures/wallpapers/mecha-nostalgia.png # persistent wallpaper
gnome polkit for nixos
exec-once = $scriptsDir/Polkit-NixOS.sh
xdg-desktop-portal-hyprland (should be auto starting. However, you can force to start)
exec-once = $scriptsDir/PortalHyprland.sh
Config File: /home/noble/.config/hypr/UserConfigs/ENVariables.conf: Read Succeeded
/ ---- 💫 https://github.com/JaKooLit 💫 ---- /
Environment variables. See https://wiki.hyprland.org/Configuring/Environment-variables/
environment-variables
env = CLUTTER_BACKEND,wayland env = GDK_BACKEND,wayland,x11 env = QT_AUTO_SCREEN_SCALE_FACTOR,1 env = QT_QPA_PLATFORM,wayland;xcb env = QT_QPA_PLATFORMTHEME,qt5ct env = QT_QPA_PLATFORMTHEME,qt6ct
env = QT_SCALE_FACTOR,1 env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 env = XDG_CURRENT_DESKTOP,Hyprland env = XDG_SESSION_DESKTOP,Hyprland env = XDG_SESSION_TYPE,wayland
xwayland apps scale fix (useful if you are use monitor scaling)
see https://wiki.hyprland.org/Configuring/XWayland/
toolkit-specific scale
env = GDK_SCALE,2
firefox
env = MOZ_ENABLE_WAYLAND,1
electron >28 apps (may help)
env = ELECTRON_OZONE_PLATFORM_HINT,auto
NVIDIA
This is from Hyprland Wiki. Below will be activated nvidia gpu detected
env = LIBVA_DRIVER_NAME,nvidia
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
env = NVD_BACKEND,direct
additional ENV's for nvidia. Caution, activate with care
env = GBM_BACKEND,nvidia-drm
env = __NV_PRIME_RENDER_OFFLOAD,1
env = __VK_LAYER_NV_optimus,NVIDIA_only
env = WLR_DRM_NO_ATOMIC,1
FOR VM and POSSIBLY NVIDIA
env = WLR_NO_HARDWARE_CURSORS,1 # On hyprland >v0.41, now configured on variable cursor section
env = WLR_RENDERER_ALLOW_SOFTWARE,1
nvidia firefox (for hardware acceleration on FF)?
check this post https://github.com/elFarto/nvidia-vaapi-driver#configuration
env = MOZ_DISABLE_RDD_SANDBOX,1
env = EGL_PLATFORM,wayland
Config File: /home/noble/.config/hypr/UserConfigs/Monitors.conf: Read Succeeded
/ ---- 💫 https://github.com/JaKooLit 💫 ---- /
Monitor Configuration
See Hyprland wiki for more details
https://wiki.hyprland.org/Configuring/Monitors/
Configure your Display resolution, offset, scale and Monitors here, use
hyprctl monitors
to get the info.Monitors
monitor=,preferred,auto,1
NOTE: for laptop, kindly check notes in Laptops.conf regarding display
Created this inorder for the monitor display to not wake up if not intended.
See here: https://github.com/hyprwm/Hyprland/issues/4090
monitor = eDP-1, preferred, auto, 1
monitor = eDP-1, 2560x1440@165, 0x0, 1 #own screen
monitor = DP-3, 1920x1080@240, auto, 1
monitor = DP-1, preferred, auto, 1
monitor = HDMI-A-1, preferred,auto,1
QEMU-KVM or any virtual box
monitor = Virtual-1, 1920x1080@60,auto,1
Hi Refresh Rate
monitor=,highrr,auto,1
High Resolution
monitor=,highres,auto,1
to disable a monitor
monitor=name,disable
Mirror
monitor=DP-3,1920x1080@60,0x0,1,mirror,DP-2
monitor=,preferred,auto,1,mirror,eDP-1
Example :
monitor=eDP-1,2560x1440@165,0x0,1
workspace=HDMI-A-1,1
monitor=HDMI-A-1,2560x1440@144,0x0,1,mirror,eDP-1
workspace=HDMI-A-2,2
monitor=eDP-1,transform,0
monitor=eDP-1,addreserved,10,10,10,49
workspace=eDP-1,1
Config File: /home/noble/.config/hypr/UserConfigs/Laptops.conf: Read Succeeded
/ ---- 💫 https://github.com/JaKooLit 💫 ---- /
See https://wiki.hyprland.org/Configuring/Keywords/ for more variable settings
These configs are mostly for laptops. This is addemdum to Keybinds.conf
$mainMod = SUPER $scriptsDir = $HOME/.config/hypr/scripts $UserConfigs = $HOME/.config/hypr/UserConfigs
for disabling Touchpad. hyprctl devices to get device name.
$Touchpad_Device=asue1209:00-04f3:319f-touchpad
binde = , xf86KbdBrightnessDown, exec, $scriptsDir/BrightnessKbd.sh --dec #Keyboard brightness Down binde = , xf86KbdBrightnessUp, exec, $scriptsDir/BrightnessKbd.sh --inc #Keyboard brightness up bind = , xf86Launch1, exec, rog-control-center # ASUS Armory crate button bind = , xf86Launch3, exec, asusctl led-mode -n #FN+F4 Switch keyboard RGB profile bind = , xf86Launch4, exec, asusctl profile -n #FN+F5 change of fan profiles (Quite, Balance, Performance) binde = , xf86MonBrightnessDown, exec, $scriptsDir/Brightness.sh --dec binde = , xf86MonBrightnessUp, exec, $scriptsDir/Brightness.sh --inc bind = , xf86TouchpadToggle, exec, $scriptsDir/TouchPad.sh #disable touchpad
Screenshot keybindings for Asus G15 (no PrinSrc button)
bind = $mainMod, F6, exec, $scriptsDir/ScreenShot.sh --now # Fullscreen bind = $mainMod SHIFT, F6, exec, $scriptsDir/ScreenShot.sh --area bind = $mainMod CTRL, F6, exec, $scriptsDir/ScreenShot.sh --in5 # Screenshot in 5 secs bind = $mainMod ALT, F6, exec, $scriptsDir/ScreenShot.sh --in10 # Screenshot in 10 secs bind = ALT, F6, exec, $scriptsDir/ScreenShot.sh --active # Screenshot active window
$TOUCHPAD_ENABLED = true device { name = $Touchpad_Device enabled = $TOUCHPAD_ENABLED }
Below are useful when you are connecting your laptop in external display
Suggest you edit below for your laptop display
From WIKI This is to disable laptop monitor when lid is closed.
consult https://wiki.hyprland.org/hyprland-wiki/pages/Configuring/Binds/#switches
bindl = , switch:off:Lid Switch,exec,hyprctl keyword monitor "eDP-1, preferred, auto, 1"
bindl = , switch:on:Lid Switch,exec,hyprctl keyword monitor "eDP-1, disable"
WARNING! Using this method has some caveats!! USE THIS PART WITH SOME CAUTION!
CONS of doing this, is that you need to set up your wallpaper (SUPER W) and choose wallpaper.
CAVEATS! Sometimes the Main Laptop Monitor DOES NOT have display that it needs to re-connect your external monitor
One work around is to ensure that before shutting down laptop, MAKE SURE your laptop lid is OPEN!!
Make sure to comment (put # on the both the bindl = , switch ......) above
NOTE: Display for laptop are being generated into LaptopDisplay.conf
This part is to be use if you do not want your main laptop monitor to wake up during say wallpaper change etc
bindl = , switch:off:Lid Switch,exec,echo "monitor = eDP-1, preferred, auto, 1" > $UserConfigs/LaptopDisplay.conf
bindl = , switch:on:Lid Switch,exec,echo "monitor = eDP-1, disable" > $UserConfigs/LaptopDisplay.conf
for laptop-lid action (to erase the last entry)
exec-once = echo "eDP-1, preferred, auto, 1" > $HOME/.config/hypr/UserConfigs/LaptopDisplay.conf
#
Config File: /home/noble/.config/hypr/UserConfigs/LaptopDisplay.conf: Read Succeeded
NOTE, THIS FILE IS BEING USED by disabling Laptop display monitor behaviour when closing lid.
See notes on Laptops.conf
monitor = eDP-1, preferred, auto, 1
Config File: /home/noble/.config/hypr/UserConfigs/WindowRules.conf: Read Succeeded
/ ---- 💫 https://github.com/JaKooLit 💫 ---- /
See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
windowrule = noblur,gamescope
windowrule = fullscreen,gamescope
windowrule = workspace 6 silent,^(gamescope)$
windowrule center
windowrule = center,^(pavucontrol|org.pulseaudio.pavucontrol) windowrule = center,^([Ww]hatsapp-for-linux)$ windowrule = center,^([Ff]erdium)$
WINDOWRULE v2
windowrule v2 - position
windowrulev2 = center,floating:1 # warning, it cause even the menu to float and center.
windowrulev2 = center, class:([Tt]hunar), title:(File Operation Progress) windowrulev2 = center, class:([Tt]hunar), title:(Confirm to replace files)
windowrule v2 to avoid idle for fullscreen apps
windowrulev2 = idleinhibit fullscreen, class:^()$ windowrulev2 = idleinhibit fullscreen, title:^()$ windowrulev2 = idleinhibit fullscreen, fullscreen:1
windowrule v2 move to workspace
windowrulev2 = workspace 1, class:^([Tt]hunderbird)$ windowrulev2 = workspace 2, class:^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr)$ windowrulev2 = workspace 2, class:^([Mm]icrosoft-edge(-stable|-beta|-dev|-unstable)?)$
windowrulev2 = workspace 3, class:^([Tt]hunar)$
windowrulev2 = workspace 4, class:^(com.obsproject.Studio)$ windowrulev2 = workspace 5, class:^([Ss]team)$ windowrulev2 = workspace 5, class:^([Ll]utris)$ windowrulev2 = workspace 7, class:^([Dd]iscord)$ windowrulev2 = workspace 7, class:^([Ww]ebCord)$ windowrulev2 = workspace 7, class:^([Vv]esktop)$ windowrulev2 = workspace 7, class:^([Ff]erdium)$ windowrulev2 = workspace 7, class:^([Ww]hatsapp-for-linux)$
windowrule v2 move to workspace (silent)
windowrulev2 = workspace 6 silent, class:^(virt-manager)$ windowrulev2 = workspace 9 silent, class:^([Aa]udacious)$
windowrule v2 - float
windowrulev2 = float, class:^(org.kde.polkit-kde-authentication-agent-1)$ windowrulev2 = float, class:([Zz]oom|onedriver|onedriver-launcher)$ windowrulev2 = float, class:([Tt]hunar), title:(File Operation Progress) windowrulev2 = float, class:([Tt]hunar), title:(Confirm to replace files) windowrulev2 = float, class:(xdg-desktop-portal-gtk) windowrulev2 = float, class:(org.gnome.Calculator), title:(Calculator) windowrulev2 = float, class:(codium|codium-url-handler|VSCodium), title:(Add Folder to Workspace) windowrulev2 = float, class:^([Rr]ofi)$ windowrulev2 = float, class:^(eog)$ windowrulev2 = float, class:^(pavucontrol|org.pulseaudio.pavucontrol)$ windowrulev2 = float, class:^(nwg-look|qt5ct|qt6ct|mpv)$ windowrulev2 = float, class:^(nm-applet|nm-connection-editor|blueman-manager)$ windowrulev2 = float, class:^(gnome-system-monitor|org.gnome.SystemMonitor)$ # system monitor windowrulev2 = float, class:^(yad)$ # icon browser windowrulev2 = float, class:^(wihotspot-gui)$ # wifi hotspot windowrulev2 = float, class:^(evince)$ # document viewer windowrulev2 = float, class:^(file-roller|org.gnome.FileRoller)$ # archive manager windowrulev2 = float, class:^([Bb]aobab|org.gnome.[Bb]aobab)$ # Disk usage analyzer windowrulev2 = float, title:(Kvantum Manager) windowrulev2 = float, class:^([Ss]team)$,title:^((?![Ss]team).*|[Ss]team [Ss]ettings)$ windowrulev2 = float, class:^([Qq]alculate-gtk)$ windowrulev2 = float, class:^([Ww]hatsapp-for-linux)$ windowrulev2 = float, class:^([Ff]erdium)$
windowrule v2 - opacity #enable as desired
windowrulev2 = opacity 0.9 0.6, class:^([Rr]ofi)$ windowrulev2 = opacity 0.9 0.7, class:^(Brave-browser(-beta|-dev)?)$ windowrulev2 = opacity 0.9 0.7, class:^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr|firefox-nightly)$ windowrulev2 = opacity 0.9 0.6, class:^([Tt]horium-browser)$ windowrulev2 = opacity 0.9 0.8, class:^([Mm]icrosoft-edge(-stable|-beta|-dev|-unstable)?)$ windowrulev2 = opacity 0.9 0.8, class:^(google-chrome(-beta|-dev|-unstable)?)$ windowrulev2 = opacity 0.94 0.86, class:^(chrome-.+-Default)$ # Chrome PWAs windowrulev2 = opacity 0.9 0.8, class:^([Tt]hunar)$ windowrulev2 = opacity 0.8 0.6, class:^(pcmanfm-qt)$ windowrulev2 = opacity 0.8 0.7, class:^(gedit|org.gnome.TextEditor)$ windowrulev2 = opacity 0.9 0.8, class:^(deluge)$ windowrulev2 = opacity 0.9 0.8, class:^(Alacritty)$ windowrulev2 = opacity 0.9 0.8, class:^(kitty)$ windowrulev2 = opacity 0.9 0.7, class:^(mousepad)$ windowrulev2 = opacity 0.9 0.7, class:^(VSCodium|codium-url-handler)$ windowrulev2 = opacity 0.9 0.8, class:^(nwg-look|qt5ct|qt6ct|yad)$ windowrulev2 = opacity 0.9 0.8, title:(Kvantum Manager) windowrulev2 = opacity 0.9 0.7, class:^(com.obsproject.Studio)$ windowrulev2 = opacity 0.9 0.7, class:^([Aa]udacious)$ windowrulev2 = opacity 0.9 0.8, class:^(org.gnome.Nautilus)$ windowrulev2 = opacity 0.9 0.8, class:^(VSCode|code-url-handler)$ windowrulev2 = opacity 0.9 0.8, class:^(jetbrains-.+)$ # JetBrains IDEs windowrulev2 = opacity 0.94 0.86, class:^([Dd]iscord|[Vv]esktop)$ windowrulev2 = opacity 0.9 0.8, class:^(org.telegram.desktop|io.github.tdesktop_x64.TDesktop)$ windowrulev2 = opacity 0.94 0.86, class:^(gnome-disks|evince|wihotspot-gui|org.gnome.baobab)$ windowrulev2 = opacity 0.9 0.8, class:^(file-roller|org.gnome.FileRoller)$ # archive manager windowrulev2 = opacity 0.8 0.7, class:^(app.drey.Warp)$ # Warp file transfer windowrulev2 = opacity 0.9 0.8, class:^(seahorse)$ # gnome-keyring gui windowrulev2 = opacity 0.82 0.75, class:^(gnome-system-monitor|org.gnome.SystemMonitor)$ windowrulev2 = opacity 0.9 0.8, class:^(xdg-desktop-portal-gtk)$ # gnome-keyring gui windowrulev2 = opacity 0.9 0.7, class:^([Ww]hatsapp-for-linux)$ windowrulev2 = opacity 0.9 0.7, class:^([Ff]erdium)$
windowrule v2 - size
windowrulev2 = size 70% 70%, class:^(gnome-system-monitor|org.gnome.SystemMonitor)$ windowrulev2 = size 70% 70%, class:^(xdg-desktop-portal-gtk)$ windowrulev2 = size 60% 70%, title:(Kvantum Manager) windowrulev2 = size 60% 70%, class:^(qt6ct)$ windowrulev2 = size 70% 70%, class:^(evince|wihotspot-gui)$ windowrulev2 = size 60% 70%, class:^(file-roller|org.gnome.FileRoller)$ windowrulev2 = size 60% 70%, class:^([Ww]hatsapp-for-linux)$ windowrulev2 = size 60% 70%, class:^([Ff]erdium)$
layerrule = unset,class:^([Rr]ofi)$
layerrule = blur,class:^([Rr]ofi)$
layerrule = ignorezero,
layerrule = ignorezero, overview layerrule = blur, overview
windowrulev2 = bordercolor rgb(EE4B55) rgb(880808), fullscreen:1
windowrulev2 = bordercolor rgb(282737) rgb(1E1D2D), floating:1
windowrulev2 = opacity 0.8 0.8, pinned:1
Picture-in-a-Picture (PIP) rules: Oddly, some need re-duplication. This is because the window for
PIP changes after on first launch, and will not inherant the rules...
windowrulev2=opacity 0.95 0.75,title:^(Picture-in-Picture)$ # for opacity: [focus num] [bg num]
Interestingly, the opacity rule above doesn't need the reduplication?
windowrulev2=pin,title:^(Picture-in-Picture)$
windowrulev2=pin,title:^(Firefox)$
windowrulev2=float, title:^(Picture-in-Picture)$
windowrulev2=float, title:^(Firefox)$
windowrulev2=size 25% 25%,title:^(Picture-in-Picture)$
windowrulev2=size 25% 25%,title:^(Firefox)$
windowrulev2=move 72% 7%,title:^(Picture-in-Picture)$
windowrulev2=move 72% 7%,title:^(Firefox)$
Config File: /home/noble/.config/hypr/UserConfigs/UserKeybinds.conf: Read Succeeded
/ ---- 💫 https://github.com/JaKooLit 💫 ---- /
This is where you put your own keybinds. Be Mindful to check as well ~/.config/hypr/configs/Keybinds.conf to avoid conflict
if you think I should replace the Pre-defined Keybinds in ~/.config/hypr/configs/Keybinds.conf , submit an issue or let me know in DC and present me a valid reason as to why, such as conflicting with global shortcuts, etc etc
See https://wiki.hyprland.org/Configuring/Keywords/ for more settings and variables
See also Laptops.conf for laptops keybinds
$mainMod = SUPER $files = thunar $term = kitty $scriptsDir = $HOME/.config/hypr/scripts $UserScripts = $HOME/.config/hypr/UserScripts
rofi App launcher
bindr = $mainMod, $mainMod_L, exec, pkill rofi || rofi -show drun -modi drun,filebrowser,run,window # Super Key to Launch rofi menu
bind = $mainMod, D, exec, pkill rofi || rofi -show drun -modi drun,filebrowser,run,window
ags overview
bind = $mainMod, A, exec, pkill rofi || true && ags -t 'overview'
bind = $mainMod, Return, exec, $term # Launch terminal bind = $mainMod, T, exec, $files # Launch file manager bind = $mainMod, O, exec, firefox-nightly bind = $mainMod,N, exec , $UserScripts/NightLight.sh #Toggle Night Light bind = $mainMod ALT, C, exec, $UserScripts/RofiCalc.sh # calculator (qalculate)
pyprland
bind = $mainMod SHIFT, Return, exec, pypr toggle term # Dropdown terminal bind = $mainMod, Z, exec, pypr zoom # Toggle Zoom
User Added Keybinds
bind = $mainMod SHIFT, O, exec, $UserScripts/ZshChangeTheme.sh # Change oh-my-zsh theme bindn = ALT_L, SHIFT_L, exec, $scriptsDir/SwitchKeyboardLayout.sh # Changing the keyboard layout
For passthrough keyboard into a VM
bind = $mainMod ALT, P, submap, passthru
submap = passthru
to unbind
bind = $mainMod ALT, P, submap, reset
submap = reset
Config File: /home/noble/.config/hypr/UserConfigs/UserSettings.conf: Read Succeeded
/ ---- 💫 https://github.com/JaKooLit 💫 ---- /
User Settings
This is where you put your own settings as this will not be touched during update
if the upgrade.sh is used.
refer to Hyprland wiki for more info https://wiki.hyprland.org/Configuring/Variables/
Sourcing colors generated by wallust
source = $HOME/.config/hypr/wallust/wallust-hyprland.conf
blurls = waybar
blurls = rofi
dwindle { pseudotile = yes preserve_split = yes special_scale_factor = 0.8 }
master { new_status = master #from Hyprland >v0.41.2 new_on_top = 1 mfact = 0.5 }
general { sensitivity = 1.00 border_size = 2 apply_sens_to_raw = 1 gaps_in = 6 gaps_out = 8
resize_on_border = true
col.active_border = $color12 col.inactive_border = $backgroundCol
layout = dwindle }
decoration { rounding = 10
active_opacity = 1.0 inactive_opacity = 0.9 fullscreen_opacity = 1.0
dim_inactive = true dim_strength = 0.1 dim_special = 0.8
drop_shadow = true shadow_range = 6 shadow_render_power = 1 col.shadow = $color12 col.shadow_inactive = 0x50000000
blur { enabled = true
size = 6 passes = 2 ignore_opacity = true new_optimizations = true special = true } }
animations { enabled = yes
bezier = wind, 0.05, 0.9, 0.1, 1.05 bezier = winIn, 0.1, 1.1, 0.1, 1.1 bezier = winOut, 0.3, -0.3, 0, 1 bezier = liner, 1, 1, 1, 1
animation = windows, 1, 6, wind, slide animation = windowsIn, 1, 6, winIn, slide animation = windowsOut, 1, 5, winOut, slide animation = windowsMove, 1, 5, wind, slide animation = border, 1, 1, liner
animation = borderangle, 1, 180, liner, loop #used by rainbow borders and rotating colors
animation = fade, 1, 10, default animation = workspaces, 1, 5, wind }
input { kb_layout = us kb_variant = kb_model = kb_options = kb_rules = repeat_rate = 50 repeat_delay = 300 numlock_by_default = true left_handed = false follow_mouse = true float_switch_override_focus = false
touchpad { disable_while_typing = true natural_scroll = false clickfinger_behavior = false middle_button_emulation = true tap-to-click = true drag_lock = false }
below for devices with touchdevice ie. touchscreen
}
gestures { workspace_swipe = true workspace_swipe_fingers = 3 workspace_swipe_distance = 500 workspace_swipe_invert = true workspace_swipe_min_speed_to_force = 30 workspace_swipe_cancel_ratio = 0.5 workspace_swipe_create_new = true workspace_swipe_forever = true
workspace_swipe_use_r = true #uncomment if wanted a forever create a new workspace with swipe right
}
group { col.border_active = $color15
} }
misc { disable_hyprland_logo = true disable_splash_rendering = true vfr = true
vrr = 0
mouse_move_enables_dpms = true enable_swallow = true swallow_regex = ^(kitty)$ focus_on_activate = false no_direct_scanout = true #for fullscreen games initial_workspace_tracking = 0 middle_click_paste = false }
binds { workspace_back_and_forth = true allow_workspace_cycles = true pass_mouse_when_bound = false }
Could help when scaling and not pixelating
xwayland { force_zero_scaling = true }
cursor section for Hyprland >= v0.41.0
cursor { no_hardware_cursors = false enable_hyprcursor = true warp_on_change_workspace = true # for -git or Hyprland >v0.41.1 }
Config File: /home/noble/.config/hypr/wallust/wallust-hyprland.conf: Read Succeeded $background = rgb(000000) $foreground = rgb(FDFDFD) $color0 = rgb(000000) $color1 = rgb(250106) $color2 = rgb(5A020E) $color3 = rgb(780313) $color4 = rgb(424243) $color5 = rgb(807D7C) $color6 = rgb(BBBBBB) $color7 = rgb(F4F4F4) $color8 = rgb(AAAAAA) $color9 = rgb(320108) $color10 = rgb(780313) $color11 = rgb(A00419) $color12 = rgb(585859) $color13 = rgb(AAA6A6) $color14 = rgb(F9F9F9) $color15 = rgb(F4F4F4)
Config File: /home/noble/.config/hypr/UserConfigs/WorkspaceRules.conf: Read Succeeded
/ ---- 💫 https://github.com/JaKooLit 💫 ---- /
You can set workspace rules to achieve workspace-specific behaviors.
For instance, you can define a workspace where all windows are drawn without borders or gaps.
https://wiki.hyprland.org/Configuring/Workspace-Rules/
Assigning workspace to a certain monitor
workspace = 1, monitor:eDP-1
workspace = 2, monitor:DP-2
example rules (from wiki)
workspace = 3, rounding:false, decorate:false
workspace = name:coding, rounding:false, decorate:false, gapsin:0, gapsout:0, border:false, decorate:false, monitor:DP-1
workspace = 8,bordersize:8
workspace = name:Hello, monitor:DP-1, default:true
workspace = name:gaming, monitor:desc:Chimei Innolux Corporation 0x150C, default:true
workspace = 5, on-created-empty:[float] firefox
workspace = special:scratchpad, on-created-empty:foot
Description
The following workspace rule does not work when attempting to bind all workspaces from 0-10 to a particular monitor:
Workspaces will still be scrambled randomly between monitors. The following works :
Am i doing it wrong perhaps? I am putting this rule at the bottom of hyprland.conf
How to reproduce
Install latest hyprland and try to bind workspace to monitors using the range rule e.g r[A-B]
Crash reports, logs, images, videos
No response