Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ferdinandyb/dotfiles
.files
https://github.com/ferdinandyb/dotfiles
aerc dotfiles dotfiles-linux notmuch termux tmux vimrc yadm zsh
Last synced: 2 months ago
JSON representation
.files
- Host: GitHub
- URL: https://github.com/ferdinandyb/dotfiles
- Owner: ferdinandyb
- Created: 2021-12-20T20:01:53.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2024-04-13T20:45:45.000Z (10 months ago)
- Last Synced: 2024-04-14T10:58:38.949Z (10 months ago)
- Topics: aerc, dotfiles, dotfiles-linux, notmuch, termux, tmux, vimrc, yadm, zsh
- Language: Shell
- Homepage:
- Size: 643 KB
- Stars: 7
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# .files
My dotfiles and explanations/documentation for myself.
## dotfile management
I use [yadm](https://github.com/TheLocehiliosan/yadm) because it is essentially a bare git repo, with some nice additional features.
## getting started
Requirements (just approximate):
- git >= 2.34.1
- zsh >= 5.1
- vim >= 8.2 (much newer for everything)### minimal quickstart
```
bash <(curl -sS https://raw.githubusercontent.com/ferdinandyb/dotfiles/master/.config/yadm/minimalbootstrap)
```### manual
Install yadm:
```
curl -fLo ~/.local/bin/yadm https://github.com/TheLocehiliosan/yadm/raw/master/yadm && chmod a+x ~/.local/bin/yadm
```Clone the repo:
```
yadm clone https://github.com/ferdinandyb/dotfiles.git
```Or if you have a key on the machine:
```
yadm clone [email protected]:ferdinandyb/dotfiles.git
```### sparse-checkout and alternates
Way to set the classes (currently all alternates are based on this):
```
yadm config --add local.class imap
```Current existing classes:
- imap: set aerc to use imap instead of maildir
- minimal: sparse-checkout
- org: sparse-checkoutTo use sparse-checkout after cloning set the appropriate classes then run:
```
yadm sparse-checkout reapply
```See [sparse-checkout template](https://github.com/ferdinandyb/dotfiles/blob/master/.local/share/yadm/repo.git/info/sparse-checkout%23%23template).
## usage
The below function sets up vim so that fugitive works properly with yadm and my
editing history is preserved.```sh
function confed(){
env GIT_DIR=$HOME/.local/share/yadm/repo.git GIT_WORK_TREE=$HOME \
vim -c "cd ~" \
-c "let g:rooter_change_directory_for_non_project_files = 'home'" \
-c "silent AutoSaveToggle" \
-S ~/.local/share/yadm/Session.vim
}
```And the below vim setup allows for fzf search among my dotfiles.
```vim
command! -bang -nargs=? -complete=dir FYadm
\ call fzf#run(fzf#wrap('yadm',
\ fzf#vim#with_preview(
\ { 'dir': ,
\ 'source': 'yadm list -a' }), 0))nmap y :FYadm!
```## Desktop
Regolith 3. Most notable customizations from base Regolith:
- switched back to `rofi` from `ilia` as it is more generic, with more community support;
- `flameshot` instead of `gnome-screenshot` with more useful bindings than Ubuntu/Regolith defaults
- `ranger` set up as default filebrowser: makes more sense for me to use the same as I would in the terminal## Terminal stuff
- `kitty` although now looking at `contour` and `wezterm`
- `zsh`: took a long time to switch from bash, but the fast `powerlevel10k` prompt (vs `starship.rs` which lagged) was the final nail in the coffin, although I still have bash set up with `ble.sh`, which is pretty great (probably a bit better than what zsh provides through the vim-mode and syntax highlight plugins)
- `tmux`
- `fzf`, `fd-find`, `ripgrep`, and [ugrep](https://github.com/Genivia/ugrep) wherever they make sense
- `zoxide` for navigation: also integrates with `ranger`### airline themes for tmux
If you change the airline theme in vim, to have matching themes in tmux, open
vim inside a tmux session and execute:
```
:Tmuxline airline full
:TmuxlineSnapshot ~/.tmux/tmuxline_theme.sh
```I wrote a [tutorial](https://bence.ferdinandy.com/2023/07/20/email-in-the-terminal-a-complete-guide-to-the-unix-way-of-email/) which basically covers my setup.
Deduplication of emails:
```
for i in {2007..2022}; do mdedup $i -i maildir -s discard-all-but-one -a delete-discarded; done
```## WSL
See [here](.config/wsl/README.md).