pin to nixos 26.05, drop hyprland/anyrun flakes

Stable restore point before 26.05 — last known good unstable config.

Unify all hosts on nixos-26.05 + home-manager release-26.05.
Drop hyprland, anyrun, nixpkgs-stable, home-manager-stable,
stylix-stable inputs. Hyprland 0.55.2 and anyrun 25.12.0 from
nixpkgs. Anyrun config via xdg.configFile (no HM module in 26.05).
Stylix on master until release-26.05 branch exists.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
rope 2026-05-30 11:11:33 +01:00
parent f5d7fd440e
commit 72246fc440
5 changed files with 104 additions and 1048 deletions

958
flake.lock generated

File diff suppressed because it is too large Load diff

View file

@ -2,25 +2,17 @@
description = "FredOS NixOS configuration"; description = "FredOS NixOS configuration";
inputs = { inputs = {
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.11"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
home-manager-stable = {
url = "github:nix-community/home-manager/release-25.11";
inputs.nixpkgs.follows = "nixpkgs-stable";
};
# Unstable HM for Hyprland Lua config support (configType = "lua",
# available since HM master / future 26.05).
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager/release-26.05";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
zen-browser = { zen-browser = {
url = "github:0xc000022070/zen-browser-flake"; url = "github:0xc000022070/zen-browser-flake";
inputs = { inputs = {
nixpkgs.follows = "nixpkgs-stable"; nixpkgs.follows = "nixpkgs";
home-manager.follows = "home-manager-stable"; home-manager.follows = "home-manager";
}; };
}; };
@ -28,57 +20,39 @@
proton-cachyos-nix.url = "github:powerofthe69/proton-cachyos-nix"; proton-cachyos-nix.url = "github:powerofthe69/proton-cachyos-nix";
# Pin Hyprland to upstream so we get the 0.52.2+ fixes ahead of # No release-26.05 branch yet — use master until stylix cuts one.
# nixos-25.11's slower bump cadence. Doesn't follow our nixpkgs —
# upstream needs newer stdenv than 25.11 ships.
hyprland.url = "github:hyprwm/Hyprland";
anyrun = {
url = "github:anyrun-org/anyrun";
inputs.nixpkgs.follows = "nixpkgs";
};
stylix.url = "github:nix-community/stylix"; stylix.url = "github:nix-community/stylix";
stylix-stable = {
url = "github:nix-community/stylix/release-25.11";
inputs.nixpkgs.follows = "nixpkgs-stable";
};
}; };
outputs = outputs =
{ self { self
, nixpkgs-stable
, nixpkgs , nixpkgs
, home-manager-stable
, home-manager , home-manager
, zen-browser , zen-browser
, nix-cachyos-kernel , nix-cachyos-kernel
, hyprland
, anyrun
, stylix , stylix
, stylix-stable
, proton-cachyos-nix , proton-cachyos-nix
, ... , ...
} @ inputs: } @ inputs:
let let
system = "x86_64-linux"; system = "x86_64-linux";
mkHost = hostname: pkgsInput: hmInput: extraModules: pkgsInput.lib.nixosSystem { mkHost = hostname: extraModules: nixpkgs.lib.nixosSystem {
inherit system; inherit system;
specialArgs = { inherit inputs; pkgs-unstable = nixpkgs.legacyPackages.${system}; }; specialArgs = { inherit inputs; };
modules = [ modules = [
./hosts/${hostname}.nix ./hosts/${hostname}.nix
./hosts/hardware/${hostname}.nix ./hosts/hardware/${hostname}.nix
./common.nix ./common.nix
hmInput.nixosModules.home-manager home-manager.nixosModules.home-manager
stylix.nixosModules.stylix
./settings/stylix.nix
] ++ extraModules; ] ++ extraModules;
}; };
in in
{ {
nixosConfigurations = { nixosConfigurations = {
# Gaming and Macbook use nixpkgs unstable — required by home-manager FredOS-Gaming = mkHost "FredOS-Gaming" [];
# unstable which needs lib/services/lib.nix added in nixpkgs after 25.11. FredOS-Mediaserver = mkHost "FredOS-Mediaserver" [];
FredOS-Gaming = mkHost "FredOS-Gaming" nixpkgs home-manager [ stylix.nixosModules.stylix ./settings/stylix.nix ]; FredOS-Macbook = mkHost "FredOS-Macbook" [];
FredOS-Mediaserver = mkHost "FredOS-Mediaserver" nixpkgs-stable home-manager-stable [ stylix-stable.nixosModules.stylix ./settings/stylix.nix ];
FredOS-Macbook = mkHost "FredOS-Macbook" nixpkgs home-manager [ stylix.nixosModules.stylix ./settings/stylix.nix ];
}; };
}; };
} }

