diff --git a/default/hypr/apps.conf b/default/hypr/apps.conf deleted file mode 100644 index f64c6e39..00000000 --- a/default/hypr/apps.conf +++ /dev/null @@ -1,19 +0,0 @@ -# App-specific tweaks -source = ~/.local/share/omarchy/default/hypr/apps/1password.conf -source = ~/.local/share/omarchy/default/hypr/apps/bitwarden.conf -source = ~/.local/share/omarchy/default/hypr/apps/browser.conf -source = ~/.local/share/omarchy/default/hypr/apps/hyprshot.conf -source = ~/.local/share/omarchy/default/hypr/apps/jetbrains.conf -source = ~/.local/share/omarchy/default/hypr/apps/localsend.conf -source = ~/.local/share/omarchy/default/hypr/apps/pip.conf -source = ~/.local/share/omarchy/default/hypr/apps/qemu.conf -source = ~/.local/share/omarchy/default/hypr/apps/retroarch.conf -source = ~/.local/share/omarchy/default/hypr/apps/steam.conf -source = ~/.local/share/omarchy/default/hypr/apps/geforce.conf -source = ~/.local/share/omarchy/default/hypr/apps/moonlight.conf -source = ~/.local/share/omarchy/default/hypr/apps/system.conf -source = ~/.local/share/omarchy/default/hypr/apps/telegram.conf -source = ~/.local/share/omarchy/default/hypr/apps/typora.conf -source = ~/.local/share/omarchy/default/hypr/apps/terminals.conf -source = ~/.local/share/omarchy/default/hypr/apps/walker.conf -source = ~/.local/share/omarchy/default/hypr/apps/webcam-overlay.conf diff --git a/default/hypr/apps.lua b/default/hypr/apps.lua new file mode 100644 index 00000000..c2301594 --- /dev/null +++ b/default/hypr/apps.lua @@ -0,0 +1,5 @@ +-- App-specific tweaks. +local paths = require("default.hypr.paths") +local require_all = require("default.hypr.require_all") + +require_all.files(paths.omarchy_path .. "/default/hypr/apps", "default.hypr.apps") diff --git a/default/hypr/apps/1password.conf b/default/hypr/apps/1password.conf deleted file mode 100644 index a666430c..00000000 --- a/default/hypr/apps/1password.conf +++ /dev/null @@ -1,2 +0,0 @@ -windowrule = no_screen_share on, match:class ^(1[p|P]assword)$ -windowrule = tag +floating-window, match:class ^(1[p|P]assword)$ diff --git a/default/hypr/apps/1password.lua b/default/hypr/apps/1password.lua new file mode 100644 index 00000000..0cb083b4 --- /dev/null +++ b/default/hypr/apps/1password.lua @@ -0,0 +1,2 @@ +hl.window_rule({ match = { class = "^(1[p|P]assword)$" }, no_screen_share = true }) +hl.window_rule({ match = { class = "^(1[p|P]assword)$" }, tag = "+floating-window" }) diff --git a/default/hypr/apps/bitwarden.conf b/default/hypr/apps/bitwarden.conf deleted file mode 100644 index 8ffb5688..00000000 --- a/default/hypr/apps/bitwarden.conf +++ /dev/null @@ -1,6 +0,0 @@ -windowrule = no_screen_share on, match:class ^(Bitwarden)$ -windowrule = tag +floating-window, match:class ^(Bitwarden)$ - -# Bitwarden Chrome Extension -windowrule = no_screen_share on, match:class chrome-nngceckbapebfimnlniiiahkandclblb-Default -windowrule = tag +floating-window, match:class chrome-nngceckbapebfimnlniiiahkandclblb-Default diff --git a/default/hypr/apps/bitwarden.lua b/default/hypr/apps/bitwarden.lua new file mode 100644 index 00000000..817d78ab --- /dev/null +++ b/default/hypr/apps/bitwarden.lua @@ -0,0 +1,6 @@ +hl.window_rule({ match = { class = "^(Bitwarden)$" }, no_screen_share = true }) +hl.window_rule({ match = { class = "^(Bitwarden)$" }, tag = "+floating-window" }) + +-- Bitwarden Chrome Extension. +hl.window_rule({ match = { class = "chrome-nngceckbapebfimnlniiiahkandclblb-Default" }, no_screen_share = true }) +hl.window_rule({ match = { class = "chrome-nngceckbapebfimnlniiiahkandclblb-Default" }, tag = "+floating-window" }) diff --git a/default/hypr/apps/browser.conf b/default/hypr/apps/browser.conf deleted file mode 100644 index 53acc6df..00000000 --- a/default/hypr/apps/browser.conf +++ /dev/null @@ -1,19 +0,0 @@ -# Browser types -windowrule = tag +chromium-based-browser, match:class ((google-)?[cC]hrom(e|ium)|[bB]rave-browser|[mM]icrosoft-edge|Vivaldi-stable|helium) -windowrule = tag +firefox-based-browser, match:class ([fF]irefox|zen|librewolf) -windowrule = tag -default-opacity, match:tag chromium-based-browser -windowrule = tag -default-opacity, match:tag firefox-based-browser - -# Video apps: remove chromium browser tag so they don't get opacity applied -windowrule = tag -chromium-based-browser, match:class (chrome-youtube.com__-Default|chrome-app.zoom.us__wc_home-Default) -windowrule = tag -default-opacity, match:class (chrome-youtube.com__-Default|chrome-app.zoom.us__wc_home-Default) - -# Force chromium-based browsers into a tile to deal with --app bug -windowrule = tile on, match:tag chromium-based-browser - -# Only a subtle opacity change, but not for video sites -windowrule = opacity 1.0 0.97, match:tag chromium-based-browser -windowrule = opacity 1.0 0.97, match:tag firefox-based-browser - -# Hide the screen-sharing notification bar (the "Hide" button on it is broken on Wayland) -windowrule = workspace special silent, match:title .*is sharing.* diff --git a/default/hypr/apps/browser.lua b/default/hypr/apps/browser.lua new file mode 100644 index 00000000..4fc73a33 --- /dev/null +++ b/default/hypr/apps/browser.lua @@ -0,0 +1,19 @@ +-- Browser types. +hl.window_rule({ match = { class = "((google-)?[cC]hrom(e|ium)|[bB]rave-browser|[mM]icrosoft-edge|Vivaldi-stable|helium)" }, tag = "+chromium-based-browser" }) +hl.window_rule({ match = { class = "([fF]irefox|zen|librewolf)" }, tag = "+firefox-based-browser" }) +hl.window_rule({ match = { tag = "chromium-based-browser" }, tag = "-default-opacity" }) +hl.window_rule({ match = { tag = "firefox-based-browser" }, tag = "-default-opacity" }) + +-- Video apps: remove chromium browser tag so they don't get opacity applied. +hl.window_rule({ match = { class = "(chrome-youtube.com__-Default|chrome-app.zoom.us__wc_home-Default)" }, tag = "-chromium-based-browser" }) +hl.window_rule({ match = { class = "(chrome-youtube.com__-Default|chrome-app.zoom.us__wc_home-Default)" }, tag = "-default-opacity" }) + +-- Force chromium-based browsers into a tile to deal with --app bug. +hl.window_rule({ match = { tag = "chromium-based-browser" }, tile = true }) + +-- Only a subtle opacity change, but not for video sites. +hl.window_rule({ match = { tag = "chromium-based-browser" }, opacity = "1.0 0.97" }) +hl.window_rule({ match = { tag = "firefox-based-browser" }, opacity = "1.0 0.97" }) + +-- Hide the screen-sharing notification bar (the "Hide" button on it is broken on Wayland). +hl.window_rule({ match = { title = ".*is sharing.*" }, workspace = "special silent" }) diff --git a/default/hypr/apps/davinci-resolve.conf b/default/hypr/apps/davinci-resolve.conf deleted file mode 100644 index 9067fdf6..00000000 --- a/default/hypr/apps/davinci-resolve.conf +++ /dev/null @@ -1,2 +0,0 @@ -# Focus floating DaVinci Resolve dialog windows -windowrule = stay_focused on, match:class .*[Rr]esolve.*, match:float 1 diff --git a/default/hypr/apps/davinci-resolve.lua b/default/hypr/apps/davinci-resolve.lua new file mode 100644 index 00000000..637d51bd --- /dev/null +++ b/default/hypr/apps/davinci-resolve.lua @@ -0,0 +1,2 @@ +-- Focus floating DaVinci Resolve dialog windows. +hl.window_rule({ match = { class = ".*[Rr]esolve.*", float = true }, stay_focused = true }) diff --git a/default/hypr/apps/geforce.conf b/default/hypr/apps/geforce.conf deleted file mode 100644 index fb2e5a30..00000000 --- a/default/hypr/apps/geforce.conf +++ /dev/null @@ -1,5 +0,0 @@ -windowrule { - name = geforce - match:class = GeForceNOW - idle_inhibit = fullscreen -} diff --git a/default/hypr/apps/geforce.lua b/default/hypr/apps/geforce.lua new file mode 100644 index 00000000..feb7e885 --- /dev/null +++ b/default/hypr/apps/geforce.lua @@ -0,0 +1,5 @@ +hl.window_rule({ + name = "geforce", + match = { class = "GeForceNOW" }, + idle_inhibit = "fullscreen", +}) diff --git a/default/hypr/apps/hyprshot.conf b/default/hypr/apps/hyprshot.conf deleted file mode 100644 index 795ac396..00000000 --- a/default/hypr/apps/hyprshot.conf +++ /dev/null @@ -1,2 +0,0 @@ -# Remove 1px border around hyprshot screenshots -layerrule = no_anim on, match:namespace selection diff --git a/default/hypr/apps/hyprshot.lua b/default/hypr/apps/hyprshot.lua new file mode 100644 index 00000000..409f2605 --- /dev/null +++ b/default/hypr/apps/hyprshot.lua @@ -0,0 +1,2 @@ +-- Remove 1px border around hyprshot screenshots. +hl.layer_rule({ match = { namespace = "selection" }, no_anim = true }) diff --git a/default/hypr/apps/jetbrains.conf b/default/hypr/apps/jetbrains.conf deleted file mode 100644 index b1eea6a0..00000000 --- a/default/hypr/apps/jetbrains.conf +++ /dev/null @@ -1,6 +0,0 @@ -# Disable mouse focus (see https://github.com/basecamp/omarchy/pull/5183#issuecomment-4189299971) -windowrule { - name = jetbrains-focus - no_follow_mouse = on - match:class = ^(jetbrains-.*)$ -} diff --git a/default/hypr/apps/jetbrains.lua b/default/hypr/apps/jetbrains.lua new file mode 100644 index 00000000..f48d150f --- /dev/null +++ b/default/hypr/apps/jetbrains.lua @@ -0,0 +1,6 @@ +-- Disable mouse focus (see https://github.com/basecamp/omarchy/pull/5183#issuecomment-4189299971). +hl.window_rule({ + name = "jetbrains-focus", + match = { class = "^(jetbrains-.*)$" }, + no_follow_mouse = true, +}) diff --git a/default/hypr/apps/localsend.conf b/default/hypr/apps/localsend.conf deleted file mode 100644 index c4f6a552..00000000 --- a/default/hypr/apps/localsend.conf +++ /dev/null @@ -1,4 +0,0 @@ -# Float LocalSend and fzf file picker -windowrule = float on, match:class (Share|localsend) -windowrule = center on, match:class (Share|localsend) -windowrule = size 1100 700, match:class localsend diff --git a/default/hypr/apps/localsend.lua b/default/hypr/apps/localsend.lua new file mode 100644 index 00000000..e670fd7f --- /dev/null +++ b/default/hypr/apps/localsend.lua @@ -0,0 +1,4 @@ +-- Float LocalSend and fzf file picker. +hl.window_rule({ match = { class = "(Share|localsend)" }, float = true }) +hl.window_rule({ match = { class = "(Share|localsend)" }, center = true }) +hl.window_rule({ match = { class = "localsend" }, size = { 1100, 700 } }) diff --git a/default/hypr/apps/moonlight.conf b/default/hypr/apps/moonlight.conf deleted file mode 100644 index 271a11c1..00000000 --- a/default/hypr/apps/moonlight.conf +++ /dev/null @@ -1,6 +0,0 @@ -windowrule { - name = moonlight - match:class = com.moonlight_stream.Moonlight - fullscreen = 1 - idle_inhibit = fullscreen -} diff --git a/default/hypr/apps/moonlight.lua b/default/hypr/apps/moonlight.lua new file mode 100644 index 00000000..2774d77c --- /dev/null +++ b/default/hypr/apps/moonlight.lua @@ -0,0 +1,6 @@ +hl.window_rule({ + name = "moonlight", + match = { class = "com.moonlight_stream.Moonlight" }, + fullscreen = true, + idle_inhibit = "fullscreen", +}) diff --git a/default/hypr/apps/pip.conf b/default/hypr/apps/pip.conf deleted file mode 100644 index 417edc91..00000000 --- a/default/hypr/apps/pip.conf +++ /dev/null @@ -1,10 +0,0 @@ -# Picture-in-picture overlays -windowrule = tag +pip, match:title (Picture.?in.?[Pp]icture) -windowrule = tag -default-opacity, match:tag pip -windowrule = float on, match:tag pip -windowrule = pin on, match:tag pip -windowrule = size 600 338, match:tag pip -windowrule = keep_aspect_ratio on, match:tag pip -windowrule = border_size 0, match:tag pip -windowrule = opacity 1 1, match:tag pip -windowrule = move (monitor_w-window_w-40) (monitor_h*0.04), match:tag pip diff --git a/default/hypr/apps/pip.lua b/default/hypr/apps/pip.lua new file mode 100644 index 00000000..6158fa9b --- /dev/null +++ b/default/hypr/apps/pip.lua @@ -0,0 +1,10 @@ +-- Picture-in-picture overlays. +hl.window_rule({ match = { title = "(Picture.?in.?[Pp]icture)" }, tag = "+pip" }) +hl.window_rule({ match = { tag = "pip" }, tag = "-default-opacity" }) +hl.window_rule({ match = { tag = "pip" }, float = true }) +hl.window_rule({ match = { tag = "pip" }, pin = true }) +hl.window_rule({ match = { tag = "pip" }, size = { 600, 338 } }) +hl.window_rule({ match = { tag = "pip" }, keep_aspect_ratio = true }) +hl.window_rule({ match = { tag = "pip" }, border_size = 0 }) +hl.window_rule({ match = { tag = "pip" }, opacity = "1 1" }) +hl.window_rule({ match = { tag = "pip" }, move = { "(monitor_w-window_w-40)", "(monitor_h*0.04)" } }) diff --git a/default/hypr/apps/qemu.conf b/default/hypr/apps/qemu.conf deleted file mode 100644 index 6dcce0e0..00000000 --- a/default/hypr/apps/qemu.conf +++ /dev/null @@ -1,2 +0,0 @@ -windowrule = tag -default-opacity, match:class qemu -windowrule = opacity 1 1, match:class qemu diff --git a/default/hypr/apps/qemu.lua b/default/hypr/apps/qemu.lua new file mode 100644 index 00000000..e9334c1c --- /dev/null +++ b/default/hypr/apps/qemu.lua @@ -0,0 +1,2 @@ +hl.window_rule({ match = { class = "qemu" }, tag = "-default-opacity" }) +hl.window_rule({ match = { class = "qemu" }, opacity = "1 1" }) diff --git a/default/hypr/apps/retroarch.conf b/default/hypr/apps/retroarch.conf deleted file mode 100644 index 556f0fd8..00000000 --- a/default/hypr/apps/retroarch.conf +++ /dev/null @@ -1,4 +0,0 @@ -windowrule = fullscreen on, match:class com.libretro.RetroArch -windowrule = tag -default-opacity, match:class com.libretro.RetroArch -windowrule = opacity 1 1, match:class com.libretro.RetroArch -windowrule = idle_inhibit fullscreen, match:class com.libretro.RetroArch diff --git a/default/hypr/apps/retroarch.lua b/default/hypr/apps/retroarch.lua new file mode 100644 index 00000000..01b3f8b5 --- /dev/null +++ b/default/hypr/apps/retroarch.lua @@ -0,0 +1,4 @@ +hl.window_rule({ match = { class = "com.libretro.RetroArch" }, fullscreen = true }) +hl.window_rule({ match = { class = "com.libretro.RetroArch" }, tag = "-default-opacity" }) +hl.window_rule({ match = { class = "com.libretro.RetroArch" }, opacity = "1 1" }) +hl.window_rule({ match = { class = "com.libretro.RetroArch" }, idle_inhibit = "fullscreen" }) diff --git a/default/hypr/apps/steam.conf b/default/hypr/apps/steam.conf deleted file mode 100644 index a42a6e68..00000000 --- a/default/hypr/apps/steam.conf +++ /dev/null @@ -1,8 +0,0 @@ -# Float Steam -windowrule = float on, match:class steam -windowrule = center on, match:class steam, match:title Steam -windowrule = tag -default-opacity, match:class steam.* -windowrule = opacity 1 1, match:class steam.* -windowrule = size 1100 700, match:class steam, match:title Steam -windowrule = size 460 800, match:class steam, match:title Friends List -windowrule = idle_inhibit fullscreen, match:class steam diff --git a/default/hypr/apps/steam.lua b/default/hypr/apps/steam.lua new file mode 100644 index 00000000..05bb75d8 --- /dev/null +++ b/default/hypr/apps/steam.lua @@ -0,0 +1,8 @@ +-- Float Steam. +hl.window_rule({ match = { class = "steam" }, float = true }) +hl.window_rule({ match = { class = "steam", title = "Steam" }, center = true }) +hl.window_rule({ match = { class = "steam.*" }, tag = "-default-opacity" }) +hl.window_rule({ match = { class = "steam.*" }, opacity = "1 1" }) +hl.window_rule({ match = { class = "steam", title = "Steam" }, size = { 1100, 700 } }) +hl.window_rule({ match = { class = "steam", title = "Friends List" }, size = { 460, 800 } }) +hl.window_rule({ match = { class = "steam" }, idle_inhibit = "fullscreen" }) diff --git a/default/hypr/apps/system.conf b/default/hypr/apps/system.conf deleted file mode 100644 index 6f82aa35..00000000 --- a/default/hypr/apps/system.conf +++ /dev/null @@ -1,23 +0,0 @@ -# Floating windows -windowrule = float on, match:tag floating-window -windowrule = center on, match:tag floating-window -windowrule = size 875 600, match:tag floating-window - -windowrule = tag +floating-window, match:class (org.omarchy.bluetui|org.omarchy.impala|org.omarchy.wiremix|org.omarchy.btop|org.omarchy.terminal|org.omarchy.bash|org.codeberg.dnkl.foot|org.gnome.NautilusPreviewer|org.gnome.Evince|com.gabm.satty|Omarchy|About|TUI.float|imv|mpv) -windowrule = tag +floating-window, match:class (xdg-desktop-portal-gtk|sublime_text|DesktopEditors|org.gnome.Nautilus), match:title ^(Open.*Files?|Open [F|f]older.*|Save.*Files?|Save.*As|Save|All Files|.*wants to [open|save].*|[C|c]hoose.*) -windowrule = float on, match:class org.gnome.Calculator - -# Fullscreen screensaver -windowrule = fullscreen on, match:class org.omarchy.screensaver -windowrule = float on, match:class org.omarchy.screensaver -windowrule = animation slide, match:class org.omarchy.screensaver - -# No transparency on media windows -windowrule = tag -default-opacity, match:class ^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$ -windowrule = opacity 1 1, match:class ^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$ - -# Popped window rounding -windowrule = rounding 8, match:tag pop - -# Prevent idle while open -windowrule = idle_inhibit always, match:tag noidle diff --git a/default/hypr/apps/system.lua b/default/hypr/apps/system.lua new file mode 100644 index 00000000..71e828fe --- /dev/null +++ b/default/hypr/apps/system.lua @@ -0,0 +1,23 @@ +-- Floating windows. +hl.window_rule({ match = { tag = "floating-window" }, float = true }) +hl.window_rule({ match = { tag = "floating-window" }, center = true }) +hl.window_rule({ match = { tag = "floating-window" }, size = { 875, 600 } }) + +hl.window_rule({ match = { class = "(org.omarchy.bluetui|org.omarchy.impala|org.omarchy.wiremix|org.omarchy.btop|org.omarchy.terminal|org.omarchy.bash|org.codeberg.dnkl.foot|org.gnome.NautilusPreviewer|org.gnome.Evince|com.gabm.satty|Omarchy|About|TUI.float|imv|mpv)" }, tag = "+floating-window" }) +hl.window_rule({ match = { 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|.*wants to [open|save].*|[C|c]hoose.*)" }, tag = "+floating-window" }) +hl.window_rule({ match = { class = "org.gnome.Calculator" }, float = true }) + +-- Fullscreen screensaver. +hl.window_rule({ match = { class = "org.omarchy.screensaver" }, fullscreen = true }) +hl.window_rule({ match = { class = "org.omarchy.screensaver" }, float = true }) +hl.window_rule({ match = { class = "org.omarchy.screensaver" }, animation = "slide" }) + +-- No transparency on media windows. +hl.window_rule({ match = { class = "^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$" }, tag = "-default-opacity" }) +hl.window_rule({ match = { class = "^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$" }, opacity = "1 1" }) + +-- Popped window rounding. +hl.window_rule({ match = { tag = "pop" }, rounding = 8 }) + +-- Prevent idle while open. +hl.window_rule({ match = { tag = "noidle" }, idle_inhibit = "always" }) diff --git a/default/hypr/apps/telegram.conf b/default/hypr/apps/telegram.conf deleted file mode 100644 index 5a621fdb..00000000 --- a/default/hypr/apps/telegram.conf +++ /dev/null @@ -1,2 +0,0 @@ -# Prevent Telegram from stealing focus on new messages -windowrule = focus_on_activate off, match:class org.telegram.desktop diff --git a/default/hypr/apps/telegram.lua b/default/hypr/apps/telegram.lua new file mode 100644 index 00000000..e1509516 --- /dev/null +++ b/default/hypr/apps/telegram.lua @@ -0,0 +1,2 @@ +-- Prevent Telegram from stealing focus on new messages. +hl.window_rule({ match = { class = "org.telegram.desktop" }, focus_on_activate = false }) diff --git a/default/hypr/apps/terminals.conf b/default/hypr/apps/terminals.conf deleted file mode 100644 index b4940720..00000000 --- a/default/hypr/apps/terminals.conf +++ /dev/null @@ -1,4 +0,0 @@ -# Define terminal tag to style them uniformly -windowrule = tag +terminal, match:class (Alacritty|kitty|com.mitchellh.ghostty|foot) -windowrule = tag -default-opacity, match:tag terminal -windowrule = opacity 0.97 0.9, match:tag terminal diff --git a/default/hypr/apps/terminals.lua b/default/hypr/apps/terminals.lua new file mode 100644 index 00000000..0a1d403e --- /dev/null +++ b/default/hypr/apps/terminals.lua @@ -0,0 +1,4 @@ +-- Define terminal tag to style them uniformly. +hl.window_rule({ match = { class = "(Alacritty|kitty|com.mitchellh.ghostty|foot)" }, tag = "+terminal" }) +hl.window_rule({ match = { tag = "terminal" }, tag = "-default-opacity" }) +hl.window_rule({ match = { tag = "terminal" }, opacity = "0.97 0.9" }) diff --git a/default/hypr/apps/typora.conf b/default/hypr/apps/typora.conf deleted file mode 100644 index 873c82e6..00000000 --- a/default/hypr/apps/typora.conf +++ /dev/null @@ -1,2 +0,0 @@ -# Float Typora print dialog -windowrule = match:class ^Typora$, match:title ^Print$, float on, center on diff --git a/default/hypr/apps/typora.lua b/default/hypr/apps/typora.lua new file mode 100644 index 00000000..a8af36a3 --- /dev/null +++ b/default/hypr/apps/typora.lua @@ -0,0 +1,2 @@ +-- Float Typora print dialog. +hl.window_rule({ match = { class = "^Typora$", title = "^Print$" }, float = true, center = true }) diff --git a/default/hypr/apps/walker.conf b/default/hypr/apps/walker.conf deleted file mode 100644 index 127e3b42..00000000 --- a/default/hypr/apps/walker.conf +++ /dev/null @@ -1,2 +0,0 @@ -# Application-specific animation -layerrule = no_anim on, match:namespace walker diff --git a/default/hypr/apps/walker.lua b/default/hypr/apps/walker.lua new file mode 100644 index 00000000..1d6f167b --- /dev/null +++ b/default/hypr/apps/walker.lua @@ -0,0 +1,2 @@ +-- Application-specific animation. +hl.layer_rule({ match = { namespace = "walker" }, no_anim = true }) diff --git a/default/hypr/apps/webcam-overlay.conf b/default/hypr/apps/webcam-overlay.conf deleted file mode 100644 index 307d6864..00000000 --- a/default/hypr/apps/webcam-overlay.conf +++ /dev/null @@ -1,6 +0,0 @@ -# Webcam overlay for screen recording -windowrule = float on, match:title WebcamOverlay -windowrule = pin on, match:title WebcamOverlay -windowrule = no_initial_focus on, match:title WebcamOverlay -windowrule = no_dim on, match:title WebcamOverlay -windowrule = move (monitor_w-window_w-40) (monitor_h-window_h-40), match:title WebcamOverlay diff --git a/default/hypr/apps/webcam-overlay.lua b/default/hypr/apps/webcam-overlay.lua new file mode 100644 index 00000000..42f7acde --- /dev/null +++ b/default/hypr/apps/webcam-overlay.lua @@ -0,0 +1,6 @@ +-- Webcam overlay for screen recording. +hl.window_rule({ match = { title = "WebcamOverlay" }, float = true }) +hl.window_rule({ match = { title = "WebcamOverlay" }, pin = true }) +hl.window_rule({ match = { title = "WebcamOverlay" }, no_initial_focus = true }) +hl.window_rule({ match = { title = "WebcamOverlay" }, no_dim = true }) +hl.window_rule({ match = { title = "WebcamOverlay" }, move = { "(monitor_w-window_w-40)", "(monitor_h-window_h-40)" } }) diff --git a/default/hypr/autostart.conf b/default/hypr/autostart.conf deleted file mode 100644 index 0a226db1..00000000 --- a/default/hypr/autostart.conf +++ /dev/null @@ -1,16 +0,0 @@ -exec-once = uwsm-app -- hypridle -exec-once = uwsm-app -- mako -exec-once = ! omarchy-toggle-enabled waybar-off && uwsm-app -- waybar -exec-once = uwsm-app -- fcitx5 --disable notificationitem -exec-once = uwsm-app -- swaybg -i ~/.config/omarchy/current/background -m fill -exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 -exec-once = omarchy-first-run -exec-once = omarchy-powerprofiles-init -exec-once = uwsm-app -- omarchy-hyprland-monitor-watch - -# Slow app launch fix -- set systemd vars -exec-once = systemctl --user import-environment $(env | cut -d'=' -f 1) -exec-once = dbus-update-activation-environment --systemd --all - -# Run post-boot hooks after startup config has loaded -exec-once = sleep 2 && omarchy-hook post-boot diff --git a/default/hypr/autostart.lua b/default/hypr/autostart.lua new file mode 100644 index 00000000..7eed5fbb --- /dev/null +++ b/default/hypr/autostart.lua @@ -0,0 +1,18 @@ +hl.on("hyprland.start", function() + hl.exec_cmd("uwsm-app -- hypridle") + hl.exec_cmd("uwsm-app -- mako") + hl.exec_cmd("! omarchy-toggle-enabled waybar-off && uwsm-app -- waybar") + hl.exec_cmd("uwsm-app -- fcitx5 --disable notificationitem") + hl.exec_cmd("uwsm-app -- swaybg -i ~/.config/omarchy/current/background -m fill") + hl.exec_cmd("/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1") + hl.exec_cmd("omarchy-first-run") + hl.exec_cmd("omarchy-powerprofiles-init") + hl.exec_cmd("uwsm-app -- omarchy-hyprland-monitor-watch") + + -- Slow app launch fix -- set systemd vars. + hl.exec_cmd("systemctl --user import-environment $(env | cut -d'=' -f 1)") + hl.exec_cmd("dbus-update-activation-environment --systemd --all") + + -- Run post-boot hooks after startup config has loaded. + hl.exec_cmd("sleep 2 && omarchy-hook post-boot") +end) diff --git a/default/hypr/bindings.conf b/default/hypr/bindings.conf deleted file mode 100644 index 4daf95a0..00000000 --- a/default/hypr/bindings.conf +++ /dev/null @@ -1,16 +0,0 @@ -# Deprecated bindings file. New installations include everything directly. - -bindd = SUPER, RETURN, Terminal, exec, $terminal -bindd = SUPER, F, File manager, exec, $fileManager -bindd = SUPER, B, Web browser, exec, $browser -bindd = SUPER, M, Music player, exec, $music -bindd = SUPER, N, Neovim, exec, $terminal -e nvim -bindd = SUPER, T, Top, exec, $terminal -e btop -bindd = SUPER, D, Lazy Docker, exec, $terminal -e lazydocker -bindd = SUPER, G, Messenger, exec, $messenger -bindd = SUPER, O, Obsidian, exec, obsidian -bindd = SUPER, SLASH, Password manager, exec, $passwordManager - -source = ~/.local/share/omarchy/default/hypr/bindings/media.conf -source = ~/.local/share/omarchy/default/hypr/bindings/tiling.conf -source = ~/.local/share/omarchy/default/hypr/bindings/utilities.conf diff --git a/default/hypr/bindings.lua b/default/hypr/bindings.lua new file mode 100644 index 00000000..405d8449 --- /dev/null +++ b/default/hypr/bindings.lua @@ -0,0 +1,4 @@ +local paths = require("default.hypr.paths") +local require_all = require("default.hypr.require_all") + +require_all.files(paths.omarchy_path .. "/default/hypr/bindings", "default.hypr.bindings") diff --git a/default/hypr/bindings/clipboard.conf b/default/hypr/bindings/clipboard.conf deleted file mode 100644 index ffaede7a..00000000 --- a/default/hypr/bindings/clipboard.conf +++ /dev/null @@ -1,5 +0,0 @@ -# Copy / Paste -bindd = SUPER, C, Universal copy, sendshortcut, CTRL, Insert, -bindd = SUPER, V, Universal paste, sendshortcut, SHIFT, Insert, -bindd = SUPER, X, Universal cut, sendshortcut, CTRL, X, -bindd = SUPER CTRL, V, Clipboard manager, exec, omarchy-launch-walker -m clipboard diff --git a/default/hypr/bindings/clipboard.lua b/default/hypr/bindings/clipboard.lua new file mode 100644 index 00000000..7a874145 --- /dev/null +++ b/default/hypr/bindings/clipboard.lua @@ -0,0 +1,4 @@ +hl.bind("SUPER + C", hl.dsp.send_shortcut({ mods = "CTRL", key = "Insert" }), { description = "Universal copy" }) +hl.bind("SUPER + V", hl.dsp.send_shortcut({ mods = "SHIFT", key = "Insert" }), { description = "Universal paste" }) +hl.bind("SUPER + X", hl.dsp.send_shortcut({ mods = "CTRL", key = "X" }), { description = "Universal cut" }) +hl.bind("SUPER + CTRL + V", hl.dsp.exec_cmd("omarchy-launch-walker -m clipboard"), { description = "Clipboard manager" }) diff --git a/default/hypr/bindings/media.conf b/default/hypr/bindings/media.conf deleted file mode 100644 index d18f5aa5..00000000 --- a/default/hypr/bindings/media.conf +++ /dev/null @@ -1,30 +0,0 @@ -# Laptop multimedia keys for volume and LCD brightness (with OSD) -bindeld = ,XF86AudioRaiseVolume, Volume up, exec, omarchy-swayosd-client --output-volume raise -bindeld = ,XF86AudioLowerVolume, Volume down, exec, omarchy-swayosd-client --output-volume lower -bindeld = ,XF86AudioMute, Mute, exec, omarchy-swayosd-client --output-volume mute-toggle -bindeld = ,XF86AudioMicMute, Mute microphone, exec, omarchy-audio-input-mute -bindeld = ,XF86MonBrightnessUp, Brightness up, exec, omarchy-brightness-display +5% -bindeld = ,XF86MonBrightnessDown, Brightness down, exec, omarchy-brightness-display 5%- -bindeld = SHIFT, XF86MonBrightnessUp, Brightness maximum, exec, omarchy-brightness-display 100% -bindeld = SHIFT, XF86MonBrightnessDown, Brightness minimum, exec, omarchy-brightness-display 1% -bindeld = ,XF86KbdBrightnessUp, Keyboard brightness up, exec, omarchy-brightness-keyboard up -bindeld = ,XF86KbdBrightnessDown, Keyboard brightness down, exec, omarchy-brightness-keyboard down -bindld = ,XF86KbdLightOnOff, Keyboard backlight cycle, exec, omarchy-brightness-keyboard cycle -bindld = ,XF86TouchpadToggle, Toggle touchpad, exec, omarchy-toggle-touchpad -bindld = ,XF86TouchpadOn, Enable touchpad, exec, omarchy-toggle-touchpad on -bindld = ,XF86TouchpadOff, Disable touchpad, exec, omarchy-toggle-touchpad off - -# Precise 1% multimedia adjustments with Alt modifier -bindeld = ALT, XF86AudioRaiseVolume, Volume up precise, exec, omarchy-swayosd-client --output-volume +1 -bindeld = ALT, XF86AudioLowerVolume, Volume down precise, exec, omarchy-swayosd-client --output-volume -1 -bindeld = ALT, XF86MonBrightnessUp, Brightness up precise, exec, omarchy-brightness-display +1% -bindeld = ALT, XF86MonBrightnessDown, Brightness down precise, exec, omarchy-brightness-display 1%- - -# Requires playerctl -bindld = , XF86AudioNext, Next track, exec, omarchy-swayosd-client --playerctl next -bindld = , XF86AudioPause, Pause, exec, omarchy-swayosd-client --playerctl play-pause -bindld = , XF86AudioPlay, Play, exec, omarchy-swayosd-client --playerctl play-pause -bindld = , XF86AudioPrev, Previous track, exec, omarchy-swayosd-client --playerctl previous - -# Switch audio output with Super + Mute -bindld = SUPER, XF86AudioMute, Switch audio output, exec, omarchy-audio-output-switch diff --git a/default/hypr/bindings/media.lua b/default/hypr/bindings/media.lua new file mode 100644 index 00000000..9b6a54be --- /dev/null +++ b/default/hypr/bindings/media.lua @@ -0,0 +1,29 @@ +-- Volume, brightness, keyboard backlight, and touchpad controls. +hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("omarchy-swayosd-client --output-volume raise"), { locked = true, repeating = true, description = "Volume up" }) +hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("omarchy-swayosd-client --output-volume lower"), { locked = true, repeating = true, description = "Volume down" }) +hl.bind("XF86AudioMute", hl.dsp.exec_cmd("omarchy-swayosd-client --output-volume mute-toggle"), { locked = true, repeating = true, description = "Mute" }) +hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("omarchy-audio-input-mute"), { locked = true, repeating = true, description = "Mute microphone" }) +hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("omarchy-brightness-display +5%"), { locked = true, repeating = true, description = "Brightness up" }) +hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd("omarchy-brightness-display 5%-"), { locked = true, repeating = true, description = "Brightness down" }) +hl.bind("SHIFT + XF86MonBrightnessUp", hl.dsp.exec_cmd("omarchy-brightness-display 100%"), { locked = true, repeating = true, description = "Brightness maximum" }) +hl.bind("SHIFT + XF86MonBrightnessDown", hl.dsp.exec_cmd("omarchy-brightness-display 1%"), { locked = true, repeating = true, description = "Brightness minimum" }) +hl.bind("XF86KbdBrightnessUp", hl.dsp.exec_cmd("omarchy-brightness-keyboard up"), { locked = true, repeating = true, description = "Keyboard brightness up" }) +hl.bind("XF86KbdBrightnessDown", hl.dsp.exec_cmd("omarchy-brightness-keyboard down"), { locked = true, repeating = true, description = "Keyboard brightness down" }) +hl.bind("XF86KbdLightOnOff", hl.dsp.exec_cmd("omarchy-brightness-keyboard cycle"), { locked = true, description = "Keyboard backlight cycle" }) +hl.bind("XF86TouchpadToggle", hl.dsp.exec_cmd("omarchy-toggle-touchpad"), { locked = true, description = "Toggle touchpad" }) +hl.bind("XF86TouchpadOn", hl.dsp.exec_cmd("omarchy-toggle-touchpad on"), { locked = true, description = "Enable touchpad" }) +hl.bind("XF86TouchpadOff", hl.dsp.exec_cmd("omarchy-toggle-touchpad off"), { locked = true, description = "Disable touchpad" }) + +-- Precise volume and brightness controls. +hl.bind("ALT + XF86AudioRaiseVolume", hl.dsp.exec_cmd("omarchy-swayosd-client --output-volume +1"), { locked = true, repeating = true, description = "Volume up precise" }) +hl.bind("ALT + XF86AudioLowerVolume", hl.dsp.exec_cmd("omarchy-swayosd-client --output-volume -1"), { locked = true, repeating = true, description = "Volume down precise" }) +hl.bind("ALT + XF86MonBrightnessUp", hl.dsp.exec_cmd("omarchy-brightness-display +1%"), { locked = true, repeating = true, description = "Brightness up precise" }) +hl.bind("ALT + XF86MonBrightnessDown", hl.dsp.exec_cmd("omarchy-brightness-display 1%-"), { locked = true, repeating = true, description = "Brightness down precise" }) + +-- Media controls. +hl.bind("XF86AudioNext", hl.dsp.exec_cmd("omarchy-swayosd-client --playerctl next"), { locked = true, description = "Next track" }) +hl.bind("XF86AudioPause", hl.dsp.exec_cmd("omarchy-swayosd-client --playerctl play-pause"), { locked = true, description = "Pause" }) +hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("omarchy-swayosd-client --playerctl play-pause"), { locked = true, description = "Play" }) +hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("omarchy-swayosd-client --playerctl previous"), { locked = true, description = "Previous track" }) + +hl.bind("SUPER + XF86AudioMute", hl.dsp.exec_cmd("omarchy-audio-output-switch"), { locked = true, description = "Switch audio output" }) diff --git a/default/hypr/bindings/tiling-v2.conf b/default/hypr/bindings/tiling-v2.conf deleted file mode 100644 index 5ddf7572..00000000 --- a/default/hypr/bindings/tiling-v2.conf +++ /dev/null @@ -1,143 +0,0 @@ -# Close windows -bindd = SUPER, W, Close window, killactive, -bindd = CTRL ALT, DELETE, Close all windows, exec, omarchy-hyprland-window-close-all - -# Control tiling -bindd = SUPER, J, Toggle window split, layoutmsg, togglesplit -bindd = SUPER, P, Pseudo window, pseudo, # dwindle -bindd = SUPER, T, Toggle window floating/tiling, togglefloating, -bindd = SUPER, F, Full screen, fullscreen, 0 -bindd = SUPER CTRL, F, Tiled full screen, fullscreenstate, 0 2 -bindd = SUPER ALT, F, Full width, fullscreen, 1 -bindd = SUPER, O, Pop window out (float & pin), exec, omarchy-hyprland-window-pop -bindd = SUPER, L, Toggle workspace layout, exec, omarchy-hyprland-workspace-layout-toggle - -# Move focus with SUPER + arrow keys -bindd = SUPER, LEFT, Focus on left window, movefocus, l -bindd = SUPER, RIGHT, Focus on right window, movefocus, r -bindd = SUPER, UP, Focus on above window, movefocus, u -bindd = SUPER, DOWN, Focus on below window, movefocus, d - -# Switch workspaces with SUPER + [1-9; 0] -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 -bindd = SUPER, code:19, Switch to workspace 10, workspace, 10 - -# Move active window to a workspace with SUPER + SHIFT + [1-9; 0] -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 -bindd = SUPER SHIFT, code:19, Move window to workspace 10, movetoworkspace, 10 - -# Move active window silently to a workspace with SUPER + SHIFT + ALT + [1-9; 0] -bindd = SUPER SHIFT ALT, code:10, Move window silently to workspace 1, movetoworkspacesilent, 1 -bindd = SUPER SHIFT ALT, code:11, Move window silently to workspace 2, movetoworkspacesilent, 2 -bindd = SUPER SHIFT ALT, code:12, Move window silently to workspace 3, movetoworkspacesilent, 3 -bindd = SUPER SHIFT ALT, code:13, Move window silently to workspace 4, movetoworkspacesilent, 4 -bindd = SUPER SHIFT ALT, code:14, Move window silently to workspace 5, movetoworkspacesilent, 5 -bindd = SUPER SHIFT ALT, code:15, Move window silently to workspace 6, movetoworkspacesilent, 6 -bindd = SUPER SHIFT ALT, code:16, Move window silently to workspace 7, movetoworkspacesilent, 7 -bindd = SUPER SHIFT ALT, code:17, Move window silently to workspace 8, movetoworkspacesilent, 8 -bindd = SUPER SHIFT ALT, code:18, Move window silently to workspace 9, movetoworkspacesilent, 9 -bindd = SUPER SHIFT ALT, code:19, Move window silently to workspace 10, movetoworkspacesilent, 10 - -# Control scratchpad -bindd = SUPER, S, Toggle scratchpad, togglespecialworkspace, scratchpad -bindd = SUPER ALT, S, Move window to scratchpad, movetoworkspacesilent, special:scratchpad - -# 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 - -# Move workspaces to other monitors -bindd = SUPER SHIFT ALT, LEFT, Move workspace to left monitor, movecurrentworkspacetomonitor, l -bindd = SUPER SHIFT ALT, RIGHT, Move workspace to right monitor, movecurrentworkspacetomonitor, r -bindd = SUPER SHIFT ALT, UP, Move workspace to up monitor, movecurrentworkspacetomonitor, u -bindd = SUPER SHIFT ALT, DOWN, Move workspace to down monitor, movecurrentworkspacetomonitor, d - -# 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, Focus on next window, cyclenext -bindd = ALT SHIFT, TAB, Focus on previous window, cyclenext, prev -bindd = ALT, TAB, Reveal active window on top, bringactivetotop -bindd = ALT SHIFT, TAB, Reveal active window on top, bringactivetotop - -# Cycle through monitors -bindd = CTRL ALT, TAB, Focus on next monitor, focusmonitor, +1 -bindd = CTRL ALT SHIFT, TAB, Focus on previous monitor, focusmonitor, -1 - -# Resize active window -bindd = SUPER, code:20, Expand window left, resizeactive, -100 0 # - key -bindd = SUPER, code:21, Shrink window left, resizeactive, 100 0 # = key -bindd = SUPER SHIFT, code:20, Shrink window up, resizeactive, 0 -100 -bindd = SUPER SHIFT, code:21, Expand window down, resizeactive, 0 100 - -bindd = SUPER ALT, code:20, Expand window left a little, resizeactive, -25 0 -bindd = SUPER ALT, code:21, Shrink window left a little, resizeactive, 25 0 -bindd = SUPER SHIFT ALT, code:20, Shrink window up a little, resizeactive, 0 -25 -bindd = SUPER SHIFT ALT, code:21, Expand window down a little, resizeactive, 0 25 - -bindd = SUPER CTRL, code:20, Expand window left a lot, resizeactive, -300 0 -bindd = SUPER CTRL, code:21, Shrink window left a lot, resizeactive, 300 0 -bindd = SUPER CTRL SHIFT, code:20, Shrink window up a lot, resizeactive, 0 -300 -bindd = SUPER CTRL SHIFT, code:21, Expand window down a lot, resizeactive, 0 300 - -# 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 - -# Toggle groups -bindd = SUPER, G, Toggle window grouping, togglegroup -bindd = SUPER ALT, G, Move active window out of group, moveoutofgroup - -# Join groups -bindd = SUPER ALT, LEFT, Move window to group on left, moveintogroup, l -bindd = SUPER ALT, RIGHT, Move window to group on right, moveintogroup, r -bindd = SUPER ALT, UP, Move window to group on top, moveintogroup, u -bindd = SUPER ALT, DOWN, Move window to group on bottom, moveintogroup, d - -# Navigate a single set of grouped windows -bindd = SUPER ALT, TAB, Next window in group, changegroupactive, f -bindd = SUPER ALT SHIFT, TAB, Previous window in group, changegroupactive, b - -# Window navigation for grouped windows -bindd = SUPER CTRL, LEFT, Move grouped window focus left, changegroupactive, b -bindd = SUPER CTRL, RIGHT, Move grouped window focus right, changegroupactive, f - -# Scroll through a set of grouped windows with SUPER + ALT + scroll -bindd = SUPER ALT, mouse_down, Next window in group, changegroupactive, f -bindd = SUPER ALT, mouse_up, Previous window in group, changegroupactive, b - -# Activate window in a group by number -bindd = SUPER ALT, code:10, Switch to group window 1, changegroupactive, 1 -bindd = SUPER ALT, code:11, Switch to group window 2, changegroupactive, 2 -bindd = SUPER ALT, code:12, Switch to group window 3, changegroupactive, 3 -bindd = SUPER ALT, code:13, Switch to group window 4, changegroupactive, 4 -bindd = SUPER ALT, code:14, Switch to group window 5, changegroupactive, 5 - -# Cycle monitor scaling with SUPER + / -bindd = SUPER, code:61, Cycle monitor scaling, exec, omarchy-hyprland-monitor-scaling-cycle -bindd = SUPER ALT, code:61, Cycle monitor scaling backwards, exec, omarchy-hyprland-monitor-scaling-cycle --reverse diff --git a/default/hypr/bindings/tiling-v2.lua b/default/hypr/bindings/tiling-v2.lua new file mode 100644 index 00000000..8a12b78b --- /dev/null +++ b/default/hypr/bindings/tiling-v2.lua @@ -0,0 +1,93 @@ +hl.bind("SUPER + W", hl.dsp.window.close(), { description = "Close window" }) +hl.bind("CTRL + ALT + DELETE", hl.dsp.exec_cmd("omarchy-hyprland-window-close-all"), { description = "Close all windows" }) + +hl.bind("SUPER + J", hl.dsp.layout("togglesplit"), { description = "Toggle window split" }) +hl.bind("SUPER + P", hl.dsp.window.pseudo(), { description = "Pseudo window" }) +hl.bind("SUPER + T", hl.dsp.window.float({ action = "toggle" }), { description = "Toggle window floating/tiling" }) +hl.bind("SUPER + F", hl.dsp.window.fullscreen({ mode = "fullscreen" }), { description = "Full screen" }) +hl.bind("SUPER + CTRL + F", hl.dsp.window.fullscreen_state({ internal = 0, client = 2 }), { description = "Tiled full screen" }) +hl.bind("SUPER + ALT + F", hl.dsp.window.fullscreen({ mode = "maximized" }), { description = "Full width" }) +hl.bind("SUPER + O", hl.dsp.exec_cmd("omarchy-hyprland-window-pop"), { description = "Pop window out (float & pin)" }) +hl.bind("SUPER + L", hl.dsp.exec_cmd("omarchy-hyprland-workspace-layout-toggle"), { description = "Toggle workspace layout" }) + +hl.bind("SUPER + LEFT", hl.dsp.focus({ direction = "l" }), { description = "Focus on left window" }) +hl.bind("SUPER + RIGHT", hl.dsp.focus({ direction = "r" }), { description = "Focus on right window" }) +hl.bind("SUPER + UP", hl.dsp.focus({ direction = "u" }), { description = "Focus on above window" }) +hl.bind("SUPER + DOWN", hl.dsp.focus({ direction = "d" }), { description = "Focus on below window" }) + +for workspace = 1, 10 do + local key = "code:" .. tostring(workspace + 9) + hl.bind("SUPER + " .. key, hl.dsp.focus({ workspace = tostring(workspace) }), { description = "Switch to workspace " .. workspace }) + hl.bind("SUPER + SHIFT + " .. key, hl.dsp.window.move({ workspace = tostring(workspace) }), { description = "Move window to workspace " .. workspace }) + hl.bind("SUPER + SHIFT + ALT + " .. key, hl.dsp.window.move({ workspace = tostring(workspace), follow = false }), { description = "Move window silently to workspace " .. workspace }) +end + +hl.bind("SUPER + S", hl.dsp.workspace.toggle_special("scratchpad"), { description = "Toggle scratchpad" }) +hl.bind("SUPER + ALT + S", hl.dsp.window.move({ workspace = "special:scratchpad", follow = false }), { description = "Move window to scratchpad" }) + +hl.bind("SUPER + TAB", hl.dsp.focus({ workspace = "e+1" }), { description = "Next workspace" }) +hl.bind("SUPER + SHIFT + TAB", hl.dsp.focus({ workspace = "e-1" }), { description = "Previous workspace" }) +hl.bind("SUPER + CTRL + TAB", hl.dsp.focus({ workspace = "previous" }), { description = "Former workspace" }) + +hl.bind("SUPER + SHIFT + ALT + LEFT", hl.dsp.workspace.move({ monitor = "l" }), { description = "Move workspace to left monitor" }) +hl.bind("SUPER + SHIFT + ALT + RIGHT", hl.dsp.workspace.move({ monitor = "r" }), { description = "Move workspace to right monitor" }) +hl.bind("SUPER + SHIFT + ALT + UP", hl.dsp.workspace.move({ monitor = "u" }), { description = "Move workspace to up monitor" }) +hl.bind("SUPER + SHIFT + ALT + DOWN", hl.dsp.workspace.move({ monitor = "d" }), { description = "Move workspace to down monitor" }) + +hl.bind("SUPER + SHIFT + LEFT", hl.dsp.window.swap({ direction = "l" }), { description = "Swap window to the left" }) +hl.bind("SUPER + SHIFT + RIGHT", hl.dsp.window.swap({ direction = "r" }), { description = "Swap window to the right" }) +hl.bind("SUPER + SHIFT + UP", hl.dsp.window.swap({ direction = "u" }), { description = "Swap window up" }) +hl.bind("SUPER + SHIFT + DOWN", hl.dsp.window.swap({ direction = "d" }), { description = "Swap window down" }) + +hl.bind("ALT + TAB", hl.dsp.window.cycle_next(), { description = "Focus on next window" }) +hl.bind("ALT + SHIFT + TAB", hl.dsp.window.cycle_next({ next = false }), { description = "Focus on previous window" }) +hl.bind("ALT + TAB", hl.dsp.window.bring_to_top(), { description = "Reveal active window on top" }) +hl.bind("ALT + SHIFT + TAB", hl.dsp.window.bring_to_top(), { description = "Reveal active window on top" }) + +hl.bind("CTRL + ALT + TAB", hl.dsp.focus({ monitor = "+1" }), { description = "Focus on next monitor" }) +hl.bind("CTRL + ALT + SHIFT + TAB", hl.dsp.focus({ monitor = "-1" }), { description = "Focus on previous monitor" }) + +hl.bind("SUPER + code:20", hl.dsp.window.resize({ x = -100, y = 0, relative = true }), { description = "Expand window left" }) +hl.bind("SUPER + code:21", hl.dsp.window.resize({ x = 100, y = 0, relative = true }), { description = "Shrink window left" }) +hl.bind("SUPER + SHIFT + code:20", hl.dsp.window.resize({ x = 0, y = -100, relative = true }), { description = "Shrink window up" }) +hl.bind("SUPER + SHIFT + code:21", hl.dsp.window.resize({ x = 0, y = 100, relative = true }), { description = "Expand window down" }) + +hl.bind("SUPER + ALT + code:20", hl.dsp.window.resize({ x = -25, y = 0, relative = true }), { description = "Expand window left a little" }) +hl.bind("SUPER + ALT + code:21", hl.dsp.window.resize({ x = 25, y = 0, relative = true }), { description = "Shrink window left a little" }) +hl.bind("SUPER + SHIFT + ALT + code:20", hl.dsp.window.resize({ x = 0, y = -25, relative = true }), { description = "Shrink window up a little" }) +hl.bind("SUPER + SHIFT + ALT + code:21", hl.dsp.window.resize({ x = 0, y = 25, relative = true }), { description = "Expand window down a little" }) + +hl.bind("SUPER + CTRL + code:20", hl.dsp.window.resize({ x = -300, y = 0, relative = true }), { description = "Expand window left a lot" }) +hl.bind("SUPER + CTRL + code:21", hl.dsp.window.resize({ x = 300, y = 0, relative = true }), { description = "Shrink window left a lot" }) +hl.bind("SUPER + CTRL + SHIFT + code:20", hl.dsp.window.resize({ x = 0, y = -300, relative = true }), { description = "Shrink window up a lot" }) +hl.bind("SUPER + CTRL + SHIFT + code:21", hl.dsp.window.resize({ x = 0, y = 300, relative = true }), { description = "Expand window down a lot" }) + +hl.bind("SUPER + mouse_down", hl.dsp.focus({ workspace = "e+1" }), { description = "Scroll active workspace forward" }) +hl.bind("SUPER + mouse_up", hl.dsp.focus({ workspace = "e-1" }), { description = "Scroll active workspace backward" }) + +hl.bind("SUPER + mouse:272", hl.dsp.window.drag(), { mouse = true, description = "Move window" }) +hl.bind("SUPER + mouse:273", hl.dsp.window.resize(), { mouse = true, description = "Resize window" }) + +hl.bind("SUPER + G", hl.dsp.group.toggle(), { description = "Toggle window grouping" }) +hl.bind("SUPER + ALT + G", hl.dsp.window.move({ out_of_group = true }), { description = "Move active window out of group" }) + +hl.bind("SUPER + ALT + LEFT", hl.dsp.window.move({ into_group = "l" }), { description = "Move window to group on left" }) +hl.bind("SUPER + ALT + RIGHT", hl.dsp.window.move({ into_group = "r" }), { description = "Move window to group on right" }) +hl.bind("SUPER + ALT + UP", hl.dsp.window.move({ into_group = "u" }), { description = "Move window to group on top" }) +hl.bind("SUPER + ALT + DOWN", hl.dsp.window.move({ into_group = "d" }), { description = "Move window to group on bottom" }) + +hl.bind("SUPER + ALT + TAB", hl.dsp.group.next(), { description = "Next window in group" }) +hl.bind("SUPER + ALT + SHIFT + TAB", hl.dsp.group.prev(), { description = "Previous window in group" }) + +hl.bind("SUPER + CTRL + LEFT", hl.dsp.group.prev(), { description = "Move grouped window focus left" }) +hl.bind("SUPER + CTRL + RIGHT", hl.dsp.group.next(), { description = "Move grouped window focus right" }) + +hl.bind("SUPER + ALT + mouse_down", hl.dsp.group.next(), { description = "Next window in group" }) +hl.bind("SUPER + ALT + mouse_up", hl.dsp.group.prev(), { description = "Previous window in group" }) + +for index = 1, 5 do + hl.bind("SUPER + ALT + code:" .. tostring(index + 9), hl.dsp.group.active({ index = index }), { description = "Switch to group window " .. index }) +end + +hl.bind("SUPER + code:61", hl.dsp.exec_cmd("omarchy-hyprland-monitor-scaling-cycle"), { description = "Cycle monitor scaling" }) +hl.bind("SUPER + ALT + code:61", hl.dsp.exec_cmd("omarchy-hyprland-monitor-scaling-cycle --reverse"), { description = "Cycle monitor scaling backwards" }) diff --git a/default/hypr/bindings/tiling.conf b/default/hypr/bindings/tiling.conf deleted file mode 100644 index b1dc65cc..00000000 --- a/default/hypr/bindings/tiling.conf +++ /dev/null @@ -1,74 +0,0 @@ -# This is now a deprecated file meant for those who did not wish to learn the latest Omarchy hotkeys. -# Do not make changes here, but bring them to tiling-v2.conf instead. - -# Close windows -bindd = SUPER, W, Close window, killactive, -bindd = CTRL ALT, DELETE, Close all windows, exec, omarchy-hyprland-window-close-all - -# Control tiling -bindd = SUPER, J, Toggle window split, togglesplit, # dwindle -bindd = SUPER, P, Pseudo window, pseudo, # dwindle -bindd = SUPER SHIFT, V, Toggle window floating/tiling, togglefloating, -bindd = SHIFT, F11, Force full screen, fullscreen, 0 -bindd = ALT, F11, 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 -bindd = SUPER, code:19, Switch to workspace 10, workspace, 10 - -# 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 -bindd = SUPER SHIFT, code:19, Move window to workspace 10, movetoworkspace, 10 - -# 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, code:20, Expand window left, resizeactive, -100 0 # - key -bindd = SUPER, code:21, Shrink window left, resizeactive, 100 0 # = key -bindd = SUPER SHIFT, code:20, Shrink window up, resizeactive, 0 -100 -bindd = SUPER SHIFT, code:21, Expand window down, 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 diff --git a/default/hypr/bindings/utilities.conf b/default/hypr/bindings/utilities.conf deleted file mode 100644 index dffc2dbe..00000000 --- a/default/hypr/bindings/utilities.conf +++ /dev/null @@ -1,80 +0,0 @@ -# Menus -bindd = SUPER, SPACE, Launch apps, exec, omarchy-launch-walker -bindd = SUPER CTRL, E, Emoji picker, exec, omarchy-launch-walker -m symbols -bindd = SUPER CTRL, C, Capture menu, exec, omarchy-menu capture -bindd = SUPER CTRL, O, Toggle menu, exec, omarchy-menu toggle -bindd = SUPER CTRL, H, Hardware menu, exec, omarchy-menu hardware -bindd = SUPER ALT, SPACE, Omarchy menu, exec, omarchy-menu -bindd = SUPER SHIFT, code:201, Omarchy menu, exec, omarchy-menu -bindd = SUPER, ESCAPE, System 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 SHIFT CTRL, UP, Move Waybar to top, exec, omarchy-style-waybar-position top -bindd = SUPER SHIFT CTRL, DOWN, Move Waybar to bottom, exec, omarchy-style-waybar-position bottom -bindd = SUPER SHIFT CTRL, LEFT, Move Waybar to left, exec, omarchy-style-waybar-position left -bindd = SUPER SHIFT CTRL, RIGHT, Move Waybar to right, exec, omarchy-style-waybar-position right -bindd = SUPER CTRL, SPACE, Theme background menu, exec, omarchy-menu background -bindd = SUPER SHIFT CTRL, SPACE, Theme menu, exec, omarchy-menu theme -bindd = SUPER, BACKSPACE, Toggle window transparency, exec, omarchy-hyprland-window-transparency-toggle -bindd = SUPER SHIFT, BACKSPACE, Toggle window gaps, exec, omarchy-hyprland-window-gaps-toggle -bindd = SUPER CTRL, BACKSPACE, Toggle single-window square aspect, exec, omarchy-hyprland-window-single-square-aspect-toggle - -# Notifications -bindd = SUPER, COMMA, Dismiss last notification, exec, makoctl dismiss -bindd = SUPER SHIFT, COMMA, Dismiss all notifications, exec, makoctl dismiss --all -bindd = SUPER CTRL, COMMA, Toggle silencing notifications, exec, omarchy-toggle-notification-silencing -bindd = SUPER ALT, COMMA, Invoke last notification, exec, makoctl invoke -bindd = SUPER SHIFT ALT, COMMA, Restore last notification, exec, makoctl restore - -# Toggles -bindd = SUPER CTRL, I, Toggle locking on idle, exec, omarchy-toggle-idle -bindd = SUPER CTRL, N, Toggle nightlight, exec, omarchy-toggle-nightlight -bindd = SUPER CTRL, Delete, Toggle laptop display, exec, omarchy-hyprland-monitor-internal toggle -bindd = SUPER CTRL ALT, Delete, Toggle laptop display mirroring, exec, omarchy-hyprland-monitor-internal-mirror toggle -bindl = , switch:on:Lid Switch, exec, omarchy-hw-external-monitors && omarchy-hyprland-monitor-internal off -bindl = , switch:off:Lid Switch, exec, omarchy-hyprland-monitor-internal on - -# Captures -bindd = , PRINT, Screenshot, exec, omarchy-capture-screenshot -bindd = ALT, PRINT, Screenrecording, exec, omarchy-menu screenrecord -bindd = SUPER, PRINT, Color picker, exec, pkill hyprpicker || hyprpicker -a -bindd = SUPER CTRL, PRINT, Extract text (OCR) from screenshot, exec, omarchy-capture-text-extraction - -# File sharing -bindd = SUPER CTRL, S, Share, exec, omarchy-menu share - -# Transcoding -bindd = SUPER CTRL, PERIOD, Transcode, exec, omarchy-transcode - -# Reminders -bindd = SUPER CTRL, R, Set reminder, exec, omarchy-menu reminder-set -bindd = SUPER CTRL ALT, R, Show reminders, exec, omarchy-reminder show -bindd = SUPER SHIFT CTRL, R, Clear reminders, exec, omarchy-reminder clear - -# Waybar-less information -bindd = SUPER CTRL ALT, T, Show time, exec, notify-send -u low " $(date +"%A %H:%M · %d %B %Y · Week %V")" -bindd = SUPER CTRL ALT, B, Show battery remaining, exec, notify-send -u low "$(omarchy-battery-status)" -bindd = SUPER CTRL ALT, W, Show weather, exec, notify-send -u low "$(omarchy-weather-status)" - -# Control panels -bindd = SUPER CTRL, A, Audio controls, exec, omarchy-launch-audio -bindd = SUPER CTRL, B, Bluetooth controls, exec, omarchy-launch-bluetooth -bindd = SUPER CTRL, W, Wifi controls, exec, omarchy-launch-wifi -bindd = SUPER CTRL, T, Activity, exec, omarchy-launch-tui btop - -# Dictation -bindd = SUPER CTRL, X, Toggle dictation, exec, voxtype record toggle - -bindd = , F9, Start dictation (push-to-talk), exec, voxtype record start -binddr = , F9, Stop dictation (push-to-talk), exec, voxtype record stop - -# Zoom -bindd = SUPER CTRL, Z, Zoom in, exec, hyprctl keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '.float + 1') -bindd = SUPER CTRL ALT, Z, Reset zoom, exec, hyprctl keyword cursor:zoom_factor 1 - -# Lock system -bindd = SUPER CTRL, L, Lock system, exec, omarchy-system-lock diff --git a/default/hypr/bindings/utilities.lua b/default/hypr/bindings/utilities.lua new file mode 100644 index 00000000..dc9f0824 --- /dev/null +++ b/default/hypr/bindings/utilities.lua @@ -0,0 +1,72 @@ +hl.bind("SUPER + SPACE", hl.dsp.exec_cmd("omarchy-launch-walker"), { description = "Launch apps" }) +hl.bind("SUPER + CTRL + E", hl.dsp.exec_cmd("omarchy-launch-walker -m symbols"), { description = "Emoji picker" }) +hl.bind("SUPER + CTRL + C", hl.dsp.exec_cmd("omarchy-menu capture"), { description = "Capture menu" }) +hl.bind("SUPER + CTRL + O", hl.dsp.exec_cmd("omarchy-menu toggle"), { description = "Toggle menu" }) +hl.bind("SUPER + CTRL + H", hl.dsp.exec_cmd("omarchy-menu hardware"), { description = "Hardware menu" }) +hl.bind("SUPER + ALT + SPACE", hl.dsp.exec_cmd("omarchy-menu"), { description = "Omarchy menu" }) +hl.bind("SUPER + SHIFT + code:201", hl.dsp.exec_cmd("omarchy-menu"), { description = "Omarchy menu" }) +hl.bind("SUPER + ESCAPE", hl.dsp.exec_cmd("omarchy-menu system"), { description = "System menu" }) +hl.bind("XF86PowerOff", hl.dsp.exec_cmd("omarchy-menu system"), { locked = true, description = "Power menu" }) +hl.bind("SUPER + K", hl.dsp.exec_cmd("omarchy-menu-keybindings"), { description = "Show key bindings" }) +hl.bind("XF86Calculator", hl.dsp.exec_cmd("gnome-calculator"), { description = "Calculator" }) + +hl.bind("SUPER + SHIFT + SPACE", hl.dsp.exec_cmd("omarchy-toggle-waybar"), { description = "Toggle top bar" }) +hl.bind("SUPER + SHIFT + CTRL + UP", hl.dsp.exec_cmd("omarchy-style-waybar-position top"), { description = "Move Waybar to top" }) +hl.bind("SUPER + SHIFT + CTRL + DOWN", hl.dsp.exec_cmd("omarchy-style-waybar-position bottom"), { description = "Move Waybar to bottom" }) +hl.bind("SUPER + SHIFT + CTRL + LEFT", hl.dsp.exec_cmd("omarchy-style-waybar-position left"), { description = "Move Waybar to left" }) +hl.bind("SUPER + SHIFT + CTRL + RIGHT", hl.dsp.exec_cmd("omarchy-style-waybar-position right"), { description = "Move Waybar to right" }) +hl.bind("SUPER + CTRL + SPACE", hl.dsp.exec_cmd("omarchy-menu background"), { description = "Theme background menu" }) +hl.bind("SUPER + SHIFT + CTRL + SPACE", hl.dsp.exec_cmd("omarchy-menu theme"), { description = "Theme menu" }) +hl.bind("SUPER + BACKSPACE", hl.dsp.exec_cmd("omarchy-hyprland-window-transparency-toggle"), { description = "Toggle window transparency" }) +hl.bind("SUPER + SHIFT + BACKSPACE", hl.dsp.exec_cmd("omarchy-hyprland-window-gaps-toggle"), { description = "Toggle window gaps" }) +hl.bind("SUPER + CTRL + BACKSPACE", hl.dsp.exec_cmd("omarchy-hyprland-window-single-square-aspect-toggle"), { description = "Toggle single-window square aspect" }) + +hl.bind("SUPER + COMMA", hl.dsp.exec_cmd("makoctl dismiss"), { description = "Dismiss last notification" }) +hl.bind("SUPER + SHIFT + COMMA", hl.dsp.exec_cmd("makoctl dismiss --all"), { description = "Dismiss all notifications" }) +hl.bind("SUPER + CTRL + COMMA", hl.dsp.exec_cmd("omarchy-toggle-notification-silencing"), { description = "Toggle silencing notifications" }) +hl.bind("SUPER + ALT + COMMA", hl.dsp.exec_cmd("makoctl invoke"), { description = "Invoke last notification" }) +hl.bind("SUPER + SHIFT + ALT + COMMA", hl.dsp.exec_cmd("makoctl restore"), { description = "Restore last notification" }) + +hl.bind("SUPER + CTRL + I", hl.dsp.exec_cmd("omarchy-toggle-idle"), { description = "Toggle locking on idle" }) +hl.bind("SUPER + CTRL + N", hl.dsp.exec_cmd("omarchy-toggle-nightlight"), { description = "Toggle nightlight" }) +hl.bind("SUPER + CTRL + Delete", hl.dsp.exec_cmd("omarchy-hyprland-monitor-internal toggle"), { description = "Toggle laptop display" }) +hl.bind("SUPER + CTRL + ALT + Delete", hl.dsp.exec_cmd("omarchy-hyprland-monitor-internal-mirror toggle"), { description = "Toggle laptop display mirroring" }) +hl.bind("switch:on:Lid Switch", hl.dsp.exec_cmd("omarchy-hw-external-monitors && omarchy-hyprland-monitor-internal off"), { locked = true }) +hl.bind("switch:off:Lid Switch", hl.dsp.exec_cmd("omarchy-hyprland-monitor-internal on"), { locked = true }) + +hl.bind("PRINT", hl.dsp.exec_cmd("omarchy-capture-screenshot"), { description = "Screenshot" }) +hl.bind("ALT + PRINT", hl.dsp.exec_cmd("omarchy-menu screenrecord"), { description = "Screenrecording" }) +hl.bind("SUPER + PRINT", hl.dsp.exec_cmd("pkill hyprpicker || hyprpicker -a"), { description = "Color picker" }) +hl.bind("SUPER + CTRL + PRINT", hl.dsp.exec_cmd("omarchy-capture-text-extraction"), { description = "Extract text (OCR) from screenshot" }) + +hl.bind("SUPER + CTRL + S", hl.dsp.exec_cmd("omarchy-menu share"), { description = "Share" }) + +hl.bind("SUPER + CTRL + PERIOD", hl.dsp.exec_cmd("omarchy-transcode"), { description = "Transcode" }) + +hl.bind("SUPER + CTRL + R", hl.dsp.exec_cmd("omarchy-menu reminder-set"), { description = "Set reminder" }) +hl.bind("SUPER + CTRL + ALT + R", hl.dsp.exec_cmd("omarchy-reminder show"), { description = "Show reminders" }) +hl.bind("SUPER + SHIFT + CTRL + R", hl.dsp.exec_cmd("omarchy-reminder clear"), { description = "Clear reminders" }) + +hl.bind("SUPER + CTRL + ALT + T", hl.dsp.exec_cmd([[notify-send -u low " $(date +"%A %H:%M · %d %B %Y · Week %V")"]]), { description = "Show time" }) +hl.bind("SUPER + CTRL + ALT + B", hl.dsp.exec_cmd([[notify-send -u low "$(omarchy-battery-status)"]]), { description = "Show battery remaining" }) +hl.bind("SUPER + CTRL + ALT + W", hl.dsp.exec_cmd([[notify-send -u low "$(omarchy-weather-status)"]]), { description = "Show weather" }) + +hl.bind("SUPER + CTRL + A", hl.dsp.exec_cmd("omarchy-launch-audio"), { description = "Audio controls" }) +hl.bind("SUPER + CTRL + B", hl.dsp.exec_cmd("omarchy-launch-bluetooth"), { description = "Bluetooth controls" }) +hl.bind("SUPER + CTRL + W", hl.dsp.exec_cmd("omarchy-launch-wifi"), { description = "Wifi controls" }) +hl.bind("SUPER + CTRL + T", hl.dsp.exec_cmd("omarchy-launch-tui btop"), { description = "Activity" }) + +hl.bind("SUPER + CTRL + X", hl.dsp.exec_cmd("voxtype record toggle"), { description = "Toggle dictation" }) +hl.bind("F9", hl.dsp.exec_cmd("voxtype record start"), { description = "Start dictation (push-to-talk)" }) +hl.bind("F9", hl.dsp.exec_cmd("voxtype record stop"), { release = true, description = "Stop dictation (push-to-talk)" }) + +hl.bind("SUPER + CTRL + Z", function() + local zoom = hl.get_config("cursor.zoom_factor") or 1 + hl.config({ cursor = { zoom_factor = zoom + 1 } }) +end, { description = "Zoom in" }) + +hl.bind("SUPER + CTRL + ALT + Z", function() + hl.config({ cursor = { zoom_factor = 1 } }) +end, { description = "Reset zoom" }) + +hl.bind("SUPER + CTRL + L", hl.dsp.exec_cmd("omarchy-system-lock"), { description = "Lock system" }) diff --git a/default/hypr/envs.conf b/default/hypr/envs.conf deleted file mode 100644 index 9210f594..00000000 --- a/default/hypr/envs.conf +++ /dev/null @@ -1,33 +0,0 @@ -# GUM environment variables for styling purposes -# hyprlang noerror true -source = ~/.config/omarchy/current/theme/gum.env.conf -# hyprlang noerror false - -# 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 = 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 - -# Don't show update on first launch -ecosystem { - no_update_news = true -} diff --git a/default/hypr/envs.lua b/default/hypr/envs.lua new file mode 100644 index 00000000..365cb0e0 --- /dev/null +++ b/default/hypr/envs.lua @@ -0,0 +1,42 @@ +local paths = require("default.hypr.paths") + +local function require_file_if_exists(path, module) + local file = io.open(path, "r") + if file then + file:close() + require(module) + end +end + +-- GUM environment variables for styling purposes. +require_file_if_exists(paths.config_home .. "/omarchy/current/theme/gum_env.lua", "omarchy.current.theme.gum_env") + +-- Cursor size. +hl.env("XCURSOR_SIZE", "24") +hl.env("HYPRCURSOR_SIZE", "24") + +-- Force all apps to use Wayland. +hl.env("GDK_BACKEND", "wayland,x11,*") +hl.env("QT_QPA_PLATFORM", "wayland;xcb") +hl.env("QT_STYLE_OVERRIDE", "kvantum") +hl.env("MOZ_ENABLE_WAYLAND", "1") +hl.env("ELECTRON_OZONE_PLATFORM_HINT", "wayland") +hl.env("OZONE_PLATFORM", "wayland") +hl.env("XDG_SESSION_TYPE", "wayland") + +-- Allow better support for screen sharing (Google Meet, Discord, etc). +hl.env("XDG_CURRENT_DESKTOP", "Hyprland") +hl.env("XDG_SESSION_DESKTOP", "Hyprland") + +-- Use XCompose file. +hl.env("XCOMPOSEFILE", paths.home .. "/.XCompose") + +hl.config({ + xwayland = { + force_zero_scaling = true, + }, + + ecosystem = { + no_update_news = true, + }, +}) diff --git a/default/hypr/input.conf b/default/hypr/input.conf deleted file mode 100644 index 14e9ccb6..00000000 --- a/default/hypr/input.conf +++ /dev/null @@ -1,21 +0,0 @@ -# https://wiki.hypr.land/Configuring/Basics/Variables/#input -input { - kb_layout = us - 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 - } -} - -misc { - key_press_enables_dpms = true # key press will trigger wake - mouse_move_enables_dpms = true # mouse move will trigger wake -} diff --git a/default/hypr/input.lua b/default/hypr/input.lua new file mode 100644 index 00000000..1f003936 --- /dev/null +++ b/default/hypr/input.lua @@ -0,0 +1,21 @@ +-- https://wiki.hypr.land/Configuring/Basics/Variables/#input +hl.config({ + input = { + kb_layout = "us", + kb_variant = "", + kb_model = "", + kb_options = "compose:caps", + kb_rules = "", + follow_mouse = 1, + sensitivity = 0, + + touchpad = { + natural_scroll = false, + }, + }, + + misc = { + key_press_enables_dpms = true, + mouse_move_enables_dpms = true, + }, +}) diff --git a/default/hypr/looknfeel.conf b/default/hypr/looknfeel.conf deleted file mode 100644 index 1a6a8d97..00000000 --- a/default/hypr/looknfeel.conf +++ /dev/null @@ -1,144 +0,0 @@ -# Refer to https://wiki.hypr.land/Configuring/Basics/Variables/ - -# Variables -$activeBorderColor = rgba(33ccffee) rgba(00ff99ee) 45deg -$inactiveBorderColor = rgba(595959aa) - -# https://wiki.hypr.land/Configuring/Basics/Variables/#general -general { - gaps_in = 5 - gaps_out = 10 - - border_size = 2 - - # https://wiki.hypr.land/Configuring/Basics/Variables/#variable-types for info about colors - col.active_border = $activeBorderColor - col.inactive_border = $inactiveBorderColor - - # Set to true enable resizing windows by clicking and dragging on borders and gaps - resize_on_border = false - - # Please see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Tearing/ before you turn this on - allow_tearing = false - - layout = dwindle -} - -# https://wiki.hypr.land/Configuring/Basics/Variables/#decoration -decoration { - rounding = 0 - - shadow { - enabled = true - range = 2 - render_power = 3 - color = rgba(1a1a1aee) - } - - # https://wiki.hypr.land/Configuring/Basics/Variables/#blur - blur { - enabled = true - size = 2 - passes = 2 - special = true - brightness = 0.60 - contrast = 0.75 - } -} - -# https://wiki.hypr.land/Configuring/Basics/Variables/#group -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 - } -} - - -# https://wiki.hypr.land/Configuring/Basics/Variables/#animations -animations { - enabled = yes, please :) - - # Default animations, see https://wiki.hypr.land/Configuring/Advanced-and-Cool/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, 3.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, 0, 0, ease - animation = specialWorkspace, 1, 3, easeOutQuint, slidevert -} - -# See https://wiki.hypr.land/Configuring/Layouts/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 -} - -scrolling { - column_width = 0.49 -} - -# See https://wiki.hypr.land/Configuring/Layouts/Master-Layout/ for more -master { - new_status = master -} - -# https://wiki.hypr.land/Configuring/Basics/Variables/#misc -misc { - disable_hyprland_logo = true - disable_splash_rendering = true - disable_scale_notification = true - focus_on_activate = true - anr_missed_pings = 3 - on_focus_under_fullscreen = 1 -} - -# https://wiki.hypr.land/Configuring/Basics/Variables/#cursor -cursor { - hide_on_key_press = true - warp_on_change_workspace = 1 -} - -# Auto toggle scratchpad on switching workspace from scratchpad -binds { - hide_special_on_workspace_change = true -} diff --git a/default/hypr/looknfeel.lua b/default/hypr/looknfeel.lua new file mode 100644 index 00000000..9339ad82 --- /dev/null +++ b/default/hypr/looknfeel.lua @@ -0,0 +1,129 @@ +-- Refer to https://wiki.hypr.land/Configuring/Basics/Variables/ + +local active_border_color = { colors = { "rgba(33ccffee)", "rgba(00ff99ee)" }, angle = 45 } +local inactive_border_color = "rgba(595959aa)" + +hl.config({ + general = { + gaps_in = 5, + gaps_out = 10, + border_size = 2, + + col = { + active_border = active_border_color, + inactive_border = inactive_border_color, + }, + + resize_on_border = false, + allow_tearing = false, + layout = "dwindle", + }, + + decoration = { + rounding = 0, + + shadow = { + enabled = true, + range = 2, + render_power = 3, + color = "rgba(1a1a1aee)", + }, + + blur = { + enabled = true, + size = 2, + passes = 2, + special = true, + brightness = 0.60, + contrast = 0.75, + }, + }, + + group = { + col = { + border_active = active_border_color, + border_inactive = inactive_border_color, + }, + + 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)", + inactive = "rgba(00000020)", + }, + gradients = true, + gradient_rounding = 0, + gradient_round_only_edges = false, + }, + }, + + animations = { + enabled = true, + }, +}) + +-- Default animations, see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Animations/ +hl.curve("easeOutQuint", { type = "bezier", points = { { 0.23, 1 }, { 0.32, 1 } } }) +hl.curve("easeInOutCubic", { type = "bezier", points = { { 0.65, 0.05 }, { 0.36, 1 } } }) +hl.curve("linear", { type = "bezier", points = { { 0, 0 }, { 1, 1 } } }) +hl.curve("almostLinear", { type = "bezier", points = { { 0.5, 0.5 }, { 0.75, 1.0 } } }) +hl.curve("quick", { type = "bezier", points = { { 0.15, 0 }, { 0.1, 1 } } }) + +hl.animation({ leaf = "global", enabled = true, speed = 10, bezier = "default" }) +hl.animation({ leaf = "border", enabled = true, speed = 5.39, bezier = "easeOutQuint" }) +hl.animation({ leaf = "windows", enabled = true, speed = 3.79, bezier = "easeOutQuint" }) +hl.animation({ leaf = "windowsIn", enabled = true, speed = 4.1, bezier = "easeOutQuint", style = "popin 87%" }) +hl.animation({ leaf = "windowsOut", enabled = true, speed = 1.49, bezier = "linear", style = "popin 87%" }) +hl.animation({ leaf = "fadeIn", enabled = true, speed = 1.73, bezier = "almostLinear" }) +hl.animation({ leaf = "fadeOut", enabled = true, speed = 1.46, bezier = "almostLinear" }) +hl.animation({ leaf = "fade", enabled = true, speed = 3.03, bezier = "quick" }) +hl.animation({ leaf = "layers", enabled = true, speed = 3.81, bezier = "easeOutQuint" }) +hl.animation({ leaf = "layersIn", enabled = true, speed = 4, bezier = "easeOutQuint", style = "fade" }) +hl.animation({ leaf = "layersOut", enabled = true, speed = 1.5, bezier = "linear", style = "fade" }) +hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 1.79, bezier = "almostLinear" }) +hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 1.39, bezier = "almostLinear" }) +hl.animation({ leaf = "workspaces", enabled = false }) +hl.animation({ leaf = "specialWorkspace", enabled = true, speed = 3, bezier = "easeOutQuint", style = "slidevert" }) + +hl.config({ + dwindle = { + preserve_split = true, + force_split = 2, + }, + + scrolling = { + column_width = 0.49, + }, + + master = { + new_status = "master", + }, + + misc = { + disable_hyprland_logo = true, + disable_splash_rendering = true, + disable_scale_notification = true, + focus_on_activate = true, + anr_missed_pings = 3, + on_focus_under_fullscreen = 1, + }, + + cursor = { + hide_on_key_press = true, + warp_on_change_workspace = 1, + }, + + binds = { + hide_special_on_workspace_change = true, + }, +}) diff --git a/default/hypr/paths.lua b/default/hypr/paths.lua new file mode 100644 index 00000000..4671cf64 --- /dev/null +++ b/default/hypr/paths.lua @@ -0,0 +1,12 @@ +-- Shared path constants for Omarchy's Hyprland Lua modules. +-- Lua files loaded with require() have separate local scopes, so modules that +-- need these paths import this table instead of repeating os.getenv() lookups. + +local home = os.getenv("HOME") or "" + +return { + home = home, + config_home = os.getenv("XDG_CONFIG_HOME") or (home .. "/.config"), + state_home = os.getenv("XDG_STATE_HOME") or (home .. "/.local/state"), + omarchy_path = os.getenv("OMARCHY_PATH") or (home .. "/.local/share/omarchy"), +} diff --git a/default/hypr/plain-bindings.conf b/default/hypr/plain-bindings.conf deleted file mode 100644 index 81a47062..00000000 --- a/default/hypr/plain-bindings.conf +++ /dev/null @@ -1,16 +0,0 @@ -# Application bindings -bindd = SUPER, RETURN, Terminal, exec, uwsm-app -- xdg-terminal-exec --dir="$(omarchy-cmd-terminal-cwd)" -bindd = SUPER SHIFT, RETURN, Browser, exec, omarchy-launch-browser -bindd = SUPER SHIFT, F, File manager, exec, uwsm-app -- nautilus --new-window -bindd = SUPER ALT SHIFT, F, File manager (cwd), exec, uwsm-app -- nautilus --new-window "$(omarchy-cmd-terminal-cwd)" -bindd = SUPER SHIFT, B, Browser, exec, omarchy-launch-browser -bindd = SUPER SHIFT ALT, B, Browser (private), exec, omarchy-launch-browser --private -bindd = SUPER SHIFT, N, Editor, exec, omarchy-launch-editor - -# Add extra bindings -# bindd = SUPER SHIFT, A, ChatGPT, exec, omarchy-launch-webapp "https://chatgpt.com" -# bindd = SUPER SHIFT, R, exec, alacritty -e ssh your-server - -# Overwrite existing bindings, like putting Omarchy Menu on Super + Space -# unbind = SUPER, SPACE -# bindd = SUPER, SPACE, Omarchy menu, exec, omarchy-menu diff --git a/default/hypr/plain-bindings.lua b/default/hypr/plain-bindings.lua new file mode 100644 index 00000000..8656d6d7 --- /dev/null +++ b/default/hypr/plain-bindings.lua @@ -0,0 +1,13 @@ +require("default.hypr.bindings.media") +require("default.hypr.bindings.clipboard") +require("default.hypr.bindings.tiling-v2") +require("default.hypr.bindings.utilities") + +-- Application bindings without Omarchy's preinstalled web apps, TUIs, or desktop apps. +hl.bind("SUPER + RETURN", hl.dsp.exec_cmd([[uwsm-app -- xdg-terminal-exec --dir="$(omarchy-cmd-terminal-cwd)"]]), { description = "Terminal" }) +hl.bind("SUPER + SHIFT + RETURN", hl.dsp.exec_cmd("omarchy-launch-browser"), { description = "Browser" }) +hl.bind("SUPER + SHIFT + F", hl.dsp.exec_cmd("uwsm-app -- nautilus --new-window"), { description = "File manager" }) +hl.bind("SUPER + ALT + SHIFT + F", hl.dsp.exec_cmd([[uwsm-app -- nautilus --new-window "$(omarchy-cmd-terminal-cwd)"]]), { description = "File manager (cwd)" }) +hl.bind("SUPER + SHIFT + B", hl.dsp.exec_cmd("omarchy-launch-browser"), { description = "Browser" }) +hl.bind("SUPER + SHIFT + ALT + B", hl.dsp.exec_cmd("omarchy-launch-browser --private"), { description = "Browser (private)" }) +hl.bind("SUPER + SHIFT + N", hl.dsp.exec_cmd("omarchy-launch-editor"), { description = "Editor" }) diff --git a/default/hypr/require_all.lua b/default/hypr/require_all.lua new file mode 100644 index 00000000..56153a00 --- /dev/null +++ b/default/hypr/require_all.lua @@ -0,0 +1,33 @@ +-- Require every *.lua file in a directory in sorted order. +-- Used for Omarchy extension-style folders such as default/hypr/apps, +-- default/hypr/bindings, and ~/.local/state/omarchy/toggles/hypr. +-- Pass a module prefix for normal package.path modules, e.g. +-- require_all.files(paths.omarchy_path .. "/default/hypr/apps", "default.hypr.apps") +-- Pass nil as the prefix when the directory itself has been added to package.path. + +local M = {} + +local function shell_quote(path) + return "'" .. path:gsub("'", "'\\''") .. "'" +end + +function M.files(dir, module_prefix, options) + local handle = io.popen("find " .. shell_quote(dir) .. " -maxdepth 1 -type f -name '*.lua' -printf '%f\\n' 2>/dev/null | sort") + if handle then + for filename in handle:lines() do + local module = filename:gsub("%.lua$", "") + if module_prefix then + module = module_prefix .. "." .. module + end + + if options and options.reload then + package.loaded[module] = nil + end + + require(module) + end + handle:close() + end +end + +return M diff --git a/default/hypr/toggles.lua b/default/hypr/toggles.lua new file mode 100644 index 00000000..5f24e1cf --- /dev/null +++ b/default/hypr/toggles.lua @@ -0,0 +1,7 @@ +local paths = require("default.hypr.paths") +local require_all = require("default.hypr.require_all") + +local toggles_dir = paths.state_home .. "/omarchy/toggles/hypr" +package.path = toggles_dir .. "/?.lua;" .. package.path + +require_all.files(toggles_dir, nil, { reload = true }) diff --git a/default/hypr/toggles/flags.conf b/default/hypr/toggles/flags.conf deleted file mode 100644 index a6334225..00000000 --- a/default/hypr/toggles/flags.conf +++ /dev/null @@ -1,2 +0,0 @@ -# This directory is intended for permanent config toggle flags. -# Do not remove this file (as the directory always needs at least one file). diff --git a/default/hypr/toggles/flags.lua b/default/hypr/toggles/flags.lua new file mode 100644 index 00000000..790e67ca --- /dev/null +++ b/default/hypr/toggles/flags.lua @@ -0,0 +1,2 @@ +-- This directory is intended for permanent config toggle flags. +-- Do not remove this file; the directory always needs at least one file. diff --git a/default/hypr/toggles/single-window-aspect-ratio.conf b/default/hypr/toggles/single-window-aspect-ratio.conf deleted file mode 100644 index b51d0e41..00000000 --- a/default/hypr/toggles/single-window-aspect-ratio.conf +++ /dev/null @@ -1,5 +0,0 @@ -# Avoid overly wide single-window layouts on wide screens -layout { - single_window_aspect_ratio = 1 1 -} - diff --git a/default/hypr/toggles/single-window-aspect-ratio.lua b/default/hypr/toggles/single-window-aspect-ratio.lua new file mode 100644 index 00000000..43839022 --- /dev/null +++ b/default/hypr/toggles/single-window-aspect-ratio.lua @@ -0,0 +1,6 @@ +-- Avoid overly wide single-window layouts on wide screens. +hl.config({ + layout = { + single_window_aspect_ratio = { 1, 1 }, + }, +}) diff --git a/default/hypr/toggles/window-no-gaps.conf b/default/hypr/toggles/window-no-gaps.conf deleted file mode 100644 index 47520e80..00000000 --- a/default/hypr/toggles/window-no-gaps.conf +++ /dev/null @@ -1,10 +0,0 @@ -# Remove all window gaps and borders -general { - gaps_out = 0 - gaps_in = 0 - border_size = 0 -} - -decoration { - rounding = 0 -} diff --git a/default/hypr/toggles/window-no-gaps.lua b/default/hypr/toggles/window-no-gaps.lua new file mode 100644 index 00000000..9e086a91 --- /dev/null +++ b/default/hypr/toggles/window-no-gaps.lua @@ -0,0 +1,12 @@ +-- Remove all window gaps and borders. +hl.config({ + general = { + gaps_out = 0, + gaps_in = 0, + border_size = 0, + }, + + decoration = { + rounding = 0, + }, +}) diff --git a/default/hypr/windows.conf b/default/hypr/windows.conf deleted file mode 100644 index 3ceca48f..00000000 --- a/default/hypr/windows.conf +++ /dev/null @@ -1,15 +0,0 @@ -# See https://wiki.hypr.land/Configuring/Basics/Window-Rules/ for more -# Hyprland 0.53+ syntax -windowrule = suppress_event maximize, match:class .* - -# Tag all windows for default opacity (apps can override with -default-opacity tag) -windowrule = tag +default-opacity, match:class .* - -# Fix some dragging issues with XWayland -windowrule = no_focus on, match:class ^$, match:title ^$, match:xwayland 1, match:float 1, match:fullscreen 0, match:pin 0 - -# App-specific tweaks (may remove default-opacity tag) -source = ~/.local/share/omarchy/default/hypr/apps.conf - -# Apply default opacity after apps have had a chance to opt out -windowrule = opacity 0.97 0.9, match:tag default-opacity diff --git a/default/hypr/windows.lua b/default/hypr/windows.lua new file mode 100644 index 00000000..342ddbcb --- /dev/null +++ b/default/hypr/windows.lua @@ -0,0 +1,25 @@ +-- See https://wiki.hypr.land/Configuring/Basics/Window-Rules/ + +hl.window_rule({ match = { class = ".*" }, suppress_event = "maximize" }) + +-- Tag all windows for default opacity (apps can override with -default-opacity tag). +hl.window_rule({ match = { class = ".*" }, tag = "+default-opacity" }) + +-- Fix some dragging issues with XWayland. +hl.window_rule({ + match = { + class = "^$", + title = "^$", + xwayland = true, + float = true, + fullscreen = false, + pin = false, + }, + no_focus = true, +}) + +-- App-specific tweaks (may remove default-opacity tag). +require("default.hypr.apps") + +-- Apply default opacity after apps have had a chance to opt out. +hl.window_rule({ match = { tag = "default-opacity" }, opacity = "0.97 0.9" })