Major changes: switch to tracking nixos-23.11 and remove stylix.

Motivated by the xz backdoor bug, switch NixOS system to track 23.11
instead of unstable, and will bump version numbers as they come along
rather than do rolling release.
Reverted a couple of changes that were introduced in recent nixpkgs
versions, only major one was switching back to swaylock as hyprlock
isn't in nixpkgs 23.11

Remove stylix and replace with lower-level base16.nix, partly because
stylix was doing something strange pulling in extra flakes (and
breaking on 23.11), partly because I was most of the way there anyway.
Remove last references to stylix in config, mostly just changing
stylix.colors to scheme (from base16) and defining fonts in
specialArgs to be used in the same way as before.
This commit is contained in:
Evie Litherland-Smith 2024-03-31 12:59:24 +01:00
parent 6c9a91ded9
commit ecc9fae75a
26 changed files with 8294 additions and 398 deletions

View file

@ -5,11 +5,11 @@
"fromYaml": "fromYaml"
},
"locked": {
"lastModified": 1708890466,
"narHash": "sha256-LlrC09LoPi8OPYOGPXegD72v+//VapgAqhbOFS3i8sc=",
"lastModified": 1709025227,
"narHash": "sha256-KXcORItjYJTdEO/BlBd0Uym1Xa3eBu43uvpFiWjJOdY=",
"owner": "SenchoPens",
"repo": "base16.nix",
"rev": "665b3c6748534eb766c777298721cece9453fdae",
"rev": "4e9b16c8b44958bc6bf46d99c3bb1b59c9c9c764",
"type": "github"
},
"original": {
@ -18,151 +18,6 @@
"type": "github"
}
},
"base16-alacritty": {
"flake": false,
"locked": {
"lastModified": 1703982197,
"narHash": "sha256-TNxKbwdiUXGi4Z4chT72l3mt3GSvOcz6NZsUH8bQU/k=",
"owner": "aarowill",
"repo": "base16-alacritty",
"rev": "c95c200b3af739708455a03b5d185d3d2d263c6e",
"type": "github"
},
"original": {
"owner": "aarowill",
"repo": "base16-alacritty",
"type": "github"
}
},
"base16-alacritty-yaml": {
"flake": false,
"locked": {
"lastModified": 1674275109,
"narHash": "sha256-Adwx9yP70I6mJrjjODOgZJjt4OPPe8gJu7UuBboXO4M=",
"owner": "aarowill",
"repo": "base16-alacritty",
"rev": "63d8ae5dfefe5db825dd4c699d0cdc2fc2c3eaf7",
"type": "github"
},
"original": {
"owner": "aarowill",
"repo": "base16-alacritty",
"rev": "63d8ae5dfefe5db825dd4c699d0cdc2fc2c3eaf7",
"type": "github"
}
},
"base16-fish": {
"flake": false,
"locked": {
"lastModified": 1622559957,
"narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=",
"owner": "tomyun",
"repo": "base16-fish",
"rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe",
"type": "github"
},
"original": {
"owner": "tomyun",
"repo": "base16-fish",
"type": "github"
}
},
"base16-foot": {
"flake": false,
"locked": {
"lastModified": 1696725948,
"narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=",
"owner": "tinted-theming",
"repo": "base16-foot",
"rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-foot",
"type": "github"
}
},
"base16-helix": {
"flake": false,
"locked": {
"lastModified": 1696727917,
"narHash": "sha256-FVrbPk+NtMra0jtlC5oxyNchbm8FosmvXIatkRbYy1g=",
"owner": "tinted-theming",
"repo": "base16-helix",
"rev": "dbe1480d99fe80f08df7970e471fac24c05f2ddb",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-helix",
"type": "github"
}
},
"base16-kitty": {
"flake": false,
"locked": {
"lastModified": 1665001328,
"narHash": "sha256-aRaizTYPpuWEcvoYE9U+YRX+Wsc8+iG0guQJbvxEdJY=",
"owner": "kdrag0n",
"repo": "base16-kitty",
"rev": "06bb401fa9a0ffb84365905ffbb959ae5bf40805",
"type": "github"
},
"original": {
"owner": "kdrag0n",
"repo": "base16-kitty",
"type": "github"
}
},
"base16-tmux": {
"flake": false,
"locked": {
"lastModified": 1696725902,
"narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=",
"owner": "tinted-theming",
"repo": "base16-tmux",
"rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-tmux",
"type": "github"
}
},
"base16-vim": {
"flake": false,
"locked": {
"lastModified": 1663659192,
"narHash": "sha256-uJvaYYDMXvoo0fhBZUhN8WBXeJ87SRgof6GEK2efFT0=",
"owner": "chriskempson",
"repo": "base16-vim",
"rev": "3be3cd82cd31acfcab9a41bad853d9c68d30478d",
"type": "github"
},
"original": {
"owner": "chriskempson",
"repo": "base16-vim",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"fromYaml": {
"flake": false,
"locked": {
@ -179,23 +34,6 @@
"type": "github"
}
},
"gnome-shell": {
"flake": false,
"locked": {
"lastModified": 1698794309,
"narHash": "sha256-/TIkZ8y5Wv3QHLFp79Poao9fINurKs5pa4z0CRe+F8s=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "a7c169c6c29cf02a4c392fa0acbbc5f5072823e7",
"type": "github"
},
"original": {
"owner": "GNOME",
"ref": "45.1",
"repo": "gnome-shell",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@ -203,36 +41,16 @@
]
},
"locked": {
"lastModified": 1711604890,
"narHash": "sha256-vbI/gxRTq/gHW1Q8z6D/7JG/qGNl3JTimUDX+MwnC3A=",
"lastModified": 1710888565,
"narHash": "sha256-s9Hi4RHhc6yut4EcYD50sZWRDKsugBJHSbON8KFwoTw=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "3142bdcc470e1e291e1fbe942fd69e06bd00c5df",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1706001011,
"narHash": "sha256-J7Bs9LHdZubgNHZ6+eE/7C18lZ1P6S5/zdJSdXFItI4=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "3df2a80f3f85f91ea06e5e91071fa74ba92e5084",
"rev": "f33900124c23c4eca5831b9b5eb32ea5894375ce",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-23.11",
"repo": "home-manager",
"type": "github"
}
@ -273,57 +91,42 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1711703276,
"narHash": "sha256-iMUFArF0WCatKK6RzfUJknjem0H9m4KgorO/p3Dopkk=",
"owner": "NixOS",
"lastModified": 1711668574,
"narHash": "sha256-u1dfs0ASQIEr1icTVrsKwg2xToIpn7ZXxW3RHfHxshg=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "d8fe5e6c92d0d190646fb9f1056741a229980089",
"rev": "219951b495fc2eac67b1456824cc1ec1fd2ee659",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"owner": "nixos",
"ref": "nixos-23.11",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"base16": "base16",
"home-manager": "home-manager",
"iosevka-custom": "iosevka-custom",
"nixpkgs": "nixpkgs_2",
"stylix": "stylix"
"tt-schemes": "tt-schemes"
}
},
"stylix": {
"inputs": {
"base16": "base16",
"base16-alacritty": "base16-alacritty",
"base16-alacritty-yaml": "base16-alacritty-yaml",
"base16-fish": "base16-fish",
"base16-foot": "base16-foot",
"base16-helix": "base16-helix",
"base16-kitty": "base16-kitty",
"base16-tmux": "base16-tmux",
"base16-vim": "base16-vim",
"flake-compat": "flake-compat",
"gnome-shell": "gnome-shell",
"home-manager": "home-manager_2",
"nixpkgs": [
"nixpkgs"
]
},
"tt-schemes": {
"flake": false,
"locked": {
"lastModified": 1711224130,
"narHash": "sha256-RyOvyQASi5lvKLH5ISiGGkdX1eJxYF25aQALGfN9U0k=",
"owner": "danth",
"repo": "stylix",
"rev": "53d3e5d5b36a5227b906e00d7e884dcfb7852403",
"lastModified": 1711623106,
"narHash": "sha256-mKmQPUbZaOOnpwmfGHm+iujAqGWqlTaBi16R/FUFQh4=",
"owner": "tinted-theming",
"repo": "schemes",
"rev": "45f3d879fb64276df7e69c18f7adbb88938e10e7",
"type": "github"
},
"original": {
"owner": "danth",
"repo": "stylix",
"owner": "tinted-theming",
"repo": "schemes",
"type": "github"
}
}

View file

@ -7,23 +7,25 @@
};
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
stylix = {
url = "github:danth/stylix";
url = "github:nix-community/home-manager/release-23.11";
inputs.nixpkgs.follows = "nixpkgs";
};
iosevka-custom.url = "git+https://git.xenia.me.uk/pixelifytica/iosevka.git";
base16.url = "github:SenchoPens/base16.nix";
tt-schemes = {
url = "github:tinted-theming/schemes";
flake = false;
};
};
outputs = {
nixpkgs,
home-manager,
stylix,
iosevka-custom,
base16,
tt-schemes,
...
}: let
systemConfig = {
@ -39,6 +41,28 @@
inherit hostName user;
accentColour = "base07"; # catppuccin lavender
catppuccinVariant = "Mocha";
fonts = with import nixpkgs {inherit system;};
with iosevka-custom.outputs; rec {
sizes = {
applications = 16;
desktop = 20;
popups = 20;
terminal = 16;
};
serif = sansSerif;
sansSerif = {
name = names."iosevka-custom-aile";
package = packages.${system}."iosevka-custom-aile";
};
monospace = {
name = names."iosevka-custom-nerdfont";
package = packages.${system}."iosevka-custom-nerdfont";
};
emoji = {
name = "EmojiOne Color";
package = emojione;
};
};
};
in
nixpkgs.lib.nixosSystem {
@ -46,18 +70,21 @@
modules =
[
home-manager.nixosModules.home-manager
stylix.nixosModules.stylix
base16.nixosModule
./hosts/${hostName}/configuration.nix
./hosts/${hostName}/hardware-configuration.nix
./system/default.nix
({
config,
lib,
pkgs,
catppuccinVariant ? "Mocha",
...
}: {
scheme = "${tt-schemes}/base16/catppuccin-${lib.strings.toLower catppuccinVariant}.yaml";
nix = {
enable = true;
package = pkgs.nixVersions.nix_2_21;
package = pkgs.nixVersions.nix_2_19;
settings = {
cores = 0;
max-jobs = "auto";
@ -83,17 +110,6 @@
nixpkgs.config.allowUnfree = true;
networking = {inherit hostName;};
programs.${defaultUserShell}.enable = true;
stylix.fonts = with iosevka-custom.outputs; rec {
serif = sansSerif;
sansSerif = {
name = names."iosevka-custom-aile";
package = packages.${system}."iosevka-custom-aile";
};
monospace = {
name = names."iosevka-custom-nerdfont";
package = packages.${system}."iosevka-custom-nerdfont";
};
};
system = {inherit stateVersion;};
users = {
defaultUserShell = pkgs.${defaultUserShell};
@ -117,7 +133,7 @@
};
};
home-manager = {
extraSpecialArgs = specialArgs;
extraSpecialArgs = {inherit (config) scheme;} // specialArgs;
useGlobalPkgs = true;
useUserPackages = true;
users = {

View file

@ -1,9 +1,9 @@
{config, ...}: {
{fonts, ...}: {
programs.alacritty = let
catppuccin-mocha = builtins.fromTOML (builtins.readFile ./catppuccin-mocha.toml);
in {
enable = true;
settings = with config.stylix;
settings =
{
font = {
size = fonts.sizes.applications;
@ -13,7 +13,7 @@
};
};
window = {
opacity = opacity.terminal;
opacity = 0.8;
dynamic_title = true;
padding = {
x = 10;

View file

@ -1,20 +1,19 @@
{
config,
scheme,
accentColour ? "base07",
...
}: {
services.avizo = {
enable = true;
settings.default = with config.stylix;
with config.lib.stylix.colors; let
accent = with config.lib.stylix; {
r = colors."${accentColour}-rgb-r";
g = colors."${accentColour}-rgb-g";
b = colors."${accentColour}-rgb-b";
settings.default = with scheme; let
accent = {
r = scheme."${accentColour}-rgb-r";
g = scheme."${accentColour}-rgb-g";
b = scheme."${accentColour}-rgb-b";
};
in {
background = "rgba(${base00-rgb-r}, ${base00-rgb-g}, ${base00-rgb-b}, ${toString opacity.popups})";
bar-bg-color = "rgba(${base00-rgb-r}, ${base00-rgb-g}, ${base00-rgb-b}, ${toString opacity.popups})";
background = "rgba(${base00-rgb-r}, ${base00-rgb-g}, ${base00-rgb-b}, 0.8)";
bar-bg-color = "rgba(${base00-rgb-r}, ${base00-rgb-g}, ${base00-rgb-b}, 0.8)";
bar-fg-color = "rgba(${base05-rgb-r}, ${base05-rgb-g}, ${base05-rgb-b}, 1.0)";
border-color = "rgba(${accent.r}, ${accent.g}, ${accent.b}, 1.0)";
image-opacity = "1.0";

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

21
home/bat/default.nix Normal file
View file

@ -0,0 +1,21 @@
{
lib,
catppuccinVariant ? "Mocha",
...
}: {
xdg.configFile = let
variants = ["Latte" "Frappe" "Macchiato" "Mocha"];
mkVariant = variant: let
fname = "catppuccin${variant}.tmTheme";
in {
name = "bat/themes/${fname}";
value = {source = ./. + "/${fname}";};
};
in
builtins.listToAttrs
(lib.lists.forEach variants mkVariant);
programs.bat = {
enable = true;
config.theme = "catppuccin${catppuccinVariant}";
};
}

View file

@ -1,12 +1,11 @@
{
config,
scheme,
accentColour ? "base07",
...
}: {
programs.bottom = {
enable = true;
settings.colors = with config.lib.stylix;
with colors.withHashtag; let
settings.colors = with scheme.withHashtag; let
rainbow = [red yellow green cyan blue magenta];
in {
table_header_color = base05;
@ -18,9 +17,9 @@
swap_color = blue;
rx_color = green;
tx_color = blue;
widget_title_color = colors.withHashtag.${accentColour};
widget_title_color = scheme.withHashtag.${accentColour};
border_color = base02;
highlighted_border_color = colors.withHashtag.${accentColour};
highlighted_border_color = scheme.withHashtag.${accentColour};
text_color = base05;
graph_color = base04;
cursor_color = base02;

View file

@ -1,16 +1,16 @@
{config, ...}: {
{scheme, ...}: {
programs.cava = {
enable = true;
settings = {
color = with config.lib.stylix.colors; {
color = with scheme.withHashtag; {
gradient = 1;
gradient_count = 6;
gradient_color_1 = "'${withHashtag.red}'";
gradient_color_2 = "'${withHashtag.yellow}'";
gradient_color_3 = "'${withHashtag.green}'";
gradient_color_4 = "'${withHashtag.cyan}'";
gradient_color_5 = "'${withHashtag.blue}'";
gradient_color_6 = "'${withHashtag.magenta}'";
gradient_color_1 = "'${red}'";
gradient_color_2 = "'${yellow}'";
gradient_color_3 = "'${green}'";
gradient_color_4 = "'${cyan}'";
gradient_color_5 = "'${blue}'";
gradient_color_6 = "'${magenta}'";
};
};
};

View file

@ -1,9 +1,6 @@
{
config,
pkgs,
...
}: {
{pkgs, ...}: {
imports = [
./bat/default.nix
./git/default.nix
./ssh/default.nix
./nushell/default.nix
@ -12,21 +9,9 @@
./bottom/default.nix
./scripts/default.nix
];
stylix.targets = {
bat.enable = true;
fzf.enable = true;
zellij.enable = true;
};
programs = {
bash.enable = true;
carapace.enable = true;
bat = {
enable = true;
config.theme =
if config.stylix.targets.bat.enable
then "base16-stylix"
else "dracula";
};
eza = {
enable = true;
git = true;
@ -50,9 +35,5 @@
changeDirWidgetCommand = "${pkgs.fd}/bin/fd --type d";
fileWidgetCommand = "${pkgs.fd}/bin/fd --type f";
};
zellij = {
enable = true;
settings.default_layout = "compact";
};
};
}

View file

@ -1,6 +1,7 @@
{
config,
pkgs,
fonts,
...
}: {
imports = [../git/default.nix ../prog/default.nix];
@ -10,13 +11,12 @@
# git clone https://git.xenia.me.uk/pixelifytica/emacs.git ~/.config/emacs
enable = true;
package = pkgs.emacs29-pgtk;
extraConfig = with builtins;
with config; let
extraConfig = let
shell = "${pkgs.zsh}/bin/zsh";
font = "${stylix.fonts.monospace.name}-${toString stylix.fonts.sizes.applications}";
fixed-font-family = "${stylix.fonts.monospace.name}";
variable-font-family = "${stylix.fonts.sansSerif.name}";
alpha = "${toString (floor (mul stylix.opacity.applications 100))}";
font = "${fonts.monospace.name}-${toString fonts.sizes.applications}";
fixed-font-family = "${fonts.monospace.name}";
variable-font-family = "${fonts.sansSerif.name}";
alpha = "80";
in ''
(customize-set-variable 'shell-file-name "${shell}")
(add-to-list 'initial-frame-alist '(font . "${font}"))

View file

@ -1,4 +1,8 @@
{config, ...}: {
{
fonts,
scheme,
...
}: {
programs.foot = {
enable = true;
server.enable = true;
@ -7,7 +11,7 @@
# term = "xterm-256color";
title = "foot";
locked-title = "no";
font = with config.stylix.fonts; "${monospace.name}:size=${toString sizes.applications}";
font = with fonts; "${monospace.name}:size=${toString sizes.applications}";
dpi-aware = "no";
pad = "10x10";
};
@ -18,8 +22,8 @@
};
cursor = {blink = "yes";};
mouse = {hide-when-typing = "no";};
colors = with config.lib.stylix.colors; rec {
alpha = config.stylix.opacity.terminal;
colors = with scheme; rec {
alpha = 0.8;
background = base00;
foreground = base05;
regular0 = base02;

View file

@ -2,17 +2,19 @@
config,
lib,
pkgs,
fonts,
scheme,
accentColour ? "base07",
catppuccinVariant ? "Mocha",
...
}: {
stylix.targets.xresources.enable = true;
imports = [
../default.nix
../email/default.nix
../password-store/default.nix
../waybar/default.nix
../rofi/default.nix
../swaylock/default.nix
../swaync/default.nix
../avizo/default.nix
../alacritty/default.nix
@ -37,7 +39,7 @@
zellij.settings.copy_command = "wl-copy";
};
services = {
gpg-agent.pinentryPackage = pkgs.pinentry-gtk2;
gpg-agent.pinentryFlavor = "gtk2";
avizo.enable = true;
syncthing.enable = true;
udiskie = {
@ -59,6 +61,13 @@
};
name = "Papirus-Dark";
};
cursorTheme = let
variant = "${lib.strings.toLower catppuccinVariant}Dark";
in {
package = pkgs.catppuccin-cursors.${variant};
name = "Catppuccin-${catppuccinVariant}-Dark-Cursors";
size = 32;
};
theme = {
package = with lib.strings;
pkgs.catppuccin-gtk.override {
@ -81,8 +90,8 @@
"XDG_SESSION_DESKTOP=Hyprland"
"GDK_BACKEND=wayland,x11"
"GTK_THEME,${gtk.theme.name}"
"XCURSOR_THEME,${stylix.cursor.name}"
"XCURSOR_SIZE,${toString stylix.cursor.size}"
"XCURSOR_THEME,${gtk.cursorTheme.name}"
"XCURSOR_SIZE,${toString gtk.cursorTheme.size}"
"QT_AUTO_SCREEN_SCALE_FACTOR,1"
"QT_QPA_PLATFORM,wayland"
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
@ -91,7 +100,7 @@
];
exec-once = with config; [
"systemctl --user import-environment WAYLAND_DISPLAY QT_QPA_PLATFORMTHEME"
"${wayland.windowManager.hyprland.finalPackage}/bin/hyprctl setcursor ${stylix.cursor.name} ${toString stylix.cursor.name}"
"${wayland.windowManager.hyprland.finalPackage}/bin/hyprctl setcursor ${gtk.cursorTheme.name} ${toString gtk.cursorTheme.size}"
"${pkgs.swaynotificationcenter}/bin/swaync"
"${pkgs.libsForQt5.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1"
"${pkgs.protonmail-bridge}/bin/protonmail-bridge -n"
@ -127,9 +136,8 @@
smart_resizing = false;
drop_at_cursor = true;
};
general = with config.lib.stylix;
with colors; {
"col.active_border" = "rgb(${colors.${accentColour}})";
general = with scheme; {
"col.active_border" = "rgb(${scheme.${accentColour}})";
"col.inactive_border" = "rgb(${base03})";
gaps_in = 5;
gaps_out = 10;
@ -137,7 +145,7 @@
cursor_inactive_timeout = 0;
layout = "dwindle";
};
decoration = with config.lib.stylix.colors; {
decoration = with scheme; {
rounding = 10;
"col.shadow" = "rgba(0d${base00})";
drop_shadow = "yes";
@ -219,7 +227,8 @@
"pin, title:Picture-in-Picture,class:firefox"
# LibreOffice
"suppressevent fullscreen maximize, class:(libreoffice|soffice)(.*)"
"nofullscreenrequest, class:(libreoffice|soffice)(.*)"
"nomaximizerequest, class:(libreoffice|soffice)(.*)"
"float, title:Open,class:(libreoffice|soffice)(.*)"
# Steam
@ -231,7 +240,8 @@
"size 800 600, title:Steam Settings,class:steam"
# X2Go / NoMachine
"suppressevent fullscreen maximize, class:x2goclient|Nxplayer.bin"
"nofullscreenrequest, class:x2goclient|Nxplayer.bin"
"nomaximizerequest, class:x2goclient|Nxplayer.bin"
"float, title:(X2Go Client|Freia|Heimdall), class:x2goclient"
"float, title:NoMachine, class:Nxplayer.bin"
"center, title:(X2Go Client|Freia|Heimdall), class:x2goclient"
@ -263,7 +273,8 @@
# Open Hyprland wiki at correct version number
"CTRL_SHIFT, H, exec, xdg-open \"https://wiki.hyprland.org/$(hyprctl version -j | ${pkgs.jq}/bin/jq $args.commit | ${pkgs.gnused}/bin/sed s/v// | ${pkgs.gnused}/bin/sed s/\\\"//g)\""
"SUPER, F1, exec, ${pkgs.hyprlock}/bin/hyprlock"
# "SUPER, F1, exec, ${pkgs.hyprlock}/bin/hyprlock" # Until added to nixpkgs
"SUPER, F1, exec, ${swaylock.package}/bin/hyprlock"
"SUPER, Q, killactive,"
"SUPER SHIFT, Q, exec, pkill rofi || ${rofi.finalPackage}/bin/rofi -show powermenu -modi powermenu:${pkgs.rofi-power-menu}/bin/rofi-power-menu"
"SUPER, V, togglefloating"
@ -361,17 +372,20 @@
};
};
xdg.configFile = {
"hypr/hyprpaper.conf".text = ''
preload = ${config.stylix.image}
wallpaper = ,${config.stylix.image}
"hypr/hyprpaper.conf".text = let
image = ../../wallpapers/waves/cat-waves.png;
in ''
preload = ${image}
wallpaper = ,${image}
'';
"hypr/hyprlock.conf".text = with config.lib.stylix.colors; let
font = config.stylix.fonts.sansSerif.name;
accent = config.lib.stylix.colors.${accentColour};
"hypr/hyprlock.conf".text = with scheme; let
font = fonts.sansSerif.name;
accent = scheme.${accentColour};
in ''
# GENERAL
general {
disable_loading_bar = true
hide_cursor = true
}
# BACKGROUND
@ -407,13 +421,12 @@
}
# USER
label {
image {
monitor =
text = Logging in as <span foreground="##${accent}">$USER</span>
color = 0xff${base05}
font_size = 25
font_family = ${font}
position = 0, 50
path = ${../../picrew.png}
size = 100
border_color = 0xff${accent}
position = 0, 75
halign = center
valign = center
}
@ -430,7 +443,7 @@
inner_color = 0xff${base00}
font_color = 0xff${base05}
fade_on_empty = false
placeholder_text = <i><span foreground="##${base04}">Input Password...</span></i>
placeholder_text = <span foreground="##${base04}"><i>󰌾 Logged in as </i><span foreground="##${accent}">$USER</span></span>
hide_input = false
position = 0, -50
halign = center

View file

@ -1,15 +1,15 @@
{
config,
pkgs,
fonts,
scheme,
accentColour ? "base07",
...
}: {
home.packages = [pkgs.nyxt];
xdg = {
configFile = {
"nyxt/config.lisp".text = with config.stylix;
with config.lib.stylix.colors.withHashtag; let
accent = config.lib.stylix.colors.withHashtag.${accentColour};
"nyxt/config.lisp".text = with scheme.withHashtag; let
accent = scheme.withHashtag.${accentColour};
in ''
;; Import custom configuration
(nyxt::load-lisp "${./config.lisp}")

View file

@ -28,7 +28,7 @@
maxCacheTtl = 86400;
defaultCacheTtl = maxCacheTtl;
defaultCacheTtlSsh = maxCacheTtl;
pinentryPackage = lib.mkDefault pkgs.pinentry-curses;
pinentryFlavor = lib.mkDefault "curses";
extraConfig = ''
no-allow-external-cache
'';

View file

@ -1,11 +1,13 @@
{
config,
fonts,
scheme,
accentColour ? "base07",
...
}: {
programs.rofi = {
enable = true;
font = config.stylix.fonts.monospace.name;
font = fonts.monospace.name;
location = "center";
pass = {
enable = true;
@ -33,10 +35,9 @@
display-combi = " 󰛡 Combi ";
};
theme = with builtins;
with config.stylix;
with config.lib.stylix.colors; let
with scheme; let
inherit (config.lib.formats.rasi) mkLiteral;
bg = mkLiteral "rgba (${base00-rgb-r}, ${base00-rgb-g}, ${base00-rgb-b}, ${toString (floor (mul opacity.popups 100))}%)";
bg = mkLiteral "rgba (${base00-rgb-r}, ${base00-rgb-g}, ${base00-rgb-b}, 80%)";
bg2 = mkLiteral "rgba (${base01-rgb-r}, ${base01-rgb-g}, ${base01-rgb-b}, 100%)";
fg = mkLiteral withHashtag.base05;
fg2 = mkLiteral withHashtag.base04;
@ -46,7 +47,7 @@
"*" = {
background-color = mkLiteral "transparent";
text-color = fg;
font = with config.stylix.fonts; "${monospace.name} ${toString sizes.popups}";
font = with fonts; "${monospace.name} ${toString sizes.popups}";
};
window = {

View file

@ -2,13 +2,13 @@
programs.ssh = {
enable = true;
forwardAgent = true;
addKeysToAgent = "yes";
compression = true;
serverAliveInterval = 15;
serverAliveCountMax = 3;
controlMaster = "auto";
controlPersist = "10s";
extraConfig = ''
AddKeysToAgent=yes
SetEnv TERM=xterm-256color
'';
matchBlocks = {

View file

@ -3,7 +3,6 @@
pkgs,
...
}: {
stylix.targets.swaylock.enable = true;
programs.swaylock = {
enable = true;
package = pkgs.swaylock-effects;

View file

@ -1,16 +1,16 @@
{
config,
pkgs,
fonts,
scheme,
accentColour ? "base07",
...
}: {
home.packages = [pkgs.swaynotificationcenter];
xdg.configFile."swaync/style.css".text = with config.stylix;
with config.lib.stylix.colors; ''
xdg.configFile."swaync/style.css".text = with scheme; ''
* {
all: unset;
font-size: ${toString config.stylix.fonts.sizes.desktop}px;
font-family: "${config.stylix.fonts.monospace.name}";
font-size: ${toString fonts.sizes.desktop}px;
font-family: "${fonts.monospace.name}";
transition: 200ms;
}
@ -18,7 +18,7 @@
border-radius: 10px;
border: 1px solid ${withHashtag.${accentColour}};
margin: 18px;
background-color: rgba(${base00-rgb-r}, ${base00-rgb-g}, ${base00-rgb-b}, ${toString opacity.popups});
background-color: rgba(${base00-rgb-r}, ${base00-rgb-g}, ${base00-rgb-b}, 0.8);
color: ${withHashtag.base05};
padding: 0;
}
@ -141,7 +141,7 @@
border-radius: 10px;
border: 1px solid ${withHashtag.${accentColour}};
margin: 18px;
background-color: rgba(${base00-rgb-r}, ${base00-rgb-g}, ${base00-rgb-b}, ${toString opacity.popups});
background-color: rgba(${base00-rgb-r}, ${base00-rgb-g}, ${base00-rgb-b}, 0.8);
color: ${withHashtag.base05};
padding: 14px;
}

View file

@ -1,6 +1,8 @@
{
config,
pkgs,
fonts,
scheme,
accentColour ? "base07",
...
}: {
@ -236,14 +238,13 @@
"return-type" = "json";
};
tray = {
icon-size = config.stylix.fonts.sizes.desktop;
icon-size = fonts.sizes.desktop;
show-passive-items = true;
spacing = 5;
};
};
style = with config.stylix;
with config.lib.stylix.colors.withHashtag; let
accent = config.lib.stylix.colors.withHashtag.${accentColour};
style = with scheme.withHashtag; let
accent = scheme.withHashtag.${accentColour};
in ''
* {
all: unset;
@ -257,7 +258,7 @@
window > box {
color: ${base05};
background: alpha(${base00}, ${toString opacity.desktop});
background: alpha(${base00}, 0.8);
margin: 5px 10px 0px;
padding: 0px;
border: 1px solid ${accent};
@ -266,7 +267,7 @@
tooltip {
/* TODO make transparent when I can fix the blurls issue */
/* background: alpha(${base00}, ${toString opacity.popups}); */
/* background: alpha(${base00}, 0.8); */
background: ${base00};
border: 1px solid ${accent};
border-radius: 10px;

View file

@ -2,7 +2,7 @@
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
enableAutosuggestions = true;
syntaxHighlighting.enable = true;
enableVteIntegration = true;
autocd = true;

View file

@ -1,5 +1,9 @@
{pkgs, ...}: {
imports = [./registry.nix ./stylix.nix];
{
pkgs,
fonts,
...
}: {
imports = [./registry.nix];
boot.loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
@ -84,11 +88,23 @@
};
fonts = {
packages = with pkgs; [
fonts.serif.package
fonts.sansSerif.package
fonts.monospace.package
fonts.emoji.package
(nerdfonts.override {fonts = ["NerdFontsSymbolsOnly"];}) # Status bar
emacs-all-the-icons-fonts # Emacs
weather-icons # Emacs
lmodern # LaTeX
];
fontconfig.enable = true;
fontconfig = {
enable = true;
defaultFonts = {
serif = [fonts.serif.name];
sansSerif = [fonts.sansSerif.name];
monospace = [fonts.monospace.name];
emoji = [fonts.emoji.name];
};
};
};
}

View file

@ -14,7 +14,7 @@
GRIM_DEFAULT_DIR = "$HOME/Pictures/Grim";
};
systemPackages = with pkgs; [
hyprlock
swaylock-effects
hyprpaper
xdg-utils
wtype
@ -28,7 +28,10 @@
streamlink
];
};
security.pam.services.hyprlock = {};
security.pam.services = {
swaylock = {};
hyprlock = {};
};
services = {
xserver.enable = false;
blueman.enable = true;

View file

@ -1,44 +0,0 @@
{
lib,
pkgs,
catppuccinVariant ? "Mocha",
...
}: {
stylix = {
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-${lib.strings.toLower catppuccinVariant}.yaml";
autoEnable = false;
targets = {
chromium.enable = true;
console.enable = true;
};
image = ../wallpapers/waves/cat-waves.png;
polarity = "dark";
opacity = let
default = 0.80;
in {
applications = default;
desktop = default;
popups = default;
terminal = default;
};
cursor = let
variant = "${lib.strings.toLower catppuccinVariant}Dark";
in {
package = pkgs.catppuccin-cursors.${variant};
name = "Catppuccin-${catppuccinVariant}-Dark-Cursors";
};
fonts = {
sizes = {
applications = 16;
desktop = 20;
popups = 20;
terminal = 16;
};
emoji = {
name = "EmojiOne Color";
package = pkgs.emojione;
};
};
homeManagerIntegration.followSystem = true;
};
}