Skip to content

cloudlena/dotfiles

Repository files navigation

Dotfiles

🦄 My personal dotfiles

Warning

Since I'm using NixOS now, these dotfiles have been superseeded by my Nixfiles and are not maintained anymore.

I mainly work with Go, Rust, JavaScript, TypeScript, Markdown and shell scripts so my setup is geared towards working with these technologies.

Supported operating systems are macOS and Arch Linux (and its derivates).

Screenshot

Features and Usage

Terminal

This setup uses a powerful combination of Alacritty, tmux and zsh with a minimalistic prompt.

Commands

  • pacu: Update and upgrade the whole system (using Brewfile on macOS and pacmanfile on Arch Linux)
  • depu: Update and upgrade the dependencies for the current project
  • mkcd: Create a directory and enter it
  • fcd: cd into a directory using fuzzy search
  • fe: Edit a directory or file using fuzzy search
  • fco: Checkout Git branches or tags using fuzzy search
  • fkill: Kill any process with fuzzy search
  • fshow: Git commit browser with fuzzy search

Text Editor

Text editing is based on Neovim, configured to be an "IDE". The entire setup with all plugins can also be run as a container.

  • e: Start Neovim with all plugins
  • ide: Start Neovim with all plugins in an IDE like window layout

Navigation

  • gd: Go to definition of symbol under cursor
  • gi: Go to implementations of symbol under cursor
  • gr: Go to references of symbol under cursor
  • <space><space>: Fuzzy search files in workspace
  • <space>/: Fuzzy search in all files in workspace
  • <space>j: Open visual file explorer

Git

  • <space>gg: Git status
  • <space>gd: Git diff
  • <space>gb: Git blame
  • <space>gs: Git stage current hunk
  • <space>gu: Git unstage current hunk
  • <space>gc: Git commit
  • <space>gm: Git three-way merge

Diagnostics and Refactoring

  • K: Show signature of symbol under cursor
  • [d: Go to previous diagnostic issue
  • d]: Go to next diagnostic issue
  • <space>e: Show diagnostics details
  • <space>s: Open workspace diagnostics
  • <space>k: Open symbols outline of file
  • <space>r: Rename current symbol
  • <space>a: Display code actions

Testing

  • <space>tn: Run nearest test to cursor
  • <space>tf: Run all tests in file
  • <space>ta: Run all tests
  • <space>tu: Toggle extended testing UI

Debugging

  • <space>db: Toggle breakpoint on current line
  • <space>dB: Set condition for breakpoint
  • <space>dd: Start debugger or continue to next breakpoint
  • <space>dn: Step over
  • <space>di: Step into
  • <space>do: Step out
  • <space>dK: Show evaluation of symbol under cursor
  • <space>du: Toggle extended debugging UI

Add Languages and Tools

To extend the editor with new languages and tools, simply add them to tools.lua.

Installation

  1. Clone this repo to ~/dotfiles by running git clone git@github.com:cloudlena/dotfiles.git ~/dotfiles

  2. Change the name and email address in git/.config/git/config

  3. Arch Linux only: Change pacmanfile/.config/pacmanfile/pacmanfile.txt to your liking or add pacmanfile-extra.txt to the same directory for independent packages per machine

  4. macOS only: Change Brewfile to your liking or add extra.Brewfile for independent packages per machine

  5. macOS only: If you have apps installed which you didn't install through brew but that you now added to Brewfile, you need to reinstall them with brew install <name> --force, so brew knows it's supposed to manage these apps.

    Note: This won't delete any of your data. The app will just be reinstalled with brew and everything will be back to normal once the installation script has run.

  6. Run ~/dotfiles/install.sh

    WARNING: This may install and/or remove software and change your configs!

  7. Either import an existing PGP key pair by using gpg --import my-key.asc and gpg --import my-key-pub.asc, or create a new one by following the GitHub guide. You need to use the same name and email address as an ID that you have configured in git/.gitconfig to correctly sign your Git commits.

  8. Either import an existing SSH key pair by copying it to ~/.ssh/id_rsa and ~/.ssh/id_rsa.pub or create a new one by following the GitHub guide.

Quick Installation without customization (not recommended unless you're the owner of this repo 😉)

  1. Run the following command:

    WARNING: This may install and/or remove software and change your configs!

    $ curl -s https://raw.githubusercontent.com/cloudlena/dotfiles/main/install.sh | sh