treewide: move styling to their respective modules
As a first step towards getting rid of home-manager and going towards a cleaner, more concise configuration, I decided to move back the styling to their respective home-manager modules. Since I'm not planning to share my styling module anymore, as it is very specific to my config, I just decided to merge everything together. commit078334af48
Author: Anthony Rodriguez <anthony@nezia.dev> Date: Sun Jan 19 20:41:14 2025 +0100 treewide: finish moving rest of styling to their respective hm modules commit57432a9655
Author: Anthony Rodriguez <anthony@nezia.dev> Date: Fri Jan 17 12:13:54 2025 +0100 treewide: move regreet styling out of module commit6fef9e0a76
Author: Anthony Rodriguez <anthony@nezia.dev> Date: Fri Jan 17 12:10:33 2025 +0100 treewide: move swaync styling out of module commit2f4a8433c7
Author: Anthony Rodriguez <anthony@nezia.dev> Date: Fri Jan 17 12:06:33 2025 +0100 treewide: move nvf styling out of module commita315915298
Author: Anthony Rodriguez <anthony@nezia.dev> Date: Fri Jan 17 12:02:58 2025 +0100 treewide: move hyprlock styling out of module commit0fe6f67b20
Author: Anthony Rodriguez <anthony@nezia.dev> Date: Fri Jan 17 12:02:49 2025 +0100 modules/nix/core/home-manager: import lib' in extraSpecialArgs commite09569b921
Author: Anthony Rodriguez <anthony@nezia.dev> Date: Fri Jan 17 11:55:05 2025 +0100 treewide: move hyprland styling out of module commiteb25ce0c43
Author: Anthony Rodriguez <anthony@nezia.dev> Date: Fri Jan 17 11:43:35 2025 +0100 modules/nix/style/modules: remove styling for unused programs commitefb6b91ce1
Author: Anthony Rodriguez <anthony@nezia.dev> Date: Fri Jan 17 11:00:54 2025 +0100 treewide: move foot styling out of module commit4c06a66b5e
Author: Anthony Rodriguez <anthony@nezia.dev> Date: Fri Jan 17 10:56:05 2025 +0100 treewide: move fish styling out of module commitb3a03e5e9b
Author: Anthony Rodriguez <anthony@nezia.dev> Date: Fri Jan 17 10:47:43 2025 +0100 treewide: move discord styling out of module
This commit is contained in:
parent
89f8637d03
commit
861c658590
35 changed files with 824 additions and 1063 deletions
|
@ -1,6 +1,18 @@
|
||||||
{
|
{
|
||||||
|
lib,
|
||||||
|
osConfig,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
styleCfg = osConfig.local.style;
|
||||||
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
./programs
|
./programs
|
||||||
./services
|
./services
|
||||||
];
|
];
|
||||||
|
|
||||||
|
home.pointerCursor = lib.mkIf styleCfg.enable {
|
||||||
|
inherit (styleCfg.cursorTheme) name package size;
|
||||||
|
x11.enable = true;
|
||||||
|
gtk.enable = true;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
./media
|
./media
|
||||||
./terminal
|
./terminal
|
||||||
|
|
||||||
|
./discord.nix
|
||||||
./games.nix
|
./games.nix
|
||||||
./gnome.nix
|
./gnome.nix
|
||||||
./misc.nix
|
./misc.nix
|
||||||
|
|
|
@ -1,13 +1,15 @@
|
||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
config,
|
pkgs,
|
||||||
|
osConfig,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
cfg = config.local.style;
|
styleCfg = osConfig.local.style;
|
||||||
in {
|
in {
|
||||||
config.home-manager.sharedModules = lib.mkIf cfg.enable [
|
config = lib.mkIf osConfig.local.profiles.desktop.enable {
|
||||||
{
|
home.packages = [pkgs.vesktop];
|
||||||
xdg.configFile."vesktop/themes/midnight-base16.css".text = with cfg.scheme.palette; ''
|
xdg.configFile."vesktop/themes/midnight-base16.css".text = with styleCfg.scheme.palette;
|
||||||
|
lib.mkIf styleCfg.enable ''
|
||||||
/**
|
/**
|
||||||
* @name Midnight-base16
|
* @name Midnight-base16
|
||||||
* @description A dark, rounded discord theme. Updated to use base16 colors.
|
* @description A dark, rounded discord theme. Updated to use base16 colors.
|
||||||
|
@ -30,7 +32,7 @@ in {
|
||||||
--font: 'gg sans';
|
--font: 'gg sans';
|
||||||
|
|
||||||
/* top left corner text */
|
/* top left corner text */
|
||||||
--corner-text: '${cfg.scheme.name}';
|
--corner-text: '${styleCfg.scheme.name}';
|
||||||
|
|
||||||
/* color of status indicators and window controls */
|
/* color of status indicators and window controls */
|
||||||
--online-indicator: ${base0B}; /* change to #23a55a for default green */
|
--online-indicator: ${base0B}; /* change to #23a55a for default green */
|
||||||
|
@ -108,6 +110,5 @@ in {
|
||||||
fill: var(--text-0) !important;
|
fill: var(--text-0) !important;
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
}
|
};
|
||||||
];
|
|
||||||
}
|
}
|
|
@ -4,13 +4,16 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
osConfig,
|
osConfig,
|
||||||
...
|
...
|
||||||
}: {
|
}: let
|
||||||
|
styleCfg = osConfig.local.style;
|
||||||
|
in {
|
||||||
imports = [inputs.nvf.homeManagerModules.default];
|
imports = [inputs.nvf.homeManagerModules.default];
|
||||||
|
|
||||||
config = lib.mkIf osConfig.local.profiles.desktop.enable {
|
config = lib.mkIf osConfig.local.profiles.desktop.enable {
|
||||||
programs.nvf = {
|
programs.nvf = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings.vim = {
|
settings.vim = lib.mkMerge [
|
||||||
|
{
|
||||||
viAlias = true;
|
viAlias = true;
|
||||||
vimAlias = true;
|
vimAlias = true;
|
||||||
enableLuaLoader = true;
|
enableLuaLoader = true;
|
||||||
|
@ -40,12 +43,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
theme = lib.mkDefault {
|
|
||||||
enable = true;
|
|
||||||
name = "catppuccin";
|
|
||||||
style = "macchiato";
|
|
||||||
};
|
|
||||||
|
|
||||||
ui = {
|
ui = {
|
||||||
noice.enable = true;
|
noice.enable = true;
|
||||||
};
|
};
|
||||||
|
@ -222,7 +219,15 @@
|
||||||
filetree.neo-tree.enable = true;
|
filetree.neo-tree.enable = true;
|
||||||
|
|
||||||
telescope.enable = true;
|
telescope.enable = true;
|
||||||
|
}
|
||||||
|
(lib.mkIf styleCfg.enable {
|
||||||
|
theme = {
|
||||||
|
enable = true;
|
||||||
|
name = "base16";
|
||||||
|
base16-colors = styleCfg.scheme.palette;
|
||||||
};
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.neovide = {
|
programs.neovide = {
|
||||||
|
|
|
@ -4,7 +4,10 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
osConfig,
|
osConfig,
|
||||||
...
|
...
|
||||||
}: {
|
}: let
|
||||||
|
inherit (builtins) toString;
|
||||||
|
styleCfg = osConfig.local.style;
|
||||||
|
in {
|
||||||
imports = [./binds.nix];
|
imports = [./binds.nix];
|
||||||
|
|
||||||
config = lib.mkIf osConfig.local.modules.hyprland.enable {
|
config = lib.mkIf osConfig.local.modules.hyprland.enable {
|
||||||
|
@ -35,7 +38,8 @@
|
||||||
|
|
||||||
systemd.enable = false;
|
systemd.enable = false;
|
||||||
|
|
||||||
settings = {
|
settings = lib.mkMerge [
|
||||||
|
{
|
||||||
xwayland = {
|
xwayland = {
|
||||||
force_zero_scaling = true;
|
force_zero_scaling = true;
|
||||||
};
|
};
|
||||||
|
@ -113,7 +117,24 @@
|
||||||
disable_hyprland_logo = true;
|
disable_hyprland_logo = true;
|
||||||
middle_click_paste = false;
|
middle_click_paste = false;
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
(lib.mkIf styleCfg.enable {
|
||||||
|
env = [
|
||||||
|
"HYPRCURSOR_THEME,${styleCfg.cursorTheme.name}"
|
||||||
|
"HYPRCURSOR_SIZE,${toString styleCfg.cursorTheme.size}"
|
||||||
|
"XCURSOR_SIZE,${toString styleCfg.cursorTheme.size}"
|
||||||
|
];
|
||||||
|
general = {
|
||||||
|
border_size = 4;
|
||||||
|
"col.active_border" = "rgb(${lib.removePrefix "#" styleCfg.scheme.palette.base0E})";
|
||||||
};
|
};
|
||||||
|
decoration = {
|
||||||
|
rounding = 10;
|
||||||
|
blur.enabled = true;
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,114 @@
|
||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
|
lib',
|
||||||
inputs,
|
inputs,
|
||||||
pkgs,
|
pkgs,
|
||||||
osConfig,
|
osConfig,
|
||||||
...
|
...
|
||||||
}: {
|
}: let
|
||||||
|
styleCfg = osConfig.local.style;
|
||||||
|
rgbaPalette = builtins.mapAttrs (_: c: (lib'.rgba c 1)) styleCfg.scheme.palette;
|
||||||
|
in {
|
||||||
config = lib.mkIf osConfig.local.modules.hyprland.enable {
|
config = lib.mkIf osConfig.local.modules.hyprland.enable {
|
||||||
programs.hyprlock = {
|
programs.hyprlock = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = inputs.hyprlock.packages.${pkgs.system}.hyprlock;
|
package = inputs.hyprlock.packages.${pkgs.system}.hyprlock;
|
||||||
|
|
||||||
|
settings = lib.mkMerge [
|
||||||
|
{
|
||||||
|
general = {
|
||||||
|
disable_loading_bar = true;
|
||||||
|
hide_cursor = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
(with rgbaPalette;
|
||||||
|
lib.mkIf styleCfg.enable {
|
||||||
|
background = [
|
||||||
|
{
|
||||||
|
path = "screenshot";
|
||||||
|
blur_passes = 3;
|
||||||
|
blur_size = 8;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
label = [
|
||||||
|
{
|
||||||
|
monitor = "";
|
||||||
|
text = "Layout: $LAYOUT";
|
||||||
|
font_size = 25;
|
||||||
|
color = base05;
|
||||||
|
|
||||||
|
position = "30, -30";
|
||||||
|
halign = "left";
|
||||||
|
valign = "top";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
monitor = "";
|
||||||
|
text = "$TIME";
|
||||||
|
font_size = 90;
|
||||||
|
color = base05;
|
||||||
|
|
||||||
|
position = "-30, 0";
|
||||||
|
halign = "right";
|
||||||
|
valign = "top";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
monitor = "";
|
||||||
|
text = "cmd[update:43200000] date +\"%A, %d %B %Y\"";
|
||||||
|
font_size = 25;
|
||||||
|
color = base05;
|
||||||
|
|
||||||
|
position = "-30, -150";
|
||||||
|
halign = "right";
|
||||||
|
valign = "top";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
image = {
|
||||||
|
monitor = "";
|
||||||
|
path = "${styleCfg.avatar}"; # Replace with your avatar path
|
||||||
|
size = 100;
|
||||||
|
border_color = base0D;
|
||||||
|
|
||||||
|
position = "0, 75";
|
||||||
|
halign = "center";
|
||||||
|
valign = "center";
|
||||||
|
};
|
||||||
|
|
||||||
|
input-field = [
|
||||||
|
{
|
||||||
|
monitor = "";
|
||||||
|
|
||||||
|
size = "300, 60";
|
||||||
|
outline_thickness = 4;
|
||||||
|
dots_size = 0.2;
|
||||||
|
dots_spacing = 0.2;
|
||||||
|
dots_center = true;
|
||||||
|
|
||||||
|
outer_color = base0D;
|
||||||
|
inner_color = base02;
|
||||||
|
font_color = base05;
|
||||||
|
|
||||||
|
fade_on_empty = false;
|
||||||
|
|
||||||
|
# the span elements still use #RRGGBB, so we use scheme directly
|
||||||
|
placeholder_text = "<span foreground=\"#${styleCfg.scheme.palette.base05}\"><i> Logged in as </i><span foreground=\"#${styleCfg.scheme.palette.base0D}\">$USER</span></span>";
|
||||||
|
|
||||||
|
hide_input = false;
|
||||||
|
check_color = base0D;
|
||||||
|
fail_color = base08;
|
||||||
|
|
||||||
|
fail_text = "<i>$FAIL <b>($ATTEMPTS)</b></i>";
|
||||||
|
capslock_color = base0E;
|
||||||
|
|
||||||
|
position = "0, -47";
|
||||||
|
halign = "center";
|
||||||
|
valign = "center";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
})
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,10 @@
|
||||||
osConfig,
|
osConfig,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [./zathura.nix];
|
imports = [
|
||||||
|
./tidal-hifi.nix
|
||||||
|
./zathura.nix
|
||||||
|
];
|
||||||
|
|
||||||
config = lib.mkIf osConfig.local.profiles.desktop.enable {
|
config = lib.mkIf osConfig.local.profiles.desktop.enable {
|
||||||
programs.mpv.enable = true;
|
programs.mpv.enable = true;
|
||||||
|
@ -13,7 +16,6 @@
|
||||||
pkgs.gthumb
|
pkgs.gthumb
|
||||||
pkgs.spotify
|
pkgs.spotify
|
||||||
pkgs.stremio
|
pkgs.stremio
|
||||||
pkgs.tidal-hifi
|
|
||||||
pkgs.celluloid
|
pkgs.celluloid
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,14 +1,16 @@
|
||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
config,
|
osConfig,
|
||||||
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
cfg = config.local.style;
|
styleCfg = osConfig.local.style;
|
||||||
in {
|
in {
|
||||||
config.home-manager.sharedModules = lib.mkIf cfg.enable [
|
config = lib.mkIf osConfig.local.profiles.desktop.enable {
|
||||||
{
|
home.packages = [pkgs.tidal-hifi];
|
||||||
# based on https://github.com/rose-pine/tidal. adapted to work with base16 colors.
|
# based on https://github.com/rose-pine/tidal. adapted to work with base16 colors.
|
||||||
xdg.configFile."tidal-hifi/themes/base16.css".text = with cfg.scheme.palette; ''
|
xdg.configFile."tidal-hifi/themes/base16.css".text = with styleCfg.scheme.palette;
|
||||||
|
lib.mkIf styleCfg.enable ''
|
||||||
:root {
|
:root {
|
||||||
--glass-white-1: ${base05};
|
--glass-white-1: ${base05};
|
||||||
--glass-white-1-hover: ${base06};
|
--glass-white-1-hover: ${base06};
|
||||||
|
@ -190,6 +192,5 @@ in {
|
||||||
stroke: var(--wave-color-solid-rainbow-purple-fill) !important;
|
stroke: var(--wave-color-solid-rainbow-purple-fill) !important;
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
}
|
};
|
||||||
];
|
|
||||||
}
|
}
|
|
@ -19,7 +19,6 @@
|
||||||
playerctl
|
playerctl
|
||||||
proton-pass
|
proton-pass
|
||||||
simple-scan
|
simple-scan
|
||||||
vesktop
|
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,11 @@
|
||||||
config,
|
config,
|
||||||
osConfig,
|
osConfig,
|
||||||
...
|
...
|
||||||
}: {
|
}: let
|
||||||
|
styleCfg = osConfig.local.style;
|
||||||
|
# because someone thought this was a great idea: https://github.com/tinted-theming/schemes/commit/61058a8d2e2bd4482b53d57a68feb56cdb991f0b
|
||||||
|
palette = builtins.mapAttrs (_: color: lib.removePrefix "#" color) styleCfg.scheme.palette;
|
||||||
|
in {
|
||||||
config = lib.mkIf osConfig.local.modules.hyprland.enable {
|
config = lib.mkIf osConfig.local.modules.hyprland.enable {
|
||||||
programs.foot = {
|
programs.foot = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -13,6 +17,37 @@
|
||||||
font = "monospace:size=14";
|
font = "monospace:size=14";
|
||||||
shell = "${lib.getExe config.programs.fish.package}";
|
shell = "${lib.getExe config.programs.fish.package}";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
colors = with palette;
|
||||||
|
lib.mkIf styleCfg.enable {
|
||||||
|
background = base00;
|
||||||
|
foreground = base05;
|
||||||
|
|
||||||
|
regular0 = base00;
|
||||||
|
regular1 = base08;
|
||||||
|
regular2 = base0B;
|
||||||
|
regular3 = base0A;
|
||||||
|
regular4 = base0D;
|
||||||
|
regular5 = base0E;
|
||||||
|
regular6 = base0C;
|
||||||
|
regular7 = base05;
|
||||||
|
|
||||||
|
bright0 = base02;
|
||||||
|
bright1 = base08;
|
||||||
|
bright2 = base0B;
|
||||||
|
bright3 = base0A;
|
||||||
|
bright4 = base0D;
|
||||||
|
bright5 = base0E;
|
||||||
|
bright6 = base0C;
|
||||||
|
bright7 = base07;
|
||||||
|
|
||||||
|
"16" = base09;
|
||||||
|
"17" = base0F;
|
||||||
|
"18" = base01;
|
||||||
|
"19" = base02;
|
||||||
|
"20" = base04;
|
||||||
|
"21" = base06;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
starship module cmd_duration
|
starship module cmd_duration
|
||||||
end
|
end
|
||||||
'';
|
'';
|
||||||
|
styleCfg = osConfig.local.style;
|
||||||
in {
|
in {
|
||||||
config = lib.mkIf osConfig.local.profiles.desktop.enable {
|
config = lib.mkIf osConfig.local.profiles.desktop.enable {
|
||||||
programs.fish = {
|
programs.fish = {
|
||||||
|
@ -24,7 +25,43 @@ in {
|
||||||
set fish_greeting # Disable greeting
|
set fish_greeting # Disable greeting
|
||||||
fish_vi_key_bindings # Enable Vi mode
|
fish_vi_key_bindings # Enable Vi mode
|
||||||
|
|
||||||
|
''
|
||||||
|
+ lib.optionalString styleCfg.enable
|
||||||
|
''
|
||||||
|
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'
|
||||||
'';
|
'';
|
||||||
|
|
||||||
plugins = [
|
plugins = [
|
||||||
{
|
{
|
||||||
name = "fzf";
|
name = "fzf";
|
||||||
|
|
|
@ -9,6 +9,20 @@
|
||||||
enableTransience = true;
|
enableTransience = true;
|
||||||
settings = {
|
settings = {
|
||||||
add_newline = true;
|
add_newline = true;
|
||||||
|
|
||||||
|
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)";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -3,7 +3,9 @@
|
||||||
inputs,
|
inputs,
|
||||||
osConfig,
|
osConfig,
|
||||||
...
|
...
|
||||||
}: {
|
}: let
|
||||||
|
styleCfg = osConfig.local.style;
|
||||||
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
inputs.walker.homeManagerModules.default
|
inputs.walker.homeManagerModules.default
|
||||||
];
|
];
|
||||||
|
@ -20,6 +22,153 @@
|
||||||
websearch.prefix = "?";
|
websearch.prefix = "?";
|
||||||
switcher.prefix = "/";
|
switcher.prefix = "/";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
theme = with styleCfg.scheme.palette;
|
||||||
|
lib.mkIf styleCfg.enable {
|
||||||
|
style = ''
|
||||||
|
@define-color foreground ${base05};
|
||||||
|
@define-color background ${base00};
|
||||||
|
@define-color accent ${base0E};
|
||||||
|
|
||||||
|
#window,
|
||||||
|
#box,
|
||||||
|
#aiScroll,
|
||||||
|
#aiList,
|
||||||
|
#search,
|
||||||
|
#password,
|
||||||
|
#input,
|
||||||
|
#prompt,
|
||||||
|
#clear,
|
||||||
|
#typeahead,
|
||||||
|
#list,
|
||||||
|
child,
|
||||||
|
scrollbar,
|
||||||
|
slider,
|
||||||
|
#item,
|
||||||
|
#text,
|
||||||
|
#label,
|
||||||
|
#bar,
|
||||||
|
#sub,
|
||||||
|
#activationlabel {
|
||||||
|
all: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
#cfgerr {
|
||||||
|
background: rgba(255, 0, 0, 0.4);
|
||||||
|
margin-top: 20px;
|
||||||
|
padding: 8px;
|
||||||
|
font-size: 1.2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#window {
|
||||||
|
color: @foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#box {
|
||||||
|
border-radius: 2px;
|
||||||
|
background: @background;
|
||||||
|
padding: 32px;
|
||||||
|
border: 1px solid ${base01};
|
||||||
|
box-shadow:
|
||||||
|
0 19px 38px rgba(0, 0, 0, 0.3),
|
||||||
|
0 15px 12px rgba(0, 0, 0, 0.22);
|
||||||
|
}
|
||||||
|
|
||||||
|
#search {
|
||||||
|
box-shadow:
|
||||||
|
0 1px 3px rgba(0, 0, 0, 0.1),
|
||||||
|
0 1px 2px rgba(0, 0, 0, 0.22);
|
||||||
|
background: ${base01};
|
||||||
|
padding: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#prompt {
|
||||||
|
margin-left: 4px;
|
||||||
|
margin-right: 12px;
|
||||||
|
color: @foreground;
|
||||||
|
opacity: 0.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clear {
|
||||||
|
color: @foreground;
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
|
||||||
|
#password,
|
||||||
|
#input,
|
||||||
|
#typeahead {
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#input {
|
||||||
|
background: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#spinner {
|
||||||
|
padding: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#typeahead {
|
||||||
|
color: @foreground;
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
|
||||||
|
#input placeholder {
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
child {
|
||||||
|
padding: 8px;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
child:selected,
|
||||||
|
child:hover {
|
||||||
|
background: alpha(@accent, 0.4);
|
||||||
|
}
|
||||||
|
|
||||||
|
#icon {
|
||||||
|
margin-right: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#label {
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
#sub {
|
||||||
|
opacity: 0.5;
|
||||||
|
font-size: 0.8em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.aiItem {
|
||||||
|
padding: 10px;
|
||||||
|
border-radius: 2px;
|
||||||
|
color: @foreground;
|
||||||
|
background: @background;
|
||||||
|
}
|
||||||
|
|
||||||
|
.aiItem.assistant {
|
||||||
|
background: ${base02};
|
||||||
|
}
|
||||||
|
|
||||||
|
.aiItem:hover {
|
||||||
|
background: alpha(@accent, 0.2);
|
||||||
|
color: ${base00};
|
||||||
|
}
|
||||||
|
|
||||||
|
#activationlabel {
|
||||||
|
color: @accent;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
|
||||||
|
layout = {
|
||||||
|
ui.window.box = {
|
||||||
|
v_align = "center";
|
||||||
|
orientation = "vertical";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.user.services.walker = {
|
systemd.user.services.walker = {
|
||||||
|
|
|
@ -3,7 +3,10 @@
|
||||||
pkgs,
|
pkgs,
|
||||||
osConfig,
|
osConfig,
|
||||||
...
|
...
|
||||||
}: {
|
}: let
|
||||||
|
styleCfg = osConfig.local.style;
|
||||||
|
betterTransition = "all 0.3s cubic-bezier(.55,-0.68,.48,1.682)";
|
||||||
|
in {
|
||||||
config = lib.mkIf osConfig.local.modules.hyprland.enable {
|
config = lib.mkIf osConfig.local.modules.hyprland.enable {
|
||||||
programs.waybar = {
|
programs.waybar = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -176,6 +179,90 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
style = with styleCfg.scheme.palette; ''
|
||||||
|
* {
|
||||||
|
font-family: "0xProto Nerd Font";
|
||||||
|
font-size: 16px;
|
||||||
|
border-radius: 0px;
|
||||||
|
border: none;
|
||||||
|
min-height: 0px;
|
||||||
|
}
|
||||||
|
window#waybar {
|
||||||
|
background: rgba(0,0,0,0);
|
||||||
|
}
|
||||||
|
#workspaces {
|
||||||
|
color: ${base00};
|
||||||
|
background: ${base01};
|
||||||
|
margin: 4px 4px;
|
||||||
|
padding: 5px 5px;
|
||||||
|
border-radius: 16px;
|
||||||
|
}
|
||||||
|
#workspaces button {
|
||||||
|
font-weight: bold;
|
||||||
|
padding: 0px 5px;
|
||||||
|
margin: 0px 3px;
|
||||||
|
border-radius: 16px;
|
||||||
|
color: ${base00};
|
||||||
|
background: linear-gradient(45deg, ${base08}, ${base0D});
|
||||||
|
opacity: 0.5;
|
||||||
|
transition: ${betterTransition};
|
||||||
|
}
|
||||||
|
#workspaces button.active {
|
||||||
|
font-weight: bold;
|
||||||
|
padding: 0px 5px;
|
||||||
|
margin: 0px 3px;
|
||||||
|
border-radius: 16px;
|
||||||
|
color: ${base00};
|
||||||
|
background: linear-gradient(45deg, ${base08}, ${base0D});
|
||||||
|
transition: ${betterTransition};
|
||||||
|
opacity: 1.0;
|
||||||
|
min-width: 40px;
|
||||||
|
}
|
||||||
|
#workspaces button:hover {
|
||||||
|
font-weight: bold;
|
||||||
|
border-radius: 16px;
|
||||||
|
color: ${base00};
|
||||||
|
background: linear-gradient(45deg, ${base08}, ${base0D});
|
||||||
|
opacity: 0.8;
|
||||||
|
transition: ${betterTransition};
|
||||||
|
}
|
||||||
|
tooltip {
|
||||||
|
background: ${base00};
|
||||||
|
border: 1px solid ${base0E};
|
||||||
|
border-radius: 12px;
|
||||||
|
}
|
||||||
|
tooltip label {
|
||||||
|
color: ${base0E};
|
||||||
|
}
|
||||||
|
#window, #pulseaudio, #cpu, #memory, #idle_inhibitor {
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 4px 0px;
|
||||||
|
margin-left: 7px;
|
||||||
|
padding: 0px 18px;
|
||||||
|
background: ${base00};
|
||||||
|
color: ${base05};
|
||||||
|
border-radius: 24px 10px 24px 10px;
|
||||||
|
}
|
||||||
|
#network, #battery,
|
||||||
|
#custom-swaync, #tray, #custom-power {
|
||||||
|
font-weight: bold;
|
||||||
|
background: ${base00};
|
||||||
|
color: ${base05};
|
||||||
|
margin: 4px 0px;
|
||||||
|
margin-right: 7px;
|
||||||
|
border-radius: 10px 24px 10px 24px;
|
||||||
|
padding: 0px 18px;
|
||||||
|
}
|
||||||
|
#clock {
|
||||||
|
font-weight: bold;
|
||||||
|
color: ${base00};
|
||||||
|
background: linear-gradient(90deg, ${base0E}, ${base0C});
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px 15px 0px 30px;
|
||||||
|
border-radius: 0px 0px 0px 40px;
|
||||||
|
}
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.user.services.waybar = {
|
systemd.user.services.waybar = {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./gammastep.nix
|
./gammastep.nix
|
||||||
|
./gtk.nix
|
||||||
./syncthing.nix
|
./syncthing.nix
|
||||||
./swaync
|
./swaync
|
||||||
./udiskie.nix
|
./udiskie.nix
|
||||||
|
|
|
@ -1,20 +1,19 @@
|
||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
config,
|
osConfig,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
cfg = config.local.style;
|
styleCfg = osConfig.local.style;
|
||||||
inherit (cfg) scheme;
|
|
||||||
in {
|
in {
|
||||||
home-manager.sharedModules = lib.mkIf cfg.enable [
|
config = with styleCfg;
|
||||||
{
|
lib.mkIf styleCfg.enable {
|
||||||
gtk = rec {
|
gtk = rec {
|
||||||
enable = true;
|
enable = true;
|
||||||
iconTheme = {
|
iconTheme = {
|
||||||
inherit (cfg.gtk.iconTheme) name package;
|
inherit (gtk.iconTheme) name package;
|
||||||
};
|
};
|
||||||
theme = {
|
theme = {
|
||||||
inherit (cfg.gtk.theme) name package;
|
inherit (gtk.theme) name package;
|
||||||
};
|
};
|
||||||
|
|
||||||
gtk3.extraConfig = {
|
gtk3.extraConfig = {
|
||||||
|
@ -24,6 +23,5 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
dconf.settings."org/gnome/desktop/interface".color-scheme = "prefer-${scheme.variant}";
|
dconf.settings."org/gnome/desktop/interface".color-scheme = "prefer-${scheme.variant}";
|
||||||
}
|
};
|
||||||
];
|
|
||||||
}
|
}
|
|
@ -1,14 +1,15 @@
|
||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
|
lib',
|
||||||
osConfig,
|
osConfig,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (builtins) readFile;
|
styleCfg = osConfig.local.style;
|
||||||
in {
|
in {
|
||||||
config = lib.mkIf osConfig.local.modules.hyprland.enable {
|
config = lib.mkIf osConfig.local.modules.hyprland.enable {
|
||||||
services.swaync = {
|
services.swaync = lib.mkMerge [
|
||||||
|
{
|
||||||
enable = true;
|
enable = true;
|
||||||
style = readFile ./style.css;
|
|
||||||
settings = {
|
settings = {
|
||||||
positionX = "right";
|
positionX = "right";
|
||||||
positionY = "top";
|
positionY = "top";
|
||||||
|
@ -26,8 +27,15 @@ in {
|
||||||
notification-body-image-height = 100;
|
notification-body-image-height = 100;
|
||||||
notification-body-image-width = 200;
|
notification-body-image-width = 200;
|
||||||
};
|
};
|
||||||
};
|
}
|
||||||
# systemd.user.services.swaync.Service.Environment = "WAYLAND_DISPLAY=wayland-1";
|
|
||||||
|
(lib.mkIf styleCfg.enable {
|
||||||
|
style =
|
||||||
|
lib'.generateGtkColors lib styleCfg.scheme.palette
|
||||||
|
+ builtins.readFile ./style.css;
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
systemd.user.services.swaync.Unit.ConditionEnvironment = lib.mkForce "";
|
systemd.user.services.swaync.Unit.ConditionEnvironment = lib.mkForce "";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.local.systemVars) username;
|
inherit (config.local.systemVars) username;
|
||||||
|
lib' = import ../../../shared/lib inputs.nixpkgs.lib;
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
inputs.home-manager.nixosModules.default
|
inputs.home-manager.nixosModules.default
|
||||||
|
@ -16,7 +17,7 @@ in {
|
||||||
useGlobalPkgs = true;
|
useGlobalPkgs = true;
|
||||||
useUserPackages = true;
|
useUserPackages = true;
|
||||||
|
|
||||||
extraSpecialArgs = {inherit inputs;};
|
extraSpecialArgs = {inherit inputs lib';};
|
||||||
sharedModules = [../../hm];
|
sharedModules = [../../hm];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,5 @@
|
||||||
./core
|
./core
|
||||||
./programs
|
./programs
|
||||||
./services
|
./services
|
||||||
./style
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
{
|
{
|
||||||
config,
|
|
||||||
inputs,
|
|
||||||
lib,
|
lib,
|
||||||
|
inputs,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
# thanks https://git.jacekpoz.pl/poz/niksos/src/commit/f8d5e7ccd9c769f7c0b564f10dff419285e75248/modules/services/greetd.nix
|
# thanks https://git.jacekpoz.pl/poz/niksos/src/commit/f8d5e7ccd9c769f7c0b564f10dff419285e75248/modules/services/greetd.nix
|
||||||
|
@ -10,6 +10,8 @@ let
|
||||||
inherit (lib) getExe getExe';
|
inherit (lib) getExe getExe';
|
||||||
inherit (inputs.hyprland.packages.${pkgs.stdenv.system}) hyprland;
|
inherit (inputs.hyprland.packages.${pkgs.stdenv.system}) hyprland;
|
||||||
|
|
||||||
|
styleCfg = config.local.style;
|
||||||
|
|
||||||
hyprctl = getExe' hyprland "hyprctl";
|
hyprctl = getExe' hyprland "hyprctl";
|
||||||
Hyprland = getExe' hyprland "Hyprland";
|
Hyprland = getExe' hyprland "Hyprland";
|
||||||
|
|
||||||
|
@ -46,10 +48,26 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.regreet = {
|
programs.regreet = lib.mkMerge [
|
||||||
|
{
|
||||||
enable = true;
|
enable = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
(lib.mkIf styleCfg.enable {
|
||||||
|
theme = {
|
||||||
|
inherit (styleCfg.gtk.theme) name package;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
cursorTheme = {
|
||||||
|
inherit (styleCfg.cursorTheme) name package;
|
||||||
|
};
|
||||||
|
|
||||||
|
iconTheme = {
|
||||||
|
inherit (styleCfg.gtk.iconTheme) name package;
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
security.pam.services = {
|
security.pam.services = {
|
||||||
greetd.enableGnomeKeyring = true;
|
greetd.enableGnomeKeyring = true;
|
||||||
login.enableGnomeKeyring = true;
|
login.enableGnomeKeyring = true;
|
||||||
|
|
|
@ -1,29 +0,0 @@
|
||||||
{
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
inherit (lib) mkIf;
|
|
||||||
|
|
||||||
cfg = config.local.style;
|
|
||||||
in {
|
|
||||||
imports =
|
|
||||||
[
|
|
||||||
inputs.niri.nixosModules.niri
|
|
||||||
inputs.hyprland.nixosModules.default
|
|
||||||
]
|
|
||||||
++ lib.filesystem.listFilesRecursive ./modules;
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
home-manager.sharedModules = [
|
|
||||||
{
|
|
||||||
home.pointerCursor = {
|
|
||||||
inherit (cfg.cursorTheme) name package size;
|
|
||||||
x11.enable = true;
|
|
||||||
gtk.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,46 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
cfg = config.local.style;
|
|
||||||
in {
|
|
||||||
config.home-manager.sharedModules = lib.mkIf cfg.enable [
|
|
||||||
{
|
|
||||||
programs.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'
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,45 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
cfg = config.local.style;
|
|
||||||
in {
|
|
||||||
config.home-manager.sharedModules = lib.mkIf cfg.enable [
|
|
||||||
{
|
|
||||||
programs.foot.settings.colors = let
|
|
||||||
# because someone thought this was a great idea: https://github.com/tinted-theming/schemes/commit/61058a8d2e2bd4482b53d57a68feb56cdb991f0b
|
|
||||||
palette = builtins.mapAttrs (_: color: lib.removePrefix "#" color) cfg.scheme.palette;
|
|
||||||
in
|
|
||||||
with palette; {
|
|
||||||
background = base00;
|
|
||||||
foreground = base05;
|
|
||||||
|
|
||||||
regular0 = base00;
|
|
||||||
regular1 = base08;
|
|
||||||
regular2 = base0B;
|
|
||||||
regular3 = base0A;
|
|
||||||
regular4 = base0D;
|
|
||||||
regular5 = base0E;
|
|
||||||
regular6 = base0C;
|
|
||||||
regular7 = base05;
|
|
||||||
|
|
||||||
bright0 = base02;
|
|
||||||
bright1 = base08;
|
|
||||||
bright2 = base0B;
|
|
||||||
bright3 = base0A;
|
|
||||||
bright4 = base0D;
|
|
||||||
bright5 = base0E;
|
|
||||||
bright6 = base0C;
|
|
||||||
bright7 = base07;
|
|
||||||
|
|
||||||
"16" = base09;
|
|
||||||
"17" = base0F;
|
|
||||||
"18" = base01;
|
|
||||||
"19" = base02;
|
|
||||||
"20" = base04;
|
|
||||||
"21" = base06;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,27 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
cfg = config.local.style;
|
|
||||||
inherit (cfg) scheme;
|
|
||||||
in {
|
|
||||||
config.home-manager.sharedModules = lib.mkIf cfg.enable [
|
|
||||||
{
|
|
||||||
programs.fuzzel.settings = {
|
|
||||||
main = {
|
|
||||||
font = "sans-serif:size=16";
|
|
||||||
};
|
|
||||||
colors = with scheme.palette; {
|
|
||||||
background = "${base01}f2";
|
|
||||||
text = "${base05}ff";
|
|
||||||
match = "${base0E}ff";
|
|
||||||
selection = "${base03}ff";
|
|
||||||
selection-text = "${base06}ff";
|
|
||||||
selection-match = "${base0E}ff";
|
|
||||||
border = "${base0E}ff";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,27 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
cfg = config.local.style;
|
|
||||||
in {
|
|
||||||
config.home-manager.sharedModules = lib.mkIf cfg.enable [
|
|
||||||
{
|
|
||||||
wayland.windowManager.hyprland.settings = {
|
|
||||||
env = [
|
|
||||||
"HYPRCURSOR_THEME,phinger-cursors-light"
|
|
||||||
"HYPRCURSOR_SIZE,32"
|
|
||||||
"XCURSOR_SIZE,32"
|
|
||||||
];
|
|
||||||
general = {
|
|
||||||
border_size = 4;
|
|
||||||
"col.active_border" = "rgb(${lib.removePrefix "#" cfg.scheme.palette.base0E})";
|
|
||||||
};
|
|
||||||
decoration = {
|
|
||||||
rounding = 10;
|
|
||||||
blur.enabled = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,109 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
lib',
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
cfg = config.local.style;
|
|
||||||
|
|
||||||
# hyprlock takes colors such as rgb[a](r, g, b [, a])
|
|
||||||
rgbaPalette = builtins.mapAttrs (_: c: (lib'.rgba c 1)) cfg.scheme.palette;
|
|
||||||
in {
|
|
||||||
config.home-manager.sharedModules = with rgbaPalette;
|
|
||||||
lib.mkIf cfg.enable [
|
|
||||||
{
|
|
||||||
programs.hyprlock = {
|
|
||||||
settings = {
|
|
||||||
background = [
|
|
||||||
{
|
|
||||||
path = "screenshot";
|
|
||||||
blur_passes = 3;
|
|
||||||
blur_size = 8;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
general = {
|
|
||||||
disable_loading_bar = true;
|
|
||||||
hide_cursor = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
label = [
|
|
||||||
{
|
|
||||||
monitor = "";
|
|
||||||
text = "Layout: $LAYOUT";
|
|
||||||
font_size = 25;
|
|
||||||
color = base05;
|
|
||||||
|
|
||||||
position = "30, -30";
|
|
||||||
halign = "left";
|
|
||||||
valign = "top";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
monitor = "";
|
|
||||||
text = "$TIME";
|
|
||||||
font_size = 90;
|
|
||||||
color = base05;
|
|
||||||
|
|
||||||
position = "-30, 0";
|
|
||||||
halign = "right";
|
|
||||||
valign = "top";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
monitor = "";
|
|
||||||
text = "cmd[update:43200000] date +\"%A, %d %B %Y\"";
|
|
||||||
font_size = 25;
|
|
||||||
color = base05;
|
|
||||||
|
|
||||||
position = "-30, -150";
|
|
||||||
halign = "right";
|
|
||||||
valign = "top";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
image = {
|
|
||||||
monitor = "";
|
|
||||||
path = "${cfg.avatar}"; # Replace with your avatar path
|
|
||||||
size = 100;
|
|
||||||
border_color = base0D;
|
|
||||||
|
|
||||||
position = "0, 75";
|
|
||||||
halign = "center";
|
|
||||||
valign = "center";
|
|
||||||
};
|
|
||||||
|
|
||||||
input-field = [
|
|
||||||
{
|
|
||||||
monitor = "";
|
|
||||||
|
|
||||||
size = "300, 60";
|
|
||||||
outline_thickness = 4;
|
|
||||||
dots_size = 0.2;
|
|
||||||
dots_spacing = 0.2;
|
|
||||||
dots_center = true;
|
|
||||||
|
|
||||||
outer_color = base0D;
|
|
||||||
inner_color = base02;
|
|
||||||
font_color = base05;
|
|
||||||
|
|
||||||
fade_on_empty = false;
|
|
||||||
|
|
||||||
# the span elements still use #RRGGBB, so we use scheme directly
|
|
||||||
placeholder_text = "<span foreground=\"#${cfg.scheme.palette.base05}\"><i> Logged in as </i><span foreground=\"#${cfg.scheme.palette.base0D}\">$USER</span></span>";
|
|
||||||
|
|
||||||
hide_input = false;
|
|
||||||
check_color = base0D;
|
|
||||||
fail_color = base08;
|
|
||||||
|
|
||||||
fail_text = "<i>$FAIL <b>($ATTEMPTS)</b></i>";
|
|
||||||
capslock_color = base0E;
|
|
||||||
|
|
||||||
position = "0, -47";
|
|
||||||
halign = "center";
|
|
||||||
valign = "center";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
cfg = config.local.style;
|
|
||||||
in {
|
|
||||||
config.home-manager.sharedModules = lib.mkIf cfg.enable [
|
|
||||||
{
|
|
||||||
programs.niri = {
|
|
||||||
settings = {
|
|
||||||
layout.focus-ring.active.color = cfg.scheme.palette.base0D;
|
|
||||||
cursor = {
|
|
||||||
inherit (cfg.cursorTheme) size;
|
|
||||||
theme = cfg.cursorTheme.name;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
cfg = config.local.style;
|
|
||||||
in {
|
|
||||||
config.home-manager.sharedModules = lib.mkIf cfg.enable [
|
|
||||||
{
|
|
||||||
programs.nvf.settings.vim.theme = {
|
|
||||||
enable = true;
|
|
||||||
name = "base16";
|
|
||||||
base16-colors = cfg.scheme.palette;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
cfg = config.local.style;
|
|
||||||
in {
|
|
||||||
config.programs.regreet = lib.mkIf cfg.enable {
|
|
||||||
theme = {
|
|
||||||
inherit (cfg.gtk.theme) name package;
|
|
||||||
};
|
|
||||||
|
|
||||||
cursorTheme = {
|
|
||||||
inherit (cfg.cursorTheme) name package;
|
|
||||||
};
|
|
||||||
|
|
||||||
iconTheme = {
|
|
||||||
inherit (cfg.gtk.iconTheme) name package;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,27 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
cfg = config.local.style;
|
|
||||||
in {
|
|
||||||
config.home-manager.sharedModules = lib.mkIf cfg.enable [
|
|
||||||
{
|
|
||||||
programs.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)";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,47 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
cfg = config.local.style;
|
|
||||||
in {
|
|
||||||
config.home-manager.sharedModules = with cfg.scheme.palette;
|
|
||||||
lib.mkIf cfg.enable [
|
|
||||||
{
|
|
||||||
programs.swaylock.settings = {
|
|
||||||
inside-color = base01;
|
|
||||||
line-color = base01;
|
|
||||||
ring-color = base05;
|
|
||||||
text-color = base05;
|
|
||||||
|
|
||||||
inside-clear-color = base0A;
|
|
||||||
line-clear-color = base0A;
|
|
||||||
ring-clear-color = base00;
|
|
||||||
text-clear-color = base00;
|
|
||||||
|
|
||||||
inside-caps-lock-color = base03;
|
|
||||||
line-caps-lock-color = base03;
|
|
||||||
ring-caps-lock-color = base00;
|
|
||||||
text-caps-lock-color = base00;
|
|
||||||
|
|
||||||
inside-ver-color = base0D;
|
|
||||||
line-ver-color = base0D;
|
|
||||||
ring-ver-color = base00;
|
|
||||||
text-ver-color = base00;
|
|
||||||
|
|
||||||
inside-wrong-color = base08;
|
|
||||||
line-wrong-color = base08;
|
|
||||||
ring-wrong-color = base00;
|
|
||||||
text-wrong-color = base00;
|
|
||||||
|
|
||||||
caps-lock-bs-hl-color = base08;
|
|
||||||
caps-lock-key-hl-color = base0D;
|
|
||||||
bs-hl-color = base08;
|
|
||||||
key-hl-color = base0D;
|
|
||||||
|
|
||||||
separator-color = "#00000000"; # transparent
|
|
||||||
layout-bg-color = "#00000050"; # semi-transparent black
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
lib',
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
cfg = config.local.style;
|
|
||||||
in {
|
|
||||||
config.home-manager.sharedModules = lib.mkIf cfg.enable [
|
|
||||||
{
|
|
||||||
services.swaync.style = lib'.generateGtkColors lib cfg.scheme.palette;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,159 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
cfg = config.local.style;
|
|
||||||
in {
|
|
||||||
config.home-manager.sharedModules = lib.mkIf cfg.enable [
|
|
||||||
{
|
|
||||||
programs.walker = with cfg.scheme.palette; {
|
|
||||||
theme = {
|
|
||||||
style = ''
|
|
||||||
@define-color foreground ${base05};
|
|
||||||
@define-color background ${base00};
|
|
||||||
@define-color accent ${base0E};
|
|
||||||
|
|
||||||
#window,
|
|
||||||
#box,
|
|
||||||
#aiScroll,
|
|
||||||
#aiList,
|
|
||||||
#search,
|
|
||||||
#password,
|
|
||||||
#input,
|
|
||||||
#prompt,
|
|
||||||
#clear,
|
|
||||||
#typeahead,
|
|
||||||
#list,
|
|
||||||
child,
|
|
||||||
scrollbar,
|
|
||||||
slider,
|
|
||||||
#item,
|
|
||||||
#text,
|
|
||||||
#label,
|
|
||||||
#bar,
|
|
||||||
#sub,
|
|
||||||
#activationlabel {
|
|
||||||
all: unset;
|
|
||||||
}
|
|
||||||
|
|
||||||
#cfgerr {
|
|
||||||
background: rgba(255, 0, 0, 0.4);
|
|
||||||
margin-top: 20px;
|
|
||||||
padding: 8px;
|
|
||||||
font-size: 1.2em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#window {
|
|
||||||
color: @foreground;
|
|
||||||
}
|
|
||||||
|
|
||||||
#box {
|
|
||||||
border-radius: 2px;
|
|
||||||
background: @background;
|
|
||||||
padding: 32px;
|
|
||||||
border: 1px solid ${cfg.scheme.palette.base01};
|
|
||||||
box-shadow:
|
|
||||||
0 19px 38px rgba(0, 0, 0, 0.3),
|
|
||||||
0 15px 12px rgba(0, 0, 0, 0.22);
|
|
||||||
}
|
|
||||||
|
|
||||||
#search {
|
|
||||||
box-shadow:
|
|
||||||
0 1px 3px rgba(0, 0, 0, 0.1),
|
|
||||||
0 1px 2px rgba(0, 0, 0, 0.22);
|
|
||||||
background: ${cfg.scheme.palette.base01};
|
|
||||||
padding: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#prompt {
|
|
||||||
margin-left: 4px;
|
|
||||||
margin-right: 12px;
|
|
||||||
color: @foreground;
|
|
||||||
opacity: 0.2;
|
|
||||||
}
|
|
||||||
|
|
||||||
#clear {
|
|
||||||
color: @foreground;
|
|
||||||
opacity: 0.8;
|
|
||||||
}
|
|
||||||
|
|
||||||
#password,
|
|
||||||
#input,
|
|
||||||
#typeahead {
|
|
||||||
border-radius: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#input {
|
|
||||||
background: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#spinner {
|
|
||||||
padding: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#typeahead {
|
|
||||||
color: @foreground;
|
|
||||||
opacity: 0.8;
|
|
||||||
}
|
|
||||||
|
|
||||||
#input placeholder {
|
|
||||||
opacity: 0.5;
|
|
||||||
}
|
|
||||||
|
|
||||||
child {
|
|
||||||
padding: 8px;
|
|
||||||
border-radius: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
child:selected,
|
|
||||||
child:hover {
|
|
||||||
background: alpha(@accent, 0.4);
|
|
||||||
}
|
|
||||||
|
|
||||||
#icon {
|
|
||||||
margin-right: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#label {
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
|
|
||||||
#sub {
|
|
||||||
opacity: 0.5;
|
|
||||||
font-size: 0.8em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.aiItem {
|
|
||||||
padding: 10px;
|
|
||||||
border-radius: 2px;
|
|
||||||
color: @foreground;
|
|
||||||
background: @background;
|
|
||||||
}
|
|
||||||
|
|
||||||
.aiItem.assistant {
|
|
||||||
background: ${cfg.scheme.palette.base02};
|
|
||||||
}
|
|
||||||
|
|
||||||
.aiItem:hover {
|
|
||||||
background: alpha(@accent, 0.2);
|
|
||||||
color: ${cfg.scheme.palette.base00};
|
|
||||||
}
|
|
||||||
|
|
||||||
#activationlabel {
|
|
||||||
color: @accent;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
|
|
||||||
layout = {
|
|
||||||
ui.window.box = {
|
|
||||||
v_align = "center";
|
|
||||||
orientation = "vertical";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,96 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
cfg = config.local.style;
|
|
||||||
betterTransition = "all 0.3s cubic-bezier(.55,-0.68,.48,1.682)";
|
|
||||||
in {
|
|
||||||
config.home-manager.sharedModules = lib.mkIf cfg.enable [
|
|
||||||
{
|
|
||||||
programs.waybar.style = with cfg.scheme.palette; ''
|
|
||||||
* {
|
|
||||||
font-family: "0xProto Nerd Font";
|
|
||||||
font-size: 16px;
|
|
||||||
border-radius: 0px;
|
|
||||||
border: none;
|
|
||||||
min-height: 0px;
|
|
||||||
}
|
|
||||||
window#waybar {
|
|
||||||
background: rgba(0,0,0,0);
|
|
||||||
}
|
|
||||||
#workspaces {
|
|
||||||
color: ${base00};
|
|
||||||
background: ${base01};
|
|
||||||
margin: 4px 4px;
|
|
||||||
padding: 5px 5px;
|
|
||||||
border-radius: 16px;
|
|
||||||
}
|
|
||||||
#workspaces button {
|
|
||||||
font-weight: bold;
|
|
||||||
padding: 0px 5px;
|
|
||||||
margin: 0px 3px;
|
|
||||||
border-radius: 16px;
|
|
||||||
color: ${base00};
|
|
||||||
background: linear-gradient(45deg, ${base08}, ${base0D});
|
|
||||||
opacity: 0.5;
|
|
||||||
transition: ${betterTransition};
|
|
||||||
}
|
|
||||||
#workspaces button.active {
|
|
||||||
font-weight: bold;
|
|
||||||
padding: 0px 5px;
|
|
||||||
margin: 0px 3px;
|
|
||||||
border-radius: 16px;
|
|
||||||
color: ${base00};
|
|
||||||
background: linear-gradient(45deg, ${base08}, ${base0D});
|
|
||||||
transition: ${betterTransition};
|
|
||||||
opacity: 1.0;
|
|
||||||
min-width: 40px;
|
|
||||||
}
|
|
||||||
#workspaces button:hover {
|
|
||||||
font-weight: bold;
|
|
||||||
border-radius: 16px;
|
|
||||||
color: ${base00};
|
|
||||||
background: linear-gradient(45deg, ${base08}, ${base0D});
|
|
||||||
opacity: 0.8;
|
|
||||||
transition: ${betterTransition};
|
|
||||||
}
|
|
||||||
tooltip {
|
|
||||||
background: ${base00};
|
|
||||||
border: 1px solid ${base0E};
|
|
||||||
border-radius: 12px;
|
|
||||||
}
|
|
||||||
tooltip label {
|
|
||||||
color: ${base0E};
|
|
||||||
}
|
|
||||||
#window, #pulseaudio, #cpu, #memory, #idle_inhibitor {
|
|
||||||
font-weight: bold;
|
|
||||||
margin: 4px 0px;
|
|
||||||
margin-left: 7px;
|
|
||||||
padding: 0px 18px;
|
|
||||||
background: ${base00};
|
|
||||||
color: ${base05};
|
|
||||||
border-radius: 24px 10px 24px 10px;
|
|
||||||
}
|
|
||||||
#network, #battery,
|
|
||||||
#custom-swaync, #tray, #custom-power {
|
|
||||||
font-weight: bold;
|
|
||||||
background: ${base00};
|
|
||||||
color: ${base05};
|
|
||||||
margin: 4px 0px;
|
|
||||||
margin-right: 7px;
|
|
||||||
border-radius: 10px 24px 10px 24px;
|
|
||||||
padding: 0px 18px;
|
|
||||||
}
|
|
||||||
#clock {
|
|
||||||
font-weight: bold;
|
|
||||||
color: ${base00};
|
|
||||||
background: linear-gradient(90deg, ${base0E}, ${base0C});
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px 15px 0px 30px;
|
|
||||||
border-radius: 0px 0px 0px 40px;
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,43 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
cfg = config.local.style;
|
|
||||||
inherit (cfg) scheme;
|
|
||||||
in {
|
|
||||||
config.home-manager.sharedModules = lib.mkIf cfg.enable [
|
|
||||||
{
|
|
||||||
programs.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;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
Loading…
Reference in a new issue