diff --git a/.tmux.conf b/.tmux.conf index 2ab43d5..5920be4 100644 --- a/.tmux.conf +++ b/.tmux.conf @@ -100,6 +100,10 @@ bind-key -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U" bind-key -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R" +# Persistent floating pane with +bind-key \\ run-shell 'tmux-td' + +# bind-key \\ run-shell "tmux display-popup -E 'tmux detach-client'" bind-key -T copy-mode-vi C-h select-pane -L bind-key -T copy-mode-vi C-j select-pane -D bind-key -T copy-mode-vi C-k select-pane -U diff --git a/nvim/lua/config/keymaps.lua b/nvim/lua/config/keymaps.lua index 9031973..ae5d66e 100644 --- a/nvim/lua/config/keymaps.lua +++ b/nvim/lua/config/keymaps.lua @@ -67,21 +67,21 @@ map("n", "ff", "FzfLua", { desc = "FZF commands" }) -- map("t", "", "close", { desc = "which_key_ignore" }) map("n", "qw", "wq", { desc = "save & quit" }) -local td_cli = require("toggleterm.terminal").Terminal:new({ - cmd = "node /home/omnissiah/git/td/dist/cli.js", - direction = "float", - close_on_exit = false, - hidden = true, - on_open = function(term) - vim.api.nvim_buf_set_keymap(term.bufnr, "n", "q", "close", { noremap = true, silent = true }) - vim.api.nvim_buf_set_keymap(term.bufnr, "t", "", ":close", { noremap = true, silent = true }) - vim.api.nvim_buf_set_keymap(term.bufnr, "t", "", "close", { noremap = true, silent = true }) - end, -}) -vim.keymap.set("t", "\\", function() - td_cli:toggle() -end, { desc = "Toggle TD CLI floating terminal" }) +-- local td_cli = require("toggleterm.terminal").Terminal:new({ +-- cmd = "node /home/omnissiah/git/td/dist/cli.js", +-- direction = "float", +-- close_on_exit = false, +-- hidden = true, +-- on_open = function(term) +-- vim.api.nvim_buf_set_keymap(term.bufnr, "n", "q", "close", { noremap = true, silent = true }) +-- vim.api.nvim_buf_set_keymap(term.bufnr, "t", "", ":close", { noremap = true, silent = true }) +-- vim.api.nvim_buf_set_keymap(term.bufnr, "t", "", "close", { noremap = true, silent = true }) +-- end, +-- }) +-- vim.keymap.set("t", "\\", function() +-- td_cli:toggle() +-- end, { desc = "Toggle TD CLI floating terminal" }) vim.keymap.set("n", "\\", function() - td_cli:toggle() -end, { desc = "Toggle TD CLI floating terminal" }) + vim.cmd("!tmux-td") +end, { desc = "Toggle TD CLI floating terminal and run tmux-td" }) -- vim.keymap.set("t", "", "ToggleTerm", { noremap = true, silent = true }) diff --git a/readme.md b/readme.md index b04ac3a..22f782f 100644 --- a/readme.md +++ b/readme.md @@ -1,5 +1,5 @@ link folders/files locally -e.g. in ~/.config/ ln -s lazyvim ~/.git/configs/remote lazyvim omnissiah@mars:~/git/configs$ mv ~/.tmux.conf ~/git/configs/.tmux.conf omnissiah@mars:~/git/configs$ ln .tmux.conf ~/.tmux.conf +omnissiah@mars:~/installs/scripts$ ln ~/git/config/scripts/n n diff --git a/scripts/n b/scripts/n new file mode 100755 index 0000000..bb7dbc7 --- /dev/null +++ b/scripts/n @@ -0,0 +1,3 @@ +#!/bin/bash +export NVIM_APPNAME=lazyvim +exec /home/linuxbrew/.linuxbrew/bin/nvim "$@" diff --git a/scripts/td b/scripts/td new file mode 100755 index 0000000..bd802e4 --- /dev/null +++ b/scripts/td @@ -0,0 +1,2 @@ +#!/bin/bash +node ~/git/td/dist/cli.js diff --git a/scripts/tmux-edit-scrollback b/scripts/tmux-edit-scrollback new file mode 100755 index 0000000..1d5e2b0 --- /dev/null +++ b/scripts/tmux-edit-scrollback @@ -0,0 +1,5 @@ +#!/bin/bash + +file=$(mktemp) +tmux capture-pane -pS -32768 >$file +tmux new-window -n:scrollback-edit "n $file" diff --git a/scripts/tmux-td b/scripts/tmux-td new file mode 100755 index 0000000..798a0c1 --- /dev/null +++ b/scripts/tmux-td @@ -0,0 +1,12 @@ +#!/bin/bash + +if ! tmux has-session -t td-cli 2>/dev/null; then + tmux new-session -d -s td-cli /home/omnissiah/installs/scripts/td +fi + +if [ "$(tmux display-message -p -F "#{session_name}")" = "td-cli" ]; then + tmux detach-client + tmux display-popup -C +else + tmux display-popup -d -E -w90% -h90% 'tmux attach-session -x -t td-cli' +fi