My config files for various applications to enhance development efficiency and experience. All configurations use the Catppuccin Mocha theme for a consistent and visually appealing look across all tools and applications.
TMUX is a little special and needs this:
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
~/.tmux/plugins/tpm/scripts/install_plugins.sh
Otherwise you mostly just symlink to your ~/.config
directory. Take a look at install.sh
which is used for setting up codespaces if you run into any problems.
Atuin is a powerful and customizable shell history manager.
- Directory:
atuin/
Bat is a cat clone with syntax highlighting and Git integration.
- Directory:
bat/
Bottom is a cross-platform graphical process/system monitor.
- Directory:
bottom/
Codespaces is a cloud development environment provided by GitHub.
- Directory:
.devcontainer/
- Files:
install.sh
,prettierrc.json
Fastfetch is a neofetch-like tool for fetching system information.
- Directory:
fastfetch/
Fish is a smart and user-friendly command line shell.
- Directory:
fish/
Gh is GitHub’s official command line tool.
- Directory:
gh/
Gh-dash is a GitHub CLI tool to view and manage issues and pull requests in a terminal dashboard.
- Directory:
gh-dash/
Git is a distributed version control system.
- Files:
gitconfig
,gitignore-local
Gitmux is a Tmux status line for Git.
- File:
gitmux.conf
Ghostty is a tool for managing dotfiles across multiple machines.
- Directory:
ghostty/
Gopod is a tool for making radio programs that are streaming online into podcasts.
- Directory:
gopod/
NeoVim is a hyperextensible Vim-based text editor.
- Directory:
nvim/
Starship is a cross-shell prompt that displays information about the current directory, git status, and more.
- File:
starship.toml
Tmux is a terminal multiplexer that allows multiple terminal sessions to be accessed and controlled from a single screen.
- Directory:
tmux/
Tmuxinator is a tool to manage complex tmux sessions easily.
- Directory:
tmuxinator/
Vale is a syntax-aware linter for prose built with speed and extensibility in mind.
- File:
vale.ini
Yazi is a terminal file manager.
- Directory:
yazi/
The install.sh
script is designed to set up and configure a development environment, particularly for use in GitHub Codespaces. It performs the following tasks:
-
Creates necessary directories and creates symbolic links for various configuration files:
tmux.conf
gitconfig
fish
starship.toml
nvim
bat
vale.ini
prettierrc.json
gitmux.conf
tmuxinator
neofetch
atuin
yazi
bottom
-
If running within a GitHub Codespace, it links executables (e.g.,
rubocop
,srb
,bundle
,solargraph
,safe-ruby
) to/usr/local/bin
and updates locale settings.
-
Installs various software packages required for the development environment, including:
build-essential
python3-venv
socat
ncat
ruby-dev
jq
thefuck
tmux
libfuse2
fuse
software-properties-common
most
-
Removes potentially conflicting packages (
bat
,ripgrep
). -
Installs additional tools via
curl
,wget
,cargo
,go
,gem
, andnpm
:starship
delta
protobuf
eza
zoxide
ripgrep
fd-find
bat
atuin
gitmux
tmuxinator
neovim-ruby-host
prettierd
yaml-language-server
vscode-langservers-extracted
eslint_d
prettier
tree-sitter
neovim
fzf
lazygit
- Logs into
atuin
using provided credentials. - Installs
tmux
plugins. - Synchronizes and installs
nvim
plugins. - If running within a GitHub Codespace
- Changes the default shell to
fish
for thevscode
user. - Checks the status of the repository.
- Changes the default shell to
- Logs the progress of file linking, software installation, and software setup to
~/install.log
.
This script automates the setup process to ensure a consistent and efficient development environment, particularly optimized for GitHub Codespaces.