Compare commits

..

22 Commits

Author SHA1 Message Date
4fad7b86f4 Theme updates
- pina colors for kitty and nvim
- drop obsidian theme
- update theme notes
- switch default from pina to gruvbox
2025-12-11 16:20:31 -06:00
db2b30210a Update terminal background color for gruvbox theme 2025-12-10 20:41:53 -06:00
9b6974dce5 Remove obsidian frontmatter & .md conceal, use telescope vertical layout 2025-12-02 13:59:54 -06:00
87e8ff848b Adjust backgrounds for jade theme, update tmux binding for notes 2025-11-30 16:55:29 -06:00
69806a9411 Add minor changes for obsidian nvim plugin and key mappings 2025-11-30 00:24:17 -06:00
79f53976da Make a few minor clean-up changes 2025-11-21 01:59:33 -06:00
d796c73bad Fix inconsistency in make_dirs.sh 2025-11-21 01:32:10 -06:00
f25745c709 Improve wording/clarity in several docs 2025-11-21 01:29:31 -06:00
8d845e0fc8 Use --skip-theme-config flag in box_setup, adjust nvim and tmux settings 2025-11-20 12:24:06 -06:00
ae1166a463 Minor changes to tokyodark nvim theme (visual highlight, remove italics) 2025-11-18 18:47:35 -06:00
56557f4cf0 Update htoprc layouts so that 8-core and 16-core are more consistent 2025-11-18 16:38:21 -06:00
2bbd3c9d78 Add description to README, update todo.md list, update wallpaper names 2025-11-18 16:16:46 -06:00
464b7808f7 Add vars and logic for home-dir clean-up, minor obsidian changes 2025-11-18 15:39:30 -06:00
5cbdb77ea0 Add obsidian.nvim plugin, add minor changes related to home-dir cleanup 2025-11-17 11:32:07 -06:00
99a3f1aba0 Set PS1 prompt for shells, update tmux themes and status line 2025-11-16 14:40:17 -06:00
e5195542ef Update kshrc and .zshrc to rely on master rc file like profile files 2025-11-16 01:48:35 -06:00
5481306e0d Rename osake-jade to jade and rename a few image files 2025-11-16 01:23:19 -06:00
a35cd568ce Replace mise-activate with simple wrapper scripts and ENV vars
The prompting for this change is to use mise within ksh/oksh without
having to rely on zsh (such as `zsh -c "mise activate zsh"` or
otherwise). I kind of like the simplicity of this, and then I can still
easily change versions as needed in a given project by sourcing a file
which exports different vars for target language versions, or I can just
do manual export commands from the shell.
2025-11-16 01:04:07 -06:00
7ef1d2f391 Make copy_dotfiles POSIX, simplify zsh files, minor nvim changes 2025-11-15 00:09:26 -06:00
f1700e1d3d Rework profile/env for shells 2025-11-14 20:00:31 -06:00
52610e056a Ignore brave browser in theme-set for now
I dug at this for a while and it never worked well. There might be some
way to do this with what currently exists, but it isn't obvious if so
and I don't think it is worth it. I think I may prefer to just set brave
to dark mode and keep the frame minimal. Also, my plan is to switch to
using qutebrowser as my primary browser anyway.
2025-11-14 20:00:31 -06:00
97519acea1 Import omarcy-mars-theme and local files, reformat & rename other files 2025-11-14 19:59:44 -06:00
68 changed files with 454 additions and 340 deletions

View File

@@ -1,3 +0,0 @@
source "$XDG_CONFIG_HOME/tmux/.tmux-session-hydrate-default"
tmux rename-window -t procs nv-kickstart
tmux send-keys -t :nv-kickstart "cd $DIR_GIT_PROJECTS/other/kickstart.nvim" c-M

View File

@@ -1,4 +1,15 @@
# dotfiles, plus scripts for box setup
# dotfiles, plus installation and related scripts
This repo contains a collection of scripts and files related to:
- configuration (i.e. this serves as my dotfiles repo)
- installation of programs
- scripts/executables for my local systems
- anything else related to getting my boxes (computers) set up as desired
This repo grew into more than I originally intended, but it turned into a fun little
excursion into the realm of shell scripting (and an intro to Lua for the neovim
portions).
## prereqs
@@ -17,8 +28,8 @@
## script run
- to do the full setup, from git root dir, run: `./box_setup.sh`
- to copy dotfiles only, from git root dir, run: `./copy_dotfiles.sh`
- to do the full setup, from the repo's root dir, run: `./box_setup.sh`
- to copy dotfiles only, from the repo's root dir, run: `./copy_dotfiles.sh`
## after script run

View File

@@ -2,8 +2,8 @@
[[ $1 = "--help" ]] && {
echo "\nusage: ./box_setup.sh [system-type]"
echo "\nsystem-type options: personal, studio-music, work-placeholder"
echo "\nexamples:\n ./box_setup.sh\n ./box_setup.sh studio-music\n"
echo "\nsystem-type options: work"
echo "\nexamples:\n ./box_setup.sh\n ./box_setup.sh work\n"
exit 0
}
@@ -51,11 +51,11 @@ export BOX_SETUP_UPDATE_PKGS_CMD="$update_pkgs_cmd"
# make dirs and copy configs/dotfiles
. ./src_files/shell/profile
./make_dirs.sh
./copy_dotfiles.sh $1
./copy_dotfiles.sh "--skip-theme-config"
# install programs
. $ZDOTDIR/.zshrc
./install_programs.sh $1
echo "setting the default theme: $DEFAULT_THEME_NAME"
$DIR_SCRIPTS/theme-set $DEFAULT_THEME_NAME
# configure themes
./theme_config.sh

View File

