This commit is contained in:
Hadi 2024-10-04 21:03:01 +02:00
parent 8f6b049129
commit 58fa41a210
15 changed files with 417 additions and 184 deletions

View File

@ -6,16 +6,18 @@ feel free to contribute <3 ([CONTRIBUTING.md](CONTRIBUTING.md))
- [ ] !!! Qutebrowser Bitwarden integration (I need this.) - [ ] !!! Qutebrowser Bitwarden integration (I need this.)
- [ ] Hyprland - [ ] Hyprland
- [ ] Fix screenshots (screenshot region's border shows up in the screenshot, hyprshot jq error?) and add in the scripts doc - [ ] Fix screenshots (screenshot region's border shows up in the screenshot, hyprshot jq error?) and add in the scripts doc
- [ ] Nixy
- [ ] Open Keybindings
- [ ] Nixvim - [ ] Nixvim
- [ ] Markdown tab size 2
- [ ] Harpoon - [ ] Harpoon
- [ ] UFO for folding - [ ] UFO for folding
- [ ] neotest golang - [ ] neotest golang
- [ ] Keymaps: - [ ] nvim dap
- Trouble
- Tagbar (actually not working)
- Markdown
- [ ] <https://github.com/0fie/Mika> - [ ] <https://github.com/0fie/Mika>
- [ ] <https://github.com/redyf/Neve/blob/main/config/utils/whichkey.nix>
- [ ] Update docs - [ ] Update docs
- [ ] Workflow README
## Server ## Server

View File

@ -1,11 +1,46 @@
{ {
programs.nixvim = { programs.nixvim = {
enable = true; colorschemes = {
colorschemes.catppuccin = { catppuccin = {
enable = true; enable = true;
settings = { settings = {
background = {
light = "macchiato";
dark = "mocha";
};
flavour =
"mocha"; # "latte", "mocha", "frappe", "macchiato" or raw lua code
disable_bold = false;
disable_italic = false;
disable_underline = false;
transparent_background = true; transparent_background = true;
flavour = "mocha"; term_colors = true;
integrations = {
cmp = true;
noice = true;
notify = true;
neotree = true;
harpoon = true;
gitsigns = true;
which_key = true;
illuminate = { enabled = true; };
treesitter = true;
treesitter_context = true;
telescope.enabled = true;
indent_blankline.enabled = true;
mini.enabled = true;
native_lsp = {
enabled = true;
inlay_hints = { background = true; };
underlines = {
errors = [ "underline" ];
hints = [ "underline" ];
information = [ "underline" ];
warnings = [ "underline" ];
};
};
};
};
}; };
}; };
}; };

View File

@ -8,10 +8,11 @@
./plugins/tree.nix ./plugins/tree.nix
./plugins/ui.nix ./plugins/ui.nix
./plugins/utils.nix ./plugins/utils.nix
./plugins/zen-mode.nix
./options.nix ./options.nix
./colorscheme.nix ./colorscheme.nix
./keymaps.nix ./keymaps.nix
]; ];
programs.nixvim.enable = true;
} }

View File

