Commit graph

54 commits

Author SHA1 Message Date
4c497ed538 fix(hyprlock): make input field always visible
With fade_on_empty=true, a 0.3-alpha inner_color and placeholder_text=$LAYOUT
(which resolves empty under fcitx5), the empty input field faded to nothing —
only the clock rendered and there was no visible way to type the password.

- fade_on_empty = false
- inner_color alpha 0.3 -> 0.6
- static placeholder 'Enter password' instead of $LAYOUT

Also document the graceful emergency unlock (pkill -USR1 hyprlock) in
lock.sh: SIGTERM/SIGKILL on a running lock latches Hyprland's crashed-
lockscreen state, requiring hl.clear_crashed_lockscreen() to recover.

Clarify in hyprlock.conf that the fingerprint auth block is for Chester and
is a no-op on machines without fprintd (e.g. Rutherford).
2026-08-29 09:34:30 +09:00
f9553329ef fix(hypr): unify special workspace, drop 'magic' name
The Lua conversion had introduced a named 'magic' special workspace on the
SUPER+S keybinding while KeePassXC and the terminal still targeted the default
'special' workspace, splitting them into two separate scratchpads and making
KeePassXC unreachable. Route everything through the single default special
workspace to match the original .conf behavior.
2026-08-27 19:43:36 +09:00
Jeena
997f112baa fix: drop upstream multi-GPU workarounds that don't work on Chester
Restore hypridle.conf to the working Chester baseline (Step 1 dim + simple
step-3 resume) keeping our after_sleep_cmd (sleep 2; dpms on). Remove the
orphaned wake-display.sh / unstick-display.sh scripts added upstream for the
multi-GPU black-screen workaround.
2026-08-24 10:18:08 +09:00
Jeena
d0cfa59fb0 chore(hosts): drop redundant return {} from host lua files
require() only needs the module's side effects; the returned value is
ignored by hyprland.lua. Chester.lua and example.lua now match
Rutherford.lua in ending after their config statements.
2026-08-24 10:15:06 +09:00
Jeena
6365e1d122 refactor(hosts): never load example.lua; make it a pure template
hyprland.lua now just uses its defaults when no hosts/<hostname>.lua
matches, instead of requiring hosts/example.lua. example.lua is kept only
as a documented template for contributors.
2026-08-24 10:15:06 +09:00
Jeena
e9f65e1675 chore(hypr): remove legacy .conf configs now that Lua is active
Hyprland loads hyprland.lua (not hyprland.conf) when present, so the
hyprlang configs are dead weight. Delete the Hyprland .conf files and
their gitignored host .conf counterparts, leaving only hypridle.conf and
hyprlock.conf (used by separate tools that still use hyprlang).
2026-08-24 10:15:06 +09:00
Jeena
2e6e19348a fix(hosts): set Chester display scaling to 1.5
Keeps the 2880x1800 internal panel at a comfortable virtual 1920x1200.
2026-08-24 10:11:22 +09:00
Jeena
b4fa650685 feat: convert hypr config to Lua and add Chester host
- Add Lua equivalents for hyprland, autostart, keybindings, programs, windowrule
- Add per-host Lua configs (Chester, Rutherford, example) with hostname detection
- Rename old host 'William' to 'Chester'; fix 2x scaling on the 2880x1800 panel
- Update .gitignore to track *.lua host files instead of example-host.conf
2026-08-24 10:11:22 +09:00
Jeena
00d0cac9e8 fix: black screen on wake from suspend (hypridle)
Enable misc:key_press_enables_dpms / mouse_move_enables_dpms so the
compositor re-enables the display on input when hypridle's after-sleep
dpms-on races with GPU resume. Also delay after_sleep_cmd dpms-on by 2s.

Fixes black Hyprland VT after wake while kernel console stays visible.
2026-08-24 10:11:22 +09:00
1384fc68da temp: disable hypridle auto-lock (causes black screen on multi-GPU)
Re-enable once the Aquamarine layer-surface orphan issue or
the dual-GPU buffer fight root cause is resolved in upstream.
2026-08-19 14:37:06 +09:00
7e9bf498ff fix: remove dim step that leaks orphaned layer surfaces
dim creates a wlr-layer-shell surface that Hyprland never cleans up
when the process exits — leaves an opaque full-screen overlay (pid=-1)
covering the entire display until the layer tree is rebuilt.

Removing step 1 (dim) from hypridle prevents future occurrences.
unstick-display.sh now restarts waybar to force a layer tree rebuild
as a recovery measure.
2026-08-19 14:30:09 +09:00
7d2a0100e9 fix: handle multiple Hyprland sockets in recovery/wake scripts
Both scripts used ls | head -1 to find the socket, which picks the wrong
(dead) session when old socket dirs linger. Now iterates over all sockets
and picks the one that actually responds.
2026-08-19 14:24:37 +09:00
24344598e9 fix: prevent black lock screen on dual-GPU system
- AQ_DRM_DEVICES=/dev/dri/card0 forces Aquamarine to use only the
  Intel iGPU, avoiding EGL_BAD_MATCH errors from the NVIDIA RTX 3060
  after VT/DPMS cycles (page-flip lockups, black display)
- lock.sh: guard against duplicate hyprlock instances (second instance
  steals surfaces, leaves screen black)
- lid-close.sh: same guard for laptop
- wake-display.sh: conditional DPMS cycle (only when display is off)
  to restore hyprlock surfaces without flicker
- unstick-display.sh: emergency recovery script for tty3
2026-08-15 19:22:38 +09:00
6199866e4c fix: make portal startup uwsm-aware to stop light-mode race
Logging in via a bare Hyprland session never activates
graphical-session.target, so the systemd xdg-desktop-portal units can't
start. The old script worked around this by killing and relaunching the
portals manually, but that delayed the portal past waybar/chromium
startup, so they intermittently came up in light mode.

Switch to the "Hyprland (uwsm-managed)" session: uwsm activates
graphical-session.target and systemd starts the portals in the right
order. The startup script now detects that target and bows out, falling
back to the manual launch only on a bare session (e.g. another machine
without uwsm). Document uwsm in the README.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-13 16:47:44 +09:00
6ece13e84b fix: update config for Hyprland 0.55 breaking changes
Remove dwindle:pseudotile option (removed in 0.55) and switch the
togglesplit keybind to layoutmsg, togglesplit (dispatcher reworked
in 0.54).
2026-05-16 01:15:55 +00:00
Jeena
ebea0fd6ec feat: add mirror-display toggle to launch menu
Adds a "Mirror Display" entry that calls a helper script which finds
the first connected non-internal monitor and toggles mirroring of
eDP-1 onto it via hyprctl. Use case: plugging into a conference room
TV/projector while travelling.

Also fixes the menu's "Screenshot full" entry to capture the active
output instead of the hardcoded DP-1, matching the equivalent fix to
the Ctrl+Print keybind.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 12:44:11 +00:00
Jeena
8ac4023dc1 fix: capture active monitor in screenshot bind instead of hardcoded DP-1
Ctrl+Print was tied to DP-1, so it failed on the laptop alone or with
a different external. Using -m active picks the currently focused
output, so the same bind works on any host.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 12:30:50 +00:00
Jeena
7b99932299 feat: add wob overlay for volume and brightness keys
Move FIFO setup and percentage emission into helper scripts so the
Hyprland config has no raw $VAR references — Hyprland's parser
substitutes $varname at parse time, which mangled awk's $2 and
$HYPRLAND_INSTANCE_SIGNATURE and left binds broken after reload.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 12:03:43 +00:00
Jeena
80d2b978ee feat: increase touchpad sensitivity to 0.33 2026-05-09 10:42:12 +09:00
Jeena
e7add39b93 feat: enable fingerprint unlock in hyprlock 2026-05-09 08:36:01 +09:00
Jeena
11d2d51544 fix: lock screen on lid close without desktop flash on open
- Add lid-close.sh: starts hyprlock in background and immediately cuts
  the display via dpms off, so the display is dark while hyprlock renders
- William.conf: bind lid close to lid-close.sh; bind lid open to kill dim
  and turn display back on
- lock.sh: pass --no-fade-in to hyprlock
- hyprlock.conf: disable fadeOut animation
- hypridle.conf: add inhibit_sleep = 3 and use loginctl lock-session
2026-05-09 08:36:01 +09:00
0f64cf7137 Add korean keyboard with fcitx5 2026-04-30 18:24:31 +09:00
14a94a4ece feat: auto-mute audio on lock and unmute on unlock 2026-04-11 06:54:59 +00:00
70f451039d Fix window rule issues in 0.54.2 2026-03-11 23:24:37 +09:00
e553be7e42 Add gestures, remove magic workspace name 2026-01-28 15:43:16 +01:00
94dfc20b24 Fix windowrules and add host-config 2026-01-28 06:39:39 +01:00
ed43720384 Fix 0.54.0 problems with windowrules
It still has problems with exec and putting the windows
into the right place.
2026-01-10 15:04:13 +09:00
b53f54deb1 Replace OBS start/stop with SUPER ALT, TAB
F12 was opening stuff in the browser.
2025-12-18 13:33:45 +09:00
f2a67b3704 Switch OBS start/stop from F10 to F12
F10 is already used for screenshots.
2025-12-18 13:24:24 +09:00
46e60f530d Add possibility to have host specific menu lines in tofi
For the Shift+SUPER custom menu I wanted to be able to add some
copy and paste things which I don't want to have everywhere
especially not uploaded and stored in git.

