summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorAzat Bahawi <azat@bahawi.net>2024-03-02 20:30:02 +0300
committerAzat Bahawi <azat@bahawi.net>2024-03-02 20:30:02 +0300
commit482bcef47a3b7ee63553c58d200065857ec42b1c (patch)
treeface7032b62c8957df4a84b2fc0c4adc47020f9e /modules
parent029acb0781f5a0e75dfd7a64cf8512c8cf12f07b (diff)
2024-03-02
Diffstat (limited to 'modules')
-rw-r--r--modules/common/alacritty.nix96
-rw-r--r--modules/common/bat.nix1
-rw-r--r--modules/common/common/default.nix1
-rw-r--r--modules/common/common/nix.nix2
-rw-r--r--modules/common/common/stylix.nix68
-rw-r--r--modules/common/default.nix1
-rw-r--r--modules/common/emacs/default.nix8
-rw-r--r--modules/common/emacs/doom/config.el6
-rw-r--r--modules/common/fonts.nix95
-rw-r--r--modules/common/profiles/default.nix48
-rw-r--r--modules/common/profiles/dev/sql.nix33
-rw-r--r--modules/common/qutebrowser.nix202
-rw-r--r--modules/common/vim/default.nix2
-rw-r--r--modules/common/vscode.nix47
-rw-r--r--modules/common/zathura.nix125
-rw-r--r--modules/darwin/common/default.nix1
-rw-r--r--modules/darwin/common/stylix.nix11
-rw-r--r--modules/darwin/default.nix1
-rw-r--r--modules/darwin/fonts.nix16
-rw-r--r--modules/nixos/common/console.nix2
-rw-r--r--modules/nixos/common/default.nix1
-rw-r--r--modules/nixos/common/stylix.nix37
-rw-r--r--modules/nixos/default.nix1
-rw-r--r--modules/nixos/dwm.nix23
-rw-r--r--modules/nixos/firefox/default.nix57
-rw-r--r--modules/nixos/fonts.nix78
-rw-r--r--modules/nixos/git/default.nix2
-rw-r--r--modules/nixos/kde.nix21
-rw-r--r--modules/nixos/profiles/headful.nix1
-rw-r--r--modules/nixos/thunderbird.nix8
-rw-r--r--modules/nixos/x11.nix44
31 files changed, 286 insertions, 753 deletions
diff --git a/modules/common/alacritty.nix b/modules/common/alacritty.nix
index be3af21..892516b 100644
--- a/modules/common/alacritty.nix
+++ b/modules/common/alacritty.nix
@@ -12,104 +12,16 @@ in {
config = mkIf cfg.enable {
hm.programs.alacritty = {
enable = true;
- settings = with config.nixfiles.modules; {
+ settings = {
window = {
- padding = with config.fontScheme.monospaceFont; {
- x = size;
- y = size;
+ padding = with config.stylix.fonts.sizes; {
+ x = terminal;
+ y = terminal;
};
dynamic_padding = false;
decorations = "Full";
startup_mode = "Maximized";
};
- font = with config.fontScheme.monospaceFont; {
- normal = {
- inherit family;
- style = "Regular";
- };
- bold = {
- inherit family;
- style = "Bold";
- };
- italic = {
- inherit family;
- style = "Italic";
- };
- bold_italic = {
- inherit family;
- style = "Bold Italic";
- };
- inherit size;
- };
- colors = with config.colourScheme; {
- primary = {
- inherit background foreground;
- dim_foreground = "None";
- bright_foreground = "None";
- };
- cursor = {
- text = "CellBackground";
- cursor = "CellForeground";
- };
- vi_mode_cursor = {
- text = "CellBackground";
- cursor = "CellForeground";
- };
- search = {
- matches = {
- foreground = white;
- background = red;
- };
- focused_match = {
- foreground = red;
- background = black;
- };
- };
- hints = {
- start = {
- foreground = black;
- background = yellow;
- };
- end = {
- foreground = yellow;
- background = black;
- };
- };
- line_indicator = {
- foreground = "None";
- background = "None";
- };
- footer_bar = {
- foreground = black;
- background = white;
- };
- selection = {
- text = "CellBackground";
- background = "CellForeground";
- };
- normal = {
- inherit
- black
- red
- green
- yellow
- blue
- magenta
- cyan
- white
- ;
- };
- bright = {
- black = brightBlack;
- red = brightRed;
- green = brightGreen;
- yellow = brightYellow;
- blue = brightBlue;
- magenta = brightMagenta;
- cyan = brightCyan;
- white = brightWhite;
- };
- };
selection.save_to_clipboard = true;
cursor = {
style = {
diff --git a/modules/common/bat.nix b/modules/common/bat.nix
index 2dc0913..89444d9 100644
--- a/modules/common/bat.nix
+++ b/modules/common/bat.nix
@@ -21,7 +21,6 @@ in {
config = {
style = "plain";
tabs = "4";
- theme = "base16";
wrap = "never";
};
};
diff --git a/modules/common/common/default.nix b/modules/common/common/default.nix
index 0087754..62e4a95 100644
--- a/modules/common/common/default.nix
+++ b/modules/common/common/default.nix
@@ -7,6 +7,7 @@ _: {
./nix.nix
./secrets.nix
./shell
+ ./stylix.nix
./users.nix
./xdg.nix
];
diff --git a/modules/common/common/nix.nix b/modules/common/common/nix.nix
index 78672a0..ecd5874 100644
--- a/modules/common/common/nix.nix
+++ b/modules/common/common/nix.nix
@@ -4,7 +4,6 @@
lib,
localUsername ? lib.my.username,
pkgs,
- pkgsPr,
this,
...
}:
@@ -90,7 +89,6 @@ with lib; {
nixpkgs.overlays = with inputs; [
self.overlays.default
(_: _: {
- inherit (pkgsPr 274745 "sha256-VqBdz6OERQ7dUxWVG+aAeKWuRoPIgfZPipfNdX122WM=") beets-unstable;
})
];
diff --git a/modules/common/common/stylix.nix b/modules/common/common/stylix.nix
new file mode 100644
index 0000000..46b1f52
--- /dev/null
+++ b/modules/common/common/stylix.nix
@@ -0,0 +1,68 @@
+{
+ lib,
+ pkgs,
+ ...
+}:
+with lib; {
+ imports = [
+ (mkAliasOptionModule ["colors"] [
+ "lib"
+ "stylix"
+ "colors"
+ ])
+ ];
+
+ options.nixfiles.modules.common.stylix.fonts.extraPackages = mkOption {
+ description = "Font packages.";
+ default = with pkgs; [
+ font-awesome
+ noto-fonts
+ noto-fonts-emoji
+ sarasa-gothic
+ source-han-mono
+ source-han-sans
+ source-han-serif
+ ];
+ readOnly = true;
+ };
+
+ config = {
+ stylix = {
+ image = pkgs.fetchurl {
+ url = "https://upload.wikimedia.org/wikipedia/commons/a/a5/Bonaparte_ante_la_Esfinge%2C_por_Jean-Léon_Gérôme.jpg";
+ sha256 = "sha256-qWv52oT8cF9K4ZoeawmR3jgoGB2ARfjbKKc12IljUcM=";
+ };
+
+ base16Scheme = "${pkgs.base16-schemes}/share/themes/default-dark.yaml";
+
+ fonts = {
+ serif = {
+ package = pkgs.iosevka-bin.override {variant = "etoile";};
+ name = "Iosevka Etoile";
+ };
+
+ sansSerif = {
+ package = pkgs.iosevka-bin.override {variant = "aile";};
+ name = "Iosevka Aile";
+ };
+
+ monospace = {
+ package = pkgs.iosevka-bin;
+ name = "Iosevka";
+ };
+
+ sizes = {
+ desktop = 10;
+ applications = 10;
+ terminal = 12;
+ };
+ };
+
+ cursor = {
+ name = "phinger-cursors";
+ package = pkgs.phinger-cursors;
+ size = 32;
+ };
+ };
+ };
+}
diff --git a/modules/common/default.nix b/modules/common/default.nix
index c6c7c81..92f719d 100644
--- a/modules/common/default.nix
+++ b/modules/common/default.nix
@@ -9,7 +9,6 @@ _: {
./editorconfig.nix
./emacs
./eza.nix
- ./fonts.nix
./git.nix
./gnupg.nix
./htop.nix
diff --git a/modules/common/emacs/default.nix b/modules/common/emacs/default.nix
index 4d17e92..6c5ee1e 100644
--- a/modules/common/emacs/default.nix
+++ b/modules/common/emacs/default.nix
@@ -19,7 +19,6 @@ in {
};
nixfiles.modules = {
- fonts.enable = true;
git.client.enable = true;
gnupg.enable = true;
password-store.enable = true;
@@ -28,6 +27,8 @@ in {
};
hm = {
+ stylix.targets.emacs.enable = false;
+
xdg.configFile = mapAttrs (_: value:
value
// {
@@ -171,10 +172,9 @@ in {
(appendq! auth-sources '(("${config.secrets.authinfo.path}")))
- ;; The font must be set to n+2, otherwise it looks too small.
(setq doom-font (font-spec
- :family "${config.fontScheme.monospaceFont.family}"
- :size ${toString (config.fontScheme.monospaceFont.size + 2)})
+ :family "${config.stylix.fonts.monospace.name}"
+ :size 16)
doom-unicode-font doom-font)
;; :input japanese
diff --git a/modules/common/emacs/doom/config.el b/modules/common/emacs/doom/config.el
index 8fd2afc..9e3d603 100644
--- a/modules/common/emacs/doom/config.el
+++ b/modules/common/emacs/doom/config.el
@@ -9,7 +9,7 @@
scroll-margin 10
hscroll-margin 10)
-(when IS-LINUX
+(when (featurep :system 'linux)
(setq browse-url-generic-program (executable-find "firefox")
browse-url-browser-function 'browse-url-generic))
@@ -17,7 +17,7 @@
;;; Doom-specific
;;
-(setq doom-theme 'doom-tomorrow-night
+(setq doom-theme 'modus-vivendi
doom-modeline-icon nil
doom-modeline-indent-info t
doom-modeline-total-line-number t
@@ -190,7 +190,7 @@
:tls t
:user ,(concat circe-default-user "/" server)
:pass ,(lambda (&rest _)
- (+pass-get-secret "server/soju.manwe.shire.net/azahi"))))
+ (+pass-get-secret ""))))
'("libera" "oftc" "hackint" "rizon")))
;;
diff --git a/modules/common/fonts.nix b/modules/common/fonts.nix
deleted file mode 100644
index 6bd3e71..0000000
--- a/modules/common/fonts.nix
+++ /dev/null
@@ -1,95 +0,0 @@
-{
- lib,
- pkgs,
- ...
-}:
-with lib; {
- imports = [
- (mkAliasOptionModule ["fontScheme"] [
- "nixfiles"
- "modules"
- "fonts"
- "fontScheme"
- ])
- ];
-
- options.nixfiles.modules.fonts = {
- enable = mkEnableOption "fonts and their configurations";
-
- packages = mkOption {
- description = "Font packages to install.";
- type = with types; listOf package;
- default = with pkgs; [
- (iosevka-bin.override {variant = "aile";})
- (iosevka-bin.override {variant = "etoile";})
- iosevka-bin
- sarasa-gothic
- source-han-mono
- source-han-sans
- source-han-serif
- noto-fonts
- font-awesome
- ];
- };
-
- fontScheme = let
- mkFont = {
- family,
- style,
- size,
- }: {
- family = mkOption {
- description = "Family of the font.";
- type = types.str;
- default = family;
- };
- style = mkOption {
- description = "Style of the font.";
- type = types.str;
- default = style;
- };
- size = mkOption {
- description = "Size of the font.";
- type = types.int;
- default = size;
- };
- };
- in {
- serifFont = mkFont {
- family = "Iosevka Etoile";
- style = "Regular";
- size = 14;
- };
-
- serifFontFallback = mkFont {
- family = "Sarasa Gothic J";
- style = "Regular";
- size = 14;
- };
-
- sansSerifFont = mkFont {
- family = "Iosevka Aile";
- style = "Regular";
- size = 14;
- };
-
- sansSerifFontFallback = mkFont {
- family = "Sarasa Gothic J";
- style = "Regular";
- size = 14;
- };
-
- monospaceFont = mkFont {
- family = "Iosevka";
- style = "Regular";
- size = 14;
- };
-
- monospaceFontFallback = mkFont {
- family = "Sarasa Mono J";
- style = "Regular";
- size = 14;
- };
- };
- };
-}
diff --git a/modules/common/profiles/default.nix b/modules/common/profiles/default.nix
index 2b24752..a17ff08 100644
--- a/modules/common/profiles/default.nix
+++ b/modules/common/profiles/default.nix
@@ -13,53 +13,13 @@ in {
./email.nix
./headful.nix
./headless.nix
- (mkAliasOptionModule ["colourScheme"] [
- "nixfiles"
- "modules"
- "profiles"
- "default"
- "colourScheme"
- ])
];
- options.nixfiles.modules.profiles.default = {
- enable =
- mkEnableOption "The most default profile of them all."
- // {
- default = true;
- };
-
- colourScheme = let
- mkColour = default:
- mkOption {
- type = types.str;
- inherit default;
- description = "Colour in a standard hexadecimal notation.";
- example = "#000000";
- };
- in rec {
- black = mkColour "#161719";
- red = mkColour "#cc6666";
- green = mkColour "#b5bd68";
- yellow = mkColour "#f0c674";
- blue = mkColour "#81a2be";
- magenta = mkColour "#b294bb";
- cyan = mkColour "#8abeb7";
- white = mkColour "#c5c8c6";
-
- brightBlack = mkColour "#969896";
- brightRed = mkColour "#cc6666";
- brightGreen = mkColour "#b5bd68";
- brightYellow = mkColour "#f0c674";
- brightBlue = mkColour "#81a2be";
- brightMagenta = mkColour "#b294bb";
- brightCyan = mkColour "#8abeb7";
- brightWhite = mkColour "#ffffff";
-
- background = black;
- foreground = white;
+ options.nixfiles.modules.profiles.default.enable =
+ mkEnableOption "The most default profile of them all."
+ // {
+ default = true;
};
- };
config = mkIf cfg.enable {
assertions = [
diff --git a/modules/common/profiles/dev/sql.nix b/modules/common/profiles/dev/sql.nix
index b290c16..3e1c4b2 100644
--- a/modules/common/profiles/dev/sql.nix
+++ b/modules/common/profiles/dev/sql.nix
@@ -16,7 +16,6 @@ in {
config = mkIf cfg.enable {
hm = {
home.packages = with pkgs; [
- dbeaver
pgcli
litecli
];
@@ -34,26 +33,26 @@ in {
table_format = "fancy_grid";
};
- colorsSection = with config.colourScheme; {
+ colorsSection = with config.colors.withHashtag; {
"arg-toolbar" = "noinherit bold";
"arg-toolbar.text" = "nobold";
- "bottom-toolbar" = "bg:${black} ${white}";
- "bottom-toolbar.off" = "bg:${black} ${brightBlack}";
- "bottom-toolbar.on" = "bg:${black} ${brightWhite}";
- "bottom-toolbar.transaction.failed" = "bg:${black} ${red} bold";
- "bottom-toolbar.transaction.valid" = "bg:${black} ${green} bold";
- "completion-menu.completion" = "bg:${black} ${white}";
- "completion-menu.completion.current" = "bg:${white} ${black}";
- "completion-menu.meta.completion" = "bg:${black} ${yellow}";
- "completion-menu.meta.completion.current" = "bg:${yellow} ${black}";
- "completion-menu.multi-column-meta" = "bg:${yellow} ${black}";
- "scrollbar" = "bg:${black}";
- "scrollbar.arrow" = "bg:${black}";
- "search" = "bg:${magenta} ${brightWhite}";
+ "bottom-toolbar" = "bg:${base01} ${base06}";
+ "bottom-toolbar.off" = "bg:${base01} ${base02}";
+ "bottom-toolbar.on" = "bg:${base01} ${base07}";
+ "bottom-toolbar.transaction.failed" = "bg:${base01} ${base08} bold";
+ "bottom-toolbar.transaction.valid" = "bg:${base01} ${base0B} bold";
+ "completion-menu.completion" = "bg:${base01} ${base06}";
+ "completion-menu.completion.current" = "bg:${base06} ${base01}";
+ "completion-menu.meta.completion" = "bg:${base01} ${base13}";
+ "completion-menu.meta.completion.current" = "bg:${base09} ${base01}";
+ "completion-menu.multi-column-meta" = "bg:${base09} ${base01}";
+ "scrollbar" = "bg:${base01}";
+ "scrollbar.arrow" = "bg:${base01}";
+ "search" = "bg:${base17} ${base07}";
"search-toolbar" = "noinherit bold";
"search-toolbar.text" = "nobold";
- "search.current" = "bg:${green} ${brightWhite}";
- "selected" = "bg:${blue} ${brightWhite}";
+ "search.current" = "bg:${base14} ${base07}";
+ "selected" = "bg:${base0D} ${base07}";
"system-toolbar" = "noinherit bold";
};
diff --git a/modules/common/qutebrowser.nix b/modules/common/qutebrowser.nix
index 9a919b7..a3b82d3 100644
--- a/modules/common/qutebrowser.nix
+++ b/modules/common/qutebrowser.nix
@@ -178,7 +178,6 @@ in {
hints = {
auto_follow = "unique-match";
auto_follow_timeout = 0;
- border = "0px";
min_chars = 1;
scatter = false;
uppercase = false;
@@ -242,207 +241,6 @@ in {
title_format = "{perc}{current_title}{title_sep}qutebrowser";
};
- colors = with config.colourScheme; {
- completion = rec {
- fg = white;
- match.fg = red;
- odd.bg = black;
- even.bg = odd.bg;
- category = {
- fg = white;
- bg = black;
- border = {
- top = black;
- bottom = black;
- };
- };
- item.selected = {
- fg = black;
- bg = white;
- border = {
- top = white;
- bottom = white;
- };
- };
- scrollbar = {
- fg = white;
- bg = black;
- };
- };
- contextmenu = {
- menu = {
- fg = white;
- bg = black;
- };
- selected = {
- fg = black;
- bg = white;
- };
- disabled = {
- fg = brightBlack;
- bg = black;
- };
- };
- downloads = {
- bar.bg = black;
- start = {
- fg = green;
- bg = black;
- };
- stop = {
- fg = yellow;
- bg = black;
- };
- error = {
- fg = red;
- bg = black;
- };
- system = {
- fg = "none";
- bg = "none";
- };
- };
- hints = {
- fg = white;
- match.fg = red;
- bg = black;
- };
- keyhint = {
- fg = white;
- suffix.fg = red;
- bg = black;
- };
- messages = {
- error = rec {
- bg = black;
- fg = red;
- border = bg;
- };
- info = rec {
- fg = blue;
- bg = black;
- border = bg;
- };
- warning = rec {
- fg = yellow;
- bg = black;
- border = bg;
- };
- };
- prompts = rec {
- fg = white;
- bg = black;
- selected = {
- fg = black;
- bg = white;
- };
- border = bg;
- };
- statusbar = {
- normal = {
- bg = black;
- fg = white;
- };
- command = {
- bg = black;
- fg = white;
- };
- insert = {
- bg = green;
- fg = black;
- };
- passthrough = {
- bg = blue;
- fg = black;
- };
- private = {
- bg = magenta;
- fg = black;
- };
- url = {
- fg = blue;
- hover.fg = brightBlue;
- success = {
- http.fg = brightGreen;
- https.fg = brightGreen;
- };
- warn.fg = brightYellow;
- error.fg = brightRed;
- };
- };
- tabs = rec {
- bar.bg = black;
- even = {
- bg = black;
- fg = white;
- };
- odd = with even; {inherit bg fg;};
- selected = rec {
- even = {
- bg = white;
- fg = black;
- };
- odd = with even; {inherit bg fg;};
- };
- pinned = rec {
- even = {
- bg = brightBlack;
- fg = brightWhite;
- };
- odd = with even; {inherit bg fg;};
- };
- indicator = {
- start = green;
- stop = yellow;
- error = red;
- system = "none";
- };
- };
- webpage = {
- bg = "white";
- darkmode.enabled = false;
- preferred_color_scheme = "auto";
- };
- };
-
- fonts =
- (with config.fontScheme.monospaceFont; {
- default_family = family;
- default_size = (toString size) + "pt";
- })
- // {
- web = with config.fontScheme; {
- family = rec {
- standard = sans_serif;
- fixed = monospaceFont.family;
- serif = serifFont.family;
- sans_serif = sansSerifFont.family;
- cursive = null;
- fantasy = null;
- };
- size = rec {
- default = sansSerifFont.size;
- default_fixed = monospaceFont.size;
- minimum = 0;
- minimum_logical = default / 2;
- };
- };
- }
- // mapListToAttrs (_: "default_size default_family") [
- "completion.category"
- "completion.entry"
- "contextmenu"
- "debug_console"
- "downloads"
- "hints"
- "keyhint"
- "messages.error"
- "messages.info"
- "messages.warning"
- "prompts"
- "statusbar"
- ];
-
qt = mkIf kde.enable {
force_platform = null;
force_platformtheme = "KDE";
diff --git a/modules/common/vim/default.nix b/modules/common/vim/default.nix
index cd24768..e305cf1 100644
--- a/modules/common/vim/default.nix
+++ b/modules/common/vim/default.nix
@@ -32,6 +32,8 @@ in {
};
config = mkIf cfg.enable {
+ hm.stylix.targets.vim.enable = false;
+
environment = with config.programs.vim; {
systemPackages = [package];
variables = rec {
diff --git a/modules/common/vscode.nix b/modules/common/vscode.nix
index 10d4bf6..0780b0b 100644
--- a/modules/common/vscode.nix
+++ b/modules/common/vscode.nix
@@ -69,30 +69,19 @@ in {
]
++ optional cfg.vim.enable vscodevim.vim;
- userSettings = let
- font = config.fontScheme.monospaceFont;
- fontFamily = font.family;
- fontSize = font.size;
- in {
- editor =
- {
- inherit fontFamily fontSize;
- inlayHints = {inherit fontFamily fontSize;};
- codeLens = false;
- cursorStyle = "block";
- detectIndentation = true;
- minimap.enabled = false;
- renderWhitespace = "trailing";
- rulers = [80 120];
- smoothScrolling = false;
- tabCompletion = "on";
- }
- // (let
- surround = 10;
- in {
- cursorSurroundingLines = surround;
- scrollBeyondLastColumn = surround;
- });
+ userSettings = {
+ editor = {
+ codeLens = false;
+ cursorStyle = "block";
+ detectIndentation = true;
+ minimap.enabled = false;
+ renderWhitespace = "trailing";
+ rulers = [80 120];
+ smoothScrolling = false;
+ tabCompletion = "on";
+ cursorSurroundingLines = 10;
+ scrollBeyondLastColumn = 10;
+ };
keyboard.dispatch = "keyCode";
@@ -117,13 +106,6 @@ in {
};
};
- debug.console = {inherit fontFamily fontSize;};
-
- scm = {
- inputFontFamily = fontFamily;
- inputFontSize = fontSize;
- };
-
extensions = {
autoCheckUpdates = false;
autoUpdate = false;
@@ -131,7 +113,6 @@ in {
};
terminal.integrated = {
- inherit fontFamily fontSize;
enableBell = true;
};
@@ -225,8 +206,6 @@ in {
vim = mkIf cfg.vim.enable {
easymotion = true;
- easymotionMarkerFontFamily = fontFamily;
- easymotionMarkerFontSize = fontSize;
leader = " ";
diff --git a/modules/common/zathura.nix b/modules/common/zathura.nix
index f78a9e9..b13d2a6 100644
--- a/modules/common/zathura.nix
+++ b/modules/common/zathura.nix
@@ -10,111 +10,74 @@ in {
mkEnableOption "Zathura PDF reader";
config = mkIf cfg.enable {
- hm.programs.zathura = with config.nixfiles.modules; {
+ hm.programs.zathura = {
enable = true;
- options =
- (with config.colourScheme; {
- default-fg = white;
- default-bg = black;
+ options = {
+ recolor = true;
+ recolor-keephue = false;
+ recolor-reverse-video = false;
- statusbar-fg = black;
- statusbar-bg = white;
+ highlight-transparency = "0.3";
- inputbar-fg = black;
- inputbar-bg = brightGreen;
+ n-completion-items = 10;
- notification-fg = black;
- notification-bg = brightBlue;
+ guioptions = "";
- notification-warning-fg = black;
- notification-warning-bg = brightYellow;
+ statusbar-basename = true;
+ statusbar-home-tilde = true;
- notification-error-fg = black;
- notification-error-bg = brightRed;
+ statusbar-h-padding = 0;
+ statusbar-v-padding = 0;
- highlight-color = brightYellow;
- highlight-active-color = yellow;
+ window-height = 800;
+ window-width = 600;
- completion-fg = brightWhite;
- completion-bg = brightBlack;
+ window-icon = "";
- completion-highlight-fg = black;
- completion-highlight-bg = brightRed;
+ abort-clear-search = true;
- completion-group-fg = black;
- completion-group-bg = brightRed;
+ incremental-search = true;
- recolor-darkcolor = black;
- recolor-lightcolor = white;
- })
- // {
- recolor = true;
- recolor-keephue = false;
- recolor-reverse-video = false;
+ adjust-open = "best-fit";
- highlight-transparency = "0.3";
+ advance-pages-per-row = false;
- font = config.fontScheme.monospaceFont.family;
+ database = "sqlite";
- n-completion-items = 10;
+ dbus-service = false;
- guioptions = "";
+ page-padding = 0;
- statusbar-basename = true;
- statusbar-home-tilde = true;
+ pages-per-row = 1;
- statusbar-h-padding = 0;
- statusbar-v-padding = 0;
+ render-loading = false;
- window-height = 800;
- window-width = 600;
+ show-directories = true;
+ show-hidden = true;
+ show-recent = 10;
- window-icon = "";
+ link-zoom = true;
+ link-hadjust = true;
- abort-clear-search = true;
+ window-title-basename = true;
+ window-title-home-tilde = true;
+ window-title-page = true;
- incremental-search = true;
+ zoom-center = false;
+ zoom-max = 1000;
+ zoom-min = 10;
+ zoom-step = 10;
- adjust-open = "best-fit";
+ scroll-hstep = -1;
+ scroll-step = 40;
+ scroll-full-overlap = 0;
+ scroll-wrap = true;
+ scroll-page-aware = false;
- advance-pages-per-row = false;
-
- database = "sqlite";
-
- dbus-service = false;
-
- page-padding = 0;
-
- pages-per-row = 1;
-
- render-loading = false;
-
- show-directories = true;
- show-hidden = true;
- show-recent = 10;
-
- link-zoom = true;
- link-hadjust = true;
-
- window-title-basename = true;
- window-title-home-tilde = true;
- window-title-page = true;
-
- zoom-center = false;
- zoom-max = 1000;
- zoom-min = 10;
- zoom-step = 10;
-
- scroll-hstep = -1;
- scroll-step = 40;
- scroll-full-overlap = 0;
- scroll-wrap = true;
- scroll-page-aware = false;
-
- selection-clipboard = "clipboard";
- selection-notification = false;
- };
+ selection-clipboard = "clipboard";
+ selection-notification = false;
+ };
};
};
}
diff --git a/modules/darwin/common/default.nix b/modules/darwin/common/default.nix
index 4d4824f..04f7b29 100644
--- a/modules/darwin/common/default.nix
+++ b/modules/darwin/common/default.nix
@@ -6,6 +6,7 @@ _: {
./nix.nix
./secrets.nix
./shell.nix
+ ./stylix.nix
./users.nix
./xdg.nix
];
diff --git a/modules/darwin/common/stylix.nix b/modules/darwin/common/stylix.nix
new file mode 100644
index 0000000..b5bb119
--- /dev/null
+++ b/modules/darwin/common/stylix.nix
@@ -0,0 +1,11 @@
+{
+ config,
+ inputs,
+ lib,
+ ...
+}:
+with lib; {
+ imports = [inputs.stylix.darwinModules.stylix];
+
+ fonts.fonts = mkAfter config.modules.common.stylix.fonts.extraPackages;
+}
diff --git a/modules/darwin/default.nix b/modules/darwin/default.nix
index fbc5c1e..ba7a2a7 100644
--- a/modules/darwin/default.nix
+++ b/modules/darwin/default.nix
@@ -1,7 +1,6 @@
_: {
imports = [
./common
- ./fonts.nix
./gnupg.nix
./homebrew.nix
./profiles
diff --git a/modules/darwin/fonts.nix b/modules/darwin/fonts.nix
deleted file mode 100644
index c52d73e..0000000
--- a/modules/darwin/fonts.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- config,
- lib,
- ...
-}:
-with lib; let
- cfg = config.nixfiles.modules.fonts;
-in {
- config = mkIf cfg.enable {
- fonts = {
- fonts = cfg.packages;
-
- fontDir.enable = true;
- };
- };
-}
diff --git a/modules/nixos/common/console.nix b/modules/nixos/common/console.nix
index e280919..3491e37 100644
--- a/modules/nixos/common/console.nix
+++ b/modules/nixos/common/console.nix
@@ -3,6 +3,8 @@
pkgs,
...
}: {
+ stylix.targets.console.enable = false;
+
console = {
earlySetup = true;
font = "${pkgs.terminus_font}/share/consolefonts/ter-v16b.psf.gz";
diff --git a/modules/nixos/common/default.nix b/modules/nixos/common/default.nix
index 54f8f51..4c192c9 100644
--- a/modules/nixos/common/default.nix
+++ b/modules/nixos/common/default.nix
@@ -12,6 +12,7 @@ _: {
./security.nix
./services.nix
./shell.nix
+ ./stylix.nix
./systemd.nix
./tmp.nix
./users.nix
diff --git a/modules/nixos/common/stylix.nix b/modules/nixos/common/stylix.nix
new file mode 100644
index 0000000..6249abf
--- /dev/null
+++ b/modules/nixos/common/stylix.nix
@@ -0,0 +1,37 @@
+{
+ config,
+ inputs,
+ lib,
+ ...
+}:
+with lib; {
+ imports = [inputs.stylix.nixosModules.stylix];
+
+ fonts = {
+ packages = mkAfter config.nixfiles.modules.common.stylix.fonts.extraPackages;
+
+ fontconfig.defaultFonts = {
+ serif = mkForce [
+ "Iosevka Etoile"
+ "Sarasa Gothic"
+ "Source Han Serif"
+ "Noto Serif"
+ ];
+ sansSerif = mkForce [
+ "Iosevka Aile"
+ "Sarasa Gothic"
+ "Source Han Sans"
+ "Noto Sans"
+ ];
+ monospace = mkForce [
+ "Iosevka"
+ "Sarasa Mono"
+ "Source Han Mono"
+ "Noto Sans Mono"
+ ];
+ emoji = mkForce [
+ "Noto Color Emoji"
+ ];
+ };
+ };
+}
diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix
index 93f0974..1a42517 100644
--- a/modules/nixos/default.nix
+++ b/modules/nixos/default.nix
@@ -15,7 +15,6 @@ _: {
./endlessh.nix
./fail2ban.nix
./firefox
- ./fonts.nix
./games
./git
./gnupg.nix
diff --git a/modules/nixos/dwm.nix b/modules/nixos/dwm.nix
index 9c5e283..a32ed29 100644
--- a/modules/nixos/dwm.nix
+++ b/modules/nixos/dwm.nix
@@ -18,8 +18,7 @@ in {
windowManager.command = let
pkg = pkgs.dwm.override {
conf = let
- font = with config.fontScheme.monospaceFont; "${family}:size=${toString size}";
- colour = config.colourScheme;
+ font = with config.stylix.fonts; "${monospace.name}:size=${toString sizes.terminal}";
in ''
static const unsigned int borderpx = 1;
static const unsigned int snap = 32;
@@ -32,14 +31,14 @@ in {
static const char *colors[][3] = {
[SchemeNorm] = {
- "${colour.white}",
- "${colour.black}",
- "${colour.black}",
+ "${config.color.base06}",
+ "${config.color.base01}",
+ "${config.color.base01}",
},
[SchemeSel] = {
- "${colour.black}",
- "${colour.white}",
- "${colour.white}",
+ "${config.color.base01}",
+ "${config.color.base06}",
+ "${config.color.base06}",
},
};
@@ -82,10 +81,10 @@ in {
"${pkgs.dmenu}/bin/dmenu_run",
"-m", dmenumon,
"-fn", "${font}",
- "-nb", "${colour.black}",
- "-nf", "${colour.white}",
- "-sb", "${colour.white}",
- "-sf", "${colour.black}",
+ "-nb", "${config.color.base01}",
+ "-nf", "${config.color.base06}",
+ "-sb", "${config.color.base06}",
+ "-sf", "${config.color.base01}",
NULL,
};
static const char *termcmd[] = {
diff --git a/modules/nixos/firefox/default.nix b/modules/nixos/firefox/default.nix
index ce8b3ee..d192ae1 100644
--- a/modules/nixos/firefox/default.nix
+++ b/modules/nixos/firefox/default.nix
@@ -22,6 +22,11 @@ in {
home.packages = with pkgs; [profile-cleaner];
+ stylix.targets.firefox = {
+ enable = true;
+ profileNames = ["default"];
+ };
+
programs.firefox = {
enable = true;
@@ -32,34 +37,34 @@ in {
profiles.default = let
mkCssWithRoot = css:
mkMerge [
- (with config.colourScheme; ''
+ (with config.colors.withHashtag; ''
:root {
- --black: ${black};
- --red: ${red};
- --green: ${green};
- --yellow: ${yellow};
- --blue: ${blue};
- --magenta: ${magenta};
- --cyan: ${cyan};
- --white: ${white};
- --bright-black: ${brightBlack};
- --bright-red: ${brightRed};
- --bright-green: ${brightGreen};
- --bright-yellow: ${brightYellow};
- --bright-blue: ${brightBlue};
- --bright-magenta: ${brightMagenta};
- --bright-cyan: ${brightCyan};
- --bright-white: ${brightWhite};
- --background: ${background};
- --foreground: ${foreground};
+ --black: ${base01};
+ --red: ${base08};
+ --green: ${base0B};
+ --yellow: ${base09};
+ --blue: ${base0D};
+ --magenta: ${base0E};
+ --cyan: ${base0C};
+ --white: ${base06};
+ --bright-black: ${base02};
+ --bright-red: ${base12};
+ --bright-green: ${base14};
+ --bright-yellow: ${base13};
+ --bright-blue: ${base16};
+ --bright-magenta: ${base17};
+ --bright-cyan: ${base15};
+ --bright-white: ${base07};
+ --background: ${base00};
+ --foreground: ${base02};
'')
- (with config.fontScheme; ''
- --sans-serif-font-family: "${sansSerifFont.family}", "${sansSerifFontFallback.family}", sans-serif;
- --sans-serif-font-size: ${toString sansSerifFont.size}px;
- --serif-font-family: "${serifFont.family}", "${serifFontFallback.family}", serif;
- --serif-font-size: ${toString serifFont.size}px;
- --monospace-font-family: "${monospaceFont.family}", "${monospaceFontFallback.family}", monospace;
- --monospace-font-size: ${toString monospaceFont.size}px;
+ (with config.stylix.fonts; ''
+ --sans-serif-font-family: "${sansSerif.name}", sans-serif;
+ --sans-serif-font-size: ${toString sizes.applications};
+ --serif-font-family: "${serif.name}", serif;
+ --serif-font-size: ${toString sizes.applications};
+ --monospace-font-family: "${monospace.name}", monospace;
+ --monospace-font-size: ${toString sizes.applications};
}
'')
(builtins.readFile css)
diff --git a/modules/nixos/fonts.nix b/modules/nixos/fonts.nix
deleted file mode 100644
index a333cb3..0000000
--- a/modules/nixos/fonts.nix
+++ /dev/null
@@ -1,78 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-with lib; let
- cfg = config.nixfiles.modules.fonts;
-in {
- config = mkMerge [
- (mkIf cfg.enable {
- nixfiles.modules.common.nix.allowedUnfreePackages = ["symbola"];
- hm.fonts.fontconfig.enable = true;
- fonts = {
- packages =
- cfg.packages
- ++ (with pkgs; [
- noto-fonts-emoji
- twitter-color-emoji
- symbola
- ]);
-
- fontconfig = {
- enable = true;
-
- defaultFonts = {
- emoji = mkForce [
- "Twitter Color Emoji"
- "Noto Color Emoji"
- "Symbola"
- ];
- monospace = mkForce [
- "Iosevka"
- "Sarasa Mono"
- "Source Han Mono"
- "Noto Sans Mono"
- ];
- sansSerif = mkForce [
- "Iosevka Aile"
- "Sarasa Gothic"
- "Source Han Sans"
- "Noto Sans"
- ];
- serif = mkForce [
- "Iosevka Etoile"
- "Sarasa Gothic"
- "Source Han Serif"
- "Noto Serif"
- ];
- };
-
- localConf = ''
- <?xml version='1.0'?>
- <!DOCTYPE fontconfig SYSTEM 'urn:fontconfig:fonts.dtd'>
- <fontconfig>
- <alias binding="same">
- <family>Helvetica</family>
- <prefer>
- <family>sans-serif</family>
- </prefer>
- </alias>
- <alias binding="same">
- <family>Arial</family>
- <prefer>
- <family>sans-serif</family>
- </prefer>
- </alias>
- </fontconfig>
- '';
- };
- };
- })
- (mkIf (!cfg.enable) {
- hm.fonts.fontconfig.enable = false;
- fonts.fontconfig.enable = false;
- })
- ];
-}
diff --git a/modules/nixos/git/default.nix b/modules/nixos/git/default.nix
index adff240..cbeb48a 100644
--- a/modules/nixos/git/default.nix
+++ b/modules/nixos/git/default.nix
@@ -93,7 +93,7 @@ in {
@import url("cgit.css");
div#cgit {
- font-family: "${config.fontScheme.monospaceFont.family}", monospace;
+ font-family: monospace;
-moz-tab-size: 4;
tab-size: 4;
}
diff --git a/modules/nixos/kde.nix b/modules/nixos/kde.nix
index 58990f1..3822415 100644
--- a/modules/nixos/kde.nix
+++ b/modules/nixos/kde.nix
@@ -18,12 +18,29 @@ in {
};
hm = {
- home.sessionVariables.GTK_USE_PORTAL = 1;
-
programs.firefox.profiles.default.settings = {
"widget.use-xdg-desktop-portal.file-picker" = 1;
"widget.use-xdg-desktop-portal.mime-handler" = 1;
};
+
+ gtk.theme = {
+ package = mkForce pkgs.breeze-gtk;
+ name = mkForce "Breeze";
+ };
+
+ xdg.configFile = {
+ "fontconfig/conf.d/10-hm-fonts.conf".force = mkForce true;
+ "mimeapps.list".force = mkForce true;
+ "kcminputrc".text = generators.toINI {} {
+ Keyboard = with config.services.xserver; {
+ RepeatDelay = autoRepeatDelay;
+ RepeatRate = autoRepeatInterval;
+ };
+ };
+ "baloofilerc".text = generators.toINI {} {
+ "Basic Settings"."Indexing-Enabled" = false;
+ };
+ };
};
services.xserver = {
diff --git a/modules/nixos/profiles/headful.nix b/modules/nixos/profiles/headful.nix
index 187c5a3..4bc7ed3 100644
--- a/modules/nixos/profiles/headful.nix
+++ b/modules/nixos/profiles/headful.nix
@@ -74,7 +74,6 @@ in {
services = {
upower.enable = true;
-
psd.enable = true;
};
diff --git a/modules/nixos/thunderbird.nix b/modules/nixos/thunderbird.nix
index b5f360a..d8ce4ad 100644
--- a/modules/nixos/thunderbird.nix
+++ b/modules/nixos/thunderbird.nix
@@ -24,11 +24,11 @@ in {
config.hm.programs.firefox.profiles.default.settings
// {
"app.donation.eoy.version.viewed" = 999;
- "browser.display.background_color" = config.colourScheme.black;
- "browser.display.background_color.dark" = config.colourScheme.black;
+ "browser.display.background_color" = config.colors.withHashtag.base00;
+ "browser.display.background_color.dark" = config.colors.withHashtag.base00;
"browser.display.document_color_use" = 2;
- "browser.display.foreground_color" = config.colourScheme.white;
- "browser.display.foreground_color.dark" = config.colourScheme.white;
+ "browser.display.foreground_color" = config.colors.withHashtag.base07;
+ "browser.display.foreground_color.dark" = config.colors.withHashtag.base07;
"javascript.enabled" = false;
"mail.chat.enabled" = false;
"mail.cloud_files.enabled" = false;
diff --git a/modules/nixos/x11.nix b/modules/nixos/x11.nix
index b629aeb..bd35d87 100644
--- a/modules/nixos/x11.nix
+++ b/modules/nixos/x11.nix
@@ -25,40 +25,14 @@ in {
XCOMPOSECACHE = "${config.dirs.cache}/libx11/compose";
};
- xresources.properties =
- (let
- font = with config.fontScheme.monospaceFont; "${family}:style=${style}:size=${toString size}";
- in {
- "*.font" = font;
-
- "Xft.antialias" = mkDefault 1;
- "Xft.autohint" = mkDefault 0;
- "Xft.hinting" = mkDefault 1;
- "Xft.hintstyle" = mkDefault "hintslight";
- "Xft.lcdfilter" = mkDefault "lcddefault";
- "Xft.rgba" = mkDefault "rgb";
- })
- // (with config.colourScheme; {
- "*.color0" = black;
- "*.color8" = brightBlack;
- "*.color1" = red;
- "*.color9" = brightRed;
- "*.color2" = green;
- "*.color10" = brightGreen;
- "*.color3" = yellow;
- "*.color11" = brightYellow;
- "*.color4" = blue;
- "*.color12" = brightBlue;
- "*.color5" = magenta;
- "*.color13" = brightMagenta;
- "*.color6" = cyan;
- "*.color14" = brightCyan;
- "*.color7" = white;
- "*.color15" = brightWhite;
-
- "*.background" = background;
- "*.foreground" = foreground;
- });
+ xresources.properties = {
+ "Xft.antialias" = mkDefault 1;
+ "Xft.autohint" = mkDefault 0;
+ "Xft.hinting" = mkDefault 1;
+ "Xft.hintstyle" = mkDefault "hintslight";
+ "Xft.lcdfilter" = mkDefault "lcddefault";
+ "Xft.rgba" = mkDefault "rgb";
+ };
services.xsettingsd = {
enable = true;
@@ -87,7 +61,7 @@ in {
tty = mkDefault 1;
autoRepeatDelay = 200;
- autoRepeatInterval = 25;
+ autoRepeatInterval = 50;
libinput.enable = true;