Compare commits
12 Commits
bcd24b7c15
...
work
| Author | SHA1 | Date | |
|---|---|---|---|
| 8151960ea4 | |||
| b3976802a1 | |||
| 455cc96884 | |||
| 7ec8151131 | |||
| 0db137091a | |||
| 993e375a76 | |||
| d68beb82d9 | |||
| 58080d0aa2 | |||
| 471d2e2b71 | |||
| 48d7990c10 | |||
| 32fa1a369b | |||
| d002786ad4 |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,2 +1,2 @@
|
||||
*nvim/lazy-lock.json*
|
||||
*nvim/.config/nvim/lazy-lock.json*
|
||||
.DS_Store
|
||||
|
||||
@@ -28,5 +28,5 @@ _darcs
|
||||
scripts # scripts directory to be ignored
|
||||
shell # various shell configurations need not be stowed.
|
||||
.DS_store
|
||||
[38;2;248;248;242mREADME.md[0m
|
||||
[38;2;248;248;242m.*/\.git[0m
|
||||
README.md
|
||||
.*/\.git
|
||||
|
||||
94
README.md
Normal file
94
README.md
Normal 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.
|
||||
@@ -172,6 +172,7 @@ fi
|
||||
# interactive shell.
|
||||
|
||||
# Example command:
|
||||
source ~/dotfiles/shell/common
|
||||
source ~/dotfiles/shell/personal #added by 6500gitsetup
|
||||
source ~/dotfiles/shell/aliases
|
||||
source ~/.config/shell/common
|
||||
source ~/.config/shell/personal #added by 6500gitsetup
|
||||
source ~/.config/shell/aliases
|
||||
source ~/.config/shell/work
|
||||
|
||||
@@ -10,9 +10,9 @@ msgwin_orientation=0
|
||||
highlighting_invert_all=false
|
||||
pref_main_search_use_current_word=true
|
||||
check_detect_indent=false
|
||||
detect_indent_width=false
|
||||
detect_indent_width=true
|
||||
use_tab_to_indent=true
|
||||
pref_editor_tab_width=8
|
||||
pref_editor_tab_width=4
|
||||
indent_mode=2
|
||||
indent_type=0
|
||||
virtualspace=1
|
||||
@@ -63,7 +63,7 @@ beep_on_errors=true
|
||||
auto_focus=false
|
||||
sidebar_symbol_visible=false
|
||||
sidebar_openfiles_visible=false
|
||||
editor_font=Cascadia Code PL 10
|
||||
editor_font=Iosevka Nerd Font 14
|
||||
tagbar_font=Sans 9
|
||||
msgwin_font=Comic Mono 10
|
||||
show_notebook_tabs=true
|
||||
@@ -132,6 +132,16 @@ treeview_position=271
|
||||
msgwindow_position=1079
|
||||
geometry=1883;108;1182;876;0;
|
||||
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]
|
||||
number_ft_menu_items=0
|
||||
@@ -203,6 +213,7 @@ last_dir=/home/sarthakj
|
||||
terminal_cmd=x-terminal-emulator -e "/bin/sh %c"
|
||||
browser_cmd=sensible-browser
|
||||
grep_cmd=grep
|
||||
shell_cmd=/bin/bash
|
||||
|
||||
[printing]
|
||||
print_cmd=lpr '%f'
|
||||
@@ -212,6 +223,7 @@ print_page_numbers=true
|
||||
print_page_header=true
|
||||
page_header_basename=false
|
||||
page_header_datefmt=%c
|
||||
print_cmd_common_format=lpr '%d/%f'
|
||||
|
||||
[project]
|
||||
session_file=
|
||||
|
||||
7
geany/.config/geany/geany_mac.conf
Normal file
7
geany/.config/geany/geany_mac.conf
Normal 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
|
||||
5
geany/.config/geany/gtk-3.0/settings.ini
Normal file
5
geany/.config/geany/gtk-3.0/settings.ini
Normal 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
|
||||
32
geany/.config/geany/session.conf
Normal file
32
geany/.config/geany/session.conf
Normal 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=;
|
||||
@@ -74,6 +74,7 @@ require("lazy").setup({
|
||||
{
|
||||
"junegunn/seoul256.vim"
|
||||
},
|
||||
require("kickstart.plugins.work"),
|
||||
|
||||
-- NOTE: Plugins can also be added by using a table,
|
||||
-- with the first argument being the link and the following
|
||||
|
||||
@@ -2,5 +2,4 @@ return {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"tpope/vim-fugitive",
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
"github/copilot.vim",
|
||||
}
|
||||
|
||||
4
nvim/.config/nvim/lua/kickstart/plugins/work.lua
Normal file
4
nvim/.config/nvim/lua/kickstart/plugins/work.lua
Normal file
@@ -0,0 +1,4 @@
|
||||
return {
|
||||
"github/copilot.vim",
|
||||
require("kickstart.plugins.copilot_chat")
|
||||
}
|
||||
1
scripts/.stow-local-ignore
Normal file
1
scripts/.stow-local-ignore
Normal file
@@ -0,0 +1 @@
|
||||
.*
|
||||
49
shell/.config/shell/work
Normal file
49
shell/.config/shell/work
Normal file
@@ -0,0 +1,49 @@
|
||||
#---------------------------------- Alias -----------------------------------------
|
||||
alias gsim-gui='/opt/tools/bin/gsim-gui'
|
||||
alias devops-legacy='source /opt/tools/bin/6500-devops activate'
|
||||
|
||||
alias st="ssh 10.185.100.64"
|
||||
|
||||
#--------------------------------- Exports ---------------------------------------
|
||||
export PATH=/opt/tools/bin/:$PATH
|
||||
export PATH=/opt/tools/swtools/omeBaseTools/latest/:$PATH
|
||||
export PATH=/localdisk/archive/git-cheat/:$PATH
|
||||
export PATH=$HOME/toolkit/bin/:$PATH
|
||||
export PATH=/home/sarjain/.cargo/bin:$PATH
|
||||
export PATH=/nfs/projects/verif/ome/automain:$PATH
|
||||
export PATH=/home/sarjain/scripts/:$PATH
|
||||
export PATH=/home/sarjain/.local/bin/:$PATH
|
||||
export PATH=/localdisk/usr/neovim/bin/:$PATH
|
||||
export NTCADHOME=/opt/tools
|
||||
export PATH=/usr/lab/bin:/localdisk/pne6.9/trunk/components/windml-5.3/host/x86-linux2/bin:/localdisk/pne6.9/trunk/components/webservices-1.8/host/x86-linux2/bin:/localdisk/pne6.9/trunk/components/wrll-wrsnmp/packages/wrsnmp-10.3/host/x86-linux2/bin:/localdisk/pne6.9/trunk/components/webcli-4.9/host/x86-linux2/bin:/localdisk/pne6.9/trunk/components/ip_net2-6.9/host/x86-linux2/bin:/localdisk/pne6.9/trunk/vxworks-6.9//host/x86-linux2/bin:/localdisk/pne6.9/trunk/vxworks-6.9//vxtest/src/scripts:/localdisk/pne6.9/trunk/vxworks-6.9//host/binutils/x86-linux2/bin:/localdisk/pne6.9/trunk:/localdisk/pne6.9/trunk/utilities-1.0/x86-linux2/bin:/localdisk/pne6.9/trunk/workbench-3.3/foundation/x86-linux2/bin:/localdisk/pne6.9/trunk/workbench-3.3/wrsysviewer/host/x86-linux2/bin:/localdisk/pne6.9/trunk/workbench-3.3/wrwb/platform/x86-linux2/eclipse:/localdisk/pne6.9/trunk/workbench-3.3/analysis/host/bin/x86-linux2:/localdisk/pne6.9/trunk/workbench-3.3/x86-linux2/bin:/localdisk/pne6.9/trunk/lmapi-5.0/x86-linux2/bin:/opt/tools/wh/dtd/RHE-5/wr_vxworks_gnu/4.3.3-vxworks-6.9/x86-linux2/bin:/localdisk/pne6.9/trunk/intel/20110124-vxworks-6.9/x86-linux2/bin/ia32:/opt/tools/wh/dtd/RHE-5/wr_vxworks_diab/5.9.1.0/diab/5.9.1.0/LINUX386/bin:/opt/tools/swtools/anaconda/6500/envs/linux-64/devops/bin:/opt/tools/swtools/6500/devutils/bin:/opt/tools/bin:/opt/tools/swtools/anaconda_envs/linux-64/devops/bin:/opt/tools/swtools/anaconda/pftools/condabin:/opt/vulcan/tools/equinox/latest/bin:/opt/vulcan/tools/vulcanbase/0.80/bin:/home/npawar/bin:/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/tools/swtools/omeBaseTools/latest:/opt/rational/clearcase/bin:/nfs/projects/cmtools/neu/bin:/nfs/projects/cmtools/bin:/usr/lab/bin:/nfs/projects/equinox/insight/SSIM/latest/bin:/nfs/projects/om_swdev/vkdbg/bin:/nfs/projects/verif/ome/automain:/nfs/projects/equinox/bin:/nfs/projects/aladdin/bin:/nfs/projects/pegasus/bin:/opt/mce/bin:/usr/pde/bin:/nfs/projects/equinox/fast_desktop_analysis/bin:$PATH
|
||||
export PATH=/home/sarjain/usr/lab/bin/:$PATH
|
||||
export PATH=/home/sarjain/.local/bin/:$PATH
|
||||
export PATH=/home/sarjain/.local/neovim/bin/:$PATH
|
||||
|
||||
#------
|
||||
# Check if the current shell is Bash
|
||||
if [[ -n "$BASH_VERSION" ]]; then
|
||||
source /opt/tools/swtools/git-completion/git-completion.bash #added by 6500gitsetup
|
||||
source /opt/tools/bin/go-devops
|
||||
#--------------------------------- Set bash prompt -------------------------------
|
||||
# export PS1="\e[1;32m\h\e[0m:\e[1;34m\w\e[0m\n$ "
|
||||
#
|
||||
#
|
||||
#--- DevOps Shell
|
||||
eval "$(starship init bash)"
|
||||
fi
|
||||
|
||||
if [[ -n "$ZSH_VERSION" ]]; then
|
||||
bash -c 'source /opt/tools/bin/go-devops && env' | while IFS='=' read -r key value; do
|
||||
if [[ "$key" =~ ^[A-Za-z_][A-Za-z0-9_]*$ ]]; then
|
||||
export "$key=$value"
|
||||
fi
|
||||
done
|
||||
|
||||
bash -c 'source /opt/tools/swtools/git-completion/git-completion.bash && env' | while IFS='=' read -r key value; do
|
||||
if [[ "$key" =~ ^[A-Za-z_][A-Za-z0-9_]*$ ]]; then
|
||||
export "$key=$value"
|
||||
fi
|
||||
done
|
||||
|
||||
fi
|
||||
@@ -111,9 +111,11 @@ source <(fzf --zsh)
|
||||
export PATH="/Users/jsarthak/.antigravity/antigravity/bin:$PATH"
|
||||
export PATH="/Users/jsarthak/flutter-sdk/flutter/bin:$PATH"
|
||||
export PATH="/opt/homebrew/bin:/opt/homebrew/sbin:$PATH"
|
||||
source $HOME/dotfiles/shell/common
|
||||
source $HOME/dotfiles/shell/personal
|
||||
source $HOME/dotfiles/shell/aliases
|
||||
source ~/.config/shell/common
|
||||
source ~/.config/shell/personal
|
||||
source ~/.config/shell/aliases
|
||||
source ~/.config/shell/work
|
||||
|
||||
MANPAGER="col -b | cat"
|
||||
MANROFFOPT="-P-c"
|
||||
eval "$(zoxide init zsh)"
|
||||
|
||||
Reference in New Issue
Block a user