10 Commits

Author SHA1 Message Date
b32d47884f fix tabs in nvim 2026-03-20 12:53:34 +05:30
707d6cffe8 fix oh my bash path 2026-03-20 12:53:34 +05:30
61d1adb3f0 Move shell config 2026-03-15 14:59:25 +05:30
3a5e73a41e Geany config changes 2026-03-15 14:32:42 +05:30
8cb7d0ef2c Change wezterm config file path 2026-03-15 14:32:42 +05:30
cd52f62b81 remove copilot from master 2026-03-15 14:21:59 +05:30
b9556c9ffb ignore lazy lock 2026-03-15 14:21:59 +05:30
4b520d8ff3 Ignore fonts in mac stow 2026-03-15 14:21:43 +05:30
32fa1a369b Fix stow 2026-03-15 14:10:52 +05:30
d002786ad4 docs: restore README.md 2026-03-15 14:02:22 +05:30
18 changed files with 175 additions and 15 deletions

2
.gitignore vendored
View File

@@ -1,2 +1,2 @@
*nvim/lazy-lock.json* *nvim/.config/nvim/lazy-lock.json*
.DS_Store .DS_Store

View File

@@ -28,5 +28,5 @@ _darcs
scripts # scripts directory to be ignored scripts # scripts directory to be ignored
shell # various shell configurations need not be stowed. shell # various shell configurations need not be stowed.
.DS_store .DS_store
README.md README.md
.*/\.git .*/\.git

94
README.md Normal file
View File

