Compare commits
3 Commits
1e50ecb4f1
...
7ca06e60f1
| Author | SHA1 | Date | |
|---|---|---|---|
| 7ca06e60f1 | |||
| 5c068602d5 | |||
| 3c7c3a37dd |
@@ -0,0 +1 @@
|
|||||||
|
monitors.lua
|
||||||
+97
-53
@@ -9,33 +9,22 @@ hl.env("QT_QPA_PLATFORM", "wayland;xcb")
|
|||||||
hl.env("QT_QPA_PLATFORMTHEME", "gtk3")
|
hl.env("QT_QPA_PLATFORMTHEME", "gtk3")
|
||||||
hl.env("XCURSOR_SIZE", "24")
|
hl.env("XCURSOR_SIZE", "24")
|
||||||
hl.env("HYPRCURSOR_SIZE", "24")
|
hl.env("HYPRCURSOR_SIZE", "24")
|
||||||
hl.env("DISPLAY", ":0")
|
-- hl.env("DISPLAY", ":0")
|
||||||
hl.env("USE_X11", "false")
|
-- hl.env("USE_X11", "false")
|
||||||
|
|
||||||
-- monitors
|
require("monitors")
|
||||||
hl.monitor({
|
|
||||||
output = "HDMI-A-2",
|
|
||||||
mode = "2560x1440@143.99899",
|
|
||||||
position = "1920x0",
|
|
||||||
scale = "1.25",
|
|
||||||
})
|
|
||||||
|
|
||||||
hl.monitor({
|
|
||||||
output = "DP-4",
|
|
||||||
mode = "1920x1080@143.99",
|
|
||||||
position = "0x0",
|
|
||||||
scale = "auto",
|
|
||||||
})
|
|
||||||
|
|
||||||
local home = os.getenv("HOME")
|
local home = os.getenv("HOME")
|
||||||
|
|
||||||
hl.on("hyprland.start", function ()
|
hl.on("hyprland.start", function()
|
||||||
-- gentoo specific
|
-- gentoo specific
|
||||||
hl.exec_cmd("/usr/libexec/hyprpolkitagent")
|
hl.exec_cmd("/usr/libexec/hyprpolkitagent")
|
||||||
hl.exec_cmd("dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP")
|
hl.exec_cmd("dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP")
|
||||||
hl.exec_cmd("hyprpm reload") -- set up plugins
|
hl.exec_cmd("hyprpm reload") -- set up plugins
|
||||||
|
|
||||||
hl.exec_cmd("hyprctl setcursor Adwaita 24") -- set cursor to be normal
|
hl.exec_cmd("hyprctl setcursor Adwaita 24") -- set cursor to be normal
|
||||||
|
hl.exec_cmd("wl-clip-persist --clipboard regular")
|
||||||
|
|
||||||
hl.exec_cmd("wl-paste --watch cliphist store")
|
hl.exec_cmd("wl-paste --watch cliphist store")
|
||||||
hl.exec_cmd("mako")
|
hl.exec_cmd("mako")
|
||||||
|
|
||||||
@@ -82,9 +71,9 @@ hl.config({
|
|||||||
vibrancy = 0.1696,
|
vibrancy = 0.1696,
|
||||||
},
|
},
|
||||||
|
|
||||||
dim_inactive=true,
|
dim_inactive = true,
|
||||||
dim_strength=0.1,
|
dim_strength = 0.1,
|
||||||
dim_special=0.2,
|
dim_special = 0.2,
|
||||||
},
|
},
|
||||||
|
|
||||||
input = {
|
input = {
|
||||||
@@ -114,16 +103,18 @@ hl.config({
|
|||||||
},
|
},
|
||||||
|
|
||||||
scrolling = {
|
scrolling = {
|
||||||
fullscreen_on_one_column = false,
|
focus_fit_method = 1,
|
||||||
|
explicit_column_widths = "0.5,1",
|
||||||
|
fullscreen_on_one_column = true,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Default curves and animations, see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Animations/
|
-- Default curves and 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("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("easeInOutCubic", { type = "bezier", points = { { 0.65, 0.05 }, { 0.36, 1 } } })
|
||||||
hl.curve("linear", { type = "bezier", points = { {0, 0}, {1, 1} } })
|
hl.curve("linear", { type = "bezier", points = { { 0, 0 }, { 1, 1 } } })
|
||||||
hl.curve("almostLinear", { type = "bezier", points = { {0.5, 0.5}, {0.75, 1} } })
|
hl.curve("almostLinear", { type = "bezier", points = { { 0.5, 0.5 }, { 0.75, 1 } } })
|
||||||
hl.curve("quick", { type = "bezier", points = { {0.15, 0}, {0.1, 1} } })
|
hl.curve("quick", { type = "bezier", points = { { 0.15, 0 }, { 0.1, 1 } } })
|
||||||
|
|
||||||
-- Default springs
|
-- Default springs
|
||||||
hl.curve("easy", { type = "spring", mass = 1, stiffness = 238.1191, dampening = 24.21279333 })
|
hl.curve("easy", { type = "spring", mass = 1, stiffness = 238.1191, dampening = 24.21279333 })
|
||||||
@@ -157,44 +148,85 @@ hl.bind(mainMod .. " + RETURN", hl.dsp.exec_cmd(terminal))
|
|||||||
hl.bind(mainMod .. " + D", hl.dsp.exec_cmd(menu))
|
hl.bind(mainMod .. " + D", hl.dsp.exec_cmd(menu))
|
||||||
hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(fileManager))
|
hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(fileManager))
|
||||||
|
|
||||||
hl.bind(mainMod .. " + M", hl.dsp.exec_cmd("command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch 'hl.dsp.exit()'"))
|
hl.bind(mainMod .. " + M",
|
||||||
|
hl.dsp.exec_cmd("command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch 'hl.dsp.exit()'"))
|
||||||
hl.bind(mainMod .. " + SPACE", hl.dsp.window.float({ action = "toggle" }))
|
hl.bind(mainMod .. " + SPACE", hl.dsp.window.float({ action = "toggle" }))
|
||||||
|
|
||||||
hl.bind(mainMod .. " + F", hl.dsp.window.fullscreen_state({ internal="1", client="1", layout_aware=true, action = "toggle"}))
|
-- toggle maximize in scrolling mode; from https://github.com/hyprwm/Hyprland/discussions/14380
|
||||||
|
hl.bind(mainMod .. " + F", function()
|
||||||
|
local monitor = hl.get_active_monitor()
|
||||||
|
local window = hl.get_active_window()
|
||||||
|
|
||||||
|
if monitor and window and type(window.size) == "table" then
|
||||||
|
if window.size.x >= monitor.width / 2 then
|
||||||
|
hl.dispatch(hl.dsp.layout("colresize 0.5"))
|
||||||
|
else
|
||||||
|
hl.dispatch(hl.dsp.layout("colresize 1"))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
)
|
||||||
hl.bind(mainMod .. " + SHIFT + Q", hl.dsp.window.close())
|
hl.bind(mainMod .. " + SHIFT + Q", hl.dsp.window.close())
|
||||||
|
|
||||||
-- change focus
|
|
||||||
hl.bind(mainMod .. " + LEFT", hl.dsp.focus({ direction = "left" }))
|
-- move focus left / right. Using the layout or geometric method has quirks that this does nicely.
|
||||||
hl.bind(mainMod .. " + RIGHT", hl.dsp.focus({ direction = "right" }))
|
local function focus_horizontal(dir) -- "l" or "r"
|
||||||
|
local direction = (dir == "l") and "left" or "right"
|
||||||
|
return function()
|
||||||
|
local before = hl.get_active_window()
|
||||||
|
hl.dispatch(hl.dsp.layout("focus " .. dir))
|
||||||
|
local after = hl.get_active_window()
|
||||||
|
|
||||||
|
local same = (before == nil and after == nil)
|
||||||
|
or (before and after and before.address == after.address)
|
||||||
|
if same then
|
||||||
|
hl.dispatch(hl.dsp.focus({ direction = direction }))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
hl.bind(mainMod .. " + LEFT", focus_horizontal("l"))
|
||||||
|
hl.bind(mainMod .. " + RIGHT", focus_horizontal("r"))
|
||||||
hl.bind(mainMod .. " + UP", hl.dsp.focus({ direction = "up" }))
|
hl.bind(mainMod .. " + UP", hl.dsp.focus({ direction = "up" }))
|
||||||
hl.bind(mainMod .. " + DOWN", hl.dsp.focus({ direction = "down" }))
|
hl.bind(mainMod .. " + DOWN", hl.dsp.focus({ direction = "down" }))
|
||||||
|
|
||||||
-- move workspaces
|
local function move_window_relative(delta)
|
||||||
hl.bind(mainMod .. " + SHIFT + LEFT", hl.dsp.window.swap({ direction = "left"}))
|
return function()
|
||||||
hl.bind(mainMod .. " + SHIFT + RIGHT", hl.dsp.window.swap({ direction = "right"}))
|
local ws = hl.get_active_workspace()
|
||||||
hl.bind(mainMod .. " + SHIFT + UP", hl.dsp.window.swap({ direction = "up"}))
|
if not ws or ws.id < 1 then return end -- ignore special workspaces (negative IDs)
|
||||||
hl.bind(mainMod .. " + SHIFT + DOWN", hl.dsp.window.swap({ direction = "down"}))
|
|
||||||
|
local target = ws.id + delta
|
||||||
|
if target < 1 or target > 9 then return end
|
||||||
|
|
||||||
|
hl.dispatch(hl.dsp.window.move({ workspace = target }))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
-- move windows
|
||||||
|
hl.bind(mainMod .. " + SHIFT + LEFT", hl.dsp.window.swap({ direction = "left" }))
|
||||||
|
hl.bind(mainMod .. " + SHIFT + RIGHT", hl.dsp.window.swap({ direction = "right" }))
|
||||||
|
-- moves the window n +- 1 workspaces where n is the current workspace
|
||||||
|
hl.bind(mainMod .. " + SHIFT + UP", move_window_relative(-1))
|
||||||
|
hl.bind(mainMod .. " + SHIFT + DOWN", move_window_relative(1))
|
||||||
|
|
||||||
-- screenshots
|
-- screenshots
|
||||||
hl.bind("Print", hl.dsp.exec_cmd("grim -g \"$(slurp)\" ~/$(date + '%Y%m%d-%H%M%S').png")) -- dump to home
|
hl.bind("Print", hl.dsp.exec_cmd('grim -g "$(slurp)" - | swappy -f -')) -- opens an interface to choose btwn saving / copying
|
||||||
hl.bind("SUPER + Print", hl.dsp.exec_cmd(
|
|
||||||
"grim -g \"$(slurp)\" - | wl-copy"
|
|
||||||
)) -- copy to clipboard
|
|
||||||
|
|
||||||
-- hy3 settings
|
-- hy3 settings
|
||||||
local hy3 = hl.plugin.hy3
|
--local hy3 = hl.plugin.hy3
|
||||||
hl.bind(mainMod .. " + V", hy3.make_group("v"))
|
--hl.bind(mainMod .. " + V", hy3.make_group("v"))
|
||||||
hl.bind(mainMod .. " + H", hy3.make_group("h"))
|
--hl.bind(mainMod .. " + H", hy3.make_group("h"))
|
||||||
hl.bind(mainMod .. " + T", hy3.make_group("tab"))
|
--hl.bind(mainMod .. " + T", hy3.make_group("tab"))
|
||||||
|
|
||||||
hl.bind(mainMod .. " + CTRL + LEFT", hy3.focus_tab({ direction = "left" }))
|
--hl.bind(mainMod .. " + CTRL + LEFT", hy3.focus_tab({ direction = "left" }))
|
||||||
hl.bind(mainMod .. " + CTRL + RIGHT", hy3.focus_tab({ direction = "right" }))
|
--hl.bind(mainMod .. " + CTRL + RIGHT", hy3.focus_tab({ direction = "right" }))
|
||||||
|
|
||||||
-- Switch workspaces with mainMod + [0-9]
|
-- Switch workspaces with mainMod + [0-9]
|
||||||
-- Move active window to a workspace with mainMod + SHIFT + [0-9]
|
-- Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||||
for i = 1, 10 do
|
for i = 1, 10 do
|
||||||
local key = i % 10 -- 10 maps to key 0
|
local key = i % 10 -- 10 maps to key 0
|
||||||
hl.bind(mainMod .. " + " .. key, hl.dsp.focus({ workspace = i}))
|
hl.bind(mainMod .. " + " .. key, hl.dsp.focus({ workspace = i }))
|
||||||
hl.bind(mainMod .. " + SHIFT + " .. key, hl.dsp.window.move({ workspace = i }))
|
hl.bind(mainMod .. " + SHIFT + " .. key, hl.dsp.window.move({ workspace = i }))
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -211,12 +243,16 @@ hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
|
|||||||
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
|
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
|
||||||
|
|
||||||
-- Laptop multimedia keys for volume and LCD brightness
|
-- Laptop multimedia keys for volume and LCD brightness
|
||||||
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"), { locked = true, repeating = true })
|
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"),
|
||||||
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"), { locked = true, repeating = true })
|
{ locked = true, repeating = true })
|
||||||
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"), { locked = true, repeating = true })
|
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"),
|
||||||
hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"), { locked = true, repeating = true })
|
{ locked = true, repeating = true })
|
||||||
|
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"),
|
||||||
|
{ locked = true, repeating = true })
|
||||||
|
hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"),
|
||||||
|
{ locked = true, repeating = true })
|
||||||
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%+"), { locked = true, repeating = true })
|
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%+"), { locked = true, repeating = true })
|
||||||
hl.bind("XF86MonBrightnessDown",hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%-"), { locked = true, repeating = true })
|
hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%-"), { locked = true, repeating = true })
|
||||||
|
|
||||||
-- Requires playerctl
|
-- Requires playerctl
|
||||||
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { locked = true })
|
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { locked = true })
|
||||||
@@ -231,7 +267,7 @@ local suppressMaximizeRule = hl.window_rule({
|
|||||||
match = { class = ".*" },
|
match = { class = ".*" },
|
||||||
suppress_event = "maximize",
|
suppress_event = "maximize",
|
||||||
})
|
})
|
||||||
suppressMaximizeRule:set_enabled(true)
|
suppressMaximizeRule:set_enabled(false)
|
||||||
|
|
||||||
hl.window_rule({
|
hl.window_rule({
|
||||||
-- Fix some dragging issues with XWayland
|
-- Fix some dragging issues with XWayland
|
||||||
@@ -248,4 +284,12 @@ hl.window_rule({
|
|||||||
no_focus = true,
|
no_focus = true,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
hl.layer_rule({
|
||||||
|
name = "slurp",
|
||||||
|
match = {
|
||||||
|
title = "*slurp*",
|
||||||
|
},
|
||||||
|
blur = false,
|
||||||
|
})
|
||||||
|
|
||||||
require("rules")
|
require("rules")
|
||||||
|
|||||||
Reference in New Issue
Block a user