Compare commits

...

38 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
5c9820d069 Add hyprland.conf file 2025-11-14 11:51:32 -06:00
bb97234f1b Adjust install, file-copy, and theme logic after first run on arch linux 2025-11-14 00:29:18 -06:00
91cc2cf14a Add logic to theme-set for brave browser, macos not working so far 2025-11-13 02:11:45 -06:00
ac91c7974c Add writing mode and ui toggles for nvim, tmux theme updates, wallpapers 2025-11-12 15:35:31 -06:00
1377026a56 Make various small clean-up changes 2025-11-08 15:44:42 -06:00
066ef0e6fa Adjust/add install/build programs, add mpv config, clean up zsh config 2025-11-08 01:20:00 -06:00
b5e0d1b2e6 Rename ref to docs, move attribution from README to its own file 2025-11-07 16:48:14 -06:00
bb453be9e8 Small changes from here and there 2025-11-07 14:58:10 -06:00
f98658f02b Replace most install scripts with list in csv file 2025-11-07 14:57:43 -06:00
f4baf50cf1 Update aerospace keybinds, remove skhd, consolidate some theme scripts 2025-11-02 22:28:18 -06:00
392b24e18b Adjust colors in pina neovim theme 2025-10-30 21:59:00 -05:00
529eef185c Move to-do items from README into separate file 2025-10-30 15:04:24 -05:00
5c8dfa34ca Add support for extra themes, other small changes, drop btop 2025-10-30 15:01:17 -05:00
bd5cb81499 Add theme-set/switching logic, and minor nvim, tmux, obsidian changes 2025-10-30 00:32:16 -05:00
f8bb7bbf03 Various small changes from the last week or so 2025-10-24 22:35:52 -05:00
49be8f8393 Update tmux-session search-dir order, add btop config 2025-10-18 15:16:24 -05:00
149 changed files with 2012 additions and 940 deletions

View File