@@ -0,0 +1,94 @@
# dotfiles
This repository contains my personal dotfiles, managed using [GNU Stow](https://www.gnu.org/software/stow/).
Using `stow` ensures that all configuration files are cleanly symlinked into your home directory, mirroring the structure of this repository.
## Requirements
A script is provided to help install the core dependencies across macOS and common Linux distributions (Ubuntu/Debian, Arch, Fedora).
To run the installation script:
```bash
./scripts/install_dependencies.sh
```
Alternatively, you can manually install the required tool:
- [GNU Stow](https://www.gnu.org/software/stow/)
To install Stow on macOS, use [Homebrew](https://brew.sh/):
```bash
brew install stow
```
To install Stow on Linux, use your distribution's package manager:
**Ubuntu / Debian**
```bash
sudo apt install stow
```
**Arch Linux**
```bash
sudo pacman -S stow
```
## Installation
To install all configurations at once, navigate to the root of this repository and run:
```bash
stow */
```
*(Note: Using `stow */` prevents the shell from passing pure files like `README.md` to Stow, ensuring only directory packages are stowed).*
This will automatically create the necessary symlinks in your `$HOME` directory.
### Removing Configurations
If you want to remove the symlinks created by Stow, use the `-D` flag:
```bash
stow -D */
```
## Directory Structure & Branching Strategy
This repository uses a **Folder-Per-App** structure combined with a **Git Branching Strategy** to flawlessly handle different machines (Mac, Work, Linux) without any `if/else` logic.
### 1. Folder Structure
The root directories represent individual applications:
```text
.
├── bash/ # Stowed to ~ (contains .bashrc)
├── nvim/ # Stowed to ~/.config/nvim/
├── tmux/ # Stowed to ~ (contains .tmux.conf)
├── zsh/ # Stowed to ~ (contains .zshrc)
└── ...
```
### 2. The Git Branch Workflow
This repository has zero conditional logic. Configurations are managed purely via branches.
- **`master` branch**: Contains the 95% common base configurations shared across all machines.
- **`mac`, `work`, `linux` branches**: Machine-specific branches derived from `master`.
**How to manage machine-specific settings:**
1. Check out your machine's branch (e.g., `git checkout work`).
2. Statically write your overrides (e.g., adding a Work-only plugin to `nvim/`).
3. Commit and push: `git push origin work`.
**How to update shared settings:**
1. Switch to the base branch: `git checkout master`.
2. Update the shared configuration and commit.
3. Switch back to your local branch: `git checkout work`.
4. Pull the updates in by rebasing: `git rebase master` (then `git push origin work -f`).
### Adding New Configurations
When you want to add a new tool:
1. Create a new folder matching the application's name (e.g., `mkdir alacritty`).
2. Replicate the target directory structure inside it (e.g., `alacritty/.config/alacritty/alacritty.toml`).
3. Run `stow */` from the root of this repository to link the new package.

View File

@@ -8,7 +8,7 @@ case $- in
esac esac
# Path to your oh-my-bash installation. # Path to your oh-my-bash installation.
export OSH='/home/jsarthak/.oh-my-bash' export OSH='$HOME/.oh-my-bash'
# Set name of the theme to load. Optionally, if you set this to "random" # Set name of the theme to load. Optionally, if you set this to "random"
# it'll load a random theme each time that oh-my-bash is loaded. # it'll load a random theme each time that oh-my-bash is loaded.
@@ -172,6 +172,6 @@ fi
# interactive shell. # interactive shell.
# Example command: # Example command:
source ~/dotfiles/shell/common source ~/.config/shell/common
source ~/dotfiles/shell/personal #added by 6500gitsetup source ~/.config/shell/personal #added by 6500gitsetup
source ~/dotfiles/shell/aliases source ~/.config/shell/aliases

1
fonts/.stow-local-ignore Normal file
View File

@@ -0,0 +1 @@
.*

View File

@@ -10,9 +10,9 @@ msgwin_orientation=0
highlighting_invert_all=false highlighting_invert_all=false
pref_main_search_use_current_word=true pref_main_search_use_current_word=true
check_detect_indent=false check_detect_indent=false
detect_indent_width=false detect_indent_width=true
use_tab_to_indent=true use_tab_to_indent=true
pref_editor_tab_width=8 pref_editor_tab_width=4
indent_mode=2 indent_mode=2
indent_type=0 indent_type=0
virtualspace=1 virtualspace=1
@@ -63,7 +63,7 @@ beep_on_errors=true
auto_focus=false auto_focus=false
sidebar_symbol_visible=false sidebar_symbol_visible=false
sidebar_openfiles_visible=false sidebar_openfiles_visible=false
editor_font=Cascadia Code PL 10 editor_font=Iosevka Nerd Font 14
tagbar_font=Sans 9 tagbar_font=Sans 9
msgwin_font=Comic Mono 10 msgwin_font=Comic Mono 10
show_notebook_tabs=true show_notebook_tabs=true
@@ -132,6 +132,16 @@ treeview_position=271
msgwindow_position=1079 msgwindow_position=1079
geometry=1883;108;1182;876;0; geometry=1883;108;1182;876;0;
custom_date_format= custom_date_format=
tab_label_length=1000
use_native_dialogs=true
show_line_endings_only_when_differ=false
symbols_group_by_type=true
openfiles_path_mode=2
backspace_unindent=true
change_history_markers=false
change_history_indicators=false
skip_confirmation_for_replace_in_session=false
warn_on_project_close=true
[build-menu] [build-menu]
number_ft_menu_items=0 number_ft_menu_items=0
@@ -203,6 +213,7 @@ last_dir=/home/sarthakj
terminal_cmd=x-terminal-emulator -e "/bin/sh %c" terminal_cmd=x-terminal-emulator -e "/bin/sh %c"
browser_cmd=sensible-browser browser_cmd=sensible-browser
grep_cmd=grep grep_cmd=grep
shell_cmd=/bin/bash
[printing] [printing]
print_cmd=lpr '%f' print_cmd=lpr '%f'
@@ -212,6 +223,7 @@ print_page_numbers=true
print_page_header=true print_page_header=true
page_header_basename=false page_header_basename=false
page_header_datefmt=%c page_header_datefmt=%c
print_cmd_common_format=lpr '%d/%f'
[project] [project]
session_file= session_file=

View File

@@ -0,0 +1,7 @@
[Settings]
# 0: automatic selection based on system settings (requires Geany restart when changed, macOS 10.14+); 1: light; 2: dark; make sure there's no ~/.config/gtk-3.0/settings.ini file, otherwise it overrides the settings made here
theme=0
# no value: autodetect; locale string: locale to be used (e.g. en_US.UTF-8)
locale=
# no value: don't use any IM module; module name: use the specified module, e.g. 'quartz' for native macOS behavior, for complete list of modules, see Geany.app/Contents/Resources/lib/gtk-3.0/3.0.0/immodules, use without the 'im-' prefix
im_module=quartz

View File

@@ -0,0 +1,5 @@
[Settings]
gtk-menu-images=1
gtk-theme-name=Prof-Gnome
gtk-application-prefer-dark-theme=0
gtk-icon-theme-name=Papirus

View File

@@ -0,0 +1,32 @@
[files]
recent_files=/home/sarthakj/git-repos/v4l2loopback/utils/Makefile;/home/sarthakj/ti-processor-sdk-linux-rt-j7-evm-08_02_00_01/Makefile;/home/sarthakj/ti-processor-sdk-linux-rt-j7-evm-08_02_00_01/v4l2loopback/Makefile;/home/sarthakj/ti-processor-sdk-linux-rt-j7-evm-08_02_00_01/board-support/linux-rt-5.10.100+gitAUTOINC+204ec708dc-g204ec708dc/samples/rpmsg/Makefile;/home/sarthakj/ti-processor-sdk-linux-rt-j7-evm-08_02_00_01/v4l2loopback/Makefile.manual;/home/sarthakj/Workspace/TDA4_J7/ref/CodeRepo/Milstone_50_percent_code/src/main_baremetal.c;/home/sarthakj/Downloads/0001-ENGR00257661-pcie-imx-pcie-ep-rc-validation.patch;/home/sarthakj/Downloads/IT6664_hdmi2_tx(1).patch;/home/sarthakj/Downloads/Makefile.patch;/home/sarthakj/edid;
recent_projects=
current_page=0
[project]
session_file=
project_file_path=/home/jsarthak/projects
[geany]
treeview_position=271
msgwindow_position=1079
geometry=528;80;1182;876;0;
sidebar_page=1
[VTE]
last_dir=/home/sarthakj
[search]
find_all_expanded=false
replace_all_expanded=false
position_find_x=2122
position_find_y=446
position_replace_x=-1
position_replace_y=-1
position_fif_x=-1
position_fif_y=-1
[plugins]
load_plugins=true
custom_plugin_path=
active_plugins=;

View File

@@ -3,7 +3,15 @@ local options = {
base46 = { base46 = {
theme = "tokyodark", -- default theme theme = "tokyodark", -- default theme
hl_add = {}, hl_add = {},
hl_override = {}, hl_override = {
TbBufOn = {
bold = true,
fg = "green",
},
St_FileName = {
bold = true,
},
},
integrations = {}, integrations = {},
changed_themes = {}, changed_themes = {},
transparency = true, transparency = true,

View File

@@ -2,5 +2,4 @@ return {
"nvim-lua/plenary.nvim", "nvim-lua/plenary.nvim",
"tpope/vim-fugitive", "tpope/vim-fugitive",
"nvim-tree/nvim-web-devicons", "nvim-tree/nvim-web-devicons",
"github/copilot.vim",
} }

View File

@@ -0,0 +1 @@
.*

0
shell/.config/shell/work Normal file
View File

View File

@@ -111,9 +111,10 @@ source <(fzf --zsh)
export PATH="/Users/jsarthak/.antigravity/antigravity/bin:$PATH" export PATH="/Users/jsarthak/.antigravity/antigravity/bin:$PATH"
export PATH="/Users/jsarthak/flutter-sdk/flutter/bin:$PATH" export PATH="/Users/jsarthak/flutter-sdk/flutter/bin:$PATH"
export PATH="/opt/homebrew/bin:/opt/homebrew/sbin:$PATH" export PATH="/opt/homebrew/bin:/opt/homebrew/sbin:$PATH"
source $HOME/dotfiles/shell/common source ~/.config/shell/common
source $HOME/dotfiles/shell/personal source ~/.config/shell/personal
source $HOME/dotfiles/shell/aliases source ~/.config/shell/aliases
MANPAGER="col -b | cat" MANPAGER="col -b | cat"
MANROFFOPT="-P-c" MANROFFOPT="-P-c"
eval "$(zoxide init zsh)" eval "$(zoxide init zsh)"