summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbeeb5k (Vivek Tiwari) <beebeeb5k@gmail.com>2026-06-04 23:45:29 +0530
committerbeeb5k (Vivek Tiwari) <beebeeb5k@gmail.com>2026-06-04 23:45:29 +0530
commit2c2669697fdeaf7316feed3449d2082d255de5af (patch)
tree4d8ed566c2be1ec01c54a3eb6106c40fa79ddb8a
parentb6e25e72d30d9810abc0eb48058334e2495350f8 (diff)
Debloat
-rw-r--r--common/modules/matugen/default.nix88
-rw-r--r--common/modules/matugen/templates/matugen-discord.nix394
-rw-r--r--common/modules/matugen/templates/matugen-gtk.nix54
-rw-r--r--common/modules/matugen/templates/matugen-mango.nix17
-rw-r--r--common/modules/matugen/templates/matugen-nvim.nix6
-rw-r--r--common/modules/matugen/templates/matugen-pywalfox.nix37
-rw-r--r--common/modules/matugen/templates/matugen-rofi.nix31
-rw-r--r--common/modules/matugen/templates/matugen-sequences.nix60
-rw-r--r--common/modules/matugen/templates/matugen-terminal.nix114
-rw-r--r--common/modules/matugen/templates/matugen-waybar.nix540
-rw-r--r--common/modules/matugen/templates/matugen-xresources.nix41
-rw-r--r--common/modules/matugen/templates/matugen-yazi.nix743
-rw-r--r--common/modules/terminal/alacritty.nix2
-rw-r--r--common/modules/terminal/default.nix4
-rw-r--r--common/modules/terminal/foot.nix7
-rw-r--r--common/modules/terminal/ghostty.nix2
-rw-r--r--common/modules/window_managers/default.nix12
-rw-r--r--common/modules/window_managers/dwm/default.nix176
-rw-r--r--common/modules/window_managers/dwm/picom.nix63
-rw-r--r--common/modules/window_managers/dwm/scripts.nix113
-rw-r--r--common/modules/window_managers/hyprland/default.nix322
-rw-r--r--common/modules/window_managers/mango/default.nix105
-rw-r--r--common/modules/window_managers/scripts.nix387
-rw-r--r--common/overlays/ioskeleyInput.nix354
-rw-r--r--common/programs/btop.nix2
-rw-r--r--common/programs/dunst.nix12
-rw-r--r--common/programs/fastfetch.nix34
-rw-r--r--common/programs/firefox.nix136
-rw-r--r--common/programs/librewolf.nix101
-rw-r--r--common/programs/rofi.nix144
-rw-r--r--common/programs/vesktop.nix29
-rw-r--r--common/programs/zenBrowser.nix157
-rw-r--r--flake.lock291
-rw-r--r--flake.nix15
-rw-r--r--hosts/common.nix96
-rw-r--r--hosts/niuwux/default.nix13
-rw-r--r--hosts/niuwux/hardware-configuration.nix103
-rw-r--r--users/beeb5k/default.nix6
-rw-r--r--users/common.nix26
39 files changed, 3193 insertions, 1644 deletions
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
- */
+ 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");
+ /* 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;
+ 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;
+ /* 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;
+ /* 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;
+ /* 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;
+ /* 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));
+ /* 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("");
+ /* 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);
+ /* 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;
+ /* other options */
+ --small-user-panel: on;
- /* unrounding options */
- --unrounding: on;
+ /* unrounding options */
+ --unrounding: on;
- /* styling options */
- --custom-spotify-bar: on;
- --ascii-titles: on;
- --ascii-loader: system24;
+ /* 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;
- }
+ /* panel labels */
+ --panel-labels: on;
+ --label-color: var(--text-muted);
+ --label-font-weight: 500;
+ }
- /* color options */
- :root {
- --colors: on;
+ /* 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}};
+ /* 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 *>
+ /* 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);
+ /* 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);
+ /* 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}};
- /* 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}};
+ /* 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);
- /* border colors */
- --border-light: var(--hover);
- --border: var(--active);
- --border-hover: {{colors.primary.default.hex}};
- --button-border: {{colors.on_surface.default.hex}}1a;
+ /* 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}};
- /* 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);
+ /* border colors */
+ --border-light: var(--hover);
+ --border: var(--active);
+ --border-hover: {{colors.primary.default.hex}};
+ --button-border: {{colors.on_surface.default.hex}}1a;
- --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);
+ /* 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);
- --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);
+ --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);
- --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);
+ --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);
- --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);
- }
- '';
+ --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": "<span style='italic'weight='900' color='{{colors.primary.default.hex}}'>perf</span>",
+ "balanced": "<span style='italic' weight='900' color='{{colors.primary.default.hex}}'>bal</span>",
+ "power-saver": "<span style='italic' weight='900' color='{{colors.primary.default.hex}}'>eco</span>"
+ }
+ },
+ "cpu": {
+ "interval": 10,
+ "format": "cpu <span style='italic' weight='900' color='{{colors.primary.default.hex}}'>{usage:02}%</span>",
+ "states": {
+ "warning": 50,
+ "critical": 80
+ }
+ },
+ "backlight": {
+ "device": "amd_backlight",
+ "rotate": 0,
+ "format": "bl <span style='italic' weight='900' color='{{colors.primary.default.hex}}'>{percent}%</span>",
+ "tooltip-format": "🌕 {percent}%",
+ "format-icons": [
+ "󰃜",
+ "󰃝",
+ "󰃞",
+ "󰃟",
+ "󰃠"
+ ]
+ },
+ "memory": {
+ "interval": 2,
+ "format": "mem <span style='italic' weight='900' color='{{colors.primary.default.hex}}'>{percentage:02}%</span>",
+ "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 <span style='italic' weight='900' color='{{colors.primary.default.hex}}'>{signalStrength}%</span>",
+ "format-ethernet": "net <span style='italic' weight='900' color='{{colors.primary.default.hex}}'>on</span>",
+ "format-disconnected": "net <span style='italic' weight='900' color='{{colors.primary.default.hex}}'>off 󰤮 / 󰈀 </span>",
+ "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 <span style='italic' weight='900' color='{{colors.primary.default.hex}}'>{capacity}%</span>",
+ "format-discharging": "bat <span style='italic' weight='900' color='{{colors.primary.default.hex}}'>{capacity}%</span>",
+ "format-charging": "bat <span style='italic' weight='900' color='{{colors.primary.default.hex}}'>{capacity}%</span>",
+ "format-plugged": "bat_p <span style='italic' weight='900' color='{{colors.primary.default.hex}}'>{capacity}%</span>",
+ "format-icons": {
+ "charging": [
+ "󰢜",
+ "󰂆",
+ "󰂇",
+ "󰂈",
+ "󰢝",
+ "󰂉",
+ "󰢞",
+ "󰂊",
+ "󰂋",
+ "󰂅"
+ ],
+ "default": [
+ "󰁺",
+ "󰁻",
+ "󰁼",
+ "󰁽",
+ "󰁾",
+ "󰁿",
+ "󰂀",
+ "󰂁",
+ "󰂂",
+ "󰁹"
+ ]
+ },
+ "format-full": "bat_f <span style='italic' weight='900' color='{{colors.primary.default.hex}}'>{capacity}%</span>",
+ "tooltip-format-discharging": "{timeTo}",
+ "tooltip-format-charging": "{timeTo}",
+ "interval": 5,
+ "states": {
+ "warning": 20,
+ "critical": 10
+ }
+ },
+ "bluetooth": {
+ "justify": "center",
+ "format": "bt <span style='italic' weight='900' color='{{colors.primary.default.hex}}'>{status}</span> {num_connections}",
+ "format-disabled": "bt <span style='italic' weight='900' color='{{colors.primary.default.hex}}'>{status}</span>",
+ "format-connected": "bt <span style='italic' weight='900' color='{{colors.primary.default.hex}}'>{status}</span> {num_connections}",
+ "tooltip-format": "Devices connected: {num_connections}",
+ "on-click": "foot -e bluetui",
+ },
+ "pulseaudio": {
+ "justify": "center",
+ "format": "vol <span style='italic' weight='900' color='{{colors.primary.default.hex}}'>{volume}%</span>",
+ "on-click-right": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle ",
+ "tooltip-format": "Playing at {volume}%",
+ "scroll-step": 5,
+ "format-muted": "vol <span style='italic' weight='900' color='{{colors.error.default.hex}}'>muted</span>",
+ "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 <span style='italic' weight='900' color='{{colors.primary.default.hex}}'>on</span>",
+ "deactivated": "idle <span style='italic' weight='900' color='{{colors.primary.default.hex}}'>off</span>"
+ }
+ },
+ "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 <X11\/XKBlib.h>/a #include <X11/Xcursor/Xcursor.h>' 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" <<EOF
+ theme=dark
+ nightlight=off
+ wallpaper=$WALL_DIR/default.jpg
+ color_type=scheme-tonal-spot
+ EOF
+ }
+
+ get_val() {
+ grep "^$1=" "$CONFIG_FILE" | cut -d= -f2-
+ }
+
+ set_val() {
+ sed -i "s|^$1=.*|$1=$2|" "$CONFIG_FILE"
+ }
+
+ set_layout() {
+ mmsg dispatch setlayout,"$1"
+ }
+
+ hash_path() {
+ printf '%s' "$1" | md5sum | cut -d' ' -f1
+ }
+
+ ensure_thumb() {
+ local img="$1"
+ local hash thumb candidate
+
+ hash=$(hash_path "$img")
+ thumb="$THUMB_DIR/$hash.jpg"
+
+ [ -f "$thumb" ] && {
+ printf '%s' "$thumb"
+ return 0
+ }
+
+ mkdir -p -- "$THUMB_DIR"
+
+ if command -v magick >/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."/" =
+ { 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/85c4da5f-b234-498f-bf47-f2d3b26bf0cc";
- fsType = "btrfs";
- options = [
- "subvol=@home"
- "compress=zstd"
- "noatime"
- "discard=async"
- "space_cache=v2"
- ];
- };
+ 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/85c4da5f-b234-498f-bf47-f2d3b26bf0cc";
- fsType = "btrfs";
- options = [
- "subvol=@nix"
- "compress=zstd"
- "noatime"
- "discard=async"
- "space_cache=v2"
- ];
- };
+ 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/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."/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/DD2D-BC85";
- fsType = "vfat";
- options = [
- "fmask=0022"
- "dmask=0022"
- ];
- };
+ fileSystems."/boot" =
+ { device = "/dev/disk/by-uuid/59FA-D495";
+ fsType = "vfat";
+ options = [ "fmask=0022" "dmask=0022" ];
+ };
- swapDevices = [
- { device = "/dev/disk/by-uuid/247afe44-bbc1-4931-bf26-29a540e9d7df"; }
- ];
+ 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
];
}