--- /dev/null
+-- kak: filetype=lua:tabstop=4:indentwidth=4
+-- ░█░█░█░█░█▀█░█▀▄░█░░░█▀█░█▀█░█▀▄░░░█▀▀░█▀█░█▀█░█▀▀░▀█▀░█▀▀
+-- ░█▀█░░█░░█▀▀░█▀▄░█░░░█▀█░█░█░█░█░░░█░░░█░█░█░█░█▀▀░░█░░█░█
+-- ░▀░▀░░▀░░▀░░░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀░░░░▀▀▀░▀▀▀░▀░▀░▀░░░▀▀▀░▀▀▀
+
+
+-- equalize the split to nearest neighbours
+local function equalize()
+ hl.dispatch(hl.dsp.layout("splitratio 1.0 exact"))
+end
+
+hl.bind("SUPER + SHIFT + E", equalize)
+
+-- split ratio selector for ultrawide displays
+local rootRatio = {}
+
+local function toggleRootRatio()
+ local ws = hl.get_active_special_workspace()
+ or hl.get_active_workspace()
+
+ if not ws or ws.tiled_layout ~= "dwindle" then
+ return
+ end
+
+ local id = ws.id
+ local ratio = rootRatio[id] == 1.334 and 1.0 or 1.334
+
+ hl.dispatch(hl.dsp.layout(
+ string.format("splitratio %.3f exact root", ratio)
+ ))
+
+ rootRatio[id] = ratio
+end
+
+hl.bind("SUPER + SHIFT + R", toggleRootRatio)
+
hl.bind(mainMod .. " + B", exec("$HOME/.config/hypr/scripts/browser_focus_or_run.sh"))
hl.bind(mainMod .. " + C", exec("noctalia msg panel-toggle clipboard"))
hl.bind(mainMod .. " + D", exec("noctalia msg panel-toggle launcher"))
--- hl.bind(mainMod .. " + SHIFT + D", exec("killall fuzzel || fuzzel --config=$HOME/.config/fuzzel/fuzzel-centered.ini"))
-hl.bind(mainMod .. " + E", exec("foot -a lf lf"))
-hl.bind(mainMod .. " + SHIFT + E", exec("dolphin"))
+-- SUPER+SHIFT+E reserved, see functions.lua
hl.bind(mainMod .. " + F", hl.dsp.window.fullscreen({ mode = "maximized" }))
hl.bind(mainMod .. " + SHIFT + F", hl.dsp.window.fullscreen({ mode = "fullscreen" }))
hl.bind(mainMod .. " + P", exec("foot -w 640x400 -a popup -H hyprpicker"))
hl.bind(mainMod .. " + SHIFT + P", hl.dsp.window.pin())
+-- SUPER+SHIFT+R reserved, see functions.lua
hl.bind(mainMod .. " + S", hl.dsp.window.float())
--- hl.bind(mainMod .. " + S", hl.dsp.layout("colresize +conf"))
--- hl.bind(mainMod .. " + SHIFT + S", hl.dsp.layout("colresize -conf"))
hl.bind(mainMod .. " + V", hl.dsp.layout("togglesplit"))
hl.bind(mainMod .. " + SHIFT + V", hl.dsp.layout("swapsplit"))
-- ~/.config/hypr/fragments/windowrules.lua
--- hide hyprbars on non-floating windows
+-- catchall for non-floating windows
hl.window_rule({
name = "nobar1",
match = {
float = false,
},
no_shadow = true,
- ["hyprbars:no_bar"] = true
+ ["hyprbars:no_bar"] = true,
+ no_wobble = true,
})
--- hide hyprbars on specific windows
+-- hide hyprbars on specific floating windows
hl.window_rule({
name = "nobar2",
match = {
["hyprbars:no_bar"] = true
})
+-- always floating
hl.window_rule({
name = "floating_enable",
match = {
hl.on("hyprland.start", function ()
hl.exec_cmd("~/.config/hypr/scripts/hyprinit.sh") -- also runs "openrc -U desktop"
+ hl.exec_cmd("/usr/libexec/pam_kwallet_init")
hl.exec_cmd("hyprpm reload")
hl.exec_cmd("env XDG_MENU_PREFIX=plasma- /usr/bin/kbuildsycoca6 --noincremental")
hl.exec_cmd("/usr/bin/noctalia")
blur = {
enabled = true,
- -- variant = "frost",
+ variant = "heat_shimmer",
size = 3,
passes = 1,
vibrancy = 0.1696,
- noise = 0.0696,
+ noise = 0.0117,
},
- -- wobble = {
- -- enabled = true,
- -- },
+ glow = {
+ enabled = false,
+ },
motion_blur = {
enabled = true,
- samples = 7,
+ samples = 32,
},
- -- wobble = {
- -- enabled = true,
- -- mesh = 22,
- -- stiffness =200,
- -- damping = 12,
- -- mass = 1,
- -- intensity = 0.2,
- -- value_epsilon = 0.25,
- -- velocity_epsilon = 2
- -- },
+ wobble = {
+ enabled = true,
+ mesh = 12,
+ stiffness = 200,
+ damping = 11,
+ mass = 0.9,
+ intensity = 0.2,
+ value_epsilon = 0.25,
+ velocity_epsilon = 2
+ },
},
})
-- See https://wiki.hypr.land/Configuring/Layouts/Dwindle-Layout/ for more
hl.config({
dwindle = {
- force_split = 3,
+ force_split = 2,
preserve_split = true, -- You probably want this
smart_split = false,
smart_resizing = true,
permanent_direction_override = false,
- special_scale_factor = 2,
+ special_scale_factor = 1,
split_width_multiplier = 1.5,
use_active_for_splits = true,
default_split_ratio = 1.0,
require("fragments.layerrules")
require("fragments.animations")
require("fragments.windowrules")
+require("fragments.functions")
-- For Noctalia Color templates
require("noctalia").apply_theme()
-- Generated by Noctalia
-local primary = "rgb(9b59ba)"
-local surface = "rgb(f5f1fa)"
-local on_surface = "rgb(1c1822)"
-local secondary = "rgb(784999)"
-local on_secondary = "rgb(ffffff)"
-local error = "rgb(e9899d)"
-local on_error = "rgb(1e1418)"
+local primary = "rgb(8fbcbb)"
+local surface = "rgb(2e3440)"
+local on_surface = "rgb(eceff4)"
+local secondary = "rgb(88c0d0)"
+local on_secondary = "rgb(2e3440)"
+local error = "rgb(bf616a)"
+local on_error = "rgb(2e3440)"
local function apply_theme()
hl.config({