Dotfiles for macOS managed with yadm. Features configs for Alacritty, Tmux, Neovim, and essential CLI utilities. Detailed keymaps and installation instructions included.
Dotfiles managed with yadm. These dotfiles have been tested
on macos. The plan is to eventually test and support severael linux
distributions as well. This detailed README helps me remember the setup π
π¦ Installation
First, install yadm. Then, clone the
repository with yadm and run bootstrap.
# clone repository
yadm clone https://github.com/salimhamed/dotfiles.git
# set the class to either `Personal` or `Work`
yadm config local.class Personal
# bootstrap the environment
yadm bootstrap
π Usage
π Alacritty
Alacritty is a terminal emulator that
comes with sensible defaults and is configured with yaml files, which can be
more easily managed with version control systems.
Tmux is used as a terminal multiplexer to manage multiple terminal sessions,
split screens, and easily switch between them. The
dracula/tmux plugin is installed for a better
status bar and dark mode. The
tmux-resurrect plugin is
installed to save and restore tmux sessions after system restart.
Tmux Keymaps
The <Prefix> Keybinding has been remapped to C-a, replacing the default
C-b.
Tmux General Usage
Keybinding
Description
<Prefix> C-L
Clear screen
<Prefix> c
Create new window
<Prefix> C-]
Goto next window
<Prefix> C-[
Goto previous window
<Prefix> 0
Goto 0 index window (works for other numbers)
<Prefix> f
Find window
<Prefix> w
List all windows
<Prefix> ,
Rename window
<Prefix> C-v
Vertical split pane
<Prefix> C-_
Horizontal split pane
<Prefix> S-Up
Resize pane 5 rows up
<Prefix> S-Down
Resize pane 5 rows down
<Prefix> S-Right
Resize pane 5 rows right
<Prefix> S-Left
Resize pane 5 rows left
<Prefix> z
Toggle zooom on current pane
C-h
Navigate panes left or send C-h to Vim
C-j
Navigate panes down or send C-j to Vim
C-k
Navigate panes up or send C-k to Vim
C-l
Navigate panes right or send C-l to Vim
<Prefix> s
Show and select other tmux sessions
<Prefix> :new -s <name>
Create a new session, within a tmux session, with a name
<Prefix> )
Goto next session
<Prefix> (
Goto previous session
Updating Configuration and Managing Plugins
Keybinding
Description
<Prefix> r
Reload Tmux Config
<Prefix> I
Install plugins
<Prefix> M-u
Uninstall plugins
<Prefix> u
Update plugins
Session Management with tmux-resurrect
Keybinding
Description
<Prefix> C-s
Save session
<Prefix> C-r
Restory session
Entering Command Prompt Mode and Running Tmux Commands
Use Prefix : to enter Command Prompt Mode. Then type any command and press
enter. Here are some command commands.
Command
Description
list-commands
List all available commands
kill-server
Kills the currently active tmux server
list-keys
Show all the keymaps for the current session
respawn-pane -k
Restarts a pane with its initial command
swap-window -t 2
Swap the current window with the window at index 2
π Neovim
Neovim is a extensible, fast, and powerful text editor that
extends the capabilities of Vim. The coding editing experience configured in
these dotfiles is specifically optimized for Python, JavaScript/TypeScript,
React (jsx), and lua, but should be easily extendable to other languages as
well.
Nvim Keymaps
The <Leader> key has been remapped to " " (i.e., space).
This repository contains a .ideavimrc file for configuring JetBrains IDEs, such
as PyCharm, with Neovim-like keybindings via
ideavim. The keymaps below are
JetBrains-specific and provided here for my own reference.
Utility
Description
S-Alt-]
Go to next editor tab (works for switching between terminal tabs)
S-Alt-[
Go to previous editor tab (works for switching between terminal tabs)
π¦ Acknowledgements
In addition to all the amazing projects listed above, thanks goes out to the
following projects/individuals for providing inspiration and/or code:
LazyVim: Referenced for how to properly
configure nvim.
Dotfiles for macOS managed with yadm. Features configs for Alacritty, Tmux, Neovim, and essential CLI utilities. Detailed keymaps and installation instructions included.