@@ -1,39 +1,45 @@
# dotfiles, plus scripts for box setup
# dotfiles, plus installation and related scripts
### prereqs
- zsh and git installed
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
- programs installed: git, sed, zsh
- git clone this repo
#### specific prereqs, linux distros
### specific prereqs, linux distros
- sudo access is configured for current user
#### specific prereqs, macos
### specific prereqs, macos
- install the package manager, [homebrew](https://brew.sh/)
- for aerospace window manager, have only 1 workspace/desktop
- manual settings, refer to [ref/macos-system-settings](ref/macos-system-settings.txt)
- manual settings, refer to [docs/macos-system-settings](docs/macos-system-settings.md)
--------
## script run
### 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
### after script run
- complete manual actions specified in [ref/post-run](ref/post-run.md)
- complete manual actions specified in [docs/post-run](docs/post-run.md)
--------
## todo items
see [docs/todo.md](docs/todo.md)
## attribution
see [docs/attribution.md](docs/attribution.md)
### todo items
- config for: terminal (ghostty? foot? havoc?); shell; mpd, mpc, ncmpcpp; mpv
- hyprland config on linux
- decide on docker? or alternatives like podman? any license concerns?
- switch installation approach, use csv file with programs to install, install types,
any extra flags/opts, comments
- regarding the system-types idea i'd started to build in already, maybe have a
column for filtering in the csv file, or just have multiple csv files corresponding
to a base/core install, a music-studio install, a employer/work machine, etc.
- alternate idea: columns for "include_in_systems" and/or "excluded_from_systems"
- if both, likely apply the include column first, then the exclude (priority)
- add command in tmux to perform cd to a given dir in all windows of the current session

View File

@@ -2,11 +2,13 @@
[[ $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
}
echo "---- settings vars for system type -----"
# determine OS and, if linux, distro
[[ "$OSTYPE" = *"darwin"* ]] && setup_os="macos" || {
[[ "$OSTYPE" = *"linux"* ]] && setup_os="linux" && {
@@ -26,7 +28,7 @@
[[ "$setup_os" = "linux" ]] && {
case $setup_distro in
(arch | artix)
install_cmd="sudo pacman -S"
install_cmd="sudo pacman -S --noconfirm"
update_pkg_manager_and_defs_cmd='' # don't; update system instead?
update_pkgs_cmd='sudo pacman -Syu'
;;
@@ -47,12 +49,13 @@ export BOX_SETUP_UPDATE_PKG_MANAGER_AND_DEFS_CMD="$update_pkg_manager_and_defs_c
export BOX_SETUP_UPDATE_PKGS_CMD="$update_pkgs_cmd"
# make dirs and copy configs/dotfiles
source ./src_files/.config/zsh/.zshenv
. ./src_files/shell/profile
./make_dirs.sh
./copy_dotfiles.sh $1
./copy_dotfiles.sh "--skip-theme-config"
# install programs
source $ZDOTDIR/.zshenv
source $ZDOTDIR/.zshrc
. $ZDOTDIR/.zshrc
./install_programs.sh $1
# configure themes
./theme_config.sh

View File

@@ -1,55 +1,66 @@
#!/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 -p $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 -rp $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
}
link_dir() {
local src_dir=$1
local link_dir=$2
[[ -h "$link_dir" ]] && rm $link_dir
[[ -d "$link_dir" ]] && rm -rf $link_dir
echo_and_execute ln -s $src_dir $link_dir
sym_link() {
! [ -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 ------------------------------------------------"
echo "---- copying dotfiles ------------------"
. ./src_files/shell/profile
copy_file src_files/.config/zsh/.zshenv $HOME # duplicate, copy anyway, ensures $ZDOTDIR
# copy over env/profile files used by shell(s)
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
copy_dir src_files/.config $XDG_CONFIG_HOME
copy_dir src_files/.local/bin $DIR_BIN
[[ "$OSTYPE" = *"darwin"* ]] && copy_dir src_files/bin_overrides_macos $DIR_BIN
copy_dir src_files/.local/scripts $DIR_SCRIPTS
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"
# macOS overrides as needed
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
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
# [[ $1 = "studio-music" ]] {
# [[ "$OSTYPE" = *"darwin"* ]] &&
# link_dir "$XDG_CONFIG_HOME/REAPER" "$HOME/Library/Application Support/REAPER" # TODO: get reaper config set up
# }
# TODO: get reaper config set up
# [[ "$OSTYPE" = *"darwin"* ]] &&
# sym_link "$XDG_CONFIG_HOME/REAPER" "$HOME/Library/Application Support/REAPER"
# set up themes and theme-switcher
! [ "$1" = "--skip-theme-config" ] && ./theme_config.sh

44
docs/attribution.md Normal file
View File

@@ -0,0 +1,44 @@
# Attribution
## Original pattern/approach and some core config logic
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)
- [tmux sessionizer](https://github.com/ThePrimeagen/tmux-sessionizer)
- [YouTube video - neovim config video](https://www.youtube.com/watch?v=w7i4amO_zaE)
- [FrontEnd Masters course - dev productivity v2](https://frontendmasters.com/courses/developer-productivity-v2/)
## Idea of using a list of programs in a file for build/install
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).
## Theme-swtiching/setting logic and some themes
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 [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
## Additional/extra themes (Omarchy extra themes)
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.
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

@@ -0,0 +1,36 @@
# macOS system settings
settings for manual configuration in macOS system settings app
**NOTE:** some of these could be scripted, but for now i'm okay with this manual list
- desktop & dock
- `click wallpaper to reveal desktop`: set to "only in stage manager"
- all `drag windows to corner/edge/place` types of options: disabled
- `rearrange spaces based on recent use`: disabled
- `when switch to app... switch to space with open windows of app`: disabled
- `displays have separate spaces`: disabled
- `show files on desktop`: enabled
- `group windows by application`: enabled
- smallest possible dock size
- dock on right side of screen
- automatically hide and show the dock: enabled
- accessibility
- display
- reduce motion: enabled
- reduce transparency: enabled
- keyboard
- keyboard shortcuts
- screenshots
- save picture of selected area -> `cmd+shft+s`
- copy (clipboard) picture of selected area -> `ctrl+cmd+shft+s`
- modifier keys
- caps lock key -> `escape`
- command -> `control`
- alt/option -> `command`
- control -> `alt/option`
- spotlight
- show spotlight search -> `alt+r`
and in general, just go through most pages/options and set them as desired

17
docs/post-run.md Normal file
View File

@@ -0,0 +1,17 @@
# Manual steps needed after dotfile copy and/or installs
## all systems
- shell
- check user's shell using `echo $SHELL` or otherwise
- if not the desired shell:
- `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
- aerospace
- grant aerospace permission in accessibility settings
- likely need system reboot before aerospace works

10
docs/todo.md Normal file
View File

@@ -0,0 +1,10 @@
# TODO items
- config for calcurse (including syncing via caldav, etesync, or similar)
- config for mpd, and client(s), (mpd clients to consider: mpc, ncmpcpp, ncmpc, inori)
- 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?
- make all these scripts POSIX-compliant (or at least usable in ksh/oksh)

View File

@@ -1,25 +1,25 @@
# notes regarding my workflow and intended use of workspaces
# Notes regarding my workflow and system use
## workspaces layout
idea from the ThePrimeagen: designated workspace/label/desktop per app/purpose
### current layout/plan
### current layout
| workspace number | wm layout/mode |
|--------------------------------------------------------------|------------------------|
| 1. notes (stack: nvim, obsidian) | stack |
| 2. music makeing - misc | stack |
| 3. music making - daw | floating (workaround) |
| 4. drawing (currently: gimp) | stack |
| 5. music/audio listening | stack |
| 6. comms (stack: emails, chats, av/calls) | stack |
| 7. web browser | stack |
| 8. terminal (primary; one-offs & tui apps can be anywhere) | stack |
| 9. programming - misc (whatever is not in terminal) | stack |
| 0. general - misc (catch-all) | stack |
| 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,34 +1,58 @@
#!/bin/zsh
find_scripts_in_dir() {
echo $(find $1 -maxdepth 1 -mindepth 1 -type f | sort)
apply_overrides() {
name="$1"
kind="$2"
echo $3 |
sed -E 's/; */\n/g' |
while IFS=$'\n ' read -r override_key override_values; do
[[ -z $override_values ]] && continue
override_key=$(echo $override_key | sed 's/[: ]//g')
[[ $override_key = $BOX_SETUP_OS ]] && eval $override_values
[[ $override_key = $BOX_SETUP_DISTRO ]] && eval $override_values
[[ $4 =~ $override_key ]] && eval $override_values
done
[[ -z $name || -z $kind ]] && echo "zz_skip,zz_skip" || echo "$name,$kind"
}
install_scripts_from_list() {
for script in $@; do
if [[ -x $script ]]; then
echo "executing: $script"
./$script
fi
done
build_custom() {
target=$(echo "custom_$BOX_SETUP_OS-$BOX_SETUP_DISTRO-$1" | tr '-' '_')
[[ ! -e ./installs_and_builds/$target ]] &&
target=$(echo "custom_default_$1" | tr '-' '_')
[[ ! -e ./installs_and_builds/$target ]] &&
echo "custom build/install script not found for: $1" &&
return
tmpdir=$(mktemp -d "${TMPDIR:-/tmp}/$1.XXXXXXXX") || {
echo "could not create temp dir for $1 build" && return
}
custom_script_path=$(pwd)/installs_and_builds/$target
pushd $tmpdir > /dev/null
$custom_script_path
popd > /dev/null
}
system_types_list="base"
scripts_from_dir=($(find_scripts_in_dir "./installs_and_builds"))
[[ $1 = "personal" ]] && {
system_types_list+=", personal"
scripts_from_dir+=($(find_scripts_in_dir "./installs_and_builds/personal"))
}
[[ $1 = "studio-music" ]] && {
system_types_list+=", studio-music"
scripts_from_dir+=($(find_scripts_in_dir "./installs_and_builds/studio_music"))
}
[[ $1 = "work-placeholder" ]] && {
system_types_list+=", work-placeholder"
scripts_from_dir+=($(find_scripts_in_dir "./installs_and_builds/work_placeholder"))
}
echo "---- updating package manager / packages"
[[ -n "$BOX_SETUP_UPDATE_PKG_MANAGER_AND_DEFS_CMD" ]] &&
${=BOX_SETUP_UPDATE_PKG_MANAGER_AND_DEFS_CMD}
[[ -n "$BOX_SETUP_UPDATE_PKGS_CMD" ]] && ${=BOX_SETUP_UPDATE_PKGS_CMD}
echo "---- installing programs ---------------------------------------------"
echo "---- installing programs ---------------"
[[ -z $1 ]] && system_types_list="base" || system_types_list="base,$1"
echo "-------- for system types: $system_types_list"
install_scripts_from_list "${scripts_from_dir[@]}"
sed 1d "installs_and_builds/programs.csv" |
while IFS=, read -r name kind os_overrides distro_overrides system_overrides notes; do
apply_overrides $name $kind $os_overrides '' | IFS=, read -r name kind
apply_overrides $name $kind $distro_overrides '' | IFS=, read -r name kind
apply_overrides $name $kind $system_overrides $system_types_list |
IFS=, read -r name kind
[[ $name = 'zz_skip' || $kind = 'zz_skip' ]] && continue
echo "-- installing $name"
[[ $kind = 'package_manager' ]] && ${=BOX_SETUP_INSTALL_COMMAND} ${=name}
[[ $kind = 'build_custom' ]] && build_custom $name
done

View File

@@ -0,0 +1,7 @@
#!/bin/zsh
git clone https://github.com/ibara/oksh.git
pushd oksh > /dev/null
./configure
make && sudo make install
popd > /dev/null

View File

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

View File

@@ -0,0 +1,2 @@
echo 'hello from bitwig custom build!'
echo 'custom script for bitwig is not yet implemented, these echos just here for testing'

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

@@ -0,0 +1,37 @@
name,kind,os_overrides,distro_overrides,system_type_overrides,notes
gcc,package_manager,macos: name='',,,
clang,package_manager,macos: name='',,,
musl,package_manager,macos: name='',,,
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,,,,
ksh,build_custom,,,,
tmux,package_manager,,,,
neovim,package_manager,,,,
mutt,package_manager,,,,
podman,package_manager,,,,
curl,package_manager,,,,
grep,package_manager,,,,
ripgrep,package_manager,,,,
sed,package_manager,macos: name='',,,
fzf,package_manager,,,,
jq,package_manager,,,,
parallel,package_manager,,,,
gettext,package_manager,,,,
htop,package_manager,,,,
ffmpeg,package_manager,,,work: name='',
mpd,package_manager,,,,
ncmpcpp,package_manager,,,,
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'; 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';,work: name='',
1 name kind os_overrides distro_overrides system_type_overrides notes
2 gcc package_manager macos: name=''
3 clang package_manager macos: name=''
4 musl package_manager macos: name=''
5 coreutils package_manager linux: name=''
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
13 ksh build_custom
14 tmux package_manager
15 neovim package_manager
16 mutt package_manager
17 podman package_manager
18 curl package_manager
19 grep package_manager
20 ripgrep package_manager
21 sed package_manager macos: name=''
22 fzf package_manager
23 jq package_manager
24 parallel package_manager
25 gettext package_manager
26 htop package_manager
27 ffmpeg package_manager work: name=''
28 mpd package_manager
29 ncmpcpp package_manager
30 git 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'; 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'; work: name=''

View File

@@ -1,8 +0,0 @@
#!/bin/zsh
[[ -n "$BOX_SETUP_UPDATE_PKG_MANAGER_AND_DEFS_CMD" ]] &&
${=BOX_SETUP_UPDATE_PKG_MANAGER_AND_DEFS_CMD}
[[ -n "$BOX_SETUP_UPDATE_PKGS_CMD" ]] &&
${=BOX_SETUP_UPDATE_PKGS_CMD}

View File

@@ -1,3 +0,0 @@
#!/bin/zsh
# ${=BOX_SETUP_INSTALL_COMMAND} zxcv_placeholder

View File

@@ -1,29 +0,0 @@
#!/bin/zsh
# likely on unix systems already: find, xargs, awk? (maybe get alternative like nawk?)
${=BOX_SETUP_INSTALL_COMMAND} \
curl \
grep \
ripgrep \
sed \
fzf \
jq \
parallel \
make \
cmake \
gettext
# TODO: add to above a system info monitor like htop, btop, gotop, or something similar
utils_package_name_pandoc="pandoc"
case $BOX_SETUP_DISTRO in
(arch | alpine)
utils_package_name_pandoc="pandoc-cli"
;;
(artix)
utils_package_name_pandoc="pandoc-bin"
;;
esac
${=BOX_SETUP_INSTALL_COMMAND} $utils_package_name_pandoc
[[ "$BOX_SETUP_OS" = "macos" ]] &&
${=BOX_SETUP_INSTALL_COMMAND} coreutils findutils

View File

@@ -1,3 +0,0 @@
#!/bin/zsh
${=BOX_SETUP_INSTALL_COMMAND} zsh

View File

@@ -1,6 +0,0 @@
#!/bin/zsh
install_option_prefix=''
[[ "$BOX_SETUP_OS" = "macos" ]] && install_option_prefix='--cask'
# NOTE: ghostty not currently in debian repos, maybe build from source
${=BOX_SETUP_INSTALL_COMMAND} "$install_option_prefix" ghostty

View File

@@ -1,3 +0,0 @@
#!/bin/zsh
${=BOX_SETUP_INSTALL_COMMAND} tmux

View File

@@ -1,18 +0,0 @@
#!/bin/zsh
linux_wm_and_utils() {
# TODO: pick wm for linux; options: dwm, i3, others?
echo "linux_wm_and_utils not yet implemented"
}
macos_wm_and_utils() {
brew install koekeishiya/formulae/skhd
skhd --start-service
sleep 14 # time to give permission in accessibility settings
skhd --restart-service
# NOTE: currently, aerospace seems to need system restart to take effect
brew install --cask nikitabobko/tap/aerospace
}
[[ "$BOX_SETUP_OS" = "macos" ]] && macos_wm_and_utils || linux_wm_and_utils

View File

@@ -1,3 +0,0 @@
#!/bin/zsh
${=BOX_SETUP_INSTALL_COMMAND} neovim

View File

@@ -1,3 +0,0 @@
#!/bin/zsh
${=BOX_SETUP_INSTALL_COMMAND} mutt

View File

@@ -1,3 +0,0 @@
#!/bin/zsh
${=BOX_SETUP_INSTALL_COMMAND} khal

View File

@@ -1,10 +0,0 @@
#!/bin/zsh
# TODO: get browser config and install set up
# current idea: qutebrowser for general, tor for sensitive, brave as a backup option
# install_option_prefix=''
# [[ "$BOX_SETUP_OS" = "macos" ]] && install_option_prefix='--cask'
# firefox_package_name='firefox'
# [[ "$BOX_SETUP_DISTRO" = "debian" ]] && firefox_package_name='firefox-esr'
# ${=BOX_SETUP_INSTALL_COMMAND} "$install_option_prefix" "$firefox_package_name"

View File

@@ -1,4 +0,0 @@
#!/bin/zsh
# TODO: pick rss reader; newsboat? others? option with inbox and separate queues?
# ${=BOX_SETUP_INSTALL_COMMAND} zxcv-placeholder

View File

@@ -1,9 +0,0 @@
#!/bin/zsh
# local music
${=BOX_SETUP_INSTALL_COMMAND} mpd mpc ncmpcpp
# possible mpd clients to consider: ncmpc, inori
# spotify
# TODO: decide if i want to use the package-manager install below, or build from source
# ${=BOX_SETUP_INSTALL_COMMAND} ncspot

View File

@@ -1,3 +0,0 @@
#!/bin/zsh
${=BOX_SETUP_INSTALL_COMMAND} mpv

View File

@@ -1,4 +0,0 @@
#!/bin/zsh
[[ "$BOX_SETUP_OS" = "macos" ]] && exit 0 # TODO: maybe find an option for macos
${=BOX_SETUP_INSTALL_COMMAND} nsxiv

View File

@@ -1,4 +0,0 @@
#!/bin/zsh
[[ "$BOX_SETUP_OS" = "macos" ]] && exit 0 # TODO: maybe find an option for macos
${=BOX_SETUP_INSTALL_COMMAND} zathura

View File

@@ -1,4 +0,0 @@
#!/bin/zsh
# TODO: do i even want a filemanager? if yes, pick one; consider: lf, ranger, others?
# ${=BOX_SETUP_INSTALL_COMMAND} zxcv-placeholder

View File

@@ -1,6 +0,0 @@
#!/bin/zsh
# only audio editor(s) in this file; daws are handled separately
install_option_prefix=''
[[ "$BOX_SETUP_OS" = "macos" ]] && install_option_prefix='--cask'
${=BOX_SETUP_INSTALL_COMMAND} "$install_option_prefix" audacity

View File

@@ -1,4 +0,0 @@
#!/bin/zsh
# TODO: set this up; likely using ffmpeg (work on macos?), maybe others
# ${=BOX_SETUP_INSTALL_COMMAND} zxcv-placeholder

View File

@@ -1,7 +0,0 @@
#!/bin/zsh
install_option_prefix=''
[[ "$BOX_SETUP_OS" = "macos" ]] && install_option_prefix='--cask'
${=BOX_SETUP_INSTALL_COMMAND} "$install_option_prefix" gimp
# ${=BOX_SETUP_INSTALL_COMMAND} imagemagick # TODO: consider this program too

View File

@@ -1,3 +0,0 @@
#!/bin/zsh
${=BOX_SETUP_INSTALL_COMMAND} git

View File

@@ -1,13 +0,0 @@
#!/bin/zsh
setup_docker_on_debian() {
# refer to https://docs.docker.com/engine/install/debian/
# build this function based on that
# in that, could use BOX_SETUP_INSTALL_COMMAND or just apt install
echo "setup_docker_on_debian function not implemented"
}
# TODO: decide on docker vs others
[[ "$BOX_SETUP_DISTRO" = "debian" ]] && setup_docker_on_debian || {
${=BOX_SETUP_INSTALL_COMMAND} docker
}

View File

@@ -1,13 +0,0 @@
#!/bin/zsh
[[ "$BOX_SETUP_OS" != "macos" ]] && {
${=BOX_SETUP_INSTALL_COMMAND} gcc g++ clang clang++
}
# TODO: review and decide if the things below are needed
# install_lua_package="lua5.1"
#[[ "$BOX_SETUP_OS" = "macos" ]] && install_lua_package="lua@5.1"
#${=BOX_SETUP_INSTALL_COMMAND} "$install_lua_package" liblua5.1-0-dev
# TODO: do i want to install luarocks? lazy.nvim plugin manager currently expects it
#luarocks install luacheck

View File

@@ -1,33 +1,40 @@
#!/bin/zsh
#!/bin/sh
source ./src_files/.config/zsh/.zshenv # ensure env vars set for use below
. ./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_TMP" ]] && mkdir -p "$DIR_TMP"
[[ ! -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

@@ -1,14 +0,0 @@
// settings for manual configuration in macOS system settings app
// NOTE: some of these could be scripted, but for now i'm okay with this manual list
- desktop/dock/mission-control:
- `click wallpaper to reveal desktop`: set to "only in stage manager"
- all `drag windows to corner/edge/place` types of options: disabled
- `rearrange spaces based on recent use`: disabled
- `when switch to app... switch to space with open windows of app`: disabled
- `displays have separate spaces`: disabled
- `show files on desktop`: enabled
- `group windows by application`: enabled
- in general, just go through most pages/options and set them as desired

View File

@@ -1,3 +0,0 @@
# Manual steps needed after dotfile copy and/or installs
currently none, wooooo

View File

@@ -1,133 +1,75 @@
# options commands : https://nikitabobko.github.io/AeroSpace/commands
after-startup-command = []
start-at-login = true # start aerospace at login
# ref: https://nikitabobko.github.io/AeroSpace/commands
# ref: https://nikitabobko.github.io/AeroSpace/guide
after-startup-command = []
start-at-login = true
# ref: https://nikitabobko.github.io/AeroSpace/guide#normalization
enable-normalization-flatten-containers = true
enable-normalization-opposite-orientation-for-nested-containers = true
accordion-padding = 0 # ref: https://nikitabobko.github.io/AeroSpace/guide#layouts
default-root-container-layout = 'accordion' # tiles|accordion
default-root-container-orientation = 'vertical' # horizontal|vertical|auto
# refs: https://nikitabobko.github.io/AeroSpace/guide#on-focus-changed-callbacks
# https://nikitabobko.github.io/AeroSpace/commands#move-mouse
on-focused-monitor-changed = ['move-mouse monitor-lazy-center']
# ref: https://nikitabobko.github.io/AeroSpace/goodies#disable-hide-app
automatically-unhide-macos-hidden-apps = true
# See https://nikitabobko.github.io/AeroSpace/guide#key-mapping
[key-mapping]
preset = 'qwerty' # qwerty|dvorak|colemak
accordion-padding = 0
default-root-container-layout = 'accordion' # opts: tiles accordion
default-root-container-orientation = 'vertical' # opts: horizontal vertical auto
[key-mapping]
preset = 'qwerty' # opts: qwerty dvorak colemak
# ref: https://nikitabobko.github.io/AeroSpace/guide#assign-workspaces-to-monitors
# gaps between windows (inner-*) and between monitor edges (outer-*).
[gaps]
inner.horizontal = 0
inner.horizontal = 0 # inner* - between windows and other windows
inner.vertical = 0
outer.left = 0
outer.left = 0 # outer* - between windows and monitor edges
outer.bottom = 0
outer.top = 0
outer.right = 0
# 'main' binding mode; ref: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
[mode.main.binding] # 'main' binding mode must be always presented
# 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
[mode.main.binding]
cmd-comma = 'layout v_accordion'
cmd-period = 'layout h_tiles'
cmd-slash = 'layout horizontal vertical'
# 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-comma = 'layout v_accordion'
alt-period = 'layout h_tiles'
alt-slash = 'layout horizontal vertical'
# See: https://nikitabobko.github.io/AeroSpace/commands#focus
# new windows are added to the stack "below" the current, so swap up and down
alt-j = 'focus up'
alt-k = 'focus down'
# bindings: alt-l -> ctrl-tab, alt-h -> ctrl-shift-tab
# alt-l = "exec-and-forget osascript -e 'tell application \"System Events\" to key code 48 using control down'"
# alt-h = "exec-and-forget osascript -e 'tell application \"System Events\" to key code 48 using {control down, shift down}'"
# See: https://nikitabobko.github.io/AeroSpace/commands#move
# new windows are added to the stack "below" the current, so swap up and down
alt-shift-j = 'move up'
alt-shift-k = 'move down'
alt-shift-h = 'move left'
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-0 = 'workspace 0'
# in stack mode, new windows are added "below" the current, so swap up and down
cmd-j = 'focus up'
cmd-k = 'focus down'
cmd-l = 'focus right'
cmd-h = 'focus left'
cmd-shift-j = 'move up'
cmd-shift-k = 'move down'
cmd-shift-h = 'move left'
cmd-shift-l = 'move right'
# 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-0 = 'move-node-to-workspace 0'
cmd-1 = 'workspace 1'
cmd-2 = 'workspace 2'
cmd-3 = 'workspace 3'
cmd-4 = 'workspace 4'
cmd-5 = 'workspace 5'
cmd-6 = 'workspace 6'
cmd-7 = 'workspace 7'
cmd-8 = 'workspace 8'
cmd-9 = 'workspace 9'
cmd-0 = 'workspace 10'
cmd-shift-1 = 'move-node-to-workspace 1'
cmd-shift-2 = 'move-node-to-workspace 2'
cmd-shift-3 = 'move-node-to-workspace 3'
cmd-shift-4 = 'move-node-to-workspace 4'
cmd-shift-5 = 'move-node-to-workspace 5'
cmd-shift-6 = 'move-node-to-workspace 6'
cmd-shift-7 = 'move-node-to-workspace 7'
cmd-shift-8 = 'move-node-to-workspace 8'
cmd-shift-9 = 'move-node-to-workspace 9'
cmd-shift-0 = 'move-node-to-workspace 10'
# See: https://nikitabobko.github.io/AeroSpace/commands#mode
alt-shift-semicolon = 'mode service'
cmd-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']
backspace = ['close-all-windows-but-current', 'mode main']
r = ['flatten-workspace-tree', 'mode main'] # reset layout
r = ['reload-config', 'flatten-workspace-tree', 'mode main'] # reset layout
f = ['flatten-workspace-tree', 'layout floating', 'mode main']
s = ['flatten-workspace-tree', 'layout v_accordion', 'mode main']
g = ['flatten-workspace-tree', 'layout h_tiles', 'mode main']
cmd-h = ['join-with left', 'mode main']
cmd-j = ['join-with down', 'mode main']
cmd-k = ['join-with up', 'mode main']
cmd-l = ['join-with right', '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']

View File

@@ -1,8 +1,17 @@
# font stuff
font-style = Regular
font-feature = -calt, -liga, -dlig
# window stuff
macos-titlebar-proxy-icon = hidden
title = " "
window-decoration = none
title = ""
# theme opts: tokyonight_night_manual, bamboo
theme = tokyonight_night_manual
# cursor stuff
cursor-style = "block"
cursor-style-blink = false
shell-integration-features = no-cursor
# theme stuff
config-file = ?"~/.config/zz-this-box/themes/.current-theme/ghostty"

View File

@@ -1,25 +0,0 @@
# primary
background = #111c18
foreground = #C1C497
cursor-color = #D7C995
cursor-text = #000000
# normal colors
palette = 0=#23372B
palette = 1=#FF5345
palette = 2=#549e6a
palette = 3=#459451
palette = 4=#509475
palette = 5=#D2689C
palette = 6=#2DD5B7
palette = 7=#F6F5DD
# bright colors
palette = 8=#53685B
palette = 9=#db9f9c
palette = 10=#143614
palette = 11=#E5C736
palette = 12=#ACD4CF
palette = 13=#75bbb3
palette = 14=#8CD3CB
palette = 15=#9eebb3

View File

@@ -47,6 +47,48 @@
(dash-offset 0)
(dash-info 0)
(emulate-brush-dynamics no))
(default-view
(show-menubar yes)
(show-statusbar no)
(show-rulers yes)
(show-scrollbars yes)
(show-selection no)
(show-layer-boundary no)
(show-canvas-boundary yes)
(show-guides yes)
(show-grid no)
(show-sample-points yes)
(snap-to-guides yes)
(snap-to-grid no)
(snap-to-canvas no)
(snap-to-path no)
(snap-to-bbox no)
(snap-to-equidistance no)
(padding-mode default)
(padding-color
(color "R'G'B'A float" 16 "\1\0\200\77\1\0\200\77\1\0\200\77\0\0\200\77" 0))
(padding-in-show-all no))
(default-fullscreen-view
(show-menubar yes)
(show-statusbar no)
(show-rulers yes)
(show-scrollbars yes)
(show-selection no)
(show-layer-boundary no)
(show-canvas-boundary yes)
(show-guides yes)
(show-grid no)
(show-sample-points yes)
(snap-to-guides yes)
(snap-to-grid no)
(snap-to-canvas no)
(snap-to-path no)
(snap-to-bbox no)
(snap-to-equidistance no)
(padding-mode default)
(padding-color
(color "R'G'B'A float" 16 "\1\0\200\77\1\0\200\77\1\0\200\77\0\0\200\77" 0))
(padding-in-show-all no))
# end of gimprc

View File

@@ -1,3 +1,4 @@
(file-version 1)
(action "windows-hide-docks" "<Shift><Control>d")
(action "view-show-rulers" "<Shift><Control>r")
(action "view-zoom-fit-in" "<Shift><Control>f")
(action "windows-hide-docks" "<Shift><Control>d")

View File

@@ -0,0 +1,54 @@
# Beware! This file is rewritten by htop when settings are changed in the interface.
# The parser is also very primitive, and not human-friendly.
htop_version=3.4.1
config_reader_min_version=3
fields=0 48 17 18 38 39 2 46 47 49 1
hide_kernel_threads=1
hide_userland_threads=0
hide_running_in_container=0
shadow_other_users=0
show_thread_names=0
show_program_path=1
highlight_base_name=0
highlight_deleted_exe=1
shadow_distribution_path_prefix=0
highlight_megabytes=1
highlight_threads=1
highlight_changes=0
highlight_changes_delay_secs=5
find_comm_in_cmdline=1
strip_exe_from_cmdline=1
show_merged_command=0
header_margin=1
screen_tabs=1
detailed_cpu_time=0
cpu_count_from_one=0
show_cpu_usage=1
show_cpu_frequency=0
show_cached_memory=1
update_process_names=0
account_guest_in_cpu_meter=0
color_scheme=6
enable_mouse=1
delay=40
hide_function_bar=0
header_layout=two_50_50
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 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
tree_sort_key=0
sort_direction=-1
tree_sort_direction=1
tree_view_always_by_pid=0
all_branches_collapsed=0
screen:Main=PID USER PRIORITY NICE M_VIRT M_RESIDENT STATE PERCENT_CPU PERCENT_MEM TIME Command
.sort_key=PERCENT_MEM
.tree_sort_key=PID
.tree_view_always_by_pid=0
.tree_view=0
.sort_direction=-1
.tree_sort_direction=1
.all_branches_collapsed=0

View File

@@ -0,0 +1,20 @@
input {
kb_options = caps:escape, \
ctrl:swap_lalt_lctl, \
ctrl:swap_ralt_rctl, \
altwin:swap_ralt_rwin # this one seems to not work, but leaving here for now
repeat_rate = 70
repeat_delay = 250
touchpad {
clickfinger_behavior = true # 2-finger click is right-click
scroll_factor = 0.3
natural_scroll = false # natural is a bad name for this
}
}
# custom window rules per app
windowrulev2 = float, class:REAPER, title:^(REAPER).*$
windowrulev2 = size 1120 744, class:REAPER, title:^(REAPER).*$
windowrulev2 = center, class:REAPER, title:^(REAPER).*$

View File

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

View File

@@ -0,0 +1,27 @@
# font stuff
# font_family Regular # Average Mono, maybe?
font_size 16
disable_ligatures always # no ligatures
symbol_map U+E000-U+F8FF none # no ligatures
# window stuff
hide_window_decorations yes
macos_hide_window_titlebar yes
window_title_format " "
window_margin_width 0
confirm_os_window_close 0
show_window_resize_notification no
# cursor stuff
cursor_shape block
cursor_blink_interval 0
macos_custom_beam_cursor yes
# theme stuff
# NOTE: on linux, may want background_opacity at 1.0 and let hyprland handle transparency
include ~/.config/kitty/theme.conf
background_opacity 0.94
# etc
enable_audio_bell no

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,4 @@
h seek -5
l seek 5
H seek -30
L seek 30

View File

@@ -0,0 +1,3 @@
screenshot-format=png
screenshot-dir="~/dbox/inbox"
screenshot-template="%F-%p-%n"

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,13 +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("colorscheme_settings")
csgAutocmd({"BufWritePre"}, {
group = csGroup,
pattern = "*",
command = [[%s/\s\+$//e]],
})
require("util_functions")
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

@@ -1,17 +0,0 @@
local defaultColorScheme = "tokyodark"
function SetColorSchemeWrapper(scheme)
scheme = scheme or defaultColorScheme
vim.cmd.colorscheme(scheme)
end
SetColorSchemeWrapper(defaultColorScheme)
--
-- SetColorSchemeWrapper("tokyodark")
-- SetColorSchemeWrapper("tokyonight-night")
-- SetColorSchemeWrapper("bamboo-vulgaris")
-- SetColorSchemeWrapper("rose-pine-main")
-- SetColorSchemeWrapper("gruvbox")
-- SetColorSchemeWrapper("slate")
-- SetColorSchemeWrapper("sorbet")

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-center 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,30 +22,27 @@ 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]])
-- search-and-replace shortcuts
vim.keymap.set("n", "<leader>rw", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
vim.keymap.set("n", "<leader>ra", [[:%s//g<Left><Left>]])
vim.keymap.set("n", "<leader>ra", [[:%s//gc<Left><Left><Left>]])
-- toggle expandtab and show message
vim.keymap.set("n", "<leader>tab", function()
if vim.opt.expandtab:get() then
vim.opt.expandtab = false
print("using actual tabs")
else
vim.opt.expandtab = true
print("using spaces in place of tabs")
end
end)
vim.keymap.set("n", "<leader>tab", function() ToggleTabsSpaces() end)
-- open scratch/tmp buffers which won't prompt for file-save
vim.keymap.set("n", "<leader>ss", function() TmpBuff("enew") end)
vim.keymap.set("n", "<leader>sl", function() TmpBuff("vnew") end)
vim.keymap.set("n", "<leader>sj", function() TmpBuff("new") end)
-- quicker switching between panes/splits
vim.keymap.set("n", "<C-h>", [[<C-w>h]])
@@ -64,12 +61,24 @@ kmgAutocmd('FileType', {
})
------------------------------------------------------------------------------------------
-- quickfix TODO: learn about quickfix (:help quickfix), then maybe use these
-- visual/ui-related toggles and shortcuts
-- vim.keymap.set("n", "<C-k>", "<cmd>cnext<CR>zz")
-- vim.keymap.set("n", "<C-j>", "<cmd>cprev<CR>zz")
-- vim.keymap.set("n", "<leader>k", "<cmd>lnext<CR>zz")
-- vim.keymap.set("n", "<leader>j", "<cmd>lprev<CR>zz")
vim.keymap.set("n", "<leader>vl", function() ToggleCursorLine() end)
vim.keymap.set("n", "<leader>vc", function() ToggleColorColumn('90') end)
vim.keymap.set("n", "<leader>vn", function() ToggleLineNumbers() end)
vim.keymap.set("n", "<leader>vw", function() ToggleWritingMode() end)
------------------------------------------------------------------------------------------
-- quickfix and location lists
-- ref: :h quickfix or :h location-list
-- NOTE: look at :h setqflist and :h vim.diagnostic.setqflist()
vim.keymap.set("n", "<leader>qo", "<cmd>copen<CR>")
vim.keymap.set("n", "<leader>qc", "<cmd>cclose<CR>")
vim.keymap.set("n", "<leader>qn", "<cmd>cnext<CR>")
vim.keymap.set("n", "<leader>qp", "<cmd>cprev<CR>")
vim.keymap.set("n", "<leader>ln", "<cmd>lnext<CR>")
vim.keymap.set("n", "<leader>lp", "<cmd>lprev<CR>")
------------------------------------------------------------------------------------------
-- debugger and debugging ui
@@ -112,18 +121,30 @@ kmgAutocmd('LspAttach', {
callback = function(e)
local opts = { buffer = e.buf }
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts)
vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, opts)
vim.keymap.set("n", "<leader>lh", function() vim.lsp.buf.hover() end, opts)
vim.keymap.set("i", "<C-h>", function() vim.lsp.buf.signature_help() end, opts)
vim.keymap.set("n", "<leader>vdv", function() vim.diagnostic.open_float() end, opts)
vim.keymap.set("n", "<leader>vdn", function() vim.diagnostic.goto_next() end, opts)
vim.keymap.set("n", "<leader>vdp", function() vim.diagnostic.goto_prev() end, opts)
vim.keymap.set("n", "<leader>vws", function() vim.lsp.buf.workspace_symbol() end, opts)
vim.keymap.set("n", "<leader>vca", function() vim.lsp.buf.code_action() end, opts)
vim.keymap.set("n", "<leader>vrl", function() vim.lsp.buf.references() end, opts)
vim.keymap.set("n", "<leader>vrn", function() vim.lsp.buf.rename() end, opts)
vim.keymap.set("n", "<leader>lv", function() vim.diagnostic.open_float() end, opts)
vim.keymap.set("n", "<leader>lq", function() vim.diagnostic.setqflist() end, opts)
-- TODO: learn what the below commands are and if i want to set keymaps for them
-- vim.keymap.set("n", "<leader>lws", function() vim.lsp.buf.workspace_symbol() end, opts)
-- vim.keymap.set("n", "<leader>lca", function() vim.lsp.buf.code_action() end, opts)
-- vim.keymap.set("n", "<leader>lrl", function() vim.lsp.buf.references() end, opts)
-- vim.keymap.set("n", "<leader>lrn", function() vim.lsp.buf.rename() end, opts)
end
})
------------------------------------------------------------------------------------------
-- git stuff
vim.keymap.set("n", "<leader>ga", function() vim.cmd("silent !git add %") end)
vim.keymap.set("n", "<leader>gs", function() TmpBuff("new"); ReadShellCmd('git status') end)
vim.keymap.set("n", "<leader>gl", function() TmpBuff("vnew"); ReadShellCmd('git log') end)
vim.keymap.set("n", "<leader>gg", function()
TmpBuff()
ReadShellCmd('git ' .. vim.fn.input('git '))
end)
vim.keymap.set("n", "<leader>gG", ":Git ") -- use fugitive plugin's generic git command
------------------------------------------------------------------------------------------
-- plugins
@@ -138,6 +159,10 @@ vim.keymap.set('n', '<leader>ff', tscBuiltin.find_files, { desc = 'tscope find f
vim.keymap.set('n', '<leader>fg', tscBuiltin.git_files, { desc = 'tscope find git-tracked files' })
vim.keymap.set('n', '<leader>fb', tscBuiltin.buffers, { desc = 'tscope buffers' })
vim.keymap.set('n', '<leader>fh', tscBuiltin.help_tags, { desc = 'tscope help tags' })
-- TODO: maybe add commands:
-- - find files including git-ignored (that is, have both a yes and no option)
-- - grep files including git-ignored (that is, have both a yes and no option)
-- - grep which supports fuzzy-find, unless performance is horrendous
-- harpoon
local harpoon = require("harpoon")
@@ -146,34 +171,20 @@ vim.keymap.set("n", "<leader>ha", function() harpoon:list():add() end)
vim.keymap.set("n", "<leader>hA", function() harpoon:list():prepend() end)
vim.keymap.set("n", "<leader>hn", function() harpoon:list():next() end)
vim.keymap.set("n", "<leader>hp", function() harpoon:list():prev() end)
vim.keymap.set("n", "<leader>hz", function() harpoon:list():select(1) end)
vim.keymap.set("n", "<leader>hx", function() harpoon:list():select(2) end)
vim.keymap.set("n", "<leader>hc", function() harpoon:list():select(3) end)
vim.keymap.set("n", "<leader>hv", function() harpoon:list():select(4) end)
vim.keymap.set("n", "<leader>hb", function() harpoon:list():select(5) end)
vim.keymap.set("n", "<leader>hZ", function() harpoon:list():replace_at(1) end)
vim.keymap.set("n", "<leader>hX", function() harpoon:list():replace_at(2) end)
vim.keymap.set("n", "<leader>hC", function() harpoon:list():replace_at(3) end)
vim.keymap.set("n", "<leader>hV", function() harpoon:list():replace_at(4) end)
vim.keymap.set("n", "<leader>hB", function() harpoon:list():replace_at(5) end)
for i = 1, 10, 1 do
vim.keymap.set("n", "<leader>" .. (i % 10), function() harpoon:list():select(i) end)
vim.keymap.set("n", "<leader>h" .. (i % 10), function() harpoon:list():replace_at(i) end)
end
-- undotree
vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle)
-- treesitter and treesitter-context
vim.keymap.set("n", "<leader>tc", function() vim.cmd.TSContext({ "toggle" }) end)
-- fugitive (git integration)
vim.keymap.set("n", "<leader>gG", vim.cmd.Git)
vim.keymap.set("n", "<leader>gg", ":Git ") -- shortcut, arbitrary git commands
vim.keymap.set("n", "<leader>ga", function() vim.cmd.Git({ "add %"}) end)
vim.keymap.set("n", "<leader>gs", function() vim.cmd.Git({ "-p status" }) end)
vim.keymap.set("n", "<leader>gc", function() vim.cmd.Git({ "commit -a" }) end)
-- conform (formatter)
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

@@ -1,4 +1,3 @@
-- TODO: maybe switch this over from git-clone approach to neovim's builtin vim.pack.add
local path_lazy_nvim = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(path_lazy_nvim) then
local git_output = vim.fn.system({

View File

@@ -95,7 +95,7 @@ return {
end,
},
{
"jay-babu/mason-nvim-dap.nvim", -- TODO: here, or handle manually outside of neovim?
"jay-babu/mason-nvim-dap.nvim", -- TODO: install here? manually outside of neovim?
dependencies = {
"williamboman/mason.nvim",
"mfussenegger/nvim-dap",

View File

@@ -4,8 +4,12 @@ return {
branch = "harpoon2", -- https://github.com/ThePrimeagen/harpoon/tree/harpoon2
dependencies = { "nvim-lua/plenary.nvim" },
config = function()
local harpoon = require("harpoon")
harpoon:setup()
require("harpoon"):setup({
settings = {
save_on_toggle = true,
sync_on_ui_close = true,
},
})
end,
},
}

View File

@@ -1,123 +1,130 @@
return {
"neovim/nvim-lspconfig",
dependencies = {
"stevearc/conform.nvim",
"williamboman/mason.nvim",
"williamboman/mason-lspconfig.nvim",
"hrsh7th/cmp-nvim-lsp",
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-path",
"hrsh7th/cmp-cmdline",
"hrsh7th/nvim-cmp",
"L3MON4D3/LuaSnip", -- snippets, using luasnip for now
"saadparwaiz1/cmp_luasnip", -- snippets, using luasnip for now
{
"L3MON4D3/LuaSnip",
version = "v2.*",
-- build = "make install_jsregexp"
},
{
"neovim/nvim-lspconfig",
dependencies = {
"stevearc/conform.nvim",
"williamboman/mason.nvim",
"williamboman/mason-lspconfig.nvim",
"hrsh7th/cmp-nvim-lsp",
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-path",
"hrsh7th/cmp-cmdline",
"hrsh7th/nvim-cmp",
"L3MON4D3/LuaSnip", -- snippets, using luasnip for now
"saadparwaiz1/cmp_luasnip", -- snippets, using luasnip for now
},
config = function()
require("conform").setup({ formatters_by_ft = {} })
local cmp = require('cmp')
local cmp_lsp = require("cmp_nvim_lsp")
local capabilities = vim.tbl_deep_extend(
"force",
{},
vim.lsp.protocol.make_client_capabilities(),
cmp_lsp.default_capabilities()
)
config = function()
require("conform").setup({ formatters_by_ft = {} })
local cmp = require('cmp')
local cmp_lsp = require("cmp_nvim_lsp")
local capabilities = vim.tbl_deep_extend(
"force",
{},
vim.lsp.protocol.make_client_capabilities(),
cmp_lsp.default_capabilities()
)
require("mason").setup()
require("mason-lspconfig").setup({
ensure_installed = {
"clangd",
"lua_ls",
"ruby_lsp",
-- "gopls",
-- "tailwindcss",
},
handlers = {
function(server_name) -- default
require("lspconfig")[server_name].setup {
capabilities = capabilities
}
end,
require("mason").setup()
require("mason-lspconfig").setup({
ensure_installed = {
"clangd",
"lua_ls",
-- "ruby_lsp",
-- "gopls",
-- "tailwindcss",
},
handlers = {
function(server_name) -- default
require("lspconfig")[server_name].setup {
capabilities = capabilities
}
end,
["lua_ls"] = function()
local lspconfig = require("lspconfig")
lspconfig.lua_ls.setup {
capabilities = capabilities,
settings = {
Lua = {
format = {
enable = true,
defaultConfig = { -- NOTE: string values only
indent_style = "space",
indent_size = "2",
["lua_ls"] = function()
local lspconfig = require("lspconfig")
lspconfig.lua_ls.setup {
capabilities = capabilities,
settings = {
Lua = {
format = {
enable = true,
defaultConfig = { -- NOTE: string values only
indent_style = "space",
indent_size = "2",
},
},
},
},
},
}
end,
}
})
}
end,
}
})
local cmp_select = { behavior = cmp.SelectBehavior.Select }
cmp.setup({
mapping = cmp.mapping.preset.insert({
["<C-Space>"] = cmp.mapping.complete(),
['<C-y>'] = cmp.mapping.confirm({ select = true }),
['<C-n>'] = cmp.mapping.select_next_item(cmp_select),
['<C-p>'] = cmp.mapping.select_prev_item(cmp_select),
['<C-d>'] = cmp.mapping.scroll_docs(-4),
['<C-u>'] = cmp.mapping.scroll_docs(4),
}),
snippet = {
expand = function(args)
-- vim.snippet.expand(args.body) -- TODO: native option, maybe try
require('luasnip').lsp_expand(args.body)
end,
},
sources = cmp.config.sources({
{ name = 'nvim_lsp' },
{ name = 'luasnip' },
}, {
{ name = 'buffer' },
}),
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
performance = {
max_view_entries = 14,
},
})
local cmp_select = { behavior = cmp.SelectBehavior.Select }
cmp.setup({
mapping = cmp.mapping.preset.insert({
["<C-Space>"] = cmp.mapping.complete(),
['<C-y>'] = cmp.mapping.confirm({ select = true }),
['<C-n>'] = cmp.mapping.select_next_item(cmp_select),
['<C-p>'] = cmp.mapping.select_prev_item(cmp_select),
['<C-d>'] = cmp.mapping.scroll_docs(-4),
['<C-u>'] = cmp.mapping.scroll_docs(4),
}),
snippet = {
expand = function(args)
-- vim.snippet.expand(args.body) -- TODO: native option, maybe try
require('luasnip').lsp_expand(args.body)
end,
},
sources = cmp.config.sources({
{ name = 'nvim_lsp' },
{ name = 'luasnip' },
}, {
{ name = 'buffer' },
}),
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
performance = {
max_view_entries = 14,
},
})
-- `/` cmdline setup.
cmp.setup.cmdline(':', {
mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources({
{ name = 'path' }
}, {
{ name = 'cmdline' }
}),
matching = { disallow_symbol_nonprefix_matching = false }
})
-- `/` cmdline setup.
cmp.setup.cmdline(':', {
mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources({
{ name = 'path' }
}, {
{ name = 'cmdline' }
}),
matching = { disallow_symbol_nonprefix_matching = false }
})
vim.diagnostic.config({
-- update_in_insert = true,
float = {
focusable = false,
style = "minimal",
border = "rounded",
source = "always",
header = "",
prefix = "",
},
})
vim.diagnostic.config({
-- update_in_insert = true,
float = {
focusable = false,
style = "minimal",
border = "rounded",
source = "always",
header = "",
prefix = "",
},
})
-- TODO: needed? seems like neovim/nvim-lspconfig covers by default
-- vim.lsp.enable('clangd')
-- vim.lsp.enable('ruby_lsp')
-- vim.lsp.enable('standardrb')
-- vim.lsp.enable('herb_ls') -- targets html + ruby (erb files)
end,
-- TODO: needed? seems like neovim/nvim-lspconfig covers by default
-- vim.lsp.enable('clangd')
-- vim.lsp.enable('ruby_lsp')
-- vim.lsp.enable('standardrb')
-- vim.lsp.enable('herb_ls') -- targets html + ruby (erb files)
end,
},
}

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

@@ -1,10 +1,43 @@
return {
-- TODO: decide which of these i won't be using, then remove from this file
{
"tiagovla/tokyodark.nvim",
lazy = false,
priority = 1000,
opts = {
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 = {},
},
},
},
{
'ribru17/bamboo.nvim',
config = function()
require('bamboo').setup { }
require('bamboo').load()
end,
},
{
dir = vim.fn.stdpath("config") .. "/themes/pina",
name = "pina",
},
{
'steve-lohmeyer/mars.nvim',
name = 'mars',
},
{
"ellisonleao/gruvbox.nvim",
name = "gruvbox",
-- lazy = false,
-- priority = 1000,
opts = {
terminal_colors = true, -- add neovim terminal colors
undercurl = true,
@@ -30,13 +63,12 @@ return {
},
},
{
-- even if not connected to a zz-this-box theme, keep this for nvim diffthis
"rose-pine/neovim",
name = "rose-pine",
},
{
"folke/tokyonight.nvim",
lazy = false,
priority = 1000,
opts = {
style = "night", -- "night", "storm", "moon", "day"
styles = {
@@ -49,29 +81,4 @@ return {
end,
},
},
{
"tiagovla/tokyodark.nvim",
lazy = false,
priority = 1000,
opts = {
custom_highlights = function(highlights, _palette)
highlights.Comment['fg'] = "#8a9097"
highlights.LineNr['fg'] = "#8088A8"
return highlights
end,
},
},
{
'ribru17/bamboo.nvim',
-- lazy = false,
-- priority = 1000,
config = function()
require('bamboo').setup { }
require('bamboo').load()
end,
},
{
dir = os.getenv('DIR_GIT_PROJECTS') .. "/other/omarchy-pina-theme/pina.nvim",
name = "pina",
},
}

View File

@@ -1,7 +1,6 @@
return {
{
"nvim-treesitter/nvim-treesitter",
branch = 'master',
lazy = false,
build = ":TSUpdate",
config = function()
@@ -14,12 +13,14 @@ return {
},
sync_install = false, -- install `ensure_installed` parsers synchronously
auto_install = true, -- install missing on BufEnter, requires tree-sitter CLI
ignore_install = {},
-- indent = { enable = true }, -- TODO: do i want this?
ignore_install = {
"csv",
},
indent = { enable = true },
highlight = {
enable = true, -- `false` will disable the whole extension
disable = function(lang, buf)
for i, v in ipairs({ "html", }) do
for i, v in ipairs({ "html", "csv", }) do
if lang == v then
print("treesitter disabled for this language")
return true
@@ -40,7 +41,7 @@ return {
},
})
-- TODO: decide if needed/wanted
-- TODO: decide if needed/wanted
-- local treesitter_parser_config = require("nvim-treesitter.parsers").get_parser_configs()
-- treesitter_parser_config.templ = {
-- install_info = {
@@ -49,25 +50,7 @@ return {
-- branch = "master",
-- },
-- }
-- vim.treesitter.language.register("templ", "templ")
end
},
{
"nvim-treesitter/nvim-treesitter-context",
after = "nvim-treesitter",
opts = {
enable = false, -- can enable/disable via manual command
multiwindow = false,
max_lines = 0, -- lines the window should span; x <= 0 means no limit
min_window_height = 10, -- min window height to enable; x <= 0 means no limit
line_numbers = true,
multiline_threshold = 40, -- max lines to show for a single context
trim_scope = 'outer', -- 'inner', 'outer'; discard lines if max_lines exceeded
mode = 'cursor', -- 'cursor', 'topline'; line used to calculate context
separator = "-", -- 1 char, like '-'; only shown when >= 2 lines above
zindex = 20, -- z-index of the context window
on_attach = nil, -- (fun(buf: integer): boolean); return false to disable attaching
},
},
}

View File

@@ -1,25 +1,30 @@
vim.g.mapleader = " "
-- -- TODO: do i want these?
-- vim.opt.isfname:append("@-@")
-- vim.opt.guicursor = ""
vim.opt.hlsearch = true
vim.opt.incsearch = true
vim.opt.termguicolors = true
vim.opt.scrolloff = 2
vim.opt.colorcolumn = "90"
vim.opt.colorcolumn = '' -- default to off, see keymapping shortcut to toggle
vim.opt.signcolumn = "yes" -- "auto", "yes", "no", "number"
vim.opt.laststatus = 2
vim.opt.splitright = true
vim.opt.splitbelow = true
vim.opt.nu = true
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.cursorline = true
vim.opt.cursorlineopt = "both"
vim.opt.smartindent = true
vim.opt.wrap = true
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'
vim.opt.errorbells = false
vim.opt.visualbell = false

View File

@@ -0,0 +1,14 @@
local hl_properties = {
"Normal", "NormalFloat", "FloatBorder", "Pmenu", "Terminal", "EndOfBuffer",
"FoldColumn", "Folded", "SignColumn", "NormalNC", "WhichKeyFloat", "TelescopeBorder",
"TelescopeNormal", "TelescopePromptBorder", "TelescopePromptTitle", "NotifyINFOBody",
"NotifyERRORBody", "NotifyWARNBody", "NotifyTRACEBody", "NotifyDEBUGBody",
"NotifyINFOTitle", "NotifyERRORTitle", "NotifyWARNTitle", "NotifyTRACETitle",
"NotifyDEBUGTitle", "NotifyINFOBorder", "NotifyERRORBorder", "NotifyWARNBorder",
"NotifyTRACEBorder", "NotifyDEBUGBorder",
}
for _, v in ipairs(hl_properties) do
vim.api.nvim_set_hl(0, v, { bg = "none" })
end

View File

@@ -0,0 +1,122 @@
function ThemeUpdate()
local scheme_name = "tokyodark" -- default if unable to parse from file
local current_theme_file = vim.fn.stdpath("config") .. "/current-theme"
local ok, theme = pcall(dofile, current_theme_file)
if ok then
scheme_name = theme.colorscheme_name
end
vim.cmd.colorscheme(scheme_name)
pcall(dofile, vim.fn.stdpath('config') .. '/lua/theme_transparency.lua')
end
function TmpBuff(split_opt)
local new_cmd = split_opt or "enew"
vim.cmd(new_cmd)
vim.opt_local.buftype = "nofile"
vim.opt_local.bufhidden = "hide"
vim.opt_local.swapfile = false
vim.cmd("file tmp_" .. os.date("%Y%m%d_%H%M%S") .. "_" .. math.random(471))
end
function ReadShellCmd(command)
vim.cmd("read !" .. command)
end
function ToggleTabsSpaces()
if vim.opt.expandtab:get() then
vim.opt.expandtab = false
print("using actual tabs")
else
vim.opt.expandtab = true
print("using spaces in place of tabs")
end
end
function ToggleLineNumbers()
if vim.opt.number:get() then
vim.opt.number = false
vim.opt.relativenumber = false
else
vim.opt.number = true
vim.opt.relativenumber = true
end
end
function ToggleColorColumn(column_string)
if #vim.opt.colorcolumn:get() == 0 then
vim.opt.colorcolumn = (column_string or '90')
else
vim.opt.colorcolumn = ''
end
end
function ToggleCursorLine()
vim.opt.cursorline = (not vim.opt.cursorline:get())
end
local function EnableWritingModeUiForCurrentWindow()
vim.opt_local.number = false
vim.opt_local.relativenumber = false
vim.opt_local.colorcolumn = ''
vim.opt_local.signcolumn = "no"
vim.opt_local.cursorline = false
vim.opt_local.winfixwidth = true
-- vim.opt_local.wrap = true -- TODO: needed?
vim.opt_local.laststatus = 0
end
function ToggleWritingMode()
if vim.g.writing_mode then
vim.g.writing_mode = false
vim.api.nvim_set_hl(0, 'WinSeparator', vim.g.wrmode_prev_hl_winsep or {})
vim.opt_local.winfixwidth = false
vim.cmd("wincmd l")
vim.api.nvim_win_close(0, false)
vim.cmd("wincmd h")
vim.api.nvim_win_close(0, false)
vim.opt_local.number = true
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
vim.opt_local.scrolloff = 2
vim.opt_local.formatoptions:remove('t')
vim.opt_local.laststatus = 0
-- vim.cmd("vertical resize")
else
vim.g.writing_mode = true
vim.g.wrmode_prev_hl_winsep = vim.api.nvim_get_hl(0, { name = 'WinSeparator' })
vim.api.nvim_set_hl(0, 'WinSeparator', { bg = 'none', fg = '#000000' })
local window_width = 72
local window_padding = math.max(math.floor((vim.o.columns - window_width) / 2), 1)
vim.cmd("vsplit")
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')
vim.cmd("wincmd h")
TmpBuff('enew')
local padding_pane_left = vim.api.nvim_get_current_win()
EnableWritingModeUiForCurrentWindow()
vim.cmd("wincmd l")
TmpBuff('vnew')
local padding_pane_right = vim.api.nvim_get_current_win()
EnableWritingModeUiForCurrentWindow()
vim.api.nvim_set_current_win(writing_pane)
vim.api.nvim_win_set_width(padding_pane_left, window_padding)
vim.api.nvim_win_set_width(padding_pane_right, window_padding)
vim.api.nvim_win_set_width(writing_pane, window_width)
end
end

View File

@@ -13,6 +13,8 @@
"showUnsupportedFiles": true,
"attachmentFolderPath": "inbox",
"showInlineTitle": false,
"readableLineLength": false,
"livePreview": false
}
"readableLineLength": true,
"strictLineBreaks": true,
"livePreview": false,
"propertiesInDocument": "hidden"
}

View File

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

View File

@@ -1,18 +1,23 @@
{
"markdown:toggle-preview": [
{
"modifiers": [
"Alt"
],
"key": "R"
}
],
"switcher:open": [
{
"modifiers": [
"Ctrl"
],
"key": "F"
}
]
}
"switcher:open": [
{ "modifiers": [ "Ctrl" ], "key": "F" }
],
"app:toggle-left-sidebar": [
{ "modifiers": [ "Ctrl", "Shift" ], "key": "D" }
],
"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

@@ -1,10 +0,0 @@
# list of built-in keywords at https://github.com/koekeishiya/skhd/issues/1
# staring file was at /opt/homebrew/opt/yabai/share/yabai/examples
# notes, stacks: https://github.com/koekeishiya/yabai/issues/203#issuecomment-650642142
##########################################################################################
# key bindings for general use
alt - h : $(which skhd) -k "ctrl + shift - tab"
alt - l : $(which skhd) -k "ctrl - tab"

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,17 +1,26 @@
# set -g default-terminal "tmux-255color" # TODO: messes up backspace render, fix
set -s escape-time 0
# replace default prefix and bind-key
unbind C-b
set-option -g prefix C-Space
bind-key C-Space send-prefix
set -g status-style 'bg=#111111 fg=#22cc00'
set -g base-index 0
# settings for status line and window list
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
# theme settings
set-option -g status-style "bg=default fg=default" # default, theme files can overwrite
source-file "$XDG_CONFIG_HOME/tmux/theme.conf"
# unbind keys
unbind-key f; unbind-key C-f; unbind-key s; unbind-key C-s
unbind-key c; unbind-key n; unbind-key p
unbind-key q; unbind-key w
unbind-key C-o; unbind-key C-n; unbind-key C-p; unbind-key C-l; unbind-key C-h
unbind-key 0
# vim-like movement stuff
set-window-option -g mode-keys vi
@@ -37,8 +46,10 @@ 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
bind-key -r C-p previous-window
bind-key 0 select-window -t 10

View File

@@ -1,45 +1 @@
# default programs
export BROWSER='brave'
export EDITOR='nvim'
export TERMINAL='ghostty'
# env vars used for my organization structure
export DIR_HOME_BOX="$HOME/dbox"
export DIR_NOTES="$DIR_HOME_BOX/notes"
export DIR_MUSIC="$DIR_HOME_BOX/music/listen"
export DIR_DEV="$HOME/dev"
export DIR_GIT_PROJECTS="$DIR_DEV/git"
# util dirs; do not change without checking impact on xdg base dirs
export DIR_LOCAL="$HOME/.local"
export DIR_BIN="$DIR_LOCAL/bin"
export DIR_SCRIPTS="$DIR_LOCAL/scripts"
export DIR_TMP="$DIR_LOCAL/tmp"
export DIR_USER_OPT="$HOME/opt"
export DIR_USER_LIB="$DIR_LOCAL/lib"
# xdg base directory vars
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_CACHE_HOME="$HOME/.cache"
export XDG_DATA_HOME="$DIR_LOCAL/share"
export XDG_STATE_HOME="$DIR_LOCAL/state"
export XDG_DATA_DIRS="/usr/local/share:/usr/share"
#export XDG_CONFIG_DIRS="/etc/xdg" # TODO: does this work on macOS?
# zsh
export ZDOTDIR="$XDG_CONFIG_HOME/zsh" # may already be set, set anyway
# git
export GIT_EDITOR="$EDITOR"
# obsidian
export OBSIDIAN_WORKSPACES_TO_CONFIGURE=("$DIR_NOTES")
# reaper
DIR_REAPER_PORTABLE_SHARED="$DIR_USER_OPT/reaper-portable/shared"
DIR_REAPER_PORTABLE_LINUX="$DIR_USER_OPT/reaper-portable/linux"
DIR_REAPER_PORTABLE_MACOS="$DIR_USER_OPT/reaper-portable/macos"
# clean-up of home dir
export __CF_USER_TEXT_ENCODING="0x0:0x0"
[ -r "$HOME/.config/profile" ] && . $HOME/.config/profile

View File

@@ -1,38 +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 nv='nvim'
alias n='nvim'
alias tms='tmux-session-init'
# executable overrides
alias ls='ls -F'
# misc commands
alias cal='khal calendar'
alias pdt='ping -c 2 drinkingtea.net'
alias ppw='ping -c 2 pinewoods.xyz'
alias weather='curl wttr.in'
alias shrug='echo "¯\\_(ツ)_/¯"'
alias journal="cd $DIR_HOME_BOX; $EDITOR .current-journal"
alias ncspotkeys="$EDITOR $DIR_GIT_PROJECTS/other/ncspot/doc/users.md"
# source extensions and system-specific files
[[ -a "$ZDOTDIR/zsh-general-dev" ]] && source "$ZDOTDIR/zsh-general-dev"
[[ -a "$ZDOTDIR/zsh-life-system" ]] && source "$ZDOTDIR/zsh-life-system"
# dev/lang 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,24 +0,0 @@
# set env vars, path updates, etc
[[ -a $HOME/.local-box-vars ]] && source $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'

View File

@@ -1,7 +0,0 @@
# life system shortcuts
alias life-system="cd $DIR_HOME_BOX/life/system; clear; ls"
alias goals="clear; sed -n 2,7p $DIR_HOME_BOX/life/system/direction/goals/current-goals.txt"
alias note="cd $DIR_HOME_BOX/life/system/tasks/inbox; $EDITOR"
alias todo="cd $DIR_HOME_BOX/life/system/tasks; $EDITOR +5 todo.txt"
alias budget="open $DIR_HOME_BOX/life/finance/budget/.current"

View File

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

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

View File

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

View File

@@ -0,0 +1,2 @@
set-window-option -g window-style bg=default # transparency
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'

View File

@@ -0,0 +1 @@
125,176,133

View File

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

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 KiB

View File

@@ -0,0 +1 @@
47,47,47

View File

@@ -0,0 +1,48 @@
# TODO: this is currently just a copy of tokyonight, switch over to tokyodark
## name: Tokyo Night
## license: MIT
## author: Folke Lemaitre
## upstream: https://github.com/folke/tokyonight.nvim/raw/main/extras/kitty/tokyonight_night.conf
background #1a1b26
foreground #c0caf5
selection_background #283457
selection_foreground #c0caf5
url_color #73daca
cursor #c0caf5
cursor_text_color #1a1b26
# Tabs
active_tab_background #7aa2f7
active_tab_foreground #16161e
inactive_tab_background #292e42
inactive_tab_foreground #545c7e
#tab_bar_background #15161e
# Windows
active_border_color #7aa2f7
inactive_border_color #292e42
# normal
color0 #15161e
color1 #f7768e
color2 #9ece6a
color3 #e0af68
color4 #7aa2f7
color5 #bb9af7
color6 #7dcfff
color7 #a9b1d6
# bright
color8 #414868
color9 #f7768e
color10 #9ece6a
color11 #e0af68
color12 #7aa2f7
color13 #bb9af7
color14 #7dcfff
color15 #c0caf5
# extended colors
color16 #ff9e64
color17 #db4b4b

View File

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

Some files were not shown because too many files have changed in this diff Show More