@ -1,9 +1,80 @@
{ {
programs.nixvim.keymaps = [ programs.nixvim = {
plugins.which-key = {
enable = true;
settings = {
icons = {
breadcrumb = "»";
group = "+";
separator = ""; # ➜
};
spec = [
# General Mappings
{ {
key = "<leader>fm"; __unkeyed-1 = "<leader>c";
action = "<cmd>lua vim.lsp.buf.format()<cr>"; mode = [ "n" "v" ];
options.desc = "LSP Format"; group = "+code";
}
{
__unkeyed-1 = "<leader>d";
mode = [ "n" "v" ];
group = "+debug";
}
{
__unkeyed-1 = "<leader>s";
mode = "n";
group = "+search";
}
{
__unkeyed-1 = "<leader>t";
mode = "n";
group = "+trouble";
}
{
__unkeyed-1 = "<leader>u";
mode = "n";
group = "+ui";
}
{
__unkeyed-1 = "<leader>w";
mode = "n";
group = "+windows";
}
];
win = {
border = "none";
wo.winblend = 0;
};
};
};
keymaps = [
# General Mappings
{
key = "<leader>e";
action = "<cmd>Oil --float<cr>";
options.desc = "Oil";
}
{
key = "-";
action = "<cmd>Oil<cr>";
options.desc = "Oil";
}
{
key = "<C-h>";
action = "<cmd>TmuxNavigateLeft<cr>";
}
{
key = "<C-j>";
action = "<cmd>TmuxNavigateDown<cr>";
}
{
key = "<C-k>";
action = "<cmd>TmuxNavigateUp<cr>";
}
{
key = "<C-l>";
action = "<cmd>TmuxNavigateRight<cr>";
} }
# UI # UI
@ -13,15 +84,96 @@
options.desc = "Toggle word wrapping"; options.desc = "Toggle word wrapping";
} }
{ {
key = "<leader>uW"; key = "<leader>ul";
action = "<cmd>set linebreak!<cr>"; action = "<cmd>set linebreak!<cr>";
options.desc = "Toggle linebreak"; options.desc = "Toggle linebreak";
} }
{ {
key = "<leader>uz"; key = "<leader>us";
action = "<cmd>ZenMode<cr>"; action = "<cmd>set spell!<cr>";
options.desc = "Toggle ZenMode"; options.desc = "Toggle spellcheck";
}
{
key = "<leader>uc";
action = "<cmd>set cursorline!<cr>";
options.desc = "Toggle cursorline";
}
{
key = "<leader>un";
action = "<cmd>set number!<cr>";
options.desc = "Toggle line numbers";
}
{
key = "<leader>ur";
action = "<cmd>set relativenumber!<cr>";
options.desc = "Toggle relative line numbers";
}
{
key = "<leader>ut";
action = "<cmd>set showtabline=2<cr>";
options.desc = "Show tabline";
}
{
key = "<leader>uT";
action = "<cmd>set showtabline=0<cr>";
options.desc = "Hide tabline";
}
# Search
{
key = "<leader> ";
action = "<cmd>lua require('telescope.builtin').find_files()<cr>";
options.desc = "Telescope";
}
{
key = "<leader>sg";
action = "<cmd>lua require('telescope.builtin').live_grep()<cr>";
options.desc = "Livegrep";
}
{
key = "<leader>sf";
action = "<cmd>lua require('telescope.builtin').find_files()<cr>";
options.desc = "Find Files";
}
{
key = "<leader>sb";
action = "<cmd>lua require('telescope.builtin').buffers()<cr>";
options.desc = "Buffers";
}
{
key = "<leader>sh";
action = "<cmd>lua require('telescope.builtin').help_tags()<cr>";
options.desc = "Help Tags";
}
{
key = "<leader>sc";
action = "<cmd>lua require('telescope.builtin').commands()<cr>";
options.desc = "Commands";
}
{
key = "<leader>sm";
action = "<cmd>lua require('telescope.builtin').marks()<cr>";
options.desc = "Marks";
}
{
key = "<leader>so";
action = "<cmd>lua require('telescope.builtin').oldfiles()<cr>";
options.desc = "Oldfiles";
}
{
key = "<leader>ss";
action = "<cmd>lua require('telescope.builtin').spell_suggest()<cr>";
options.desc = "Spell Suggest";
}
{
key = "<leader>st";
action = "<cmd>lua require('telescope.builtin').treesitter()<cr>";
options.desc = "Treesitter";
}
{
key = "<leader>sr";
action = "<cmd>:noh<return><esc>";
options.desc = "Reset search";
} }
# Trouble # Trouble
@ -55,5 +207,81 @@
action = "<cmd>Trouble qflist toggle<cr>"; action = "<cmd>Trouble qflist toggle<cr>";
options.desc = "Quickfix List (Trouble)"; options.desc = "Quickfix List (Trouble)";
} }
];
# Windows
{
key = "<leader>ws";
action = "<cmd>split<cr>";
options.desc = "Split";
}
{
key = "<leader>wv";
action = "<cmd>vsplit<cr>";
options.desc = "VSplit";
}
{
key = "<leader>wd";
action = "<cmd>close<cr>";
options.desc = "Close";
}
# code
{
key = "<leader>cd";
action = "<cmd>lua vim.lsp.buf.definition()<cr>";
options.desc = "LSP Definition";
}
{
key = "<leader>cr";
action = "<cmd>lua vim.lsp.buf.references()<cr>";
options.desc = "LSP References";
}
{
key = "<leader>ci";
action = "<cmd>lua vim.lsp.buf.implementation()<cr>";
options.desc = "LSP Implementation";
}
{
key = "<leader>ct";
action = "<cmd>lua vim.lsp.buf.type_definition()<cr>";
options.desc = "LSP Type Definition";
}
{
key = "<leader>cs";
action = "<cmd>lua vim.lsp.buf.signature_help()<cr>";
options.desc = "LSP Signature Help";
}
{
key = "<leader>ch";
action = "<cmd>lua vim.lsp.buf.hover()<cr>";
options.desc = "LSP Hover";
}
{
key = "<leader>ca";
action = "<cmd>lua vim.lsp.buf.code_action()<cr>";
options.desc = "LSP Code Action";
}
{
key = "<leader>cf";
action = "<cmd>lua vim.lsp.buf.formatting()<cr>";
options.desc = "LSP Formatting";
}
{
key = "<leader>ce";
action = "<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<cr>";
options.desc = "LSP Line Diagnostics";
}
{
key = "<leader>cn";
action = "<cmd>lua vim.lsp.diagnostic.goto_next()<cr>";
options.desc = "LSP Next Diagnostic";
}
{
key = "<leader>cp";
action = "<cmd>lua vim.lsp.diagnostic.goto_prev()<cr>";
options.desc = "LSP Previous Diagnostic";
}
];
};
} }

