Those are my dotfiles and are meant to be used on a macOS computer. Everything is splitted in modules making the maintainance and the evolutions easy.
💡 If you're looking for my vimfiles, they're in another repository: https://github.com/jhchabran/nvim-config
Dotfiles, often are a pile of configuration snippets on top of each others and a courageous person can sometimes find useful ideas to port in their own config. While I think that's pretty neat in itself, I feel like half of the value is being left out because it's really hard to grasp the author workflow without some high-level description.
So at the bottom of this README, I describe how I do things. I hope that I'll remember to update it as my workflow change 💪
Clone this repository to ~/.dotfiles
git clone git@github.com:jhchabran/dotfiles.git ~/.dotfiles
Then install the dotfiles:
~/.dotfiles/setup.sh
The script will ask for information regarding Git configuration(name, email), computer name as well as sudo password.
And from time to time, feel free to run the following command to keep your system up-to-date(OSX, Brew, and dotfiles).
dotfiles-update
A typical session looks like the following:
cmd+e
to fuzzy find within a list of both work and personal repositories and either open a new terminal (window in Kitty's jargon) or jump on that terminal if it already exists.
- That's basically the same thing as
tmux-sessionizer
, but with kitty see the script.
vi
, which will launch neovim in the project root. It'll restore the previous session (opened files and buffers) automatically.- open another terminal within neovim when needed
Sometimes I'll need to deal with some state on the system:
kill **
and then pressing TAB will open up FZF and fuzzy find through the process list.who-listens 8080
will tell me which process is listening on 8080.
Frequently, I'm searching for something:
rg ...
for plain-text searches- LSP symbols fuzzy search, within neovim, when searching for a function or a type name
When it comes to git, it's pretty vanilla:
- straight
git
commands, aliasing only confuses me, I never seem to remember them. gco
to switch branches with fuzzy finding- delta to provide more readable diffs, and I really like the side by side view.
- half the time, git commands are performed within the editor, with plugins.
Multitasking:
- kitty provides tabs and splits, which is largely enough for me.
- I have been a heavy tmux user for years but I don't use it anymore, it always felt like a broken abstraction.
- I use magnet to provide a kind-of tiling WM experience.
It is free software, and may be redistributed under the terms specified in the LICENSE file.