nixcfg/homes/x86_64-linux/harald@amd/default.nix
Harald Hoyer 267be620cf feat(nix): enhance WezTerm and Fish configuration
- Enabled scroll bar and added conditional fullscreen key handling in `wezterm.lua` for better usability.
- Updated Fish shell to set global `LESS` mouse support for improved navigation.
2026-02-10 15:22:58 +01:00

104 lines
2.6 KiB
Nix

{ config, ... }:
{
home.sessionPath = [
"$HOME/bin"
"$HOME/.local/share/JetBrains/Toolbox/scripts"
];
metacfg = {
user = {
enable = true;
name = config.snowfallorg.user.name;
};
cli-apps = {
bash.enable = true;
fish.enable = true;
neovim.enable = false;
bat.enable = true;
starship.enable = true;
home-manager.enable = true;
};
tools = {
git.enable = true;
};
gui.kbd.ellipsis = true;
};
fonts.fontconfig.enable = true;
services.syncthing = {
enable = true;
tray.enable = true;
};
dconf.settings = {
# ...
"org/gnome/shell" = {
disable-user-extensions = false;
# `gnome-extensions list` for a list
enabled-extensions = [
"Vitals@CoreCoding.com"
"appindicatorsupport@rgcjonas.gmail.com"
"dash-to-panel@jderose9.github.com"
"hibernate-status@dromi"
"autohide-battery@sitnik.ru"
"clipboard-history@alexsaveau.dev"
];
# dconf watch /
favorite-apps = [
"org.wezfurlong.wezterm.desktop"
"jetbrains-toolbox.desktop"
"org.mozilla.firefox.desktop"
"firefox.desktop"
"thunderbird.desktop"
"org.mozilla.Thunderbird.desktop"
"slack.desktop"
"keybase.desktop"
"cider-2.desktop"
"org.gnome.Nautilus.desktop"
"virt-manager.desktop"
];
};
"org/virt-manager/virt-manager/connections" = {
autoconnect = [ "qemu:///system" ];
uris = [ "qemu:///system" ];
};
};
dconf.settings."org/gnome/desktop/input-sources".xkb-options = [ "mod:ellipsis" ];
xdg.enable = true;
xdg.mime.enable = true;
xdg.configFile."wezterm/wezterm.lua".text = ''
local wezterm = require("wezterm")
local config = wezterm.config_builder()
local act = wezterm.action
config.enable_kitty_keyboard = true
config.enable_scroll_bar = true
local function action_unless_fullscreen(action, key)
return wezterm.action_callback(function(win, pane)
if pane:is_alt_screen_active() then
-- a program is full screen, passthrough the key
win:perform_action(act.SendKey { key = key, mods = 'NONE' }, pane)
else
-- do the action
win:perform_action(action, pane)
end
end)
end
-- config.keys = {
-- { key = 'PageUp', mods = 'NONE', action = action_unless_fullscreen(act.ScrollByPage(-0.5), 'PageUp') },
-- { key = 'PageDown', mods = 'NONE', action = action_unless_fullscreen(act.ScrollByPage(0.5), 'PageDown') },
-- }
config.term = 'wezterm'
return config
'';
}