View File

@ -15,7 +15,10 @@
sources = [ sources = [
{ name = "nvim_lsp"; } { name = "nvim_lsp"; }
{ name = "luasnip"; } { name = "luasnip"; }
{ name = "buffer"; } {
name = "buffer";
option.get_bufnrs.__raw = "vim.api.nvim_list_bufs";
}
{ name = "nvim_lua"; } { name = "nvim_lua"; }
{ name = "path"; } { name = "path"; }
]; ];
@ -80,7 +83,7 @@
completion = { completion = {
winhighlight = winhighlight =
"FloatBorder:CmpBorder,Normal:CmpPmenu,Search:PmenuSel"; "FloatBorder:CmpBorder,Normal:CmpPmenu,Search:PmenuSel";
scrollbar = true; scrollbar = false;
sidePadding = 0; sidePadding = 0;
border = [ "" "" "" "" "" "" "" "" ]; border = [ "" "" "" "" "" "" "" "" ];
}; };

View File

@ -9,16 +9,9 @@
gopls.enable = true; gopls.enable = true;
nixd.enable = true; nixd.enable = true;
tailwindcss.enable = true; tailwindcss.enable = true;
# html.enable = true; # FIXME: broken for some reason html.enable = true;
svelte.enable = true; svelte.enable = true;
marksman.enable = true; marksman.enable = true;
ltex = {
enable = false;
settings = {
enabled = false;
language = "en";
};
};
}; };
keymaps.lspBuf = { keymaps.lspBuf = {
"gd" = "definition"; "gd" = "definition";

View File

@ -9,7 +9,7 @@
extraConfigLua = "require('render-markdown').setup({})"; extraConfigLua = "require('render-markdown').setup({})";
plugins = { plugins = {
mkdnflow = { mkdnflow = {
enable = true; enable = false;
mappings = { mappings = {
# Main # Main

View File

@ -40,22 +40,5 @@
}; };
}; };
}; };
keymaps = [
{
key = "-";
action = "<cmd>Oil<cr>";
options.desc = "Oil";
}
{
key = "<leader>e";
action = "<cmd>Oil --float<cr>";
options.desc = "Oil";
}
{
key = "<leader>E";
action = "<cmd>Neotree toggle<cr>";
options.desc = "Neotree";
}
];
}; };
} }

