NixOS 24.11

+19 -36
flake.lock
···
]
},
"locked": {
-
"lastModified": 1732635161,
-
"narHash": "sha256-B0oHgnVyXJndyIA8uiOW/CwW5hP/GsrrzV1UGNHNSAw=",
+
"lastModified": 1733054177,
+
"narHash": "sha256-Jq/EAXsXO1Ul5iqLx71H2/ffGvmE3GTWDlujpbwdXIY=",
"owner": "RyanGibb",
"repo": "eilean-nix",
-
"rev": "bba3719f32b57b853247e299ea44500938d69166",
+
"rev": "7b05921dc47248b4a87cba67a1e53a642adee1fc",
"type": "github"
},
"original": {
···
]
},
"locked": {
-
"lastModified": 1726989464,
-
"narHash": "sha256-Vl+WVTJwutXkimwGprnEtXc/s/s8sMuXzqXaspIGlwM=",
+
"lastModified": 1732466619,
+
"narHash": "sha256-T1e5oceypZu3Q8vzICjv1X/sGs9XfJRMW5OuXHgpB3c=",
"owner": "nix-community",
"repo": "home-manager",
-
"rev": "2f23fa308a7c067e52dfcc30a0758f47043ec176",
+
"rev": "f3111f62a23451114433888902a55cf0692b408d",
"type": "github"
},
"original": {
"owner": "nix-community",
-
"ref": "release-24.05",
+
"ref": "release-24.11",
"repo": "home-manager",
"type": "github"
}
···
"nmd": "nmd_2"
},
"locked": {
-
"lastModified": 1709879753,
-
"narHash": "sha256-zEpy3eweBus/cW/oRMBINps6Bnlazpa7TadonwWibHA=",
+
"lastModified": 1720396533,
+
"narHash": "sha256-UFzk/hZWO1VkciIO5UPaSpJN8s765wsngUSvtJM6d5Q=",
"owner": "nix-community",
"repo": "nix-on-droid",
-
"rev": "7b3cc6e3f9919b2d23003cfafb60c146c3f45793",
+
"rev": "f3d3b8294039f2f9a8fb7ea82c320f29c6b0fe25",
"type": "github"
},
"original": {
"owner": "nix-community",
-
"ref": "release-23.11",
+
"ref": "release-24.05",
"repo": "nix-on-droid",
"type": "github"
}
···
},
"nixpkgs-for-bootstrap": {
"locked": {
-
"lastModified": 1708105575,
-
"narHash": "sha256-sS4AItZeUnAei6v8FqxNlm+/27MPlfoGym/TZP0rmH0=",
+
"lastModified": 1720244366,
+
"narHash": "sha256-WrDV0FPMVd2Sq9hkR5LNHudS3OSMmUrs90JUTN+MXpA=",
"owner": "NixOS",
"repo": "nixpkgs",
-
"rev": "1d1817869c47682a6bee85b5b0a6537b6c0fba26",
+
"rev": "49ee0e94463abada1de470c9c07bfc12b36dcf40",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
-
"rev": "1d1817869c47682a6bee85b5b0a6537b6c0fba26",
-
"type": "github"
-
}
-
},
-
"nixpkgs-neovim": {
-
"locked": {
-
"lastModified": 1721818836,
-
"narHash": "sha256-oN8i9xd91okESBjp2LqXpVI61x3X23F3Y/FIS8bv4Xo=",
-
"owner": "nixos",
-
"repo": "nixpkgs",
-
"rev": "a76212122970925d09aa2021a93e00d359e631dd",
-
"type": "github"
-
},
-
"original": {
-
"owner": "nixos",
-
"repo": "nixpkgs",
-
"rev": "a76212122970925d09aa2021a93e00d359e631dd",
+
"rev": "49ee0e94463abada1de470c9c07bfc12b36dcf40",
"type": "github"
}
},
···
},
"nixpkgs_7": {
"locked": {
-
"lastModified": 1731797254,
-
"narHash": "sha256-df3dJApLPhd11AlueuoN0Q4fHo/hagP75LlM5K1sz9g=",
+
"lastModified": 1732981179,
+
"narHash": "sha256-F7thesZPvAMSwjRu0K8uFshTk3ZZSNAsXTIFvXBT+34=",
"owner": "nixos",
"repo": "nixpkgs",
-
"rev": "e8c38b73aeb218e27163376a2d617e61a2ad9b59",
+
"rev": "62c435d93bf046a5396f3016472e8f7c8e2aed65",
"type": "github"
},
"original": {
"owner": "nixos",
-
"ref": "nixos-24.05",
+
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}
···
"nix-rpi5": "nix-rpi5",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_7",
-
"nixpkgs-neovim": "nixpkgs-neovim",
"nixpkgs-unstable": "nixpkgs-unstable"
},
+6 -33
flake.nix
···
{
inputs = {
-
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
+
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
-
nixpkgs-neovim.url =
-
"github:nixos/nixpkgs/a76212122970925d09aa2021a93e00d359e631dd";
nixos-hardware.url = "github:nixos/nixos-hardware";
-
home-manager.url = "github:nix-community/home-manager/release-24.05";
+
home-manager.url = "github:nix-community/home-manager/release-24.11";
home-manager-unstable.url = "github:nix-community/home-manager/master";
agenix.url = "github:ryantm/agenix";
deploy-rs.url = "github:serokell/deploy-rs";
-
nix-on-droid.url = "github:nix-community/nix-on-droid/release-23.11";
+
nix-on-droid.url = "github:nix-community/nix-on-droid/release-24.05";
eon.url = "github:RyanGibb/eon";
eilean.url = "github:RyanGibb/eilean-nix/main";
alec-website.url = "github:alexanderhthompson/website";
···
hyperbib-eeg.inputs.nixpkgs.follows = "nixpkgs";
};
-
outputs = { self, nixpkgs, nixpkgs-unstable, nixpkgs-neovim, home-manager
+
outputs = { self, nixpkgs, nixpkgs-unstable, home-manager
, home-manager-unstable, agenix, deploy-rs, nix-on-droid, eilean, ...
}@inputs:
let
···
# to override attributes of a package
# package = prev.package.overrideAttrs
# (_: { patches = [ ./pkgs/package.patch ]; });
-
neovim-unwrapped =
-
(import nixpkgs-neovim { inherit system; }).neovim-unwrapped;
-
sway-unwrapped = prev.callPackage ./pkgs/sway-im/package.nix {
-
libdrm = prev.libdrm;
-
wlroots = prev.callPackage ./pkgs/wlroots/default.nix {
-
# for libdrm >=2.4.120
-
mesa = prev.mesa;
-
wayland-protocols = prev.wayland-protocols.overrideAttrs
-
(old: rec {
-
pname = "wayland-protocols";
-
version = "1.33";
-
src = prev.fetchurl {
-
url =
-
"https://gitlab.freedesktop.org/wayland/${pname}/-/releases/${version}/downloads/${pname}-${version}.tar.xz";
-
hash =
-
"sha256-lPDFCwkNbmGgP2IEhGexmrvoUb5OEa57NvZfi5jDljo=";
-
};
-
});
-
};
-
};
-
gnome-calendar = final.overlay-unstable.gnome-calendar;
opam = final.overlay-unstable.opam.overrideAttrs (_: {
src = final.fetchurl {
url =
···
nixosConfigurations = let
mkMode = mode: host:
let
-
host-nixpkgs =
-
if host == "elephant" then nixpkgs-unstable else nixpkgs;
-
host-home-manager = if host == "elephant" then
-
home-manager-unstable
-
else
-
home-manager;
+
host-nixpkgs = nixpkgs;
+
host-home-manager = home-manager;
in host-nixpkgs.lib.nixosSystem {
# use system from config.localSystem
# see https://github.com/NixOS/nixpkgs/blob/5297d584bcc5f95c8e87c631813b4e2ab7f19ecc/nixos/lib/eval-config.nix#L55
+1 -1
home/gui.nix
···
};
pointerCursor = {
name = "Adwaita";
-
package = pkgs.gnome.adwaita-icon-theme;
+
package = pkgs.adwaita-icon-theme;
size = 32;
};
file = {
+2 -2
home/i3.nix
···
displays = "arandr";
bar = "i3bar";
notification_deamon = "dunst";
-
i3-workspace-history = "${i3-workspace-history}";
-
i3-workspace-history-args = "";
+
i3_workspace_history = "${i3-workspace-history}";
+
i3_workspace_history_args = "";
};
util = import ./util.nix { inherit pkgs lib; };
cfg = config.custom.gui.i3;
+1 -1
home/nvim/default.nix
···
vimAlias = true;
extraPackages = with pkgs;
[ ripgrep nixd ] ++ lib.lists.optionals cfg.nvim-lsps [
-
nixfmt
+
nixfmt-rfc-style
# stop complaining when launching but a devshell is better
ocamlPackages.ocaml-lsp
ocamlPackages.ocamlformat
+1 -1
home/nvim/lsp.lua
···
local lspconfig = require('lspconfig')
-- Enable some language servers with the additional completion capabilities offered by nvim-cmp
-
local servers = { 'nixd', 'ocamllsp', 'clangd', 'rust_analyzer', 'pyright', 'tsserver', 'gopls', 'typst_lsp' }
+
local servers = { 'nixd', 'ocamllsp', 'clangd', 'rust_analyzer', 'pyright', 'gopls', 'typst_lsp' }
for _, lsp in ipairs(servers) do
lspconfig[lsp].setup {
on_attach = On_attach,
+2 -2
home/sway.nix
···
displays = "wdisplays";
bar = "swaybar";
notification_deamon = "dunst";
-
i3-workspace-history = "${i3-workspace-history}";
-
i3-workspace-history-args = "-sway";
+
i3_workspace_history = "${i3-workspace-history}";
+
i3_workspace_history_args = "-sway";
};
util = import ./util.nix { inherit pkgs lib; };
cfg = config.custom.gui.sway;
+2 -2
home/wm/config.d/bindings
···
bindsym button2 kill
-
bindsym $mod+i exec i3-workspace-history -mode=forward @i3-workspace-history-args@; exec st workspace -t 500
-
bindsym $mod+o exec i3-workspace-history -mode=back @i3-workspace-history-args@; exec st workspace -t 500
+
bindsym $mod+i exec @i3_workspace_history@ -mode=forward @i3_workspace_history_args@; exec st workspace -t 500
+
bindsym $mod+o exec @i3_workspace_history@ -mode=back @i3_workspace_history_args@; exec st workspace -t 500
set $mode_gaps gaps
mode "$mode_gaps" {
+1 -1
home/wm/config.d/exec
···
exec --no-startup-id fcitx5 -d
-
exec i3-workspace-history @i3-workspace-history-args@
+
exec @i3_workspace_history@ @i3_workspace_history_args@
+2 -2
hosts/elephant/default.nix
···
# Add hardware transcoding support to `ffmpeg_6` and derived packages (like jellyfin-ffmpeg)
# for Intel Alder Lake N100's Quick Sync Video (QSV) using Intel OneVPL.
-
hardware.opengl = {
+
hardware.graphics = {
enable = true;
extraPackages = with pkgs; [
# Video Acceleration API (VA-API) user mode driver
intel-media-driver
# Intel Video Processing Library (VPL) API runtime implementation
# replace with`onevpl-intel-gpu` after https://github.com/NixOS/nixpkgs/pull/264621
-
onevpl-intel-gpu
+
vpl-gpu-rt
];
};
nixpkgs.config.packageOverrides = prev: {
-2
hosts/elephant/hardware-configuration.nix
···
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
-
boot.kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages;
-
fileSystems."/" = {
device = "/dev/disk/by-uuid/d1b7f032-9c43-4a57-b531-4b1d6f88c999";
fsType = "ext4";
+1 -1
hosts/elephant/owntracks.nix
···
default = 8083;
};
domain = lib.mkOption {
-
type = lib.types.nullOr lib.types.string;
+
type = lib.types.nullOr lib.types.str;
default = null;
};
};
+6 -8
hosts/elephant/services.nix
···
virtualHosts = {
"nix-cache.vpn.freumh.org" = { listenAddresses = [ "100.64.0.9" ]; };
"jellyfin.vpn.freumh.org" = {
-
enableSSL = true;
+
onlySSL = true;
listenAddresses = [ "100.64.0.9" ];
locations."/" = {
proxyPass = ''
···
};
};
"transmission.vpn.freumh.org" = {
-
enableSSL = true;
+
onlySSL = true;
listenAddresses = [ "100.64.0.9" ];
locations."/" = {
proxyPass = with config.services.transmission.settings; ''
···
};
};
"nextcloud.vpn.freumh.org" = {
-
enableSSL = true;
+
onlySSL = true;
listenAddresses = [ "100.64.0.9" ];
};
"owntracks.vpn.freumh.org" = {
-
enableSSL = true;
+
onlySSL = true;
listenAddresses = [ "100.64.0.9" ];
};
"immich.vpn.freumh.org" = {
-
enableSSL = true;
+
onlySSL = true;
listenAddresses = [ "100.64.0.9" ];
locations."/" = {
proxyPass = with config.services.immich; ''
···
services.samba = {
enable = true;
openFirewall = true;
-
securityType = "user";
settings = {
global = {
workgroup = "WORKGROUP";
···
"guest account" = "nobody";
"map to guest" = "bad user";
};
-
};
-
shares = {
tank = {
path = "/tank/";
browseable = "yes";
···
services.transmission = {
enable = true;
openRPCPort = true;
+
package = pkgs.transmission_3;
settings = {
download-dir = "/tank/media";
incomplete-dir-enabled = false;
+4 -4
hosts/gecko/default.nix
···
environment.systemPackages = with pkgs; [
dell-command-configure
-
gnome.file-roller
+
file-roller
unzip
-
gnome.cheese
+
cheese
gparted
chromium
calibre
···
evince
pdfpc
krop
-
transmission
-
transmission-gtk
+
transmission_4
+
transmission_4-gtk
libreoffice
obs-studio
xournalpp
+5 -8
hosts/owl/default.nix
···
owner = "${config.systemd.services.matrix-synapse.serviceConfig.User}";
group = "${config.systemd.services.matrix-synapse.serviceConfig.Group}";
};
-
age.secrets.matrix-sliding-sync = {
-
file = ../../secrets/matrix-sliding-sync.age;
-
};
eilean.matrix = {
enable = true;
registrationSecretFile = config.age.secrets.matrix-shared-secret.path;
···
bridges.signal = true;
bridges.instagram = true;
bridges.messenger = true;
-
slidingSync = {
-
enable = true;
-
secretFile = config.age.secrets.matrix-sliding-sync.path;
-
};
};
eilean.turn.enable = true;
eilean.mastodon.enable = true;
···
"net.ipv6.conf.all.forwarding" = 1;
};
-
services.headscale.settings.dns_config.extra_records = vpnRecords;
+
services.headscale.settings.dns = {
+
extra_records = vpnRecords;
+
base_domain = "vpn.freumh.org";
+
nameservers.global = config.networking.nameservers;
+
};
age.secrets.restic-owl.file = ../../secrets/restic-owl.age;
services.restic.backups.${config.networking.hostName} = {
+3 -1
hosts/shrew/hardware-configuration.nix
···
powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand";
hardware.raspberry-pi."4".fkms-3d.enable = true;
-
boot.loader.raspberryPi.firmwareConfig = "config_hdmi_boost=5";
+
# TODO use https://github.com/nix-community/raspberry-pi-nix?tab=readme-ov-file#configtxt-generation
+
# https://github.com/NixOS/nixpkgs/pull/241534#issuecomment-2495645336
+
#boot.loader.raspberryPi.firmwareConfig = "config_hdmi_boost=5";
nixpkgs.hostPlatform = "aarch64-linux";
}
+2 -2
hosts/vulpine/default.nix
···
environment.systemPackages = with pkgs; [
pciutils
-
gnome.file-roller
+
file-roller
unzip
-
gnome.cheese
+
cheese
chromium
calibre
zotero
+2 -1
modules/gui/default.nix
···
i18n = {
defaultLocale = "en_GB.UTF-8";
inputMethod = {
-
enabled = "fcitx5";
+
enable = true;
+
type = "fcitx5";
fcitx5.addons = with pkgs; [
fcitx5-rime
fcitx5-chinese-addons
+3 -1
modules/gui/i3.nix
···
xf86_input_wacom
];
+
# TODO read this
+
# https://github.com/flatpak/xdg-desktop-portal/blob/1.18.1/doc/portals.conf.rst.in
xdg.portal = {
enable = true;
wlr.enable = true;
-
gtkUsePortal = false;
+
config.common.default = "*";
};
services.geoclue2.appConfig.redshift = {
+3 -1
modules/gui/sway.nix
···
];
};
+
# TODO read this
+
# https://github.com/flatpak/xdg-desktop-portal/blob/1.18.1/doc/portals.conf.rst.in
xdg.portal = {
enable = true;
wlr.enable = true;
-
gtkUsePortal = false;
+
config.common.default = "*";
};
services.geoclue2.appConfig.gammastep = {
-7
secrets/matrix-sliding-sync.age
···
-
age-encryption.org/v1
-
-> ssh-ed25519 2wDnOw yIGmMdEnqCDU+aJKKDd1pCHi/sNKDqKWD40Otgpzzhc
-
XzXUgmSfXdam//SxQRGIQEhwXVnzBaO95tDlUavkcvw
-
-> ssh-ed25519 suwb0g PtiPoAcltY6fV6eDGIu0UHBLd6nrf9fHlQTiA3U5tk4
-
KTCz34YWgak1vRzp1s8tS+uU3WCdLNf3Oj/SMuXSyno
-
--- nrf3xTg5+L32y7n8VHZEcNCkB9aDbgc8pNVvT22jwxI
-
�G�i91_���4M�c�I�-m_<�Bk"!������{wi!��#W�غ�L�4r���3���� m�8voe�CO��0�jάg� �?���"����x͸.���RՊ���܅L��
-1
secrets/secrets.nix
···
"eon-capnp.age".publicKeys = user ++ [ owl ];
"eon-vpn.freumh.org.cap.age".publicKeys = user ++ [ elephant ];
"eon-sirref-primary.cap.age".publicKeys = user ++ [ owl ];
-
"matrix-sliding-sync.age".publicKeys = user ++ [ owl ];
}