diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e43b0f9
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.DS_Store
diff --git a/bash/default.nix b/bash/default.nix
index 81e59f1..2ff59d2 100644
--- a/bash/default.nix
+++ b/bash/default.nix
@@ -8,6 +8,7 @@
};
profileExtra = ''
set -o vi
+ bind "set show-mode-in-prompt on"
[ ! -z $TMUX ] || tmux a || tmux
neofetch
'';
diff --git a/iterm2/config/com.googlecode.iterm2.plist b/iterm2/config/com.googlecode.iterm2.plist
index d84d1cd..a12cb78 100644
--- a/iterm2/config/com.googlecode.iterm2.plist
+++ b/iterm2/config/com.googlecode.iterm2.plist
@@ -1392,7 +1392,7 @@
Minimum Contrast
0.4030938720703125
Mouse Reporting
-
+
Name
Default
Non Ascii Font
diff --git a/nvim/config/lua/base.lua b/nvim/config/lua/base.lua
index 380d813..56e3d65 100644
--- a/nvim/config/lua/base.lua
+++ b/nvim/config/lua/base.lua
@@ -9,6 +9,9 @@ vim.cmd('colorscheme nord')
vim.keymap.set("n", "", "", {silent = true})
vim.g.mapleader = " "
+-- Set Timeout
+vim.opt.timeoutlen = 250
+
-- Disable NetRW
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1
diff --git a/nvim/config/lua/init.lua b/nvim/config/lua/init.lua
index 656738b..7bff725 100644
--- a/nvim/config/lua/init.lua
+++ b/nvim/config/lua/init.lua
@@ -7,8 +7,11 @@ require('leap-config')
require('lsp-config')
require('lsp-lines-config')
require('lualine-config')
-require('null-ls-config')
require('noice-config')
+require('null-ls-config')
require('numb-config')
+require('silicon-config')
require('telescope-config')
+require('toggleterm-config')
require('ts-config')
+require('which-key-config')
diff --git a/nvim/config/lua/lsp-config.lua b/nvim/config/lua/lsp-config.lua
index b2dd5a7..00c3fc8 100644
--- a/nvim/config/lua/lsp-config.lua
+++ b/nvim/config/lua/lsp-config.lua
@@ -2,25 +2,16 @@ local nix_vars = require("nix-vars")
local nvim_lsp = require('lspconfig')
local on_attach = function(client, bufnr)
- -- Mappings.
- -- See `:help vim.lsp.*` for documentation on any of the below functions
local bufopts = {noremap = true, silent = true, buffer = bufnr}
- vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts)
- vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)
vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts)
- vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts)
vim.keymap.set('n', '', vim.lsp.buf.signature_help, bufopts)
- vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, bufopts)
- vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder,
- bufopts)
- vim.keymap.set('n', 'wl', function()
- print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
- end, bufopts)
- vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, bufopts)
- vim.keymap.set('n', 'rn', vim.lsp.buf.rename, bufopts)
- vim.keymap.set('n', 'ca', vim.lsp.buf.code_action, bufopts)
- vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts)
- vim.keymap.set('n', 'f',
+ vim.keymap.set('n', 'lD', vim.lsp.buf.declaration, bufopts)
+ vim.keymap.set('n', 'ld', vim.lsp.buf.definition, bufopts)
+ vim.keymap.set('n', 'li', vim.lsp.buf.implementation, bufopts)
+ vim.keymap.set('n', 'ln', vim.lsp.buf.rename, bufopts)
+ vim.keymap.set('n', 'lr', vim.lsp.buf.references, bufopts)
+ vim.keymap.set('n', 'lt', vim.lsp.buf.type_definition, bufopts)
+ vim.keymap.set('n', 'lf',
function() vim.lsp.buf.format {async = true} end, bufopts)
end
diff --git a/nvim/config/lua/silicon-config.lua b/nvim/config/lua/silicon-config.lua
new file mode 100644
index 0000000..82a442f
--- /dev/null
+++ b/nvim/config/lua/silicon-config.lua
@@ -0,0 +1,10 @@
+local silicon = require('silicon')
+silicon.setup({})
+
+vim.keymap.set('v', 'ss', function() silicon.visualise_api({}) end)
+vim.keymap.set('v', 'sb',
+ function() silicon.visualise_api({show_buf = true}) end)
+vim.keymap.set('n', 'sv',
+ function() silicon.visualise_api({visible = true}) end)
+vim.keymap.set('n', 'sb',
+ function() silicon.visualise_api({show_buf = true}) end)
diff --git a/nvim/config/lua/toggleterm-config.lua b/nvim/config/lua/toggleterm-config.lua
new file mode 100644
index 0000000..91bc05e
--- /dev/null
+++ b/nvim/config/lua/toggleterm-config.lua
@@ -0,0 +1,11 @@
+require("toggleterm").setup({open_mapping = [[]]})
+
+-- Duplicate C-w & Esc Behavior
+function _G.set_terminal_keymaps()
+ local opts = {buffer = 0}
+ vim.opt.signcolumn = "no"
+ vim.keymap.set('t', '', [[]], opts)
+ vim.keymap.set('t', '', [[]], opts)
+end
+
+vim.cmd('autocmd! TermOpen term://* lua set_terminal_keymaps()')
diff --git a/nvim/config/lua/which-key-config.lua b/nvim/config/lua/which-key-config.lua
new file mode 100644
index 0000000..54f1699
--- /dev/null
+++ b/nvim/config/lua/which-key-config.lua
@@ -0,0 +1,36 @@
+local wk = require("which-key")
+
+wk.setup({})
+
+wk.register({
+ K = {"Definition Hover"},
+ [""] = {"Signature Help"},
+ [""] = {
+ q = {"Show Diagnostics"},
+ e = {"Show Line Diagnostics"},
+ f = {
+ name = "Find - Telescope",
+ f = {"Telescope find_files", "Find File"},
+ g = {"Telescope live_grep", "Live Grep"},
+ b = {"Telescope buffers", "Find Buffer"},
+ h = {"Telescope help_tags", "Help Tags"}
+ },
+ l = {
+ name = "LSP",
+ D = {"Declaration"},
+ d = {"Definition"},
+ f = {"Format"},
+ i = {"Implementation"},
+ n = {"Rename"},
+ r = {"References"},
+ t = {"Type Definition"}
+ },
+ s = {
+ name = "Screenshot",
+ mode = {'v', 'n'},
+ b = {"Buffer Screenshot", mode = {'v', 'n'}},
+ s = {"Selected Screenshot", mode = 'v'},
+ v = {"Visual Screenshot", mode = 'n'}
+ }
+ }
+})
diff --git a/nvim/default.nix b/nvim/default.nix
index 25e54da..ac7fa7d 100644
--- a/nvim/default.nix
+++ b/nvim/default.nix
@@ -39,14 +39,16 @@ in
nvim-autopairs # Automatically Close Pairs (),[],{}
telescope-fzf-native-nvim # Faster Telescope
telescope-nvim # Fuzzy Finder
+ toggleterm-nvim # Terminal Helper
vim-nix # Nix Helpers
+ which-key-nvim # Shortcut Helper
# ------------------
# --- Theme / UI ---
# ------------------
- nord-nvim # Theme
lualine-nvim # Bottom Line
noice-nvim # UI Tweaks
+ nord-nvim # Theme
nvim-web-devicons # Dev Icons
# ------------------
@@ -63,6 +65,23 @@ in
)
)
+ # ------------------
+ # ----- Silicon ----
+ # ------------------
+ (
+ pkgs.vimUtils.buildVimPluginFrom2Nix {
+ pname = "silicon.lua";
+ version = "2022-12-03";
+ src = pkgs.fetchFromGitHub {
+ owner = "0oAstro";
+ repo = "silicon.lua";
+ rev = "8db5682c9c13d6de584551c4b2b9982709f05610";
+ sha256 = "0148l59wrffmfw4xya0l1ys277hgrm41wspgp0ns2dddsr11mwav";
+ };
+ meta.homepage = "https://github.com/0oAstro/silicon.lua/";
+ }
+ )
+
];
extraPackages = with pkgs; [
@@ -83,6 +102,9 @@ in
nodePackages.prettier
sqlfluff
+ # Silicon
+ silicon
+
];
extraConfig = ":luafile ~/.config/nvim/lua/init.lua";
diff --git a/readline/default.nix b/readline/default.nix
index a7be5bf..e3f2580 100644
--- a/readline/default.nix
+++ b/readline/default.nix
@@ -4,12 +4,9 @@
programs.readline = {
enable = true;
extraConfig = ''
- # Show Prompt
- set show-mode-in-prompt on
-
# Approximate VIM Dracula Colors
- set vi-ins-mode-string \1\e[01;38;5;23;48;5;231m\2 INS \1\e[38;5;231;48;5;238m\2\1\e[0m\2
- set vi-cmd-mode-string \1\e[01;38;5;22;48;5;148m\2 CMD \1\e[38;5;148;48;5;238m\2\1\e[0m\2
+ set vi-ins-mode-string \1\e[01;38;5;23;48;5;231m\2 I \1\e[38;5;231;48;5;238m\2\1\e[0m\2
+ set vi-cmd-mode-string \1\e[01;38;5;22;48;5;148m\2 C \1\e[38;5;148;48;5;238m\2\1\e[0m\2
'';
};