Compare commits

...

29 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
104 changed files with 1009 additions and 668 deletions

View File

@@ -1,8 +1,19 @@
# 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
- zsh and git installed
- programs installed: git, sed, zsh
- git clone this repo
### specific prereqs, linux distros
@@ -13,61 +24,22 @@
- 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.md)
- manual settings, refer to [docs/macos-system-settings](docs/macos-system-settings.md)
## 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
- 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 [ref/todo.md](ref/todo.md)
see [docs/todo.md](docs/todo.md)
## attribution
### Original pattern/approach and some key config logic
The original pattern and approach for this project, the program-installation scripts and
logic, the copy-configs-and-scripts scripts and 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 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.
- [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/)
Author: ThePrimeagen (Michael Paulson)
### 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 to build and/or install was inspired by Luke Smith's [LARBS project](https://github.com/LukeSmithxyz/LARBS/tree/master).
### Some themes and theme-swtiching/setting logic
The 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).
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/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
[src_files/imports/themes-omarchy-extra](src_files/imports/themes-omarchy-extra).
see [docs/attribution.md](docs/attribution.md)

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
}
@@ -28,7 +28,7 @@ echo "---- settings vars for system type -----"
[[ "$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'
;;
@@ -49,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,61 +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 -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 ------------------"
source src_files/.config/zsh/.zshenv
copy_file src_files/.config/zsh/.zshenv $HOME # copy first, ensure $ZDOTDIR set
. ./src_files/shell/profile
# configs/executables/scripts from .config and .local
# 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
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"
# }
# [[ "$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

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).

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,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
@@ -13,6 +15,24 @@ apply_overrides() {
[[ -z $name || -z $kind ]] && echo "zz_skip,zz_skip" || echo "$name,$kind"
}
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
}
echo "---- updating package manager / packages"
[[ -n "$BOX_SETUP_UPDATE_PKG_MANAGER_AND_DEFS_CMD" ]] &&
${=BOX_SETUP_UPDATE_PKG_MANAGER_AND_DEFS_CMD}
@@ -31,11 +51,8 @@ sed 1d "installs_and_builds/programs.csv" |
[[ $name = 'zz_skip' || $kind = 'zz_skip' ]] && continue
[[ $kind = 'package_manager' ]] && ${=BOX_SETUP_INSTALL_COMMAND} ${=name} || {
[[ $kind = 'build_custom' ]] && {
target=$(echo "custom_$BOX_SETUP_OS-$BOX_SETUP_DISTRO-$name" | tr '-' '_')
"./installs_and_builds/$target"
}
}
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

@@ -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

@@ -1,8 +1,20 @@
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,,,,
docker,package_manager,,,,may need special logic for debian https://docs.docker.com/engine/install/debian/
podman,package_manager,,,,
curl,package_manager,,,,
grep,package_manager,,,,
ripgrep,package_manager,,,,
@@ -10,27 +22,16 @@ sed,package_manager,macos: name='',,,
fzf,package_manager,,,,
jq,package_manager,,,,
parallel,package_manager,,,,
make,package_manager,,,,
cmake,package_manager,,,,
gettext,package_manager,,,,
htop,package_manager,,,,
neovim,package_manager,,,,
ffmpeg,package_manager,,,work: name='',
mpd,package_manager,,,,
ncmpcpp,package_manager,,,,
ffmpeg,package_manager,,,work: name='',
git,package_manager,,,,
tmux,package_manager,,,,
khal,package_manager,,,,
calcurse,package_manager,,,,
zathura,package_manager,macos: name='',,,
gcc,package_manager,macos: name='',,,
g++,package_manager,macos: name='',,,
clang,package_manager,macos: name='',,,
clang++,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='',
kitty,package_manager,macos: name='--cask kitty',,,
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',,,
coreutils,package_manager,linux: name='',,,
findutils,package_manager,linux: name='',,,
--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
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 docker podman package_manager may need special logic for debian https://docs.docker.com/engine/install/debian/
18 curl package_manager
19 grep package_manager
20 ripgrep package_manager
22 fzf package_manager
23 jq package_manager
24 parallel package_manager
make package_manager
cmake package_manager
25 gettext package_manager
26 htop package_manager
27 neovim ffmpeg package_manager work: name=''
28 mpd package_manager
29 ncmpcpp package_manager
ffmpeg package_manager work: name=''
30 git package_manager
31 tmux calcurse package_manager
khal package_manager
32 zathura package_manager macos: name=''
gcc package_manager macos: name=''
g++ package_manager macos: name=''
clang package_manager macos: name=''
clang++ 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=''
kitty package_manager macos: name='--cask kitty'
35 gimp package_manager macos: name='--cask gimp'
coreutils package_manager linux: name=''
findutils package_manager linux: name=''
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,34 +1,40 @@
#!/bin/zsh
#!/bin/sh
. ./src_files/shell/profile # ensure env vars set for use below
echo "---- making system dirs ----------------"
source ./src_files/.config/zsh/.zshenv # ensure env vars set for use below
# 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,8 +0,0 @@
# Manual steps needed after dotfile copy and/or installs
## macOS
- aerospace
- grant aerospace permission in accessibility settings
- likely need system reboot before aerospace works

View File

@@ -1,14 +0,0 @@
# todo items
- config for: terminal (kitty? havoc?)
- config for shell (if keeping zsh, may not need anything beyond what i've already done)
- config for mpd, and client(s), (mpd clients to consider: mpc, ncmpcpp, ncmpc, inori)
- config for mpv (if any, may not need anything)
- 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
- decide on docker? or alternatives like podman? any license concerns?
- pick rss reader; newsboat? others? option with inbox and separate queues?
- decide if i even want a filemanager; if yes, pick one and configure
- decide what i'm doing for music streaming; spotify official? web? tui option?

View File

@@ -28,14 +28,14 @@ show_cpu_frequency=0
show_cached_memory=1
update_process_names=0
account_guest_in_cpu_meter=0
color_scheme=5
color_scheme=6
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,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

@@ -20,7 +20,7 @@ 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.95
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,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-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,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]])
@@ -60,6 +60,14 @@ kmgAutocmd('FileType', {
end
})
------------------------------------------------------------------------------------------
-- visual/ui-related toggles and shortcuts
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
@@ -118,10 +126,10 @@ kmgAutocmd('LspAttach', {
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>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>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
})
@@ -152,8 +160,8 @@ vim.keymap.set('n', '<leader>fg', tscBuiltin.git_files, { desc = 'tscope find gi
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 (have a yes and no option)
-- - grep files including git-ignored (have a yes and no option)
-- - 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
@@ -171,11 +179,12 @@ 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)
-- 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

@@ -8,7 +8,7 @@ return {
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,4 +1,40 @@
return {
{
"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",
@@ -27,12 +63,11 @@ return {
},
},
{
-- TODO: decide if i want rose-pine, remove from file if not
-- even if not connected to a zz-this-box theme, keep this for nvim diffthis
"rose-pine/neovim",
name = "rose-pine",
},
{
-- TODO: decide if i want tokyonight, remove from file if not
"folke/tokyonight.nvim",
opts = {
style = "night", -- "night", "storm", "moon", "day"
@@ -46,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 = vim.fn.stdpath("config") .. "/themes/pina",
name = "pina",
},
}

View File

@@ -1,7 +1,6 @@
return {
{
"nvim-treesitter/nvim-treesitter",
branch = 'master',
lazy = false,
build = ":TSUpdate",
config = function()
@@ -17,7 +16,7 @@ return {
ignore_install = {
"csv",
},
-- indent = { enable = true }, -- TODO: do i want this?
indent = { enable = true },
highlight = {
enable = true, -- `false` will disable the whole extension
disable = function(lang, buf)
@@ -51,26 +50,7 @@ return {
-- branch = "master",
-- },
-- }
-- vim.treesitter.language.register("templ", "templ")
end
},
-- {
-- -- TODO: decide if needed/wanted
-- "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

@@ -15,7 +15,7 @@ function TmpBuff(split_opt)
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"))
vim.cmd("file tmp_" .. os.date("%Y%m%d_%H%M%S") .. "_" .. math.random(471))
end
function ReadShellCmd(command)
@@ -32,3 +32,91 @@ function ToggleTabsSpaces()
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

@@ -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,20 +1,23 @@
{
"markdown:toggle-preview": [
{ "modifiers": [ "Ctrl", "Shift" ], "key": "E" }
],
"switcher:open": [
{ "modifiers": [ "Ctrl" ], "key": "F" }
],
"app:toggle-left-sidebar": [
{ "modifiers": [ "Ctrl", "Shift" ], "key": "D" }
],
"app:toggle-right-sidebar": [
{ "modifiers": [ "Ctrl", "Shift" ], "key": "F" }
],
"editor:toggle-readable-line-length": [
{ "modifiers": [ "Ctrl", "Shift" ], "key": "R" }
],
"file-explorer:reveal-active-file": [
{ "modifiers": [ "Ctrl", "Shift" ], "key": "N" }
]
"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

@@ -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

@@ -1,11 +1,19 @@
# 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
# 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"
set -g base-index 1
# unbind keys
unbind-key f; unbind-key C-f; unbind-key s; unbind-key C-s
@@ -38,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,48 +1 @@
# default programs
export BROWSER='brave'
export EDITOR='nvim'
export TERMINAL='kitty'
# 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?
# directory for theme/style stuff
export DIR_THEME_SETTINGS="$XDG_CONFIG_HOME/zz-this-box/themes"
# 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
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?
[ -r "$HOME/.config/profile" ] && . $HOME/.config/profile

View File

@@ -1,40 +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'
# 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/dfw?2&F"'
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

@@ -1,5 +1,2 @@
set -g status-style 'bg=#111111 fg=#22cc00'
# transparency
set-window-option -g window-style bg=default
# set-option -g status-style bg=default
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,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

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

View File

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

View File

@@ -1,5 +1,2 @@
set -g status-style 'bg=#111111 fg=#22cc00'
# transparency
set-window-option -g window-style bg=default
# set-option -g status-style bg=default
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

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

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 "$@"

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# trying the "portable install" option; using this launch script to point to that
source "$XDG_CONFIG_HOME/zsh/.zshenv"
. $XDG_CONFIG_HOME/profile
reaper_portable_exec_linux="$DIR_REAPER_PORTABLE_LINUX/REAPER/reaper"
[[ ! -x "$reaper_portable_exec_linux" ]] && {

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

@@ -36,6 +36,23 @@ theme_update_neovim() {
done
}
theme_update_browser() {
policy='BrowserThemeColor'
color_hex=$(
printf '#%02x%02x%02x' $(
cat $DIR_THEME_SETTINGS/.current-theme/brave.theme | tr ',' ' '
)
)
[[ "$OSTYPE" != *"darwin"* ]] && {
echo "{\"$policy\": \"$color_hex\"}" > "/etc/brave/policies/managed/color.json"
brave --refresh-platform-policy --no-startup-window > /dev/null
} || {
# TODO: fix or just remove this macos part; currently, property is set and seen
# by brave, but colors are applied either with a huge delay or not at all
# defaults write com.brave.Browser $policy -string "$color_hex"
}
}
[[ ! -z $1 ]] && raw_target="$1" ||
raw_target=$(
find $DIR_THEME_SETTINGS -mindepth 1 -maxdepth 1 -type d -exec basename -- {} \; |
@@ -45,13 +62,13 @@ theme_update_neovim() {
target_theme="$DIR_THEME_SETTINGS/$(echo $raw_target | tr ' ' '-' | tr '[:upper:]' '[:lower:]')"
[[ ! -d "$target_theme" ]] && echo "theme not found: $target_theme" && exit 1
ln -sF "$target_theme" $DIR_THEME_SETTINGS/.current-theme
ln -snf "$target_theme" $DIR_THEME_SETTINGS/.current-theme
theme_update_terminal
theme_update_tmux
theme_update_neovim &
theme_update_browser
# theme_update_obsidian # TODO: decide if theming beyond transparency is worth it, if so, implement
# theme_update_browser # TODO: implement
# theme_update_reaper # TODO: implement
# theme_update_mutt # TODO: possible and actually desired?

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 "source $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

@@ -0,0 +1,3 @@
#!/bin/sh
/Applications/Brave\ Browser.app/Contents/MacOS/Brave\ Browser $@

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# trying the "portable install" option; using this launch script to point to that
source "$XDG_CONFIG_HOME/zsh/.zshenv"
. $XDG_CONFIG_HOME/profile
reaper_portable_exec_macos="$DIR_REAPER_PORTABLE_MACOS/REAPER.app/Contents/MacOS/REAPER"
[[ ! -x "$reaper_portable_exec_macos" ]] && {

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

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2025 Steve Lohmeyer
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

View File

@@ -0,0 +1 @@
45,26,26

View File

@@ -0,0 +1,4 @@
general {
col.active_border = rgba(C45A3Fff) rgba(7B534Eff) 45deg
}

View File

@@ -0,0 +1,5 @@
$color = rgba(00, 00, 00, 1.0)
$inner_color = rgba(47, 27, 27, 0.8)
$outer_color = rgba(217, 175, 167, 1.0)
$font_color = rgba(217, 175, 167, 1.0)
$check_color = rgba(255, 107, 74, 1.0)

View File

@@ -0,0 +1,39 @@
## original name ghostty.conf
## license: MIT
## author: Steve Lohmeyer (github: steve-lohmeyer)
## upstream: https://github.com/steve-lohmeyer/omarchy-mars-theme/blob/master/ghostty.conf
# This file is adapted from the ghostty.conf theme file from omarchy-mars-theme
# (https://github.com/steve-lohmeyer/omarchy-mars-theme).
##########################################################################################
foreground #D9AFA7
background #000000
selection_foreground #000000
selection_background #4A2C2C
active_tab_foreground #000000
active_tab_background #D9AFA7
inactive_tab_foreground #D9AFA7
inactive_tab_background #000000
cursor #FF6B4A
cursor_text_color #000000
# black, red, green, yellow, blue, magenta, cyan, white
color0 #000000
color1 #E07B5F
color2 #7B534E
color3 #C45A3F
color4 #7B534E
color5 #A0392F
color6 #7B534E
color7 #D9AFA7
# black, red, green, yellow, blue, magenta, cyan, white
color8 #4A2C2C
color9 #FF6B4A
color10 #7B534E
color11 #E07B5F
color12 #7B534E
color13 #C45A3F
color14 #7B534E
color15 #D9AFA7

View File

@@ -0,0 +1,3 @@
/* Waybar CSS for Mars theme */
@define-color foreground #D9AFA7;
@define-color background #000000;

View File

Before

Width:  |  Height:  |  Size: 549 KiB

After

Width:  |  Height:  |  Size: 549 KiB

View File

@@ -1 +0,0 @@
224,212,128

View File

@@ -1,6 +1,6 @@
## original name ghostty.conf
## author: bjarneo (aka: iamdothash)
## license: (no license was specified)
## author: bjarneo (aka: iamdothash)
## upstream: https://github.com/bjarneo/omarchy-pina-theme/blob/main/ghostty.conf
# This file is adapted from the ghostty.conf theme file from omarchy-pina-theme
@@ -8,46 +8,33 @@
##########################################################################################
foreground #D4D5D5
background #171A18
selection_foreground #171A18
selection_background #D4D5D5
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
active_tab_foreground #171A18
active_tab_background #D4D5D5
inactive_tab_foreground #D4D5D5
inactive_tab_background #171A18
# black
color0 #171A18
color8 #6B8071
# red
# black, red, green, yellow, blue, magenta, cyan, white
color0 #101311
color1 #7DB085
color9 #8CC098
# green
color2 #B8C082
color10 #CDD590
# yellow
color3 #E0D480
color11 #F2E590
# blue
color4 #7DD2B8
color12 #92E2C8
# magenta
color5 #B5C9A4
color13 #C8DAB8
# cyan
color6 #C5E8C5
color7 #D0D1C9
# black, red, green, yellow, blue, magenta, cyan, white
color8 #6B8071
color9 #8CC098
color10 #CDD590
color11 #F2E590
color12 #92E2C8
color13 #C8DAB8
color14 #D8F5D8
# white
color7 #D4D5D5
color15 #E2E3E3

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"

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