Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
127 commits
Select commit Hold shift + click to select a range
864e692
added a handful of aliases
Parth Jul 9, 2020
b0bc211
removed old aliases
Parth Jul 10, 2020
53e3a21
edited alias
Parth Jul 10, 2020
792ead7
lls
Parth Jul 10, 2020
fc59757
added fzf
Parth Jul 10, 2020
c0a3461
save keybindings
Parth Jul 12, 2020
031ba10
undo accidental tmux deletion, closes #60
Parth Jul 17, 2020
62a2ef5
sync on new
Parth Sep 16, 2020
a478b75
fixed new file command
Parth Oct 22, 2020
b978d53
zsh and tmux spring cleaning
Parth May 9, 2021
bc55e79
fix ls
Parth May 9, 2021
b318aa2
cleanup vim a bit
Parth May 9, 2021
77fbb2b
cleaned up unused plugins
Parth Aug 14, 2021
3d17373
nvim experiments
Parth Jun 20, 2023
4f2cde7
add packer to deploy
Parth Jun 21, 2023
a6a7485
save from insert mode
Parth Jun 22, 2023
c6e997b
Merge branch 'master' of github.com:parth/dotfiles
Parth Jun 22, 2023
79ccee6
more nvim config
Parth Jul 6, 2023
e8c7fa7
log more complaints with my current setup
Parth Apr 14, 2024
87172a1
my nvim config emerges from the ashes
Parth Jun 8, 2024
c1692b2
more tweaks to nvim
Parth Jun 15, 2024
af427bb
blame
Parth Jul 14, 2024
2cbf66e
fix jumping diagnostics
Parth Sep 13, 2024
3dfd18f
experimenting with nix
Parth Nov 19, 2024
49b2657
cleanup some old
Parth Nov 20, 2024
69b358e
further nixOS investments
Parth Nov 20, 2024
db983c1
support for nvim in nix fashion
Parth Nov 24, 2024
21a280d
fonts are working in nix
Parth Nov 26, 2024
d2b4e8d
browser, discord, slack, 1password
Parth Nov 29, 2024
6794908
machine specific config
Parth Nov 30, 2024
209e5ae
graphics are working
Parth Nov 30, 2024
aeb4c6c
gpu things seem better
Parth Nov 30, 2024
4af73af
gpu things seem better
Parth Nov 30, 2024
ec7aa18
split out gui config
Parth Dec 4, 2024
41a74d1
intial server config
Parth Dec 4, 2024
791c8c4
tweak server config
Parth Dec 4, 2024
35c8d13
tty needed for server
Parth Dec 4, 2024
679d757
restore CI?
Parth Dec 5, 2024
ccb2aa6
restore CI?
Parth Dec 5, 2024
2f776c0
restore CI?
Parth Dec 5, 2024
e35ba29
restore CI?
Parth Dec 5, 2024
7a71d5a
restore CI?
Parth Dec 5, 2024
241a32e
restore CI?
Parth Dec 5, 2024
2c7d701
restore CI?
Parth Dec 5, 2024
3f2cd69
restore CI?
Parth Dec 5, 2024
bbbcba2
restore CI?
Parth Dec 5, 2024
7c92737
restore CI?
Parth Dec 5, 2024
35ec0bf
restore CI?
Parth Dec 5, 2024
41d0ec8
restore CI?
Parth Dec 5, 2024
1095a0e
restore CI?
Parth Dec 5, 2024
01b3bc4
restore CI?
Parth Dec 5, 2024
ccb3c38
restore CI?
Parth Dec 5, 2024
2aa3398
restore CI?
Parth Dec 5, 2024
a3e02b3
restore CI?
Parth Dec 5, 2024
850355e
restore CI?
Parth Dec 5, 2024
e171a01
restore CI?
Parth Dec 5, 2024
f770a23
restore CI?
Parth Dec 5, 2024
15129e8
restore CI?
Parth Dec 5, 2024
033d95a
restore CI?
Parth Dec 5, 2024
2e47676
restore CI?
Parth Dec 5, 2024
7742468
restore CI?
Parth Dec 5, 2024
42b7ef9
restore CI?
Parth Dec 5, 2024
93b3c44
restore CI?
Parth Dec 5, 2024
e358754
restore CI?
Parth Dec 5, 2024
7ed2be8
restore CI?
Parth Dec 5, 2024
79d7674
restore CI?
Parth Dec 5, 2024
8b8fb9b
restore CI?
Parth Dec 5, 2024
9db4d69
restore CI?
Parth Dec 5, 2024
49abe49
restore CI?
Parth Dec 5, 2024
e131047
restore CI?
Parth Dec 5, 2024
f5abedc
restore CI?
Parth Dec 5, 2024
88e0099
restore CI?
Parth Dec 5, 2024
96f02c6
restore CI?
Parth Dec 5, 2024
9c349f9
restore CI?
Parth Dec 5, 2024
d19c916
restore CI?
Parth Dec 5, 2024
b991c41
restore CI!
Parth Dec 5, 2024
c935058
ensure certain repos are always present on my systems
Parth Dec 13, 2024
74d90d1
repos + tracing-gcp
Parth Dec 13, 2024
96e76bd
caps lock?
Parth Dec 13, 2024
8f8514c
start of macbook config
Parth Apr 10, 2025
9b0d4f4
some bare bones macos setup is done
Parth Apr 10, 2025
e07150a
fonts
Parth Apr 10, 2025
32835f8
+aerospace +helix
Parth Apr 26, 2025
c63c2bb
aerospace managed by nix
Parth Apr 27, 2025
6182950
minor accomplishments
Parth Apr 28, 2025
5ad66b7
welcome wezterm
Parth Apr 29, 2025
2cc06b7
time for sway?
Parth Apr 30, 2025
9e112d5
sway is in
Parth May 1, 2025
0fa9ed7
sway is in a lil more
Parth May 1, 2025
a3eb471
restore virt-manager and add gaps
Parth May 2, 2025
722927f
some more tweaking
Parth May 3, 2025
3028c18
insta360
Parth May 6, 2025
c1cda31
monitor workspace config?
Parth May 6, 2025
38229fd
obs + nautilus + vlc + helix config tweaks
Parth May 8, 2025
ddfe3e1
more hx notes
Parth May 9, 2025
1361979
removed themes due to problems for now, we will come back again strong
Parth May 10, 2025
4f02a02
some notes
Parth May 14, 2025
4b2eb7f
Merge branch 'master' of github.com:Parth/dotfiles
Parth May 14, 2025
aea4ed0
add cargo to bin
Parth May 18, 2025
b8ccad9
dark light switching
Parth Jul 22, 2025
43311a9
desktop changes
Parth Jul 23, 2025
c5af6b7
Merge branch 'master' of github.com:Parth/dotfiles
Parth Jul 23, 2025
ec54fcf
add lockbook completions
Parth Jul 25, 2025
a976033
Merge branch 'master' of github.com:Parth/dotfiles
Parth Jul 25, 2025
24daecb
cleanup macbook
Parth Sep 9, 2025
42a5d52
cleanup macbook
Parth Sep 9, 2025
c341271
cleanup macbook
Parth Sep 9, 2025
3237d62
cleanup macbook
Parth Sep 9, 2025
e3d9317
chat
Parth Sep 12, 2025
134b17c
more pkgs
Parth Sep 16, 2025
699af4c
cleanup mac flake
Parth Sep 16, 2025
76c07c9
dock?
Parth Sep 16, 2025
1417592
ssh
Parth Sep 19, 2025
b909434
no more password auth
Parth Sep 19, 2025
1927d2a
adam
Parth Sep 19, 2025
912d57f
+gimp
Parth Sep 30, 2025
c5c9154
finally some peace
Parth Oct 2, 2025
e5d28df
correct path
Parth Oct 6, 2025
bbddb73
obs & amd, sway colors, nvim markdown render
Parth Oct 21, 2025
b385884
idle
Parth Oct 21, 2025
5c1c00b
more cleanup
Parth Oct 21, 2025
666a78b
dry
Parth Oct 21, 2025
79896c8
even better dotfilesing
Parth Oct 21, 2025
2714b05
even better dotfilesing
Parth Oct 21, 2025
3200ff5
finally some auto dark light switching
Parth Oct 21, 2025
4954ad9
it's pretty now
Parth Oct 22, 2025
2fbdec4
add ripgrep to macbook
Parth Oct 27, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,3 @@
[submodule "zsh/plugins/zsh-autosuggestions"]
path = zsh/plugins/zsh-autosuggestions
url = https://github.com/zsh-users/zsh-autosuggestions.git
[submodule "zsh/plugins/oh-my-zsh"]
path = zsh/plugins/oh-my-zsh
url = https://github.com/robbyrussell/oh-my-zsh.git
96 changes: 4 additions & 92 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,97 +1,9 @@
# Awesome Dotfiles