@@ -1,44 +1,46 @@
#!/bin/zsh
#!/bin/sh
echo_and_execute() { echo "executing: $@" && "$@" }
echo_and_execute() {
echo "executing: $@" && "$@"
}
copy_file() {
local from=$1
local to=$2
local filename=$(basename $from)
[[ -e $to/$filename ]] && rm $to/$filename
echo_and_execute cp -RPp $from $to/$filename
from=$1
to=$2
filename=$(basename "$from")
[ -e "$to/$filename" ] && rm "$to/$filename"
echo_and_execute cp -RPp "$from" "$to/$filename"
}
copy_dir() {
local from=$1
local to=$2
pushd $from > /dev/null
local directories=(`find . -mindepth 1 -maxdepth 1 -type d`)
for dir in $directories; do
[[ -d $to/$dir ]] && rm -rf $to/$dir
echo_and_execute cp -RPp $dir $to/$dir
from=$1
to=$2
prev_dir=$(pwd)
cd "$from" || return 1
find . -mindepth 1 -maxdepth 1 -type d | while read -r dir; do
[ -d "$to/$dir" ] && rm -rf "$to/$dir"
echo_and_execute cp -RPp "$dir" "$to/$dir"
done
local files=(`find . -mindepth 1 -maxdepth 1 -type f`)
for file in $files; do
copy_file $file $to
find . -mindepth 1 -maxdepth 1 -type f | while read -r file; do
copy_file "$file" "$to"
done
popd > /dev/null
cd "$prev_dir" || return 1
}
sym_link() {
[[ ! -e "$1" ]] && echo "skipping link, target does not exist: $1" && return
[[ -h "$2" ]] && rm $2
[[ -f "$2" || -d "$2" ]] && rm -rf $2
echo_and_execute ln -s $1 $2
! [ -e "$1" ] && echo "skipping link, target does not exist: $1" && return
[ -h "$2" ] && rm "$2"
test -f "$2" -o -d "$2" && rm -rf "$2"
echo_and_execute ln -s "$1" "$2"
}
echo "---- copying dotfiles ------------------"
. ./src_files/shell/profile
# copy over env/profile files used by shell(s)
copy_file src_files/shell/profile $XDG_CONFIG_HOME
copy_file src_files/shell/.profile $HOME
copy_file src_files/shell/profile $XDG_CONFIG_HOME
copy_file src_files/shell/rc $XDG_CONFIG_HOME
copy_file src_files/.config/zsh/.zshenv $HOME
# copy over configs, executables, and scripts
@@ -47,20 +49,18 @@ copy_dir src_files/.local/bin $DIR_BIN
copy_dir src_files/.local/scripts $DIR_SCRIPTS
# macOS overrides as needed
[[ "$OSTYPE" = *"darwin"* ]] && copy_dir src_files/bin_overrides_macos $DIR_BIN
case "$OSTYPE" in *darwin*) copy_dir src_files/bin_overrides_macos $DIR_BIN;; esac
# obsidian uses a per-vault config model, so copy to all target vaults/dirs
for obs_dir in "${OBSIDIAN_WORKSPACES_TO_CONFIGURE[@]}"; do
[[ ! -d "$obs_dir/.obsidian" ]] && mkdir "$obs_dir/.obsidian"
copy_dir $XDG_CONFIG_HOME/obsidian "$obs_dir/.obsidian"
IFS=","; for obs_dir in $OBSIDIAN_WORKSPACES_TO_CONFIGURE; do
! [ -d "$obs_dir/.obsidian" ] && mkdir "$obs_dir/.obsidian"
copy_dir "$XDG_CONFIG_HOME/obsidian" "$obs_dir/.obsidian"
done
# TODO: get reaper config set up
# [[ $1 = "studio-music" ]] {
# [[ "$OSTYPE" = *"darwin"* ]] &&
# sym_link "$XDG_CONFIG_HOME/REAPER" "$HOME/Library/Application Support/REAPER"
# }
# set up themes and theme-switcher
./theme_config.sh
! [ "$1" = "--skip-theme-config" ] && ./theme_config.sh

View File

