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
|
-- Theme registry
|
||||||
-- Based on: https://github.com/BeardedBear/bearded-theme
|
-- Standalone themes: bearded-arc (dark), bearded-arc-light
|
||||||
-- Adapted for WezTerm
|
-- Legacy variants: moon, dawn
|
||||||
|
|
||||||
local main = {}
|
local main = require('theme/bearded-arc')
|
||||||
|
local light = require('theme/bearded-arc-light')
|
||||||
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
|
|
||||||
|
|
||||||
|
-- Moon variant (kept here for backward compat)
|
||||||
local moon = {}
|
local moon = {}
|
||||||
|
|
||||||
local moon_palette = {
|
local moon_palette = {
|
||||||
@@ -144,18 +71,19 @@ function moon.colors()
|
|||||||
inactive_tab_hover = moon_active_tab,
|
inactive_tab_hover = moon_active_tab,
|
||||||
new_tab = moon_inactive_tab,
|
new_tab = moon_inactive_tab,
|
||||||
new_tab_hover = moon_active_tab,
|
new_tab_hover = moon_active_tab,
|
||||||
inactive_tab_edge = moon_palette.muted, -- (Fancy tab bar only)
|
inactive_tab_edge = moon_palette.muted,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
function moon.window_frame() -- (Fancy tab bar only)
|
function moon.window_frame()
|
||||||
return {
|
return {
|
||||||
active_titlebar_bg = moon_palette.base,
|
active_titlebar_bg = moon_palette.base,
|
||||||
inactive_titlebar_bg = moon_palette.base,
|
inactive_titlebar_bg = moon_palette.base,
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Dawn variant (kept here for backward compat)
|
||||||
local dawn = {}
|
local dawn = {}
|
||||||
|
|
||||||
local dawn_palette = {
|
local dawn_palette = {
|
||||||
@@ -221,12 +149,12 @@ function dawn.colors()
|
|||||||
inactive_tab_hover = dawn_active_tab,
|
inactive_tab_hover = dawn_active_tab,
|
||||||
new_tab = dawn_inactive_tab,
|
new_tab = dawn_inactive_tab,
|
||||||
new_tab_hover = dawn_active_tab,
|
new_tab_hover = dawn_active_tab,
|
||||||
inactive_tab_edge = dawn_palette.muted, -- (Fancy tab bar only)
|
inactive_tab_edge = dawn_palette.muted,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
function dawn.window_frame() -- (Fancy tab bar only)
|
function dawn.window_frame()
|
||||||
return {
|
return {
|
||||||
active_titlebar_bg = dawn_palette.base,
|
active_titlebar_bg = dawn_palette.base,
|
||||||
inactive_titlebar_bg = dawn_palette.base,
|
inactive_titlebar_bg = dawn_palette.base,
|
||||||
@@ -235,6 +163,7 @@ end
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
main = main,
|
main = main,
|
||||||
|
light = light,
|
||||||
moon = moon,
|
moon = moon,
|
||||||
dawn = dawn,
|
dawn = dawn,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,31 @@
|
|||||||
local wezterm = require 'wezterm'
|
local wezterm = require 'wezterm'
|
||||||
local config = {}
|
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
|
-- Font configuration
|
||||||
config.font = wezterm.font 'JetBrainsMono Nerd Font'
|
config.font = wezterm.font 'JetBrainsMono Nerd Font'
|
||||||
config.font_size = 11.0
|
config.font_size = 11.0
|
||||||
|
|
||||||
config.colors = theme.colors()
|
config.colors = theme.colors()
|
||||||
|
config.window_frame = theme.window_frame()
|
||||||
|
|
||||||
-- Window
|
-- Window
|
||||||
config.enable_tab_bar = true
|
config.enable_tab_bar = true
|
||||||
@@ -33,6 +52,13 @@ config.enable_kitty_keyboard = true
|
|||||||
config.keys = {
|
config.keys = {
|
||||||
{ key = 'LeftArrow', mods = 'CTRL|SHIFT', action = wezterm.action.ActivateTabRelative(-1) },
|
{ key = 'LeftArrow', mods = 'CTRL|SHIFT', action = wezterm.action.ActivateTabRelative(-1) },
|
||||||
{ key = 'RightArrow', 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)
|
-- Machine-local overrides (not tracked in dotfiles)
|
||||||
|
|||||||
Reference in New Issue
Block a user