From 5834fee454d8fbe4d3eace6fa4d1f005cef0cbbb Mon Sep 17 00:00:00 2001 From: Azat Bahawi Date: Sun, 30 Jul 2023 19:44:06 +0300 Subject: 2023-07-30 --- darwinConfigurations/mairon/default.nix | 1 + flake.lock | 172 ++++++++++++++++++++++------- flake.nix | 15 ++- modules/common/common/nix/default.nix | 1 - modules/common/default.nix | 1 + modules/common/emacs/doom/packages.el | 6 - modules/common/fonts.nix | 4 +- modules/common/neovim/default.nix | 27 +++++ modules/common/profiles/dev/containers.nix | 1 + modules/common/profiles/headful.nix | 2 +- modules/nixos/syncthing.nix | 126 +++++++++++---------- nixosConfigurations/eonwe/default.nix | 1 + 12 files changed, 243 insertions(+), 114 deletions(-) create mode 100644 modules/common/neovim/default.nix diff --git a/darwinConfigurations/mairon/default.nix b/darwinConfigurations/mairon/default.nix index 131cf7d..b044535 100644 --- a/darwinConfigurations/mairon/default.nix +++ b/darwinConfigurations/mairon/default.nix @@ -27,6 +27,7 @@ with lib; { {name = "openlens";} {name = "postman";} {name = "vial";} + {name = "vnc-viewer";} {name = "wireshark";} {name = "xcodes";} ]; diff --git a/flake.lock b/flake.lock index d5ba9b5..0a38c73 100644 --- a/flake.lock +++ b/flake.lock @@ -13,11 +13,11 @@ ] }, "locked": { - "lastModified": 1689334118, - "narHash": "sha256-djk5AZv1yU84xlKFaVHqFWvH73U7kIRstXwUAnDJPsk=", + "lastModified": 1690228878, + "narHash": "sha256-9Xe7JV0krp4RJC9W9W9WutZVlw6BlHTFMiUP/k48LQY=", "owner": "ryantm", "repo": "agenix", - "rev": "0d8c5325fc81daf00532e3e26c6752f7bcde1143", + "rev": "d8c973fd228949736dedf61b7f8cc1ece3236792", "type": "github" }, "original": { @@ -101,6 +101,29 @@ "url": "https://git.azahi.cc/azahi-cc" } }, + "beautysh": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ], + "poetry2nix": "poetry2nix", + "utils": "utils" + }, + "locked": { + "lastModified": 1680308980, + "narHash": "sha256-aUEHV0jk2qIFP3jlsWYWhBbm+w/N9gzH3e4I5DcdB5s=", + "owner": "lovesegfault", + "repo": "beautysh", + "rev": "9845efc3ea3e86cc0d41465d720a47f521b2799c", + "type": "github" + }, + "original": { + "owner": "lovesegfault", + "repo": "beautysh", + "type": "github" + } + }, "blobs": { "flake": false, "locked": { @@ -124,11 +147,11 @@ ] }, "locked": { - "lastModified": 1689516967, - "narHash": "sha256-sFAa33wkQHanmij/uhfGduIDK8z4dJAita/rK6u9pvE=", + "lastModified": 1690431538, + "narHash": "sha256-Uml8ivMMOFPB9fNSDcw72imGHRdJpaK12sRm2DTLLe8=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "61662a63bfe1726588c1da6b412df86d8ca94d63", + "rev": "16c07487ac9bc59f58b121d13160c67befa3342e", "type": "github" }, "original": { @@ -264,11 +287,11 @@ ] }, "locked": { - "lastModified": 1689791618, - "narHash": "sha256-+GbknQxvqytQDecu8vyAAUipP7DZexdckBbByykVJW0=", + "lastModified": 1690652600, + "narHash": "sha256-Dy09g7mezToVwtFPyY25fAx1hzqNXv73/QmY5/qyR44=", "owner": "nix-community", "repo": "home-manager", - "rev": "44ba0184376c1bf017b8f2646a6040fb66d9c3e8", + "rev": "f58889c07efa8e1328fdf93dc1796ec2a5c47f38", "type": "github" }, "original": { @@ -323,11 +346,11 @@ ] }, "locked": { - "lastModified": 1689646015, - "narHash": "sha256-MO05NOUqkBJv9pgTT8n38s9xjaxdwyjlsDmtDZVTZZk=", + "lastModified": 1690680804, + "narHash": "sha256-lf4FaxRV53UHHEKOZaHjarZ/5rEyvDdPNX4QPvssGxA=", "owner": "Infinidoge", "repo": "nix-minecraft", - "rev": "7b087b7f516ebb32cb38d17b2b2e198f984d11a0", + "rev": "54c28279268c91371cfec9c0a8862a612a77c582", "type": "github" }, "original": { @@ -350,11 +373,11 @@ ] }, "locked": { - "lastModified": 1689755083, - "narHash": "sha256-yKKMFJBBtEc0orszJYIg4D7ADbsjYAm/tuYoXTWoQs8=", + "lastModified": 1690680554, + "narHash": "sha256-qx/NVYBC+84EEcP4sATp+qPnIr1Fd6hOuhHDfzxRyT8=", "owner": "nix-community", "repo": "nix-vscode-extensions", - "rev": "b0f8fb071e9821d37eafb2648624186002b6265a", + "rev": "d6b6f46182140f13636cbdea69e7f175fef64476", "type": "github" }, "original": { @@ -366,11 +389,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1689320556, - "narHash": "sha256-vODUkZLWFVCvo1KPK3dC2CbXjxa9antEn5ozwlcTr48=", + "lastModified": 1690704397, + "narHash": "sha256-sgIWjcz0e+x87xlKg324VtHgH55J5rIuFF0ZWRDvQoE=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "d4ea64f2063820120c05f6ba93ee02e6d4671d6b", + "rev": "96e5a0a0e8568c998135ea05575a9ed2c87f5492", "type": "github" }, "original": { @@ -382,11 +405,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1689752456, - "narHash": "sha256-VOChdECcEI8ixz8QY+YC4JaNEFwQd1V8bA0G4B28Ki0=", + "lastModified": 1690720142, + "narHash": "sha256-GywuiZjBKfFkntQwpNQfL+Ksa2iGjPprBGL0/psgRZM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "7f256d7da238cb627ef189d56ed590739f42f13b", + "rev": "3acb5c4264c490e7714d503c7166a3fde0c51324", "type": "github" }, "original": { @@ -398,11 +421,11 @@ }, "nixpkgs-master": { "locked": { - "lastModified": 1689797934, - "narHash": "sha256-SDGtQfZa1IfByvamNJNcoUGNglNAHhf8n5kM0Fv75T4=", + "lastModified": 1690733591, + "narHash": "sha256-U/92zwqcCJdZj7UkaNZUwar6ucH6wE7pdIhoYKy3ufI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8f15fe7914501fa41904396582cfb9c22962d0ab", + "rev": "9333106c652cd0d36df810272183c23a138f7892", "type": "github" }, "original": { @@ -414,11 +437,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1689786379, - "narHash": "sha256-Z4t9R3POzqWTcCfq9wWB297ZcfU7FeWxP6P+kro4m1I=", + "lastModified": 1690726002, + "narHash": "sha256-cACz6jCJZtsZHGCJAN4vMobxzH5s6FCOTZHMrh/Hu0M=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "242a519286787cfcf83b99222cb883360a4b671f", + "rev": "391e8db1f06c3f74c2d313a73135515023af3993", "type": "github" }, "original": { @@ -428,6 +451,34 @@ "type": "github" } }, + "nixvim": { + "inputs": { + "beautysh": "beautysh", + "flake-utils": [ + "flake-utils" + ], + "nixpkgs": [ + "nixpkgs" + ], + "pre-commit-hooks": [ + "pre-commit-hooks" + ] + }, + "locked": { + "lastModified": 1690107839, + "narHash": "sha256-ll3j+g3qz239sfLHYhHynKRWhMkxFXsJ9MOAXzSqQMc=", + "owner": "nix-community", + "repo": "nixvim", + "rev": "4c25722d73694245e767839b462026ab2296542b", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "main", + "repo": "nixvim", + "type": "github" + } + }, "nmap-vulners": { "flake": false, "locked": { @@ -448,11 +499,11 @@ "nmap-vulscan": { "flake": false, "locked": { - "lastModified": 1689005517, - "narHash": "sha256-4PKuUDRsX0SqANftOFfwCeJTb92rOpoAWG+fBL1faBA=", + "lastModified": 1690132505, + "narHash": "sha256-V5KX5EmSAMjV/YONykpLyf2QWZpVy8meRUeW3PvRjNQ=", "owner": "scipag", "repo": "vulscan", - "rev": "b1f9a925ca0bb768c01c2b355150e88c1b130bca", + "rev": "0c793c490455e7907a7c5cbaf3f7210e80d2ee57", "type": "github" }, "original": { @@ -464,11 +515,11 @@ }, "nur": { "locked": { - "lastModified": 1689795975, - "narHash": "sha256-Iz/hKVdr9icP8fnVleyYqN+TfPqFcJtYaysurxWJp/g=", + "lastModified": 1690728090, + "narHash": "sha256-nHICvBG9jvNtwYeSpstI5y56OBFTvRm1ArL/W+s/0qA=", "owner": "nix-community", "repo": "NUR", - "rev": "94163e73e3d744a423abd5cd08417f19e01bd207", + "rev": "8c5ad7f1da09b47f001fd61b697b3ef646d6b861", "type": "github" }, "original": { @@ -478,6 +529,33 @@ "type": "github" } }, + "poetry2nix": { + "inputs": { + "flake-utils": [ + "nixvim", + "beautysh", + "utils" + ], + "nixpkgs": [ + "nixvim", + "beautysh", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1658665240, + "narHash": "sha256-/wkx7D7enyBPRjIkK0w7QxLQhzEkb3UxNQnjyc3FTUI=", + "owner": "nix-community", + "repo": "poetry2nix", + "rev": "8b8edc85d24661d5a6d0d71d6a7011f3e699780f", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "poetry2nix", + "type": "github" + } + }, "pollymc": { "inputs": { "flake-compat": [ @@ -528,11 +606,11 @@ ] }, "locked": { - "lastModified": 1689668210, - "narHash": "sha256-XAATwDkaUxH958yXLs1lcEOmU6pSEIkatY3qjqk8X0E=", + "lastModified": 1690628027, + "narHash": "sha256-OTSbA2hM6VmxyZ/4siYPANffMBzIsKu04GLjXcv8ST0=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "eb433bff05b285258be76513add6f6c57b441775", + "rev": "1e2443dd3f669eb65433b2fc26a3065e05a7dc9c", "type": "github" }, "original": { @@ -563,6 +641,7 @@ "nixpkgs": "nixpkgs", "nixpkgs-master": "nixpkgs-master", "nixpkgs-stable": "nixpkgs-stable", + "nixvim": "nixvim", "nmap-vulners": "nmap-vulners", "nmap-vulscan": "nmap-vulscan", "nur": "nur", @@ -592,11 +671,11 @@ ] }, "locked": { - "lastModified": 1689610936, - "narHash": "sha256-g/+hhD6Kpz8EQvE93q3tpP58LBxNyR7f1UhREKZJvXM=", + "lastModified": 1689976554, + "narHash": "sha256-uWJq3sIhkqfzPmfB2RWd5XFVooGFfSuJH9ER/r302xQ=", "owner": "simple-nixos-mailserver", "repo": "nixos-mailserver", - "rev": "a3b03d1b5af5112bc94b448879a2f401043b42ea", + "rev": "c63f6e7b053c18325194ff0e274dba44e8d2271e", "type": "gitlab" }, "original": { @@ -621,6 +700,21 @@ "type": "github" } }, + "utils": { + "locked": { + "lastModified": 1678901627, + "narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "xmonad-ng": { "inputs": { "flake-utils": [ diff --git a/flake.nix b/flake.nix index dd9473e..c76a436 100644 --- a/flake.nix +++ b/flake.nix @@ -74,6 +74,18 @@ ref = "master"; }; + nixvim = { + type = "github"; + owner = "nix-community"; + repo = "nixvim"; + ref = "main"; + inputs = { + flake-utils.follows = "flake-utils"; + nixpkgs.follows = "nixpkgs"; + pre-commit-hooks.follows = "pre-commit-hooks"; + }; + }; + nix-vscode-extensions = { type = "github"; owner = "nix-community"; @@ -271,7 +283,8 @@ }; in { packages = with lib; - (mapAttrs (_: c: c.config.system.build.toplevel) + pkgs + // (mapAttrs (_: c: c.config.system.build.toplevel) (builtins.removeAttrs self.nixosConfigurations ["iso-arm" "iso-x86"])) // (let buildIsoImage = name: self.nixosConfigurations.${name}.config.system.build.isoImage; diff --git a/modules/common/common/nix/default.nix b/modules/common/common/nix/default.nix index 840bdab..43586d3 100644 --- a/modules/common/common/nix/default.nix +++ b/modules/common/common/nix/default.nix @@ -192,7 +192,6 @@ with lib; { json-language-server = np.vscode-json-languageserver-bin; k3d = kube3d; kubelogin = kubelogin-oidc; - lua-language-server = sumneko-lua-language-server; nix-language-server = rnix-lsp; omnisharp = omnisharp-roslyn; telepresence = telepresence2; diff --git a/modules/common/default.nix b/modules/common/default.nix index a159a87..b360049 100644 --- a/modules/common/default.nix +++ b/modules/common/default.nix @@ -12,6 +12,7 @@ _: { ./gnupg.nix ./htop.nix ./mpv.nix + ./neovim ./nmap.nix ./openssh.nix ./password-store.nix diff --git a/modules/common/emacs/doom/packages.el b/modules/common/emacs/doom/packages.el index 99ead41..033932c 100644 --- a/modules/common/emacs/doom/packages.el +++ b/modules/common/emacs/doom/packages.el @@ -1,11 +1,5 @@ (disable-packages! writegood-mode) -(unpin! evil-collection) -(package! evil-collection - :recipe (:repo "kepi/evil-collection" - :branch "mu4e-development")) - -(unpin! org-roam) (package! org-roam :recipe (:host github :repo "org-roam/org-roam" diff --git a/modules/common/fonts.nix b/modules/common/fonts.nix index 483de0d..f3a79c2 100644 --- a/modules/common/fonts.nix +++ b/modules/common/fonts.nix @@ -81,10 +81,10 @@ in { }; config = mkIf cfg.enable { - fonts.fonts = with pkgs; [ - iosevka-bin + fonts.packages = with pkgs; [ (iosevka-bin.override {variant = "aile";}) (iosevka-bin.override {variant = "etoile";}) + iosevka-bin sarasa-gothic ]; }; diff --git a/modules/common/neovim/default.nix b/modules/common/neovim/default.nix new file mode 100644 index 0000000..1e5f103 --- /dev/null +++ b/modules/common/neovim/default.nix @@ -0,0 +1,27 @@ +{ + config, + inputs, + lib, + ... +}: +with lib; let + cfg = config.nixfiles.modules.neovim; +in { + options.nixfiles.modules.neovim.enable = mkEnableOption "NeoVim"; + + config = mkIf cfg.enable { + hm = { + imports = [inputs.nixvim.homeManagerModules.nixvim]; + + programs.nixvim = { + enable = true; + + plugins = { + lsp.enable = true; + nix.enable = true; + surround.enable = true; + }; + }; + }; + }; +} diff --git a/modules/common/profiles/dev/containers.nix b/modules/common/profiles/dev/containers.nix index cc24ab3..da6b0e1 100644 --- a/modules/common/profiles/dev/containers.nix +++ b/modules/common/profiles/dev/containers.nix @@ -35,6 +35,7 @@ in { datree helm istioctl + k9s kubeconform kubectl kubectl-doctor diff --git a/modules/common/profiles/headful.nix b/modules/common/profiles/headful.nix index 935da31..7ec9d42 100644 --- a/modules/common/profiles/headful.nix +++ b/modules/common/profiles/headful.nix @@ -19,6 +19,7 @@ in { aria2.enable = true; emacs.enable = true; mpv.enable = true; + neovim.enable = true; openssh.client.enable = true; password-store.enable = true; vscode.enable = true; @@ -34,7 +35,6 @@ in { ''; packages = with pkgs; [ - anki comma fd ripgrep diff --git a/modules/nixos/syncthing.nix b/modules/nixos/syncthing.nix index 24bfbb6..399fb6b 100644 --- a/modules/nixos/syncthing.nix +++ b/modules/nixos/syncthing.nix @@ -50,76 +50,13 @@ in { overrideDevices = true; overrideFolders = true; - devices = mapAttrs (name: attr: - mkIf (attr.syncthing.id != null && hasAttr "wireguard" attr) { - inherit (attr.syncthing) id; - addresses = ["tcp://${name}.${config.networking.domain}:22000"]; - introducer = this.isHeadless; - }) - my.configurations; - - folders = let - filterDevices = f: - attrNames (filterAttrs (_: attr: - (attr.hostname != this.hostname) - && (attr.syncthing.id != null) - && f attr) - my.configurations); - all = filterDevices (_: true); - notHeadless = filterDevices (attr: !attr.isHeadless); - notOther = filterDevices (attr: !attr.isOther); - - simple = { - type = "simple"; - params.keep = "5"; - }; - trashcan = { - type = "trashcan"; - params.cleanoutDays = "7"; - }; - in - with config.hm.xdg.userDirs; { - share = { - path = publicShare; - devices = notHeadless; - versioning = trashcan; - }; - pass = { - path = config.hm.programs.password-store.settings.PASSWORD_STORE_DIR; - devices = notOther; - versioning = trashcan; - }; - org = { - path = "${documents}/org"; - devices = all; - versioning = simple; - }; - roam = { - path = "${documents}/roam"; - devices = notOther; - versioning = simple; - }; - elfeed = { - path = "${config.my.home}/.elfeed"; - devices = notOther; - versioning = trashcan; - }; - books = { - path = "${documents}/books"; - devices = notOther; - versioning = trashcan; - }; - }; - - extraOptions = { + settings = { options = { - testOption = false; autoUpgradeIntervalH = 0; crashReportingEnabled = false; globalAnnounceEnabled = false; relaysEnabled = false; setLowPriority = this.isHeadless; - stunKeepaliveMinS = 0; stunKeepaliveStartS = 0; urAccepted = -1; }; @@ -128,6 +65,67 @@ in { insecureAdminAccess = true; insecureSkipHostcheck = this.isHeadless; }; + + devices = mapAttrs (name: attr: + mkIf (attr.syncthing.id != null && hasAttr "wireguard" attr) { + inherit (attr.syncthing) id; + addresses = ["tcp://${name}.${config.networking.domain}:22000"]; + introducer = this.isHeadless; + }) + my.configurations; + + folders = let + filterDevices = f: + attrNames (filterAttrs (_: attr: + (attr.hostname != this.hostname) + && (attr.syncthing.id != null) + && f attr) + my.configurations); + all = filterDevices (_: true); + notHeadless = filterDevices (attr: !attr.isHeadless); + notOther = filterDevices (attr: !attr.isOther); + + simple = { + type = "simple"; + params.keep = "5"; + }; + trashcan = { + type = "trashcan"; + params.cleanoutDays = "7"; + }; + in + with config.hm.xdg.userDirs; { + share = { + path = publicShare; + devices = notHeadless; + versioning = trashcan; + }; + pass = { + path = config.hm.programs.password-store.settings.PASSWORD_STORE_DIR; + devices = notOther; + versioning = trashcan; + }; + org = { + path = "${documents}/org"; + devices = all; + versioning = simple; + }; + roam = { + path = "${documents}/roam"; + devices = notOther; + versioning = simple; + }; + elfeed = { + path = "${config.my.home}/.elfeed"; + devices = notOther; + versioning = trashcan; + }; + books = { + path = "${documents}/books"; + devices = notOther; + versioning = trashcan; + }; + }; }; }; diff --git a/nixosConfigurations/eonwe/default.nix b/nixosConfigurations/eonwe/default.nix index 677006a..a5d3278 100644 --- a/nixosConfigurations/eonwe/default.nix +++ b/nixosConfigurations/eonwe/default.nix @@ -30,6 +30,7 @@ with lib; { hm = { home.packages = with pkgs; [ + anki gzdoom kdenlive obs-studio -- cgit 1.4.1