From f8afc9f4615b725064279530984d13cb73860d6e Mon Sep 17 00:00:00 2001 From: Anthony Rodriguez Date: Wed, 18 Dec 2024 18:43:19 +0100 Subject: [PATCH] shared/nixosModules/style: split everything into its file --- shared/nixosModules/style/default.nix | 622 +----------------- shared/nixosModules/style/gtk.nix | 15 - shared/nixosModules/style/modules/discord.nix | 114 ++++ shared/nixosModules/style/modules/fish.nix | 46 ++ shared/nixosModules/style/modules/foot.nix | 44 ++ shared/nixosModules/style/modules/fuzzel.nix | 27 + shared/nixosModules/style/modules/gtk.nix | 30 + .../nixosModules/style/modules/hyprland.nix | 27 + .../nixosModules/style/modules/hyprlock.nix | 103 +++ shared/nixosModules/style/modules/niri.nix | 21 + shared/nixosModules/style/modules/nvf.nix | 17 + .../nixosModules/style/modules/starship.nix | 27 + .../nixosModules/style/modules/swaylock.nix | 47 ++ shared/nixosModules/style/modules/swaync.nix | 14 + .../nixosModules/style/modules/tidal-hifi.nix | 195 ++++++ shared/nixosModules/style/modules/waybar.nix | 15 + shared/nixosModules/style/modules/zathura.nix | 43 ++ shared/nixosModules/style/options.nix | 11 +- 18 files changed, 792 insertions(+), 626 deletions(-) delete mode 100644 shared/nixosModules/style/gtk.nix create mode 100644 shared/nixosModules/style/modules/discord.nix create mode 100644 shared/nixosModules/style/modules/fish.nix create mode 100644 shared/nixosModules/style/modules/foot.nix create mode 100644 shared/nixosModules/style/modules/fuzzel.nix create mode 100644 shared/nixosModules/style/modules/gtk.nix create mode 100644 shared/nixosModules/style/modules/hyprland.nix create mode 100644 shared/nixosModules/style/modules/hyprlock.nix create mode 100644 shared/nixosModules/style/modules/niri.nix create mode 100644 shared/nixosModules/style/modules/nvf.nix create mode 100644 shared/nixosModules/style/modules/starship.nix create mode 100644 shared/nixosModules/style/modules/swaylock.nix create mode 100644 shared/nixosModules/style/modules/swaync.nix create mode 100644 shared/nixosModules/style/modules/tidal-hifi.nix create mode 100644 shared/nixosModules/style/modules/waybar.nix create mode 100644 shared/nixosModules/style/modules/zathura.nix diff --git a/shared/nixosModules/style/default.nix b/shared/nixosModules/style/default.nix index e2c1fe1..cbeae11 100644 --- a/shared/nixosModules/style/default.nix +++ b/shared/nixosModules/style/default.nix @@ -2,26 +2,24 @@ inputs, config, lib, - lib', ... }: let inherit (lib) mkIf; - inherit (lib.strings) removePrefix; - - inherit (lib') generateGtkColors; cfg = config.local.style; in { - imports = [ - ./gtk.nix - ./options.nix - inputs.niri.nixosModules.niri - inputs.hyprland.nixosModules.default - ]; - config = let - scheme = inputs.basix.schemeData.base16.${cfg.schemeName}; - in - mkIf cfg.enable + imports = + [ + inputs.niri.nixosModules.niri + inputs.hyprland.nixosModules.default + + ./options.nix + ] + ++ lib.filesystem.listFilesRecursive ./modules; + + config = + mkIf + cfg.enable { home-manager.users.${config.local.systemVars.username} = { home.pointerCursor = { @@ -29,602 +27,6 @@ in { 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" - "XCURSOR_SIZE,32" - ]; - general = { - border_size = 4; - "col.active_border" = "rgb(${removePrefix "#" scheme.palette.base0E})"; - }; - decoration = { - rounding = 10; - blur.enabled = true; - }; - }; - - 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 = scheme.palette.base05; - - position = "30, -30"; - halign = "left"; - valign = "top"; - } - { - monitor = ""; - text = "$TIME"; - font_size = 90; - color = scheme.palette.base05; - - position = "-30, 0"; - halign = "right"; - valign = "top"; - } - { - monitor = ""; - text = "cmd[update:43200000] date +\"%A, %d %B %Y\""; - font_size = 25; - color = scheme.palette.base05; - - position = "-30, -150"; - halign = "right"; - valign = "top"; - } - ]; - - image = { - monitor = ""; - path = "${cfg.avatar}"; # Replace with your avatar path - size = 100; - border_color = scheme.palette.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 = scheme.palette.base0D; - inner_color = scheme.palette.base02; - font_color = scheme.palette.base05; - - fade_on_empty = false; - placeholder_text = "󰌾 Logged in as $USER"; - - hide_input = false; - check_color = scheme.palette.base0D; - fail_color = scheme.palette.base08; - - fail_text = "$FAIL ($ATTEMPTS)"; - capslock_color = scheme.palette.base0E; - - position = "0, -47"; - halign = "center"; - valign = "center"; - } - ]; - }; - }; - niri = { - settings = { - layout.focus-ring.active.color = scheme.palette.base0D; - cursor = { - inherit (cfg.cursorTheme) size; - theme = cfg.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; - }; - }; - xdg.configFile."equibop/themes/midnight-base16.css".text = with scheme.palette; '' - /** - * @name Midnight-base16 - * @description A dark, rounded discord theme. Updated to use base16 colors. - * @author refact0r - * @version 1.6.2 - * @invite nz87hXyvcy - * @website https://github.com/refact0r/midnight-discord - * @source https://github.com/refact0r/midnight-discord/blob/master/midnight.theme.css - * @authorId 508863359777505290 - * @authorLink https://www.refact0r.dev - */ - - /* IMPORTANT: make sure to enable dark mode in discord settings for the theme to apply properly!!! */ - - @import url('https://refact0r.github.io/midnight-discord/midnight.css'); - - /* customize things here */ - :root { - /* font, change to 'gg sans' for default discord font*/ - --font: 'gg sans'; - - /* top left corner text */ - --corner-text: '${scheme.name}'; - - /* color of status indicators and window controls */ - --online-indicator: ${base0B}; /* change to #23a55a for default green */ - --dnd-indicator: ${base08}; /* change to #f13f43 for default red */ - --idle-indicator: ${base0A}; /* change to #f0b232 for default yellow */ - --streaming-indicator: ${base0E}; /* change to #593695 for default purple */ - - /* accent colors */ - --accent-1: ${base0D}; /* links */ - --accent-2: ${base0E}; /* general unread/mention elements, some icons when active */ - --accent-3: ${base0E}; /* accent buttons */ - --accent-4: ${base03}; /* accent buttons when hovered */ - --accent-5: ${base07}; /* accent buttons when clicked */ - --mention: ${base00}1a; /* mentions & mention messages */ - --mention-hover: ${base00}0d; /* mentions & mention messages when hovered */ - - /* text colors */ - --text-0: var(--bg-4); /* text on colored elements */ - --text-1: ${base06}; /* other normally white text */ - --text-2: ${base06}; /* headings and important text */ - --text-3: ${base05}; /* normal text */ - --text-4: ${base05}; /* icon buttons and channels */ - --text-5: ${base04}; /* muted channels/chats and timestamps */ - - /* background and dark colors */ - --bg-1: ${base0E}; /* dark buttons when clicked */ - --bg-2: ${base02}; /* dark buttons */ - --bg-3: ${base01}; /* spacing, secondary elements */ - --bg-4: ${base00}; /* main background color */ - --hover: ${base03}1a; /* channels and buttons when hovered */ - --active: ${base03}33; /* channels and buttons when clicked or selected */ - --message-hover: #0000001a; /* messages when hovered */ - - /* amount of spacing and padding */ - --spacing: 12px; - - /* animations */ - /* ALL ANIMATIONS CAN BE DISABLED WITH REDUCED MOTION IN DISCORD SETTINGS */ - --list-item-transition: 0.2s ease; /* channels/members/settings hover transition */ - --unread-bar-transition: 0.2s ease; /* unread bar moving into view transition */ - --moon-spin-transition: 0.4s ease; /* moon icon spin */ - --icon-spin-transition: 1s ease; /* round icon button spin (settings, emoji, etc.) */ - - /* corner roundness (border-radius) */ - --roundness-xl: 22px; /* roundness of big panel outer corners */ - --roundness-l: 20px; /* popout panels */ - --roundness-m: 16px; /* smaller panels, images, embeds */ - --roundness-s: 12px; /* members, settings inputs */ - --roundness-xs: 10px; /* channels, buttons */ - --roundness-xxs: 8px; /* searchbar, small elements */ - - /* direct messages moon icon */ - /* change to block to show, none to hide */ - --discord-icon: none; /* discord icon */ - --moon-icon: block; /* moon icon */ - --moon-icon-url: url('https://upload.wikimedia.org/wikipedia/commons/c/c4/Font_Awesome_5_solid_moon.svg'); /* custom icon url */ - --moon-icon-size: auto; - - /* filter uncolorable elements to fit theme */ - /* (just set to none, they're too much work to configure) */ - --login-bg-filter: saturate(0.3) hue-rotate(-15deg) brightness(0.4); /* login background artwork */ - --green-to-accent-3-filter: hue-rotate(56deg) saturate(1.43); /* add friend page explore icon */ - --blurple-to-accent-3-filter: hue-rotate(304deg) saturate(0.84) brightness(1.2); /* add friend page school icon */ - } - - /* Selected chat/friend text */ - .selected_f5eb4b, - .selected_f6f816 .link_d8bfb3 { - color: var(--text-0) !important; - background: var(--accent-3) !important; - } - - .selected_f6f816 .link_d8bfb3 * { - color: var(--text-0) !important; - fill: var(--text-0) !important; - } - ''; - - # based on https://github.com/rose-pine/tidal. adapted to work with base16 colors. - xdg.configFile."tidal-hifi/themes/base16.css".text = with scheme.palette; '' - :root { - --glass-white-1: ${base05}; - --glass-white-1-hover: ${base06}; - --glass-white-2: ${base07}; - --glass-white-2-hover: ${base08}; - --glass-white-3: ${base07}; - --glass-white-4: ${base04}; - --glass-white-5: ${base04}; - --glass-white-6: ${base05}; - --snow-white: ${base07}; - --snow-white-hover: ${base08}; - --gray-4: ${base00}; - --gray-5: ${base02}; - --gray-6: ${base03}; - --gray-7: ${base04}; - --cyan-blue: ${base0D}; - --cyan-blue-hover: ${base0C}; - --glass-cyan-1: ${base04}; - --glass-cyan-2: ${base05}; - --glass-cyan-3: ${base06}; - --master-gold: ${base0E}; - --master-gold-hover: ${base08}; - --glass-master-gold: ${base05}; - --glass-master-gold-2: ${base06}; - --raspberry-pink: ${base08}; - --raspberry-pink-lighter: ${base09}; - --black: ${base00}; - --midnight-black: ${base00}; - --controls-overlay: ${base03}; - --duration-overlay: ${base02}; - --background-dark: ${base00}; - --hoverLighten: brightness(130%); - --hoverDarken: brightness(70%); - --hoverTransition: filter 0.15s ease; - --scrollbar-track: ${base03}; - --scrollbar-thumb: ${base00}; - --lighten-25: ${base01}; - --red-alert: ${base08}; - --user-profile-linear-gradient: linear-gradient(160deg,${base0D} 1.22%,${base0C} 40.51%,${base00} 79.07%); - --wave-border-radius--none: 0px; - --wave-border-radius--extra-small: 4px; - --wave-border-radius--small: 8px; - --wave-border-radius--regular: 12px; - --wave-border-radius--full: 1000px; - --wave-color-material-dark: ${base00}80; - --wave-color-material-light: ${base04}33; - --wave-color-opacity-accent-dark-ultra-thick: ${base0C}cc; - --wave-color-opacity-accent-darkest-ultra-thick: ${base01}; - --wave-color-opacity-accent-fill-regular: ${base0C}66; - --wave-color-opacity-accent-fill-thin: ${base0C}33; - --wave-color-opacity-accent-fill-ultra-thick: ${base0C}cc; - --wave-color-opacity-accent-fill-ultra-thin: ${base0C}1a; - --wave-color-opacity-base-bright-thick: ${base00}99; - --wave-color-opacity-base-bright-thin: ${base00}33; - --wave-color-opacity-base-bright-transparent: ${base00}; - --wave-color-opacity-base-bright-ultra-thick: ${base00}cc; - --wave-color-opacity-base-brighter-ultra-thick: ${base01}cc; - --wave-color-opacity-base-brightest-regular: ${base02}66; - --wave-color-opacity-base-brightest-thin: ${base02}33; - --wave-color-opacity-base-brightest-ultra-thin: ${base02}1a; - --wave-color-opacity-base-fill-regular: ${base00}66; - --wave-color-opacity-base-fill-thick: ${base00}99; - --wave-color-opacity-base-fill-thin: ${base00}33; - --wave-color-opacity-base-fill-transparent: #000; - --wave-color-opacity-base-fill-ultra-thick: ${base00}cc; - --wave-color-opacity-base-fill-ultra-thin: ${base00}1a; - --wave-color-opacity-contrast-fill-regular: ${base07}66; - --wave-color-opacity-contrast-fill-thick: ${base07}99; - --wave-color-opacity-contrast-fill-thin: ${base07}33; - --wave-color-opacity-contrast-fill-transparent: #fff; - --wave-color-opacity-contrast-fill-ultra-thick: ${base07}cc; - --wave-color-opacity-contrast-fill-ultra-thin: ${base07}1a; - --wave-color-opacity-rainbow-blue-thin: ${base0D}33; - --wave-color-opacity-rainbow-yellow-fill-regular: ${base0E}66; - --wave-color-opacity-rainbow-yellow-fill-thin: ${base0E}33; - --wave-color-opacity-rainbow-yellow-fill-ultra-thick: ${base0E}cc; - --wave-color-opacity-rainbow-yellow-fill-ultra-thin: ${base0E}1a; - --wave-color-opacity-special-fill-regular: ${base0E}66; - --wave-color-opacity-special-fill-thin: ${base0E}33; - --wave-color-opacity-special-fill-ultra-thick: ${base0E}cc; - --wave-color-opacity-special-fill-ultra-thin: ${base0E}1a; - --wave-color-services-facebook: ${base0D}; - --wave-color-services-instagram-red: ${base08}; - --wave-color-services-mtn: ${base0E}; - --wave-color-services-musix-orange: ${base09}; - --wave-color-services-musix-pink: ${base0E}; - --wave-color-services-play: ${base0C}; - --wave-color-services-plus: ${base0B}; - --wave-color-services-snapchat: ${base0A}; - --wave-color-services-sprint: ${base0A}; - --wave-color-services-t-mobile: ${base08}; - --wave-color-services-tik-tok-blue: ${base0D}; - --wave-color-services-tik-tok-red: ${base08}; - --wave-color-services-twitter: ${base0D}; - --wave-color-services-viacom-1: ${base0D}; - --wave-color-services-viacom-2: ${base0E}; - --wave-color-services-viacom-3: ${base08}; - --wave-color-services-viacom-4: ${base09}; - --wave-color-services-viacom-5: ${base0E}; - --wave-color-services-vivo: ${base0E}; - --wave-color-services-vodafone: ${base08}; - --wave-color-services-waze: ${base0D}; - --wave-color-solid-accent-bright: ${base0D}; - --wave-color-solid-accent-brighter: ${base0D}; - --wave-color-solid-accent-dark: ${base0C}; - --wave-color-solid-accent-darker: ${base01}; - --wave-color-solid-accent-darkest: ${base00}; - --wave-color-solid-accent-fill: ${base0D}; - --wave-color-solid-base-bright: ${base00}; - --wave-color-solid-base-brighter: ${base01}; - --wave-color-solid-base-brightest: ${base02}; - --wave-color-solid-base-fill: ${base00}; - --wave-color-solid-contrast-dark: ${base07}; - --wave-color-solid-contrast-darker: ${base06}; - --wave-color-solid-contrast-darkest: ${base05}; - --wave-color-solid-contrast-fill: ${base07}; - --wave-color-solid-rainbow-blue-fill: ${base0D}; - --wave-color-solid-rainbow-green-brighter: ${base0D}; - --wave-color-solid-rainbow-green-dark: ${base0C}; - --wave-color-solid-rainbow-green-darker: ${base0C}; - --wave-color-solid-rainbow-green-darkest: ${base01}; - --wave-color-solid-rainbow-green-fill: ${base0D}; - --wave-color-solid-rainbow-orange-fill: ${base09}; - --wave-color-solid-rainbow-purple-fill: ${base0E}; - --wave-color-solid-rainbow-red-bright: ${base08}; - --wave-color-solid-rainbow-red-brighter: ${base08}; - --wave-color-solid-rainbow-red-dark: ${base09}; - --wave-color-solid-rainbow-red-darker: ${base01}; - --wave-color-solid-rainbow-red-darkest: ${base00}; - --wave-color-solid-rainbow-red-fill: ${base08}; - --wave-color-solid-rainbow-yellow-bright: ${base0A}; - --wave-color-solid-rainbow-yellow-brighter: ${base06}; - --wave-color-solid-rainbow-yellow-dark: ${base09}; - --wave-color-solid-rainbow-yellow-darker: ${base01}; - --wave-color-solid-rainbow-yellow-darkest: ${base00}; - --wave-color-solid-rainbow-yellow-fill: ${base0A}; - --wave-color-solid-special-bright: ${base09}; - --wave-color-solid-special-brighter: ${base06}; - --wave-color-solid-special-dark: ${base09}; - --wave-color-solid-special-darker: ${base09}; - --wave-color-solid-special-darkest: ${base00}; - --wave-color-solid-special-fill: ${base0E}; - --wave-color-solid-warning-bright: ${base08}; - --wave-color-solid-warning-brighter: ${base09}; - --wave-color-solid-warning-dark: ${base09}; - --wave-color-solid-warning-darker: ${base01}; - --wave-color-solid-warning-darkest: ${base00}; - --wave-color-solid-warning-fill: ${base08}; - --wave-color-text-disabled: ${base02}; - --wave-color-text-link: ${base0D}; - --wave-color-text-main: ${base07}; - --wave-color-text-placeholder: ${base02}; - --wave-color-text-secondary: ${base06}; - --wave-color-text-tertiary: ${base05}; - --wave-font-weight--bold: 700; - --wave-font-weight--demi: 600; - --wave-font-weight--medium: 500; - --wave-opacity--ultra-thin: .05; - --wave-opacity--thin: .1; - --wave-opacity--regular: .4; - --wave-opacity--thick: .6; - --wave-opacity--ultra-thick: .8; - --wave-spacing--extra-extra-large: 64px; - --wave-spacing--extra-large: 40px; - --wave-spacing--large: 24px; - --wave-spacing--medium: 20px; - --wave-spacing--regular: 16px; - --wave-spacing--small: 12px; - --wave-spacing--extra-small: 8px; - --wave-spacing--extra-extra-small: 4px; - } - - .wave-text-caption-demi, .tidal-ui__v-stack { - color: var(--wave-color-solid-accent-bright) !important; - } - - .tidal-ui__icon { - fill: var(--wave-color-solid-rainbow-purple-fill) !important; - stroke: var(--wave-color-solid-rainbow-purple-fill) !important; - } - ''; - - 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}"; }; }; } diff --git a/shared/nixosModules/style/gtk.nix b/shared/nixosModules/style/gtk.nix deleted file mode 100644 index c281763..0000000 --- a/shared/nixosModules/style/gtk.nix +++ /dev/null @@ -1,15 +0,0 @@ -{config, ...}: let - cfg = config.local.style.gtk; -in { - home-manager.users.${config.local.systemVars.username} = { - gtk = { - enable = true; - iconTheme = { - inherit (cfg.iconTheme) name package; - }; - theme = { - inherit (cfg.theme) name package; - }; - }; - }; -} diff --git a/shared/nixosModules/style/modules/discord.nix b/shared/nixosModules/style/modules/discord.nix new file mode 100644 index 0000000..93e1a7d --- /dev/null +++ b/shared/nixosModules/style/modules/discord.nix @@ -0,0 +1,114 @@ +{ + lib, + config, + ... +}: let + cfg = config.local.style; + inherit (cfg) scheme; +in { + config.home-manager.sharedModules = lib.mkIf cfg.enable [ + { + xdg.configFile."equibop/themes/midnight-base16.css".text = with scheme.palette; '' + /** + * @name Midnight-base16 + * @description A dark, rounded discord theme. Updated to use base16 colors. + * @author refact0r + * @version 1.6.2 + * @invite nz87hXyvcy + * @website https://github.com/refact0r/midnight-discord + * @source https://github.com/refact0r/midnight-discord/blob/master/midnight.theme.css + * @authorId 508863359777505290 + * @authorLink https://www.refact0r.dev + */ + + /* IMPORTANT: make sure to enable dark mode in discord settings for the theme to apply properly!!! */ + + @import url('https://refact0r.github.io/midnight-discord/midnight.css'); + + /* customize things here */ + :root { + /* font, change to 'gg sans' for default discord font*/ + --font: 'gg sans'; + + /* top left corner text */ + --corner-text: '${scheme.name}'; + + /* color of status indicators and window controls */ + --online-indicator: ${base0B}; /* change to #23a55a for default green */ + --dnd-indicator: ${base08}; /* change to #f13f43 for default red */ + --idle-indicator: ${base0A}; /* change to #f0b232 for default yellow */ + --streaming-indicator: ${base0E}; /* change to #593695 for default purple */ + + /* accent colors */ + --accent-1: ${base0D}; /* links */ + --accent-2: ${base0E}; /* general unread/mention elements, some icons when active */ + --accent-3: ${base0E}; /* accent buttons */ + --accent-4: ${base03}; /* accent buttons when hovered */ + --accent-5: ${base07}; /* accent buttons when clicked */ + --mention: ${base00}1a; /* mentions & mention messages */ + --mention-hover: ${base00}0d; /* mentions & mention messages when hovered */ + + /* text colors */ + --text-0: var(--bg-4); /* text on colored elements */ + --text-1: ${base06}; /* other normally white text */ + --text-2: ${base06}; /* headings and important text */ + --text-3: ${base05}; /* normal text */ + --text-4: ${base05}; /* icon buttons and channels */ + --text-5: ${base04}; /* muted channels/chats and timestamps */ + + /* background and dark colors */ + --bg-1: ${base0E}; /* dark buttons when clicked */ + --bg-2: ${base02}; /* dark buttons */ + --bg-3: ${base01}; /* spacing, secondary elements */ + --bg-4: ${base00}; /* main background color */ + --hover: ${base03}1a; /* channels and buttons when hovered */ + --active: ${base03}33; /* channels and buttons when clicked or selected */ + --message-hover: #0000001a; /* messages when hovered */ + + /* amount of spacing and padding */ + --spacing: 12px; + + /* animations */ + /* ALL ANIMATIONS CAN BE DISABLED WITH REDUCED MOTION IN DISCORD SETTINGS */ + --list-item-transition: 0.2s ease; /* channels/members/settings hover transition */ + --unread-bar-transition: 0.2s ease; /* unread bar moving into view transition */ + --moon-spin-transition: 0.4s ease; /* moon icon spin */ + --icon-spin-transition: 1s ease; /* round icon button spin (settings, emoji, etc.) */ + + /* corner roundness (border-radius) */ + --roundness-xl: 22px; /* roundness of big panel outer corners */ + --roundness-l: 20px; /* popout panels */ + --roundness-m: 16px; /* smaller panels, images, embeds */ + --roundness-s: 12px; /* members, settings inputs */ + --roundness-xs: 10px; /* channels, buttons */ + --roundness-xxs: 8px; /* searchbar, small elements */ + + /* direct messages moon icon */ + /* change to block to show, none to hide */ + --discord-icon: none; /* discord icon */ + --moon-icon: block; /* moon icon */ + --moon-icon-url: url('https://upload.wikimedia.org/wikipedia/commons/c/c4/Font_Awesome_5_solid_moon.svg'); /* custom icon url */ + --moon-icon-size: auto; + + /* filter uncolorable elements to fit theme */ + /* (just set to none, they're too much work to configure) */ + --login-bg-filter: saturate(0.3) hue-rotate(-15deg) brightness(0.4); /* login background artwork */ + --green-to-accent-3-filter: hue-rotate(56deg) saturate(1.43); /* add friend page explore icon */ + --blurple-to-accent-3-filter: hue-rotate(304deg) saturate(0.84) brightness(1.2); /* add friend page school icon */ + } + + /* Selected chat/friend text */ + .selected_f5eb4b, + .selected_f6f816 .link_d8bfb3 { + color: var(--text-0) !important; + background: var(--accent-3) !important; + } + + .selected_f6f816 .link_d8bfb3 * { + color: var(--text-0) !important; + fill: var(--text-0) !important; + } + ''; + } + ]; +} diff --git a/shared/nixosModules/style/modules/fish.nix b/shared/nixosModules/style/modules/fish.nix new file mode 100644 index 0000000..24fe0de --- /dev/null +++ b/shared/nixosModules/style/modules/fish.nix @@ -0,0 +1,46 @@ +{ + 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' + ''; + } + ]; +} diff --git a/shared/nixosModules/style/modules/foot.nix b/shared/nixosModules/style/modules/foot.nix new file mode 100644 index 0000000..d7ab1a7 --- /dev/null +++ b/shared/nixosModules/style/modules/foot.nix @@ -0,0 +1,44 @@ +{ + 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 { + 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; + }; + } + ]; +} diff --git a/shared/nixosModules/style/modules/fuzzel.nix b/shared/nixosModules/style/modules/fuzzel.nix new file mode 100644 index 0000000..8c2b8d7 --- /dev/null +++ b/shared/nixosModules/style/modules/fuzzel.nix @@ -0,0 +1,27 @@ +{ + 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 = { + 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"; + }; + }; + } + ]; +} diff --git a/shared/nixosModules/style/modules/gtk.nix b/shared/nixosModules/style/modules/gtk.nix new file mode 100644 index 0000000..2bce480 --- /dev/null +++ b/shared/nixosModules/style/modules/gtk.nix @@ -0,0 +1,30 @@ +{ + lib, + config, + scheme, + ... +}: let + cfg = config.local.style; + inherit (cfg) scheme; +in { + home-manager.sharedModules = lib.mkIf cfg.enable [ + { + gtk = rec { + enable = true; + iconTheme = { + inherit (cfg.gtk.iconTheme) name package; + }; + theme = { + inherit (cfg.gtk.theme) name package; + }; + + 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}"; + } + ]; +} diff --git a/shared/nixosModules/style/modules/hyprland.nix b/shared/nixosModules/style/modules/hyprland.nix new file mode 100644 index 0000000..d0a21bd --- /dev/null +++ b/shared/nixosModules/style/modules/hyprland.nix @@ -0,0 +1,27 @@ +{ + 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; + }; + }; + } + ]; +} diff --git a/shared/nixosModules/style/modules/hyprlock.nix b/shared/nixosModules/style/modules/hyprlock.nix new file mode 100644 index 0000000..8564424 --- /dev/null +++ b/shared/nixosModules/style/modules/hyprlock.nix @@ -0,0 +1,103 @@ +{ + lib, + config, + ... +}: let + cfg = config.local.style; + inherit (cfg) scheme; +in { + config.home-manager.sharedModules = 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 = scheme.palette.base05; + + position = "30, -30"; + halign = "left"; + valign = "top"; + } + { + monitor = ""; + text = "$TIME"; + font_size = 90; + color = scheme.palette.base05; + + position = "-30, 0"; + halign = "right"; + valign = "top"; + } + { + monitor = ""; + text = "cmd[update:43200000] date +\"%A, %d %B %Y\""; + font_size = 25; + color = scheme.palette.base05; + + position = "-30, -150"; + halign = "right"; + valign = "top"; + } + ]; + + image = { + monitor = ""; + path = "${cfg.avatar}"; # Replace with your avatar path + size = 100; + border_color = scheme.palette.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 = scheme.palette.base0D; + inner_color = scheme.palette.base02; + font_color = scheme.palette.base05; + + fade_on_empty = false; + placeholder_text = "󰌾 Logged in as $USER"; + + hide_input = false; + check_color = scheme.palette.base0D; + fail_color = scheme.palette.base08; + + fail_text = "$FAIL ($ATTEMPTS)"; + capslock_color = scheme.palette.base0E; + + position = "0, -47"; + halign = "center"; + valign = "center"; + } + ]; + }; + }; + } + ]; +} diff --git a/shared/nixosModules/style/modules/niri.nix b/shared/nixosModules/style/modules/niri.nix new file mode 100644 index 0000000..a25b136 --- /dev/null +++ b/shared/nixosModules/style/modules/niri.nix @@ -0,0 +1,21 @@ +{ + 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; + }; + }; + }; + } + ]; +} diff --git a/shared/nixosModules/style/modules/nvf.nix b/shared/nixosModules/style/modules/nvf.nix new file mode 100644 index 0000000..93be707 --- /dev/null +++ b/shared/nixosModules/style/modules/nvf.nix @@ -0,0 +1,17 @@ +{ + 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; + }; + } + ]; +} diff --git a/shared/nixosModules/style/modules/starship.nix b/shared/nixosModules/style/modules/starship.nix new file mode 100644 index 0000000..b0d0007 --- /dev/null +++ b/shared/nixosModules/style/modules/starship.nix @@ -0,0 +1,27 @@ +{ + 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)"; + }; + }; + } + ]; +} diff --git a/shared/nixosModules/style/modules/swaylock.nix b/shared/nixosModules/style/modules/swaylock.nix new file mode 100644 index 0000000..ec1d416 --- /dev/null +++ b/shared/nixosModules/style/modules/swaylock.nix @@ -0,0 +1,47 @@ +{ + lib, + config, + ... +}: let + cfg = config.local.style; + inherit (cfg) scheme; +in { + config.home-manager.sharedModules = lib.mkIf cfg.enable [ + { + programs.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 + }; + } + ]; +} diff --git a/shared/nixosModules/style/modules/swaync.nix b/shared/nixosModules/style/modules/swaync.nix new file mode 100644 index 0000000..b4e517c --- /dev/null +++ b/shared/nixosModules/style/modules/swaync.nix @@ -0,0 +1,14 @@ +{ + 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; + } + ]; +} diff --git a/shared/nixosModules/style/modules/tidal-hifi.nix b/shared/nixosModules/style/modules/tidal-hifi.nix new file mode 100644 index 0000000..4bd0b30 --- /dev/null +++ b/shared/nixosModules/style/modules/tidal-hifi.nix @@ -0,0 +1,195 @@ +{ + lib, + config, + ... +}: let + cfg = config.local.style; +in { + config.home-manager.sharedModules = lib.mkIf cfg.enable [ + { + # 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; '' + :root { + --glass-white-1: ${base05}; + --glass-white-1-hover: ${base06}; + --glass-white-2: ${base07}; + --glass-white-2-hover: ${base08}; + --glass-white-3: ${base07}; + --glass-white-4: ${base04}; + --glass-white-5: ${base04}; + --glass-white-6: ${base05}; + --snow-white: ${base07}; + --snow-white-hover: ${base08}; + --gray-4: ${base00}; + --gray-5: ${base02}; + --gray-6: ${base03}; + --gray-7: ${base04}; + --cyan-blue: ${base0D}; + --cyan-blue-hover: ${base0C}; + --glass-cyan-1: ${base04}; + --glass-cyan-2: ${base05}; + --glass-cyan-3: ${base06}; + --master-gold: ${base0E}; + --master-gold-hover: ${base08}; + --glass-master-gold: ${base05}; + --glass-master-gold-2: ${base06}; + --raspberry-pink: ${base08}; + --raspberry-pink-lighter: ${base09}; + --black: ${base00}; + --midnight-black: ${base00}; + --controls-overlay: ${base03}; + --duration-overlay: ${base02}; + --background-dark: ${base00}; + --hoverLighten: brightness(130%); + --hoverDarken: brightness(70%); + --hoverTransition: filter 0.15s ease; + --scrollbar-track: ${base03}; + --scrollbar-thumb: ${base00}; + --lighten-25: ${base01}; + --red-alert: ${base08}; + --user-profile-linear-gradient: linear-gradient(160deg,${base0D} 1.22%,${base0C} 40.51%,${base00} 79.07%); + --wave-border-radius--none: 0px; + --wave-border-radius--extra-small: 4px; + --wave-border-radius--small: 8px; + --wave-border-radius--regular: 12px; + --wave-border-radius--full: 1000px; + --wave-color-material-dark: ${base00}80; + --wave-color-material-light: ${base04}33; + --wave-color-opacity-accent-dark-ultra-thick: ${base0C}cc; + --wave-color-opacity-accent-darkest-ultra-thick: ${base01}; + --wave-color-opacity-accent-fill-regular: ${base0C}66; + --wave-color-opacity-accent-fill-thin: ${base0C}33; + --wave-color-opacity-accent-fill-ultra-thick: ${base0C}cc; + --wave-color-opacity-accent-fill-ultra-thin: ${base0C}1a; + --wave-color-opacity-base-bright-thick: ${base00}99; + --wave-color-opacity-base-bright-thin: ${base00}33; + --wave-color-opacity-base-bright-transparent: ${base00}; + --wave-color-opacity-base-bright-ultra-thick: ${base00}cc; + --wave-color-opacity-base-brighter-ultra-thick: ${base01}cc; + --wave-color-opacity-base-brightest-regular: ${base02}66; + --wave-color-opacity-base-brightest-thin: ${base02}33; + --wave-color-opacity-base-brightest-ultra-thin: ${base02}1a; + --wave-color-opacity-base-fill-regular: ${base00}66; + --wave-color-opacity-base-fill-thick: ${base00}99; + --wave-color-opacity-base-fill-thin: ${base00}33; + --wave-color-opacity-base-fill-transparent: #000; + --wave-color-opacity-base-fill-ultra-thick: ${base00}cc; + --wave-color-opacity-base-fill-ultra-thin: ${base00}1a; + --wave-color-opacity-contrast-fill-regular: ${base07}66; + --wave-color-opacity-contrast-fill-thick: ${base07}99; + --wave-color-opacity-contrast-fill-thin: ${base07}33; + --wave-color-opacity-contrast-fill-transparent: #fff; + --wave-color-opacity-contrast-fill-ultra-thick: ${base07}cc; + --wave-color-opacity-contrast-fill-ultra-thin: ${base07}1a; + --wave-color-opacity-rainbow-blue-thin: ${base0D}33; + --wave-color-opacity-rainbow-yellow-fill-regular: ${base0E}66; + --wave-color-opacity-rainbow-yellow-fill-thin: ${base0E}33; + --wave-color-opacity-rainbow-yellow-fill-ultra-thick: ${base0E}cc; + --wave-color-opacity-rainbow-yellow-fill-ultra-thin: ${base0E}1a; + --wave-color-opacity-special-fill-regular: ${base0E}66; + --wave-color-opacity-special-fill-thin: ${base0E}33; + --wave-color-opacity-special-fill-ultra-thick: ${base0E}cc; + --wave-color-opacity-special-fill-ultra-thin: ${base0E}1a; + --wave-color-services-facebook: ${base0D}; + --wave-color-services-instagram-red: ${base08}; + --wave-color-services-mtn: ${base0E}; + --wave-color-services-musix-orange: ${base09}; + --wave-color-services-musix-pink: ${base0E}; + --wave-color-services-play: ${base0C}; + --wave-color-services-plus: ${base0B}; + --wave-color-services-snapchat: ${base0A}; + --wave-color-services-sprint: ${base0A}; + --wave-color-services-t-mobile: ${base08}; + --wave-color-services-tik-tok-blue: ${base0D}; + --wave-color-services-tik-tok-red: ${base08}; + --wave-color-services-twitter: ${base0D}; + --wave-color-services-viacom-1: ${base0D}; + --wave-color-services-viacom-2: ${base0E}; + --wave-color-services-viacom-3: ${base08}; + --wave-color-services-viacom-4: ${base09}; + --wave-color-services-viacom-5: ${base0E}; + --wave-color-services-vivo: ${base0E}; + --wave-color-services-vodafone: ${base08}; + --wave-color-services-waze: ${base0D}; + --wave-color-solid-accent-bright: ${base0D}; + --wave-color-solid-accent-brighter: ${base0D}; + --wave-color-solid-accent-dark: ${base0C}; + --wave-color-solid-accent-darker: ${base01}; + --wave-color-solid-accent-darkest: ${base00}; + --wave-color-solid-accent-fill: ${base0D}; + --wave-color-solid-base-bright: ${base00}; + --wave-color-solid-base-brighter: ${base01}; + --wave-color-solid-base-brightest: ${base02}; + --wave-color-solid-base-fill: ${base00}; + --wave-color-solid-contrast-dark: ${base07}; + --wave-color-solid-contrast-darker: ${base06}; + --wave-color-solid-contrast-darkest: ${base05}; + --wave-color-solid-contrast-fill: ${base07}; + --wave-color-solid-rainbow-blue-fill: ${base0D}; + --wave-color-solid-rainbow-green-brighter: ${base0D}; + --wave-color-solid-rainbow-green-dark: ${base0C}; + --wave-color-solid-rainbow-green-darker: ${base0C}; + --wave-color-solid-rainbow-green-darkest: ${base01}; + --wave-color-solid-rainbow-green-fill: ${base0D}; + --wave-color-solid-rainbow-orange-fill: ${base09}; + --wave-color-solid-rainbow-purple-fill: ${base0E}; + --wave-color-solid-rainbow-red-bright: ${base08}; + --wave-color-solid-rainbow-red-brighter: ${base08}; + --wave-color-solid-rainbow-red-dark: ${base09}; + --wave-color-solid-rainbow-red-darker: ${base01}; + --wave-color-solid-rainbow-red-darkest: ${base00}; + --wave-color-solid-rainbow-red-fill: ${base08}; + --wave-color-solid-rainbow-yellow-bright: ${base0A}; + --wave-color-solid-rainbow-yellow-brighter: ${base06}; + --wave-color-solid-rainbow-yellow-dark: ${base09}; + --wave-color-solid-rainbow-yellow-darker: ${base01}; + --wave-color-solid-rainbow-yellow-darkest: ${base00}; + --wave-color-solid-rainbow-yellow-fill: ${base0A}; + --wave-color-solid-special-bright: ${base09}; + --wave-color-solid-special-brighter: ${base06}; + --wave-color-solid-special-dark: ${base09}; + --wave-color-solid-special-darker: ${base09}; + --wave-color-solid-special-darkest: ${base00}; + --wave-color-solid-special-fill: ${base0E}; + --wave-color-solid-warning-bright: ${base08}; + --wave-color-solid-warning-brighter: ${base09}; + --wave-color-solid-warning-dark: ${base09}; + --wave-color-solid-warning-darker: ${base01}; + --wave-color-solid-warning-darkest: ${base00}; + --wave-color-solid-warning-fill: ${base08}; + --wave-color-text-disabled: ${base02}; + --wave-color-text-link: ${base0D}; + --wave-color-text-main: ${base07}; + --wave-color-text-placeholder: ${base02}; + --wave-color-text-secondary: ${base06}; + --wave-color-text-tertiary: ${base05}; + --wave-font-weight--bold: 700; + --wave-font-weight--demi: 600; + --wave-font-weight--medium: 500; + --wave-opacity--ultra-thin: .05; + --wave-opacity--thin: .1; + --wave-opacity--regular: .4; + --wave-opacity--thick: .6; + --wave-opacity--ultra-thick: .8; + --wave-spacing--extra-extra-large: 64px; + --wave-spacing--extra-large: 40px; + --wave-spacing--large: 24px; + --wave-spacing--medium: 20px; + --wave-spacing--regular: 16px; + --wave-spacing--small: 12px; + --wave-spacing--extra-small: 8px; + --wave-spacing--extra-extra-small: 4px; + } + + .wave-text-caption-demi, .tidal-ui__v-stack { + color: var(--wave-color-solid-accent-bright) !important; + } + + .tidal-ui__icon { + fill: var(--wave-color-solid-rainbow-purple-fill) !important; + stroke: var(--wave-color-solid-rainbow-purple-fill) !important; + } + ''; + } + ]; +} diff --git a/shared/nixosModules/style/modules/waybar.nix b/shared/nixosModules/style/modules/waybar.nix new file mode 100644 index 0000000..a9a5e8f --- /dev/null +++ b/shared/nixosModules/style/modules/waybar.nix @@ -0,0 +1,15 @@ +{ + lib, + lib', + config, + ... +}: let + cfg = config.local.style; +in { + config.home-manager.sharedModules = lib.mkIf cfg.enable [ + { + programs.waybar.style = + lib'.generateGtkColors lib cfg.scheme.palette; + } + ]; +} diff --git a/shared/nixosModules/style/modules/zathura.nix b/shared/nixosModules/style/modules/zathura.nix new file mode 100644 index 0000000..070d67a --- /dev/null +++ b/shared/nixosModules/style/modules/zathura.nix @@ -0,0 +1,43 @@ +{ + 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; + }; + } + ]; +} diff --git a/shared/nixosModules/style/options.nix b/shared/nixosModules/style/options.nix index 88538df..5160be3 100644 --- a/shared/nixosModules/style/options.nix +++ b/shared/nixosModules/style/options.nix @@ -7,7 +7,7 @@ ... }: let inherit (lib) attrNames mkEnableOption mkOption pathExists; - inherit (lib.types) bool enum package path str; + inherit (lib.types) attrs bool enum package path str; cfg = config.local.style; in { @@ -22,6 +22,13 @@ in { default = "catppuccin-mocha"; }; + scheme = mkOption { + description = '' + Computed scheme from `config.local.style.schemeName`. + ''; + type = attrs; + readOnly = true; + }; wallpaper = mkOption { description = '' Location of the wallpaper that will be used throughout the system. @@ -125,5 +132,7 @@ in { ''; } ]; + + local.style.scheme = inputs.basix.schemeData.base16.${cfg.schemeName}; }; }