View File

@ -9,14 +9,54 @@
Headline1.bold = true; Headline1.bold = true;
}; };
plugins = { plugins = {
lualine.enable = true; lualine = {
enable = true;
settings = {
options = {
sections = {
lualine_a = [ "mode" ];
lualine_b = [ ];
lualine_c = [ ];
lualine_y = [{
__unkeyed-1 = "aerial";
colored = true;
cond = {
__raw = ''
function()
local buf_size_limit = 1024 * 1024
if vim.api.nvim_buf_get_offset(0, vim.api.nvim_buf_line_count(0)) > buf_size_limit then
return false
end
return true
end
'';
};
dense = false;
dense_sep = ".";
depth = { __raw = "nil"; };
sep = " ) ";
}];
lualine_z = [{ __unkeyed-1 = "location"; }];
};
tabline = {
lualine_a = [{
__unkeyed-1 = "buffers";
symbols = { alternate_file = ""; };
}];
lualine_z = [ "tabs" ];
};
};
};
};
dap.enable = true;
web-devicons.enable = true; web-devicons.enable = true;
noice.enable = true; noice.enable = true;
gitsigns = { gitsigns = {
enable = true; enable = true;
settings.current_line_blame = false; settings.current_line_blame = false;
}; };
bufferline.enable = true; # bufferline.enable = true;
trouble.enable = true; trouble.enable = true;
indent-blankline.enable = true; indent-blankline.enable = true;
which-key.enable = true; which-key.enable = true;

View File

@ -13,10 +13,6 @@
friendly-snippets.enable = true; friendly-snippets.enable = true;
telescope = { telescope = {
enable = true; enable = true;
keymaps = {
"<leader>fg" = "live_grep";
"<leader> " = "find_files";
};
extensions.fzf-native = { enable = true; }; extensions.fzf-native = { enable = true; };
}; };
treesitter = { treesitter = {
@ -29,23 +25,5 @@
}; };
treesitter-context.enable = true; treesitter-context.enable = true;
}; };
keymaps = [
{
key = "<C-h>";
action = "<cmd>TmuxNavigateLeft<cr>";
}
{
key = "<C-j>";
action = "<cmd>TmuxNavigateDown<cr>";
}
{
key = "<C-k>";
action = "<cmd>TmuxNavigateUp<cr>";
}
{
key = "<C-l>";
action = "<cmd>TmuxNavigateRight<cr>";
}
];
}; };
} }

View File

@ -1,31 +0,0 @@
{
programs.nixvim.plugins.zen-mode = {
enable = true;
settings = {
on_open = ''
function()
require("gitsigns.actions").toggle_current_line_blame()
vim.opt.relativenumber = false
vim.opt.signcolumn = "no"
vim.opt.wrap = true
vim.opt.linebreak = true
end
'';
plugins = {
gitsigns = { enabled = true; };
options = {
enabled = true;
ruler = false;
showcmd = false;
};
tmux = { enabled = true; };
};
window = {
backdrop = 0.95;
height = 1;
options = { signcolumn = "no"; };
width = 0.9;
};
};
};
}

View File

@ -25,7 +25,8 @@
plugins = with pkgs; [ plugins = with pkgs; [
tmuxPlugins.vim-tmux-navigator tmuxPlugins.vim-tmux-navigator
tmuxPlugins.resurrect tmuxPlugins.resurrect
tmuxPlugins.nord tmuxPlugins.sensible
tmuxPlugins.tokyo-night-tmux
]; ];
}; };
} }

View File

