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:
parent
f5d7fd440e
commit
72246fc440
5 changed files with 104 additions and 1048 deletions
958
flake.lock
generated
958
flake.lock
generated
File diff suppressed because it is too large
Load diff
52
flake.nix
52
flake.nix
|
|
@ -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 ];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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";
|
||||||
|
|
|
||||||
|
|
@ -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"),
|
||||||
|
)
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -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 = {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue