| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
Since the installer clones DOTFILES_REPO into ~/.dotfiles and stows from there, the in-repo dotfiles/ tree was dead weight. Nothing reads it at install time. I removed it (831 files) now that both machines are migrated.
The Makefile's stow / restow / reset / unstow / import targets and the dotfile-script unit suites moved to the dotfiles repo. They sit alongside the scripts they manage and run standalone (cd ~/.dotfiles && make ...). This Makefile keeps the VM-integration targets and the installer-helper suite (safe-rm-rf).
I updated CLAUDE.md and README.md so stow operations run from ~/.dotfiles, and the dotfile-management, theme, and unit-test sections point at the standalone repo. The README was already describing the old in-repo model from before the installer switched to cloning. This brings it in line.
|
| |
|
|
|
|
|
|
| |
The touchpad toggle's notification was too loud, and the eight notify sounds varied by ~13 dB in RMS loudness — bug and fail came out two to three times louder than info or security.
I added a --silent flag to notify (shows the popup, plays no sound) and a NOTIFY_VOLUME knob (paplay scale, default 65536) so the master level can drop without re-encoding. toggle-touchpad now passes --silent on both enable and disable. normalize-notify-sounds.sh measures each .ogg and shifts it to a uniform -31 dB mean. It writes through the file instead of mv-ing over it, so the stow symlinks survive when the script runs against the live sound dir. I re-encoded all eight sounds to the new level.
Tests: a new tests/notify suite (12 tests) covers --silent, the volume knob, flag composition, and the error paths.
|
| |
|
|
|
|
|
|
| |
I added a laptop-only waybar button that drops the machine into a low-power state and restores it on a second click. Engaging turns wifi off, sets the CPU energy-performance preference to power, dims the backlight to 35%, and stops network-only services (tailscale, proton-vpn, avahi, cups, wsdd, geoclue, sshd, fail2ban, syncthing). Bluetooth is left alone so earbuds keep working.
Disengaging replays the state recorded when airplane mode was engaged rather than writing hardcoded defaults. A lever already in its low-power position is left untouched: wifi that was already off stays off, and a service that was already stopped isn't restarted.
The indicator hides itself on machines with no battery, so desktops never show the button. State lives in $XDG_RUNTIME_DIR/airplane-state, and the bar refreshes the moment the toggle fires via a realtime signal.
|
| |
|
|
| |
Super+M now toggles the touchpad (M for Mouse), and the monitor scratchpad moves to Super+R (R for Resources, since btop is a resource monitor). The touchpad toggle was on Super+F9, which is now free. Super+Shift+M still switches to the monocle layout.
|
| |
|
|
|
|
|
|
| |
The $mod+F9 toggle and the toggle-touchpad / touchpad-auto scripts already worked, but the scripts lived only in ~/.local/bin and were never committed, and there was no way to see the touchpad's state at a glance.
I committed both scripts into the repo so stow installs them, and added a waybar indicator: a waybar-touchpad status script and a custom/touchpad module that shows a mouse glyph when the touchpad is on and a mouse-off glyph (in the dupre orange) when it's off. The scripts signal the module with pkill -RTMIN+9 waybar after each state change, so the icon updates the moment the touchpad toggles. touchpad-auto now runs at login via exec-once.
The waybar-touchpad script has unit tests under tests/waybar-touchpad/ covering the enabled, disabled, and missing-state-file cases.
|
| |
|
|
|
|
|
|
|
|
| |
Pyprland 3.4+ applies `group deny` to scratchpads, which routes their
border through col.nogroup_border* instead of col.*_border. Set
col.nogroup_border_active to #daa520 (same as col.active_border) so
the scratchpad and tiled active borders read identically.
Also drop `pseudotile = true` from the unused dwindle{} block — this
config uses layout = master, so the dwindle settings never take effect.
|
| |
|
|
|
|
|
| |
Pypr was sending stderr to /dev/null. So when its keybind clients
emitted red `hyprctl notify` banners after the daemon got stuck,
there was no trace to read. I followed the waybar / dunst /
hypridle / gammastep pattern already in the same exec-once block.
|
| |
|
|
| |
I set cursor:inactive_timeout to 2.0 so the cursor disappears after a couple of seconds without motion and reappears on the next move.
|
| |
|
|
| |
I set cursor:no_warps to true so super+j/k and other keyboard focus moves stop teleporting the cursor to the center of the newly focused window.
|
| |
|
|
|
|
| |
The `source = $HOME/.config/hypr/conf.d/*.conf` line was at the top of `hyprland.conf` (line 9), before the `general`, `input`, `monitor`, and other blocks. Hyprland reads top to bottom, so anything later in the main file silently overrode whatever `conf.d/local.conf` set. `local.conf` exists so one machine can override the shared defaults, for instance a HiDPI laptop bumping its monitor scale or shrinking gaps. None of that worked.
I moved the source line to the end of the file behind a labeled section comment. Now per-machine overrides take effect. To verify, I dropped a `general { gaps_in = 99 }` into a temporary file in `conf.d/` and reloaded. `hyprctl getoption general:gaps_in` came back as 99 instead of the main file's 25. I removed the test file and the value went back to 25.
|
| |
|
|
|
|
| |
The `input` block had `natural_scroll = true` only inside its `touchpad` sub-block. The BT mouse fell back to Hyprland's default and scrolled the opposite way from the touchpad. Switching between input devices flipped scroll direction.
I added `natural_scroll = true` at the top level of the `input` block. The touchpad's own setting still applies because Hyprland scopes touchpad config separately. Touchpad behavior is unchanged.
|
| |
|
|
|
|
| |
Pyprland 3.4 started applying a `group deny` windowrule to every scratchpad. In Hyprland that flag routes the border through `col.nogroup_border` and `col.nogroup_border_active` instead of the regular `col.*_border` colors. Hyprland's defaults for those two are pink and bright magenta, so every scratchpad came up with a glaring magenta frame after the 3.4 upgrade.
I set `col.nogroup_border_active` to dupre blue (#67809c) and `col.nogroup_border` to the same dark grey the inactive border already uses. Focused scratchpads read as a deliberate accent, unfocused ones blend in. The two new lines sit next to the existing `col.*_border` entries with a comment naming the cause, so the next person reading this config doesn't have to re-derive it.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
When focus is inside a special workspace (e.g. special:stash),
layoutmsg cyclenext/cycleprev only operates within that workspace,
trapping $mod+J inside the scratchpad overlay.
Detect workspace name starting with "special:" on focus navigation
(not move), toggle the overlay off first, re-read active window
state, then fall through to the normal layout/floating branches.
Add unit tests with a fake hyprctl harness in
tests/layout-navigate/. ```
|
| | |
|
| |
|
|
|
|
|
|
|
| |
- archsetup: add proton-vpn-gtk-app; configure logind to ignore lid switch
- hyprland.conf: autostart protonvpn-app minimized
- waybar: set battery module to BAT1 (velox)
- pypr: resize scratchpads to fit 80x24 minimum; enlarge monitor for btop
- gitconfig: add deepsat GHE credential helpers
- CLAUDE.md: update notes.org reference (lowercase)
|
| |
|
|
|
| |
Add Zoom.desktop override with QT_SCALE_FACTOR=1.5 for HiDPI displays.
Float all Zoom windows and fix disappearing popup menus.
|
| |
|
|
|
| |
Switch emacs to emacs-wayland for native Wayland/PGTK support.
Add Telegram tray autostart to hyprland.conf.
|
| |
|
|
|
|
| |
Fixed multilib, adwaita-qt, webkit2gtk, touchpad-indicator, tidaler,
pocketbook URL. Added post-archsetup review tasks for laptop setup.
Updated mbsyncrc for STARTTLS and waypaper config.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
Enable multilib repo for lib32/Steam packages. Move adwaita-qt5/qt6
to AUR, rename webkit2gtk to webkit2gtk-4.1, remove broken
touchpad-indicator-git, replace tidal-dl-ng with tidaler fork,
fix pocketbook URL. Add dconf GNOME interface settings to prevent
50s portal-gtk timeout. Add hyprland conf.d source pattern for
machine-local overrides.
|
| |
|
|
|
|
| |
Add bind (dig, host, nslookup) to supplemental packages and
systemd-resolvconf for wireguard DNS integration. Update calibre,
hyprland, hyprlock, qalculate, mimeapps, and waypaper state.
|
| |
|
|
|
|
| |
layoutmsg cyclenext only operates on tiled windows, so $mod+J was a
no-op when focus was on a floating/pinned scratchpad. Detect floating
state and use cyclenext dispatcher instead.
|
| |
|
|
| |
Prevents file open/save dialogs from disrupting master layout.
|
| |
|
|
| |
Removed stale sxhkdrc reference from lock screen keybinding comment.
|
| |
|
|
|
|
|
| |
Merge all mime associations into mimeapps.list as single source of truth.
Set emacsclient as default for all text/code files. Add TypeScript mime
override, emacsclient.desktop with fixed Exec line, and simplify
resetmimetypes to just restow + rebuild caches.
|
| |
|
|
|
|
|
|
| |
Hyprland 0.54 brings scrolling and monocle layouts into core, making
hyprpm plugins unnecessary. Remove hyprland-plugins-setup, focus-restore,
hyprpm pacman hook, and allfloat keybinding. Add layout-cycle script and
$mod+Shift+Arrow keybindings to cycle master/scrolling/monocle. Move cpio
to System Utilities section.
|
| |
|
|
|
| |
Demoted master windows now go to top of slave stack instead of bottom,
matching DWM's stack ordering behavior.
|
| |
|
|
|
|
|
|
| |
layout-resize: replace removed splitratio dispatcher with layoutmsg
mfact for master layout resizing.
waybar-netspeed: replace iwgetid/proc/net/wireless with iw commands
for SSID and signal strength (old tools no longer populated by kernel).
|
| |
|
|
|
| |
Foot deprecated [colors] section in favor of [colors-dark]. Updated
all three foot configs (main, dupre theme, hudson theme).
|
| |
|
|
|
| |
Remove hyprscrolling from plugin setup (now in core). Add hide_delay
workaround for pyprland bug #211 to all scratchpads.
|
| |
|
|
|
| |
Add monocle to layout cycle and waybar indicator. Fix scrolling layout
move (swapwindow) and resize (resizeactive). Add layout-resize script.
|
| |
|
|
|
| |
Dim at 5min, lock at 7min, remove DPMS off and suspend. Update calibre
sort history and window geometry.
|
| |
|
|
|
|
| |
Removed center windowrules for all 6 pyprland scratchpad classes per
maintainer guidance. Rules conflicted with pyprland's float management
and were not the cause of bug #211.
|
| |
|
|
|
|
|
| |
Add workspace allfloat toggle on mod+shift+f (was togglefloating, now
on mod+shift+space only). Add scripts/setup-chess.sh for En Croissant,
lc0, Maia, and Stockfish setup. Update log-cleanup to use filename
dates instead of mtime. Update ssh and calibre configs.
|
| |
|
|
|
|
|
| |
Add rustup toolchain manager to developer_workstation (before AUR
packages that need rust to compile). Add log-cleanup cron job with
test validation. Update ISO glob for archangel naming. Add dunst
icon theme, hyprlock animations, waybar log filtering.
|
| |
|
|
|
|
|
|
| |
Add waybar custom/pocketbook module with icon and on-click toggle.
Add $mod+P keybind and exec-once for pocketbook --hidden.
Add waybar CSS for pocketbook icon styling.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
| |
|
|
|
|
| |
Scratchpad windows stayed at their tiled position when returned to
floating via shift+mod+space. Add center windowrules so all pyprland
scratchpads snap back to center whenever they become floating.
|
| |
|
|
|
|
|
|
|
| |
to DWM
Launch polkit-kde-authentication-agent at startup. Restart backend
portals (GTK, Hyprland) before the main xdg-desktop-portal to prevent
50s GTK settings proxy timeout. Make ranger DWM-only since Hyprland
uses nautilus and dirvish.
|
| |
|
|
|
| |
hyprland-plugins-setup was skipping hyprpm reload when plugins were
already enabled, so they were never loaded into the running session.
|
| |
|
|
|
| |
Force Civ5XP into real Hyprland fullscreen so waybar is hidden
per-workspace instead of requiring manual toggle.
|
| |
|
|
|
| |
Term scratchpads now 50x70%, renamed term2 to ai-term with updated
app-id. Updated calibre window state.
|
| |
|
|
|
|
| |
Pyprland 3.x reads ~/.config/pypr/config.toml, not
~/.config/hypr/pyprland.toml. Remove obsolete config, update
scratchpad sizes to 50%x60% in the correct file.
|
| |
|
|
|
| |
Add texlive-fontsextra to archsetup for fontawesome5 resume icons.
Change fullscreen screenshot from $mod+Print to Ctrl+$mod+S.
|
| |
|
|
|
|
| |
Enable cursor warping on focus change (no_warps=false) so swap-with-master
moves cursor to master. Enable float_switch_override_focus so new tiled
windows get focus when launched from floating scratchpads.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
Scratchpads set to 50% width (music at 60%). Adds toggle-scratchpad
utility for waybar click handling.
|
| |
|
|
|
|
|
| |
Replace single clock module with custom/date (calendar tooltip) and
custom/worldclock (multi-timezone tooltip from worldclock.conf).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
| |
|
|
|
|
|
|
|
|
| |
Replace per-workspace SVG mapping with hybrid approach: two circle SVGs
(active gold, inactive dark) as background-image with text overlay for
workspace numbers. Update arch-logo.svg with padded/crisp variant.
Remove sysmonitor margin to fix bar height inflation. Remove mod+0
binding to restrict workspaces to 1-9. Sync dupre theme files.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|