nixos-config/home/config-files/wezterm.lua

148 lines
3.1 KiB
Lua
Raw Normal View History

2024-08-29 11:01:23 +02:00
local wezterm = require 'wezterm'
local config = {}
function getHostname()
local handle = io.popen("hostname -s")
local result = handle:read("*a")
handle:close()
return string.gsub(result, "\n$", "")
end
2024-06-03 17:55:51 +02:00
local HOSTNAME = getHostname()
2024-10-23 21:04:35 +02:00
config.color_scheme = "Apathy"
-- config.font = wezterm.font 'Hack Nerd Font Mono'
config.font = wezterm.font 'ComicShannsMono Nerd Font Mono'
if getHostname() == "lilith" or getHostname() == "alastor" then
config.font_size = 15
else
config.font_size = 11
end
if os.getenv("DESKTOP_SESSION") == "plasma" or os.getenv("DESKTOP_SESSION") == "plasmax11" then
2024-06-03 17:55:51 +02:00
config.window_background_opacity = 1
2024-07-18 19:17:30 +02:00
elseif os.getenv("XDG_CURRENT_DESKTOP") == "sway" then
2024-07-02 08:20:47 +02:00
config.window_background_opacity = .9
2024-07-18 19:17:30 +02:00
else
config.window_background_opacity = 1
2024-06-03 17:55:51 +02:00
end
config.keys = {
{
key = 't',
mods = 'CTRL',
action = wezterm.action.SpawnTab 'DefaultDomain',
},
{
key = 's',
mods = 'CTRL | SHIFT',
action = wezterm.action.PaneSelect
},
2024-03-22 18:26:55 +01:00
{
key = "LeftArrow",
mods = 'CTRL | ALT | SHIFT',
action = wezterm.action.AdjustPaneSize {
'Left',
5
},
},
{
key = "RightArrow",
mods = 'CTRL | ALT | SHIFT',
action = wezterm.action.AdjustPaneSize {
'Right',
5
},
},
{
key = "UpArrow",
mods = 'CTRL | ALT | SHIFT',
action = wezterm.action.AdjustPaneSize {
'Up',
5
},
},
{
key = "DownArrow",
mods = 'CTRL | ALT | SHIFT',
action = wezterm.action.AdjustPaneSize {
'Down',
5
},
},
{
2024-10-23 21:04:35 +02:00
key = "h",
mods = 'CTRL | SHIFT',
action = wezterm.action.SplitPane {
direction = 'Left',
},
},
{
2024-10-23 21:04:35 +02:00
key = "l",
mods = 'CTRL | SHIFT',
action = wezterm.action.SplitPane {
direction = 'Right',
},
},
{
2024-10-23 21:04:35 +02:00
key = "k",
mods = 'CTRL | SHIFT',
action = wezterm.action.SplitPane {
direction = 'Up',
},
},
{
2024-10-23 21:04:35 +02:00
key = "j",
mods = 'CTRL | SHIFT',
action = wezterm.action.SplitPane {
direction = 'Down',
},
},
}
for i = 1, 8 do
-- CTRL+ALT + number to activate that tab
table.insert(config.keys, {
key = tostring(i),
mods = 'CTRL',
action = wezterm.action.ActivateTab(i - 1),
})
end
wezterm.on('update-status', function(window, pane)
local date = wezterm.strftime '%a %b %-d %H:%M:%S |'
local bat = ''
for _, b in ipairs(wezterm.battery_info()) do
bat = '|🔋 ' .. string.format('%.0f%%', b.state_of_charge * 100) .. ' | '
end
window:set_right_status(wezterm.format {
{ Text = bat .. date },
})
end)
wezterm.on('update-status', function(window, pane)
window:set_left_status(wezterm.format {
{ Text = '| λ |' },
})
end)
2024-10-17 17:41:03 +02:00
config.front_end = 'WebGpu'
2024-07-19 16:11:33 +02:00
for _, gpu in ipairs(wezterm.gui.enumerate_gpus()) do
2024-08-29 11:01:23 +02:00
if gpu.backend == 'Vulkan' and gpu.device_type == 'IntegratedGpu' or gpu.device_type == "DiscreteGpu" then
2024-07-19 16:11:33 +02:00
config.webgpu_preferred_adapter = gpu
config.front_end = 'WebGpu'
break
end
end
2024-03-19 22:12:20 +01:00
config.hide_tab_bar_if_only_one_tab = false
config.use_fancy_tab_bar = false
2024-05-03 10:08:16 +02:00
config.text_background_opacity = 0.3
config.enable_scroll_bar = false
config.enable_tab_bar = true
config.tab_bar_at_bottom = true
config.hide_mouse_cursor_when_typing = false
2024-08-29 11:01:23 +02:00
config.enable_wayland = false
config.warn_about_missing_glyphs = false
return config