@ -1,6 +1,8 @@
{ pkgs, ... }: { pkgs, ... }:
let let
hyprfocus = pkgs.writeShellScriptBin "hyprfocus" '' hyprfocus-on = pkgs.writeShellScriptBin "hyprfocus-on"
# bash
''
hyprctl keyword "general:gaps_in" 0 hyprctl keyword "general:gaps_in" 0
hyprctl keyword "general:gaps_out" 0 hyprctl keyword "general:gaps_out" 0
# TODO: Fix this: # TODO: Fix this:
@ -10,10 +12,24 @@ let
hyprctl keyword "decoration:drop_shadow" false hyprctl keyword "decoration:drop_shadow" false
hyprctl keyword "decoration:inactive_opacity" 0.98 hyprctl keyword "decoration:inactive_opacity" 0.98
hyprctl keyword "decoration:active_opacity" 1 hyprctl keyword "decoration:active_opacity" 1
echo "1" > /tmp/hyprfocus
''; '';
hyprfocus-kill = pkgs.writeShellScriptBin "hyprfocus-kill" '' hyprfocus-off = pkgs.writeShellScriptBin "hyprfocus-off"
# bash
''
hyprctl reload hyprctl reload
hyprpanel-reload hyprpanel-reload
rm /tmp/hyprfocus
''; '';
in { home.packages = [ hyprfocus hyprfocus-kill ]; }
hyprfocus-toggle = pkgs.writeShellScriptBin "hyprfocus-toggle"
# bash
''
if [ -f /tmp/hyprfocus ]; then
hyprfocus-kill
else
hyprfocus
fi
'';
in { home.packages = [ hyprfocus-on hyprfocus-off hyprfocus-toggle ]; }

View File

@ -1,6 +1,6 @@
{ {
services.batsignal = { services.batsignal = {
enable = true; enable = true;
extraArgs = [ "-c 10" "-w 30" "-f 97" ]; extraArgs = [ "-c 10" "-w 30" "-f disabled" ];
}; };
} }

View File

@ -36,7 +36,6 @@
xwayland.enable = true; xwayland.enable = true;
systemd.enable = true; systemd.enable = true;
package = inputs.hyprland.packages."${pkgs.system}".hyprland; package = inputs.hyprland.packages."${pkgs.system}".hyprland;
plugins = [ inputs.hyprland-plugins.packages.${pkgs.system}.hyprexpo ];
settings = { settings = {
"$mod" = "SUPER"; "$mod" = "SUPER";
@ -55,21 +54,6 @@
",prefered,auto,1" ",prefered,auto,1"
]; ];
plugin = {
hyprexpo = {
columns = 2;
gap_size = 5;
bg_col = "rgb(111111)";
workspace_method =
"center current"; # [center/first] [workspace] e.g. first 1 or center m+1
enable_gesture = true; # laptop touchpad
gesture_fingers = 3; # 3 or 4
gesture_distance = 300; # how far is the "max"
gesture_positive = true; # positive = swipe down. Negative = swipe up.
};
};
bind = [ bind = [
"$mod, RETURN, exec, ${pkgs.kitty}/bin/kitty" # Kitty "$mod, RETURN, exec, ${pkgs.kitty}/bin/kitty" # Kitty
"$mod, E, exec, ${pkgs.xfce.thunar}/bin/thunar" # Thunar "$mod, E, exec, ${pkgs.xfce.thunar}/bin/thunar" # Thunar
@ -78,7 +62,7 @@
"$mod, L, exec, ${pkgs.hyprlock}/bin/hyprlock" # Lock "$mod, L, exec, ${pkgs.hyprlock}/bin/hyprlock" # Lock
"$mod, X, exec, powermenu" # Powermenu "$mod, X, exec, powermenu" # Powermenu
"$mod, SPACE, exec, menu" # Launcher "$mod, SPACE, exec, menu" # Launcher
"$shiftMod, SPACE, hyprexpo:expo, toggle" # HyprExpo "$shiftMod, SPACE, exec, hyprfocus-toggle" # Toggle HyprFocus
"$mod, Q, killactive," # Close window "$mod, Q, killactive," # Close window
"$mod, T, togglefloating," # Toggle Floating "$mod, T, togglefloating," # Toggle Floating