diff --git a/flake.lock b/flake.lock index f14264c..ddc82be 100644 --- a/flake.lock +++ b/flake.lock @@ -311,11 +311,11 @@ ] }, "locked": { - "lastModified": 1689134369, - "narHash": "sha256-0G9dutIvhS/WUr3Awcnqw71g8EVVvvkOhVDnDDbY4Fw=", + "lastModified": 1689359668, + "narHash": "sha256-NY4CSTKB8WgcMeF+ng+7QV5fj3bGxGC/IUV1rBanJCA=", "owner": "nix-community", "repo": "home-manager", - "rev": "e42fb59768f0305085abde0dd27ab5e0cc15420c", + "rev": "bec87d536c9f441ffeb603fc821fa7e613585d00", "type": "github" }, "original": { @@ -410,11 +410,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1689261696, - "narHash": "sha256-LzfUtFs9MQRvIoQ3MfgSuipBVMXslMPH/vZ+nM40LkA=", + "lastModified": 1689321787, + "narHash": "sha256-ifk7hrfWnJaLlcjCf8YaWDR+9kQ0uT3x9eCz31D9qB0=", "owner": "nixos", "repo": "nixpkgs", - "rev": "df1eee2aa65052a18121ed4971081576b25d6b5c", + "rev": "c11464c6625d9a71d91a3718a3567394638efc3e", "type": "github" }, "original": { diff --git a/home/config/nvim/plugins/wezterm.fnl b/home/config/nvim/plugins/wezterm.fnl new file mode 100644 index 0000000..1e232c1 --- /dev/null +++ b/home/config/nvim/plugins/wezterm.fnl @@ -0,0 +1,14 @@ +(let [wezterm (require :wezterm) + augroup (vim.api.nvim_create_augroup :NifocWezterm {:clear true}) + aucmd vim.api.nvim_create_autocmd] + (wezterm.setup {:create_commands false}) + (aucmd :BufEnter {:callback (fn [args] + (let [path (vim.api.nvim_buf_get_name args.buf) + name (vim.fs.basename path) + title (if (and name (> (length name) 0)) + (.. "nvim " name) + "")] + (wezterm.set_tab_title title))) + :group augroup}) + (aucmd :VimLeavePre {:callback #(wezterm.set_tab_title "") :group augroup})) + diff --git a/home/config/wezterm/config.fnl b/home/config/wezterm/config.fnl index 7ab8896..e44d051 100644 --- a/home/config/wezterm/config.fnl +++ b/home/config/wezterm/config.fnl @@ -11,9 +11,14 @@ ; Icons :elixir "#A074C4" :nix "#7EBAE4" + :reddit "#FA4400" :ssh "#F4C82D"}] ;; Event: Tab format + (fn extract-tab-title [tab] + (let [title tab.tab_title] + (if (and title (> (length title) 0)) title tab.active_pane.title))) + (fn extract-tab-info [title] (match title (where t (t:find "^nvim%s")) @@ -34,13 +39,20 @@ (where t (t:find :^instagram-)) {: title :icon " " :color "#FB2179"} (where t (t:find "^gallery-dl%s")) {:title (t:gsub "^gallery-dl%s(.*)" "%1") :icon " " :color "#009900"} + (where t (t:find "^bdfr%s")) + {:title (t:gsub "^bdfr%s(.*)" "%1") :icon " " :color colors.reddit} + (where t (t:find "^bdfr-raw%s")) {:title (t:gsub "^bdfr-raw%s(.*)" "%1") + :icon " " + :color colors.reddit} (where t (t:find :^redis-)) {: title :icon " " :color "#DC372C"} (where t (t:find "^%[%w+%]%s")) {: title :icon " " :color colors.ssh} + (where t (t:find "^%w+-dl%s")) {: title :icon " " :color "#22BC00"} _ {: title :icon " " :color "#F8F8F2"})) (wezterm.on :format-tab-title (fn [tab tabs panes config hover max-width] - (let [tab-info (extract-tab-info tab.active_pane.title) + (let [raw-title (extract-tab-title tab) + tab-info (extract-tab-info raw-title) title (wezterm.truncate_right tab-info.title (- max-width 5))] (if tab.is_active @@ -85,7 +97,7 @@ :use_fancy_tab_bar true :hide_tab_bar_if_only_one_tab false :tab_bar_at_bottom false - :tab_max_width 32 + :tab_max_width 42 :window_frame {:active_titlebar_bg colors.frame-background :inactive_titlebar_bg colors.frame-background :font (wezterm.font {:family "JetBrains Mono" @@ -148,5 +160,6 @@ ;; Launch Menu :launch_menu [{:label :Btop++ :args [_G.programs.btop]}] ;; Other + :front_end :WebGpu :check_for_updates false}) diff --git a/home/programs/nvim/default.nix b/home/programs/nvim/default.nix index a3a1b89..34fe73a 100644 --- a/home/programs/nvim/default.nix +++ b/home/programs/nvim/default.nix @@ -112,6 +112,12 @@ in plenary-nvim nvim-web-devicons + { + plugin = wezterm-nvim; + config = builtins.readFile ../../config/nvim/plugins/wezterm.fnl; + type = "fennel"; + } + # Keybindings { plugin = nvim-osc52; diff --git a/home/programs/nvim/plugins.nix b/home/programs/nvim/plugins.nix index ccec972..8365723 100644 --- a/home/programs/nvim/plugins.nix +++ b/home/programs/nvim/plugins.nix @@ -39,6 +39,17 @@ in fetchSubmodules = false; }; }; + wezterm-nvim = buildVimPluginFrom2Nix { + pname = "wezterm.nvim"; + version = "2023-04-23"; + src = fetchFromGitHub { + owner = "willothy"; + repo = "wezterm.nvim"; + rev = "9e209cb4afb2b785c116bbe2d9777cb82d700671"; + sha256 = "1hv55frfgl8qaxdpl90lj82ydlkazgdm33ja4jsmkr83bschc98p"; + fetchSubmodules = false; + }; + }; nvim-osc52 = buildVimPluginFrom2Nix { pname = "nvim-osc52"; version = "2023-05-15"; @@ -85,12 +96,12 @@ in }; leap-nvim = buildVimPluginFrom2Nix { pname = "leap.nvim"; - version = "2023-07-13"; + version = "2023-07-14"; src = fetchFromGitHub { owner = "ggandor"; repo = "leap.nvim"; - rev = "bfb20783d951cf349ee8bab7e0f468351176dd75"; - sha256 = "0igwm79nsl72i5ygh5q9q0jpd8xhdrjv5n0py2j4q9ar1r1ly391"; + rev = "bae0433949ba54eb1df629f6e94b33af5922922f"; + sha256 = "1csxnckbwcrliy1098hgzmpqkan36hxw33a0hwl2x5s6xqcbwc9a"; fetchSubmodules = false; }; }; @@ -140,12 +151,12 @@ in }; telescope-nvim = buildVimPluginFrom2Nix { pname = "telescope.nvim"; - version = "2023-07-07"; + version = "2023-07-14"; src = fetchFromGitHub { owner = "nvim-telescope"; repo = "telescope.nvim"; - rev = "276362a8020c6e94c7a76d49aa00d4923b0c02f3"; - sha256 = "043rrifqhg5bsksqhfdc20f96i2s2xyd6qyga4918fr75sf8hmib"; + rev = "2ea8dcd17b4f9b7714354965a28ae4fef4139c71"; + sha256 = "0gvib929fhs7n0ib9jahvkkd3ir4bbsdfjdznd3bj66nfzqqfm1r"; fetchSubmodules = false; }; }; @@ -517,12 +528,12 @@ in }; toggleterm-nvim = buildVimPluginFrom2Nix { pname = "toggleterm.nvim"; - version = "2023-07-10"; + version = "2023-07-14"; src = fetchFromGitHub { owner = "akinsho"; repo = "toggleterm.nvim"; - rev = "83aa231fa414a5dcb72aed97437446a6ca5a81f2"; - sha256 = "0dhbc9s9irzamlv7b8qdamixvh4nf1p7icszdbd8jwks9dfhm9mk"; + rev = "1f5b551a0bd165d0c90cc35fef08b07b9dfb06e1"; + sha256 = "09bksif3f4a1yrflgnkhaj0wx2cym8282xayddknijlgkjbjzi6i"; fetchSubmodules = false; }; }; diff --git a/home/programs/nvim/plugins.yaml b/home/programs/nvim/plugins.yaml index 7918c27..fbc1886 100644 --- a/home/programs/nvim/plugins.yaml +++ b/home/programs/nvim/plugins.yaml @@ -2,6 +2,7 @@ - src: nvim-lua/popup.nvim - src: nvim-lua/plenary.nvim - src: kyazdani42/nvim-web-devicons +- src: willothy/wezterm.nvim # Keybindings - src: ojroques/nvim-osc52 - src: gbprod/yanky.nvim