diff --git a/flake.lock b/flake.lock index a4eb8ed..0a789cd 100644 --- a/flake.lock +++ b/flake.lock @@ -170,11 +170,11 @@ ] }, "locked": { - "lastModified": 1716457508, - "narHash": "sha256-ZxzffLuWRyuMrkVVq7wastNUqeO0HJL9xqfY1QsYaqo=", + "lastModified": 1717316182, + "narHash": "sha256-Xi0EpZcu39N0eW7apLjFfUOR9y80toyjYizez7J1wMI=", "owner": "nix-community", "repo": "home-manager", - "rev": "850cb322046ef1a268449cf1ceda5fd24d930b05", + "rev": "9b53a10f4c91892f5af87cf55d08fba59ca086af", "type": "github" }, "original": { @@ -206,11 +206,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1716509168, - "narHash": "sha256-4zSIhSRRIoEBwjbPm3YiGtbd8HDWzFxJjw5DYSDy1n8=", + "lastModified": 1717196966, + "narHash": "sha256-yZKhxVIKd2lsbOqYd5iDoUIwsRZFqE87smE2Vzf6Ck0=", "owner": "nixos", "repo": "nixpkgs", - "rev": "bfb7a882678e518398ce9a31a881538679f6f092", + "rev": "57610d2f8f0937f39dbd72251e9614b1561942d8", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index e42ea8a..3858544 100644 --- a/flake.nix +++ b/flake.nix @@ -16,7 +16,7 @@ inherit system; }; - utils = import ./utils.nix { inherit pkgs inputs system; }; + utils = import ./utils.nix { inherit inputs system; }; in { nixosConfigurations = { muon = utils.mkHost ./hosts/muon/configuration.nix; diff --git a/hosts/muon/configuration.nix b/hosts/muon/configuration.nix index b588218..a1bc645 100644 --- a/hosts/muon/configuration.nix +++ b/hosts/muon/configuration.nix @@ -25,13 +25,15 @@ in { # Modules mods.desktop.enable = true; + mods.desktop.wayland.enable = true; mods.theme.enable = true; mods.theme.wallpaper = ./wallpaper.png; - programs.hyprland = { - enable = true; - xwayland.enable = true; - }; - + # programs.hyprland.enable = true; + + mods.unfree.steam.enable = true; + mods.unfree.nvidia.enable = true; + + hardware = { opengl.enable = true; nvidia.modesetting.enable = true; diff --git a/hosts/muon/home.nix b/hosts/muon/home.nix index ca10dd4..8b84122 100644 --- a/hosts/muon/home.nix +++ b/hosts/muon/home.nix @@ -8,14 +8,6 @@ let cfg = osConfig.mods; in { # mods.module.enable = true; programs.helix.enable = true; programs.qutebrowser.enable = true; - wayland.windowManager.hyprland = { - enable = true; - xwayland.enable = true; - systemd.enable = true; - settings = { - debug.disable_logs = false; - }; - }; # Version of first install home.stateVersion = "23.05"; diff --git a/modules/home/default.nix b/modules/home/default.nix index 8b54869..cbd9545 100644 --- a/modules/home/default.nix +++ b/modules/home/default.nix @@ -1,6 +1,7 @@ -{ pkgs, lib, ... }: { +{ pkgs, lib, config, osConfig, ... }: { imports = [ ./terminal + ./desktop ]; # Let Home Manager install and manage itself diff --git a/modules/home/desktop/default.nix b/modules/home/desktop/default.nix new file mode 100644 index 0000000..69ddce1 --- /dev/null +++ b/modules/home/desktop/default.nix @@ -0,0 +1,12 @@ +{ pkgs, lib, osConfig, ... }: +let + cfg = osConfig.mods.desktop; +in { + imports = [ + ./hyprland.nix + ]; + + config = lib.mkIf cfg.wayland.enable { + mods.hyprland.enable = true; + }; +} diff --git a/modules/home/desktop/hyprland.nix b/modules/home/desktop/hyprland.nix new file mode 100644 index 0000000..226294c --- /dev/null +++ b/modules/home/desktop/hyprland.nix @@ -0,0 +1,45 @@ +{ pkgs, lib, config, ... }: { + options.mods.hyprland.enable = lib.mkEnableOption "enables hyprland"; + + config = lib.mkIf config.mods.hyprland.enable { + programs.waybar.enable = true; + + wayland.windowManager.hyprland = { + enable = true; + xwayland.enable = true; + # systemd.enable = true; + settings = { + exec-once = "${lib.getExe pkgs.waybar}"; + input = { + kb_options = "caps:escape"; + }; + "$mod" = "SUPER"; + bind = [ + "$mod, F, exec, qutebrowser" + "$mod, Return, exec, alacritty" + + "$mod SHIFT, Q, killactive," + "$mod SHIFT, X, exit," + + "$mod, H, movefocus, l" + "$mod, J, movefocus, d" + "$mod, K, movefocus, u" + "$mod, L, movefocus, r" + ] + ++ (builtins.concatLists (builtins.genList ( + # workspaces + # binds $mod + [shift +] {1..10} to [move to] workspace {1..10} + x: let + ws = let + c = (x + 1) / 10; + in + builtins.toString (x + 1 - (c * 10)); + in [ + "$mod, ${ws}, workspace, ${toString (x + 1)}" + "$mod SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}" + ] + ) 10) ); + }; + }; + }; +} diff --git a/modules/home/terminal/emulator.nix b/modules/home/terminal/emulator.nix index f1ddb7f..a6c2319 100644 --- a/modules/home/terminal/emulator.nix +++ b/modules/home/terminal/emulator.nix @@ -1,7 +1,5 @@ { pkgs, lib, config, ... }: { - options = { - mods.terminal.emulator.enable = lib.mkEnableOption "enables terminal emulator"; - }; + options.mods.terminal.emulator.enable = lib.mkEnableOption "enables terminal emulator"; config = lib.mkIf config.mods.terminal.emulator.enable { programs.alacritty.enable = true; diff --git a/modules/nixos/core/network.nix b/modules/nixos/core/network.nix index bdf9dbc..d890b0b 100644 --- a/modules/nixos/core/network.nix +++ b/modules/nixos/core/network.nix @@ -1,5 +1,3 @@ { pkgs, lib, ... }: { - config = { - networking.networkmanager.enable = true; - }; + networking.networkmanager.enable = true; } diff --git a/modules/nixos/core/user.nix b/modules/nixos/core/user.nix index abd742a..800f01c 100644 --- a/modules/nixos/core/user.nix +++ b/modules/nixos/core/user.nix @@ -1,9 +1,7 @@ { pkgs, lib, config, ... }: { - options = { - mods.user.name = lib.mkOption { - default = "muon"; - description = "username of the main system user"; - }; + options.mods.user.name = lib.mkOption { + default = "muon"; + description = "username of the main system user"; }; config = { diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index 4302dea..343011c 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -4,5 +4,8 @@ ./system ./desktop ./theme + + #