diff --git a/flake.nix b/flake.nix index 6d7c237..e6be918 100644 --- a/flake.nix +++ b/flake.nix @@ -104,17 +104,11 @@ channelsConfig.allowUnfree = true; - lib = nixpkgs.lib.extend - (self: super: { my = import ./lib { lib = self; }; }); - ################ ### Overlays ### ################ - overlay = import ./overlays { - inherit inputs; - inherit (self) lib; - }; + overlay = import ./overlays { inherit inputs; }; channels.nixpkgs.overlaysBuilder = channels: [ inputs.emacs.overlays.default @@ -140,23 +134,22 @@ ./modules/profiles/gaming.nix ./modules/profiles/desktop.nix ]; - hostDefaults = { - modules = [ - ./modules/default.nix - self.nixosModules.base - inputs.home-manager.nixosModule - { - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - extraSpecialArgs = { inherit inputs self; }; - }; - } - inputs.hyprland.nixosModules.default - inputs.agenix.nixosModules.age - inputs.howdy.nixosModules.default - ]; - }; + + hostDefaults.modules = [ + ./modules/default.nix + self.nixosModules.base + inputs.home-manager.nixosModule + { + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = { inherit inputs self; }; + }; + } + inputs.hyprland.nixosModules.default + inputs.agenix.nixosModules.age + inputs.howdy.nixosModules.default + ]; hosts.nixos-laptop.modules = [ ./hosts/nixos-laptop diff --git a/lib/default.nix b/lib/default.nix deleted file mode 100644 index f2ea1c0..0000000 --- a/lib/default.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ lib, ... }: - -lib.makeExtensible (self: rec { - mkDate = longDate: lib.concatStringsSep "-" [ - (builtins.substring 0 4 longDate) - (builtins.substring 4 2 longDate) - (builtins.substring 6 2 longDate) - ]; - mkVersionSrc = src: "unstable-" + builtins.substring 0 7 src.rev; - mkVersionInput = input: - let - date = mkDate (input.lastModifiedDate or "19700101"); - rev = input.shortRev or "dirty"; - in - "unstable-${date}_${rev}}"; -}) diff --git a/overlays/channels.nix b/overlays/channels.nix deleted file mode 100644 index 8c19d82..0000000 --- a/overlays/channels.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ lib, inputs }: - -final: prev: { - master = import inputs.master { - inherit (prev) system; - config.allowUnfree = true; - }; - stable = import inputs.stable { - inherit (prev) system; - config.allowUnfree = true; - }; -} diff --git a/overlays/default.nix b/overlays/default.nix index 772ff29..ccea795 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -1,8 +1,81 @@ -{ inputs, lib }: +{ inputs }: final: prev: +let + mkDate = longDate: (prev.lib.concatStringsSep "-" [ + (builtins.substring 0 4 longDate) + (builtins.substring 4 2 longDate) + (builtins.substring 6 2 longDate) + ]); + mkVersionSrc = src: "unstable-" + builtins.substring 0 7 src.rev; + mkVersionInput = input: "unstable-" + mkDate (input.lastModifiedDate or "19700101") + "_" + (input.shortRev or "dirty"); +in +{ + agenix = inputs.agenix.packages.${prev.system}.default; + attic = inputs.attic.packages.${prev.system}.default; + hyprpaper = inputs.hyprpaper.packages.${prev.system}.default; + neovim-nightly = inputs.neovim.packages.${prev.system}.default; + nil = inputs.nil.packages.${prev.system}.default; -lib.composeManyExtensions [ - (import ./channels.nix { inherit inputs lib; }) - (import ./packages.nix { inherit inputs lib; }) - (import ./vimPlugins.nix { inherit inputs lib; }) - (import ./wayland.nix { inherit inputs lib; }) -] + logseq-wayland = prev.symlinkJoin { + name = "logseq-wayland"; + paths = [ prev.logseq ]; + nativeBuildInputs = [ prev.makeWrapper ]; + postBuild = '' + wrapProgram $out/bin/logseq \ + --add-flags "--socket=wayland --enable-features=UseOzonePlatform --ozone-platform=wayland" + ''; + }; + + waybar-hyprland = prev.waybar.overrideAttrs (old: { + pname = "${old.pname}-hyprland"; + postPatch = old.postPatch or "" + '' + sed -i 's,zext_workspace_handle_v1_activate(workspace_handle_);,const std::string command = "${final.hyprland}/bin/hyprctl dispatch workspace " + name_;\n\tsystem(command.c_str());,g' src/modules/wlr/workspace_manager.cpp + ''; + mesonFlags = old.mesonFlags or [ ] ++ [ "-Dexperimental=true" ]; + }); + + vimPlugins = prev.vimPlugins // { + nvim-treesitter-textsubjects = prev.vimUtils.buildVimPluginFrom2Nix { + pname = "nvim-treesitter-textsubjects"; + version = mkVersionInput inputs.nvim-treesitter-textsubjects; + src = inputs.nvim-treesitter-textsubjects; + }; + + smartcolumn-nvim = prev.vimUtils.buildVimPluginFrom2Nix { + pname = "smartcolumn-nvim"; + version = mkVersionInput inputs.smartcolumn-nvim; + src = inputs.smartcolumn-nvim; + }; + + copilot-lua = prev.vimPlugins.copilot-lua.overrideAttrs (old: { + version = mkVersionInput inputs.copilot-lua; + src = inputs.copilot-lua; + }); + + lspsaga-nvim-original = prev.vimPlugins.lspsaga-nvim-original.overrideAttrs (old: { + version = mkVersionInput inputs.lspsaga-nvim; + src = inputs.lspsaga-nvim; + }); + }; + + neovide-hyprland = final.symlinkJoin { + name = "neovide-hyprland-${final.neovide.version}"; + paths = [ final.neovide ]; + nativeBuildInputs = [ final.makeWrapper ]; + postBuild = '' + rm $out/bin/neovide + makeWrapper ${final.neovide}/bin/neovide $out/bin/neovide --set WINIT_UNIX_BACKEND x11 + ''; + meta = final.neovide.meta // { + mainProgram = "neovide"; + }; + }; + + master = import inputs.master { + inherit (prev) system; + config.allowUnfree = true; + }; + stable = import inputs.stable { + inherit (prev) system; + config.allowUnfree = true; + }; +} diff --git a/overlays/packages.nix b/overlays/packages.nix deleted file mode 100644 index d1fb9c3..0000000 --- a/overlays/packages.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ inputs, lib }: - -final: prev: -{ - agenix = inputs.agenix.packages.${prev.system}.default; - attic = inputs.attic.packages.${prev.system}.default; - hyprpaper = inputs.hyprpaper.packages.${prev.system}.default; - neovim-nightly = inputs.neovim.packages.${prev.system}.default; - nil = inputs.nil.packages.${prev.system}.default; -} diff --git a/overlays/vimPlugins.nix b/overlays/vimPlugins.nix deleted file mode 100644 index 6efbecd..0000000 --- a/overlays/vimPlugins.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ inputs, lib }: - -final: prev: -with lib.my; -{ - vimPlugins = prev.vimPlugins // { - nvim-treesitter-textsubjects = prev.vimUtils.buildVimPluginFrom2Nix { - pname = "nvim-treesitter-textsubjects"; - version = mkVersionInput inputs.nvim-treesitter-textsubjects; - src = inputs.nvim-treesitter-textsubjects; - }; - - smartcolumn-nvim = prev.vimUtils.buildVimPluginFrom2Nix { - pname = "smartcolumn-nvim"; - version = mkVersionInput inputs.smartcolumn-nvim; - src = inputs.smartcolumn-nvim; - }; - - copilot-lua = prev.vimPlugins.copilot-lua.overrideAttrs (old: { - version = mkVersionInput inputs.copilot-lua; - src = inputs.copilot-lua; - }); - - lspsaga-nvim-original = prev.vimPlugins.lspsaga-nvim-original.overrideAttrs (old: { - version = mkVersionInput inputs.lspsaga-nvim; - src = inputs.lspsaga-nvim; - }); - }; -} diff --git a/overlays/wayland.nix b/overlays/wayland.nix deleted file mode 100644 index f88709a..0000000 --- a/overlays/wayland.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ lib, inputs }: - -final: prev: { - neovide-hyprland = final.symlinkJoin { - name = "neovide-hyprland-${final.neovide.version}"; - paths = [ final.neovide ]; - nativeBuildInputs = [ final.makeWrapper ]; - postBuild = '' - rm $out/bin/neovide - makeWrapper ${final.neovide}/bin/neovide $out/bin/neovide --set WINIT_UNIX_BACKEND x11 - ''; - meta = final.neovide.meta // { - mainProgram = "neovide"; - }; - }; - logseq-wayland = prev.symlinkJoin { - name = "logseq-wayland"; - paths = [ prev.logseq ]; - nativeBuildInputs = [ prev.makeWrapper ]; - postBuild = '' - wrapProgram $out/bin/logseq \ - --add-flags "--socket=wayland --enable-features=UseOzonePlatform --ozone-platform=wayland" - ''; - }; - - waybar-hyprland = prev.waybar.overrideAttrs (old: { - pname = "${old.pname}-hyprland"; - postPatch = old.postPatch or "" + '' - sed -i 's,zext_workspace_handle_v1_activate(workspace_handle_);,const std::string command = "${final.hyprland}/bin/hyprctl dispatch workspace " + name_;\n\tsystem(command.c_str());,g' src/modules/wlr/workspace_manager.cpp - ''; - mesonFlags = old.mesonFlags or [ ] ++ [ "-Dexperimental=true" ]; - }); -}