From de51fd7f8d6e5e0b0d68790b9c2d79d67d0564a7 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Thu, 8 Jan 2026 01:12:27 -0500 Subject: Create default config for Wezterm NOT themed yet At this time wezterm is not installed by default However, if user installs it they will have a nice config to begin with Later I hope to add theming support On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md new file: config/wezterm/wezterm.lua modified: copy.sh --- CHANGELOG.md | 9 +++- config/wezterm/wezterm.lua | 115 +++++++++++++++++++++++++++++++++++++++++++++ copy.sh | 13 +++++ 3 files changed, 136 insertions(+), 1 deletion(-) create mode 100644 config/wezterm/wezterm.lua diff --git a/CHANGELOG.md b/CHANGELOG.md index 91da190a..9480f375 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,14 @@ - Thank you [TheAhumMaitra](https://github.com/TheAhumMaitra) - Fixed more WindowRules - Fixed rofi themes to work with Theme changer - - Added `ghostty` terminal config file integrated with `wallust` and themes + - Added `ghostty` terminal config file integrated with Themes + - `ghostty` is not installed by default + - The `COPR` is already there for Fedora + - `sudo dnf install ghostty` + - The `COPR` repo for `wezterm` is also available + - `sudo dnf install wezterm` + - A config file is already available when you install it + - Most other distros have these terminals in their repo - 2026-01-04 - Fullscreen or maximized would exit using `ALT-TAB` (cycle next/bring-to-front) diff --git a/config/wezterm/wezterm.lua b/config/wezterm/wezterm.lua new file mode 100644 index 00000000..8740cbcf --- /dev/null +++ b/config/wezterm/wezterm.lua @@ -0,0 +1,115 @@ +-- Config from Drew @justaguylinux small mods + +local wezterm = require("wezterm") + +local config = wezterm.config_builder() + +config.enable_wayland = true + +-- Enable if starship prompt won't start +-- config.default_prog = { "/usr/bin/env zsh" } + +-- General appearance and visuals +config.hide_tab_bar_if_only_one_tab = true +-- Set primary font with fallbacks + +config.font = wezterm.font_with_fallback({ + { family = "Fira Code", weight = 250, stretch = "Normal", style = "Normal" }, -- Thin variant + "Fira Code", + "JetBrains Mono", + "Hack", +}) + +-- Previous font config +-- font = wezterm.font("Maple Mono NF") +font_size = 14 + +config.colors = { + tab_bar = { + + active_tab = { + bg_color = "#80bfff", -- col_gray2 (selected tab in bright blue) + fg_color = "#00141d", -- contrast text on active tab + }, + + inactive_tab = { + bg_color = "#1a1a1a", -- col_gray4 (dark background for inactive tabs) + fg_color = "#FFFFFF", -- col_gray3 (white text on inactive tabs) + }, + + new_tab = { + bg_color = "#1a1a1a", -- same as inactive + fg_color = "#4fc3f7", -- col_barbie (for the "+" button) + }, + }, +} + +config.window_background_opacity = 1.0 +-- config.color_scheme = "nightfox" +-- config.color_scheme = 'AdventureTime' +-- config.color_scheme = 'Advark Blue' +config.color_scheme = "Catppuccin Mocha" +-- config.color_scheme = 'Dracula' +config.font_size = 12 +config.font = wezterm.font("FiraCode", { weight = "Regular", italic = false }) + +config.window_padding = { + left = 10, + right = 10, + top = 10, + bottom = 10, +} + +config.use_fancy_tab_bar = true +config.window_frame = { + -- font = wezterm.font({ family = "FiraCode Nerd Font Mono", weight = "Regular" }), + font = wezterm.font({ family = "JetBrainsMono Nerd Font Mono", weight = "Regular" }), +} + +config.default_cursor_style = "BlinkingUnderline" +config.cursor_blink_rate = 500 +config.term = "xterm-256color" +config.bold_brightens_ansi_colors = false +config.max_fps = 120 +config.animation_fps = 30 + +-- Keybindings using ALT for tabs & splits +config.keys = { + -- Tab management + { key = "t", mods = "ALT", action = wezterm.action.SpawnTab("CurrentPaneDomain") }, + { key = "w", mods = "ALT", action = wezterm.action.CloseCurrentTab({ confirm = false }) }, + { key = "n", mods = "ALT", action = wezterm.action.ActivateTabRelative(1) }, + { key = "p", mods = "ALT", action = wezterm.action.ActivateTabRelative(-1) }, + + -- Pane management + { key = "v", mods = "ALT", action = wezterm.action.SplitVertical({ domain = "CurrentPaneDomain" }) }, + { key = "h", mods = "ALT", action = wezterm.action.SplitHorizontal({ domain = "CurrentPaneDomain" }) }, + { key = "q", mods = "ALT", action = wezterm.action.CloseCurrentPane({ confirm = false }) }, + + -- Pane navigation (move between panes with ALT + Arrows) + { key = "LeftArrow", mods = "ALT", action = wezterm.action.ActivatePaneDirection("Left") }, + { key = "RightArrow", mods = "ALT", action = wezterm.action.ActivatePaneDirection("Right") }, + { key = "UpArrow", mods = "ALT", action = wezterm.action.ActivatePaneDirection("Up") }, + { key = "DownArrow", mods = "ALT", action = wezterm.action.ActivatePaneDirection("Down") }, +} + +-- Disable missing glyph warnings, since we have fallback fonts now +config.warn_about_missing_glyphs = false + +-- function for nvidia_gpu +local function is_nvidia_gpu() + local handle = io.popen("lspci | grep -i nvidia") + local result = handle:read("*a") + handle:close() + return result ~= "" +end + +-- NVIDIA optimization settings +-- config.enable_wayland = not is_nvidia_gpu() -- Disable Wayland if NVIDIA GPU is detected +-- config.front_end = "OpenGL" -- More stable than WebGPU with NVIDIA +-- config.webgpu_power_preference = "HighPerformance" +-- config.prefer_egl = true +-- config.freetype_load_target = "Light" +-- config.freetype_render_target = "HorizontalLcd" + +return config diff --git a/copy.sh b/copy.sh index 34a4e543..e552b1e0 100755 --- a/copy.sh +++ b/copy.sh @@ -734,6 +734,19 @@ else echo "${ERROR} - $GHOSTTY_SRC not found; skipping Ghostty config install." 2>&1 | tee -a "$LOG" fi +# Install WezTerm config +WEZTERM_SRC="config/wezterm/wezterm.lua" +WEZTERM_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/wezterm" +WEZTERM_DEST="$WEZTERM_DIR/wezterm.lua" + +if [ -f "$WEZTERM_SRC" ]; then + mkdir -p "$WEZTERM_DIR" + install -m 0644 "$WEZTERM_SRC" "$WEZTERM_DEST" 2>&1 | tee -a "$LOG" + echo "${OK} - Installed WezTerm config to ${MAGENTA}$WEZTERM_DEST${RESET}" 2>&1 | tee -a "$LOG" +else + echo "${ERROR} - $WEZTERM_SRC not found; skipping WezTerm config install." 2>&1 | tee -a "$LOG" +fi + printf "\\n%.0s" {1..1} # ags config -- cgit v1.2.3