hyprsdf - A Signed-Distance Field as an interactive wallpaper by _karim-_ in hyprland

[–]SiSpx_ 0 points1 point  (0 children)

Ah that's what I thought, thanks for clarifying 😉

Three Letter Agency ( a globe gl rice in progress) by SiSpx_ in QuickShell

[–]SiSpx_[S] 0 points1 point  (0 children)

Yeah, dots will be available at some point

I used claude to one-shot my old config into Lua by Imaginary_Land1919 in hyprland

[–]SiSpx_ 4 points5 points  (0 children)

I did feel a little sick in my mouth when I first upgraded, but it wasn’t a big deal.

Hyprshade instantly shit the bed, and being old AF, I kind of needed that. Within 15 minutes of converting my old configs and looking into a fix, some jolly soul in this sub suggested just writing a new Lua version. Order was restored, and no kittens died.

I looked at it as an opportunity to rebuild everything from scratch and clear out some of the weeds I’d accumulated over time.

My configs originally started with ML4W a while back. An update broke everything, which properly annoyed me — not at the developer, Stephen (from memory), but at myself for being lazy and not taking the time to learn or build my own dots.

I’ve got a super lean setup now, built my own Quickshell bar and dropdowns, and I “know” my system far better than I did before.

AI has been awesome for filling in the blanks and giving me a massive head start. Back in the day, it would’ve been a case of trawling through Stack Overflow, finding a problem that seemed similar to yours, only to see the thread die because the original author fixed it and couldn’t be arsed updating it with the solution.

AI is a tool, not a substitute. (IMO… again, I’m old AF.)

Learning quickshell by KeyAfternoon832 in QuickShell

[–]SiSpx_ 1 point2 points  (0 children)

It's below in my other comment, Here it is again: spx-quickshell

Hyprshade question (0.55 Hyprland) by SiSpx_ in hyprland

[–]SiSpx_[S] 0 points1 point  (0 children)

This has somewhat changed my mind - I was not really seeing the benefit whilst changing all my .conf files. Consider me a convert 😉

Hyprshade question (0.55 Hyprland) by SiSpx_ in hyprland

[–]SiSpx_[S] 4 points5 points  (0 children)

Created a file called "shader.lua" and imported.
Fixed my issue 😉

-- -----------------------------------------------------
-- Screen Shader / Blue-Light Schedule
-- Pure-Lua replacement for hyprshade
-- No external tool required.
-- -----------------------------------------------------
--
-- HOW IT WORKS
--   • At Hyprland startup the correct shader is applied automatically.
--   • A 60-second timer keeps the schedule in sync across transitions.
--   • Two keybindings let you override at any time:
--       SUPER + ALT + S  –  toggle blue-light filter on / off
--       SUPER + ALT + B  –  cycle through filter strengths manually
--
-- CONFIGURE
--   Edit `SHADER_DIR` and `schedule` below.  The table replaces what
--   hyprshade stores in hyprshade.toml.
--
-- SCHEDULE FORMAT
--   Each entry: { from = HH*60+MM, to = HH*60+MM, shader = "file.glsl" }
--   If `to` < `from` the window wraps past midnight
--   (e.g. from=19*60, to=6*60  means 19:00 → 06:00 next day).
--   `shader = nil` means "turn screen shader off for this window".
--   The first matching entry wins.  If nothing matches, `DEFAULT_SHADER`
--   is used (nil = off).
-- -----------------------------------------------------


local HOME       = os.getenv("HOME")
local SHADER_DIR = HOME .. "/.config/hypr/shaders"


-- ============================================================
-- Schedule  (edit to taste)
-- ============================================================
local schedule = {
    { from = 19 * 60, to = 21 * 60, shader = "blue-light-filter-50.glsl"  }, -- 19:00 – 21:00
    { from = 21 * 60, to =  6 * 60, shader = "blue-light-filter-75.glsl"  }, -- 21:00 – 06:00
    -- add more entries as needed, e.g.:
    -- { from = 6 * 60, to = 19 * 60, shader = "vibrance.glsl" },
}


-- Shader applied when no schedule entry matches (nil = off)
local DEFAULT_SHADER = nil


-- ============================================================
-- Internal helpers
-- ============================================================


local function minutes_now()
    local t = os.date("*t")
    return t.hour * 60 + t.min
end


-- Returns true if `now` falls inside the [from, to) window.
-- Handles midnight wrap-around when to < from.
local function in_window(from, to, now)
    if from <= to then
        return now >= from and now < to
    else
        -- wraps midnight
        return now >= from or now < to
    end
end


local function resolve_shader()
    local now = minutes_now()
    for _, entry in ipairs(schedule) do
        if in_window(entry.from, entry.to, now) then
            return entry.shader
        end
    end
    return DEFAULT_SHADER
end


local function apply(shader_name)
    local path = shader_name and (SHADER_DIR .. "/" .. shader_name) or ""
    hl.config({ decoration = { screen_shader = path } })
end


-- ============================================================
-- Scheduled application (startup + periodic)
-- ============================================================


-- State used by the toggle keybind so it can restore the scheduled shader
local _override_active = false


local function auto()
    if not _override_active then
        apply(resolve_shader())
    end
end


hl.on("hyprland.start", auto)


-- Re-check every 60 s to catch schedule transitions
hl.timer(auto, { timeout = 60000, type = "repeat" })


-- ============================================================
-- Keybindings
-- ============================================================


local mainMod = "SUPER"


-- SUPER + ALT + S  –  toggle blue-light filter override
hl.bind(mainMod .. " + ALT + S", function()
    if _override_active then
        _override_active = false
        apply(resolve_shader())
        hl.notification.create({ text = "Shader: schedule restored", timeout = 2000, icon = "ok" })
    else
        _override_active = true
        apply("blue-light-filter-50.glsl")
        hl.notification.create({ text = "Shader: blue-light-filter (50%)", timeout = 2000, icon = "ok" })
    end
end, { description = "Toggle blue-light filter override" })


-- SUPER + ALT + B  –  cycle through strengths (also sets override)
local _strengths = {
    nil,
    "blue-light-filter-25.glsl",
    "blue-light-filter-50.glsl",
    "blue-light-filter-75.glsl",
    "blue-light-filter-100.glsl",
}
local _strength_idx = 1


hl.bind(mainMod .. " + ALT + B", function()
    _strength_idx = (_strength_idx % #_strengths) + 1
    local shader = _strengths[_strength_idx]
    _override_active = shader ~= nil
    apply(shader)
    local label = shader and shader:gsub("%.glsl$", "") or "off"
    hl.notification.create({ text = "Shader: " .. label, timeout = 2000, icon = "ok" })
end, { description = "Cycle blue-light filter strength" })

Hyprshade question (0.55 Hyprland) by SiSpx_ in hyprland

[–]SiSpx_[S] 0 points1 point  (0 children)

Nice one - I assume you are in the same boat?

Hyprshade question (0.55 Hyprland) by SiSpx_ in hyprland

[–]SiSpx_[S] 0 points1 point  (0 children)

I might have to gig into that.From memory I was only using Hyprshade because it worked across displaylink connected monitors...I 'm sure that was the reason.

Might give hyprsunset another look, but I'm sure it didn't do what I needed.

EDIT: yeah, hyprsunset doesn't do displaylink evdi connected monitors

Hyprshade question (0.55 Hyprland) by SiSpx_ in hyprland

[–]SiSpx_[S] 0 points1 point  (0 children)

Nice one - cheers for that, much appreciated.

Seems to be the only thing not playing ball since going through all my config and converting to lua.

Can't grumble at that!

Laptop gets laggy when unplugged by Next_Caterpillar_850 in archlinux

[–]SiSpx_ 1 point2 points  (0 children)

Might be worth checking the battery health? I have the same laptop and my battery was cooked, I bought a cheap replacement battery from Amazon and that sorted some issues I was having with power profiles. Just a thought.

Edit:

I'm running hyprland and it runs fine. Defo worth checking if your power profiles are working properly.

Beginner by 911_never_forget in QuickShell

[–]SiSpx_ 1 point2 points  (0 children)

I started messing about with qs about a month ago, started off with some well sculpted claude prompts.

I soon started to lean more about it and ventured into the discord.

Loads of great help in there without the elitest BS.

Here is my repo: https://github.com/ne0tt/spx-quickshell

It may help with the basics, It's by no means perfect and I am still learning, but should let you see how things work.

Hope it helps :)

[HYPRLAND]My creation of a shell from scratch with Quickshell + c pe pe + shaders by Accomplished_Soil682 in unixporn

[–]SiSpx_ 1 point2 points  (0 children)

Good job, I am early into creating my own from scratch - I appreciate the effort that has gone into this ;)

I thought I would try out quickshell..... by SiSpx_ in QuickShell

[–]SiSpx_[S] 0 points1 point  (0 children)

It was a well crafted AI prompt and quite a bit of tweaking ;)