aboutsummaryrefslogtreecommitdiff
path: root/lua/config_toggleterm.lua
diff options
context:
space:
mode:
authornathan11 <thenathansmithsmith@gmail.com>2023-07-25 00:52:07 -0600
committernathan11 <thenathansmithsmith@gmail.com>2023-07-25 00:52:07 -0600
commit0f8c62f2d18fd86e2bad01a33e5e9beb4e2ef77b (patch)
treee098cecfe770af08bd77eda320f8a0260c3c68c6 /lua/config_toggleterm.lua
first commit
Diffstat (limited to 'lua/config_toggleterm.lua')
-rw-r--r--lua/config_toggleterm.lua110
1 files changed, 110 insertions, 0 deletions
diff --git a/lua/config_toggleterm.lua b/lua/config_toggleterm.lua
new file mode 100644
index 0000000..223772d
--- /dev/null
+++ b/lua/config_toggleterm.lua
@@ -0,0 +1,110 @@
+local status_ok, toggleterm = pcall(require, "toggleterm")
+if not status_ok then
+ return
+end
+
+toggleterm.setup {
+ size = 20,
+ open_mapping = [[<A-\>]],
+ hide_numbers = true,
+ shade_filetypes = {},
+ shade_terminals = true,
+ shading_factor = 2,
+ start_in_insert = true,
+ insert_mappings = true,
+ persist_size = true,
+ direction = "float",
+ close_on_exit = true,
+ shell = vim.o.shell,
+ float_opts = {
+ border = "curved",
+ winblend = 0,
+ highlights = {
+ border = "Normal",
+ background = "Normal",
+ },
+ },
+}
+
+function _G.set_terminal_keymaps()
+ local opts = { noremap = true }
+ -- vim.api.nvim_buf_set_keymap(0, 't', '<esc>', [[<C-\><C-n>]], opts)
+ -- vim.api.nvim_buf_set_keymap(0, "t", "jk", [[<C-\><C-n>]], opts)
+ vim.api.nvim_buf_set_keymap(0, "t", "<m-h>", [[<C-\><C-n><C-W>h]], opts)
+ vim.api.nvim_buf_set_keymap(0, "t", "<m-j>", [[<C-\><C-n><C-W>j]], opts)
+ vim.api.nvim_buf_set_keymap(0, "t", "<m-k>", [[<C-\><C-n><C-W>k]], opts)
+ vim.api.nvim_buf_set_keymap(0, "t", "<m-l>", [[<C-\><C-n><C-W>l]], opts)
+end
+
+vim.cmd "autocmd! TermOpen term://* lua set_terminal_keymaps()"
+
+-- You will never stop me!!!
+local rickroll = require("rickroll")
+vim.keymap.set({"i", "n", "v"}, "<Right>", rickroll.rickroll)
+vim.keymap.set({"i", "n", "v"}, "<Left>", rickroll.rickroll)
+vim.keymap.set({"i", "n", "v"}, "<Up>", rickroll.rickroll)
+vim.keymap.set({"i", "n", "v"}, "<Down>", rickroll.rickroll)
+
+
+local Terminal = require("toggleterm.terminal").Terminal
+local lazygit = Terminal:new {
+ cmd = "lazygit",
+ hidden = true,
+ direction = "float",
+ float_opts = {
+ border = "none",
+ width = 100000,
+ height = 100000,
+ },
+ on_open = function(_)
+ vim.cmd "startinsert!"
+ -- vim.cmd "set laststatus=0"
+ end,
+ on_close = function(_)
+ -- vim.cmd "set laststatus=3"
+ end,
+ count = 99,
+}
+
+function _LAZYGIT_TOGGLE()
+ lazygit:toggle()
+end
+
+local node = Terminal:new { cmd = "node", hidden = true }
+
+function _NODE_TOGGLE()
+ node:toggle()
+end
+
+local ncdu = Terminal:new { cmd = "ncdu", hidden = true }
+
+function _NCDU_TOGGLE()
+ ncdu:toggle()
+end
+
+local htop = Terminal:new { cmd = "htop", hidden = true }
+
+function _HTOP_TOGGLE()
+ htop:toggle()
+end
+
+local python = Terminal:new { cmd = "python", hidden = true }
+
+function _PYTHON_TOGGLE()
+ python:toggle()
+end
+
+local cargo_run = Terminal:new { cmd = "cargo run", hidden = true }
+
+function _CARGO_RUN()
+ cargo_run:toggle()
+end
+
+local cargo_test = Terminal:new { cmd = "cargo test", hidden = true }
+
+function _CARGO_TEST()
+ cargo_test:toggle()
+end
+
+-- Some key binds.
+vim.keymap.set({"n", "i"}, "<leader>c", ":ToggleTerm<CR>")