From 95db385700e13975cc1acc76a87646ced2f7d6ae Mon Sep 17 00:00:00 2001 From: venus Date: Wed, 24 Jun 2026 18:40:53 -0500 Subject: [PATCH] updated several things, added keybinds, working on workspace rules for large monitors --- basic/keybinds.lua | 17 +++++++++++++---- basic/looks.lua | 2 +- basic/windows.lua | 4 ++++ hyprland.lua | 29 +++++++++++++++-------------- monitors.lua | 29 +++++++++++++++++++++++++++++ 5 files changed, 62 insertions(+), 19 deletions(-) create mode 100644 monitors.lua diff --git a/basic/keybinds.lua b/basic/keybinds.lua index 088bcb9..933e79f 100644 --- a/basic/keybinds.lua +++ b/basic/keybinds.lua @@ -127,7 +127,7 @@ hl.bind(mainMod .. " + SPACE " ,hl.dsp.exec_cmd("playerctl play-pause")) ---- 10. Application launching -hl.bind(mainMod .. " + SUPER_L", hl.dsp.exec_cmd(launcher .. " toggle"), { release = true }) +hl.bind(mainMod .. " + SUPER_L" ,hl.dsp.exec_cmd(launcher .. " toggle"), { release = true }) hl.bind(mainMod .. " + F " ,hl.dsp.exec_cmd(browser)) hl.bind("ALT + C" ,hl.dsp.exec_cmd(ipc .. "plugin:clipper openPanel")) -- hl.bind("code:148" ,hl.dsp.exec_cmd("kitty --class calc-term -o 'confirm_os_window_close 0' /home/venus/.cargo/bin/mathypad ")) @@ -164,8 +164,11 @@ hl.bind(mainMod .. " + ALT + H" , custom.MoveToDarkSpot) hl.bind(mainMod .. " + comma" , hl.dsp.exec_cmd(ipc .. "controlCenter toggle")) hl.bind(mainMod .. " + period" , hl.dsp.exec_cmd(ipc .. "settings toggle")) hl.bind("PRINT" , hl.dsp.exec_cmd("hyprshot -m active -m window --output-folder ~/Images/Screenshots")) -hl.bind("SHIFT + PRINT" , hl.dsp.exec_cmd("hyprshot -m region --output-folder ~/Images/Screenshots")) -hl.bind("ALT + PRINT" , hl.dsp.exec_cmd("hyprshot -m active -m output --output-folder ~/Images/Screenshots")) +hl.bind("SHIFT + PRINT" ,hl.dsp.exec_cmd(ipc .. " plugin:screen-toolkit annotate")) +hl.bind("ALT + PRINT" ,hl.dsp.exec_cmd(ipc .. " plugin:screen-toolkit annotateWindow")) +hl.bind("CTRL + PRINT" ,hl.dsp.exec_cmd(ipc .. " plugin:screen-toolkit annotateFullscreen")) +-- hl.bind("SHIFT + PRINT" , hl.dsp.exec_cmd("hyprshot -m region --output-folder ~/Images/Screenshots")) +-- hl.bind("ALT + PRINT" , hl.dsp.exec_cmd("hyprshot -m active -m output --output-folder ~/Images/Screenshots")) hl.bind(mainMod .. " + M ", function() hl.dispatch(hl.dsp.exec_cmd(ipc .. "controlCenter toggle ")) @@ -191,6 +194,10 @@ hl.define_submap("screen-toolkit", "reset", function() hl.bind("SHIFT + A" ,hl.dsp.exec_cmd(ipc .. " plugin:screen-toolkit annotateWindow")) hl.bind("R" ,hl.dsp.exec_cmd(ipc .. " plugin:screen-toolkit recordMp4")) hl.bind("SHIFT + R" ,hl.dsp.exec_cmd(ipc .. " plugin:screen-toolkit recordFullscreenMp4")) + hl.bind("catchall" ,function () + hl.dispatch(hl.dsp.submap("reset")) + hl.dispatch(hl.dsp.exec_cmd(ipc .. "plugin:screen-toolkit toggle ")) + end) end) -- TODO write a timer submap that starts a timer of custom length when a key is pressed hl.bind(mainMod .. " + T" ,function() @@ -277,9 +284,11 @@ hl.define_submap("bt-sub", function() hl.bind("D" ,hl.dsp.exec_cmd(ipc .. "bluetooth disable")) hl.bind("E" ,hl.dsp.exec_cmd(ipc .. "bluetooth enable")) hl.bind("H" ,hl.dsp.exec_cmd('bluetoothctl connect 88:92:CC:53:88:7E && notify-send "connected to headphones"')) + hl.bind("B" ,hl.dsp.exec_cmd('bluetoothctl connect FC:91:5D:6A:2A:C5 && notify-send "connected to earbuds"')) + hl.bind("P" ,hl.dsp.exec_cmd('bluetoothctl connect 64:9D:38:E0:4D:02 && notify-send "Connected to phone"')) + hl.bind("SHIFT + B" ,hl.dsp.exec_cmd('bluetoothctl disconnect FC:91:5D:6A:2A:C5 && notify-send "disconnected from earbuds"')) hl.bind("J" ,hl.dsp.exec_cmd('bluetoothctl disconnect 88:92:CC:53:88:7E && notify-send "disconnected from headphones"')) hl.bind("SHIFT + H" ,hl.dsp.exec_cmd('bluetoothctl disconnect 88:92:CC:53:88:7E && notify-send "disconnected from headphones"')) - hl.bind("P" ,hl.dsp.exec_cmd('bluetoothctl connect 64:9D:38:E0:4D:02 && notify-send "Connected to phone"')) hl.bind("M" ,hl.dsp.exec_cmd('bluetoothctl disconnect 64:9D:38:E0:4D:02 && notify-send "Disconnected from phone"')) hl.bind("escape" ,function () hl.dispatch(hl.dsp.exec_cmd(ipc .. "bluetooth togglePanel")) diff --git a/basic/looks.lua b/basic/looks.lua index 8439d2a..cd225eb 100644 --- a/basic/looks.lua +++ b/basic/looks.lua @@ -24,7 +24,7 @@ hl.config ({ -- Please see https://wiki.hypr.land/Configuring/Tearing/ before you turn this on, allow_tearing = false, - layout = "dwindle", + layout = "master", }, -- https://wiki.hypr.land/Configuring/Variables/--decoration diff --git a/basic/windows.lua b/basic/windows.lua index bf6b9c0..47897af 100644 --- a/basic/windows.lua +++ b/basic/windows.lua @@ -51,6 +51,10 @@ hl.window_rule( { }, no_focus = true, }) +hl.workspace_rule({ + workspace = "s[true]", + gaps_out = 10 +}) -- Hyprland-run hl.window_rule( diff --git a/hyprland.lua b/hyprland.lua index e086995..f768bae 100644 --- a/hyprland.lua +++ b/hyprland.lua @@ -5,7 +5,7 @@ _G.terminal = "kitty" _G.fileManager = "dolphin" _G.menu = "qs -c noctalia-shell ipc call launcher toggle" -_G.launcher = "vicinae " +_G.launcher = "hyprlauncher" _G.browser = "firefox" _G.menuBar = "qs -c noctalia-shell" _G.shellWrapper = "qs -c noctalia-shell" @@ -14,37 +14,38 @@ _G.email = "thunderbird" _G.notes = "obsidian" hl.on("hyprland.start", function() + -- Force D-Bus and Systemd to catch the Wayland display variables instantly + hl.exec_cmd("dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP") + hl.exec_cmd("systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP") + hl.exec_cmd("systemctl --user start hyprpolkitagent") hl.exec_cmd(menuBar) - hl.exec_cmd("systemctl") --user start hyprpolkitagent) + -- hyprshell in systemd hl.exec_cmd(blkmanager) - hl.exec_cmd(launcher .. "server") --no-window) TODO set up sddm to unlock keychain + hl.exec_cmd("vicinae server") --no-window) TODO set up sddm to unlock keychain hl.exec_cmd("hyprpm reload -n") hl.exec_cmd("kdeconnectd") - -- hl.exec_cmd("hyprshell run &") hl.exec_cmd("vesktop -m", {workspace ="special:vesktop silent"}) hl.exec_cmd(email, {workspace ="special:email silent"}) hl.exec_cmd(notes, {workspace ="special:notes silent"}) - hl.exec_cmd("steam --forcedesktopscaling 0.5", {workspace ="special:gaming silent"}) - hl.exec_cmd("protonmail-bridge") --no-window) TODO set up sddm to unlock keychain + hl.exec_cmd("steam --forcedesktopscaling 0.5 -silent -no-browser", {workspace ="special:gaming silent"}) + hl.exec_cmd("protonmail-bridge --no-window") -- TODO set up sddm to unlock keychain end) hl.config({ - general = { - layout = "dwindle" - } + master = { + orientation = "center", + new_status = "master", + mfact = 0.50 + }, }) hl.env("XCURSOR_SIZE", "24") hl.env("HYPRCURSOR_SIZE", "24") hl.env("ELECTRON_OZONE_PLATFORM_HINT", "auto") -local base = "/home/venus/.config/hypr" -local basic = base .. "/basic" - - require("basic/looks") require("basic/keybinds") require("basic/vars") require("basic/windows") -- require("plugins") ---require("monitors") +require("monitors") diff --git a/monitors.lua b/monitors.lua new file mode 100644 index 0000000..d7f3eb0 --- /dev/null +++ b/monitors.lua @@ -0,0 +1,29 @@ +-- -- Define the workspace rules table +-- local workspace_rules = {} + +-- -- Forcing workspaces 1 through 5 to use the master layout on the ultrawide +-- for w = 1, 5 do +-- table.insert(workspace_rules, string.format("%d, monitor:DP-1, layout:master", w)) +-- end + +-- -- Keeping the global default layout for these workspaces on the secondary screen +-- for w = 6, 10 do +-- table.insert(workspace_rules, string.format("%d, monitor:HDMI-A-1", w)) +-- end + +-- -- Inject them into your config wrapper +-- hl.config({ +-- workspace = workspace_rules +-- }) +-- Initialize the workspace array inside the config table if it doesn't exist +hl.config.workspace = hl.config.workspace or {} + +-- Forcing workspaces 1 through 5 to use the master layout on the ultrawide +for w = 1, 5 do + table.insert(hl.config.workspace, string.format("%d, monitor:DP-1, layout:master", w)) +end + +-- Keeping the global default layout for these workspaces on the secondary screen +for w = 6, 10 do + table.insert(hl.config.workspace, string.format("%d, monitor:HDMI-A-1", w)) +end