Compare commits
12 commits
main
...
nvim-rewri
Author | SHA1 | Date | |
---|---|---|---|
c313ef0f39 | |||
b096dcc502 | |||
0c331b8db8 | |||
622e381157 | |||
ac06734c3b | |||
17e51c791d | |||
f7d7d75bb3 | |||
10f6614348 | |||
0709b64a71 | |||
7fab1f798c | |||
d623b21234 | |||
0f34a00a4e |
|
@ -390,11 +390,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731920409,
|
"lastModified": 1724050814,
|
||||||
"narHash": "sha256-bMjdNGoWJXaWIGtfxcODmmrNoONnwN3hS73cDTRC1Pk=",
|
"narHash": "sha256-THf50ZcBPY6r7/cyvE8bxYDvrctHrWbYaMx4udr4OUM=",
|
||||||
"ref": "main",
|
"ref": "main",
|
||||||
"rev": "a87e348a46fd04dbe35ee9accf710eeec42ecbb6",
|
"rev": "7628c26fd92f684ab5c7572c63de4af8b4b3a7b4",
|
||||||
"revCount": 1530,
|
"revCount": 1464,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "ssh://gitea@git.sealight.xyz/aynish/kitaab"
|
"url": "ssh://gitea@git.sealight.xyz/aynish/kitaab"
|
||||||
},
|
},
|
||||||
|
|
64
flake.nix
64
flake.nix
|
@ -27,8 +27,7 @@
|
||||||
poonam.url = "git+ssh://gitea@git.sealight.xyz/aynish/kitaab?ref=main";
|
poonam.url = "git+ssh://gitea@git.sealight.xyz/aynish/kitaab?ref=main";
|
||||||
poonam.inputs.nixpkgs.follows = "nixpkgs";
|
poonam.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
basant.url = "git+ssh://gitea@git.sealight.xyz/aynish/basant?ref=main";
|
basant.url = "git+ssh://gitea@git.sealight.xyz/aynish/basant?ref=main";
|
||||||
vimwikicli.url =
|
vimwikicli.url = "git+ssh://gitea@git.sealight.xyz/aynish/vimwiki-cli?ref=main";
|
||||||
"git+ssh://gitea@git.sealight.xyz/aynish/vimwiki-cli?ref=main";
|
|
||||||
basant.inputs.nixpkgs.follows = "nixpkgs";
|
basant.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
basant.inputs.poonam.follows = "poonam";
|
basant.inputs.poonam.follows = "poonam";
|
||||||
vimwikicli.inputs.nixpkgs.follows = "nixpkgs";
|
vimwikicli.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
@ -55,9 +54,24 @@
|
||||||
# muneem.inputs.nixpkgs.follows = "nixpkgs";
|
# muneem.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, unstable, nixos-hardware, home-manager, deploy-rs
|
outputs =
|
||||||
, agenix, disko, basant, grasp, nix-matrix-appservices, nur, tidalcycles
|
{ self
|
||||||
, rust-overlay, vimwikicli, ... }@inputs:
|
, nixpkgs
|
||||||
|
, unstable
|
||||||
|
, nixos-hardware
|
||||||
|
, home-manager
|
||||||
|
, deploy-rs
|
||||||
|
, agenix
|
||||||
|
, disko
|
||||||
|
, basant
|
||||||
|
, grasp
|
||||||
|
, nix-matrix-appservices
|
||||||
|
, nur
|
||||||
|
, tidalcycles
|
||||||
|
, rust-overlay
|
||||||
|
, vimwikicli
|
||||||
|
, ...
|
||||||
|
}@inputs:
|
||||||
let
|
let
|
||||||
forAllSystems = nixpkgs.lib.genAttrs [
|
forAllSystems = nixpkgs.lib.genAttrs [
|
||||||
"aarch64-linux"
|
"aarch64-linux"
|
||||||
|
@ -75,11 +89,9 @@
|
||||||
vimwiki-cli = vimwikicli.packages.${prev.system}.vimwiki-cli;
|
vimwiki-cli = vimwikicli.packages.${prev.system}.vimwiki-cli;
|
||||||
};
|
};
|
||||||
|
|
||||||
nixpkgsFor = forAllSystems (system:
|
nixpkgsFor = forAllSystems (system: import nixpkgs {
|
||||||
import nixpkgs {
|
|
||||||
inherit system;
|
inherit system;
|
||||||
config.allowUnfreePredicate = pkg:
|
config.allowUnfreePredicate = pkg: builtins.elem (nixpkgs.lib.getName pkg) [
|
||||||
builtins.elem (nixpkgs.lib.getName pkg) [
|
|
||||||
"ripcord"
|
"ripcord"
|
||||||
"vcv-rack"
|
"vcv-rack"
|
||||||
"SunVox"
|
"SunVox"
|
||||||
|
@ -103,8 +115,7 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
# for when space matters
|
# for when space matters
|
||||||
litePkgsFor = forAllSystems (system:
|
litePkgsFor = forAllSystems (system: import nixpkgs {
|
||||||
import nixpkgs {
|
|
||||||
inherit system;
|
inherit system;
|
||||||
# config.permittedInsecurePackages = [
|
# config.permittedInsecurePackages = [
|
||||||
# "forgejo-1.19.4-0" # Needed for archivebox deployments on curve
|
# "forgejo-1.19.4-0" # Needed for archivebox deployments on curve
|
||||||
|
@ -117,17 +128,20 @@
|
||||||
tidalcycles.overlays.default # needed for nvim which comes pre-installed lol
|
tidalcycles.overlays.default # needed for nvim which comes pre-installed lol
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
# Your custom packages
|
# Your custom packages
|
||||||
# Acessible through 'nix build', 'nix shell', etc
|
# Acessible through 'nix build', 'nix shell', etc
|
||||||
packages = forAllSystems (system:
|
packages = forAllSystems (system:
|
||||||
let pkgs = nixpkgsFor.${system};
|
let pkgs = nixpkgsFor.${system};
|
||||||
in import ./pkgs { pkgs = pkgs; });
|
in import ./pkgs { pkgs = pkgs; }
|
||||||
|
);
|
||||||
# Devshell for bootstrapping
|
# Devshell for bootstrapping
|
||||||
# Acessible through 'nix develop' or 'nix-shell' (legacy)
|
# Acessible through 'nix develop' or 'nix-shell' (legacy)
|
||||||
devShells = forAllSystems (system:
|
devShells = forAllSystems (system:
|
||||||
let pkgs = nixpkgsFor.${system};
|
let pkgs = nixpkgsFor.${system};
|
||||||
in import ./shell.nix { pkgs = pkgs; });
|
in import ./shell.nix { pkgs = pkgs; }
|
||||||
|
);
|
||||||
|
|
||||||
# Your custom packages and modifications, exported as overlays
|
# Your custom packages and modifications, exported as overlays
|
||||||
overlays = import ./overlays;
|
overlays = import ./overlays;
|
||||||
|
@ -219,7 +233,7 @@
|
||||||
nix.registry.nixpkgs.flake = nixpkgs;
|
nix.registry.nixpkgs.flake = nixpkgs;
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.users.anish = import ./home/dev;
|
home-manager.users.anish = import ./home/core;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
@ -229,10 +243,12 @@
|
||||||
# Available through 'home-manager --flake .#your-username@your-hostname'
|
# Available through 'home-manager --flake .#your-username@your-hostname'
|
||||||
homeConfigurations = {
|
homeConfigurations = {
|
||||||
"anish@work" = home-manager.lib.homeManagerConfiguration {
|
"anish@work" = home-manager.lib.homeManagerConfiguration {
|
||||||
pkgs =
|
pkgs = nixpkgsFor."x86_64-linux"; # Home-manager requires 'pkgs' instance
|
||||||
nixpkgsFor."x86_64-linux"; # Home-manager requires 'pkgs' instance
|
|
||||||
extraSpecialArgs = { inherit inputs; };
|
extraSpecialArgs = { inherit inputs; };
|
||||||
modules = [ ./home/core.nix ./home/profiles/firefox ];
|
modules = [
|
||||||
|
./home/core.nix
|
||||||
|
./home/profiles/firefox
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -244,8 +260,7 @@
|
||||||
remoteBuild = true;
|
remoteBuild = true;
|
||||||
profiles.system = {
|
profiles.system = {
|
||||||
user = "root";
|
user = "root";
|
||||||
path = deploy-rs.lib.x86_64-linux.activate.nixos
|
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.box;
|
||||||
self.nixosConfigurations.box;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
lituus = {
|
lituus = {
|
||||||
|
@ -253,8 +268,7 @@
|
||||||
# autoRollback = false;
|
# autoRollback = false;
|
||||||
profiles.system = {
|
profiles.system = {
|
||||||
user = "root";
|
user = "root";
|
||||||
path = deploy-rs.lib.x86_64-linux.activate.nixos
|
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.lituus;
|
||||||
self.nixosConfigurations.lituus;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
helix = {
|
helix = {
|
||||||
|
@ -263,13 +277,11 @@
|
||||||
magicRollback = false;
|
magicRollback = false;
|
||||||
profiles.system = {
|
profiles.system = {
|
||||||
user = "root";
|
user = "root";
|
||||||
path = deploy-rs.lib.x86_64-linux.activate.nixos
|
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.helix;
|
||||||
self.nixosConfigurations.helix;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
checks = builtins.mapAttrs
|
checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deploy-rs.lib;
|
||||||
(system: deployLib: deployLib.deployChecks self.deploy) deploy-rs.lib;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
{ self, pkgs, ... }: {
|
|
||||||
imports =
|
|
||||||
[ ../profiles/cli ../profiles/nvim ../profiles/direnv ../profiles/git ];
|
|
||||||
home.stateVersion = "22.05";
|
|
||||||
}
|
|
|
@ -133,7 +133,6 @@
|
||||||
autosuggestion.enable = false;
|
autosuggestion.enable = false;
|
||||||
|
|
||||||
initExtra = ''
|
initExtra = ''
|
||||||
bindkey -v
|
|
||||||
autopair-init
|
autopair-init
|
||||||
'';
|
'';
|
||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
|
|
4
home/profiles/nvim/config/after/syntax/vimwiki.vim
Normal file
4
home/profiles/nvim/config/after/syntax/vimwiki.vim
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
" match with %update
|
||||||
|
syntax match VimwikiPlaceholder /^\s*%update\ze\%(\s.*\)\?$/ nextgroup=VimwikiPlaceholderParam skipwhite
|
||||||
|
" match with %link
|
||||||
|
syntax match VimwikiPlaceholder /^\s*%link\ze\%(\s.*\)\?$/ nextgroup=VimwikiPlaceholderParam skipwhite
|
11
home/profiles/nvim/config/fnl/conf/formatting.fnl
Normal file
11
home/profiles/nvim/config/fnl/conf/formatting.fnl
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
(import-macros {: do-req } :lib/macros)
|
||||||
|
|
||||||
|
(do-req :conform :setup
|
||||||
|
{:formatters_by_ft {:lua ["stylua"]
|
||||||
|
:nix ["nixfmt"]
|
||||||
|
; :go ["goimports" "gofmt"] ; Go handled in special case
|
||||||
|
:terraform ["terraform_fmt"]
|
||||||
|
:sh ["shfmt"]
|
||||||
|
:bazel ["buildifier"]}
|
||||||
|
:format_on_save {:lsp_format "fallback"
|
||||||
|
:timeout_ms 500}})
|
47
home/profiles/nvim/config/fnl/conf/init.fnl
Normal file
47
home/profiles/nvim/config/fnl/conf/init.fnl
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
(local nvim (require :lib/nvim))
|
||||||
|
|
||||||
|
(nvim.g :mapleader " ")
|
||||||
|
|
||||||
|
; (nvim.opt :runtimepath (.. vim.opt.runtimepath "/home/anish/.config/nvim/,"))
|
||||||
|
(nvim.opt :tabstop 2)
|
||||||
|
(nvim.opt :showmatch true)
|
||||||
|
(nvim.opt :shiftwidth 2)
|
||||||
|
(nvim.opt :autoindent true)
|
||||||
|
(nvim.opt :undofile true)
|
||||||
|
(nvim.opt :signcolumn "auto:4")
|
||||||
|
(nvim.opt :title true)
|
||||||
|
(nvim.opt :number true)
|
||||||
|
; (nvim.opt :nocompatible)
|
||||||
|
(nvim.opt :relativenumber true)
|
||||||
|
(nvim.opt :showtabline 2)
|
||||||
|
(nvim.opt :expandtab true)
|
||||||
|
(nvim.opt :autowriteall true)
|
||||||
|
(nvim.opt :cmdheight 2)
|
||||||
|
(nvim.opt :spelllang "en_gb")
|
||||||
|
(nvim.opt :ignorecase true)
|
||||||
|
(nvim.opt :smartcase true)
|
||||||
|
(nvim.opt :incsearch true)
|
||||||
|
(nvim.opt :updatetime 300) ; Diagnostics response time
|
||||||
|
(nvim.opt :signcolumn "yes")
|
||||||
|
(nvim.opt :cursorline true)
|
||||||
|
|
||||||
|
(nvim.opt :lisp true) ; include - in word to move better in snake-case)
|
||||||
|
(nvim.g :sexp_filetypes "clojure,scheme,lisp,janet,fennel,yuck") ; include the lisps I use
|
||||||
|
|
||||||
|
(nvim.opt :termguicolors)
|
||||||
|
(nvim.colorscheme "ayu-mirage")
|
||||||
|
|
||||||
|
(require :conf.plugins)
|
||||||
|
(require :conf.mappings)
|
||||||
|
(require :conf.lsp)
|
||||||
|
(require :conf.plugins.cmp)
|
||||||
|
(require :conf.formatting)
|
||||||
|
; (require :conf.kitaab)
|
||||||
|
|
||||||
|
; Spelling
|
||||||
|
(vim.api.nvim_create_autocmd ["BufRead" "BufNewFile"]
|
||||||
|
{:pattern ["*.wiki" "*.txt" "*.md" "*.tex"]
|
||||||
|
:command "setlocal spell"})
|
||||||
|
(vim.api.nvim_create_autocmd ["FileType"]
|
||||||
|
{:pattern ["mail"]
|
||||||
|
:command "setlocal spell"})
|
99
home/profiles/nvim/config/fnl/conf/lsp.fnl
Normal file
99
home/profiles/nvim/config/fnl/conf/lsp.fnl
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
(import-macros {: do-req } :lib/macros)
|
||||||
|
(local lspkind (require :lspkind))
|
||||||
|
(local lspconfig (require :lspconfig))
|
||||||
|
; (local lspsaga (require :lspsaga))
|
||||||
|
(local cmp (require :cmp))
|
||||||
|
(local nvim (require :lib/nvim))
|
||||||
|
; (local lspfuzzy (require :lspfuzzy)) ; Not available on Nix
|
||||||
|
; (local sg (require :sg))
|
||||||
|
; (local lsputil (require :lspconfig/util))
|
||||||
|
|
||||||
|
;(lspsaga.setup {:border_style "rounded"
|
||||||
|
; :code_action_icon ""
|
||||||
|
; :code_action_num_shortcut false
|
||||||
|
; :ui {:code_action ""}
|
||||||
|
; :show_outline {:enable false}))
|
||||||
|
;
|
||||||
|
;(nvim.opt :winbar nil)
|
||||||
|
|
||||||
|
(local signs {:Error " "
|
||||||
|
:Warn " "
|
||||||
|
:Hint " "
|
||||||
|
:Info " "})
|
||||||
|
(each [t icon (pairs signs)]
|
||||||
|
(let [hl (.. "DiagnosticSign" t)]
|
||||||
|
(vim.fn.sign_define hl {:text icon
|
||||||
|
:texthl hl
|
||||||
|
:numhl hl})))
|
||||||
|
|
||||||
|
(tset vim.lsp.handlers
|
||||||
|
:textDocument/hover
|
||||||
|
(vim.lsp.with vim.lsp.handlers.hover
|
||||||
|
{:focusable false :border "rounded"}))
|
||||||
|
(tset vim.lsp.handlers
|
||||||
|
:textDocument/signatureHelp
|
||||||
|
(vim.lsp.with vim.lsp.handlers.signature_help
|
||||||
|
{:focusable false :border "rounded"}))
|
||||||
|
|
||||||
|
(local capabilities (let [cmp_nvim_lsp (require :cmp_nvim_lsp)]
|
||||||
|
(cmp_nvim_lsp.default_capabilities)))
|
||||||
|
|
||||||
|
(local formatting-augroup (nvim.augroup :LspFormatting))
|
||||||
|
|
||||||
|
(fn goimports [wait-ms]
|
||||||
|
(let [params (vim.lsp.util.make_range_params)
|
||||||
|
result (do
|
||||||
|
(tset params :context {:only [:source.organizeImports]})
|
||||||
|
(vim.lsp.buf_request_sync 0 :textDocument/codeAction params wait-ms))]
|
||||||
|
(each [_ res (pairs (or result {}))]
|
||||||
|
(each [_ r (pairs (or res.result {}))]
|
||||||
|
(if r.edit
|
||||||
|
(vim.lsp.util.apply_workspace_edit r.edit "utf-16")
|
||||||
|
(vim.lsp.buf.execute_command r.command))))
|
||||||
|
(vim.lsp.buf.format)))
|
||||||
|
|
||||||
|
(fn on-attach [client bufnr]
|
||||||
|
(let [filetype (vim.api.nvim_buf_get_option 0 "filetype")]
|
||||||
|
(if (client.supports_method "textDocument/formatting")
|
||||||
|
(do (nvim.autocmd "BufWritePre"
|
||||||
|
{:group formatting-augroup
|
||||||
|
:buffer bufnr
|
||||||
|
:callback (fn [_] (if (= filetype "go")
|
||||||
|
(goimports 2000)
|
||||||
|
(vim.lsp.buf.format {:bufnr bufnr})))})))))
|
||||||
|
|
||||||
|
(lspconfig.gopls.setup
|
||||||
|
{:capabilities capabilities
|
||||||
|
:codelens {:generate true :gc_details true}
|
||||||
|
:semanticTokens true
|
||||||
|
:flags {:debounce_text_changes 200}
|
||||||
|
:analyses {:unusedparams true
|
||||||
|
:unusedvariables true
|
||||||
|
:unusedwrite true
|
||||||
|
:nilness true
|
||||||
|
:unusedwrite true
|
||||||
|
:useany true}
|
||||||
|
:completeUnimported true
|
||||||
|
:staticcheck true
|
||||||
|
:experimentalPostfixCompletions true
|
||||||
|
:hints {:constantValues true
|
||||||
|
:functionTypeParameters true
|
||||||
|
:assignVariablesTypes true
|
||||||
|
:compositeLiteralTypes true
|
||||||
|
:compositeLiteralFields true
|
||||||
|
:parameterNames true
|
||||||
|
:rangeVariableTypes true}
|
||||||
|
:on_attach on-attach})
|
||||||
|
|
||||||
|
(local lsps [:nil_ls :terraform_lsp :fennel_ls :tsserver :starbin])
|
||||||
|
(each [index lsp (ipairs lsps)]
|
||||||
|
((. (. lspconfig lsp) :setup) {}))
|
||||||
|
|
||||||
|
; null-ls
|
||||||
|
(let [null-ls (require :null-ls)]
|
||||||
|
(null-ls.setup {:sources [; TODO fix these
|
||||||
|
;null-ls.builtins.diagnostics.shellcheck
|
||||||
|
null-ls.builtins.diagnostics.commitlint]}))
|
||||||
|
;null-ls.builtins.diagnostics.jsonlint]}))
|
||||||
|
;(null-ls.builtins.diagnostics.proselint.with {:filetypes ["vimwiki" "mail"]})]}))
|
||||||
|
|
135
home/profiles/nvim/config/fnl/conf/mappings.fnl
Normal file
135
home/profiles/nvim/config/fnl/conf/mappings.fnl
Normal file
|
@ -0,0 +1,135 @@
|
||||||
|
(local nvim (require :lib/nvim))
|
||||||
|
(import-macros {: do-req } :lib/macros)
|
||||||
|
|
||||||
|
(local wk (require :which-key))
|
||||||
|
|
||||||
|
;; Convenient way to indent stuff in visual mode
|
||||||
|
(nvim.keymap [:v] "<" "<gv" {:noremap true})
|
||||||
|
(nvim.keymap [:v] ">" ">gv" {:noremap true})
|
||||||
|
(nvim.keymap [:n] "<space>" "<NOP>" {:noremap true :silent true})
|
||||||
|
;; Convenient way to move stuff in visual mode
|
||||||
|
(nvim.keymap [:v] "J" ":m '>+1<CR>gv=gv" {:noremap true})
|
||||||
|
(nvim.keymap [:v] "K" ":m '>-2<CR>gv=gv" {:noremap true})
|
||||||
|
;; Convientent screen shifting
|
||||||
|
(nvim.keymap [:n] "n" "nzzzv" {:noremap true})
|
||||||
|
(nvim.keymap [:n] "N" "Nzzzv" {:noremap true})
|
||||||
|
(nvim.keymap [:n] "J" "mzJ'z" {:noremap true})
|
||||||
|
; Fix Y
|
||||||
|
(nvim.keymap [:n] "Y" "y$")
|
||||||
|
; Unmap Q
|
||||||
|
(nvim.keymap [] "Q" "<Nop>")
|
||||||
|
|
||||||
|
; FTerm
|
||||||
|
(vim.api.nvim_create_user_command "FTermToggle" (fn [_]
|
||||||
|
((-> (require :FTerm)
|
||||||
|
(. :toggle))))
|
||||||
|
{:bang true})
|
||||||
|
(nvim.keymap [:t] "<TAB>" "<cmd>:FTermToggle<CR>")
|
||||||
|
(nvim.keymap [:n] "<TAB>" "<cmd>:FTermToggle<CR>" {:noremap true})
|
||||||
|
|
||||||
|
; Buffer Movement
|
||||||
|
(nvim.keymap [:n] "gT" ":BufferPrevious<CR>" {:silent true :noremap true})
|
||||||
|
(nvim.keymap [:n] "gt" ":BufferNext<CR>" {:silent true :noremap true})
|
||||||
|
(nvim.keymap [:n] "gj" ":BufferPick<CR>" {:silent true :noremap true})
|
||||||
|
(nvim.keymap [:n] "gb" ":Telescope buffers<CR>" {:silent true :noremap true})
|
||||||
|
(nvim.keymap [:n] "gq" ":BufferClose<CR>" {:silent true :noremap true})
|
||||||
|
|
||||||
|
; Flash
|
||||||
|
(vim.api.nvim_create_user_command "Flash" (fn [_] (do-req :flash :jump)) {})
|
||||||
|
(vim.api.nvim_create_user_command "FlashTreesitter" (fn [] (do-req :flash :treesitter)) {})
|
||||||
|
(nvim.keymap [:n] "f" "<cmd>Flash<CR>")
|
||||||
|
(nvim.keymap [:n] "s" "<cmd>FlashTreesitter<CR>")
|
||||||
|
|
||||||
|
(local
|
||||||
|
normal-map-leader
|
||||||
|
{"t" [":Neotree toggle<CR>"
|
||||||
|
"Toggle neo-tree"]
|
||||||
|
"w" ["<cmd>:w<cr>"
|
||||||
|
"Write file"]
|
||||||
|
"q" ["<cmd>:q<cr>"
|
||||||
|
"Quit"]
|
||||||
|
"r" [":RainbowParenthesesToggleAll<CR>"
|
||||||
|
"Toggle Rainbow Parens"]
|
||||||
|
"u" [":UndotreeToggle<CR>"
|
||||||
|
"Toggle Undo Tree"]
|
||||||
|
; Telescope
|
||||||
|
"f" {:name "Files"
|
||||||
|
:f ["<cmd>Telescope find_files<cr>"
|
||||||
|
"Find Files (in Telescope)"]
|
||||||
|
:g ["<cmd>Telescope live_grep<cr>"
|
||||||
|
"Find Grep (in Telescope)"]
|
||||||
|
:b ["<cmd>Telescope buffers<cr>"
|
||||||
|
"Find Buffers"]
|
||||||
|
:h ["<cmd>Telescope help_tags<cr>"
|
||||||
|
"Find Help"]
|
||||||
|
:t ["<cmd>Telescope tags<cr>"
|
||||||
|
"Find Tags"]
|
||||||
|
:r ["<cmd>Telescope oldfiles<CR>"
|
||||||
|
"Recent files"]}
|
||||||
|
; Git
|
||||||
|
"g" {:name "Git"
|
||||||
|
"s" [":G<CR>"
|
||||||
|
"Git Status"]
|
||||||
|
"f" [":G fetch --all<cr>"
|
||||||
|
"Git Fetch"]
|
||||||
|
"b" [":GBranches<cr>"
|
||||||
|
"Git Branch"]
|
||||||
|
"p" [":Git! push<cr>"
|
||||||
|
"Git Push"]
|
||||||
|
"d" [":GDiff<cr>"
|
||||||
|
"Git Diff"]
|
||||||
|
"h" [""
|
||||||
|
"Commit Hunk under Cursor"]}
|
||||||
|
; For handling merges
|
||||||
|
; nmap <leader>gl :diffget //3<CR>
|
||||||
|
; nmap <leader>gh :diffget //2<CR>
|
||||||
|
; nnoremap <leader>gc :G commit -v -q %:p<CR>
|
||||||
|
; Buffers
|
||||||
|
"b" {:name "Buffer"
|
||||||
|
:b ["<cmd>:Telescope buffers<CR>"
|
||||||
|
"Buffer List"]
|
||||||
|
:q ["<cmd>:BufferClose<CR>"
|
||||||
|
"Buffer Quit"]
|
||||||
|
:n ["<cmd>:BufferNext<CR>"
|
||||||
|
"Buffer Next"]
|
||||||
|
:N ["<cmd>:tabp<CR>"
|
||||||
|
"Buffer Previous"]
|
||||||
|
:p ["<cmd>:tabp<CR>"
|
||||||
|
"Buffer Previous"]}
|
||||||
|
; Search
|
||||||
|
"s" {:name "Search"
|
||||||
|
:b ["<cmd>Telescope current_buffer_fuzzy_find<CR>"
|
||||||
|
"Search in current buffer"]
|
||||||
|
:s ["<cmd>Telescope live_grep<CR>"
|
||||||
|
"Search in project"]
|
||||||
|
:t ["<cmd>TodoTelescope<CR>"
|
||||||
|
"Search TODOs in project"]
|
||||||
|
:c ["<cmd>let @/ = \"\"<CR>:echo 'Search highlight cleared'<CR>"
|
||||||
|
"Clear search"]}
|
||||||
|
; Code
|
||||||
|
"c" {:name "Code"
|
||||||
|
:d [":lua vim.lsp.buf.definition()<CR>"
|
||||||
|
"Go to Definition"]
|
||||||
|
:i [":lua require('telescope.builtin').lsp_implementation()<CR>"
|
||||||
|
"Implementation"]
|
||||||
|
:s [":lua vim.lsp.buf.signature_help()<CR>"
|
||||||
|
"Signature Help"]
|
||||||
|
:r [":Lspsaga rename<CR>"
|
||||||
|
"Rename Symbol"]
|
||||||
|
:h [":Lspsaga hover_doc<CR>"
|
||||||
|
"Hover doc"]
|
||||||
|
:o ["<cmd>AerialToggle!<CR>"
|
||||||
|
"Outline"]
|
||||||
|
:t [":LspDiagnostics 0"
|
||||||
|
"Find Errors in Buffer"]}
|
||||||
|
; Kitaab
|
||||||
|
"z" {:name "Kitaab"
|
||||||
|
:n [":ZettelNew<CR>"
|
||||||
|
"Zettel New"]}
|
||||||
|
"v" {:name "Tabs"
|
||||||
|
:v [":vnew<CR>"
|
||||||
|
"Vertical Split"]
|
||||||
|
:h [":new<CR>"
|
||||||
|
"Horizontal Split"]}})
|
||||||
|
|
||||||
|
(wk.register normal-map-leader {:prefix "<leader>"})
|
30
home/profiles/nvim/config/fnl/conf/music.fnl
Normal file
30
home/profiles/nvim/config/fnl/conf/music.fnl
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
(local nvim (require :lib/nvim))
|
||||||
|
|
||||||
|
(nvim.g :tidal_target "terminal")
|
||||||
|
(nvim.g :scnvim_snippet_format "luasnip")
|
||||||
|
|
||||||
|
; -- supercollider
|
||||||
|
; local scnvim = require 'scnvim'
|
||||||
|
; local map = scnvim.map
|
||||||
|
; local map_expr = scnvim.map_expr
|
||||||
|
; scnvim.setup {
|
||||||
|
; keymaps = {
|
||||||
|
; ['<localleader>e'] = map('editor.send_line', {'i', 'n'}),
|
||||||
|
; ['<localleader>s'] = map_expr('CmdPeriod.run', {'i', 'n'}),
|
||||||
|
; ['<localleader>t'] = {
|
||||||
|
; map('editor.send_block', {'i', 'n'}),
|
||||||
|
; map('editor.send_selection', 'x'),
|
||||||
|
; },
|
||||||
|
; ['<CR>'] = map('postwin.toggle'),
|
||||||
|
; ['<M-CR>'] = map('postwin.toggle', 'i'),
|
||||||
|
; ['<M-L>'] = map('postwin.clear', {'n', 'i'}),
|
||||||
|
; ['<C-k>'] = map('signature.show', {'n', 'i'}),
|
||||||
|
; ['<F12>'] = map('sclang.hard_stop', {'n', 'x', 'i'}),
|
||||||
|
; ['<leader>st'] = map('sclang.start'),
|
||||||
|
; ['<leader>sk'] = map('sclang.recompile'),
|
||||||
|
; ['<F1>'] = map_expr('s.boot'),
|
||||||
|
; ['<F2>'] = map_expr('s.meter'),
|
||||||
|
; }
|
||||||
|
; }
|
||||||
|
; -- You gotta run :SCNvimGenerateAssets for this first
|
||||||
|
; -- require("luasnip").add_snippets("supercollider", require("scnvim/utils").get_snippets())
|
45
home/profiles/nvim/config/fnl/conf/plugins.fnl
Normal file
45
home/profiles/nvim/config/fnl/conf/plugins.fnl
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
(local nvim (require :lib/nvim))
|
||||||
|
(local navic (require :nvim-navic))
|
||||||
|
|
||||||
|
(import-macros {: do-req } :lib/macros)
|
||||||
|
|
||||||
|
(let [lualine (require :lualine)]
|
||||||
|
(lualine.setup {:options {:theme "ayu"}
|
||||||
|
:sections {; :lualine_c [:filename (fn []
|
||||||
|
; (let [lspsaga (require :lspsaga.symbol.winbar)]
|
||||||
|
; (lspsaga.get_bar))
|
||||||
|
:lualine_y [(fn []
|
||||||
|
(var msg "No Active LSP")
|
||||||
|
(let [buf_ft (vim.api.nvim_buf_get_option 0 "filetype")
|
||||||
|
clients (vim.lsp.get_active_clients)]
|
||||||
|
(each [_ client (ipairs clients)]
|
||||||
|
(let [filetypes (. client :config :filetypes)]
|
||||||
|
(if (and filetypes (vim.fn.index filetypes buf_ft)) (set msg client.name))))
|
||||||
|
msg))]
|
||||||
|
:lualine_x [:filetype]}}))
|
||||||
|
|
||||||
|
(require :neo-tree)
|
||||||
|
(do-req :gitsigns :setup)
|
||||||
|
(do-req :marks :setup)
|
||||||
|
; (do-req :mini.pairs :setup)
|
||||||
|
(do-req :mini.diff :setup)
|
||||||
|
(do-req :mini.ai :setup)
|
||||||
|
(do-req :mini.surround :setup {:mappings {:add "ys"
|
||||||
|
:delete "ds"
|
||||||
|
:replace "cs"}})
|
||||||
|
(do-req :todo-comments :setup)
|
||||||
|
(do-req :ibl :setup {:scope {:exclude {:language ["fennel" "clojure" "janet"]}}})
|
||||||
|
|
||||||
|
(do-req :nvim-treesitter.configs :setup {:highlight {:enable true}
|
||||||
|
:textobjects {:enable true}
|
||||||
|
:indent {:enable true}})
|
||||||
|
(do-req :treesitter-context :setup {:max_lines 5})
|
||||||
|
|
||||||
|
(do-req :auto-session :setup {:log_level "info"
|
||||||
|
:auto_session_suppress_dirs ["~/"]})
|
||||||
|
(nvim.opt :sessionoptions "blank,buffers,curdir,folds,help,tabpages,winsize,winpos,terminal")
|
||||||
|
|
||||||
|
(do-req :aerial :setup {}) ;{:on_attach (fn [bufnr]
|
||||||
|
; (do
|
||||||
|
; (vim.keymap.set "n" "{" "<cmd>AerialPrev<CR>" { :buffer bufnr})
|
||||||
|
; (vim.keymap.set "n" "}" "<cmd>AerialNext<CR>" { :buffer bufnr}))
|
35
home/profiles/nvim/config/fnl/conf/plugins/cmp.fnl
Normal file
35
home/profiles/nvim/config/fnl/conf/plugins/cmp.fnl
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
(local cmp (require :cmp))
|
||||||
|
|
||||||
|
(fn has-words-before []
|
||||||
|
(let [(line col) (unpack (vim.api.nvim_win_get_cursor 0))
|
||||||
|
cur-line (. (vim.api.nvim_buf_get_lines 0
|
||||||
|
(- line 1)
|
||||||
|
line
|
||||||
|
true
|
||||||
|
1))]
|
||||||
|
(and (not= col 0)
|
||||||
|
(= (: (: cur-line :sub col col) :match "%s")
|
||||||
|
nil))))
|
||||||
|
|
||||||
|
(let [lspkind (require :lspkind)]
|
||||||
|
(cmp.setup {:formatting {:format (lspkind.cmp_format {:mode "symbol_text"
|
||||||
|
:maxwidth 50})
|
||||||
|
:show_labelDetails true}
|
||||||
|
:snippet {:expand (fn [args] (vim.snippet.expand args.body))}
|
||||||
|
:sources [{:name "buffer"} {:name "nvim_lsp"}
|
||||||
|
{:name "look"} {:name "path"}
|
||||||
|
{:name "calc"} {:name "spell"}
|
||||||
|
{:name "tags"}]
|
||||||
|
:mapping {"<C-d>" (cmp.mapping.scroll_docs -4)
|
||||||
|
"<C-u>" (cmp.mapping.scroll_docs 4)
|
||||||
|
"<C-g>" (cmp.mapping.close)
|
||||||
|
"<CR>" (cmp.mapping.confirm {:select true})
|
||||||
|
"<Tab>" (cmp.mapping (fn [fallback]
|
||||||
|
(if (cmp.visible) (cmp.select_next_item)
|
||||||
|
(has-words-before) (cmp.complete)
|
||||||
|
(fallback)))
|
||||||
|
[:i :s])
|
||||||
|
"<S-Tab>" (cmp.mapping (fn [fallback]
|
||||||
|
(if (cmp.visible) (cmp.select_prev_item)
|
||||||
|
(fallback)))
|
||||||
|
[:i :s])}}))
|
35
home/profiles/nvim/config/fnl/conf/plugins/kitaab.fnl
Normal file
35
home/profiles/nvim/config/fnl/conf/plugins/kitaab.fnl
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
; Kitaab is why I'm so tied to vim.
|
||||||
|
; If only I could find a nice notes editor...
|
||||||
|
|
||||||
|
(local nvim (require :lib/nvim))
|
||||||
|
|
||||||
|
(import-macros {: do-req } :lib/macros)
|
||||||
|
|
||||||
|
(nvim.g :vimwiki_list [{:path "~/kitaab/vimwiki"
|
||||||
|
:auto_tags 1
|
||||||
|
:auto_diary_index 1
|
||||||
|
:auto_generate_links 0
|
||||||
|
:nested_syntaxes {:python "python"
|
||||||
|
:c++ "cpp"
|
||||||
|
:nix "nix"
|
||||||
|
:bash "sh"}}])
|
||||||
|
(nvim.g :zettel_format "%y%m%d-%H%M")
|
||||||
|
|
||||||
|
; Custom functions
|
||||||
|
(fn update_date []
|
||||||
|
(var written false)
|
||||||
|
(let [time (os.date "%Y-%m-%d %H:%M")
|
||||||
|
message (.. "%update " time)
|
||||||
|
lines (vim.api.nvim_buf_get_lines 0 0 4 false)]
|
||||||
|
(each [index line (ipairs lines)]
|
||||||
|
(if (and (= (length line) 0) (not written))
|
||||||
|
(do
|
||||||
|
(vim.api.nvim_buf_set_lines 0 (- index 1) index false [message ""])
|
||||||
|
(set written true)))
|
||||||
|
(if (and (= index 4) (not written))
|
||||||
|
(vim.api.nvim_buf_set_lines 0 3 index false [message])))))
|
||||||
|
|
||||||
|
(vim.api.nvim_create_autocmd "BufWritePre" {:pattern ["*.wiki"]
|
||||||
|
:callback update_date})
|
||||||
|
|
||||||
|
(do-req :hologram :setup {:auto_display false})
|
6
home/profiles/nvim/config/fnl/lib/macros.fnl
Normal file
6
home/profiles/nvim/config/fnl/lib/macros.fnl
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
(fn do-req [mod key ...]
|
||||||
|
`(let [name# (require ,mod)
|
||||||
|
fun# (. name# ,key)]
|
||||||
|
(fun# ,...)))
|
||||||
|
|
||||||
|
{: do-req}
|
37
home/profiles/nvim/config/fnl/lib/nvim.fnl
Normal file
37
home/profiles/nvim/config/fnl/lib/nvim.fnl
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
(fn autocmd [events opts]
|
||||||
|
"Create autocommand"
|
||||||
|
(vim.api.nvim_create_autocmd events opts))
|
||||||
|
|
||||||
|
(fn clear-autocmds [opts]
|
||||||
|
"Clear autocommands"
|
||||||
|
(vim.api.nvim_clear_autocmds opts))
|
||||||
|
|
||||||
|
(fn augroup [name ?opts]
|
||||||
|
"Create autocommand group"
|
||||||
|
(vim.api.nvim_create_augroup name (or ?opts {})))
|
||||||
|
|
||||||
|
(fn keymap [mode lhs rhs ?opts]
|
||||||
|
"Sets a global mapping for the given mode.
|
||||||
|
Ex: `(keymap [:n :i] ...)`"
|
||||||
|
(let [string-mode (table.concat mode)]
|
||||||
|
(vim.api.nvim_set_keymap string-mode lhs rhs (or ?opts {}))))
|
||||||
|
|
||||||
|
(fn opt [key value]
|
||||||
|
"Set a vim option"
|
||||||
|
(tset vim.opt key value))
|
||||||
|
|
||||||
|
(fn g [key value]
|
||||||
|
"Set a vim global"
|
||||||
|
(tset vim.g key value))
|
||||||
|
|
||||||
|
(fn colorscheme [name]
|
||||||
|
"Set the current colorscheme"
|
||||||
|
(vim.cmd (.. "colorscheme " name)))
|
||||||
|
|
||||||
|
{: autocmd
|
||||||
|
: clear-autocmds
|
||||||
|
: augroup
|
||||||
|
: keymap
|
||||||
|
: opt
|
||||||
|
: g
|
||||||
|
: colorscheme}
|
26
home/profiles/nvim/config/init.lua
Normal file
26
home/profiles/nvim/config/init.lua
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
if pcall(require, "hotpot") then
|
||||||
|
-- Setup hotpot.nvim
|
||||||
|
require("hotpot").setup({
|
||||||
|
provide_require_fennel = true,
|
||||||
|
-- show fennel compiler results in when editing fennel files
|
||||||
|
enable_hotpot_diagnostics = true,
|
||||||
|
compiler = {
|
||||||
|
-- options passed to fennel.compile for modules, defaults to {}
|
||||||
|
modules = {
|
||||||
|
-- not default but recommended, align lua lines with fnl source
|
||||||
|
-- for more debuggable errors, but less readable lua.
|
||||||
|
correlate = true
|
||||||
|
},
|
||||||
|
macros = {
|
||||||
|
-- allow macros to access vim global, needed for nyoom modules
|
||||||
|
env = "_COMPILER",
|
||||||
|
compilerEnv = _G,
|
||||||
|
allowGlobals = true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
-- Import neovim configuration
|
||||||
|
require("conf")
|
||||||
|
else
|
||||||
|
print("Unable to require hotpot")
|
||||||
|
end
|
File diff suppressed because it is too large
Load diff
|
@ -1,4 +1,5 @@
|
||||||
{ self, pkgs, ... }: {
|
{ self, pkgs, ... }:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./configuration.nix
|
./configuration.nix
|
||||||
../profiles/core
|
../profiles/core
|
||||||
|
@ -71,18 +72,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.nginx.virtualHosts."mast.mossnet.lan" = {
|
|
||||||
enableACME = false;
|
|
||||||
forceSSL = false;
|
|
||||||
|
|
||||||
locations."/" = {
|
|
||||||
extraConfig = ''
|
|
||||||
proxy_pass http://localhost:5731/;
|
|
||||||
proxy_set_header X-Forwarded-Host $host;
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
age.secrets.box-wg.file = "${self}/secrets/box-wg.age";
|
age.secrets.box-wg.file = "${self}/secrets/box-wg.age";
|
||||||
age.secrets.box-wg.owner = "anish";
|
age.secrets.box-wg.owner = "anish";
|
||||||
age.secrets.borg-key.file = "${self}/secrets/borg-key.age";
|
age.secrets.borg-key.file = "${self}/secrets/borg-key.age";
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
{ self, pkgs, ... }: {
|
{ self, pkgs, ... }:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./configuration.nix
|
./configuration.nix
|
||||||
../users/anish
|
../users/anish
|
||||||
|
@ -16,26 +17,19 @@
|
||||||
# ../profiles/mount-mossnet
|
# ../profiles/mount-mossnet
|
||||||
];
|
];
|
||||||
|
|
||||||
# temporarily allow ssh access for work, to be able to do deploy new services
|
|
||||||
services.openssh = {
|
|
||||||
enable = true;
|
|
||||||
settings.PasswordAuthentication = false;
|
|
||||||
settings.PermitRootLogin = "no";
|
|
||||||
};
|
|
||||||
|
|
||||||
# import profiling tools
|
# import profiling tools
|
||||||
programs.systemtap.enable = true;
|
programs.systemtap.enable = true;
|
||||||
|
|
||||||
virtualisation.docker.enable = true;
|
virtualisation.docker.enable = true;
|
||||||
virtualisation.docker.storageDriver = "btrfs";
|
virtualisation.docker.storageDriver = "btrfs";
|
||||||
environment.systemPackages = with pkgs; [ docker-compose ];
|
environment.systemPackages = with pkgs; [
|
||||||
|
docker-compose
|
||||||
|
];
|
||||||
|
|
||||||
# Speed up boot by removing dependency on network
|
# Speed up boot by removing dependency on network
|
||||||
systemd = {
|
systemd = {
|
||||||
targets.network-online.wantedBy =
|
targets.network-online.wantedBy = pkgs.lib.mkForce [ ]; # Normally ["multi-user.target"]
|
||||||
pkgs.lib.mkForce [ ]; # Normally ["multi-user.target"]
|
services.NetworkManager-wait-online.wantedBy = pkgs.lib.mkForce [ ]; # Normally ["network-online.target"]
|
||||||
services.NetworkManager-wait-online.wantedBy =
|
|
||||||
pkgs.lib.mkForce [ ]; # Normally ["network-online.target"]
|
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.gnupg.agent.enable = true;
|
programs.gnupg.agent.enable = true;
|
||||||
|
@ -70,15 +64,8 @@
|
||||||
|
|
||||||
# lazy enable of ports necessary for KDE connect which is installed via cli home profile (for some reason?)
|
# lazy enable of ports necessary for KDE connect which is installed via cli home profile (for some reason?)
|
||||||
networking.firewall = {
|
networking.firewall = {
|
||||||
allowedTCPPorts = [ 22 ]; # allow ssh
|
allowedTCPPortRanges = [{ from = 1714; to = 1764; }];
|
||||||
allowedTCPPortRanges = [{
|
allowedUDPPortRanges = [{ from = 1714; to = 1764; }];
|
||||||
from = 1714;
|
|
||||||
to = 1764;
|
|
||||||
}];
|
|
||||||
allowedUDPPortRanges = [{
|
|
||||||
from = 1714;
|
|
||||||
to = 1764;
|
|
||||||
}];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
age.secrets.curve-wg.file = "${self}/secrets/curve-wg.age";
|
age.secrets.curve-wg.file = "${self}/secrets/curve-wg.age";
|
||||||
|
@ -94,7 +81,10 @@
|
||||||
mossnet.backup = {
|
mossnet.backup = {
|
||||||
enable = true;
|
enable = true;
|
||||||
name = "curve";
|
name = "curve";
|
||||||
paths = [ "/home/anish/usr" "/home/anish/.ssh" ];
|
paths = [
|
||||||
|
"/home/anish/usr"
|
||||||
|
"/home/anish/.ssh"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# enable adb
|
# enable adb
|
||||||
|
@ -103,8 +93,7 @@
|
||||||
#virtualisation.docker.enable = true;
|
#virtualisation.docker.enable = true;
|
||||||
boot.blacklistedKernelModules = [ "qcserial" ];
|
boot.blacklistedKernelModules = [ "qcserial" ];
|
||||||
# Used for packer Capsul
|
# Used for packer Capsul
|
||||||
users.users.anish.extraGroups =
|
users.users.anish.extraGroups = [ "adbusers" "wheel" "plugdev" "libvertd" "docker" ];
|
||||||
[ "adbusers" "wheel" "plugdev" "libvertd" "docker" ];
|
|
||||||
virtualisation.libvirtd.enable = true;
|
virtualisation.libvirtd.enable = true;
|
||||||
hardware.keyboard.zsa.enable = true;
|
hardware.keyboard.zsa.enable = true;
|
||||||
services.udev.extraRules = ''
|
services.udev.extraRules = ''
|
||||||
|
|
|
@ -3,7 +3,8 @@ let
|
||||||
adblockLocalZones = pkgs.stdenv.mkDerivation {
|
adblockLocalZones = pkgs.stdenv.mkDerivation {
|
||||||
name = "unbound-zones-adblock";
|
name = "unbound-zones-adblock";
|
||||||
|
|
||||||
src = (pkgs.fetchFromGitHub {
|
src = (pkgs.fetchFromGitHub
|
||||||
|
{
|
||||||
owner = "StevenBlack";
|
owner = "StevenBlack";
|
||||||
repo = "hosts";
|
repo = "hosts";
|
||||||
rev = "3.12.21";
|
rev = "3.12.21";
|
||||||
|
@ -39,10 +40,10 @@ let
|
||||||
"grasp.mossnet.lan"
|
"grasp.mossnet.lan"
|
||||||
"photos.mossnet.lan"
|
"photos.mossnet.lan"
|
||||||
"pod.mossnet.lan"
|
"pod.mossnet.lan"
|
||||||
"mast.mossnet.lan"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
services.unbound = {
|
services.unbound = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
@ -54,8 +55,7 @@ in {
|
||||||
cache-min-ttl = 0;
|
cache-min-ttl = 0;
|
||||||
serve-expired = "yes";
|
serve-expired = "yes";
|
||||||
interface = [ "0.0.0.0" ];
|
interface = [ "0.0.0.0" ];
|
||||||
access-control =
|
access-control = [ "127.0.0.0/8 allow" "192.168.1.0/24 allow" "10.0.69.0/24 allow" ];
|
||||||
[ "127.0.0.0/8 allow" "192.168.1.0/24 allow" "10.0.69.0/24 allow" ];
|
|
||||||
access-control-view = "10.0.69.0/24 wireguard";
|
access-control-view = "10.0.69.0/24 wireguard";
|
||||||
# so-reuseport = "yes";
|
# so-reuseport = "yes";
|
||||||
tls-upstream = "yes";
|
tls-upstream = "yes";
|
||||||
|
@ -65,10 +65,7 @@ in {
|
||||||
};
|
};
|
||||||
forward-zone = [{
|
forward-zone = [{
|
||||||
name = ".";
|
name = ".";
|
||||||
forward-addr = [
|
forward-addr = [ "45.90.28.0#6939b9.dns.nextdns.io" "1.1.1.1@853#cloudflare-dns.com" ];
|
||||||
"45.90.28.0#6939b9.dns.nextdns.io"
|
|
||||||
"1.1.1.1@853#cloudflare-dns.com"
|
|
||||||
];
|
|
||||||
# non-tls
|
# non-tls
|
||||||
# forward-addr = ["45.90.30.49" "45.90.28.49" "1.1.1.1" "8.8.8.8"]
|
# forward-addr = ["45.90.30.49" "45.90.28.49" "1.1.1.1" "8.8.8.8"]
|
||||||
}];
|
}];
|
||||||
|
|
|
@ -12,10 +12,10 @@
|
||||||
openssh.authorizedKeys.keys = [
|
openssh.authorizedKeys.keys = [
|
||||||
# Curve
|
# Curve
|
||||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDM0Zvei46x/yZl/IeBCq6+IYQQ0avulzVyBysF9cPigZMCybWRV7IEU+E3k9t6JrbdbdGfJkcZIWmsWDdKS8W8mBnZpVoT0ffLynu8JQ/TKdGm4Qv6bgUeKNrGsNv0ZPs2CDaGSLj0oJfRF7Ko10tcLP0vW+yujrh+y6TH/vVzJioaV4TGvtCUpn+wEQah9ROwPQLUUofsSWdnRsDJ/gp37zXWs4l5wyjSKtP3O9RZUP7kBekbSqEgSXiTk0oUQSVqIWl9NDiP6onk/gSOjXsR/JPqsSN/XI/c/yj6gyY0f51Ru2D7iBxuMJIJcWV+rU6coIj+ULcQWLzt/7TI8jq5AOOzI/ll4zbL24Eo84Rz+TP9tvMMhDZ0VaMN22AJ8qQEjc5P09tWKsX7Jg39XelyV1jHXncE4yvIE9F4RSCHzWCeKeXakizQNuzSaxTxIExRFYHjNW5bR6+3MTGwVrEIXU+qML+0yFTR86MT+tdY5AreAJQLwbog79O1NupeXJE= anish@curve"
|
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDM0Zvei46x/yZl/IeBCq6+IYQQ0avulzVyBysF9cPigZMCybWRV7IEU+E3k9t6JrbdbdGfJkcZIWmsWDdKS8W8mBnZpVoT0ffLynu8JQ/TKdGm4Qv6bgUeKNrGsNv0ZPs2CDaGSLj0oJfRF7Ko10tcLP0vW+yujrh+y6TH/vVzJioaV4TGvtCUpn+wEQah9ROwPQLUUofsSWdnRsDJ/gp37zXWs4l5wyjSKtP3O9RZUP7kBekbSqEgSXiTk0oUQSVqIWl9NDiP6onk/gSOjXsR/JPqsSN/XI/c/yj6gyY0f51Ru2D7iBxuMJIJcWV+rU6coIj+ULcQWLzt/7TI8jq5AOOzI/ll4zbL24Eo84Rz+TP9tvMMhDZ0VaMN22AJ8qQEjc5P09tWKsX7Jg39XelyV1jHXncE4yvIE9F4RSCHzWCeKeXakizQNuzSaxTxIExRFYHjNW5bR6+3MTGwVrEIXU+qML+0yFTR86MT+tdY5AreAJQLwbog79O1NupeXJE= anish@curve"
|
||||||
|
# Line
|
||||||
|
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDtU2GMYjXj6RGO1+mwM4TDGOo0qrKLTL4Di8+QgDX0p5vUEsnE1PS9wnuqCmSu75U8g0XIAMtvtdYyGk1N+Bx01erAZpT8DLYtIXFCyaiN28PVu5T1D0T+TQ7xgIH1qenXZR2DOQdf6kpvKEfm7+7bWhCo0N/KFMpmReubyzHDQcq/1qQasxTL+YALQFOjwKqsOTBXbHwZ103AEAcQX4ftBFEOfVli4/1aKIK4dNSZYB7J9Htq707YnsEqo9RLAMh0aOTTYgTx9AoSUDeqGuh/AGkcB7NcS7EEtI6d5YUGylwZh/gF6hqE0jl8kn2m5jMKXL3CRohZvjifue8x/GIjpu5WRabUuhBEbrfTQQaC7taHnt5rvYCGzKZx09TexUzhuz2CL480DRoxSG+P+lCNm1dIg/EZrnGEzXCSr36PlOqS5t5gm8tPkzCmZf2wU15A3ZIYUPmnYLqsn4WmIV7rKmdqt2ctWELUXow3PPiZXBucP9P3xpsYEfF1SB2SGNc= u0_a139@localhost"
|
||||||
# Box
|
# Box
|
||||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKN8/SH55DBiwVoSnTU8k2Pen+wmovL9QaMyehxGEsJJv/8fzwsswGalD4C/4O51LOvdu4UKkZW5hG02uVSK+58p3UV3pOPyoqsu/aDeIsWsqmTeTzUrBIWOlNzcDKnohLz2oGC5YO+wyTJ9Iteq6aGJDjErsW7sG3h5lXCs551EmJNNGhtBQaaoytMNnWqSdlVjDNCijurH7WUpp40U/RjEp532l4rX6eIIj3jBKEFbhZkFSSjqbj4xM4SyFt+Jmigb1RMjsQjmpfY1vDtM84RcYfpTUte/T5w2dkD5H6kccmWnwKSJpm9wXfx4E7lR9APdUGnau2U1+XxiD3ytGl anish@box"
|
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKN8/SH55DBiwVoSnTU8k2Pen+wmovL9QaMyehxGEsJJv/8fzwsswGalD4C/4O51LOvdu4UKkZW5hG02uVSK+58p3UV3pOPyoqsu/aDeIsWsqmTeTzUrBIWOlNzcDKnohLz2oGC5YO+wyTJ9Iteq6aGJDjErsW7sG3h5lXCs551EmJNNGhtBQaaoytMNnWqSdlVjDNCijurH7WUpp40U/RjEp532l4rX6eIIj3jBKEFbhZkFSSjqbj4xM4SyFt+Jmigb1RMjsQjmpfY1vDtM84RcYfpTUte/T5w2dkD5H6kccmWnwKSJpm9wXfx4E7lR9APdUGnau2U1+XxiD3ytGl anish@box"
|
||||||
# Nix-on-droid line
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJOiXBPVvZAp1fY0a0Tupxj0Ml6MoA51lvqt/jAQq249 nix-on-droid@localhost"
|
|
||||||
# Work
|
# Work
|
||||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC/vvh0i6+uAN0GWlK6ZfyTlc/AW54xe2CroUDsDSoGnFKeIUiSsWexobODlVakNhqwCKfsvUh6g+RdA8ZVcamATcYqxysP4X5fRksmAzRm5281O7ZBDHMB2BdcfHSTgiz7JvMRIQYWDlU8Ck6IL4wlN0b2GMUj9t/GeG37us8280rxpRNoIY7M27AJEZ7XNQhctBIVujxctVBgIMYmZiTwziU7ywJv4rNT5OAWvjRXSo1rkxdvx3VESv4y/mp8m7dEupZpIjIFsLs52+UG5LtadulUqtTWg05sCw8LEcmRhflgZSAvjw60RrKFCuWxc8+/Pmaw+zExeBMenqi0NzuTc3S3k2wCKVIZDh/0tlXzIwZ6WRqxDevUtEKfvbEFMXd8akhTfYs0dyszcFRevBxOBPbcKku+FK/HkdPLmEANvxYty3cv+Eipkz3c8JPJPvXNTXrjepXMm0LUKodO3c15hGogCOxUO38kykkyYnn+MxxHparoMfEr2+oHNpQoS5wA1G43ppqjVoRDgnhleu6ixwRkLZzphY3cnOd5jL9Ie5xIGbFWH1qSlQRdHBkHjuf85z7+QK8nFYAhmG1K3Vt3GNtF8LN1tYQkfwBJ/vsroMNzGPoq4PjVbqb80Eq+96cP89XKfU2/xw1g+p2lJDm/zC1WCjXVzf8NRwC7gqPavQ== anishlakhwara@anishs-mbp.lan"
|
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC/vvh0i6+uAN0GWlK6ZfyTlc/AW54xe2CroUDsDSoGnFKeIUiSsWexobODlVakNhqwCKfsvUh6g+RdA8ZVcamATcYqxysP4X5fRksmAzRm5281O7ZBDHMB2BdcfHSTgiz7JvMRIQYWDlU8Ck6IL4wlN0b2GMUj9t/GeG37us8280rxpRNoIY7M27AJEZ7XNQhctBIVujxctVBgIMYmZiTwziU7ywJv4rNT5OAWvjRXSo1rkxdvx3VESv4y/mp8m7dEupZpIjIFsLs52+UG5LtadulUqtTWg05sCw8LEcmRhflgZSAvjw60RrKFCuWxc8+/Pmaw+zExeBMenqi0NzuTc3S3k2wCKVIZDh/0tlXzIwZ6WRqxDevUtEKfvbEFMXd8akhTfYs0dyszcFRevBxOBPbcKku+FK/HkdPLmEANvxYty3cv+Eipkz3c8JPJPvXNTXrjepXMm0LUKodO3c15hGogCOxUO38kykkyYnn+MxxHparoMfEr2+oHNpQoS5wA1G43ppqjVoRDgnhleu6ixwRkLZzphY3cnOd5jL9Ie5xIGbFWH1qSlQRdHBkHjuf85z7+QK8nFYAhmG1K3Vt3GNtF8LN1tYQkfwBJ/vsroMNzGPoq4PjVbqb80Eq+96cP89XKfU2/xw1g+p2lJDm/zC1WCjXVzf8NRwC7gqPavQ== anishlakhwara@anishs-mbp.lan"
|
||||||
];
|
];
|
||||||
|
|
Loading…
Reference in a new issue