Compare commits

...

6 commits

Author SHA1 Message Date
92d5c38993
flake: bump inputs
Some checks are pending
Run Checks / check (NIXPKGS_ALLOW_INSECURE=1 nix flake check --accept-flake-config --impure) (push) Waiting to run
Run Checks / check (nix run .#alejandra-custom -- -c . -e ./npins) (push) Waiting to run
Run Checks / build (push) Blocked by required conditions
2025-06-11 18:46:44 +03:00
eee3063ce1
mastodon-bird-ui: 1.8.5 -> 2.1.1 2025-06-11 16:55:14 +03:00
a82369bcae
flake: fix eval 2025-06-11 16:54:37 +03:00
b2a33fb770
fuzzel-git: pin pixman release; fix build 2025-06-11 15:42:13 +03:00
a97823fb54
flake: bump inputs 2025-06-11 15:32:36 +03:00
3417a86b10
flake: reorganize flake 2025-06-11 15:32:28 +03:00
5 changed files with 185 additions and 130 deletions

BIN
flake.lock generated

Binary file not shown.

128
flake.nix
View file

@ -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"
"gcolor"
"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";
};
};
};
}

View file

@ -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];
};
}

View file

@ -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:
# <https://codeberg.org/rheinneckar.social/nixos-config/src/branch/main/patches/mastodon-bird-ui.patch>
./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
'';
})

View file

@ -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