Goodbye wezterm
This commit is contained in:
parent
dbc20f417d
commit
34231fe6ce
2 changed files with 0 additions and 179 deletions
|
|
@ -3,6 +3,5 @@
|
|||
{
|
||||
imports = [
|
||||
./programs.nix
|
||||
./wezterm.nix
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,178 +0,0 @@
|
|||
{ config, ... }:
|
||||
|
||||
{
|
||||
programs.wezterm = {
|
||||
enable = true;
|
||||
extraConfig = # lua
|
||||
''
|
||||
local act = wezterm.action
|
||||
local function get_initial_cols_by_hostname()
|
||||
local hostname = wezterm.hostname()
|
||||
if hostname == "rotterdam" then
|
||||
return 111
|
||||
elseif hostname == "io" then
|
||||
return 93
|
||||
else
|
||||
return 100
|
||||
end
|
||||
end
|
||||
wezterm.on('format-tab-title', function(tab, tabs, panes, config, hover, max_width)
|
||||
local left_sep = ""
|
||||
local right_sep = ""
|
||||
-- Define the tab title format using the Powerline separator
|
||||
local tab_index = tab.tab_index + 1
|
||||
return {
|
||||
{ Background = { Color = "${config.lib.stylix.colors.withHashtag.base01}" } },
|
||||
{ Foreground = { Color = tab.is_active and "${config.lib.stylix.colors.withHashtag.base04}" or "${config.lib.stylix.colors.withHashtag.base01}" } },
|
||||
{ Text = left_sep },
|
||||
{ Background = { Color = tab.is_active and "${config.lib.stylix.colors.withHashtag.base04}" or "${config.lib.stylix.colors.withHashtag.base01}" } },
|
||||
{ Foreground = { Color = "${config.lib.stylix.colors.withHashtag.base05}" } },
|
||||
{ Text = " " .. tab_index .. " " },
|
||||
{ Background = { Color = "${config.lib.stylix.colors.withHashtag.base01}" } },
|
||||
{ Foreground = { Color = tab.is_active and "${config.lib.stylix.colors.withHashtag.base04}" or "${config.lib.stylix.colors.withHashtag.base01}" } },
|
||||
{ Text = right_sep },
|
||||
}
|
||||
end)
|
||||
wezterm.on('update-right-status', function(window, pane)
|
||||
-- Each element holds the text for a cell in a "powerline" style << fade
|
||||
local cells = {}
|
||||
|
||||
-- Figure out the cwd and host of the current pane.
|
||||
-- This will pick up the hostname for the remote host if your
|
||||
-- shell is using OSC 7 on the remote host.
|
||||
local cwd_uri = pane:get_current_working_dir()
|
||||
if cwd_uri then
|
||||
local cwd = cwd_uri.file_path
|
||||
local home_dir = os.getenv("HOME")
|
||||
-- Replace the home directory path with ~
|
||||
if cwd:sub(1, #home_dir) == home_dir then
|
||||
cwd = "~" .. cwd:sub(#home_dir + 1)
|
||||
end
|
||||
local function shorten_path(cwd)
|
||||
local parts = {}
|
||||
-- Split the cwd by '/'
|
||||
for part in string.gmatch(cwd, "[^/]+") do
|
||||
table.insert(parts, part)
|
||||
end
|
||||
-- Shorten all directory names except the last one
|
||||
for i = 1, #parts - 1 do
|
||||
parts[i] = parts[i]:sub(1, 1)
|
||||
end
|
||||
-- Rebuild the shortened path
|
||||
return table.concat(parts, "/")
|
||||
end
|
||||
cwd = shorten_path(cwd)
|
||||
|
||||
local hostname = cwd_uri.host or wezterm.hostname()
|
||||
-- Remove the domain name portion of the hostname
|
||||
local dot = hostname:find '[.]'
|
||||
if dot then
|
||||
hostname = hostname:sub(1, dot - 1)
|
||||
end
|
||||
if hostname == "" then
|
||||
hostname = wezterm.hostname()
|
||||
end
|
||||
|
||||
table.insert(cells, cwd)
|
||||
table.insert(cells, hostname)
|
||||
end
|
||||
|
||||
local date = wezterm.strftime '%H:%M'
|
||||
table.insert(cells, date)
|
||||
|
||||
-- An entry for each battery (typically 0 or 1 battery)
|
||||
for _, b in ipairs(wezterm.battery_info()) do
|
||||
table.insert(cells, string.format('%.0f%%', b.state_of_charge * 100))
|
||||
end
|
||||
|
||||
local SOLID_LEFT_ARROW = ''
|
||||
|
||||
-- Color palette for the backgrounds of each cell
|
||||
local colors = {
|
||||
'${config.lib.stylix.colors.withHashtag.base01}',
|
||||
'${config.lib.stylix.colors.withHashtag.base02}',
|
||||
'${config.lib.stylix.colors.withHashtag.base03}',
|
||||
'${config.lib.stylix.colors.withHashtag.base04}',
|
||||
}
|
||||
|
||||
-- Foreground color for the text across the fade
|
||||
local text_fg = '${config.lib.stylix.colors.withHashtag.base05}'
|
||||
|
||||
-- The elements to be formatted
|
||||
local elements = {}
|
||||
-- How many cells have been formatted
|
||||
local num_cells = 0
|
||||
|
||||
-- Translate a cell into elements
|
||||
function push(text, is_last)
|
||||
local cell_no = num_cells + 1
|
||||
table.insert(elements, { Foreground = { Color = text_fg } })
|
||||
table.insert(elements, { Background = { Color = colors[cell_no] } })
|
||||
table.insert(elements, { Text = text .. ' ' })
|
||||
if not is_last then
|
||||
table.insert(elements, { Foreground = { Color = colors[cell_no + 1] } })
|
||||
table.insert(elements, { Text = SOLID_LEFT_ARROW })
|
||||
end
|
||||
num_cells = num_cells + 1
|
||||
end
|
||||
|
||||
while #cells > 0 do
|
||||
local cell = table.remove(cells, 1)
|
||||
push(cell, #cells == 0)
|
||||
end
|
||||
|
||||
window:set_right_status(wezterm.format(elements))
|
||||
end)
|
||||
return {
|
||||
disable_default_key_bindings = true,
|
||||
window_padding = {
|
||||
left = "2pt",
|
||||
right = "2pt",
|
||||
bottom = "2pt",
|
||||
top = "2pt",
|
||||
},
|
||||
command_palette_font_size = 12,
|
||||
initial_cols = get_initial_cols_by_hostname(),
|
||||
initial_rows = 32,
|
||||
inactive_pane_hsb = {
|
||||
brightness = 0.5,
|
||||
},
|
||||
hide_tab_bar_if_only_one_tab = false,
|
||||
show_new_tab_button_in_tab_bar = false,
|
||||
tab_bar_at_bottom = true,
|
||||
use_fancy_tab_bar = false,
|
||||
front_end = "WebGpu",
|
||||
keys = {
|
||||
{ key = 'Tab', mods = 'CTRL', action = act.ActivateTabRelative(1) },
|
||||
{ key = 'Tab', mods = 'SHIFT|CTRL', action = act.ActivateTabRelative(-1) },
|
||||
{ key = 'Enter', mods = 'ALT', action = act.ToggleFullScreen },
|
||||
{ key = ':', mods = 'SHIFT|CTRL', action = act.SplitVertical{ domain = 'CurrentPaneDomain' } },
|
||||
{ key = '?', mods = 'SHIFT|CTRL', action = act.SplitHorizontal{ domain = 'CurrentPaneDomain' } },
|
||||
{ key = '+', mods = 'CTRL', action = act.IncreaseFontSize },
|
||||
{ key = '=', mods = 'CTRL', action = act.IncreaseFontSize },
|
||||
{ key = '-', mods = 'CTRL', action = act.DecreaseFontSize },
|
||||
{ key = '_', mods = 'SHIFT|CTRL', action = act.DecreaseFontSize },
|
||||
{ key = '0', mods = 'CTRL', action = act.ResetFontSize },
|
||||
{ key = 'C', mods = 'SHIFT|CTRL', action = act.CopyTo 'Clipboard' },
|
||||
{ key = 'F', mods = 'SHIFT|CTRL', action = act.Search 'CurrentSelectionOrEmptyString' },
|
||||
{ key = 'B', mods = 'SHIFT|CTRL', action = act.ClearScrollback 'ScrollbackOnly' },
|
||||
{ key = 'R', mods = 'SHIFT|CTRL', action = act.ReloadConfiguration },
|
||||
{ key = 'T', mods = 'SHIFT|CTRL', action = act.SpawnTab 'CurrentPaneDomain' },
|
||||
{ key = 'V', mods = 'SHIFT|CTRL', action = act.PasteFrom 'Clipboard' },
|
||||
{ key = 'W', mods = 'SHIFT|CTRL', action = act.CloseCurrentTab{ confirm = true } },
|
||||
{ key = 'PageUp', mods = 'SHIFT', action = act.ScrollByPage(-1) },
|
||||
{ key = 'PageUp', mods = 'CTRL', action = act.ActivateTabRelative(-1) },
|
||||
{ key = 'PageUp', mods = 'SHIFT|CTRL', action = act.MoveTabRelative(-1) },
|
||||
{ key = 'PageDown', mods = 'SHIFT', action = act.ScrollByPage(1) },
|
||||
{ key = 'PageDown', mods = 'CTRL', action = act.ActivateTabRelative(1) },
|
||||
{ key = 'PageDown', mods = 'SHIFT|CTRL', action = act.MoveTabRelative(1) },
|
||||
{ key = 'H', mods = 'SHIFT|CTRL', action = act.ActivatePaneDirection 'Left' },
|
||||
{ key = 'L', mods = 'SHIFT|CTRL', action = act.ActivatePaneDirection 'Right' },
|
||||
{ key = 'K', mods = 'SHIFT|CTRL', action = act.ActivatePaneDirection 'Up' },
|
||||
{ key = 'J', mods = 'SHIFT|CTRL', action = act.ActivatePaneDirection 'Down' },
|
||||
{ key = 'P', mods = 'SHIFT|CTRL', action = act.ActivateCommandPalette },
|
||||
},
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue