diff options
| -rw-r--r-- | lib/my.nix | 2 | ||||
| -rw-r--r-- | mut/neovim/fnl/conf/pkgs/cmp.fnl | 39 | ||||
| -rw-r--r-- | mut/neovim/fnl/conf/settings.fnl | 2 | ||||
| -rw-r--r-- | profiles/core/secrets.nix | 42 | ||||
| -rw-r--r-- | secrets/new | 21 |
5 files changed, 92 insertions, 14 deletions
@@ -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 |