@@ -1,14 +1,14 @@
# attribution
# Attribution
## Original pattern/approach and some core config logic
The original pattern and approach for this project, the original program-installation
and copy-configs-and-files scripts/logic, the "tmux sessionizer" (tmux session init
logic), my initial neovim and tmux configs, and my general workflow/workspace strategy,
were derived from several of ThePrimeagen's (aka Michael Paulson) projects and videos,
including a FrontEnd Masters course which he taught (each are listed below). I was
unable to locate any required licenses or copyrights for the code contained within
these sources, but I wanted to give attribution nonetheless.
The original idea and approach for this project, including the original versions of my
program-installation script, the copy-configs-and-files script, the "tmux sessionizer"
(tmux session init logic), my initial neovim and tmux configs, and (though not code)
my general workflow/workspace strategy, were derived from several of ThePrimeagen's
(aka Michael Paulson's) projects and videos, including a FrontEnd Masters course which
he taught (each are listed below). I could not locate any required licenses or copyrights
for the code contained within these sources, but I wanted to give attribution nonetheless.
- [dev/setup/config repo](https://github.com/ThePrimeagen/dev)
- [neovim config](https://github.com/ThePrimeagen/init.lua)
@@ -22,13 +22,14 @@ The idea of using a file with a list of programs in it for building and/or
installing programs was inspired by Luke Smith's
[LARBS project](https://github.com/LukeSmithxyz/LARBS/tree/master).
## Some themes and theme-swtiching/setting logic
## Theme-swtiching/setting logic and some themes
The theme configuration files in this repository under
Much of the "theme-switching" or "theme-setting" logic and scripts are derived from
[Omarchy](https://github.com/basecamp/omarchy), and some theme configuration files
in this repository under
[src_files/imports/themes-omarchy-core](../src_files/imports/themes-omarchy-core)
are copied from, and much of the "theme-switching" or "theme-setting" logic and scripts
are derived from, [Omarchy](https://github.com/basecamp/omarchy), which is licensed under
the [MIT License](https://github.com/basecamp/omarchy/blob/master/LICENSE).
are copied from [Omarchy](https://github.com/basecamp/omarchy), which is licensed
under the [MIT License](https://github.com/basecamp/omarchy/blob/master/LICENSE).
Copyright (c) David Heinemeier Hansson
@@ -36,8 +37,8 @@ Copyright (c) David Heinemeier Hansson
Additional theme configuration files in this repository under
[src_files/imports/themes-omarchy-extra](../src_files/imports/themes-omarchy-extra)
are copied or derived from projects of additional conrtibutors to the Omarchy
community/ecosystem. For information about authors/licenses/copyrights for each, refer
to any LICENSE and/or ATTRIBUTION.md files in each theme's respective directory under
are copied or derived from projects of additional conrtibutors to the Omarchy community.
For information about authors/licenses/copyrights for each, refer to any LICENSE and/or
ATTRIBUTION.md files in each theme's respective directory under
[src_files/imports/themes-omarchy-extra](../src_files/imports/themes-omarchy-extra).

View File

@@ -5,8 +5,8 @@
- shell
- check user's shell using `echo $SHELL` or otherwise
- if not the desired shell:
- `chsh -l` to see options; if target shell isn't listed, then add it
to `/etc/shells`
- `cat /etc/shells` (or `chsh -l` if supported) to see options
- if target shell isn't listed, add it to `/etc/shells`
- then change the shell with `chsh -s <path to target shell>`
## macOS

View File

@@ -1,11 +1,10 @@
# todo items
# TODO items
- config for shell (using zsh for now, but considering oksh)
- config for calcurse
- config for calcurse (including syncing via caldav, etesync, or similar)
- config for mpd, and client(s), (mpd clients to consider: mpc, ncmpcpp, ncmpc, inori)
- hyprland config and install on linux
- web browsers config and install
- get find, xargs, awk (use nawk) as unified as i can across system types
- finish hyprland config and installation on linux
- web browsers config and install (primary: qutebrowser, alt1: brave, alt2: tor)
- get find, xargs, and awk (use nawk) as unified as i can across system types
- pick rss reader; newsboat? others? option with inbox and separate queues?
- decide if i even want a filemanager; if yes, pick one and configure
- make all these scripts POSIX-compliant (or at least usable in ksh/oksh)

View File

@@ -1,4 +1,4 @@
# notes regarding my workflow and intended use of workspaces
# Notes regarding my workflow and system use
## workspaces layout
@@ -6,20 +6,20 @@ idea from the ThePrimeagen: designated workspace/label/desktop per app/purpose
### current layout
| key | app/focus |
|-----|-----------|
| 1. | notes (nvim, obsidian) |
| 2. | music makeing - misc |
| 3. | music making - daw |
| 4. | drawing (gimp) |
| 5. | music/audio listening |
| 6. | comms (emails, chats, av/calls) |
| 7. | web browser |
| 8. | terminal (primary; one-off terminals & tui apps can be anywhere) |
| 9. | programming - misc (whatever is not in primary terminal) |
| 0. | general - misc (catch-all) |
| key | app/focus
|-----|-----------
| 1. | system monitor (htop)
| 2. | music makeing - misc
| 3. | music making - daw
| 4. | stack: drawing (gimp), obsidian
| 5. | listening/wathcing (any music, audio, or video)
| 6. | comms (emails, chats, av/calls)
| 7. | web browser
| 8. | terminal (primary; one-off terminals & tui apps can be anywhere)
| 9. | programming - misc (whatever is not in primary terminal)
| 0. | general - misc (catch-all)
### ideas/guidelines:
### guiding ideas
- use this consistently accross all machines
- if something not applicable for a given machine, just don't have apps or screens
present, but maintain absolute position/numbering of each screen
@@ -29,12 +29,12 @@ idea from the ThePrimeagen: designated workspace/label/desktop per app/purpose
- for me, using peripherals with right hand, so put programs likely to be used with
peripherals where my left hand can switch to them single-handedly (screens 1 to 5)
## workflow / use notes
### usage notes
- related to the layout above, my approach is to run almost every window in fullscreen
- note: on macOS, this is not mac's notion of fullscreen, which basically moves
windows to new workspaces/desktops when going to fullscreen mode; instead, when i
say 'fullscreen', the idea is taking up all of the normal screen (excluding the
say 'fullscreen', the idea is taking up all of the normal screen (excluding any
menu bar at the top of the screen)
- key bindings are set for moving window focus up/down (vim style: mod + k/j)
- the mental model here is that every fullscreen window is in a stack, so i can move
@@ -49,7 +49,7 @@ idea from the ThePrimeagen: designated workspace/label/desktop per app/purpose
many windows and/or tabs open at one time; however, with the designated purpose for
each workspace and the mental models above, it rarely takes me long to find what i need
## example cases
### example cases
- if i want a particular browser window, i jump to workspace 9, then move focus
up or down until i get to the window i want; if the window is right but i need
@@ -59,3 +59,15 @@ idea from the ThePrimeagen: designated workspace/label/desktop per app/purpose
- variation case: if i want a particular terminal workspace, i jump to workspace
8, but then i'm in tmux land and navigate via the methods i've set up for tmux
## theme usage
| theme name | focus / use context
|-------------|--------------------
| gruvbox | admin/productivity work (default theme)
| tokyodark | music
| pina | programming/coding
| mars | night (within 2+ hours of sleep)
| lanterns | (tbd?)
| lighthouse | (tbd?)
| jade | (tbd?)

View File

@@ -1,6 +1,8 @@
#!/bin/zsh
apply_overrides() {
name="$1"
kind="$2"
echo $3 |
sed -E 's/; */\n/g' |
while IFS=$'\n ' read -r override_key override_values; do
@@ -50,10 +52,7 @@ sed 1d "installs_and_builds/programs.csv" |
[[ $name = 'zz_skip' || $kind = 'zz_skip' ]] && continue
echo "-- installing $name"
[[ $kind = 'package_manager' ]] && {
${=BOX_SETUP_INSTALL_COMMAND} ${=name}
}|| {
[[ $kind = 'package_manager' ]] && ${=BOX_SETUP_INSTALL_COMMAND} ${=name}
[[ $kind = 'build_custom' ]] && build_custom $name
}
done

View File

@@ -0,0 +1,3 @@
#!/bin/sh
echo 'TODO: custom script for mise is not yet implemented'

View File

@@ -1,5 +1,8 @@
#!/bin/zsh
# from primeagen's examples and dev repo
# currnetly not used, but keeping for reference in case i need this soon for debian
install_neovim_dir=$HOME/.local/build/neovim
install_neovim_version="v0.10.3"
[ ! -z $NVIM_VERSION ] && install_neovim_version="$NVIM_VERSION"
@@ -13,13 +16,3 @@ make -C $install_neovim_dir clean
make -C $install_neovim_dir CMAKE_BUILD_TYPE=RelWithDebInfo
sudo make -C $install_neovim_dir install
# from primeagen's dev repo, uncomment/edit as needed
# git clone https://github.com/ThePrimeagen/harpoon.git $HOME/personal/harpoon
# cd $HOME/personal/harpoon
# git fetch
# git checkout harpoon2
# git clone https://github.com/ThePrimeagen/vim-apm.git $HOME/personal/vim-apm
# git clone https://github.com/ThePrimeagen/caleb.git $HOME/personal/caleb
# git clone https://github.com/nvim-lua/plenary.nvim.git $HOME/personal/plenary

View File

@@ -6,6 +6,7 @@ coreutils,package_manager,linux: name='',,,
findutils,package_manager,linux: name='',,,
make,package_manager,,,,
cmake,package_manager,,,,
mise,build_custom,,,,TODO implement the build_custom script for this
mpv,package_manager,,,,
kitty,package_manager,macos: name='--cask kitty',,,
zsh,package_manager,,,,
@@ -30,7 +31,7 @@ git,package_manager,,,,
calcurse,package_manager,,,,
zathura,package_manager,macos: name='',,,
tenacity,package_manager,macos: name='--cask audacity',,work: name='',tenacity not available via homebrew; use audacity in macos
bitwig-studio,package_manager,macos: name='--cask bitwig-studio',artix: kind='aur'; arch: kind='aur'; alpine: kind='build_custom'; debian: kind='build_custom';,work: name='',
bitwig-studio,package_manager,macos: name='--cask bitwig-studio',artix: kind='aur'; arch: kind='aur'; debian: kind='build_custom';,work: name='',
gimp,package_manager,macos: name='--cask gimp',,,
--cask nikitabobko/tap/aerospace,package_manager,linux: name='',,,
pandoc,package_manager,,arch: name='pandoc-cli'; artix: name='pandoc-bin'; alpine: name='pandoc-cli';,work: name='',
pandoc,package_manager,,arch: name='pandoc-cli'; artix: name='pandoc-bin';,work: name='',
1 name kind os_overrides distro_overrides system_type_overrides notes
6 findutils package_manager linux: name=''
7 make package_manager
8 cmake package_manager
9 mise build_custom TODO implement the build_custom script for this
10 mpv package_manager
11 kitty package_manager macos: name='--cask kitty'
12 zsh package_manager
31 calcurse package_manager
32 zathura package_manager macos: name=''
33 tenacity package_manager macos: name='--cask audacity' work: name='' tenacity not available via homebrew; use audacity in macos
34 bitwig-studio package_manager macos: name='--cask bitwig-studio' artix: kind='aur'; arch: kind='aur'; alpine: kind='build_custom'; debian: kind='build_custom'; artix: kind='aur'; arch: kind='aur'; debian: kind='build_custom'; work: name=''
35 gimp package_manager macos: name='--cask gimp'
36 --cask nikitabobko/tap/aerospace package_manager linux: name=''
37 pandoc package_manager arch: name='pandoc-cli'; artix: name='pandoc-bin'; alpine: name='pandoc-cli'; arch: name='pandoc-cli'; artix: name='pandoc-bin'; work: name=''

View File

@@ -1,33 +1,40 @@
#!/bin/zsh
#!/bin/sh
echo "---- making system dirs ----------------"
. ./src_files/shell/profile # ensure env vars set for use below
echo "---- making system dirs ----------------"
# some standard/common directories, some overlap/use in XDG directories
[[ ! -d "$DIR_LOCAL" ]] && mkdir -p "$DIR_LOCAL"
[[ ! -d "$DIR_BIN" ]] && mkdir -p "$DIR_BIN"
[[ ! -d "$DIR_SCRIPTS" ]] && mkdir -p "$DIR_SCRIPTS"
[[ ! -d "$DIR_USER_OPT" ]] && mkdir -p "$DIR_USER_OPT"
[[ ! -d "$DIR_USER_LIB" ]] && mkdir -p "$DIR_USER_LIB"
! [ -d "$DIR_LOCAL" ] && mkdir -p "$DIR_LOCAL"
! [ -d "$DIR_BIN" ] && mkdir -p "$DIR_BIN"
! [ -d "$DIR_SCRIPTS" ] && mkdir -p "$DIR_SCRIPTS"
! [ -d "$DIR_USER_OPT" ] && mkdir -p "$DIR_USER_OPT"
! [ -d "$DIR_USER_LIB" ] && mkdir -p "$DIR_USER_LIB"
# directories related to XDG Base Directory specification
[[ ! -d "$XDG_CONFIG_HOME" ]] && mkdir -p "$XDG_CONFIG_HOME"
[[ ! -d "$XDG_CACHE_HOME" ]] && mkdir -p "$XDG_CACHE_HOME"
[[ ! -d "$XDG_DATA_HOME" ]] && mkdir -p "$XDG_DATA_HOME"
[[ ! -d "$XDG_STATE_HOME" ]] && mkdir -p "$XDG_STATE_HOME"
! [ -d "$XDG_CONFIG_HOME" ] && mkdir -p "$XDG_CONFIG_HOME"
! [ -d "$XDG_CACHE_HOME" ] && mkdir -p "$XDG_CACHE_HOME"
! [ -d "$XDG_DATA_HOME" ] && mkdir -p "$XDG_DATA_HOME"
! [ -d "$XDG_STATE_HOME" ] && mkdir -p "$XDG_STATE_HOME"
# additional directories for how i'm organizing my system
[[ ! -d "$DIR_HOME_BOX" ]] && mkdir -p $DIR_HOME_BOX
[[ ! -d "$DIR_MUSIC" ]] && mkdir -p $DIR_MUSIC
[[ ! -d "$DIR_NOTES" ]] && mkdir -p $DIR_NOTES
[[ ! -d "$DIR_DEV" ]] && mkdir -p $DIR_DEV
[[ ! -d "$DIR_GIT_PROJECTS" ]] && mkdir -p $DIR_GIT_PROJECTS
[[ ! -d "$DIR_GIT_PROJECTS/me" ]] && mkdir -p $DIR_DEV/git/me
[[ ! -d "$DIR_GIT_PROJECTS/forks" ]] && mkdir -p $DIR_DEV/git/forks
[[ ! -d "$DIR_GIT_PROJECTS/learning" ]] && mkdir -p $DIR_DEV/git/learning
[[ ! -d "$DIR_GIT_PROJECTS/other" ]] && mkdir -p $DIR_DEV/git/other
! [ -d "$DIR_HOME_BOX" ] && mkdir -p "$DIR_HOME_BOX"
! [ -d "$DIR_MUSIC" ] && mkdir -p "$DIR_MUSIC"
! [ -d "$DIR_NOTES" ] && mkdir -p "$DIR_NOTES"
! [ -d "$DIR_DEV" ] && mkdir -p "$DIR_DEV"
! [ -d "$DIR_GIT_PROJECTS" ] && mkdir -p "$DIR_GIT_PROJECTS"
! [ -d "$DIR_GIT_PROJECTS/me" ] && mkdir -p "$DIR_GIT_PROJECTS/me"
! [ -d "$DIR_GIT_PROJECTS/forks" ] && mkdir -p "$DIR_GIT_PROJECTS/forks"
! [ -d "$DIR_GIT_PROJECTS/learning" ] && mkdir -p "$DIR_GIT_PROJECTS/learning"
! [ -d "$DIR_GIT_PROJECTS/other" ] && mkdir -p "$DIR_GIT_PROJECTS/other"
# directories for music/audio production
[[ ! -d "$DIR_REAPER_PORTABLE_SHARED" ]] && mkdir -p $DIR_REAPER_PORTABLE_SHARED
[[ ! -d "$DIR_REAPER_PORTABLE_LINUX" ]] && mkdir -p $DIR_REAPER_PORTABLE_LINUX
[[ ! -d "$DIR_REAPER_PORTABLE_MACOS" ]] && mkdir -p $DIR_REAPER_PORTABLE_MACOS
! [ -d "$DIR_REAPER_PORTABLE_SHARED" ] && mkdir -p "$DIR_REAPER_PORTABLE_SHARED"
! [ -d "$DIR_REAPER_PORTABLE_LINUX" ] && mkdir -p "$DIR_REAPER_PORTABLE_LINUX"
! [ -d "$DIR_REAPER_PORTABLE_MACOS" ] && mkdir -p "$DIR_REAPER_PORTABLE_MACOS"
# xdg spec and/or clean-up of home dir
echo "---- making xdg-spec/home-clean-up files"
! [ -d "$XDG_CONFIG_HOME/cups" ] && mkdir -p "$XDG_CONFIG_HOME/cups"
! [ -d "$XDG_DATA_HOME/irb" ] && mkdir -p "$XDG_DATA_HOME/irb"
! [ -d "$XDG_DATA_HOME/ncmpcpp" ] && mkdir -p "$XDG_DATA_HOME/ncmpcpp"
! [ -d "$XDG_CACHE_HOME/maven/repository" ] && mkdir -p "$XDG_CACHE_HOME/maven/repository"

View File

@@ -33,9 +33,9 @@ enable_mouse=1
delay=40
hide_function_bar=0
header_layout=two_50_50
column_meters_0=LeftCPUs2 LeftCPUs4 Blank MemorySwap MemorySwap Blank NetworkIO NetworkIO
column_meters_0=LeftCPUs2 LeftCPUs8 Blank MemorySwap MemorySwap Blank NetworkIO NetworkIO
column_meter_modes_0=1 3 2 1 3 2 2 3
column_meters_1=RightCPUs2 RightCPUs4 Blank LoadAverage Tasks Blank DiskIO FileDescriptors Blank Hostname System Uptime DateTime Battery
column_meters_1=RightCPUs2 RightCPUs8 Blank LoadAverage Tasks Blank DiskIO FileDescriptors Blank Hostname System Uptime DateTime Battery
column_meter_modes_1=1 3 2 2 2 2 2 2 2 2 2 2 2 1
tree_view=0
sort_key=47

View File

@@ -0,0 +1 @@
IRB.conf[:HISTORY_FILE] ||= File.join(ENV["XDG_DATA_HOME"], "irb", "history")

View File

@@ -0,0 +1,2 @@
[ -r "$XDG_CONFIG_HOME/profile" ] && . "$XDG_CONFIG_HOME/profile"
[ -r "$XDG_CONFIG_HOME/rc" ] && . "$XDG_CONFIG_HOME/rc"

View File

@@ -0,0 +1 @@
<localRepository>${env.XDG_CACHE_HOME}/maven/repository</localRepository>

View File

@@ -0,0 +1,3 @@
ncmcpp_directory = "$XDG_DATA_HOME/ncmpcpp"
lyrics_directory = "$DIR_MUSIC/.lyrics"
mpd_music_dir = "$DIR_MUSIC"

View File

@@ -1,66 +0,0 @@
initial_screen = "library"
library_tabs = ["playlists", "albums", "artists", "browse"]
[keybindings]
"Space" = "playpause"
##########################################################################################
# theme
# [theme] # from eltoncezar, similar to official spotify colors
# background = "#191414"
# primary = "#FFFFFF"
# secondary = "light black"
# title = "#1DB954"
# playing = "#1DB954"
# playing_selected = "#1ED760"
# playing_bg = "#191414"
# highlight = "#FFFFFF"
# highlight_bg = "#484848"
# error = "#FFFFFF"
# error_bg = "red"
# statusbar = "#191414"
# statusbar_progress = "#1DB954"
# statusbar_bg = "#1DB954"
# cmdline = "#FFFFFF"
# cmdline_bg = "#191414"
# search_match = "light red"
[theme] # from wojciech-zurek, tokyonight
background = "#1a1b26"
primary = "#9aa5ce"
secondary = "#414868"
title = "#9ece6a"
playing = "#7aa2f7"
playing_selected = "#bb9af7"
playing_bg = "#24283b"
highlight = "#c0caf5"
highlight_bg = "#24283b"
error = "#414868"
error_bg = "#f7768e"
statusbar = "#ff9e64"
statusbar_progress = "#7aa2f7"
statusbar_bg = "#1a1b26"
cmdline = "#c0caf5"
cmdline_bg = "#24283b"
search_match = "#f7768e"
# [theme] # from clooles, uses defaults/primary, supports transparency, for dynamic themes
# background = "default"
# primary = "foreground"
# secondary = "light black"
# title = "primary"
# playing = "primary"
# playing_selected = "primary"
# playing_bg = "primary"
# highlight = "#FFFFFF"
# highlight_bg = "#484848"
# error = "#FF0000"
# error_bg = "red"
# statusbar = "primary"
# statusbar_progress = "primary"
# statusbar_bg = "primary"
# cmdline = "default"
# cmdline_bg = "primary"
# search_match = "light red"

View File

@@ -1,16 +1,6 @@
local csGroup = vim.api.nvim_create_augroup("coreSettingsGroup", { clear = true })
local csgAutocmd = vim.api.nvim_create_autocmd
require("settings")
require("plugin_manager")
require("key_mappings")
require("util_functions")
csgAutocmd({"BufWritePre"}, {
group = csGroup,
pattern = "*",
command = [[%s/\s\+$//e]],
})
require("auto_commands")
ThemeUpdate()

View File

@@ -0,0 +1,20 @@
local autoCmdGroup = vim.api.nvim_create_augroup("autoCmdGroup", { clear = true })
local autoCmd = vim.api.nvim_create_autocmd
-- trim trailing whitespace on save
autoCmd({"BufWritePre"}, {
group = autoCmdGroup,
pattern = "*",
command = [[%s/\s\+$//e]],
})
-- adjust indent spacing for html files
autoCmd({"FileType"}, {
group = autoCmdGroup,
pattern = "html",
callback = function()
vim.opt_local.shiftwidth = 2
vim.opt_local.tabstop = 2
vim.opt_local.softtabstop = 2
end
})

View File

@@ -11,9 +11,9 @@ vim.keymap.set("n", "<leader>n", vim.cmd.Ex)
vim.keymap.set("v", "J", ":m '>+1<CR>gv")
vim.keymap.set("v", "K", ":m '<-2<CR>gv")
-- reduce effective distance of half-page jumps and vertically-pad the cursor
vim.keymap.set("n", "<C-d>", "<C-d>4<C-y>M")
vim.keymap.set("n", "<C-u>", "<C-u>4<C-e>M")
-- add extra vertical padding for the cursor after half-page jumps
vim.keymap.set("n", "<C-d>", "<C-d>4<C-e>")
vim.keymap.set("n", "<C-u>", "<C-u>4<C-y>")
-- open folds when iterating search results
vim.keymap.set("n", "n", "nzv")
@@ -22,13 +22,13 @@ vim.keymap.set("n", "N", "Nzv")
-- maintain cursor position after paragraph formatting
vim.keymap.set("n", "=ap", "mF=ap'F")
-- shortcuts for deleting into the void register
vim.keymap.set({ "n", "v" }, "<leader>d", [["_d]])
vim.keymap.set("x", "<leader>P", [["_dP]]) -- replace selected text, keep main register
-- replace selected text, keep main register
vim.keymap.set("x", "<leader>P", [["_dP]])
-- shortcuts for using + register (system clipboard)
vim.keymap.set({ "n", "v" }, "<leader>y", [["+y]])
vim.keymap.set("n", "<leader>Y", [["+Y]])
vim.keymap.set({ "n", "v" }, "<leader>d", [["+d]])
vim.keymap.set("n", "<leader>D", [["+D]])
vim.keymap.set("n", "<leader>p", [["+p]])
@@ -184,3 +184,7 @@ vim.keymap.set("n", "<leader>fmt", function()
require("conform").format({ bufnr = 0 })
end)
-- obisdian / notes
vim.keymap.set("n", "<leader>oo", function() vim.cmd("Obsidian open") end)
vim.keymap.set("n", "<leader>ot", "o- [ ] ")

View File

@@ -0,0 +1,23 @@
return {
{
"obsidian-nvim/obsidian.nvim",
version = "*", -- '*' for latest release, not latest commit
ft = "markdown",
opts = {
frontmatter = {
enabled = false,
},
legacy_commands = false,
new_notes_location = os.getenv("DIR_NOTES") .. "/inbox",
ui = {
enable = false,
},
workspaces = {
{
name = "notes",
path = os.getenv("DIR_NOTES"),
},
},
},
},
}

View File

@@ -4,13 +4,20 @@ return {
dependencies = { "nvim-lua/plenary.nvim" },
opts = {
defaults = {
layout_strategy = "horizontal",
layout_strategy = "vertical",
layout_config = {
horizontal = {
width = 0.98,
height = 0.98,
preview_width = 0.45,
},
vertical = {
width = 0.98,
height = 0.98,
preview_height = 0.55,
preview_cutoff = 14,
prompt_position = 'bottom',
},
},
path_display = { "truncate", },
},

View File

@@ -4,11 +4,20 @@ return {
lazy = false,
priority = 1000,
opts = {
custom_highlights = function(highlights, _palette)
custom_highlights = function(highlights, palette)
highlights.Comment['fg'] = "#8a9097"
highlights.LineNr['fg'] = "#8088A8"
highlights.Visual['bg'] = palette.bg3
return highlights
end,
gamma = 0.92, -- brightness
styles = {
comments = { italic = true },
keywords = { italic = false },
identifiers = { italic = false },
functions = {},
variables = {},
},
},
},
{

View File

@@ -21,6 +21,8 @@ vim.opt.textwidth = 0
vim.opt.wrapmargin = 0
vim.opt.fillchars = { eob = ' ' }
vim.opt.conceallevel = 0
vim.opt.spell = false
vim.opt.spelllang = 'en_us'

View File

@@ -80,6 +80,7 @@ function ToggleWritingMode()
vim.opt_local.relativenumber = true
vim.opt_local.signcolumn = "yes"
vim.opt_local.cursorline = true
vim.api.nvim_set_hl(0, 'SpellCap', vim.g.wrmode_prev_hl_spellcap or {})
vim.opt_local.spell = false
-- vim.opt_local.wrap = true -- TODO: needed?
vim.opt_local.textwidth = 0
@@ -98,6 +99,8 @@ function ToggleWritingMode()
local writing_pane = vim.api.nvim_get_current_win()
EnableWritingModeUiForCurrentWindow()
vim.opt_local.spell = true
vim.g.wrmode_prev_hl_spellcap = vim.api.nvim_get_hl(0, { name = 'SpellCap' })
vim.api.nvim_set_hl(0, 'SpellCap', {})
vim.opt_local.textwidth = window_width
vim.opt_local.scrolloff = 14
vim.opt_local.formatoptions:append('t')

View File

@@ -15,5 +15,6 @@
"showInlineTitle": false,
"readableLineLength": true,
"strictLineBreaks": true,
"livePreview": false
"livePreview": false,
"propertiesInDocument": "hidden"
}

View File

@@ -1,8 +1,8 @@
{
"theme": "obsidian",
"accentColor": "#2f930e",
"baseFontSize": 18,
"baseFontSize": 20,
"enabledCssSnippets": [],
"translucency": false,
"cssTheme": "Obsidian gruvbox"
"cssTheme": ""
}

View File

@@ -1,7 +1,4 @@
{
"markdown:toggle-preview": [
{ "modifiers": [ "Ctrl", "Shift" ], "key": "E" }
],
"switcher:open": [
{ "modifiers": [ "Ctrl" ], "key": "F" }
],
@@ -11,10 +8,16 @@
"app:toggle-right-sidebar": [
{ "modifiers": [ "Ctrl", "Shift" ], "key": "F" }
],
"markdown:toggle-preview": [
{ "modifiers": [ "Ctrl", "Shift" ], "key": "E" }
],
"editor:toggle-readable-line-length": [
{ "modifiers": [ "Ctrl", "Shift" ], "key": "R" }
],
"file-explorer:reveal-active-file": [
{ "modifiers": [ "Ctrl", "Shift" ], "key": "N" }
],
"app:open-settings": [
{ "modifiers": [ "Ctrl", "Shift" ], "key": "O" }
]
}

View File

@@ -4,15 +4,14 @@ tmux_omitted_dirs=(
$DIR_DEV
$DIR_GIT_PROJECTS
)
[[ ! ${tmux_omitted_dirs[(re)$(pwd)]} ]] && {
tmux new-window -d -n $EDITOR
tmux send-keys -t :$EDITOR "$EDITOR ." c-M
tmux new-window -d -n daa
tmux new-window -d -n debug
tmux new-window -d -n agt
tmux new-window -d -n procs
tmux rename-window cmd
tmux send-keys -t :cmd "clear; [[ -d .git ]] && git status" c-M
}
clear

View File

@@ -0,0 +1,4 @@
tmux rename-window inbox
tmux send-keys -t :inbox 'cd "$DIR_INBOX"; clear; ls' c-M
clear

View File

@@ -1 +0,0 @@
/Users/david/.config/z-this-box/themes/.current-theme/tmux.conf

View File

@@ -9,7 +9,7 @@ bind-key C-Space send-prefix
set-option -g base-index 1
set-option -g status-position 'bottom'
set-option -g status-left-length 28
set-option -Fg status-right '#{host} | %Y%m%d %H:%M' # or maybe host_short
set-option -Fg status-right '#{host} | %Y-%m-%d %H:%M' # or maybe host_short
# theme settings
set-option -g status-style "bg=default fg=default" # default, theme files can overwrite
@@ -46,6 +46,7 @@ bind-key C-f run-shell "tmux neww $DIR_SCRIPTS/tmux-session-init"
bind-key C-s choose-session
bind-key S choose-window
bind-key C-h run-shell "tmux neww $DIR_SCRIPTS/tmux-session-init hub"
bind-key C-j run-shell "tmux neww $DIR_SCRIPTS/tmux-session-init notes" \; switch-client -t "notes:2"
bind-key -r C-l switch-client -l
bind-key -r C-o last-window
bind-key -r C-n next-window

View File

@@ -1,43 +1,5 @@
# use vim-like control in shell
set -o vi
# path updates
export PATH=$DIR_BIN:$DIR_SCRIPTS:$PATH:$XDG_DATA_HOME
export PATH=$PATH:/opt/homebrew/opt/ccache/libexec:/opt/homebrew/bin
# shortcuts for common commands
alias 3e='echo;echo;echo'
alias 12e='3e;3e;3e;3e'
alias cl='clear; '
alias cls='clear;ls'
# shortcuts for executables
alias n='nvim'
alias nv='nvim'
alias ths='theme-set'
alias thw='theme-update-wallpaper'
alias tmi='tmux-session-init'
# executable overrides
alias ls='ls -F'
alias ksh=oksh # NOTE: if i ever use openBSD, conditionally remove this alias
# focus/productivity/similar
alias cal="calcurse"
alias note="cd $DIR_NOTES/inbox; $EDITOR"
alias todo="cd $DIR_NOTES/rhythm; $EDITOR todo.md"
alias budget="open $DIR_HOME_BOX/finance/budget/.current"
# misc commands
alias pdt='ping -c 2 drinkingtea.net'
alias ppw='ping -c 2 pinewoods.xyz'
alias weather='curl "wttr.in/dfw?2&F"'
alias shrug='echo "¯\\_(ツ)_/¯"'
# source extensions and system-specific files
[[ -a "$ZDOTDIR/zsh-general-dev" ]] && . "$ZDOTDIR/zsh-general-dev"
# programming and language setup
[[ -n $(command -v mise) ]] && eval "$(mise activate zsh)"
export DEVKITARM=/opt/devkitpro/devkitARM
[ -r "$HOME/.config/profile" ] && . "$HOME/.config/profile"
[ -r "$XDG_CONFIG_HOME/rc" ] && . "$XDG_CONFIG_HOME/rc"
# overwrite PS1 here, since zsh to use different special chars
export PS1="%n@%m %1~ %# "

View File

@@ -1,26 +0,0 @@
# set env vars, path updates, etc
[[ -a $HOME/.local-box-vars ]] && . $HOME/.local-box-vars
# login shortcuts
alias assume="source assume"
alias login-aws='aws sso login --profile'
alias login-aws-id-list="grep sso_account_id $HOME/.aws/config"
# git stuff
alias gfo='git fetch origin'
alias gfl='git fetch origin; git log'
alias gpo='git pull origin'
alias gppo='git push origin'
alias gst='git status'
alias git-push-to-temp='git branch -D temp; git checkout -b temp; git push origin temp -uf; git checkout -'
alias gptemp='git-push-to-temp'
# code/test/linter run and build commands
alias bel='bundle exec standardrb'
alias bet='bundle exec rspec'
alias lintjs='npx prettier --write'
alias prl='poetry run black'
alias prt='poetry run pytest'
# containerization
alias docker=podman

View File

@@ -1,2 +1,2 @@
set-window-option -g window-style bg=default # transparency
set-option -g status-style 'bg=default fg=#22cc00'
set-option -g status-style 'bg=default fg=#98971a'

View File

@@ -1,2 +1,2 @@
set-window-option -g window-style bg=default # transparency
set-option -g status-style 'bg=#549E6A fg=#000000'
set-option -g status-style 'bg=default fg=#549e6a'

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

View File

@@ -0,0 +1,3 @@
return {
colorscheme_name = 'mars'
}

View File

@@ -0,0 +1,2 @@
set-window-option -g window-style bg=default # transparency
set-option -g status-style 'bg=default fg=#e07b5f'

3
src_files/.local/bin/bundle Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/sh
mise exec ruby@$MISE_RUBY_VERSION -- bundle "$@"

3
src_files/.local/bin/go Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/sh
mise exec go@$MISE_GO_VERSION -- go "$@"

3
src_files/.local/bin/irb Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/sh
mise exec ruby@$MISE_RUBY_VERSION -- irb "$@"

3
src_files/.local/bin/python Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/sh
mise exec python@$MISE_PYTHON_VERSION -- python "$@"

3
src_files/.local/bin/ruby Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/sh
mise exec ruby@$MISE_RUBY_VERSION -- ruby "$@"

View File

@@ -0,0 +1,25 @@
#!/bin/sh
# adjust settings in src_files/shell/profile, src_files/shell/rc, or otherwise
# where feasible. if not feasible and i don't care about the programs, just
# wipe out the associated files.
################
# clean up and re-org
[ -d "$HOME/.cups" ] &&
mv "$HOME"/.cups/* "$XDG_CONFIG_HOME/cups/" &&
rmdir "$HOME/.cups"
################
# wipe out
rm -rf "$HOME"/.bash*
rm -rf "$HOME"/.sh_history # HISTFILE should be used instead, so just wipe this if present
rm -rf "$HOME"/.python_history # since v 3.13.0a3, respects PYTHON_HISTORY; just wipe this
rm -rf "$HOME"/.ruby-lsp # not sure if i want this or not, just delete for now
rm -rf "$HOME"/.vim* # using neovim, so if any vim stuff is made, delete it
[ -d "$HOME/Public" ] && sudo rm -rf "$HOME/Public" # apple
[ -d "$HOME/Documents" ] && sudo rm -rf "$HOME/Documents" # apple

View File

@@ -1,13 +1,14 @@
#!/bin/zsh
tmux_switch_to() {
[[ -z $TMUX ]] && tmux attach-session -t $1 || tmux switch-client -t $1
[ -z "$TMUX" ] && tmux attach-session -t "$1" || tmux switch-client -t "$1"
}
tmux_hydrate() {
local tmux_hydrate_path="$XDG_CONFIG_HOME/tmux/.tmux-session-hydrate-default"
[[ -f $2/.tmux-session-hydrate ]] && tmux_hydrate_path="$2/.tmux-session-hydrate"
[[ -f $tmux_hydrate_path ]] && tmux send-keys -t $1 ". $tmux_hydrate_path" c-M
hydrate_path="$XDG_CONFIG_HOME/tmux/.tmux-session-hydrate-default"
[ "$1" = "hub" ] && hydrate_path="$XDG_CONFIG_HOME/tmux/.tmux-session-hydrate-hub"
[ -f "$2/.tmux-session-hydrate" ] && hydrate_path="$2/.tmux-session-hydrate"
[ -f "$hydrate_path" ] && tmux send-keys -t $1 ". $hydrate_path" c-M
}
tmux_existing_sessions=$(tmux list-sessions 2> /dev/null || echo '')
@@ -24,6 +25,7 @@ tmux_target_path=''
if [[ $tmux_target_path = "." ]]; then tmux_target_name=$(basename $(pwd)) && tmux_target_path=$(pwd);
elif [[ $tmux_target_path = "hub" ]]; then tmux_target_name="hub" && tmux_target_path="$HOME";
elif [[ $tmux_target_path = "notes" ]]; then tmux_target_name="notes" && tmux_target_path="$DIR_NOTES";
elif [[ -n $tmux_target_path ]]; then tmux_target_name=$(basename "$tmux_target_path" | tr . _);
fi

View File

@@ -3,12 +3,15 @@
## license: MIT/X11
## upstream: https://raw.githubusercontent.com/gruvbox-community/gruvbox-contrib/master/kitty/gruvbox-dark.conf
# This file is mostly unmodified, with only minor color adjustments.
##########################################################################################
selection_foreground #ebdbb2
selection_background #d65d0e
background #282828
# background was originally #282828
background #141414
foreground #ebdbb2
color0 #3c3836

View File

@@ -0,0 +1,4 @@
# Theme: Osaka Jade
In Omarchy, this theme is (or was) called Osaka Jade. I've changed it just
to "Jade" for my theme setup.

View File

Before

Width:  |  Height:  |  Size: 549 KiB

After

Width:  |  Height:  |  Size: 549 KiB

View File

@@ -8,26 +8,26 @@
##########################################################################################
foreground #D4D5D5
background #171A18
selection_foreground #171A18
selection_background #D4D5D5
active_tab_foreground #171A18
active_tab_background #D4D5D5
inactive_tab_foreground #D4D5D5
inactive_tab_background #171A18
foreground #D0D1C9
background #101311
selection_foreground #101311
selection_background #D0D1C9
active_tab_foreground #101311
active_tab_background #D0D1C9
inactive_tab_foreground #D0D1C9
inactive_tab_background #101311
cursor #E4DAD9
cursor_text_color #070A08
# black, red, green, yellow, blue, magenta, cyan, white
color0 #171A18
color0 #101311
color1 #7DB085
color2 #B8C082
color3 #E0D480
color4 #7DD2B8
color5 #B5C9A4
color6 #C5E8C5
color7 #D4D5D5
color7 #D0D1C9
# black, red, green, yellow, blue, magenta, cyan, white
color8 #6B8071
color9 #8CC098

View File

@@ -3,9 +3,8 @@
" License: MIT
" Upstream: https://github.com/bjarneo/omarchy-pina-theme/blob/main/pina.nvim/colors/pina.vim
" This file has been modified slightly by removing some of the "hi" commands
" related to neovim plugins which I do not use, and by adding/changing a few
" colors as well.
" This file has been modified by removing some of the "hi" commands related to
" neovim plugins which I do not use, and by adding/changing some colors.
" NOTE: The name, maintainer, and license lines from the original are copied
" below in their original state. However, I suspect these were inaccurate names
@@ -28,20 +27,20 @@ endif
let g:colors_name = "pina"
" Color definitions
let background = "#171a18"
let foreground = "#d4d5d5"
let cursor = "#d4d5d5"
let background = "#101311"
let foreground = "#d0d1c9"
let cursor = "#d0d1c9"
let cursor_lines = "#2c2f2d"
" Colors
let color0 = "#171a18"
let color0 = "#101311"
let color1 = "#7db085"
let color2 = "#b8c082"
let color3 = "#e0d480"
let color4 = "#7dd2b8"
let color5 = "#b5c9a4"
let color6 = "#c5e8c5"
let color7 = "#d4d5d5"
let color7 = "#d0d1c9"
let color8 = "#6b8071"
let color9 = "#8cc098"
let color10 = "#cdd590"

View File

@@ -3,11 +3,9 @@ export BROWSER='brave'
export EDITOR='nvim'
export TERMINAL='kitty'
# set ENV for ksh/oksh (should be ignored by zsh and bash)
export ENV="$HOME/.config/ksh/kshrc"
# env vars used for my organization structure
export DIR_HOME_BOX="$HOME/dbox"
export DIR_INBOX="$DIR_HOME_BOX/inbox"
export DIR_NOTES="$DIR_HOME_BOX/notes"
export DIR_MUSIC="$DIR_HOME_BOX/music/listen"
export DIR_DEV="$HOME/dev"
@@ -30,7 +28,10 @@ export XDG_DATA_DIRS="/usr/local/share:/usr/share"
# directory for theme/style stuff
export DIR_THEME_SETTINGS="$XDG_CONFIG_HOME/zz-this-box/themes"
export DEFAULT_THEME_NAME="tokyodark"
export DEFAULT_THEME_NAME="gruvbox"
# ksh/oksh
export ENV="$HOME/.config/ksh/kshrc" # ENV var should be ignored by zsh and bash
# zsh
export ZDOTDIR="$XDG_CONFIG_HOME/zsh" # may already be set, set anyway
@@ -39,13 +40,33 @@ export ZDOTDIR="$XDG_CONFIG_HOME/zsh" # may already be set, set anyway
export GIT_EDITOR="$EDITOR"
# obsidian
export OBSIDIAN_WORKSPACES_TO_CONFIGURE=("$DIR_NOTES")
export OBSIDIAN_WORKSPACES_TO_CONFIGURE="$DIR_NOTES," # ,-delimitted list of dirs
# language and tool vars
export MISE_GO_VERSION="1.25.1"
export MISE_PYTHON_VERSION="3.13.7"
export MISE_RUBY_VERSION="3.4.7"
# reaper
export DIR_REAPER_PORTABLE_SHARED="$DIR_USER_OPT/reaper-portable/shared"
export DIR_REAPER_PORTABLE_LINUX="$DIR_USER_OPT/reaper-portable/linux"
export DIR_REAPER_PORTABLE_MACOS="$DIR_USER_OPT/reaper-portable/macos"
# clean-up of home dir
export __CF_USER_TEXT_ENCODING="0x0:0x0" # TODO: does this actually accomplish anything?
# xdg spec and/or clean-up of home dir
MAC_USER_ID=`id -u` export __CF_USER_TEXT_ENCODING="`printf '0x%x' $MAC_USER_ID`:0x0:0x0"
export ANDROID_USER_HOME="$XDG_DATA_HOME/android"
export BUNDLE_USER_CONFIG="$XDG_CONFIG_HOME/bundle"
export BUNDLE_USER_CACHE="$XDG_CACHE_HOME/bundle"
export BUNDLE_USER_PLUGIN="$XDG_DATA_HOME/bundle"
export GNUPGHOME="$XDG_DATA_HOME/gnupg"
export HISTFILE="$XDG_STATE_HOME/sh_history"
export IRBRC="$XDG_CONFIG_HOME/irb/irbrc"
export LESSHISTFILE="$XDG_STATE_HOME/lesshst"
export LESSKEYIN="$XDG_CONFIG_HOME/lesskey"
export NPM_CONFIG_CACHE="$XDG_CACHE_HOME/npm"
export NPM_CONFIG_INIT_MODULE="$XDG_CONFIG_HOME/npm/config/npm-init.js"
export NPM_CONFIG_TMP="$XDG_RUNTIME_DIR/npm"
export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME/npm/npmrc"
export PYTHON_HISTORY="$XDG_STATE_HOME/python_history"
export SHELL_SESSIONS_DISABLE=1 # this may only apply for zsh on macOS

73
src_files/shell/rc Normal file
View File

@@ -0,0 +1,73 @@
# use vim-like control in shell
set -o vi
# path updates
export PATH=$DIR_BIN:$DIR_SCRIPTS:$PATH:$XDG_DATA_HOME
export PATH=$PATH:/opt/homebrew/opt/ccache/libexec:/opt/homebrew/bin
# set env vars specific to this box, if any
[[ -a $HOME/.local-box-vars ]] && . $HOME/.local-box-vars
# prompt settings
export PS1="\u@\h \W \\$ "
# shortcuts for common commands
alias 3e='echo;echo;echo'
alias 12e='3e;3e;3e;3e'
alias cl='clear; '
alias cls='clear;ls'
# shortcuts for executables
alias n='nvim'
alias nv='nvim'
alias ths='theme-set'
alias thw='theme-update-wallpaper'
alias tmi='tmux-session-init'
# executable overrides
alias ls='ls -F'
alias ksh=oksh # NOTE: if i ever use openBSD, conditionally remove this alias
# focus/productivity/similar
alias cal="calcurse"
alias note="cd $DIR_NOTES/inbox; $EDITOR"
alias todo="cd $DIR_NOTES/rhythm; $EDITOR todo.md"
alias budget="open $DIR_HOME_BOX/finance/budget/.current"
# login shortcuts
alias assume="source assume"
alias login-aws='aws sso login --profile'
alias login-aws-id-list="grep sso_account_id $HOME/.aws/config"
# git stuff
alias gfo='git fetch origin'
alias gfl='git fetch origin; git log'
alias gpo='git pull origin'
alias gppo='git push origin'
alias gst='git status'
alias git-push-to-temp='git branch -D temp; git checkout -b temp; git push origin temp -uf; git checkout -'
alias gptemp='git-push-to-temp'
# code/test/linter run and build commands
alias bel='bundle exec standardrb'
alias bet='bundle exec rspec'
alias lintjs='npx prettier --write'
alias prl='poetry run black'
alias prt='poetry run pytest'
# containerization
alias docker=podman
# misc commands
alias pdt='ping -c 2 drinkingtea.net'
alias ppw='ping -c 2 pinewoods.xyz'
alias weather='curl "wttr.in/dfw?2&F"'
alias shrug='echo "¯\\_(ツ)_/¯"'
# programming and language setup
export DEVKITARM=/opt/devkitpro/devkitARM
# xdg spec and/or clean-up of home dir
alias adb="HOME='$XDG_DATA_HOME/android' adb"
alias mvn="mvn -gs $XDG_CONFIG_HOME/maven/settings.xml"

View File

@@ -28,10 +28,12 @@ nvim_themes_dir=$XDG_CONFIG_HOME/nvim/themes
cp -p src_files/imports/themes-omarchy-extra/pina/pina.nvim/colors/pina.vim $nvim_themes_dir/pina/colors/
echo "setting sym-links for theme-switching"
! [ -L "$DIR_THEME_SETTINGS/.current-theme" ] &&
sym_link $DIR_THEME_SETTINGS/$DEFAULT_THEME_NAME $DIR_THEME_SETTINGS/.current-theme
sym_link $DIR_THEME_SETTINGS/.current-theme/kitty.conf $XDG_CONFIG_HOME/kitty/theme.conf
sym_link $DIR_THEME_SETTINGS/.current-theme/tmux.conf $XDG_CONFIG_HOME/tmux/theme.conf
sym_link $DIR_THEME_SETTINGS/.current-theme/neovim.lua $XDG_CONFIG_HOME/nvim/current-theme
# TODO: set additional links per theme-set script
echo "setting the default theme: $DEFAULT_THEME_NAME"
$DIR_SCRIPTS/theme-set $DEFAULT_THEME_NAME