From 03412261b517c36e4141c555e63ad0257fe808e0 Mon Sep 17 00:00:00 2001 From: Salar Rahmanian Date: Sat, 11 Feb 2023 21:04:42 -0800 Subject: [PATCH] add wezterm --- home.nix | 17 +-- programs/default.nix | 1 + programs/tmux/default.nix | 1 - programs/wezterm/default.nix | 11 ++ programs/wezterm/wezterm.lua | 231 +++++++++++++++++++++++++++++++++++ 5 files changed, 246 insertions(+), 15 deletions(-) create mode 100644 programs/wezterm/default.nix create mode 100644 programs/wezterm/wezterm.lua diff --git a/home.nix b/home.nix index 2cb8e1b..6f0bd30 100644 --- a/home.nix +++ b/home.nix @@ -157,19 +157,6 @@ }; }; - programs.wezterm = { - enable = true; - extraConfig = '' - local wezterm = require 'wezterm' - return { - color_scheme = "tokyonight", - font = wezterm.font("JetBrains Mono"), - font_size = 16, - dpi = 144, - } - ''; - }; - programs.vscode = { enable = true; extensions = [ @@ -281,7 +268,7 @@ shellAliases = { cat="bat"; - du="ncdu --color dark -rr -x"; + # du="ncdu --color dark -rr -x"; fzfp="fzf --preview 'bat --style=numbers --color=always --line-range :500 {}'"; ping="prettyping"; ".." = "cd .."; @@ -292,6 +279,7 @@ gc="git commit -m"; gca="git commit -am"; gws="git status"; + gu="gitui"; ghauth="gh auth login --with-token < ~/.ghauth"; giscala="gitignore scala,vim,java,sbt > .gitignore"; gforksync="git fetch upstream && git merge upstream/master && git push origin master"; @@ -305,6 +293,7 @@ nixversion="nix eval nixpkgs.lib.version"; rmxcodederived="rm -fr ~/Library/Developer/Xcode/DerivedData"; v="nvim"; + wezk="wezterm show-keys --lua"; sshfre1="ssh salar@fre1.softinio.net"; sshfre2="ssh -p 2022 salar@fre2.softinio.net"; }; diff --git a/programs/default.nix b/programs/default.nix index 5dcd279..d39377b 100644 --- a/programs/default.nix +++ b/programs/default.nix @@ -1,4 +1,5 @@ [ ./git ./tmux + ./wezterm ] diff --git a/programs/tmux/default.nix b/programs/tmux/default.nix index 90cb547..9e264fe 100644 --- a/programs/tmux/default.nix +++ b/programs/tmux/default.nix @@ -2,7 +2,6 @@ let tmuxConfig = builtins.readFile ./tmux.conf; - in { programs.tmux = { diff --git a/programs/wezterm/default.nix b/programs/wezterm/default.nix new file mode 100644 index 0000000..e73111f --- /dev/null +++ b/programs/wezterm/default.nix @@ -0,0 +1,11 @@ +{ config, pkgs, ... }: + +let + weztermConfig = builtins.readFile ./wezterm.lua; +in +{ + programs.wezterm = { + enable = true; + extraConfig = weztermConfig; + }; +} diff --git a/programs/wezterm/wezterm.lua b/programs/wezterm/wezterm.lua new file mode 100644 index 0000000..ff08081 --- /dev/null +++ b/programs/wezterm/wezterm.lua @@ -0,0 +1,231 @@ +local wezterm = require 'wezterm' +local act = wezterm.action + +return { + color_scheme = "tokyonight", + font = wezterm.font("JetBrains Mono"), + font_size = 16, + dpi = 144, + enable_kitty_keyboard = true, + 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 = 'CTRL', action = act.ActivateTab(0) }, + { key = '!', mods = 'SHIFT|CTRL', action = act.ActivateTab(0) }, + { key = '-', mods = 'ALT|CTRL', action = act.SplitVertical{ domain = 'CurrentPaneDomain' } }, + { key = '-', mods = 'SHIFT|ALT|CTRL', action = act.SplitVertical{ domain = 'CurrentPaneDomain' } }, + { key = '#', mods = 'CTRL', action = act.ActivateTab(2) }, + { key = '#', mods = 'SHIFT|CTRL', action = act.ActivateTab(2) }, + { key = '$', mods = 'CTRL', action = act.ActivateTab(3) }, + { key = '$', mods = 'SHIFT|CTRL', action = act.ActivateTab(3) }, + { key = '%', mods = 'CTRL', action = act.ActivateTab(4) }, + { key = '%', mods = 'SHIFT|CTRL', action = act.ActivateTab(4) }, + { key = "'", mods = 'ALT|CTRL', action = act.SplitHorizontal{ domain = 'CurrentPaneDomain' } }, + { key = "'", mods = 'SHIFT|ALT|CTRL', action = act.SplitHorizontal{ domain = 'CurrentPaneDomain' } }, + { key = '&', mods = 'CTRL', action = act.ActivateTab(6) }, + { key = '&', mods = 'SHIFT|CTRL', action = act.ActivateTab(6) }, + { key = "'", mods = 'SHIFT|ALT|CTRL', action = act.SplitVertical{ domain = 'CurrentPaneDomain' } }, + { key = '(', mods = 'CTRL', action = act.ActivateTab(-1) }, + { key = '(', mods = 'SHIFT|CTRL', action = act.ActivateTab(-1) }, + { key = ')', mods = 'CTRL', action = act.ResetFontSize }, + { key = ')', mods = 'SHIFT|CTRL', action = act.ResetFontSize }, + { key = '*', mods = 'CTRL', action = act.ActivateTab(7) }, + { key = '*', mods = 'SHIFT|CTRL', action = act.ActivateTab(7) }, + { key = '+', mods = 'CTRL', action = act.IncreaseFontSize }, + { key = '+', mods = 'SHIFT|CTRL', action = act.IncreaseFontSize }, + { key = '-', mods = 'CTRL', action = act.DecreaseFontSize }, + { key = '-', mods = 'SHIFT|CTRL', action = act.DecreaseFontSize }, + { key = '-', mods = 'SUPER', action = act.DecreaseFontSize }, + { key = '0', mods = 'CTRL', action = act.ResetFontSize }, + { key = '0', mods = 'SHIFT|CTRL', action = act.ResetFontSize }, + { key = '0', mods = 'SUPER', action = act.ResetFontSize }, + { key = '1', mods = 'SHIFT|CTRL', action = act.ActivateTab(0) }, + { key = '1', mods = 'SUPER', action = act.ActivateTab(0) }, + { key = '2', mods = 'SHIFT|CTRL', action = act.ActivateTab(1) }, + { key = '2', mods = 'SUPER', action = act.ActivateTab(1) }, + { key = '3', mods = 'SHIFT|CTRL', action = act.ActivateTab(2) }, + { key = '3', mods = 'SUPER', action = act.ActivateTab(2) }, + { key = '4', mods = 'SHIFT|CTRL', action = act.ActivateTab(3) }, + { key = '4', mods = 'SUPER', action = act.ActivateTab(3) }, + { key = '5', mods = 'SHIFT|CTRL', action = act.ActivateTab(4) }, + { key = '5', mods = 'SHIFT|ALT|CTRL', action = act.SplitHorizontal{ domain = 'CurrentPaneDomain' } }, + { key = '5', mods = 'SUPER', action = act.ActivateTab(4) }, + { key = '6', mods = 'SHIFT|CTRL', action = act.ActivateTab(5) }, + { key = '6', mods = 'SUPER', action = act.ActivateTab(5) }, + { key = '7', mods = 'SHIFT|CTRL', action = act.ActivateTab(6) }, + { key = '7', mods = 'SUPER', action = act.ActivateTab(6) }, + { key = '8', mods = 'SHIFT|CTRL', action = act.ActivateTab(7) }, + { key = '8', mods = 'SUPER', action = act.ActivateTab(7) }, + { key = '9', mods = 'SHIFT|CTRL', action = act.ActivateTab(-1) }, + { key = '9', mods = 'SUPER', action = act.ActivateTab(-1) }, + { key = '=', mods = 'CTRL', action = act.IncreaseFontSize }, + { key = '=', mods = 'SHIFT|CTRL', action = act.IncreaseFontSize }, + { key = '=', mods = 'SUPER', action = act.IncreaseFontSize }, + { key = '@', mods = 'CTRL', action = act.ActivateTab(1) }, + { key = '@', mods = 'SHIFT|CTRL', action = act.ActivateTab(1) }, + { key = 'C', mods = 'CTRL', action = act.CopyTo 'Clipboard' }, + { key = 'C', mods = 'SHIFT|CTRL', action = act.CopyTo 'Clipboard' }, + { key = 'F', mods = 'CTRL', action = act.Search 'CurrentSelectionOrEmptyString' }, + { key = 'F', mods = 'SHIFT|CTRL', action = act.Search 'CurrentSelectionOrEmptyString' }, + { key = 'H', mods = 'CTRL', action = act.HideApplication }, + { key = 'H', mods = 'SHIFT|CTRL', action = act.HideApplication }, + { key = 'K', mods = 'CTRL', action = act.ClearScrollback 'ScrollbackOnly' }, + { key = 'K', mods = 'SHIFT|CTRL', action = act.ClearScrollback 'ScrollbackOnly' }, + { key = 'L', mods = 'CTRL', action = act.ShowDebugOverlay }, + { key = 'L', mods = 'SHIFT|CTRL', action = act.ShowDebugOverlay }, + { key = 'M', mods = 'CTRL', action = act.Hide }, + { key = 'M', mods = 'SHIFT|CTRL', action = act.Hide }, + { key = 'N', mods = 'CTRL', action = act.SpawnWindow }, + { key = 'N', mods = 'SHIFT|CTRL', action = act.SpawnWindow }, + { key = 'P', mods = 'CTRL', action = act.PaneSelect{ alphabet = '', mode = 'Activate' } }, + { key = 'P', mods = 'SHIFT|CTRL', action = act.PaneSelect{ alphabet = '', mode = 'Activate' } }, + { key = 'Q', mods = 'CTRL', action = act.QuitApplication }, + { key = 'Q', mods = 'SHIFT|CTRL', action = act.QuitApplication }, + { key = 'R', mods = 'CTRL', action = act.ReloadConfiguration }, + { key = 'R', mods = 'SHIFT|CTRL', action = act.ReloadConfiguration }, + { key = 'T', mods = 'CTRL', action = act.SpawnTab 'CurrentPaneDomain' }, + { key = 'T', mods = 'SHIFT|CTRL', action = act.SpawnTab 'CurrentPaneDomain' }, + { key = 'U', mods = 'CTRL', action = act.CharSelect{ copy_on_select = true, copy_to = 'ClipboardAndPrimarySelection' } }, + { key = 'U', mods = 'SHIFT|CTRL', action = act.CharSelect{ copy_on_select = true, copy_to = 'ClipboardAndPrimarySelection' } }, + { key = 'V', mods = 'CTRL', action = act.PasteFrom 'Clipboard' }, + { key = 'V', mods = 'SHIFT|CTRL', action = act.PasteFrom 'Clipboard' }, + { key = 'W', mods = 'CTRL', action = act.CloseCurrentTab{ confirm = true } }, + { key = 'W', mods = 'SHIFT|CTRL', action = act.CloseCurrentTab{ confirm = true } }, + { key = 'X', mods = 'CTRL', action = act.ActivateCopyMode }, + { key = 'X', mods = 'SHIFT|CTRL', action = act.ActivateCopyMode }, + { key = 'Z', mods = 'CTRL', action = act.TogglePaneZoomState }, + { key = 'Z', mods = 'SHIFT|CTRL', action = act.TogglePaneZoomState }, + { key = '[', mods = 'SHIFT|SUPER', action = act.ActivateTabRelative(-1) }, + { key = ']', mods = 'SHIFT|SUPER', action = act.ActivateTabRelative(1) }, + { key = '^', mods = 'CTRL', action = act.ActivateTab(5) }, + { key = '^', mods = 'SHIFT|CTRL', action = act.ActivateTab(5) }, + { key = '_', mods = 'CTRL', action = act.DecreaseFontSize }, + { key = '_', mods = 'SHIFT|CTRL', action = act.DecreaseFontSize }, + { key = 'c', mods = 'SHIFT|CTRL', action = act.CopyTo 'Clipboard' }, + { key = 'c', mods = 'SUPER', action = act.CopyTo 'Clipboard' }, + { key = 'f', mods = 'SHIFT|CTRL', action = act.Search 'CurrentSelectionOrEmptyString' }, + { key = 'f', mods = 'SUPER', action = act.Search 'CurrentSelectionOrEmptyString' }, + { key = 'h', mods = 'SHIFT|CTRL', action = act.HideApplication }, + { key = 'h', mods = 'SUPER', action = act.HideApplication }, + { key = 'k', mods = 'SHIFT|CTRL', action = act.ClearScrollback 'ScrollbackOnly' }, + { key = 'k', mods = 'SUPER', action = act.ClearScrollback 'ScrollbackOnly' }, + { key = 'l', mods = 'SHIFT|CTRL', action = act.ShowDebugOverlay }, + { key = 'm', mods = 'SHIFT|CTRL', action = act.Hide }, + { key = 'm', mods = 'SUPER', action = act.Hide }, + { key = 'n', mods = 'SHIFT|CTRL', action = act.SpawnWindow }, + { key = 'n', mods = 'SUPER', action = act.SpawnWindow }, + { key = 'p', mods = 'SHIFT|CTRL', action = act.PaneSelect{ alphabet = '', mode = 'Activate' } }, + { key = 'q', mods = 'SHIFT|CTRL', action = act.QuitApplication }, + { key = 'q', mods = 'SUPER', action = act.QuitApplication }, + { key = 'r', mods = 'SHIFT|CTRL', action = act.ReloadConfiguration }, + { key = 'r', mods = 'SUPER', action = act.ReloadConfiguration }, + { key = 't', mods = 'SHIFT|CTRL', action = act.SpawnTab 'CurrentPaneDomain' }, + { key = 't', mods = 'SUPER', action = act.SpawnTab 'CurrentPaneDomain' }, + { key = 'u', mods = 'SHIFT|CTRL', action = act.CharSelect{ copy_on_select = true, copy_to = 'ClipboardAndPrimarySelection' } }, + { key = 'v', mods = 'SHIFT|CTRL', action = act.PasteFrom 'Clipboard' }, + { key = 'v', mods = 'SUPER', action = act.PasteFrom 'Clipboard' }, + { key = 'w', mods = 'SHIFT|CTRL', action = act.CloseCurrentTab{ confirm = true } }, + { key = 'w', mods = 'SUPER', action = act.CloseCurrentTab{ confirm = true } }, + { key = 'x', mods = 'SHIFT|CTRL', action = act.ActivateCopyMode }, + { key = 'z', mods = 'SHIFT|CTRL', action = act.TogglePaneZoomState }, + { key = '{', mods = 'SUPER', action = act.ActivateTabRelative(-1) }, + { key = '{', mods = 'SHIFT|SUPER', action = act.ActivateTabRelative(-1) }, + { key = '}', mods = 'SUPER', action = act.ActivateTabRelative(1) }, + { key = '}', mods = 'SHIFT|SUPER', action = act.ActivateTabRelative(1) }, + { key = 'phys:Space', mods = 'SHIFT|CTRL', action = act.QuickSelect }, + { 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 = 'LeftArrow', mods = 'SHIFT|CTRL', action = act.ActivatePaneDirection 'Left' }, + { key = 'LeftArrow', mods = 'SHIFT|ALT|CTRL', action = act.AdjustPaneSize{ 'Left', 1 } }, + { key = 'RightArrow', mods = 'SHIFT|CTRL', action = act.ActivatePaneDirection 'Right' }, + { key = 'RightArrow', mods = 'SHIFT|ALT|CTRL', action = act.AdjustPaneSize{ 'Right', 1 } }, + { key = 'UpArrow', mods = 'SHIFT|CTRL', action = act.ActivatePaneDirection 'Up' }, + { key = 'UpArrow', mods = 'SHIFT|ALT|CTRL', action = act.AdjustPaneSize{ 'Up', 1 } }, + { key = 'DownArrow', mods = 'SHIFT|CTRL', action = act.ActivatePaneDirection 'Down' }, + { key = 'DownArrow', mods = 'SHIFT|ALT|CTRL', action = act.AdjustPaneSize{ 'Down', 1 } }, + { key = 'Insert', mods = 'SHIFT', action = act.PasteFrom 'PrimarySelection' }, + { key = 'Insert', mods = 'CTRL', action = act.CopyTo 'PrimarySelection' }, + { key = 'Copy', mods = 'NONE', action = act.CopyTo 'Clipboard' }, + { key = 'Paste', mods = 'NONE', action = act.PasteFrom 'Clipboard' }, + }, + + key_tables = { + copy_mode = { + { key = 'Tab', mods = 'NONE', action = act.CopyMode 'MoveForwardWord' }, + { key = 'Tab', mods = 'SHIFT', action = act.CopyMode 'MoveBackwardWord' }, + { key = 'Enter', mods = 'NONE', action = act.CopyMode 'MoveToStartOfNextLine' }, + { key = 'Escape', mods = 'NONE', action = act.CopyMode 'Close' }, + { key = 'Space', mods = 'NONE', action = act.CopyMode{ SetSelectionMode = 'Cell' } }, + { key = '$', mods = 'NONE', action = act.CopyMode 'MoveToEndOfLineContent' }, + { key = '$', mods = 'SHIFT', action = act.CopyMode 'MoveToEndOfLineContent' }, + { key = ',', mods = 'NONE', action = act.CopyMode 'JumpReverse' }, + { key = '0', mods = 'NONE', action = act.CopyMode 'MoveToStartOfLine' }, + { key = ';', mods = 'NONE', action = act.CopyMode 'JumpAgain' }, + { key = 'F', mods = 'NONE', action = act.CopyMode{ JumpBackward = { prev_char = false } } }, + { key = 'F', mods = 'SHIFT', action = act.CopyMode{ JumpBackward = { prev_char = false } } }, + { key = 'G', mods = 'NONE', action = act.CopyMode 'MoveToScrollbackBottom' }, + { key = 'G', mods = 'SHIFT', action = act.CopyMode 'MoveToScrollbackBottom' }, + { key = 'H', mods = 'NONE', action = act.CopyMode 'MoveToViewportTop' }, + { key = 'H', mods = 'SHIFT', action = act.CopyMode 'MoveToViewportTop' }, + { key = 'L', mods = 'NONE', action = act.CopyMode 'MoveToViewportBottom' }, + { key = 'L', mods = 'SHIFT', action = act.CopyMode 'MoveToViewportBottom' }, + { key = 'M', mods = 'NONE', action = act.CopyMode 'MoveToViewportMiddle' }, + { key = 'M', mods = 'SHIFT', action = act.CopyMode 'MoveToViewportMiddle' }, + { key = 'O', mods = 'NONE', action = act.CopyMode 'MoveToSelectionOtherEndHoriz' }, + { key = 'O', mods = 'SHIFT', action = act.CopyMode 'MoveToSelectionOtherEndHoriz' }, + { key = 'T', mods = 'NONE', action = act.CopyMode{ JumpBackward = { prev_char = true } } }, + { key = 'T', mods = 'SHIFT', action = act.CopyMode{ JumpBackward = { prev_char = true } } }, + { key = 'V', mods = 'NONE', action = act.CopyMode{ SetSelectionMode = 'Line' } }, + { key = 'V', mods = 'SHIFT', action = act.CopyMode{ SetSelectionMode = 'Line' } }, + { key = '^', mods = 'NONE', action = act.CopyMode 'MoveToStartOfLineContent' }, + { key = '^', mods = 'SHIFT', action = act.CopyMode 'MoveToStartOfLineContent' }, + { key = 'b', mods = 'NONE', action = act.CopyMode 'MoveBackwardWord' }, + { key = 'b', mods = 'ALT', action = act.CopyMode 'MoveBackwardWord' }, + { key = 'b', mods = 'CTRL', action = act.CopyMode 'PageUp' }, + { key = 'c', mods = 'CTRL', action = act.CopyMode 'Close' }, + { key = 'f', mods = 'NONE', action = act.CopyMode{ JumpForward = { prev_char = false } } }, + { key = 'f', mods = 'ALT', action = act.CopyMode 'MoveForwardWord' }, + { key = 'f', mods = 'CTRL', action = act.CopyMode 'PageDown' }, + { key = 'g', mods = 'NONE', action = act.CopyMode 'MoveToScrollbackTop' }, + { key = 'g', mods = 'CTRL', action = act.CopyMode 'Close' }, + { key = 'h', mods = 'NONE', action = act.CopyMode 'MoveLeft' }, + { key = 'j', mods = 'NONE', action = act.CopyMode 'MoveDown' }, + { key = 'k', mods = 'NONE', action = act.CopyMode 'MoveUp' }, + { key = 'l', mods = 'NONE', action = act.CopyMode 'MoveRight' }, + { key = 'm', mods = 'ALT', action = act.CopyMode 'MoveToStartOfLineContent' }, + { key = 'o', mods = 'NONE', action = act.CopyMode 'MoveToSelectionOtherEnd' }, + { key = 'q', mods = 'NONE', action = act.CopyMode 'Close' }, + { key = 't', mods = 'NONE', action = act.CopyMode{ JumpForward = { prev_char = true } } }, + { key = 'v', mods = 'NONE', action = act.CopyMode{ SetSelectionMode = 'Cell' } }, + { key = 'v', mods = 'CTRL', action = act.CopyMode{ SetSelectionMode = 'Block' } }, + { key = 'w', mods = 'NONE', action = act.CopyMode 'MoveForwardWord' }, + { key = 'y', mods = 'NONE', action = act.Multiple{ { CopyTo = 'ClipboardAndPrimarySelection' }, { CopyMode = 'Close' } } }, + { key = 'PageUp', mods = 'NONE', action = act.CopyMode 'PageUp' }, + { key = 'PageDown', mods = 'NONE', action = act.CopyMode 'PageDown' }, + { key = 'LeftArrow', mods = 'NONE', action = act.CopyMode 'MoveLeft' }, + { key = 'LeftArrow', mods = 'ALT', action = act.CopyMode 'MoveBackwardWord' }, + { key = 'RightArrow', mods = 'NONE', action = act.CopyMode 'MoveRight' }, + { key = 'RightArrow', mods = 'ALT', action = act.CopyMode 'MoveForwardWord' }, + { key = 'UpArrow', mods = 'NONE', action = act.CopyMode 'MoveUp' }, + { key = 'DownArrow', mods = 'NONE', action = act.CopyMode 'MoveDown' }, + }, + + search_mode = { + { key = 'Enter', mods = 'NONE', action = act.CopyMode 'PriorMatch' }, + { key = 'Escape', mods = 'NONE', action = act.CopyMode 'Close' }, + { key = 'n', mods = 'CTRL', action = act.CopyMode 'NextMatch' }, + { key = 'p', mods = 'CTRL', action = act.CopyMode 'PriorMatch' }, + { key = 'r', mods = 'CTRL', action = act.CopyMode 'CycleMatchType' }, + { key = 'u', mods = 'CTRL', action = act.CopyMode 'ClearPattern' }, + { key = 'PageUp', mods = 'NONE', action = act.CopyMode 'PriorMatchPage' }, + { key = 'PageDown', mods = 'NONE', action = act.CopyMode 'NextMatchPage' }, + { key = 'UpArrow', mods = 'NONE', action = act.CopyMode 'PriorMatch' }, + { key = 'DownArrow', mods = 'NONE', action = act.CopyMode 'NextMatch' }, + }, + } +}