Compare commits

..

2 Commits

Author SHA1 Message Date
43de177a64 add script 2025-10-12 22:49:19 -05:00
62a5233ddf temp, testing 2025-10-12 22:42:32 -05:00
112 changed files with 845 additions and 1285 deletions

View File

@@ -1,73 +1,33 @@
# dotfiles, plus scripts for box setup
## prereqs
### prereqs
- zsh and git installed
- 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.md)
## script run
- manual settings, refer to [ref/macos-system-settings](ref/macos-system-settings.txt)
### 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`
## after script run
### after script run
- complete manual actions specified in [ref/post-run](ref/post-run.md)
## todo items
see [ref/todo.md](ref/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).
------------------------------------------------------------------------------------------
### todo items
- choose window manager for linux, then configure
- config for: terminal (ghostty); shell; mpd, mpc, ncmpcpp; mpv
- 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.
- add command in tmux to perform cd to a given dir in all windows of the current session

View File

@@ -7,8 +7,6 @@
exit 0
}
echo "---- settings vars for system type -----"
# determine OS and, if linux, distro
[[ "$OSTYPE" = *"darwin"* ]] && setup_os="macos" || {
[[ "$OSTYPE" = *"linux"* ]] && setup_os="linux" && {

View File

@@ -7,7 +7,7 @@ copy_file() {
local to=$2
local filename=$(basename $from)
[[ -e $to/$filename ]] && rm $to/$filename
echo_and_execute cp -RPp $from $to/$filename
echo_and_execute cp -p $from $to/$filename
}
copy_dir() {
@@ -17,7 +17,7 @@ copy_dir() {
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
echo_and_execute cp -rp $dir $to/$dir
done
local files=(`find . -mindepth 1 -maxdepth 1 -type f`)
for file in $files; do
@@ -26,36 +26,30 @@ copy_dir() {
popd > /dev/null
}
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
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
}
echo "---- copying dotfiles ------------------"
source src_files/.config/zsh/.zshenv
copy_file src_files/.config/zsh/.zshenv $HOME # copy first, ensure $ZDOTDIR set
echo "---- copying dotfiles ------------------------------------------------"
copy_file src_files/.config/zsh/.zshenv $HOME # duplicate, copy anyway, ensures $ZDOTDIR
# configs/executables/scripts from .config and .local
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
# macOS overrides as needed
[[ "$OSTYPE" = *"darwin"* ]] && copy_dir src_files/bin_overrides_macos $DIR_BIN
# 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"
done
# TODO: get reaper config set up
# [[ $1 = "studio-music" ]] {
# [[ "$OSTYPE" = *"darwin"* ]] &&
# sym_link "$XDG_CONFIG_HOME/REAPER" "$HOME/Library/Application Support/REAPER"
# link_dir "$XDG_CONFIG_HOME/REAPER" "$HOME/Library/Application Support/REAPER" # TODO: get reaper config set up
# }
# set up themes and theme-switcher
./theme_config.sh

View File

@@ -1,41 +1,34 @@
#!/bin/zsh
apply_overrides() {
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"
find_scripts_in_dir() {
echo $(find $1 -maxdepth 1 -mindepth 1 -type f | sort)
}
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 ---------------"
[[ -z $1 ]] && system_types_list="base" || system_types_list="base,$1"
echo "-------- for system types: $system_types_list"
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
[[ $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"
}
}
install_scripts_from_list() {
for script in $@; do
if [[ -x $script ]]; then
echo "executing: $script"
./$script
fi
done
}
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 "---- installing programs ---------------------------------------------"
echo "-------- for system types: $system_types_list"
install_scripts_from_list "${scripts_from_dir[@]}"

View File

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

View File

@@ -1,36 +0,0 @@
name,kind,os_overrides,distro_overrides,system_type_overrides,notes
mpv,package_manager,,,,
zsh,package_manager,,,,
mutt,package_manager,,,,
docker,package_manager,,,,may need special logic for debian https://docs.docker.com/engine/install/debian/
curl,package_manager,,,,
grep,package_manager,,,,
ripgrep,package_manager,,,,
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,,,,
mpd,package_manager,,,,
ncmpcpp,package_manager,,,,
ffmpeg,package_manager,,,work: name='',
git,package_manager,,,,
tmux,package_manager,,,,
khal,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',,,
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='',
1 name kind os_overrides distro_overrides system_type_overrides notes
2 mpv package_manager
3 zsh package_manager
4 mutt package_manager
5 docker package_manager may need special logic for debian https://docs.docker.com/engine/install/debian/
6 curl package_manager
7 grep package_manager
8 ripgrep package_manager
9 sed package_manager macos: name=''
10 fzf package_manager
11 jq package_manager
12 parallel package_manager
13 make package_manager
14 cmake package_manager
15 gettext package_manager
16 htop package_manager
17 neovim package_manager
18 mpd package_manager
19 ncmpcpp package_manager
20 ffmpeg package_manager work: name=''
21 git package_manager
22 tmux package_manager
23 khal package_manager
24 zathura package_manager macos: name=''
25 gcc package_manager macos: name=''
26 g++ package_manager macos: name=''
27 clang package_manager macos: name=''
28 clang++ package_manager macos: name=''
29 tenacity package_manager macos: name='--cask audacity' work: name='' tenacity not available via homebrew; use audacity in macos
30 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=''
31 kitty package_manager macos: name='--cask kitty'
32 gimp package_manager macos: name='--cask gimp'
33 coreutils package_manager linux: name=''
34 findutils package_manager linux: name=''
35 --cask nikitabobko/tap/aerospace package_manager linux: name=''
36 pandoc package_manager arch: name='pandoc-cli'; artix: name='pandoc-bin'; alpine: name='pandoc-cli'; work: name=''

View File

@@ -0,0 +1,8 @@
#!/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}

3
installs_and_builds/s01_libs Executable file
View File

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

27
installs_and_builds/s02_utils Executable file
View File

@@ -0,0 +1,27 @@
#!/bin/zsh
# likely on unix systems already: find xargs grep sed awk
${=BOX_SETUP_INSTALL_COMMAND} \
curl \
jq \
parallel \
fzf \
make \
cmake \
gettext \
grep \
ripgrep
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

3
installs_and_builds/s03_shell Executable file
View File

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

View File

@@ -0,0 +1,6 @@
#!/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

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

View File

@@ -0,0 +1,18 @@
#!/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

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

View File

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

View File

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

View File

@@ -0,0 +1,10 @@
#!/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"

4
installs_and_builds/s13_rss Executable file
View File

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

View File

@@ -0,0 +1,9 @@
#!/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

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

View File

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

View File

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

View File

@@ -0,0 +1,4 @@
#!/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

@@ -0,0 +1,6 @@
#!/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

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

View File

@@ -0,0 +1,7 @@
#!/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

3
installs_and_builds/s30_git Executable file
View File

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

13
installs_and_builds/s31_docker Executable file
View File

@@ -0,0 +1,13 @@
#!/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

@@ -0,0 +1,13 @@
#!/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,6 +1,5 @@
#!/bin/zsh
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
@@ -24,8 +23,6 @@ source ./src_files/.config/zsh/.zshenv # ensure env vars set for use below
[[ ! -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
# directories for music/audio production

View File

@@ -1,36 +0,0 @@
# 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

View File

@@ -0,0 +1,14 @@
// 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,8 +1,3 @@
# Manual steps needed after dotfile copy and/or installs
## macOS
- aerospace
- grant aerospace permission in accessibility settings
- likely need system reboot before aerospace works
currently none, wooooo

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

@@ -4,20 +4,20 @@
idea from the ThePrimeagen: designated workspace/label/desktop per app/purpose
### current layout
### current layout/plan
| 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) |
| 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 |
### ideas/guidelines:
- use this consistently accross all machines

View File

@@ -1,75 +1,133 @@
# ref: https://nikitabobko.github.io/AeroSpace/commands
# ref: https://nikitabobko.github.io/AeroSpace/guide
# options commands : https://nikitabobko.github.io/AeroSpace/commands
after-startup-command = []
start-at-login = true
start-at-login = true # start aerospace at login
# 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
accordion-padding = 0
default-root-container-layout = 'accordion' # opts: tiles accordion
default-root-container-orientation = 'vertical' # opts: horizontal vertical auto
# See https://nikitabobko.github.io/AeroSpace/guide#key-mapping
[key-mapping]
preset = 'qwerty' # opts: qwerty dvorak colemak
preset = 'qwerty' # 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* - between windows and other windows
inner.horizontal = 0
inner.vertical = 0
outer.left = 0 # outer* - between windows and monitor edges
outer.left = 0
outer.bottom = 0
outer.top = 0
outer.right = 0
[mode.main.binding]
cmd-comma = 'layout v_accordion'
cmd-period = 'layout h_tiles'
cmd-slash = 'layout horizontal vertical'
# '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
# 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'
# 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#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'
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#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-shift-semicolon = 'mode service'
# See: https://nikitabobko.github.io/AeroSpace/commands#mode
alt-shift-semicolon = 'mode service'
# 'service' binding mode declaration.
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
[mode.service.binding]
r = ['reload-config', 'flatten-workspace-tree', 'mode main'] # reset layout
f = ['flatten-workspace-tree', 'layout floating', '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']
esc = ['reload-config', 'mode main']
backspace = ['close-all-windows-but-current', 'mode main']
r = ['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']
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,17 +1,8 @@
# font stuff
font-style = Regular
font-feature = -calt, -liga, -dlig
# window stuff
macos-titlebar-proxy-icon = hidden
title = " "
window-decoration = none
title = ""
# 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"
# theme opts: tokyonight_night_manual, bamboo
theme = tokyonight_night_manual

View File

@@ -0,0 +1,25 @@
# 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,48 +47,6 @@
(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,4 +1,3 @@
(file-version 1)
(action "view-show-rulers" "<Shift><Control>r")
(action "view-zoom-fit-in" "<Shift><Control>f")
(action "windows-hide-docks" "<Shift><Control>d")
(action "view-zoom-fit-in" "<Shift><Control>f")

View File

@@ -1,54 +0,0 @@
# 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=5
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_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_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

@@ -1,27 +0,0 @@
# 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.95
# etc
enable_audio_bell no

View File

@@ -4,13 +4,10 @@ local csgAutocmd = vim.api.nvim_create_autocmd
require("settings")
require("plugin_manager")
require("key_mappings")
require("util_functions")
require("theme")
csgAutocmd({"BufWritePre"}, {
group = csGroup,
pattern = "*",
command = [[%s/\s\+$//e]],
})
ThemeUpdate()

View File

@@ -7,23 +7,23 @@ local kmgAutocmd = vim.api.nvim_create_autocmd
-- explore the directory of the current file (using netrw)
vim.keymap.set("n", "<leader>n", vim.cmd.Ex)
-- move visually-selected lines up or down
-- move selected lines up or down
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")
-- vertically center cursor with half-page jumps
vim.keymap.set("n", "<C-d>", "<C-d>zz")
vim.keymap.set("n", "<C-u>", "<C-u>zz")
-- open folds when iterating search results
vim.keymap.set("n", "n", "nzv")
vim.keymap.set("n", "N", "Nzv")
-- maintain cursor position after paragraph formatting
vim.keymap.set("n", "=ap", "mF=ap'F")
vim.keymap.set("n", "=ap", "ma=ap'a")
-- shortcuts for deleting into the void register
vim.keymap.set({ "n", "v" }, "<leader>d", [["_d]])
vim.keymap.set({ "n", "v" }, "<leader>d", "\"_d")
vim.keymap.set("x", "<leader>P", [["_dP]]) -- replace selected text, keep main register
-- shortcuts for using + register (system clipboard)
@@ -34,43 +34,32 @@ 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//gc<Left><Left><Left>]])
vim.keymap.set("n", "<leader>ra", [[:%s//g<Left><Left>]])
-- toggle expandtab and show message
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)
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)
-- quicker switching between panes/splits
vim.keymap.set("n", "<C-h>", [[<C-w>h]])
vim.keymap.set("n", "<C-j>", [[<C-w>j]])
vim.keymap.set("n", "<C-k>", [[<C-w>k]])
vim.keymap.set("n", "<C-l>", [[<C-w>l]])
kmgAutocmd('FileType', {
group = kmGroup,
pattern = "netrw",
callback = function()
vim.keymap.set("n", "<C-h>", [[<C-w>h]], { remap = true, buffer = true })
vim.keymap.set("n", "<C-j>", [[<C-w>j]], { remap = true, buffer = true })
vim.keymap.set("n", "<C-k>", [[<C-w>k]], { remap = true, buffer = true })
vim.keymap.set("n", "<C-l>", [[<C-w>l]], { remap = true, buffer = true })
end
})
------------------------------------------------------------------------------------------
-- quickfix and location lists
-- ref: :h quickfix or :h location-list
-- NOTE: look at :h setqflist and :h vim.diagnostic.setqflist()
-- quickfix TODO: learn about quickfix (:help quickfix), then maybe use these
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>")
-- 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")
------------------------------------------------------------------------------------------
-- debugger and debugging ui
@@ -82,17 +71,14 @@ vim.keymap.set("n", "<leader>bo", dap.step_over, { desc = "debug: step over" })
vim.keymap.set("n", "<leader>bu", dap.step_out, { desc = "debug: step out" })
vim.keymap.set("n", "<leader>blb", dap.list_breakpoints, { desc = "debug: list breakpoints" })
vim.keymap.set("n", "<leader>bt", dap.toggle_breakpoint, { desc = "debug: toggle breakpoint" })
vim.keymap.set("n", "<leader>bb", dap.set_breakpoint, { desc = "debug: set breakpoint" })
vim.keymap.set("n", "<leader>bB", function()
dap.set_breakpoint(vim.fn.input("breakpoint condition: "))
end, { desc = "debug: set conditional breakpoint" })
vim.keymap.set("n", "<leader>bv", function()
require("nvim-dap-virtual-text").toggle()
end, { desc = "debug: toggle virtual text" })
vim.keymap.set("n", "<leader>bq", function()
dap.terminate() require("dapui").close() require("nvim-dap-virtual-text").disable()
dap.terminate() require("dapui").close() require("nvim-dap-virtual-text").toggle()
end, { desc = "debug: quit debugger" })
-- TODO: decide if i want these or others, add if so
@@ -113,30 +99,18 @@ 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", "<leader>lh", function() vim.lsp.buf.hover() end, opts)
vim.keymap.set("n", "K", 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>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>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)
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
@@ -147,14 +121,10 @@ local custom_grep_str_w_regex = function()
end
vim.keymap.set('n', '<leader>ft', tscBuiltin.live_grep, { desc = 'tscope find text, live_grep' })
vim.keymap.set('n', '<leader>fT', custom_grep_str_w_regex, { desc = 'tscope find text, static grep w/regex' })
vim.keymap.set('n', '<leader>ff', tscBuiltin.find_files, { desc = 'tscope find files' })
vim.keymap.set('n', '<leader>fg', tscBuiltin.git_files, { desc = 'tscope find git-tracked files' })
vim.keymap.set('n', '<leader>ff', tscBuiltin.find_files, { desc = 'tscope find 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 (have a yes and no option)
-- - grep files including git-ignored (have a yes and no option)
-- - grep which supports fuzzy-find, unless performance is horrendous
-- harpoon
local harpoon = require("harpoon")
@@ -163,10 +133,14 @@ 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)
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
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>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)
-- undotree
vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle)
@@ -174,6 +148,13 @@ 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 })

View File

@@ -22,8 +22,13 @@ vim.opt.rtp:prepend(path_lazy_nvim)
require("lazy").setup({
spec = {
{ import = "plugins_lazy" },
{ import = "plugins_lazy" },
},
checker = { enabled = false },
change_detection = { notify = false },
dev = {
path = "~/dev/git/other/omarchy/plugins",
patterns = { 'LazyVim' },
fallback = false,
},
})

View File

@@ -1,7 +1,10 @@
return {
-- TODO: decide which of these i won't be using, then remove from this file
{
"ellisonleao/gruvbox.nvim",
name = "gruvbox",
-- lazy = false,
-- priority = 1000,
opts = {
terminal_colors = true, -- add neovim terminal colors
undercurl = true,
@@ -27,13 +30,13 @@ return {
},
},
{
-- TODO: decide if i want rose-pine, remove from file if not
"rose-pine/neovim",
name = "rose-pine",
},
{
-- TODO: decide if i want tokyonight, remove from file if not
"folke/tokyonight.nvim",
lazy = false,
priority = 1000,
opts = {
style = "night", -- "night", "storm", "moon", "day"
styles = {
@@ -67,8 +70,4 @@ return {
require('bamboo').load()
end,
},
{
dir = vim.fn.stdpath("config") .. "/themes/pina",
name = "pina",
},
}

View File

@@ -119,5 +119,10 @@ return {
dependencies = {
"mfussenegger/nvim-dap",
},
-- TODO: disabled by default, keymapping to toggle
-- config = function()
-- local dap_virtual_text = require("nvim-dap-virtual-text")
-- dap_virtual_text.setup()
-- end,
},
}

View File

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

View File

@@ -14,14 +14,12 @@ return {
},
sync_install = false, -- install `ensure_installed` parsers synchronously
auto_install = true, -- install missing on BufEnter, requires tree-sitter CLI
ignore_install = {
"csv",
},
ignore_install = {},
-- indent = { enable = true }, -- TODO: do i want this?
highlight = {
enable = true, -- `false` will disable the whole extension
disable = function(lang, buf)
for i, v in ipairs({ "html", "csv", }) do
for i, v in ipairs({ "html", }) do
if lang == v then
print("treesitter disabled for this language")
return true
@@ -42,7 +40,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 = {
@@ -55,22 +53,21 @@ return {
-- 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
-- },
-- },
{
"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,7 +1,3 @@
return {
"mbbill/undotree",
config = function()
vim.g.undotree_SplitWidth = 41
vim.g.undotree_DiffpanelHeight = 14
end,
}

View File

@@ -0,0 +1,31 @@
local defaultColorScheme = "tokyodark"
-- local defaultColorScheme = "tokyonight-night"
-- local defaultColorScheme = "bamboo-vulgaris"
-- local defaultColorScheme = "rose-pine-main"
-- local defaultColorScheme = "gruvbox"
-- local defaultColorScheme = "slate"
-- local defaultColorScheme = "sorbet"
local ok, theme_specs = pcall(dofile, (os.getenv('DIR_CURRENT_THEME') or "") .. "/neovim.lua")
if not ok then
vim.notify(
'current theme file not found, using default: ' .. defaultColorScheme,
vim.log.levels.INFO
)
vim.cmd.colorscheme(defaultColorScheme)
return
end
local first = theme_specs[1]
local plugin_name = (type(first.name) == 'string' and first.name)
or (type(first[1]) == 'string' and first[1]:match('.*/(.*)'))
or 'plugin_name_not_found'
local last = theme_specs[#theme_specs]
local colorscheme = ((type(last.opts) == 'table' and type(last.opts.colorscheme) == 'string') and last.opts.colorscheme)
or plugin_name:gsub("%.%w+$", "")
colorscheme = (colorscheme == 'plugin_name_not_found' and defaultColorScheme)
or colorscheme
vim.cmd.colorscheme(colorscheme)

View File

@@ -1,14 +0,0 @@
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

@@ -1,34 +0,0 @@
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"))
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

View File

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

View File

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

View File

@@ -1,20 +1,18 @@
{
"markdown:toggle-preview": [
{ "modifiers": [ "Ctrl", "Shift" ], "key": "E" }
{
"modifiers": [
"Alt"
],
"key": "R"
}
],
"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" }
{
"modifiers": [
"Ctrl"
],
"key": "F"
}
]
}

10
src_files/.config/skhd/skhdrc Executable file
View File

@@ -0,0 +1,10 @@
# 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

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

View File

@@ -4,15 +4,14 @@ set -s escape-time 0
unbind C-b
set-option -g prefix C-Space
bind-key C-Space send-prefix
source-file "$XDG_CONFIG_HOME/tmux/theme.conf"
set -g base-index 1
set -g status-style 'bg=#111111 fg=#22cc00'
set -g base-index 0
# 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
@@ -42,5 +41,4 @@ 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,14 +1,14 @@
# default programs
export BROWSER='brave'
export EDITOR='nvim'
export TERMINAL='kitty'
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_MUSIC="$DIR_HOME_BOX/media/music"
export DIR_DEV="$HOME/dev"
export DIR_GIT_PROJECTS="$DIR_DEV/git"
export DIR_NOTES="$DIR_HOME_BOX/notes"
# util dirs; do not change without checking impact on xdg base dirs
export DIR_LOCAL="$HOME/.local"
@@ -26,9 +26,6 @@ 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
@@ -39,10 +36,10 @@ export GIT_EDITOR="$EDITOR"
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"
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" # TODO: does this actually accomplish anything?
export __CF_USER_TEXT_ENCODING="0x0:0x0"

View File

@@ -12,11 +12,9 @@ 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'
alias n='nvim'
alias tms='tmux-session-init'
# executable overrides
alias ls='ls -F'
@@ -25,7 +23,7 @@ alias ls='ls -F'
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 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"

View File

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

View File

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

View File

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

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

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

View File

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

View File

@@ -1,48 +0,0 @@
# 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

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

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 243 KiB

View File

@@ -1,58 +0,0 @@
#!/bin/zsh
# This script is modeled after Omarchy's omarchy-theme-set script and my theme-switching
# approach is modeled after Omarchy's theme-switching approach.
# (See: https://github.com/basecamp/omarchy)
# Omarchy is licensed under the MIT License. See the original LICENSE file for details at:
# https://github.com/basecamp/omarchy/blob/master/LICENSE
# Copyright (c) David Heinemeier Hansson
##########################################################################################
theme_update_terminal() {
case "$TERMINAL" in
("havoc" | "foot")
echo "TODO: theme update for havoc or foot not yet implemented"
;;
("kitty")
killall -SIGUSR1 kitty
;;
esac
}
theme_update_tmux() {
tmux source-file $DIR_THEME_SETTINGS/.current-theme/tmux.conf
}
theme_update_neovim() {
nvim_stdpath_run=$(dirname $(
nvim -l <(echo "vim.cmd.echo('stdpath(\"run\")')") > /dev/stdout 2>&1
))
find "$nvim_stdpath_run" -type s -name "nvim*" 2> /dev/null |
while IFS= read -r nvim_server; do
timeout 2s nvim --server "$nvim_server" \
--remote-expr "execute('lua ThemeUpdate()')" \
> /dev/null 2>&1
done
}
[[ ! -z $1 ]] && raw_target="$1" ||
raw_target=$(
find $DIR_THEME_SETTINGS -mindepth 1 -maxdepth 1 -type d -exec basename -- {} \; |
fzf
)
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
theme_update_terminal
theme_update_tmux
theme_update_neovim &
# 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?
theme-update-wallpaper "zz-default-for-theme" &

View File

@@ -1,26 +0,0 @@
#!/bin/zsh
set_wallpaper_linux() {
echo "TODO: theme_update_wallpaper_linux not yet implemented"
}
set_wallpaper_macos() {
# after back and forth with gpt and failing approaches, landing on this swift snippet
swift <(cat << NESTED_SWIFT_BLOCK
import AppKit
let url = URL(fileURLWithPath: "$1")
try NSWorkspace.shared.setDesktopImageURL(url, for: NSScreen.main!, options: [:])
NESTED_SWIFT_BLOCK
)
}
wallpaper_dir=$DIR_THEME_SETTINGS/.current-theme/wallpaper
image_paths=($(find $wallpaper_dir -type f | sort)) 2> /dev/null
[[ $1 = "zz-default-for-theme" ]] && target_wallpaper=${image_paths[@]:0:1} ||
target_wallpaper=$(printf '%s\n' ${image_paths[@]} | fzf)
[[ -z $target_wallpaper ]] && exit 0
[[ "$OSTYPE" = *"darwin"* ]] && set_wallpaper_macos $target_wallpaper ||
set_wallpaper_linux $target_wallpaper

View File

@@ -12,9 +12,9 @@ tmux_hydrate() {
tmux_existing_sessions=$(tmux list-sessions 2> /dev/null || echo '')
tmux_search_dirs=(
$DIR_GIT_PROJECTS/*
$DIR_DEV
$DIR_HOME_BOX
$DIR_DEV
$DIR_GIT_PROJECTS/*
)
tmux_target_name=''
tmux_target_path=''

View File

@@ -1,21 +0,0 @@
Copyright (c) David Heinemeier Hansson
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.

Before

Width:  |  Height:  |  Size: 434 KiB

View File

@@ -1,21 +0,0 @@
## name hyprland.conf (under gruvbox theme directory)
## author: David Heinemeier Hansson
## copyright: David Heinemeier Hansson
## license: MIT
## upstream: https://github.com/basecamp/omarchy/blob/master/themes/gruvbox/hyprland.conf
# This file is copied from a theme from Omarchy (https://github.com/basecamp/omarchy).
# Licensed under the MIT License. See the original LICENSE file for details at:
# https://github.com/basecamp/omarchy/blob/master/LICENSE
##########################################################################################
$activeBorderColor = rgb(a89984)
general {
col.active_border = $activeBorderColor
}
group {
col.border_active = $activeBorderColor
}

View File

@@ -1,17 +0,0 @@
## name hyprlock.conf (under gruvbox theme directory)
## authors: David Heinemeier Hansson, Naparajith T L (github: DrInfinite)
## copyright: David Heinemeier Hansson
## license: MIT
## upstream: https://github.com/basecamp/omarchy/blob/master/themes/gruvbox/hyprlock.conf
# This file is copied from a theme from Omarchy (https://github.com/basecamp/omarchy).
# Licensed under the MIT License. See the original LICENSE file for details at:
# https://github.com/basecamp/omarchy/blob/master/LICENSE
##########################################################################################
$color = rgba(40,40,40,1.0)
$inner_color = rgba(40,40,40,0.8)
$outer_color = rgba(212,190,152,1.0)
$font_color = rgba(212,190,152,1.0)
$check_color = rgba(214, 153, 92, 1.0)

View File

@@ -1,42 +0,0 @@
## name: Gruvbox Dark
## author: Pavel Pertsev
## license: MIT/X11
## upstream: https://raw.githubusercontent.com/gruvbox-community/gruvbox-contrib/master/kitty/gruvbox-dark.conf
##########################################################################################
selection_foreground #ebdbb2
selection_background #d65d0e
background #282828
foreground #ebdbb2
color0 #3c3836
color1 #cc241d
color2 #98971a
color3 #d79921
color4 #458588
color5 #b16286
color6 #689d6a
color7 #a89984
color8 #928374
color9 #fb4934
color10 #b8bb26
color11 #fabd2f
color12 #83a598
color13 #d3869b
color14 #8ec07c
color15 #fbf1c7
cursor #bdae93
cursor_text_color #665c54
url_color #458588
# START_AUTOGENERATED_TAB_STYLE
# Feel free to update these colors manually and remove these comments.
active_tab_foreground #eeeeee
active_tab_background #d65d0e
inactive_tab_foreground #ebdbb2
inactive_tab_background #202020
# END_AUTOGENERATED_TAB_STYLE

View File

@@ -1,14 +0,0 @@
/*
name hyprlock.conf (under gruvbox theme directory)
authors: David Heinemeier Hansson, Naparajith T L (github: DrInfinite), and Ryan Hughes
copyright: David Heinemeier Hansson
license: MIT
upstream: https://github.com/basecamp/omarchy/blob/master/themes/gruvbox/waybar.css
This file is copied from a theme from Omarchy (https://github.com/basecamp/omarchy).
Licensed under the MIT License. See the original LICENSE file for details at:
https://github.com/basecamp/omarchy/blob/master/LICENSE
*/
@define-color foreground #d4be98;
@define-color background #282828;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

View File

@@ -1,21 +0,0 @@
## name hyprland.conf (under osaka-jade theme directory)
## authors: David Heinemeier Hansson and Justin Lowry
## copyright: David Heinemeier Hansson
## license: MIT
## upstream: https://github.com/basecamp/omarchy/blob/master/themes/osaka-jade/hyprland.conf
# This file is copied from a theme from Omarchy (https://github.com/basecamp/omarchy).
# Licensed under the MIT License. See the original LICENSE file for details at:
# https://github.com/basecamp/omarchy/blob/master/LICENSE
##########################################################################################
$activeBorderColor = rgb(71CEAD)
general {
col.active_border = $activeBorderColor
}
group {
col.border_active = $activeBorderColor
}

View File

@@ -1,17 +0,0 @@
## name hyprlock.conf (under osaka-jade theme directory)
## authors: David Heinemeier Hansson and Justin Lowry
## copyright: David Heinemeier Hansson
## license: MIT
## upstream: https://github.com/basecamp/omarchy/blob/master/themes/osaka-jade/hyprlock.conf
# This file is copied from a theme from Omarchy (https://github.com/basecamp/omarchy).
# Licensed under the MIT License. See the original LICENSE file for details at:
# https://github.com/basecamp/omarchy/blob/master/LICENSE
##########################################################################################
$color = rgb(7, 40, 32)
$inner_color = rgb(7, 40, 32)
$outer_color = rgb(167, 172, 132)
$font_color = rgb(167, 172, 132)
$check_color = rgb(131, 162, 152)

View File

@@ -1,55 +0,0 @@
## name :osaka-jade (kitty.conf file under osaka-jade theme dir)
## authors: David Heinemeier Hansson, Amit (github: vyrx-dev), and Justin Lowry
## copyright: David Heinemeier Hansson
## license: MIT
## upstream: https://github.com/basecamp/omarchy/blob/master/themes/osaka-jade/kitty.conf
# This file is copied from a theme from Omarchy (https://github.com/basecamp/omarchy).
# Licensed under the MIT License. See the original LICENSE file for details at:
# https://github.com/basecamp/omarchy/blob/master/LICENSE
##########################################################################################
foreground #C1C497
background #111C18
selection_foreground #111C18
selection_background #C1C497
cursor #D7C995
cursor_text_color #000000
active_tab_foreground #111C18
active_tab_background #C1C497
inactive_tab_foreground #C1C497
inactive_tab_background #111C18
# black
color0 #23372B
color8 #53685B
# red
color1 #FF5345
color9 #DB9F9C
# green
color2 #549E6A
color10 #63b07a
# yellow
color3 #459451
color11 #E5C736
# blue
color4 #509475
color12 #ACD4CF
# magenta
color5 #D2689C
color13 #75BBB3
# cyan
color6 #2DD5B7
color14 #8CD3CB
# white
color7 #F6F5DD
color15 #9EEBB3

View File

@@ -1,15 +0,0 @@
/*
name hyprlock.conf (under osaka-jade theme directory)
authors: David Heinemeier Hansson and Justin Lowry
copyright: David Heinemeier Hansson
license: MIT
upstream: https://github.com/basecamp/omarchy/blob/master/themes/osaka-jade/waybar.css
This file is copied from a theme from Omarchy (https://github.com/basecamp/omarchy).
Licensed under the MIT License. See the original LICENSE file for details at:
https://github.com/basecamp/omarchy/blob/master/LICENSE
*/
@define-color foreground #e6d8ba;
@define-color background #11221C;

View File

@@ -1,14 +0,0 @@
# Pina - omarchy-pina-theme
- Author: bjarneo (aka: iamdothash)
- Upstream repo: https://github.com/bjarneo/omarchy-pina-theme
All files within this `pina` directory are copied or derived from the repo above.
**NOTE:** As of 2025-10-30, no license is currently indicated for this repo/project
overall. However, there is a brief reference to the MIT license in the
`pina.nvim/colors/pina.vim` file in its original state, which I have also left in the
copy/derivative of that file. This said, I wonder if the intent may have been to license
the whole repo/project under an MIT license, but I hesitate to explicitly add a LICENSE
file in this theme's directory since no LICENSE file was in the original/upstream repo.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 549 KiB

View File

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

View File

@@ -1,7 +0,0 @@
# This file is not a full hyprland configuration.
# It is intended to be included in your main hyprland.conf.
general {
col.active_border = rgba(b5c9a4ee) rgba(b8c082ee) 45deg
col.inactive_border = rgba(171a1888)
}

View File

@@ -1,6 +0,0 @@
$color = rgba(23, 26, 24, 1.0)
$inner_color = rgba(23, 26, 24, 0.8)
$outer_color = rgba(181, 201, 164, 1.0)
$font_color = rgba(212, 213, 213, 1.0)
$placeholder_color = rgba(212, 213, 213, 0.7)
$check_color = rgba(125, 210, 184, 1.0)

View File

@@ -1,53 +0,0 @@
## original name ghostty.conf
## author: bjarneo (aka: iamdothash)
## license: (no license was specified)
## 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
# (https://github.com/bjarneo/omarchy-pina-theme).
##########################################################################################
foreground #D4D5D5
background #171A18
selection_foreground #171A18
selection_background #D4D5D5
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
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
color14 #D8F5D8
# white
color7 #D4D5D5
color15 #E2E3E3

View File

@@ -1,150 +0,0 @@
" Pina colorscheme for Vim/Neovim
" Author: bjarneo (aka: iamdothash)
" 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.
" NOTE: The name, maintainer, and license lines from the original are copied
" below in their original state. However, I suspect these were inaccurate names
" which were copied from the Frost Theme which bjarneo also owns, so I have
" updated the name above to reflect Pina and have listed bjarneo as the author.
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Frost colorscheme for Vim/Neovim
" Maintainer: Frost Theme
" License: MIT
set background=dark
hi clear
if exists("syntax_on")
syntax reset
endif
let g:colors_name = "pina"
" Color definitions
let background = "#171a18"
let foreground = "#d4d5d5"
let cursor = "#d4d5d5"
let cursor_lines = "#2c2f2d"
" Colors
let color0 = "#171a18"
let color1 = "#7db085"
let color2 = "#b8c082"
let color3 = "#e0d480"
let color4 = "#7dd2b8"
let color5 = "#b5c9a4"
let color6 = "#c5e8c5"
let color7 = "#d4d5d5"
let color8 = "#6b8071"
let color9 = "#8cc098"
let color10 = "#cdd590"
let color11 = "#f2e590"
let color12 = "#92e2c8"
let color13 = "#c8dab8"
let color14 = "#d8f5d8"
let color15 = "#e2e3e3"
" Terminal colors
if has('nvim')
let g:terminal_color_0 = color0
let g:terminal_color_1 = color1
let g:terminal_color_2 = color2
let g:terminal_color_3 = color3
let g:terminal_color_4 = color4
let g:terminal_color_5 = color5
let g:terminal_color_6 = color6
let g:terminal_color_7 = color7
let g:terminal_color_8 = color8
let g:terminal_color_9 = color9
let g:terminal_color_10 = color10
let g:terminal_color_11 = color11
let g:terminal_color_12 = color12
let g:terminal_color_13 = color13
let g:terminal_color_14 = color14
let g:terminal_color_15 = color15
elseif has('terminal')
let g:terminal_ansi_colors = [
\ color0, color1, color2, color3,
\ color4, color5, color6, color7,
\ color8, color9, color10, color11,
\ color12, color13, color14, color15
\ ]
endif
" Basic highlight groups
exe "hi Normal guifg=" . foreground . " guibg=" . background . " ctermfg=7 ctermbg=0"
exe "hi Cursor guifg=" . background . " guibg=" . cursor . " ctermfg=0 ctermbg=7"
exe "hi CursorLine guibg=" . cursor_lines . " ctermbg=8"
exe "hi CursorColumn guibg=" . cursor_lines . " ctermbg=8"
exe "hi ColorColumn guibg=" . cursor_lines . " ctermbg=8"
exe "hi LineNr guifg=" . color8 . " ctermfg=8"
exe "hi CursorLineNr guifg=" . color7 . " ctermfg=7"
" Syntax highlighting
exe "hi Comment guifg=" . color8 . " ctermfg=8"
exe "hi String guifg=" . color2 . " ctermfg=2"
exe "hi Number guifg=" . color4 . " ctermfg=4"
exe "hi Constant guifg=" . color5 . " ctermfg=5"
exe "hi Identifier guifg=" . color7 . " ctermfg=7"
exe "hi Function guifg=" . color1 . " ctermfg=1"
exe "hi Statement guifg=" . color1 . " ctermfg=1"
exe "hi PreProc guifg=" . color5 . " ctermfg=5"
exe "hi Type guifg=" . color4 . " ctermfg=4"
exe "hi Special guifg=" . color5 . " ctermfg=5"
exe "hi Keyword guifg=" . color1 . " ctermfg=1"
exe "hi Operator guifg=" . color7 . " ctermfg=7"
" UI elements
exe "hi Visual guibg=" . color8 . " ctermbg=8"
exe "hi Search guifg=" . background . " guibg=" . color11 . " ctermfg=0 ctermbg=11"
exe "hi IncSearch guifg=" . background . " guibg=" . color3 . " ctermfg=0 ctermbg=3"
exe "hi StatusLine guifg=" . foreground . " guibg=" . color8 . " ctermfg=7 ctermbg=8"
exe "hi StatusLineNC guifg=" . color8 . " guibg=" . background . " ctermfg=8 ctermbg=0"
exe "hi VertSplit guifg=" . color8 . " ctermfg=8"
exe "hi Pmenu guifg=" . foreground . " guibg=" . color8 . " ctermfg=7 ctermbg=8"
exe "hi PmenuSel guifg=" . background . " guibg=" . color4 . " ctermfg=0 ctermbg=4"
exe "hi TabLine guifg=" . color8 . " guibg=" . background . " ctermfg=8 ctermbg=0"
exe "hi TabLineFill guibg=" . background . " ctermbg=0"
exe "hi TabLineSel guifg=" . foreground . " guibg=" . color8 . " ctermfg=7 ctermbg=8"
" Diff highlighting
exe "hi DiffAdd guifg=" . color2 . " guibg=" . background . " ctermfg=2 ctermbg=0"
exe "hi DiffChange guifg=" . color3 . " guibg=" . background . " ctermfg=3 ctermbg=0"
exe "hi DiffDelete guifg=" . color1 . " guibg=" . background . " ctermfg=1 ctermbg=0"
exe "hi DiffText guifg=" . color11 . " guibg=" . background . " ctermfg=11 ctermbg=0"
" Error and warning
exe "hi Error guifg=" . color1 . " guibg=" . background . " ctermfg=1 ctermbg=0"
exe "hi Warning guifg=" . color3 . " guibg=" . background . " ctermfg=3 ctermbg=0"
exe "hi ErrorMsg guifg=" . color1 . " ctermfg=1"
exe "hi WarningMsg guifg=" . color3 . " ctermfg=3"
" Folding
exe "hi Folded guifg=" . color8 . " guibg=" . background . " ctermfg=8 ctermbg=0"
exe "hi FoldColumn guifg=" . color8 . " guibg=" . background . " ctermfg=8 ctermbg=0"
" File explorer and tree colors
exe "hi Directory guifg=" . color4 . " ctermfg=4"
" Telescope colors
exe "hi TelescopeSelection guifg=" . color7 . " guibg=" . color8 . " ctermfg=7 ctermbg=8"
exe "hi TelescopeSelectionCaret guifg=" . color1 . " ctermfg=1"
exe "hi TelescopeMultiSelection guifg=" . color2 . " ctermfg=2"
exe "hi TelescopeNormal guifg=" . color7 . " ctermfg=7"
exe "hi TelescopeBorder guifg=" . color8 . " ctermfg=8"
exe "hi TelescopePromptBorder guifg=" . color4 . " ctermfg=4"
exe "hi TelescopeResultsBorder guifg=" . color8 . " ctermfg=8"
exe "hi TelescopePreviewBorder guifg=" . color8 . " ctermfg=8"
" LSP and diagnostic colors
exe "hi DiagnosticError guifg=" . color1 . " ctermfg=1"
exe "hi DiagnosticWarn guifg=" . color3 . " ctermfg=3"
exe "hi DiagnosticInfo guifg=" . color4 . " ctermfg=4"
exe "hi DiagnosticHint guifg=" . color8 . " ctermfg=8"

View File

@@ -1,11 +0,0 @@
@define-color background #171a18;
@define-color foreground #d4d5d5;
@define-color black #171a18;
@define-color red #7db085;
@define-color green #b8c082;
@define-color yellow #e0d480;
@define-color blue #7dd2b8;
@define-color magenta #b5c9a4;
@define-color cyan #c5e8c5;
@define-color white #d4d5d5;
@define-color bright-black #6b8071;

View File

@@ -0,0 +1,68 @@
return {
{
"ellisonleao/gruvbox.nvim",
name = "gruvbox",
-- lazy = false,
-- priority = 1000,
opts = {
terminal_colors = true, -- add neovim terminal colors
undercurl = true,
underline = true,
bold = true,
italic = {
strings = true,
emphasis = true,
comments = true,
operators = false,
folds = true,
},
strikethrough = true,
invert_selection = false,
invert_signs = false,
invert_tabline = false,
inverse = true, -- invert background for search, diffs, statuslines and errors
contrast = "", -- "hard", "soft", or ""
palette_overrides = {},
overrides = {},
dim_inactive = false,
transparent_mode = false,
},
},
{
"folke/tokyonight.nvim",
lazy = false,
priority = 1000,
opts = {
style = "night", -- "night", "storm", "moon", "day"
styles = {
functions = {} -- disable italic for functions
},
on_colors = function(colors)
colors.hint = colors.orange
colors.error = "#ff0000"
colors.fg_gutter = "#9098B8"
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,
},
}

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