Initial work for wezterm color theme support

This commit is contained in:
Corey Woodworth
2025-11-01 19:06:17 -04:00
parent e5b685a4f0
commit 9be50c10e2
5 changed files with 113 additions and 3 deletions
@@ -0,0 +1,85 @@
[colors]
ansi = [
"{{ colors.surface.default.hex }}",
"{{ colors.error.default.hex }}",
"{{ colors.primary.default.hex }}",
"{{ colors.tertiary.default.hex }}",
"{{ colors.on_primary_container.default.hex }}",
"{{ colors.on_secondary_container.default.hex }}",
"{{ colors.secondary.default.hex }}",
"{{ colors.on_surface.default.hex }}",
]
background = "{{ colors.background.default.hex }}"
brights = [
"{{ colors.surface_bright.default.hex }}",
"{{ colors.error.default.hex }}",
"{{ colors.primary.default.hex }}",
"{{ colors.tertiary.default.hex }}",
"{{ colors.on_primary_container.default.hex }}",
"{{ colors.on_secondary_container.default.hex }}",
"{{ colors.secondary.default.hex }}",
"{{ colors.on_surface.default.hex }}",
]
compose_cursor = "{{ colors.on_surface.default.hex }}"
cursor_bg = "{{ colors.on_surface.default.hex }}"
cursor_border = "{{ colors.on_surface.default.hex }}"
cursor_fg = "{{ colors.surface_variant.default.hex }}"
foreground = "{{ colors.on_surface.default.hex }}"
scrollbar_thumb = "{{ colors.on_surface.default.hex }}"
selection_bg = "{{ colors.on_primary.default.hex }}"
selection_fg = "{{ colors.primary.default.hex }}"
split = "{{ colors.on_surface.default.hex }}"
visual_bell = "{{ colors.surface_variant.default.hex }}"
[colors.indexed]
16 = "{{ colors.secondary.default.hex }}"
17 = "{{ colors.on_surface.default.hex }}"
[colors.tab_bar]
background = "{{ colors.surface_variant.default.hex }}"
inactive_tab_edge = "{{ colors.outline.default.hex }}"
[colors.tab_bar.active_tab]
bg_color = "{{ colors.primary.default.hex }}"
fg_color = "{{ colors.on_primary.default.hex }}"
intensity = "Normal"
italic = false
strikethrough = false
underline = "None"
[colors.tab_bar.inactive_tab]
bg_color = "{{ colors.surface.default.hex }}"
fg_color = "{{ colors.on_surface.default.hex }}"
intensity = "Normal"
italic = false
strikethrough = false
underline = "None"
[colors.tab_bar.inactive_tab_hover]
bg_color = "{{ colors.surface_variant.default.hex }}"
fg_color = "{{ colors.on_surface_variant.default.hex }}"
intensity = "Normal"
italic = false
strikethrough = false
underline = "None"
[colors.tab_bar.new_tab]
bg_color = "{{ colors.surface.default.hex }}"
fg_color = "{{ colors.on_surface.default.hex }}"
intensity = "Normal"
italic = false
strikethrough = false
underline = "None"
[colors.tab_bar.new_tab_hover]
bg_color = "{{ colors.secondary.default.hex }}"
fg_color = "{{ colors.on_secondary.default.hex }}"
intensity = "Normal"
italic = false
strikethrough = false
underline = "None"
[metadata]
aliases = ["Noctalia"]
name = "Noctalia"
wezterm_version = "Always"
+7 -3
View File
@@ -588,6 +588,10 @@
"foot": {
"description": "Write {filepath} and reload",
"description-missing": "Requires {app} to be installed"
},
"wezterm": {
"description": "Write {filepath} and reload",
"description-missing": "Requires {app} to be installed"
}
},
"programs": {
@@ -1456,9 +1460,9 @@
"colors": {
"primary": "Primary",
"secondary": "Secondary",
"tertiary": "Tertiary",
"error": "Error",
"onSurface": "On Surface"
"tertiary": "Tertiary",
"error": "Error",
"onSurface": "On Surface"
},
"bar": {
"position": {
+1
View File
@@ -383,6 +383,7 @@ Singleton {
property bool kitty: false
property bool ghostty: false
property bool foot: false
property bool wezterm: false
property bool fuzzel: false
property bool discord: false
property bool discord_vesktop: false
+18
View File
@@ -596,6 +596,24 @@ ColumnLayout {
}
}
}
NCheckbox {
label: "Wezterm"
description: ProgramCheckerService.weztermAvailable ? I18n.tr("settings.color-scheme.templates.terminal.wezterm.description", {
"filepath": "~/.config/wezterm/colors/Noctalia.toml"
}) : I18n.tr("settings.color-scheme.templates.terminal.wezterm.description-missing", {
"app": "wezterm"
})
checked: Settings.data.templates.wezterm
enabled: ProgramCheckerService.weztermAvailable
opacity: ProgramCheckerService.weztermAvailable ? 1.0 : 0.6
onToggled: checked => {
if (ProgramCheckerService.weztermAvailable) {
Settings.data.templates.wezterm = checked
AppThemeService.generate()
}
}
}
}
// Applications
+2
View File
@@ -16,6 +16,7 @@ Singleton {
property bool kittyAvailable: false
property bool ghosttyAvailable: false
property bool footAvailable: false
property bool weztermAvailable: false
property bool fuzzelAvailable: false
property bool vicinaeAvailable: false
property bool walkerAvailable: false
@@ -101,6 +102,7 @@ Singleton {
"kittyAvailable": ["which", "kitty"],
"ghosttyAvailable": ["which", "ghostty"],
"footAvailable": ["which", "foot"],
"weztermAvailable": ["which", "wezterm"],
"fuzzelAvailable": ["which", "fuzzel"],
"vicinaeAvailable": ["sh", "-c", "command -v vicinae >/dev/null 2>&1 || (IFS=:; find $PATH -maxdepth 1 -iname 'vicinae*.appimage' -type f -executable 2>/dev/null | grep -q .)"],
"walkerAvailable": ["which", "walker"],