diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c9abbf6..af4fee3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,16 +12,16 @@ jobs: strategy: matrix: package: - - foot-transparent + - alejandra-no-ads + - ani-cli - cloneit + - foot-transparent - mov-cli - rat - - ani-cli - rofi-calc-wayland - rofi-emoji-wayland - headscale-ui - mastodon-bird-ui - - mastodon-bird-ui uses: ./.github/workflows/nix.yml with: diff --git a/pkgs/ani-cli/README.md b/pkgs/applications/misc/ani-cli/README.md similarity index 100% rename from pkgs/ani-cli/README.md rename to pkgs/applications/misc/ani-cli/README.md diff --git a/pkgs/ani-cli/default.nix b/pkgs/applications/misc/ani-cli/default.nix similarity index 100% rename from pkgs/ani-cli/default.nix rename to pkgs/applications/misc/ani-cli/default.nix diff --git a/pkgs/cloneit/default.nix b/pkgs/applications/misc/cloneit/default.nix similarity index 100% rename from pkgs/cloneit/default.nix rename to pkgs/applications/misc/cloneit/default.nix diff --git a/pkgs/mov-cli/default.nix b/pkgs/applications/misc/mov-cli/default.nix similarity index 100% rename from pkgs/mov-cli/default.nix rename to pkgs/applications/misc/mov-cli/default.nix diff --git a/pkgs/rat/default.nix b/pkgs/applications/misc/rat/default.nix similarity index 100% rename from pkgs/rat/default.nix rename to pkgs/applications/misc/rat/default.nix diff --git a/patches/0002-patch-plugin-dir.patch b/pkgs/applications/misc/rofi-plugins/patches/0001-patch-plugin-dir.patch similarity index 99% rename from patches/0002-patch-plugin-dir.patch rename to pkgs/applications/misc/rofi-plugins/patches/0001-patch-plugin-dir.patch index eedd7a5..17ff666 100644 --- a/patches/0002-patch-plugin-dir.patch +++ b/pkgs/applications/misc/rofi-plugins/patches/0001-patch-plugin-dir.patch @@ -23,3 +23,4 @@ index 50edb74..639ee86 100644 -- 2.25.1 + diff --git a/pkgs/rofi-calc-wayland/default.nix b/pkgs/applications/misc/rofi-plugins/rofi-calc-wayland/default.nix similarity index 95% rename from pkgs/rofi-calc-wayland/default.nix rename to pkgs/applications/misc/rofi-plugins/rofi-calc-wayland/default.nix index ad884b7..06fd395 100644 --- a/pkgs/rofi-calc-wayland/default.nix +++ b/pkgs/applications/misc/rofi-plugins/rofi-calc-wayland/default.nix @@ -40,7 +40,7 @@ in ]; patches = [ - ../../patches/0002-patch-plugin-dir.patch + ../patches/0001-patch-plugin-dir.patch ]; postPatch = '' diff --git a/pkgs/rofi-emoji-wayland/default.nix b/pkgs/applications/misc/rofi-plugins/rofi-emoji-wayland/default.nix similarity index 96% rename from pkgs/rofi-emoji-wayland/default.nix rename to pkgs/applications/misc/rofi-plugins/rofi-emoji-wayland/default.nix index ccc7dcc..445687a 100644 --- a/pkgs/rofi-emoji-wayland/default.nix +++ b/pkgs/applications/misc/rofi-plugins/rofi-emoji-wayland/default.nix @@ -42,7 +42,7 @@ in ]; patches = [ - ../../patches/0002-patch-plugin-dir.patch + ../patches/0001-patch-plugin-dir.patch ]; postPatch = '' diff --git a/pkgs/headscale-ui/default.nix b/pkgs/applications/networking/headscale-ui/default.nix similarity index 100% rename from pkgs/headscale-ui/default.nix rename to pkgs/applications/networking/headscale-ui/default.nix diff --git a/pkgs/reposilite-bin/default.nix b/pkgs/applications/networking/reposilite-bin/default.nix similarity index 100% rename from pkgs/reposilite-bin/default.nix rename to pkgs/applications/networking/reposilite-bin/default.nix diff --git a/pkgs/mastodon-bird-ui/default.nix b/pkgs/applications/social/mastodon-bird-ui/default.nix similarity index 100% rename from pkgs/mastodon-bird-ui/default.nix rename to pkgs/applications/social/mastodon-bird-ui/default.nix diff --git a/patches/0001-foot-transparent.patch b/pkgs/applications/terminal-emulators/foot-transparent/0001-fullscreen-transparency.patch similarity index 99% rename from patches/0001-foot-transparent.patch rename to pkgs/applications/terminal-emulators/foot-transparent/0001-fullscreen-transparency.patch index d17c652..de94429 100644 --- a/patches/0001-foot-transparent.patch +++ b/pkgs/applications/terminal-emulators/foot-transparent/0001-fullscreen-transparency.patch @@ -108,3 +108,4 @@ index 91472027..847984a9 100644 struct buffer *buf = shm_get_buffer( chain, term->width, term->height, use_alpha); + diff --git a/pkgs/applications/terminal-emulators/foot-transparent/default.nix b/pkgs/applications/terminal-emulators/foot-transparent/default.nix new file mode 100644 index 0000000..9d37a9d --- /dev/null +++ b/pkgs/applications/terminal-emulators/foot-transparent/default.nix @@ -0,0 +1,26 @@ +{ + lib, + fetchFromGitea, + foot, + ... +}: +foot.overrideAttrs (prev: let + version = "2024-03-14-unstable"; +in { + inherit version; + src = fetchFromGitea { + domain = "codeberg.org"; + owner = "dnkl"; + repo = "foot"; + rev = "dd3bb13d97b405495465357f7b7b17c9f2bba3c2"; + hash = "sha256-Pp3/cNELRYmTOQrJgHX6c+t0QkxEjoly0TLMKVj3H0E="; + }; + + patches = (prev.patches or []) ++ [./0001-fullscreen-transparency.patch]; + mesonFlags = (prev.mesonFlags or []) ++ ["-Dfullscreen_alpha=true"]; + + meta = { + mainProgram = "foot"; + maintainers = with lib.maintainers; [NotAShelf]; + }; +}) diff --git a/pkgs/applications/video/mpv/scripts/save-history/default.nix b/pkgs/applications/video/mpv/scripts/save-history/default.nix new file mode 100644 index 0000000..56fe2bc --- /dev/null +++ b/pkgs/applications/video/mpv/scripts/save-history/default.nix @@ -0,0 +1,16 @@ +{ + lib, + mpvScripts, +}: +mpvScripts.buildLua { + pname = "save-history"; + version = "unstable-2024-03-18"; + + src = builtins.filterSource (path: type: type != "directory" || (!lib.hasSuffix path ".nix")) ./.; + + meta = { + description = "Save history of played files"; + homepage = "https://github.com/notashelf/nyxpkgs"; + maintainers = [lib.maintainers.NotAShelf]; + }; +} diff --git a/pkgs/applications/video/mpv/scripts/save-history/save-history.lua b/pkgs/applications/video/mpv/scripts/save-history/save-history.lua new file mode 100644 index 0000000..0ab9842 --- /dev/null +++ b/pkgs/applications/video/mpv/scripts/save-history/save-history.lua @@ -0,0 +1,12 @@ +local HISTFILE = (os.getenv('XDG_DATA_HOME') or os.getenv('HOME')) .. '/mpv/history.log'; + +mp.register_event('file-loaded', function() + local title, fp; + + title = mp.get_property('media-title'); + title = (title == mp.get_property('filename') and "" or (' (%s)'):format(title)); + + fp = io.open(HISTFILE, 'a+'); + fp:write(('[%s] %s%s\n'):format(os.date('%Y-%m-%d %X'), mp.get_property('path'), title)); + fp:close(); +end) diff --git a/pkgs/default.nix b/pkgs/default.nix index 77b133c..eeffa67 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -15,71 +15,11 @@ }; packages = let - inherit (pkgs) callPackage fetchFromGitea foot alejandra; pins = import ../npins; + inherit (pkgs) callPackage; mkPackage = path: {__functor = self: self.override;} // (callPackage path {inherit pins;}); - in { - /* - packages that follow npins entries - they can be updated via npins - */ - ani-cli = mkPackage ./ani-cli; - rat = mkPackage ./rat; - rofi-calc-wayland = mkPackage ./rofi-calc-wayland; - rofi-emoji-wayland = mkPackage ./rofi-emoji-wayland; - - /* - static packages - need manual intervention with each update - */ - mov-cli = callPackage ./mov-cli {}; - cloneit = callPackage ./cloneit {}; - headscale-ui = callPackage ./headscale-ui {}; - mastodon-bird-ui = callPackage ./mastodon-bird-ui {}; - reposilite-bin = callPackage ./reposilite-bin { - javaJdk = pkgs.openjdk_headless; - }; - - /* - patched packages - patches packages take a package from nixpkgs and patch it to suit my own needs - */ - foot-transparent = foot.overrideAttrs (prev: let - version = "2024-03-14-unstable"; - in { - inherit version; - src = fetchFromGitea { - domain = "codeberg.org"; - owner = "dnkl"; - repo = "foot"; - rev = "dd3bb13d97b405495465357f7b7b17c9f2bba3c2"; - hash = "sha256-Pp3/cNELRYmTOQrJgHX6c+t0QkxEjoly0TLMKVj3H0E="; - }; - - patches = (prev.patches or []) ++ [../patches/0001-foot-transparent.patch]; - mesonFlags = (prev.mesonFlags or []) ++ ["-Dfullscreen_alpha=true"]; - - meta.mainProgram = "foot"; - }); - - alejandra-no-ads = alejandra.overrideAttrs (prev: { - patches = (prev.patches or []) ++ [../patches/0003-alejandra-remove-ads.patch]; - }); - - # override gnome-control-center to trick it into thinking we're running gnome - # - # - gccn-wrapped = pkgs.gnome.gnome-control-center.overrideAttrs (prev: { - # gnome-control-center does not start without XDG_CURRENT_DESKTOP=gnome - preFixup = - '' - gappsWrapperArgs+=( - --set XDG_CURRENT_DESKTOP "gnome" - ); - '' - + prev.preFixup; - }); - }; + in + import ./top-level.nix {inherit pkgs callPackage mkPackage;}; }; } diff --git a/pkgs/desktops/gnome/gnome-control-center/default.nix b/pkgs/desktops/gnome/gnome-control-center/default.nix new file mode 100644 index 0000000..aed0450 --- /dev/null +++ b/pkgs/desktops/gnome/gnome-control-center/default.nix @@ -0,0 +1,13 @@ +{gnome-control-center, ...}: +gnome-control-center.overrideAttrs (prev: let + gwrapperArgs = '' + # gnome-control-center does not start without XDG_CURRENT_DESKTOP=gnome + gappsWrapperArgs+=( + --set XDG_CURRENT_DESKTOP "gnome" + ); + ''; +in { + pname = "gnome-control-center-wrapped"; + preFixup = + (prev.preFixup or "") + gwrapperArgs; +}) diff --git a/patches/0003-alejandra-remove-ads.patch b/pkgs/tools/nix/alejandra-no-ads/0001-no-ads.patch similarity index 99% rename from patches/0003-alejandra-remove-ads.patch rename to pkgs/tools/nix/alejandra-no-ads/0001-no-ads.patch index eccee96..76704fd 100644 --- a/patches/0003-alejandra-remove-ads.patch +++ b/pkgs/tools/nix/alejandra-no-ads/0001-no-ads.patch @@ -41,3 +41,4 @@ index fd49ce8..258f656 100644 mod find; mod verbosity; + diff --git a/pkgs/tools/nix/alejandra-no-ads/default.nix b/pkgs/tools/nix/alejandra-no-ads/default.nix new file mode 100644 index 0000000..7148a4b --- /dev/null +++ b/pkgs/tools/nix/alejandra-no-ads/default.nix @@ -0,0 +1,4 @@ +{alejandra, ...}: +alejandra.overrideAttrs (prev: { + patches = (prev.patches or []) ++ [./0001-no-ads.patch]; +}) diff --git a/pkgs/top-level.nix b/pkgs/top-level.nix new file mode 100644 index 0000000..c1e000c --- /dev/null +++ b/pkgs/top-level.nix @@ -0,0 +1,30 @@ +{ + pkgs, + mkPackage, + callPackage, + ... +}: { + # packages that follow npins entries + # they can be updated via npins + ani-cli = mkPackage ./applications/misc/ani-cli; + rat = mkPackage ./applications/misc/rat; + rofi-calc-wayland = mkPackage ./applications/misc/rofi-plugins/rofi-calc-wayland; + rofi-emoji-wayland = mkPackage ./applications/misc/rofi-plugins/rofi-emoji-wayland; + + # static packages + # need manual intervention with each update + cloneit = callPackage ./applications/misc/cloneit {}; + mov-cli = callPackage ./applications/misc/mov-cli {}; + mpv-history = callPackage ./applications/video/mpv/scripts/save-history {}; + mastodon-bird-ui = callPackage ./applications/social/mastodon-bird-ui {}; + headscale-ui = callPackage ./applications/networking/headscale-ui {}; + reposilite-bin = callPackage ./applications/networking/reposilite-bin { + javaJdk = pkgs.openjdk_headless; + }; + + # patched packages + # those packages usually follow nixpkgs, so they need neither pinning + # nor manual intervention + foot-transparent = callPackage ./applications/terminal-emulators/foot-transparent {}; + alejandra-no-ads = callPackage ./tools/nix/alejandra-no-ads {}; +}