Compare commits

..

10 commits

Author SHA1 Message Date
Evie Litherland-Smith c7441b0a26 Switch to Forgejo from Gitea 2024-03-31 18:06:01 +01:00
Evie Litherland-Smith 7dbf3982b6 Fix bind to call swaylock 2024-03-31 13:19:33 +01:00
Evie Litherland-Smith ecc9fae75a 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.
2024-03-31 12:59:24 +01:00
Evie Litherland-Smith 6c9a91ded9 Remove remote workspace, replace with web browser workspace
Move waybar window and MPRIS modules to centre

Change Vanguard window rules to workspace rules to bind to specific
monitors
2024-03-31 08:23:29 +01:00
Evie Litherland-Smith 8752bb8fd6 Update nixpkgs 2024-03-31 07:46:21 +01:00
Evie Litherland-Smith 70697d91b2 Add Noson (for controlling Sonos speakers) 2024-03-30 11:32:05 +00:00
Evie Litherland-Smith 92a3951148 hyprland: change obs rule to workspace 3 2024-03-30 07:51:51 +00:00
Evie Litherland-Smith b662e6e24d Add noisetorch for microphone noise suppression 2024-03-30 07:48:27 +00:00
Evie Litherland-Smith 096d63efbf waybar: sort workspaces by number 2024-03-29 07:52:27 +00:00
Evie Litherland-Smith bf5a8f7d28 waybar: add max title length to MPRIS module 2024-03-29 07:49:16 +00:00
30 changed files with 8354 additions and 421 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": 1711523803,
"narHash": "sha256-UKcYiHWHQynzj6CN/vTcix4yd1eCu1uFdsuarupdCQQ=",
"owner": "NixOS",
"lastModified": 1711668574,
"narHash": "sha256-u1dfs0ASQIEr1icTVrsKwg2xToIpn7ZXxW3RHfHxshg=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "2726f127c15a4cc9810843b96cad73c7eb39e443",
"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 = {
@ -162,7 +178,7 @@
systemModules = [
./services/nix-serve.nix
./services/caddy.nix
./services/gitea.nix
./services/forgejo.nix
./services/grafana.nix
./services/minecraft.nix
./services/sshd.nix

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";
@ -189,10 +197,9 @@
++ (lib.lists.forEach layers ignorealpha);
windowrule = [
# Workspace binds
"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 2, firefox"
"workspace 3, (libreoffice|soffice)(.*)"
"workspace 4, (com.obsproject.Studio|WebCord|signal|whatsapp-for-linux|teams-for-linux)"
"workspace 5 silent, (steam|org.prismlauncher.PrismLauncher)" # Keep silent to avoid popups taking focus
# Float + move system windows
@ -220,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
@ -232,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"
@ -264,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/swaylock --screenshots --clock --indicator --grace-no-mouse"
"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"
@ -362,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
@ -408,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
}
@ -431,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;
@ -16,6 +15,7 @@
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 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",
...
}: {
@ -16,10 +18,11 @@
# Layout
"modules-left" = [
"hyprland/workspaces"
];
"modules-center" = [
"hyprland/window"
"mpris"
];
"modules-center" = [];
"modules-right" = [
"custom/notification"
"pulseaudio"
@ -58,9 +61,9 @@
format = "{icon}";
format-icons = {
"1" = "󰟀 ";
"2" = "󱧶 ";
"3" = "󰭻 ";
"4" = "󰢹 ";
"2" = "󰖟 ";
"3" = "󱧶 ";
"4" = "󰭻 ";
"5" = "󰹁 ";
"6" = "󰫃 ";
"7" = "󰫄 ";
@ -71,6 +74,8 @@
urgent = "󰁡 ";
};
show-special = false;
sort-by-number = true;
all-outputs = false;
persistent-workspaces = {
"1" = [];
"2" = [];
@ -80,10 +85,17 @@
};
};
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" = " ";
@ -226,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;
@ -247,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};
@ -256,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,14 +1,13 @@
{config, ...}: {
{
config,
pkgs,
...
}: {
users.mutableUsers = false;
system.autoUpgrade = {
enable = true;
flake = "git+${config.nix.registry.nixos.to.url}";
flags = [
"--update-input"
"nixpkgs"
"--no-write-lock-file"
"-L" # print build logs
];
flags = ["-L"]; # Print build logs
dates = "02:00";
randomizedDelaySec = "15min";
allowReboot = true;
@ -17,4 +16,5 @@
upper = "05:00";
};
};
environment.systemPackages = with pkgs; [nil];
}

View file

@ -1,9 +1,11 @@
{...}: {
wayland.windowManager.hyprland.settings = {
windowrule = [
"monitor HDMI-A-2, (signal|whatsapp-for-linux|teams-for-linux)"
"monitor DP-1, steam"
"monitor HDMI-A-2, (WebCord|com.obsproject.Studio)"
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"
];
monitor = [
"desc:Acer Technologies ED270R TJMEE0043W01,highrr,0x0,1.00,vrr,2"

21
services/forgejo.nix Normal file
View file

@ -0,0 +1,21 @@
{...}: {
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,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

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

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;
};
}