From d1f910db692e141c2da3b4fb16ebb5f2273ff9d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Tue, 7 Mar 2023 11:28:27 +0100 Subject: [PATCH] refactor: split up overlays --- overlays/channels.nix | 12 ++++++ overlays/default.nix | 87 ++++------------------------------------- overlays/packages.nix | 10 +++++ overlays/vimPlugins.nix | 29 ++++++++++++++ overlays/wayland.nix | 33 ++++++++++++++++ 5 files changed, 91 insertions(+), 80 deletions(-) create mode 100644 overlays/channels.nix create mode 100644 overlays/packages.nix create mode 100644 overlays/vimPlugins.nix create mode 100644 overlays/wayland.nix diff --git a/overlays/channels.nix b/overlays/channels.nix new file mode 100644 index 0000000..8c19d82 --- /dev/null +++ b/overlays/channels.nix @@ -0,0 +1,12 @@ +{ 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 ccea795..772ff29 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -1,81 +1,8 @@ -{ 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; +{ 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; - }; -} +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; }) +] diff --git a/overlays/packages.nix b/overlays/packages.nix new file mode 100644 index 0000000..d1fb9c3 --- /dev/null +++ b/overlays/packages.nix @@ -0,0 +1,10 @@ +{ 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 new file mode 100644 index 0000000..6efbecd --- /dev/null +++ b/overlays/vimPlugins.nix @@ -0,0 +1,29 @@ +{ 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 new file mode 100644 index 0000000..f88709a --- /dev/null +++ b/overlays/wayland.nix @@ -0,0 +1,33 @@ +{ 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" ]; + }); +}