diff --git a/azos-core b/azos-core index dae1dac..ad540f7 160000 --- a/azos-core +++ b/azos-core @@ -1 +1 @@ -Subproject commit dae1dacb517ef0e383918bc9e3299aca41b1f3e8 +Subproject commit ad540f77dd8f25a68752f5bd5012528e4a0aa469 diff --git a/flake.lock b/flake.lock index 2b3a971..4b2391d 100644 --- a/flake.lock +++ b/flake.lock @@ -71,11 +71,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1768364046, - "narHash": "sha256-PDFfpswLiuG/DcadTBb7dEfO3jX1fcGlCD4ZKSkC0M8=", + "lastModified": 1768395095, + "narHash": "sha256-ZhuYJbwbZT32QA95tSkXd9zXHcdZj90EzHpEXBMabaw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ea30586ee015f37f38783006a9bc9e4aa64d7d61", + "rev": "13868c071cc73a5e9f610c47d7bb08e5da64fdd5", "type": "github" }, "original": { diff --git a/modules/home-manager/default.nix b/modules/home-manager/default.nix index 4622001..a1cfc61 100755 --- a/modules/home-manager/default.nix +++ b/modules/home-manager/default.nix @@ -18,5 +18,6 @@ ./gimp.nix # ./printing.nix ./libreoffice.nix + ./hyprland-suite.nix ]; } diff --git a/modules/home-manager/hyprland-suite.nix b/modules/home-manager/hyprland-suite.nix new file mode 100644 index 0000000..40091a6 --- /dev/null +++ b/modules/home-manager/hyprland-suite.nix @@ -0,0 +1,59 @@ +{ + lib, + config, + pkgs, + options, + azos-utils, + ... +}: let + isEnabled = + config.azos.suites.hyprland.enable; +in { + options.azos.suites.hyprland.enable = lib.mkOption { + default = false; + example = true; + type = lib.types.bool; + }; + + #TODO shutdown reboot commands + config = lib.mkIf isEnabled { + home.packages = with pkgs; [ + hyprland + waybar # status bar + wofi # application launcher + kitty + grim # screenshot utility + slurp # region selector + swappy # screenshot editor + networkmanagerapplet + xwayland + ]; + + azos.emacs.enabledSuites = ["azos-emacs-hyprland"]; + azos.emacs.pkgs = [pkgs.azos-emacs-hyprland]; + azos.emacs.emacspkg = pkgs.emacs-pgtk; + + home.file.".login.sh" = { + text = '' + #!/usr/bin/env bash + ${pkgs.hyprland}/bin/Hyprland + ''; + #Make executable + executable = true; + }; + + # systemd.user.services.xwayland = { + # Unit.Description = "XWayland server"; + # Install.WantedBy = [ "default.target" ]; + # Service = { + # ExecStart = "${pkgs.xwayland}/bin/Xwayland :0 -rootless -terminate -listen tcp"; + # Restart = "on-failure"; + # RestartSec = "1s"; + # StandardInput = "null"; + # StandardOutput = "null"; + # StandardError = "journal"; + # }; + # }; + + }; +} diff --git a/nixos/configuration.nix b/nixos/configuration.nix index 131148f..5250faa 100644 --- a/nixos/configuration.nix +++ b/nixos/configuration.nix @@ -92,6 +92,20 @@ }; }; + # Specializations + specialisation = { + hyprland = { + configuration = { + # Override home‑manager options for this specialization + home-manager.users.aner = { pkgs, ... }: { + azos.suites.exwm.enable = lib.mkForce false; + azos.suites.hyprland.enable = true; + }; + }; + }; + }; + + # List packages installed in system profile. To search, run: # $ nix search wget environment.systemPackages = with pkgs; [ diff --git a/pkgs/azos-emacs-hyprland.nix b/pkgs/azos-emacs-hyprland.nix new file mode 100755 index 0000000..d6115b5 --- /dev/null +++ b/pkgs/azos-emacs-hyprland.nix @@ -0,0 +1,13 @@ +{ + orgTrivialBuild, + epkgs, + pkgs, +}: +orgTrivialBuild { + pname = "azos-emacs-hyprland"; + version = "0.1.6"; + src = ./elisp/azos-emacs-hyprland.org; + packageRequires = with epkgs; [ + pkgs.azos-emacs-base + ]; +} diff --git a/pkgs/default.nix b/pkgs/default.nix index 1d55ef7..af5511d 100755 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -3,4 +3,5 @@ localEmacsPkg = pkgs.localEmacsPkg; in { azos-emacs-lauretta = localEmacsPkg ./azos-emacs-lauretta.nix; + azos-emacs-hyprland = localEmacsPkg ./azos-emacs-hyprland.nix; } diff --git a/pkgs/elisp/azos-emacs-hyprland.org b/pkgs/elisp/azos-emacs-hyprland.org new file mode 100644 index 0000000..6f4b584 --- /dev/null +++ b/pkgs/elisp/azos-emacs-hyprland.org @@ -0,0 +1,17 @@ +#+title: Aner's Emacs Hyprland Configuration +#+property: header-args :results silent + +* Base setup +** Require + +#+begin_src emacs-lisp +(require 'azos-emacs-base) +#+end_src + +* Hyprland Specific + +* Provide + +#+begin_src emacs-lisp +(provide 'azos-emacs-hyprland) +#+end_src diff --git a/pkgs/elisp/azos-emacs-lauretta.org b/pkgs/elisp/azos-emacs-lauretta.org index 23aaf44..e7e848e 100644 --- a/pkgs/elisp/azos-emacs-lauretta.org +++ b/pkgs/elisp/azos-emacs-lauretta.org @@ -48,11 +48,14 @@ ** Tab bar setup #+begin_src emacs-lisp -(azos/bat/enable-tab-display) +(when (fboundp #'azos/bat/enable-tab-display) + (azos/bat/enable-tab-display)) -(azos/network/enable-tab-display) +(when (fboundp #'azos/network/enable-tab-display) + (azos/network/enable-tab-display)) -(azos/audio/enable-tab-display) +(when (fboundp #'azos/audio/enable-tab-display) + (azos/audio/enable-tab-display)) #+end_src * Provide