From 3417a86b100225d83626501c92acb1d2b836e8d0 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Wed, 11 Jun 2025 15:32:28 +0300 Subject: [PATCH 1/6] flake: reorganize flake --- flake.nix | 128 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 72 insertions(+), 56 deletions(-) diff --git a/flake.nix b/flake.nix index c53d4f6..ec592f2 100644 --- a/flake.nix +++ b/flake.nix @@ -2,57 +2,11 @@ # «https://github.com/notashelf/nyxexprs» description = "Personal package overlay for commonly used derivations"; - inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - systems.url = "github:nix-systems/default-linux"; - flake-parts = { - url = "github:hercules-ci/flake-parts"; - inputs.nixpkgs-lib.follows = "nixpkgs"; - }; - - flake-compat = { - url = "github:edolstra/flake-compat"; - flake = false; - }; - - # Rest of my packages will be constructed from previous flakes - watt = { - url = "github:NotAShelf/watt"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - flint = { - url = "github:NotAShelf/flint"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - inquisitor = { - url = "github:NotAShelf/inquisitor"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - ndg = { - url = "github:feel-co/ndg"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - licenseit = { - url = "github:notashelf/licenseit"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - mrc = { - url = "github:notashelf/mrc"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - wiremix = { - url = "github:tsowell/wiremix"; - inputs = { - nixpkgs.follows = "nixpkgs"; - systems.follows = "systems"; - }; - }; + # This is so that you don't have to compile Alejandra unless you already + # have it in the Nix store, which is unlikely. + nixConfig = { + extra-substituters = ["https://nyx.cachix.org"]; + extra-trusted-public-keys = ["nyx.cachix.org-1:xH6G0MO9PrpeGe7mHBtj1WbNzmnXr7jId2mCiq6hipE"]; }; outputs = { @@ -101,6 +55,10 @@ "flint" "inquisitor" "ndg" + "licenseit" + "mrc" + "color" + "tailray" # 3rd party packages "wiremix" @@ -108,7 +66,7 @@ mappedPkgs = listToAttrs (map (input: { name = input; - value = inputs'.${input}.packages.default; + value = inputs'.${input}.packages.default or builtins.throw "Input ${input} does not provide a default package"; }) fromInputs); in @@ -124,9 +82,67 @@ }; }; - # This is so that you don't have to compile Alejandra. - nixConfig = { - extra-substituters = ["https://nyx.cachix.org"]; - extra-trusted-public-keys = ["nyx.cachix.org-1:xH6G0MO9PrpeGe7mHBtj1WbNzmnXr7jId2mCiq6hipE"]; + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + systems.url = "github:nix-systems/default-linux"; + flake-parts = { + url = "github:hercules-ci/flake-parts"; + inputs.nixpkgs-lib.follows = "nixpkgs"; + }; + + flake-compat = { + url = "github:edolstra/flake-compat"; + flake = false; + }; + + # Rest of my packages will be constructed from previous flakes + watt = { + url = "github:NotAShelf/watt"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + flint = { + url = "github:NotAShelf/flint"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + inquisitor = { + url = "github:NotAShelf/inquisitor"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + ndg = { + url = "github:feel-co/ndg"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + licenseit = { + url = "github:notashelf/licenseit"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + mrc = { + url = "github:notashelf/mrc"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + gcolor = { + url = "github:notashelf/gcolor"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + tailray = { + url = "github:notashelf/tailray"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + # 3rd party flakes that I want to extract packages from + wiremix = { + url = "github:tsowell/wiremix"; + inputs = { + nixpkgs.follows = "nixpkgs"; + systems.follows = "systems"; + }; + }; }; } From a97823fb543c4783bf7c10ca78c75b72bb65d4ce Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Wed, 11 Jun 2025 15:32:36 +0300 Subject: [PATCH 2/6] flake: bump inputs --- flake.lock | Bin 7139 -> 8174 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/flake.lock b/flake.lock index f15364a0952d2818eac2c94844512e0433e5e962..2c118718fc61e6d9dbe54f27d255deae6bbf1bf9 100644 GIT binary patch delta 864 zcmZXROHWfl7=|NO3gQ*TTY@31j5X=Zd~-E1rf8@YkW&k-B_=v&E|lJmEd?wai5q{w zS^E!6)HHG7MprIP{0;71yYx_t8)r4MnD2eR=lLmq-TiPnl~$l62onF8n$7g83wE=_ zxO-C7m2w6Ab~`9$+l$T3%2sxRR9m(F4#E576(!@3*Dl4+$M4)wfS7mGF+()>#)mXvr-Bkws|%$jF}2-lZbiQMoBRICY4~0T`K3d z9~a7LH28An)7UtX z45&QJz3IEQR@@E3*8Qq3nP742UfbImEM&_yiPv|c2<@@8My1uN$9n8?{A&6_{OscC z`0Mnkqj+$jy<=EV!#K9iA?vv(hJ=IwR|;XufheEEFAol;-;JFc!Ax9^^vunCp6=@zQ4Ueva?=!!TrALoM;X#^G#gODfU|6-9QNLr>!LrtBrW4q}cQ+$Y_x5x?ql@(% zh24d4@BUulpT(n$|22ZLNJ;~oFoiTml3=8)aEVPWjnqskB7nyqCYBE^{%du93Jtzp Ho=yD$@LUDh delta 487 zcmW-d&u$V?97a<_T4Ssv8d(sGX^d$yNx8rKXYO1RV5hIHu6=I^T2qK9>hMC}mN`xaN zG-$#>Lh^OXO^TbZl6N<5rSET!b9pQTO*RS-jasv6>OLQhy`Wa_v?iwmWUjhSdvw`% zZ1=@^=diI9v? Date: Wed, 11 Jun 2025 15:42:13 +0300 Subject: [PATCH 3/6] fuzzel-git: pin pixman release; fix build --- pkgs/fuzzel-git/package.nix | 51 ++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 20 deletions(-) diff --git a/pkgs/fuzzel-git/package.nix b/pkgs/fuzzel-git/package.nix index 1d84108..c168701 100644 --- a/pkgs/fuzzel-git/package.nix +++ b/pkgs/fuzzel-git/package.nix @@ -1,27 +1,38 @@ { lib, - fetchFromGitea, - fuzzel, pins, date, + pixman, + fetchurl, + fetchFromGitea, + fuzzel, ... -}: -fuzzel.overrideAttrs (let +}: let + # Latest fuzzel release requires Pixman >=0.46.1, but Nixpkgs still ships 0.42 + pixman_46 = pixman.overrideAttrs { + pname = "pixman"; + version = "0.46.2"; + src = fetchurl { + url = "https://cairographics.org/releases/pixman-0.46.2.tar.gz"; + hash = "sha256-Pg3lum41aRaUaj2VgZLxVQXcq4UTR3G/6rTOTim71zM="; + }; + }; pin = pins.fuzzel; -in { - pname = "fuzzel-git"; - version = "0-unstable-${date}"; - src = fetchFromGitea { - domain = "codeberg.org"; - owner = "dnkl"; - repo = "fuzzel"; - rev = pin.revision; - sha256 = pin.hash; - }; +in + (fuzzel.override {pixman = pixman_46;}).overrideAttrs { + pname = "fuzzel-git"; + version = "0-unstable-${date}"; + src = fetchFromGitea { + domain = "codeberg.org"; + owner = "dnkl"; + repo = "fuzzel"; + rev = pin.revision; + sha256 = pin.hash; + }; - meta = { - description = "Fuzzel app launcher, tracks latest git revision"; - mainProgram = "fuzzel"; - maintainers = with lib.maintainers; [NotAShelf]; - }; -}) + meta = { + description = "Fuzzel app launcher, tracks latest git revision"; + mainProgram = "fuzzel"; + maintainers = with lib.maintainers; [NotAShelf]; + }; + } From a82369bcae1df4440542e8d6994117388348a22e Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Wed, 11 Jun 2025 16:54:37 +0300 Subject: [PATCH 4/6] flake: fix eval --- flake.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/flake.nix b/flake.nix index ec592f2..d16cf85 100644 --- a/flake.nix +++ b/flake.nix @@ -57,7 +57,7 @@ "ndg" "licenseit" "mrc" - "color" + "gcolor" "tailray" # 3rd party packages @@ -66,7 +66,7 @@ mappedPkgs = listToAttrs (map (input: { name = input; - value = inputs'.${input}.packages.default or builtins.throw "Input ${input} does not provide a default package"; + value = inputs'.${input}.packages.default or (builtins.throw "Input ${input} does not provide a default package"); }) fromInputs); in From eee3063ce114346be636d71768caecbf2a546edf Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Wed, 11 Jun 2025 16:55:14 +0300 Subject: [PATCH 5/6] mastodon-bird-ui: 1.8.5 -> 2.1.1 --- pkgs/mastodon-bird-ui/package.nix | 98 +++++++++---------- .../patches/mastodon-bird-ui.patch | 34 +++++++ 2 files changed, 80 insertions(+), 52 deletions(-) create mode 100644 pkgs/mastodon-bird-ui/patches/mastodon-bird-ui.patch diff --git a/pkgs/mastodon-bird-ui/package.nix b/pkgs/mastodon-bird-ui/package.nix index d29fa11..0d42b67 100644 --- a/pkgs/mastodon-bird-ui/package.nix +++ b/pkgs/mastodon-bird-ui/package.nix @@ -1,64 +1,58 @@ { mastodon, - yq-go, - fetchurl, + applyPatches, + fetchFromGitHub, ... }: -mastodon.overrideAttrs (_: { - mastodonModules = mastodon.mastodonModules.overrideAttrs (oldAttrs: let - # https://github.com/ronilaukkarinen/mastodon-bird-ui - birdui-version = "1.8.5"; - - birdui-single-column = fetchurl { - url = "https://raw.githubusercontent.com/ronilaukkarinen/mastodon-bird-ui/${birdui-version}/layout-single-column.css"; - sha256 = "sha256-h3cb0ZiXIUEbx+8CDXPHqKe4u3ZquE90wUr/cmKkhK8="; +(mastodon.override { + patches = [ + # Redone based on: + # + ./patches/mastodon-bird-ui.patch + ]; +}).overrideAttrs (oldAttrs: let + src = applyPatches { + src = fetchFromGitHub { + owner = "ronilaukkarinen"; + repo = "mastodon-bird-ui"; + tag = "2.1.1"; + hash = "sha256-WEw9wE+iBCLDDTZjFoDJ3EwKTY92+LyJyDqCIoVXhzk="; }; - birdui-multi-column = fetchurl { - url = "https://raw.githubusercontent.com/ronilaukkarinen/mastodon-bird-ui/${birdui-version}/layout-multiple-columns.css"; - sha256 = "sha256-NMiBkJUR+HEf+ooJwoBIMiMOKna3odZYF6h4QLIdS84="; - }; - in { - pname = "${oldAttrs.pname}+themes"; - + # based on: + # https://github.com/ronilaukkarinen/mastodon-bird-ui#make-mastodon-bird-ui-as-optional-by-integrating-it-as-site-theme-in-settings-for-all-users postPatch = '' - # Import theme - local styleDir=$PWD/app/javascript/styles - local birduiDir=$styleDir/mastodon-bird-ui + substituteInPlace layout-single-column.css layout-multiple-columns.css \ + --replace-fail theme-contrast theme-mastodon-bird-ui-contrast \ + --replace-fail theme-mastodon-light theme-mastodon-bird-ui-light - mkdir -p $birduiDir - cat ${birdui-single-column} > $birduiDir/layout-single-column.scss - cat ${birdui-multi-column} > $birduiDir/layout-multiple-columns.scss + mkdir mastodon-bird-ui + mv layout-single-column.css mastodon-bird-ui/layout-single-column.scss + mv layout-multiple-columns.css mastodon-bird-ui/layout-multiple-columns.scss - sed -i 's/theme-contrast/theme-mastodon-bird-ui-contrast/g' $birduiDir/layout-single-column.scss - sed -i 's/theme-mastodon-light/theme-mastodon-bird-ui-light/g' $birduiDir/layout-single-column.scss - - sed -i 's/theme-contrast/theme-mastodon-bird-ui-contrast/g' $birduiDir/layout-multiple-columns.scss - sed -i 's/theme-mastodon-light/theme-mastodon-bird-ui-light/g' $birduiDir/layout-multiple-columns.scss - - echo -e "@import 'contrast/variables';\n@import 'application';\n@import 'contrast/diff';\n@import 'mastodon-bird-ui/layout-single-column.scss';\n@import 'mastodon-bird-ui/layout-multiple-columns.scss';" >$styleDir/mastodon-bird-ui-contrast.scss - - echo -e "@import 'mastodon-light/variables';\n@import 'application';\n@import 'mastodon-light/diff';\n@import 'mastodon-bird-ui/layout-single-column.scss';\n@import 'mastodon-bird-ui/layout-multiple-columns.scss';" >$styleDir/mastodon-bird-ui-light.scss - - echo -e "@import 'application';\n@import 'mastodon-bird-ui/layout-single-column.scss';\n@import 'mastodon-bird-ui/layout-multiple-columns.scss';" >$styleDir/mastodon-bird-ui-dark.scss - - # Build theme - echo "mastodon-bird-ui-dark: styles/mastodon-bird-ui-dark.scss" >> $PWD/config/themes.yml - echo "mastodon-bird-ui-light: styles/mastodon-bird-ui-light.scss" >> $PWD/config/themes.yml - echo "mastodon-bird-ui-contrast: styles/mastodon-bird-ui-contrast.scss" >> $PWD/config/themes.yml + echo -e "@import 'contrast/variables'; + @import 'application'; + @import 'contrast/diff'; + @import 'mastodon-bird-ui/layout-single-column.scss'; + @import 'mastodon-bird-ui/layout-multiple-columns.scss';" > mastodon-bird-ui-contrast.scss + echo -e "@import 'mastodon-light/variables'; + @import 'application'; + @import 'mastodon-light/diff'; + @import 'mastodon-bird-ui/layout-single-column.scss'; + @import 'mastodon-bird-ui/layout-multiple-columns.scss';" > mastodon-bird-ui-light.scss + echo -e "@import 'application'; + @import 'mastodon-bird-ui/layout-single-column.scss'; + @import 'mastodon-bird-ui/layout-multiple-columns.scss';" > mastodon-bird-ui-dark.scss ''; + }; +in { + mastodonModules = oldAttrs.mastodonModules.overrideAttrs (oldAttrs: { + pname = "mastodon-birdui-theme"; + + postPatch = + oldAttrs.postPatch or "" + + '' + cp -r ${src}/*.scss ${src}/mastodon-bird-ui/ app/javascript/styles/ + ''; }); - - nativeBuildInputs = [yq-go]; - - postBuild = '' - # Make theme available - echo "mastodon-bird-ui-dark: styles/mastodon-bird-ui-dark.scss" >> $PWD/config/themes.yml - echo "mastodon-bird-ui-light: styles/mastodon-bird-ui-light.scss" >> $PWD/config/themes.yml - echo "mastodon-bird-ui-contrast: styles/mastodon-bird-ui-contrast.scss" >> $PWD/config/themes.yml - - yq -i '.en.themes.mastodon-bird-ui-dark = "Mastodon Bird UI (Dark)"' $PWD/config/locales/en.yml - yq -i '.en.themes.mastodon-bird-ui-light = "Mastodon Bird UI (Light)"' $PWD/config/locales/en.yml - yq -i '.en.themes.mastodon-bird-ui-contrast = "Mastodon Bird UI (High contrast)"' $PWD/config/locales/en.yml - ''; }) diff --git a/pkgs/mastodon-bird-ui/patches/mastodon-bird-ui.patch b/pkgs/mastodon-bird-ui/patches/mastodon-bird-ui.patch new file mode 100644 index 0000000..f09e040 --- /dev/null +++ b/pkgs/mastodon-bird-ui/patches/mastodon-bird-ui.patch @@ -0,0 +1,34 @@ +--- a/config/locales/de.yml 1970-01-01 01:00:01.000000000 +0100 ++++ b/config/locales/de.yml 2025-03-04 23:10:30.555066004 +0100 +@@ -1804,6 +1804,9 @@ + themes: + contrast: Mastodon (Hoher Kontrast) + default: Mastodon (Dunkel) ++ mastodon-bird-ui-contrast: Mastodon Bird UI (Hoher Kontrast) ++ mastodon-bird-ui-dark: Mastodon Bird UI (Dunkel) ++ mastodon-bird-ui-light: Mastodon Bird UI (Hell) + mastodon-light: Mastodon (Hell) + system: Automatisch (mit System synchronisieren) + time: +--- a/config/locales/en.yml 1970-01-01 01:00:01.000000000 +0100 ++++ b/config/locales/en.yml 2025-03-04 23:11:25.390474198 +0100 +@@ -1805,6 +1805,9 @@ + themes: + contrast: Mastodon (High contrast) + default: Mastodon (Dark) ++ mastodon-bird-ui-contrast: Mastodon Bird UI (High contrast) ++ mastodon-bird-ui-dark: Mastodon Bird UI (Dark) ++ mastodon-bird-ui-light: Mastodon Bird UI (Light) + mastodon-light: Mastodon (Light) + system: Automatic (use system theme) + time: +--- a/config/themes.yml 1970-01-01 01:00:01.000000000 +0100 ++++ b/config/themes.yml 2025-03-04 23:12:24.998956621 +0100 +@@ -1,3 +1,6 @@ + default: styles/application.scss + contrast: styles/contrast.scss + mastodon-light: styles/mastodon-light.scss ++mastodon-bird-ui-dark: styles/mastodon-bird-ui-dark.scss ++mastodon-bird-ui-contrast: styles/mastodon-bird-ui-contrast.scss ++mastodon-bird-ui-light: styles/mastodon-bird-ui-light.scss + From 92d5c389932ef182a290e483eed679d153cfa04b Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Wed, 11 Jun 2025 18:46:44 +0300 Subject: [PATCH 6/6] flake: bump inputs --- flake.lock | Bin 8174 -> 8174 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/flake.lock b/flake.lock index 2c118718fc61e6d9dbe54f27d255deae6bbf1bf9..4234c6022d5cd2bb53e5320e826585aacd42b048 100644 GIT binary patch delta 122 zcmV-=0EPeVKkh%Uoeu;xH8L=fZXPN%OK&(@HAE|DaxpkqF=2FXH*Gg`Pjf+RPDpZ8 zQcHMxIdyDnRa#+oLX%+v7m^S&C}md82G&p85Vq#-sWH&WsW?^JwFg7wHZe3bk#8L9GdMJpu?S0&5G<3e8zicm$1;wK;g