# Archlinux Config Ela's Archlinux Configfiles ## Features and Usage ### Terminal This setup uses a powerful combination of [Alacritty](https://github.com/jwilm/alacritty), [tmux](https://github.com/tmux/tmux) and [zsh](https://www.zsh.org/) 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](https://neovim.io/), configured to be an "IDE". - `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 - ``: Fuzzy search files in workspace - `/`: Fuzzy search in all files in workspace - `j`: Open visual file explorer #### Git - `gg`: Git status - `gd`: Git diff - `gb`: Git blame - `gs`: Git stage current hunk - `gu`: Git unstage current hunk - `gc`: Git commit - `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 - `e`: Show diagnostics details - `s`: Open workspace diagnostics - `k`: Open symbols outline of file - `r`: Rename current symbol - `a`: Display code actions #### Testing - `tn`: Run nearest test to cursor - `tf`: Run all tests in file - `ta`: Run all tests - `tu`: Toggle extended testing UI #### Debugging - `db`: Toggle breakpoint on current line - `dB`: Set condition for breakpoint - `dd`: Start debugger or continue to next breakpoint - `dn`: Step over - `di`: Step into - `do`: Step out - `dK`: Show evaluation of symbol under cursor - `du`: Toggle extended debugging UI #### Add Languages and Tools To extend the editor with new languages and tools, simply add them to [`tools.lua`](./nvim/.config/nvim/lua/config/tools.lua). ## Installation 1. Clone this repo to `~/dotfiles` by running `git clone https://git.pew.io/phil/elas-arch-config.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. Run `~/dotfiles/install.sh` **WARNING: This may install and/or remove software and change your configs!** 5. 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](https://help.github.com/en/articles/generating-a-new-gpg-key). 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. 6. 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](https://help.github.com/en/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent). ## Forked from https://github.com/cloudlena/dotfiles