From c872cacb0b18d8940ce205822b882a3fd9b88cd8 Mon Sep 17 00:00:00 2001 From: lew Date: Thu, 30 Oct 2025 22:35:58 +0000 Subject: [PATCH] Add .config/hypr/apps.conf Add .config/hypr/apps/browser.conf Add .config/hypr/apps/hyprshot.conf Add .config/hypr/apps/jetbrains.conf Add .config/hypr/apps/localsend.conf Add .config/hypr/apps/pip.conf Add .config/hypr/apps/qemu.conf Add .config/hypr/apps/retroarch.conf Add .config/hypr/apps/steam.conf Add .config/hypr/apps/system.conf Add .config/hypr/apps/terminals.conf Add .config/hypr/apps/walker.conf Add .config/hypr/autostart.conf Add .config/hypr/bindings.conf Add .config/hypr/envs.conf Add .config/hypr/hypridle.conf Add .config/hypr/hyprland.conf Add .config/hypr/hyprlock.conf Add .config/hypr/hyprsunset.conf Add .config/hypr/input.conf Add .config/hypr/looknfeel.conf Add .config/hypr/monitors.conf Add .config/hypr/opts/animated_borders.conf Add .config/hypr/opts/dimaround_walker.conf Add .config/hypr/opts/hyprexpo.conf Add .config/hypr/opts/hyprscrolling.conf Add .config/hypr/opts/split-monitor-workspaces.conf Add .config/hypr/windows.conf --- private_dot_config/hypr/apps.conf | 12 ++ private_dot_config/hypr/apps/browser.conf | 13 ++ private_dot_config/hypr/apps/hyprshot.conf | 2 + private_dot_config/hypr/apps/jetbrains.conf | 6 + private_dot_config/hypr/apps/localsend.conf | 3 + private_dot_config/hypr/apps/pip.conf | 9 + private_dot_config/hypr/apps/qemu.conf | 1 + private_dot_config/hypr/apps/retroarch.conf | 4 + private_dot_config/hypr/apps/steam.conf | 7 + private_dot_config/hypr/apps/system.conf | 13 ++ private_dot_config/hypr/apps/terminals.conf | 2 + private_dot_config/hypr/apps/walker.conf | 2 + private_dot_config/hypr/autostart.conf | 11 + private_dot_config/hypr/bindings.conf | 193 ++++++++++++++++++ private_dot_config/hypr/envs.conf | 28 +++ private_dot_config/hypr/hypridle.conf | 22 ++ private_dot_config/hypr/hyprland.conf | 16 ++ private_dot_config/hypr/hyprlock.conf | 39 ++++ private_dot_config/hypr/hyprsunset.conf | 6 + private_dot_config/hypr/input.conf | 13 ++ private_dot_config/hypr/looknfeel.conf | 113 ++++++++++ private_dot_config/hypr/monitors.conf | 11 + .../hypr/opts/animated_borders.conf | 2 + .../hypr/opts/dimaround_walker.conf | 1 + private_dot_config/hypr/opts/hyprexpo.conf | 8 + .../hypr/opts/hyprscrolling.conf | 49 +++++ .../hypr/opts/split-monitor-workspaces.conf | 45 ++++ private_dot_config/hypr/windows.conf | 7 + 28 files changed, 638 insertions(+) create mode 100644 private_dot_config/hypr/apps.conf create mode 100644 private_dot_config/hypr/apps/browser.conf create mode 100644 private_dot_config/hypr/apps/hyprshot.conf create mode 100644 private_dot_config/hypr/apps/jetbrains.conf create mode 100644 private_dot_config/hypr/apps/localsend.conf create mode 100644 private_dot_config/hypr/apps/pip.conf create mode 100644 private_dot_config/hypr/apps/qemu.conf create mode 100644 private_dot_config/hypr/apps/retroarch.conf create mode 100644 private_dot_config/hypr/apps/steam.conf create mode 100644 private_dot_config/hypr/apps/system.conf create mode 100644 private_dot_config/hypr/apps/terminals.conf create mode 100644 private_dot_config/hypr/apps/walker.conf create mode 100644 private_dot_config/hypr/autostart.conf create mode 100644 private_dot_config/hypr/bindings.conf create mode 100644 private_dot_config/hypr/envs.conf create mode 100644 private_dot_config/hypr/hypridle.conf create mode 100644 private_dot_config/hypr/hyprland.conf create mode 100644 private_dot_config/hypr/hyprlock.conf create mode 100644 private_dot_config/hypr/hyprsunset.conf create mode 100644 private_dot_config/hypr/input.conf create mode 100644 private_dot_config/hypr/looknfeel.conf create mode 100644 private_dot_config/hypr/monitors.conf create mode 100644 private_dot_config/hypr/opts/animated_borders.conf create mode 100644 private_dot_config/hypr/opts/dimaround_walker.conf create mode 100644 private_dot_config/hypr/opts/hyprexpo.conf create mode 100644 private_dot_config/hypr/opts/hyprscrolling.conf create mode 100644 private_dot_config/hypr/opts/split-monitor-workspaces.conf create mode 100644 private_dot_config/hypr/windows.conf diff --git a/private_dot_config/hypr/apps.conf b/private_dot_config/hypr/apps.conf new file mode 100644 index 0000000..7567cc9 --- /dev/null +++ b/private_dot_config/hypr/apps.conf @@ -0,0 +1,12 @@ +# App-specific tweaks +source = ~/.config/hypr/apps/browser.conf +source = ~/.config/hypr/apps/hyprshot.conf +source = ~/.config/hypr/apps/jetbrains.conf +source = ~/.config/hypr/apps/localsend.conf +source = ~/.config/hypr/apps/pip.conf +source = ~/.config/hypr/apps/qemu.conf +source = ~/.config/hypr/apps/retroarch.conf +source = ~/.config/hypr/apps/steam.conf +source = ~/.config/hypr/apps/system.conf +source = ~/.config/hypr/apps/terminals.conf +source = ~/.config/hypr/apps/walker.conf diff --git a/private_dot_config/hypr/apps/browser.conf b/private_dot_config/hypr/apps/browser.conf new file mode 100644 index 0000000..a84e48b --- /dev/null +++ b/private_dot_config/hypr/apps/browser.conf @@ -0,0 +1,13 @@ +# Browser types +windowrule = tag +chromium-based-browser, class:([cC]hrom(e|ium)|[bB]rave-browser|Microsoft-edge|Vivaldi-stable) +windowrule = tag +firefox-based-browser, class:([fF]irefox|zen|librewolf) + +# Force chromium-based browsers into a tile to deal with --app bug +windowrule = tile, tag:chromium-based-browser + +# Only a subtle opacity change, but not for video sites +windowrule = opacity 1 0.97, tag:chromium-based-browser +windowrule = opacity 1 0.97, tag:firefox-based-browser + +# Some video sites should never have opacity applied to them +windowrule = opacity 1.0 1.0, initialTitle:((?i)(?:[a-z0-9-]+\.)*youtube\.com_/|app\.zoom\.us_/wc/home|(www\.)?netflix\.com_/) diff --git a/private_dot_config/hypr/apps/hyprshot.conf b/private_dot_config/hypr/apps/hyprshot.conf new file mode 100644 index 0000000..c900320 --- /dev/null +++ b/private_dot_config/hypr/apps/hyprshot.conf @@ -0,0 +1,2 @@ +# Remove 1px border around hyprshot screenshots +layerrule = noanim, selection diff --git a/private_dot_config/hypr/apps/jetbrains.conf b/private_dot_config/hypr/apps/jetbrains.conf new file mode 100644 index 0000000..661b0a4 --- /dev/null +++ b/private_dot_config/hypr/apps/jetbrains.conf @@ -0,0 +1,6 @@ +# Fixing popup size issue +windowrule = size 50% 50%, class:(.*jetbrains.*)$, title:^$,floating:1 + +# Fix tab dragging (always have a single space character as their title) +windowrule = noinitialfocus, class:^(.*jetbrains.*)$, title:^\\s$ +windowrule = nofocus, class:^(.*jetbrains.*)$, title:^\\s$ diff --git a/private_dot_config/hypr/apps/localsend.conf b/private_dot_config/hypr/apps/localsend.conf new file mode 100644 index 0000000..4625540 --- /dev/null +++ b/private_dot_config/hypr/apps/localsend.conf @@ -0,0 +1,3 @@ +# Float LocalSend and fzf file picker +windowrule = float, class:(Share|localsend) +windowrule = center, class:(Share|localsend) diff --git a/private_dot_config/hypr/apps/pip.conf b/private_dot_config/hypr/apps/pip.conf new file mode 100644 index 0000000..363c1ed --- /dev/null +++ b/private_dot_config/hypr/apps/pip.conf @@ -0,0 +1,9 @@ +# Picture-in-picture overlays +windowrule = tag +pip, title:(Picture.{0,1}in.{0,1}[Pp]icture) +windowrule = float, tag:pip +windowrule = pin, tag:pip +windowrule = size 600 338, tag:pip +windowrule = keepaspectratio, tag:pip +windowrule = noborder, tag:pip +windowrule = opacity 1 1, tag:pip +windowrule = move 100%-w-40 4%, tag:pip diff --git a/private_dot_config/hypr/apps/qemu.conf b/private_dot_config/hypr/apps/qemu.conf new file mode 100644 index 0000000..104442c --- /dev/null +++ b/private_dot_config/hypr/apps/qemu.conf @@ -0,0 +1 @@ +windowrule = opacity 1 1, class:qemu diff --git a/private_dot_config/hypr/apps/retroarch.conf b/private_dot_config/hypr/apps/retroarch.conf new file mode 100644 index 0000000..94be39f --- /dev/null +++ b/private_dot_config/hypr/apps/retroarch.conf @@ -0,0 +1,4 @@ +windowrule = fullscreen, class:com.libretro.RetroArch +windowrule = opacity 1 1, class:com.libretro.RetroArch +windowrule = idleinhibit fullscreen, class:com.libretro.RetroArch + diff --git a/private_dot_config/hypr/apps/steam.conf b/private_dot_config/hypr/apps/steam.conf new file mode 100644 index 0000000..bd6386c --- /dev/null +++ b/private_dot_config/hypr/apps/steam.conf @@ -0,0 +1,7 @@ +# Float Steam, fullscreen RetroArch +windowrule = float, class:steam +windowrule = center, class:steam, title:Steam +windowrule = opacity 1 1, class:steam +windowrule = size 1100 700, class:steam, title:Steam +windowrule = size 460 800, class:steam, title:Friends List +windowrule = idleinhibit fullscreen, class:steam diff --git a/private_dot_config/hypr/apps/system.conf b/private_dot_config/hypr/apps/system.conf new file mode 100644 index 0000000..cfbfe5e --- /dev/null +++ b/private_dot_config/hypr/apps/system.conf @@ -0,0 +1,13 @@ +# Floating windows +windowrule = float, tag:floating-window +windowrule = center, tag:floating-window +windowrule = size 800 600, tag:floating-window + +windowrule = tag +floating-window, class:(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|com.gabm.satty|Omarchy|About|TUI.float) +windowrule = tag +floating-window, class:(xdg-desktop-portal-gtk|sublime_text|DesktopEditors|org.gnome.Nautilus), title:^(Open.*Files?|Open [F|f]older.*|Save.*Files?|Save.*As|Save|All Files) + +# Fullscreen screensaver +windowrule = fullscreen, class:Screensaver + +# No transparency on media windows +windowrule = opacity 1 1, class:^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$ diff --git a/private_dot_config/hypr/apps/terminals.conf b/private_dot_config/hypr/apps/terminals.conf new file mode 100644 index 0000000..e908e5d --- /dev/null +++ b/private_dot_config/hypr/apps/terminals.conf @@ -0,0 +1,2 @@ +# Define terminal tag to style them uniformly +windowrule = tag +terminal, class:(Alacritty|kitty|com.mitchellh.ghostty) diff --git a/private_dot_config/hypr/apps/walker.conf b/private_dot_config/hypr/apps/walker.conf new file mode 100644 index 0000000..eefd923 --- /dev/null +++ b/private_dot_config/hypr/apps/walker.conf @@ -0,0 +1,2 @@ +# Application-specific animation +layerrule = noanim, walker diff --git a/private_dot_config/hypr/autostart.conf b/private_dot_config/hypr/autostart.conf new file mode 100644 index 0000000..35c0f30 --- /dev/null +++ b/private_dot_config/hypr/autostart.conf @@ -0,0 +1,11 @@ +exec-once = uwsm-app -- hypridle +exec-once = uwsm-app -- mako +exec-once = uwsm-app -- waybar +exec-once = uwsm-app -- swaybg -i ~/.config/omarchy/current/background -m fill +exec-once = uwsm-app -- swayosd-server +exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 +exec-once = wl-clip-persist --clipboard regular --all-mime-type-regex '^(?!x-kde-passwordManagerHint).+' +exec-once = omarchy-cmd-first-run +exec-once = uwsm app -- elephant +exec-once = uwsm app -- walker --gapplication-service +exec-once = hyprpm reload diff --git a/private_dot_config/hypr/bindings.conf b/private_dot_config/hypr/bindings.conf new file mode 100644 index 0000000..d74a386 --- /dev/null +++ b/private_dot_config/hypr/bindings.conf @@ -0,0 +1,193 @@ +# Application bindings +$terminal = uwsm-app -- $TERMINAL +$browser = omarchy-launch-browser + +# key | super | +shift | +alt | +# ====|=============|============|============| +# Ret | Terminal | | | +# a | ChatGPT | | ProtonAuth | +# b | Browser | +incognito | BlueSky | +# c | | | | +# d | | | | +# e | | | ProtonMail | +# f | Files | | | +# g | | | GitHub | +# h | | | | +# i | | | | +# j | TOG.SPLIT | | | +# k | KEYBINDS | | | +# l | | | | +# m | | | | +# n | Nvim | | | +# o | Obsidian | | | +# p | PSEUDO WIN. | | ProtonPass | +# q | | | | +# r | | | | +# s | | | Slack | +# t | Activity | | Messages | +# u | | | | +# v | FLOAT | | | +# w | EXIT | | WhatsApp | +# x | | | | +# y | | | YouTube | +# z | | | | + +bindd = SUPER, return, Terminal, exec, bash -c 'dir="$(omarchy-cmd-terminal-cwd)"; $terminal --working-directory="$dir"' +bindd = SUPER, F, File manager, exec, uwsm-app -- nautilus --new-window +bindd = SUPER, B, Browser, exec, $browser +bindd = SUPER SHIFT, B, Browser (private), exec, $browser --private +bindd = SUPER, N, Editor, exec, omarchy-launch-editor +bindd = SUPER, T, Activity, exec, $terminal -e btop +bindd = SUPER, O, Obsidian, exec, omarchy-launch-or-focus obsidian "uwsm-app -- obsidian -disable-gpu --enable-wayland-ime" + +# If your web app url contains #, type it as ## to prevent hyperland treat it as comments +bindd = SUPER, A, ChatGPT, exec, omarchy-launch-webapp "https://chatgpt.com" +bindd = SUPER ALT, D, Discord, exec, omarchy-launch-or-focus vesktop +bindd = SUPER ALT, M, Music, exec, omarchy-launch-or-focus-webapp "Music" "https://music.youtube.com" +bindd = SUPER ALT, Y, YouTube, exec, omarchy-launch-or-focus-webapp "YouTube" "https://youtube.com/" +bindd = SUPER ALT, B, BlueSky, exec, omarchy-launch-or-focus-webapp "bsky" "https://bsky.app/" +bindd = SUPER ALT, G, GitHub, exec, omarchy-launch-or-focus-webapp "Github" "https://github.com" +bindd = SUPER ALT, W, WhatsApp, exec, omarchy-launch-or-focus-webapp "WhatsApp" "https://web.whatsapp.com/" +bindd = SUPER ALT, T, Google Messages, exec, omarchy-launch-or-focus-webapp "Messages" "https://messages.google.com/web/conversations" +bindd = SUPER ALT, E, Email, exec, omarchy-launch-or-focus proton-mail +bindd = SUPER ALT, A, Authenticator, exec, omarchy-launch-or-focus proton-authenticator +bindd = SUPER ALT, P, Password Manager, exec, omarchy-launch-or-focus proton-pass +bindd = SUPER ALT, S, Slack, exec, omarchy-launch-or-focus slack +# Only display the OSD on the currently focused monitor +$osdclient = swayosd-client --monitor "$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name')" + +# Laptop multimedia keys for volume and LCD brightness (with OSD) +bindeld = ,XF86AudioRaiseVolume, Volume up, exec, $osdclient --output-volume raise +bindeld = ,XF86AudioLowerVolume, Volume down, exec, $osdclient --output-volume lower +bindeld = ,XF86AudioMute, Mute, exec, $osdclient --output-volume mute-toggle +bindeld = ,XF86AudioMicMute, Mute microphone, exec, $osdclient --input-volume mute-toggle +bindeld = ,XF86MonBrightnessUp, Brightness up, exec, $osdclient --brightness raise +bindeld = ,XF86MonBrightnessDown, Brightness down, exec, $osdclient --brightness lower + +# Precise 1% multimedia adjustments with Alt modifier +bindeld = ALT, XF86AudioRaiseVolume, Volume up precise, exec, $osdclient --output-volume +1 +bindeld = ALT, XF86AudioLowerVolume, Volume down precise, exec, $osdclient --output-volume -1 +bindeld = ALT, XF86MonBrightnessUp, Brightness up precise, exec, $osdclient --brightness +1 +bindeld = ALT, XF86MonBrightnessDown, Brightness down precise, exec, $osdclient --brightness -1 + +# Requires playerctl +bindld = , XF86AudioNext, Next track, exec, $osdclient --playerctl next +bindld = , XF86AudioPause, Pause, exec, $osdclient --playerctl play-pause +bindld = , XF86AudioPlay, Play, exec, $osdclient --playerctl play-pause +bindld = , XF86AudioPrev, Previous track, exec, $osdclient --playerctl previous + +# Switch audio output with Super + Mute +bindld = SUPER, XF86AudioMute, Switch audio output, exec, omarchy-cmd-audio-switch + +# Close windows +bindd = SUPER, W, Close active window, killactive, +bindd = CTRL ALT, DELETE, Close all Windows, exec, omarchy-cmd-close-all-windows + +# Control tiling +bindd = SUPER, J, Toggle split, togglesplit, # dwindle +bindd = SUPER, P, Pseudo window, pseudo, # dwindle +bindd = SUPER SHIFT, V, Toggle floating, togglefloating, +bindd = SHIFT, F11, Force full screen, fullscreen, 0 +bindd = SUPER, Z, Full width, fullscreen, 1 +# Move focus with SUPER + arrow keys +bindd = SUPER, left, Move focus left, movefocus, l +bindd = SUPER, right, Move focus right, movefocus, r +bindd = SUPER, up, Move focus up, movefocus, u +bindd = SUPER, down, Move focus down, movefocus, d + +# Switch workspaces with SUPER + [0-9] +bindd = SUPER, code:10, Switch to workspace 1, workspace, 1 +bindd = SUPER, code:11, Switch to workspace 2, workspace, 2 +bindd = SUPER, code:12, Switch to workspace 3, workspace, 3 +bindd = SUPER, code:13, Switch to workspace 4, workspace, 4 +bindd = SUPER, code:14, Switch to workspace 5, workspace, 5 +bindd = SUPER, code:15, Switch to workspace 6, workspace, 6 +bindd = SUPER, code:16, Switch to workspace 7, workspace, 7 +bindd = SUPER, code:17, Switch to workspace 8, workspace, 8 +bindd = SUPER, code:18, Switch to workspace 9, workspace, 9 + +# Move active window to a workspace with SUPER + SHIFT + [0-9] +bindd = SUPER SHIFT, code:10, Move window to workspace 1, movetoworkspace, 1 +bindd = SUPER SHIFT, code:11, Move window to workspace 2, movetoworkspace, 2 +bindd = SUPER SHIFT, code:12, Move window to workspace 3, movetoworkspace, 3 +bindd = SUPER SHIFT, code:13, Move window to workspace 4, movetoworkspace, 4 +bindd = SUPER SHIFT, code:14, Move window to workspace 5, movetoworkspace, 5 +bindd = SUPER SHIFT, code:15, Move window to workspace 6, movetoworkspace, 6 +bindd = SUPER SHIFT, code:16, Move window to workspace 7, movetoworkspace, 7 +bindd = SUPER SHIFT, code:17, Move window to workspace 8, movetoworkspace, 8 +bindd = SUPER SHIFT, code:18, Move window to workspace 9, movetoworkspace, 9 + +# Tab between workspaces +bindd = SUPER, TAB, Next workspace, workspace, e+1 +bindd = SUPER SHIFT, TAB, Previous workspace, workspace, e-1 +bindd = SUPER CTRL, TAB, Former workspace, workspace, previous + +# Swap active window with the one next to it with SUPER + SHIFT + arrow keys +bindd = SUPER SHIFT, left, Swap window to the left, swapwindow, l +bindd = SUPER SHIFT, right, Swap window to the right, swapwindow, r +bindd = SUPER SHIFT, up, Swap window up, swapwindow, u +bindd = SUPER SHIFT, down, Swap window down, swapwindow, d + +# Cycle through applications on active workspace +bindd = ALT, Tab, Cycle to next window, cyclenext +bindd = ALT SHIFT, Tab, Cycle to prev window, cyclenext, prev +bindd = ALT, Tab, Reveal active window on top, bringactivetotop +bindd = ALT SHIFT, Tab, Reveal active window on top, bringactivetotop + +# Resize active window +bindd = SUPER CTRL, left, Expand window left, resizeactive, -100 0 +bindd = SUPER CTRL, right, Shrink window left, resizeactive, 100 0 +bindd = SUPER CTRL, up, Expand window vertical, resizeactive, 0 100 +bindd = SUPER CTRL, down, Shrink window vertical, resizeactive, 0 -100 + +# Scroll through existing workspaces with SUPER + scroll +bindd = SUPER, mouse_down, Scroll active workspace forward, workspace, e+1 +bindd = SUPER, mouse_up, Scroll active workspace backward, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindmd = SUPER, mouse:272, Move window, movewindow +bindmd = SUPER, mouse:273, Resize window, resizewindow +# Menus +bindd = SUPER, SPACE, Launch apps, exec, walker -p "Start…" +bindd = SUPER CTRL, E, Emoji picker, exec, walker -m Emojis +bindd = SUPER CTRL, V, Clipboard, exec, walker -m clipboard +bindd = SUPER ALT, SPACE, Omarchy menu, exec, omarchy-menu +bindd = SUPER, ESCAPE, Power menu, exec, omarchy-menu system +bindld = , XF86PowerOff, Power menu, exec, omarchy-menu system +bindd = SUPER, K, Show key bindings, exec, omarchy-menu-keybindings +bindd = , XF86Calculator, Calculator, exec, gnome-calculator + +# Aesthetics +bindd = SUPER SHIFT, SPACE, Toggle top bar, exec, omarchy-toggle-waybar +bindd = SUPER CTRL, SPACE, Next background in theme, exec, omarchy-theme-bg-next +bindd = SUPER SHIFT CTRL, SPACE, Pick new theme, exec, omarchy-menu theme +bindd = SUPER, BACKSPACE, Toggle window transparency, exec, hyprctl dispatch setprop "address:$(hyprctl activewindow -j | jq -r '.address')" opaque toggle + +# Notifications +bindd = SUPER, SEMICOLON, Dismiss last notification, exec, makoctl dismiss +bindd = SUPER SHIFT, SEMICOLON, Dismiss all notifications, exec, makoctl dismiss --all +bindd = SUPER CTRL, SEMICOLON, Toggle silencing notifications, exec, makoctl mode -t do-not-disturb && makoctl mode | grep -q 'do-not-disturb' && notify-send "Silenced notifications" || notify-send "Enabled notifications" && pkill -RTMIN+9 waybar + +# Toggle idling +bindd = SUPER CTRL, I, Toggle locking on idle, exec, omarchy-toggle-idle + +# Toggle nightlight +bindd = SUPER CTRL, N, Toggle nightlight, exec, omarchy-toggle-nightlight + +# Screenshots +bindd = , PRINT, Screenshot of region, exec, omarchy-cmd-screenshot +bindd = SHIFT, PRINT, Screenshot of window, exec, omarchy-cmd-screenshot window +bindd = CTRL, PRINT, Screenshot of display, exec, omarchy-cmd-screenshot output + +# Screen recordings +bindd = ALT, PRINT, Screen record menu, exec, omarchy-menu screenrecord + +# Color picker +bindd = SUPER, PRINT, Color picker, exec, pkill hyprpicker || hyprpicker -a + +# File sharing +bindd = CTRL SUPER, S, Share, exec, omarchy-menu share + +# Utilities +bind = SUPER, C, sendshortcut, CTRL, Insert, +bind = SUPER, V, sendshortcut, SHIFT, Insert, diff --git a/private_dot_config/hypr/envs.conf b/private_dot_config/hypr/envs.conf new file mode 100644 index 0000000..59b69f9 --- /dev/null +++ b/private_dot_config/hypr/envs.conf @@ -0,0 +1,28 @@ +# Cursor size +env = XCURSOR_SIZE,24 +env = HYPRCURSOR_SIZE,24 + +# Force all apps to use Wayland +env = GDK_BACKEND,wayland,x11,* +env = QT_QPA_PLATFORM,wayland;xcb +env = QT_STYLE_OVERRIDE,kvantum +env = SDL_VIDEODRIVER,wayland +env = MOZ_ENABLE_WAYLAND,1 +env = ELECTRON_OZONE_PLATFORM_HINT,wayland +env = OZONE_PLATFORM,wayland +env = XDG_SESSION_TYPE,wayland + +# Allow better support for screen sharing (Google Meet, Discord, etc) +env = XDG_CURRENT_DESKTOP,Hyprland +env = XDG_SESSION_DESKTOP,Hyprland + +xwayland { + force_zero_scaling = true +} + +# Use XCompose file +env = XCOMPOSEFILE,~/.XCompose + +ecosystem { + no_update_news = true +} diff --git a/private_dot_config/hypr/hypridle.conf b/private_dot_config/hypr/hypridle.conf new file mode 100644 index 0000000..f2245a7 --- /dev/null +++ b/private_dot_config/hypr/hypridle.conf @@ -0,0 +1,22 @@ +general { + lock_cmd = omarchy-lock-screen # lock screen and 1password + before_sleep_cmd = loginctl lock-session # lock before suspend. + after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display. + inhibit_sleep = 3 # wait until screen is locked +} + +listener { + timeout = 150 # 2.5min + on-timeout = pidof hyprlock || omarchy-launch-screensaver # start screensaver (if we haven't locked already) +} + +listener { + timeout = 300 # 5min + on-timeout = loginctl lock-session # lock screen when timeout has passed +} + +listener { + timeout = 330 # 5.5min + on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed + on-resume = hyprctl dispatch dpms on && brightnessctl -r # screen on when activity is detected +} diff --git a/private_dot_config/hypr/hyprland.conf b/private_dot_config/hypr/hyprland.conf new file mode 100644 index 0000000..f2b6ab8 --- /dev/null +++ b/private_dot_config/hypr/hyprland.conf @@ -0,0 +1,16 @@ +source = ~/.config/omarchy/current/theme/hyprland.conf + + +source = ~/.config/hypr/windows.conf +source = ~/.config/hypr/monitors.conf +source = ~/.config/hypr/input.conf +source = ~/.config/hypr/bindings.conf +source = ~/.config/hypr/envs.conf +source = ~/.config/hypr/looknfeel.conf +source = ~/.config/hypr/autostart.conf + +source = ~/.config/hypr/opts/animated_borders.conf +source = ~/.config/hypr/opts/dimaround_walker.conf +source = ~/.config/hypr/opts/hyprexpo.conf +source = ~/.config/hypr/opts/split-monitor-workspaces.conf +source = ~/.config/hypr/opts/hyprscrolling.conf diff --git a/private_dot_config/hypr/hyprlock.conf b/private_dot_config/hypr/hyprlock.conf new file mode 100644 index 0000000..d056c54 --- /dev/null +++ b/private_dot_config/hypr/hyprlock.conf @@ -0,0 +1,39 @@ +source = ~/.config/omarchy/current/theme/hyprlock.conf + +background { + monitor = + color = $color + path = ~/.config/omarchy/current/background + blur_passes = 2 +} + +animations { + enabled = true +} + +input-field { + monitor = + size = 80, 35 + position = 0, 0 + halign = center + valign = center + + inner_color = $inner_color + outer_color = $outer_color + outline_thickness = 1 + + font_family = Caskaydia Nerd Font + font_color = $font_color + + placeholder_text =   + check_color = $check_color + fail_text = $PAMFAIL ($ATTEMPTS) + + rounding = 0 + shadow_passes = 0 + fade_on_empty = true +} + +auth { + fingerprint:enabled = true +} diff --git a/private_dot_config/hypr/hyprsunset.conf b/private_dot_config/hypr/hyprsunset.conf new file mode 100644 index 0000000..78bba7d --- /dev/null +++ b/private_dot_config/hypr/hyprsunset.conf @@ -0,0 +1,6 @@ +# Makes hyprsunset do nothing to the screen by default +# Without this, the default applies some tint to the monitor +profile { + time = 07:00 + identity = true +} \ No newline at end of file diff --git a/private_dot_config/hypr/input.conf b/private_dot_config/hypr/input.conf new file mode 100644 index 0000000..2fef1cb --- /dev/null +++ b/private_dot_config/hypr/input.conf @@ -0,0 +1,13 @@ +# https://wiki.hyprland.org/Configuring/Variables/#input +input { + kb_layout = gb + kb_variant = + kb_model = + kb_options = compose:caps + kb_rules = + follow_mouse = 1 + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. + touchpad { + natural_scroll = false + } +} diff --git a/private_dot_config/hypr/looknfeel.conf b/private_dot_config/hypr/looknfeel.conf new file mode 100644 index 0000000..595b337 --- /dev/null +++ b/private_dot_config/hypr/looknfeel.conf @@ -0,0 +1,113 @@ +$activeBorderColor = rgba(33ccffee) rgba(00ff99ee) 45deg +$inactiveBorderColor = rgba(595959aa) + +# https://wiki.hyprland.org/Configuring/Variables/#general +general { + gaps_in = 4 + gaps_out = 4 + border_size = 2 + # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors + col.active_border = $activeBorderColor + col.inactive_border = $inactiveBorderColor + resize_on_border = false + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false + layout = dwindle +} + +# https://wiki.hyprland.org/Configuring/Variables/#decoration +decoration { + rounding = 0 + shadow { + enabled = true + range = 2 + render_power = 3 + color = rgba(1a1a1aee) + } + # https://wiki.hyprland.org/Configuring/Variables/#blur + blur { + enabled = true + size = 3 + passes = 1 + vibrancy = 0.1696 + } +} + +# https://wiki.hyprland.org/Configuring/Variables/#animations +animations { + enabled = yes, please :) + # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + bezier = easeOutQuint,0.23,1,0.32,1 + bezier = easeInOutCubic,0.65,0.05,0.36,1 + bezier = linear,0,0,1,1 + bezier = almostLinear,0.5,0.5,0.75,1.0 + bezier = quick,0.15,0,0.1,1 + animation = global, 1, 10, default + animation = border, 1, 5.39, easeOutQuint + animation = windows, 1, 4.79, easeOutQuint + animation = windowsIn, 1, 4.1, easeOutQuint, popin 87% + animation = windowsOut, 1, 1.49, linear, popin 87% + animation = fadeIn, 1, 1.73, almostLinear + animation = fadeOut, 1, 1.46, almostLinear + animation = fade, 1, 3.03, quick + animation = layers, 1, 3.81, easeOutQuint + animation = layersIn, 1, 4, easeOutQuint, fade + animation = layersOut, 1, 1.5, linear, fade + animation = fadeLayersIn, 1, 1.79, almostLinear + animation = fadeLayersOut, 1, 1.39, almostLinear + animation = workspaces, 1, 2, default, slide top +} + +# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more +dwindle { + pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = true # You probably want this + force_split = 2 # Always split on the right +} + +# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more +master { + new_status = master +} + +# https://wiki.hyprland.org/Configuring/Variables/#misc +misc { + disable_hyprland_logo = true + disable_splash_rendering = true + focus_on_activate = true + anr_missed_pings = 5 +} + +# https://wiki.hypr.land/Configuring/Variables/#cursor +cursor { + hide_on_key_press = true +} + +group { + col.border_active = $activeBorderColor + col.border_inactive = $inactiveBorderColor + col.border_locked_active = -1 + col.border_locked_inactive = -1 + + groupbar { + font_size = 12 + font_family = monospace + font_weight_active = ultraheavy + font_weight_inactive = normal + + indicator_height = 0 + indicator_gap = 5 + height = 22 + gaps_in = 5 + gaps_out = 0 + + text_color = rgb(ffffff) + text_color_inactive = rgba(ffffff90) + col.active = rgba(00000040) + col.inactive = rgba(00000020) + + gradients = true + gradient_rounding = 0 + gradient_round_only_edges = false + } +} diff --git a/private_dot_config/hypr/monitors.conf b/private_dot_config/hypr/monitors.conf new file mode 100644 index 0000000..d2a4878 --- /dev/null +++ b/private_dot_config/hypr/monitors.conf @@ -0,0 +1,11 @@ +# See https://wiki.hyprland.org/Configuring/Monitors/ +# List current monitors and resolutions possible: hyprctl monitors +# Format: monitor = [port], resolution, position, scale +# You must relaunch Hyprland after changing any envs (use Super+Esc, then Relaunch) + +env = GDK_SCALE,1 +monitor=,preferred,auto,1 + +# configurable per monitor. see below to specify +# settings for only a particular monitor +# monitor = HDMI-A-1,preferred, auto, 2 diff --git a/private_dot_config/hypr/opts/animated_borders.conf b/private_dot_config/hypr/opts/animated_borders.conf new file mode 100644 index 0000000..fd721ec --- /dev/null +++ b/private_dot_config/hypr/opts/animated_borders.conf @@ -0,0 +1,2 @@ +animation = border, 1, 1, linear +animation = borderangle, 1, 24, linear, loop diff --git a/private_dot_config/hypr/opts/dimaround_walker.conf b/private_dot_config/hypr/opts/dimaround_walker.conf new file mode 100644 index 0000000..df2f74e --- /dev/null +++ b/private_dot_config/hypr/opts/dimaround_walker.conf @@ -0,0 +1 @@ +layerrule = dimaround, walker diff --git a/private_dot_config/hypr/opts/hyprexpo.conf b/private_dot_config/hypr/opts/hyprexpo.conf new file mode 100644 index 0000000..71683b4 --- /dev/null +++ b/private_dot_config/hypr/opts/hyprexpo.conf @@ -0,0 +1,8 @@ +plugin { + hyprexpo { + columns = 2 + workspace_method = first 1 + } +} + +bind = SUPER, code:19, hyprexpo:expo, toggle diff --git a/private_dot_config/hypr/opts/hyprscrolling.conf b/private_dot_config/hypr/opts/hyprscrolling.conf new file mode 100644 index 0000000..8e4a321 --- /dev/null +++ b/private_dot_config/hypr/opts/hyprscrolling.conf @@ -0,0 +1,49 @@ +general:layout = scrolling + +plugin { + hyprscrolling { + column_width = 0.49 + explicit_column_widths = 0.49, 0.99 + fullscreen_on_one_column = true + focus_fit_method = 1 + } +} + +$minus = code:20 +$plus = code:21 + +unbind = SUPER, period +unbind = SUPER, comma +unbind = SUPER SHIFT, period +unbind = SUPER SHIFT, comma +unbind = SUPER SHIFT, left +unbind = SUPER SHIFT, right +unbind = SUPER SHIFT, up +unbind = SUPER SHIFT, down +unbind = SUPER, $minus +unbind = SUPER, $plus +unbind = SUPER, left +unbind = SUPER, right +unbind = SUPER CTRL, left +unbind = SUPER CTRL, right + +bind = SUPER, period, layoutmsg, colresize +conf +bind = SUPER, comma, layoutmsg, colresize all 0.49 + +bind = SUPER SHIFT, period, layoutmsg, swapcol r +bind = SUPER SHIFT, comma, layoutmsg, swapcol l + +bind = SUPER, $minus, layoutmsg, colresize -0.1 +bind = SUPER, $plus, layoutmsg, colresize +0.1 +bind = SUPER CTRL, left, layoutmsg, colresize -0.1 +bind = SUPER CTRL, right, layoutmsg, colresize +0.1 + +bind = SUPER SHIFT, right, layoutmsg, movewindowto r +bind = SUPER SHIFT, left, layoutmsg, movewindowto l +bind = SUPER SHIFT, up, layoutmsg, movewindowto u +bind = SUPER SHIFT, down, layoutmsg, movewindowto d +bind = SUPER SHIFT, return, layoutmsg, promote + +bind = SUPER, left, layoutmsg, focus left +bind = SUPER, right, layoutmsg, focus right + diff --git a/private_dot_config/hypr/opts/split-monitor-workspaces.conf b/private_dot_config/hypr/opts/split-monitor-workspaces.conf new file mode 100644 index 0000000..e4d9bc0 --- /dev/null +++ b/private_dot_config/hypr/opts/split-monitor-workspaces.conf @@ -0,0 +1,45 @@ +plugin { + split-monitor-workspaces { + count = 4 + keep_focused = 0 + enable_notifications = 0 + enable_persistent_workspaces = 1 + } +} + +unbind = SUPER, code:10 +unbind = SUPER, code:11 +unbind = SUPER, code:12 +unbind = SUPER, code:13 +unbind = SUPER, code:14 +unbind = SUPER, code:15 +unbind = SUPER, code:16 +unbind = SUPER, code:17 +unbind = SUPER, code:18 +unbind = SUPER SHIFT, code:10 +unbind = SUPER SHIFT, code:11 +unbind = SUPER SHIFT, code:12 +unbind = SUPER SHIFT, code:13 +unbind = SUPER SHIFT, code:14 +unbind = SUPER SHIFT, code:15 +unbind = SUPER SHIFT, code:16 +unbind = SUPER SHIFT, code:17 +unbind = SUPER SHIFT, code:18 +unbind = SUPER, TAB +unbind = SUPER SHIFT, TAB + +bind = SUPER, 1, split-workspace, 1 +bind = SUPER, 2, split-workspace, 2 +bind = SUPER, 3, split-workspace, 3 +bind = SUPER, 4, split-workspace, 4 +bind = SUPER, 5, split-workspace, 5 + +bind = SUPER SHIFT, 1, split-movetoworkspacesilent, 1 +bind = SUPER SHIFT, 2, split-movetoworkspacesilent, 2 +bind = SUPER SHIFT, 3, split-movetoworkspacesilent, 3 +bind = SUPER SHIFT, 4, split-movetoworkspacesilent, 4 +bind = SUPER SHIFT, 5, split-movetoworkspacesilent, 5 + +bind = SUPER, TAB, split-cycleworkspaces, +1 +bind = SUPER SHIFT, TAB, split-changemonitor, +1 +bind = SUPER, 9, split-grabroguewindows diff --git a/private_dot_config/hypr/windows.conf b/private_dot_config/hypr/windows.conf new file mode 100644 index 0000000..a737641 --- /dev/null +++ b/private_dot_config/hypr/windows.conf @@ -0,0 +1,7 @@ +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more +windowrule = suppressevent maximize, class:.* +windowrule = opacity 0.97 0.9, class:.* +# Fix some dragging issues with XWayland +windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 +# App-specific tweaks +source = ~/.config/hypr/apps.conf