wezterm light theme
This commit is contained in:
81
wezterm/.config/wezterm/theme/bearded-arc-light.lua
Normal file
81
wezterm/.config/wezterm/theme/bearded-arc-light.lua
Normal file
@@ -0,0 +1,81 @@
|
||||
-- Bearded Arc (Light)
|
||||
-- Hand-tuned light variant with warm off-white bg and saturated accents
|
||||
|
||||
local M = {}
|
||||
|
||||
M.palette = {
|
||||
base = '#faf4ed',
|
||||
overlay = '#f0e8df',
|
||||
muted = '#7a8598',
|
||||
text = '#2a2a2a',
|
||||
red = '#d1344f',
|
||||
yellow = '#b8890f',
|
||||
orange = '#c45a1c',
|
||||
green = '#1e9b52',
|
||||
cyan = '#1a7db5',
|
||||
purple = '#7b4fc4',
|
||||
highlight = '#5a6a7a',
|
||||
}
|
||||
|
||||
local active_tab = {
|
||||
bg_color = M.palette.overlay,
|
||||
fg_color = M.palette.text,
|
||||
}
|
||||
|
||||
local inactive_tab = {
|
||||
bg_color = M.palette.base,
|
||||
fg_color = M.palette.muted,
|
||||
}
|
||||
|
||||
function M.colors()
|
||||
return {
|
||||
foreground = M.palette.text,
|
||||
background = M.palette.base,
|
||||
cursor_bg = M.palette.yellow,
|
||||
cursor_border = M.palette.yellow,
|
||||
cursor_fg = M.palette.base,
|
||||
selection_bg = '#d8d0c6',
|
||||
selection_fg = M.palette.text,
|
||||
|
||||
ansi = {
|
||||
M.palette.overlay,
|
||||
M.palette.red,
|
||||
M.palette.green,
|
||||
M.palette.yellow,
|
||||
M.palette.cyan,
|
||||
M.palette.purple,
|
||||
M.palette.orange,
|
||||
M.palette.text,
|
||||
},
|
||||
|
||||
brights = {
|
||||
M.palette.muted,
|
||||
M.palette.red,
|
||||
M.palette.green,
|
||||
M.palette.yellow,
|
||||
M.palette.cyan,
|
||||
M.palette.purple,
|
||||
M.palette.orange,
|
||||
M.palette.text,
|
||||
},
|
||||
|
||||
tab_bar = {
|
||||
background = M.palette.base,
|
||||
active_tab = active_tab,
|
||||
inactive_tab = inactive_tab,
|
||||
inactive_tab_hover = active_tab,
|
||||
new_tab = inactive_tab,
|
||||
new_tab_hover = active_tab,
|
||||
inactive_tab_edge = M.palette.muted,
|
||||
},
|
||||
}
|
||||
end
|
||||
|
||||
function M.window_frame()
|
||||
return {
|
||||
active_titlebar_bg = M.palette.base,
|
||||
inactive_titlebar_bg = M.palette.base,
|
||||
}
|
||||
end
|
||||
|
||||
return M
|
||||
81
wezterm/.config/wezterm/theme/bearded-arc.lua
Normal file
81
wezterm/.config/wezterm/theme/bearded-arc.lua
Normal file
@@ -0,0 +1,81 @@
|
||||
-- Bearded Arc (Dark)
|
||||
-- Based on: https://github.com/BeardedBear/bearded-theme
|
||||
|
||||
local M = {}
|
||||
|
||||
M.palette = {
|
||||
base = '#1c2433',
|
||||
overlay = '#212a3b',
|
||||
muted = '#4a5e84',
|
||||
text = '#afbbd2',
|
||||
red = '#FF738A',
|
||||
yellow = '#EACD61',
|
||||
orange = '#FF955C',
|
||||
green = '#3CEC85',
|
||||
cyan = '#69C3FF',
|
||||
purple = '#B78AFF',
|
||||
highlight = '#8196b5',
|
||||
}
|
||||
|
||||
local active_tab = {
|
||||
bg_color = M.palette.overlay,
|
||||
fg_color = M.palette.text,
|
||||
}
|
||||
|
||||
local inactive_tab = {
|
||||
bg_color = M.palette.base,
|
||||
fg_color = M.palette.muted,
|
||||
}
|
||||
|
||||
function M.colors()
|
||||
return {
|
||||
foreground = M.palette.text,
|
||||
background = M.palette.base,
|
||||
cursor_bg = M.palette.yellow,
|
||||
cursor_border = M.palette.yellow,
|
||||
cursor_fg = M.palette.text,
|
||||
selection_bg = '#405275',
|
||||
selection_fg = M.palette.text,
|
||||
|
||||
ansi = {
|
||||
M.palette.overlay,
|
||||
M.palette.red,
|
||||
M.palette.green,
|
||||
M.palette.yellow,
|
||||
M.palette.cyan,
|
||||
M.palette.purple,
|
||||
M.palette.orange,
|
||||
M.palette.text,
|
||||
},
|
||||
|
||||
brights = {
|
||||
M.palette.muted,
|
||||
M.palette.red,
|
||||
M.palette.green,
|
||||
M.palette.yellow,
|
||||
M.palette.cyan,
|
||||
M.palette.purple,
|
||||
M.palette.orange,
|
||||
M.palette.text,
|
||||
},
|
||||
|
||||
tab_bar = {
|
||||
background = M.palette.base,
|
||||
active_tab = active_tab,
|
||||
inactive_tab = inactive_tab,
|
||||
inactive_tab_hover = active_tab,
|
||||
new_tab = inactive_tab,
|
||||
new_tab_hover = active_tab,
|
||||
inactive_tab_edge = M.palette.muted,
|
||||
},
|
||||
}
|
||||
end
|
||||
|
||||
function M.window_frame()
|
||||
return {
|
||||
active_titlebar_bg = M.palette.base,
|
||||
inactive_titlebar_bg = M.palette.base,
|
||||
}
|
||||
end
|
||||
|
||||
return M
|
||||
@@ -1,84 +1,11 @@
|
||||
-- Bearded Arc Theme
|
||||
-- Based on: https://github.com/BeardedBear/bearded-theme
|
||||
-- Adapted for WezTerm
|
||||
-- Theme registry
|
||||
-- Standalone themes: bearded-arc (dark), bearded-arc-light
|
||||
-- Legacy variants: moon, dawn
|
||||
|
||||
local main = {}
|
||||
|
||||
local main_palette = {
|
||||
base = '#1c2433',
|
||||
overlay = '#212a3b',
|
||||
muted = '#4a5e84',
|
||||
text = '#afbbd2',
|
||||
red = '#FF738A',
|
||||
yellow = '#EACD61',
|
||||
orange = '#FF955C',
|
||||
green = '#3CEC85',
|
||||
cyan = '#69C3FF',
|
||||
purple = '#B78AFF',
|
||||
highlight = '#8196b5',
|
||||
}
|
||||
|
||||
local main_active_tab = {
|
||||
bg_color = main_palette.overlay,
|
||||
fg_color = main_palette.text,
|
||||
}
|
||||
|
||||
local main_inactive_tab = {
|
||||
bg_color = main_palette.base,
|
||||
fg_color = main_palette.muted,
|
||||
}
|
||||
|
||||
function main.colors()
|
||||
return {
|
||||
foreground = main_palette.text,
|
||||
background = main_palette.base,
|
||||
cursor_bg = main_palette.yellow,
|
||||
cursor_border = main_palette.yellow,
|
||||
cursor_fg = main_palette.text,
|
||||
selection_bg = '#405275',
|
||||
selection_fg = main_palette.text,
|
||||
|
||||
ansi = {
|
||||
main_palette.overlay,
|
||||
main_palette.red,
|
||||
main_palette.green,
|
||||
main_palette.yellow,
|
||||
main_palette.cyan,
|
||||
main_palette.purple,
|
||||
main_palette.orange,
|
||||
main_palette.text,
|
||||
},
|
||||
|
||||
brights = {
|
||||
main_palette.muted,
|
||||
main_palette.red,
|
||||
main_palette.green,
|
||||
main_palette.yellow,
|
||||
main_palette.cyan,
|
||||
main_palette.purple,
|
||||
main_palette.orange,
|
||||
main_palette.text,
|
||||
},
|
||||
|
||||
tab_bar = {
|
||||
background = main_palette.base,
|
||||
active_tab = main_active_tab,
|
||||
inactive_tab = main_inactive_tab,
|
||||
inactive_tab_hover = main_active_tab,
|
||||
new_tab = main_inactive_tab,
|
||||
new_tab_hover = main_active_tab,
|
||||
inactive_tab_edge = main_palette.muted, -- (Fancy tab bar only)
|
||||
},
|
||||
}
|
||||
end
|
||||
|
||||
function main.window_frame() -- (Fancy tab bar only)
|
||||
return {
|
||||
active_titlebar_bg = main_palette.base,
|
||||
inactive_titlebar_bg = main_palette.base,
|
||||
}
|
||||
end
|
||||
local main = require('theme/bearded-arc')
|
||||
local light = require('theme/bearded-arc-light')
|
||||
|
||||
-- Moon variant (kept here for backward compat)
|
||||
local moon = {}
|
||||
|
||||
local moon_palette = {
|
||||
@@ -144,18 +71,19 @@ function moon.colors()
|
||||
inactive_tab_hover = moon_active_tab,
|
||||
new_tab = moon_inactive_tab,
|
||||
new_tab_hover = moon_active_tab,
|
||||
inactive_tab_edge = moon_palette.muted, -- (Fancy tab bar only)
|
||||
inactive_tab_edge = moon_palette.muted,
|
||||
},
|
||||
}
|
||||
end
|
||||
|
||||
function moon.window_frame() -- (Fancy tab bar only)
|
||||
function moon.window_frame()
|
||||
return {
|
||||
active_titlebar_bg = moon_palette.base,
|
||||
inactive_titlebar_bg = moon_palette.base,
|
||||
}
|
||||
end
|
||||
|
||||
-- Dawn variant (kept here for backward compat)
|
||||
local dawn = {}
|
||||
|
||||
local dawn_palette = {
|
||||
@@ -221,12 +149,12 @@ function dawn.colors()
|
||||
inactive_tab_hover = dawn_active_tab,
|
||||
new_tab = dawn_inactive_tab,
|
||||
new_tab_hover = dawn_active_tab,
|
||||
inactive_tab_edge = dawn_palette.muted, -- (Fancy tab bar only)
|
||||
inactive_tab_edge = dawn_palette.muted,
|
||||
},
|
||||
}
|
||||
end
|
||||
|
||||
function dawn.window_frame() -- (Fancy tab bar only)
|
||||
function dawn.window_frame()
|
||||
return {
|
||||
active_titlebar_bg = dawn_palette.base,
|
||||
inactive_titlebar_bg = dawn_palette.base,
|
||||
@@ -235,6 +163,7 @@ end
|
||||
|
||||
return {
|
||||
main = main,
|
||||
light = light,
|
||||
moon = moon,
|
||||
dawn = dawn,
|
||||
}
|
||||
|
||||
@@ -1,12 +1,31 @@
|
||||
local wezterm = require 'wezterm'
|
||||
local config = {}
|
||||
local theme = require('theme/init').main
|
||||
local themes = require('theme/init')
|
||||
|
||||
-- Watch theme-state file so wezterm auto-reloads when toggle script writes to it
|
||||
wezterm.add_to_config_reload_watch_list(
|
||||
os.getenv("HOME") .. "/.config/theme-state"
|
||||
)
|
||||
|
||||
-- Determine current theme from state file
|
||||
local function get_theme()
|
||||
local f = io.open(os.getenv("HOME") .. "/.config/theme-state", "r")
|
||||
if f then
|
||||
local state = f:read("*a"):gsub("%s+", "")
|
||||
f:close()
|
||||
if state == "light" then return themes.light end
|
||||
end
|
||||
return themes.main
|
||||
end
|
||||
|
||||
local theme = get_theme()
|
||||
|
||||
-- Font configuration
|
||||
config.font = wezterm.font 'JetBrainsMono Nerd Font'
|
||||
config.font_size = 11.0
|
||||
|
||||
config.colors = theme.colors()
|
||||
config.window_frame = theme.window_frame()
|
||||
|
||||
-- Window
|
||||
config.enable_tab_bar = true
|
||||
@@ -33,6 +52,13 @@ config.enable_kitty_keyboard = true
|
||||
config.keys = {
|
||||
{ key = 'LeftArrow', mods = 'CTRL|SHIFT', action = wezterm.action.ActivateTabRelative(-1) },
|
||||
{ key = 'RightArrow', mods = 'CTRL|SHIFT', action = wezterm.action.ActivateTabRelative(1) },
|
||||
{
|
||||
key = 'n',
|
||||
mods = 'CTRL|SHIFT',
|
||||
action = wezterm.action_callback(function(win, pane)
|
||||
local tab, window = pane:move_to_new_window()
|
||||
end),
|
||||
},
|
||||
}
|
||||
|
||||
-- Machine-local overrides (not tracked in dotfiles)
|
||||
|
||||
Reference in New Issue
Block a user