Commit Graph
22 Commits
Author SHA1 Message Date
Your Name 2bc5b56ff9 feat(zsh): alias tree -> erdtree, track its config, install it on fresh boxes
erdtree (erd) replaces GNU tree as the tree-style directory lister. It uses
a parallel walker (the `ignore` crate, one thread per core) where GNU tree is
strictly serial. Benchmarked over 658k entries under ~/development, best-of-3,
warm cache, plain output, hidden included, gitignore off:

  erd (16 threads)   2.35s
  GNU tree 2.1.0     4.22s   (1.8x slower)
  erd (1 thread)     4.97s   (so ~2.1x thread scaling)
  eza --tree        15.87s   (6.8x slower)

Three changes:

- home_config/erdtree/.erdtree.toml — erd ships as a disk-usage tool, so its
  stock defaults are root-at-bottom, size-sorted, with a du column. The
  top-level table overrides that to behave like GNU tree; `erd -c du` keeps
  the original behaviour and `erd -c all` disables the gitignore/hidden
  filtering. Stowed to ~/.config/erdtree.

- home_root/.zshrc — `alias tree='erd'`, plus ~/.zfunc prepended to fpath for
  the generated completion. The fpath line goes before the primary compinit
  at the top of the file rather than adding a third compinit call after it.

- lk-installers/install-apps — erd is now a runtime assumption of the
  dotfiles (the alias depends on it), so a fresh box must get it: brew on
  macOS, cargo on Linux (not packaged in Debian apt). The zsh completion is
  generated per installed version rather than tracked, matching how the other
  generated completions in this repo are handled.

Caveat worth knowing: erd respects .gitignore by default, which GNU tree does
not. `-i` disables it, `-.` shows hidden files.
2026-08-14 00:09:48 -07:00
vh b106e80f01 feat(installers): add fastfetch, drop dead neofetch
fastfetch is the maintained successor to neofetch (removed from Homebrew).
macOS installs it in the main brew list; Linux installs it best-effort with a
neofetch fallback for older distros. README tool list updated.
2026-06-26 08:00:54 -07:00
vh bf179ef0b1 feat(installers): consolidate app installers into host-aware install-apps
Fold macinstaller + install-apt-pkgs + install-tools + install-zellij into a
single host-aware lk-installers/install-apps (macOS->Homebrew, bootstrapping
Homebrew if absent; Linux->apt + upstream installers). Installs the tools the
configs assume (bat, fd, fzf, zoxide, zellij, nvim, btop, htop, tldr) plus the
fzf-git.sh helper and fzf shell integration; idempotent.

link-dotfiles gains --apps to install then link in one shot. .zshrc drops the
redundant brew/system zsh-autosuggestions source (zinit already loads it),
fixing the missing-file error on a fresh box. README documents the new flow.
2026-06-26 07:55:16 -07:00
vh ae1f13a8a3 chore(shell): remove eza
Drop the ls/tree eza aliases, swap the two fzf directory previews to a
portable 'ls -la', and delete the install-eza installer.
2026-06-26 07:40:26 -07:00
lkrav 7076d40191 chore(shell): powerlevel10k prompt, host-aware bootstrap, drop thefuck
- zsh prompt: replace oh-my-posh with powerlevel10k via zinit, with the
  instant-prompt preamble near the top of .zshrc for fast startup
- remove thefuck/thefk entirely: .zshrc aliases, install-thefk,
  home_config/thefuck, and its .stow-global-ignore entry
- link-dotfiles: one-shot host-aware bootstrap — detect macOS vs Linux,
  install GNU stow if missing (brew / apt/dnf/pacman), then stow both trees
- retire oh-my-posh: delete the bash + pwsh installers and
  home_config/ohmyposh (starship covers PowerShell separately)
- README: document the new bootstrap and prompt setup
2026-06-26 07:33:57 -07:00
lkravandClaude Opus 4.8 77a8d25488 Add Windows support: linker, oh-my-posh installer, README
- link-dotfiles.ps1: stow-equivalent for Windows using junctions/symlinks
  (no admin required), idempotent with .bak backups and -DryRun
- lk-installers/install-ohmyposh.ps1: winget-based install with fallback
- README.md: document Linux/macOS (stow) and Windows flows
- .gitignore: resolve leftover merge conflict markers, ignore *.bak
- ohmyposh/lkraven.toml: oh-my-posh v3 auto-migrated this on load (same
  theme, upgraded schema)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-08 13:22:33 -07:00
vh b3ea862682 updated files 2025-09-05 16:23:17 -07:00
LLM user c9858f8bc8 Updated zshrc 2025-03-13 14:03:03 -07:00
vh d429ee0cfb Cleaned up after Aider 2025-03-06 11:01:40 -08:00
vh 947b5afbc5 add zellij installer and update oh-my-posh themes
feat: add zellij installer and update oh-my-posh themes
2025-03-06 10:24:31 -08:00
vh f82507fbcd <think>
Okay, let's see. The user provided a diff for the file lk-installers/install-apt-pkgs. The main changes here are adding 'sudo apt update' at the top and removing 'tmux' from the list of packages being installed in the first sudo apt install line.

The commit message needs to follow the format <type>: <description>. The type options are fix, feat, build, chore, ci, docs, style, refactor, perf, test.

Looking at the changes: adding an update before installing packages and removing a package (tmux). This seems like a modification to the installation script to ensure dependencies are up-to-date and removing an unnecessary package. Since it's adjusting the script's process rather than adding a new feature, 'chore' might be appropriate here. Alternatively, if this fixes an issue where outdated packages could cause problems, maybe 'fix'. But since the user mentioned they're switching tmux to zellij, perhaps removing tmux is part of that change. However, the main action here is updating before install and package removal.

