Anthony Rodriguez
a3c356c3c6
I've decided to switch to Hyprland again, after having issues with Niri, especially with XWayland apps. It also has better and more widespread integration with other pieces of software that I use/plan to use. commit5a42498391
Author: Anthony Rodriguez <anthony@nezia.dev> Date: Fri Dec 13 16:59:37 2024 +0100 modules/theme: update fuzzel selection colors commitf3386f5b0a
Author: Anthony Rodriguez <anthony@nezia.dev> Date: Fri Dec 13 16:53:57 2024 +0100 system/services/greetd: enable gnome keyring commitc1caf6d844
Author: Anthony Rodriguez <anthony@nezia.dev> Date: Fri Dec 13 16:51:24 2024 +0100 modules/themes: switch to phinger-cursors, update border colors commitaa7a00d330
Author: Anthony Rodriguez <anthony@nezia.dev> Date: Fri Dec 13 14:54:43 2024 +0100 hosts/solaire: switch to hyprland commit7c7a332a3e
Author: Anthony Rodriguez <anthony@nezia.dev> Date: Fri Dec 13 14:54:34 2024 +0100 modules/theme: set default theme to catppuccin (again) commit471c6b5503
Author: Anthony Rodriguez <anthony@nezia.dev> Date: Fri Dec 13 14:54:24 2024 +0100 flake: add hyprwm-contrib for grimslurp commit04914eab73
Author: Anthony Rodriguez <anthony@nezia.dev> Date: Fri Dec 13 14:54:09 2024 +0100 system/services/greetd: switch to hyprland as compositor (thanks jacekpoz) commitd185864012
Author: Anthony Rodriguez <anthony@nezia.dev> Date: Fri Dec 13 14:52:56 2024 +0100 home/services/swaync: remove unused variables commit75ff00b2e2
Author: Anthony Rodriguez <anthony@nezia.dev> Date: Fri Dec 13 14:52:43 2024 +0100 home/programs/waybar: add hyprland workspaces commitb36b3abf53
Author: Anthony Rodriguez <anthony@nezia.dev> Date: Fri Dec 13 14:52:31 2024 +0100 home/programs/hypr: add basic hyprland configuration commitcdda6bf2bc
Author: Anthony Rodriguez <anthony@nezia.dev> Date: Fri Dec 13 12:03:53 2024 +0100 system/programs: add hyprland module commitef36f7be36
Author: Anthony Rodriguez <anthony@nezia.dev> Date: Fri Dec 13 12:03:43 2024 +0100 flake: add hyprland and cachix commitcdbcd8d1bd
Author: Anthony Rodriguez <anthony@nezia.dev> Date: Fri Dec 13 12:03:37 2024 +0100 system/nix: add wheel to trusted users
297 lines
10 KiB
Nix
297 lines
10 KiB
Nix
{
|
|
inputs,
|
|
config,
|
|
lib,
|
|
lib',
|
|
pkgs,
|
|
...
|
|
}: let
|
|
inherit (lib) mkEnableOption mkOption mkIf attrNames;
|
|
inherit (lib.strings) removePrefix;
|
|
inherit (lib.types) path package enum;
|
|
inherit (lib') generateGtkColors rgba;
|
|
cfg = config.theme;
|
|
in {
|
|
imports = [
|
|
./gtk.nix
|
|
inputs.niri.nixosModules.niri
|
|
inputs.hyprland.nixosModules.default
|
|
];
|
|
options.theme = {
|
|
enable = mkEnableOption "theme";
|
|
schemeName = mkOption {
|
|
description = ''
|
|
Name of the tinted-theming color scheme to use.
|
|
'';
|
|
type = enum (attrNames inputs.basix.schemeData.base16);
|
|
example = "catppuccin-mocha";
|
|
default = "catppuccin-mocha";
|
|
};
|
|
|
|
wallpaper = mkOption {
|
|
description = ''
|
|
Location of the wallpaper that will be used throughout the system.
|
|
'';
|
|
type = path;
|
|
example = lib.literalExpression "./wallpaper.png";
|
|
default = pkgs.fetchurl {
|
|
url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/e0cf0eb237dc5baba86661a3572b20a6183c1876/wallpapers/nix-wallpaper-nineish-catppuccin-frappe.png?raw=true";
|
|
hash = "sha256-/HAtpGwLxjNfJvX5/4YZfM8jPNStaM3gisK8+ImRmQ4=";
|
|
};
|
|
};
|
|
|
|
cursorTheme = {
|
|
name = mkOption {
|
|
description = ''
|
|
Name of the cursor theme.
|
|
'';
|
|
default = "phinger-cursors-dark";
|
|
};
|
|
package = mkOption {
|
|
type = package;
|
|
description = ''
|
|
Package providing the cursor theme.
|
|
'';
|
|
default = pkgs.phinger-cursors;
|
|
};
|
|
size = mkOption {
|
|
description = ''
|
|
Size of the cursor.
|
|
'';
|
|
default = 32;
|
|
};
|
|
};
|
|
};
|
|
config = let
|
|
scheme = inputs.basix.schemeData.base16.${config.theme.schemeName};
|
|
in
|
|
mkIf cfg.enable
|
|
{
|
|
home-manager.users.nezia = {
|
|
home.pointerCursor = {
|
|
inherit (config.theme.cursorTheme) name package size;
|
|
x11.enable = true;
|
|
gtk.enable = true;
|
|
};
|
|
|
|
services.swaync.style =
|
|
generateGtkColors lib scheme.palette;
|
|
|
|
wayland.windowManager.hyprland.settings = {
|
|
env = [
|
|
"HYPRCURSOR_THEME,phinger-cursors-light"
|
|
"HYPRCURSOR_SIZE,32"
|
|
];
|
|
general = {
|
|
border_size = 4;
|
|
"col.active_border" = "rgb(${removePrefix "#" scheme.palette.base0E})";
|
|
};
|
|
decoration = {
|
|
rounding = 10;
|
|
blur.enabled = true;
|
|
};
|
|
};
|
|
programs = {
|
|
niri = {
|
|
settings = {
|
|
layout.focus-ring.active.color = scheme.palette.base0D;
|
|
cursor = {
|
|
inherit (config.theme.cursorTheme) size;
|
|
theme = config.theme.cursorTheme.name;
|
|
};
|
|
};
|
|
};
|
|
|
|
foot.settings.colors = let
|
|
# because someone thought this was a great idea: https://github.com/tinted-theming/schemes/commit/61058a8d2e2bd4482b53d57a68feb56cdb991f0b
|
|
palette = builtins.mapAttrs (_: color: removePrefix "#" color) scheme.palette;
|
|
in {
|
|
background = palette.base00;
|
|
foreground = palette.base05;
|
|
|
|
regular0 = palette.base00;
|
|
regular1 = palette.base08;
|
|
regular2 = palette.base0B;
|
|
regular3 = palette.base0A;
|
|
regular4 = palette.base0D;
|
|
regular5 = palette.base0E;
|
|
regular6 = palette.base0C;
|
|
regular7 = palette.base05;
|
|
|
|
bright0 = palette.base02;
|
|
bright1 = palette.base08;
|
|
bright2 = palette.base0B;
|
|
bright3 = palette.base0A;
|
|
bright4 = palette.base0D;
|
|
bright5 = palette.base0E;
|
|
bright6 = palette.base0C;
|
|
bright7 = palette.base07;
|
|
|
|
"16" = palette.base09;
|
|
"17" = palette.base0F;
|
|
"18" = palette.base01;
|
|
"19" = palette.base02;
|
|
"20" = palette.base04;
|
|
"21" = palette.base06;
|
|
};
|
|
|
|
waybar.style =
|
|
generateGtkColors lib scheme.palette;
|
|
|
|
fuzzel.settings = {
|
|
main = {
|
|
font = "sans-serif:size=16";
|
|
};
|
|
colors = {
|
|
background = "${scheme.palette.base01}f2";
|
|
text = "${scheme.palette.base05}ff";
|
|
match = "${scheme.palette.base0E}ff";
|
|
selection = "${scheme.palette.base03}ff";
|
|
selection-text = "${scheme.palette.base06}ff";
|
|
selection-match = "${scheme.palette.base0E}ff";
|
|
border = "${scheme.palette.base0E}ff";
|
|
};
|
|
};
|
|
|
|
swaylock.settings = {
|
|
inside-color = scheme.palette.base01;
|
|
line-color = scheme.palette.base01;
|
|
ring-color = scheme.palette.base05;
|
|
text-color = scheme.palette.base05;
|
|
|
|
inside-clear-color = scheme.palette.base0A;
|
|
line-clear-color = scheme.palette.base0A;
|
|
ring-clear-color = scheme.palette.base00;
|
|
text-clear-color = scheme.palette.base00;
|
|
|
|
inside-caps-lock-color = scheme.palette.base03;
|
|
line-caps-lock-color = scheme.palette.base03;
|
|
ring-caps-lock-color = scheme.palette.base00;
|
|
text-caps-lock-color = scheme.palette.base00;
|
|
|
|
inside-ver-color = scheme.palette.base0D;
|
|
line-ver-color = scheme.palette.base0D;
|
|
ring-ver-color = scheme.palette.base00;
|
|
text-ver-color = scheme.palette.base00;
|
|
|
|
inside-wrong-color = scheme.palette.base08;
|
|
line-wrong-color = scheme.palette.base08;
|
|
ring-wrong-color = scheme.palette.base00;
|
|
text-wrong-color = scheme.palette.base00;
|
|
|
|
caps-lock-bs-hl-color = scheme.palette.base08;
|
|
caps-lock-key-hl-color = scheme.palette.base0D;
|
|
bs-hl-color = scheme.palette.base08;
|
|
key-hl-color = scheme.palette.base0D;
|
|
|
|
separator-color = "#00000000"; # transparent
|
|
layout-bg-color = "#00000050"; # semi-transparent black
|
|
};
|
|
|
|
zathura.options = {
|
|
default-fg = scheme.palette.base01;
|
|
default-bg = scheme.palette.base00;
|
|
|
|
completion-bg = scheme.palette.base01;
|
|
completion-fg = scheme.palette.base0D;
|
|
completion-highlight-bg = scheme.palette.base0D;
|
|
completion-highlight-fg = scheme.palette.base07;
|
|
|
|
statusbar-fg = scheme.palette.base04;
|
|
statusbar-bg = scheme.palette.base02;
|
|
|
|
notification-bg = scheme.palette.base00;
|
|
notification-fg = scheme.palette.base07;
|
|
notification-error-bg = scheme.palette.base00;
|
|
notification-error-fg = scheme.palette.base08;
|
|
notification-warning-bg = scheme.palette.base00;
|
|
notification-warning-fg = scheme.palette.base0A;
|
|
|
|
inputbar-fg = scheme.palette.base07;
|
|
inputbar-bg = scheme.palette.base00;
|
|
|
|
recolor = false;
|
|
recolor-keephue = false;
|
|
recolor-lightcolor = scheme.palette.base00;
|
|
recolor-darkcolor = scheme.palette.base06;
|
|
|
|
highlight-color = scheme.palette.base0A;
|
|
highlight-active-color = scheme.palette.base0D;
|
|
};
|
|
|
|
gnome-terminal.profile = {
|
|
"4621184a-b921-42cf-80a0-7784516606f2".colors = {
|
|
backgroundColor = "#${scheme.palette.base00}";
|
|
foregroundColor = "#${scheme.palette.base05}" "#${scheme.palette.base05}";
|
|
palette = builtins.attrValues (builtins.mapAttrs (_: color: "#${color}") scheme.palette);
|
|
};
|
|
};
|
|
|
|
fish.interactiveShellInit = ''
|
|
set fish_cursor_default block blink
|
|
set fish_cursor_insert line blink
|
|
set fish_cursor_replace_one underscore blink
|
|
set fish_cursor_visual block
|
|
|
|
set -x fish_color_autosuggestion brblack
|
|
set -x fish_color_cancel -r
|
|
set -x fish_color_command brgreen
|
|
set -x fish_color_comment brmagenta
|
|
set -x fish_color_cwd green
|
|
set -x fish_color_cwd_root red
|
|
set -x fish_color_end brmagenta
|
|
set -x fish_color_error brred
|
|
set -x fish_color_escape brcyan
|
|
set -x fish_color_history_current --bold
|
|
set -x fish_color_host normal
|
|
set -x fish_color_host_remote yellow
|
|
set -x fish_color_match --background=brblue
|
|
set -x fish_color_normal normal
|
|
set -x fish_color_operator cyan
|
|
set -x fish_color_param brblue
|
|
set -x fish_color_quote yellow
|
|
set -x fish_color_redirection bryellow
|
|
set -x fish_color_search_match 'bryellow' '--background=brblack'
|
|
set -x fish_color_selection 'white' '--bold' '--background=brblack'
|
|
set -x fish_color_status red
|
|
set -x fish_color_user brgreen
|
|
set -x fish_color_valid_path --underline
|
|
set -x fish_pager_color_completion normal
|
|
set -x fish_pager_color_description yellow
|
|
set -x fish_pager_color_prefix 'white' '--bold' '--underline'
|
|
set -x fish_pager_color_progress 'brwhite' '--background=cyan'
|
|
'';
|
|
|
|
starship.settings = {
|
|
directory = {
|
|
style = "bold yellow";
|
|
};
|
|
character = {
|
|
format = "$symbol ";
|
|
success_symbol = "[➜](bold green)";
|
|
error_symbol = "[✗](bold red)";
|
|
vicmd_symbol = "[](bold green)";
|
|
};
|
|
cmd_duration = {
|
|
style = "yellow";
|
|
format = "[ $duration]($style)";
|
|
};
|
|
};
|
|
|
|
nvf.settings.vim.theme = {
|
|
enable = true;
|
|
name = "base16";
|
|
base16-colors = scheme.palette;
|
|
};
|
|
};
|
|
|
|
gtk = rec {
|
|
gtk3.extraConfig = {
|
|
gtk-application-prefer-dark-theme = scheme.variant == "dark";
|
|
};
|
|
gtk4.extraConfig = gtk3.extraConfig;
|
|
};
|
|
dconf.settings."org/gnome/desktop/interface".color-scheme = "prefer-${scheme.variant}";
|
|
};
|
|
};
|
|
}
|