Compare commits

...

3 Commits

20 changed files with 297 additions and 43 deletions

View File

@@ -12,22 +12,34 @@
- for aerospace window manager, have only 1 workspace/desktop
- 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
- complete manual actions specified in [ref/post-run](ref/post-run.md)
------------------------------------------------------------------------------------------
--------
### todo items
- choose window manager for linux, then configure
- config for: terminal (ghostty); shell; mpd, mpc, ncmpcpp; mpv
- config for: terminal (kitty? havoc?); shell; mpd, mpc, ncmpcpp; mpv
- 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?
- switch installation approach, use csv file with programs to install, install types,
any extra flags/opts, comments
- regarding the system-types idea i'd started to build in already, maybe have a
column for filtering in the csv file, or just have multiple csv files corresponding
to a base/core install, a music-studio install, a employer/work machine, etc.
- alternate idea: columns for "include_in_systems" and/or "excluded_from_systems"
- if both, likely apply the include column first, then the exclude (priority)
- add command in tmux to perform cd to a given dir in all windows of the current session

View File

@@ -7,6 +7,8 @@
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

@@ -28,7 +28,7 @@ scripts_from_dir=($(find_scripts_in_dir "./installs_and_builds"))
scripts_from_dir+=($(find_scripts_in_dir "./installs_and_builds/work_placeholder"))
}
echo "---- installing programs ---------------------------------------------"
echo "---- installing programs ---------------"
echo "-------- for system types: $system_types_list"
install_scripts_from_list "${scripts_from_dir[@]}"

View File

@@ -1,16 +1,18 @@
#!/bin/zsh
# likely on unix systems already: find xargs grep sed awk
# likely on unix systems already: find, xargs, awk? (maybe get alternative like nawk?)
${=BOX_SETUP_INSTALL_COMMAND} \
curl \
grep \
ripgrep \
sed \
fzf \
jq \
parallel \
fzf \
make \
cmake \
gettext \
grep \
ripgrep
htop
utils_package_name_pandoc="pandoc"
case $BOX_SETUP_DISTRO in

View File

@@ -1,5 +1,6 @@
#!/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
@@ -23,6 +24,8 @@ 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,3 +1,12 @@
# Manual steps needed after dotfile copy and/or installs
currently none, wooooo
## macOS
- skhd
- run `skhd --start-service`
- grant skhd permission in accessibility settings
- run `skhd --restart-service`
- aerospace
- grant aerospace permission in accessibility settings
- likely need system reboot before aerospace works

View File

@@ -4,20 +4,20 @@
idea from the ThePrimeagen: designated workspace/label/desktop per app/purpose
### current layout/plan
### current layout
| workspace number | wm layout/mode |
|--------------------------------------------------------------|------------------------|
| 1. notes (stack: nvim, obsidian) | stack |
| 2. music makeing - misc | stack |
| 3. music making - daw | floating (workaround) |
| 4. drawing (currently: gimp) | stack |
| 5. music/audio listening | stack |
| 6. comms (stack: emails, chats, av/calls) | stack |
| 7. web browser | stack |
| 8. terminal (primary; one-offs & tui apps can be anywhere) | stack |
| 9. programming - misc (whatever is not in terminal) | stack |
| 0. general - misc (catch-all) | stack |
| key | app/focus |
|-----|-----------|
| 1. | 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) |
### ideas/guidelines:
- use this consistently accross all machines

View File