The description should be imperative, like "Update apt before installs and remove tmux". Let me check character count: "chore: Update apt before installs and remove tmux" – that's 67 characters, which is under 72.

Alternatively, maybe 'build' if it's related to build processes, but since it's an installer script, 'chore' for maintenance-related changes fits better. So the final message would be "chore: Update apt before installs and remove tmux".
</think>

chore: Update apt before installs and remove tmux
2025-03-06 10:00:20 -08:00
vh e73c53fefd <think>
Okay, let's see. The user wants to update the install-apt-pkgs script to ensure Cargo is available for Zellij installation.

Looking at the diff, they added "cargo" to the list of packages in the first sudo apt install line. So the main change here is adding cargo via apt.

The commit message needs to be concise and follow the specified format. The type should be 'feat' since this adds a new package dependency. The description should mention adding cargo for Zellij.

Wait, but maybe it's a fix? Because they're making sure Cargo is available, which might have been missing before. Hmm. If installing Zellij requires Cargo and wasn't working before, then "fix: ensure cargo is installed for zellij" could be better. But the user said "update" the script to make sure, so maybe it's a feature addition? Or perhaps a chore since it's a maintenance change.

Alternatively, 'chore' might not fit here. Since adding Cargo is necessary for Zellij's installation, this is more of a functional fix. So using 'fix: ensure cargo is available for zellij install' would make sense. The imperative mood is important too—so "ensure" instead of "ensuring".

Checking the length: "feat: add cargo to apt packages for zellij" is under 72 characters? Let's count... "feat: add cargo to apt packages for zellij" — that's okay, but maybe more precise. Alternatively, "fix: ensure cargo is available for zellij install". That's also within the limit.

The user mentioned updating the script specifically to make sure Cargo is there. So "ensure" might be better than "add", as it emphasizes availability. The type could be 'feat' if adding a new dependency, but since it's fixing an oversight that broke Zellij installation, maybe 'fix'.

Hmm, tough call. Since the user says they're updating to make sure it's available, perhaps it's a fix for a missing dependency. So I'll go with:

fix: ensure cargo is available for zellij install

That fits all criteria.
</think>

feat: add cargo to apt packages for zellij
2025-03-06 09:57:14 -08:00
vh 47f4016b73 <think>
Okay, let me try to figure out how to approach this. The user wants to replace Tmux with Zellij in their dotfiles setup. First, I need to look at all the files provided and see where Tmux is mentioned or configured.

Starting with `.gitignore`, there's an entry for `.config/tmux/plugins`. Since they're removing Tmux, that line should be deleted so those directories aren't ignored anymore once removed.

Next, looking into `home_root/.zshrc`, I notice several sections related to Tmux. There's a block checking if the user is in a Tmux session and automatically starting it if not. That whole conditional block needs to be removed because Zellij won't use that logic. Also, there are parts about setting up Tmux Plugin Manager (TPM) with Git clones. Those lines should go too.

The `home_config/tmux` directory contains the actual Tmux configuration files like `tmux.conf`, so those can be deleted entirely since they're no longer needed. Similarly, `.tmux.conf` in `home_root/` is another config file for Tmux and should also be removed.

In the installers folder, there's an `install-tmux-plugins` script. Since Zellij doesn't use TPM, this script isn't necessary anymore and can be deleted or replaced with a Zellij installer.

Now, adding Zellij support: I need to create a new installation script in `lk-installers/`, maybe called `install-zellij`. This script should handle installing Zellij via Cargo (Rust's package manager) since that's the common method. If Cargo isn't available, it might try using apt-get as a fallback.

I also have to ensure that any references to Tmux in other files are removed. For example, aliases or environment variables related to Tmux should be checked and eliminated if present. However, looking at the provided `.zshrc`, most of the Tmux-related code was already isolated in the sections I mentioned earlier.

Another consideration is whether there's a Zellij configuration file needed. The user might want to set up their own config, but since they didn't provide one yet, maybe just note that creating a `~/.config/zellij/config.toml` could be next step, but it's beyond the current scope unless instructed otherwise.

Finally, updating any dependencies or other scripts like `link-dotfiles` if necessary. Since Tmux configs are being removed, ensuring those aren't linked anymore is important, but since we're deleting the files themselves, that might not be needed immediately.

Putting all this together: remove all Tmux-related config files and references in `.zshrc`, delete the installer script for Tmux plugins, add a new Zellij installer, and adjust any other dependencies. The commit message should reflect replacing Tmux with Zellij.
</think>

chore: replace tmux configuration with zellij setup
2025-03-06 09:54:06 -08:00
L. Kraven 33f3fff29f fixed thefk 2024-06-20 21:22:36 -07:00
L. Kraven 468808dee5 fixed thefk 2024-06-20 21:13:07 -07:00
L. Kraven 53096ea56c Merge branch 'master' of gitea.phasefinal.com:vh/dotfiles 2024-06-20 21:04:00 -07:00
L. Kraven 3c3678dd08 updated thefk install 2024-06-20 21:03:45 -07:00
vh eb08bb412b updated files 2024-06-20 19:40:09 -07:00
L. Kraven bc0b3fa135 updated thefk install 2024-06-20 19:36:41 -07:00
Vuong Hoang 387f71970f moved rar and unrar out in case non-free repos not available. 2024-06-15 11:03:51 -07:00
L. Kraven afc281fb0a added stow 2024-06-15 10:58:16 -07:00
L. Kraven dd2c280d4e updated prompt 2024-06-15 00:28:02 -07:00