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";
|
||||
|
||||
inputs = {
|
||||
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.11";
|
||||
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).
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
url = "github:nix-community/home-manager/release-26.05";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
zen-browser = {
|
||||
url = "github:0xc000022070/zen-browser-flake";
|
||||
inputs = {
|
||||
nixpkgs.follows = "nixpkgs-stable";
|
||||
home-manager.follows = "home-manager-stable";
|
||||
nixpkgs.follows = "nixpkgs";
|
||||
home-manager.follows = "home-manager";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -28,57 +20,39 @@
|
|||
|
||||
proton-cachyos-nix.url = "github:powerofthe69/proton-cachyos-nix";
|
||||
|
||||
# Pin Hyprland to upstream so we get the 0.52.2+ fixes ahead of
|
||||
# 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";
|
||||
};
|
||||
|
||||
# No release-26.05 branch yet — use master until stylix cuts one.
|
||||
stylix.url = "github:nix-community/stylix";
|
||||
stylix-stable = {
|
||||
url = "github:nix-community/stylix/release-25.11";
|
||||
inputs.nixpkgs.follows = "nixpkgs-stable";
|
||||
};
|
||||
};
|
||||
outputs =
|
||||
{ self
|
||||
, nixpkgs-stable
|
||||
, nixpkgs
|
||||
, home-manager-stable
|
||||
, home-manager
|
||||
, zen-browser
|
||||
, nix-cachyos-kernel
|
||||
, hyprland
|
||||
, anyrun
|
||||
, stylix
|
||||
, stylix-stable
|
||||
, proton-cachyos-nix
|
||||
, ...
|
||||
} @ inputs:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
mkHost = hostname: pkgsInput: hmInput: extraModules: pkgsInput.lib.nixosSystem {
|
||||
mkHost = hostname: extraModules: nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = { inherit inputs; pkgs-unstable = nixpkgs.legacyPackages.${system}; };
|
||||
specialArgs = { inherit inputs; };
|
||||
modules = [
|
||||
./hosts/${hostname}.nix
|
||||
./hosts/hardware/${hostname}.nix
|
||||
./common.nix
|
||||
hmInput.nixosModules.home-manager
|
||||
home-manager.nixosModules.home-manager
|
||||
stylix.nixosModules.stylix
|
||||
./settings/stylix.nix
|
||||
] ++ extraModules;
|
||||
};
|
||||
in
|
||||
{
|
||||
nixosConfigurations = {
|
||||
# Gaming and Macbook use nixpkgs unstable — required by home-manager
|
||||
# unstable which needs lib/services/lib.nix added in nixpkgs after 25.11.
|
||||
FredOS-Gaming = mkHost "FredOS-Gaming" nixpkgs home-manager [ stylix.nixosModules.stylix ./settings/stylix.nix ];
|
||||
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 ];
|
||||
FredOS-Gaming = mkHost "FredOS-Gaming" [];
|
||||
FredOS-Mediaserver = mkHost "FredOS-Mediaserver" [];
|
||||
FredOS-Macbook = mkHost "FredOS-Macbook" [];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,12 +5,11 @@
|
|||
# password gate). After deploy, install the Claude extension from a terminal:
|
||||
# code-server --install-extension anthropic.claude-code
|
||||
# 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") {
|
||||
services.code-server = {
|
||||
enable = true;
|
||||
package = pkgs-unstable.code-server;
|
||||
host = "127.0.0.1";
|
||||
port = 4444;
|
||||
auth = "none";
|
||||
|
|
|
|||
|
|
@ -1,9 +1,6 @@
|
|||
# settings/hyprland.nix
|
||||
{ config, pkgs, lib, inputs, ... }:
|
||||
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";
|
||||
isGaming = !isMacbook;
|
||||
|
||||
|
|
@ -13,8 +10,6 @@ in
|
|||
programs.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
package = hyprland-pkgs.hyprland;
|
||||
portalPackage = hyprland-pkgs.xdg-desktop-portal-hyprland;
|
||||
};
|
||||
|
||||
xdg.portal = {
|
||||
|
|
@ -61,20 +56,12 @@ in
|
|||
pavucontrol
|
||||
polkit_gnome
|
||||
quickshell
|
||||
anyrun
|
||||
qt6.qt5compat
|
||||
zenity
|
||||
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, ... }:
|
||||
let
|
||||
c = config.lib.stylix.colors;
|
||||
|
|
@ -96,7 +83,6 @@ in
|
|||
enable = true;
|
||||
configType = "lua";
|
||||
systemd.variables = [ "--all" ];
|
||||
package = hyprland-pkgs.hyprland;
|
||||
|
||||
settings = {
|
||||
# hl.config({...}) — all static named-section configuration.
|
||||
|
|
@ -192,8 +178,8 @@ in
|
|||
$'\uf08b Logout' \
|
||||
$'\uf01e Reboot' \
|
||||
$'\uf011 Shutdown' \
|
||||
| ${anyrun-pkgs.anyrun}/bin/anyrun \
|
||||
--plugins "${anyrun-pkgs.stdin}/lib/libstdin.so" \
|
||||
| ${pkgs.anyrun}/bin/anyrun \
|
||||
--plugins "${pkgs.anyrun}/lib/libstdin.so" \
|
||||
--show-results-immediately true \
|
||||
--hide-plugin-info 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 = {
|
||||
enable = true;
|
||||
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, ... }:
|
||||
{
|
||||
# Imported for all hosts via flake.nix extraModules.
|
||||
# Desktop hosts use stylix (unstable), Mediaserver uses stylix-stable (25.11).
|
||||
# Imported for all hosts via flake.nix.
|
||||
|
||||
config = {
|
||||
stylix = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue