diff --git a/flake.nix b/flake.nix index beb7cdb..7b197d7 100644 --- a/flake.nix +++ b/flake.nix @@ -106,6 +106,7 @@ { login-manager.greetd.enable = desktop == "sway"; my.gnome.enable = desktop == "gnome"; + my.cosmic.enable = desktop == "cosmic"; my.kde.enable = desktop == "kde"; } diff --git a/system/configuration.nix b/system/configuration.nix index 69badf0..e79ad12 100644 --- a/system/configuration.nix +++ b/system/configuration.nix @@ -31,6 +31,7 @@ ./sops.nix ./greetd.nix ./gnome.nix + ./cosmic.nix ./kde.nix ./home-manager.nix ../settings diff --git a/system/cosmic.nix b/system/cosmic.nix new file mode 100644 index 0000000..9b1a34b --- /dev/null +++ b/system/cosmic.nix @@ -0,0 +1,30 @@ +{ + config, + lib, + ... +}: +{ + options.my.cosmic.enable = lib.mkEnableOption { }; + + config = lib.mkIf config.my.cosmic.enable { + # See https://wiki.nixos.org/wiki/COSMIC + services.displayManager.cosmic-greeter.enable = true; + services.desktopManager.cosmic.enable = true; + + # Same as GNOME: avoids conflict with graphics manager autologin + # (e.g.: https://github.com/NixOS/nixpkgs/issues/103746) + systemd.services."getty@tty1".enable = false; + systemd.services."autovt@tty1".enable = false; + + services.displayManager.autoLogin = { + enable = true; + user = config.my.username; + }; + + programs.dconf.enable = true; + + programs.kdeconnect.enable = true; + + hardware.opentabletdriver.enable = lib.mkForce false; + }; +} diff --git a/user/cosmic.nix b/user/cosmic.nix new file mode 100644 index 0000000..9ca81b6 --- /dev/null +++ b/user/cosmic.nix @@ -0,0 +1,42 @@ +{ + pkgs, + lib, + config, + ... +}: +lib.mkIf (config.my.desktop == "cosmic") { + + home.pointerCursor = { + name = "Adwaita"; + size = 24; + package = pkgs.adwaita-icon-theme; + gtk.enable = true; + }; + + home.packages = with pkgs; [ + adw-gtk3 + + newsflash + foliate + amberol + pitivi + keepassxc + menulibre + + libsForQt5.qt5ct + libsForQt5.qtstyleplugin-kvantum + qt6Packages.qt6ct + qt6Packages.qtstyleplugin-kvantum + ]; + + services.gpg-agent.pinentry.package = lib.mkForce pkgs.pinentry-gnome3; + + xdg.defaultApplications = { + enable = lib.mkForce false; + }; + + # Wiki COSMIC: Firefox ignores DE theme because of libadwaita + programs.firefox.profiles.dev-edition-default.settings = { + "widget.gtk.libadwaita-colors.enabled" = false; + }; +} diff --git a/user/dummy.nix b/user/dummy.nix index 7a0aac4..b19b7b9 100644 --- a/user/dummy.nix +++ b/user/dummy.nix @@ -6,6 +6,7 @@ media-packages.enable = lib.mkEnableOption { }; containers.enable = lib.mkEnableOption { }; gnome.enable = lib.mkEnableOption { }; + cosmic.enable = lib.mkEnableOption { }; kde.enable = lib.mkEnableOption { }; }; } diff --git a/user/home.nix b/user/home.nix index 98fc13a..5d280bc 100644 --- a/user/home.nix +++ b/user/home.nix @@ -16,6 +16,7 @@ ./vscode ./fish ./firefox.nix + ./cosmic.nix ./alacritty.nix ./git.nix ./ssh.nix