Giter VIP home page Giter VIP logo

dotfiles's Introduction

.files

My dotfiles and explanations/documentation for myself.

dotfile management

I use 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-checkout

To use sparse-checkout after cloning set the appropriate classes then run:

yadm sparse-checkout reapply

See sparse-checkout template.

usage

The below function sets up vim so that fugitive works properly with yadm and my editing history is preserved.

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.

command! -bang -nargs=? -complete=dir FYadm
            \ call fzf#run(fzf#wrap('yadm',
            \ fzf#vim#with_preview(
            \ { 'dir': <q-args>,
            \ 'source': 'yadm list -a' }), <bang>0))

nmap <leader>y :FYadm!<CR>

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

Email

I wrote a tutorial 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.

dotfiles's People

Contributors

ferdinandyb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

mariozupan

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.