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

View file

@ -7,25 +7,23 @@
};
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
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";
};
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 = {
@ -41,28 +39,6 @@
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 {
@ -70,21 +46,18 @@
modules =
[
home-manager.nixosModules.home-manager
base16.nixosModule
stylix.nixosModules.stylix
./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_19;
package = pkgs.nixVersions.nix_2_21;
settings = {
cores = 0;
max-jobs = "auto";
@ -110,6 +83,17 @@
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};
@ -133,7 +117,7 @@
};
};
home-manager = {
extraSpecialArgs = {inherit (config) scheme;} // specialArgs;
extraSpecialArgs = specialArgs;
useGlobalPkgs = true;
useUserPackages = true;
users = {
@ -178,7 +162,7 @@
systemModules = [
./services/nix-serve.nix
./services/caddy.nix
./services/forgejo.nix
./services/gitea.nix
./services/grafana.nix
./services/minecraft.nix
./services/sshd.nix

View file

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

View file

@ -1,19 +1,20 @@
{
scheme,
config,
accentColour ? "base07",
...
}: {
services.avizo = {
enable = true;
settings.default = with scheme; let
accent = {
r = scheme."${accentColour}-rgb-r";
g = scheme."${accentColour}-rgb-g";
b = scheme."${accentColour}-rgb-b";
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";
};
in {
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)";
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})";
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

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",
...
}: {
programs.bottom = {
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];
in {
table_header_color = base05;
@ -17,9 +18,9 @@
swap_color = blue;
rx_color = green;
tx_color = blue;
widget_title_color = scheme.withHashtag.${accentColour};
widget_title_color = colors.withHashtag.${accentColour};
border_color = base02;
highlighted_border_color = scheme.withHashtag.${accentColour};
highlighted_border_color = colors.withHashtag.${accentColour};
text_color = base05;
graph_color = base04;
cursor_color = base02;

View file

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

View file

@ -1,6 +1,9 @@
{pkgs, ...}: {
{
config,
pkgs,
...
}: {
imports = [
./bat/default.nix
./git/default.nix
./ssh/default.nix
./nushell/default.nix
@ -9,9 +12,21 @@
./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;
@ -35,5 +50,9 @@
changeDirWidgetCommand = "${pkgs.fd}/bin/fd --type d";
fileWidgetCommand = "${pkgs.fd}/bin/fd --type f";
};
zellij = {
enable = true;
settings.default_layout = "compact";
};
};
}

View file

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

View file

@ -1,8 +1,4 @@
{
fonts,
scheme,
...
}: {
{config, ...}: {
programs.foot = {
enable = true;
server.enable = true;
@ -11,7 +7,7 @@
# term = "xterm-256color";
title = "foot";
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";
pad = "10x10";
};
@ -22,8 +18,8 @@
};
cursor = {blink = "yes";};
mouse = {hide-when-typing = "no";};
colors = with scheme; rec {
alpha = 0.8;
colors = with config.lib.stylix.colors; rec {
alpha = config.stylix.opacity.terminal;
background = base00;
foreground = base05;
regular0 = base02;

View file

@ -2,19 +2,17 @@
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
@ -39,7 +37,7 @@
zellij.settings.copy_command = "wl-copy";
};
services = {
gpg-agent.pinentryFlavor = "gtk2";
gpg-agent.pinentryPackage = pkgs.pinentry-gtk2;
avizo.enable = true;
syncthing.enable = true;
udiskie = {
@ -61,13 +59,6 @@
};
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 {
@ -90,8 +81,8 @@
"XDG_SESSION_DESKTOP=Hyprland"
"GDK_BACKEND=wayland,x11"
"GTK_THEME,${gtk.theme.name}"
"XCURSOR_THEME,${gtk.cursorTheme.name}"
"XCURSOR_SIZE,${toString gtk.cursorTheme.size}"
"XCURSOR_THEME,${stylix.cursor.name}"
"XCURSOR_SIZE,${toString stylix.cursor.size}"
"QT_AUTO_SCREEN_SCALE_FACTOR,1"
"QT_QPA_PLATFORM,wayland"
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
@ -100,7 +91,7 @@
];
exec-once = with config; [
"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.libsForQt5.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1"
"${pkgs.protonmail-bridge}/bin/protonmail-bridge -n"
@ -136,8 +127,9 @@
smart_resizing = false;
drop_at_cursor = true;
};
general = with scheme; {
"col.active_border" = "rgb(${scheme.${accentColour}})";
general = with config.lib.stylix;
with colors; {
"col.active_border" = "rgb(${colors.${accentColour}})";
"col.inactive_border" = "rgb(${base03})";
gaps_in = 5;
gaps_out = 10;
@ -145,7 +137,7 @@
cursor_inactive_timeout = 0;
layout = "dwindle";
};
decoration = with scheme; {
decoration = with config.lib.stylix.colors; {
rounding = 10;
"col.shadow" = "rgba(0d${base00})";
drop_shadow = "yes";
@ -197,9 +189,10 @@
++ (lib.lists.forEach layers ignorealpha);
windowrule = [
# Workspace binds
"workspace 2, firefox"
"workspace 3, (libreoffice|soffice)(.*)"
"workspace 4, (com.obsproject.Studio|WebCord|signal|whatsapp-for-linux|teams-for-linux)"
"workspace 1, com.obsproject.Studio"
"workspace 2, (libreoffice|soffice)(.*)"
"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
# Float + move system windows
@ -227,8 +220,7 @@
"pin, title:Picture-in-Picture,class:firefox"
# LibreOffice
"nofullscreenrequest, class:(libreoffice|soffice)(.*)"
"nomaximizerequest, class:(libreoffice|soffice)(.*)"
"suppressevent fullscreen maximize, class:(libreoffice|soffice)(.*)"
"float, title:Open,class:(libreoffice|soffice)(.*)"
# Steam
@ -240,8 +232,7 @@
"size 800 600, title:Steam Settings,class:steam"
# X2Go / NoMachine
"nofullscreenrequest, class:x2goclient|Nxplayer.bin"
"nomaximizerequest, class:x2goclient|Nxplayer.bin"
"suppressevent fullscreen maximize, 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"
@ -273,8 +264,7 @@
# 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" # Until added to nixpkgs
"SUPER, F1, exec, ${swaylock.package}/bin/swaylock --screenshots --clock --indicator --grace-no-mouse"
"SUPER, F1, exec, ${pkgs.hyprlock}/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"
@ -372,20 +362,17 @@
};
};
xdg.configFile = {
"hypr/hyprpaper.conf".text = let
image = ../../wallpapers/waves/cat-waves.png;
in ''
preload = ${image}
wallpaper = ,${image}
"hypr/hyprpaper.conf".text = ''
preload = ${config.stylix.image}
wallpaper = ,${config.stylix.image}
'';
"hypr/hyprlock.conf".text = with scheme; let
font = fonts.sansSerif.name;
accent = scheme.${accentColour};
"hypr/hyprlock.conf".text = with config.lib.stylix.colors; let
font = config.stylix.fonts.sansSerif.name;
accent = config.lib.stylix.colors.${accentColour};
in ''
# GENERAL
general {
disable_loading_bar = true
hide_cursor = true
}
# BACKGROUND
@ -421,12 +408,13 @@
}
# USER
image {
label {
monitor =
path = ${../../picrew.png}
size = 100
border_color = 0xff${accent}
position = 0, 75
text = Logging in as <span foreground="##${accent}">$USER</span>
color = 0xff${base05}
font_size = 25
font_family = ${font}
position = 0, 50
halign = center
valign = center
}
@ -443,7 +431,7 @@
inner_color = 0xff${base00}
font_color = 0xff${base05}
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
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 scheme.withHashtag; let
accent = scheme.withHashtag.${accentColour};
"nyxt/config.lisp".text = with config.stylix;
with config.lib.stylix.colors.withHashtag; let
accent = config.lib.stylix.colors.withHashtag.${accentColour};
in ''
;; Import custom configuration
(nyxt::load-lisp "${./config.lisp}")

View file

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

View file

@ -1,13 +1,11 @@
{
config,
fonts,
scheme,
accentColour ? "base07",
...
}: {
programs.rofi = {
enable = true;
font = fonts.monospace.name;
font = config.stylix.fonts.monospace.name;
location = "center";
pass = {
enable = true;
@ -35,9 +33,10 @@
display-combi = " 󰛡 Combi ";
};
theme = with builtins;
with scheme; let
with config.stylix;
with config.lib.stylix.colors; let
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%)";
fg = mkLiteral withHashtag.base05;
fg2 = mkLiteral withHashtag.base04;
@ -47,7 +46,7 @@
"*" = {
background-color = mkLiteral "transparent";
text-color = fg;
font = with fonts; "${monospace.name} ${toString sizes.popups}";
font = with config.stylix.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,6 +3,7 @@
pkgs,
...
}: {
stylix.targets.swaylock.enable = true;
programs.swaylock = {
enable = true;
package = pkgs.swaylock-effects;
@ -15,7 +16,6 @@
show-failed-attempts = true;
effect-blur = with config.wayland.windowManager.hyprland.settings.decoration.blur; "${toString size}x${toString passes}";
effect-vignette = "0.5:0.5";
grace = 2;
fade-in = 0.2;
};
};

View file

@ -1,16 +1,16 @@
{
config,
pkgs,
fonts,
scheme,
accentColour ? "base07",
...
}: {
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;
font-size: ${toString fonts.sizes.desktop}px;
font-family: "${fonts.monospace.name}";
font-size: ${toString config.stylix.fonts.sizes.desktop}px;
font-family: "${config.stylix.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}, 0.8);
background-color: rgba(${base00-rgb-r}, ${base00-rgb-g}, ${base00-rgb-b}, ${toString opacity.popups});
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}, 0.8);
background-color: rgba(${base00-rgb-r}, ${base00-rgb-g}, ${base00-rgb-b}, ${toString opacity.popups});
color: ${withHashtag.base05};
padding: 14px;
}

View file

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

View file

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

View file

@ -1,13 +1,14 @@
{
config,
pkgs,
...
}: {
{config, ...}: {
users.mutableUsers = false;
system.autoUpgrade = {
enable = true;
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";
randomizedDelaySec = "15min";
allowReboot = true;
@ -16,5 +17,4 @@
upper = "05:00";
};
};
environment.systemPackages = with pkgs; [nil];
}

View file

@ -1,11 +1,9 @@
{...}: {
wayland.windowManager.hyprland.settings = {
workspace = [
"1, monitor:desc:Acer Technologies ED270R TJMEE0043W01, default:true"
"2, monitor:desc:Ancor Communications Inc VS278 FALMQS032358, default:true"
"3, monitor:desc:Acer Technologies ED270R TJMEE0043W01"
"4, monitor:desc:Ancor Communications Inc VS278 FALMQS032358"
"5, monitor:desc:Acer Technologies ED270R TJMEE0043W01"
windowrule = [
"monitor HDMI-A-2, (signal|whatsapp-for-linux|teams-for-linux)"
"monitor DP-1, steam"
"monitor HDMI-A-2, (WebCord|com.obsproject.Studio)"
];
monitor = [
"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,
fonts,
...
}: {
imports = [./registry.nix];
{pkgs, ...}: {
imports = [./registry.nix ./stylix.nix];
boot.loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
@ -88,23 +84,11 @@
};
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;
defaultFonts = {
serif = [fonts.serif.name];
sansSerif = [fonts.sansSerif.name];
monospace = [fonts.monospace.name];
emoji = [fonts.emoji.name];
};
};
fontconfig.enable = true;
};
}

View file

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

View file

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