From 2c2669697fdeaf7316feed3449d2082d255de5af Mon Sep 17 00:00:00 2001 From: "beeb5k (Vivek Tiwari)" Date: Thu, 4 Jun 2026 23:45:29 +0530 Subject: Debloat --- common/modules/matugen/default.nix | 88 ++- .../modules/matugen/templates/matugen-discord.nix | 444 +++++++----- common/modules/matugen/templates/matugen-gtk.nix | 54 ++ common/modules/matugen/templates/matugen-mango.nix | 17 +- common/modules/matugen/templates/matugen-nvim.nix | 6 +- .../modules/matugen/templates/matugen-pywalfox.nix | 37 + common/modules/matugen/templates/matugen-rofi.nix | 31 + .../matugen/templates/matugen-sequences.nix | 60 +- .../modules/matugen/templates/matugen-terminal.nix | 114 ++-- .../modules/matugen/templates/matugen-waybar.nix | 540 +++++++++++++++ .../matugen/templates/matugen-xresources.nix | 41 +- common/modules/matugen/templates/matugen-yazi.nix | 743 ++++++++++++++++++++- common/modules/terminal/alacritty.nix | 2 +- common/modules/terminal/default.nix | 4 +- common/modules/terminal/foot.nix | 7 +- common/modules/terminal/ghostty.nix | 2 +- common/modules/window_managers/default.nix | 12 +- common/modules/window_managers/dwm/default.nix | 176 ----- common/modules/window_managers/dwm/picom.nix | 63 -- common/modules/window_managers/dwm/scripts.nix | 113 ---- .../modules/window_managers/hyprland/default.nix | 322 --------- common/modules/window_managers/mango/default.nix | 105 ++- common/modules/window_managers/scripts.nix | 387 ++++++++++- common/overlays/ioskeleyInput.nix | 354 +++++----- common/programs/btop.nix | 2 +- common/programs/dunst.nix | 12 +- common/programs/fastfetch.nix | 34 + common/programs/firefox.nix | 136 ---- common/programs/librewolf.nix | 101 +++ common/programs/rofi.nix | 144 ++++ common/programs/vesktop.nix | 29 + common/programs/zenBrowser.nix | 157 ----- flake.lock | 291 ++++++++ flake.nix | 15 +- hosts/common.nix | 96 ++- hosts/niuwux/default.nix | 13 +- hosts/niuwux/hardware-configuration.nix | 113 +--- users/beeb5k/default.nix | 6 +- users/common.nix | 26 +- 39 files changed, 3223 insertions(+), 1674 deletions(-) create mode 100644 common/modules/matugen/templates/matugen-gtk.nix create mode 100644 common/modules/matugen/templates/matugen-pywalfox.nix create mode 100644 common/modules/matugen/templates/matugen-rofi.nix create mode 100644 common/modules/matugen/templates/matugen-waybar.nix delete mode 100644 common/modules/window_managers/dwm/default.nix delete mode 100644 common/modules/window_managers/dwm/picom.nix delete mode 100644 common/modules/window_managers/dwm/scripts.nix delete mode 100644 common/modules/window_managers/hyprland/default.nix create mode 100644 common/programs/fastfetch.nix delete mode 100644 common/programs/firefox.nix create mode 100644 common/programs/librewolf.nix create mode 100644 common/programs/rofi.nix create mode 100644 common/programs/vesktop.nix delete mode 100644 common/programs/zenBrowser.nix create mode 100644 flake.lock diff --git a/common/modules/matugen/default.nix b/common/modules/matugen/default.nix index ecc9255..b467dcb 100644 --- a/common/modules/matugen/default.nix +++ b/common/modules/matugen/default.nix @@ -13,19 +13,6 @@ }: let cfg = config.${moduleNameSpace}.matugen; - # link_zen = pkgs.writeShellScript "link_zen" '' - # export PROFILE_DIR=$(find ~/.config/zen/ -maxdepth 1 -type d -name "*.Default Profile" | head -n 1) - # mkdir -p "$PROFILE_DIR/chrome" - # ln -sf ~/.cache/wallust/userChrome.css "$PROFILE_DIR/chrome/userChrome.css" - # ln -sf ~/.config/userContent.css "$PROFILE_DIR/chrome/userContent.css" - # ''; - update_gtkcolors = pkgs.writeShellScript "update_gtkcolors" '' - dconf write /org/gnome/desktop/interface/color-scheme "'prefer-light'" - sleep 0.1 - dconf write /org/gnome/desktop/interface/color-scheme "'prefer-dark'" - - systemctl --user restart xdg-desktop-portal-gtk - ''; in { imports = lib.optionals homeManager [ ./templates ]; @@ -41,18 +28,37 @@ in text = # toml '' - [config] + [config] ${lib.optionalString config.programs.zathura.enable '' [templates.zathura] input_path = '~/.config/matugen/templates/zathura.toml' output_path = '~/.config/zathura/matugen' ''} + ${lib.optionalString config.beeMods.terminal.foot '' + [templates.foot] + input_path = '~/.config/matugen/templates/foot-colors.ini' + output_path = '~/.config/foot/themes/matugen' + ''} + + ${lib.optionalString config.beeMods.terminal.alacritty '' + [templates.alacritty] + input_path = '~/.config/matugen/templates/alacritty-colors.toml' + output_path = '~/.config/alacritty/matugen.toml' + ''} + + ${lib.optionalString config.beeMods.terminal.ghostty '' + [templates.ghostty] + input_path = '~/.config/matugen/templates/ghostty-colors.conf' + output_path = '~/.config/ghostty/themes/matugen' + post_hook = 'pkill -SIGUSR2 ghostty' + ''} + ${lib.optionalString config.beeMods.windowManagers.mango.enable '' [templates.mango] input_path = '~/.config/matugen/templates/mango.conf' - output_path = '~/.config/mango/mango-colors.conf' - post_hook = 'mmsg -d reload_config' + output_path = '~/.config/mango/colors.conf' + post_hook = 'mmsg dispatch reload_config' ''} ${lib.optionalString config.programs.btop.enable '' @@ -67,15 +73,13 @@ in output_path = '~/.config/yazi/theme.toml' ''} - ${lib.optionalString (config.beeMods.windowManagers.dwm.enable) '' - [templates.Xresources] - input_path = "~/.config/matugen/templates/colors-xresources" - output_path = "~/.config/x11/matugen.Xresources" - ''} - ${lib.optionalString config.programs.vesktop.enable '' - [templates.vesktop] - input_path = "~/.config/matugen/templates/vesktop.css" + [templates.vesktop-midnight] + input_path = "~/.config/matugen/templates/discord-midnight.css" + output_path = "~/.config/vesktop/themes/midnight.css" + + [templates.vesktop-system24] + input_path = "~/.config/matugen/templates/discord-system24.css" output_path = "~/.config/vesktop/themes/system24.css" ''} @@ -86,13 +90,45 @@ in post_hook = "dunstctl reload" ''} + ${lib.optionalString config.programs.rofi.enable '' + [templates.rofi] + input_path = '~/.config/matugen/templates/rofi-colors.rasi' + output_path = '~/.config/rofi/shared/colors.rasi' + ''} + + [templates.gtk3] + input_path = '~/.config/matugen/templates/gtk.css' + output_path = '~/.config/gtk-3.0/matugen.css' + + [templates.gtk4] + input_path = '~/.config/matugen/templates/gtk.css' + output_path = '~/.config/gtk-4.0/matugen.css' + + [templates.neovim] + input_path = '~/.config/matugen/templates/neovim.json' + output_path = '~/.config/beestuff/nvim-colors.json' + + [templates.waybarStyle] + input_path = '~/.config/matugen/templates/waybar.css' + output_path = '~/.config/waybar/style.css' + + [templates.waybarConfig] + input_path = '~/.config/matugen/templates/waybar.jsonc' + output_path = '~/.config/waybar/config.jsonc' + post_hook = 'pkill -SIGUSR2 waybar' + + [templates.pywalfox] + input_path = '~/.config/matugen/templates/pywalfox-colors.json' + output_path = '~/.cache/wal/colors.json' + post_hook = 'sh -c "command -v pywalfox && test -f ~/.cache/wal/colors.json && pywalfox {{ mode }} && pywalfox update"' + ${lib.optionalString (config.beeMods.terminal.default == "foot" || config.beeMods.terminal.default == "ghostty") '' [templates.sequences] input_path = '~/.config/matugen/templates/sequences' - output_path = '~/.config/sequences' - post_hook = "sh '${config.home.homeDirectory}/.config/sequences'" + output_path = '~/.config/beestuff/sequences' + post_hook = "sh '${config.home.homeDirectory}/.config/beestuff/sequences'" '' } ''; diff --git a/common/modules/matugen/templates/matugen-discord.nix b/common/modules/matugen/templates/matugen-discord.nix index 054155c..2f61fea 100644 --- a/common/modules/matugen/templates/matugen-discord.nix +++ b/common/modules/matugen/templates/matugen-discord.nix @@ -4,174 +4,280 @@ ... }: { - xdg.configFile."matugen/templates/discord.css" = { - text = '' - /** - * @name system24 - * @description a tui-style discord theme. Matugen Material UI + Original Base Colors. - * @author refact0r - * @version 2.0.0 - * @invite nz87hXyvcy - * @website https://github.com/refact0r/system24 - * @source https://github.com/refact0r/system24/blob/master/theme/system24.theme.css - */ - - /* import theme modules */ - @import url("https://refact0r.github.io/system24/build/system24.css"); - - body { - /* font options */ - --font: "IosevkaInput"; - --code-font: "IosevkaInput"; - font-weight: 300; - letter-spacing: -0.05ch; - - /* sizes */ - --gap: 12px; - --divider-thickness: 4px; - --border-thickness: 2px; - --border-hover-transition: 0.2s ease; - - /* animation/transition options */ - --animations: off; - --list-item-transition: 0.2s ease; - --dms-icon-svg-transition: 0.4s ease; - - /* top bar options */ - --top-bar-height: var(--gap); - --top-bar-button-position: titlebar; - --top-bar-title-position: off; - --subtle-top-bar-title: off; - - /* window controls */ - --custom-window-controls: off; - --window-control-size: 14px; - - /* dms button options */ - --custom-dms-icon: off; - --dms-icon-svg-url: url(""); - --dms-icon-svg-size: 90%; - --dms-icon-color-before: var(--icon-subtle); - --dms-icon-color-after: var(--white); - --custom-dms-background: off; - --dms-background-image-url: url(""); - --dms-background-image-size: cover; - --dms-background-color: linear-gradient(70deg, var(--blue-2), var(--purple-2), var(--red-2)); - - /* background image options */ - --background-image: off; - --background-image-url: url(""); - - /* transparency/blur options */ - --transparency-tweaks: off; - --remove-bg-layer: off; - --panel-blur: off; - --blur-amount: 12px; - --bg-floating: var(--bg-3); - - /* other options */ - --small-user-panel: on; - - /* unrounding options */ - --unrounding: on; - - /* styling options */ - --custom-spotify-bar: on; - --ascii-titles: on; - --ascii-loader: system24; - - /* panel labels */ - --panel-labels: on; - --label-color: var(--text-muted); - --label-font-weight: 500; - } - - /* color options */ - :root { - --colors: on; - - /* text colors - mapped to matugen safe hex */ - --text-0: var(--bg-4); - --text-1: {{colors.on_surface.default.hex}}; - --text-2: {{colors.on_surface.default.hex}}; - --text-3: {{colors.on_surface_variant.default.hex}}; - --text-4: {{colors.outline.default.hex}}; - --text-5: {{colors.outline_variant.default.hex}}; - - /* background colors - mapped to matugen safe hex */ - --bg-1: {{colors.surface_variant.default.hex}}; - --bg-2: {{colors.surface_container_high.default.hex}}; - --bg-3: {{colors.surface_container_low.default.hex}}; - <* if {{ is_dark_mode }} *> - --bg-4: {{colors.surface.default.hex}}; - <* else *> - --bg-4: {{colors.surface_container_low.default.hex}}; - <* endif *> - - /* hovers - using on_surface hex + CSS hex opacity (1a=10%, 33=20%, 4d=30%) */ - --hover: {{colors.on_surface.default.hex}}1a; - --active: {{colors.on_surface.default.hex}}33; - --active-2: {{colors.on_surface.default.hex}}4d; - --message-hover: var(--hover); - - /* accent colors - Replaced with Matugen Colors */ - --accent-1: {{colors.tertiary.default.hex}}; - --accent-2: {{colors.primary.default.hex}}; - --accent-3: {{colors.primary.default.hex}}; - --accent-4: {{colors.primary_container.default.hex}}; - --accent-5: {{colors.primary_fixed_dim.default.hex}}; - --accent-new: {{colors.error.default.hex}}; - - /* Math kept identical, only source colors swapped to Matugen */ - --mention: linear-gradient(to right, color-mix(in hsl, {{colors.primary.default.hex}}, transparent 90%) 40%, transparent); - --mention-hover: linear-gradient(to right, color-mix(in hsl, {{colors.primary.default.hex}}, transparent 95%) 40%, transparent); - --reply: linear-gradient(to right, color-mix(in hsl, {{colors.on_surface_variant.default.hex}}, transparent 90%) 40%, transparent); - --reply-hover: linear-gradient(to right, color-mix(in hsl, {{colors.on_surface_variant.default.hex}}, transparent 95%) 40%, transparent); - - /* status indicator colors - Kept original as requested, updated offline */ - --online: var(--green-2); - --dnd: var(--red-2); - --idle: var(--yellow-2); - --streaming: var(--purple-2); - --offline: {{colors.outline.default.hex}}; - - /* border colors */ - --border-light: var(--hover); - --border: var(--active); - --border-hover: {{colors.primary.default.hex}}; - --button-border: {{colors.on_surface.default.hex}}1a; - - /* base colors - UNTOUCHED OKLCH FROM ORIGINAL */ - --red-1: oklch(75% 0.13 0); - --red-2: oklch(70% 0.13 0); - --red-3: oklch(65% 0.13 0); - --red-4: oklch(60% 0.13 0); - --red-5: oklch(55% 0.13 0); - - --green-1: oklch(75% 0.12 170); - --green-2: oklch(70% 0.12 170); - --green-3: oklch(65% 0.12 170); - --green-4: oklch(60% 0.12 170); - --green-5: oklch(55% 0.12 160); - - --blue-1: oklch(75% 0.11 215); - --blue-2: oklch(70% 0.11 215); - --blue-3: oklch(65% 0.11 215); - --blue-4: oklch(60% 0.11 215); - --blue-5: oklch(55% 0.11 215); - - --yellow-1: oklch(80% 0.12 90); - --yellow-2: oklch(75% 0.12 90); - --yellow-3: oklch(70% 0.12 90); - --yellow-4: oklch(65% 0.12 90); - --yellow-5: oklch(60% 0.12 90); - - --purple-1: oklch(75% 0.12 310); - --purple-2: oklch(70% 0.12 310); - --purple-3: oklch(65% 0.12 310); - --purple-4: oklch(60% 0.12 310); - --purple-5: oklch(55% 0.12 310); - } - ''; + xdg.configFile = { + "matugen/templates/discord-system24.css" = { + text = '' + /** + * @name system24-matugen + * @description a tui-style discord theme. Matugen Material UI + Original Base Colors. + * @author refact0r + * @version 2.0.0 + * @invite nz87hXyvcy + * @website https://github.com/refact0r/system24 + * @source https://github.com/refact0r/system24/blob/master/theme/system24.theme.css + */ + + /* import theme modules */ + @import url("https://refact0r.github.io/system24/build/system24.css"); + + body { + /* font options */ + --font: "IosevkaInput"; + --code-font: "IosevkaInput"; + font-weight: 300; + letter-spacing: -0.05ch; + + /* sizes */ + --gap: 12px; + --divider-thickness: 4px; + --border-thickness: 2px; + --border-hover-transition: 0.2s ease; + + /* animation/transition options */ + --animations: off; + --list-item-transition: 0.2s ease; + --dms-icon-svg-transition: 0.4s ease; + + /* top bar options */ + --top-bar-height: var(--gap); + --top-bar-button-position: titlebar; + --top-bar-title-position: off; + --subtle-top-bar-title: off; + + /* window controls */ + --custom-window-controls: off; + --window-control-size: 14px; + + /* dms button options */ + --custom-dms-icon: off; + --dms-icon-svg-url: url(""); + --dms-icon-svg-size: 90%; + --dms-icon-color-before: var(--icon-subtle); + --dms-icon-color-after: var(--white); + --custom-dms-background: off; + --dms-background-image-url: url(""); + --dms-background-image-size: cover; + --dms-background-color: linear-gradient(70deg, var(--blue-2), var(--purple-2), var(--red-2)); + + /* background image options */ + --background-image: off; + --background-image-url: url(""); + + /* transparency/blur options */ + --transparency-tweaks: off; + --remove-bg-layer: off; + --panel-blur: off; + --blur-amount: 12px; + --bg-floating: var(--bg-3); + + /* other options */ + --small-user-panel: on; + + /* unrounding options */ + --unrounding: on; + + /* styling options */ + --custom-spotify-bar: on; + --ascii-titles: on; + --ascii-loader: system24; + + /* panel labels */ + --panel-labels: on; + --label-color: var(--text-muted); + --label-font-weight: 500; + } + + /* color options */ + :root { + --colors: on; + + /* text colors - mapped to matugen safe hex */ + --text-0: var(--bg-4); + --text-1: {{colors.on_surface.default.hex}}; + --text-2: {{colors.on_surface.default.hex}}; + --text-3: {{colors.on_surface_variant.default.hex}}; + --text-4: {{colors.outline.default.hex}}; + --text-5: {{colors.outline_variant.default.hex}}; + + /* background colors - mapped to matugen safe hex */ + --bg-1: {{colors.surface_variant.default.hex}}; + --bg-2: {{colors.surface_container_high.default.hex}}; + --bg-3: {{colors.surface_container_low.default.hex}}; + <* if {{ is_dark_mode }} *> + --bg-4: {{colors.surface.default.hex}}; + <* else *> + --bg-4: {{colors.surface_container_low.default.hex}}; + <* endif *> + + /* hovers - using on_surface hex + CSS hex opacity (1a=10%, 33=20%, 4d=30%) */ + --hover: {{colors.on_surface.default.hex}}1a; + --active: {{colors.on_surface.default.hex}}33; + --active-2: {{colors.on_surface.default.hex}}4d; + --message-hover: var(--hover); + + /* accent colors - Replaced with Matugen Colors */ + --accent-1: {{colors.tertiary.default.hex}}; + --accent-2: {{colors.primary.default.hex}}; + --accent-3: {{colors.primary.default.hex}}; + --accent-4: {{colors.primary_container.default.hex}}; + --accent-5: {{colors.primary_fixed_dim.default.hex}}; + --accent-new: {{colors.error.default.hex}}; + + /* Math kept identical, only source colors swapped to Matugen */ + --mention: linear-gradient(to right, color-mix(in hsl, {{colors.primary.default.hex}}, transparent 90%) 40%, transparent); + --mention-hover: linear-gradient(to right, color-mix(in hsl, {{colors.primary.default.hex}}, transparent 95%) 40%, transparent); + --reply: linear-gradient(to right, color-mix(in hsl, {{colors.on_surface_variant.default.hex}}, transparent 90%) 40%, transparent); + --reply-hover: linear-gradient(to right, color-mix(in hsl, {{colors.on_surface_variant.default.hex}}, transparent 95%) 40%, transparent); + + /* status indicator colors - Kept original as requested, updated offline */ + --online: var(--green-2); + --dnd: var(--red-2); + --idle: var(--yellow-2); + --streaming: var(--purple-2); + --offline: {{colors.outline.default.hex}}; + + /* border colors */ + --border-light: var(--hover); + --border: var(--active); + --border-hover: {{colors.primary.default.hex}}; + --button-border: {{colors.on_surface.default.hex}}1a; + + /* base colors - UNTOUCHED OKLCH FROM ORIGINAL */ + --red-1: oklch(75% 0.13 0); + --red-2: oklch(70% 0.13 0); + --red-3: oklch(65% 0.13 0); + --red-4: oklch(60% 0.13 0); + --red-5: oklch(55% 0.13 0); + + --green-1: oklch(75% 0.12 170); + --green-2: oklch(70% 0.12 170); + --green-3: oklch(65% 0.12 170); + --green-4: oklch(60% 0.12 170); + --green-5: oklch(55% 0.12 160); + + --blue-1: oklch(75% 0.11 215); + --blue-2: oklch(70% 0.11 215); + --blue-3: oklch(65% 0.11 215); + --blue-4: oklch(60% 0.11 215); + --blue-5: oklch(55% 0.11 215); + + --yellow-1: oklch(80% 0.12 90); + --yellow-2: oklch(75% 0.12 90); + --yellow-3: oklch(70% 0.12 90); + --yellow-4: oklch(65% 0.12 90); + --yellow-5: oklch(60% 0.12 90); + + --purple-1: oklch(75% 0.12 310); + --purple-2: oklch(70% 0.12 310); + --purple-3: oklch(65% 0.12 310); + --purple-4: oklch(60% 0.12 310); + --purple-5: oklch(55% 0.12 310); + } + ''; + }; + + "matugen/templates/discord-midnight.css" = { + text = '' + /** + * @name midnight-matugen + * @description midnight-discord, generated by matugen + * @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/build/midnight.css'); + + /* customize things here */ + :root { + /* font, change to 'gg sans' for default discord font*/ + --font: 'IosevkaInput'; + + /* top left corner text */ + --corner-text: 'Midnight'; + + /* color of status indicators and window controls */ + --online-indicator: {{colors.inverse_primary.default.hex}}; /* change to #23a55a for default green */ + --dnd-indicator: {{colors.error.default.hex}}; /* change to #f13f43 for default red */ + --idle-indicator: {{colors.tertiary_container.default.hex}}; /* change to #f0b232 for default yellow */ + --streaming-indicator: {{colors.on_primary.default.hex}}; /* change to #593695 for default purple */ + + /* accent colors */ + --accent-1: {{colors.tertiary.default.hex}}; /* links */ + --accent-2: {{colors.primary.default.hex}}; /* general unread/mention elements, some icons when active */ + --accent-3: {{colors.primary.default.hex}}; /* accent buttons */ + --accent-4: {{colors.surface_bright.default.hex}}; /* accent buttons when hovered */ + --accent-5: {{colors.primary_fixed_dim.default.hex}}; /* accent buttons when clicked */ + --mention: {{colors.surface.default.hex}}; /* mentions & mention messages */ + --mention-hover: {{colors.surface_bright.default.hex}}; /* mentions & mention messages when hovered */ + + /* text colors */ + --text-0: {{colors.surface.default.hex}}; /* text on colored elements */ + --text-1: {{colors.on_surface.default.hex}}; /* other normally white text */ + --text-2: {{colors.on_surface.default.hex}}; /* headings and important text */ + --text-3: {{colors.on_surface_variant.default.hex}}; /* normal text */ + --text-4: {{colors.on_surface_variant.default.hex}}; /* icon buttons and channels */ + --text-5: {{colors.outline.default.hex}}; /* muted channels/chats and timestamps */ + + /* background and dark colors */ + --bg-1: {{colors.surface_variant.default.hex}}; /* dark buttons when clicked */ + --bg-2: {{colors.surface_container_high.default.hex}}; /* dark buttons */ + --bg-3: {{colors.surface_container_low.default.hex}}; /* spacing, secondary elements */ + --bg-4: {{colors.surface.default.hex}}; /* main background color */ + --hover: {{colors.surface_bright.default.hex}}; /* channels and buttons when hovered */ + --active: {{colors.surface_bright.default.hex}}; /* channels and buttons when clicked or selected */ + --message-hover: {{colors.surface_bright.default.hex}}; /* 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/common/modules/matugen/templates/matugen-gtk.nix b/common/modules/matugen/templates/matugen-gtk.nix new file mode 100644 index 0000000..3bf2c1b --- /dev/null +++ b/common/modules/matugen/templates/matugen-gtk.nix @@ -0,0 +1,54 @@ +{ + xdg.configFile."matugen/templates/gtk.css" = { + text = '' + /* + * GTK Colors + * Generated with Matugen + */ + + /* via thairanaru on GitHub: */ + + /* Destructive colors are basically error colors */ + @define-color destructive_bg_color {{colors.error.default.hex}}; + @define-color destructive_fg_color {{colors.on_error.default.hex}}; + /* Follow material spec */ + @define-color error_bg_color {{colors.error.default.hex}}; + @define-color error_fg_color {{colors.on_error.default.hex}}; + /* Follow material spec (also I think looks nicer) */ + @define-color accent_fg_color {{colors.on_primary.default.hex}}; + @define-color accent_bg_color {{colors.primary.default.hex}}; + /* Use surface instead of background */ + @define-color window_bg_color {{colors.surface.default.hex}}; + @define-color window_fg_color {{colors.on_surface.default.hex}}; + /* Make it more similar to Adwaita */ + @define-color view_bg_color {{colors.surface.default.hex}}; + @define-color view_fg_color {{colors.on_surface.default.hex}}; + @define-color headerbar_bg_color {{colors.surface.default.hex}}; + @define-color headerbar_fg_color {{colors.on_surface.default.hex}}; + @define-color sidebar_bg_color {{colors.surface_container.default.hex}}; + @define-color sidebar_fg_color {{colors.on_surface.default.hex}}; + /* There is only like one application I know that uses this, and there isn't a good way to get + a color between surface and surface container so I think just giving this surface is a good enough fallback*/ + @define-color secondary_sidebar_bg_color {{colors.surface.default.hex}}; + @define-color secondary_sidebar_fg_color {{colors.on_surface.default.hex}}; + @define-color card_bg_color {{colors.surface_container.default.hex}}; + @define-color card_fg_color {{colors.on_surface.default.hex}}; + @define-color overview_bg_color {{colors.surface_container.default.hex}}; + @define-color overview_fg_color {{colors.on_surface.default.hex}}; + @define-color popover_bg_color {{colors.surface_container.default.hex}}; + @define-color popover_fg_color {{colors.on_surface.default.hex}}; + @define-color dialog_bg_color {{colors.surface.default.hex}}; + @define-color dialog_fg_color {{colors.on_surface.default.hex}}; + + /* Backdrop/unfocused states - prevents white flash on window unfocus */ + @define-color headerbar_backdrop_color @window_bg_color; + @define-color sidebar_backdrop_color @sidebar_bg_color; + @define-color theme_unfocused_fg_color @window_fg_color; + @define-color theme_unfocused_text_color @view_fg_color; + @define-color theme_unfocused_bg_color @window_bg_color; + @define-color theme_unfocused_base_color @window_bg_color; + @define-color theme_unfocused_selected_bg_color @accent_bg_color; + @define-color theme_unfocused_selected_fg_color @accent_fg_color; + ''; + }; +} diff --git a/common/modules/matugen/templates/matugen-mango.nix b/common/modules/matugen/templates/matugen-mango.nix index 385e212..7645ba9 100644 --- a/common/modules/matugen/templates/matugen-mango.nix +++ b/common/modules/matugen/templates/matugen-mango.nix @@ -8,15 +8,14 @@ xdg.configFile = { "matugen/templates/mango.conf" = { text = '' - shadowscolor = 0x{{colors.shadow.default.hex_stripped}}ff - rootcolor = 0x{{colors.surface.default.hex_stripped}}ff - bordercolor = 0x{{colors.outline.default.hex_stripped}}ff - focuscolor = 0x{{colors.primary.default.hex_stripped}}ff - maximizescreencolor = 0x{{colors.secondary.default.hex_stripped}}ff - urgentcolor = 0x{{colors.error.default.hex_stripped}}ff - scratchpadcolor = 0x{{colors.tertiary.default.hex_stripped}}ff - globalcolor = 0x{{colors.on_tertiary.default.hex_stripped}}ff - overlaycolor = 0x{{colors.on_primary.default.hex_stripped}}ff + rootcolor={{colors.background.default.hex_stripped}}ff + bordercolor={{colors.outline_variant.default.hex_stripped}}ff + focuscolor={{colors.primary.default.hex_stripped}}ff + maximizescreencolor={{colors.secondary_container.default.hex_stripped}}ff + urgentcolor={{colors.error.default.hex_stripped}}ff + scratchpadcolor={{colors.tertiary.default.hex_stripped}}ff + globalcolor={{colors.secondary_container.default.hex_stripped}}ff + overlaycolor={{colors.tertiary_container.default.hex_stripped}}ff ''; }; }; diff --git a/common/modules/matugen/templates/matugen-nvim.nix b/common/modules/matugen/templates/matugen-nvim.nix index 0b7b421..8e6f5f5 100644 --- a/common/modules/matugen/templates/matugen-nvim.nix +++ b/common/modules/matugen/templates/matugen-nvim.nix @@ -10,7 +10,11 @@ { "mode": "{{mode}}", "source_color":"{{colors.primary.default.hex}}", - "background":"{{colors.background.default.hex}}" + <* if {{ is_dark_mode }} *> + "background":"{{colors.surface.default.hex}}" + <* else *> + "background":"{{colors.surface_container_low.default.hex}}" + <* endif *> } ''; }; diff --git a/common/modules/matugen/templates/matugen-pywalfox.nix b/common/modules/matugen/templates/matugen-pywalfox.nix new file mode 100644 index 0000000..d6ede07 --- /dev/null +++ b/common/modules/matugen/templates/matugen-pywalfox.nix @@ -0,0 +1,37 @@ +{ + config, + lib, + ... +}: +{ + config = lib.mkIf config.programs.rofi.enable { + xdg.configFile = { + "matugen/templates/pywalfox-colors.json" = { + text = '' + { + "wallpaper": "{{image}}", + "alpha": "100", + "colors": { + "color0": "{{colors.background.dark.hex}}", + "color1": "{{colors.surface_container_highest.light.hex}}", + "color2": "{{colors.surface_container_lowest.light.hex}}", + "color3": "{{colors.primary.light.hex}}", + "color4": "{{colors.tertiary_fixed.default.hex}}", + "color5": "{{colors.secondary.light.hex}}", + "color6": "{{colors.on_tertiary_fixed.default.hex}}", + "color7": "{{colors.surface_dim.light.hex}}", + "color8": "{{colors.on_secondary.light.hex}}", + "color9": "{{colors.error_container.default.hex}}", + "color10": "{{colors.primary.dark.hex}}", + "color11": "{{colors.on_error_container.default.hex}}", + "color12": "{{colors.on_primary_fixed_variant.default.hex}}", + "color13": "{{colors.secondary.dark.hex}}", + "color14": "{{colors.inverse_primary.default.hex}}", + "color15": "{{colors.on_surface.dark.hex}}" + } + } + ''; + }; + }; + }; +} diff --git a/common/modules/matugen/templates/matugen-rofi.nix b/common/modules/matugen/templates/matugen-rofi.nix new file mode 100644 index 0000000..8dc50cb --- /dev/null +++ b/common/modules/matugen/templates/matugen-rofi.nix @@ -0,0 +1,31 @@ +{ + config, + lib, + ... +}: +{ + config = lib.mkIf config.programs.rofi.enable { + xdg.configFile = { + "matugen/templates/rofi-colors.rasi" = { + text = '' + * { + <* if {{ is_dark_mode }} *> + bg: {{colors.surface.default.hex}}; + bg-alt: {{colors.surface_container.default.hex}}; + <* else *> + bg: {{colors.surface_container_low.default.hex}}; + bg-alt: {{colors.surface_container_highest.default.hex}}; + <* endif *> + fg: {{colors.on_surface.default.hex}}; + fg-dim: {{colors.on_surface_variant.default.hex}}; + accent: {{colors.primary.default.hex}}; + selected-bg: {{colors.primary.default.hex}}; + selected-fg: {{colors.on_primary.default.hex}}; + urgent: {{colors.error.default.hex}}; + outline: {{colors.outline.default.hex}}; + } + ''; + }; + }; + }; +} diff --git a/common/modules/matugen/templates/matugen-sequences.nix b/common/modules/matugen/templates/matugen-sequences.nix index 03bc538..817edb9 100644 --- a/common/modules/matugen/templates/matugen-sequences.nix +++ b/common/modules/matugen/templates/matugen-sequences.nix @@ -9,32 +9,50 @@ text = '' #!/bin/sh SEQ="" - SEQ="$SEQ$(printf '\033]4;0;{{colors.surface_variant.default.hex}}\007')" + + # ANSI Palette (Regular 0-7) + SEQ="$SEQ$(printf '\033]4;0;{{colors.surface_container_high.default.hex}}\007')" SEQ="$SEQ$(printf '\033]4;1;{{colors.error.default.hex}}\007')" SEQ="$SEQ$(printf '\033]4;2;{{colors.primary.default.hex}}\007')" - SEQ="$SEQ$(printf '\033]4;3;{{colors.secondary.default.hex}}\007')" - SEQ="$SEQ$(printf '\033]4;4;{{colors.tertiary.default.hex}}\007')" - SEQ="$SEQ$(printf '\033]4;5;{{colors.primary_fixed_dim.default.hex}}\007')" - SEQ="$SEQ$(printf '\033]4;6;{{colors.secondary_fixed_dim.default.hex}}\007')" - SEQ="$SEQ$(printf '\033]4;7;{{colors.on_surface.default.hex}}\007')" - SEQ="$SEQ$(printf '\033]4;8;{{colors.on_surface_variant.default.hex}}\007')" - SEQ="$SEQ$(printf '\033]4;9;{{colors.error.default.hex}}\007')" - SEQ="$SEQ$(printf '\033]4;10;{{colors.primary.default.hex}}\007')" - SEQ="$SEQ$(printf '\033]4;11;{{colors.secondary.default.hex}}\007')" - SEQ="$SEQ$(printf '\033]4;12;{{colors.tertiary.default.hex}}\007')" - SEQ="$SEQ$(printf '\033]4;13;{{colors.primary_fixed_dim.default.hex}}\007')" - SEQ="$SEQ$(printf '\033]4;14;{{colors.secondary_fixed_dim.default.hex}}\007')" + SEQ="$SEQ$(printf '\033]4;3;{{colors.tertiary.default.hex}}\007')" + SEQ="$SEQ$(printf '\033]4;4;{{colors.secondary.default.hex}}\007')" + SEQ="$SEQ$(printf '\033]4;5;{{colors.primary_fixed.default.hex}}\007')" + SEQ="$SEQ$(printf '\033]4;6;{{colors.secondary_fixed.default.hex}}\007')" + SEQ="$SEQ$(printf '\033]4;7;{{colors.on_surface_variant.default.hex}}\007')" + + # ANSI Palette (Bright 0-7 / ANSI 8-15) + SEQ="$SEQ$(printf '\033]4;8;{{colors.outline.default.hex}}\007')" + SEQ="$SEQ$(printf '\033]4;9;{{colors.error.default.hex | to_color | lighten: 10.0}}\007')" + SEQ="$SEQ$(printf '\033]4;10;{{colors.primary_container.default.hex}}\007')" + SEQ="$SEQ$(printf '\033]4;11;{{colors.tertiary_container.default.hex}}\007')" + SEQ="$SEQ$(printf '\033]4;12;{{colors.secondary_container.default.hex}}\007')" + SEQ="$SEQ$(printf '\033]4;13;{{colors.inverse_primary.default.hex}}\007')" + SEQ="$SEQ$(printf '\033]4;14;{{colors.outline_variant.default.hex}}\007')" SEQ="$SEQ$(printf '\033]4;15;{{colors.on_surface.default.hex}}\007')" + + # UI Elements + # Default Foreground (Text Color) SEQ="$SEQ$(printf '\033]10;{{colors.on_surface.default.hex}}\007')" - SEQ="$SEQ$(printf '\033]11;{{colors.background.default.hex}}\007')" - # <* if {{ is_dark_mode }} *> - # SEQ="$SEQ$(printf '\033]11;{{colors.background.default.hex}}\007')" - # <* else *> - # SEQ="$SEQ$(printf '\033]11;{{colors.surface_container.default.hex}}\007')" - # <* endif *> + + <* if {{ is_dark_mode }} *> + # Set terminal background to surface color for dark mode + SEQ="$SEQ$(printf '\033]11;{{colors.surface.default.hex}}\007')" + <* else *> + # Set terminal background to a lighter surface container color for light mode + SEQ="$SEQ$(printf '\033]11;{{colors.surface_container_low.default.hex}}\007')" + <* endif *> + + # Cursor Color (Block) SEQ="$SEQ$(printf '\033]12;{{colors.primary.default.hex}}\007')" - SEQ="$SEQ$(printf '\033]17;{{colors.on_surface.default.hex}}\007')" - SEQ="$SEQ$(printf '\033]19;{{colors.primary_container.default.hex}}\007')" + + # Cursor Foreground (Text inside block cursor) + SEQ="$SEQ$(printf '\033]13;{{colors.on_primary.default.hex}}\007')" + + # Selection Background + SEQ="$SEQ$(printf '\033]17;{{colors.primary_container.default.hex}}\007')" + + # Selection Foreground + SEQ="$SEQ$(printf '\033]19;{{colors.on_primary_container.default.hex}}\007')" for tty in /dev/pts/*; do [ -w "$tty" ] && printf '%s' "$SEQ" > "$tty" diff --git a/common/modules/matugen/templates/matugen-terminal.nix b/common/modules/matugen/templates/matugen-terminal.nix index c592226..4d7106e 100644 --- a/common/modules/matugen/templates/matugen-terminal.nix +++ b/common/modules/matugen/templates/matugen-terminal.nix @@ -11,34 +11,33 @@ [colors-dark] foreground={{colors.on_surface.default.hex_stripped}} <* if {{ is_dark_mode }} *> - background={{colors.background.default.hex_stripped}} + background={{colors.surface.default.hex_stripped}} <* else *> - background={{colors.surface_container.default.hex_stripped}} + background={{colors.surface_container_low.default.hex_stripped}} <* endif *> - selection-foreground={{colors.on_surface.default.hex_stripped}} + selection-foreground={{colors.on_primary_container.default.hex_stripped}} selection-background={{colors.primary_container.default.hex_stripped}} - cursor = {{colors.background.default.hex_stripped}} {{colors.primary.default.hex_stripped}} + cursor = {{colors.on_primary.default.hex_stripped}} {{colors.primary.default.hex_stripped}} - regular0=\{{color0[1:]}} - regular1=\{{color1[1:]}} - regular2=\{{color2[1:]}} - regular3=\{{color3[1:]}} - regular4=\{{color4[1:]}} - regular5=\{{color5[1:]}} - regular6=\{{color6[1:]}} - regular7=\{{color7[1:]}} + regular0={{colors.surface_container_high.default.hex_stripped}} + regular1={{colors.error.default.hex_stripped}} + regular2={{colors.primary.default.hex_stripped}} + regular3={{colors.tertiary.default.hex_stripped}} + regular4={{colors.secondary.default.hex_stripped}} + regular5={{colors.primary_fixed.default.hex_stripped}} + regular6={{colors.secondary_fixed.default.hex_stripped}} + regular7={{colors.on_surface_variant.default.hex_stripped}} - bright0=\{{color8[1:]}} - bright1=\{{color9[1:]}} - bright2=\{{color10[1:]}} - bright3=\{{color11[1:]}} - bright4=\{{color12[1:]}} - bright5=\{{color13[1:]}} - bright6=\{{color14[1:]}} - bright7=\{{color15[1:]}} + bright0={{colors.outline.default.hex_stripped}} + bright1={{colors.error.default.hex_stripped | to_color | lighten: 10.0}} + bright2={{colors.primary_container.default.hex_stripped}} + bright3={{colors.tertiary_container.default.hex_stripped}} + bright4={{colors.secondary_container.default.hex_stripped}} + bright5={{colors.inverse_primary.default.hex_stripped}} + bright6={{colors.outline_variant.default.hex_stripped}} + bright7={{colors.on_surface.default.hex_stripped}} - - dim-blend-towards=<* if {{ is_dark_mode }} *>black<* else *>white<* endif *> + # dim-blend-towards=<* if {{ is_dark_mode }} *>black<* else *>white<* endif *> ''; }; }) @@ -49,7 +48,7 @@ <* if {{ is_dark_mode }} *> background = '{{colors.background.default.hex}}' <* else *> - background = '{{colors.surface_container.default.hex}}' + background = '{{colors.surface_container_low.default.hex}}' <* endif *> foreground = '{{colors.on_surface.default.hex}}' @@ -62,56 +61,57 @@ cursor = '{{colors.primary.default.hex}}' [colors.normal] - black = "\{{color0}}" - red = "\{{color1}}" - green = "\{{color2}}" - yellow = "\{{color3}}" - blue = "\{{color4}}" - magenta = "\{{color5}}" - cyan = "\{{color6}}" - white = "\{{color7}}" + black = '{{colors.surface_container_high.default.hex}}' + red = '{{colors.error.default.hex}}' + green = '{{colors.primary.default.hex}}' + yellow = '{{colors.tertiary.default.hex}}' + blue = '{{colors.secondary.default.hex}}' + magenta = '{{colors.primary_fixed.default.hex}}' + cyan = '{{colors.secondary_fixed.default.hex}}' + white = '{{colors.on_surface_variant.default.hex}}' [colors.bright] - black = "\{{color8}}" - red = "\{{color9}}" - green = "\{{color10}}" - yellow = "\{{color11}}" - blue = "\{{color12}}" - magenta = "\{{color13}}" - cyan = "\{{color14}}" - white = "\{{color15}}" + black = '{{colors.outline.default.hex}}' + red = '{{colors.error_container.default.hex | to_color | lighten: 10.0}}' + green = '{{colors.primary_container.default.hex}}' + yellow = '{{colors.tertiary_container.default.hex}}' + blue = '{{colors.secondary_container.default.hex}}' + magenta = '{{colors.inverse_primary.default.hex}}' + cyan = '{{colors.outline_variant.default.hex}}' + white = '{{colors.on_surface.default.hex}}' + ''; }; }) (lib.mkIf config.beeMods.terminal.ghostty { - xdg.configFile."matugen/templates/ghostty.conf" = { + xdg.configFile."matugen/templates/ghostty-colors.conf" = { text = '' <* if {{ is_dark_mode }} *> background = {{colors.background.default.hex}} <* else *> - background = {{colors.surface_container.default.hex}} + background = {{colors.surface_container_low.default.hex}} <* endif *> foreground = {{colors.on_surface.default.hex}} cursor-color = {{colors.primary.default.hex}} selection-background = {{colors.primary_container.default.hex}} selection-foreground = {{colors.on_surface.default.hex}} - palette = 0=\{{color0}} - palette = 1=\{{color1}} - palette = 2=\{{color2}} - palette = 3=\{{color3}} - palette = 4=\{{color4}} - palette = 5=\{{color5}} - palette = 6=\{{color6}} - palette = 7=\{{color7}} - palette = 8=\{{color8}} - palette = 9=\{{color9}} - palette = 10=\{{color10}} - palette = 11=\{{color11}} - palette = 12=\{{color12}} - palette = 13=\{{color13}} - palette = 14=\{{color14}} - palette = 15=\{{color15}} + palette = 0={{colors.surface_container_high.default.hex}} + palette = 1={{colors.error.default.hex}} + palette = 2={{colors.primary.default.hex}} + palette = 3={{colors.tertiary.default.hex}} + palette = 4={{colors.secondary.default.hex}} + palette = 5={{colors.primary_fixed.default.hex}} + palette = 6={{colors.secondary_fixed.default.hex}} + palette = 7={{colors.on_surface_variant.default.hex}} + palette = 8={{colors.outline.default.hex}} + palette = 9={{colors.error_container.default.hex | to_color | lighten: 10.0}} + palette = 10={{colors.primary_container.default.hex}} + palette = 11={{colors.tertiary_container.default.hex}} + palette = 12={{colors.secondary_container.default.hex}} + palette = 13={{colors.inverse_primary.default.hex}} + palette = 14={{colors.outline_variant.default.hex}} + palette = 15={{colors.on_surface.default.hex}} ''; }; }) diff --git a/common/modules/matugen/templates/matugen-waybar.nix b/common/modules/matugen/templates/matugen-waybar.nix new file mode 100644 index 0000000..a59cac9 --- /dev/null +++ b/common/modules/matugen/templates/matugen-waybar.nix @@ -0,0 +1,540 @@ +{ + config, + lib, + ... +}: +{ + config = lib.mkIf config.programs.rofi.enable { + xdg.configFile = { + "matugen/templates/waybar.jsonc" = { + text = '' + { + "exclusive": true, + "reload_style_on_change": true, + "position": "top", + "margin-top": 0, + "spacing": 0, + "height": 0, + "margin-bottom": 0, + "modules-left": [ + "dwl/tags", + "custom/separator", + "tray", + "custom/separator7", + "idle_inhibitor", + "custom/separator2", + "custom/separator5", + "mpris", + "custom/separator6" + ], + "modules-center": ["custom/separator", "clock", "custom/separator2"], + "modules-right": [ + "custom/separator", + "bluetooth", + "custom/separator3", + "backlight", + "custom/separator4", + "battery", + "custom/separator4", + "power-profiles-daemon", + "custom/separator3", + "network", + "custom/separator3", + "pulseaudio", + "custom/separator3", + "memory", + "custom/separator3", + "cpu", + "custom/separator2" + ], + "dwl/tags" : { + "num-tags" : 9, + // "tag-labels" : ["一" "二" "三" "四" "五" "六" "七" "八" "九"]; + }, + "custom/separator": { + "format": "[", + "tooltip": false + }, + "custom/separator2": { + "format": "]", + "tooltip": false + }, + "custom/separator3": { + "format": "󰿟", + "tooltip": false + }, + "custom/separator4": { + "exec": "sh -c '[ -d /sys/class/backlight ] && [ \"$(ls -A /sys/class/backlight 2>/dev/null)\" ] && ls /sys/class/power_supply 2>/dev/null | grep -q \"^BAT\" && echo \"󰿟\"'", + "tooltip": false, + "interval": "once" + }, + "custom/separator5": { + "exec": "sh -c 'if pgrep -x cliamp >/dev/null || playerctl status 2>/dev/null | grep -qE \"Playing|Paused\"; then echo \"{\\\\\"text\\\\\":\\\\\"[\\\\\",\\\\\"class\\\\\":\\\\\"show\\\\\"}\"; else echo \"{\\\\\"text\\\\\":\\\\\"\\\\\",\\\\\"class\\\\\":\\\\\"hide\\\\\"}\"; fi'", + "return-type": "json", + "interval": 2, + "format": "{}" + }, + "custom/separator6": { + "exec": "sh -c 'if pgrep -x cliamp >/dev/null || playerctl status 2>/dev/null | grep -qE \"Playing|Paused\"; then echo \"{\\\\\"text\\\\\":\\\\\"]\\\\\",\\\\\"class\\\\\":\\\\\"show\\\\\"}\"; else echo \"{\\\\\"text\\\\\":\\\\\"\\\\\",\\\\\"class\\\\\":\\\\\"hide\\\\\"}\"; fi'", + "return-type": "json", + "interval": 2, + "format": "{}" + }, + "custom/separator7": { + "exec": "sh -c 'count=$(busctl --user get-property org.kde.StatusNotifierWatcher /StatusNotifierWatcher org.kde.StatusNotifierWatcher RegisteredStatusNotifierItems | sed -n \"s/^as \\\\\\\\([0-9]\\\\\\\\+\\\\\\\\).*/\\\\\\\\1/p\"); if [ \"${"count:-0"}\" -gt 0 ]; then echo \"{\\\\\"text\\\\\":\\\\\"󰿟\\\\\",\\\\\"class\\\\\":\\\\\"show\\\\\"}\"; else echo \" {\\\\\"text\\\\\":\\\\\"\\\\\",\\\\\"class\\\\\":\\\\\"hide\\\\\"}\"; fi'", + "return-type": "json", + "interval": 2 + }, + "power-profiles-daemon": { + "justify": "center", + "format": "power {icon}", + "tooltip-format": "Power profile: {profile}\nDriver: {driver}", + "tooltip": true, + "format-icons": { + "performance": "perf", + "balanced": "bal", + "power-saver": "eco" + } + }, + "cpu": { + "interval": 10, + "format": "cpu {usage:02}%", + "states": { + "warning": 50, + "critical": 80 + } + }, + "backlight": { + "device": "amd_backlight", + "rotate": 0, + "format": "bl {percent}%", + "tooltip-format": "🌕 {percent}%", + "format-icons": [ + "󰃜", + "󰃝", + "󰃞", + "󰃟", + "󰃠" + ] + }, + "memory": { + "interval": 2, + "format": "mem {percentage:02}%", + "states": { + "warning": 50, + "critical": 80 + } + }, + + "clock": { + "format": "{:%I:%M %p - %A, %b %d}", + "interval": 60, + "tooltip": false, + "locale": "en_US.UTF-8", + }, + + "network": { + "format-icons": [ + "󰤯", + "󰤟", + "󰤢", + "󰤥", + "󰤨" + ], + "format": "{icon}", + "format-wifi": "net {signalStrength}%", + "format-ethernet": "net on", + "format-disconnected": "net off 󰤮 / 󰈀 ", + "tooltip-format-wifi": "{essid} ({frequency} GHz)\n⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}", + "tooltip-format-ethernet": "⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}", + "tooltip-format-disconnected": "Disconnected", + "interval": 3, + "spacing": 1, + "on-click": "foot -e nmtui", + }, + "battery": { + "format": "bat {capacity}%", + "format-discharging": "bat {capacity}%", + "format-charging": "bat {capacity}%", + "format-plugged": "bat_p {capacity}%", + "format-icons": { + "charging": [ + "󰢜", + "󰂆", + "󰂇", + "󰂈", + "󰢝", + "󰂉", + "󰢞", + "󰂊", + "󰂋", + "󰂅" + ], + "default": [ + "󰁺", + "󰁻", + "󰁼", + "󰁽", + "󰁾", + "󰁿", + "󰂀", + "󰂁", + "󰂂", + "󰁹" + ] + }, + "format-full": "bat_f {capacity}%", + "tooltip-format-discharging": "{timeTo}", + "tooltip-format-charging": "{timeTo}", + "interval": 5, + "states": { + "warning": 20, + "critical": 10 + } + }, + "bluetooth": { + "justify": "center", + "format": "bt {status} {num_connections}", + "format-disabled": "bt {status}", + "format-connected": "bt {status} {num_connections}", + "tooltip-format": "Devices connected: {num_connections}", + "on-click": "foot -e bluetui", + }, + "pulseaudio": { + "justify": "center", + "format": "vol {volume}%", + "on-click-right": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle ", + "tooltip-format": "Playing at {volume}%", + "scroll-step": 5, + "format-muted": "vol muted", + "format-icons": { + "headphone": "", + "default": ["", "", ""] + }, + "states": { + "warning": 50, + "critical": 10 + } + }, + "mpris": { + "format": " {dynamic}", + "format-paused": "{status_icon} {dynamic}", + "title-len": 25, + "artist-len":15, + "dynamic-order": ["title", "artist"], + "tooltip-format": "{player} ({status}):\n{artist} - {title}", + "status-icons": { + "paused": "󰝛" + }, + //"ignored-players": ["firefox", "chromium", "brave"] + }, + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "idle on", + "deactivated": "idle off" + } + }, + "tray": { + "icon-size": 14, + "spacing": 4 + }, + } + ''; + }; + "matugen/templates/waybar.css" = { + text = '' + <* if {{ is_dark_mode }} *> + @define-color bg {{colors.surface.default.hex}}; + <* else *> + @define-color bg {{colors.surface_container_low.default.hex}}; + <* endif *> + @define-color fg {{colors.on_surface.default.hex}}; + @define-color accent {{colors.primary.default.hex}}; + @define-color on_accent {{colors.on_primary.default.hex}}; + @define-color danger {{colors.error.default.hex}}; + @define-color warning {{colors.tertiary.default.hex}}; + + * { + background-color: @bg; + color: @fg; + border: none; + padding: 0px; + font-family: "IosevkaInput"; + transition: background-color .3s ease-out; + font-weight: bold; + font-size: 12px; + } + + window#waybar { + background-color: transparent; + } + + #waybar > box { + border-radius: 0px; + border-bottom: 1.5px solid alpha(@fg, 0.1); + margin: 0px 0px 2px 0px; + background-color: @bg; + min-height: 25px; + transition-property: background-color; + transition-duration: .5s; + } + + .modules-left { + margin-left: 4px; + } + + .modules-right { + margin-right: 4px; + } + + #workspaces, + #tags { + margin: 0px 0px; + transition: 0.1s ease-in-out; + padding: 0px 0px; + } + + #workspaces button, + #tags button { + all: initial; + padding: 0px 4px; + margin: 4px 2px; + min-width: 10px; + color: @fg; + opacity: 1; + font-weight: 900; + } + + #workspaces button box, + #workspaces button label, + #tags button label { + background: transparent; + } + + #workspaces button.active, + #tags button.focused.occupied { + color: @on_accent; + background-color: @accent; + padding: 0px 4px; + margin: 4px 2px; + opacity: 1.0; + } + + #workspaces button.active box, + #workspaces button.active label, + #tags button.focused.occupied label { + color: @on_accent; + } + + #workspaces button.empty.active, + #tags button.focused:not(.occupied) { + opacity: 1; + background-color: @fg; + color: @bg; + } + + #workspaces button.empty.active box, + #workspaces button.empty.active label, + #tags button.focused:not(.occupied) label { + color: @bg; + } + + #workspaces button.empty:not(.active):hover, + #tags button:not(.focused):hover{ + background: transparent; + color: alpha(@fg, 1); + transition: all 150ms ease; + opacity: 0.75; + } + + #workspaces button.empty:not(.active), + #tags button:not(.focused) { + opacity: 0.4; + padding: 0px 4px; + margin: 4px 2px; + color: alpha(@fg, 0.45); + } + + #memory, + #mpris, + #custom-expand-icon, + #tray, + #cpu, + #custom-clock, + #battery, + #backlight, + #network, + #bluetooth, + #pulseaudio, + #power-profiles-daemon, + #power-profiles-daemon.performance, + #power-profiles-daemon.balanced, + #power-profiles-daemon.power-saver, + #idle_inhibitor, + #custom-idle-indicator, + #custom-notification-silencing-indicator, + #custom-screenrecording-indicator { + min-width: 12px; + padding: 0 4px; + margin: 1px 3px 1px 3px; + opacity: 1; + } + + #tray { + opacity: 1; + padding-top: 2px; + } + + #idle_inhibitor.deactivated { + opacity: 0.5; + } + + + #idle_inhibitor.activated { + opacity: 1; + } + + #network { + margin-left: 0; + } + + #custom-separator7, + #custom-separator6, + #custom-separator5, + #custom-separator4, + #custom-separator3, + #custom-separator2, + #custom-separator { + opacity: 0.2; + padding-top: 2px; + padding-left: 2px; + padding-right: 2px; + font-size: 14px; + } + + tooltip { + padding: 2px; + } + + #custom-idle-indicator, + #custom-notification-silencing-indicator { + min-width: 12px; + margin-left: 0; + margin-right: 0; + font-size: 12px; + padding-bottom: 0px; + } + + #custom-idle-indicator.active, + #custom-notification-silencing-indicator.active { + color: @fg; + opacity: 1; + } + + .hidden { + opacity: 0; + } + + tooltip { + padding: 4px; + background: @bg; + font-size: 10px; + border: 1.5px solid alpha(@fg, 0.6); + border-radius: 8px; + + } + tooltip label { + color: alpha(@fg, 0.65); + font-weight: normal; + } + + /* Specific animation Module */ + + #custom-screenrecording-indicator { + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; + color: transparent; + } + + #custom-screenrecording-indicator.active { + color: @recording-active; + animation-name: blink-recording; + animation-duration: 0.5s; + } + + @keyframes blink-recording { + to { + color: @bg; + } + } + + @keyframes blink-inhibitor { + to { + color: @bg; + } + } + + #mpris { + opacity: 1; + color: @fg; + animation: repeat; + animation-name: blink; + animation-duration: 3s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; + } + + #mpris.paused { + color: {{colors.outline.default.hex}}; + animation: none; + } + + @keyframes blink { + to { + color: #4a4a4a; /* don't change */ + + } + } + + #battery.warning { + color: @warning; + } + + @keyframes blink2 { + to { + background-color: transparent; + color: @danger; + } + } + + #battery.critical:not(.charging) { + background-color: transparent; + color: @danger; + animation-name: blink2; + animation-duration: 0.5s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; + } + + #pulseaudio.warning, + #memory.warning, + #cpu.warning { + color: @warning; /* medium load */ + background-color: @bg; + } + + #pulseaudio.critical, + #memory.critical, + #cpu.critical { + color: @accent; /* high load */ + background-color: @bg; + } + ''; + }; + }; + }; +} diff --git a/common/modules/matugen/templates/matugen-xresources.nix b/common/modules/matugen/templates/matugen-xresources.nix index 94f4e93..e580eae 100644 --- a/common/modules/matugen/templates/matugen-xresources.nix +++ b/common/modules/matugen/templates/matugen-xresources.nix @@ -4,7 +4,7 @@ ... }: { - config = lib.mkIf config.beeMods.windowManagers.dwm.enable { + config = lib.mkIf (!config.beeMods.windowManagers.mango.enable) { xdg.configFile."matugen/templates/colors-xresources" = { text = '' dwm.normbordercolor : {{colors.outline.default.hex}} @@ -14,37 +14,38 @@ dmenu.foreground : {{colors.on_surface.default.hex}} dmenu.selbackground : {{colors.primary.default.hex}} dmenu.selforeground : {{colors.on_primary.default.hex}} + dwm.selbgcolor : {{colors.surface_container.default.hex}} <* if {{ is_dark_mode }} *> dmenu.background : {{colors.background.default.hex}} st.background: {{colors.surface.default.hex}} dwm.normbgcolor : {{colors.surface.default.hex}} - dwm.selbgcolor : {{colors.surface_container.default.hex}} + # dwm.selbgcolor : {{colors.surface_container.default.hex}} <* else *> - dmenu.background : {{colors.surface_container.default.hex}} - st.background: {{colors.surface_container.default.hex}} - dwm.normbgcolor : {{colors.surface_container.default.hex}} - dwm.selbgcolor : {{colors.secondary_fixed.default.hex}} + dmenu.background : {{colors.surface_container_low.default.hex}} + st.background: {{colors.surface_container_low.default.hex}} + dwm.normbgcolor : {{colors.surface_container_low.default.hex}} + # dwm.selbgcolor : {{colors.secondary_fixed.default.hex}} <* endif *> st.foreground: {{colors.on_surface.default.hex}} st.cursorColor: {{colors.primary.default.hex}} - st.color0 : {{colors.surface_variant.default.hex}} + st.color0 : {{colors.surface_container_high.default.hex}} st.color1 : {{colors.error.default.hex}} st.color2 : {{colors.primary.default.hex}} - st.color3 : {{colors.secondary.default.hex}} - st.color4 : {{colors.tertiary.default.hex}} - st.color5 : {{colors.primary_fixed_dim.default.hex}} - st.color6 : {{colors.secondary_fixed_dim.default.hex}} - st.color7 : {{colors.on_surface.default.hex}} - - st.color8 : {{colors.on_surface_variant.default.hex}} - st.color9 : {{colors.error.default.hex}} - st.color10: {{colors.primary.default.hex}} - st.color11: {{colors.secondary.default.hex}} - st.color12: {{colors.tertiary.default.hex}} - st.color13: {{colors.primary_fixed_dim.default.hex}} - st.color14: {{colors.secondary_fixed_dim.default.hex}} + st.color3 : {{colors.tertiary.default.hex}} + st.color4 : {{colors.secondary.default.hex}} + st.color5 : {{colors.primary_fixed.default.hex}} + st.color6 : {{colors.secondary_fixed.default.hex}} + st.color7 : {{colors.on_surface_variant.default.hex}} + + st.color8 : {{colors.outline.default.hex}} + st.color9 : {{colors.error.default.hex | to_color | lighten: 10.0}} + st.color10: {{colors.primary_container.default.hex}} + st.color11: {{colors.tertiary_container.default.hex}} + st.color12: {{colors.secondary_container.default.hex}} + st.color13: {{colors.inverse_primary.default.hex}} + st.color14: {{colors.outline_variant.default.hex}} st.color15: {{colors.on_surface.default.hex}} ''; }; diff --git a/common/modules/matugen/templates/matugen-yazi.nix b/common/modules/matugen/templates/matugen-yazi.nix index 4985b8e..ce84729 100644 --- a/common/modules/matugen/templates/matugen-yazi.nix +++ b/common/modules/matugen/templates/matugen-yazi.nix @@ -181,8 +181,8 @@ { mime = "application/{pdf,doc,rtf}", fg = "#a6e3a1" }, # Special files - { name = "*", is = "orphan", bg = "{{colors.error_container.default.hex}}" }, - { name = "*", is = "exec", fg = "{{colors.on_error_container.default.hex}}" }, + { url = "*", is = "orphan", bg = "{{colors.error_container.default.hex}}" }, + { url = "*", is = "exec", fg = "{{colors.on_error_container.default.hex}}" }, # Fallback { url = "*", fg = "{{colors.on_surface.default.hex}}" }, @@ -190,6 +190,745 @@ ] # : ]]] + + [icon] + globs = [] + dirs = [ + { name = ".config", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".git", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".github", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".npm", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "Desktop", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "Development", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "Documents", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "Downloads", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "Library", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "Movies", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "Music", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "Pictures", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "Public", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "Videos", text = "", fg = "{{colors.primary.default.hex}}" }, + ] + files = [ + { name = ".babelrc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".bash_profile", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".bashrc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".clang-format", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".clang-tidy", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".codespellrc", text = "󰓆", fg = "{{colors.primary.default.hex}}" }, + { name = ".condarc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".dockerignore", text = "󰡨", fg = "{{colors.primary.default.hex}}" }, + { name = ".ds_store", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".editorconfig", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".env", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".eslintignore", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".eslintrc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".git-blame-ignore-revs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".gitattributes", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".gitconfig", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".gitignore", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".gitlab-ci.yml", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".gitmodules", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".gtkrc-2.0", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".gvimrc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".justfile", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".luacheckrc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".luaurc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".mailmap", text = "󰊢", fg = "{{colors.primary.default.hex}}" }, + { name = ".nanorc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".npmignore", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".npmrc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".nuxtrc", text = "󱄆", fg = "{{colors.primary.default.hex}}" }, + { name = ".nvmrc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".pnpmfile.cjs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".pre-commit-config.yaml", text = "󰛢", fg = "{{colors.primary.default.hex}}" }, + { name = ".prettierignore", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".prettierrc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".prettierrc.cjs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".prettierrc.js", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".prettierrc.json", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".prettierrc.json5", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".prettierrc.mjs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".prettierrc.toml", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".prettierrc.yaml", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".prettierrc.yml", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".pylintrc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".settings.json", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".SRCINFO", text = "󰣇", fg = "{{colors.primary.default.hex}}" }, + { name = ".vimrc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".Xauthority", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".xinitrc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".Xresources", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".xsession", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".zprofile", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".zshenv", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = ".zshrc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "_gvimrc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "_vimrc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "AUTHORS", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "AUTHORS.txt", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "brewfile", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "bspwmrc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "build", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "build.gradle", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "build.zig.zon", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "bun.lock", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "bun.lockb", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "cantorrc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "checkhealth", text = "󰓙", fg = "{{colors.primary.default.hex}}" }, + { name = "cmakelists.txt", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "code_of_conduct", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "code_of_conduct.md", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "commit_editmsg", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "commitlint.config.js", text = "󰜘", fg = "{{colors.primary.default.hex}}" }, + { name = "commitlint.config.ts", text = "󰜘", fg = "{{colors.primary.default.hex}}" }, + { name = "compose.yaml", text = "󰡨", fg = "{{colors.primary.default.hex}}" }, + { name = "compose.yml", text = "󰡨", fg = "{{colors.primary.default.hex}}" }, + { name = "config", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "containerfile", text = "󰡨", fg = "{{colors.primary.default.hex}}" }, + { name = "copying", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "copying.lesser", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "Directory.Build.props", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "Directory.Build.targets", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "Directory.Packages.props", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "docker-compose.yaml", text = "󰡨", fg = "{{colors.primary.default.hex}}" }, + { name = "docker-compose.yml", text = "󰡨", fg = "{{colors.primary.default.hex}}" }, + { name = "dockerfile", text = "󰡨", fg = "{{colors.primary.default.hex}}" }, + { name = "eslint.config.cjs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "eslint.config.js", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "eslint.config.mjs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "eslint.config.ts", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ext_typoscript_setup.txt", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "favicon.ico", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "fp-info-cache", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "fp-lib-table", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "FreeCAD.conf", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "Gemfile", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "gnumakefile", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "go.mod", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "go.sum", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "go.work", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "gradle-wrapper.properties", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "gradle.properties", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "gradlew", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "groovy", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "gruntfile.babel.js", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "gruntfile.coffee", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "gruntfile.js", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "gruntfile.ts", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "gtkrc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "gulpfile.babel.js", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "gulpfile.coffee", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "gulpfile.js", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "gulpfile.ts", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "hypridle.conf", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "hyprland.conf", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "hyprlandd.conf", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "hyprlock.conf", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "hyprpaper.conf", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "hyprsunset.conf", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "i18n.config.js", text = "󰗊", fg = "{{colors.primary.default.hex}}" }, + { name = "i18n.config.ts", text = "󰗊", fg = "{{colors.primary.default.hex}}" }, + { name = "i3blocks.conf", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "i3status.conf", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "index.theme", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ionic.config.json", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "Jenkinsfile", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "justfile", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "kalgebrarc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "kdeglobals", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "kdenlive-layoutsrc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "kdenliverc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "kritadisplayrc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "kritarc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "license", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "license.md", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "lxde-rc.xml", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "lxqt.conf", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "makefile", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "mix.lock", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "mpv.conf", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "next.config.cjs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "next.config.js", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "next.config.ts", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "node_modules", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "nuxt.config.cjs", text = "󱄆", fg = "{{colors.primary.default.hex}}" }, + { name = "nuxt.config.js", text = "󱄆", fg = "{{colors.primary.default.hex}}" }, + { name = "nuxt.config.mjs", text = "󱄆", fg = "{{colors.primary.default.hex}}" }, + { name = "nuxt.config.ts", text = "󱄆", fg = "{{colors.primary.default.hex}}" }, + { name = "package-lock.json", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "package.json", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "PKGBUILD", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "platformio.ini", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "playwright.config.cjs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "playwright.config.cts", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "playwright.config.js", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "playwright.config.mjs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "playwright.config.mts", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "playwright.config.ts", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "pnpm-lock.yaml", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "pnpm-workspace.yaml", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "pom.xml", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "prettier.config.cjs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "prettier.config.js", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "prettier.config.mjs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "prettier.config.ts", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "prisma.config.mts", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "prisma.config.ts", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "procfile", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "PrusaSlicer.ini", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "PrusaSlicerGcodeViewer.ini", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "py.typed", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "QtProject.conf", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "rakefile", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "readme", text = "󰂺", fg = "{{colors.primary.default.hex}}" }, + { name = "readme.md", text = "󰂺", fg = "{{colors.primary.default.hex}}" }, + { name = "rmd", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "robots.txt", text = "󰚩", fg = "{{colors.primary.default.hex}}" }, + { name = "security", text = "󰒃", fg = "{{colors.primary.default.hex}}" }, + { name = "security.md", text = "󰒃", fg = "{{colors.primary.default.hex}}" }, + { name = "settings.gradle", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "svelte.config.js", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "sxhkdrc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "sym-lib-table", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "tailwind.config.js", text = "󱏿", fg = "{{colors.primary.default.hex}}" }, + { name = "tailwind.config.mjs", text = "󱏿", fg = "{{colors.primary.default.hex}}" }, + { name = "tailwind.config.ts", text = "󱏿", fg = "{{colors.primary.default.hex}}" }, + { name = "tmux.conf", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "tmux.conf.local", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "tsconfig.json", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "unlicense", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "vagrantfile", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "vercel.json", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "vite.config.cjs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "vite.config.cts", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "vite.config.js", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "vite.config.mjs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "vite.config.mts", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "vite.config.ts", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "vitest.config.cjs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "vitest.config.cts", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "vitest.config.js", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "vitest.config.mjs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "vitest.config.mts", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "vitest.config.ts", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "vlcrc", text = "󰕼", fg = "{{colors.primary.default.hex}}" }, + { name = "webpack", text = "󰜫", fg = "{{colors.primary.default.hex}}" }, + { name = "weston.ini", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "workspace", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "wrangler.jsonc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "wrangler.toml", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "xdph.conf", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "xmobarrc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "xmobarrc.hs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "xmonad.hs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "xorg.conf", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "xsettingsd.conf", text = "", fg = "{{colors.primary.default.hex}}" }, + ] + exts = [ + { name = "3gp", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "3mf", text = "󰆧", fg = "{{colors.primary.default.hex}}" }, + { name = "7z", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "a", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "aac", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ada", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "adb", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ads", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ai", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "aif", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "aiff", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "android", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ape", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "apk", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "apl", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "app", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "applescript", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "asc", text = "󰦝", fg = "{{colors.primary.default.hex}}" }, + { name = "asm", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ass", text = "󰨖", fg = "{{colors.primary.default.hex}}" }, + { name = "astro", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "avif", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "awk", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "azcli", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "bak", text = "󰁯", fg = "{{colors.primary.default.hex}}" }, + { name = "bash", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "bat", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "bazel", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "bib", text = "󱉟", fg = "{{colors.primary.default.hex}}" }, + { name = "bicep", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "bicepparam", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "bin", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "blade.php", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "blend", text = "󰂫", fg = "{{colors.primary.default.hex}}" }, + { name = "blp", text = "󰺾", fg = "{{colors.primary.default.hex}}" }, + { name = "bmp", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "bqn", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "brep", text = "󰻫", fg = "{{colors.primary.default.hex}}" }, + { name = "bz", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "bz2", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "bz3", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "bzl", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "c", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "c++", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "cache", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "cast", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "cbl", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "cc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ccm", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "cfc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "cfg", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "cfm", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "cjs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "clj", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "cljc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "cljd", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "cljs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "cmake", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "cob", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "cobol", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "coffee", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "conda", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "conf", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "config.ru", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "cow", text = "󰆚", fg = "{{colors.primary.default.hex}}" }, + { name = "cp", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "cpp", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "cppm", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "cpy", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "cr", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "crdownload", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "cs", text = "󰌛", fg = "{{colors.primary.default.hex}}" }, + { name = "csh", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "cshtml", text = "󱦗", fg = "{{colors.primary.default.hex}}" }, + { name = "cson", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "csproj", text = "󰪮", fg = "{{colors.primary.default.hex}}" }, + { name = "css", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "csv", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "cts", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "cu", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "cue", text = "󰲹", fg = "{{colors.primary.default.hex}}" }, + { name = "cuh", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "cxx", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "cxxm", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "d", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "d.ts", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "dart", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "db", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "dconf", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "desktop", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "diff", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "dll", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "doc", text = "󰈬", fg = "{{colors.primary.default.hex}}" }, + { name = "Dockerfile", text = "󰡨", fg = "{{colors.primary.default.hex}}" }, + { name = "dockerignore", text = "󰡨", fg = "{{colors.primary.default.hex}}" }, + { name = "docx", text = "󰈬", fg = "{{colors.primary.default.hex}}" }, + { name = "dot", text = "󱁉", fg = "{{colors.primary.default.hex}}" }, + { name = "download", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "drl", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "dropbox", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "dump", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "dwg", text = "󰻫", fg = "{{colors.primary.default.hex}}" }, + { name = "dxf", text = "󰻫", fg = "{{colors.primary.default.hex}}" }, + { name = "ebook", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ebuild", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "edn", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "eex", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ejs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "el", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "elc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "elf", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "elm", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "eln", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "env", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "eot", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "epp", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "epub", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "erb", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "erl", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ex", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "exe", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "exs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "f#", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "f3d", text = "󰻫", fg = "{{colors.primary.default.hex}}" }, + { name = "f90", text = "󱈚", fg = "{{colors.primary.default.hex}}" }, + { name = "fbx", text = "󰆧", fg = "{{colors.primary.default.hex}}" }, + { name = "fcbak", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "fcmacro", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "fcmat", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "fcparam", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "fcscript", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "fcstd", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "fcstd1", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "fctb", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "fctl", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "fdmdownload", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "feature", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "fish", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "flac", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "flc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "flf", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "fnl", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "fodg", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "fodp", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "fods", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "fodt", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "frag", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "fs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "fsi", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "fsscript", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "fsx", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "gcode", text = "󰐫", fg = "{{colors.primary.default.hex}}" }, + { name = "gd", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "gemspec", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "geom", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "gif", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "git", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "glb", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "gleam", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "glsl", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "gnumakefile", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "go", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "godot", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "gpr", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "gql", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "gradle", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "graphql", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "gresource", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "gv", text = "󱁉", fg = "{{colors.primary.default.hex}}" }, + { name = "gz", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "h", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "haml", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "hbs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "heex", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "hex", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "hh", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "hpp", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "hrl", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "hs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "htm", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "html", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "http", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "huff", text = "󰡘", fg = "{{colors.primary.default.hex}}" }, + { name = "hurl", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "hx", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "hxx", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ical", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "icalendar", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ico", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ics", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ifb", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ifc", text = "󰻫", fg = "{{colors.primary.default.hex}}" }, + { name = "ige", text = "󰻫", fg = "{{colors.primary.default.hex}}" }, + { name = "iges", text = "󰻫", fg = "{{colors.primary.default.hex}}" }, + { name = "igs", text = "󰻫", fg = "{{colors.primary.default.hex}}" }, + { name = "image", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "img", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "import", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "info", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ini", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ino", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ipynb", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "iso", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ixx", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "jar", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "java", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "jl", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "jpeg", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "jpg", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "js", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "json", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "json5", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "jsonc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "jsx", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "jwmrc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "jxl", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "kbx", text = "󰯄", fg = "{{colors.primary.default.hex}}" }, + { name = "kdb", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "kdbx", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "kdenlive", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "kdenlivetitle", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "kicad_dru", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "kicad_mod", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "kicad_pcb", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "kicad_prl", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "kicad_pro", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "kicad_sch", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "kicad_sym", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "kicad_wks", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ko", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "kpp", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "kra", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "krz", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ksh", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "kt", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "kts", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "lck", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "leex", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "less", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "lff", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "lhs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "lib", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "license", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "liquid", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "lock", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "log", text = "󰌱", fg = "{{colors.primary.default.hex}}" }, + { name = "lrc", text = "󰨖", fg = "{{colors.primary.default.hex}}" }, + { name = "lua", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "luac", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "luau", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "m", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "m3u", text = "󰲹", fg = "{{colors.primary.default.hex}}" }, + { name = "m3u8", text = "󰲹", fg = "{{colors.primary.default.hex}}" }, + { name = "m4a", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "m4v", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "magnet", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "makefile", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "markdown", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "material", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "md", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "md5", text = "󰕥", fg = "{{colors.primary.default.hex}}" }, + { name = "mdx", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "mint", text = "󰌪", fg = "{{colors.primary.default.hex}}" }, + { name = "mjs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "mk", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "mkv", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ml", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "mli", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "mm", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "mo", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "mobi", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "mojo", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "mov", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "mp3", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "mp4", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "mpp", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "msf", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "mts", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "mustache", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "nfo", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "nim", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "nix", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "norg", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "nswag", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "nu", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "o", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "obj", text = "󰆧", fg = "{{colors.primary.default.hex}}" }, + { name = "odf", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "odg", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "odin", text = "󰟢", fg = "{{colors.primary.default.hex}}" }, + { name = "odp", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ods", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "odt", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "oga", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ogg", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ogv", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ogx", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "opus", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "org", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "otf", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "out", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "part", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "patch", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "pck", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "pcm", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "pdf", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "php", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "pl", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "pls", text = "󰲹", fg = "{{colors.primary.default.hex}}" }, + { name = "ply", text = "󰆧", fg = "{{colors.primary.default.hex}}" }, + { name = "pm", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "png", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "po", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "pot", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "pp", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ppt", text = "󰈧", fg = "{{colors.primary.default.hex}}" }, + { name = "pptx", text = "󰈧", fg = "{{colors.primary.default.hex}}" }, + { name = "prisma", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "pro", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ps1", text = "󰨊", fg = "{{colors.primary.default.hex}}" }, + { name = "psb", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "psd", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "psd1", text = "󰨊", fg = "{{colors.primary.default.hex}}" }, + { name = "psm1", text = "󰨊", fg = "{{colors.primary.default.hex}}" }, + { name = "pub", text = "󰷖", fg = "{{colors.primary.default.hex}}" }, + { name = "pxd", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "pxi", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "py", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "pyc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "pyd", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "pyi", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "pyo", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "pyw", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "pyx", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "qm", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "qml", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "qrc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "qss", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "query", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "R", text = "󰟔", fg = "{{colors.primary.default.hex}}" }, + { name = "r", text = "󰟔", fg = "{{colors.primary.default.hex}}" }, + { name = "rake", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "rar", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "rasi", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "razor", text = "󱦘", fg = "{{colors.primary.default.hex}}" }, + { name = "rb", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "res", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "resi", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "rlib", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "rmd", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "rproj", text = "󰗆", fg = "{{colors.primary.default.hex}}" }, + { name = "rs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "rss", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "s", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "sass", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "sbt", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "sc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "scad", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "scala", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "scm", text = "󰘧", fg = "{{colors.primary.default.hex}}" }, + { name = "scss", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "sh", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "sha1", text = "󰕥", fg = "{{colors.primary.default.hex}}" }, + { name = "sha224", text = "󰕥", fg = "{{colors.primary.default.hex}}" }, + { name = "sha256", text = "󰕥", fg = "{{colors.primary.default.hex}}" }, + { name = "sha384", text = "󰕥", fg = "{{colors.primary.default.hex}}" }, + { name = "sha512", text = "󰕥", fg = "{{colors.primary.default.hex}}" }, + { name = "sig", text = "󰘧", fg = "{{colors.primary.default.hex}}" }, + { name = "signature", text = "󰘧", fg = "{{colors.primary.default.hex}}" }, + { name = "skp", text = "󰻫", fg = "{{colors.primary.default.hex}}" }, + { name = "sldasm", text = "󰻫", fg = "{{colors.primary.default.hex}}" }, + { name = "sldprt", text = "󰻫", fg = "{{colors.primary.default.hex}}" }, + { name = "slim", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "sln", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "slnx", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "slvs", text = "󰻫", fg = "{{colors.primary.default.hex}}" }, + { name = "sml", text = "󰘧", fg = "{{colors.primary.default.hex}}" }, + { name = "so", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "sol", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "spec.js", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "spec.jsx", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "spec.ts", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "spec.tsx", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "spx", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "sql", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "sqlite", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "sqlite3", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "srt", text = "󰨖", fg = "{{colors.primary.default.hex}}" }, + { name = "ssa", text = "󰨖", fg = "{{colors.primary.default.hex}}" }, + { name = "ste", text = "󰻫", fg = "{{colors.primary.default.hex}}" }, + { name = "step", text = "󰻫", fg = "{{colors.primary.default.hex}}" }, + { name = "stl", text = "󰆧", fg = "{{colors.primary.default.hex}}" }, + { name = "stories.js", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "stories.jsx", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "stories.mjs", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "stories.svelte", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "stories.ts", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "stories.tsx", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "stories.vue", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "stp", text = "󰻫", fg = "{{colors.primary.default.hex}}" }, + { name = "strings", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "styl", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "sub", text = "󰨖", fg = "{{colors.primary.default.hex}}" }, + { name = "sublime", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "suo", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "sv", text = "󰍛", fg = "{{colors.primary.default.hex}}" }, + { name = "svelte", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "svg", text = "󰜡", fg = "{{colors.primary.default.hex}}" }, + { name = "svgz", text = "󰜡", fg = "{{colors.primary.default.hex}}" }, + { name = "svh", text = "󰍛", fg = "{{colors.primary.default.hex}}" }, + { name = "swift", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "t", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "tbc", text = "󰛓", fg = "{{colors.primary.default.hex}}" }, + { name = "tcl", text = "󰛓", fg = "{{colors.primary.default.hex}}" }, + { name = "templ", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "terminal", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "test.js", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "test.jsx", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "test.ts", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "test.tsx", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "tex", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "tf", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "tfvars", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "tgz", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "tmpl", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "tmux", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "toml", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "torrent", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "tres", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ts", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "tscn", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "tsconfig", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "tsx", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ttf", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "twig", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "txt", text = "󰈙", fg = "{{colors.primary.default.hex}}" }, + { name = "txz", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "typ", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "typoscript", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "ui", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "v", text = "󰍛", fg = "{{colors.primary.default.hex}}" }, + { name = "vala", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "vert", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "vh", text = "󰍛", fg = "{{colors.primary.default.hex}}" }, + { name = "vhd", text = "󰍛", fg = "{{colors.primary.default.hex}}" }, + { name = "vhdl", text = "󰍛", fg = "{{colors.primary.default.hex}}" }, + { name = "vi", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "vim", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "vsh", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "vsix", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "vue", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "wasm", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "wav", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "webm", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "webmanifest", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "webp", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "webpack", text = "󰜫", fg = "{{colors.primary.default.hex}}" }, + { name = "wma", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "wmv", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "woff", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "woff2", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "wrl", text = "󰆧", fg = "{{colors.primary.default.hex}}" }, + { name = "wrz", text = "󰆧", fg = "{{colors.primary.default.hex}}" }, + { name = "wv", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "wvc", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "x", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "xaml", text = "󰙳", fg = "{{colors.primary.default.hex}}" }, + { name = "xcf", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "xcplayground", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "xcstrings", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "xls", text = "󰈛", fg = "{{colors.primary.default.hex}}" }, + { name = "xlsx", text = "󰈛", fg = "{{colors.primary.default.hex}}" }, + { name = "xm", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "xml", text = "󰗀", fg = "{{colors.primary.default.hex}}" }, + { name = "xpi", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "xslt", text = "󰗀", fg = "{{colors.primary.default.hex}}" }, + { name = "xul", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "xz", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "yaml", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "yml", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "zig", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "zip", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "zsh", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "zst", text = "", fg = "{{colors.primary.default.hex}}" }, + { name = "🔥", text = "", fg = "{{colors.primary.default.hex}}" }, + ] + conds = [ + # Special files + { if = "orphan", text = "", fg = "{{colors.primary.default.hex}}" }, + { if = "link", text = "", fg = "{{colors.primary.default.hex}}" }, + { if = "block", text = "", fg = "{{colors.primary.default.hex}}" }, + { if = "char", text = "", fg = "{{colors.primary.default.hex}}" }, + { if = "fifo", text = "", fg = "{{colors.primary.default.hex}}" }, + { if = "sock", text = "", fg = "{{colors.primary.default.hex}}" }, + { if = "sticky", text = "", fg = "{{colors.primary.default.hex}}" }, + { if = "dummy", text = "", fg = "{{colors.primary.default.hex}}" }, + + # Fallback + { if = "dir", text = "", fg = "{{colors.primary.default.hex}}" }, + { if = "exec", text = "", fg = "{{colors.primary.default.hex}}" }, + { if = "!dir", text = "", fg = "{{colors.primary.default.hex}}" }, + ] + # : }}} ''; }; }; diff --git a/common/modules/terminal/alacritty.nix b/common/modules/terminal/alacritty.nix index cbea179..7cbcfec 100644 --- a/common/modules/terminal/alacritty.nix +++ b/common/modules/terminal/alacritty.nix @@ -25,7 +25,7 @@ in hide_when_typing = true; }; general = { - import = lib.optionals config.beeMods.matugen.enable [ "~/.config/alacritty/themes/noctalia.toml" ]; + import = lib.optionals config.beeMods.matugen.enable [ "~/.config/alacritty/themes/matugen.toml" ]; }; window = { dynamic_padding = true; diff --git a/common/modules/terminal/default.nix b/common/modules/terminal/default.nix index b777faf..6f25ed6 100644 --- a/common/modules/terminal/default.nix +++ b/common/modules/terminal/default.nix @@ -50,13 +50,13 @@ with lib; window = { padding-x = mkOption { type = types.int; - default = 3; + default = 2; description = "Window padding x axis (pixels)."; }; padding-y = mkOption { type = types.int; - default = 3; + default = 1; description = "Window padding y axis (pixels)."; }; }; diff --git a/common/modules/terminal/foot.nix b/common/modules/terminal/foot.nix index f9cd424..afc4539 100644 --- a/common/modules/terminal/foot.nix +++ b/common/modules/terminal/foot.nix @@ -11,7 +11,12 @@ in enable = true; settings = { main = { - include = lib.optionals config.beeMods.matugen.enable [ "~/.config/foot/themes/noctalia" ]; + include = lib.optionals config.beeMods.matugen.enable [ "~/.config/foot/themes/matugen" ]; + line-height = 13; + letter-spacing = 0; + vertical-letter-offset = 0; + horizontal-letter-offset = 0; + underline-offset = 2; pad = "${toString cfg.window.padding-x}x${toString cfg.window.padding-y} center"; font = "${cfg.font.family}:size=${toString cfg.font.size}"; diff --git a/common/modules/terminal/ghostty.nix b/common/modules/terminal/ghostty.nix index 0926fe9..c47e991 100644 --- a/common/modules/terminal/ghostty.nix +++ b/common/modules/terminal/ghostty.nix @@ -11,7 +11,7 @@ in enable = true; enableFishIntegration = true; settings = { - theme = lib.optionalString config.beeMods.matugen.enable "noctalia"; + theme = lib.optionalString config.beeMods.matugen.enable "matugen"; font-family = cfg.font.family; font-size = cfg.font.size; diff --git a/common/modules/window_managers/default.nix b/common/modules/window_managers/default.nix index bc93e35..1c66f63 100644 --- a/common/modules/window_managers/default.nix +++ b/common/modules/window_managers/default.nix @@ -15,18 +15,15 @@ let moduleNameSpace = "beeMods"; inherit inputs homeManager; }; + scripts = import ./scripts.nix { inherit pkgs config; }; in { imports = [ (import ./mango args) - (import ./hyprland args) - (import ./dwm args) ]; options.${moduleNameSpace}.windowManagers = { mango.enable = lib.mkEnableOption "Enable mangowm"; - dwm.enable = lib.mkEnableOption "Enable dwm"; - hyprland.enable = lib.mkEnableOption "Enable hyprland"; eyeCandy = { animations.enable = lib.mkEnableOption "Uiiiiiiiiiii"; window = { @@ -62,8 +59,11 @@ in wl-clipboard cliphist brightnessctl - maim - wtype + playerctl + matugen + awww + waybar + scripts.dotfiles ]; } else diff --git a/common/modules/window_managers/dwm/default.nix b/common/modules/window_managers/dwm/default.nix deleted file mode 100644 index 49537a2..0000000 --- a/common/modules/window_managers/dwm/default.nix +++ /dev/null @@ -1,176 +0,0 @@ -{ - homeManager, - inputs, - moduleNameSpace, - ... -}: -{ - config, - lib, - pkgs, - ... -}: -let - cfg = config.${moduleNameSpace}.windowManagers; - st-patched = - (pkgs.st.override { - extraLibs = [ pkgs.libXcursor ]; - }).overrideAttrs - (oldAttrs: rec { - patches = map pkgs.fetchpatch [ - { - url = "https://st.suckless.org/patches/xresources/st-xresources-20230320-45a15676.diff"; - sha256 = "sha256-WcL9IeyanXFiOFDGGRU0QNT8DU7wSo2o+3n+TaqASUY="; - } - { - url = "https://st.suckless.org/patches/vertcenter/st-vertcenter-20231003-eb3b894.diff"; - sha256 = "sha256-RbFNdGNi5HLAp1s8QOX3qsfxpkLcp1p/vksyZORN/uc="; - } - { - url = "https://st.suckless.org/patches/anysize/st-anysize-20220718-baa9357.diff"; - hash = "sha256-yx9VSwmPACx3EN3CAdQkxeoJKJxQ6ziC9tpBcoWuWHc="; - } - { - url = "https://st.suckless.org/patches/csi_22_23/st-csi_22_23-0.8.5.diff"; - hash = "sha256-+izEkGVkLCbhZNBD2WN4uX5j+YMmou7JaMVmPG0mrYk="; - } - { - url = "https://st.suckless.org/patches/sync/st-appsync-20200618-b27a383.diff"; - sha256 = "sha256-lys7/nup7a+GcmW+CutX0kjmbbOis2stkuhw02beuPs="; - } - { - url = "https://st.suckless.org/patches/fix_keyboard_input/st-fix-keyboard-input-20180605-dc3b5ba.diff"; - sha256 = "sha256-h5ZrCj4IrkMQanLSMmgXaRd7qZYqvbzqUnuFt/axsMI="; - } - { - url = "https://st.suckless.org/patches/boxdraw/st-boxdraw_v2-0.8.5.diff"; - sha256 = "sha256-WN/R6dPuw1eviHOvVVBw2VBSMDtfi1LCkXyX36EJKi4="; - } - { - url = "https://st.suckless.org/patches/bold-is-not-bright/st-bold-is-not-bright-20190127-3be4cf1.diff"; - sha256 = "sha256-IhrTgZ8K3tcf5HqSlHm3GTacVJLOhO7QPho6SCGXTHw="; - } - ]; - - postPatch = oldAttrs.postPatch or "" + '' - sed -i 's/const int boxdraw = 0;/const int boxdraw = 1;/g' config.def.h - sed -i 's/const int boxdraw_bold = 0;/const int boxdraw_bold = 1;/g' config.def.h - - grep -q Xcursor x.c || sed -i '/#include /a #include ' x.c - - sed -i 's/XCreateFontCursor/XcursorLibraryLoadCursor/g' x.c - - sed -i 's/static unsigned int mouseshape/static char *mouseshape/' config.def.h - sed -i 's/XC_xterm/"ibeam"/' config.def.h - - sed -i 's/-lXft/-lXft -lXcursor/g' config.mk - ''; - }); -in -{ - imports = [ - # (import ./picom.nix homeManager) - (import ./scripts.nix homeManager) - ]; - - config = lib.mkIf cfg.dwm.enable ( - if !homeManager then - { - services.xserver = { - enable = true; - windowManager.dwm = { - enable = true; - package = inputs.mydwm.packages.${pkgs.stdenv.hostPlatform.system}.default; - }; - autoRepeatDelay = 300; - autoRepeatInterval = 20; - excludePackages = with pkgs; [ xterm ]; - displayManager.sessionCommands = '' - ${pkgs.systemd}/bin/systemctl --user import-environment DISPLAY XAUTHORITY XDG_SESSION_TYPE - ${pkgs.dbus}/bin/dbus-update-activation-environment --systemd DISPLAY XAUTHORITY XDG_SESSION_TYPE - ''; - }; - - programs.ssh.askPassword = ""; - } - else - { - xdg.dataFile."dwm/autostart.sh" = { - executable = true; - text = '' - #!${pkgs.bash}/bin/bash - - gnome-keyring-daemon --start --components=secrets,ssh,pkcs11 & - ${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1 & - - [ -f ~/.Xresources ] && xrdb -merge ~/.Xresources - xrandr --output eDP --set TearFree on - - sync_dms - systemctl --user restart xidlehook.service xautolock-session.service xss-lock.service clipcat.service - ''; - }; - - home.packages = with pkgs; [ - st-patched - xdotool - xclip - (pkgs.dmenu.overrideAttrs (oldAttrs: { - patches = (oldAttrs.patches or [ ]) ++ [ - (pkgs.fetchpatch { - url = "https://tools.suckless.org/dmenu/patches/xresources/dmenu-xresources-4.9.diff"; - sha256 = "sha256-Np9I8hhnwmGA3W5v4tSrBN9Or8Q2Ag9x8H3yf8L9jDI="; - }) - ]; - })) - ]; - - services.clipcat = { - enable = false; - daemonSettings = { - daemonize = false; - max_history = 50; - desktop_notification = { - enable = false; - }; - }; - menuSettings = { - server_endpoint = "/run/user/1000/clipcat/grpc.sock"; - finder = "rofi"; - - rofi = { - menu_length = 10; - line_length = 100; - menu_prompt = "Clipboard"; - extra_arguments = [ ]; - }; - }; - }; - - systemd.user.services.clipcat = { - Unit = { - ConditionEnvironment = [ "XDG_SESSION_TYPE=x11" ]; - }; - }; - - xresources.extraConfig = lib.mkIf config.beeMods.matugen.enable '' - #include "${config.xdg.configHome}/x11/matugen.Xresources" - ''; - - xresources.properties = { - "Xft.dpi" = 96; - "Xft.autohint" = 0; - "Xft.antialias" = true; - "Xft.hinting" = true; - "Xft.lcdfilter" = "lcddefault"; - "Xft.hintstyle" = "hintfull"; - "Xft.rgba" = "rgb"; - "st.font" = - "JetBrainsMono Nerd Font:size=${toString config.beeMods.terminal.font.size}:antialias=true:autohint=true"; - "dmenu.font" = - "${config.beeMods.terminal.font.family}:size=${toString config.beeMods.terminal.font.size}"; - # "st.borderpx" = 2; - }; - } - ); -} diff --git a/common/modules/window_managers/dwm/picom.nix b/common/modules/window_managers/dwm/picom.nix deleted file mode 100644 index f0b8d17..0000000 --- a/common/modules/window_managers/dwm/picom.nix +++ /dev/null @@ -1,63 +0,0 @@ -homeManager: -{ config, lib, ... }: -let - cfg = config.beeMods.windowManagers; -in -{ - config = lib.mkIf cfg.enable ( - lib.optionalAttrs homeManager { - services.picom = { - enable = true; - backend = "glx"; - vSync = true; - - activeOpacity = if cfg.window.blur.enable then 0.82 else cfg.window.opacity.active; - inactiveOpacity = if cfg.window.blur.enable then 0.82 else cfg.window.opacity.inactive; - - opacityRules = [ - "100:fullscreen" - "100:_NET_WM_STATE@:32a *= '_NET_WM_STATE_FULLSCREEN'" - ]; - settings = { - blur = { - method = "dual_kawase"; - strength = cfg.window.blur.strength; - size = cfg.window.blur.size; - }; - blur-background = cfg.window.blur.enable; - blur-background-exclude = [ - "window_type = 'dock'" - "window_type = 'desktop'" - "class_g = 'slop'" - "class_g = 'dwm'" - "_GTK_FRAME_EXTENTS@" - "fullscreen" - "_NET_WM_STATE@:32a *= '_NET_WM_STATE_FULLSCREEN'" - ]; - - # xrender-sync-fence = true; - use-damage = true; - - unredir-if-possible = true; - - detect-transient = true; - detect-client-opacity = true; - mark-wmwin-focused = true; - mark-ovredir-focused = true; - detect-rounded-corners = true; - - shadow = cfg.shadow; - fading = false; - animations = cfg.animations; - }; - }; - - # systemd.user.services.picom.Install.wantedBy = lib.mkForce [ ]; - systemd.user.services.picom = { - Unit = { - ConditionEnvironment = "XDG_SESSION_TYPE=x11"; - }; - }; - } - ); -} diff --git a/common/modules/window_managers/dwm/scripts.nix b/common/modules/window_managers/dwm/scripts.nix deleted file mode 100644 index 25ecc19..0000000 --- a/common/modules/window_managers/dwm/scripts.nix +++ /dev/null @@ -1,113 +0,0 @@ -homeManager: -{ pkgs, lib, ... }: -let - sync_dms = pkgs.writeShellScriptBin "sync_dms" '' - jq=${pkgs.jq}/bin/jq - SETTINGS_FILE="$HOME/.config/noctalia/settings.json" - WALLPAPER_FILE="$HOME/.cache/noctalia/wallpapers.json" - - # --- Helpers --- - - get_setting() { - $jq -r "$1" "$SETTINGS_FILE" - } - - toggle_nightlight_state() { - local tmp=$(mktemp) - # Flips the boolean cleanly without changing it to a string - $jq '.nightLight.enabled = (.nightLight.enabled | not)' "$SETTINGS_FILE" > "$tmp" && mv "$tmp" "$SETTINGS_FILE" - } - - # --- Modules --- - - apply_wallpaper() { - # Read dark mode and monitor preferences from settings.json - local is_dark=$(get_setting '.colorSchemes.darkMode') - local monitor=$(get_setting '.colorSchemes.monitorForColors') - - # Default to eDP-1 if monitor setting is missing - if [[ "$monitor" == "null" || -z "$monitor" ]]; then - monitor="eDP-1" - fi - - local mode="light" - if [[ "$is_dark" == "true" ]]; then - mode="dark" - fi - - # Use jq variables to safely parse the nested monitor and mode keys - local wall=$($jq -r --arg mon "$monitor" --arg mode "$mode" '.wallpapers[$mon][$mode]' "$WALLPAPER_FILE") - - if [[ "$wall" != "null" && -n "$wall" ]]; then - ${pkgs.xwallpaper}/bin/xwallpaper --zoom "$wall" - fi - } - - apply_nightlight() { - local is_night_mode=$(get_setting '.nightLight.enabled') - local night_temp=$(get_setting '.nightLight.nightTemp') - - if [[ "$is_night_mode" == "true" ]]; then - echo "bitch $is_night_mode" - # -P resets prior adjustments, -O applies one-shot manual temperature - ${pkgs.redshift}/bin/redshift -P -O "$night_temp" - else - # -x clears all redshift adjustments - ${pkgs.redshift}/bin/redshift -x - fi - } - - sync_all() { - apply_wallpaper - apply_nightlight - } - - dmenu_settings() { - local is_night_mode=$(get_setting '.nightLight.enabled') - local options="Toggle NightMode (Currently $is_night_mode)\nSync Now" - - local choice=$(echo -e "$options" | dmenu -p "Settings:") - - case "$choice" in - *"NightMode"*) - toggle_nightlight_state - # Immediately apply the new state after toggling - apply_nightlight - ;; - "Sync Now") - sync_all - ;; - esac - } - - # --- Main --- - - case "$1" in - settings) dmenu_settings ;; - *) sync_all ;; - esac - ''; - logout_dmenu = pkgs.writeShellScriptBin "logout_dmenu" '' - options="Lock\nLogout\nReboot\nShutdown" - - choice=$(echo -e "$options" | dmenu -p "System:") - - case "$choice" in - Lock) slock ;; - Logout) pkill dwm ;; - Reboot) reboot ;; - Shutdown) poweroff ;; - *) exit 1 ;; - esac - ''; -in -{ - config = lib.mkIf homeManager ( - lib.optionalAttrs homeManager { - home.packages = with pkgs; [ - sync_dms - logout_dmenu - ]; - } - ); -} diff --git a/common/modules/window_managers/hyprland/default.nix b/common/modules/window_managers/hyprland/default.nix deleted file mode 100644 index fea9db6..0000000 --- a/common/modules/window_managers/hyprland/default.nix +++ /dev/null @@ -1,322 +0,0 @@ -{ - homeManager, - inputs, - moduleNameSpace, - ... -}: -{ - config, - lib, - pkgs, - ... -}: -let - cfg = config.${moduleNameSpace}.windowManagers; - scripts = import ../scripts.nix { inherit pkgs config; }; -in -{ - config = lib.mkIf cfg.hyprland.enable ( - if homeManager then - { - wayland.windowManager.hyprland = { - enable = true; - systemd.enable = true; - systemd.variables = [ "--all" ]; - xwayland.enable = true; - systemd.enableXdgAutostart = false; - extraConfig = '' - layerrule { - name = noctalia - match:namespace = noctalia-background-.*$ - ignore_alpha = 0.5 - blur = true - blur_popups = true - } - ''; - - settings = { - monitor = [ ",1920x1080@120,auto,1.0" ]; - - source = - [ ] ++ lib.optional (config.beeMods.matugen.enable) "~/.config/hypr/noctalia/noctalia-colors.conf"; - - "$mainMod" = "SUPER"; - - env = [ - "NIXOS_OZONE_WL,1" - "QT_AUTO_SCREEN_SCALE_FACTOR,1" - "ELECTRON_OZONE_PLATFORM_HINT,auto" - "QT_QPA_PLATFORM,wayland;xcb" - "XDG_SESSION_TYPE,wayland" - "GDK_BACKEND,wayland,x11" - "GDK_SCALE,1" - ]; - - exec-once = [ - # "dbus-update-activation-environment --all" - "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" - "gnome-keyring-daemon --start --components=secrets" - "noctalia-shell" - ] - ++ lib.optionals config.beeMods.windowManagers.dwm.enable [ - "systemctl --user stop xidlehook.service" - "systemctl --user stop xautolock-session.service" - "systemctl --user stop xss-lock.service" - "systemctl --user stop clipcat.service" - ]; - - xwayland = { - force_zero_scaling = true; - }; - - input = { - follow_mouse = 1; - kb_layout = "us"; - repeat_delay = 300; - repeat_rate = 50; - sensitivity = 0; - numlock_by_default = false; - left_handed = false; - - touchpad = { - natural_scroll = true; - tap-to-click = true; - drag_lock = true; - disable_while_typing = true; - middle_button_emulation = false; - }; - }; - - general = { - layout = "master"; - gaps_in = 4; - gaps_out = 4; - border_size = 2; - - resize_on_border = true; - no_focus_fallback = true; - allow_tearing = true; - }; - - master = { - allow_small_split = true; - new_on_top = false; - mfact = 0.56; - }; - - scrolling = { - column_width = 0.55; - follow_focus = true; - }; - - decoration = { - rounding = cfg.eyeCandy.window.borderRadius; - - blur = { - enabled = cfg.eyeCandy.window.blur.enable; - size = cfg.eyeCandy.window.blur.radius; - passes = cfg.eyeCandy.window.blur.passes; - brightness = 0.9; - contrast = 0.9; - noise = 0.02; - vibrancy = 1.2; - popups = true; - popups_ignorealpha = 0.6; - }; - - shadow = { - enabled = cfg.eyeCandy.window.shadows.enable; - ignore_window = true; - range = 10; - render_power = 3; - offset = "0 0"; - color = "rgba(00000044)"; - }; - - # Apply opacity logic utilizing cfg.eyeCandy.options - active_opacity = - if (cfg.eyeCandy.window.blur.enable && cfg.eyeCandy.window.opacity == 1.0) then - 0.87 - else - cfg.eyeCandy.window.opacity; - inactive_opacity = - if (cfg.eyeCandy.window.blur.enable && cfg.eyeCandy.window.opacity == 1.0) then - 0.87 - else - cfg.eyeCandy.window.opacity; - fullscreen_opacity = 1.0; - - dim_inactive = false; - }; - - animations = { - enabled = cfg.eyeCandy.animations.enable; - - bezier = [ - "openCurve, 0.05, 0.7, 0.1, 1.0" - "closeCurve, 0.0, 0.0, 1.0, 1.0" - "moveCurve, 0.46, 1.0, 0.29, 1.0" - ]; - - animation = [ - "windowsIn, 1, 2.8, openCurve, slide" - "windowsOut, 1, 6.5, closeCurve, popin 80%" - "windowsMove, 1, 2.2, moveCurve" - "fadeIn, 0, 3.0, fadeCurve" - "fadeOut, 1, 2.5, moveCurve" - "workspaces, 1, 2.5, moveCurve, slide" - ]; - }; - - misc = { - vfr = true; - vrr = 0; - mouse_move_enables_dpms = true; - key_press_enables_dpms = true; - disable_splash_rendering = true; - animate_manual_resizes = true; - animate_mouse_windowdragging = false; - enable_swallow = false; - swallow_regex = "(foot|kitty|alacritty|Alacritty|com.mitchellh.ghostty|)"; - disable_hyprland_logo = true; - force_default_wallpaper = 0; - focus_on_activate = true; - }; - - binds = { - scroll_event_delay = 0; - focus_preferred_method = 1; - }; - - windowrule = [ - "workspace 1, match:class ^(foot|footclient|Alacritty|com.mitchellh.ghostty)$" - "workspace 2, match:class ^(zen|firefox|obsidian)$" - "workspace 3, match:class ^(vesktop|discord|thunderbird|Element|equibop)$" - "workspace 4, match:class ^(steam)$" - "float on, match:class ^(org.gnome.Calculator|org.pulseaudio.pavucontrol)$" - "stay_focused on, match:class ^(pinentry-)(.*)$" - ]; - - layerrule = [ - "no_anim on, match:namespace ^rofi$" - "no_anim on, match:namespace ^(dms)$" - "no_anim on, match:namespace .*dms.*" - "no_anim on, match:namespace .*noctalia.*" - ]; - - workspace = [ "2, layout:scrolling" ]; - - bind = [ - "$mainMod, r, exec, hyprctl reload" - "$mainMod, Return, exec, ${scripts.terminal}" - "$mainMod, a, exec,noctalia-shell ipc call launcher toggle" - "$mainMod, y, exec,noctalia-shell ipc call wallpaper toggle" - "$mainMod, v, exec,noctalia-shell ipc call launcher clipboard" - "$mainMod, n, exec,noctalia-shell ipc call notifications toggleHistory" - - "$mainMod, comma, exec,noctalia-shell ipc call settings toggle" - "$mainMod, Period, exec,noctalia-shell ipc call launcher emoji" - - "ALT, F4, exec,noctalia-shell ipc call sessionMenu toggle" - "$mainMod, F12, exec, gnome-calculator" - "$mainMod, b, exec, zen" - "$mainMod, e, exec, nautilus" - - "$mainMod, m, exit," - "$mainMod, q, killactive," - - "$mainMod, h, movefocus, l" - "$mainMod, l, movefocus, r" - "$mainMod, k, movefocus, u" - "$mainMod, j, movefocus, d" - - ", Print, exec, ${pkgs.grimblast}/bin/grimblast copy screen" - "$mainMod, Print, exec, ${pkgs.grimblast}/bin/grimblast copy area" - - "$mainMod SHIFT, k, swapwindow, u" - "$mainMod SHIFT, j, swapwindow, d" - "$mainMod SHIFT, h, swapwindow, l" - "$mainMod SHIFT, l, swapwindow, r" - - "$mainMod, g, pin," - "ALT, Tab, workspace, previous" - "$mainMod, space, togglefloating," - "ALT, a, fullscreen, 1" - "ALT, f, fullscreen, 0" - "$mainMod, i, togglespecialworkspace, minimized" - "$mainMod, i, movetoworkspacesilent, special:minimized" - "$mainMod SHIFT, i, togglespecialworkspace, minimized" - "$mainMod SHIFT, i, movetoworkspace, +0" - "ALT, z, togglespecialworkspace, scratchpad" - - "$mainMod, n, exec, beesettings layout" - - "$mainMod, 1, workspace, 1" - "$mainMod, 2, workspace, 2" - "$mainMod, 3, workspace, 3" - "$mainMod, 4, workspace, 4" - "$mainMod, 5, workspace, 5" - "$mainMod, 6, workspace, 6" - "$mainMod, 7, workspace, 7" - "$mainMod, 8, workspace, 8" - "$mainMod, 9, workspace, 9" - - "$mainMod SHIFT, 1, movetoworkspace, 1" - "$mainMod SHIFT, 2, movetoworkspace, 2" - "$mainMod SHIFT, 3, movetoworkspace, 3" - "$mainMod SHIFT, 4, movetoworkspace, 4" - "$mainMod SHIFT, 5, movetoworkspace, 5" - "$mainMod SHIFT, 6, movetoworkspace, 6" - "$mainMod SHIFT, 7, movetoworkspace, 7" - "$mainMod SHIFT, 8, movetoworkspace, 8" - "$mainMod SHIFT, 9, movetoworkspace, 9" - - "ALT SHIFT, Left, focusmonitor, l" - "ALT SHIFT, Right, focusmonitor, r" - "$mainMod ALT, Left, movecurrentworkspacetomonitor, l" - "$mainMod ALT, Right, movecurrentworkspacetomonitor, r" - ]; - - binde = [ - "$mainMod, Up, moveactive, 0 -50" - "$mainMod, Down, moveactive, 0 50" - "$mainMod, Left, moveactive, -50 0" - "$mainMod, Right, moveactive, 50 0" - - "ALT, k, resizeactive, 0 -50" - "ALT, j, resizeactive, 0 50" - "ALT, h, resizeactive, -50 0" - "ALT, l, resizeactive, 50 0" - ]; - - bindel = [ - ", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+" - ", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" - ", XF86AudioMute, exec,wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" - ", XF86AudioMicMute, exec,wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" - - ", XF86AudioPlay, exec, playerctl play-pause" - ", XF86AudioNext, exec, playerctl next" - ", XF86AudioPrev, exec, playerctl previous" - ", XF86AudioStop, exec, playerctl stop" - - ", XF86MonBrightnessUp, exec,brightnessctl set +5%" - ", XF86MonBrightnessDown, exec, brightnessctl set 5%-" - ]; - - bindm = [ - "$mainMod, mouse:272, movewindow" - "$mainMod, mouse:273, resizewindow" - ]; - }; - }; - } - else - { - programs.hyprland = { - enable = true; - withUWSM = false; - }; - } - ); -} diff --git a/common/modules/window_managers/mango/default.nix b/common/modules/window_managers/mango/default.nix index 11ac08f..94c83c5 100644 --- a/common/modules/window_managers/mango/default.nix +++ b/common/modules/window_managers/mango/default.nix @@ -13,26 +13,6 @@ let cfg = config.${moduleNameSpace}.windowManagers; scripts = import ../scripts.nix { inherit pkgs config; }; - snip = pkgs.writeShellScript "snip" '' - case $1 in - full) - ${pkgs.grim}/bin/grim - | wl-copy - ;; - selection) - GEOM=$(${pkgs.slurp}/bin/slurp) || exit - ${pkgs.grim}/bin/grim -g "$GEOM" - | wl-copy - ;; - window) - ${pkgs.grim}/bin/grim -g "$(mmsg -x | awk ' - / x / {x=$3} - / y / {y=$3} - / width / {w=$3} - / height / {h=$3} - END {print x "," y " " w "x" h} - ')" - | wl-copy - ;; - esac - ''; in { imports = @@ -50,28 +30,29 @@ in source = ~/.config/mango/colors.conf ''} - # blur=1 - # blur_layer=0 - # blur_optimized=1 - # blur_params_num_passes = 3 - # blur_params_radius = 12 - # blur_params_noise = 0.02 - # blur_params_brightness = 0.9 - # blur_params_contrast = 0.9 - # blur_params_saturation = 1.1 - # - # shadows=0 - # layer_shadows = 0 - # shadow_only_floating = 1 - # shadows_size = 10 - # shadows_blur = 15 - # shadows_position_x = 0 - # shadows_position_y = 0 - # - # border_radius=0 - # no_radius_when_single=0 - # focused_opacity=0.90 - # unfocused_opacity=0.90 + blur=${if cfg.eyeCandy.window.blur.enable then "1" else "0"} + blur_layer=0 + blur_optimized=1 + blur_params_num_passes = ${toString cfg.eyeCandy.window.blur.passes} + blur_params_radius = ${toString cfg.eyeCandy.window.blur.radius} + blur_params_noise = 0.02 + blur_params_brightness = 0.9 + blur_params_contrast = 0.9 + blur_params_saturation = 1.1 + + shadows=${if cfg.eyeCandy.window.shadows.enable then "1" else "0"} + layer_shadows = 0 + shadow_only_floating = 1 + shadows_size = 10 + shadows_blur = 15 + shadows_position_x = 0 + shadows_position_y = 0 + + border_radius=${toString cfg.eyeCandy.window.borderRadius} + + no_radius_when_single=0 + focused_opacity=${toString cfg.eyeCandy.window.opacity} + unfocused_opacity=${toString cfg.eyeCandy.window.opacity} # Scroller configuration scroller_structs=15 @@ -142,11 +123,11 @@ in #Keymaps bind=SUPER,r,reload_config - bind=SUPER,Return,spawn,foot - bind=SUPER,y,spawn,/home/beeb5k/.local/share/bee/dostuff wall + bind=SUPER,Return,spawn,${config.beeMods.terminal.default} + bind=SUPER,y,spawn,${scripts.dostuff} wall bind=SUPER,a,spawn,rofi -show drun bind=SUPER,c,spawn,sh -c 'dunstify "$(date)"' - bind=SUPER,comma,spawn,/home/beeb5k/.local/share/bee/dostuff settings + bind=SUPER,comma,spawn,${scripts.dostuff} settings bind=SUPER,F12,spawn,gnome-calculator bind=SUPER,b,spawn,librewolf @@ -160,9 +141,9 @@ in bind=SUPER,k,focusdir,up bind=SUPER,j,focusdir,down - bind=NONE,Print,spawn,/home/beeb5k/.config/mango/screenshot full - bind=SUPER,Print,spawn,/home/beeb5k/.config/mango/screenshot selection - bind=SUPER+SHIFT,Print,spawn,/home/beeb5k/.config/mango/screenshot window + bind=NONE,Print,spawn,${scripts.screenshot} full + bind=SUPER,Print,spawn,${scripts.screenshot} selection + bind=SUPER+SHIFT,Print,spawn,${scripts.screenshot} window bind=SUPER+SHIFT,k,exchange_client,up bind=SUPER+SHIFT,j,exchange_client,down @@ -218,19 +199,19 @@ in bind=ALT,h,resizewin,-50,+0 bind=ALT,l,resizewin,+50,+0 - bind=NONE,XF86AudioRaiseVolume,spawn,/home/beeb5k/.local/share/bee/dostuff volume up - bind=NONE,XF86AudioLowerVolume,spawn,/home/beeb5k/.local/share/bee/dostuff volume down - bind=NONE,XF86AudioMute,spawn,/home/beeb5k/.local/share/bee/dostuff volume mute + bind=NONE,XF86AudioRaiseVolume,spawn,${scripts.volume} up + bind=NONE,XF86AudioLowerVolume,spawn,${scripts.volume} down + bind=NONE,XF86AudioMute,spawn,${scripts.volume} toggle bind=NONE,XF86AudioPlay,spawn,playerctl play-pause bind=NONE,XF86AudioNext,spawn,playerctl next bind=NONE,XF86AudioPrev,spawn,playerctl previous bind=NONE,XF86AudioStop,spawn,playerctl stop - bind=NONE,XF86AudioMicMute,spawn,/home/beeb5k/.local/share/bee/dostuff mic toggle + bind=NONE,XF86AudioMicMute,spawn,${scripts.micToggle} - bind=NONE,XF86MonBrightnessUp,spawn,/home/beeb5k/.local/share/bee/dostuff brightness up - bind=NONE,XF86MonBrightnessDown,spawn,/home/beeb5k/.local/share/bee/dostuff brightness down + bind=NONE,XF86MonBrightnessUp,spawn,${scripts.brightness} up + bind=NONE,XF86MonBrightnessDown,spawn,${scripts.brightness} down mousebind=SUPER,btn_left,moveresize,curmove mousebind=NONE,btn_middle,togglemaximizescreen,0 @@ -261,8 +242,8 @@ in tagrule=id:8,layout_name:tile tagrule=id:9,layout_name:tile - env=XCURSOR_THEME, Bibata-Modern-Ice - env=XCURSOR_SIZE, 24 + # env=XCURSOR_THEME, Bibata-Modern-Ice + # env=XCURSOR_SIZE, 24 env=ELECTRON_OZONE_PLATFORM_HINT,auto env=QT_QPA_PLATFORMTHEME,qt6ct env=QT_QPA_PLATFORM,wayland @@ -270,7 +251,7 @@ in env=XDG_SESSION_TYPE,wayland env=GDK_BACKEND,wayland,x11 env=GDK_SCALE,1 - env=XCURSOR_PATH,/usr/share/icons + # env=XCURSOR_PATH,/usr/share/icons env=NVD_BACKEND,direct animations=0 @@ -300,13 +281,9 @@ in autostart_sh = '' wl-paste --type text --watch cliphist store & gnome-keyring-daemon --start --components=secrets,ssh,pkcs11 & - - ${lib.optionalString (config.beeMods.windowManagers.dwm.enable) '' - systemctl --user stop xidlehook.service - systemctl --user stop xautolock-session.service - systemctl --user stop xss-lock.service - systemctl --user stop clipcat.service - ''} + awww-daemon & + waybar & + dunst & ''; }; } diff --git a/common/modules/window_managers/scripts.nix b/common/modules/window_managers/scripts.nix index 1d854ae..4a93928 100644 --- a/common/modules/window_managers/scripts.nix +++ b/common/modules/window_managers/scripts.nix @@ -1,6 +1,6 @@ { pkgs, config }: -{ +rec { terminal = pkgs.writeShellScript "terminal" '' TERM="${config.beeMods.terminal.default}" SESSION="_main" @@ -20,4 +20,389 @@ fi fi ''; + dotfiles = pkgs.writeShellScriptBin "dotfiles" '' + case "$1" in + cd) + cd "$HOME/.config/beeSystems" + ;; + edit) + "$EDITOR" "$HOME/.config/beeSystems" + ;; + flake) + case "$2" in + update) + ( + cd "$HOME/.config/beeSystems" || exit 1 + nix flake update + ) + ;; + esac + ;; + esac + ''; + update_gtk_theme = pkgs.writeShellScript "update_gtk_theme" '' + if [ "$1" = "dark" ]; then + dconf write /org/gnome/desktop/interface/color-scheme "'prefer-light'" + else + dconf write /org/gnome/desktop/interface/color-scheme "'prefer-dark'" + fi + + dconf write /org/gnome/desktop/interface/color-scheme "'prefer-$1'" + systemctl --user restart xdg-desktop-portal-gtk + ''; + volume = pkgs.writeShellScript "volume" '' + TAG="audio-volume" + case $1 in + up) wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+ ;; + down) wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- ;; + toggle) wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle ;; + esac + + status=$(wpctl get-volume @DEFAULT_AUDIO_SINK@) + vol=$(awk '{print int($2 * 100)}' <<< "$status") + + case "$status" in + *MUTED*) + dunstify -a "Volume" -u low \ + -h string:x-canonical-private-synchronous:$TAG \ + "Volume: Muted" + ;; + *) + dunstify -a "Volume" -u low \ + -h string:x-canonical-private-synchronous:$TAG \ + -h int:value:"$vol" \ + "Volume: $vol%" + ;; + esac + ''; + micToggle = pkgs.writeShellScript "micToggle" '' + TAG="audio-mic" + + wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle + + status=$(wpctl get-volume @DEFAULT_AUDIO_SOURCE@) + + if [[ "$status" == *MUTED* ]]; then + dunstify -a "Microphone" -u low \ + -h string:x-canonical-private-synchronous:$TAG \ + "Microphone: Muted" + else + dunstify -a "Microphone" -u low \ + -h string:x-canonical-private-synchronous:$TAG \ + "Microphone: On" + fi + ''; + brightness = pkgs.writeShellScript "brightness" '' + TAG="screen-brightness" + + case "$1" in + up) brightnessctl set +5% > /dev/null ;; + down) brightnessctl set 5%- > /dev/null ;; + esac + + current=$(brightnessctl -m | cut -d, -f4 | tr -d '%') + + dunstify -a "Brightness" -u low \ + -h string:x-canonical-private-synchronous:$TAG \ + -h int:value:"$current" \ + "Brightness: $current%" + ''; + screenshot = pkgs.writeShellScript "screenshot" '' + case $1 in + full) + ${pkgs.grim}/bin/grim - | wl-copy + ;; + selection) + GEOM=$(${pkgs.slurp}/bin/slurp) || exit + ${pkgs.grim}/bin/grim -g "$GEOM" - | wl-copy + ;; + window) + ${pkgs.grim}/bin/grim -g "$(mmsg -x | awk ' + / x / {x=$3} + / y / {y=$3} + / width / {w=$3} + / height / {h=$3} + END {print x "," y " " w "x" h} + ')" - | wl-copy + ;; + esac + ''; + dostuff = pkgs.writeShellScript "dostuff" '' + exec 2>/dev/null + : "''${CONFIG_FILE:=$HOME/.config/beestuff/conf}" + : "''${WALL_DIR:=$HOME/Pictures/Wallpapers}" + : "''${THUMB_DIR:=$HOME/.cache/beestuff/thumbnails}" + + init_settings() { + [ -f "$CONFIG_FILE" ] && return 0 + + local config_dir + config_dir=$(dirname -- "$CONFIG_FILE") + + mkdir -p -- "$config_dir" + + cat > "$CONFIG_FILE" </dev/null 2>&1; then + magick "$img" \ + -resize 400x300^ \ + -gravity center \ + -extent 400x300 \ + "$thumb" + + elif command -v convert >/dev/null 2>&1; then + convert "$img" \ + -resize 400x300^ \ + -gravity center \ + -extent 400x300 \ + "$thumb" + + elif command -v ffmpeg >/dev/null 2>&1; then + ffmpeg -hide_banner -loglevel error \ + -i "$img" \ + -vf "scale=400:300:force_original_aspect_ratio=cover,crop=400:300" \ + -frames:v 1 \ + "$thumb" + + else + printf '%s' "$img" + return 0 + fi + + [ -f "$thumb" ] || thumb="$img" + + printf '%s' "$thumb" + } + + list_walls() { + local wall + + for wall in "$WALL_DIR"/*.{jpg,jpeg,png,webp}; do + [ -f "$wall" ] || continue + + printf '%s\0icon\x1f%s\n' \ + "''${wall##*/}" \ + "$(ensure_thumb "$wall")" + done + } + + apply_all() { + local theme=$(get_val "theme") + local wall=$(get_val "wallpaper") + local color_type=$(get_val "color_type") + local mode_flag="dark" + + mode_flag="dark" + [ "$theme" = "light" ] && mode_flag="light" + + matugen image "$wall" \ + -r lanczos3 \ + --continue-on-error \ + -m "$mode_flag" \ + -t "$color_type" \ + --source-color-index 0 + + + "${update_gtk_theme}" "$mode_flag" + + if [ -z "$WAYLAND_DISPLAY" ] && [ -n "$DISPLAY" ]; then + xrdb -merge "$HOME/.Xresources" + fi + + local seq_file="$HOME/.local/share/bee/sequences" + [ -f "$seq_file" ] && sh "$seq_file" + } + + cmd_wall() { + local selected full_path + + selected=$( + list_walls | + rofi -dmenu -i -p "Wallpaper" \ + -show-icons \ + -theme-str 'element { orientation: vertical; padding: 15px; }' \ + -theme-str 'element-icon { size: 10em; horizontal-align: 0.5; }' \ + -theme-str 'listview { columns: 4; lines: 2; }' \ + -theme-str 'window { width: 50%; }' + ) + + [ -n "$selected" ] || return 0 + + full_path="$WALL_DIR/$selected" + set_val "wallpaper" "$full_path" + + if [ -n "$WAYLAND_DISPLAY" ]; then + if command -v awww >/dev/null 2>&1; then + awww img "$full_path" \ + --transition-type grow \ + --transition-fps 120 \ + --transition-step 60 \ + --transition-duration 1.5 + else + pkill swaybg + swaybg -i "$full_path" -m fill & + fi + else + feh --no-fehbg --bg-fill "$full_path" + fi + + apply_all + } + + clr_type() { + local schemes selection + + schemes=( + "scheme-tonal-spot" + "scheme-content" + "scheme-expressive" + "scheme-fidelity" + "scheme-fruit-salad" + "scheme-monochrome" + "scheme-neutral" + "scheme-rainbow" + "scheme-vibrant" + ) + + selection=$( + printf '%s\n' "''${schemes[@]}" | + rofi -dmenu -i -p "Colorscheme Types" + ) + + [ -n "$selection" ] || return 0 + + set_val "color_type" "$selection" + apply_all + } + + cmd_layout() { + local layouts selection + + layouts=( + tile + monocle + scroller + fair + dwindle + grid + deck + center_tile + right_tile + vertical_scroller + vertical_tile + vertical_grid + vertical_fair + vertical_deck + ) + + selection=$( + printf '%s\n' "''${layouts[@]}" | + rofi -dmenu -i -p "Layout" + ) + + [ -n "$selection" ] || return 0 + + set_layout "$selection" + } + + cmd_settings() { + local theme nl ct choice + + theme=$(get_val "theme") + nl=$(get_val "nightlight") + ct=$(get_val "color_type") + + choice=$( + printf '%s\n' \ + "Mode: $theme" \ + "Night Light: $nl" \ + "Wallpaper" \ + "Colorscheme Type: $ct" \ + "Layouts" | + rofi -dmenu -p "Settings" -i + ) + + case "$choice" in + "Mode: "*) + if [ "$theme" = "dark" ]; then + set_val "theme" "light" + else + set_val "theme" "dark" + fi + apply_all + ;; + + "Night Light: "*) + if [ "$nl" = "on" ]; then + set_val "nightlight" "off" + pkill wlsunset + else + set_val "nightlight" "on" + exec wlsunset -T 4500 + fi + ;; + + "Wallpaper") + cmd_wall + ;; + + "Colorscheme Type:"*) + clr_type + ;; + + "Layouts") + cmd_layout + ;; + esac + } + + init_settings + + case "$1" in + wall) cmd_wall ;; + settings) cmd_settings ;; + layout) cmd_layout ;; + apply) apply_all ;; + *) + printf '%s\n' "Usage: bee {wall|settings|layout|apply}" + ;; + esac + ''; + } diff --git a/common/overlays/ioskeleyInput.nix b/common/overlays/ioskeleyInput.nix index 3915f14..619a086 100644 --- a/common/overlays/ioskeleyInput.nix +++ b/common/overlays/ioskeleyInput.nix @@ -1,187 +1,187 @@ final: prev: { ioskeley-input = prev.iosevka.override { - # set = "Input"; - privateBuildPlan = '' - [buildPlans.IosevkaInput] - family = "IosevkaInput" - spacing = "fixed" - serifs = "sans" - exportGlyphNames = false - noLigation = true + set = "Input"; + privateBuildPlan = '' + [buildPlans.IosevkaInput] + family = "IosevkaInput" + spacing = "fixed" + serifs = "sans" + exportGlyphNames = false + noLigation = true - [buildPlans.IosevkaInput.variants.design] - one = "base" - two = "curly-neck-serifless" - three = "flat-top-serifless" - four = "closed-serifless" - five = "upright-flat-serifless" - six = "closed-contour" - seven = "straight-serifless" - eight = "two-circles" - nine = "closed-contour" - zero = "oval-long-dotted" - capital-a = "straight-serifless" - capital-b = "standard-serifless" - capital-c = "bilateral-inward-serifed" - capital-d = "standard-serifless" - capital-e = "serifless" - capital-f = "serifless" - capital-g = "toothless-corner-serifless-hooked" - capital-h = "serifless" - capital-i = "serifed" - capital-j = "serifless" - capital-k = "symmetric-connected-serifless" - capital-l = "serifless" - capital-m = "hanging-serifless" - capital-n = "standard-serifless" - capital-p = "closed-serifless" - capital-q = "crossing-curly-tailed" - capital-r = "straight-serifless" - capital-s = "bilateral-inward-serifed" - capital-t = "serifless" - capital-u = "toothless-rounded-serifless" - capital-v = "curly-serifless" - capital-w = "straight-vertical-sides-serifless" - capital-x = "curly-serifless" - capital-y = "curly-serifless" - capital-z = "straight-serifed" - a = "double-storey-toothless-corner" - b = "toothless-corner-serifless" - c = "serifless" - d = "toothless-corner-serifless" - e = "flat-crossbar" - f = "flat-hook-serifless-crossbar-at-x-height" - g = "double-storey" - h = "straight-serifless" - i = "zshaped" - j = "flat-hook-serifed" - k = "straight-serifless" - l = "zshaped" - m = "earless-rounded-double-arch-short-leg-serifless" - n = "earless-corner-straight-serifless" - p = "earless-corner-serifless" - q = "earless-corner-straight-serifless" - r = "earless-corner-serifless" - s = "serifless" - t = "flat-hook" - u = "toothless-corner-serifless" - v = "straight-serifless" - w = "rounded-vertical-sides-serifless" - x = "straight-serifless" - y = "straight-turn-serifless" - z = "straight-serifless" - capital-eszet = "corner-serifless" - long-s = "bent-hook-serifless" - eszet = "sulzbacher-serifless" - lower-eth = "straight-bar" - capital-thorn = "serifless" - lower-thorn = "serifless" - lower-alpha = "crossing" - lower-beta = "standard" - capital-gamma = "serifless" - lower-gamma = "casual" - capital-delta = "straight" - lower-delta = "flat-top" - lower-eta = "earless-corner-serifless" - lower-theta = "capsule" - lower-iota = "serifed-semi-tailed" - lower-kappa = "straight-serifless" - capital-lambda = "straight-serifless" - lower-lambda = "straight" - lower-mu = "toothless-corner-serifless" - lower-nu = "casual" - lower-xi = "flat-top" - lower-pi = "tailless" - lower-tau = "semi-tailed" - lower-upsilon = "casual-serifless" - lower-phi = "cursive" - lower-chi = "semi-chancery-straight-serifless" - lower-psi = "flat-top-serifless" - partial-derivative = "straight-bar" - cyrl-a = "double-storey-hook-inward-serifed-tailed" - cyrl-ve = "standard-serifless" - cyrl-capital-zhe = "symmetric-connected" - cyrl-zhe = "symmetric-connected" - cyrl-capital-ze = "bilateral-inward-serifed" - cyrl-ze = "serifless" - cyrl-capital-ka = "symmetric-connected-bottom-right-serifed" - cyrl-ka = "symmetric-connected-serifless" - cyrl-el = "straight" - cyrl-em = "flat-bottom-serifless" - cyrl-capital-en = "serifed" - cyrl-en = "serifless" - cyrl-capital-er = "closed-serifed" - cyrl-er = "eared-serifed" - cyrl-capital-u = "cursive-serifless" - cyrl-u = "cursive-serifless" - cyrl-ef = "serifless" - cyrl-che = "standard" - cyrl-yeri = "corner" - cyrl-yery = "corner" - cyrl-capital-e = "bilateral-inward-serifed" - cyrl-e = "serifless" - cyrl-capital-ya = "standing-serifless" - cyrl-ya = "standing-serifless" - tittle = "round" - diacritic-dot = "round" - punctuation-dot = "round" - braille-dot = "square" - tilde = "low" - asterisk = "hex-low" - underscore = "above-baseline" - caret = "medium" - ascii-grave = "straight" - ascii-single-quote = "straight" - paren = "normal" - brace = "curly-flat-boundary" - guillemet = "straight" - number-sign = "upright" - ampersand = "closed" - at = "fourfold" - dollar = "through" - cent = "through" - percent = "rings-continuous-slash" - bar = "force-upright" - question = "corner" - pilcrow = "high" - micro-sign = "tailed-serifless" - decorative-angle-brackets = "middle" + [buildPlans.IosevkaInput.variants.design] + one = "base" + two = "curly-neck-serifless" + three = "flat-top-serifless" + four = "closed-serifless" + five = "upright-flat-serifless" + six = "closed-contour" + seven = "straight-serifless" + eight = "two-circles" + nine = "closed-contour" + zero = "oval-long-dotted" + capital-a = "straight-serifless" + capital-b = "standard-serifless" + capital-c = "bilateral-inward-serifed" + capital-d = "standard-serifless" + capital-e = "serifless" + capital-f = "serifless" + capital-g = "toothless-corner-serifless-hooked" + capital-h = "serifless" + capital-i = "serifed" + capital-j = "serifless" + capital-k = "symmetric-connected-serifless" + capital-l = "serifless" + capital-m = "hanging-serifless" + capital-n = "standard-serifless" + capital-p = "closed-serifless" + capital-q = "crossing-curly-tailed" + capital-r = "straight-serifless" + capital-s = "bilateral-inward-serifed" + capital-t = "serifless" + capital-u = "toothless-rounded-serifless" + capital-v = "curly-serifless" + capital-w = "straight-vertical-sides-serifless" + capital-x = "curly-serifless" + capital-y = "curly-serifless" + capital-z = "straight-serifed" + a = "double-storey-toothless-corner" + b = "toothless-corner-serifless" + c = "serifless" + d = "toothless-corner-serifless" + e = "flat-crossbar" + f = "flat-hook-serifless-crossbar-at-x-height" + g = "double-storey" + h = "straight-serifless" + i = "zshaped" + j = "flat-hook-serifed" + k = "straight-serifless" + l = "zshaped" + m = "earless-rounded-double-arch-short-leg-serifless" + n = "earless-corner-straight-serifless" + p = "earless-corner-serifless" + q = "earless-corner-straight-serifless" + r = "earless-corner-serifless" + s = "serifless" + t = "flat-hook" + u = "toothless-corner-serifless" + v = "straight-serifless" + w = "rounded-vertical-sides-serifless" + x = "straight-serifless" + y = "straight-turn-serifless" + z = "straight-serifless" + capital-eszet = "corner-serifless" + long-s = "bent-hook-serifless" + eszet = "sulzbacher-serifless" + lower-eth = "straight-bar" + capital-thorn = "serifless" + lower-thorn = "serifless" + lower-alpha = "crossing" + lower-beta = "standard" + capital-gamma = "serifless" + lower-gamma = "casual" + capital-delta = "straight" + lower-delta = "flat-top" + lower-eta = "earless-corner-serifless" + lower-theta = "capsule" + lower-iota = "serifed-semi-tailed" + lower-kappa = "straight-serifless" + capital-lambda = "straight-serifless" + lower-lambda = "straight" + lower-mu = "toothless-corner-serifless" + lower-nu = "casual" + lower-xi = "flat-top" + lower-pi = "tailless" + lower-tau = "semi-tailed" + lower-upsilon = "casual-serifless" + lower-phi = "cursive" + lower-chi = "semi-chancery-straight-serifless" + lower-psi = "flat-top-serifless" + partial-derivative = "straight-bar" + cyrl-a = "double-storey-hook-inward-serifed-tailed" + cyrl-ve = "standard-serifless" + cyrl-capital-zhe = "symmetric-connected" + cyrl-zhe = "symmetric-connected" + cyrl-capital-ze = "bilateral-inward-serifed" + cyrl-ze = "serifless" + cyrl-capital-ka = "symmetric-connected-bottom-right-serifed" + cyrl-ka = "symmetric-connected-serifless" + cyrl-el = "straight" + cyrl-em = "flat-bottom-serifless" + cyrl-capital-en = "serifed" + cyrl-en = "serifless" + cyrl-capital-er = "closed-serifed" + cyrl-er = "eared-serifed" + cyrl-capital-u = "cursive-serifless" + cyrl-u = "cursive-serifless" + cyrl-ef = "serifless" + cyrl-che = "standard" + cyrl-yeri = "corner" + cyrl-yery = "corner" + cyrl-capital-e = "bilateral-inward-serifed" + cyrl-e = "serifless" + cyrl-capital-ya = "standing-serifless" + cyrl-ya = "standing-serifless" + tittle = "round" + diacritic-dot = "round" + punctuation-dot = "round" + braille-dot = "square" + tilde = "low" + asterisk = "hex-low" + underscore = "above-baseline" + caret = "medium" + ascii-grave = "straight" + ascii-single-quote = "straight" + paren = "normal" + brace = "curly-flat-boundary" + guillemet = "straight" + number-sign = "upright" + ampersand = "closed" + at = "fourfold" + dollar = "through" + cent = "through" + percent = "rings-continuous-slash" + bar = "force-upright" + question = "corner" + pilcrow = "high" + micro-sign = "tailed-serifless" + decorative-angle-brackets = "middle" - [buildPlans.IosevkaInput.weights.W360] - shape = 360 - menu = 360 - css = 360 + [buildPlans.IosevkaInput.weights.Regular] + shape = 360 + menu = 400 + css = 400 - [buildPlans.IosevkaInput.weights.Heavy] - shape = 900 - menu = 900 - css = 900 + [buildPlans.IosevkaInput.weights.Bold] + shape = 900 + menu = 700 + css = 700 - [buildPlans.IosevkaInput.slopes.Upright] - angle = 0 - shape = "upright" - menu = "upright" - css = "normal" + [buildPlans.IosevkaInput.slopes.Upright] + angle = 0 + shape = "upright" + menu = "upright" + css = "normal" - [buildPlans.IosevkaInput.slopes.Oblique] - angle = 15 - shape = "oblique" - menu = "oblique" - css = "oblique" + [buildPlans.IosevkaInput.slopes.Italic] + angle = 9.4 + shape = "italic" + menu = "italic" + css = "italic" - [buildPlans.IosevkaInput.widths.Normal] - shape = 575 - menu = 5 - css = "normal" + [buildPlans.IosevkaInput.widths.Normal] + shape = 575 + menu = 5 + css = "normal" - [buildPlans.IosevkaInput.metricOverride] - leading = 1100 - parenSize = 950 - cap = 800 - ascender = 800 - xHeight = 600 - dotSize = "blend(weight, [100, 50], [360, 140], [900, 190])" - periodSize = "blend(weight, [100, 55], [360, 160], [900, 215])" - ''; -}; + [buildPlans.IosevkaInput.metricOverride] + leading = 1100 + parenSize = 950 + cap = 800 + ascender = 800 + xHeight = 600 + dotSize = "blend(weight, [100, 50], [360, 140], [900, 190])" + periodSize = "blend(weight, [100, 55], [360, 160], [900, 215])" + ''; + }; } diff --git a/common/programs/btop.nix b/common/programs/btop.nix index 6d30609..a030e3d 100644 --- a/common/programs/btop.nix +++ b/common/programs/btop.nix @@ -3,7 +3,7 @@ programs.btop = { enable = true; settings = { - color_theme = lib.optionalString config.beeMods.matugen.enable "noctalia"; + color_theme = lib.optionalString config.beeMods.matugen.enable "matugen"; theme_background = false; truecolor = true; vim_keys = true; diff --git a/common/programs/dunst.nix b/common/programs/dunst.nix index e24bedc..c5b5eb0 100644 --- a/common/programs/dunst.nix +++ b/common/programs/dunst.nix @@ -11,26 +11,24 @@ let in { services.dunst = { - enable = false; + enable = true; settings = { global = { - font = "monospace 11"; + font = "IosevkaInput 11"; corner_radius = 0; frame_width = 2; markup = "yes"; - browser = "zen --new-tab"; + browser = "librewolf"; - origin = "top-right"; - offset = "(10, 25)"; + origin = "top-center"; + offset = "(0, 4)"; }; urgency_low = { timeout = 3; }; - urgency_normal = { timeout = 5; }; - urgency_critical = { timeout = 0; }; diff --git a/common/programs/fastfetch.nix b/common/programs/fastfetch.nix new file mode 100644 index 0000000..96c942d --- /dev/null +++ b/common/programs/fastfetch.nix @@ -0,0 +1,34 @@ +{ + programs.fastfetch = { + enable = true; + settings = { + logo = { + source = "NixOS_small"; + padding = { + top = 3; + right = 1; + }; + }; + modules = [ + "title" + "separator" + "os" + "shell" + "de" + "wm" + "font" + "terminal" + "cpu" + "gpu" + "memory" + "swap" + "disk" + # "break" + { + type = "colors"; + symbol = "circle"; + } + ]; + }; + }; +} diff --git a/common/programs/firefox.nix b/common/programs/firefox.nix deleted file mode 100644 index 77d1b2e..0000000 --- a/common/programs/firefox.nix +++ /dev/null @@ -1,136 +0,0 @@ -{ - pkgs, - lib, - config, - ... -}: -{ - programs.firefox = { - enable = true; - package = pkgs.librewolf; - - policies = { - # DisableTelemetry = true; - # BlockAboutConfig = false; - # DisableFirefoxAccounts = true; - # DisablePocket = true; - # DisableSetDesktopBackground = true; - # DisableSystemAddonUpdate = true; - # AutofillCreditCardEnabled = false; - # AutofillAddressEnabled = false; - # DisableFirefoxScreenshots = true; - # DisableMasterPasswordCreation = true; - # DontCheckDefaultBrowser = true; - # NoDefaultBookmarks = true; - # OfferToSaveLogins = false; - # UserMessaging = { - # WhatsNew = false; - # ExtensionRecommendations = false; - # FeatureRecommendations = false; - # UrlbarInterventions = false; - # SkipOnboarding = true; - # MoreFromMozilla = false; - # Locked = true; - # }; - # FirefoxHome = { - # Search = false; - # TopSites = false; - # SponsoredTopSites = false; - # Highlights = false; - # Pocket = false; - # Stories = false; - # SponsoredPocket = false; - # SponsoredStories = false; - # Snippets = false; - # Locked = true; - # }; - # FirefoxSuggest = { - # WebSuggestions = false; - # SponsoredSuggestions = false; - # ImproveSuggest = false; - # Locked = true; - # }; - ExtensionSettings = { - # "uBlock0@raymondhill.net" = { - # default_area = "menupanel"; - # installation_mode = "force_installed"; - # install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; - # private_browsing = true; - # }; - "addon@darkreader.org" = { - default_area = "menupanel"; - installation_mode = "force_installed"; - install_url = "https://addons.mozilla.org/firefox/downloads/latest/darkreader/latest.xpi"; - private_browsing = true; - }; - }; - }; - - profiles.default = { - settings = { - "privacy.trackingprotection.enabled" = true; - "privacy.trackingprotection.socialtracking.enabled" = true; - "privacy.globalprivacycontrol.enabled" = true; - "browser.contentblocking.category" = "strict"; - - "toolkit.legacyUserProfileCustomizations.stylesheets" = true; - "svg.context-properties.content.enabled" = true; - - # "beacon.enabled" = false; - - # Performance - "gfx.webrender.all" = true; # Enable WebRender - "layers.acceleration.enabled" = true; - # "browser.cache.disk.enable" = false; # Disable disk cache - # "browser.cache.memory.enable" = true; # Use memory cache - # "browser.cache.memory.capacity" = 1048576; # 1gb memory cache - # "browser.preferences.defaultPerformanceSettings.enabled" = false; - "media.hardware-video-decoding.force-enabled" = true; - "media.hardware-video-decoding.enabled" = true; - "browser.tabs.unloadOnLowMemory" = true; - "browser.low_commit_space_threshold_percent" = 100; - "browser.tabs.min_inactive_duration_before_unload" = 3600000; - "gfx.webrender.all" = true; - "gfx.webrender.compositor" = true; - "gfx.x11-egl.force-enabled" = true; - "layers.acceleration.force-enabled" = true; - "media.ffmpeg.vaapi.enabled" = true; - "toolkit.legacyUserProfileCustomizations.stylesheets" = true; - - # Disable unnecessary features - # "browser.aboutwelcome.enabled" = false; - # "browser.discovery.enabled" = false; - # "browser.onboarding.enabled" = false; - - "browser.tabs.inTitlebar" = 0; - "browser.toolbars.bookmarks.visibility" = "never"; - "widget.use-xdg-desktop-portal.file-picker" = 1; - }; - - # search = { - # force = true; - # default = "ddg"; - # engines = { - # nixos-packages = { - # name = "NixOS Packages"; - # urls = [ { template = "https://search.nixos.org/packages?query={searchTerms}"; } ]; - # iconMapObj."16" = "https://nixos.org/favicon.ico"; - # definedAliases = [ ":n" ]; - # }; - # nixos-wiki = { - # name = "NixOS Wiki"; - # urls = [ { template = "https://wiki.nixos.org/w/index.php?search={searchTerms}"; } ]; - # iconMapObj."16" = "https://wiki.nixos.org/favicon.ico"; - # definedAliases = [ ":nw" ]; - # }; - # amazon.metaData.hidden = true; - # ebay.metaData.hidden = true; - # perplexity.metaData.hidden = true; - # - # google.metaData.alias = ":g"; - # bing.metaData.alias = ":b"; - # }; - # }; - }; - }; -} diff --git a/common/programs/librewolf.nix b/common/programs/librewolf.nix new file mode 100644 index 0000000..146d380 --- /dev/null +++ b/common/programs/librewolf.nix @@ -0,0 +1,101 @@ +{ + pkgs, + lib, + config, + inputs, + ... +}: +{ + programs.librewolf = { + enable = true; + policies = { + ExtensionSettings = { + # "uBlock0@raymondhill.net" = { + # default_area = "menupanel"; + # installation_mode = "force_installed"; + # install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; + # private_browsing = true; + # }; + "addon@darkreader.org" = { + default_area = "menupanel"; + installation_mode = "force_installed"; + install_url = "https://addons.mozilla.org/firefox/downloads/latest/darkreader/latest.xpi"; + private_browsing = true; + }; + }; + }; + + profiles.default = { + settings = { + "privacy.trackingprotection.enabled" = true; + "privacy.trackingprotection.socialtracking.enabled" = true; + "privacy.globalprivacycontrol.enabled" = true; + "browser.contentblocking.category" = "strict"; + + "toolkit.legacyUserProfileCustomizations.stylesheets" = true; + "svg.context-properties.content.enabled" = true; + + # Performance + "layers.acceleration.enabled" = true; + "media.hardware-video-decoding.force-enabled" = true; + "media.hardware-video-decoding.enabled" = true; + "browser.tabs.unloadOnLowMemory" = true; + "browser.low_commit_space_threshold_percent" = 100; + "browser.tabs.min_inactive_duration_before_unload" = 3600000; + "gfx.webrender.all" = true; + "gfx.webrender.compositor" = true; + "gfx.x11-egl.force-enabled" = true; + "layers.acceleration.force-enabled" = true; + "media.ffmpeg.vaapi.enabled" = true; + + "browser.toolbars.bookmarks.visibility" = "never"; + "widget.use-xdg-desktop-portal.file-picker" = 1; + }; + userChrome = '' + @import "firefox-gnome-theme/userChrome.css"; + ''; + userContent = '' + @import "firefox-gnome-theme/userContent.css"; + ''; + + search = { + force = true; + engines = { + nix-packages = { + name = "Nix Packages"; + urls = [ + { + template = "https://search.nixos.org/packages"; + params = [ + { + name = "type"; + value = "packages"; + } + { + name = "query"; + value = "{searchTerms}"; + } + ]; + } + ]; + + icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = [ ":np" ]; + }; + nixos-wiki = { + name = "NixOS Wiki"; + urls = [ { template = "https://wiki.nixos.org/w/index.php?search={searchTerms}"; } ]; + iconMapObj."16" = "https://wiki.nixos.org/favicon.ico"; + definedAliases = [ ":nw" ]; + }; + amazon.metaData.hidden = true; + ebay.metaData.hidden = true; + perplexity.metaData.hidden = true; + + google.metaData.alias = ":g"; + bing.metaData.alias = ":b"; + }; + }; + }; + }; +} diff --git a/common/programs/rofi.nix b/common/programs/rofi.nix new file mode 100644 index 0000000..d0abd1a --- /dev/null +++ b/common/programs/rofi.nix @@ -0,0 +1,144 @@ +{ + config, + pkgs, + lib, + ... +}: +{ + programs.rofi = { + enable = true; + font = "IosevkaInput"; + # plugins = with pkgs; [ rofi-emoji ]; + theme = "~/.config/rofi/themes/config.rasi"; + extraConfig = { + show-icons = true; + # drun-display-format = "{name}"; + }; + }; + + home.packages = [ + pkgs.rofi-power-menu + ]; + + xdg.configFile = { + "rofi/shared/colors.rasi" = { + enable = !config.beeMods.matugen.enable; + text = + # rasi + '' + * { + bg: #212121; + bg-alt: #2d2d2d; + fg: #ffffffdd; + fg-dim: #616161; + accent: #80cbc4; + selected-bg: #424242; + selected-fg: #80cbc4; + urgent: #ef9a9a; + outline: #424242; + } + ''; + }; + + "rofi/themes/config.rasi" = { + enable = true; + text = + # rasi + '' + @import "shared/colors.rasi" + * { + background-color: transparent; + text-color: @fg; + border: 0px; + margin: 0px; + padding: 0px; + spacing: 0px; + } + + window { + background-color: @bg; + border-radius: 0px; + border: 2px; + border-color: @outline; + width: 680px; + padding: 10px; + } + + mainbox { + background-color: transparent; + spacing: 8px; + } + + inputbar { + background-color: @bg-alt; + border-radius: 0px; + padding: 10px 12px; + spacing: 8px; + children: [entry]; + } + + entry { + background-color: transparent; + text-color: @fg; + placeholder-color: @fg-dim; + placeholder: "Search..."; + cursor: text; + font: "IosevkaInput 13"; + } + + listview { + background-color: transparent; + columns: 1; + lines: 5; + spacing: 2px; + scrollbar: false; + } + + element { + background-color: transparent; + border-radius: 0px; + padding: 8px 12px; + spacing: 12px; + children: [element-icon, element-text]; + } + + element normal normal { + background-color: transparent; + text-color: @fg; + } + + element alternate normal { + background-color: transparent; + text-color: @fg; + } + + element selected normal { + background-color: @selected-bg; + text-color: @selected-fg; + } + + element normal urgent { + text-color: @urgent; + } + + element selected urgent { + background-color: @selected-bg; + text-color: @urgent; + } + + element-icon { + background-color: transparent; + size: 22px; + } + + element-text { + background-color: transparent; + text-color: inherit; + vertical-align: 0.5; + font: "IosevkaInput 13"; + } + ''; + }; + + }; +} diff --git a/common/programs/vesktop.nix b/common/programs/vesktop.nix new file mode 100644 index 0000000..5cb6a6b --- /dev/null +++ b/common/programs/vesktop.nix @@ -0,0 +1,29 @@ +{ lib, config, ... }: +{ + programs.vesktop = { + enable = false; + vencord = { + settings = { + enabledThemes = lib.optionals config.beeMods.matugen.enable [ "system24.css" ]; + autoUpdate = false; + autoUpdateNotification = false; + notifyAboutUpdates = false; + useQuickCss = false; + disableMinSize = true; + plugins = { + FakeNitro.enabled = false; + AnonymiseFileNames.enabled = true; + PlainFolderIcon.enabled = true; + NoTypingAnimation.enabled = true; + NoF1.enabled = true; + petpet.enabled = false; + QuickReply.enabled = true; + SilentTyping.enabled = true; + StreamerModeOnStream.enabled = false; + NoReplyMention.enabled = false; + OnePingPerDM.enabled = false; + }; + }; + }; + }; +} diff --git a/common/programs/zenBrowser.nix b/common/programs/zenBrowser.nix deleted file mode 100644 index 99f7723..0000000 --- a/common/programs/zenBrowser.nix +++ /dev/null @@ -1,157 +0,0 @@ -{ -inputs, -pkgs, -lib, -... -}: -let - extension = shortId: guid: { - name = guid; - value = { - install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi"; - installation_mode = "normal_installed"; - private_browsing = true; - default_area = "menupanel"; # menupanel = unpin, navbar = pin - }; - }; - - prefs = { - "browser.aboutConfig.showWarning" = false; - "browser.sessionstore.resume_from_crash" = false; - "browser.sessionstore.restore_on_demand" = false; - "browser.sessionstore.restore_tabs_lazily" = false; - "browser.sessionstore.restore_windows_to_virtual_desktop" = false; - "browser.sessionstore.max_resumed_crashes" = 0; - "gfx.webrender.all" = true; - "gfx.webrender.compositor" = true; - "gfx.x11-egl.force-enabled" = true; - "layers.acceleration.force-enabled" = true; - "media.ffmpeg.vaapi.enabled" = true; - "toolkit.legacyUserProfileCustomizations.stylesheets" = true; - "zen.welcome-screen.seen" = true; - }; - - extensions = [ - (extension "ublock-origin" "uBlock0@raymondhill.net") - (extension "darkreader" "addon@darkreader.org") - ]; -in - { - config = lib.mkIf !config.programs.firefox.enable { - home.packages = [ - (pkgs.wrapFirefox - inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.zen-browser-unwrapped - { - extraPrefs = lib.concatLines ( - lib.mapAttrsToList ( - name: value: "lockPref(${lib.strings.toJSON name}, ${lib.strings.toJSON value});" - ) prefs - ); - - extraPolicies = { - DisableTelemetry = true; - AutofillAddressEnabled = true; - AutofillCreditCardEnabled = false; - DisableAppUpdate = true; - DisableFeedbackCommands = true; - DisableFirefoxStudies = true; - DisablePocket = true; - DontCheckDefaultBrowser = true; - NoDefaultBookmarks = true; - DisableFirefoxScreenshots = true; - OfferToSaveLogins = false; - EnableTrackingProtection = { - Value = true; - Locked = true; - Cryptomining = true; - Fingerprinting = true; - }; - DNSOverHTTPS = { - Enabled = true; - ProviderURL = "https://dns.quad9.net/dns-query"; - Locked = true; - Fallback = true; - }; - - ExtensionSettings = builtins.listToAttrs extensions; - - SearchEngines = { - Default = "DuckDuckGo"; - # Default = "Omnisearch"; - PreventInstalls = true; - Remove = [ - "Google" - "Bing" - ]; - Add = [ - # { - # Name = "Omnisearch"; - # URLTemplate = "http://localhost:8087/search?q={searchTerms}"; - # IconURL = "http://localhost:8087/static/favicon.ico"; - # Alias = ":o"; - # } - { - Name = "nixpkgs packages"; - URLTemplate = "https://search.nixos.org/packages?query={searchTerms}"; - IconURL = "https://wiki.nixos.org/favicon.ico"; - Alias = ":np"; - } - { - Name = "NixOS options"; - URLTemplate = "https://search.nixos.org/options?query={searchTerms}"; - IconURL = "https://wiki.nixos.org/favicon.ico"; - Alias = ":no"; - } - { - Name = "NixOS Wiki"; - URLTemplate = "https://wiki.nixos.org/w/index.php?search={searchTerms}"; - IconURL = "https://wiki.nixos.org/favicon.ico"; - Alias = ":nw"; - } - { - Name = "noogle"; - URLTemplate = "https://noogle.dev/q?term={searchTerms}"; - IconURL = "https://noogle.dev/favicon.ico"; - Alias = ":ng"; - } - ]; - }; - }; - } - ) - ]; - - xdg.configFile = { - "userContent.css" = { - enable = false; - text = - # css - '' - img, canvas, video, .avatar, - [class*="avatar"], - [class*="ProfileAvatar"], - [style*="border-radius"] { - border-radius: 0 !important; - clip-path: none !important; - mask-image: none !important; - -webkit-mask-image: none !important; - } - - /* 2. Reset standard rounding on all elements EXCEPT SVGs */ - :not(svg):not(circle):not(ellipse):not(path) { - border-radius: 0 !important; - } - - /* 3. Handle variables that usually affect containers/images */ - :root { - --border-radius: 0px !important; - --radius: 0px !important; - --rounded-corner: 0px !important; - --avatar-radius: 0px !important; - --pfp-radius: 0px !important; - } - ''; - }; - }; - }; -} diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..9a7fcce --- /dev/null +++ b/flake.lock @@ -0,0 +1,291 @@ +{ + "nodes": { + "beevim": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "plugins-base46": "plugins-base46", + "plugins-lze": "plugins-lze", + "plugins-lzextras": "plugins-lzextras", + "plugins-neogit": "plugins-neogit", + "wrappers": "wrappers" + }, + "locked": { + "lastModified": 1780596422, + "narHash": "sha256-j7YUB/6506dHNElU4vegZ7He9QpzzBIW5TtUUbCIXZo=", + "ref": "refs/heads/main", + "rev": "fe1c8a1c340903de0d44a1f3bc590b426f1d3810", + "revCount": 29, + "type": "git", + "url": "https://codeberg.org/beeb5k/beeVim" + }, + "original": { + "type": "git", + "url": "https://codeberg.org/beeb5k/beeVim" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1778716662, + "narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib_2" + }, + "locked": { + "lastModified": 1749398372, + "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1780593650, + "narHash": "sha256-CHo7k65YTL3HY+WQVedDTupji+LMgNlKCdrtRHZFAK4=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "447fd9ff62501dae7206dfe180ee89f8de27b7d5", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "mango": { + "inputs": { + "flake-parts": "flake-parts_2", + "nixpkgs": [ + "nixpkgs" + ], + "scenefx": "scenefx" + }, + "locked": { + "lastModified": 1780541279, + "narHash": "sha256-UdwXcUeOgfct2GBadVCsonMIay3Gndylr0pMmxz7z/k=", + "owner": "mangowm", + "repo": "mango", + "rev": "8a92184667ae945955c2139847e5e1994a5f9671", + "type": "github" + }, + "original": { + "owner": "mangowm", + "repo": "mango", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1780243769, + "narHash": "sha256-x5UQuRsH3MqI0U9afaXSNqzTPSeZlRLvFAav2Ux1pNw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "331800de5053fcebacf6813adb5db9c9dca22a0c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1777168982, + "narHash": "sha256-GOkGPcboWE9BmGCRMLX3worL4EMnsnG8MyKmXNeYuhQ=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "f5901329dade4a6ea039af1433fb087bd9c1fe14", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "nixpkgs-lib_2": { + "locked": { + "lastModified": 1748740939, + "narHash": "sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "656a64127e9d791a334452c6b6606d17539476e2", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "plugins-base46": { + "flake": false, + "locked": { + "lastModified": 1777801026, + "narHash": "sha256-dbVuQwFCOIBK9y7fklulxHHt57KbS/8KaiTvfe5rmco=", + "owner": "AvengeMedia", + "repo": "base46", + "rev": "eb54ce645266cac86bb6a4241428fefe61e90a8a", + "type": "github" + }, + "original": { + "owner": "AvengeMedia", + "repo": "base46", + "type": "github" + } + }, + "plugins-lze": { + "flake": false, + "locked": { + "lastModified": 1779886623, + "narHash": "sha256-KcOvY87Js1q0YrB2g7Y+ZvXVkzAlQko582qoQemzN2M=", + "owner": "BirdeeHub", + "repo": "lze", + "rev": "37daa89a10a60bd153fa80e9041d6137f077d6fb", + "type": "github" + }, + "original": { + "owner": "BirdeeHub", + "repo": "lze", + "type": "github" + } + }, + "plugins-lzextras": { + "flake": false, + "locked": { + "lastModified": 1779886599, + "narHash": "sha256-RFAkctVRrbIK0fcalSvKnJMzlZoeUlVs4gHoxaDZksE=", + "owner": "BirdeeHub", + "repo": "lzextras", + "rev": "dd1d43c0e2337a1a9643a1b78fbc6736d90c14c1", + "type": "github" + }, + "original": { + "owner": "BirdeeHub", + "repo": "lzextras", + "type": "github" + } + }, + "plugins-neogit": { + "flake": false, + "locked": { + "lastModified": 1778668243, + "narHash": "sha256-ZKK4JbeuMGYvUjG1B6vLZTeSMeQTXQGFQAlIMqqN660=", + "owner": "NeogitOrg", + "repo": "neogit", + "rev": "99326a1310fb2d616b455d2fd16d01bf00682f06", + "type": "github" + }, + "original": { + "owner": "NeogitOrg", + "repo": "neogit", + "type": "github" + } + }, + "root": { + "inputs": { + "beevim": "beevim", + "flake-parts": "flake-parts", + "home-manager": "home-manager", + "mango": "mango", + "nixpkgs": "nixpkgs", + "sops-nix": "sops-nix" + } + }, + "scenefx": { + "inputs": { + "nixpkgs": [ + "mango", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1750785057, + "narHash": "sha256-tGX6j4W91rcb+glXJo43sjPI9zQvPotonknG1BdihR4=", + "owner": "wlrfx", + "repo": "scenefx", + "rev": "3a6cfb12e4ba97b43326357d14f7b3e40897adfc", + "type": "github" + }, + "original": { + "owner": "wlrfx", + "repo": "scenefx", + "type": "github" + } + }, + "sops-nix": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1780547341, + "narHash": "sha256-Gq8KNx5A7hBB3uGJaj6eQfLDIz5YdLu92gqBcvHvoUo=", + "owner": "Mic92", + "repo": "sops-nix", + "rev": "9ed65852b6257fbeae4355bc24ecfea307ca759a", + "type": "github" + }, + "original": { + "owner": "Mic92", + "repo": "sops-nix", + "type": "github" + } + }, + "wrappers": { + "inputs": { + "nixpkgs": [ + "beevim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1780449413, + "narHash": "sha256-ZsjnJ85CrTxI7+VaOWzkOB1u/+d4CM9AxBazXfsYXuA=", + "owner": "BirdeeHub", + "repo": "nix-wrapper-modules", + "rev": "e72bd9cf5fbc57e620912b773bed42b4e278bdc0", + "type": "github" + }, + "original": { + "owner": "BirdeeHub", + "repo": "nix-wrapper-modules", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix index 6d3dc85..b54625d 100644 --- a/flake.nix +++ b/flake.nix @@ -1,7 +1,9 @@ { nixConfig = { extra-substituters = [ "https://nix-community.cachix.org" ]; - extra-trusted-public-keys = [ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" ]; + extra-trusted-public-keys = [ + "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" + ]; }; inputs = { @@ -12,21 +14,16 @@ inputs.nixpkgs.follows = "nixpkgs"; }; mango = { - url = "github:mangowm/mango/wl-only"; + url = "github:mangowm/mango"; inputs.nixpkgs.follows = "nixpkgs"; }; sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; - mydwm = { - url = "git+https://codeberg.org/beeb5k/mydwm"; - # url = "git+file:/home/bee/mydwm"; - inputs.nixpkgs.follows = "nixpkgs"; - }; beevim = { url = "git+https://codeberg.org/beeb5k/beeVim"; - # url = "git+file:/home/bee/.config/beevim"; + # url = "git+file:/home/beeb5k/.config/beeVim"; inputs.nixpkgs.follows = "nixpkgs"; }; }; @@ -56,3 +53,5 @@ systemState = "26.05"; }) ]; + }; +} diff --git a/hosts/common.nix b/hosts/common.nix index 45bdfb6..5d3e05c 100644 --- a/hosts/common.nix +++ b/hosts/common.nix @@ -97,22 +97,8 @@ nixpkgs = { config = { allowUnfree = true; - doCheckByDefault = false; # doInstallCheckByDefault = false; }; - overlays = [ - (final: prev: { - stdenv = prev.stdenv // { - mkDerivation = args: - prev.stdenv.mkDerivation - (args - // { - doCheck = false; - # doInstallCheck = false; - }); - }; - }) - ]; }; # nix.registry.${user}.flake = inputs.self; # nix.registry.nixpkgs.flake = inputs.nixpkgs; @@ -149,23 +135,24 @@ security.rtkit.enable = true; security.polkit.enable = true; - fonts.fontconfig = { - enable = true; - antialias = true; - hinting = { - enable = true; - style = "slight"; - }; - subpixel = { - rgba = "rgb"; - lcdfilter = "default"; - }; - }; + # fonts.fontconfig = { + # enable = true; + # antialias = true; + # hinting = { + # enable = true; + # style = "slight"; + # }; + # subpixel = { + # rgba = "rgb"; + # lcdfilter = "default"; + # }; + # }; fonts.fontDir.enable = true; fonts.packages = with pkgs; [ ioskeley-input - nerd-fonts.symbols-only + ioskeley-mono.normal-NF + # nerd-fonts.symbols-only # nerd-fonts.jetbrains-mono # ioskeley-mono # maple-mono.NF @@ -173,11 +160,57 @@ fonts.fontconfig.defaultFonts.monospace = [ "IosevkaInput" - "JetBrainsMono Nerd Font" + # "JetBrainsMono Nerd Font" "Symbols Nerd Font" ]; - programs.zsh.enable = true; + programs.bash = { + enable = true; + interactiveShellInit = '' + # --- History Configuration --- + # HISTSIZE: Number of lines to keep in memory + # HISTFILESIZE: Number of lines to keep in the file + export HISTSIZE=5000 + export HISTFILESIZE=5000 + export HISTFILE="$HOME/.bash_history" + + # Append to history file rather than overwriting + shopt -s histappend + + # Ignore commands starting with space + export HISTCONTROL=ignorespace:erasedups + + # --- Completion Configuration --- + # Bash completion is usually handled by the 'bash-completion' package + # Ensure it is enabled in your nixos config: programs.bash.completion.enable = true; + bind "set completion-ignore-case on" + bind "set show-all-if-ambiguous on" + + # Correct way to enable menu-complete: + # bind '"\t": menu-complete' + bind '"\e[Z": menu-complete-backward' + + bind "set show-all-if-ambiguous on" + ''; + promptInit = '' + if [ "$TERM" != "dumb" ] || [ -n "$INSIDE_EMACS" ]; then + # Removed the '1;' prefix to disable bold + PROMPT_COLOR="31m" + ((UID)) && PROMPT_COLOR="32m" + + # Removed \n (newline) and [ ] brackets + if [ -n "$INSIDE_EMACS" ]; then + PS1="\[\033[$PROMPT_COLOR\]\u@\h:\w\\$\[\033[0m\] " + else + PS1="\[\033[$PROMPT_COLOR\]\[\e]0;\u@\h: \w\a\]\u@\h:\w\\$\[\033[0m\] " + fi + + if test "$TERM" = "xterm"; then + PS1="\[\033]2;\h:\u:\w\007\]$PS1" + fi + fi + ''; + }; programs.nano.enable = false; programs.gnupg.agent = { enable = true; @@ -187,7 +220,8 @@ sops = { defaultSopsFile = ../secrets/secrets.yaml; - age.keyFile = "/home/bee/.config/sops/age/keys.txt"; + defaultSopsFormat = "yaml"; + age.keyFile = "/home/${user}/.config/sops/age/keys.txt"; secrets.gpg_private_key = { owner = user; mode = "0400"; @@ -197,8 +231,6 @@ systemd.services.import-gpg-key = { description = "Import GPG key from sops secret"; wantedBy = [ "multi-user.target" ]; - after = [ "sops-nix.service" ]; - wants = [ "sops-nix.service" ]; serviceConfig = { Type = "oneshot"; RemainAfterExit = true; diff --git a/hosts/niuwux/default.nix b/hosts/niuwux/default.nix index 44674dd..265769e 100644 --- a/hosts/niuwux/default.nix +++ b/hosts/niuwux/default.nix @@ -31,8 +31,6 @@ beeMods = { windowManagers = { mango.enable = true; - hyprland.enable = false; - dwm.enable = false; }; }; @@ -80,7 +78,7 @@ users.users.${user} = { isNormalUser = true; - shell = pkgs.fish; + shell = pkgs.bash; extraGroups = [ "networkmanager" "wheel" @@ -88,7 +86,9 @@ ]; }; - environment.sessionVariables = { }; + environment.sessionVariables = { + EDITOR = "nvim"; + }; networking.hostName = hostname; networking.firewall.allowedTCPPorts = [ ]; @@ -101,14 +101,13 @@ pciutils direnv # mangohud - neovim ]; services.xserver.videoDrivers = [ "nvidia" ]; hardware = { graphics = { enable = true; - enable32Bit = config.programs.steam.enable; + enable32Bit = false; extraPackages = with pkgs; [ libvdpau-va-gl nvidia-vaapi-driver @@ -118,7 +117,7 @@ nvidia = { modesetting.enable = true; powerManagement.enable = true; - powerManagement.finegrained = true; + powerManagement.finegrained = false; open = true; nvidiaSettings = false; diff --git a/hosts/niuwux/hardware-configuration.nix b/hosts/niuwux/hardware-configuration.nix index 96c39c3..4c20a84 100644 --- a/hosts/niuwux/hardware-configuration.nix +++ b/hosts/niuwux/hardware-configuration.nix @@ -1,90 +1,49 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ - config, - lib, - pkgs, - modulesPath, - ... -}: +{ config, lib, pkgs, modulesPath, ... }: { - imports = [ - (modulesPath + "/installer/scan/not-detected.nix") - ]; + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ - "nvme" - "xhci_pci" - "usb_storage" - "usbhid" - "sd_mod" - ]; + boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usbhid" "usb_storage" "sd_mod" ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-amd" ]; boot.extraModulePackages = [ ]; - fileSystems."/" = { - device = "/dev/disk/by-uuid/85c4da5f-b234-498f-bf47-f2d3b26bf0cc"; - fsType = "btrfs"; - options = [ - "subvol=@" - "compress=zstd" - "noatime" - "discard=async" - "space_cache=v2" - ]; - }; - - fileSystems."/home" = { - device = "/dev/disk/by-uuid/85c4da5f-b234-498f-bf47-f2d3b26bf0cc"; - fsType = "btrfs"; - options = [ - "subvol=@home" - "compress=zstd" - "noatime" - "discard=async" - "space_cache=v2" - ]; - }; - - fileSystems."/nix" = { - device = "/dev/disk/by-uuid/85c4da5f-b234-498f-bf47-f2d3b26bf0cc"; - fsType = "btrfs"; - options = [ - "subvol=@nix" - "compress=zstd" - "noatime" - "discard=async" - "space_cache=v2" - ]; - }; - - fileSystems."/var/log" = { - device = "/dev/disk/by-uuid/85c4da5f-b234-498f-bf47-f2d3b26bf0cc"; - fsType = "btrfs"; - options = [ - "subvol=@log" - "compress=zstd" - "noatime" - "discard=async" - "space_cache=v2" - ]; - }; - - fileSystems."/boot" = { - device = "/dev/disk/by-uuid/DD2D-BC85"; - fsType = "vfat"; - options = [ - "fmask=0022" - "dmask=0022" - ]; - }; - - swapDevices = [ - { device = "/dev/disk/by-uuid/247afe44-bbc1-4931-bf26-29a540e9d7df"; } - ]; + fileSystems."/" = + { device = "/dev/disk/by-uuid/933658d7-eaf2-4e75-a23d-c80d8a1cf8c6"; + fsType = "btrfs"; + options = [ "subvol=@" "noatime" "space_cache=v2" "nodiscard" "ssd" "compress=zstd:3" ]; + }; + + fileSystems."/home" = + { device = "/dev/disk/by-uuid/933658d7-eaf2-4e75-a23d-c80d8a1cf8c6"; + fsType = "btrfs"; + options = [ "subvol=@home" "noatime" "space_cache=v2" "nodiscard" "ssd" "compress=zstd:3" ]; + }; + + fileSystems."/nix" = + { device = "/dev/disk/by-uuid/933658d7-eaf2-4e75-a23d-c80d8a1cf8c6"; + fsType = "btrfs"; + options = [ "subvol=@nix" "noatime" "space_cache=v2" "nodiscard" "ssd" "compress=zstd:3" ]; + }; + + fileSystems."/var" = + { device = "/dev/disk/by-uuid/933658d7-eaf2-4e75-a23d-c80d8a1cf8c6"; + fsType = "btrfs"; + options = [ "subvol=@var" "noatime" "space_cache=v2" "nodiscard" "ssd" "compress=zstd:3" ]; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/59FA-D495"; + fsType = "vfat"; + options = [ "fmask=0022" "dmask=0022" ]; + }; + + swapDevices = [ ]; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; diff --git a/users/beeb5k/default.nix b/users/beeb5k/default.nix index 4ab89b7..af6338d 100644 --- a/users/beeb5k/default.nix +++ b/users/beeb5k/default.nix @@ -17,12 +17,10 @@ inputs.beevim.homeModules.default ]; - wrappers.neovim.enable = false; + wrappers.neovim.enable = true; beeMods = { windowManagers = { - dwm.enable = false; - hyprland.enable = false; mango.enable = true; eyeCandy = { animations.enable = false; @@ -35,7 +33,7 @@ }; }; }; - matugen.enable = false; + matugen.enable = true; terminal = { foot = true; font.family = "IosevkaInput"; diff --git a/users/common.nix b/users/common.nix index ccadb68..1af3dad 100644 --- a/users/common.nix +++ b/users/common.nix @@ -23,7 +23,10 @@ in { programs.git = { enable = true; - package = pkgs.git.override { withLibsecret = true; }; + package = (pkgs.git.override { withLibsecret = true; }).overrideAttrs (old: { + docheck = false; + doInstallCheck = false; + }); settings = { user = { name = "beeb5k (Vivek Tiwari)"; @@ -45,8 +48,8 @@ in hyprcursor.size = 16; dotIcons.enable = true; hyprcursor.enable = true; - # name = "miku-cursor"; - # package = mikuCursor; + name = "Bibata-Modern-Ice"; + package = pkgs.bibata-cursors; }; dconf.settings = { @@ -70,8 +73,8 @@ in name = "adw-gtk3"; }; iconTheme = { - name = "Adwaita"; - package = pkgs.adwaita-icon-theme; + name = "AdwaitaLegacy"; + package = pkgs.adwaita-icon-theme-legacy; }; gtk3 = { bookmarks = [ @@ -86,7 +89,7 @@ in gtk-decoration-layout = ":"; }; extraCss = '' - @import url("colors.css"); + @import url("matugen.css"); ''; }; @@ -97,7 +100,7 @@ in gtk-decoration-layout = ":"; }; extraCss = '' - @import url("colors.css"); + @import url("matugen.css"); ''; }; }; @@ -109,11 +112,7 @@ in setSessionVariables = false; }; - programs.yazi = { - enable = true; - shellWrapperName = "yy"; - }; - + programs.yazi.enable = true; programs.mpv = { enable = true; package = pkgs.mpv-unwrapped.override { @@ -134,8 +133,9 @@ in home.packages = with pkgs; [ swayimg - fastfetch imagemagick unzip + pcmanfm + opencode ]; } -- cgit v1.3.1