mirror of
https://github.com/NotAShelf/nyxexprs.git
synced 2026-06-26 14:24:42 +00:00
Compare commits
6 commits
1f6dabf8ec
...
92d5c38993
| Author | SHA1 | Date | |
|---|---|---|---|
|
92d5c38993 |
|||
|
eee3063ce1 |
|||
|
a82369bcae |
|||
|
b2a33fb770 |
|||
|
a97823fb54 |
|||
|
3417a86b10 |
5 changed files with 185 additions and 130 deletions
BIN
flake.lock
generated
BIN
flake.lock
generated
Binary file not shown.
128
flake.nix
128
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"
|
||||
"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";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
'';
|
||||
})
|
||||
|
|
|
|||
34
pkgs/mastodon-bird-ui/patches/mastodon-bird-ui.patch
Normal file
34
pkgs/mastodon-bird-ui/patches/mastodon-bird-ui.patch
Normal 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
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue