diff --git a/flake.lock b/flake.lock index de60f09..51c1110 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,34 @@ { "nodes": { + "colmena": { + "inputs": { + "flake-compat": [ + "flake-compat" + ], + "flake-utils": [ + "flake-utils" + ], + "nixpkgs": [ + "nixpkgs" + ], + "stable": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1711386353, + "narHash": "sha256-gWEpb8Hybnoqb4O4tmpohGZk6+aerAbJpywKcFIiMlg=", + "owner": "zhaofengli", + "repo": "colmena", + "rev": "cd65ef7a25cdc75052fbd04b120aeb066c3881db", + "type": "github" + }, + "original": { + "owner": "zhaofengli", + "repo": "colmena", + "type": "github" + } + }, "crane": { "inputs": { "nixpkgs": [ @@ -276,6 +305,7 @@ }, "root": { "inputs": { + "colmena": "colmena", "crane": "crane", "disko": "disko", "flake-compat": "flake-compat", diff --git a/flake.nix b/flake.nix index 6b2241c..15c4441 100644 --- a/flake.nix +++ b/flake.nix @@ -10,6 +10,13 @@ nixpkgs.url = "github:NixOS/nixpkgs/c169763c3087b02a8308e2f8a9bba77c428dcca1"; # userborn # nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; + colmena = { + url = "github:zhaofengli/colmena"; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.flake-compat.follows = "flake-compat"; + inputs.flake-utils.follows = "flake-utils"; + inputs.stable.follows = "nixpkgs"; + }; disko = { url = "github:nix-community/disko"; inputs.nixpkgs.follows = "nixpkgs"; @@ -49,7 +56,9 @@ inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs-stable.follows = "nixpkgs"; }; - systems.url = "github:nix-systems/default"; + systems = { + url = "github:nix-systems/default"; + }; treefmt-nix = { url = "github:numtide/treefmt-nix"; inputs.nixpkgs.follows = "nixpkgs"; @@ -93,16 +102,16 @@ treefmtEval = inputs.treefmt-nix.lib.evalModule pkgs ./treefmt.nix; in { - ### nix fmt + # nix fmt formatter = treefmtEval.config.build.wrapper; - ### nix flake check + # nix flake check checks.formatting = treefmtEval.config.build.check inputs.self; - ### nix {run,shell,build} + # nix {run,shell,build} legacyPackages = import ./pkgs pkgs; - ### nix develop + # nix develop devShells.default = pkgs.mkShellNoCC { packages = with pkgs; [ colmena @@ -112,26 +121,23 @@ } ) // { - ### imports = []; nixosModules.default = ./nixos/modules; - homeManagerModules.default = ./home/modules; + overlays.default = import ./overlays; - ### nixpkgs.overlays = []; - overlays = import ./overlays; - - ### NixOS - nixosConfigurations."dust" = inputs.nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - modules = [ - ./nixos/profiles/core - ./hosts/dust - ]; - specialArgs = { - inherit inputs; + nixosConfigurations = { + "dust" = inputs.nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + ./nixos/profiles/core + ./hosts/dust + ]; + specialArgs = { + inherit inputs; + }; }; - }; + } // inputs.self.colmenaHive.nodes; - colmena = { + colmenaHive = inputs.colmena.lib.makeHive { meta = { specialArgs = { inherit inputs; diff --git a/nixos/profiles/core/default.nix b/nixos/profiles/core/default.nix index 1519099..9541b48 100644 --- a/nixos/profiles/core/default.nix +++ b/nixos/profiles/core/default.nix @@ -21,7 +21,7 @@ ]); nixpkgs.overlays = [ - inputs.self.overlays.patches + inputs.self.overlays.default ]; boot.kernelPackages = pkgs.linuxPackages_latest; diff --git a/overlays/default.nix b/overlays/default.nix index cc54fda..e73553e 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -5,97 +5,95 @@ let patches = (old.patches or [ ]) ++ patches; }); in -{ - patches = _final: prev: { - # https://aur.archlinux.org/pkgbase/nautilus-typeahead - nautilus = prev.nautilus.overrideAttrs { - src = prev.fetchFromGitLab { - domain = "gitlab.gnome.org"; - owner = "albertvaka"; - repo = "nautilus"; - rev = "f5f593bf36c41756a29d5112a10cf7ec70b8eafb"; - hash = "sha256-PfkCY2gQ8jfPIgTRC9Xzxh4N3f2oB339Hym5RCbKwkw="; - }; - - # Enable type-ahead behavior by default - postPatch = '' - awk -i inplace '/type-ahead-search/{c++;} c==1 && /true/{sub("true", "false"); c++;} 1' data/org.gnome.nautilus.gschema.xml - ''; +_final: prev: { + # https://aur.archlinux.org/pkgbase/nautilus-typeahead + nautilus = prev.nautilus.overrideAttrs { + src = prev.fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "albertvaka"; + repo = "nautilus"; + rev = "f5f593bf36c41756a29d5112a10cf7ec70b8eafb"; + hash = "sha256-PfkCY2gQ8jfPIgTRC9Xzxh4N3f2oB339Hym5RCbKwkw="; }; - qt6Packages = prev.qt6Packages.overrideScope ( - _final': prev': { - # HACK: no more qt5 - fcitx5-with-addons = prev'.fcitx5-with-addons.override { - libsForQt5.fcitx5-qt = prev.emptyDirectory; - }; - - # HACK: no more qtwebengine, opencc - fcitx5-chinese-addons = - (prev'.fcitx5-chinese-addons.override { - curl = prev.emptyDirectory; - opencc = prev.emptyDirectory; - qtwebengine = prev.emptyDirectory; - }).overrideAttrs - (oldAttrs: { - buildInputs = oldAttrs.buildInputs ++ [ - prev.gettext - prev'.qtbase - ]; - cmakeFlags = oldAttrs.cmakeFlags ++ [ - (prev.lib.cmakeBool "ENABLE_BROWSER" false) - (prev.lib.cmakeBool "ENABLE_CLOUDPINYIN" false) - (prev.lib.cmakeBool "ENABLE_OPENCC" false) - ]; - }); - } - ); - - # HACK: no more gtk2 - gnome-themes-extra = - (prev.gnome-themes-extra.override { - gtk2 = prev.emptyDirectory; - }).overrideAttrs - { - configureFlags = [ "--disable-gtk2-engine" ]; - }; - - sway-unwrapped = addPatches prev.sway-unwrapped [ - # text_input: Implement input-method popups - # https://github.com/swaywm/sway/pull/7226 - (prev.fetchpatch2 { - name = "0001-text_input-Implement-input-method-popups.patch"; - url = "https://github.com/swaywm/sway/commit/de74d1f6360810c0a5fd11d8022fbffe56fc97c5.patch"; - hash = "sha256-iTZIYHBp8vxjVdmH/k+jlN0/Zj6Ofe/qefv7ubtowHs="; - }) - (prev.fetchpatch2 { - name = "0002-chore-fractal-scale-handle.patch"; - url = "https://github.com/swaywm/sway/commit/2aa72e8dfd3b3d051fdec6b2d05c5635adcfb57b.patch"; - hash = "sha256-aJYXoZ7xEEy8J8DjxANOe14HdHRni6IXSNcAzLzNvIo="; - }) - (prev.fetchpatch2 { - name = "0003-chore-left_pt-on-method-popup.patch"; - url = "https://github.com/swaywm/sway/commit/0789c12a8edf46fbc1c7024e153f3e8f8f35fe12.patch"; - hash = "sha256-zvhp5eXqDngMNtctzVpryZY3zKi3IVjV7oFIBMC2jMk="; - }) - - # Tray D-Bus Menu - # https://github.com/swaywm/sway/pull/6249 - (prev.fetchpatch2 { - name = "0001-Tray-Implement-dbusmenu.patch"; - url = "https://github.com/NickHu/sway/commit/0fc5d7aed84415a77b718ca9dc3c0b3ad2c05b02.patch"; - hash = "sha256-eosg6m2P6e8NRXjOAQL3SZg+Yc4Av9Wd+LOy0G3+xkA="; - }) - (prev.fetchpatch2 { - name = "0002-Tray-dont-invoke-dbus-menu-when-tray-is-disabled.patch"; - url = "https://github.com/NickHu/sway/commit/03c14421354e54332e12f78d029dcaa9919fd161.patch"; - hash = "sha256-8RGtpfN/tnkA7nuGdXGHoKUoKVeG7brSQR6V4RU3z88="; - }) - (prev.fetchpatch2 { - name = "0003-swaybar-dbusmenu-fix-crash-if-the-program-exits-while-menu.patch"; - url = "https://github.com/llyyr/sway/commit/84481c26a4c55674da5804bb2619d3575ba405b3.patch"; - hash = "sha256-+JJoHNOmDzqT1TaFM83DR3/BdCab240tfs21VNMv6wE="; - }) - ]; + # Enable type-ahead behavior by default + postPatch = '' + awk -i inplace '/type-ahead-search/{c++;} c==1 && /true/{sub("true", "false"); c++;} 1' data/org.gnome.nautilus.gschema.xml + ''; }; + + qt6Packages = prev.qt6Packages.overrideScope ( + _final': prev': { + # HACK: no more qt5 + fcitx5-with-addons = prev'.fcitx5-with-addons.override { + libsForQt5.fcitx5-qt = prev.emptyDirectory; + }; + + # HACK: no more qtwebengine, opencc + fcitx5-chinese-addons = + (prev'.fcitx5-chinese-addons.override { + curl = prev.emptyDirectory; + opencc = prev.emptyDirectory; + qtwebengine = prev.emptyDirectory; + }).overrideAttrs + (oldAttrs: { + buildInputs = oldAttrs.buildInputs ++ [ + prev.gettext + prev'.qtbase + ]; + cmakeFlags = oldAttrs.cmakeFlags ++ [ + (prev.lib.cmakeBool "ENABLE_BROWSER" false) + (prev.lib.cmakeBool "ENABLE_CLOUDPINYIN" false) + (prev.lib.cmakeBool "ENABLE_OPENCC" false) + ]; + }); + } + ); + + # HACK: no more gtk2 + gnome-themes-extra = + (prev.gnome-themes-extra.override { + gtk2 = prev.emptyDirectory; + }).overrideAttrs + { + configureFlags = [ "--disable-gtk2-engine" ]; + }; + + sway-unwrapped = addPatches prev.sway-unwrapped [ + # text_input: Implement input-method popups + # https://github.com/swaywm/sway/pull/7226 + (prev.fetchpatch2 { + name = "0001-text_input-Implement-input-method-popups.patch"; + url = "https://github.com/swaywm/sway/commit/de74d1f6360810c0a5fd11d8022fbffe56fc97c5.patch"; + hash = "sha256-iTZIYHBp8vxjVdmH/k+jlN0/Zj6Ofe/qefv7ubtowHs="; + }) + (prev.fetchpatch2 { + name = "0002-chore-fractal-scale-handle.patch"; + url = "https://github.com/swaywm/sway/commit/2aa72e8dfd3b3d051fdec6b2d05c5635adcfb57b.patch"; + hash = "sha256-aJYXoZ7xEEy8J8DjxANOe14HdHRni6IXSNcAzLzNvIo="; + }) + (prev.fetchpatch2 { + name = "0003-chore-left_pt-on-method-popup.patch"; + url = "https://github.com/swaywm/sway/commit/0789c12a8edf46fbc1c7024e153f3e8f8f35fe12.patch"; + hash = "sha256-zvhp5eXqDngMNtctzVpryZY3zKi3IVjV7oFIBMC2jMk="; + }) + + # Tray D-Bus Menu + # https://github.com/swaywm/sway/pull/6249 + (prev.fetchpatch2 { + name = "0001-Tray-Implement-dbusmenu.patch"; + url = "https://github.com/NickHu/sway/commit/0fc5d7aed84415a77b718ca9dc3c0b3ad2c05b02.patch"; + hash = "sha256-eosg6m2P6e8NRXjOAQL3SZg+Yc4Av9Wd+LOy0G3+xkA="; + }) + (prev.fetchpatch2 { + name = "0002-Tray-dont-invoke-dbus-menu-when-tray-is-disabled.patch"; + url = "https://github.com/NickHu/sway/commit/03c14421354e54332e12f78d029dcaa9919fd161.patch"; + hash = "sha256-8RGtpfN/tnkA7nuGdXGHoKUoKVeG7brSQR6V4RU3z88="; + }) + (prev.fetchpatch2 { + name = "0003-swaybar-dbusmenu-fix-crash-if-the-program-exits-while-menu.patch"; + url = "https://github.com/llyyr/sway/commit/84481c26a4c55674da5804bb2619d3575ba405b3.patch"; + hash = "sha256-+JJoHNOmDzqT1TaFM83DR3/BdCab240tfs21VNMv6wE="; + }) + ]; }