| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
|
|
|
|
|
| |
Remove aerc, khal, khard, vdirsyncer from meta/mail.txt and delete their
configs (aerc/, vdirsyncer systemd override, aerc .desktop handler).
Point linkhandler mailto at xdg-open until a GUI client is set up.
Add systemd user unit for protonmail-bridge --noninteractive, tied to
graphical-session.target so it starts with the sway session.
|
| | |
|
| |
|
|
|
|
|
| |
Ctrl+Shift+PageUp/Down are ghostty's default jump_to_prompt binds on
Linux, not tab/split binds — they were mislabeled and unbound by
mistake. Restoring the defaults also reverts the Ctrl+Alt+Up/Down
attempt that never reached ghostty (swallowed before the terminal).
|
| |
|
|
|
|
|
| |
Requires OSC 133 markers from ghostty's zsh shell integration.
Ctrl+Alt+arrow avoids conflicts with letter chords in zsh/nvim and
the already-used Ctrl+Shift+Up/Down scroll binds. Only works outside
zellij since zellij consumes the PTY and never forwards OSC 133.
|
| |
|
|
|
| |
Double-quoting a zsh array slice joins elements with spaces; use the
(F) parameter expansion flag to join with newlines instead.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Zellij has no native "copy last command output" feature, and ghostty's
jump_to_prompt (Ctrl+Shift+J/K, via OSC 133) can't work inside zellij
because zellij sits between the shell and the terminal emulator.
Build it ourselves: a zle widget runs 'zellij action dump-screen --full',
finds the last two lines matching the prompt prefix (user@host:), and
pipes everything between them to wl-copy. Bound to Alt+Shift+Y.
Requires running inside zellij and at least two prompts in the scrollback.
|
| |
|
|
|
| |
wlc pipes stdin to stdout (visible) AND to wl-copy (clipboard).
Usage: `somecmd | wlc`
|
| |
|
|
|
|
|
|
|
|
|
| |
overseer.nvim removed save/load_task_bundle in the "task bundles get the
axe" refactor, which caused auto-session to error on every session restore:
/lua/plugins/session.lua:27: attempt to call field 'load_task_bundle'
(a nil value)
Remove the pre_save/pre_restore/post_restore hooks that called the removed
API. DAP breakpoint save/restore via save_extra_data is preserved.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
shell/nvim
Zellij's default Ctrl+* mode-entry keys (Ctrl+p/t/r/s/o/g/b/q) were
intercepted before reaching the inner shell/editor, shadowing zsh fzf
bindings (Ctrl+t), history navigation (Ctrl+p/n), nvim jumps (Ctrl+o),
save (Ctrl+s), etc.
Unbind all conflicting Ctrl+* entries and relocate mode-entry to
Alt+Shift+<first-letter-of-mode>:
Alt+Shift+P Pane
Alt+Shift+T Tab
Alt+Shift+R Resize
Alt+Shift+S Scroll
Alt+Shift+O Session
Alt+Shift+Z Locked (Z avoids Treewalker Alt+Shift+h/j/k/l swap)
Alt+Shift+Q Quit
TMUX-compat mode dropped. Only Ctrl+h/j/k/l remain bound in zellij (for
vim-zellij-navigator); every other Ctrl+* now passes through.
Requires fresh zellij session (kill-all-sessions -y) to take effect.
|
| | |
|
| | |
|
| |
|
|
|
|
| |
xdg-user-dirs-update runs on login and rewrites user-dirs.dirs with
localized defaults, clobbering the custom short paths. enabled=False
in user-dirs.conf is the official opt-out.
|
| |
|
|
|
|
|
| |
Re-exports WAYLAND_DISPLAY, SWAYSOCK, DBUS, SSH_AUTH_SOCK etc. from the
currently running sway process, so a zellij pane whose server was
started in a different session (SSH-attached, logout/login, etc.)
regains working GUI/clipboard/systemctl --user.
|
| |
|
|
|
|
|
|
|
|
|
| |
- seat * xcursor_theme Adwaita 24: announces the cursor via
cursor-shape-v1 for Wayland clients and exports XCURSOR_THEME/SIZE
to Xwayland, so Xwayland GTK apps no longer fall back to the bitmap X
cursor.
- exec gsettings color-scheme prefer-dark: GTK4 ignores the settings.ini
gtk-application-prefer-dark-theme key (GTK3 only); it reads the gnome
color-scheme gsetting. This fixes light-mode GTK4 apps (gnome
calculator, nautilus, modern GNOME apps).
|
| |
|
|
|
|
|
|
|
|
|
| |
- zprofile: set QT_QPA_PLATFORM="wayland;xcb" (xcb fallback for bundled
Qt), SDL_VIDEODRIVER="wayland,x11" (SDL2 defaults to X11). Drop
MOZ_ENABLE_WAYLAND (Firefox 121+ default).
- meta/wayland: add qt5-wayland and qt6-wayland so QT_QPA_PLATFORM=wayland
actually resolves.
- electron-flags.conf: global --ozone-platform=wayland, Wayland window
decorations, GTK4. Applies to all apps using the Arch electron wrapper.
Bundled-electron apps (slack-desktop, etc.) unaffected.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- New dot_config/systemd/user/swayidle.service, pulled in by
sway-session.target alongside mako/display-watcher/poweralertd. Same
lifetime as the rest of the session: starts after graphical-session,
restarts on failure, stops on logout.
- Drop the swayidle exec from sway config (was unmanaged background
process with no restart, no logging hookup).
- Revert etc/systemd/logind.conf overrides: swayidle handles idle-lock
directly via Wayland ext-idle-notifier, so the logind IdleAction
belt-and-suspenders is redundant. Run just etc-reset
/etc/systemd/logind.conf on the host to restore pristine.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
- logind: IdleAction=lock, IdleActionSec=5min. systemd emits a lock
signal at 5min idle (session becomes locked from logind PoV; swayidle
listens and invokes swaylock).
- swayidle: lock at 5min, blank display at 6min, lock before sleep.
Closes the gap where lid-close or manual suspend would wake to an
unlocked session.
- swaylock: add -i (--ignore-empty-password) to ignore accidental Enter.
- meta/wayland: add swayidle.
|
| |
|
|
|
| |
selene's neovim stdlib doesn't expose io.stdout:write/:flush. print()
goes to the same place in headless mode and is already allowed.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New recipes (new 'Updates' section after 'Day-to-day'):
- update: pkg-update nvim-update
- pkg-update: paru -Syu
- nvim-update: nvim --headless +'lua require("config.update").run()'
New dot_config/nvim/lua/config/update.lua drives the headless session:
clean orphan plugins, vim.pack.update with force=true (skips the confirm
buffer since this is unattended; changes still go to nvim-pack.log),
then :MasonToolsUpdateSync — the blocking variant intended for headless
Interactive :PackSync stays unchanged (confirm buffer remains visible
for reviewed updates).
|
| |
|
|
|
|
| |
Auto-writing it defeated the purpose — no feedback on what changed.
Now :PackUpdate and :PackSync show the confirm buffer; user reviews
and :w to apply or :q to cancel. Matches vim.pack's intended UX.
|
| |
|
|
|
|
|
|
|
| |
Upstream broke itself today by adding require('async') without shipping
lua/async.lua. I never use these mappings anyway. Removed the plugin
spec, setup call, <leader>r* keymaps, and the which-key group entry.
plenary.nvim stays — neogit still depends on it.
Run :PackClean afterwards to prune the on-disk plugin.
|
| |
|
|
|
|
|
|
| |
The seeded lockfile offered little value for a single-user setup: fresh
bootstraps will resolve version specs at install time, and any meaningful
pinning is already expressed in init.lua's vim.pack.add() specs. Added
an explicit .chezmoiignore entry so the runtime file doesn't show up as
drift.
|
| |
|
|
|
|
|
| |
The file is owned by vim.pack at runtime — tracking it causes constant
chezmoi drift on every plugin update. The create_ prefix writes it once
on fresh machines and leaves it alone after. Manually chezmoi re-add
when you want to snapshot a known-good revision set.
|
| |
|
|
|
|
|
| |
It drives its async git ops with internal vim.wait and makes the confirm
buffer current before returning. No need for a FileType autocmd: just
write the buffer if the filetype matches (guards the 'Nothing to update'
case where no buffer is created).
|
| |
|
|
|
|
| |
Using force=true hid all feedback. Now we let vim.pack.update open its
confirmation buffer (showing pending changes) and auto-:write it via a
one-shot FileType=nvim-pack autocmd. User sees what updated.
|
| |
|
|
|
| |
Uses vim.pack.get() and prints one line per plugin:
● (active) or ○ (orphan), name, short rev, version spec.
|
| |
|
|
|
|
|
|
|
|
| |
Wraps vim.pack for a more ergonomic workflow:
- :PackClean - delete plugins no longer declared in vim.pack.add()
(computed from vim.pack.get() where active == false)
- :PackUpdate - run vim.pack.update(nil, { force = true }); skips
the confirmation buffer
- :PackSync - :PackClean followed by :PackUpdate
|
| |
|
|
|
|
|
|
| |
- bootstrap.sh: the trailing backslash in the efibootmgr example is
literal text shown to the user, not shell line continuation.
Disable SC1003 with an inline directive and switch back to single
quotes so the backslash renders as-is.
- wifi-status.sh: reformat with shfmt -i 2 -ci -s.
|
| |
|
|
|
|
|
|
|
| |
bootstrap.sh is host-only bootstrapping and should not deploy into $HOME.
The xdg-user-dirs-update.service user unit (shipped enabled by the
xdg-user-dirs package) rewrites ~/.config/user-dirs.dirs on login,
clobbering the tracked short-path variant (docs/dl/pics/vids). Mask
it by symlinking to /dev/null.
|
| |
|
|
|
|
|
| |
Replace iwctl ANSI-stripping with busctl calls against net.connman.iwd
(a formally stable, documented D-Bus API) to get state and SSID, and
read signal strength directly from /proc/net/wireless. No more parser
fragility if iwctl's human-readable layout changes.
|
| |
|
|
|
|
|
| |
Replace sway exec launches with a sway-session.target that BindsTo
graphical-session.target and Wants mako, poweralertd, and a new
display-watcher.service. Services now get restart-on-failure, journal
integration, and clean shutdown when sway exits.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
Sway sets DISPLAY in its own environment at compositor startup when
xwayland support is enabled and the Xwayland binary is available, so
all children (terminals, scripts) inherit it automatically. The
zprofile override was only needed as a workaround while xorg-xwayland
was missing.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sway's XWayland is lazy — DISPLAY isn't set in sway's env until the
first X client connects, which means systemctl/dbus import-environment
runs too early and nothing downstream sees DISPLAY.
Setting DISPLAY=:0 in zprofile before 'exec sway' ensures sway itself
inherits it, and therefore so do all its child processes (terminals,
scripts, systemd user services via import-environment). XWayland will
spawn on demand when a client actually connects to :0.
Also drop the redundant fallback from rqr now that the session-wide
export covers it.
|
| |
|
|
|
|
|
|
|
|
|
| |
zbarcam needs an X11 display for the live camera preview, which sway
provides via XWayland. Two changes to make that reliable:
- sway/config: add DISPLAY to the systemd/dbus user-environment imports,
so anything launched through those paths (not just direct sway execs)
can reach XWayland.
- rqr: default DISPLAY to :0 (sway's default XWayland socket) when
unset, as a belt-and-suspenders fallback.
|