Commit 63055c8
Changed files (28)
modules
core
shell
starship
desktop
apps
browser
terminal
ghostty
wezterm
thunderbird
fonts
input-method
fcitx5
shell
niri
plasma6
options
dev
vscode
profiles
hosts
chaser-kevin
modules/core/shell/starship/starship.toml
@@ -5,9 +5,9 @@ format = """
$os\
$username\
$hostname\
-[](bg:peach fg:red)\
+[](bg:orange fg:red)\
$directory\
-[](bg:yellow fg:peach)\
+[](bg:yellow fg:orange)\
$git_branch\
$git_status\
[](fg:yellow bg:green)\
@@ -20,18 +20,18 @@ $java\
$kotlin\
$haskell\
$python\
-[](fg:green bg:sapphire)\
+[](fg:green bg:bright-blue)\
$conda\
-[](fg:sapphire bg:lavender)\
+[](fg:bright-blue bg:bright-white)\
$time\
-[ ](fg:lavender)\
+[ ](fg:bright-white)\
$cmd_duration\
$line_break\
$character"""
[os]
disabled = false
-style = "bg:red fg:crust"
+style = "bg:red fg:black"
[os.symbols]
Alpine = " "
@@ -58,8 +58,8 @@ Windows = " "
[username]
show_always = true
-style_user = "bg:red fg:crust"
-style_root = "bg:red fg:crust"
+style_user = "bg:red fg:black"
+style_root = "bg:red fg:black"
format = '[$user ]($style)'
[hostname]
@@ -68,7 +68,7 @@ ssh_symbol = '@'
format = '[$ssh_symbol$hostname]($style)'
[directory]
-style = "bg:peach fg:crust"
+style = "bg:orange fg:black"
format = "[ $path ]($style)"
truncation_length = 3
truncate_to_repo = true
@@ -78,73 +78,73 @@ fish_style_pwd_dir_length = 1
[git_branch]
symbol = ""
style = "bg:yellow"
-format = '[[ $symbol $branch ](fg:crust bg:yellow)]($style)'
+format = '[[ $symbol $branch ](fg:black bg:yellow)]($style)'
[git_status]
style = "bg:yellow"
-format = '[[($all_status$ahead_behind )](fg:crust bg:yellow)]($style)'
+format = '[[($all_status$ahead_behind )](fg:black bg:yellow)]($style)'
[nodejs]
symbol = ""
style = "bg:green"
-format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
+format = '[[ $symbol( $version) ](fg:black bg:green)]($style)'
[c]
symbol = " "
style = "bg:green"
-format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
+format = '[[ $symbol( $version) ](fg:black bg:green)]($style)'
[rust]
symbol = ""
style = "bg:green"
-format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
+format = '[[ $symbol( $version) ](fg:black bg:green)]($style)'
[golang]
symbol = ""
style = "bg:green"
-format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
+format = '[[ $symbol( $version) ](fg:black bg:green)]($style)'
[php]
symbol = ""
style = "bg:green"
-format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
+format = '[[ $symbol( $version) ](fg:black bg:green)]($style)'
[java]
symbol = " "
style = "bg:green"
-format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
+format = '[[ $symbol( $version) ](fg:black bg:green)]($style)'
[kotlin]
symbol = ""
style = "bg:green"
-format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
+format = '[[ $symbol( $version) ](fg:black bg:green)]($style)'
[haskell]
symbol = ""
style = "bg:green"
-format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
+format = '[[ $symbol( $version) ](fg:black bg:green)]($style)'
[python]
symbol = ""
style = "bg:green"
-format = '[[ $symbol( $version)(\(#$virtualenv\)) ](fg:crust bg:green)]($style)'
+format = '[[ $symbol( $version)(\(#$virtualenv\)) ](fg:black bg:green)]($style)'
[docker_context]
symbol = ""
-style = "bg:sapphire"
-format = '[[ $symbol( $context) ](fg:crust bg:sapphire)]($style)'
+style = "bg:bright-blue"
+format = '[[ $symbol( $context) ](fg:black bg:bright-blue)]($style)'
[conda]
symbol = ""
-style = "fg:crust bg:sapphire"
+style = "fg:black bg:bright-blue"
format = '[$symbol$environment ]($style)'
ignore_base = false
[time]
disabled = false
time_format = "%R"
-style = "bg:lavender"
-format = '[[ $time ](fg:crust bg:lavender)]($style)'
+style = "bg:bright-white"
+format = '[[ $time ](fg:black bg:bright-white)]($style)'
[line_break]
disabled = false
@@ -154,8 +154,8 @@ disabled = false
success_symbol = '[❯](bold fg:green)'
error_symbol = '[❯](bold fg:red)'
vimcmd_symbol = '[❮](bold fg:green)'
-vimcmd_replace_one_symbol = '[❮](bold fg:lavender)'
-vimcmd_replace_symbol = '[❮](bold fg:lavender)'
+vimcmd_replace_one_symbol = '[❮](bold fg:bright-white)'
+vimcmd_replace_symbol = '[❮](bold fg:bright-white)'
vimcmd_visual_symbol = '[❮](bold fg:yellow)'
[cmd_duration]
modules/core/shell/fish.nix
@@ -1,5 +1,7 @@
{inputs, ...}: {
flake.modules.nixos.core = _: {
+ stylix.targets.fish.enable = false;
+
programs.fish.enable = true;
};
modules/core/stylix.nix
@@ -0,0 +1,58 @@
+{
+ inputs,
+ lib,
+ ...
+}: {
+ flake.modules.nixos.core = {
+ pkgs,
+ config,
+ ...
+ }: let
+ base16-schemes = pkgs.base16-schemes;
+ base24-schemes = base16-schemes.overrideAttrs {
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/share/themes/
+ install base24/*.yaml $out/share/themes/
+
+ runHook postInstall
+ '';
+ };
+ in {
+ imports = [inputs.stylix.nixosModules.stylix];
+
+ stylix = let
+ schemeName = "catppuccin-mocha";
+ theme = "${base24-schemes}/share/themes/${schemeName}.yaml";
+
+ inputImage = "${inputs.wallpapers}/Nahida-2.png";
+ brightness =
+ if config.lib.stylix.colors.variant == "dark"
+ then "-20"
+ else "0";
+ contrast =
+ if config.lib.stylix.colors.variant == "dark"
+ then "10"
+ else "0";
+ fillColor =
+ if config.lib.stylix.colors.variant == "dark"
+ then "black"
+ else "white";
+ in {
+ enable = true;
+ base16Scheme = theme;
+ image = pkgs.runCommand "dimmed-background.png" {} ''
+ ${lib.getExe' pkgs.imagemagick "convert"} "${inputImage}" -brightness-contrast ${brightness},${contrast} -fill ${fillColor} $out
+ '';
+ opacity = {
+ applications = 0.975; # Slightly less than 1.0 for accessibility reasons.
+ desktop = 0.9;
+ popups = 0.9;
+ # In Plasma, I don't want transparency.
+ # In Niri, I set it on server-side instead beacuse server-side opacity is better.
+ terminal = 1.0;
+ };
+ };
+ };
+}
modules/desktop/apps/browser/firefox.nix
@@ -9,20 +9,19 @@
&& osConfig.services.desktopManager.plasma6.enable;
isNiri = osConfig.programs.niri.enable;
in {
- catppuccin.firefox.profiles.default.enable = false;
+ stylix.targets.firefox = {
+ profileNames = ["default"];
+ colorTheme.enable = true;
+ };
home.packages = lib.optionals isNiri [pkgs.pywalfox-native];
programs.firefox = {
enable = true;
languagePacks = ["zh-CN" "en-US"];
- nativeMessagingHosts =
- (lib.optionals isPlasma [
- pkgs.kdePackages.plasma-browser-integration
- ])
- ++ (lib.optionals isNiri [
- pkgs.pywalfox-native
- ]);
+ nativeMessagingHosts = lib.optionals isPlasma [
+ pkgs.kdePackages.plasma-browser-integration
+ ];
policies = {
DisableAppUpdate = true;
@@ -51,6 +50,7 @@
baidu.metaData.hidden = true;
};
};
+ extensions.force = true;
extensions.packages =
(with pkgs.nur.repos.rycee.firefox-addons; [
ublock-origin
@@ -62,14 +62,6 @@
++ (lib.optionals isPlasma
(with pkgs.nur.repos.rycee.firefox-addons; [
plasma-integration
- ]))
- ++ (lib.optionals isNiri
- (with pkgs.nur.repos.rycee.firefox-addons; [
- pywalfox
- ]))
- ++ (lib.optionals (!isNiri)
- (with pkgs.nur.repos.rycee.firefox-addons; [
- firefox-color
]));
settings = {
# No First Run
modules/desktop/apps/terminal/ghostty/default.nix
@@ -14,7 +14,6 @@
window-new-tab-position = "current";
window-decoration = lib.mkIf osConfig.programs.niri.enable "none";
copy-on-select = false;
- font-family = "Maple Mono CN";
};
};
};
modules/desktop/apps/terminal/wezterm/default.nix
@@ -4,6 +4,6 @@
enable = true;
};
xdg.configFile."wezterm".source = ./config;
- catppuccin.wezterm.enable = false;
+ stylix.targets.wezterm.enable = false;
};
}
modules/desktop/apps/thunderbird/default.nix
@@ -16,7 +16,5 @@
};
};
};
-
- catppuccin.thunderbird.profile = "Default";
};
}
modules/desktop/apps/btop.nix
@@ -1,6 +1,6 @@
{
flake.modules.homeManager.desktop = _: {
- # Enable btop in home-manager to auto apply catppuccin theme
+ # Enable btop in home-manager to auto apply stylix's theme
# Btop is also a system package in modules/core/tools/packages.nix
programs.btop = {
enable = true;
modules/desktop/fonts/default.nix
@@ -1,40 +0,0 @@
-{
- flake.modules.nixos.desktop = {pkgs, ...}: {
- fonts = {
- enableDefaultPackages = false;
- fontDir.enable = true;
-
- packages = with pkgs; [
- nur.repos.rewine.ttf-ms-win10
-
- noto-fonts
- noto-fonts-emoji
-
- source-sans
- source-serif
- source-han-sans
- source-han-serif
-
- lxgw-wenkai
- smiley-sans
-
- nerd-fonts.symbols-only
- jetbrains-mono
- maple-mono.CN
- ];
-
- fontconfig.defaultFonts = {
- serif = ["Source Han Serif SC" "Source Han Serif TC" "Noto Color Emoji"];
- sansSerif = ["Source Han Sans SC" "Source Han Sans TC" "Noto Color Emoji"];
- monospace = ["JetBrains Mono" "Maple Mono CN" "Noto Color Emoji" "Symbols Nerd Font"];
- emoji = ["Noto Color Emoji"];
- };
- };
- };
-
- flake.modules.homeManager.desktop = _: {
- # Allow fontconfig to discover fonts and configurations installed through home.packages
- # Needed if using niri-flake.
- fonts.fontconfig.enable = true;
- };
-}
modules/desktop/fonts/plasma.nix
@@ -1,33 +0,0 @@
-{lib, ...}: {
- flake.modules.homeManager.desktop = {osConfig, ...}: let
- hasPlasma = osConfig.services.desktopManager.plasma6.enable;
- in
- lib.optionalAttrs hasPlasma {
- programs.plasma.fonts = {
- general = {
- family = "Source Han Sans SC";
- pointSize = 12;
- };
- fixedWidth = {
- family = "Maple Mono CN";
- pointSize = 12;
- };
- menu = {
- family = "Source Han Sans SC";
- pointSize = 12;
- };
- small = {
- family = "Source Han Sans SC";
- pointSize = 10;
- };
- toolbar = {
- family = "Source Han Sans SC";
- pointSize = 12;
- };
- windowTitle = {
- family = "Source Han Sans SC";
- pointSize = 12;
- };
- };
- };
-}
modules/desktop/input-method/fcitx5/default.nix
@@ -4,15 +4,6 @@
rimeDataPkgs = [pkgs.nur.repos.xyenon.rime-ice];
};
in {
- xdg.configFile = lib.mkIf pkgs.stdenv.hostPlatform.isLinux {
- "fcitx5/profile" = {
- source = ./profile;
- # every time fcitx5 switch input method, it will modify ~/.config/fcitx5/profile,
- # so we need to force replace it in every rebuild to avoid file conflict.
- force = true;
- };
- };
-
i18n.inputMethod = lib.mkIf pkgs.stdenv.hostPlatform.isLinux {
enable = true;
type = "fcitx5";
@@ -24,6 +15,20 @@
fcitx5-gtk # gtk im module
];
waylandFrontend = true;
+ settings = {
+ inputMethod = {
+ GroupOrder."0" = "Default";
+ "Groups/0" = {
+ Name = "Default";
+ "Default Layout" = "us";
+ DefaultIM = "rime";
+ };
+ "Groups/0/Items/0" = {
+ IM = "rime";
+ Layout = "us";
+ };
+ };
+ };
};
};
};
modules/desktop/input-method/fcitx5/profile
@@ -1,17 +0,0 @@
-[Groups/0]
-# Group Name
-Name=Other
-# Layout
-Default Layout=us
-# Default Input Method
-DefaultIM=rime
-
-[Groups/0/Items/0]
-# Name
-Name=rime
-# Layout
-Layout=
-
-[GroupOrder]
-0=Other
-
modules/desktop/shell/niri/appearance/layout.nix
@@ -1,13 +1,14 @@
{
- flake.modules.homeManager.niri = _: let
+ flake.modules.homeManager.niri = {config, ...}: let
in {
programs.niri.settings.layout = {
gaps = 10;
focus-ring = {
enable = true;
width = 2;
- active.color = "#8bd5ca"; # Catppuccin Macchiato Teal
+ active.color = config.lib.stylix.colors.base0E;
};
+ border.enable = false;
preset-column-widths = [
{proportion = 1.0 / 3.0;}
{proportion = 1.0 / 2.0;}
modules/desktop/shell/niri/appearance/theme.nix
@@ -1,87 +0,0 @@
-{lib, ...}: {
- flake.modules.homeManager.niri = {
- pkgs,
- config,
- ...
- }: let
- whitesur-icon-theme = pkgs.whitesur-icon-theme.override {
- boldPanelIcons = true;
- alternativeIcons = true;
- };
- in {
- gtk = {
- enable = true;
- gtk2.enable = false;
- theme = {
- package = pkgs.catppuccin-gtk.override {
- variant = config.catppuccin.flavor;
- accents = [config.catppuccin.accent];
- };
- name = "catppuccin-macchiato-${config.catppuccin.accent}-standard";
- };
- iconTheme = lib.mkForce {
- name = "WhiteSur";
- package = whitesur-icon-theme;
- };
- };
-
- catppuccin.kvantum.apply = false;
-
- qt = {
- enable = true;
- platformTheme = {
- name = "qt6ct";
- package = pkgs.kdePackages.qt6ct;
- };
- style = {
- name = "kvantum";
- package = pkgs.kdePackages.qtstyleplugin-kvantum;
- };
- };
-
- home.sessionVariables = {
- XDG_ICON_DIR = "${whitesur-icon-theme}/share/icons/WhiteSur";
- };
-
- programs.noctalia-shell.colors = let
- mocchiato = {
- rosewater = "#f4dbd6";
- flamingo = "#f0c6c6";
- pink = "#f5bde6";
- mauve = "#c6a0f6";
- red = "#ed8796";
- maroon = "#ee99a0";
- peach = "#f5a97f";
- yellow = "#eed49f";
- green = "#a6da95";
- teal = "#8bd5ca";
- sky = "#91d7e3";
- sapphire = "#7dc4e4";
- blue = "#8aadf4";
- lavender = "#b7bdf8";
-
- text = "#cad3f5";
- subtext0 = "#a5adcb";
- overlay0 = "#6e738d";
- surface0 = "#363a4f";
- base = "#24273a";
- crust = "#181926";
- };
- in {
- mPrimary = mocchiato.${config.catppuccin.accent};
- mOnPrimary = mocchiato.crust;
- mSecondary = mocchiato.peach;
- mOnSecondary = mocchiato.crust;
- mTertiary = mocchiato.lavender;
- mOnTertiary = mocchiato.crust;
- mError = mocchiato.red;
- mOnError = mocchiato.crust;
- mSurface = mocchiato.base;
- mOnSurface = mocchiato.text;
- mSurfaceVariant = mocchiato.surface0;
- mOnSurfaceVariant = mocchiato.subtext0;
- mOutline = mocchiato.overlay0;
- mShadow = mocchiato.crust;
- };
- };
-}
modules/desktop/shell/niri/appearance/window-rules.nix
@@ -1,5 +1,5 @@
{lib, ...}: {
- flake.modules.homeManager.niri = _: {
+ flake.modules.homeManager.niri = {config, ...}: {
programs.niri.settings.window-rules = [
# rules for all windows
{
@@ -7,7 +7,7 @@
geometry-corner-radius = lib.genAttrs ["bottom-left" "bottom-right" "top-left" "top-right"] (_: 15.0);
tiled-state = true;
draw-border-with-background = false;
- opacity = 0.95;
+ opacity = config.stylix.opacity.applications;
}
];
};
modules/desktop/shell/niri/greeter.nix
@@ -1,29 +1,8 @@
-{inputs, ...}: {
- flake.modules.nixos.niri = {
- pkgs,
- config,
- ...
- }: {
+{
+ flake.modules.nixos.niri = _: {
programs.regreet = {
enable = true;
- font.size = 22;
- theme = {
- package = pkgs.catppuccin-gtk.override {
- variant = config.catppuccin.flavor;
- accents = [config.catppuccin.accent];
- };
- name = "catppuccin-macchiato-${config.catppuccin.accent}-standard";
- };
- cursorTheme = {
- package = pkgs.bibata-cursors;
- name = "Bibata-Modern-Classic";
- };
- settings = {
- background = {
- path = "${inputs.wallpapers}/Nahida-2.png";
- fit = "Cover";
- };
- };
+ font.size = 24;
};
};
}
modules/desktop/shell/niri/noctalia.nix
@@ -1,7 +1,11 @@
-{inputs, ...}: {
+{
flake.modules.homeManager.niri = {config, ...}: {
programs.noctalia-shell = {
settings = {
+ ui = {
+ fontDefault = config.stylix.fonts.sansSerif.name;
+ fontFixed = config.stylix.fonts.monospace.name;
+ };
general = {
avatarImage = "${config.home.homeDirectory}/.face";
radiusRatio = 0.75;
@@ -9,18 +13,17 @@
};
wallpaper = {
enabled = true;
- directory = inputs.wallpapers;
- defaultWallpaper = "${inputs.wallpapers}/default_wallpaper";
+ defaultWallpaper = config.stylix.image;
};
appLauncher = {
- backgroundOpacity = 0.8;
+ backgroundOpacity = config.stylix.opacity.popups;
enableClipboardHistory = true;
terminalCommand = "ghostty -e";
};
location.name = "重庆, 中国";
screenRecorder.directory = config.xdg.userDirs.videos;
bar = {
- backgroundOpacity = 0.9;
+ backgroundOpacity = config.stylix.opacity.desktop;
density = "comfortable";
floating = true;
marginHorizontal = 0.4;
@@ -74,5 +77,22 @@
};
};
};
+
+ programs.noctalia-shell.colors = {
+ mPrimary = config.lib.stylix.colors.base0E;
+ mOnPrimary = config.lib.stylix.colors.base11;
+ mSecondary = config.lib.stylix.colors.base09;
+ mOnSecondary = config.lib.stylix.colors.base11;
+ mTertiary = config.lib.stylix.colors.base15;
+ mOnTertiary = config.lib.stylix.colors.base11;
+ mError = config.lib.stylix.colors.base08;
+ mOnError = config.lib.stylix.colors.base11;
+ mSurface = config.lib.stylix.colors.base00;
+ mOnSurface = config.lib.stylix.colors.base05;
+ mSurfaceVariant = config.lib.stylix.colors.base02;
+ mOnSurfaceVariant = config.lib.stylix.colors.base04;
+ mOutline = config.lib.stylix.colors.base03;
+ mShadow = config.lib.stylix.colors.base11;
+ };
};
}
modules/desktop/shell/plasma6/options/appearance.nix
@@ -1,28 +1,9 @@
-{inputs, ...}: {
+{
flake.modules.homeManager.plasma6 = {
- pkgs,
- config,
- ...
- }: {
- home.packages = [
- (pkgs.catppuccin-kde.override {
- flavour = [config.catppuccin.flavor];
- accents = [config.catppuccin.accent];
- })
- ];
-
programs.plasma = {
- kscreenlocker.appearance.wallpaper = "${inputs.wallpapers}/default_wallpaper";
-
workspace = {
- wallpaper = "${inputs.wallpapers}/default_wallpaper";
theme = "default";
- colorScheme = "CatppuccinMacchiatoMauve";
- iconTheme = "breeze-dark";
- cursor = {
- size = 24;
- theme = config.home.pointerCursor.name;
- };
+ cursor.size = 24;
};
panels = [
modules/desktop/shell/plasma6/sddm.nix
@@ -10,8 +10,6 @@
in {
environment.systemPackages = [sddm-theme sddm-theme.test];
- catppuccin.sddm.enable = false;
-
services.displayManager.sddm = {
enable = true;
package = lib.mkForce pkgs.kdePackages.sddm; # Use qt6 version of sddm
modules/desktop/catppuccin.nix
@@ -1,23 +0,0 @@
-{inputs, ...}: {
- flake.modules.nixos.desktop = _: {
- imports = [inputs.catppuccin.nixosModules.catppuccin];
-
- catppuccin = {
- enable = true;
- flavor = "macchiato";
- accent = "teal";
- };
-
- catppuccin.tty.enable = false;
- };
-
- flake.modules.homeManager.desktop = _: {
- imports = [inputs.catppuccin.homeModules.catppuccin];
-
- catppuccin = {
- enable = true;
- flavor = "macchiato";
- accent = "teal";
- };
- };
-}
modules/desktop/cursor.nix
@@ -1,10 +1,8 @@
{
- flake.modules.homeManager.desktop = {pkgs, ...}: {
- home.pointerCursor = {
- gtk.enable = true;
- x11.enable = true;
- package = pkgs.bibata-cursors;
+ flake.modules.nixos.desktop = {pkgs, ...}: {
+ stylix.cursor = {
name = "Bibata-Modern-Classic";
+ package = pkgs.bibata-cursors;
size = 24;
};
};
modules/desktop/fonts.nix
@@ -0,0 +1,44 @@
+{
+ flake.modules.nixos.desktop = {pkgs, ...}: {
+ fonts = {
+ enableDefaultPackages = false;
+ fontDir.enable = true;
+ packages = with pkgs; [
+ noto-fonts
+
+ lxgw-wenkai
+ smiley-sans
+
+ nerd-fonts.symbols-only
+ jetbrains-mono
+ fira-code
+
+ nur.repos.rewine.ttf-ms-win10
+ ];
+ };
+
+ stylix.fonts = {
+ sizes = {
+ applications = 13;
+ desktop = 13;
+ terminal = 13;
+ };
+ serif = {
+ name = "Source Han Serif SC";
+ package = pkgs.source-han-serif-simplified-chinese;
+ };
+ sansSerif = {
+ name = "Source Han Sans SC";
+ package = pkgs.source-han-sans-simplified-chinese;
+ };
+ monospace = {
+ name = "Maple Mono CN";
+ package = pkgs.maple-mono.CN;
+ };
+ emoji = {
+ name = "Noto Color Emoji";
+ package = pkgs.noto-fonts-emoji;
+ };
+ };
+ };
+}
modules/desktop/icon-theme.nix
@@ -0,0 +1,15 @@
+{
+ flake.modules.nixos.desktop = {pkgs, ...}: {
+ stylix.icons = let
+ whitesur-icon-theme = pkgs.whitesur-icon-theme.override {
+ boldPanelIcons = true;
+ alternativeIcons = true;
+ };
+ in {
+ enable = true;
+ light = "WhiteSur";
+ dark = "WhiteSur";
+ package = whitesur-icon-theme;
+ };
+ };
+}
modules/dev/vscode/profiles/default.nix
@@ -26,19 +26,15 @@
enableExtensionUpdateCheck = false;
userSettings = {
# --- Editor Settings --- #
- "editor.fontSize" = 16;
- "editor.fontFamily" = "JetBrains Mono, Maple Mono CN, Symbols Nerd Font";
"editor.fontLigatures" = true;
"editor.guides.bracketPairs" = true;
"editor.formatOnSave" = true;
"editor.unicodeHighlight.allowedLocales"."zh-hans" = true;
"editor.lineNumbers" = "relative";
# --- Terminal Settings --- #
- "terminal.integrated.fontFamily" = "JetBrains Mono, Maple Mono CN, Symbols Nerd Font";
- "terminal.integrated.fontSize" = 14;
"terminal.integrated.defaultProfile.linux" = "fish";
# --- Workbench Settings --- #
- "workbench.colorTheme" = "Catppuccin Macchiato";
+ "workbench.colorTheme" = "Stylix"; # Use Stylix theme
"workbench.iconTheme" = "material-icon-theme";
"workbench.startupEditor" = "none";
# --- Extension Settings --- #
@@ -72,6 +68,7 @@
"terminal.integrated.fontFamily"
"terminal.integrated.fontSize"
"terminal.integrated.defaultProfile.linux"
+ "workbench.colorCustomizations" # Keep Stylix's theme
"workbench.colorTheme"
"workbench.iconTheme"
"workbench.startupEditor"
@@ -96,7 +93,6 @@
(_: v: (v // {extensions = v.extensions or [] ++ baseExtensions;}))
(lib.mergeAttrsList profilesList);
in {
- catppuccin.vscode.profiles.default.icons.enable = false;
programs.vscode.profiles = profiles;
};
}
modules/dev/vscode/base-extensions.nix
@@ -12,7 +12,6 @@
# Appearance
pkief.material-icon-theme
- catppuccin.catppuccin-vsc
# Utils
mhutchie.git-graph
modules/hosts/chaser-kevin/boot.nix
@@ -1,7 +1,7 @@
{inputs, ...}: {
flake.modules.nixos."hosts/kevin" = {pkgs, ...}: {
- catppuccin.plymouth.enable = false;
- catppuccin.grub.enable = false;
+ stylix.targets.plymouth.enable = false;
+ stylix.targets.grub.enable = false;
boot.loader = {
grub = rec {
flake.lock
@@ -1,20 +1,70 @@
{
"nodes": {
- "catppuccin": {
+ "base16": {
"inputs": {
- "nixpkgs": "nixpkgs"
+ "fromYaml": "fromYaml"
+ },
+ "locked": {
+ "lastModified": 1755819240,
+ "narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=",
+ "owner": "SenchoPens",
+ "repo": "base16.nix",
+ "rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6",
+ "type": "github"
},
+ "original": {
+ "owner": "SenchoPens",
+ "repo": "base16.nix",
+ "type": "github"
+ }
+ },
+ "base16-fish": {
+ "flake": false,
"locked": {
- "lastModified": 1759572023,
- "narHash": "sha256-2fzYq/m2PXie5WZO5LhyiZrTIUdUFp1SCLZAwvPL5xo=",
- "owner": "catppuccin",
- "repo": "nix",
- "rev": "eeada12912d80d04733383d231a9d66172858718",
+ "lastModified": 1754405784,
+ "narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=",
+ "owner": "tomyun",
+ "repo": "base16-fish",
+ "rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
"type": "github"
},
"original": {
- "owner": "catppuccin",
- "repo": "nix",
+ "owner": "tomyun",
+ "repo": "base16-fish",
+ "rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
+ "type": "github"
+ }
+ },
+ "base16-helix": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1752979451,
+ "narHash": "sha256-0CQM+FkYy0fOO/sMGhOoNL80ftsAzYCg9VhIrodqusM=",
+ "owner": "tinted-theming",
+ "repo": "base16-helix",
+ "rev": "27cf1e66e50abc622fb76a3019012dc07c678fac",
+ "type": "github"
+ },
+ "original": {
+ "owner": "tinted-theming",
+ "repo": "base16-helix",
+ "type": "github"
+ }
+ },
+ "base16-vim": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1732806396,
+ "narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=",
+ "owner": "tinted-theming",
+ "repo": "base16-vim",
+ "rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
+ "type": "github"
+ },
+ "original": {
+ "owner": "tinted-theming",
+ "repo": "base16-vim",
+ "rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
"type": "github"
}
},
@@ -79,7 +129,7 @@
"distro-grub-themes": {
"inputs": {
"flake-utils": "flake-utils",
- "nixpkgs": "nixpkgs_2"
+ "nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1734806114,
@@ -95,6 +145,22 @@
"type": "github"
}
},
+ "firefox-gnome-theme": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1758112371,
+ "narHash": "sha256-lizRM2pj6PHrR25yimjyFn04OS4wcdbc38DCdBVa2rk=",
+ "owner": "rafaelmardojai",
+ "repo": "firefox-gnome-theme",
+ "rev": "0909cfe4a2af8d358ad13b20246a350e14c2473d",
+ "type": "github"
+ },
+ "original": {
+ "owner": "rafaelmardojai",
+ "repo": "firefox-gnome-theme",
+ "type": "github"
+ }
+ },
"flake-compat": {
"flake": false,
"locked": {
@@ -169,6 +235,27 @@
}
},
"flake-parts_3": {
+ "inputs": {
+ "nixpkgs-lib": [
+ "stylix",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1756770412,
+ "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "rev": "4524271976b625a4a605beefd893f270620fd751",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "type": "github"
+ }
+ },
+ "flake-parts_4": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
@@ -204,6 +291,22 @@
"type": "github"
}
},
+ "fromYaml": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1731966426,
+ "narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=",
+ "owner": "SenchoPens",
+ "repo": "fromYaml",
+ "rev": "106af9e2f715e2d828df706c386a685698f3223b",
+ "type": "github"
+ },
+ "original": {
+ "owner": "SenchoPens",
+ "repo": "fromYaml",
+ "type": "github"
+ }
+ },
"gitignore": {
"inputs": {
"nixpkgs": [
@@ -226,6 +329,23 @@
"type": "github"
}
},
+ "gnome-shell": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1748186689,
+ "narHash": "sha256-UaD7Y9f8iuLBMGHXeJlRu6U1Ggw5B9JnkFs3enZlap0=",
+ "owner": "GNOME",
+ "repo": "gnome-shell",
+ "rev": "8c88f917db0f1f0d80fa55206c863d3746fa18d0",
+ "type": "github"
+ },
+ "original": {
+ "owner": "GNOME",
+ "ref": "48.2",
+ "repo": "gnome-shell",
+ "type": "github"
+ }
+ },
"helix-fork": {
"inputs": {
"nixpkgs": [
@@ -376,15 +496,15 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1759381078,
- "narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=",
- "owner": "NixOS",
+ "lastModified": 1731676054,
+ "narHash": "sha256-OZiZ3m8SCMfh3B6bfGC/Bm4x3qc1m2SVEAlkV6iY7Yg=",
+ "owner": "nixos",
"repo": "nixpkgs",
- "rev": "7df7ff7d8e00218376575f0acdcc5d66741351ee",
+ "rev": "5e4fbfb6b3de1aa2872b76d49fafc942626e2add",
"type": "github"
},
"original": {
- "owner": "NixOS",
+ "owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
@@ -454,22 +574,6 @@
}
},
"nixpkgs_2": {
- "locked": {
- "lastModified": 1731676054,
- "narHash": "sha256-OZiZ3m8SCMfh3B6bfGC/Bm4x3qc1m2SVEAlkV6iY7Yg=",
- "owner": "nixos",
- "repo": "nixpkgs",
- "rev": "5e4fbfb6b3de1aa2872b76d49fafc942626e2add",
- "type": "github"
- },
- "original": {
- "owner": "nixos",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_3": {
"locked": {
"lastModified": 1759381078,
"narHash": "sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs=",
@@ -548,6 +652,31 @@
"type": "github"
}
},
+ "nur_2": {
+ "inputs": {
+ "flake-parts": [
+ "stylix",
+ "flake-parts"
+ ],
+ "nixpkgs": [
+ "stylix",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1758998580,
+ "narHash": "sha256-VLx0z396gDCGSiowLMFz5XRO/XuNV+4EnDYjdJhHvUk=",
+ "owner": "nix-community",
+ "repo": "NUR",
+ "rev": "ba8d9c98f5f4630bcb0e815ab456afd90c930728",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "NUR",
+ "type": "github"
+ }
+ },
"plasma-manager": {
"inputs": {
"home-manager": [
@@ -638,7 +767,6 @@
},
"root": {
"inputs": {
- "catppuccin": "catppuccin",
"deploy-rs": "deploy-rs",
"disko": "disko",
"distro-grub-themes": "distro-grub-themes",
@@ -649,7 +777,7 @@
"niri-flake": "niri-flake",
"nixos-hardware": "nixos-hardware",
"nixos-logo": "nixos-logo",
- "nixpkgs": "nixpkgs_3",
+ "nixpkgs": "nixpkgs_2",
"nixpkgs-stable": "nixpkgs-stable_2",
"nixpkgs-unstable": "nixpkgs-unstable",
"noctalia": "noctalia",
@@ -658,6 +786,7 @@
"plasma-manager": "plasma-manager",
"programsdb": "programsdb",
"silentSDDM": "silentSDDM",
+ "stylix": "stylix",
"vaultix": "vaultix",
"wallpapers": "wallpapers"
}
@@ -724,6 +853,40 @@
"type": "github"
}
},
+ "stylix": {
+ "inputs": {
+ "base16": "base16",
+ "base16-fish": "base16-fish",
+ "base16-helix": "base16-helix",
+ "base16-vim": "base16-vim",
+ "firefox-gnome-theme": "firefox-gnome-theme",
+ "flake-parts": "flake-parts_3",
+ "gnome-shell": "gnome-shell",
+ "nixpkgs": [
+ "nixpkgs"
+ ],
+ "nur": "nur_2",
+ "systems": "systems_4",
+ "tinted-foot": "tinted-foot",
+ "tinted-kitty": "tinted-kitty",
+ "tinted-schemes": "tinted-schemes",
+ "tinted-tmux": "tinted-tmux",
+ "tinted-zed": "tinted-zed"
+ },
+ "locked": {
+ "lastModified": 1760350849,
+ "narHash": "sha256-JqcM5Pkm5q1c9D5zpINJsN1yCB4Vq1cL12ZuFyo32T4=",
+ "owner": "nix-community",
+ "repo": "stylix",
+ "rev": "7b4957d716f4fb615bf0e37d3b23c112579b1408",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "stylix",
+ "type": "github"
+ }
+ },
"systems": {
"locked": {
"lastModified": 1681028828,
@@ -769,6 +932,102 @@
"type": "github"
}
},
+ "systems_4": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "tinted-foot": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1726913040,
+ "narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
+ "owner": "tinted-theming",
+ "repo": "tinted-foot",
+ "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
+ "type": "github"
+ },
+ "original": {
+ "owner": "tinted-theming",
+ "repo": "tinted-foot",
+ "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
+ "type": "github"
+ }
+ },
+ "tinted-kitty": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1735730497,
+ "narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
+ "owner": "tinted-theming",
+ "repo": "tinted-kitty",
+ "rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
+ "type": "github"
+ },
+ "original": {
+ "owner": "tinted-theming",
+ "repo": "tinted-kitty",
+ "type": "github"
+ }
+ },
+ "tinted-schemes": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1757716333,
+ "narHash": "sha256-d4km8W7w2zCUEmPAPUoLk1NlYrGODuVa3P7St+UrqkM=",
+ "owner": "tinted-theming",
+ "repo": "schemes",
+ "rev": "317a5e10c35825a6c905d912e480dfe8e71c7559",
+ "type": "github"
+ },
+ "original": {
+ "owner": "tinted-theming",
+ "repo": "schemes",
+ "type": "github"
+ }
+ },
+ "tinted-tmux": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1757811970,
+ "narHash": "sha256-n5ZJgmzGZXOD9pZdAl1OnBu3PIqD+X3vEBUGbTi4JiI=",
+ "owner": "tinted-theming",
+ "repo": "tinted-tmux",
+ "rev": "d217ba31c846006e9e0ae70775b0ee0f00aa6b1e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "tinted-theming",
+ "repo": "tinted-tmux",
+ "type": "github"
+ }
+ },
+ "tinted-zed": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1757811247,
+ "narHash": "sha256-4EFOUyLj85NRL3OacHoLGEo0wjiRJzfsXtR4CZWAn6w=",
+ "owner": "tinted-theming",
+ "repo": "base16-zed",
+ "rev": "824fe0aacf82b3c26690d14e8d2cedd56e18404e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "tinted-theming",
+ "repo": "base16-zed",
+ "type": "github"
+ }
+ },
"utils": {
"inputs": {
"systems": "systems"
@@ -805,7 +1064,7 @@
"vaultix": {
"inputs": {
"crane": "crane",
- "flake-parts": "flake-parts_3",
+ "flake-parts": "flake-parts_4",
"nixpkgs": [
"nixpkgs"
],
flake.nix
@@ -2,8 +2,6 @@
description = "NixOS configuration of HPCesia.";
inputs = {
- catppuccin.url = "github:catppuccin/nix";
-
deploy-rs.url = "github:serokell/deploy-rs";
deploy-rs.inputs.nixpkgs.follows = "nixpkgs";
@@ -48,6 +46,9 @@
silentSDDM.url = "github:uiriansan/SilentSDDM";
silentSDDM.inputs.nixpkgs.follows = "nixpkgs";
+ stylix.url = "github:nix-community/stylix";
+ stylix.inputs.nixpkgs.follows = "nixpkgs";
+
vaultix.url = "github:milieuim/vaultix";
vaultix.inputs.nixpkgs.follows = "nixpkgs";