Simple, but extensive customization of ZSH, TMUX, and Vim.
A snapshot of my current configuration.

[![VideoWalkthrough](https://img.youtube.com/vi/UgDz_9i2nwc/0.jpg)](https://www.youtube.com/watch?v=UgDz_9i2nwc)

## Setup Options

There are 3 ways in which you can use this, depending on how much you think you'll be customizing.

One of the key features is that this implementation stays in sync across all your machines. So depending on how much you'd like to customize your configuration, you have a few options:

- Little Customization: Just clone this repo and jump to [Installation](#installation).
- Mild Customization: [Fork]() this repo, and clone your own fork. Keep an eye on this repo for bugfixes and other improvements that you'd like to incorporate into your fork. Then jump to [Installation](#installation).
- Most Customization: Building your own dotfiles from scratch! Read through these docs, watch the video above, star this repo, and create your own dotfiles! You can add this repository as a [git module](https://git-scm.com/book/en/v2/Git-Tools-Submodules) and source the parts you like.

If you're unsure, just read the docs, watch the video, clone this repository, and jump to [Installation](#installation).

## Installation

Once the repo is cloned, execute the deploy script:

```shell
./deploy
```

This script guides you through the following:

1. Checks to see if you have zsh, tmux, and vim installed.
2. Installs them using your default package manager if you don't have some of them installed.
3. Checks to see if your default shell is zsh.
4. Sets zsh to your default shell.
5. Backs up your old configuration files.

Pretty convenient for configuring new servers.

## **Summary of Changes**

## Basic runtime operations

All default dotfiles (`.zshrc`, `.vimrc`, etc) source something within the dotfiles repository. This helps separate changes that are synced across all your machines with system-specific changes.
You can see an older snapshot in video form here:

Upon launching a new shell, the first thing that's evaluated is `zshrc_manager.sh`. This script first launches tmux. Then once zsh logs in, within tmux, it updates the dotfiles repository, and sources the changes.

## [Zsh](https://en.wikipedia.org/wiki/Z_shell)

- `cd` has been reassigned to `cd` and `ls`. Every time you navigate to a new directory, it will display the content of that directory.
- `v` has been aliased too: `vim -p`. This lets you open multiple files in vim as tabs.

### Prompt

The prompt takes on the form:

```shell
[plugin, plugin, ...]:
```

Each plugin is sensitive to where you are and what you're doing, they reveal themselves when it's contextually relevant. Plugins include:

- `PWD plugin`: always present, tells you where you are. Always the first plugin.
- `Status code plugin`: appears anytime a program returns with a non-zero status code. Tells you what status code the program completed with.
- `Git plugin`: appears when you're in a git repository. Tells you what branch you're on, and how many files have been changed since the last commit.
- `Sudo plugin`: tells you when you can sudo without a password. Or when you're logged in as root.
- `Time plugin`: appears when a program took more than 1s to execute. Tells you how long it took to execute.
- `PID plugin`: appears when you background a task. Tells you what the PID of the task is.

### Keybindings

| Key Stroke | What It Does |
| ---------- | ------------------------------------------------------------------------------------------|
| Ctrl-H | Goes to the root of a git project, runs `cd $(git rev-parse --show-toplevel || echo ".")` |
| Ctrl-K | Runs `cd ..` |
| Ctrl-G | Runs `git add -A; git commit -v && git push` |
| Ctrl-V | Runs `fc`. Takes last command and puts it in a vim buffer. |
| Ctrl-S | Adds `sudo` to the beginning of the buffer. |
| Ctrl-L | Runs `ls`. |
| Ctrl-O | Equivalent to hitting `Enter`. |
| Ctrl-P | Equivalent to pressing `Up Arrow`. |

### Plugins

- [zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions): Searches your history while you type and provides suggestions.
- [zsh-syntax-highlighting](https://github.com/zsh-users/zsh-syntax-highlighting/tree/ad522a091429ba180c930f84b2a023b40de4dbcc): Provides fish style syntax highlighting for zsh.
- [ohmyzsh](https://github.com/robbyrussell/oh-my-zsh/tree/291e96dcd034750fbe7473482508c08833b168e3): Borrowed things like tab completion, fixing ls, tmux's vi-mode plugin.
- [vimode-zsh](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/vi-mode) allows you to hit `esc` and navigate the current buffer using vim movement keys.

## [Vim](<https://en.wikipedia.org/wiki/Vim_(text_editor)>)

- Leader key has been remapped to `,`

## [Tmux](https://en.wikipedia.org/wiki/Tmux)
[![VideoWalkthrough](https://img.youtube.com/vi/UgDz_9i2nwc/0.jpg)](https://www.youtube.com/watch?v=UgDz_9i2nwc)

- Ctrl-B has been remapped to the backtick character (&#96;). If you want to type the actual backtick character (&#96;) itself, just hit the key twice.
- `%` has been remapped to `v`.
- Use vim movement keys for moving between panes.
- Copy buffer is copied to xclip.
- Status bar tells you date, time, user, and hostname. Especially useful with nested ssh sessions.
The date on the video should serve as a reasonable indication for the commit you may be looking for.
212 changes: 212 additions & 0 deletions aerospace/aerospace.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,212 @@
# Place a copy of this config to ~/.aerospace.toml
# After that, you can edit ~/.aerospace.toml to your liking

# You can use it to add commands that run after login to macOS user session.
# 'start-at-login' needs to be 'true' for 'after-login-command' to work
# Available commands: https://nikitabobko.github.io/AeroSpace/commands
after-login-command = []

# You can use it to add commands that run after AeroSpace startup.
# 'after-startup-command' is run after 'after-login-command'
# Available commands : https://nikitabobko.github.io/AeroSpace/commands
after-startup-command = []

# Start AeroSpace at login
start-at-login = false

# Normalizations. See: https://nikitabobko.github.io/AeroSpace/guide#normalization
enable-normalization-flatten-containers = true
enable-normalization-opposite-orientation-for-nested-containers = true

# See: https://nikitabobko.github.io/AeroSpace/guide#layouts
# The 'accordion-padding' specifies the size of accordion padding
# You can set 0 to disable the padding feature
accordion-padding = 30

# Possible values: tiles|accordion
default-root-container-layout = 'tiles'

# Possible values: horizontal|vertical|auto
# 'auto' means: wide monitor (anything wider than high) gets horizontal orientation,
# tall monitor (anything higher than wide) gets vertical orientation
default-root-container-orientation = 'auto'

# Mouse follows focus when focused monitor changes
# Drop it from your config, if you don't like this behavior
# See https://nikitabobko.github.io/AeroSpace/guide#on-focus-changed-callbacks
# See https://nikitabobko.github.io/AeroSpace/commands#move-mouse
# Fallback value (if you omit the key): on-focused-monitor-changed = []
on-focused-monitor-changed = ['move-mouse monitor-lazy-center']

# You can effectively turn off macOS "Hide application" (cmd-h) feature by toggling this flag
# Useful if you don't use this macOS feature, but accidentally hit cmd-h or cmd-alt-h key
# Also see: https://nikitabobko.github.io/AeroSpace/goodies#disable-hide-app
automatically-unhide-macos-hidden-apps = false

# Possible values: (qwerty|dvorak|colemak)
# See https://nikitabobko.github.io/AeroSpace/guide#key-mapping
[key-mapping]
preset = 'qwerty'

# Gaps between windows (inner-*) and between monitor edges (outer-*).
# Possible values:
# - Constant: gaps.outer.top = 8
# - Per monitor: gaps.outer.top = [{ monitor.main = 16 }, { monitor."some-pattern" = 32 }, 24]
# In this example, 24 is a default value when there is no match.
# Monitor pattern is the same as for 'workspace-to-monitor-force-assignment'.
# See:
# https://nikitabobko.github.io/AeroSpace/guide#assign-workspaces-to-monitors
[gaps]
inner.horizontal = 0
inner.vertical = 0
outer.left = 0
outer.bottom = 0
outer.top = 0
outer.right = 0

# 'main' binding mode declaration
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
# 'main' binding mode must be always presented
# Fallback value (if you omit the key): mode.main.binding = {}
[mode.main.binding]

# All possible keys:
# - Letters. a, b, c, ..., z
# - Numbers. 0, 1, 2, ..., 9
# - Keypad numbers. keypad0, keypad1, keypad2, ..., keypad9
# - F-keys. f1, f2, ..., f20
# - Special keys. minus, equal, period, comma, slash, backslash, quote, semicolon,
# backtick, leftSquareBracket, rightSquareBracket, space, enter, esc,
# backspace, tab, pageUp, pageDown, home, end, forwardDelete,
# sectionSign (ISO keyboards only, european keyboards only)
# - Keypad special. keypadClear, keypadDecimalMark, keypadDivide, keypadEnter, keypadEqual,
# keypadMinus, keypadMultiply, keypadPlus
# - Arrows. left, down, up, right

# All possible modifiers: cmd, alt, ctrl, shift

# All possible commands: https://nikitabobko.github.io/AeroSpace/commands

# See: https://nikitabobko.github.io/AeroSpace/commands#exec-and-forget
# You can uncomment the following lines to open up terminal with alt + enter shortcut
# (like in i3)
# alt-enter = '''exec-and-forget osascript -e '
# tell application "Terminal"
# do script
# activate
# end tell'
# '''

# See: https://nikitabobko.github.io/AeroSpace/commands#layout
alt-slash = 'layout tiles horizontal vertical'
alt-comma = 'layout accordion horizontal vertical'

# See: https://nikitabobko.github.io/AeroSpace/commands#focus
alt-h = 'focus left'
alt-j = 'focus down'
alt-k = 'focus up'
alt-l = 'focus right'

# See: https://nikitabobko.github.io/AeroSpace/commands#move
alt-shift-h = 'move left'
alt-shift-j = 'move down'
alt-shift-k = 'move up'
alt-shift-l = 'move right'

# See: https://nikitabobko.github.io/AeroSpace/commands#resize
alt-minus = 'resize smart -50'
alt-equal = 'resize smart +50'

# See: https://nikitabobko.github.io/AeroSpace/commands#workspace
alt-1 = 'workspace 1'
alt-2 = 'workspace 2'
alt-3 = 'workspace 3'
alt-4 = 'workspace 4'
alt-5 = 'workspace 5'
alt-6 = 'workspace 6'
alt-7 = 'workspace 7'
alt-8 = 'workspace 8'
alt-9 = 'workspace 9'
alt-a = 'workspace A' # In your config, you can drop workspace bindings that you don't need
alt-b = 'workspace B'
alt-c = 'workspace C'
alt-d = 'workspace D'
alt-e = 'workspace E'
alt-f = 'workspace F'
alt-g = 'workspace G'
alt-i = 'workspace I'
alt-m = 'workspace M'
alt-n = 'workspace N'
alt-o = 'workspace O'
alt-p = 'workspace P'
alt-q = 'workspace Q'
alt-r = 'workspace R'
alt-s = 'workspace S'
alt-t = 'workspace T'
alt-u = 'workspace U'
alt-v = 'workspace V'
alt-w = 'workspace W'
alt-x = 'workspace X'
alt-y = 'workspace Y'
alt-z = 'workspace Z'

# See: https://nikitabobko.github.io/AeroSpace/commands#move-node-to-workspace
alt-shift-1 = 'move-node-to-workspace 1'
alt-shift-2 = 'move-node-to-workspace 2'
alt-shift-3 = 'move-node-to-workspace 3'
alt-shift-4 = 'move-node-to-workspace 4'
alt-shift-5 = 'move-node-to-workspace 5'
alt-shift-6 = 'move-node-to-workspace 6'
alt-shift-7 = 'move-node-to-workspace 7'
alt-shift-8 = 'move-node-to-workspace 8'
alt-shift-9 = 'move-node-to-workspace 9'
alt-shift-a = 'move-node-to-workspace A'
alt-shift-b = 'move-node-to-workspace B'
alt-shift-c = 'move-node-to-workspace C'
alt-shift-d = 'move-node-to-workspace D'
alt-shift-e = 'move-node-to-workspace E'
alt-shift-f = 'move-node-to-workspace F'
alt-shift-g = 'move-node-to-workspace G'
alt-shift-i = 'move-node-to-workspace I'
alt-shift-m = 'move-node-to-workspace M'
alt-shift-n = 'move-node-to-workspace N'
alt-shift-o = 'move-node-to-workspace O'
alt-shift-p = 'move-node-to-workspace P'
alt-shift-q = 'move-node-to-workspace Q'
alt-shift-r = 'move-node-to-workspace R'
alt-shift-s = 'move-node-to-workspace S'
alt-shift-t = 'move-node-to-workspace T'
alt-shift-u = 'move-node-to-workspace U'
alt-shift-v = 'move-node-to-workspace V'
alt-shift-w = 'move-node-to-workspace W'
alt-shift-x = 'move-node-to-workspace X'
alt-shift-y = 'move-node-to-workspace Y'
alt-shift-z = 'move-node-to-workspace Z'

# See: https://nikitabobko.github.io/AeroSpace/commands#workspace-back-and-forth
alt-tab = 'workspace-back-and-forth'
# See: https://nikitabobko.github.io/AeroSpace/commands#move-workspace-to-monitor
alt-shift-tab = 'move-workspace-to-monitor --wrap-around next'

# See: https://nikitabobko.github.io/AeroSpace/commands#mode
alt-shift-semicolon = 'mode service'

# 'service' binding mode declaration.
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
[mode.service.binding]
esc = ['reload-config', 'mode main']
r = ['flatten-workspace-tree', 'mode main'] # reset layout
f = ['layout floating tiling', 'mode main'] # Toggle between floating and tiling layout
backspace = ['close-all-windows-but-current', 'mode main']

# sticky is not yet supported https://github.com/nikitabobko/AeroSpace/issues/2
#s = ['layout sticky tiling', 'mode main']

alt-shift-h = ['join-with left', 'mode main']
alt-shift-j = ['join-with down', 'mode main']
alt-shift-k = ['join-with up', 'mode main']
alt-shift-l = ['join-with right', 'mode main']

down = 'volume down'
up = 'volume up'
shift-down = ['volume set 0', 'mode main']
29 changes: 0 additions & 29 deletions alacritty/alacritty.yml

This file was deleted.

Loading