Compare commits

..

No commits in common. "c7441b0a26490dc5b6e9b62ad7a0c1b22db51b5b" and "c923221b7933c9b1f847190b55883aeae8c1a1ea" have entirely different histories.

30 changed files with 421 additions and 8354 deletions

View file

@ -5,11 +5,11 @@
"fromYaml": "fromYaml" "fromYaml": "fromYaml"
}, },
"locked": { "locked": {
"lastModified": 1709025227, "lastModified": 1708890466,
"narHash": "sha256-KXcORItjYJTdEO/BlBd0Uym1Xa3eBu43uvpFiWjJOdY=", "narHash": "sha256-LlrC09LoPi8OPYOGPXegD72v+//VapgAqhbOFS3i8sc=",
"owner": "SenchoPens", "owner": "SenchoPens",
"repo": "base16.nix", "repo": "base16.nix",
"rev": "4e9b16c8b44958bc6bf46d99c3bb1b59c9c9c764", "rev": "665b3c6748534eb766c777298721cece9453fdae",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -18,6 +18,151 @@
"type": "github" "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": { "fromYaml": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -34,6 +179,23 @@
"type": "github" "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": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -41,16 +203,36 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1710888565, "lastModified": 1711604890,
"narHash": "sha256-s9Hi4RHhc6yut4EcYD50sZWRDKsugBJHSbON8KFwoTw=", "narHash": "sha256-vbI/gxRTq/gHW1Q8z6D/7JG/qGNl3JTimUDX+MwnC3A=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "f33900124c23c4eca5831b9b5eb32ea5894375ce", "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",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "release-23.11",
"repo": "home-manager", "repo": "home-manager",
"type": "github" "type": "github"
} }
@ -91,42 +273,57 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1711668574, "lastModified": 1711523803,
"narHash": "sha256-u1dfs0ASQIEr1icTVrsKwg2xToIpn7ZXxW3RHfHxshg=", "narHash": "sha256-UKcYiHWHQynzj6CN/vTcix4yd1eCu1uFdsuarupdCQQ=",
"owner": "nixos", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "219951b495fc2eac67b1456824cc1ec1fd2ee659", "rev": "2726f127c15a4cc9810843b96cad73c7eb39e443",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "NixOS",
"ref": "nixos-23.11", "ref": "nixos-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"root": { "root": {
"inputs": { "inputs": {
"base16": "base16",
"home-manager": "home-manager", "home-manager": "home-manager",
"iosevka-custom": "iosevka-custom", "iosevka-custom": "iosevka-custom",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_2",
"tt-schemes": "tt-schemes" "stylix": "stylix"
} }
}, },
"tt-schemes": { "stylix": {
"flake": false, "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"
]
},
"locked": { "locked": {
"lastModified": 1711623106, "lastModified": 1711224130,
"narHash": "sha256-mKmQPUbZaOOnpwmfGHm+iujAqGWqlTaBi16R/FUFQh4=", "narHash": "sha256-RyOvyQASi5lvKLH5ISiGGkdX1eJxYF25aQALGfN9U0k=",
"owner": "tinted-theming", "owner": "danth",
"repo": "schemes", "repo": "stylix",
"rev": "45f3d879fb64276df7e69c18f7adbb88938e10e7", "rev": "53d3e5d5b36a5227b906e00d7e884dcfb7852403",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "tinted-theming", "owner": "danth",
"repo": "schemes", "repo": "stylix",
"type": "github" "type": "github"
} }
} }

View file

