summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
Diffstat (limited to 'common')
-rw-r--r--common/default.nix1
-rw-r--r--common/modules/matugen/default.nix16
-rw-r--r--common/modules/matugen/templates/matugen-btop.nix2
-rw-r--r--common/modules/matugen/templates/matugen-discord.nix473
-rw-r--r--common/modules/matugen/templates/matugen-dunst.nix43
-rw-r--r--common/modules/matugen/templates/matugen-gtk.nix107
-rw-r--r--common/modules/matugen/templates/matugen-mango.nix33
-rw-r--r--common/modules/matugen/templates/matugen-nvim.nix34
-rw-r--r--common/modules/matugen/templates/matugen-sequences.nix2
-rw-r--r--common/modules/matugen/templates/matugen-terminal.nix208
-rw-r--r--common/modules/matugen/templates/matugen-yazi.nix2
-rw-r--r--common/modules/terminal/alacritty.nix10
-rw-r--r--common/modules/terminal/foot.nix10
-rw-r--r--common/modules/terminal/ghostty.nix10
-rw-r--r--common/modules/window_managers/default.nix55
-rw-r--r--common/modules/window_managers/mango/default.nix94
-rw-r--r--common/modules/window_managers/niri/default.nix388
-rw-r--r--common/modules/window_managers/noctalia.nix29
-rw-r--r--common/overlays/IosevkaInput.nix187
-rw-r--r--common/overlays/default.nix1
-rw-r--r--common/packages/default.nix5
-rw-r--r--common/packages/iosevka-input.nix186
-rw-r--r--common/programs/btop.nix10
-rw-r--r--common/programs/dunst.nix50
-rw-r--r--common/programs/fastfetch.nix1
-rw-r--r--common/programs/rofi.nix236
-rw-r--r--common/programs/vesktop.nix10
27 files changed, 1378 insertions, 825 deletions
diff --git a/common/default.nix b/common/default.nix
index 90505c7..0d3244f 100644
--- a/common/default.nix
+++ b/common/default.nix
@@ -5,6 +5,7 @@ inputs:
(lib.modules.importApply ./overlays { inherit inputs; })
# (inputs.nixpkgs.lib.modules.importApply ./overlays { inherit inputs; })
(lib.modules.importApply ./modules { inherit inputs; })
+ (lib.modules.importApply ./packages { inherit inputs; })
];
flake.templates = import ./templates inputs;
diff --git a/common/modules/matugen/default.nix b/common/modules/matugen/default.nix
index 6eb8182..9e9f3d6 100644
--- a/common/modules/matugen/default.nix
+++ b/common/modules/matugen/default.nix
@@ -21,7 +21,7 @@ in
enable = lib.mkEnableOption "Enable Dynamic colors";
};
- config = lib.mkIf cfg.enable (
+ config = lib.mkIf (cfg.enable && config.beeMods.windowManagers.beeConfig.enable) (
lib.optionalAttrs homeManager {
xdg.configFile = {
"matugen/config.toml" = {
@@ -96,13 +96,15 @@ in
output_path = '~/.config/rofi/shared/colors.rasi'
''}
- [templates.gtk3]
- input_path = '~/.config/matugen/templates/gtk.css'
- output_path = '~/.config/gtk-3.0/matugen.css'
+ ${lib.optionalString (config.gtk.theme.name == "adw-gtk3") ''
+ [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.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'
diff --git a/common/modules/matugen/templates/matugen-btop.nix b/common/modules/matugen/templates/matugen-btop.nix
index 1f23c25..e698fa4 100644
--- a/common/modules/matugen/templates/matugen-btop.nix
+++ b/common/modules/matugen/templates/matugen-btop.nix
@@ -4,7 +4,7 @@
...
}:
{
- config = lib.mkIf config.programs.btop.enable {
+ config = lib.mkIf (config.programs.btop.enable && config.beeMods.windowManagers.beeConfig.enable) {
xdg.configFile = {
"matugen/templates/btop.theme" = {
text = ''
diff --git a/common/modules/matugen/templates/matugen-discord.nix b/common/modules/matugen/templates/matugen-discord.nix
index 2f61fea..d3e72a5 100644
--- a/common/modules/matugen/templates/matugen-discord.nix
+++ b/common/modules/matugen/templates/matugen-discord.nix
@@ -4,280 +4,285 @@
...
}:
{
- 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");
+ config =
+ lib.mkIf (config.programs.vesktop.enable && config.beeMods.windowManagers.beeConfig.enable)
+ {
+ 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
+ */
- body {
- /* font options */
- --font: "IosevkaInput";
- --code-font: "IosevkaInput";
- font-weight: 300;
- letter-spacing: -0.05ch;
+ /* import theme modules */
+ @import url("https://refact0r.github.io/system24/build/system24.css");
- /* sizes */
- --gap: 12px;
- --divider-thickness: 4px;
- --border-thickness: 2px;
- --border-hover-transition: 0.2s ease;
+ body {
+ /* font options */
+ --font: "IosevkaInput";
+ --code-font: "IosevkaInput";
+ font-weight: 300;
+ letter-spacing: -0.05ch;
- /* animation/transition options */
- --animations: off;
- --list-item-transition: 0.2s ease;
- --dms-icon-svg-transition: 0.4s ease;
+ /* sizes */
+ --gap: 12px;
+ --divider-thickness: 4px;
+ --border-thickness: 2px;
+ --border-hover-transition: 0.2s ease;
- /* top bar options */
- --top-bar-height: var(--gap);
- --top-bar-button-position: titlebar;
- --top-bar-title-position: off;
- --subtle-top-bar-title: off;
+ /* animation/transition options */
+ --animations: off;
+ --list-item-transition: 0.2s ease;
+ --dms-icon-svg-transition: 0.4s ease;
- /* window controls */
- --custom-window-controls: off;
- --window-control-size: 14px;
+ /* top bar options */
+ --top-bar-height: var(--gap);
+ --top-bar-button-position: titlebar;
+ --top-bar-title-position: off;
+ --subtle-top-bar-title: off;
- /* 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));
+ /* window controls */
+ --custom-window-controls: off;
+ --window-control-size: 14px;
- /* background image options */
- --background-image: off;
- --background-image-url: url("");
+ /* 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));
- /* transparency/blur options */
- --transparency-tweaks: off;
- --remove-bg-layer: off;
- --panel-blur: off;
- --blur-amount: 12px;
- --bg-floating: var(--bg-3);
+ /* background image options */
+ --background-image: off;
+ --background-image-url: url("");
- /* other options */
- --small-user-panel: on;
+ /* transparency/blur options */
+ --transparency-tweaks: off;
+ --remove-bg-layer: off;
+ --panel-blur: off;
+ --blur-amount: 12px;
+ --bg-floating: var(--bg-3);
- /* unrounding options */
- --unrounding: on;
+ /* other options */
+ --small-user-panel: on;
- /* styling options */
- --custom-spotify-bar: on;
- --ascii-titles: on;
- --ascii-loader: system24;
+ /* unrounding options */
+ --unrounding: on;
- /* panel labels */
- --panel-labels: on;
- --label-color: var(--text-muted);
- --label-font-weight: 500;
- }
+ /* styling options */
+ --custom-spotify-bar: on;
+ --ascii-titles: on;
+ --ascii-loader: system24;
- /* color options */
- :root {
- --colors: on;
+ /* panel labels */
+ --panel-labels: on;
+ --label-color: var(--text-muted);
+ --label-font-weight: 500;
+ }
- /* 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}};
+ /* color options */
+ :root {
+ --colors: on;
- /* 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 *>
+ /* 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}};
- /* 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);
+ /* 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 *>
- /* 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}};
+ /* 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);
- /* 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);
- "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
- */
+ --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);
+ }
+ '';
+ };
- /* IMPORTANT: make sure to enable dark mode in discord settings for the theme to apply properly!!! */
+ "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
+ */
- @import url('https://refact0r.github.io/midnight-discord/build/midnight.css');
+ /* IMPORTANT: make sure to enable dark mode in discord settings for the theme to apply properly!!! */
- /* customize things here */
- :root {
- /* font, change to 'gg sans' for default discord font*/
- --font: 'IosevkaInput';
+ @import url('https://refact0r.github.io/midnight-discord/build/midnight.css');
- /* top left corner text */
- --corner-text: 'Midnight';
+ /* customize things here */
+ :root {
+ /* font, change to 'gg sans' for default discord font*/
+ --font: 'IosevkaInput';
- /* 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 */
+ /* top left corner text */
+ --corner-text: 'Midnight';
- /* 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 */
+ /* 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 */
- /* 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 */
+ /* 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 */
- /* 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 */
+ /* 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 */
- /* amount of spacing and padding */
- --spacing: 12px;
+ /* 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 */
- /* 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.) */
+ /* amount of spacing and padding */
+ --spacing: 12px;
- /* 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 */
+ /* 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.) */
- /* 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;
+ /* 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 */
- /* 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 */
- }
+ /* 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;
- /* Selected chat/friend text */
- .selected_f5eb4b,
- .selected_f6f816 .link_d8bfb3 {
- color: var(--text-0) !important;
- background: var(--accent-3) !important;
- }
+ /* 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_f6f816 .link_d8bfb3 * {
- color: var(--text-0) !important;
- fill: var(--text-0) !important;
- }
- '';
- };
- };
+ /* 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-dunst.nix b/common/modules/matugen/templates/matugen-dunst.nix
index dae700f..d7f9200 100644
--- a/common/modules/matugen/templates/matugen-dunst.nix
+++ b/common/modules/matugen/templates/matugen-dunst.nix
@@ -1,22 +1,29 @@
{
- xdg.configFile."matugen/templates/dunstrc" = {
- text = ''
- [global]
- frame_color = "{{colors.primary.default.hex}}"
- separator_color = "{{colors.primary_container.default.hex}}"
- foreground = "{{colors.on_surface.default.hex}}"
- highlight = "{{colors.primary.default.hex}}"
- <* if {{ is_dark_mode }} *>
- background = "{{colors.surface.default.hex}}"
- <* else *>
- background = "{{colors.surface_container.default.hex}}"
- <* endif *>
+ config,
+ lib,
+ ...
+}:
+{
+ config = lib.mkIf config.services.dunst.enable {
+ xdg.configFile."matugen/templates/dunstrc" = {
+ text = ''
+ [global]
+ frame_color = "{{colors.primary.default.hex}}"
+ separator_color = "{{colors.primary_container.default.hex}}"
+ foreground = "{{colors.on_surface.default.hex}}"
+ highlight = "{{colors.primary.default.hex}}"
+ <* if {{ is_dark_mode }} *>
+ background = "{{colors.surface.default.hex}}"
+ <* else *>
+ background = "{{colors.surface_container.default.hex}}"
+ <* endif *>
- [urgency_critical]
- background = "{{colors.error_container.default.hex}}"
- foreground = "{{colors.on_error_container.default.hex}}"
- frame_color = "{{colors.error.default.hex}}"
- highlight = "{{colors.error.default.hex}}"
- '';
+ [urgency_critical]
+ background = "{{colors.error_container.default.hex}}"
+ foreground = "{{colors.on_error_container.default.hex}}"
+ frame_color = "{{colors.error.default.hex}}"
+ highlight = "{{colors.error.default.hex}}"
+ '';
+ };
};
}
diff --git a/common/modules/matugen/templates/matugen-gtk.nix b/common/modules/matugen/templates/matugen-gtk.nix
index 3bf2c1b..7351398 100644
--- a/common/modules/matugen/templates/matugen-gtk.nix
+++ b/common/modules/matugen/templates/matugen-gtk.nix
@@ -1,54 +1,63 @@
{
- xdg.configFile."matugen/templates/gtk.css" = {
- text = ''
- /*
- * GTK Colors
- * Generated with Matugen
- */
+ config,
+ lib,
+ ...
+}:
+{
+ config =
+ lib.mkIf (config.gtk.theme.name == "adw-gtk3" && config.beeMods.windowManagers.beeConfig.enable)
+ {
+ xdg.configFile."matugen/templates/gtk.css" = {
+ text = ''
+ /*
+ * GTK Colors
+ * Generated with Matugen
+ */
- /* via thairanaru on GitHub: */
+ /* 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}};
+ /* 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;
- '';
- };
+ /* 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 7645ba9..440c4a9 100644
--- a/common/modules/matugen/templates/matugen-mango.nix
+++ b/common/modules/matugen/templates/matugen-mango.nix
@@ -4,20 +4,23 @@
...
}:
{
- config = lib.mkIf config.beeMods.windowManagers.mango.enable {
- xdg.configFile = {
- "matugen/templates/mango.conf" = {
- text = ''
- 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
- '';
+ config =
+ lib.mkIf
+ (config.beeMods.windowManagers.mango.enable && config.beeMods.windowManagers.beeConfig.enable)
+ {
+ xdg.configFile = {
+ "matugen/templates/mango.conf" = {
+ text = ''
+ 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 8e6f5f5..276d695 100644
--- a/common/modules/matugen/templates/matugen-nvim.nix
+++ b/common/modules/matugen/templates/matugen-nvim.nix
@@ -4,19 +4,23 @@
...
}:
{
- xdg.configFile = {
- "matugen/templates/neovim.json" = {
- text = ''
- {
- "mode": "{{mode}}",
- "source_color":"{{colors.primary.default.hex}}",
- <* if {{ is_dark_mode }} *>
- "background":"{{colors.surface.default.hex}}"
- <* else *>
- "background":"{{colors.surface_container_low.default.hex}}"
- <* endif *>
- }
- '';
- };
- };
+ config =
+ lib.mkIf (config.wrappers.neovim.enable && config.beeMods.windowManagers.beeConfig.enable)
+ {
+ xdg.configFile = {
+ "matugen/templates/neovim.json" = {
+ text = ''
+ {
+ "mode": "{{mode}}",
+ "source_color":"{{colors.primary.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-sequences.nix b/common/modules/matugen/templates/matugen-sequences.nix
index 817edb9..13e25f1 100644
--- a/common/modules/matugen/templates/matugen-sequences.nix
+++ b/common/modules/matugen/templates/matugen-sequences.nix
@@ -4,7 +4,7 @@
...
}:
{
- config = lib.mkIf config.beeMods.matugen.enable {
+ config = lib.mkIf (config.beeMods.terminal.foot && config.beeMods.windowManagers.beeConfig.enable) {
xdg.configFile."matugen/templates/sequences" = {
text = ''
#!/bin/sh
diff --git a/common/modules/matugen/templates/matugen-terminal.nix b/common/modules/matugen/templates/matugen-terminal.nix
index 4d7106e..1f09579 100644
--- a/common/modules/matugen/templates/matugen-terminal.nix
+++ b/common/modules/matugen/templates/matugen-terminal.nix
@@ -4,116 +4,118 @@
...
}:
{
- config = lib.mkMerge [
- (lib.mkIf config.beeMods.terminal.foot {
- xdg.configFile."matugen/templates/foot-colors.ini" = {
- text = ''
- [colors-dark]
- foreground={{colors.on_surface.default.hex_stripped}}
- <* if {{ is_dark_mode }} *>
- background={{colors.surface.default.hex_stripped}}
- <* else *>
- background={{colors.surface_container_low.default.hex_stripped}}
- <* endif *>
- selection-foreground={{colors.on_primary_container.default.hex_stripped}}
- selection-background={{colors.primary_container.default.hex_stripped}}
- cursor = {{colors.on_primary.default.hex_stripped}} {{colors.primary.default.hex_stripped}}
+ config = lib.mkIf config.beeMods.windowManagers.beeConfig.enable (
+ lib.mkMerge [
+ (lib.mkIf config.beeMods.terminal.foot {
+ xdg.configFile."matugen/templates/foot-colors.ini" = {
+ text = ''
+ [colors-dark]
+ foreground={{colors.on_surface.default.hex_stripped}}
+ <* if {{ is_dark_mode }} *>
+ background={{colors.surface.default.hex_stripped}}
+ <* else *>
+ background={{colors.surface_container_low.default.hex_stripped}}
+ <* endif *>
+ selection-foreground={{colors.on_primary_container.default.hex_stripped}}
+ selection-background={{colors.primary_container.default.hex_stripped}}
+ cursor = {{colors.on_primary.default.hex_stripped}} {{colors.primary.default.hex_stripped}}
- 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}}
+ 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={{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}}
+ 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 *>
- '';
- };
- })
- (lib.mkIf config.beeMods.terminal.alacritty {
- xdg.configFile."matugen/templates/alacritty-colors.toml" = {
- text = ''
- [colors.primary]
- <* if {{ is_dark_mode }} *>
- background = '{{colors.background.default.hex}}'
- <* else *>
- background = '{{colors.surface_container_low.default.hex}}'
- <* endif *>
- foreground = '{{colors.on_surface.default.hex}}'
+ # dim-blend-towards=<* if {{ is_dark_mode }} *>black<* else *>white<* endif *>
+ '';
+ };
+ })
+ (lib.mkIf config.beeMods.terminal.alacritty {
+ xdg.configFile."matugen/templates/alacritty-colors.toml" = {
+ text = ''
+ [colors.primary]
+ <* if {{ is_dark_mode }} *>
+ background = '{{colors.background.default.hex}}'
+ <* else *>
+ background = '{{colors.surface_container_low.default.hex}}'
+ <* endif *>
+ foreground = '{{colors.on_surface.default.hex}}'
- [colors.selection]
- text = '{{colors.on_surface.default.hex}}'
- background = '{{colors.primary_container.default.hex}}'
+ [colors.selection]
+ text = '{{colors.on_surface.default.hex}}'
+ background = '{{colors.primary_container.default.hex}}'
- [colors.cursor]
- text = '{{colors.background.default.hex}}'
- cursor = '{{colors.primary.default.hex}}'
+ [colors.cursor]
+ text = '{{colors.background.default.hex}}'
+ cursor = '{{colors.primary.default.hex}}'
- [colors.normal]
- 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.normal]
+ 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 = '{{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}}'
+ [colors.bright]
+ 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-colors.conf" = {
- text = ''
- <* if {{ is_dark_mode }} *>
- background = {{colors.background.default.hex}}
- <* else *>
- 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}}
+ '';
+ };
+ })
+ (lib.mkIf config.beeMods.terminal.ghostty {
+ xdg.configFile."matugen/templates/ghostty-colors.conf" = {
+ text = ''
+ <* if {{ is_dark_mode }} *>
+ background = {{colors.background.default.hex}}
+ <* else *>
+ 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={{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}}
- '';
- };
- })
- ];
+ 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-yazi.nix b/common/modules/matugen/templates/matugen-yazi.nix
index ce84729..0df2339 100644
--- a/common/modules/matugen/templates/matugen-yazi.nix
+++ b/common/modules/matugen/templates/matugen-yazi.nix
@@ -4,7 +4,7 @@
...
}:
{
- config = lib.mkIf config.programs.yazi.enable {
+ config = lib.mkIf (config.programs.yazi.enable && config.beeMods.windowManagers.beeConfig.enable) {
xdg.configFile = {
"matugen/templates/yazi.toml" = {
text = ''
diff --git a/common/modules/terminal/alacritty.nix b/common/modules/terminal/alacritty.nix
index 7cbcfec..606e4f0 100644
--- a/common/modules/terminal/alacritty.nix
+++ b/common/modules/terminal/alacritty.nix
@@ -25,7 +25,15 @@ in
hide_when_typing = true;
};
general = {
- import = lib.optionals config.beeMods.matugen.enable [ "~/.config/alacritty/themes/matugen.toml" ];
+ import =
+ if
+ config.beeMods.matugen.enable
+ && config.beeMods.windowManagers.beeConfig.enable
+ && !config.beeMods.windowManagers.noctalia
+ then
+ [ "~/.config/alacritty/themes/matugen.toml" ]
+ else
+ [ "~/.config/alacritty/themes/noctalia" ];
};
window = {
dynamic_padding = true;
diff --git a/common/modules/terminal/foot.nix b/common/modules/terminal/foot.nix
index afc4539..7603776 100644
--- a/common/modules/terminal/foot.nix
+++ b/common/modules/terminal/foot.nix
@@ -11,7 +11,15 @@ in
enable = true;
settings = {
main = {
- include = lib.optionals config.beeMods.matugen.enable [ "~/.config/foot/themes/matugen" ];
+ include =
+ if
+ config.beeMods.matugen.enable
+ && config.beeMods.windowManagers.beeConfig.enable
+ && !config.beeMods.windowManagers.noctalia
+ then
+ [ "~/.config/foot/themes/matugen" ]
+ else
+ [ "~/.config/foot/themes/noctalia" ];
line-height = 13;
letter-spacing = 0;
vertical-letter-offset = 0;
diff --git a/common/modules/terminal/ghostty.nix b/common/modules/terminal/ghostty.nix
index c47e991..9c74e2a 100644
--- a/common/modules/terminal/ghostty.nix
+++ b/common/modules/terminal/ghostty.nix
@@ -11,7 +11,15 @@ in
enable = true;
enableFishIntegration = true;
settings = {
- theme = lib.optionalString config.beeMods.matugen.enable "matugen";
+ theme =
+ if
+ config.beeMods.matugen.enable
+ && config.beeMods.windowManagers.beeConfig.enable
+ && !config.beeMods.windowManagers.noctalia
+ then
+ [ "matugen" ]
+ else
+ [ "noctalia" ];
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 1c66f63..7967292 100644
--- a/common/modules/window_managers/default.nix
+++ b/common/modules/window_managers/default.nix
@@ -20,33 +20,52 @@ in
{
imports = [
(import ./mango args)
+ (import ./niri args)
+ (import ./noctalia.nix args)
];
options.${moduleNameSpace}.windowManagers = {
mango.enable = lib.mkEnableOption "Enable mangowm";
+ niri.enable = lib.mkEnableOption "Enable niri";
+ noctalia = lib.mkEnableOption "Enable noctalia shell";
+ beeConfig = {
+ enable = lib.mkEnableOption "Enable stuff from my config";
+ waybar = lib.mkOption {
+ type = lib.types.bool;
+ default = config.beeMods.windowManagers.beeConfig.enable || false;
+ description = "Enable waybar";
+ };
+ };
eyeCandy = {
- animations.enable = lib.mkEnableOption "Uiiiiiiiiiii";
+ enable = lib.mkEnableOption "Enable Eyecandy ex (animations, windowblurs, effects)";
+ animations = {
+ enable = lib.mkOption {
+ type = lib.types.bool;
+ default = config.beeMods.windowManagers.eyeCandy.enable || false;
+ description = "Uiiiiiiiiiii";
+ };
+ };
window = {
blur = {
enable = lib.mkEnableOption "Enable window blur";
passes = lib.mkOption {
type = lib.types.int;
- default = 1;
+ default = 3;
};
radius = lib.mkOption {
type = lib.types.int;
- default = 10;
+ default = 12;
};
};
shadows.enable = lib.mkEnableOption "Enable window drop shadows";
borderRadius = lib.mkOption {
type = lib.types.int;
- default = 0;
+ default = 12;
description = "Border radius";
};
opacity = lib.mkOption {
type = lib.types.number;
- default = 1.0;
+ default = 0.87;
description = "Window opacity";
};
};
@@ -55,16 +74,22 @@ in
config = (
if homeManager then
{
- home.packages = with pkgs; [
- wl-clipboard
- cliphist
- brightnessctl
- playerctl
- matugen
- awww
- waybar
- scripts.dotfiles
- ];
+ home.packages =
+ with pkgs;
+ [
+ wl-clipboard
+ brightnessctl
+ playerctl
+ fyi
+ gapless
+ scripts.dotfiles
+ ]
+ ++ lib.optionals config.beeMods.windowManagers.beeConfig.enable [
+ waybar
+ matugen
+ awww
+ cliphist
+ ];
}
else
{
diff --git a/common/modules/window_managers/mango/default.nix b/common/modules/window_managers/mango/default.nix
index 94c83c5..3d70b82 100644
--- a/common/modules/window_managers/mango/default.nix
+++ b/common/modules/window_managers/mango/default.nix
@@ -13,6 +13,7 @@
let
cfg = config.${moduleNameSpace}.windowManagers;
scripts = import ../scripts.nix { inherit pkgs config; };
+ eyecandy = cfg.eyeCandy.enable;
in
{
imports =
@@ -26,21 +27,25 @@ in
systemd.enable = true;
systemd.variables = [ "--all" ];
extraConfig = ''
- ${lib.optionalString (config.beeMods.matugen.enable) ''
+ ${lib.optionalString (config.beeMods.matugen.enable && cfg.beeConfig.enable && !cfg.noctalia) ''
source = ~/.config/mango/colors.conf
''}
- blur=${if cfg.eyeCandy.window.blur.enable then "1" else "0"}
+ ${lib.optionalString (!cfg.beeConfig.enable && cfg.noctalia) ''
+ source = ~/.config/mango/noctalia.conf
+ ''}
+
+ blur=${if eyecandy && 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_num_passes = ${if eyecandy then toString cfg.eyeCandy.window.blur.passes else "0"}
+ blur_params_radius = ${if eyecandy then toString cfg.eyeCandy.window.blur.radius else "0"}
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"}
+ shadows=${if eyecandy && cfg.eyeCandy.window.shadows.enable then "1" else "0"}
layer_shadows = 0
shadow_only_floating = 1
shadows_size = 10
@@ -48,11 +53,11 @@ in
shadows_position_x = 0
shadows_position_y = 0
- border_radius=${toString cfg.eyeCandy.window.borderRadius}
+ border_radius=${if eyecandy then toString cfg.eyeCandy.window.borderRadius else "0"}
no_radius_when_single=0
- focused_opacity=${toString cfg.eyeCandy.window.opacity}
- unfocused_opacity=${toString cfg.eyeCandy.window.opacity}
+ focused_opacity=${if eyecandy then toString cfg.eyeCandy.window.opacity else "1.0"}
+ unfocused_opacity=${if eyecandy then toString cfg.eyeCandy.window.opacity else "1.0"}
# Scroller configuration
scroller_structs=15
@@ -122,16 +127,52 @@ in
borderpx=2
#Keymaps
+ # beeConfig keymaps
+ ${lib.optionalString (config.beeMods.matugen.enable && cfg.beeConfig.enable && !cfg.noctalia) ''
+ bind=SUPER,y,spawn,${scripts.dostuff} wall
+ bind=SUPER,a,spawn,rofi -show drun
+ bind=SUPER,c,spawn,sh -c 'fyi "Clock" "$(date)"'
+ bind=SUPER,comma,spawn,${scripts.dostuff} settings
+
+ bind=NONE,XF86AudioRaiseVolume,spawn,${scripts.volume} up
+ bind=NONE,XF86AudioLowerVolume,spawn,${scripts.volume} down
+ bind=NONE,XF86AudioMute,spawn,${scripts.volume} toggle
+
+ bind=NONE,XF86AudioMicMute,spawn,${scripts.micToggle}
+
+ bind=NONE,XF86MonBrightnessUp,spawn,${scripts.brightness} up
+ bind=NONE,XF86MonBrightnessDown,spawn,${scripts.brightness} down
+
+ bind=NONE,Print,spawn,${scripts.screenshot} full
+ bind=SUPER,Print,spawn,${scripts.screenshot} selection
+ bind=SUPER+SHIFT,Print,spawn,${scripts.screenshot} window
+ ''}
+
+ ${lib.optionalString (!cfg.beeConfig.enable && cfg.noctalia) ''
+ bind=SUPER,y,spawn,noctalia msg panel-toggle wallpaper
+ bind=SUPER,a,spawn,noctalia msg panel-toggle launcher
+ bind=SUPER,c,spawn,sh -c 'fyi "Clock" "$(date)"'
+ bind=SUPER,v,spawn,noctalia msg panel-toggle clipboard
+ bind=SUPER,comma,spawn,noctalia msg settings-toggle
+
+ bind=NONE,XF86AudioRaiseVolume,spawn,noctalia msg volume-up
+ bind=NONE,XF86AudioLowerVolume,spawn,noctalia msg volume-down
+ bind=NONE,XF86AudioMute,spawn,noctalia msg volume-mute
+
+ bind=NONE,XF86AudioMicMute,spawn,noctalia msg mic-mute
+
+ bind=NONE,XF86MonBrightnessUp,spawn,noctalia msg brightness-up
+ bind=NONE,XF86MonBrightnessDown,spawn,noctalia msg brightness-down
+
+ bind=NONE,Print,spawn,noctalia msg screenshot-fullscreen
+ ''}
+
bind=SUPER,r,reload_config
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,${scripts.dostuff} settings
bind=SUPER,F12,spawn,gnome-calculator
bind=SUPER,b,spawn,librewolf
- bind=SUPER,e,spawn,pcmanfm
+ bind=SUPER,e,spawn,nautilus
bind=SUPER,m,quit
bind=SUPER,q,killclient,
@@ -141,9 +182,6 @@ in
bind=SUPER,k,focusdir,up
bind=SUPER,j,focusdir,down
- 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
@@ -199,19 +237,12 @@ in
bind=ALT,h,resizewin,-50,+0
bind=ALT,l,resizewin,+50,+0
- 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,${scripts.micToggle}
-
- 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
@@ -242,8 +273,6 @@ in
tagrule=id:8,layout_name:tile
tagrule=id:9,layout_name:tile
- # 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
@@ -251,10 +280,9 @@ in
env=XDG_SESSION_TYPE,wayland
env=GDK_BACKEND,wayland,x11
env=GDK_SCALE,1
- # env=XCURSOR_PATH,/usr/share/icons
env=NVD_BACKEND,direct
- animations=0
+ animations=${if eyecandy && cfg.eyeCandy.animations.enable then "1" else "0"}
layer_animations=0
animation_type_open=slide
animation_type_close=zoom
@@ -279,11 +307,15 @@ in
animation_curve_opafadein=0.46,1.0,0.29,1
'';
autostart_sh = ''
- wl-paste --type text --watch cliphist store &
gnome-keyring-daemon --start --components=secrets,ssh,pkcs11 &
- awww-daemon &
- waybar &
- dunst &
+ ${lib.optionalString cfg.beeConfig.enable ''
+ wl-paste --type text --watch cliphist store &
+ awww-daemon &
+ dunst &
+ ''}
+ ${lib.optionalString cfg.beeConfig.waybar ''
+ waybar &
+ ''}
'';
};
}
diff --git a/common/modules/window_managers/niri/default.nix b/common/modules/window_managers/niri/default.nix
new file mode 100644
index 0000000..0306256
--- /dev/null
+++ b/common/modules/window_managers/niri/default.nix
@@ -0,0 +1,388 @@
+{
+ homeManager,
+ inputs,
+ moduleNameSpace,
+ ...
+}:
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
+let
+ cfg = config.${moduleNameSpace}.windowManagers;
+ scripts = import ../scripts.nix { inherit pkgs config; };
+ eyecandy = cfg.eyeCandy.enable;
+in
+{
+ config = lib.mkIf cfg.niri.enable (
+ if homeManager then
+ {
+ xdg.configFile."niri/config.kdl".text = ''
+ include optional=true "./noctalia.kdl"
+ workspace "1"
+ workspace "2"
+ workspace "3"
+ workspace "4"
+
+ input {
+ keyboard {
+ xkb {
+ layout "us"
+ }
+
+ repeat-delay 300
+ repeat-rate 50
+ }
+
+ touchpad {
+ tap
+ natural-scroll
+ // accel-speed 0.2
+ // accel-profile "flat"
+ // scroll-method "two-finger"
+ // disabled-on-external-mouse
+ }
+
+ warp-mouse-to-focus
+ focus-follows-mouse max-scroll-amount="0%"
+ }
+
+ output "eDP-1" {
+ mode "1920x1080@120.030"
+ scale 1
+ transform "normal"
+ position x=1280 y=0
+ }
+
+ blur {
+ passes ${if eyecandy then toString cfg.eyeCandy.window.blur.passes else "0"}
+ offset ${if eyecandy then toString cfg.eyeCandy.window.blur.radius else "0"}
+ noise 0.03
+ saturation 1.0
+ }
+
+ layout {
+ gaps 4
+ center-focused-column "never"
+ background-color "transparent"
+
+ preset-column-widths {
+ proportion 0.33333
+ proportion 0.5
+ proportion 0.66667
+ }
+
+ default-column-width { proportion 0.5; }
+
+ preset-window-heights {
+ proportion 0.33333
+ proportion 0.5
+ proportion 0.66667
+ }
+
+ focus-ring {
+ off
+ }
+
+ border {
+ on
+ width 2
+ }
+
+ shadow {
+ off
+ // on
+ softness 30
+ spread 5
+ offset x=0 y=5
+ draw-behind-window true
+ }
+
+ tab-indicator {
+ on
+ hide-when-single-tab
+ place-within-column
+ gap 5
+ width 4
+ length total-proportion=1.0
+ position "right"
+ gaps-between-tabs 2
+ corner-radius 8
+ }
+
+ insert-hint {
+ on
+ }
+ }
+
+ hotkey-overlay {
+ skip-at-startup
+ }
+
+ prefer-no-csd
+ // screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
+ screenshot-path null
+
+ animations {
+ on
+ // Slow down all animations by this factor. Values below 1 speed them up instead.
+ // slowdown 3.0
+ }
+
+ gestures {
+ hot-corners {
+ off
+ }
+ }
+
+ window-rule {
+ match title="^Kdenlive$"
+ open-floating true
+ open-on-workspace "3"
+ }
+
+ window-rule {
+ match app-id=r#"^(firefox|librewolf)$"#
+ open-on-workspace "1"
+ }
+
+ window-rule {
+ match app-id=r#"^(foot|alacritty|ghotty|kitty)$"#
+ open-on-workspace "2"
+ }
+
+ window-rule {
+ match app-id=r#"^(vesktop|mpv|.*Kdenlive.*)$"#
+ open-on-workspace "3"
+ }
+
+ binds {
+ Mod+Shift+Slash { show-hotkey-overlay; }
+
+ Mod+Return hotkey-overlay-title="Open a Terminal: ${config.beeMods.terminal.default}" { spawn "${config.beeMods.terminal.default}"; }
+
+ ${lib.optionalString (config.beeMods.matugen.enable && cfg.beeConfig.enable && !cfg.noctalia) ''
+ Mod+A hotkey-overlay-title="Run an Application" { spawn-sh "rofi -show drun"; }
+ Mod+Y hotkey-overlay-title="Open wallpaper picker" { spawn-sh "${scripts.dostuff} wall"; }
+ Mod+Comma hotkey-overlay-title="Open Noctalia settings" { spawn-sh "${scripts.dostuff} settings"; }
+
+ XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "${scripts.volume} up"; }
+ XF86AudioLowerVolume allow-when-locked=true { spawn-sh "${scripts.volume} down"; }
+ XF86AudioMute allow-when-locked=true { spawn-sh "${scripts.volume} toggle"; }
+ XF86AudioMicMute allow-when-locked=true { spawn-sh "${scripts.micToggle}"; }
+
+ XF86MonBrightnessUp allow-when-locked=true { spawn-sh "${scripts.volume} up 0.02"; }
+ XF86MonBrightnessDown allow-when-locked=true { spawn-sh "{scripts.volume} down 0.02"; }
+
+ XF86MonBrightnessUp allow-when-locked=true { spawn-sh "${scripts.brightness} up"; }
+ XF86MonBrightnessDown allow-when-locked=true { spawn-sh "${scripts.brightness} down"; }
+ ''}
+
+ ${lib.optionalString (!cfg.beeConfig.enable && cfg.noctalia) ''
+ Mod+A hotkey-overlay-title="Run an Application" { spawn-sh "noctalia msg panel-toggle launcher"; }
+ Mod+Y hotkey-overlay-title="Open wallpaper picker" { spawn-sh "noctalia msg panel-toggle wallpaper"; }
+ Mod+V hotkey-overlay-title="Open clipboard panel" { spawn-sh "noctalia msg panel-toggle clipboard"; }
+ Mod+Comma hotkey-overlay-title="Open Noctalia settings" { spawn-sh "noctalia msg settings-toggle"; }
+ Mod+S { spawn-sh "noctalia msg panel-toggle control-center"; }
+
+
+ XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "noctalia msg volume-up"; }
+ XF86AudioLowerVolume allow-when-locked=true { spawn-sh "noctalia msg volume-down"; }
+ XF86AudioMute allow-when-locked=true { spawn-sh "noctalia msg volume-mute"; }
+ XF86AudioMicMute allow-when-locked=true { spawn-sh "noctalia msg mic-mute"; }
+
+ Mod+TouchpadScrollDown { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02+"; }
+ Mod+TouchpadScrollUp { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02-"; }
+
+ XF86MonBrightnessUp allow-when-locked=true { spawn-sh "noctalia msg volume-up 0.02"; }
+ XF86MonBrightnessDown allow-when-locked=true { spawn-sh "noctalia msg volume-down 0.02"; }
+ ''}
+
+ Mod+Shift+C hotkey-overlay-title="Get current dat and time as noticiation" { spawn-sh "fyi Clock $(date)"; }
+ XF86AudioPlay allow-when-locked=true { spawn-sh "playerctl play-pause"; }
+ XF86AudioStop allow-when-locked=true { spawn-sh "playerctl stop"; }
+ XF86AudioPrev allow-when-locked=true { spawn-sh "playerctl previous"; }
+ XF86AudioNext allow-when-locked=true { spawn-sh "playerctl next"; }
+
+
+ Mod+O repeat=false { toggle-overview; }
+
+ Mod+Q repeat=false { close-window; }
+
+ Mod+Left { focus-column-left; }
+ Mod+Down { focus-window-down; }
+ Mod+Up { focus-window-up; }
+ Mod+Right { focus-column-right; }
+ Mod+H { focus-column-left; }
+ Mod+J { focus-window-down; }
+ Mod+K { focus-window-up; }
+ Mod+L { focus-column-right; }
+
+ Mod+Ctrl+Left { move-column-left; }
+ Mod+Ctrl+Down { move-window-down; }
+ Mod+Ctrl+Up { move-window-up; }
+ Mod+Ctrl+Right { move-column-right; }
+ Mod+Ctrl+H { move-column-left; }
+ Mod+Ctrl+J { move-window-down; }
+ Mod+Ctrl+K { move-window-up; }
+ Mod+Ctrl+L { move-column-right; }
+
+ // Alternative commands that move across workspaces when reaching
+ // the first or last window in a column.
+ // Mod+J { focus-window-or-workspace-down; }
+ // Mod+K { focus-window-or-workspace-up; }
+ // Mod+Ctrl+J { move-window-down-or-to-workspace-down; }
+ // Mod+Ctrl+K { move-window-up-or-to-workspace-up; }
+
+ Mod+Home { focus-column-first; }
+ Mod+End { focus-column-last; }
+ Mod+Ctrl+Home { move-column-to-first; }
+ Mod+Ctrl+End { move-column-to-last; }
+
+ Mod+Shift+Left { focus-monitor-left; }
+ Mod+Shift+Down { focus-monitor-down; }
+ Mod+Shift+Up { focus-monitor-up; }
+ Mod+Shift+Right { focus-monitor-right; }
+ Mod+Shift+H { focus-monitor-left; }
+ Mod+Shift+J { focus-monitor-down; }
+ Mod+Shift+K { focus-monitor-up; }
+ Mod+Shift+L { focus-monitor-right; }
+
+ Mod+Shift+Ctrl+Left { move-column-to-monitor-left; }
+ Mod+Shift+Ctrl+Down { move-column-to-monitor-down; }
+ Mod+Shift+Ctrl+Up { move-column-to-monitor-up; }
+ Mod+Shift+Ctrl+Right { move-column-to-monitor-right; }
+ Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
+ Mod+Shift+Ctrl+J { move-column-to-monitor-down; }
+ Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
+ Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
+
+ Mod+Page_Down { focus-workspace-down; }
+ Mod+Page_Up { focus-workspace-up; }
+ Mod+U { focus-workspace-down; }
+ Mod+I { focus-workspace-up; }
+ Mod+Ctrl+Page_Down { move-column-to-workspace-down; }
+ Mod+Ctrl+Page_Up { move-column-to-workspace-up; }
+ Mod+Ctrl+U { move-column-to-workspace-down; }
+ Mod+Ctrl+I { move-column-to-workspace-up; }
+
+ Mod+Shift+Page_Down { move-workspace-down; }
+ Mod+Shift+Page_Up { move-workspace-up; }
+ Mod+Shift+U { move-workspace-down; }
+ Mod+Shift+I { move-workspace-up; }
+
+ Mod+WheelScrollRight { focus-column-right; }
+ Mod+WheelScrollLeft { focus-column-left; }
+ Mod+Ctrl+WheelScrollRight { move-column-right; }
+ Mod+Ctrl+WheelScrollLeft { move-column-left; }
+
+ // Usually scrolling up and down with Shift in applications results in
+ // horizontal scrolling; these binds replicate that.
+ Mod+Shift+WheelScrollDown { focus-column-right; }
+ Mod+Shift+WheelScrollUp { focus-column-left; }
+ Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
+ Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
+
+
+ Mod+1 { focus-workspace 1; }
+ Mod+2 { focus-workspace 2; }
+ Mod+3 { focus-workspace 3; }
+ Mod+4 { focus-workspace 4; }
+ Mod+5 { focus-workspace 5; }
+ Mod+6 { focus-workspace 6; }
+ Mod+7 { focus-workspace 7; }
+ Mod+8 { focus-workspace 8; }
+ Mod+9 { focus-workspace 9; }
+ Mod+Shift+1 { move-column-to-workspace 1; }
+ Mod+Shift+2 { move-column-to-workspace 2; }
+ Mod+Shift+3 { move-column-to-workspace 3; }
+ Mod+Shift+4 { move-column-to-workspace 4; }
+ Mod+Shift+5 { move-column-to-workspace 5; }
+ Mod+Shift+6 { move-column-to-workspace 6; }
+ Mod+Shift+7 { move-column-to-workspace 7; }
+ Mod+Shift+8 { move-column-to-workspace 8; }
+ Mod+Shift+9 { move-column-to-workspace 9; }
+
+ Mod+BracketLeft { consume-or-expel-window-left; }
+ Mod+BracketRight { consume-or-expel-window-right; }
+
+ Mod+Shift+BracketLeft { consume-window-into-column; }
+ Mod+Shift+BracketRight { expel-window-from-column; }
+
+ Mod+R { switch-preset-column-width; }
+ // Cycling through the presets in reverse order is also possible.
+ // Mod+R { switch-preset-column-width-back; }
+ Mod+Shift+R { switch-preset-window-height; }
+ Mod+Ctrl+R { reset-window-height; }
+ Mod+D { maximize-column; }
+ Mod+F { fullscreen-window; }
+
+ // Expand the focused column to space not taken up by other fully visible columns.
+ // Makes the column "fill the rest of the space".
+ Mod+Ctrl+F { expand-column-to-available-width; }
+
+ Mod+C { center-column; }
+
+ // Center all fully visible columns on screen.
+ Mod+Ctrl+C { center-visible-columns; }
+
+ // Finer width adjustments.
+ // This command can also:
+ // * set width in pixels: "1000"
+ // * adjust width in pixels: "-5" or "+5"
+ // * set width as a percentage of screen width: "25%"
+ // * adjust width as a percentage of screen width: "-10%" or "+10%"
+ // Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0,
+ // set-column-width "100" will make the column occupy 200 physical screen pixels.
+ Mod+Minus { set-column-width "-10%"; }
+ Mod+Equal { set-column-width "+10%"; }
+
+ // Finer height adjustments when in column with other windows.
+ Mod+Shift+Minus { set-window-height "-10%"; }
+ Mod+Shift+Equal { set-window-height "+10%"; }
+
+ Mod+Space { toggle-window-floating; }
+ Mod+Shift+Space { switch-focus-between-floating-and-tiling; }
+
+ Mod+W { toggle-column-tabbed-display; }
+
+ // Actions to switch layouts.
+ // Note: if you uncomment these, make sure you do NOT have
+ // a matching layout switch hotkey configured in xkb options above.
+ // Having both at once on the same hotkey will break the switching,
+ // since it will switch twice upon pressing the hotkey (once by xkb, once by niri).
+ Mod+Shift+N { switch-layout "next"; }
+ Mod+Shift+P { switch-layout "prev"; }
+
+ Print { screenshot-screen; }
+ Mod+Print { screenshot; }
+ Mod+Shift+Print { screenshot-window; }
+
+ // Applications such as remote-desktop clients and software KVM switches may
+ // request that niri stops processing the keyboard shortcuts defined here
+ // so they may, for example, forward the key presses as-is to a remote machine.
+ // It's a good idea to bind an escape hatch to toggle the inhibitor,
+ // so a buggy application can't hold your session hostage.
+ //
+ // The allow-inhibiting=false property can be applied to other binds as well,
+ // which ensures niri always processes them, even when an inhibitor is active.
+ Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
+
+ Mod+Shift+E { quit; }
+ Ctrl+Alt+Delete { quit; }
+
+ // Mod+Shift+P { power-off-monitors; }
+ }
+ '';
+ }
+ else
+ {
+ programs.niri = {
+ enable = true;
+ useNautilus = true;
+ };
+ }
+ );
+}
diff --git a/common/modules/window_managers/noctalia.nix b/common/modules/window_managers/noctalia.nix
new file mode 100644
index 0000000..cc4c88c
--- /dev/null
+++ b/common/modules/window_managers/noctalia.nix
@@ -0,0 +1,29 @@
+{
+ homeManager,
+ inputs,
+ moduleNameSpace,
+ ...
+}:
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
+let
+ cfg = config.${moduleNameSpace}.windowManagers;
+in
+{
+ imports = lib.optionals homeManager [
+ inputs.noctalia.homeModules.default
+ ];
+
+ config = lib.mkIf cfg.noctalia (
+ lib.optionalAttrs homeManager {
+ programs.noctalia = {
+ enable = true;
+ systemd.enable = true;
+ };
+ }
+ );
+}
diff --git a/common/overlays/IosevkaInput.nix b/common/overlays/IosevkaInput.nix
deleted file mode 100644
index 619a086..0000000
--- a/common/overlays/IosevkaInput.nix
+++ /dev/null
@@ -1,187 +0,0 @@
-final: prev: {
- ioskeley-input = prev.iosevka.override {
- 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.weights.Regular]
- shape = 360
- menu = 400
- css = 400
-
- [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.Italic]
- angle = 9.4
- shape = "italic"
- menu = "italic"
- css = "italic"
-
- [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])"
- '';
- };
-}
diff --git a/common/overlays/default.nix b/common/overlays/default.nix
index 5a6f72b..6918e89 100644
--- a/common/overlays/default.nix
+++ b/common/overlays/default.nix
@@ -1,7 +1,6 @@
{ inputs, ... }:
{
flake.overlays = {
- IosevkaInput = import ./IosevkaInput.nix;
qt6ct = import ./qt6ct.nix;
};
}
diff --git a/common/packages/default.nix b/common/packages/default.nix
new file mode 100644
index 0000000..d2b5ce6
--- /dev/null
+++ b/common/packages/default.nix
@@ -0,0 +1,5 @@
+{ ... }: {
+ perSystem = { pkgs, ... }: {
+ packages.iosevka-input = import ./iosevka-input.nix { inherit pkgs; };
+ };
+}
diff --git a/common/packages/iosevka-input.nix b/common/packages/iosevka-input.nix
new file mode 100644
index 0000000..ab460c4
--- /dev/null
+++ b/common/packages/iosevka-input.nix
@@ -0,0 +1,186 @@
+{ pkgs }:
+pkgs.iosevka.override {
+ 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.weights.Regular]
+ shape = 360
+ menu = 400
+ css = 400
+
+ [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.Italic]
+ angle = 9.4
+ shape = "italic"
+ menu = "italic"
+ css = "italic"
+
+ [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])"
+ '';
+}
diff --git a/common/programs/btop.nix b/common/programs/btop.nix
index a030e3d..6600188 100644
--- a/common/programs/btop.nix
+++ b/common/programs/btop.nix
@@ -3,7 +3,15 @@
programs.btop = {
enable = true;
settings = {
- color_theme = lib.optionalString config.beeMods.matugen.enable "matugen";
+ color_theme =
+ if
+ config.beeMods.matugen.enable
+ && config.beeMods.windowManagers.beeConfig.enable
+ && !config.beeMods.windowManagers.noctalia
+ then
+ "matugen"
+ else
+ "noctalia";
theme_background = false;
truecolor = true;
vim_keys = true;
diff --git a/common/programs/dunst.nix b/common/programs/dunst.nix
index c5b5eb0..78aadf5 100644
--- a/common/programs/dunst.nix
+++ b/common/programs/dunst.nix
@@ -10,31 +10,33 @@ let
'';
in
{
- services.dunst = {
- enable = true;
- settings = {
- global = {
- font = "IosevkaInput 11";
- corner_radius = 0;
- frame_width = 2;
- markup = "yes";
- browser = "librewolf";
+ config = lib.mkIf config.beeMods.windowManagers.beeConfig.enable {
+ services.dunst = {
+ enable = true;
+ settings = {
+ global = {
+ font = "IosevkaInput 11";
+ corner_radius = 0;
+ frame_width = 2;
+ markup = "yes";
+ browser = "librewolf";
- origin = "top-center";
- offset = "(0, 4)";
- };
- urgency_low = {
- timeout = 3;
- };
- urgency_normal = {
- timeout = 5;
- };
- urgency_critical = {
- timeout = 0;
- };
- play_sound = {
- summary = "*";
- script = "${playSound}/bin/play-notification-sound";
+ origin = "top-center";
+ offset = "(0, 4)";
+ };
+ urgency_low = {
+ timeout = 3;
+ };
+ urgency_normal = {
+ timeout = 5;
+ };
+ urgency_critical = {
+ timeout = 0;
+ };
+ play_sound = {
+ summary = "*";
+ script = "${playSound}/bin/play-notification-sound";
+ };
};
};
};
diff --git a/common/programs/fastfetch.nix b/common/programs/fastfetch.nix
index 96c942d..59ba8ac 100644
--- a/common/programs/fastfetch.nix
+++ b/common/programs/fastfetch.nix
@@ -16,7 +16,6 @@
"shell"
"de"
"wm"
- "font"
"terminal"
"cpu"
"gpu"
diff --git a/common/programs/rofi.nix b/common/programs/rofi.nix
index d0abd1a..20fdffe 100644
--- a/common/programs/rofi.nix
+++ b/common/programs/rofi.nix
@@ -5,140 +5,142 @@
...
}:
{
- 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}";
+ config = lib.mkIf config.beeMods.windowManagers.beeConfig.enable {
+ 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
- ];
+ 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;
- }
- '';
- };
+ 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;
- }
+ "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;
- }
+ window {
+ background-color: @bg;
+ border-radius: 0px;
+ border: 2px;
+ border-color: @outline;
+ width: 680px;
+ padding: 10px;
+ }
- mainbox {
- background-color: transparent;
- spacing: 8px;
- }
+ mainbox {
+ background-color: transparent;
+ spacing: 8px;
+ }
- inputbar {
- background-color: @bg-alt;
- border-radius: 0px;
- padding: 10px 12px;
- spacing: 8px;
- children: [entry];
- }
+ 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";
- }
+ 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;
- }
+ 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 {
+ 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 normal normal {
+ background-color: transparent;
+ text-color: @fg;
+ }
- element alternate 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 selected normal {
+ background-color: @selected-bg;
+ text-color: @selected-fg;
+ }
- element normal urgent {
- text-color: @urgent;
- }
+ element normal urgent {
+ text-color: @urgent;
+ }
- element selected urgent {
- background-color: @selected-bg;
- text-color: @urgent;
- }
+ element selected urgent {
+ background-color: @selected-bg;
+ text-color: @urgent;
+ }
- element-icon {
- background-color: transparent;
- size: 22px;
- }
+ element-icon {
+ background-color: transparent;
+ size: 22px;
+ }
- element-text {
- background-color: transparent;
- text-color: inherit;
- vertical-align: 0.5;
- font: "IosevkaInput 13";
- }
- '';
- };
+ 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
index 5cb6a6b..0363bb9 100644
--- a/common/programs/vesktop.nix
+++ b/common/programs/vesktop.nix
@@ -4,7 +4,15 @@
enable = false;
vencord = {
settings = {
- enabledThemes = lib.optionals config.beeMods.matugen.enable [ "system24.css" ];
+ enabledThemes =
+ if
+ config.beeMods.matugen.enable
+ && config.beeMods.windowManagers.beeConfig.enable
+ && !config.beeMods.windowManagers.noctalia
+ then
+ [ "system24-matugen" ]
+ else
+ [ "noctalia-system24" ];
autoUpdate = false;
autoUpdateNotification = false;
notifyAboutUpdates = false;