nixos-config/home/config-files/wezterm.lua
2024-11-23 17:55:52 +01:00

155 lines
3.4 KiB
Lua

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
local HOSTNAME = getHostname()
config.color_scheme = "astromouse (terminal.sexy)"
-- config.font = wezterm.font 'Hack Nerd Font Mono'
config.font = wezterm.font 'Hasklug 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
config.window_background_opacity = 1
elseif os.getenv("XDG_CURRENT_DESKTOP") == "sway" or os.getenv("XDG_CURRENT_DESKTOP") == "Hyprland" then
config.window_background_opacity = 1
else
config.window_background_opacity = .8
end
config.macos_window_background_blur = 10
config.keys = {
{
key = 't',
mods = 'CTRL',
action = wezterm.action.SpawnTab 'DefaultDomain',
},
{
key = 's',
mods = 'CTRL | SHIFT',
action = wezterm.action.PaneSelect
},
{
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
},
},
{
key = "h",
mods = 'CTRL | SHIFT',
action = wezterm.action.SplitPane {
direction = 'Left',
},
},
{
key = "l",
mods = 'CTRL | SHIFT',
action = wezterm.action.SplitPane {
direction = 'Right',
},
},
{
key = "k",
mods = 'CTRL | SHIFT',
action = wezterm.action.SplitPane {
direction = 'Up',
},
},
{
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) .. ' | '
bat = '| 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)
config.front_end = 'OpenGL'
for _, gpu in ipairs(wezterm.gui.enumerate_gpus()) do
if gpu.backend == 'Vulkan' and gpu.device_type == 'IntegratedGpu' or gpu.device_type == "DiscreteGpu" then
config.webgpu_preferred_adapter = gpu
config.front_end = 'WebGpu'
break
end
end
if HOSTNAME == 'asmodeus' then
config.enable_wayland = false
else
config.enable_wayland = false
end
config.hide_tab_bar_if_only_one_tab = false
config.use_fancy_tab_bar = false
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
config.warn_about_missing_glyphs = false
return config