diff --git a/modules/wayland/default.nix b/modules/wayland/default.nix
new file mode 100755
index 0000000..79f5a5f
--- /dev/null
+++ b/modules/wayland/default.nix
@@ -0,0 +1,84 @@
+{ config, pkgs, lib, inputs, ... }:
+
+let 
+  dbus-hyprland-environment = pkgs.writeTextFile {
+    name = "dbus-hyprland-environment";
+    destination = "/bin/dbus-hyprland-environment";
+    executable = true;
+
+    text = ''
+      dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=hyprland
+      systemctl --user stop pipewire pipewire-media-session xdg-desktop-portal xdg-desktop-portal-wlr xdg-desktop-portal-kde
+      systemctl --user start pipewire wireplumber pipewire-media-session xdg-desktop-portal xdg-desktop-portal-hyprland
+    '';
+  };
+  in
+{
+  environment.systemPackages = with pkgs; [
+    dbus-hyprland-environment
+    wayland
+    glib
+    grim
+    slurp
+    wl-clipboard
+    wlogout
+    wlr-randr
+    rofi-wayland
+    swayidle
+    swaylock-effects
+  ];
+
+  services.dbus.enable = true;
+  xdg.portal = {
+    enable = true;
+    wlr.enable = true;
+    extraPortals = with pkgs; [ 
+
+  ];
+
+  };
+
+  programs.xwayland.enable = true;
+
+  environment.sessionVariables = rec {
+    GBM_BACKEND = "nvidia-drm";
+    __GL_GSYNC_ALLOWED = "0";
+    __GL_VRR_ALLOWED = "0";
+    WLR_DRM_NO_ATOMIC = "1";
+    __GLX_VENDOR_LIBRARY_NAME = "nvidia";
+    _JAVA_AWT_WM_NONREPARENTING = "1";
+
+    # Will break SDDM if running X11
+    QT_QPA_PLATFORM = "wayland";
+    QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
+
+    GDK_BACKEND = "wayland";
+    WLR_NO_HARDWARE_CURSORS = "1";
+    MOZ_ENABLE_WAYLAND = "1";
+    PATH = [
+      "$HOME/bin/:$PATH"
+    ];
+
+    GTK_THEME = "Catppuccin-Pink-Dark";
+    XCURSOR_THEME = "Catppuccin-Mocha-Pink";
+    XCURSOR_SIZE = "24";
+
+  };
+
+  services.greetd = {
+    enable = true;
+    settings = rec {
+      initial_session = {
+        command = "Hyprland";
+        user = "notoh";
+      };
+      default_session = initial_session;
+    };
+  };
+
+  environment.etc."greetd/environments".text = ''
+    Hyprland
+  '';
+
+
+}