diff --git a/hosts/desktop/configuration.nix b/hosts/desktop/configuration.nix index 6e35ad5..d8cdb47 100644 --- a/hosts/desktop/configuration.nix +++ b/hosts/desktop/configuration.nix @@ -5,8 +5,9 @@ ./hardware-configuration.nix ../../modules/nixos/localization.nix ../../modules/nixos/ai/index.nix - ../../modules/nixos/gnome/gnome.nix + ../../modules/nixos/desktops/gnome.nix ../../modules/home/vim.nix + ../../modules/nixos/desktops/hyprland.nix inputs.home-manager.nixosModules.default ]; diff --git a/hosts/desktop/hardware-configuration.nix b/hosts/desktop/hardware-configuration.nix index 7fd7366..fd6f779 100644 --- a/hosts/desktop/hardware-configuration.nix +++ b/hosts/desktop/hardware-configuration.nix @@ -27,23 +27,73 @@ package = config.boot.kernelPackages.nvidiaPackages.stable; }; - - - fileSystems."/" = - { device = "/dev/disk/by-uuid/8279665b-b695-4747-9206-9cc06b7fe303"; - fsType = "btrfs"; - options = [ "subvol=@" ]; + boot.initrd.luks.devices = { + "luks-8573b24b-461f-40bf-b16b-9de1207c0696".device = "/dev/disk/by-uuid/8573b24b-461f-40bf-b16b-9de1207c0696"; + "luks-140a35ca-67f9-41df-8414-51dcccc1a620".device = "/dev/disk/by-uuid/140a35ca-67f9-41df-8414-51dcccc1a620"; + "luks-c6c23b31-a8d7-4b96-8caa-b2bdbcd49e72".device = "/dev/disk/by-uuid/c6c23b31-a8d7-4b96-8caa-b2bdbcd49e72"; }; - boot.initrd.luks.devices."luks-8573b24b-461f-40bf-b16b-9de1207c0696".device = "/dev/disk/by-uuid/8573b24b-461f-40bf-b16b-9de1207c0696"; + fileSystems = { + "/" = { + device = "/dev/disk/by-uuid/8279665b-b695-4747-9206-9cc06b7fe303"; + fsType = "btrfs"; + options = [ "subvol=@" "compress=zstd" ]; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/383D-97DA"; - fsType = "vfat"; - options = [ "fmask=0077" "dmask=0077" ]; + "/media/2tb" = { + device = "/dev/disk/by-uuid/8279665b-b695-4747-9206-9cc06b7fe303"; + fsType = "btrfs"; + options = [ "compress=zstd" ]; + }; + + "/home" = { + device = "/dev/disk/by-uuid/8279665b-b695-4747-9206-9cc06b7fe303"; + fsType = "btrfs"; + options = [ "subvol=@home" "compress=zstd" ]; + }; + + "/nix" = { + device = "/dev/disk/by-uuid/8279665b-b695-4747-9206-9cc06b7fe303"; + fsType = "btrfs"; + options = [ "subvol=@nix" "compress=zstd" ]; + }; + + "/boot" = { + device = "/dev/disk/by-uuid/383D-97DA"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + "/media/8tb" = { + device = "/dev/disk/by-uuid/a484bd77-f454-44f9-b356-e5d9781583bc"; + fsType = "btrfs"; + options = [ "compress=zstd" ]; + }; + + "/media/12tb" = { + device = "/dev/disk/by-uuid/c28abd09-22a1-46d7-8a61-4212143baafc"; + fsType = "btrfs"; + options = [ "compress=zstd" ]; + }; + + "/media/Passport" = { + device = "/dev/disk/by-uuid/52A828CE3ED0D2C1"; + fsType = "ntfs"; + options = [ "nofail" "x-systemd.automount" ]; + }; + + "/media/Elements" = { + device = "/dev/disk/by-uuid/f23ab941-238c-4422-9c1a-7359e84dd071"; + fsType = "btrfs"; + options = [ "compress=zstd" "nofail" "x-systemd.automount" ]; + }; }; - swapDevices = [ ]; + services.btrfs.autoScrub.enable = true; + + swapDevices = [ + { device = "/media/8tb/swapfile"; } + ]; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's diff --git a/hosts/desktop/home.nix b/hosts/desktop/home.nix index 00f4559..9073726 100644 --- a/hosts/desktop/home.nix +++ b/hosts/desktop/home.nix @@ -1,7 +1,9 @@ { config, pkgs, ... }: { - imports = [ /*../../modules/home/vim.nix*/ ]; + imports = [ /*../../modules/home/vim.nix*/ + ../../modules/home/hyprland.nix + ]; # Home Manager needs a bit of information about you and the paths it should # manage. diff --git a/modules/home/hyprland.nix b/modules/home/hyprland.nix new file mode 100644 index 0000000..e3eef3f --- /dev/null +++ b/modules/home/hyprland.nix @@ -0,0 +1,123 @@ +{ pkgs, lib, ... }: +let +startupScript = pkgs.pkgs.writeShellScriptBin "start" '' +${pkgs.waybar}/bin/waybar & +${pkgs.swww}/bin/swww init & + +sleep 1 +''; +in +{ + wayland.windowManager.hyprland = { + enable = true; + + settings = { + exec-once = ''${startupScript}/bin/start''; + decoration = { + #shadow_offset = "0.5"; + #"col.shadow" = "rgba(00000099)"; + }; + + monitor = [ + "DP-2, preferred, auto-right, auto" + "DP-3, preferred, auto-left, auto" + ",preferred,auto,auto" + ]; + + "$mod" = "SUPER"; + "$terminal" = "alacritty"; + "$browser" = "firefox"; + + general = { + gaps_in = 5; + gaps_out = 20; + border_size = 2; + resize_on_border = true; + layout = "master"; + }; + + bindm = [ + "$mod, mouse:272, movewindow" + "$mod, mouse:273, resizewindow" + "$mod ALT, mouse:272, resizewindow" + ]; + + bind = [ + "$mod, return, exec, $terminal" + "$mod, W, exec, $browser" + "$mod, Q, killactive," + "$mod, M, exit," + "$mod, E, exec, $fileManager" + "$mod, V, togglefloating," + "$mod, R, exec, $menu" + "$mod, P, pseudo, # dwindle" + "$mod, J, togglesplit, # dwindle" + "$mod, left, movefocus, l" + "$mod, right, movefocus, r" + "$mod, up, movefocus, u" + "$mod, down, movefocus, d" + + "$mod, 1, workspace, 1" + "$mod, 2, workspace, 2" + "$mod, 3, workspace, 3" + "$mod, 4, workspace, 4" + "$mod, 5, workspace, 5" + "$mod, 6, workspace, 6" + "$mod, 7, workspace, 7" + "$mod, 8, workspace, 8" + "$mod, 9, workspace, 9" + "$mod, 0, workspace, 10" + + "$mod SHIFT, 1, movetoworkspace, 1" + "$mod SHIFT, 2, movetoworkspace, 2" + "$mod SHIFT, 3, movetoworkspace, 3" + "$mod SHIFT, 4, movetoworkspace, 4" + "$mod SHIFT, 5, movetoworkspace, 5" + "$mod SHIFT, 6, movetoworkspace, 6" + "$mod SHIFT, 7, movetoworkspace, 7" + "$mod SHIFT, 8, movetoworkspace, 8" + "$mod SHIFT, 9, movetoworkspace, 9" + "$mod SHIFT, 0, movetoworkspace, 10" + + "$mod, S, togglespecialworkspace, magic" + "$mod SHIFT, S, movetoworkspace, special:magic" + + "$mod, mouse_down, workspace, e+1" + "$mod, mouse_up, workspace, e-1" + ]; + + animations = { + enabled = true; + # NAME, X0, Y0, X1, Y1 + bezier = [ + "easeOutQuint, 0.23, 1, 0.32, 1" + "easeInOutCubic, 0.65, 0.05, 0.36, 1" + "linear, 0, 0, 1, 1" + "almostLinear, 0.5, 0.5, 0.75, 1" + "quick, 0.15, 0, 0.1, 1" + ]; + + # NAME, ONOFF, SPEED, CURVE, [STYLE] + animation = [ + "global, 1, 10, default" + "border, 1, 5.39, easeOutQuint" + "windows, 1, 4.79, easeOutQuint" + "windowsIn, 1, 4.1, easeOutQuint, popin 87%" + "windowsOut, 1, 1.49, linear, popin 87%" + "fadeIn, 1, 1.73, almostLinear" + "fadeOut, 1, 1.46, almostLinear" + "fade, 1, 3.03, quick" + "layers, 1, 3.81, easeOutQuint" + "layersIn, 1, 4, easeOutQuint, fade" + "layersOut, 1, 1.5, linear, fade" + "fadeLayersIn, 1, 1.79, almostLinear" + "fadeLayersOut, 1, 1.39, almostLinear" + "workspaces, 1, 1.94, almostLinear, fade" + "workspacesIn, 1, 1.21, almostLinear, fade" + "workspacesOut, 1, 1.94, almostLinear, fade" + "zoomFactor, 1, 7, quick" + ]; + }; + }; + }; +} diff --git a/modules/home/vim.nix b/modules/home/vim.nix old mode 100755 new mode 100644 index aa36c63..6d12bfa --- a/modules/home/vim.nix +++ b/modules/home/vim.nix @@ -53,7 +53,7 @@ }; extraPlugins = with pkgs.vimPlugins; [ orgmode - vim-nix + vim-nix ]; extraConfigLua = '' @@ -82,6 +82,6 @@ autocmd FileType nix setlocal noexpandtab tabstop=4 shiftwidth=4 softtabstop=0 ''; -#colorschemes.base16.enable = true; + colorschemes.base16.enable = true; }; } diff --git a/modules/nixos/gnome/gnome.nix b/modules/nixos/desktops/gnome.nix similarity index 100% rename from modules/nixos/gnome/gnome.nix rename to modules/nixos/desktops/gnome.nix diff --git a/modules/nixos/desktops/hyprland.nix b/modules/nixos/desktops/hyprland.nix new file mode 100644 index 0000000..902353b --- /dev/null +++ b/modules/nixos/desktops/hyprland.nix @@ -0,0 +1,11 @@ +{ config, pkgs, inputs, ... }: +{ + imports = [ ]; + + programs.hyprland.enable = true; + +#Packages + environment.systemPackages = with pkgs; [ + alacritty + ]; +}