Full and clean configurations for development environment on GNU Linux, macOS and Cygwin.
- GNU Linux, macOS, Windows, Cygwin
- Git, Zsh/Powershell, curl/wget
- Recommend: GNU Emacs, tmux
- Optional: Vim
sh -c "$(curl -fsSL https://github.com/maririn312/dotfiles/raw/main/install.sh)"
or
sh -c "$(wget https://github.com/maririn312/dotfiles/raw/main/install.sh -O -)"
or
git clone https://github.com/maririn312/dotfiles.git ~/.dotfiles # or download the zip package
cd ~/.dotfiles
./install.sh
git clone [https://github.com/maririn312/dotfiles.git ](https://github.com/maririn312/dotfiles.git)~/.dotfiles # or download the zip package
cd ~/.dotfiles
install_scoop.ps1 # or install_choco.ps1
cd ~/.dotfiles
docker build -t centaur/ubuntu .
docker run -it centaur/ubuntu zsh
Alt-c
: cd into the selected directory.Ctrl-r
: Paste the selected command from history into the command line.Ctrl-t
: Paste the selected file path(s) into the command line.TAB
: To completions.
That's it. Enjoy!
Add your zsh environments in ~/.zshenv
. This is recommended by ZSH officially.
For example:
export PATH=/usr/local/sbin:$PATH
export PATH=$HOME/.rbenv/shims:$PATH
export PYTHONPATH=/usr/local/lib/python2.7/site-packages
Ste your personal zsh configurations in ~/.zshrc.local
. For example:
# Oh-my-zsh plugin
zinit snippet OMZP::golang
zinit snippet OMZP::python
zinit snippet OMZP::ruby
# Github plugin
zinit light ptavares/zsh-direnv
See details on zinit.
Set your git configurations in ~/.gitconfig.local
, e.g. user credentials.
[commit]
# Sign commits using GPG.
# https://help.github.com/articles/signing-commits-using-gpg/
gpgsign = true
[user]
name = John Doe
email = john.doe@example.com
signingkey = XXXXXXXX
- vim (NeoVim) config
- tmux config
- git config
- fish config
- PowerShell config
- System Preferences > Desktop and Dock (bold is required):
- Mission Control: uncheck "Automatically rearrange Spaces based on most recent use"
- Some advanced features of
yabai
requires SIP to be disabled. However, disabling SIP will also disable Apple Pay on your Mac. For my setup, I left SIP enabled. My configs doesn't use any advanced feature fromyabai
-
I am using the excellent sketchybar-app-font to display the active applications in the spaces.
-
Left clicking a space will focus it, right clicking a space will destroy that space; clicking in the separator (>) will create a new space (all using yabai SIP disabled; optional)
-
Mousing over the music icon in the center gives a small Spotify player widget with player controls:
- The volume icon on the right side can be clicked to toggle the volume slider and animates volume changes:
slider.mp4
-
The volume icon on the right side can be right-clicked to show and select the audio output device:
-
The bell can be hovered to view github notifications
-
Clicking the date/time toggles a "zen" mode, hiding all distracting items in the bar:
- The battery indicator is only shown when below 60%:
- Dependencies(
sf-symbols
,jq
,github-cli
,switchaudio-osx
, sketchybar-app-font):
brew install --cask sf-symbols
brew install jq
brew install gh
brew install switchaudio-osx
curl -L https://github.com/kvndrsslr/sketchybar-app-font/releases/download/v1.0.4/sketchybar-app-font.ttf -o $HOME/Library/Fonts/sketchybar-app-font.ttf
- (optional)
gh auth login
for GitHub notifications - (optional) If you don't use yabai you can safely remove the
yabai
item fromitems/yabai.sh
orsketchybarrc
- (optional; needed for yabai window state and running application icons) yabai events:
yabai -m signal --add event=window_focused action="sketchybar --trigger window_focus"
yabai -m signal --add event=window_created action="sketchybar --trigger windows_on_spaces"
yabai -m signal --add event=window_destroyed action="sketchybar --trigger windows_on_spaces"
- System Preferences > Keyboard > Keyboard Shortcuts... (bold is required):
- For each of the item on the left side bar > click "Restore Defaults"
- Mission Control > Make sure everything under Mission Control is checked (Move left/right, switch to desktop 1/2/etc.)
- Theme: Gruvbox Dark (Hard)
- Plugin manager: Oh My Zsh
- Plugins:
- Install from HEAD commit instead of pre-built binary:
brew install --HEAD ranger
- File preview dependencies (bold is required):
cmd
+3
to View as Columnscmd
+shift
+.
to Show Hidden files
- Firefox Onebar theme with the following
about:config
:onebar.disable-autohide-of-URLbar-icons : false
onebar.disable-centering-of-URLbar : false
onebar.disable-https-truncate : false
onebar.disable-single-tab : true
onebar.hide-all-URLbar-icons : true
onebar.hide-navigation-buttons : false
- Color and layout tweaks to Browser XUL and
:about
pages to match Gruvbox Dark (Hard) color (Firefox Onebar included)- Only Dark theme is supported, no light theme or high-contrast theme support
- System Preferences > Desktop and Dock > Default web browser: Firefox
btop
cat
>bat
find
>fd
fzf
fzf
fd
integration in part of shell config
grep
> ripgrep (rg
)ls
>eza
neofetch
- pipes-sh (
pipes.sh
) ps
>procs
- Taskwarrior (
task
) tty-clock
unimatrix
:pip3 install git+https://github.com/will8211/unimatrix.git
Requires Neovim (>= 0.8)
- wbthomason/packer.nvim - A plugin manager for Neovim
- svrana/neosolarized.nvim - A truecolor, solarized dark colorscheme
- nvim-lualine/lualine.nvim - A blazing fast and easy to configure Neovim statusline written in Lua
- onsails/lspkind-nvim - VSCode-like pictograms
- L3MON4D3/LuaSnip - Snippet Engine for Neovim written in Lua
- hrsh7th/cmp-nvim-lsp - nvim-cmp source for neovim's built-in LSP
- hrsh7th/cmp-buffer - nvim-cmp source for buffer
- hrsh7th/nvim-cmp - A completion engine plugin for neovim written in Lua
- neovim/nvim-lspconfig - A collection of configurations for Neovim's built-in LSP
- jose-elias-alvarez/null-ls.nvim - Use Neovim as a language server to inject LSP diagnostics, code actions, and more via Lua.
- williamboman/mason.nvim - Portable package manager for Neovim that runs everywhere Neovim runs. Easily install and manage LSP servers, DAP servers, linters, and formatters
- williamboman/mason-lspconfig.nvim - Extension to mason.nvim that makes it easier to use lspconfig with mason.nvim
- glepnir/lspsaga.nvim - A light-weight lsp plugin based on neovim's built-in lsp with a highly performant UI
- nvim-treesitter/nvim-treesitter - Treesitter configurations and abstraction layer for Neovim
- kyazdani42/nvim-web-devicons - Lua
fork
of vim-web-devicons for neovim - nvim-telescope/telescope.nvim - A highly extendable fuzzy finder over lists
- nvim-telescope/telescope-file-browser.nvim - File Browser extension for telescope.nvim
- windwp/nvim-autopairs - Autopairs
- windwp/nvim-ts-autotag - Use treesitter to auto close and auto rename html tag
- norcalli/nvim-colorizer.lua - A high-performance color highlighter
- akinsho/nvim-bufferline.lua - A snazzy bufferline
- lewis6991/gitsigns.nvim - Git integration for buffers
- dinhhuy258/git.nvim - A simple clone of the plugin vim-fugitive
- folke/zen-mode.nvim - Distraction-free mode
- iamcco/markdown-preview.nvim - Markdown live preview
- Fish shell
- Fisher - Plugin manager
- Tide - Shell theme. Use version 5:
fisher install ilancosman/tide@v5
- Nerd fonts - Powerline-patched fonts. I use Hack.
- z for fish - Directory jumping
- Exa -
ls
replacement - ghq - Local Git repository organizer
- fzf - Interactive filtering
- Scoop - A command-line installer
- Git for Windows
- Oh My Posh - Prompt theme engine
- Terminal Icons - Folder and file icons
- PSReadLine - Cmdlets for customizing the editing environment, used for autocompletion
- z - Directory jumper
- PSFzf - Fuzzy finder