Added WezTerm, updated OMP theme's coffee cup glyph

Not using the Home Manager module to manage WezTerm due to using
Homebrew to install it on macOS.

Large parts of this came from Gemini but little bits here and there also
came from ChatGPT and Claude (aka whatever I could use at the moment).

Co-authored-by: Gemini <gemini@google.com>
Co-authored-by: ChatGPT <chatgpt@openai.com>
Co-authored-by: Claude <claude@anthropic.com>
This commit is contained in:
Gene Liverman 2026-04-07 15:48:34 -04:00
parent 9bd4265094
commit d65a11ef8f
Signed by: genebean
SSH key fingerprint: SHA256:ZjLMZwtU49BWDoI2hgsA0/Q6XT4+S0kcKFWW1EJBicI
5 changed files with 200 additions and 3 deletions

6
flake.lock generated
View file

@ -261,11 +261,11 @@
"genebean-omp-themes": { "genebean-omp-themes": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1736539337, "lastModified": 1775590646,
"narHash": "sha256-TBq4+E6n3t3a85FyP/4sLYFf+644rkMZ+Cn+xAj9f0k=", "narHash": "sha256-0kr+6Kgb6W6aRYXewqna+Qpq7PF7g5wq7rwEy6k+i2E=",
"owner": "genebean", "owner": "genebean",
"repo": "my-oh-my-posh-themes", "repo": "my-oh-my-posh-themes",
"rev": "89fedccc7177301c0d5660af0f809d01a25ebf4e", "rev": "f93d5921f624ac9a3416807a43c13918f945d5d2",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -91,6 +91,7 @@
"transmission" "transmission"
"visual-studio-code" "visual-studio-code"
"vivaldi" "vivaldi"
"wezterm"
"zoom" "zoom"
]; ];
masApps = { masApps = {

View file

@ -28,4 +28,6 @@
local_private_env.path = "${config.home.homeDirectory}/.private-env"; local_private_env.path = "${config.home.homeDirectory}/.private-env";
}; };
}; };
xdg.configFile."wezterm/wezterm.lua".source = ../../shared/files/wezterm/wezterm.lua;
} }

View file

