Compare commits

...

10 Commits

40 changed files with 564 additions and 1325 deletions

6
flake.lock generated
View File

@ -769,11 +769,11 @@
]
},
"locked": {
"lastModified": 1718243258,
"narHash": "sha256-abBpj2VU8p6qlRzTU8o22q68MmOaZ4v8zZ4UlYl5YRU=",
"lastModified": 1718788307,
"narHash": "sha256-SqiOz0sljM0GjyQEVinPXQxaGcbOXw5OgpCWGPgh/vo=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "8d5e27b4807d25308dfe369d5a923d87e7dbfda3",
"rev": "d7830d05421d0ced83a0f007900898bdcaf2a2ca",
"type": "github"
},
"original": {

View File

@ -31,8 +31,7 @@ in {
enableCryptodisk = true;
useOSProber = false;
zfsSupport = true;
gfxmodeEfi = "2560x1440";
# efiInstallAsRemovable = true;
gfxmodeEfi = "2560x1440"; # efiInstallAsRemovable = true;
# theme = pkgs.;
};
systemd-boot.enable = lib.mkForce false;

View File

@ -80,10 +80,5 @@
];
users.users.root.openssh.authorizedKeys.keys = config.users.users.nixos.openssh.authorizedKeys.keys;
# isoImage.contents = [{
# source = ../..;
# target = "/home/nixos/nixos-config";
# }];
};
}

View File

