feat(home:git): add gh tool

This commit is contained in:
ooks-io 2024-07-01 21:28:47 +12:00
parent 33e7a6f7f9
commit e743691d94
12 changed files with 225 additions and 47 deletions

View file

@ -0,0 +1,37 @@
{ config, lib, ... }:
let
inherit (lib) mkIf;
inherit (config.colorscheme) slug palette;
cfg = config.ooknet.editor.nvim;
console = config.ooknet.console;
in
{
config = mkIf (cfg.enable || console.editor == "nvim") {
programs.nixvim = {
colorschemes.base16 = {
enable = true;
colorscheme = "${slug}";
# colorscheme = {
# base00 = "#${palette.base00}";
# base01 = "#${palette.base01}";
# base02 = "#${palette.base02}";
# base03 = "#${palette.base03}";
# base04 = "#${palette.base04}";
# base05 = "#${palette.base05}";
# base06 = "#${palette.base06}";
# base07 = "#${palette.base07}";
# base08 = "#${palette.base08}";
# base09 = "#${palette.base09}";
# base0A = "#${palette.base0A}";
# base0B = "#${palette.base0B}";
# base0C = "#${palette.base0C}";
# base0D = "#${palette.base0D}";
# base0E = "#${palette.base0E}";
# base0F = "#${palette.base0F}";
# };
};
};
};
}

View file

@ -12,6 +12,7 @@ in
./settings.nix ./settings.nix
./keymapping.nix ./keymapping.nix
./plugins ./plugins
./colorscheme.nix
]; ];
config = mkIf (cfg.enable || console.editor == "nvim") { config = mkIf (cfg.enable || console.editor == "nvim") {

View file

@ -13,40 +13,13 @@ in
mapleader = " "; mapleader = " ";
maplocalleader = " "; maplocalleader = " ";
}; };
keymaps = [
keymaps = let {
normal = mode = "n";
mapAttrsToList key = "<leader>f";
(key: action: { action = "+find/file";
mode = "n"; }
inherit action key; ];
})
{
"<Space>" = "<NOP>";
"esc" = ":noh<CR>";
"Y" = "$y";
};
visual =
mapAttrsToList
(key: action: {
mode = "v";
inherit action key;
})
{
# better indenting
">" = ">gv";
"<" = "<gv";
"<TAB>" = ">gv";
"<S-TAB>" = "<gv";
# move selected line / block of text in visual mode
"K" = ":m '<-2<CR>gv=gv";
"J" = ":m '>+1<CR>gv=gv";
};
in
config.nixvim.helpers.keymaps.mkKeymaps
{options.silent = true;}
(normal ++ visual);
}; };
}; };
} }

View file

@ -3,5 +3,10 @@
./indent.nix ./indent.nix
./telescope.nix ./telescope.nix
./lualine.nix ./lualine.nix
./lsp.nix
./noice.nix
./nvim-autopairs.nix
./vim-nix.nix
./treesitter.nix
]; ];
} }

View file

@ -0,0 +1,38 @@
{ config, lib, ... }:
let
inherit (lib) mkIf;
cfg = config.ooknet.editor.nvim;
console = config.ooknet.console;
in
{
config = mkIf (cfg.enable || console.editor == "nvim") {
programs.nixvim.plugins = {
lsp-lines.enable = true;
lsp = {
enable = true;
capabilities = "offsetEncoding = 'utf-16'";
servers = {
# nix
nil-ls = {
enable = true;
};
# markdown
marksman = {
enable = true;
};
# css
cssls = {
enable = true;
};
# c/c++
clangd = {
enable = true;
};
};
};
};
};
}

View file