@ -0,0 +1,191 @@
local wezterm = require 'wezterm'
local config = wezterm.config_builder()
-- ==========================================
-- Environment Checks
-- ==========================================
local is_mac = wezterm.target_triple:find('darwin') ~= nil
local is_kde = os.getenv('XDG_CURRENT_DESKTOP') == 'KDE'
-- ==========================================
-- 1. Font & Core UI
-- ==========================================
config.font = wezterm.font('Hack Nerd Font')
config.font_size = 13.0
config.window_decorations = "RESIZE" -- Removes the bulky macOS title bar
config.bold_brightens_ansi_colors = false
config.enable_scroll_bar = true
-- ==========================================
-- 2. Window Appearance (OS Specific)
-- ==========================================
if is_mac then
config.macos_window_background_blur = 10
config.window_background_opacity = 0.87
elseif is_kde then
config.kde_window_background_blur = true
config.window_background_opacity = 0.87
else
-- Non-KDE Linux settings (less opacity to offset lack of blur)
config.window_background_opacity = 0.94
end
-- ==========================================
-- 3. Tabs & Window Frame
-- ==========================================
config.enable_tab_bar = true
config.use_fancy_tab_bar = true
config.hide_tab_bar_if_only_one_tab = false
-- Title bar background options (Frames the fancy tab bar)
-- local titlebar_bg = '#2E4224' -- Rich Moss
-- local titlebar_bg = '#6E5A2A' -- Antique Brass
local titlebar_bg = '#968841' -- Chalky Mustard
config.window_frame = {
active_titlebar_bg = titlebar_bg,
inactive_titlebar_bg = titlebar_bg,
}
config.colors = {
tab_bar = {
-- Note: We intentionally omit the empty space 'background' color here
-- because 'use_fancy_tab_bar = true' handles it via config.window_frame above.
active_tab = {
bg_color = '#C48DFF',
fg_color = '#07042B',
},
inactive_tab = {
bg_color = '#3A2653',
fg_color = '#E3E3EA',
},
inactive_tab_hover = {
bg_color = '#583B7D',
fg_color = '#FFFFFF',
},
},
}
-- ==========================================
-- 4. Color Schemes
-- ==========================================
config.color_schemes = {
['Beanbag-iTerm2'] = {
background = '#000000',
foreground = '#E3E3EA',
cursor_bg = '#FF7F7F',
cursor_fg = '#07042B',
cursor_border = '#FF7F7F',
selection_bg = '#B5D5FF',
selection_fg = '#000000',
ansi = {
'#000000', -- black
'#BB0000', -- red
'#55FF55', -- green (Bright Neon Green)
'#FFD75F', -- yellow
'#5EA1FF', -- blue (Sky Blue)
'#BB00BB', -- magenta
'#55FFFF', -- cyan (Bright Neon Cyan)
'#BBBBBB', -- white
},
brights = {
'#555555', -- bright black
'#FF5555', -- bright red
'#55FF55', -- bright green
'#FFFF55', -- bright yellow
'#82AAFF', -- bright blue (Pastel Blue)
'#FF55FF', -- bright magenta
'#55FFFF', -- bright cyan
'#FFFFFF', -- bright white
},
split = '#5EA1FF', -- Sky Blue from ansi color list above
scrollbar_thumb = '#C48DFF'
},
['Beanbag-Mathias'] = {
foreground = '#E3E3EA',
background = '#07042B',
cursor_bg = '#FF7F7F',
cursor_fg = '#07042B',
cursor_border = '#FF7F7F',
selection_bg = '#7DF9FF',
selection_fg = '#07042B',
ansi = {
'#000000', -- black
'#E52222', -- red
'#55FF55', -- green
'#FC951E', -- yellow
'#C48DFF', -- blue
'#FA2573', -- magenta
'#7DF9FF', -- cyan (Electric Ice)
'#F2F2F2', -- white
},
brights = {
'#555555', -- bright black
'#FF5555', -- bright red
'#55FF55', -- bright green
'#FFFF55', -- bright yellow
'#6CB6FF', -- bright blue (Icy Sky)
'#FF55FF', -- bright magenta
'#7DF9FF', -- bright cyan (Electric Ice)
'#FFFFFF', -- bright white
},
split = '#968841', -- Matches the Chalky Mustard title bar
scrollbar_thumb = '#C48DFF'
},
}
-- Default Scheme
config.color_scheme = 'Beanbag-Mathias'
-- ==========================================
-- 5. Keybindings & Events
-- ==========================================
wezterm.on('set-scheme-iterm2', function(window)
window:set_config_overrides({ color_scheme = 'Beanbag-iTerm2' })
end)
wezterm.on('set-scheme-mathias', function(window)
window:set_config_overrides({ color_scheme = 'Beanbag-Mathias' })
end)
config.keys = {
{
key = '1',
mods = 'CTRL|ALT',
action = wezterm.action.EmitEvent('set-scheme-iterm2'),
},
{
key = '2',
mods = 'CTRL|ALT',
action = wezterm.action.EmitEvent('set-scheme-mathias'),
},
-- ==========================================
-- iTerm2 Pane Splitting
-- ==========================================
{
-- Cmd+d to split to the right
key = 'd',
mods = 'CMD',
action = wezterm.action.SplitHorizontal { domain = 'CurrentPaneDomain' },
},
{
-- Cmd+Shift+d to split below
key = 'd', -- Note: use lowercase 'd' here, WezTerm reads the SHIFT modifier
mods = 'CMD|SHIFT',
action = wezterm.action.SplitVertical { domain = 'CurrentPaneDomain' },
},
}
return config

View file

@ -3,9 +3,12 @@
home.packages = with pkgs; [ home.packages = with pkgs; [
esptool esptool
]; ];
programs = { programs = {
git.settings.aliases = { git.settings.aliases = {
kraken = "!gitkraken -p $(cd \"\${1:-.}\" && git rev-parse --show-toplevel)"; kraken = "!gitkraken -p $(cd \"\${1:-.}\" && git rev-parse --show-toplevel)";
}; };
}; };
xdg.configFile."wezterm/wezterm.lua".source = ../../files/wezterm/wezterm.lua;
} }