diff --git a/home/features/desktop/default.nix b/home/features/desktop/default.nix
index cb802db..af10a2a 100644
--- a/home/features/desktop/default.nix
+++ b/home/features/desktop/default.nix
@@ -9,7 +9,7 @@
./office.nix
./rofi.nix
./theme.nix
- ./waybar.nix
+ ./wayland.nix
];
xdg = {
diff --git a/home/features/desktop/hyprland.nix b/home/features/desktop/hyprland.nix
index 124bd5d..15e17a2 100644
--- a/home/features/desktop/hyprland.nix
+++ b/home/features/desktop/hyprland.nix
@@ -1,199 +1,218 @@
{
- wayland.windowManager.hyprland = {
- settings = {
- xwayland = {
- force_zero_scaling = true;
- };
+ config,
+ lib,
+ pkgs,
+ ...
+}:
+with lib; let
+ cfg = config.features.desktop.hyprland;
+in {
+ options.features.desktop.hyprland.enable =
+ mkEnableOption "Hyprland related stuff";
- exec-once = [
- "hyprpanel"
- "hyprpaper"
- "hyprpaper-random"
- "hypridle"
- "wl-paste --type text --watch cliphist store" # Stores only text data
- "wl-paste --type image --watch cliphist store" # Stores only image data "wl-paste -p -t text --watch clipman store -P --histpath=\"~/.local/share/clipman-primary.json\""
- ];
-
- env = [
- "XCURSOR_SIZE,32"
- "HYPRCURSOR_THEME,Bibata-Modern-Ice"
- "WLR_NO_HARDWARE_CURSORS,1"
- "GTK_THEME,Dracula"
- ];
-
- input = {
- kb_layout = "de,us";
- kb_variant = "";
- kb_model = "";
- kb_rules = "";
- kb_options = "ctrl:nocaps";
- follow_mouse = 1;
- };
-
- general = {
- gaps_in = 5;
- gaps_out = 5;
- border_size = 1;
- "col.active_border" = "rgba(9742b5ee) rgba(9742b5ee) 45deg";
- "col.inactive_border" = "rgba(595959aa)";
- layout = "dwindle";
- };
-
- decoration = {
- shadow = {
- enabled = true;
- range = 60;
- render_power = 3;
- color = "rgba(1E202966)";
- offset = "1 2";
- scale = 0.97;
+ config = mkIf cfg.enable {
+ wayland.windowManager.hyprland = {
+ settings = {
+ xwayland = {
+ force_zero_scaling = true;
};
- rounding = 8;
- blur = {
- enabled = true;
- size = 3;
- passes = 3;
- };
- active_opacity = 0.9;
- inactive_opacity = 0.5;
- };
- animations = {
- enabled = true;
- bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
- animation = [
- "windows, 1, 7, myBezier"
- "windowsOut, 1, 7, default, popin 80%"
- "border, 1, 10, default"
- "borderangle, 1, 8, default"
- "fade, 1, 7, default"
- "workspaces, 1, 6, default"
+ exec-once = [
+ "hyprpanel"
+ "hyprpaper"
+ "hyprpaper-random"
+ "hypridle"
+ "wl-paste --type text --watch cliphist store" # Stores only text data
+ "wl-paste --type image --watch cliphist store" # Stores only image data "wl-paste -p -t text --watch clipman store -P --histpath=\"~/.local/share/clipman-primary.json\""
+ "xwaylandvideobridge"
+ ];
+
+ env = [
+ "XCURSOR_SIZE,32"
+ "HYPRCURSOR_THEME,Bibata-Modern-Ice"
+ "WLR_NO_HARDWARE_CURSORS,1"
+ "GTK_THEME,Dracula"
+ ];
+
+ input = {
+ kb_layout = "de,us";
+ kb_variant = "";
+ kb_model = "";
+ kb_rules = "";
+ kb_options = "ctrl:nocaps";
+ follow_mouse = 1;
+ };
+
+ general = {
+ gaps_in = 5;
+ gaps_out = 5;
+ border_size = 1;
+ "col.active_border" = "rgba(9742b5ee) rgba(9742b5ee) 45deg";
+ "col.inactive_border" = "rgba(595959aa)";
+ layout = "dwindle";
+ };
+
+ decoration = {
+ shadow = {
+ enabled = true;
+ range = 60;
+ render_power = 3;
+ color = "rgba(1E202966)";
+ offset = "1 2";
+ scale = 0.97;
+ };
+ rounding = 8;
+ blur = {
+ enabled = true;
+ size = 3;
+ passes = 3;
+ };
+ active_opacity = 0.9;
+ inactive_opacity = 0.5;
+ };
+
+ animations = {
+ enabled = true;
+ bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
+ animation = [
+ "windows, 1, 7, myBezier"
+ "windowsOut, 1, 7, default, popin 80%"
+ "border, 1, 10, default"
+ "borderangle, 1, 8, default"
+ "fade, 1, 7, default"
+ "workspaces, 1, 6, default"
+ ];
+ };
+
+ dwindle = {
+ pseudotile = true;
+ preserve_split = true;
+ };
+
+ master = {
+ new_status = "master";
+ };
+
+ gestures = {
+ workspace_swipe = false;
+ };
+
+ device = [
+ {
+ name = "epic-mouse-v1";
+ sensitivity = -0.5;
+ }
+ {
+ name = "zsa-technology-labs-moonlander-mark-i";
+ kb_layout = "us";
+ }
+ {
+ name = "keychron-keychron-k7";
+ kb_layout = "us";
+ }
+ ];
+ windowrule = [
+ "float, class:file_progress"
+ "float, class:confirm"
+ "float, class:dialog"
+ "float, class:download"
+ "float, class:notification"
+ "float, class:error"
+ "float, class:splash"
+ "float, class:confirmreset"
+ "float, title:Open File"
+ "float, title:branchdialog"
+ "float, class:pavucontrol-qt"
+ "float, class:pavucontrol"
+ "fullscreen, class:wlogout"
+ "float, title:wlogout"
+ "fullscreen, title:wlogout"
+ "float, class:mpv"
+ "idleinhibit focus, class:mpv"
+ "opacity 1.0 override, class:mpv"
+ "float, title:^(Media viewer)$"
+ "float, title:^(Volume Control)$"
+ "float, title:^(Picture-in-Picture)$"
+ "float,title:^(floating-pomodoro)$"
+ "size 250 50, title:^(floating-pomodoro)$"
+ "move 12 100%-150,title:^(floating-pomodoro)$"
+ "pin,title:^(floating-pomodoro)$"
+ "float, initialTitle:.*streamlabs.com.*"
+ "pin, initialTitle:.*streamlabs.com.*"
+ "size 800 400, initialTitle:.*streamlabs.com.*"
+ "move 100%-820 102, initialTitle:.*alert-box.*"
+ "move 100%-820 512, initialTitle:.*chat-box.*"
+ "opacity 0.5 override, initialTitle:.*streamlabs.com.*"
+ "idleinhibit focus, initialTitle:.*streamlabs.com.*"
+ "noanim, initialTitle:.*streamlabs.com.*"
+ "noborder, initialTitle:.*streamlabs.com.*"
+ "noshadow, initialTitle:.*streamlabs.com.*"
+ "noblur, initialTitle:.*streamlabs.com.*"
+ "opacity 0.0 override, class:^(xwaylandvideobridge)$"
+ "noanim, class:^(xwaylandvideobridge)$"
+ "noinitialfocus, class:^(xwaylandvideobridge)$"
+ "maxsize 1 1, class:^(xwaylandvideobridge)$"
+ "noblur, class:^(xwaylandvideobridge)$"
+ "nofocus, class:^(xwaylandvideobridge)$"
+ ];
+ "$mainMod" = "SUPER";
+
+ bind = [
+ "$mainMod, return, exec, nu -c zellij-ps"
+ # "$mainMod, t, exec, warp-terminal"
+ "$mainMod, t, exec, kitty -e nu -c 'nitch; exec nu'"
+ "$mainMod SHIFT, t, exec, launch-timer"
+ "$mainMod SHIFT, e, exec, kitty -e zellij_nvim"
+ "$mainMod, o, exec, hyprctl setprop activewindow opaque toggle"
+ "$mainMod, r, exec, hyprctl dispatch focuswindow \"initialtitle:.*alert-box.*\" && hyprctl dispatch moveactive exact 4300 102 && hyprctl dispatch focuswindow \"initialtitle:.*chat-box.*\" && hyprctl dispatch moveactive exact 4300 512"
+ "$mainMod, b, exec, thunar"
+ "$mainMod SHIFT, B, exec, vivaldi"
+ "$mainMod, Escape, exec, wlogout -p layer-shell"
+ "$mainMod, Space, togglefloating"
+ "$mainMod, q, killactive"
+ "$mainMod, M, exit"
+ "$mainMod, F, fullscreen"
+ "$mainMod SHIFT, V, togglefloating"
+ "$mainMod, D, exec, rofi -show"
+ "$mainMod, V, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy"
+ "$mainMod SHIFT, S, exec, bemoji"
+ "$mainMod, P, exec, rofi-pass"
+ "$mainMod SHIFT, P, pseudo"
+ "$mainMod, J, togglesplit"
+ "$mainMod, h, movefocus, l"
+ "$mainMod, l, movefocus, r"
+ "$mainMod, k, movefocus, u"
+ "$mainMod, j, movefocus, d"
+ "$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, 0, workspace, 10"
+ "$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"
+ "$mainMod SHIFT, 0, movetoworkspace, 10"
+ "$mainMod, mouse_down, workspace, e+1"
+ "$mainMod, mouse_up, workspace, e-1"
+ ];
+
+ bindm = [
+ "$mainMod, mouse:272, movewindow"
+ "$mainMod, mouse:273, resizewindow"
];
};
-
- dwindle = {
- pseudotile = true;
- preserve_split = true;
- };
-
- master = {
- new_status = "master";
- };
-
- gestures = {
- workspace_swipe = false;
- };
-
- device = [
- {
- name = "epic-mouse-v1";
- sensitivity = -0.5;
- }
- {
- name = "zsa-technology-labs-moonlander-mark-i";
- kb_layout = "us";
- }
- {
- name = "keychron-keychron-k7";
- kb_layout = "us";
- }
- ];
- windowrule = [
- "float, class:file_progress"
- "float, class:confirm"
- "float, class:dialog"
- "float, class:download"
- "float, class:notification"
- "float, class:error"
- "float, class:splash"
- "float, class:confirmreset"
- "float, title:Open File"
- "float, title:branchdialog"
- "float, class:pavucontrol-qt"
- "float, class:pavucontrol"
- "fullscreen, class:wlogout"
- "float, title:wlogout"
- "fullscreen, title:wlogout"
- "float, class:mpv"
- "idleinhibit focus, class:mpv"
- "opacity 1.0 override, class:mpv"
- "float, title:^(Media viewer)$"
- "float, title:^(Volume Control)$"
- "float, title:^(Picture-in-Picture)$"
- "float,title:^(floating-pomodoro)$"
- "size 250 50, title:^(floating-pomodoro)$"
- "move 12 100%-150,title:^(floating-pomodoro)$"
- "pin,title:^(floating-pomodoro)$"
- "float, initialTitle:.*streamlabs.com.*"
- "pin, initialTitle:.*streamlabs.com.*"
- "size 800 400, initialTitle:.*streamlabs.com.*"
- "move 100%-820 102, initialTitle:.*alert-box.*"
- "move 100%-820 512, initialTitle:.*chat-box.*"
- "opacity 0.5 override, initialTitle:.*streamlabs.com.*"
- "idleinhibit focus, initialTitle:.*streamlabs.com.*"
- "noanim, initialTitle:.*streamlabs.com.*"
- "noborder, initialTitle:.*streamlabs.com.*"
- "noshadow, initialTitle:.*streamlabs.com.*"
- "noblur, initialTitle:.*streamlabs.com.*"
- ];
-
- "$mainMod" = "SUPER";
-
- bind = [
- "$mainMod, return, exec, nu -c zellij-ps"
- # "$mainMod, t, exec, warp-terminal"
- "$mainMod, t, exec, kitty -e nu -c 'nitch; exec nu'"
- "$mainMod SHIFT, t, exec, launch-timer"
- "$mainMod SHIFT, e, exec, kitty -e zellij_nvim"
- "$mainMod, o, exec, hyprctl setprop activewindow opaque toggle"
- "$mainMod, r, exec, hyprctl dispatch focuswindow \"initialtitle:.*alert-box.*\" && hyprctl dispatch moveactive exact 4300 102 && hyprctl dispatch focuswindow \"initialtitle:.*chat-box.*\" && hyprctl dispatch moveactive exact 4300 512"
- "$mainMod, b, exec, thunar"
- "$mainMod SHIFT, B, exec, vivaldi"
- "$mainMod, Escape, exec, wlogout -p layer-shell"
- "$mainMod, Space, togglefloating"
- "$mainMod, q, killactive"
- "$mainMod, M, exit"
- "$mainMod, F, fullscreen"
- "$mainMod SHIFT, V, togglefloating"
- "$mainMod, D, exec, rofi -show"
- "$mainMod, V, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy"
- "$mainMod SHIFT, S, exec, bemoji"
- "$mainMod, P, exec, rofi-pass"
- "$mainMod SHIFT, P, pseudo"
- "$mainMod, J, togglesplit"
- "$mainMod, h, movefocus, l"
- "$mainMod, l, movefocus, r"
- "$mainMod, k, movefocus, u"
- "$mainMod, j, movefocus, d"
- "$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, 0, workspace, 10"
- "$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"
- "$mainMod SHIFT, 0, movetoworkspace, 10"
- "$mainMod, mouse_down, workspace, e+1"
- "$mainMod, mouse_up, workspace, e-1"
- ];
-
- bindm = [
- "$mainMod, mouse:272, movewindow"
- "$mainMod, mouse:273, resizewindow"
- ];
};
};
}
diff --git a/home/features/desktop/waybar.nix b/home/features/desktop/waybar.nix
deleted file mode 100644
index 3c9b80c..0000000
--- a/home/features/desktop/waybar.nix
+++ /dev/null
@@ -1,285 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-with lib; let
- cfg = config.features.desktop.wayland;
-in {
- options.features.desktop.wayland.enable = mkEnableOption "wayland extra tools and config";
-
- config = mkIf cfg.enable {
- programs.waybar = {
- enable = true;
- style = ''
- @define-color background-darker rgba(30, 31, 41, 230);
- @define-color background #282a36;
- @define-color selection #44475a;
- @define-color foreground #f8f8f2;
- @define-color comment #6272a4;
- @define-color cyan #8be9fd;
- @define-color green #50fa7b;
- @define-color orange #ffb86c;
- @define-color pink #ff79c6;
- @define-color purple #bd93f9;
- @define-color red #ff5555;
- @define-color yellow #f1fa8c;
-
- * {
- border: none;
- border-radius: 0;
- font-family: FiraCode Nerd Font;
- font-weight: bold;
- font-size: 14px;
- min-height: 0;
- }
-
- window#waybar {
- background: rgba(21, 18, 27, 0);
- color: #cdd6f4;
- }
-
- tooltip {
- background: #1e1e2e;
- border-radius: 10px;
- border-width: 2px;
- border-style: solid;
- border-color: #11111b;
- }
-
- #workspaces button {
- padding: 5px;
- color: #313244;
- margin-right: 5px;
- }
-
- #workspaces button.active {
- color: #11111b;
- background: #a6e3a1;
- border-radius: 10px;
- }
-
- #workspaces button.focused {
- color: #a6adc8;
- background: #eba0ac;
- border-radius: 10px;
- }
-
- #workspaces button.urgent {
- color: #11111b;
- background: #a6e3a1;
- border-radius: 10px;
- }
-
- #workspaces button:hover {
- background: #11111b;
- color: #cdd6f4;
- border-radius: 10px;
- }
-
- #custom-language,
- #custom-updates,
- #custom-caffeine,
- #custom-weather,
- #window,
- #clock,
- #battery,
- #pulseaudio,
- #network,
- #workspaces,
- #tray,
- #backlight {
- background: #1e1e2e;
- padding: 0px 10px;
- margin: 3px 0px;
- margin-top: 10px;
- border: 1px solid #181825;
- }
-
- #tray {
- border-radius: 10px;
- margin-right: 10px;
- }
-
- #workspaces {
- background: #1e1e2e;
- border-radius: 10px;
- margin-left: 10px;
- padding-right: 0px;
- padding-left: 5px;
- }
-
- #custom-caffeine {
- color: #89dceb;
- border-radius: 10px 0px 0px 10px;
- border-right: 0px;
- margin-left: 10px;
- }
-
- #custom-language {
- color: #f38ba8;
- border-left: 0px;
- border-right: 0px;
- }
-
- #custom-updates {
- color: #f5c2e7;
- border-left: 0px;
- border-right: 0px;
- }
-
- #window {
- border-radius: 10px;
- margin-left: 60px;
- margin-right: 60px;
- }
-
- #clock {
- color: #fab387;
- border-radius: 10px 0px 0px 10px;
- margin-left: 0px;
- border-right: 0px;
- }
-
- #network {
- color: #f9e2af;
- border-left: 0px;
- border-right: 0px;
- }
-
- #pulseaudio {
- color: #89b4fa;
- border-left: 0px;
- border-right: 0px;
- }
-
- #pulseaudio.microphone {
- color: #cba6f7;
- border-left: 0px;
- border-right: 0px;
- }
-
- #battery {
- color: #a6e3a1;
- border-radius: 0 10px 10px 0;
- margin-right: 10px;
- border-left: 0px;
- }
-
- #custom-weather {
- border-radius: 0px 10px 10px 0px;
- border-right: 0px;
- margin-left: 0px;
- }
- '';
- settings = {
- mainbar = {
- layer = "top";
- position = "top";
- mod = "dock";
- exclusive = true;
- passthrough = false;
- gtk-layer-shell = true;
- height = 0;
- modules-left = ["clock" "custom/weather" "hyprland/workspaces"];
- modules-center = ["hyprland/window"];
- modules-right = [
- "tray"
- "custom/language"
- "battery"
- "backlight"
- "pulseaudio"
- "pulseaudio#microphone"
- ];
-
- "hyprland/window" = {
- format = "👉 {}";
- seperate-outputs = true;
- };
- "hyprland/workspaces" = {
- disable-scroll = true;
- all-outputs = true;
- on-click = "activate";
- format = " {name} {icon} ";
- on-scroll-up = "hyprctl dispatch workspace e+1";
- on-scroll-down = "hyprctl dispatch workspace e-1";
- format-icons = {
- "1" = "";
- "2" = "";
- "3" = "";
- "4" = "";
- "5" = "";
- "6" = "";
- "7" = "";
- };
- persistent_workspaces = {
- "1" = [];
- "2" = [];
- "3" = [];
- "4" = [];
- };
- };
- "custom/weather" = {
- format = "{}°C";
- tooltip = true;
- interval = 3600;
- exec = "wttrbar --location Pockau-Lengefeld";
- return-type = "json";
- };
- tray = {
- icon-size = 13;
- spacing = 10;
- };
- clock = {
- format = " {:%R %d/%m}";
- tooltip-format = "{:%Y %B}\n{calendar}";
- };
- pulseaudio = {
- format = "{icon} {volume}%";
- tooltip = false;
- format-muted = " Muted";
- on-click = "pamixer -t";
- on-scroll-up = "pamixer -i 5";
- on-scroll-down = "pamixer -d 5";
- scroll-step = 5;
- format-icons = {
- headphone = "";
- hands-free = "";
- headset = "";
- phone = "";
- portable = "";
- car = "";
- default = ["" "" ""];
- };
- };
- "pulseaudio#microphone" = {
- format = "{format_source}";
- format-source = " {volume}%";
- format-source-muted = " Muted";
- on-click = "pamixer --default-source -t";
- on-scroll-up = "pamixer --default-source -i 5";
- on-scroll-down = "pamixer --default-source -d 5";
- scroll-step = 5;
- };
- };
- };
- };
-
- home.packages = with pkgs; [
- grim
- hyprcursor
- hyprlock
- hyprpaper
- qt6.qtwayland
- slurp
- waypipe
- wl-clipboard
- wf-recorder
- wl-mirror
- wlogout
- wtype
- ydotool
- ];
- };
-}
diff --git a/home/features/desktop/wayland.nix b/home/features/desktop/wayland.nix
new file mode 100644
index 0000000..e53502a
--- /dev/null
+++ b/home/features/desktop/wayland.nix
@@ -0,0 +1,30 @@
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
+with lib; let
+ cfg = config.features.desktop.wayland;
+in {
+ options.features.desktop.wayland.enable = mkEnableOption "wayland extra tools and config";
+
+ config = mkIf cfg.enable {
+ home.packages = with pkgs; [
+ grim
+ kdePackages.xwaylandvideobridge
+ hyprcursor
+ hyprlock
+ hyprpaper
+ qt6.qtwayland
+ slurp
+ waypipe
+ wl-clipboard
+ wf-recorder
+ wl-mirror
+ wlogout
+ wtype
+ ydotool
+ ];
+ };
+}
diff --git a/home/m3tam3re/m3-ares.nix b/home/m3tam3re/m3-ares.nix
index 0137490..eb7f48c 100644
--- a/home/m3tam3re/m3-ares.nix
+++ b/home/m3tam3re/m3-ares.nix
@@ -16,11 +16,7 @@ in {
#./services/librechat.nix
];
- options.features.desktop.hyprland.enable =
- mkEnableOption "enable Hyprland";
-
config = mkMerge [
- # Base configuration
{
xdg = {
# TODO: better structure
@@ -69,7 +65,7 @@ in {
};
}
- (mkIf cfg.enable {
+ (mkIf config.features.desktop.hyprland.enable {
wayland.windowManager.hyprland = {
enable = true;
settings = {
diff --git a/home/m3tam3re/m3-kratos.nix b/home/m3tam3re/m3-kratos.nix
index 71d33b6..4af6d4c 100644
--- a/home/m3tam3re/m3-kratos.nix
+++ b/home/m3tam3re/m3-kratos.nix
@@ -15,11 +15,7 @@ in {
../features/desktop
];
- options.features.desktop.hyprland.enable =
- mkEnableOption "enable Hyprland";
-
config = mkMerge [
- # Base configuration
{
xdg = {
# TODO: better structure
@@ -67,7 +63,7 @@ in {
};
}
- (mkIf cfg.enable {
+ (mkIf config.features.desktop.hyprland.enable {
wayland.windowManager.hyprland = {
enable = true;
settings = {
diff --git a/pkgs/default.nix b/pkgs/default.nix
index 0ce81b7..47684f1 100644
--- a/pkgs/default.nix
+++ b/pkgs/default.nix
@@ -1,6 +1,7 @@
{pkgs, ...}: {
# Define your custom packages here
hyprpaper-random = pkgs.callPackage ./hyprpaper-random {};
+ launch-webapp = pkgs.callPackage ./launch-webapp/default.nix {};
msty = pkgs.callPackage ./msty {};
msty-sidecar = pkgs.callPackage ./msty-sidecar {};
zellij-ps = pkgs.callPackage ./zellij-ps {};