@ -10,7 +10,6 @@ in
config = mkIf (cfg.enable || console.editor == "nvim") { config = mkIf (cfg.enable || console.editor == "nvim") {
programs.nixvim.plugins.lualine = { programs.nixvim.plugins.lualine = {
enable = true; enable = true;
theme = "base16";
globalstatus = true; globalstatus = true;
sections = { sections = {
lualine_a = ["mode"]; lualine_a = ["mode"];

View file

@ -0,0 +1,19 @@
{ config, lib, ... }:
let
inherit (lib) mkIf;
cfg = config.ooknet.editor.nvim;
console = config.ooknet.console;
in
{
config = mkIf (cfg.enable || console.editor == "nvim") {
programs.nixvim.plugins.noice = {
enable = true;
presets = {
bottom_search = true;
command_palette = true;
};
};
};
}

View file

@ -0,0 +1,15 @@
{ config, lib, ... }:
let
inherit (lib) mkIf;
cfg = config.ooknet.editor.nvim;
console = config.ooknet.console;
in
{
config = mkIf (cfg.enable || console.editor == "nvim") {
programs.nixvim.plugins.nvim-autopairs = {
enable = true;
};
};
}

View file

@ -0,0 +1,15 @@
{ config, lib, ... }:
let
inherit (lib) mkIf;
cfg = config.ooknet.editor.nvim;
console = config.ooknet.console;
in
{
config = mkIf (cfg.enable || console.editor == "nvim") {
programs.nixvim.plugins.treesitter = {
enable = true;
};
};
}

View file

@ -0,0 +1,15 @@
{ config, lib, ... }:
let
inherit (lib) mkIf;
cfg = config.ooknet.editor.nvim;
console = config.ooknet.console;
in
{
config = mkIf (cfg.enable || console.editor == "nvim") {
programs.nixvim.plugins.nix = {
enable = true;
};
};
}

View file

@ -9,32 +9,92 @@ in
{ {
config = mkIf (cfg.enable || console.editor == "nvim") { config = mkIf (cfg.enable || console.editor == "nvim") {
programs.nixvim = { programs.nixvim = {
options = { opts = {
# line numbers
relativenumber = true; relativenumber = true;
number = true; number = true;
# command line height
cmdheight = 2;
# popup menu height (0 == use all available space)
pumheight = 0;
hidden = true; hidden = true;
# mouse mode
mouse = "a"; mouse = "a";
mousemodel = "extend"; mousemodel = "extend";
# undo history
undofile = true; undofile = true;
swapfile = false; swapfile = false;
incsearch = true; backup = false;
ignorecase = true;
smartcase = true; # tab size
fileencoding = "utf-8"; tabstop = 2;
termguicolors = true;
autoindent = true;
shiftwidth = 2;
smartindent = true;
expandtab = true; expandtab = true;
updatetime = 100; showtabline = 2;
softtabstop = 2;
# auto indenting
smartindent = true;
shiftwidth = 2;
# text wrapping
wrap = true;
# fold settings
foldcolumn = "0";
foldlevel = 99;
foldlevelstart = 99;
foldenable = true;
# which-key timeout
timeoutlen = 10;
# faster updatetime
updatetime = 50;
# cursor position unless at start/end
scrolloff = 8;
# 24 bit colors
termguicolors = true;
# highlight cursor line
cursorline = true;
# encoding
encoding = "utf-8";
fileencoding = "utf-8";
# chars list
# list = true;
# listchars = "eol:↲,tab:|->,lead:·,space: ,trail:•,extends:→,precedes:←,nbsp:␣";
# splitting
splitbelow = true;
splitright = true;
# better searching
ignorecase = true;
grepprg = "rg --vimgrep";
grepformat = "%f:%l:%c:%m";
smartcase = true;
# prevent screen jumping
signcolumn = "yes";
incsearch = true;
autoindent = true;
}; };
clipboard = { clipboard = {
register = "unnamedplus"; register = "unnamedplus";
providers.wl-copy.enable = true; providers.wl-copy.enable = true;
}; };
colorscheme = "${config.colorscheme.slug}";
}; };
}; };
} }

View file

@ -19,6 +19,7 @@
home.packages = with pkgs; [ home.packages = with pkgs; [
lazygit lazygit
gh
]; ];
}; };
} }