diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json index 79f6043..1e2b7ed 100644 --- a/.config/nvim/lazy-lock.json +++ b/.config/nvim/lazy-lock.json @@ -1,33 +1,33 @@ { "LuaSnip": { "branch": "master", "commit": "73813308abc2eaeff2bc0d3f2f79270c491be9d7" }, "NvChad": { "branch": "v2.5", "commit": "f107fabe11ac8013dc3435ecd5382bee872b1584" }, - "base46": { "branch": "v3.0", "commit": "db58475d3fd2a16f9b1467d6895e3c4c195ed7dd" }, + "base46": { "branch": "v3.0", "commit": "884b990dcdbe07520a0892da6ba3e8d202b46337" }, "brightburn.vim": { "branch": "master", "commit": "fc0d2fafc51e86d6065acd54b5e82e686019ff2f" }, "cloak.nvim": { "branch": "main", "commit": "648aca6d33ec011dc3166e7af3b38820d01a71e4" }, "cmd.nvim": { "branch": "main", "commit": "540174697858d244ae1794a37521c0c94e3098a0" }, - "cmp-async-path": { "branch": "main", "commit": "0ed1492f59e730c366d261a5ad822fa37e44c325" }, + "cmp-async-path": { "branch": "main", "commit": "f8af3f726e07f2e9d37672eaa9102581aefce149" }, "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" }, - "cmp-nvim-lsp": { "branch": "main", "commit": "bd5a7d6db125d4654b50eeae9f5217f24bb22fd3" }, - "cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" }, + "cmp-nvim-lua": { "branch": "main", "commit": "e3a22cb071eb9d6508a156306b102c45cd2d573d" }, "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, "conform.nvim": { "branch": "master", "commit": "9d6f881a4047a51c7709223dcf24e967633c6523" }, - "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, + "friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" }, "gitsigns.nvim": { "branch": "main", "commit": "1ee5c1fd068c81f9dd06483e639c2aa4587dc197" }, "golf": { "branch": "main", "commit": "abf1bc0c1c4a5482b4a4b36b950b49aaa0f39e69" }, "gopher.nvim": { "branch": "main", "commit": "295e21e637f9194a4d2bc34622d324a88b028141" }, "gruvbox": { "branch": "main", "commit": "5e0a460d8e0f7f669c158dedd5f9ae2bcac31437" }, "guihua.lua": { "branch": "master", "commit": "c49a0fb7346586a1b1431d7e407f943c4164d8cb" }, "harpoon": { "branch": "master", "commit": "1bc17e3e42ea3c46b33c0bbad6a880792692a1b3" }, - "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, - "lazy.nvim": { "branch": "main", "commit": "a1380a8461ab115d69ac6a570a92611969e16c3a" }, + "indent-blankline.nvim": { "branch": "master", "commit": "d28a3f70721c79e3c5f6693057ae929f3d9c0a03" }, + "lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" }, "lsp_signature.nvim": { "branch": "master", "commit": "62cadce83aaceed677ffe7a2d6a57141af7131ea" }, "mason-nvim-dap.nvim": { "branch": "main", "commit": "86389a3dd687cfaa647b6f44731e492970034baa" }, "mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" }, "menu": { "branch": "main", "commit": "7a0a4a2896b715c066cfbe320bdc048091874cc6" }, "minty": { "branch": "main", "commit": "aafc9e8e0afe6bf57580858a2849578d8d8db9e0" }, "navigator.lua": { "branch": "master", "commit": "0ba1be08ba383f0f73ca467694afe0270f95fad5" }, - "nvim-autopairs": { "branch": "master", "commit": "23320e75953ac82e559c610bec5a90d9c6dfa743" }, - "nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" }, + "nvim-autopairs": { "branch": "master", "commit": "59bce2eef357189c3305e25bc6dd2d138c1683f5" }, + "nvim-cmp": { "branch": "main", "commit": "da88697d7f45d16852c6b2769dc52387d1ddc45f" }, "nvim-dap": { "branch": "master", "commit": "7367cec8e8f7a0b1e4566af9a7ef5959d11206a7" }, "nvim-dap-go": { "branch": "main", "commit": "b4421153ead5d726603b02743ea40cf26a51ed5f" }, "nvim-dap-ui": { "branch": "master", "commit": "cf91d5e2d07c72903d052f5207511bf7ecdb7122" }, @@ -35,10 +35,10 @@ "nvim-lspconfig": { "branch": "master", "commit": "db8fef885009fdec0daeff3e5dda92e1f539611e" }, "nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" }, "nvim-tree.lua": { "branch": "master", "commit": "87d096a39cb2d5d43e6771563575ff042a79f48b" }, - "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, + "nvim-treesitter": { "branch": "main", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, "nvim-treesitter-context": { "branch": "master", "commit": "41847d3dafb5004464708a3db06b14f12bde548a" }, "nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" }, - "nvim-web-devicons": { "branch": "master", "commit": "b8221e42cf7287c4dcde81f232f58d7b947c210d" }, + "nvim-web-devicons": { "branch": "master", "commit": "737cf6c657898d0c697311d79d361288a1343d50" }, "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, "py.nvim": { "branch": "main", "commit": "cc68e1adab6ff02f6d678abfbe95949391880b1a" }, "render-markdown.nvim": { "branch": "main", "commit": "48934b49a2363b49ae1d698ed4cb30fb79d7efe8" }, @@ -54,7 +54,7 @@ "telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" }, "tokyonight.nvim": { "branch": "main", "commit": "4d159616aee17796c2c94d2f5f87d2ee1a3f67c7" }, "trouble.nvim": { "branch": "main", "commit": "f176232e7759c4f8abd923c21e3e5a5c76cd6837" }, - "ui": { "branch": "v3.0", "commit": "03b9718140375e7f3f5e4f3e04bc2b6c907440ec" }, + "ui": { "branch": "v3.0", "commit": "cb75908a86720172594b30de147272c1b3a7f452" }, "undotree": { "branch": "master", "commit": "0f1c9816975b5d7f87d5003a19c53c6fd2ff6f7f" }, "vim-astro": { "branch": "main", "commit": "9b4674ecfe1dd84b5fb9b4de1653975de6e8e2e1" }, "vim-be-good": { "branch": "master", "commit": "0ae3de14eb8efc6effe7704b5e46495e91931cc5" }, @@ -62,6 +62,6 @@ "vim-tmux-navigator": { "branch": "master", "commit": "c45243dc1f32ac6bcf6068e5300f3b2b237e576a" }, "vim-wakatime": { "branch": "master", "commit": "d7973b157a632d1edeff01818f18d67e584eeaff" }, "volt": { "branch": "main", "commit": "620de1321f275ec9d80028c68d1b88b409c0c8b1" }, - "which-key.nvim": { "branch": "main", "commit": "904308e6885bbb7b60714c80ab3daf0c071c1492" }, + "which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }, "yanky.nvim": { "branch": "main", "commit": "04775cc6e10ef038c397c407bc17f00a2f52b378" } } diff --git a/.config/tmux/tmux.conf b/.config/tmux/tmux.conf index c1111e3..d6d9609 100644 --- a/.config/tmux/tmux.conf +++ b/.config/tmux/tmux.conf @@ -31,7 +31,7 @@ bind -n S-Right next-window # Easily reorder windows with CTRL+SHIFT+Arrow bind-key -n C-S-Left swap-window -t -1 bind-key -n C-S-Right swap-window -t +1 -bind -n C-f run-shell "tmux neww sessionizer" +bind-key k run-shell "tmux neww sessionizer" bind-key -r n new-session diff --git a/IMPROVEMENT-IDEAS.md b/IMPROVEMENT-IDEAS.md new file mode 100644 index 0000000..0484fba --- /dev/null +++ b/IMPROVEMENT-IDEAS.md @@ -0,0 +1,135 @@ +# Dotfiles Improvement Ideas + +Audit of the dotfiles repository for bugs, stale configuration, and quality improvements. + +--- + +## 1. Bugs + +### `sessionizer` references non-existent paths + +The `find` command on line 6 searches `~/s/code/Work/`, `~/s/code/8gears`, `~/s/code/`, etc. +The actual directory structure is `~/code/` (no `s/` prefix). Every path in the `find` invocation needs updating. + +**File:** `sessionizer:6` + +### `powerkill.sh` is empty + +The file exists (and is listed in README) but contains no code at all. + +**File:** `powerkill.sh` + +### `scripts/load-scripts` is unimplemented + +Has a shebang and a comment ("load all the scripts in '.' to the /usr/bin/ folder") but no actual logic. + +**File:** `scripts/load-scripts` + +### `.xinitrc` still has default twm/xclock config + +Lines 51-55 launch `twm`, `xclock`, and `xterm` -- the stock Xorg defaults. It should launch i3 instead (e.g., `exec i3`). The cursor settings on lines 57-58 are also unreachable since `exec xterm` replaces the shell. + +**File:** `.xinitrc:51-58` + +### `nightshift.service` hardcodes a Homebrew Cellar version path + +`ExecStart` points to `/var/home/linuxbrew/.linuxbrew/Cellar/nightshift/0.3.4/bin/nightshift`. This breaks on every nightshift upgrade because the version directory changes. Should use the symlinked path: `/var/home/linuxbrew/.linuxbrew/bin/nightshift`. + +**File:** `.config/systemd/user/nightshift.service:7` + +### `scripts/rm-harbor-clean.sh` is mislabeled + +Filename suggests Harbor cleanup but the script actually deletes `node_modules` directories recursively -- identical in purpose to `rm-node_modules.sh`. + +**File:** `scripts/rm-harbor-clean.sh` + +### `scripts/airdopes` defines `DEVICE` variable but hardcodes MAC everywhere + +Line 4 sets `DEVICE="80:EF:A9:DF:79:96"` but every subsequent `bluetoothctl` call and every `expect` string uses the literal MAC address instead of `$DEVICE`. The variable is effectively unused. + +**File:** `scripts/airdopes:4-54` + +### `scripts/images.sh` uses `docker` instead of `podman` + +The system uses podman (containers config is present in `.config/containers/`), but this script calls `docker pull`, `docker tag`, and `docker push` directly. + +**File:** `scripts/images.sh:17-24` + +### `scripts/cputemp` uses polybar `%{F#...}` format strings + +The color escape sequences (`%%{F#ed0b0b}`, `%{F-}`) are polybar-specific, but the system uses i3status (no polybar config exists). These escapes render as literal garbage in i3status or plain terminal output. + +**File:** `scripts/cputemp:17-35` + +--- + +## 2. Maintenance + +### `check_dependencies.sh` lists stale dependencies and misses current ones + +- Lists `alacritty`, `asdf`, `microsoft-edge-stable`, `ng` -- none appear used in current configs. +- Missing: `kitty`, `btop`, `podman`, `sensors`, `mediainfo`, `nvchecker`, `bluetoothctl`, `expect`, `bc`. + +**File:** `check_dependencies.sh:4-24` + +### `README.md` is outdated + +- Lists `alacritty` and `.zshrc` but not `kitty`, `btop`, `cmux`, `.agents`, `nightshift`, `xremap`, `lazygit`, `yt-dlp`, `ytdl-sub`, `dunst`, or `yay`. +- "Included Files" section doesn't reflect the actual repo contents. +- No mention of the cmux tmux framework in `.config/tmux/`. + +**File:** `README.md:48-60` + +### `.zshenv` linuxbrew check may not apply on Arch/ostree + +The file checks for `/home/linuxbrew/.linuxbrew/bin/brew` but the system root is `/var/home/` (Fedora Atomic / ostree). The path `/home/linuxbrew/` would need to be `/var/home/linuxbrew/` on this system, or the brew installation may no longer be relevant. + +**File:** `.zshenv:2` + +### `tmux.conf` has stale commented-out bindings + +Lines 10, 30-31 contain commented-out alternative prefix and window-switching bindings. Minor clutter. + +**File:** `.config/tmux/tmux.conf:10,30-31` + +### `.config/git/ignore` is minimal + +Only ignores `.claude/settings.local.json`. Could benefit from common ignores: `.DS_Store`, `*.swp`, `*.swo`, `*~`, `.env`, `__pycache__/`, `.direnv/`, etc. + +**File:** `.gitignore` (repo-level) and `.config/git/ignore` (note: git/ignore has only one entry) + +--- + +## 3. Quality + +### Scripts lack `set -euo pipefail` and proper quoting + +Most shell scripts (e.g., `sessionizer`, `images.sh`, `airdopes`, `cputemp`, `pactl.sh`) do not use `set -e` or `set -euo pipefail`, so failures pass silently. Several also have unquoted variables that will break on paths with spaces: + +- `sessionizer:17` -- `$selected_name` and `$selected` unquoted in tmux calls +- `images.sh:17` -- `$image` unquoted in docker commands +- `.xinitrc:10` -- `$sysresources` unquoted + +### `scripts/batch-delete.sh` not audited + +May warrant review depending on what it batch-deletes -- could be destructive if run from the wrong directory. + +### No shellcheck CI + +Adding a GitHub Actions workflow to run `shellcheck` on all `.sh` files and shebanged scripts would catch many of the above issues automatically. + +--- + +## Summary + +| Category | Count | +|-------------|-------| +| Bugs | 9 | +| Maintenance | 5 | +| Quality | 3 | + +Most impactful quick wins: +1. Fix `sessionizer` paths (currently completely broken) +2. Fix `nightshift.service` to use the symlinked brew path +3. Replace `.xinitrc` default session with i3 +4. Update `check_dependencies.sh` to reflect actual tooling