Skip to content

My config files for NeoVim, Fish, Starship, tmux, git, and Ghostty for use on Mac and GitHub Codespaces.

License

Notifications You must be signed in to change notification settings

djensenius/dotfiles

Repository files navigation

dotfiles

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.

Local installation

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.

Applications

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/

Codespaces install.sh Script Summary

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:

1. Link Configuration Files

  • 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.

2. Install Software

  • 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, and npm:

    • 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

3. Setup Software

  • 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 the vscode user.
    • Checks the status of the repository.

4. Logging

  • 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.

About

My config files for NeoVim, Fish, Starship, tmux, git, and Ghostty for use on Mac and GitHub Codespaces.

Topics

Resources

License

Stars

Watchers

Forks