aboutsummaryrefslogtreecommitdiff
path: root/share/home/wezterm
diff options
context:
space:
mode:
Diffstat (limited to 'share/home/wezterm')
-rw-r--r--share/home/wezterm/config.lua62
-rw-r--r--share/home/wezterm/default.nix10
2 files changed, 72 insertions, 0 deletions
diff --git a/share/home/wezterm/config.lua b/share/home/wezterm/config.lua
new file mode 100644
index 0000000..872a1aa
--- /dev/null
+++ b/share/home/wezterm/config.lua
@@ -0,0 +1,62 @@
+local wezterm = require 'wezterm'
+local act = wezterm.action
+local config = {}
+
+if wezterm.config_builder then
+ config = wezterm.config_builder()
+end
+
+config.color_scheme = 'Catppuccin Mocha'
+config.window_background_opacity = 0.9
+
+config.default_cursor_style = "SteadyBar"
+config.font = wezterm.font('Blex Mono Nerd Font')
+config.font_size = 9.5
+
+config.keys = {
+ -- Tab management
+ { key = '1', mods = 'ALT', action = act.ActivateTab(0) },
+ { key = '2', mods = 'ALT', action = act.ActivateTab(1) },
+ { key = '3', mods = 'ALT', action = act.ActivateTab(2) },
+ { key = '4', mods = 'ALT', action = act.ActivateTab(3) },
+ { key = '5', mods = 'ALT', action = act.ActivateTab(4) },
+ { key = '6', mods = 'ALT', action = act.ActivateTab(5) },
+ { key = '7', mods = 'ALT', action = act.ActivateTab(6) },
+ { key = '8', mods = 'ALT', action = act.ActivateTab(7) },
+ { key = 't', mods = 'CTRL|SHIFT', action = act.SpawnTab 'CurrentPaneDomain' },
+ { key = 'w', mods = 'CTRL|SHIFT', action = act.CloseCurrentTab{ confirm = true}},
+ { key = '{', mods = 'CTRL|SHIFT', action = act.MoveTabRelative(-1) },
+ { key = '}', mods = 'CTRL|SHIFT', action = act.MoveTabRelative(1) },
+
+ -- Split management
+ {
+ key = 'h',
+ mods = 'CTRL',
+ action = act.SplitHorizontal { domain = 'CurrentPaneDomain' },
+ },
+ {
+ key = 'v',
+ mods = 'CTRL',
+ action = act.SplitVertical { domain = 'CurrentPaneDomain' },
+ },
+ {
+ key = 'q',
+ mods = 'CTRL',
+ action = act.CloseCurrentPane { confirm = true },
+ },
+ -- Split movement
+ -- activate pane selection mode with the default alphabet (labels are "a", "s", "d", "f" and so on)
+ -- (j)ump to split
+ { key = 'j', mods = 'CTRL', action = act.PaneSelect },
+ -- show the pane selection mode, but have it swap the active and selected panes
+ -- (m)ove split
+ {
+ key = 'm',
+ mods = 'CTRL',
+ action = act.PaneSelect {
+ mode = 'SwapWithActive',
+ },
+ },
+}
+
+return config
diff --git a/share/home/wezterm/default.nix b/share/home/wezterm/default.nix
new file mode 100644
index 0000000..b06022b
--- /dev/null
+++ b/share/home/wezterm/default.nix
@@ -0,0 +1,10 @@
+{ pkgs, ... }: {
+ programs.wezterm = {
+ enable = true;
+ extraConfig = builtins.readFile ./config.lua;
+ };
+
+ fonts.fontconfig.enable = true;
+ home.packages = with pkgs;
+ [ (nerdfonts.override { fonts = [ "IBMPlexMono" ]; }) ];
+}