deprecate stylix, fix minor gripes and bugs

This commit is contained in:
alisceon 2026-05-22 19:48:24 +02:00
parent 6b492bad2f
commit fb1ad8d919
42 changed files with 951 additions and 688 deletions

View file

@ -1,4 +1,8 @@
{ config, pkgs, lib, repoLocalPath, ... }:
let
autoUpgradeUser = "alisceon";
flakeRef = "path:${repoLocalPath}";
in
{
boot = {
kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
@ -18,25 +22,36 @@
system.autoUpgrade = {
enable = true;
persistent = true;
flake = repoLocalPath;
flake = flakeRef;
upgrade = false;
flags = [
"--print-build-logs"
"--no-write-lock-file"
];
dates = "daily";
dates = "03:40";
fixedRandomDelay = true;
randomizedDelaySec = "2h";
runGarbageCollection = true;
};
systemd.services.nixos-upgrade.preStart = ''
${pkgs.util-linux}/bin/runuser -u ${autoUpgradeUser} -- ${lib.getExe config.nix.package} flake update --flake ${lib.escapeShellArg flakeRef}
'';
nix = {
settings = {
experimental-features = [ "nix-command" "flakes" ];
auto-optimise-store = true;
min-free = 1024 * 1024 * 1024;
max-free = 5 * 1024 * 1024 * 1024;
trusted-users = [ "root" "alisceon" ];
};
gc = {
automatic = true;
persistent = true;
dates = "daily";
options = "--delete-older-than 7d";
dates = "weekly";
randomizedDelaySec = "2h";
options = "--delete-older-than 14d";
};
registry = {
templates.to = {
@ -47,17 +62,19 @@
type = "github";
owner = "NixOS";
repo = "nixpkgs";
ref = "nixos-unstable";
ref = "nixos-25.11";
};
nixpkgs-stable.to = {
type = "github";
owner = "NixOS";
repo = "nixpkgs";
ref = "nixos-25.05";
ref = "nixos-25.11";
};
};
};
boot.loader.systemd-boot.configurationLimit = lib.mkDefault 10;
console.keyMap = "sv-latin1";
networking.networkmanager.enable = true;
time.timeZone = "Europe/Stockholm";

View file

@ -1,6 +1,12 @@
{ pkgs, ... }:
{
system.autoUpgrade.allowReboot = true;
system.autoUpgrade = {
allowReboot = true;
rebootWindow = {
lower = "03:00";
upper = "05:00";
};
};
services.openssh = {
enable = true;

View file

@ -1,7 +1,11 @@
{ pkgs, ... }:
{ pkgs, pkgs-unstable, ... }:
{
boot = {
plymouth.enable = true;
plymouth = {
enable = true;
theme = "nixos-bgrt";
themePackages = [ pkgs.nixos-bgrt-plymouth ];
};
kernelParams = [
"quiet"
"udev.log_level=3"
@ -37,6 +41,11 @@
programs.dconf.enable = true;
users = {
groups.plugdev = {};
users.alisceon.extraGroups = [ "plugdev" ];
};
networking.firewall.allowedTCPPorts = [
1312
8000
@ -46,20 +55,20 @@
environment = {
systemPackages = [
pkgs.discord
pkgs.signal-desktop
pkgs-unstable.discord
pkgs-unstable.signal-desktop
pkgs.mumble
(pkgs.chromium.override { enableWideVine = true; })
(pkgs-unstable.chromium.override { enableWideVine = true; })
pkgs.google-chrome
pkgs.vscodium
pkgs.codex
pkgs-unstable.vscode
pkgs-unstable.codex
pkgs.devenv
pkgs.direnv
pkgs.syncthing
pkgs.steam
pkgs.krita
pkgs.edk2-uefi-shell
pkgs.obsidian
pkgs-unstable.obsidian
pkgs.gparted
pkgs.vlc
pkgs.via

View file

@ -0,0 +1,88 @@
{ pkgs }:
let
dropHash = color:
builtins.substring 1 ((builtins.stringLength color) - 1) color;
palette = {
darkestGray = "#181818";
darkerGray = "#252525";
darkGray = "#3b3b3b";
gray = "#777777";
mutedGray = "#777777";
lightGray = "#b9b9b9";
lighterGray = "#dedede";
white = "#dedede";
red = "#ed4a46";
orange = "#e67f43";
yellow = "#dbb32d";
green = "#70b433";
magenta = "#eb6eb7";
purple = "#a580e2";
blue = "#368aeb";
cyan = "#3fc5b7";
};
paletteNoHash = builtins.mapAttrs (_: dropHash) palette;
in
{
inherit palette paletteNoHash;
colors = {
background = palette.darkestGray;
backgroundAlt = palette.darkerGray;
selection = palette.gray;
foreground = palette.lightGray;
foregroundBright = palette.lighterGray;
error = palette.red;
warning = palette.yellow;
success = palette.green;
accent = palette.purple;
};
polarity = "dark";
fonts = {
monospace = {
package = pkgs.inconsolata;
name = "Inconsolata";
};
sansSerif = {
package = pkgs.noto-fonts;
name = "NotoSans";
};
serif = {
package = pkgs.noto-fonts;
name = "NotoSerif";
};
emoji = {
package = pkgs.noto-fonts-color-emoji;
name = "noto-fonts-color-emoji";
};
sizes = {
applications = 14;
terminal = 14;
desktop = 14;
popups = 14;
};
};
cursor = {
package = pkgs.whitesur-cursors;
name = "WhiteSur-cursors";
size = 20;
};
icons = {
package = pkgs.whitesur-icon-theme;
light = "WhiteSur-light";
dark = "WhiteSur-dark";
};
gtk = {
theme = {
package = pkgs.adw-gtk3;
name = "adw-gtk3";
};
};
}

View file

@ -0,0 +1,6 @@
{
imports = [
./fonts.nix
./home-manager.nix
];
}

View file

@ -0,0 +1,13 @@
{ pkgs, ... }:
let
theme = import ./colors.nix { inherit pkgs; };
in
{
fonts.packages = [
theme.fonts.monospace.package
theme.fonts.sansSerif.package
theme.fonts.serif.package
theme.fonts.emoji.package
];
}

View file

@ -0,0 +1,15 @@
{ pkgs, ... }:
let
theme = import ./colors.nix { inherit pkgs; };
in
{
home-manager.sharedModules = [
({ ... }: {
_module.args.theme = theme;
imports = [
../../../home/modules/theme
];
})
];
}

View file

@ -1,65 +0,0 @@
{ pkgs, ... }:
{
stylix = {
enable = true;
autoEnable = true;
enableReleaseChecks = false;
base16Scheme = {
base00 = "#181818";
base01 = "#252525";
base02 = "#3b3b3b";
base03 = "#777777";
base04 = "#777777";
base05 = "#b9b9b9";
base06 = "#dedede";
base07 = "#dedede";
base08 = "#ed4a46";
base09 = "#e67f43";
base0A = "#dbb32d";
base0B = "#70b433";
base0C = "#eb6eb7";
base0D = "#a580e2";
base0E = "#368aeb";
base0F = "#3fc5b7";
};
polarity = "dark";
fonts = {
monospace = {
package = pkgs.inconsolata;
name = "Inconsolata";
};
sansSerif = {
package = pkgs.noto-fonts;
name = "NotoSans";
};
serif = {
package = pkgs.noto-fonts;
name = "NotoSerif";
};
emoji = {
package = pkgs.noto-fonts-color-emoji;
name = "noto-fonts-color-emoji";
};
sizes = {
applications = 14;
terminal = 14;
desktop = 14;
popups = 14;
};
};
cursor = {
package = pkgs.whitesur-cursors;
name = "WhiteSur-cursors";
size = 20;
};
icons = {
enable = true;
package = pkgs.whitesur-icon-theme;
light = "WhiteSur-light";
dark = "WhiteSur-dark";
};
};
}

View file

@ -1,5 +1,7 @@
{ pkgs, ... }:
{
hardware.uinput.enable = true;
environment.systemPackages = with pkgs; [
pavucontrol
libinput
@ -91,5 +93,5 @@
gvfs.enable = true;
};
users.users.alisceon.extraGroups = [ "video" "input" ];
users.users.alisceon.extraGroups = [ "video" "input" "uinput" ];
}