feat: add stylix theme

Break Changes:
- May need reconfigure fcitx5 input method
This commit is contained in:
danny 2025-08-20 22:32:44 +08:00
parent ca73fac1f6
commit d1913a50ae
30 changed files with 621 additions and 531 deletions

View file

@ -6,7 +6,6 @@
...
}:
let
inherit (lib) optionalString;
monitors = [
"desc:ASUSTek COMPUTER INC ASUS VG32VQ1B 0x00002271"
"desc:Acer Technologies XV272U V3 1322131231233"
@ -38,7 +37,7 @@ in
./sops-conf.nix # Secret
../../modules/gaming.nix
# ../../modules/secure-boot.nix
(import ../../modules/virtualization.nix { inherit username; })
../../modules/virtualization.nix
../../modules/wine.nix
../../modules/wireguard.nix
../../modules/localsend.nix
@ -106,7 +105,7 @@ in
++ (
if config.programs.gamemode.enable then
[
"custom/gamemode"
"gamemode"
]
else
[ ]

View file

@ -1,47 +0,0 @@
{
pkgs,
lib,
nix-version,
...
}:
let
nerdfont-pkg =
if nix-version == "25.05" then
pkgs.nerd-fonts.caskaydia-cove
else
(pkgs.nerdfonts.override { fonts = [ "CascadiaCode" ]; });
sf-pro-display-bold = pkgs.callPackage ../../pkgs/fonts/sf-pro-display-bold { };
in
{
fonts.packages =
(with pkgs; [
font-awesome
jetbrains-mono
noto-fonts-cjk-sans
noto-fonts-cjk-serif
noto-fonts-emoji
sf-pro-display-bold
])
++ [
nerdfont-pkg
];
fonts.fontDir.enable = true;
fonts.fontconfig = {
enable = true;
defaultFonts = {
serif = [
"CaskaydiaCove Nerd Font"
"Noto Sans CJK"
];
sansSerif = [
"CaskaydiaCove Nerd Font"
"Noto Sans CJK"
];
monospace = [ "CaskaydiaCove Nerd Font Mono" ];
};
cache32Bit = true;
};
}

View file

@ -1,52 +1,20 @@
{ pkgs, ... }:
let
addons = with pkgs; [
fcitx5-gtk
fcitx5-mozc # Japanese
fcitx5-chinese-addons
fcitx5-rime # Bopomofo
rime-data
];
in
{
i18n.defaultLocale = "en_US.UTF-8";
i18n = {
defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
i18n.supportedLocales = [ "en_US.UTF-8/UTF-8" ];
i18n.inputMethod = {
enable = true;
type = "fcitx5";
fcitx5.addons = addons;
};
systemd.user.services.fcitx5 = {
enable = true;
wantedBy = [ "graphical-session.target" ];
partOf = [ "graphical-session.target" ];
description = "Fcitx5 Input Method";
environment = {
GTK_IM_MODULE = "";
XMODIFIERS = "@im=fcitx";
QT_IM_MODULE = "fcitx";
};
serviceConfig = {
Type = "simple";
Restart = "always";
RestartSec = 2;
ExecStart = "/run/current-system/sw/bin/fcitx5";
extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
supportedLocales = [ "en_US.UTF-8/UTF-8" ];
};
}

View file

@ -3,11 +3,6 @@
boot = {
plymouth = {
enable = true;
theme = "hexagon_dots";
themePackages = with pkgs; [
(adi1090x-plymouth-themes.override { selected_themes = [ "hexagon_dots" ]; })
(catppuccin-plymouth.override { variant = "frappe"; })
];
};
consoleLogLevel = 0;

View file

@ -1,32 +1,17 @@
{ pkgs, ... }:
{
imports = [
./minimal.nix
../stylix.nix
../auto-mount.nix
../bluetooth.nix
../display-manager.nix
../environment.nix
../flatpak.nix
../fonts.nix
../gc.nix
../hardware.nix
../hyprland.nix
../internationalisation.nix
../misc.nix
../networking.nix
../nixsettings.nix
../obs-studio.nix
../packages.nix
../plymouth.nix
../polkit.nix
../programs.nix
../security.nix
../services.nix
../sound.nix
../time.nix
../tmux.nix
../users.nix
../ca.nix
../sops-nix.nix
];
programs.gdk-pixbuf.modulePackages = [ pkgs.librsvg ];

View file

@ -2,7 +2,6 @@
{
imports = [
../environment.nix
../fonts.nix
../hardware.nix
../internationalisation.nix
../misc.nix

72
system/modules/stylix.nix Normal file
View file

@ -0,0 +1,72 @@
{
pkgs,
config,
username,
...
}:
let
caskaydia = {
name = "CaskaydiaCove Nerd Font Mono";
package = pkgs.nerd-fonts.caskaydia-cove;
};
sf-pro-display-bold = pkgs.callPackage ../../pkgs/fonts/sf-pro-display-bold { };
in
{
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-material-dark-medium.yaml";
polarity = "dark";
fonts = {
serif = config.stylix.fonts.monospace;
sansSerif = config.stylix.fonts.monospace;
monospace = caskaydia;
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
sizes = {
terminal = 15;
desktop = 15;
popups = 12;
};
};
};
fonts = {
packages = (
with pkgs;
[
font-awesome
jetbrains-mono
noto-fonts-cjk-sans
noto-fonts-cjk-serif
noto-fonts-emoji
sf-pro-display-bold
]
);
fontDir.enable = true;
};
home-manager.users."${username}" = {
stylix.targets.neovim.transparentBackground = {
main = true;
numberLine = true;
signColumn = true;
};
stylix.targets = {
swaync.enable = false;
zen-browser.enable = false;
waybar.enable = false;
hyprlock.enable = false;
hyprland.enable = false;
rofi.enable = false;
};
};
}