@@ -0,0 +1,83 @@
#? Config file for btop v. 1.4.5
vim_keys = True # shift+h help, shift+k kill
log_level = "WARNING" #* opt: ERROR, WARNING, INFO, DEBUG
update_ms = 4000
show_battery = True
selected_battery = "Auto"
show_battery_watts = True
color_theme = "~/.config/btop/themes/theme.theme"
theme_background = False #* True: show theme background, False: needed for transparency
truecolor = True
rounded_corners = False
force_tty = False
#* graph options: default, block, tty, braille
graph_symbol = "braille"
graph_symbol_cpu = "default"
graph_symbol_mem = "default"
graph_symbol_net = "default"
graph_symbol_proc = "default"
#* presets boxname:pos:graph - pos (0, 1), graph (default, block, tty, braille)
presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
shown_boxes = "proc mem net cpu" # opt: cpu mem net proc gpu0 gpu1 gpu2 gpu3 gpu4 gpu5
proc_sorting = "cpu lazy"
proc_reversed = False
proc_left = True
proc_tree = False
proc_colors = True #* cpu graph colors in proc list
proc_gradient = False
proc_per_core = False
proc_mem_bytes = True
proc_cpu_graphs = False
proc_info_smaps = False #* /proc/[pid]/smaps for proc memory info, accurate but slow
proc_filter_kernel = False
proc_aggregate = False #* aggregate child procs under parent in tree view
cpu_graph_upper = "user" #* opt: Auto, total, idle, system, user (maybe others per system)
cpu_graph_lower = "total"
cpu_invert_lower = False
cpu_single_graph = False
cpu_bottom = False
show_uptime = True
show_cpu_watts = True #* requires `make setcap`, `make setuid`, or sudo
check_temp = True
cpu_sensor = "Auto"
show_coretemp = True
cpu_core_map = "" #* form x:y x:y, x is core with wrong temp, y is core with correct temp
temp_scale = "celsius" #* opt: celsius, fahrenheit, kelvin, rankine
base_10_sizes = False #* False to use KiB = 1024, True to use KB = 1000
show_cpu_freq = True
clock_format = "%H /host"
background_update = True #* set False if menu flicker
custom_cpu_name = ""
#* disks_filter: mountpoint full paths; can prepend exclude= to show all non-matches
disks_filter = ""
mem_graphs = True #* True for graphs, False for meters
mem_below_net = False #* mem box below net box
zfs_arc_cached = True #* cached and available mem include ZFS ARC
show_swap = True
swap_disk = True #* swap as a disk, overrides show_swap setting
show_disks = True
only_physical = True #* True for physical disks only, False includes network/RAM/etc
use_fstab = True #* disks from /etc/fstab, overrides only_physical value
zfs_hide_datasets = False #* hide datasets and show zfs pools instead
disk_free_priv = False #* show free space for privileged users
show_io_stat = True
io_mode = False #* show big graphs for disk read/write
io_graph_combined = False #* graph shows combined read/write
io_graph_speeds = "" #* graph top speed in MiB/s (default 100), format "mountpoint:speed"
net_download = 100 #* network graph fixed values, Mebibits, only used if net_auto False
net_upload = 100
net_auto = True #* graph auto rescaling mode, ignores net_download and net_upload values
net_sync = True #* sync download/upload, auto scale to highest
net_iface = "" #* start with this interface
base_10_bitrate = "Auto"

View File

@@ -0,0 +1 @@
placeholder, will be replaced with symlink during copy_dotfiles.sh

View File

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

View File

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

View File

@@ -0,0 +1,54 @@
# Beware! This file is rewritten by htop when settings are changed in the interface.
# The parser is also very primitive, and not human-friendly.
htop_version=3.4.1
config_reader_min_version=3
fields=0 48 17 18 38 39 2 46 47 49 1
hide_kernel_threads=1
hide_userland_threads=0
hide_running_in_container=0
shadow_other_users=0
show_thread_names=0
show_program_path=1
highlight_base_name=0
highlight_deleted_exe=1
shadow_distribution_path_prefix=0
highlight_megabytes=1
highlight_threads=1
highlight_changes=0
highlight_changes_delay_secs=5
find_comm_in_cmdline=1
strip_exe_from_cmdline=1
show_merged_command=0
header_margin=1
screen_tabs=1
detailed_cpu_time=0
cpu_count_from_one=0
show_cpu_usage=1
show_cpu_frequency=0
show_cached_memory=1
update_process_names=0
account_guest_in_cpu_meter=0
color_scheme=1
enable_mouse=1
delay=40
hide_function_bar=0
header_layout=two_50_50
column_meters_0=Battery DateTime Hostname System Uptime Blank AllCPUs2 AllCPUs8 Blank
column_meter_modes_0=1 2 2 2 2 2 1 3 2
column_meters_1=Tasks LoadAverage Blank Memory Swap MemorySwap Blank DiskIO FileDescriptors Blank NetworkIO NetworkIO
column_meter_modes_1=2 2 2 1 1 3 2 2 2 2 2 3
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