View file

@ -5,12 +5,11 @@
# password gate). After deploy, install the Claude extension from a terminal: # password gate). After deploy, install the Claude extension from a terminal:
# code-server --install-extension anthropic.claude-code # code-server --install-extension anthropic.claude-code
# and set ANTHROPIC_API_KEY in ~/.config/code-server/env or via a shell profile. # and set ANTHROPIC_API_KEY in ~/.config/code-server/env or via a shell profile.
{ config, pkgs, lib, pkgs-unstable, ... }: { config, pkgs, lib, ... }:
{ {
config = lib.mkIf (config.networking.hostName == "FredOS-Mediaserver") { config = lib.mkIf (config.networking.hostName == "FredOS-Mediaserver") {
services.code-server = { services.code-server = {
enable = true; enable = true;
package = pkgs-unstable.code-server;
host = "127.0.0.1"; host = "127.0.0.1";
port = 4444; port = 4444;
auth = "none"; auth = "none";

View file

@ -1,9 +1,6 @@
# settings/hyprland.nix # settings/hyprland.nix
{ config, pkgs, lib, inputs, ... }: { config, pkgs, lib, inputs, ... }:
let let
hyprland-pkgs = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system};
anyrun-pkgs = inputs.anyrun.packages.${pkgs.stdenv.hostPlatform.system};
isMacbook = config.networking.hostName == "FredOS-Macbook"; isMacbook = config.networking.hostName == "FredOS-Macbook";
isGaming = !isMacbook; isGaming = !isMacbook;
@ -13,8 +10,6 @@ in
programs.hyprland = { programs.hyprland = {
enable = true; enable = true;
xwayland.enable = true; xwayland.enable = true;
package = hyprland-pkgs.hyprland;
portalPackage = hyprland-pkgs.xdg-desktop-portal-hyprland;
}; };
xdg.portal = { xdg.portal = {
@ -61,20 +56,12 @@ in
pavucontrol pavucontrol
polkit_gnome polkit_gnome
quickshell quickshell
anyrun
qt6.qt5compat qt6.qt5compat
zenity zenity
libcanberra-gtk3 libcanberra-gtk3
]; ];
# Use upstream anyrun flake's HM module instead of the built-in one
# for working daemon mode.
home-manager.sharedModules = [
({ modulesPath, ... }: {
disabledModules = [ "${modulesPath}/programs/anyrun.nix" ];
})
inputs.anyrun.homeManagerModules.default
];
home-manager.users.fred = { config, lib, pkgs, inputs, ... }: home-manager.users.fred = { config, lib, pkgs, inputs, ... }:
let let
c = config.lib.stylix.colors; c = config.lib.stylix.colors;
@ -96,7 +83,6 @@ in
enable = true; enable = true;
configType = "lua"; configType = "lua";
systemd.variables = [ "--all" ]; systemd.variables = [ "--all" ];
package = hyprland-pkgs.hyprland;
settings = { settings = {
# hl.config({...}) — all static named-section configuration. # hl.config({...}) — all static named-section configuration.
@ -192,8 +178,8 @@ in
$'\uf08b Logout' \ $'\uf08b Logout' \
$'\uf01e Reboot' \ $'\uf01e Reboot' \
$'\uf011 Shutdown' \ $'\uf011 Shutdown' \
| ${anyrun-pkgs.anyrun}/bin/anyrun \ | ${pkgs.anyrun}/bin/anyrun \
--plugins "${anyrun-pkgs.stdin}/lib/libstdin.so" \ --plugins "${pkgs.anyrun}/lib/libstdin.so" \
--show-results-immediately true \ --show-results-immediately true \
--hide-plugin-info true \ --hide-plugin-info true \
--close-on-click true) --close-on-click true)
@ -343,64 +329,6 @@ in
''; '';
}; };
programs.anyrun = {
enable = true;
config = {
plugins = [ anyrun-pkgs.applications ];
x.fraction = 0.5;
y.fraction = 0.25;
width.absolute = 350;
height.absolute = 0;
hideIcons = false;
ignoreExclusiveZones = false;
layer = "overlay";
hidePluginInfo = true;
closeOnClick = true;
maxEntries = 8;
};
extraCss =
let c = config.lib.stylix.colors; in
''
* { all: unset; font-family: "FiraMono Nerd Font", monospace; font-size: 13px; }
window { background: transparent; }
box.main {
background: #${c.base00};
border: 1px solid #${c.base03};
border-radius: 10px;
padding: 8px;
margin: 16px;
}
text {
background: #${c.base01};
color: #${c.base05};
caret-color: #${c.base0D};
padding: 8px 16px;
border-radius: 6px;
min-height: 0;
}
list.plugin { background: transparent; }
.matches { background: transparent; }
.match {
padding: 4px 16px;
border-radius: 6px;
color: #${c.base05};
background: transparent;
}
.match:selected {
background: #${c.base02};
border: none;
}
label.match.description { color: #${c.base04}; font-size: 11px; }
'';
extraConfigFiles."applications.ron".text = ''
Config(
desktop_actions: false,
max_entries: 8,
terminal: Some("ghostty"),
)
'';
};
programs.hyprlock = { programs.hyprlock = {
enable = true; enable = true;
settings = { settings = {
@ -2445,6 +2373,64 @@ in
} }
''; '';
}; };
# anyrun config — written manually since HM 26.05 has no anyrun module.
"anyrun/config.ron".text = ''
Config(
x: Fraction(0.5),
y: Fraction(0.25),
width: Absolute(350),
height: Absolute(0),
hide_icons: false,
ignore_exclusive_zones: false,
layer: Overlay,
hide_plugin_info: true,
close_on_click: true,
max_entries: 8,
plugins: [
"${pkgs.anyrun}/lib/libapplications.so",
],
)
'';
"anyrun/style.css".text = ''
* { all: unset; font-family: "FiraMono Nerd Font", monospace; font-size: 13px; }
window { background: transparent; }
box.main {
background: #${c.base00};
border: 1px solid #${c.base03};
border-radius: 10px;
padding: 8px;
margin: 16px;
}
text {
background: #${c.base01};
color: #${c.base05};
caret-color: #${c.base0D};
padding: 8px 16px;
border-radius: 6px;
min-height: 0;
}
list.plugin { background: transparent; }
.matches { background: transparent; }
.match {
padding: 4px 16px;
border-radius: 6px;
color: #${c.base05};
background: transparent;
}
.match:selected {
background: #${c.base02};
border: none;
}
label.match.description { color: #${c.base04}; font-size: 11px; }
'';
"anyrun/applications.ron".text = ''
Config(
desktop_actions: false,
max_entries: 8,
terminal: Some("ghostty"),
)
'';
}; };
}; };

View file

@ -1,7 +1,6 @@
{ config, pkgs, lib, inputs, ... }: { config, pkgs, lib, inputs, ... }:
{ {
# Imported for all hosts via flake.nix extraModules. # Imported for all hosts via flake.nix.
# Desktop hosts use stylix (unstable), Mediaserver uses stylix-stable (25.11).
config = { config = {
stylix = { stylix = {