@ -7,25 +7,23 @@
}; };
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
home-manager = { home-manager = {
url = "github:nix-community/home-manager/release-23.11"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
stylix = {
url = "github:danth/stylix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
iosevka-custom.url = "git+https://git.xenia.me.uk/pixelifytica/iosevka.git"; 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 = { outputs = {
nixpkgs, nixpkgs,
home-manager, home-manager,
stylix,
iosevka-custom, iosevka-custom,
base16,
tt-schemes,
... ...
}: let }: let
systemConfig = { systemConfig = {
@ -41,28 +39,6 @@
inherit hostName user; inherit hostName user;
accentColour = "base07"; # catppuccin lavender accentColour = "base07"; # catppuccin lavender
catppuccinVariant = "Mocha"; 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 in
nixpkgs.lib.nixosSystem { nixpkgs.lib.nixosSystem {
@ -70,21 +46,18 @@
modules = modules =
[ [
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
base16.nixosModule stylix.nixosModules.stylix
./hosts/${hostName}/configuration.nix ./hosts/${hostName}/configuration.nix
./hosts/${hostName}/hardware-configuration.nix ./hosts/${hostName}/hardware-configuration.nix
./system/default.nix ./system/default.nix
({ ({
config,
lib, lib,
pkgs, pkgs,
catppuccinVariant ? "Mocha",
... ...
}: { }: {
scheme = "${tt-schemes}/base16/catppuccin-${lib.strings.toLower catppuccinVariant}.yaml";
nix = { nix = {
enable = true; enable = true;
package = pkgs.nixVersions.nix_2_19; package = pkgs.nixVersions.nix_2_21;
settings = { settings = {
cores = 0; cores = 0;
max-jobs = "auto"; max-jobs = "auto";
@ -110,6 +83,17 @@
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
networking = {inherit hostName;}; networking = {inherit hostName;};
programs.${defaultUserShell}.enable = true; 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;}; system = {inherit stateVersion;};
users = { users = {
defaultUserShell = pkgs.${defaultUserShell}; defaultUserShell = pkgs.${defaultUserShell};
@ -133,7 +117,7 @@
}; };
}; };
home-manager = { home-manager = {
extraSpecialArgs = {inherit (config) scheme;} // specialArgs; extraSpecialArgs = specialArgs;
useGlobalPkgs = true; useGlobalPkgs = true;
useUserPackages = true; useUserPackages = true;
users = { users = {
@ -178,7 +162,7 @@
systemModules = [ systemModules = [
./services/nix-serve.nix ./services/nix-serve.nix
./services/caddy.nix ./services/caddy.nix
./services/forgejo.nix ./services/gitea.nix
./services/grafana.nix ./services/grafana.nix
./services/minecraft.nix ./services/minecraft.nix
./services/sshd.nix ./services/sshd.nix

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -2,19 +2,17 @@
config, config,
lib, lib,
pkgs, pkgs,
fonts,
scheme,
accentColour ? "base07", accentColour ? "base07",
catppuccinVariant ? "Mocha", catppuccinVariant ? "Mocha",
... ...
}: { }: {
stylix.targets.xresources.enable = true;
imports = [ imports = [
../default.nix ../default.nix
../email/default.nix ../email/default.nix
../password-store/default.nix ../password-store/default.nix
../waybar/default.nix ../waybar/default.nix
../rofi/default.nix ../rofi/default.nix
../swaylock/default.nix
../swaync/default.nix ../swaync/default.nix
../avizo/default.nix ../avizo/default.nix
../alacritty/default.nix ../alacritty/default.nix
@ -39,7 +37,7 @@
zellij.settings.copy_command = "wl-copy"; zellij.settings.copy_command = "wl-copy";
}; };
services = { services = {
gpg-agent.pinentryFlavor = "gtk2"; gpg-agent.pinentryPackage = pkgs.pinentry-gtk2;
avizo.enable = true; avizo.enable = true;
syncthing.enable = true; syncthing.enable = true;
udiskie = { udiskie = {
@ -61,13 +59,6 @@
}; };
name = "Papirus-Dark"; 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 = { theme = {
package = with lib.strings; package = with lib.strings;
pkgs.catppuccin-gtk.override { pkgs.catppuccin-gtk.override {
@ -90,8 +81,8 @@
"XDG_SESSION_DESKTOP=Hyprland" "XDG_SESSION_DESKTOP=Hyprland"
"GDK_BACKEND=wayland,x11" "GDK_BACKEND=wayland,x11"
"GTK_THEME,${gtk.theme.name}" "GTK_THEME,${gtk.theme.name}"
"XCURSOR_THEME,${gtk.cursorTheme.name}" "XCURSOR_THEME,${stylix.cursor.name}"
"XCURSOR_SIZE,${toString gtk.cursorTheme.size}" "XCURSOR_SIZE,${toString stylix.cursor.size}"
"QT_AUTO_SCREEN_SCALE_FACTOR,1" "QT_AUTO_SCREEN_SCALE_FACTOR,1"
"QT_QPA_PLATFORM,wayland" "QT_QPA_PLATFORM,wayland"
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1" "QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
@ -100,7 +91,7 @@
]; ];
exec-once = with config; [ exec-once = with config; [
"systemctl --user import-environment WAYLAND_DISPLAY QT_QPA_PLATFORMTHEME" "systemctl --user import-environment WAYLAND_DISPLAY QT_QPA_PLATFORMTHEME"
"${wayland.windowManager.hyprland.finalPackage}/bin/hyprctl setcursor ${gtk.cursorTheme.name} ${toString gtk.cursorTheme.size}" "${wayland.windowManager.hyprland.finalPackage}/bin/hyprctl setcursor ${stylix.cursor.name} ${toString stylix.cursor.name}"
"${pkgs.swaynotificationcenter}/bin/swaync" "${pkgs.swaynotificationcenter}/bin/swaync"
"${pkgs.libsForQt5.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1" "${pkgs.libsForQt5.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1"
"${pkgs.protonmail-bridge}/bin/protonmail-bridge -n" "${pkgs.protonmail-bridge}/bin/protonmail-bridge -n"
@ -136,8 +127,9 @@
smart_resizing = false; smart_resizing = false;
drop_at_cursor = true; drop_at_cursor = true;
}; };
general = with scheme; { general = with config.lib.stylix;
"col.active_border" = "rgb(${scheme.${accentColour}})"; with colors; {
"col.active_border" = "rgb(${colors.${accentColour}})";
"col.inactive_border" = "rgb(${base03})"; "col.inactive_border" = "rgb(${base03})";
gaps_in = 5; gaps_in = 5;
gaps_out = 10; gaps_out = 10;
@ -145,7 +137,7 @@
cursor_inactive_timeout = 0; cursor_inactive_timeout = 0;
layout = "dwindle"; layout = "dwindle";
}; };
decoration = with scheme; { decoration = with config.lib.stylix.colors; {
rounding = 10; rounding = 10;
"col.shadow" = "rgba(0d${base00})"; "col.shadow" = "rgba(0d${base00})";
drop_shadow = "yes"; drop_shadow = "yes";
@ -197,9 +189,10 @@
++ (lib.lists.forEach layers ignorealpha); ++ (lib.lists.forEach layers ignorealpha);
windowrule = [ windowrule = [
# Workspace binds # Workspace binds
"workspace 2, firefox" "workspace 1, com.obsproject.Studio"
"workspace 3, (libreoffice|soffice)(.*)" "workspace 2, (libreoffice|soffice)(.*)"
"workspace 4, (com.obsproject.Studio|WebCord|signal|whatsapp-for-linux|teams-for-linux)" "workspace 3, (WebCord|signal|whatsapp-for-linux|teams-for-linux)"
"workspace 4, (x2goclient|Nxplayer.bin)"
"workspace 5 silent, (steam|org.prismlauncher.PrismLauncher)" # Keep silent to avoid popups taking focus "workspace 5 silent, (steam|org.prismlauncher.PrismLauncher)" # Keep silent to avoid popups taking focus
# Float + move system windows # Float + move system windows
@ -227,8 +220,7 @@
"pin, title:Picture-in-Picture,class:firefox" "pin, title:Picture-in-Picture,class:firefox"
# LibreOffice # LibreOffice
"nofullscreenrequest, class:(libreoffice|soffice)(.*)" "suppressevent fullscreen maximize, class:(libreoffice|soffice)(.*)"
"nomaximizerequest, class:(libreoffice|soffice)(.*)"
"float, title:Open,class:(libreoffice|soffice)(.*)" "float, title:Open,class:(libreoffice|soffice)(.*)"
# Steam # Steam
@ -240,8 +232,7 @@
"size 800 600, title:Steam Settings,class:steam" "size 800 600, title:Steam Settings,class:steam"
# X2Go / NoMachine # X2Go / NoMachine
"nofullscreenrequest, class:x2goclient|Nxplayer.bin" "suppressevent fullscreen maximize, class:x2goclient|Nxplayer.bin"
"nomaximizerequest, class:x2goclient|Nxplayer.bin"
"float, title:(X2Go Client|Freia|Heimdall), class:x2goclient" "float, title:(X2Go Client|Freia|Heimdall), class:x2goclient"
"float, title:NoMachine, class:Nxplayer.bin" "float, title:NoMachine, class:Nxplayer.bin"
"center, title:(X2Go Client|Freia|Heimdall), class:x2goclient" "center, title:(X2Go Client|Freia|Heimdall), class:x2goclient"
@ -273,8 +264,7 @@
# Open Hyprland wiki at correct version number # 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)\"" "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" # Until added to nixpkgs "SUPER, F1, exec, ${pkgs.hyprlock}/bin/hyprlock"
"SUPER, F1, exec, ${swaylock.package}/bin/swaylock --screenshots --clock --indicator --grace-no-mouse"
"SUPER, Q, killactive," "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 SHIFT, Q, exec, pkill rofi || ${rofi.finalPackage}/bin/rofi -show powermenu -modi powermenu:${pkgs.rofi-power-menu}/bin/rofi-power-menu"
"SUPER, V, togglefloating" "SUPER, V, togglefloating"
@ -372,20 +362,17 @@
}; };
}; };
xdg.configFile = { xdg.configFile = {
"hypr/hyprpaper.conf".text = let "hypr/hyprpaper.conf".text = ''
image = ../../wallpapers/waves/cat-waves.png; preload = ${config.stylix.image}
in '' wallpaper = ,${config.stylix.image}
preload = ${image}
wallpaper = ,${image}
''; '';
"hypr/hyprlock.conf".text = with scheme; let "hypr/hyprlock.conf".text = with config.lib.stylix.colors; let
font = fonts.sansSerif.name; font = config.stylix.fonts.sansSerif.name;
accent = scheme.${accentColour}; accent = config.lib.stylix.colors.${accentColour};
in '' in ''
# GENERAL # GENERAL
general { general {
disable_loading_bar = true disable_loading_bar = true
hide_cursor = true
} }
# BACKGROUND # BACKGROUND
@ -421,12 +408,13 @@
} }
# USER # USER
image { label {
monitor = monitor =
path = ${../../picrew.png} text = Logging in as <span foreground="##${accent}">$USER</span>
size = 100 color = 0xff${base05}
border_color = 0xff${accent} font_size = 25
position = 0, 75 font_family = ${font}
position = 0, 50
halign = center halign = center
valign = center valign = center
} }
@ -443,7 +431,7 @@
inner_color = 0xff${base00} inner_color = 0xff${base00}
font_color = 0xff${base05} font_color = 0xff${base05}
fade_on_empty = false fade_on_empty = false
placeholder_text = <span foreground="##${base04}"><i>󰌾 Logged in as </i><span foreground="##${accent}">$USER</span></span> placeholder_text = <i><span foreground="##${base04}">Input Password...</span></i>
hide_input = false hide_input = false
position = 0, -50 position = 0, -50
halign = center halign = center

View file

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

View file

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

View file

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

View file

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

View file

@ -3,6 +3,7 @@
pkgs, pkgs,
... ...
}: { }: {
stylix.targets.swaylock.enable = true;
programs.swaylock = { programs.swaylock = {
enable = true; enable = true;
package = pkgs.swaylock-effects; package = pkgs.swaylock-effects;
@ -15,7 +16,6 @@
show-failed-attempts = true; show-failed-attempts = true;
effect-blur = with config.wayland.windowManager.hyprland.settings.decoration.blur; "${toString size}x${toString passes}"; effect-blur = with config.wayland.windowManager.hyprland.settings.decoration.blur; "${toString size}x${toString passes}";
effect-vignette = "0.5:0.5"; effect-vignette = "0.5:0.5";
grace = 2;
fade-in = 0.2; fade-in = 0.2;
}; };
}; };

View file

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

View file

@ -1,8 +1,6 @@
{ {
config, config,
pkgs, pkgs,
fonts,
scheme,
accentColour ? "base07", accentColour ? "base07",
... ...
}: { }: {
@ -18,11 +16,10 @@
# Layout # Layout
"modules-left" = [ "modules-left" = [
"hyprland/workspaces" "hyprland/workspaces"
];
"modules-center" = [
"hyprland/window" "hyprland/window"
"mpris" "mpris"
]; ];
"modules-center" = [];
"modules-right" = [ "modules-right" = [
"custom/notification" "custom/notification"
"pulseaudio" "pulseaudio"
@ -61,9 +58,9 @@
format = "{icon}"; format = "{icon}";
format-icons = { format-icons = {
"1" = "󰟀 "; "1" = "󰟀 ";
"2" = "󰖟 "; "2" = "󱧶 ";
"3" = "󱧶 "; "3" = "󰭻 ";
"4" = "󰭻 "; "4" = "󰢹 ";
"5" = "󰹁 "; "5" = "󰹁 ";
"6" = "󰫃 "; "6" = "󰫃 ";
"7" = "󰫄 "; "7" = "󰫄 ";
@ -74,8 +71,6 @@
urgent = "󰁡 "; urgent = "󰁡 ";
}; };
show-special = false; show-special = false;
sort-by-number = true;
all-outputs = false;
persistent-workspaces = { persistent-workspaces = {
"1" = []; "1" = [];
"2" = []; "2" = [];
@ -85,17 +80,10 @@
}; };
}; };
mpris = { mpris = {
"format" = "{player_icon} {status_icon} {artist} - {title}"; "format" = "| {player_icon} {status_icon} {artist} - {title}";
"tooltip-format" = "{player_icon} ({player}) {dynamic}"; "tooltip-format" = "{player_icon} ({player}) {dynamic}";
"title-len" = 48;
"interval" = 1; "interval" = 1;
"dynamic-order" = [ "dynamic-order" = ["album" "artist" "title" "position" "length"];
"album"
"artist"
"title"
"position"
"length"
];
"player-icons" = { "player-icons" = {
"default" = "󰲸 "; "default" = "󰲸 ";
"emms" = " "; "emms" = " ";
@ -238,13 +226,14 @@
"return-type" = "json"; "return-type" = "json";
}; };
tray = { tray = {
icon-size = fonts.sizes.desktop; icon-size = config.stylix.fonts.sizes.desktop;
show-passive-items = true; show-passive-items = true;
spacing = 5; spacing = 5;
}; };
}; };
style = with scheme.withHashtag; let style = with config.stylix;
accent = scheme.withHashtag.${accentColour}; with config.lib.stylix.colors.withHashtag; let
accent = config.lib.stylix.colors.withHashtag.${accentColour};
in '' in ''
* { * {
all: unset; all: unset;
@ -258,7 +247,7 @@
window > box { window > box {
color: ${base05}; color: ${base05};
background: alpha(${base00}, 0.8); background: alpha(${base00}, ${toString opacity.desktop});
margin: 5px 10px 0px; margin: 5px 10px 0px;
padding: 0px; padding: 0px;
border: 1px solid ${accent}; border: 1px solid ${accent};
@ -267,7 +256,7 @@
tooltip { tooltip {
/* TODO make transparent when I can fix the blurls issue */ /* TODO make transparent when I can fix the blurls issue */
/* background: alpha(${base00}, 0.8); */ /* background: alpha(${base00}, ${toString opacity.popups}); */
background: ${base00}; background: ${base00};
border: 1px solid ${accent}; border: 1px solid ${accent};
border-radius: 10px; border-radius: 10px;

View file

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

View file

@ -1,13 +1,14 @@
{ {config, ...}: {
config,
pkgs,
...
}: {
users.mutableUsers = false; users.mutableUsers = false;
system.autoUpgrade = { system.autoUpgrade = {
enable = true; enable = true;
flake = "git+${config.nix.registry.nixos.to.url}"; flake = "git+${config.nix.registry.nixos.to.url}";
flags = ["-L"]; # Print build logs flags = [
"--update-input"
"nixpkgs"
"--no-write-lock-file"
"-L" # print build logs
];
dates = "02:00"; dates = "02:00";
randomizedDelaySec = "15min"; randomizedDelaySec = "15min";
allowReboot = true; allowReboot = true;
@ -16,5 +17,4 @@
upper = "05:00"; upper = "05:00";
}; };
}; };
environment.systemPackages = with pkgs; [nil];
} }

View file

@ -1,11 +1,9 @@
{...}: { {...}: {
wayland.windowManager.hyprland.settings = { wayland.windowManager.hyprland.settings = {
workspace = [ windowrule = [
"1, monitor:desc:Acer Technologies ED270R TJMEE0043W01, default:true" "monitor HDMI-A-2, (signal|whatsapp-for-linux|teams-for-linux)"
"2, monitor:desc:Ancor Communications Inc VS278 FALMQS032358, default:true" "monitor DP-1, steam"
"3, monitor:desc:Acer Technologies ED270R TJMEE0043W01" "monitor HDMI-A-2, (WebCord|com.obsproject.Studio)"
"4, monitor:desc:Ancor Communications Inc VS278 FALMQS032358"
"5, monitor:desc:Acer Technologies ED270R TJMEE0043W01"
]; ];
monitor = [ monitor = [
"desc:Acer Technologies ED270R TJMEE0043W01,highrr,0x0,1.00,vrr,2" "desc:Acer Technologies ED270R TJMEE0043W01,highrr,0x0,1.00,vrr,2"

View file

@ -1,21 +0,0 @@
{...}: {
imports = [./caddy.nix];
services = {
forgejo = {
enable = true;
settings = {
server = {
ROOT_URL = "https://git.xenia.me.uk";
DOMAIN = "git.xenia.me.uk";
HTTP_ADDR = "127.0.0.1";
HTTP_PORT = 3100;
DISABLE_SSH = true;
};
ui = {DEFAULT_THEME = "auto";};
admin = {DISABLE_REGULAR_ORG_CREATION = true;};
service = {DISABLE_REGISTRATION = true;};
};
};
caddy.virtualHosts."git.xenia.me.uk".extraConfig = "reverse_proxy http://localhost:3100";
};
}

View file

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

View file

@ -13,7 +13,6 @@
hunspellDicts.en_GB-large hunspellDicts.en_GB-large
libreoffice-fresh libreoffice-fresh
inkscape inkscape
noson
webcord webcord
signal-desktop signal-desktop
whatsapp-for-linux whatsapp-for-linux
@ -51,10 +50,7 @@
options = "ctrl:nocaps"; options = "ctrl:nocaps";
}; };
}; };
programs = { programs.dconf.enable = true;
dconf.enable = true;
noisetorch.enable = true;
};
gtk.iconCache.enable = true; gtk.iconCache.enable = true;
qt = { qt = {
enable = true; enable = true;

View file

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

44
system/stylix.nix Normal file
View file

@ -0,0 +1,44 @@
{
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;
};
}