Skip to content

My dotfiles for zsh, p10k, vim, nvim, tmux.

Notifications You must be signed in to change notification settings

AvivYaish/dotfiles

Repository files navigation

terminal LangaugeToolAlert LanguageToolFix jupyter-on-android desktop

dotfiles

My dotfiles. I use the following applications:

  • Editor: nvim.
  • Shell: zsh, PowerShell.
  • Shell styling: oh-my-zsh, oh-my-posh, powerlevel10k.
  • Terminal multiplexer: byobu + tmux.
  • Dotfile tracking: chezmoi.
  • AppImage package manager: zap. I use it to manage Firefox, NeoVim and Pomotroid (a pomodoro timer).
  • Additional niceties (all are available on Linux, MacOS and Windows, except tealdeer):
    • zoxide: a smarter 'cd' command.
    • lsd: nicer 'ls'.
    • fd: user-friendly alternative to 'find'.
    • fzf: cli fuzzy finder + PSFzf for PowerShell integration.
    • bat: a modern 'cat' replacement, has a nice OneHalfDark syntax highlighting theme.
    • delta: snazzier 'diff', also with One Half Dark support.
    • ripgrep: faster, better 'grep'!
    • tealdeer: a good companion for 'man', with succint descriptions and useful examples.
    • sd: intuitive 'sed' alternative.
    • curlie: a 'curl' front-end inspired by HTTPie.
    • glow: cli markdown renderer.
    • lf is a file manager.
    • procs is a 'ps' alternative.
    • bottom is a 'top' replacement.
    • ptpython is a nicer Python REPL.
    • euporie allows editing and running Jupyter notebooks in the terminal. Run using euporie --color-scheme=dark --syntax-theme=one-dark --show-cell-borders --expand --autoinspect --autosuggest --autocomplete --edit-mode=vi --line-numbers.
    • visidata is a CLI spreadsheet editor.
    • reader is a wonderful CLI webpage reader (available via github).
    • epy is a CLI ebook reader (available via pip).
    • pandoc is an immensely capable document converter, which can even parse webpages in order to present them in the commandline. I also recommend the GitHub HTML5 Template.
    • dust is an alternative to 'du'.

Desktop configuration:

The shell should be an extension of your mind - it should be tailored exactly to your measures, so that using it saves you time instead of creating more problems. To that end, many people have created countless configurations to help you start:

  • Oh-my-zsh: a framework that makes your terminal informative and beautiful.
  • LunarVim: a NeoVIM IDE!
  • .tmux: a tmux configuration file.

To paraphrase the Rifleman's Creed:

This is my terminal. There are many like it, but this one is mine. My terminal is my best friend. It is my life. I must master it as I must master my life. Without me, my terminal is useless. Without my terminal, I am useless.

Here is a course I have recorded for The Hebrew University about the command-line shell, in Hebrew. It has some additional thoughts on how and why the command-line shell should be used.