Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 13 additions & 13 deletions .config/nvim/lazy-lock.json
Original file line number Diff line number Diff line change
@@ -1,44 +1,44 @@
{
"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" },
"nvim-dap-virtual-text": { "branch": "master", "commit": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6" },
"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" },
Expand All @@ -54,14 +54,14 @@
"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" },
"vim-fugitive": { "branch": "master", "commit": "61b51c09b7c9ce04e821f6cf76ea4f6f903e3cf4" },
"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" }
}
2 changes: 1 addition & 1 deletion .config/tmux/tmux.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
135 changes: 135 additions & 0 deletions IMPROVEMENT-IDEAS.md
Original file line number Diff line number Diff line change
@@ -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