| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
| |
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.
|
| |
|
|
|
| |
taplo 0.10.0 renamed the release asset from taplo-full-linux-x86_64.gz
to taplo-linux-x86_64.gz.
|
| |
|
|
|
|
|
| |
Drop the per-file include hashes and explicit cp calls; walk firefox/
with find(1) and mirror the tree into the LibreWolf profile. Drop-in
new files (e.g. user.js, chrome/userContent.css) now deploy without
touching the script. Same pattern already in use for etc/.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
.chezmoiignore:
- remove create-efi.sh (deleted in UKI migration)
- remove dot-prefixed entries (.editorconfig, .github/, .worktrees/,
.githooks/, .stylua.toml, .prettierrc.json, .ruff_cache); chezmoi
already ignores source paths beginning with '.' by default (reserved
chezmoi names aside)
.chezmoi.toml.tmpl:
- drop unused data.hostname (not referenced by any template)
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
Track /etc/kernel/cmdline and enable default_uki/fallback_uki in
linux.preset. Remove create-efi helper (UKI is self-contained; only
needed once at install time). Update bootstrap to print the one-off
efibootmgr command instead of launching create-efi.
|
| |
|
|
|
| |
Cap at 8 GiB, zstd compression. Tune VM for RAM-backed swap:
high swappiness, no read-ahead clustering.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
| |
The grep-based filter only dropped lines starting with '#' and blank
lines, so 'xorg-xwayland # note' got passed to paru verbatim and failed
with 'could not find all required packages'. Replace all 11 call sites
with a single sed that strips trailing '# ...' comments AND blank lines,
so both full-line and inline comments are supported consistently
across pkg-apply, pkg-add, pkg-forget, pkg-status, pkg-list, and
unit-apply / unit-list / unit-status.
|
| |
|
|
|
|
|
| |
zbarcam opens an X11 preview window and bails with "unable to open X
display" on a pure-Wayland sway without an X server. xorg-xwayland is
~2MB and demand-spawned by sway, so the runtime cost when not scanning
is zero.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
zbarcam defaults to opening an X11 preview window, which fails on Sway
without XWayland ("unable to open X display"). --nodisplay runs the
scanner headlessly; we don't need the preview since -1 exits on the
first barcode anyway.
|
| |
|
|
|
| |
Reflect the new DOMAIN-VERB scheme and shape dispatchers introduced in
the justfile refactor.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
dispatchers
Adopt chezmoi-aligned vocabulary (add, forget, re-add, apply, diff, merge,
status) uniformly across four domains (dotfiles, etc, pkg, unit). Add
top-level dispatchers that sniff argument shape and delegate:
- contains '/': path -> etc-* (^/?etc) or dotfiles-*
- ends with .service/.timer/.socket/.mount/.target/.path: unit-*
- bare words: pkg-*
Fill in missing recipes: dotfiles-add/forget/re-add/diff/merge/status,
etc-merge, etc-forget (was etc-rm), unit-add/forget. Rename:
services-* -> unit-*, *-drift -> *-status, install/install-all -> pkg-apply,
fix -> pkg-fix, groups -> pkg-list, readd -> re-add, add/remove ->
pkg-add/forget, etc -> etc-status, etc-readd -> etc-re-add.
Top-level apply stays monolithic (chezmoi apply deploys dotfiles + /etc
atomically via the onchange template). sync = apply + pkg-fix + unit-apply.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
Split concerns: fmt-check (check-fmt) from lint. check-fmt mirrors fmt
with each tool's --check/-d flag. check runs both as a single quality
gate. A new .githooks/pre-commit runs 'just check' on every commit;
bypass with git commit --no-verify.
Also drop just --fmt --check and prettier --check from the lint recipe
(they're format checks, belong in check-fmt).
|
| |
|
|
|
| |
Required by the 'just lint' and 'just fmt' recipes for lua linting and
TOML format/lint respectively.
|
| |
|
|
|
|
|
|
|
|
| |
Inline directives for cases where the linter's shell/language dialect
doesn't match reality:
- init.lua: _G.P helper is intentional
- dot_zprofile: zsh tied arrays, $+commands, optional sourcing
- dot_zshrc: zsh brace-group-as-function-body
- ipython_config: 'c' is injected by IPython at load time
- doasedit: /bin/sh on Arch is bash, -O test is supported
|
| |
|
|
| |
Also removes a stray ANSI escape in treesitter.lua.
|
| |
|
|
|
|
| |
Module-local function avoids selene's incorrect_standard_library_use
lint and stops polluting the os namespace. Inner url variable renamed
to remove shadowing warning.
|