Update to NixOS 23.11

This commit is contained in:
Andrew Kvalheim 2023-11-30 23:20:01 -08:00
parent 0d984e4920
commit 11794e5951
18 changed files with 124 additions and 148 deletions

View file

@ -50,8 +50,8 @@ Host-specific secrets:
```bash
# U2F
pamu2fcfg > "$HOME/src/configuration/hosts/$HOST/local/resources/andrew.u2f" # Keychain
pamu2fcfg -n >> "$HOME/src/configuration/hosts/$HOST/local/resources/andrew.u2f" # Backup
pamu2fcfg > '/etc/u2f-mappings' # Keychain
pamu2fcfg -n >> '/etc/u2f-mappings' # Backup
# Wireguard
sudo mkdir '/var/lib/wireguard'

View file

@ -30,14 +30,14 @@ in
"application/vnd.openxmlformats-officedocument.wordprocessingml.document" = "writer.desktop";
# Image
"image/bmp" = "org.gnome.eog.desktop";
"image/gif" = "org.gnome.eog.desktop";
"image/heif" = "org.gnome.eog.desktop";
"image/jpeg" = "org.gnome.eog.desktop";
"image/png" = "org.gnome.eog.desktop";
"image/svg+xml" = "org.gnome.eog.desktop";
"image/tiff" = "org.gnome.eog.desktop";
"image/webp" = "org.gnome.eog.desktop";
"image/bmp" = "org.gnome.Loupe.desktop";
"image/gif" = "org.gnome.Loupe.desktop";
"image/heif" = "org.gnome.Loupe.desktop";
"image/jpeg" = "org.gnome.Loupe.desktop";
"image/png" = "org.gnome.Loupe.desktop";
"image/svg+xml" = "org.gnome.Loupe.desktop";
"image/tiff" = "org.gnome.Loupe.desktop";
"image/webp" = "org.gnome.Loupe.desktop";
# Text
"application/gpx+xml" = "codium.desktop";

View file

@ -6,14 +6,12 @@
services.xserver.displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome.enable = true;
environment.sessionVariables.NIXOS_OZONE_WL = "1";
environment.gnome.excludePackages = with pkgs; [
gnome.epiphany
gnome.geary
gnome.gnome-calculator
gnome.gnome-maps
gnome.gnome-music
gnome.gnome-weather
gnome-photos
environment.gnome.excludePackages = with pkgs.gnome; [
epiphany
gnome-calculator
gnome-maps
gnome-music
gnome-weather
];
# Audio

View file

@ -77,6 +77,9 @@ in
command = "dbus-send --session --dest=org.gnome.ScreenSaver --type=method_call '/org/gnome/ScreenSaver' 'org.gnome.ScreenSaver.SetActive' 'boolean:true'";
binding = "Favorites";
};
dconf.settings."org/gnome/shell/keybindings" = {
toggle-quick-settings = [ ];
};
xdg.configFile."run-or-raise/shortcuts.conf".text = ''
<Super>c,qalculate-gtk,qalculate-gtk,
<Super>f,firefox,firefox,

View file

@ -83,7 +83,7 @@ in
"hadolint.hadolintPath" = "${pkgs.hadolint}/bin/hadolint";
"nix.formatterPath" = "${pkgs.nixpkgs-fmt}/bin/nixpkgs-fmt";
"php.validate.executablePath" = "${pkgs.php}/bin/php";
"prettier.prettierPath" = "${pkgs.nodePackages.prettier}/lib/node_modules/prettier/index.js"; # Pending prettier/prettier-vscode#3100
"prettier.prettierPath" = "${pkgs.nodePackages.prettier}/lib/node_modules/prettier/index.cjs"; # Pending prettier/prettier-vscode#3100
"python.formatting.blackPath" = "${pkgs.black}/bin/black";
"qalc.path" = "${pkgs.libqalculate}/bin/qalc";
"ruby.rubocop.executePath" = "${pkgs.rubocop}/bin/";

View file

@ -25,7 +25,7 @@ in
iosevka-custom.mono
iosevka-custom.proportional
iosevka-custom.term
noto-fonts-emoji
noto-fonts-color-emoji
roboto
source-serif-pro
];

View file

@ -9,6 +9,7 @@ in
services.gpg-agent = {
enable = true;
enableSshSupport = true;
pinentryFlavor = null /* system default */;
};
systemd.user.services.yubikey-touch-detector = {

View file

@ -2,8 +2,6 @@ let
identity = import ../resources/identity.nix;
in
{
imports = [ <nixpkgs/nixos/modules/services/hardware/sane_extra_backends/brscan4.nix> ];
allowedUnfree = [ "brother-udev-rule-type1" "brscan4" "brscan4-etc-files" ];
hardware.sane = { enable = true; brscan4.enable = true; };

View file

@ -28,7 +28,7 @@ in
'';
};
programs.exa = {
programs.eza = {
enable = true;
enableAliases = true;
};
@ -96,7 +96,7 @@ in
as = "gopass-env";
cat = "bat --plain";
cp = "cp --reflink=auto";
e = "exa --all --group-directories-first --long --header --time-style long-iso";
e = "eza --all --group-directories-first --long --header --time-style long-iso";
ffmpeg = "ffmpeg -hide_banner";
ffprobe = "ffprobe -hide_banner";
mv = "mv --no-clobber --verbose";
@ -140,7 +140,7 @@ in
undo = "git restore --patch";
};
home.sessionVariables.EXA_COLORS = concatStringsSep ":" (mapAttrsToList (k: v: "${k}=${v}") (with palette.ansi; {
home.sessionVariables.EZA_COLORS = concatStringsSep ":" (mapAttrsToList (k: v: "${k}=${v}") (with palette.ansi; {
ur = dim.white; # permission user-read
uw = dim.white; # permission user-write
ux = bold.green; # permission user-execute when file

View file

@ -14,7 +14,6 @@ specify {
ansible-vault-pass-client = any;
apex = any;
attachments = any;
aws-sam-cli.version = "1.65.0";
buildJosmPlugin = any;
cavif = any;
ch57x-keyboard-tool = any;
@ -27,46 +26,36 @@ specify {
git-diff-minecraft = any;
git-remote = any;
gnome.gnome-shell.patch = ../packages/resources/gnome-shell_screenshot-location.patch; # Pending GNOME/gnome-shell#5370
gnomeExtensions.system-monitor.version = "unstable-2023-11-20"; # Pending NixOS/nixpkgs#271526
gopass-await.deps = { inherit (stable.gnome) zenity; };
gopass-env = any;
gopass-ydotool = any;
gpsprune.condition = g: stable.lib.hasInfix "MimeType" (builtins.readFile ((builtins.head g.desktopItems).outPath + "/share/applications/gpsprune.desktop"));
gpx-reduce = any;
graalvm-ce.overlay = g: stable.lib.throwIf (stable.lib.hasInfix "font" g.preFixup) "graalvm-ce no longer requires an overlay" { preFixup = g.preFixup + "\nfind \"$out\" -name libfontmanager.so -exec patchelf --add-needed libfontconfig.so {} \\;"; }; # Workaround for https://github.com/NixOS/nixpkgs/pull/215583#issuecomment-1615369844
graalvmCEPackages.graaljs.overlay = g: stable.lib.throwIf (stable.lib.hasInfix "jvm" g.src.url) "graaljs no longer requires an overlay" { src = stable.fetchurl { url = builtins.replaceStrings [ "community" ] [ "community-jvm" ] g.src.url; hash = "sha256-fZCcRSuQm26qwZuS6ryIp4b9Br7xMmiu1ZUnJBOemT4="; }; buildInputs = g.buildInputs ++ stable.graalvm-ce.buildInputs; }; # https://discourse.nixos.org/t/36314
httpie.env.NIX_SSL_CERT_FILE = "/etc/ssl/certs/ca-certificates.crt"; # NixOS/nixpkgs#94666
inkscape.version = "1.3"; # inkscape/inkscape#3580
ios-safari-remote-debug-kit = any;
ios-webkit-debug-proxy = any;
iosevka-custom = any;
josm.jre = (specify {
graalvm17-ce.products = with stable.graalvmCEPackages; [ js-installable-svm-java17 ];
graalvm17-ce.overlay = g: stable.lib.throwIf (stable.lib.hasInfix "font" g.preFixup) "graalvm17-ce no longer requires an overlay" { preFixup = g.preFixup + "\nfind \"$out\" -name libfontmanager.so -exec patchelf --add-needed libfontconfig.so {} \\;"; }; # Workaround for https://github.com/NixOS/nixpkgs/pull/215583#issuecomment-1615369844
}).graalvm17-ce; # josm-scripting-plugin
josm = { jre = resolved.graalvm-ce; extraJavaOpts = "--module-path=${resolved.graalvmCEPackages.graaljs}/modules"; }; # josm-scripting-plugin
josm-imagery-used = any;
kitty.version = "0.30.1";
mcaselector = any;
minemap = any;
mozjpeg-simple = any;
nbt-explorer = any;
obsidian.version = "1.4.13"; # Non-EOL Electron
off = any;
picard = { version = "2.9.1"; overlay = p: { preFixup = p.preFixup + "\nmakeWrapperArgs+=(--prefix PATH : ${stable.lib.makeBinPath [ resolved.rsgain ]})"; }; }; # NixOS/nixpkgs#255222
picard.overlay = p: { preFixup = p.preFixup + "\nmakeWrapperArgs+=(--prefix PATH : ${stable.lib.makeBinPath [ resolved.rsgain ]})"; }; # NixOS/nixpkgs#255222
pngquant-interactive = any;
rclone.version = "1.64";
rsgain.search = pr 220842;
shreddit = any;
signal-desktop.gappsWrapperArgs = "--add-flags --use-tray-icon"; # Enable tray icon
teams-for-linux.version = "1.3";
tile-stitch = any;
unln = any;
vivictpp = any;
vscode-extensions = namespaced {
bierner.markdown-preview-github-styles.search = open-vsx;
charliermarsh.ruff.version = "2023.30.0";
compilouit.xkb.search = open-vsx;
csstools.postcss.search = open-vsx;
earshinov.permute-lines.search = open-vsx;
earshinov.simple-alignment.search = open-vsx;
esbenp.prettier-vscode.version = "10.1.0"; # prettier/prettier-vscode#3059
eseom.nunjucks-template.search = open-vsx;
exiasr.hadolint.search = open-vsx;
fabiospampinato.vscode-highlight.search = open-vsx;
@ -76,7 +65,6 @@ specify {
leighlondon.eml.search = [ open-vsx vscode-marketplace ];
misogi.ruby-rubocop.search = [ open-vsx vscode-marketplace ];
mitchdenny.ecdc.search = open-vsx;
ms-python.isort = any;
ronnidc.nunjucks.search = [ open-vsx vscode-marketplace ];
samuelcolvin.jinjahtml.search = open-vsx;
silvenon.mdx.search = open-vsx;
@ -87,15 +75,10 @@ specify {
volkerdobler.insertnums.search = [ open-vsx vscode-marketplace ];
ybaumes.highlight-trailing-white-spaces.search = open-vsx;
};
vscodium = {
version = "1.81.0"; # sissel.shopify-liquid
gappsWrapperArgs = "--unset NIXOS_OZONE_WL"; # Workaround for mangled keybindings
};
whatsapp-for-linux.version = "1.6.3";
vscodium.gappsWrapperArgs = "--unset NIXOS_OZONE_WL"; # Workaround for mangled keybindings
whipper.patch = ../packages/resources/whipper_speed.patch; # Pending whipper-team/whipper#204
yaru-theme.patch = ../packages/resources/yaru-theme_font.patch; # Set GNOME Shell font
ydotool.patch = ../packages/resources/ydotool-halmakish.patch; # Pending ReimuNotMoe/ydotool#177
yubikey-touch-detector.condition = y: y ? "iconSrc"; # NixOS/nixpkgs#232889
zsh-abbr.condition = z: !z.meta.unfree;
zsh-click = any;
}

View file

@ -5,7 +5,7 @@ Eeuxo
env
EPOCHREALTIME
EPOCHSECONDS
exa
eza
killall
mktemp
newermt

View file

@ -72,7 +72,7 @@ in
security.pam.u2f = {
enable = true;
appId = "pam://${host.name}";
authFile = host.local + "/resources/andrew.u2f";
authFile = "/etc/u2f-mappings";
control = "sufficient";
cue = true;
};

View file

@ -11,7 +11,7 @@ buildGoModule {
hash = "sha256-U65hXHfh7AUpqMLNQxCKYEovWx+JezdpYnoNvv7apEc=";
};
vendorSha256 = "sha256-i0+EETYoDnkKTjj9Qi8nUir4iip4mQx9uIrMkY+hbDc=";
vendorHash = "sha256-i0+EETYoDnkKTjj9Qi8nUir4iip4mQx9uIrMkY+hbDc=";
passthru.updateScript = unstableGitUpdater { };

View file

@ -16,8 +16,8 @@ let
inherit (builtins) toFile;
inherit (lib) versionOlder warnIf;
josmVersion = "18721";
josmLegacyRev = "36079";
josmVersion = "18822";
josmLegacyRev = "36195";
in
warnIf (versionOlder josmVersion josm.version) "JOSM plugin build environment ${josmVersion} is behind ${josm.version}"
stdenv.mkDerivation
@ -26,19 +26,19 @@ warnIf (versionOlder josmVersion josm.version) "JOSM plugin build environment ${
url = "https://josm.openstreetmap.de/osmsvn/applications/editors/josm";
rev = josmLegacyRev;
ignoreExternals = true;
sha256 = "sha256-1sL7tldjWvCYFfwAgbj/XPCow42CD/ezouY2PUBYF74=";
hash = "sha256-96b7IbaraGk3vo3zOcr7MMUAjZb5s0d5InDQURTmyRk=";
};
srcJosmCore = fetchsvn {
url = "https://josm.openstreetmap.de/svn/trunk";
rev = josmVersion;
ignoreExternals = true;
sha256 = "sha256-t9XtVyYUeQG8GCo3F6EqliRC7z8XljDNBqo3dmt31w0=";
hash = "sha256-K1jvwqT45v3e5hRhqYWRkofWOnjCsep0OzDjJYc1mCw=";
};
srcJosmCoreDist = fetchurl {
url = "https://josm.openstreetmap.de/download/josm-snapshot-${josmVersion}.jar";
hash = "sha256-nc6itoblAzP064xTTF8q990TiRX3+zf5uk+enS+C5Jo=";
hash = "sha256-pzB12lkcWGJ7sVdcfJZC2MnUowfWdElxny0pSQ5vjlw=";
};
unpackPhase = ''
@ -53,15 +53,16 @@ warnIf (versionOlder josmVersion josm.version) "JOSM plugin build environment ${
(toFile "offline.patch" ''
--- a/josm/plugins/build-common.xml
+++ b/josm/plugins/build-common.xml
@@ -115 +115 @@
@@ -118 +118 @@
- <target name="compile" depends="init, pre-compile, resolve-tools" unless="skip-compile">
+ <target name="compile" depends="init, pre-compile" unless="skip-compile">
@@ -118 +117,0 @@
@@ -121 +120,0 @@
- <path refid="errorprone_javac.classpath"/>
@@ -135 +133,0 @@
@@ -138 +136,0 @@
- <compilerarg pathref="errorprone.classpath"/>
@@ -138 +135,0 @@
- <compilerarg value="-Xplugin:ErrorProne -Xep:StringSplitter:OFF -Xep:ReferenceEquality:OFF -Xep:InsecureCryptoUsage:OFF -Xep:FutureReturnValueIgnored:OFF -Xep:JdkObsolete:OFF -Xep:EqualsHashCode:OFF -Xep:JavaUtilDate:OFF -Xep:DoNotCallSuggester:OFF -Xep:BanSerializableRead:OFF -Xep:RestrictedApiChecker:OFF"/>
@@ -141,2 +138,0 @@
- <compilerarg value="-Xplugin:ErrorProne -Xep:StringSplitter:OFF -Xep:ReferenceEquality:OFF -Xep:InsecureCryptoUsage:OFF -Xep:FutureReturnValueIgnored:OFF -Xep:JdkObsolete:OFF -Xep:EqualsHashCode:OFF -Xep:JavaUtilDate:OFF -Xep:DoNotCallSuggester:OFF -Xep:BanSerializableRead:OFF -Xep:RestrictedApiChecker:OFF" unless:set="isJava11"/>
- <compilerarg value="-Xplugin:ErrorProne -Xep:StringSplitter:OFF -Xep:ReferenceEquality:OFF -Xep:InsecureCryptoUsage:OFF -Xep:FutureReturnValueIgnored:OFF -Xep:JdkObsolete:OFF -Xep:EqualsHashCode:OFF -Xep:JavaUtilDate:OFF -Xep:DoNotCallSuggester:OFF -Xep:BanSerializableRead:OFF" if:set="isJava11"/>
'')
];

View file

@ -0,0 +1,52 @@
{ fetchFromGitHub
, lib
, stdenv
, substituteAll
# Dependencies
, glib
, gnome
, libgtop
}:
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-system-monitor";
version = "unstable-2023-11-20";
# Sourced from fork pending paradoxxxzero/gnome-shell-system-monitor-applet#767
src = fetchFromGitHub {
owner = "mgalgs";
repo = "gnome-shell-system-monitor-applet";
rev = "5827e7960f9891bdaa53f0663ea5135423ff8b18";
hash = "sha256-mw5YfQcZYY3FijekV0xMDSDXG5t0SemPIkACng6NMPo=";
};
nativeBuildInputs = [
glib
gnome.gnome-shell
];
patches = [
(substituteAll {
src = ./resources/system-monitor_paths.patch;
girepository_search_path_gtop = "${libgtop}/lib/girepository-1.0";
})
];
makeFlags = [
"VERSION=${version}"
"INSTALLBASE=$(out)/share/gnome-shell/extensions"
"SUDO="
];
passthru = {
extensionUuid = "system-monitor-next@paradoxxx.zero.gmail.com";
extensionPortalSlug = "system-monitor-next";
};
meta = {
description = "Display system informations in gnome shell status bar";
license = lib.licenses.gpl3Plus;
homepage = "https://github.com/mgalgs/gnome-shell-system-monitor-applet";
};
}

View file

@ -18,37 +18,37 @@ let
capital-a = "curly-serifless";
capital-g = "toothless-corner-serifless-hooked";
capital-k = "curly-serifless";
capital-u = "toothless-corner";
capital-r = "standing";
capital-v = "curly";
capital-w = "curly";
capital-u = "toothless-corner-serifless";
capital-r = "standing-serifless";
capital-v = "curly-serifless";
capital-w = "curly-serifless";
capital-x = "curly-serifless";
capital-y = "curly-serifless";
capital-z = "curly-serifless";
a = "double-storey-toothless-corner";
b = "toothless-corner";
b = "toothless-corner-serifless";
d = "toothless-corner-serifless";
f = "flat-hook-crossbar-at-x-height";
g = "earless-corner";
f = "flat-hook-serifless-crossbar-at-x-height";
g = "single-storey-earless-corner";
i = "serifed-flat-tailed";
j = "flat-hook-serifed";
l = "flat-tailed";
m = "earless-corner-double-arch-short-leg";
n = "earless-corner-straight";
p = "earless-corner";
q = "earless-corner";
r = "earless-corner";
m = "earless-corner-double-arch-short-leg-serifless";
n = "earless-corner-straight-serifless";
p = "earless-corner-serifless";
q = "earless-corner-tailed-serifless";
r = "earless-corner-serifless";
t = "flat-hook-short-neck2";
u = "toothless-corner";
w = "curly";
u = "toothless-corner-serifless";
w = "curly-serifless";
x = "curly-serifless";
y = "curly";
y = "curly-serifless";
z = "curly-serifless";
zero = "slashed";
two = "straight-neck";
three = "flat-top";
four = "semi-open-non-crossing";
five = "oblique-upper-left-bar";
five = "oblique-flat";
six = "straight-bar";
seven = "bend-serifless";
eight = "crossing-asymmetric";
@ -58,7 +58,7 @@ let
underscore = "above-baseline";
caret = "low";
brace = "curly";
at = "short";
at = "compact";
dollar = "open-cap";
cent = "open";
percent = "dots";

View file

@ -1,70 +0,0 @@
{ fetchurl
, fetchFromGitHub
, graphicsmagick
, lib
, makeDesktopItem
, makeWrapper
, nix-update-script
, stdenv
# Dependencies
, jre
}:
let
java = jre.override { enableJavaFX = true; };
in
stdenv.mkDerivation rec {
pname = "mcaselector";
version = "2.2.2";
src = fetchurl {
url = "https://github.com/Querz/mcaselector/releases/download/${version}/mcaselector-${version}.jar";
hash = "sha256-tOSdzLFxvEJ9LXliwfosMkgcrQLsrW7qDS8vrgPzQoI=";
};
dontUnpack = true;
iconSrc = fetchFromGitHub {
owner = "Querz";
repo = "mcaselector";
rev = "ccb5d2570350f97f4c3c58753aefbd2a89b4e2c1";
sparseCheckout = [ "src/main/resources/img/icon.png" ];
hash = "sha256-MUx+xB7irlkbLqbXvovZ2xG63Wp33ARWQFszB3eBOwM=";
};
desktopItem = makeDesktopItem {
categories = [ "Utility" ];
genericName = "Minecraft chunk editor";
desktopName = "MCA Selector";
name = pname;
icon = pname;
exec = meta.mainProgram;
};
nativeBuildInputs = [ graphicsmagick makeWrapper ];
buildPhase = ''
gm convert $iconSrc/src/main/resources/img/icon.png \
-filter 'point' -resize '1600%' ${pname}.png
'';
installPhase = ''
install -D $src $out/share/${pname}.jar
makeWrapper ${java}/bin/java $out/bin/${pname} \
--add-flags "-jar $out/share/${pname}.jar"
install -D -t $out/share/icons ${pname}.png
install -D -t $out/share/applications ${desktopItem}/share/applications/*
'';
doInstallCheck = true;
installCheckPhase = "$out/bin/${pname} --version";
passthru.updateScript = nix-update-script { };
meta = {
description = "A tool to select chunks from Minecraft worlds for deletion or export.";
homepage = "https://github.com/Querz/mcaselector";
license = lib.licenses.mit;
mainProgram = pname;
};
}

View file

@ -0,0 +1,10 @@
--- a/system-monitor-next@paradoxxx.zero.gmail.com/extension.js
+++ b/system-monitor-next@paradoxxx.zero.gmail.com/extension.js
@@ -31 +31,3 @@
-import GTop from "gi://GTop";
+import GIRepository from 'gi://GIRepository';
+GIRepository.Repository.prepend_search_path('@girepository_search_path_gtop@');
+const { default: GTop } = await import('gi://GTop');
@@ -403 +405 @@
- let sys_mounts = ['/home', '/tmp', '/boot', '/usr', '/usr/local'];
+ let sys_mounts = ['/home', '/tmp', '/boot'];