GithubHelp home page GithubHelp logo

klappradla / dotfiles Goto Github PK

View Code? Open in Web Editor NEW
5.0 4.0 0.0 68.92 MB

🏗 how I set up my system

Shell 46.95% Ruby 2.63% Vim Script 34.56% Lua 13.31% Vim Snippet 2.55%
zsh iterm2 dotfiles macos neovim tmux

dotfiles's Introduction

dotfiles 🏗

How I set up my dev system.

screenshot

About

My dotfiles follow holman's concept of "topical" organization. Each topic has its own directory with special filename conventions ⚡️:

  • bin/: contains executables added to $PATH
  • topic/install: script executed when installing/updating the topic
  • topic/link: script executed when symlinking the topic
  • topic/name.symlink: files picked up by the link script of the topic

(Note: the homebrew topic is always evaluated first as other topics depend on it.)

Installation

(on new computer: set up ssh keys first)

# start in the home directory
cd

# clone repository
git clone --recursive [email protected]:klappradla/dotfiles.git

# navigate into the new directory
cd dotfiles

# run the install script
script/setup

To install topics individually:

script/install <topic>

Tips & Tricks

  • Change/disable macOS' default keyboard shortcuts for "Input Sources" if you want to use CTRL + Space as prefix in Tmux.

See docs for additional help.

dotfiles's People

Contributors

klappradla avatar

Stargazers

Roman avatar Nicolò G. avatar Stephan Leibelt avatar Paul Meinhardt avatar

Watchers

Paul Meinhardt avatar James Cloos avatar Nicolò G. avatar  avatar

dotfiles's Issues

Modernize Vim completion and linting

The ale and deoplete.vim setup is growing out of date and (especially the latter) causing massive startup-delays (spinning up own language servers, etc.). So maybe it's time to move over to something more modern - as in Lua based - and use Neovim's built in LSP 🤔

Some ideas:

  • neovim/nvim-lspconfig has a lot of info about LSP setup (especially in the wiki)
  • nvim-cmp seems a good completion solution to start with
  • null-ls could replace ale for linters and even include formatters and code actions (e.g. for eslint)
  • optional trouble.nvim for displaying diagnostics info
  • optional mason.nvim for managing LSP and linter packages (probably overkill)

Better rsync options

Come up with better (more thought through and better documented) options for rsync (and logging).

The current options are:

rsync -atvz --delete --exclude-from \
      $EXCLUDE_LIST \
      -e "ssh -T -c [email protected] -o compression=no -x"\
      "$dir" max@"$NAS":"$BACKUP_VOLUME"

Maybe the a flag already does everything I need 🤷‍♂️

-a, --archive
      This  is equivalent to -rlptgoD. It is a quick way of saying you want recursion
      and want to preserve almost everything (with -H being a notable omission).  The
      only  exception  to the above equivalence is when --files-from is specified, in
      which case -r is not implied.

      Note that -a does not preserve hardlinks, because finding multiply-linked files
      is  expensive.   You  must  separately specify -H.  Note also that for backward
      compatibility, -a currently does not imply the --fileflags option.

(rsync man page)

Use force with lease

Find a way to adapt

git push --force-with-lease

instead of the destructive

git push --force

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.