@@ -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 selected lines up or down
-- move visually-selected lines up or down
vim.keymap.set("v", "J", ":m '>+1<CR>gv")
vim.keymap.set("v", "K", ":m '<-2<CR>gv")
-- 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")
-- 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")
-- 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", "ma=ap'a")
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({ "n", "v" }, "<leader>d", [["_d]])
vim.keymap.set("x", "<leader>P", [["_dP]]) -- replace selected text, keep main register
-- shortcuts for using + register (system clipboard)
@@ -52,9 +52,19 @@ 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 TODO: learn about quickfix (:help quickfix), then maybe use these
-- quickfix TODO: learn about quickfix (:help quickfix), then set mappings
-- vim.keymap.set("n", "<C-k>", "<cmd>cnext<CR>zz")
-- vim.keymap.set("n", "<C-j>", "<cmd>cprev<CR>zz")
@@ -71,14 +81,17 @@ 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").toggle()
dap.terminate() require("dapui").close() require("nvim-dap-virtual-text").disable()
end, { desc = "debug: quit debugger" })
-- TODO: decide if i want these or others, add if so
@@ -121,8 +134,8 @@ 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>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>fg', tscBuiltin.git_files, { desc = 'tscope find git-tracked files' })
vim.keymap.set('n', '<leader>fb', tscBuiltin.buffers, { desc = 'tscope buffers' })
vim.keymap.set('n', '<leader>fh', tscBuiltin.help_tags, { desc = 'tscope help tags' })
@@ -133,14 +146,18 @@ vim.keymap.set("n", "<leader>ha", function() harpoon:list():add() end)
vim.keymap.set("n", "<leader>hA", function() harpoon:list():prepend() end)
vim.keymap.set("n", "<leader>hn", function() harpoon:list():next() end)
vim.keymap.set("n", "<leader>hp", function() harpoon:list():prev() end)
vim.keymap.set("n", "<leader>hz", function() harpoon:list():select(1) end)
vim.keymap.set("n", "<leader>hx", function() harpoon:list():select(2) end)
vim.keymap.set("n", "<leader>hc", function() harpoon:list():select(3) end)
vim.keymap.set("n", "<leader>hv", function() harpoon:list():select(4) end)
vim.keymap.set("n", "<leader>hb", function() harpoon:list():select(5) end)
vim.keymap.set("n", "<leader>hZ", function() harpoon:list():replace_at(1) end)
vim.keymap.set("n", "<leader>hX", function() harpoon:list():replace_at(2) end)
vim.keymap.set("n", "<leader>hC", function() harpoon:list():replace_at(3) end)
vim.keymap.set("n", "<leader>hV", function() harpoon:list():replace_at(4) end)
vim.keymap.set("n", "<leader>hB", function() harpoon:list():replace_at(5) end)
-- undotree
vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle)

View File

@@ -70,4 +70,8 @@ return {
require('bamboo').load()
end,
},
{
dir = os.getenv('DIR_GIT_PROJECTS') .. "/other/omarchy-pina-theme/pina.nvim",
name = "pina",
},
}

View File

@@ -119,10 +119,5 @@ 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

@@ -1,3 +1,7 @@
return {
"mbbill/undotree",
config = function()
vim.g.undotree_SplitWidth = 41
vim.g.undotree_DiffpanelHeight = 14
end,
}

View File

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

View File

@@ -0,0 +1,18 @@
.custom-frames-frame,
.view-header,
.view-header-title-container,
.workspace-leaf,
.is-focused .workspace-leaf.mod-active .view-header,
.workspace-split.mod-root,
.workspace-split.mod-root .view-content,
.workspace-split.mod-root .view-header,
.workspace-tab-header-container {
background: transparent !important;
}
.app-container {
background: rgba(0, 0, 0, 0.7) !important;
}
svg.canvas-background {
display: none !important;
}

View File

@@ -5,10 +5,10 @@ export TERMINAL='ghostty'
# env vars used for my organization structure
export DIR_HOME_BOX="$HOME/dbox"
export DIR_MUSIC="$DIR_HOME_BOX/media/music"
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"
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,6 +26,9 @@ 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/this-box-theme"
# zsh
export ZDOTDIR="$XDG_CONFIG_HOME/zsh" # may already be set, set anyway

View File

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