Add theme-set/switching logic, and minor nvim, tmux, obsidian changes

This commit is contained in:
2025-10-30 00:03:39 -05:00
parent f8bb7bbf03
commit bd5cb81499
55 changed files with 716 additions and 182 deletions

View File

@@ -10,7 +10,7 @@
#### specific prereqs, macos #### specific prereqs, macos
- install the package manager, [homebrew](https://brew.sh/) - install the package manager, [homebrew](https://brew.sh/)
- for aerospace window manager, have only 1 workspace/desktop - for aerospace window manager, have only 1 workspace/desktop
- manual settings, refer to [ref/macos-system-settings](ref/macos-system-settings.txt) - manual settings, refer to [ref/macos-system-settings](ref/macos-system-settings.md)
-------- --------

View File

@@ -57,3 +57,5 @@ done
# sym_link "$XDG_CONFIG_HOME/REAPER" "$HOME/Library/Application Support/REAPER" # sym_link "$XDG_CONFIG_HOME/REAPER" "$HOME/Library/Application Support/REAPER"
# } # }
# set up themes and theme-switcher
./theme_config.sh

View File

@@ -2,7 +2,7 @@
linux_wm_and_utils() { linux_wm_and_utils() {
# TODO: pick wm for linux; options: dwm, i3, others? # TODO: pick wm for linux; options: dwm, i3, others?
echo "linux_wm_and_utils not yet implemented" echo "TODO: linux_wm_and_utils not yet implemented"
} }
macos_wm_and_utils() { macos_wm_and_utils() {

View File

@@ -0,0 +1,24 @@
# 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
and in general, just go through most pages/options and set them as desired

View File

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

View File

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

View File

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

View File

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

View File

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

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

View File

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

View File

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

View File

@@ -34,18 +34,15 @@ vim.keymap.set("n", "<leader>p", [["+p]])
-- search-and-replace shortcuts -- 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>rw", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]])
vim.keymap.set("n", "<leader>ra", [[:%s//g<Left><Left>]]) vim.keymap.set("n", "<leader>ra", [[:%s//gc<Left><Left><Left>]])
-- toggle expandtab and show message -- toggle expandtab and show message
vim.keymap.set("n", "<leader>tab", function() vim.keymap.set("n", "<leader>tab", function() ToggleTabsSpaces() end)
if vim.opt.expandtab:get() then
vim.opt.expandtab = false -- open scratch/tmp buffers which won't prompt for file-save
print("using actual tabs") vim.keymap.set("n", "<leader>ss", function() TmpBuff("enew") end)
else vim.keymap.set("n", "<leader>sl", function() TmpBuff("vnew") end)
vim.opt.expandtab = true vim.keymap.set("n", "<leader>sj", function() TmpBuff("new") end)
print("using spaces in place of tabs")
end
end)
-- quicker switching between panes/splits -- quicker switching between panes/splits
vim.keymap.set("n", "<C-h>", [[<C-w>h]]) vim.keymap.set("n", "<C-h>", [[<C-w>h]])
@@ -64,12 +61,16 @@ kmgAutocmd('FileType', {
}) })
------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------
-- quickfix TODO: learn about quickfix (:help quickfix), then set mappings -- quickfix and location lists
-- ref: :h quickfix or :h location-list
-- NOTE: look at :h setqflist and :h vim.diagnostic.setqflist()
-- vim.keymap.set("n", "<C-k>", "<cmd>cnext<CR>zz") vim.keymap.set("n", "<leader>qo", "<cmd>copen<CR>")
-- vim.keymap.set("n", "<C-j>", "<cmd>cprev<CR>zz") vim.keymap.set("n", "<leader>qc", "<cmd>cclose<CR>")
-- vim.keymap.set("n", "<leader>k", "<cmd>lnext<CR>zz") vim.keymap.set("n", "<leader>qn", "<cmd>cnext<CR>")
-- vim.keymap.set("n", "<leader>j", "<cmd>lprev<CR>zz") vim.keymap.set("n", "<leader>qp", "<cmd>cprev<CR>")
vim.keymap.set("n", "<leader>ln", "<cmd>lnext<CR>")
vim.keymap.set("n", "<leader>lp", "<cmd>lprev<CR>")
------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------
-- debugger and debugging ui -- debugger and debugging ui
@@ -112,18 +113,29 @@ kmgAutocmd('LspAttach', {
callback = function(e) callback = function(e)
local opts = { buffer = e.buf } local opts = { buffer = e.buf }
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts) vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts)
vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, opts) vim.keymap.set("n", "<leader>h", function() vim.lsp.buf.hover() end, opts)
vim.keymap.set("i", "<C-h>", function() vim.lsp.buf.signature_help() end, opts) vim.keymap.set("i", "<C-h>", function() vim.lsp.buf.signature_help() end, opts)
vim.keymap.set("n", "<leader>vdv", function() vim.diagnostic.open_float() end, opts) vim.keymap.set("n", "<leader>lv", 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>lq", function() vim.diagnostic.setqflist() end, opts)
vim.keymap.set("n", "<leader>vdp", function() vim.diagnostic.goto_prev() 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>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>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>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>vrn", function() vim.lsp.buf.rename() end, opts)
end 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)
------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------
-- plugins -- plugins
@@ -138,6 +150,10 @@ vim.keymap.set('n', '<leader>ff', tscBuiltin.find_files, { desc = 'tscope find f
vim.keymap.set('n', '<leader>fg', tscBuiltin.git_files, { desc = 'tscope find git-tracked files' }) vim.keymap.set('n', '<leader>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>fb', tscBuiltin.buffers, { desc = 'tscope buffers' })
vim.keymap.set('n', '<leader>fh', tscBuiltin.help_tags, { desc = 'tscope help tags' }) 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 -- harpoon
local harpoon = require("harpoon") local harpoon = require("harpoon")
@@ -146,18 +162,10 @@ 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>hA", function() harpoon:list():prepend() end)
vim.keymap.set("n", "<leader>hn", function() harpoon:list():next() 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>hp", function() harpoon:list():prev() end)
for i = 1, 10, 1 do
vim.keymap.set("n", "<leader>hz", function() harpoon:list():select(1) end) vim.keymap.set("n", "<leader>" .. (i % 10), function() harpoon:list():select(i) end)
vim.keymap.set("n", "<leader>hx", function() harpoon:list():select(2) end) vim.keymap.set("n", "<leader>h" .. (i % 10), function() harpoon:list():replace_at(i) end)
vim.keymap.set("n", "<leader>hc", function() harpoon:list():select(3) end) 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 -- undotree
vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle) vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle)
@@ -165,13 +173,6 @@ vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle)
-- treesitter and treesitter-context -- treesitter and treesitter-context
vim.keymap.set("n", "<leader>tc", function() vim.cmd.TSContext({ "toggle" }) end) 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) -- conform (formatter)
vim.keymap.set("n", "<leader>fmt", function() vim.keymap.set("n", "<leader>fmt", function()
require("conform").format({ bufnr = 0 }) require("conform").format({ bufnr = 0 })

View File

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

View File

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

View File

@@ -40,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() -- local treesitter_parser_config = require("nvim-treesitter.parsers").get_parser_configs()
-- treesitter_parser_config.templ = { -- treesitter_parser_config.templ = {
-- install_info = { -- install_info = {
@@ -53,21 +53,22 @@ return {
-- vim.treesitter.language.register("templ", "templ") -- vim.treesitter.language.register("templ", "templ")
end end
}, },
{ -- {
"nvim-treesitter/nvim-treesitter-context", -- -- TODO: decide if needed/wanted
after = "nvim-treesitter", -- "nvim-treesitter/nvim-treesitter-context",
opts = { -- after = "nvim-treesitter",
enable = false, -- can enable/disable via manual command -- opts = {
multiwindow = false, -- enable = false, -- can enable/disable via manual command
max_lines = 0, -- lines the window should span; x <= 0 means no limit -- multiwindow = false,
min_window_height = 10, -- min window height to enable; x <= 0 means no limit -- max_lines = 0, -- lines the window should span; x <= 0 means no limit
line_numbers = true, -- min_window_height = 10, -- min window height to enable; x <= 0 means no limit
multiline_threshold = 40, -- max lines to show for a single context -- line_numbers = true,
trim_scope = 'outer', -- 'inner', 'outer'; discard lines if max_lines exceeded -- multiline_threshold = 40, -- max lines to show for a single context
mode = 'cursor', -- 'cursor', 'topline'; line used to calculate context -- trim_scope = 'outer', -- 'inner', 'outer'; discard lines if max_lines exceeded
separator = "-", -- 1 char, like '-'; only shown when >= 2 lines above -- mode = 'cursor', -- 'cursor', 'topline'; line used to calculate context
zindex = 20, -- z-index of the context window -- separator = "-", -- 1 char, like '-'; only shown when >= 2 lines above
on_attach = nil, -- (fun(buf: integer): boolean); return false to disable attaching -- zindex = 20, -- z-index of the context window
}, -- on_attach = nil, -- (fun(buf: integer): boolean); return false to disable attaching
}, -- },
-- },
} }

View File

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

View File

@@ -0,0 +1,34 @@
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,6 +13,7 @@
"showUnsupportedFiles": true, "showUnsupportedFiles": true,
"attachmentFolderPath": "inbox", "attachmentFolderPath": "inbox",
"showInlineTitle": false, "showInlineTitle": false,
"readableLineLength": false, "readableLineLength": true,
"strictLineBreaks": true,
"livePreview": false "livePreview": false
} }

View File

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

View File

@@ -1,37 +1,17 @@
{ {
"markdown:toggle-preview": [ "markdown:toggle-preview": [
{ { "modifiers": [ "Ctrl", "Shift" ], "key": "R" }
"modifiers": [
"Ctrl",
"Shift"
],
"key": "R"
}
], ],
"switcher:open": [ "switcher:open": [
{ { "modifiers": [ "Ctrl" ], "key": "F" }
"modifiers": [
"Ctrl"
],
"key": "F"
}
], ],
"app:toggle-left-sidebar": [ "app:toggle-left-sidebar": [
{ { "modifiers": [ "Ctrl", "Shift" ], "key": "D" }
"modifiers": [
"Ctrl",
"Shift"
],
"key": "D"
}
], ],
"app:toggle-right-sidebar": [ "app:toggle-right-sidebar": [
{ { "modifiers": [ "Ctrl", "Shift" ], "key": "F" }
"modifiers": [ ],
"Ctrl", "file-explorer:reveal-active-file": [
"Shift" { "modifiers": [ "Ctrl", "Shift" ], "key": "N" }
],
"key": "F"
}
] ]
} }

View File

@@ -1,10 +1,5 @@
# list of built-in keywords at https://github.com/koekeishiya/skhd/issues/1 # ref: built-in keywords, 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
########################################################################################## ctrl + shift - h : $(which skhd) -k "ctrl + shift - tab"
# key bindings for general use ctrl + shift - l : $(which skhd) -k "ctrl - tab"
ctrl - h : $(which skhd) -k "ctrl + shift - tab"
ctrl - l : $(which skhd) -k "ctrl - tab"

View File

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

View File

@@ -4,7 +4,7 @@ set -s escape-time 0
unbind C-b unbind C-b
set-option -g prefix C-Space set-option -g prefix C-Space
bind-key C-Space send-prefix bind-key C-Space send-prefix
set -g status-style 'bg=#111111 fg=#22cc00' source-file "$XDG_CONFIG_HOME/tmux/theme.conf"
set -g base-index 0 set -g base-index 0
# unbind keys # unbind keys

View File

@@ -1,7 +1,7 @@
# default programs # default programs
export BROWSER='brave' export BROWSER='brave'
export EDITOR='nvim' export EDITOR='nvim'
export TERMINAL='ghostty' export TERMINAL='kitty'
# env vars used for my organization structure # env vars used for my organization structure
export DIR_HOME_BOX="$HOME/dbox" export DIR_HOME_BOX="$HOME/dbox"
@@ -27,7 +27,7 @@ export XDG_DATA_DIRS="/usr/local/share:/usr/share"
#export XDG_CONFIG_DIRS="/etc/xdg" # TODO: does this work on macOS? #export XDG_CONFIG_DIRS="/etc/xdg" # TODO: does this work on macOS?
# directory for theme/style stuff # directory for theme/style stuff
export DIR_THEME_SETTINGS="$XDG_CONFIG_HOME/this-box-theme" export DIR_THEME_SETTINGS="$XDG_CONFIG_HOME/zz-this-box/themes"
# zsh # zsh
export ZDOTDIR="$XDG_CONFIG_HOME/zsh" # may already be set, set anyway export ZDOTDIR="$XDG_CONFIG_HOME/zsh" # may already be set, set anyway
@@ -39,10 +39,10 @@ export GIT_EDITOR="$EDITOR"
export OBSIDIAN_WORKSPACES_TO_CONFIGURE=("$DIR_NOTES") export OBSIDIAN_WORKSPACES_TO_CONFIGURE=("$DIR_NOTES")
# reaper # reaper
DIR_REAPER_PORTABLE_SHARED="$DIR_USER_OPT/reaper-portable/shared" export DIR_REAPER_PORTABLE_SHARED="$DIR_USER_OPT/reaper-portable/shared"
DIR_REAPER_PORTABLE_LINUX="$DIR_USER_OPT/reaper-portable/linux" export DIR_REAPER_PORTABLE_LINUX="$DIR_USER_OPT/reaper-portable/linux"
DIR_REAPER_PORTABLE_MACOS="$DIR_USER_OPT/reaper-portable/macos" export DIR_REAPER_PORTABLE_MACOS="$DIR_USER_OPT/reaper-portable/macos"
# clean-up of home dir # clean-up of home dir
export __CF_USER_TEXT_ENCODING="0x0:0x0" export __CF_USER_TEXT_ENCODING="0x0:0x0" # TODO: does this actually accomplish anything?

View File

@@ -12,8 +12,9 @@ alias cl='clear; '
alias cls='clear;ls' alias cls='clear;ls'
# shortcuts for executables # shortcuts for executables
alias nv='nvim'
alias n='nvim' alias n='nvim'
alias nv='nvim'
alias ths='theme-set'
alias tms='tmux-session-init' alias tms='tmux-session-init'
# executable overrides # executable overrides

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

After

Width:  |  Height:  |  Size: 243 KiB

View File

@@ -0,0 +1,34 @@
#!/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
##########################################################################################
[[ ! -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: implement
# theme-update-browser # TODO: implement
# theme-update-reaper # TODO: implement
theme-update-system-monitor # TODO: do i actually want this? or just use htop monochrome mode and let it use terminal colors
# theme-update-gimp # TODO: possible and actually desired? my main use case is just a blackboard, maybe let it be
# theme-update-mutt # TODO: possible and actually desired?
# theme-update-irc # TODO: possible and actually desired?
theme-update-wallpaper &

View File

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

View File

@@ -0,0 +1,7 @@
#!/bin/zsh
# TODO: htop even possible? maybe can change what colors it sees from terminal itself
# pkill -SIGUSR1 htop
# pkill -SIGUSR2 htop
pkill -SIGUSR2 btop

View File

@@ -0,0 +1,18 @@
#!/bin/zsh
theme_update_havoc() {
echo "TODO: theme_update_havoc not yet implemented"
}
theme_update_kitty() {
killall -SIGUSR1 kitty
}
case "$TERMINAL" in
("havoc")
theme_update_havoc
;;
("kitty")
theme_update_kitty
;;
esac

View File

@@ -0,0 +1,3 @@
#!/bin/zsh
tmux source-file $DIR_THEME_SETTINGS/.current-theme/tmux.conf

View File

@@ -0,0 +1,26 @@
#!/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
)
}
# TODO: decide if and how to make this work for cycling through wallpapers per theme
wallpaper_dir=$DIR_THEME_SETTINGS/.current-theme/wallpaper
image_paths=($(find $wallpaper_dir -type f | sort)) 2> /dev/null
target_wallpaper=${image_paths[@]:0:1}
[[ -z $target_wallpaper ]] && exit 0
[[ "$OSTYPE" = *"darwin"* ]] && set_wallpaper_macos $target_wallpaper ||
set_wallpaper_linux $target_wallpaper

View File

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

After

Width:  |  Height:  |  Size: 434 KiB

View File

@@ -0,0 +1,13 @@
## original name chromium.theme (under gruvbox theme directory)
## author: David Heinemeier Hansson
## copyright: David Heinemeier Hansson
## license: MIT
## upstream: https://github.com/basecamp/omarchy/blob/master/themes/gruvbox/chromium.theme
# # 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
##########################################################################################
40,40,40

View File

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

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

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

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

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

View File

@@ -0,0 +1,13 @@
## original name chromium.theme (under osaka-jade theme directory)
## author: David Heinemeier Hansson
## copyright: David Heinemeier Hansson
## license: MIT
## upstream: https://github.com/basecamp/omarchy/blob/master/themes/osaka-jade/chromium.theme
# # 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
##########################################################################################
17,34,28

View File

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

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

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

@@ -0,0 +1,15 @@
/*
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;

32
theme_config.sh Executable file
View File

@@ -0,0 +1,32 @@
#!/bin/zsh
sym_link() {
[[ ! -e "$1" ]] && echo "skipping link, target does not exist: $1" && return
[[ -h "$2" ]] && rm $2
[[ -f "$2" || -d "$2" ]] && rm -rf $2
ln -s $1 $2
}
echo "---- configuring themes ----------------"
source src_files/.config/zsh/.zshenv
# merge in the theme-files from Omarchy which i want to use
omarchy_themes=(`find src_files/imports/themes-omarchy -mindepth 1 -maxdepth 1 -type d`)
for dir in $omarchy_themes; do
target_theme_dir="$DIR_THEME_SETTINGS/$(basename $dir)"
[[ ! -d "$target_theme_dir/wallpaper" ]] && mkdir -p "$target_theme_dir/wallpaper"
dir_theme_files=(`find $dir -mindepth 1 -maxdepth 1 -type f`)
for f in $dir_theme_files; do cp -RPp $f $target_theme_dir/; done
[[ -d "$dir/backgrounds" ]] && cp -RPp $dir/backgrounds/* $target_theme_dir/wallpaper/
done
# set links for theme-switching and set default theme
default_theme="tokyodark"
sym_link $DIR_THEME_SETTINGS/$default_theme $DIR_THEME_SETTINGS/.current-theme
sym_link $DIR_THEME_SETTINGS/.current-theme/kitty.conf $XDG_CONFIG_HOME/kitty/theme.conf
sym_link $DIR_THEME_SETTINGS/.current-theme/tmux.conf $XDG_CONFIG_HOME/tmux/theme.conf
sym_link $DIR_THEME_SETTINGS/.current-theme/neovim.lua $XDG_CONFIG_HOME/nvim/current-theme
sym_link $DIR_THEME_SETTINGS/.current-theme/btop.theme $XDG_CONFIG_HOME/btop/themes/theme.theme
# TODO: finish theme work, set needed links per theme-set script
$DIR_SCRIPTS/theme-set $default_theme