summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/my.nix2
-rw-r--r--mut/neovim/fnl/conf/pkgs/cmp.fnl39
-rw-r--r--mut/neovim/fnl/conf/settings.fnl2
-rw-r--r--profiles/core/secrets.nix42
-rw-r--r--secrets/new21
5 files changed, 92 insertions, 14 deletions
diff --git a/lib/my.nix b/lib/my.nix
index 500a1d7..720fd32 100644
--- a/lib/my.nix
+++ b/lib/my.nix
@@ -4,7 +4,7 @@ lib: with lib; let
config = {
_module.freeformType = with types; attrs;
- username = "mivi";
+ username = "ivi";
githubUsername = "mvinkio";
realName = "Mike Vink";
domain = "vinkland.xyz";
diff --git a/mut/neovim/fnl/conf/pkgs/cmp.fnl b/mut/neovim/fnl/conf/pkgs/cmp.fnl
index 732a164..97c0655 100644
--- a/mut/neovim/fnl/conf/pkgs/cmp.fnl
+++ b/mut/neovim/fnl/conf/pkgs/cmp.fnl
@@ -64,15 +64,28 @@
:sources (cmp.config.sources [{:name :nvim_lsp}
{:name :path}
{:name :luasnip}])})
+ ; todo sorting based on least recently used
(cmp.setup.cmdline
":"
{:completion {:completeopt "menu,menuone,noinsert"}
+ :matching {:disallow_fuzzy_matching false
+ :disallow_fullfuzzy_matching false
+ :disallow_partial_fuzzy_matching false
+ :disallow_partial_matching false
+ :disallow_prefix_unmatching false}
+
:mapping (cmp.mapping.preset.cmdline {
+ :<M-CR> (cmp.mapping
+ (fn []
+ (cmp.confirm {:select true :behavior cmp.ConfirmBehavior.Replace})
+ (vim.api.nvim_feedkeys " " :c false)
+ (vim.defer_fn cmp.complete 10))
+ [:i :c])
:<CR> (cmp.mapping
(fn [fallback]
(local entry (cmp.get_selected_entry))
(if (or (= nil entry) (not (edit?)))
- (fallback)
+ (vim.schedule fallback)
(do
(cmp.confirm {:select true :behavior cmp.ConfirmBehavior.Replace})
(if (entry.completion_item.label:match "%.*/$")
@@ -81,17 +94,17 @@
(do
(vim.schedule fallback))))))
[:i :c])
- :<BS> {:c (fn [fallback]
- (if (not (edit?))
- (fallback)
- (do
- (local line (vim.fn.getcmdline))
- (local key (vim.api.nvim_replace_termcodes "<C-w>" true false true))
- (if (= nil (line:match "%.*/$"))
- (vim.api.nvim_feedkeys key :c false)
- (do
- (vim.api.nvim_feedkeys (.. key key) :c false)))
- (vim.defer_fn #(cmp.complete) 10))))}
+ :<M-BS> {:c (fn [fallback]
+ (if (not (edit?))
+ (fallback)
+ (do
+ (local line (vim.fn.getcmdline))
+ (local key (vim.api.nvim_replace_termcodes "<C-w>" true false true))
+ (if (= nil (line:match "%.*/$"))
+ (vim.api.nvim_feedkeys key :c false)
+ (do
+ (vim.api.nvim_feedkeys (.. key key) :c false)))
+ (vim.defer_fn #(cmp.complete) 10))))}
:<C-w> {:c (fn [fallback]
(fallback)
(vim.defer_fn #(cmp.complete) 10))}
@@ -99,7 +112,7 @@
(cmp.confirm {:select false})
(vim.defer_fn #(cmp.complete) 10))}})
:sources (cmp.config.sources
- [{:name :path} {:name :cmdline}])}
+ [{:name :cmdline} {:name :path}])}
diff --git a/mut/neovim/fnl/conf/settings.fnl b/mut/neovim/fnl/conf/settings.fnl
index 99bbcc9..fc0ed3e 100644
--- a/mut/neovim/fnl/conf/settings.fnl
+++ b/mut/neovim/fnl/conf/settings.fnl
@@ -23,6 +23,8 @@
dirvish_mode ":sort | sort ,^.*[^/]$, r")
(settings
+ grepprg "rg --vimgrep"
+ grepformat "%f:%l:%c:%m"
+shortmess "c"
+diffopt vertical
+isfname "@-@"
diff --git a/profiles/core/secrets.nix b/profiles/core/secrets.nix
index e69de29..e09a1fb 100644
--- a/profiles/core/secrets.nix
+++ b/profiles/core/secrets.nix
@@ -0,0 +1,42 @@
+{inputs,config,lib,pkgs,...}: with lib; {
+ imports = [
+ inputs.sops-nix.nixosModules.sops
+ (mkAliasOptionModule [ "secrets" ] [ "home-manager" "users" "mike" ])
+ ];
+ sops = {
+ gnupg = {
+ home = config.hm.programs.gpg.homedir;
+ sshKeyPaths = [];
+ };
+ age.sshKeyPaths = [];
+
+ # Taken from: https://github.com/ncfavier/config/blob/main/modules/secrets.nix
+ # GPG running as root can't find my socket dir (https://github.com/NixOS/nixpkgs/issues/57779)
+ environment.SOPS_GPG_EXEC = pkgs.writeShellScript "gpg-mike" ''
+ exec ${pkgs.util-linux}/bin/runuser -u mike -- ${pkgs.gnupg}/bin/gpg "$@"
+ '';
+
+ secrets = mapAttrs' (name: _: let
+ parts = splitString "." name;
+ base = head parts;
+ format = if length parts > 1 then elemAt parts 1 else "binary";
+ in
+ {
+ name = base;
+ value = {
+ sopsFile = "${inputs.self}/secrets/${name}";
+ inherit format;
+ key = "lemptop"; # TODO: get actual hostname from somewhere
+ };
+ }) (builtins.readDir "${inputs.self}/secrets"); # keep it out of the store
+ };
+
+ environment = {
+ systemPackages = [ pkgs.sops ];
+ sessionVariables.SOPS_PGP_FP = "95B594256E6684F46B337254CE5CD59ACAB73E44";
+ };
+
+ hm = {
+ programs.password-store.enable = true;
+ };
+}
diff --git a/secrets/new b/secrets/new
new file mode 100644
index 0000000..d9ea1b6
--- /dev/null
+++ b/secrets/new
@@ -0,0 +1,21 @@
+{
+ "data": "ENC[AES256_GCM,data:/sGitSow+1GAVLO0Dg==,iv:DWE4NsZcVB1/Teye/fx3jU6j6Px/Ok5isLYPVCN4Qm0=,tag:40cfCDeMJwa1sgEhE3hUaA==,type:str]",
+ "sops": {
+ "kms": null,
+ "gcp_kms": null,
+ "azure_kv": null,
+ "hc_vault": null,
+ "age": null,
+ "lastmodified": "2023-10-08T01:28:33Z",
+ "mac": "ENC[AES256_GCM,data:M2MNGzm+lSoflaj4AvKCcpo8kskagkJN9ObWfszlCwSziKVAiGvVXxCXdR7WG74qQoMrmnxSSs9QpYleZI6eNl/GuTKlBA9xxPdfeNc2r3suxwGCwHmKI5hy6pzndKAzz+kn6Z1NeySGUEBv78de7eJDU/8ddHfx5HxFUlTUae0=,iv:5iHn+sVkH7imZm9wydPUlMZeWlXMILZlwvaEbDPFBws=,tag:6azXE6jQDer+QT1ldZtMXg==,type:str]",
+ "pgp": [
+ {
+ "created_at": "2023-10-08T00:42:28Z",
+ "enc": "-----BEGIN PGP MESSAGE-----\n\nhQIMAwAAAAAAAAAAARAAoDnYbjDQN0415ghWjWTYFq+7C9nQpUCcNUteADrYOAsm\nJXKv5d543lFEixcZaldJ1D3Xh2y3qJO4EStQy3Vjj/FmkdUeicD10AG9Op51ASjb\nX6yrXGVCykdV5/CSLXkdw1OpIZGYs/BkGX8sZjsSwYzqO0Z4Qy6o5cmeNgMzgCIR\n+SfqLaeDIVPueOYkmwA84+cJgQkMRlevUk2rvYdDJgg4LozSQSxWQUZE//PGPA3j\nD2VxOjWDu2LXhbNV4/dleRxUusGUSNC56TGKzbm/n+ryHKOrB8Wnu84ShSbRj2GC\nNXu8xyBWYdBNrCZay7/wauDl/gkZHJjdo71Ex7ADCXQgF/AvFXDmNGxasob8mpq/\npdCtE98IfIQDmZT4AkU19GNvGhyZEvyJKopCto4oTyJ81d4sKuu5oAOt8VG+KEAO\nNSr1hFKnk7jOuFOFPXYU5al09kP2Ug135Yze2rUPHjT4lHWGkI/AI5zn2z28tthz\nrASSIlVH1bIW8oQ31rmDyUsfMbrBl/IaaefpAukzcvGLaAw1OZBVomIgbY99hE1u\n7BDDS2Fz6gzVyrwDmNMh/SJKPS5l1/Ey2/VzLe/fEs2Enob350SpUo1qB8j3WpnK\n75gn2mfGNS1lceV1AE/9uR4H+9nGGMxc6NQZK6ExYKmhktxX2pVD7S5xWlne6y3S\nXAFdCKj2RHhlesihZcucTNl9Ano/xfnNxjBnFuTHnmvR7TKHoNyAweaNWUR/B8mJ\nfvjU17vRthrEc7OZYCb+cucqzPTNyxHvoURl5629JyD2che5xXM5qU2+V8lp\n=Iyee\n-----END PGP MESSAGE-----\n",
+ "fp": "95B594256E6684F46B337254CE5CD59ACAB73E44"
+ }
+ ],
+ "unencrypted_suffix": "_unencrypted",
+ "version": "3.7.3"
+ }
+} \ No newline at end of file