@ -3,9 +3,6 @@ let
zfs_arc_max = toString (3 * 1024 * 1024 * 1024);
in {
boot = {
# extraModprobeConfig = ''
# options zfs metaslab_lba_weighting_enabled=0
# '';
zfs.forceImportAll = lib.mkForce false;
loader.efi.canTouchEfiVariables = false;
loader.efi.efiSysMountPoint = "/efi";
@ -18,8 +15,6 @@ in {
zfsSupport = true;
efiInstallAsRemovable = true;
copyKernels = true;
# # extraPrepareConfig = ''
# # '';
};
initrd = {
luks.devices = {
@ -45,7 +40,6 @@ in {
kernelPackages = pkgs.linuxPackages_hardened;
kernelModules = [ "tcp_bbr" "veth" ];
kernelParams = [
# "zfs.metaslab_lba_weighting_enabled=0"
"zfs.zfs_arc_max=${zfs_arc_max}"
"zswap.enabled=0"
"quiet"

View File

@ -45,7 +45,6 @@ in {
})
(import customProfiles.headscale {
inherit config lib inputs;
inherit (import ./dns-mapping.nix) headscale-list;
})
];

View File

@ -89,7 +89,6 @@
"net.ipv4.tcp_congestion_control" = "bbr";
"net.ipv4.tcp_slow_start_after_idle" = 0;
"net.core.default_qdisc" = "cake";
# "net.core.default_qdisc" = "fq";
"net.core.rmem_max" = 67108864;
"net.core.wmem_max" = 67108864;
"net.core.netdev_max_backlog" = 10000;
@ -142,27 +141,28 @@
];
# Locale
i18n.defaultLocale = "en_US.UTF-8";
i18n.defaultLocale = "en_IE.UTF-8";
i18n.extraLocaleSettings = {
LANGUAGE = "en_US.UTF-8";
LC_ALL = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
LANGUAGE = "en_IE:en:C:ru_RU";
LC_TIME = "en_DK.UTF-8";
LC_ADDRESS = "ru_RU.UTF-8";
LC_MONETARY = "ru_RU.UTF-8";
LC_NUMERIC = "ru_RU.UTF-8";
LC_PAPER = "ru_RU.UTF-8";
LC_TELEPHONE = "ru_RU.UTF-8";
};
i18n.supportedLocales = [
"C.UTF-8/UTF-8"
"en_DK.UTF-8/UTF-8"
"en_GB.UTF-8/UTF-8"
"en_IE.UTF-8/UTF-8"
"en_US.UTF-8/UTF-8"
"ru_RU.UTF-8/UTF-8"
"en_GB.UTF-8/UTF-8"
];
time.timeZone = "Europe/Helsinki";
time.timeZone = "Europe/Vienna";
environment.sessionVariables = {
XKB_DEFAULT_LAYOUT = "us,ru";
XKB_DEFAULT_OPTIONS = "grp:win_space_toggle";
LANGUAGE = "en_US.UTF-8";
LC_ALL = "en_US.UTF-8";
};
# Hardened
@ -249,7 +249,7 @@
};
programs.virt-manager.enable = true;
networking.firewall.trustedInterfaces = [ "podman*" "vnet*" "virbr*" ];
networking.firewall.interfaces."podman+".allowedUDPPorts = [ 53 ];
networking.firewall.interfaces."podman+".allowedUDPPorts = [ 53 5353 ];
security.unprivilegedUsernsClone = true;
system.stateVersion = "23.11";

View File

@ -5,7 +5,7 @@ let
cfg = config.autoinstall;
autoinstallOptions = { name, ... }: {
options = rec {
options = {
autoReboot = mkOption {
type = types.bool;
default = false;
@ -37,11 +37,6 @@ let
default = true;
description = "";
};
# partitions = mkOption {
# type = types.nullOr attrsOf partitionsAttrs;
# default = null;
# description = "If not wipe entire disk";
# };
};
debug = mkOption {
type = types.bool;
@ -166,8 +161,6 @@ let
mkService = name: opt: {
description = "Autoinstall NixOS on ${name}";
# wantedBy = [ "multi-user.target" ];
# after = [ "network.target" "polkit.service" ];
path = with pkgs; [
"/run/current-system/sw/"
"/usr/bin/"
@ -183,14 +176,6 @@ let
};
serviceConfig = { Type = "oneshot"; };
};
# asserts = opt: [{
# assertion = opt.flakesPath != "";
# message = "flakesPath can't be empty";
# } {
# assertion = !(opt.encryption.enable && opt.encryption.passwordFile == "");
# message = "If you use encryption, you need to set path to password file";
# }];
in {
options.autoinstall = mkOption {
default = {};

View File

@ -4,7 +4,7 @@ let
takeAll = what: concatMap (x: x.${what});
persists = with cfg; [ state derivative cache ];
persists = with cfg; [ state cache ];
absoluteHomePath = map (x: "${cfg.homeDir}/${x}");
@ -64,9 +64,6 @@ in {
# backup = {...};
} // common;
# Stuff that can be computed from declarative+state, but is never invalidated (so shouldn't be cleaned up)
derivative = common;
# Stuff that's just there to speed up the system
# It's cleaned up regularly, to solve the cache invalidation problem once and for all
cache = {
@ -110,15 +107,5 @@ in {
'';
startAt = cfg.cache.clean.dates;
};
# system.activationScripts = {
# homedir.text = builtins.concatStringsSep "\n" (map (dir: ''
# mkdir -p ${cfg.persistRoot}${dir}
# chown ${config.mainuser}:users ${cfg.persistRoot}${dir}
# '') (
# (builtins.filter (lib.hasPrefix cfg.homeDir) allDirectories)
# ++ absoluteHomePath allHomeDirectories
# ));
# };
};
}

View File

@ -1,79 +0,0 @@
{ config, pkgs, ... }: {
defaultApplications = {
fm = {
cmd = "${pkgs.pcmanfm}/bin/pcmanfm";
desktop = "pcmanfm";
};
monitor = {
cmd = "${pkgs.gnome.gnome-system-monitor}/bin/gnome-system-monitor";
desktop = "gnome-system-monitor";
};
torrent = {
cmd = "${pkgs.qbittorrent}/bin/qbittorrent";
desktop = "qbittorrent";
};
archive = {
cmd = "${pkgs.xarchiver}/bin/xarchiver";
desktop = "xarchiver";
};
messenger = {
cmd = "${pkgs.tdesktop}/bin/telegram-desktop";
desktop = "telegram-desktop";
};
# text_processor = {
# cmd = "${pkgs.libreoffice}/bin/libreoffice";
# desktop = "libreoffice";
# };
# spreadsheet = {
# cmd = "${pkgs.gnumeric}/bin/gnumeric";
# desktop = "gnumeric";
# };
};
startupApplications = with config.defaultApplications; [
messenger.cmd
];
environment.sessionVariables = {
EDITOR = config.defaultApplications.editor.cmd;
VISUAL = config.defaultApplications.editor.cmd;
};
home-manager.users.${config.mainuser} = {
home.activation."mimeapps-remove" = {
before = [ "checkLinkTargets" ];
after = [ ];
data = "rm -f /home/${config.mainuser}/.config/mimeapps.list";
};
xdg.mimeApps = {
enable = true;
defaultApplications =
with config.defaultApplications;
builtins.mapAttrs (_name: value:
if value ? desktop then [ "${value.desktop}.desktop" ] else value) {
"text/html" = browser;
"inode/directory" = fm;
"image/*" = { desktop = "org.gnome.eog"; };
"application/x-bittorrent" = torrent;
"application/zip" = archive;
"application/rar" = archive;
"application/7z" = archive;
"application/*tar" = archive;
"x-scheme-handler/http" = browser;
"x-scheme-handler/https" = browser;
"x-scheme-handler/about" = browser;
# "x-scheme-handler/mailto" = mail;
"application/pdf" = pdf;
# "application/vnd.openxmlformats-officedocument.wordprocessingml.document" =
# text_processor;
# "application/msword" = text_processor;
# "application/vnd.oasis.opendocument.text" = text_processor;
# "text/csv" = spreadsheet;
# "application/vnd.oasis.opendocument.spreadsheet" = spreadsheet;
"text/plain" = editor;
"x-scheme-handler/element" = matrix;
};
};
};
}

View File

@ -1,13 +1,10 @@
{ config, ... }:
let
homeDir = config.home-manager.users.${config.mainuser}.home.homeDirectory;
in {
{ config, ... }: {
# TODO: enable websocket (--rpc-certificate)
home-manager.users.${config.mainuser} = {
home-manager.users.${config.mainuser} = { config, ...}: {
programs.aria2 = {
enable = true;
settings = {
dir = "${homeDir}/Downloads/aria2";
dir = "${config.home.homeDirectory}/Downloads/aria2";
listen-port = "6881-6999";
# rpc-listen-port = 6800;
};

View File

@ -0,0 +1,189 @@
{ config, pkgs, ... }: {
home-manager.users.${config.mainuser} = {
home.activation."mimeapps-remove" = {
before = [ "checkLinkTargets" ];
after = [ ];
data = "rm -f /home/${config.mainuser}/.config/mimeapps.list";
};
xdg.mimeApps = {
enable = true;
associations.added = with config.defaultApplications;
builtins.mapAttrs (_name: value:
if value ? desktop then [ "${value.desktop}.desktop" ] else value) {
"application/pdf" = pdf;
"application/x-extension-htm" = browser;
"application/x-extension-html" = browser;
"application/x-extension-shtml" = browser;
"application/x-extension-xht" = browser;
"application/x-extension-xhtml" = browser;
"application/xhtml+xml" = browser;
"text/html" = browser;
"x-scheme-handler/chrome" = browser;
"x-scheme-handler/ftp" = browser;
"x-scheme-handler/http" = browser;
"x-scheme-handler/https" = browser;
};
defaultApplications =
with config.defaultApplications;
builtins.mapAttrs (_name: value:
if value ? desktop then [ "${value.desktop}.desktop" ] else value) {
# application
"application/*tar" = archive;
"application/7z" = archive;
"application/eps" = pdf;
"application/msword" = office;
"application/ogg" = media-player;
"application/pdf" = pdf;
"application/postscript" = pdf;
"application/rar" = archive;
"application/sdp" = media-player;
"application/smil" = media-player;
"application/streamingmedia" = media-player;
"application/vnd.oasis.opendocument.presentation" = office;
"application/vnd.oasis.opendocument.spreadsheet" = office;
"application/vnd.oasis.opendocument.text" = office;
"application/vnd.openxmlformats-officedocument.wordprocessingml.document" = office;
"application/vnd.rar" = archive;
"application/vnd.rn-realmedia-vbr" = media-player;
"application/vnd.rn-realmedia" = media-player;
"application/x-bittorrent" = torrent;
"application/x-eps" = pdf;
"application/x-extension-htm" = browser;
"application/x-extension-html" = browser;
"application/x-extension-shtml" = browser;
"application/x-extension-xht" = browser;
"application/x-extension-xhtml" = browser;
"application/x-flash-video" = media-player;
"application/x-ogg" = media-player;
"application/x-shellscript" = editor;
"application/x-smil" = media-player;
"application/x-streamingmedia" = media-player;
"application/xhtml+xml" = browser;
"application/zip" = archive;
# "application/rss+xml" = editor;
# "application/x-calendar" = "google-calendar-import.desktop";
# "application/x-java-archive" = "java.desktop";
# audio
"audio/aac" = media-player;
"audio/ac3" = media-player;
"audio/AMR" = media-player;
"audio/flac" = media-player;
"audio/m4a" = media-player;
"audio/mp1" = media-player;
"audio/mp2" = media-player;
"audio/mp3" = media-player;
"audio/mp4" = media-player;
"audio/mpeg" = media-player;
"audio/mpegurl" = media-player;
"audio/mpg" = media-player;
"audio/ogg" = media-player;
"audio/rn-mpeg" = media-player;
"audio/scpls" = media-player;
"audio/vnd.rn-realaudio" = media-player;
"audio/wav" = media-player;
"audio/x-aac" = media-player;
"audio/x-ape" = media-player;
"audio/x-flac" = media-player;
"audio/x-m4a" = media-player;
"audio/x-mp1" = media-player;
"audio/x-mp2" = media-player;
"audio/x-mp3" = media-player;
"audio/x-mpeg" = media-player;
"audio/x-mpegurl" = media-player;
"audio/x-mpg" = media-player;
"audio/x-ms-wma" = media-player;
"audio/x-pls" = media-player;
"audio/x-pn-realaudio" = media-player;
"audio/x-pn-windows-pcm" = media-player;
"audio/x-realaudio" = media-player;
"audio/x-scpls" = media-player;
"audio/x-shorten" = media-player;
"audio/x-tta" = media-player;
"audio/x-vorbis+ogg" = media-player;
"audio/x-wav" = media-player;
"audio/x-wavpack" = media-player;
# image
"image/bmp" = image;
"image/eps" = pdf;
"image/gif" = image;
"image/jpeg" = image;
"image/jpg" = image;
"image/pjpeg" = image;
"image/png" = image;
"image/tiff" = image;
"image/vnd.djvu" = pdf;
"image/webp" = image;
"image/x-bmp" = image;
"image/x-canon-cr2" = image;
# "image/x-dcraw" = "nufraw.desktop";
"image/x-eps" = pdf;
"image/x-pcx" = image;
"image/x-png" = image;
"image/x-portable-anymap" = image;
"image/x-portable-bitmap" = image;
"image/x-portable-graymap" = image;
"image/x-portable-pixmap" = image;
"image/x-tga" = image;
"image/x-xbitmap" = image;
# text
# "text/calendar" = "google-calendar-import.desktop";
"text/csv" = editor;
"text/html" = browser;
"text/plain" = editor;
"text/rhtml" = editor;
"text/x-java" = editor;
"text/x-markdown" = editor;
"text/x-python" = editor;
"text/x-readme" = editor;
"text/x-tex" = editor;
# video
"video/AV1" = media-player;
"video/H264" = media-player;
"video/H265" = media-player;
"video/matroska" = media-player;
"video/mp2t" = media-player;
"video/mp4" = media-player;
"video/MPV" = media-player;
"video/mpeg" = media-player;
"video/msvideo" = media-player;
"video/ogg" = media-player;
"video/quicktime" = media-player;
"video/vnd.rn-realvideo" = media-player;
"video/webm" = media-player;
"video/VP8" = media-player;
"video/VP9" = media-player;
"video/x-avi" = media-player;
"video/x-fli" = media-player;
"video/x-flv" = media-player;
"video/x-matroska" = media-player;
"video/x-mpeg" = media-player;
"video/x-mpeg2" = media-player;
"video/x-ms-afs" = media-player;
"video/x-ms-asf" = media-player;
"video/x-ms-wmv" = media-player;
"video/x-ms-wmx" = media-player;
"video/x-ms-wvxvideo" = media-player;
"video/x-msvideo" = media-player;
"video/x-ogm+ogg" = media-player;
"video/x-theora" = media-player;
# x-scheme-handler
"x-scheme-handler/about" = browser;
"x-scheme-handler/chrome" = browser;
"x-scheme-handler/element" = matrix;
"x-scheme-handler/ftp" = browser;
"x-scheme-handler/http" = browser;
"x-scheme-handler/https" = browser;
# "x-scheme-handler/ics" = "google-calendar-import.desktop";
"x-scheme-handler/magnet" = torrent;
"x-scheme-handler/mailto" = mail;
"x-scheme-handler/spotify" = spotify;
"x-scheme-handler/terminal" = term;
# other
"inode/directory" = fm;
"inode/mount-point" = fm;
"inode/x-empty" = editor;
};
};
};
}

View File

@ -1,4 +1,4 @@
{ config, ... }:
{ config, pkgs, ... }:
{
home-manager.users.${config.mainuser} = {
programs.mpv = {
@ -23,6 +23,11 @@
'';
};
defaultApplications.media-player = {
cmd = "${pkgs.mpv}/bin/mpv";
desktop = "mpv";
};
persist.state.homeDirectories = [
".config/mpv"
];

View File

@ -5,7 +5,6 @@ with config.deviceSpecific; {
home-manager.users.${config.mainuser} = {
home.packages = with pkgs; [
# --- cli ---
# bat
comma
curl
curlie
@ -32,12 +31,10 @@ with config.deviceSpecific; {
usbutils
zip
# --- tui ---
# bottom
# micro
ncdu
procs
# --- gui ---
feh
pcmanfm
qimgv
xarchiver
zathura
@ -51,7 +48,6 @@ with config.deviceSpecific; {
# ---- gui ----
bitwarden
jellyfin-mpv-shim
# libreoffice
obs-studio
obs-studio-plugins.obs-vkcapture
obsidian
@ -59,7 +55,6 @@ with config.deviceSpecific; {
pinta
qbittorrent
sonixd
tdesktop
tidal-dl
tor-browser-bundle-bin
ungoogled-chromium
@ -92,7 +87,6 @@ with config.deviceSpecific; {
".config/Sonixd"
".config/WebCord"
".config/xarchiver"
".local/share/TelegramDesktop"
".local/share/tor-browser"
".android"
".anydesk"
@ -104,4 +98,31 @@ with config.deviceSpecific; {
".config/.tidal-dl.json"
".config/.tidal-dl.token.json"
];
defaultApplications = {
fm = {
cmd = "${pkgs.pcmanfm}/bin/pcmanfm";
desktop = "pcmanfm";
};
monitor = {
cmd = "${pkgs.gnome.gnome-system-monitor}/bin/gnome-system-monitor";
desktop = "gnome-system-monitor";
};
torrent = {
cmd = "${pkgs.qbittorrent}/bin/qbittorrent";
desktop = "qbittorrent";
};
archive = {
cmd = "${pkgs.xarchiver}/bin/xarchiver";
desktop = "xarchiver";
};
office = {
cmd = "${pkgs.onlyoffice-bin_latest}/bin/onlyoffice-desktopeditors";
desktop = "onlyoffice-desktopeditors";
};
image = {
cmd = "${pkgs.qimgv}/bin/qimgv";
desktop = "qimgv";
};
};
}

View File

@ -3,6 +3,11 @@
spotifywm
];
defaultApplications.spotify = {
cmd = "${pkgs.spotify}/bin/spotify";
desktop = "spotify";
};
startupApplications = [
"${pkgs.spotifywm}/bin/spotify"
];

View File

@ -0,0 +1,20 @@
{ config, pkgs, ... }: {
home-manager.users.${config.mainuser} = {
home.packages = with pkgs; [
tdesktop
];
};
defaultApplications.messenger = {
cmd = "${pkgs.tdesktop}/bin/telegram-desktop";
desktop = "telegram-desktop";
};
startupApplications = with config.defaultApplications; [
messenger.cmd
];
persist.state.homeDirectories = [
".local/share/TelegramDesktop"
];
}

View File

@ -16,6 +16,11 @@ let
continue-ver = lib.getVersion ext-vscode.continue.continue;
in
{
environment.sessionVariables = {
EDITOR = config.defaultApplications.editor.cmd;
VISUAL = config.defaultApplications.editor.cmd;
};
defaultApplications.editor = {
cmd = "${EDITOR}";
desktop = "code-wayland";
@ -32,27 +37,26 @@ in
enableExtensionUpdateCheck = false;
enableUpdateCheck = false;
extensions = [
# (pkgs.callPackage ./theme.nix { mainuser = config.mainuser; } config.lib.base16.theme)
ext-vscode.aaron-bond.better-comments
ext-vscode.alefragnani.bookmarks
ext-vscode.alefragnani.project-manager
ext-vscode.alexisvt.flutter-snippets
# ext-vscode.alefragnani.bookmarks
# ext-vscode.alefragnani.project-manager
# ext-vscode.alexisvt.flutter-snippets
ext-vscode.christian-kohler.path-intellisense
ext-vscode.codezombiech.gitignore
ext-vscode.continue.continue
ext-vscode.dart-code.dart-code
ext-vscode.dart-code.flutter
# ext-vscode.dlasagno.wal-theme
# ext-vscode.dart-code.dart-code
# ext-vscode.dart-code.flutter
ext-vscode.eamodio.gitlens
ext-vscode.enkia.tokyo-night
ext-vscode.felixangelov.bloc
# ext-vscode.felixangelov.bloc
ext-vscode.github.vscode-github-actions
ext-vscode.github.vscode-pull-request-github
ext-vscode.gruntfuggly.todo-tree
ext-vscode.irongeek.vscode-env
ext-vscode.jebbs.plantuml
ext-vscode.jnoortheen.nix-ide
ext-vscode.lucax88x.codeacejumper
ext-vscode.marcelovelasquez.flutter-tree
# ext-vscode.lucax88x.codeacejumper
# ext-vscode.marcelovelasquez.flutter-tree
ext-vscode.mhutchie.git-graph
ext-vscode.mkhl.direnv
ext-vscode.ms-azuretools.vscode-docker
@ -64,18 +68,15 @@ in
ext-vscode.pkief.material-icon-theme
ext-vscode.streetsidesoftware.code-spell-checker
ext-vscode.streetsidesoftware.code-spell-checker-russian
ext-vscode.usernamehw.errorlens
ext-vscode.ultram4rine.vscode-choosealicense
ext-vscode.usernamehw.errorlens
ext-vscode.yzhang.markdown-all-in-one
# Rust
ext-vscode.gruntfuggly.todo-tree
ext-vscode.jscearcy.rust-doc-viewer
ext-vscode.polypus74.trusty-rusty-snippets
ext-nixpkgs.rust-lang.rust-analyzer
ext-vscode.serayuzgur.crates
ext-vscode.tamasfe.even-better-toml
ext-vscode.usernamehw.errorlens
ext-vscode.vadimcn.vscode-lldb
# Golang
ext-vscode.golang.go
@ -148,11 +149,8 @@ in
"terminal.integrated.profiles.linux".zsh.path = "/run/current-system/sw/bin/zsh";
"todo-tree.regex.regex" = "(//|#|<!--|;|/\\*|^|^[ \\t]*(-|\\d+.))\\s*($TAGS)|todo!";
"update.mode" = "none";
# Temp fix crash on startup
# See https://github.com/microsoft/vscode/issues/184124
"window.menuBarVisibility" = "toggle";
"window.titleBarStyle" = "custom";
###
"workbench.colorTheme" = "Tokyo Night";
"workbench.iconTheme" = "material-icon-theme";
"[dart]" = {

View File

@ -1,939 +0,0 @@
{ mainuser, linkFarm }:
{ base00-hex, base01-hex, base02-hex, base03-hex, base04-hex, base05-hex, base06-hex, base07-hex, base08-hex, base09-hex
, base0A-hex, base0B-hex, base0C-hex, base0D-hex, base0E-hex, base0F-hex, ... }:
let
theme = {
"theme/generated.json" = __toJSON {
"$schema" = "vscode://schemas/color-theme";
colors = {
"activityBar.activeBackground" = "#${base00-hex}";
"activityBar.background" = "#${base00-hex}";
"activityBar.dropBackground" = "#${base07-hex}";
"activityBar.foreground" = "#${base05-hex}";
"activityBar.inactiveForeground" = "#${base03-hex}";
"activityBarBadge.background" = "#${base0D-hex}";
"activityBarBadge.foreground" = "#${base07-hex}";
"badge.background" = "#${base00-hex}";
"badge.foreground" = "#${base05-hex}";
"breadcrumb.activeSelectionForeground" = "#${base07-hex}";
"breadcrumb.background" = "#${base00-hex}";
"breadcrumb.focusForeground" = "#${base06-hex}";
"breadcrumb.foreground" = "#${base05-hex}";
"breadcrumbPicker.background" = "#${base00-hex}";
"button.background" = "#${base00-hex}";
"button.foreground" = "#${base07-hex}";
"button.hoverBackground" = "#${base04-hex}";
"button.secondaryBackground" = "#${base0E-hex}";
"button.secondaryForeground" = "#${base07-hex}";
"button.secondaryHoverBackground" = "#${base04-hex}";
"charts.blue" = "#${base0D-hex}";
"charts.foreground" = "#${base05-hex}";
"charts.green" = "#${base0B-hex}";
"charts.lines" = "#${base05-hex}";
"charts.orange" = "#${base09-hex}";
"charts.purple" = "#${base0E-hex}";
"charts.red" = "#${base08-hex}";
"charts.yellow" = "#${base0A-hex}";
"checkbox.background" = "#${base01-hex}";
"checkbox.foreground" = "#${base05-hex}";
"debugConsole.errorForeground" = "#${base08-hex}";
"debugConsole.infoForeground" = "#${base05-hex}";
"debugConsole.sourceForeground" = "#${base05-hex}";
"debugConsole.warningForeground" = "#${base0A-hex}";
"debugConsoleInputIcon.foreground" = "#${base05-hex}";
"debugExceptionWidget.background" = "#${base00-hex}";
"debugIcon.breakpointCurrentStackframeForeground" = "#${base0A-hex}";
"debugIcon.breakpointDisabledForeground" = "#${base04-hex}";
"debugIcon.breakpointForeground" = "#${base08-hex}";
"debugIcon.breakpointStackframeForeground" = "#${base0F-hex}";
"debugIcon.breakpointUnverifiedForeground" = "#${base02-hex}";
"debugIcon.continueForeground" = "#${base0B-hex}";
"debugIcon.disconnectForeground" = "#${base08-hex}";
"debugIcon.pauseForeground" = "#${base0D-hex}";
"debugIcon.restartForeground" = "#${base0B-hex}";
"debugIcon.startForeground" = "#${base0B-hex}";
"debugIcon.stepBackForeground" = "#${base0F-hex}";
"debugIcon.stepIntoForeground" = "#${base0C-hex}";
"debugIcon.stepOutForeground" = "#${base0E-hex}";
"debugIcon.stepOverForeground" = "#${base0D-hex}";
"debugIcon.stopForeground" = "#${base08-hex}";
"debugTokenExpression.boolean" = "#${base09-hex}";
"debugTokenExpression.error" = "#${base08-hex}";
"debugTokenExpression.name" = "#${base0E-hex}";
"debugTokenExpression.number" = "#${base09-hex}";
"debugTokenExpression.string" = "#${base0B-hex}";
"debugTokenExpression.value" = "#${base05-hex}";
"debugToolBar.background" = "#${base00-hex}";
"debugView.stateLabelBackground" = "#${base0D-hex}";
"debugView.stateLabelForeground" = "#${base07-hex}";
"debugView.valueChangedHighlight" = "#${base0D-hex}";
descriptionForeground = "#${base03-hex}";
"diffEditor.diagonalFill" = "#${base02-hex}";
"diffEditor.insertedTextBackground" = "#${base0B-hex}20";
"diffEditor.removedTextBackground" = "#${base08-hex}20";
"dropdown.background" = "#${base00-hex}";
"dropdown.foreground" = "#${base05-hex}";
"dropdown.listBackground" = "#${base00-hex}";
"editor.background" = "#${base00-hex}";
"editor.findMatchBackground" = "#${base0A-hex}6f";
"editor.findMatchHighlightBackground" = "#${base09-hex}6f";
"editor.findRangeHighlightBackground" = "#${base00-hex}6f";
"editor.foreground" = "#${base05-hex}";
"editor.hoverHighlightBackground" = "#${base02-hex}6f";
"editor.inactiveSelectionBackground" = "#${base02-hex}";
"editor.lineHighlightBackground" = "#${base00-hex}";
"editor.rangeHighlightBackground" = "#${base00-hex}6f";
"editor.selectionBackground" = "#${base01-hex}";
"editor.selectionHighlightBackground" = "#${base00-hex}";
"editor.snippetFinalTabstopHighlightBackground" = "#${base03-hex}";
"editor.snippetTabstopHighlightBackground" = "#${base02-hex}";
"editor.wordHighlightBackground" = "#${base02-hex}6f";
"editor.wordHighlightStrongBackground" = "#${base03-hex}6f";
"editorBracketMatch.background" = "#${base02-hex}";
"editorCodeLens.foreground" = "#${base02-hex}";
"editorCursor.foreground" = "#${base05-hex}";
"editorError.foreground" = "#${base08-hex}";
"editorGroup.background" = "#${base00-hex}";
"editorGroup.dropBackground" = "#${base02-hex}6f";
"editorGroup.emptyBackground" = "#${base00-hex}";
"editorGroupHeader.noTabsBackground" = "#${base00-hex}";
"editorGroupHeader.tabsBackground" = "#${base00-hex}";
"editorGutter.addedBackground" = "#${base0B-hex}";
"editorGutter.background" = "#${base00-hex}";
"editorGutter.commentRangeForeground" = "#${base04-hex}";
"editorGutter.deletedBackground" = "#${base08-hex}";
"editorGutter.foldingControlForeground" = "#${base05-hex}";
"editorGutter.modifiedBackground" = "#${base0E-hex}";
"editorHint.foreground" = "#${base0D-hex}";
"editorHoverWidget.background" = "#${base00-hex}";
"editorHoverWidget.foreground" = "#${base05-hex}";
"editorIndentGuide.activeBackground" = "#${base04-hex}";
"editorIndentGuide.background" = "#${base03-hex}";
"editorInfo.foreground" = "#${base0C-hex}";
"editorLightBulb.foreground" = "#${base0A-hex}";
"editorLightBulbAutoFix.foreground" = "#${base0D-hex}";
"editorLineNumber.activeForeground" = "#${base04-hex}";
"editorLineNumber.foreground" = "#${base03-hex}";
"editorLink.activeForeground" = "#${base0D-hex}";
"editorMarkerNavigation.background" = "#${base00-hex}";
"editorMarkerNavigationError.background" = "#${base08-hex}";
"editorMarkerNavigationInfo.background" = "#${base0D-hex}";
"editorMarkerNavigationWarning.background" = "#${base0A-hex}";
"editorOverviewRuler.addedForeground" = "#${base0B-hex}";
"editorOverviewRuler.bracketMatchForeground" = "#${base06-hex}";
"editorOverviewRuler.commonContentForeground" = "#${base0F-hex}";
"editorOverviewRuler.currentContentForeground" = "#${base0D-hex}";
"editorOverviewRuler.deletedForeground" = "#${base08-hex}";
"editorOverviewRuler.errorForeground" = "#${base08-hex}";
"editorOverviewRuler.findMatchForeground" = "#${base0A-hex}6f";
"editorOverviewRuler.incomingContentForeground" = "#${base0B-hex}";
"editorOverviewRuler.infoForeground" = "#${base0C-hex}";
"editorOverviewRuler.modifiedForeground" = "#${base0E-hex}";
"editorOverviewRuler.rangeHighlightForeground" = "#${base03-hex}6f";
"editorOverviewRuler.selectionHighlightForeground" = "#${base02-hex}6f";
"editorOverviewRuler.warningForeground" = "#${base0A-hex}";
"editorOverviewRuler.wordHighlightForeground" = "#${base07-hex}6f";
"editorOverviewRuler.wordHighlightStrongForeground" = "#${base0D-hex}6f";
"editorPane.background" = "#${base00-hex}";
"editorRuler.foreground" = "#${base03-hex}";
"editorSuggestWidget.background" = "#${base00-hex}";
"editorSuggestWidget.foreground" = "#${base05-hex}";
"editorSuggestWidget.highlightForeground" = "#${base0D-hex}";
"editorSuggestWidget.selectedBackground" = "#${base02-hex}";
"editorWarning.foreground" = "#${base0A-hex}";
"editorWhitespace.foreground" = "#${base03-hex}";
"editorWidget.background" = "#${base00-hex}";
"editorWidget.foreground" = "#${base05-hex}";
errorForeground = "#${base08-hex}";
"extensionBadge.remoteBackground" = "#${base09-hex}";
"extensionBadge.remoteForeground" = "#${base07-hex}";
"extensionButton.prominentBackground" = "#${base0B-hex}";
"extensionButton.prominentForeground" = "#${base07-hex}";
"extensionButton.prominentHoverBackground" = "#${base02-hex}";
foreground = "#${base05-hex}";
"gitDecoration.addedResourceForeground" = "#${base0B-hex}";
"gitDecoration.conflictingResourceForeground" = "#${base09-hex}";
"gitDecoration.deletedResourceForeground" = "#${base08-hex}";
"gitDecoration.ignoredResourceForeground" = "#${base03-hex}";
"gitDecoration.modifiedResourceForeground" = "#${base0A-hex}";
"gitDecoration.stageDeletedResourceForeground" = "#${base0C-hex}";
"gitDecoration.stageModifiedResourceForeground" = "#${base0C-hex}";
"gitDecoration.submoduleResourceForeground" = "#${base0F-hex}";
"gitDecoration.untrackedResourceForeground" = "#${base0E-hex}";
"icon.foreground" = "#${base04-hex}";
"input.background" = "#${base00-hex}";
"input.foreground" = "#${base05-hex}";
"input.placeholderForeground" = "#${base03-hex}";
"inputOption.activeBackground" = "#${base02-hex}";
"inputOption.activeBorder" = "#${base09-hex}";
"inputOption.activeForeground" = "#${base05-hex}";
"inputValidation.errorBackground" = "#${base08-hex}";
"inputValidation.errorBorder" = "#${base08-hex}";
"inputValidation.errorForeground" = "#${base05-hex}";
"inputValidation.infoBackground" = "#${base0D-hex}";
"inputValidation.infoBorder" = "#${base0D-hex}";
"inputValidation.infoForeground" = "#${base05-hex}";
"inputValidation.warningBackground" = "#${base0A-hex}";
"inputValidation.warningBorder" = "#${base0A-hex}";
"inputValidation.warningForeground" = "#${base05-hex}";
"list.activeSelectionBackground" = "#${base01-hex}";
"list.activeSelectionForeground" = "#${base05-hex}";
"list.dropBackground" = "#${base07-hex}";
"list.errorForeground" = "#${base08-hex}";
"list.filterMatchBackground" = "#${base02-hex}";
"list.focusBackground" = "#${base02-hex}";
"list.focusForeground" = "#${base05-hex}";
"list.highlightForeground" = "#${base07-hex}";
"list.hoverBackground" = "#${base03-hex}";
"list.hoverForeground" = "#${base05-hex}";
"list.inactiveFocusBackground" = "#${base02-hex}";
"list.inactiveSelectionBackground" = "#${base02-hex}";
"list.inactiveSelectionForeground" = "#${base05-hex}";
"list.invalidItemForeground" = "#${base08-hex}";
"list.warningForeground" = "#${base0A-hex}";
"listFilterWidget.background" = "#${base00-hex}";
"listFilterWidget.noMatchesOutline" = "#${base08-hex}";
"menu.background" = "#${base00-hex}";
"menu.foreground" = "#${base05-hex}";
"menu.selectionBackground" = "#${base02-hex}";
"menu.selectionForeground" = "#${base05-hex}";
"menu.separatorBackground" = "#${base07-hex}";
"menubar.selectionBackground" = "#${base00-hex}";
"menubar.selectionForeground" = "#${base05-hex}";
"merge.currentContentBackground" = "#${base0D-hex}40";
"merge.currentHeaderBackground" = "#${base0D-hex}40";
"merge.incomingContentBackground" = "#${base0B-hex}60";
"merge.incomingHeaderBackground" = "#${base0B-hex}60";
"minimap.background" = "#${base00-hex}";
"minimap.errorHighlight" = "#${base08-hex}";
"minimap.findMatchHighlight" = "#${base0A-hex}6f";
"minimap.selectionHighlight" = "#${base02-hex}6f";
"minimap.warningHighlight" = "#${base0A-hex}";
"minimapGutter.addedBackground" = "#${base0B-hex}";
"minimapGutter.deletedBackground" = "#${base08-hex}";
"minimapGutter.modifiedBackground" = "#${base0E-hex}";
"notebook.rowHoverBackground" = "#${base00-hex}";
"notification.background" = "#${base02-hex}";
"notification.buttonBackground" = "#${base0D-hex}";
"notification.buttonForeground" = "#${base07-hex}";
"notification.buttonHoverBackground" = "#${base02-hex}";
"notification.errorBackground" = "#${base08-hex}";
"notification.errorForeground" = "#${base07-hex}";
"notification.foreground" = "#${base05-hex}";
"notification.infoBackground" = "#${base0C-hex}";
"notification.infoForeground" = "#${base07-hex}";
"notification.warningBackground" = "#${base0A-hex}";
"notification.warningForeground" = "#${base07-hex}";
"notificationCenterHeader.background" = "#${base00-hex}";
"notificationCenterHeader.foreground" = "#${base05-hex}";
"notificationLink.foreground" = "#${base0D-hex}";
"notifications.background" = "#${base02-hex}";
"notifications.foreground" = "#${base05-hex}";
"notificationsErrorIcon.foreground" = "#${base08-hex}";
"notificationsInfoIcon.foreground" = "#${base0D-hex}";
"notificationsWarningIcon.foreground" = "#${base0A-hex}";
"panel.background" = "#${base00-hex}";
"panel.dropBackground" = "#${base00-hex}6f";
"panelTitle.activeForeground" = "#${base05-hex}";
"panelTitle.inactiveForeground" = "#${base03-hex}";
"peekViewEditor.background" = "#${base00-hex}";
"peekViewEditor.matchHighlightBackground" = "#${base09-hex}6f";
"peekViewEditorGutter.background" = "#${base00-hex}";
"peekViewResult.background" = "#${base00-hex}";
"peekViewResult.fileForeground" = "#${base05-hex}";
"peekViewResult.lineForeground" = "#${base03-hex}";
"peekViewResult.matchHighlightBackground" = "#${base09-hex}6f";
"peekViewResult.selectionBackground" = "#${base02-hex}";
"peekViewResult.selectionForeground" = "#${base05-hex}";
"peekViewTitle.background" = "#${base02-hex}";
"peekViewTitleDescription.foreground" = "#${base03-hex}";
"peekViewTitleLabel.foreground" = "#${base05-hex}";
"pickerGroup.foreground" = "#${base03-hex}";
"problemsErrorIcon.foreground" = "#${base08-hex}";
"problemsInfoIcon.foreground" = "#${base0C-hex}";
"problemsWarningIcon.foreground" = "#${base0A-hex}";
"progressBar.background" = "#${base03-hex}";
"quickInput.background" = "#${base00-hex}";
"quickInput.foreground" = "#${base05-hex}";
"scrollbar.shadow" = "#${base00-hex}";
"scrollbarSlider.activeBackground" = "#${base04-hex}6f";
"scrollbarSlider.background" = "#${base02-hex}6f";
"scrollbarSlider.hoverBackground" = "#${base03-hex}6f";
"selection.background" = "#${base01-hex}";
"settings.checkboxBackground" = "#${base01-hex}";
"settings.checkboxForeground" = "#${base05-hex}";
"settings.dropdownBackground" = "#${base01-hex}";
"settings.dropdownForeground" = "#${base05-hex}";
"settings.focusedRowBackground" = "#${base02-hex}";
"settings.headerForeground" = "#${base05-hex}";
"settings.modifiedItemForeground" = "#${base0D-hex}";
"settings.modifiedItemIndicator" = "#${base0D-hex}";
"settings.numberInputBackground" = "#${base00-hex}";
"settings.numberInputForeground" = "#${base05-hex}";
"settings.textInputBackground" = "#${base01-hex}";
"settings.textInputForeground" = "#${base05-hex}";
"sideBar.background" = "#${base00-hex}";
"sideBar.dropBackground" = "#${base01-hex}6f";
"sideBar.foreground" = "#${base05-hex}";
"sideBarSectionHeader.background" = "#${base00-hex}";
"sideBarSectionHeader.foreground" = "#${base05-hex}";
"sideBarTitle.foreground" = "#${base05-hex}";
"statusBar.background" = "#${base0D-hex}";
"statusBar.debuggingBackground" = "#${base09-hex}";
"statusBar.debuggingForeground" = "#${base07-hex}";
"statusBar.foreground" = "#${base07-hex}";
"statusBar.noFolderBackground" = "#${base0E-hex}";
"statusBar.noFolderForeground" = "#${base07-hex}";
"statusBarItem.activeBackground" = "#${base03-hex}";
"statusBarItem.errorBackground" = "#${base08-hex}";
"statusBarItem.errorForeground" = "#${base07-hex}";
"statusBarItem.hoverBackground" = "#${base02-hex}";
"statusBarItem.prominentBackground" = "#${base0E-hex}";
"statusBarItem.prominentForeground" = "#${base07-hex}";
"statusBarItem.prominentHoverBackground" = "#${base08-hex}";
"statusBarItem.remoteBackground" = "#${base0B-hex}";
"statusBarItem.remoteForeground" = "#${base07-hex}";
"symbolIcon.arrayForeground" = "#${base05-hex}";
"symbolIcon.booleanForeground" = "#${base09-hex}";
"symbolIcon.classForeground" = "#${base0A-hex}";
"symbolIcon.colorForeground" = "#f0f";
"symbolIcon.constantForeground" = "#${base09-hex}";
"symbolIcon.constructorForeground" = "#${base0D-hex}";
"symbolIcon.enumeratorForeground" = "#${base09-hex}";
"symbolIcon.enumeratorMemberForeground" = "#${base0D-hex}";
"symbolIcon.eventForeground" = "#${base0A-hex}";
"symbolIcon.fieldForeground" = "#${base08-hex}";
"symbolIcon.fileForeground" = "#${base05-hex}";
"symbolIcon.folderForeground" = "#${base05-hex}";
"symbolIcon.functionForeground" = "#${base0D-hex}";
"symbolIcon.interfaceForeground" = "#${base0D-hex}";
"symbolIcon.keyForeground" = "#f0f";
"symbolIcon.keywordForeground" = "#${base0E-hex}";
"symbolIcon.methodForeground" = "#${base0D-hex}";
"symbolIcon.moduleForeground" = "#${base05-hex}";
"symbolIcon.namespaceForeground" = "#${base05-hex}";
"symbolIcon.nullForeground" = "#${base0F-hex}";
"symbolIcon.numberForeground" = "#${base09-hex}";
"symbolIcon.objectForeground" = "#f0f";
"symbolIcon.operatorForeground" = "#f0f";
"symbolIcon.packageForeground" = "#f0f";
"symbolIcon.propertyForeground" = "#${base05-hex}";
"symbolIcon.referenceForeground" = "#f0f";
"symbolIcon.snippetForeground" = "#${base05-hex}";
"symbolIcon.stringForeground" = "#${base0B-hex}";
"symbolIcon.structForeground" = "#${base0A-hex}";
"symbolIcon.textForeground" = "#${base05-hex}";
"symbolIcon.typeParameterForeground" = "#f0f";
"symbolIcon.unitForeground" = "#f0f";
"symbolIcon.variableForeground" = "#${base08-hex}";
"tab.activeBackground" = "#${base01-hex}";
"tab.activeForeground" = "#${base05-hex}";
"tab.activeModifiedBorder" = "#${base0D-hex}";
"tab.hoverBackground" = "#${base02-hex}";
"tab.inactiveBackground" = "#${base00-hex}";
"tab.inactiveForeground" = "#${base03-hex}";
"tab.inactiveModifiedBorder" = "#${base0D-hex}";
"tab.unfocusedActiveBackground" = "#${base00-hex}";
"tab.unfocusedActiveForeground" = "#${base04-hex}";
"tab.unfocusedActiveModifiedBorder" = "#${base0D-hex}";
"tab.unfocusedHoverBackground" = "#${base02-hex}";
"tab.unfocusedInactiveForeground" = "#${base03-hex}";
"tab.unfocusedInactiveModifiedBorder" = "#${base0D-hex}";
"terminal.ansiBlack" = "#${base00-hex}";
"terminal.ansiBlue" = "#${base0D-hex}";
"terminal.ansiBrightBlack" = "#${base03-hex}";
"terminal.ansiBrightBlue" = "#${base0D-hex}";
"terminal.ansiBrightCyan" = "#${base0C-hex}";
"terminal.ansiBrightGreen" = "#${base0B-hex}";
"terminal.ansiBrightMagenta" = "#${base0E-hex}";
"terminal.ansiBrightRed" = "#${base08-hex}";
"terminal.ansiBrightWhite" = "#${base07-hex}";
"terminal.ansiBrightYellow" = "#${base0A-hex}";
"terminal.ansiCyan" = "#${base0C-hex}";
"terminal.ansiGreen" = "#${base0B-hex}";
"terminal.ansiMagenta" = "#${base0E-hex}";
"terminal.ansiRed" = "#${base08-hex}";
"terminal.ansiWhite" = "#${base05-hex}";
"terminal.ansiYellow" = "#${base0A-hex}";
"terminal.background" = "#${base00-hex}";
"terminal.foreground" = "#${base05-hex}";
"terminalCursor.foreground" = "#${base05-hex}";
"textBlockQuote.background" = "#${base00-hex}";
"textBlockQuote.border" = "#${base0D-hex}";
"textCodeBlock.background" = "#${base00-hex}";
"textLink.activeForeground" = "#${base0C-hex}";
"textLink.foreground" = "#${base0D-hex}";
"textPreformat.foreground" = "#${base0D-hex}";
"textSeparator.foreground" = "#f0f";
"titleBar.activeBackground" = "#${base01-hex}";
"titleBar.activeForeground" = "#${base05-hex}";
"titleBar.inactiveBackground" = "#${base00-hex}";
"titleBar.inactiveForeground" = "#${base03-hex}";
"tree.indentGuidesStroke" = "#${base05-hex}";
"walkThrough.embeddedEditorBackground" = "#${base00-hex}";
"welcomePage.background" = "#${base00-hex}";
"welcomePage.buttonBackground" = "#${base00-hex}";
"welcomePage.buttonHoverBackground" = "#${base02-hex}";
"widget.shadow" = "#${base00-hex}";
};
name = "Generated theme";
tokenColors = [
{
name = "Comment";
scope = [ "comment" "punctuation.definition.comment" ];
settings = {
fontStyle = "italic";
foreground = "#${base03-hex}";
};
}
{
name = "Variables, Parameters";
scope = [
"variable"
"string constant.other.placeholder"
"entity.name.variable.parameter"
"entity.name.variable.local"
"variable.parameter"
];
settings = { foreground = "#${base05-hex}"; };
}
{
name = "Properties";
scope = [ "variable.other.object.property" ];
settings = { foreground = "#${base0D-hex}"; };
}
{
name = "Colors";
scope = [ "constant.other.color" ];
settings = { foreground = "#${base0B-hex}"; };
}
{
name = "Invalid";
scope = [ "invalid" "invalid.illegal" ];
settings = { foreground = "#${base08-hex}"; };
}
{
name = "Invalid - Deprecated";
scope = [ "invalid.deprecated" ];
settings = { foreground = "#${base0F-hex}"; };
}
{
name = "Keyword, Storage";
scope = [ "keyword" "storage.modifier" ];
settings = { foreground = "#${base0E-hex}"; };
}
{
name = "Keyword Control";
scope = [
"keyword.control"
"keyword.control.flow"
"keyword.control.from"
"keyword.control.import"
"keyword.control.as"
];
settings = { foreground = "#${base0E-hex}"; };
}
{
name = "Keyword";
scope = [
"keyword.other.using"
"keyword.other.namespace"
"keyword.other.class"
"keyword.other.new"
"keyword.other.event"
"keyword.other.this"
"keyword.other.await"
"keyword.other.var"
"keyword.other.package"
"keyword.other.import"
"variable.language.this"
"storage.type.ts"
];
settings = { foreground = "#${base0E-hex}"; };
}
{
name = "Types, Primitives";
scope = [ "keyword.type" "storage.type.primitive" ];
settings = { foreground = "#${base0C-hex}"; };
}
{
name = "Function";
scope = [ "storage.type.function" ];
settings = { foreground = "#${base0D-hex}"; };
}
{
name = "Operator, Misc";
scope = [
"constant.other.color"
"punctuation"
"punctuation.section.class.end"
"meta.tag"
"punctuation.definition.tag"
"punctuation.separator.inheritance.php"
"punctuation.definition.tag.html"
"punctuation.definition.tag.begin.html"
"punctuation.definition.tag.end.html"
"keyword.other.template"
"keyword.other.substitution"
];
settings = { foreground = "#${base04-hex}"; };
}
{
name = "Embedded";
scope = [ "punctuation.section.embedded" "variable.interpolation" ];
settings = { foreground = "#${base0C-hex}"; };
}
{
name = "Tag";
scope =
[ "entity.name.tag" "meta.tag.sgml" "markup.deleted.git_gutter" ];
settings = { foreground = "#${base08-hex}"; };
}
{
name = "Function, Special Method";
scope = [
"entity.name.function"
"meta.function-call"
"variable.function"
"support.function"
"keyword.other.special-method"
];
settings = { foreground = "#${base0D-hex}"; };
}
{
name = "Block Level Variables";
scope = [ "meta.block variable.other" ];
settings = { foreground = "#${base08-hex}"; };
}
{
name = "Other Variable, String Link";
scope = [ "support.other.variable" "string.other.link" ];
settings = { foreground = "#${base08-hex}"; };
}
{
name = "Number, Constant, Function Argument, Tag Attribute, Embedded";
scope = [
"constant.numeric"
"constant.language"
"support.constant"
"constant.character"
"constant.escape"
"keyword.other.unit"
"keyword.other"
];
settings = { foreground = "#${base09-hex}"; };
}
{
name = "String, Symbols, Inherited Class, Markup Heading";
scope = [
"string"
"constant.other.symbol"
"constant.other.key"
"entity.other.inherited-class"
"markup.heading"
"markup.inserted.git_gutter"
"meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js"
];
settings = {
fontStyle = "";
foreground = "#${base0B-hex}";
};
}
{
name = "Class, Support";
scope = [
"entity.name"
"support.type"
"support.class"
"support.other.namespace.use.php"
"meta.use.php"
"support.other.namespace.php"
"markup.changed.git_gutter"
"support.type.sys-types"
];
settings = { foreground = "#${base0A-hex}"; };
}
{
name = "Storage Type, Import Class";
scope = [
"storage.type"
"storage.modifier.package"
"storage.modifier.import"
];
settings = { foreground = "#${base0A-hex}"; };
}
{
name = "Fields";
scope = [ "entity.name.variable.field" ];
settings = { foreground = "#${base0D-hex}"; };
}
{
name = "Entity Types";
scope = [ "support.type" ];
settings = { foreground = "#${base0C-hex}"; };
}
{
name = "CSS Class and Support";
scope = [
"source.css support.type.property-name"
"source.sass support.type.property-name"
"source.scss support.type.property-name"
"source.less support.type.property-name"
"source.stylus support.type.property-name"
"source.postcss support.type.property-name"
];
settings = { foreground = "#${base0C-hex}"; };
}
{
name = "Sub-methods";
scope = [
"entity.name.module.js"
"variable.import.parameter.js"
"variable.other.class.js"
];
settings = { foreground = "#${base08-hex}"; };
}
{
name = "Language methods";
scope = [ "variable.language" ];
settings = {
fontStyle = "italic";
foreground = "#${base08-hex}";
};
}
{
name = "entity.name.method.js";
scope = [ "entity.name.method.js" ];
settings = {
fontStyle = "italic";
foreground = "#${base0D-hex}";
};
}
{
name = "meta.method.js";
scope = [
"meta.class-method.js entity.name.function.js"
"variable.function.constructor"
];
settings = { foreground = "#${base0D-hex}"; };
}
{
name = "Attributes";
scope = [ "entity.other.attribute-name" ];
settings = { foreground = "#${base0D-hex}"; };
}
{
name = "HTML Attributes";
scope = [
"text.html.basic entity.other.attribute-name.html"
"text.html.basic entity.other.attribute-name"
];
settings = {
fontStyle = "italic";
foreground = "#${base0A-hex}";
};
}
{
name = "CSS Classes";
scope = [ "entity.other.attribute-name.class" ];
settings = { foreground = "#${base0A-hex}"; };
}
{
name = "CSS ID's";
scope = [ "source.sass keyword.control" ];
settings = { foreground = "#${base0D-hex}"; };
}
{
name = "Inserted";
scope = [ "markup.inserted" ];
settings = { foreground = "#${base0B-hex}"; };
}
{
name = "Deleted";
scope = [ "markup.deleted" ];
settings = { foreground = "#${base08-hex}"; };
}
{
name = "Changed";
scope = [ "markup.changed" ];
settings = { foreground = "#${base0E-hex}"; };
}
{
name = "Regular Expressions";
scope = [ "string.regexp" ];
settings = { foreground = "#${base0C-hex}"; };
}
{
name = "Escape Characters";
scope = [ "constant.character.escape" ];
settings = { foreground = "#${base0C-hex}"; };
}
{
name = "URL";
scope = [ "*url*" "*link*" "*uri*" ];
settings = { fontStyle = "underline"; };
}
{
name = "Decorators";
scope = [
"tag.decorator.js entity.name.tag.js"
"tag.decorator.js punctuation.definition.tag.js"
];
settings = {
fontStyle = "italic";
foreground = "#${base0D-hex}";
};
}
{
name = "ES7 Bind Operator";
scope = [
"source.js constant.other.object.key.js string.unquoted.label.js"
];
settings = {
fontStyle = "italic";
foreground = "#${base0E-hex}";
};
}
{
name = "JSON Key - Level 0";
scope = [
"source.json meta.structure.dictionary.json support.type.property-name.json"
];
settings = { foreground = "#${base0D-hex}"; };
}
{
name = "JSON Key - Level 1";
scope = [
"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"
];
settings = { foreground = "#${base0D-hex}"; };
}
{
name = "JSON Key - Level 2";
scope = [
"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"
];
settings = { foreground = "#${base0D-hex}"; };
}
{
name = "JSON Key - Level 3";
scope = [
"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"
];
settings = { foreground = "#${base0D-hex}"; };
}
{
name = "JSON Key - Level 4";
scope = [
"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"
];
settings = { foreground = "#${base0D-hex}"; };
}
{
name = "JSON Key - Level 5";
scope = [
"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"
];
settings = { foreground = "#${base0D-hex}"; };
}
{
name = "JSON Key - Level 6";
scope = [
"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"
];
settings = { foreground = "#${base0D-hex}"; };
}
{
name = "JSON Key - Level 7";
scope = [
"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"
];
settings = { foreground = "#${base0D-hex}"; };
}
{
name = "JSON Key - Level 8";
scope = [
"source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"
];
settings = { foreground = "#${base0D-hex}"; };
}
{
name = "Markdown - Plain";
scope = [
"text.html.markdown"
"punctuation.definition.list_item.markdown"
];
settings = { foreground = "#${base05-hex}"; };
}
{
name = "Markdown - Markup Raw Inline";
scope = [ "text.html.markdown markup.inline.raw.markdown" ];
settings = { foreground = "#${base0E-hex}"; };
}
{
name = "Markdown - Markup Raw Inline Punctuation";
scope = [
"text.html.markdown markup.inline.raw.markdown punctuation.definition.raw.markdown"
];
settings = { foreground = "#${base0C-hex}"; };
}
{
name = "Markdown - Line Break";
scope = [ "text.html.markdown meta.dummy.line-break" ];
settings = { foreground = "#${base03-hex}"; };
}
{
name = "Markdown - Heading";
scope = [
"markdown.heading"
"markup.heading | markup.heading entity.name"
"markup.heading.markdown punctuation.definition.heading.markdown"
];
settings = { foreground = "#${base0D-hex}"; };
}
{
name = "Markup - Italic";
scope = [ "markup.italic" ];
settings = {
fontStyle = "italic";
foreground = "#${base08-hex}";
};
}
{
name = "Markup - Bold";
scope = [ "markup.bold" "markup.bold string" ];
settings = {
fontStyle = "bold";
foreground = "#${base08-hex}";
};
}
{
name = "Markup - Bold-Italic";
scope = [
"markup.bold markup.italic"
"markup.italic markup.bold"
"markup.quote markup.bold"
"markup.bold markup.italic string"
"markup.italic markup.bold string"
"markup.quote markup.bold string"
];
settings = {
fontStyle = "bold";
foreground = "#${base08-hex}";
};
}
{
name = "Markup - Underline";
scope = [ "markup.underline" ];
settings = {
fontStyle = "underline";
foreground = "#${base09-hex}";
};
}
{
name = "Markdown - Blockquote";
scope = [ "markup.quote punctuation.definition.blockquote.markdown" ];
settings = { foreground = "#${base0C-hex}"; };
}
{
name = "Markup - Quote";
scope = [ "markup.quote" ];
settings = { fontStyle = "italic"; };
}
{
name = "Markdown - Link";
scope = [ "string.other.link.title.markdown" ];
settings = { foreground = "#${base0D-hex}"; };
}
{
name = "Markdown - Link Description";
scope = [ "string.other.link.description.title.markdown" ];
settings = { foreground = "#${base0E-hex}"; };
}
{
name = "Markdown - Link Anchor";
scope = [ "constant.other.reference.link.markdown" ];
settings = { foreground = "#${base0A-hex}"; };
}
{
name = "Markup - Raw Block";
scope = [ "markup.raw.block" ];
settings = { foreground = "#${base0E-hex}"; };
}
{
name = "Markdown - Raw Block Fenced";
scope = [ "markup.raw.block.fenced.markdown" ];
settings = { foreground = "#00000050"; };
}
{
name = "Markdown - Fenced Bode Block";
scope = [ "punctuation.definition.fenced.markdown" ];
settings = { foreground = "#00000050"; };
}
{
name = "Markdown - Fenced Code Block Variable";
scope = [
"markup.raw.block.fenced.markdown"
"variable.language.fenced.markdown"
];
settings = { foreground = "#${base0E-hex}"; };
}
{
name = "Markdown - Fenced Language";
scope = [ "variable.language.fenced.markdown" ];
settings = { foreground = "#${base08-hex}"; };
}
{
name = "Markdown - Separator";
scope = [ "meta.separator" ];
settings = {
fontStyle = "bold";
foreground = "#${base0C-hex}";
};
}
{
name = "Markup - Table";
scope = [ "markup.table" ];
settings = { foreground = "#${base0E-hex}"; };
}
{
scope = "token.info-token";
settings = { foreground = "#${base0D-hex}"; };
}
{
scope = "token.warn-token";
settings = { foreground = "#${base0A-hex}"; };
}
{
scope = "token.error-token";
settings = { foreground = "#${base08-hex}"; };
}
{
scope = "token.debug-token";
settings = { foreground = "#${base0E-hex}"; };
}
];
type = "dark";
};
"package.json" = __toJSON {
name = "theme";
displayName = "Generated theme";
version = "0.0.0";
publisher = mainuser;
engines.vscode = "^1.22.0";
contributes.themes = [{
label = "Generated theme";
uiTheme = "vs-dark";
path = "./theme/generated.json";
}];
capabilities = {
untrustedWorkspaces.supported = true;
virtualWorkspaces = true;
};
};
};
in with builtins;
linkFarm "${mainuser}.theme" (attrValues (mapAttrs (name: value: {
name = "share/vscode/extensions/${mainuser}.theme/${name}";
path = toFile (baseNameOf name) value;
}) theme))

View File

@ -9,11 +9,6 @@ let
config = config.nixpkgs.config;
localSystem = { inherit system; };
};
# nur = import inputs.nur {
# nurpkgs = import inputs.nixpkgs {
# system = "x86_64-linux";
# };
# };
in
with lib; {
nixpkgs.overlays = [
@ -72,33 +67,6 @@ with lib; {
yandex-taxi-py = prev.writers.writePython3 "yandex-taxi.py" {
libraries = with prev.python3Packages; [ requests ];
} ./packages/yandex-taxi-py.nix;
spotify-spotx = let
spotx = with prev; stdenv.mkDerivation {
pname = "spotx-bash";
version = "unstable-2023-12-15";
src = fetchFromGitHub {
owner = "SpotX-Official";
repo = "SpotX-Bash";
rev = "a0823cb2f7495f9eaf0c94194abe6d2f0ff1b58c";
hash = "sha256-qgG5m4ajlbq0G6D1Fx2x+yqxcz+OGN1zsfVDO2/koG4=";
};
dontBuild = true;
nativeBuildInputs = [ makeBinaryWrapper ];
installPhase = ''
install -Dm 755 spotx.sh $out/bin/spotx
sed -i 's/sxbLive=.\+/sxbLive=$buildVer/' $out/bin/spotx
patchShebangs $out/bin/spotx
wrapProgram $out/bin/spotx --prefix PATH : ${lib.makeBinPath [ perl unzip zip util-linux ]}
'';
};
in prev.spotify.overrideAttrs (_oa: {
postInstall = ''
${spotx}/bin/spotx -h -P "$out/share/spotify"
rm -f "$out/share/spotify/Apps/xpui.bak" "$out/share/spotify/spotify.bak"
'';
});
spotifywm = prev.spotifywm.override { spotify = final.spotify-spotx; };
}
)
];

View File

@ -9,5 +9,5 @@
sshKey = config.sops.secrets.git-ssh-key.path;
};
persist.derivative.homeDirectories = [ ".local/share/password-store" ];
persist.state.homeDirectories = [ ".local/share/password-store" ];
}

View File

@ -1,4 +1,4 @@
{ dnsmasq-list ? [], ... }:
{ dnsmasq-list ? [] }: { ... }:
let
nodeAddress = "192.168.0.5";
upstream-dns = "100.64.0.1";

View File

@ -100,9 +100,6 @@ in {
session = {
COOKIE_SECURE = true;
};
ui = {
DEFAULT_THEME = "arc-green";
};
webhook = {
ALLOWED_HOST_LIST = "loopback, private, ataraxiadev.com, *.ataraxiadev.com";
};

View File

@ -1,4 +1,4 @@
{ config, lib, inputs, headscale-list ? {}, ... }:
{ headscale-list ? {} }: { config, lib, inputs, ... }:
let
domain = "wg.ataraxiadev.com";
in {

View File

@ -16,7 +16,6 @@ in {
"${nas-path}/configs/lidarr/custom-services.d:/custom-services.d"
"${nas-path}/configs/lidarr/custom-cont-init.d:/custom-cont-init.d"
"${nas-path}:/data"
# "${extended-config}:/config/extended.conf:ro"
];
};
}

View File

@ -12,7 +12,6 @@ in {
TZ = "Europe/Moscow";
};
extraOptions = [ "--pod=media-stack" ];
# ports = [ "127.0.0.1:8082:8080/tcp" ];
volumes = [
"${nas-path}/configs/qbittorrent:/config"
"${nas-path}:/data"

View File

@ -40,14 +40,28 @@ in
jvmInitialAllocation = "6144m";
jvmPackage = jre17;
serverConfig = defaults // {
server-port = 25567;
rcon-port = 25568;
server-port = 25585;
rcon-port = 25586;
motd = "StaTech";
max-world-size = 50000;
level-seed = "-4411466874705470064";
};
};
all-of-create = {
enable = false;
inherit rsyncSSHKeys jvmOpts;
jvmMaxAllocation = "4096m";
jvmInitialAllocation = "4096m";
jvmPackage = jre21;
serverConfig = defaults // {
server-port = 25575;
rcon-port = 25576;
motd = "All of Create";
max-world-size = 50000;
level-seed = "-6893059259197159072";
};
};
create = {
enable = true;
inherit rsyncSSHKeys jvmOpts;
jvmMaxAllocation = "4096m";
@ -56,9 +70,9 @@ in
serverConfig = defaults // {
server-port = 25565;
rcon-port = 25566;
motd = "All of Create";
motd = "AtaraxiaSjel's Create";
max-world-size = 50000;
level-seed = "-6893059259197159072";
# level-seed = "-6893059259197159072";
};
};
};

View File

@ -34,7 +34,6 @@ let
"/outpost.goauthentik.io" = {
extraConfig = ''
proxy_pass http://127.0.0.1:9000/outpost.goauthentik.io;
# proxy_pass https://auth.ataraxiadev.com/outpost.goauthentik.io;
proxy_set_header Host $host;
proxy_set_header X-Original-URL $scheme://$http_host$request_uri;
add_header Set-Cookie $auth_cookie;

View File

@ -104,8 +104,6 @@
};
};
# persist.state.directories = [ "/var/lib/ocis" ];
systemd.services.ocis-server.after =
lib.mkIf config.services.authentik.enable [
"authentik-server.service"

View File

@ -9,26 +9,22 @@
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# Change this:
wireplumber.configPackages = [
(pkgs.writeTextDir "share/wireplumber/bluetooth.lua.d/51-bluez-config.lua" ''
bluez_monitor.properties = {
["bluez5.enable-sbc-xq"] = true,
["bluez5.enable-msbc"] = true,
["bluez5.enable-hw-volume"] = true,
["bluez5.headset-roles"] = "[ hsp_hs hsp_ag hfp_hf hfp_ag ]"
}
'')
];
# To this, once https://github.com/NixOS/nixpkgs/pull/292115 is merged
# wireplumber.extraLuaConfig.bluetooth."51-bluez-config" = ''
# bluez_monitor.properties = {
# ["bluez5.enable-sbc-xq"] = true,
# ["bluez5.enable-msbc"] = true,
# ["bluez5.enable-hw-volume"] = true,
# ["bluez5.headset-roles"] = "[ hsp_hs hsp_ag hfp_hf hfp_ag ]"
# }
# '';
wireplumber.enable = true;
wireplumber.extraConfig = {
"monitor.bluez.properties" = {
"bluez5.enable-sbc-xq" = true;
"bluez5.enable-msbc" = true;
"bluez5.enable-hw-volume" = true;
"bluez5.roles" = [ "hsp_hs" "hsp_ag" "hfp_hf" "hfp_ag" ];
};
};
extraConfig.client = {
"10-no-resample" = {
"stream.properties" = {
"resample.disable" = true;
};
};
};
};
home-manager.users.${config.mainuser} = {

View File

@ -1,131 +0,0 @@
{ config, pkgs, lib, inputs, ... }:
let
thm = config.lib.base16.theme;
# this capitalizes the first letter in a string.
mkUpper =
str:
(lib.toUpper (builtins.substring 0 1 str)) +
(builtins.substring 1 (builtins.stringLength str) str);
accent = "mauve";
# accent = "lavender";
flavor = "mocha";
size = "standard"; # "standard" "compact"
tweaks = [ "normal" ]; # "black" "rimless" "normal"
flavorUpper = mkUpper flavor;
accentUpper = mkUpper accent;
sizeUpper = mkUpper size;
gtkTheme = if flavor == "latte" then "Light" else "Dark";
in
{
imports = [ inputs.catppuccin.nixosModules.catppuccin ];
catppuccin.accent = accent;
catppuccin.flavor = flavor;
boot.loader.grub.catppuccin.enable = true;
console.catppuccin.enable = true;
home-manager.users.${config.mainuser} = rec {
imports = [ inputs.catppuccin.homeManagerModules.catppuccin ];
catppuccin.accent = accent;
catppuccin.flavor = flavor;
qt.style.catppuccin.enable = true;
qt.style.catppuccin.apply = true;
services.mako.catppuccin.enable = true;
programs = {
bat.catppuccin.enable = true;
bottom.catppuccin.enable = true;
fzf.catppuccin.enable = true;
gitui.catppuccin.enable = true;
glamour.catppuccin.enable = true;
kitty.catppuccin.enable = true;
micro.catppuccin.enable = true;
mpv.catppuccin.enable = true;
rofi.catppuccin.enable = true;
zathura.catppuccin.enable = true;
zsh.syntaxHighlighting.enable = true;
zsh.syntaxHighlighting.catppuccin.enable = true;
waybar.catppuccin.enable = true;
waybar.catppuccin.mode = "createLink";
vscode = {
extensions = let
ext-vscode = inputs.nix-vscode-marketplace.extensions.${pkgs.system}.vscode-marketplace;
in [
ext-vscode.alexdauenhauer.catppuccin-noctis
ext-vscode.catppuccin.catppuccin-vsc-icons
(inputs.catppuccin-vsc.packages.${pkgs.system}.catppuccin-vsc.override {
accent = accent;
boldKeywords = false;
italicComments = false;
italicKeywords = false;
extraBordersEnabled = false;
workbenchMode = "flat";
bracketMode = "dimmed";
colorOverrides = {
mocha = {
base = "#1c1c2d";
mantle = "#191925";
crust = "#151511";
};
};
customUIColors = {
"statusBar.foreground" = "accent";
};
})
];
userSettings = {
"editor.semanticHighlighting.enabled" = lib.mkForce true;
"terminal.integrated.minimumContrastRatio" = lib.mkForce 1;
"window.titleBarStyle" = lib.mkForce "custom";
"workbench.colorTheme" = lib.mkForce "Catppuccin ${flavorUpper}";
"workbench.iconTheme" = lib.mkForce "catppuccin-${flavor}";
};
};
};
wayland.windowManager.hyprland.extraConfig = ''
exec=hyprctl setcursor catppuccin-${flavor}-${accent}-cursors ${toString thm.cursorSize}
'';
# GTK
gtk = {
enable = true;
theme = {
name = "Catppuccin-${flavorUpper}-${sizeUpper}-${accentUpper}-${gtkTheme}";
package = pkgs.catppuccin-gtk.override {
inherit tweaks;
accents = [ accent ];
variant = flavor;
};
};
cursorTheme = {
name = "catppuccin-${flavor}-${accent}-cursors";
package = pkgs.catppuccin-cursors.${flavor + accentUpper};
};
iconTheme = {
name = "Papirus-${gtkTheme}";
package = pkgs.catppuccin-papirus-folders.override { inherit accent flavor; };
};
font = {
name = "${thm.fonts.main.family}";
size = thm.fontSizes.normal.int;
};
gtk3.extraConfig = {
gtk-application-prefer-dark-theme = 1;
};
gtk4.extraConfig = {
gtk-application-prefer-dark-theme = 1;
};
};
home.sessionVariables.GTK_THEME = gtk.theme.name;
};
themes.base16.extraParams = {
iconTheme = lib.mkForce "Papirus-${gtkTheme}";
iconPackage = lib.mkForce (pkgs.catppuccin-papirus-folders.override { inherit accent flavor; });
cursorPackage = lib.mkForce (pkgs.catppuccin-cursors.${flavor + accentUpper});
cursorTheme = lib.mkForce "catppuccin-${flavor}-${accent}-cursors";
cursorSize = lib.mkForce 32;
};
}

View File

@ -0,0 +1,43 @@
{ cfg }: { config, pkgs, lib, inputs, ... }: {
catppuccin.accent = cfg.accent;
catppuccin.flavor = cfg.flavor;
boot.loader.grub.catppuccin.enable = true;
console.catppuccin.enable = true;
home-manager.users.${config.mainuser} = {
catppuccin.accent = cfg.accent;
catppuccin.flavor = cfg.flavor;
qt.style.catppuccin.enable = true;
qt.style.catppuccin.apply = true;
services.mako.catppuccin.enable = true;
programs = {
bat.catppuccin.enable = true;
bottom.catppuccin.enable = true;
fzf.catppuccin.enable = true;
gitui.catppuccin.enable = true;
glamour.catppuccin.enable = true;
kitty.catppuccin.enable = true;
micro.catppuccin.enable = true;
mpv.catppuccin.enable = true;
rofi.catppuccin.enable = true;
zathura.catppuccin.enable = true;
zsh.syntaxHighlighting.enable = true;
zsh.syntaxHighlighting.catppuccin.enable = true;
waybar.catppuccin.enable = true;
waybar.catppuccin.mode = "createLink";
};
wayland.windowManager.hyprland.extraConfig = ''
exec=hyprctl setcursor catppuccin-${cfg.flavor}-${cfg.accent}-cursors ${toString cfg.thm.cursorSize}
'';
};
themes.base16.extraParams = {
iconTheme = lib.mkForce "Papirus-${cfg.gtkTheme}";
iconPackage = lib.mkForce (pkgs.catppuccin-papirus-folders.override { inherit (cfg) accent flavor; });
cursorPackage = lib.mkForce (pkgs.catppuccin-cursors.${cfg.flavor + cfg.accentUpper});
cursorTheme = lib.mkForce "catppuccin-${cfg.flavor}-${cfg.accent}-cursors";
cursorSize = lib.mkForce 32;
};
}

View File

@ -0,0 +1,34 @@
{ config, lib, inputs, ... }: {
imports = let
cfg = rec {
thm = config.lib.base16.theme;
# this capitalizes the first letter in a string.
mkUpper =
str:
(lib.toUpper (builtins.substring 0 1 str)) +
(builtins.substring 1 (builtins.stringLength str) str);
accent = "mauve";
flavor = "mocha";
size = "standard"; # "standard" "compact"
tweaks = [ "normal" ]; # "black" "rimless" "normal"
flavorUpper = mkUpper flavor;
accentUpper = mkUpper accent;
sizeUpper = mkUpper size;
gtkTheme = if flavor == "latte" then "Light" else "Dark";
};
in [
inputs.catppuccin.nixosModules.catppuccin
# Custom modules
(import ./catppuccin.nix { inherit cfg; })
# Until https://github.com/catppuccin/nix/pull/179 is merged
(import ./gitea.nix { inherit cfg; gitea = "gitea"; })
# Deprecated on catppuccin-nix
(import ./gtk.nix { inherit cfg; })
(import ./vscode.nix { inherit cfg; })
];
home-manager.users.${config.mainuser} = {
imports = [ inputs.catppuccin.homeManagerModules.catppuccin ];
};
}

View File

@ -0,0 +1,55 @@
{ cfg, gitea ? "gitea" }: { config, pkgs, lib, ... }:
let
theme = pkgs.fetchzip {
url = "https://github.com/catppuccin/gitea/releases/download/v0.4.1/catppuccin-gitea.tar.gz";
sha256 = "sha256-14XqO1ZhhPS7VDBSzqW55kh6n5cFZGZmvRCtMEh8JPI=";
stripRoot = false;
};
in {
config = lib.mkIf (gitea != "" && config.services.${gitea}.enable) {
systemd.services.${gitea}.preStart = let
customDir = config.services.${gitea}.customDir;
baseDir =
if lib.versionAtLeast config.services.${gitea}.package.version "1.21.0" then
"${customDir}/public/assets"
else
"${customDir}/public";
in lib.mkAfter ''
rm -rf ${baseDir}/css
mkdir -p ${baseDir}
ln -sf ${theme} ${baseDir}/css
'';
services.${gitea}.settings.ui = {
DEFAULT_THEME = lib.mkForce "catppuccin-${cfg.flavor}-${cfg.accent}";
THEMES = let
builtinThemes = {
gitea = [
"auto"
"gitea"
"arc-greeen"
];
forgejo = [
"forgejo-auto"
"forgejo-light"
"forgejo-dark"
"gitea-auto"
"gitea-light"
"gitea-dark"
"forgejo-auto-deuteranopia-protanopia"
"forgejo-light-deuteranopia-protanopia"
"forgejo-dark-deuteranopia-protanopia"
"forgejo-auto-tritanopia"
"forgejo-light-tritanopia"
"forgejo-dark-tritanopia"
];
};
in lib.mkForce builtins.concatStringsSep "," (
builtinThemes.${gitea}
++ (map (name: lib.removePrefix "theme-" (lib.removeSuffix ".css" name)) (
builtins.attrNames (builtins.readDir theme)
))
);
};
};
}

View File

@ -0,0 +1,34 @@
{ cfg }: { config, pkgs, ... }: {
home-manager.users.${config.mainuser} = rec {
gtk = {
enable = true;
theme = {
name = "Catppuccin-${cfg.flavorUpper}-${cfg.sizeUpper}-${cfg.accentUpper}-${cfg.gtkTheme}";
package = pkgs.catppuccin-gtk.override {
inherit (cfg) tweaks;
accents = [ cfg.accent ];
variant = cfg.flavor;
};
};
cursorTheme = {
name = "catppuccin-${cfg.flavor}-${cfg.accent}-cursors";
package = pkgs.catppuccin-cursors.${cfg.flavor + cfg.accentUpper};
};
iconTheme = {
name = "Papirus-${cfg.gtkTheme}";
package = pkgs.catppuccin-papirus-folders.override { inherit (cfg) accent flavor; };
};
font = {
name = cfg.thm.fonts.main.family;
size = cfg.thm.fontSizes.normal.int;
};
gtk3.extraConfig = {
gtk-application-prefer-dark-theme = 1;
};
gtk4.extraConfig = {
gtk-application-prefer-dark-theme = 1;
};
};
home.sessionVariables.GTK_THEME = gtk.theme.name;
};
}

View File

@ -0,0 +1,38 @@
{ cfg }: { config, lib, pkgs, inputs, ... }: {
home-manager.users.${config.mainuser} = {
programs.vscode = {
extensions = let
ext-vscode = inputs.nix-vscode-marketplace.extensions.${pkgs.system}.vscode-marketplace;
in [
ext-vscode.alexdauenhauer.catppuccin-noctis
ext-vscode.catppuccin.catppuccin-vsc-icons
(inputs.catppuccin-vsc.packages.${pkgs.system}.catppuccin-vsc.override {
accent = cfg.accent;
boldKeywords = false;
italicComments = false;
italicKeywords = false;
extraBordersEnabled = false;
workbenchMode = "flat";
bracketMode = "dimmed";
colorOverrides = {
mocha = {
base = "#1c1c2d";
mantle = "#191925";
crust = "#151511";
};
};
customUIColors = {
"statusBar.foreground" = "accent";
};
})
];
userSettings = {
"editor.semanticHighlighting.enabled" = lib.mkForce true;
"terminal.integrated.minimumContrastRatio" = lib.mkForce 1;
"window.titleBarStyle" = lib.mkForce "custom";
"workbench.colorTheme" = lib.mkForce "Catppuccin ${cfg.flavorUpper}";
"workbench.iconTheme" = lib.mkForce "catppuccin-${cfg.flavor}";
};
};
};
}

View File

@ -278,10 +278,11 @@ in with config.deviceSpecific; with lib; {
env=SDL_VIDEODRIVER=wayland
env=CLUTTER_BACKEND=wayland
env=XDG_CURRENT_DESKTOP=Hyprland
env=XDG_SESSION_DESKTOP=Hyprland
env=XDG_SESSION_TYPE=wayland
env=QT_AUTO_SCREEN_SCALE_FACTOR=1
env=QT_WAYLAND_DISABLE_WINDOWDECORATION=1
env=QT_QPA_PLATFORMTHEME=qt5ct
# env=QT_QPA_PLATFORMTHEME=qt5ct
env=GSETTINGS_SCHEMA_DIR=${pkgs.glib.getSchemaPath pkgs.gsettings-desktop-schemas}
'' ''
exec=${importGsettings}

View File

@ -4,13 +4,23 @@ with config.lib.base16.theme; {
[ pkgs.systemd iconPackage ];
services.udev.packages = [ pkgs.libmtp pkgs.media-player-info ];
qt.enable = true;
qt = {
enable = false;
style = "kvantum";
platformTheme = "qt5ct";
};
# environment.systemPackages = with pkgs; [
# libsForQt5.qtstyleplugin-kvantum
# libsForQt5.qt5ct
# ];
environment.sessionVariables = {
KDEDIRS =
"/run/current-system/sw:/run/current-system/sw/share/kservices5:/run/current-system/sw/share/kservicetypes5:/run/current-system/sw/share/kxmlgui5";
};
home-manager.users.${config.mainuser} = {
qt.enable = true;
qt.style.name = "kvantum";
xdg.configFile."kdeglobals".text = lib.generators.toGitINI {

View File

@ -1,29 +1,32 @@
{ config, ... }:
let
en = "en_US.UTF-8";
c = "C.UTF-8";
dk = "en_DK.UTF-8";
gb = "en_GB.UTF-8";
ie = "en_IE.UTF-8";
ru = "ru_RU.UTF-8";
us = "en_US.UTF-8";
lang = "en_IE:en:C:ru_RU";
in {
i18n.defaultLocale = en;
i18n.defaultLocale = ie;
i18n.extraLocaleSettings = {
LANGUAGE = en;
LC_ALL = en;
LC_TIME = en;
LANGUAGE = lang;
LC_TIME = dk;
LC_ADDRESS = ru;
LC_MONETARY = ru;
LC_NUMERIC = ru;
LC_PAPER = ru;
LC_TELEPHONE = ru;
};
i18n.supportedLocales = [
"C.UTF-8/UTF-8"
"en_US.UTF-8/UTF-8"
"en_GB.UTF-8/UTF-8"
"ru_RU.UTF-8/UTF-8"
i18n.supportedLocales = map (x: "${x}/UTF-8") [
c dk gb ie ru us
];
environment.sessionVariables = {
XKB_DEFAULT_LAYOUT = "us,ru";
XKB_DEFAULT_OPTIONS = "grp:win_space_toggle";
LANGUAGE = en;
LC_ALL = en;
# LANGUAGE = lang;
# LC_ALL = en;
};
time.timeZone = "Europe/Moscow";
@ -36,11 +39,16 @@ in {
home-manager.users.${config.mainuser} = {
home.language = {
base = ie;
time = dk;
address = ru;
monetary = ru;
numeric = ru;
paper = ru;
time = en;
base = en;
telephone = ru;
};
home.sessionVariables = {
LANGUAGE = lang;
};
};
}

View File

@ -33,18 +33,18 @@
font-family: "${thm.fonts.mono.family}";
font-size: 18pt;
color: ${palette.text.hex};
background-color: rgba(${toString palette.base.rgb.r}, ${toString palette.base.rgb.g}, ${toString palette.base.rgb.b}, 0.8);
background-color: alpha(${palette.base.hex}, 0.8);
}
button {
background-repeat: no-repeat;
background-position: center;
background-size: 25%;
border: none;
background-color: rgba(${toString palette.base.rgb.r}, ${toString palette.base.rgb.g}, ${toString palette.base.rgb.b}, 0);
background-color: alpha(${palette.base.hex}, 0);
color: ${palette.${accent}.hex};
}
button:hover {
background-color: rgba(${toString palette.surface0.rgb.r}, ${toString palette.surface0.rgb.g}, ${toString palette.surface0.rgb.b}, 0.1);
background-color: alpha(${palette.surface0.hex}, 0.1);
}
button:focus {
background-color: ${palette.${accent}.hex};

View File

@ -2,10 +2,10 @@
environment.pathsToLink = [ "/share/zsh" ];
environment.sessionVariables.SHELL = "${pkgs.zsh}/bin/zsh";
home-manager.users.${config.mainuser} = {
home-manager.users.${config.mainuser} = { config, ... }: {
home.sessionVariables.SHELL = "${pkgs.zsh}/bin/zsh";
home.file.".profile".text = ''
. "${config.home-manager.users.${config.mainuser}.home.profileDirectory}/etc/profile.d/hm-session-vars.sh"
. "${config.home.profileDirectory}/etc/profile.d/hm-session-vars.sh"
'';
programs = {
zsh = {

View File

@ -3,7 +3,6 @@
./base.nix
inputs.base16.hmModule
applications-setup
hardware
sound
themes
@ -21,6 +20,7 @@
packages
rofi
spotify
telegram
steam
vscode
waydroid
@ -44,6 +44,7 @@
xdg
vpn
mime-apps
vscode-server
catppuccin
];