Skip to content

rsletta/dotfiles

Repository files navigation

My personal dot file repository

It's that time again, and this is the Late 2024 reboot of my dotfiles. Let's see where we end up this time.

The core principle behind this was to make it as platform independent as possible, with minimal configuration of the terminal application, to provide similar experience disregarding driving os. I have since realized that this was over complicating things, and this time around I will start by tearing it all down, and build it up again, with a focus on macOS which is my primary development environment. While is still use Linux on all servers, I do see that the need for an overly complex setup is not there. To serve the needs there, I will rather look into a more minimal setup that I can pull in there when needed.

While I still want to try out using GNU Stow to manage my dotfiles, rather than using my hackety hacks bootstrapping scripts, I will start by manually sourcing stuff in. This will probably be a bumpy ride, but isn't that part of what makes this fun?

macOS terminal client of choice is still iTerm 2. I have changed terminal client this time around and started using Wez's Terminal Emulator(wezterm), which is using lua for configuration. On iOS I use Blink Shell, when ssh'ing into the Linux servers.

At the moment, I have been using Gruvbox as my color scheme for some time. I've also used to use Nord, but my eyes are not what they used to, and I needed something new and contrasty. I had a quick look at catppucin, and while it looks nice, I couldn't quite get the right feel for it. I might revisit it later, but I still search for the a color scheme that both looks good, and is easy on the eyes contrast wise.

Zsh

I use zsh, since that is the default on macOS. I can't say I'm a very advanced user, so I look more to the usability of the shell, rather than pure features. I don't track my .zshrc, but rather source my config in it, so I can make local customizations.

for rcfile in "$HOME"/.config/dotfiles/config/*.sh(N); do
    # Check if the file is the aliases file
    if [[ "$rcfile" == 60-aliases.sh ]]; then
        export ALIAS_FILE="$rcfile"
    fi
    source "$rcfile"
done

I tried fish when installing CachyOS linux, which uses it as default. I liked some of the features it had, so I'm borrowing some ideas from their zsh config for "fish like syntax highlighting and autosuggestions". I also use history substring search. These are added manually to my .zshrc.

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.zsh-syntax-highlighting
echo "source ~/.zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ~/.zshrc
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh-autosuggestions
echo "source ~/.zsh-autosuggestions/zsh-autosuggestions.zsh" >> ~/.zshrc
git clone https://github.com/zsh-users/zsh-history-substring-search ~/.zsh-history-substring-search
echo "source ~/.zsh-history-substring-search/zsh-history-substring-search.zsh" >> ~/.zshrc

Scripts

The scripts folder is where I keep my small utility scripts, for day to day tasks.

./

  • fports - Opens ssh connetion to remote system, and forwards port from remote to localhost.
  • dailyNote - Looks for daily note in vault. If it exists, it opens in $EDITOR(AKA Neovim). If it's not present, a new note for today is created from template, before opening it in $EDITOR.
  • quickReadNote -Use fzf to select daily note, and display it using bat.
  • newTmuxSession - Creates a new tmux session from current directory, with provided name, or attach/switch to existing session if present.

./lib:

  • slugify - Takes in a string, and transforms it into a slug. DJ Adams
  • yyyymmdd - Returns correctly formated date. DJ Adams

Dependencies

Oh My Posh Theme

I used to run a minimalistic theme(that requires Nerd Fonts) I've called "Oh My Gruvbox", inspired by several of the existing minimal themes. It was a work in progress, with color palette from morhetz/gruvbox.

I have not landed on a new one yet, so I'll keep this for reference for now. The new WIP is the one called "oh-my-rikosjett".

Language Servers

Available language servers Reference the language server plugin setup for references to the different language servers.

Neovim plugins

I used to run all of these in my old config. I'll keep this for reference for the moment, but to see what I actually run, it is easier to just look into my neovim config.

Visuals

Telescope stuff

Language Server Protocol

Treesitter

Autocompletion

Writing & Markdown

Tools

Git

Inspirations

bashrc.d

I noticed DJ had split his bashrc into smaller scripts, and dynamically load them from bashrc.d. That is a great way to prevent bashrc to grow infinitely. I'm on board with it. 😃

.extrasrc

Contains system specific configuration, like NVM, FNM, etc. This file is not tracked, and needs to be maintained per system.

Exports:

  • BLOG_PATH=<path to rikosjett.com>
  • WRITING_PATH=<path to writing vault>

References (in no particular order)

Old setup based on

Make the terminal work for you! 🤓

About

My personal dot files repository

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published