diff --git a/2configs/gui/base.nix b/2configs/gui/base.nix
index a9ac9b5..93e0ae1 100644
--- a/2configs/gui/base.nix
+++ b/2configs/gui/base.nix
@@ -20,13 +20,12 @@ in
     ./pipewire.nix
     # ./gnome.nix
     # ./kde.nix
-    ./hyprland.nix
+    ./hyprland
   ];
 
 
   # services.redshift.enable = true;
   services.xserver = {
-    enable = true;
     xkb.layout = "us";
     xkb.variant = "altgr-intl";
     xkb.options = "ctrl:nocaps, eurosign:e";
diff --git a/2configs/gui/gnome.nix b/2configs/gui/gnome.nix
index b9701f4..ebe0656 100644
--- a/2configs/gui/gnome.nix
+++ b/2configs/gui/gnome.nix
@@ -11,6 +11,7 @@ in
   services.udev.packages = [ pkgs.gnome.gnome-settings-daemon ];
   programs.gnome-terminal.enable = true;
   services.xserver = {
+    enable = true;
     desktopManager.gnome.enable = true;
     displayManager.gdm.enable = true;
     #displayManager.autoLogin = {
diff --git a/2configs/gui/hyprland.nix b/2configs/gui/hyprland.nix
deleted file mode 100644
index 94e188d..0000000
--- a/2configs/gui/hyprland.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  programs.hyprland = {
-    # Install the packages from nixpkgs
-    enable = true;
-    # Whether to enable XWayland
-    xwayland.enable = true;
-  };
-}
diff --git a/2configs/gui/hyprland/default.nix b/2configs/gui/hyprland/default.nix
new file mode 100644
index 0000000..6145282
--- /dev/null
+++ b/2configs/gui/hyprland/default.nix
@@ -0,0 +1,68 @@
+{ pkgs, config, ... }:
+let
+  mainUser = config.krebs.build.user.name;
+in {
+  imports = [
+    ./kitty.nix
+    ./flameshot.nix
+  ];
+  # programs.hyprland.enable = true;
+  security.pam.services.hyprlock = {};
+  # security.pam.services.swaylock = {}; 
+
+  home-manager.users.${mainUser} = {
+    home.packages = with pkgs; [
+      dolphin
+      wofi
+    ];
+
+    programs.hyprlock.enable = true;
+    # programs.swaylock.enable = true;
+
+    services.hypridle.enable = true;
+    programs.waybar.enable = true;
+    programs.waybar.systemd.enable = true;
+    services.network-manager-applet.enable = true;
+
+    home.pointerCursor = {
+      gtk.enable = true;
+      # x11.enable = true;
+      package = pkgs.bibata-cursors;
+      name = "Bibata-Modern-Classic";
+      size = 16;
+    };
+
+
+    wayland.windowManager.hyprland = {
+      enable = true;
+      extraConfig = builtins.readFile ./hyprland.conf;
+     xwayland.enable = true;
+     systemd.enable = true;
+
+     # settings = {
+     #   bind =
+     #    [
+     #      "SUPER , F, exec, firefox"
+     #      "SUPER SHIFT, c, killactive"
+     #    ", Print, exec, grimblast copy area"
+     #  ]
+     #  ++ (
+     #    # workspaces
+     #    # binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
+     #    builtins.concatLists (builtins.genList (
+     #      x: let # 1..10
+     #      ws = let
+     #        c = (x + 1) / 10; 
+     #      in
+     #      builtins.toString (x + 1 - (c * 10));
+     #      in [
+     #        "SUPER, ${ws}, workspace, ${toString (x + 1)}"
+     #        "SUPER SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}"
+     #      ]
+     #      )
+     #      10)
+     #  );
+     #};
+    };
+  };
+}
diff --git a/2configs/gui/flameshot.nix b/2configs/gui/hyprland/flameshot.nix
similarity index 100%
rename from 2configs/gui/flameshot.nix
rename to 2configs/gui/hyprland/flameshot.nix
diff --git a/2configs/gui/hyprland/hyprland.conf b/2configs/gui/hyprland/hyprland.conf
new file mode 100644
index 0000000..f8b7e16
--- /dev/null
+++ b/2configs/gui/hyprland/hyprland.conf
@@ -0,0 +1,259 @@
+autogenerated = 0 # remove this line to remove the warning
+
+# This is an example Hyprland config file.
+# Refer to the wiki for more information.
+# https://wiki.hyprland.org/Configuring/Configuring-Hyprland/
+
+# Please note not all available settings / options are set here.
+# For a full list, see the wiki
+
+# You can split this configuration into multiple files
+# Create your files separately and then link them to this file like this:
+# source = ~/.config/hypr/myColors.conf
+
+
+################
+### MONITORS ###
+################
+
+# See https://wiki.hyprland.org/Configuring/Monitors/
+#
+# do not scale
+monitor=,preferred,auto,1.0
+
+# automatic scaling (1.25)
+# monitor=,preferred,auto,auto
+
+
+###################
+### MY PROGRAMS ###
+###################
+
+# See https://wiki.hyprland.org/Configuring/Keywords/
+
+# Set programs that you use
+$terminal = kitty
+$fileManager = dolphin
+$menu = wofi --show drun
+
+
+#################
+### AUTOSTART ###
+#################
+
+# Autostart necessary processes (like notifications daemons, status bars, etc.)
+# Or execute your favorite apps at launch like this:
+
+# exec-once = $terminal
+# exec-once = nm-applet &
+# exec-once = waybar & hyprpaper & firefox
+
+
+#############################
+### ENVIRONMENT VARIABLES ###
+#############################
+
+# See https://wiki.hyprland.org/Configuring/Environment-variables/
+
+env = XCURSOR_SIZE,24
+env = HYPRCURSOR_SIZE,24
+
+
+#####################
+### LOOK AND FEEL ###
+#####################
+
+# Refer to https://wiki.hyprland.org/Configuring/Variables/
+
+# https://wiki.hyprland.org/Configuring/Variables/#general
+general { 
+    
+    gaps_in = 1
+    gaps_out = 1
+
+    border_size = 1
+
+    # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
+    col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
+    col.inactive_border = rgba(595959aa)
+
+    # Set to true enable resizing windows by clicking and dragging on borders and gaps
+    resize_on_border = false 
+
+    # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
+    allow_tearing = false
+
+    layout = dwindle
+}
+
+# https://wiki.hyprland.org/Configuring/Variables/#decoration
+decoration {
+    rounding = 0
+
+    # Change transparency of focused and unfocused windows
+    active_opacity = 1.0
+    inactive_opacity = 1.0
+
+    drop_shadow = false
+    shadow_range = 4
+    shadow_render_power = 3
+    col.shadow = rgba(1a1a1aee)
+
+    # https://wiki.hyprland.org/Configuring/Variables/#blur
+    blur {
+        enabled = true
+        size = 3
+        passes = 1
+        
+        vibrancy = 0.1696
+    }
+}
+
+# https://wiki.hyprland.org/Configuring/Variables/#animations
+animations {
+    enabled = true
+
+    # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
+
+    bezier = myBezier, 0.05, 0.05, 0.05, 1.05
+
+    animation = windows, 1, 1.1, myBezier
+    animation = windowsOut, 1, 1.1, default, popin 80%
+    animation = border, 1, 1.0, default
+    animation = borderangle, 1, 1, default
+    animation = fade, 1, 1, default
+    animation = workspaces, 1, 1, default
+}
+
+# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
+dwindle {
+    pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
+    preserve_split = true # You probably want this
+}
+
+# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
+master {
+    new_is_master = true
+}
+
+# https://wiki.hyprland.org/Configuring/Variables/#misc
+misc { 
+    force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
+    disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :(
+}
+
+
+#############
+### INPUT ###
+#############
+
+# https://wiki.hyprland.org/Configuring/Variables/#input
+input {
+    kb_layout = us
+    kb_variant = altgr-intl
+    kb_model =
+    kb_options =
+    kb_rules =
+
+    follow_mouse = 1
+
+    sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
+
+    touchpad {
+        natural_scroll = false
+    }
+}
+
+# https://wiki.hyprland.org/Configuring/Variables/#gestures
+gestures {
+    workspace_swipe = true
+}
+
+# Example per-device config
+# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
+device {
+    name = epic-mouse-v1
+    sensitivity = -0.5
+}
+
+
+####################
+### KEYBINDINGSS ###
+####################
+
+# See https://wiki.hyprland.org/Configuring/Keywords/
+$mainMod = SUPER # Sets "Windows" key as main modifier
+
+# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
+bind = $mainMod, Return, exec, $terminal
+bind = $mainMod SHIFT, C, killactive,
+bind = $mainMod ,F, fullscreen,0
+bind = $mainMod, M, exit,
+bind = $mainMod, E, exec, $fileManager
+bind = $mainMod, V, togglefloating,
+bind = $mainMod, R, exec, $menu
+bind = $mainMod, P, pseudo, # dwindle
+bind = $mainMod, J, togglesplit, # dwindle
+
+# Move focus with mainMod + arrow keys
+bind = $mainMod, left, movefocus, l
+bind = $mainMod, right, movefocus, r
+bind = $mainMod, up, movefocus, u
+bind = $mainMod, down, movefocus, d
+
+# Switch workspaces with mainMod + [0-9]
+bind = $mainMod, 1, workspace, 1
+bind = $mainMod, 2, workspace, 2
+bind = $mainMod, 3, workspace, 3
+bind = $mainMod, 4, workspace, 4
+bind = $mainMod, 5, workspace, 5
+bind = $mainMod, 6, workspace, 6
+bind = $mainMod, 7, workspace, 7
+bind = $mainMod, 8, workspace, 8
+bind = $mainMod, 9, workspace, 9
+bind = $mainMod, 0, workspace, 10
+
+# Move active window to a workspace with mainMod + SHIFT + [0-9]
+bind = $mainMod SHIFT, 1, movetoworkspace, 1
+bind = $mainMod SHIFT, 2, movetoworkspace, 2
+bind = $mainMod SHIFT, 3, movetoworkspace, 3
+bind = $mainMod SHIFT, 4, movetoworkspace, 4
+bind = $mainMod SHIFT, 5, movetoworkspace, 5
+bind = $mainMod SHIFT, 6, movetoworkspace, 6
+bind = $mainMod SHIFT, 7, movetoworkspace, 7
+bind = $mainMod SHIFT, 8, movetoworkspace, 8
+bind = $mainMod SHIFT, 9, movetoworkspace, 9
+bind = $mainMod SHIFT, 0, movetoworkspace, 10
+
+# Toggle special workspace (scratchpad) similar to guake
+bind = $mainMod, S, togglespecialworkspace, magic
+bind = $mainMod SHIFT, S, movetoworkspace, special:magic
+
+# Scroll through existing workspaces with mainMod + scroll
+bind = $mainMod, mouse_down, workspace, e+1
+bind = $mainMod, mouse_up, workspace, e-1
+
+# Move/resize windows with mainMod + LMB/RMB and dragging
+bindm = $mainMod, mouse:272, movewindow
+bindm = $mainMod, mouse:273, resizewindow
+
+# Media Keys
+
+bindel=, XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
+bindel=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
+bindl=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
+
+##############################
+### WINDOWS AND WORKSPACES ###
+##############################
+
+# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
+# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
+
+# Example windowrule v1
+# windowrule = float, ^(kitty)$
+
+# Example windowrule v2
+# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
+
+windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
diff --git a/2configs/gui/hyprland/kitty.nix b/2configs/gui/hyprland/kitty.nix
new file mode 100644
index 0000000..f44f26b
--- /dev/null
+++ b/2configs/gui/hyprland/kitty.nix
@@ -0,0 +1,23 @@
+{ pkgs, config, ... }: 
+let
+  mainUser = config.krebs.build.user.name;
+in {
+  # Terminal
+  home-manager.users.${mainUser} = {
+    programs.kitty = {
+      enable = true;
+      font = {
+        package = pkgs.terminus_font;
+        name = "Terminus";
+        size = 12;
+      };
+      settings = {
+        update_check_interval = 0;
+        enable_audio_bell = false;
+        scollback_lines = 100000;
+        confirm_os_window_close = 0;
+        copy_on_select = "yes";
+      };
+    };
+  };
+}
diff --git a/2configs/gui/hyprland/xdg-portal.nix b/2configs/gui/hyprland/xdg-portal.nix
new file mode 100644
index 0000000..000ba9c
--- /dev/null
+++ b/2configs/gui/hyprland/xdg-portal.nix
@@ -0,0 +1,11 @@
+{pkgs, ... }:
+{
+  xdg.portal = {
+    enable = true;
+    xdgOpenUsePortal = true;
+    extraPortals = [
+      pkgs.xdg-desktop-portal-hyprland
+      pkgs.xdg-desktop-portal-gtk
+    ];
+  };
+}
diff --git a/2configs/gui/kitty.nix b/2configs/gui/kitty.nix
deleted file mode 100644
index 831b450..0000000
--- a/2configs/gui/kitty.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  # Terminal
-  home-manager.users.makefu = {
-    programs.kitty = {
-      enable = true;
-      font.package = pkgs.terminus_font;
-      settings = {
-        update_check_interval = 0;
-        enable_audio_bell = false;
-        scollback_lines = 100000;
-        confirm_os_window_close = 0;
-      };
-    };
-  };
-}