# Startup # Plugin loading exec-once = hyprctl plugin load "$HYPR_PLUGIN_DIR/lib/libhyprexpo.so" exec-once = hyprctl plugin load "$HYPR_PLUGIN_DIR/lib/libhyprscrolling.so" exec-once= bash -c "wl-paste --watch cliphist store &" exec-once= fcitx5 -d exec-once= emacs --daemon exec-once= dms run # DankShell # Workspace Variables $ws_game = 1 $ws_shell = 2 $ws_web = 3 $ws_music = 4 $ws_image = 5 $ws_chat = 6 $ws_audio = 7 $ws_video = 8 $ws_program = 9 $ws_extra = 0 # Monitors source = ./hypr-monitors.conf source = ./dms/outputs.conf # Environment # env=HYPRCURSOR_THEME,Bibata-Modern-Ice env=HYPRCURSOR_SIZE,24 env=XDG_CURRENT_DESKTOP,Hyprland env=XDG_SESSION_TYPE,wayland env=XDG_SESSION_DESKTOP,Hyprland env=QT_QPA_PLATFORM,wayland env=QT_QPA_PLATFORMTHEME,qt6ct env=XCURSOR_THEME,Bibata-Modern-Ice env=XCURSOR_SIZE,24 # Colors source = ./hypr-colors.conf # Settings animations { bezier=myBezier, 0.05, 0.9, 0.1, 1.05 animation=windows, 1, 6, myBezier animation=windowsOut, 1, 6, default, popin 80% animation=border, 1, 8, default animation=borderangle, 1, 6, default animation=fade, 1, 6, default animation=workspaces, 1, 3, default enabled=true } debug { disable_logs=true } decoration { blur { enabled=true new_optimizations=on passes=1 size=3 xray=true } shadow { color=$shadow enabled=true range=4 render_power=3 } rounding=10 } dwindle { preserve_split=true pseudotile=true } ecosystem { no_donation_nag=true no_update_news=true } experimental { xx_color_management_v4=true } general { border_size=2 col.active_border=$primary_container col.inactive_border=$secondary_container gaps_in=2 gaps_out=4 # layout=scrolling layout=dwindle } input { touchpad { disable_while_typing=true drag_lock=false middle_button_emulation=true natural_scroll=true scroll_factor=0.500000 tap-to-click=true } follow_mouse=1 kb_layout=us kb_model= kb_options= kb_rules= kb_variant= numlock_by_default=true sensitivity=0.0 } misc { disable_hyprland_logo=false disable_splash_rendering=true key_press_enables_dpms=true mouse_move_enables_dpms=true } plugin { hyprexpo { columns = 3 gap_size = 5 bg_col = $background workspace_method = center current gesture_distance = 300 } hyprscrolling { column_width = 0.7 fullscreen_on_one_column = true focus_fit_method = 1 } } # Window Rules # Rule :: Window $idleInhibFs = idle_inhibit fullscreen $idleInhibFo = idle_inhibit focus $ws = workspace windowrule = match:class ^(floorp)$, $idleInhibFs windowrule = match:class ^(firefox)$, $idleInhibFs windowrule = match:class ^(ghostty)$, $idleInhibFs windowrule = match:class ^(brave-browser)$, $idleInhibFs windowrule = match:class ^(mpv)$, $idleInhibFo windowrule = match:class ^(firefox)$, $idleInhibFo windowrule = match:class ^(floorp)$, $idleInhibFo windowrule = match:class ^(spotify)$, $idleInhibFo windowrule = match:class ^(Emacs|emacs)$, $idleInhibFo windowrule = match:class ^(brave-browser)$, $idleInhibFo windowrule = match:class ^(Discord|discord)$, $idleInhibFo windowrule = match:class ^(Discord|discord)$, opacity 0.98 0.90 windowrule = match:class ^(Emacs|emacs)$, opacity 0.96 0.90 windowrule = match:class ^(.*Emulator.*)$, float on windowrule = match:class ^(.*desktop-portal.*)$, float on windowrule = match:class ^(org.quickshell)$, float on windowrule = match:class ^(polkit.*agent.*)$, float on windowrule = match:class ^(praat)$, float on windowrule = match:class ^(network)$, float on windowrule = match:class ^(nm-)$, float on windowrule = match:class ^(Network)$, float on windowrule = match:class ^(Rofi)$, float on windowrule = match:class ^(Gimp)$, float on windowrule = match:class ^(thunar)$, float on windowrule = match:class ^(Nautilus)$, float on windowrule = match:title ^(LmDev-.*)$, float on windowrule = match:class ^(notification)$, float on windowrule = match:class ^(Genymotion Player)$, float on windowrule = match:class ^(launcher)$, float on windowrule = match:class steam, match:title ^(Friends List)$, float on windowrule = match:class ^(Spotify)$, tile on windowrule = match:title ^(Minecraft)$, tile on windowrule = match:class ^(KeePassXC)$, $ws $ws_shell windowrule = match:class ^(firefox)$, $ws $ws_web windowrule = match:class ^(floorp)$, $ws $ws_web windowrule = match:class ^(brave-browser)$, $ws $ws_web windowrule = match:class ^(Spotify)$, $ws $ws_music windowrule = match:class ^(discord)$, $ws $ws_chat windowrule = match:class ^(signal)$, match:title ^(Signal)$, $ws $ws_chat windowrule = match:class ^(.*)$, match:title ^(.*WhatsApp.*)$, $ws $ws_chat windowrule = match:class ^(.*obs.*)$, $ws $ws_video windowrule = match:title ^(Minecraft)$, $ws $ws_game # Commands # :Alias: :Command: $lock = dms ipc call lock lock $screenshot = grimblast --cursor copy output $screenshotarea = hyprctl keyword animation 'fadeOut,0,0,default'; grimblast copy area; hyprctl keyword animation 'fadeOut,1,4,default' $colorpick = hyprpicker -a -f hex $emacs = emacsclient -c -a 'emacs' $discord = discord --enable-blink-features=MiddleClickAutoscroll # Binds # Binds :: Modifiers $none = $altMod = ALT $mainMod = SUPER $noneCtrl = $none CTRL $altCtrl = $altMod CTRL $mainCtrl = $mainMod CTRL $noneShift = $none SHIFT $altShift = $altMod SHIFT $mainShift = $mainMod SHIFT $altCtrlShift = $altCtrl SHIFT $noneCtrlShift = $noneCtrl SHIFT $mainCtrlShift = $mainCtrl SHIFT # Binds :: Programs #:Bind: :Modifier: :Key: :Command: :Args: bind = $altMod, Return, exec, ghostty bind = $altShift, Return, exec, foot bind = $mainShift, D, exec, $discord bind = $mainShift, S, exec, signal-desktop bind = $mainShift, E, exec, $emacs bind = $mainShift, F, exec, focus bind = $mainMod, E, exec, thunar bind = $mainMod, S, exec, spotify bind = $mainMod, P, exec, $colorpick bind = $none, Print, exec, $screenshotarea bind = $noneShift, Print, exec, $screenshot bind = $mainMod, Space, exec, dms ipc call spotlight toggle bind = $mainMod, X, exec, dms ipc call powermenu toggle bind = $mainMod, M, exec, dms ipc call processlist toggle bind = $mainMod, I, exec, dms ipc call settings toggle bind = $mainMod, V, exec, dms ipc call clipboard toggle bind = $mainCtrl, P, exec, dms ipc call notepad toggle bind = $mainCtrl, C, exec, dms ipc call control-center toggle bind = $mainMod, N, exec, dms ipc call notifications toggle bind = $mainShift, N, exec, dms ipc call night toggle bind = $mainCtrl, B, exec, dms ipc call bar toggle bind = $mainMod, G, hyprexpo:expo, toggle bind = $mainShift, P, pseudo, bind = $mainMod, C, killactive, bind = $altMod, F4, killactive, bind = $mainMod, F, togglefloating, bind = $mainCtrl, F, fullscreen bind = $mainCtrl, S, togglesplit, binde = $mainMod, right, resizeactive, 10 0 binde = $mainMod, left, resizeactive, -10 0 binde = $mainMod, up, resizeactive, 0 -10 binde = $mainMod, down, resizeactive, 0 10 bind = $mainCtrl, L, exec, $lock bind = $mainCtrl, Q, exec, $lock bind = $mainMod, F4, exit, # Binds :: Navigation #:Bind: :Modifier: :Key: :Command: :Args: bind = $mainMod, H, movefocus, l bind = $mainMod, L, movefocus, r bind = $mainMod, K, movefocus, u bind = $mainMod, J, movefocus, d # bind = $mainMod, K, layoutmsg, move -col # Binds for 'scrolling' layout # bind = $mainMod, J, layoutmsg, move +col # Binds for 'scrolling' layout bind = $mainMod, comma, focusmonitor, -1 bind = $mainMod, period, focusmonitor, +1 bind = $mainShift, H, movewindow, l bind = $mainShift, L, movewindow, r bind = $mainShift, K, movewindow, u bind = $mainShift, J, movewindow, d bind = $mainShift, comma, movecurrentworkspacetomonitor, -1 bind = $mainShift, period, movecurrentworkspacetomonitor, +1 bind = $mainMod, $ws_game, workspace, $ws_game bind = $mainMod, $ws_shell, workspace, $ws_shell bind = $mainMod, $ws_web, workspace, $ws_web bind = $mainMod, $ws_music, workspace, $ws_music bind = $mainMod, $ws_image, workspace, $ws_image bind = $mainMod, $ws_chat, workspace, $ws_chat bind = $mainMod, $ws_audio, workspace, $ws_audio bind = $mainMod, $ws_video, workspace, $ws_video bind = $mainMod, $ws_program, workspace, $ws_program bind = $mainMod, $ws_extra, workspace, name:extra bind = $mainShift, $ws_game, movetoworkspace, $ws_game bind = $mainShift, $ws_shell, movetoworkspace, $ws_shell bind = $mainShift, $ws_web, movetoworkspace, $ws_web bind = $mainShift, $ws_music, movetoworkspace, $ws_music bind = $mainShift, $ws_image, movetoworkspace, $ws_image bind = $mainShift, $ws_chat, movetoworkspace, $ws_chat bind = $mainShift, $ws_audio, movetoworkspace, $ws_audio bind = $mainShift, $ws_video, movetoworkspace, $ws_video bind = $mainShift, $ws_program, movetoworkspace, $ws_program bind = $mainShift, $ws_extra, movetoworkspace, name:extra bind = $altShift, $ws_game, movetoworkspacesilent, $ws_game bind = $altShift, $ws_shell, movetoworkspacesilent, $ws_shell bind = $altShift, $ws_web, movetoworkspacesilent, $ws_web bind = $altShift, $ws_music, movetoworkspacesilent, $ws_music bind = $altShift, $ws_image, movetoworkspacesilent, $ws_image bind = $altShift, $ws_chat, movetoworkspacesilent, $ws_chat bind = $altShift, $ws_audio, movetoworkspacesilent, $ws_audio bind = $altShift, $ws_video, movetoworkspacesilent, $ws_video bind = $altShift, $ws_program, movetoworkspacesilent, $ws_program bind = $altShift, $ws_extra, movetoworkspacesilent, name:extra bind = $mainCtrlShift, right, movetoworkspace, +1 bind = $mainCtrlShift, left, movetoworkspace, -1 bind = $altCtrlShift, right, movetoworkspacesilent, +1 bind = $altCtrlShift, left, movetoworkspacesilent, -1 bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_up, workspace, e-1 bind = $mainMod, Tab, workspace, e+1 bind = $mainShift, Tab, workspace, e-1 bind = $mainCtrl, right, workspace, +1 bind = $mainCtrl, left, workspace, -1 bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow # Binds :: MultiMedia bindl = $none, XF86AudioPlay, exec, playerctl play-pause bindl = $none, XF86AudioNext, exec, playerctl next bindl = $none, XF86AudioPrev, exec, playerctl previous bindl = $none, XF86AudioMute, exec, dms ipc call audio mute bindl = $none, XF86AudioMicMute, exec, dms ipc call audio micmute bindle = $none, XF86AudioRaiseVolume, exec, dms ipc call audio increment 3 bindle = $none, XF86AudioLowerVolume, exec, dms ipc call audio decrement 3 bindle = $none, XF86MonBrightnessUp, exec, dms ipc call brightness increment 5 "" bindle = $none, XF86MonBrightnessDown, exec, dms ipc call brightness decrement 5 "" # Binds :: Submap # Binds :: Submap :: Resize bind = $mainMod, R, submap, resize submap = resize bind = $none, escape, submap, reset binde = $none, left, resizeactive, -10 0 bindr = $none, left, submap, reset binde = $none, right, resizeactive, 10 0 bindr = $none, right, submap, reset binde = $none, up, resizeactive, 0 10 bindr = $none, up, submap, reset binde = $none, down, resizeactive, 0 -10 bindr = $none, down, submap, reset binde = $none, H, resizeactive, -10 0 bindr = $none, H, submap, reset binde = $none, J, resizeactive, 0 -10 bindr = $none, J, submap, reset binde = $none, K, resizeactive, 0 10 bindr = $none, K, submap, reset binde = $none, L, resizeactive, 10 0 bindr = $none, L, submap, reset submap=reset # Binds :: Submap :: Browser bind = $mainMod, B, submap, browser submap = browser bind = $none, B, exec, brave bindr = $none, B, submap, reset bind = $noneShift, F, exec, firefox bindr = $noneShift, F, submap, reset bind = $none, F, exec, floorp bindr = $none, F, submap, reset bind = $none, escape, submap, reset submap = reset # Binds :: Submap :: Video bind = $mainShift, V, submap, video submap = video bind = $none, O, exec, obs bindr = $none, O, submap, reset bind = $none, V, exec, kdenlive bindr = $none, V, submap, reset bind = $none, escape, submap, reset submap = reset # Binds :: Global :: Discord bind = $none, F7, pass, class:^(discord|Discord)$ bind = $none, F8, pass, class:^(discord|Discord)$ # bind = $none, T, pass, class:^(discord|Discord)$ # Binds :: Global :: OBS bind = $none, F9, pass, class:^(.*obs.*)$ # Gestures gesture = 3, horizontal, workspace source = ./dms/outputs.conf