Now it's possible to have a aditional menu-{hostname}.list
where you can put extra things for this specific host. I added
there things like:

Phone=echo "012345678" | wl-copy

because I often need this specific phone number and don't want to need
to start the Contacts app and search for the number and copy it.

I'm planning to add more host specific things.
2025-12-17 11:47:24 +09:00
d018b60fe2 Close tofi on second press of SUPER
I didn't like that if I pressed SUPER accidentally, I had to press
ESC which is somewhere compleatly different on the keyboard. This
way it's much easier to close tofi.
2025-12-16 07:55:01 +09:00
de7375bfb7 Add idle-inhibit
Sometimes I don't want the computer to go to sleep bacause I'm
running something in the background. for that I always used
systemd-inhibit sleep 999999 manually on the terminal, but I want
it to be easy to use without remembering the whole command every
time.

Therefor I added a custom button to waybar which does that for me.
2025-12-13 14:27:09 +09:00
bc0d3a7737 Add xdg-desktop-portal-hyprland as dependency
Also to start it, for some reason it needs to be killed and
there needs to be a sleep, etc. to avoid some race conditions.
Therefor I added this weird shell script to start it.
2025-12-13 14:14:04 +09:00
0633ecc35f Change calling the custom menu to SHIFT SUPER
Somehow it was annoying to have both rofi menus on the same key
because they did not open in the same order every time
so I had to read and look which one has opened this time
before I could start searching for what I was looking for.
2025-11-13 10:22:30 +09:00
07686b7e37 Change exit hyprland to SHIFT M
Too many times I pressed SUPER M by accident because I wanted to
press SUPER W to close something. So now closing hyprland is
SUPER SHIFT M instead.
2025-10-24 13:45:32 +09:00
43af708c16 Remove 3 Chrome instances from autostart 2025-10-19 18:52:25 +09:00
e7d3d710ec Remove GTK theme from env 2025-10-14 22:43:33 +09:00
f2da2174d3 Disable follow mouse focus for floating windows 2025-09-26 14:20:51 +09:00
5c19b4943e Comment out geastures
After an update the geasture was invalid, because I don't use a
trackpad but just the mouse I am uncommenting it.
2025-09-26 13:11:15 +09:00
0241cfa63f Remove transparency from floating browser window
When I have a Picture-in-Picture video I like to open it and float
it on top of everything so it's always visible. But when it becomes
inactive the background shines through like with all other inactive
windows. This patch makes the opacity to 1.0 so the background doesn't
shine through and it's easier to watch the video.
2025-09-26 13:08:58 +09:00
5c1b447b02 Set force_split = 2 in hyprland.conf
It felt always random where a new window would be opened, turns
out it was set to smart_split so it would check where tho mouse
cursor is and split to that side.

With this change it will always open right/bottom.
2025-09-13 22:25:37 +09:00
8d7981e027 Kill dim on wakeup 2025-09-13 22:24:58 +09:00
a17aa97d68 Fix timeout times in hypridle
For some reason when there was too much time between dim
and lock it would always wake up and stay awake for ever.
2025-09-13 21:51:29 +09:00
455943ef3d Declutter and comment hypridle.conf 2025-09-12 22:23:07 +09:00
1b9fff48b1 Add history file to launch-menu 2025-09-11 13:49:20 +09:00
4ba91b1753 Add hyprpick color picker keybindings 2025-09-11 09:05:30 +09:00
57335d492a Add key bindings for OBS 2025-09-05 22:59:17 +09:00
113421ccef Resize the wallpaper to fix exactly my screen 2025-09-04 22:20:25 +09:00
973e3da700 Add screenshots 2025-09-02 10:47:35 +09:00
13033352e5 Fix hyprshot path 2025-08-31 16:16:42 +09:00