a:
This commit is contained in:
52
modules/cosmic/cosmic-greeter.nix
Normal file
52
modules/cosmic/cosmic-greeter.nix
Normal file
@@ -0,0 +1,52 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
cfg = config.services.xserver.displayManager.cosmic-greeter;
|
||||
in
|
||||
{
|
||||
meta.maintainers = with lib.maintainers; [ nyanbinary ];
|
||||
|
||||
options.services.xserver.displayManager.cosmic-greeter = {
|
||||
enable = lib.mkEnableOption (lib.mdDoc "COSMIC greeter");
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
settings = {
|
||||
default_session = {
|
||||
user = "cosmic-greeter";
|
||||
command = "${pkgs.coreutils}/bin/env XCURSOR_THEME=Pop systemd-cat -t cosmic-greeter ${pkgs.cosmic-comp}/bin/cosmic-comp ${pkgs.cosmic-greeter}/bin/cosmic-greeter";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.cosmic-greeter-daemon = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
before = [ "greetd.service" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.cosmic-greeter}/bin/cosmic-greeter-daemon";
|
||||
Restart = "on-failure";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
"d '/var/lib/cosmic-greeter' - cosmic-greeter cosmic-greeter - -"
|
||||
];
|
||||
|
||||
users.users.cosmic-greeter = {
|
||||
isSystemUser = true;
|
||||
home = "/var/lib/cosmic-greeter";
|
||||
group = "cosmic-greeter";
|
||||
};
|
||||
|
||||
users.groups.cosmic-greeter = { };
|
||||
|
||||
hardware.opengl.enable = true;
|
||||
services.xserver.libinput.enable = true;
|
||||
|
||||
security.pam.services.cosmic-greeter = {};
|
||||
|
||||
services.dbus.packages = with pkgs; [ cosmic-greeter ];
|
||||
};
|
||||
}
|
||||
84
modules/cosmic/cosmic.nix
Normal file
84
modules/cosmic/cosmic.nix
Normal file
@@ -0,0 +1,84 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
cfg = config.services.xserver.desktopManager.cosmic;
|
||||
in
|
||||
{
|
||||
meta.maintainers = with lib.maintainers; [ nyanbinary ];
|
||||
|
||||
options.services.xserver.desktopManager.cosmic = {
|
||||
enable = lib.mkEnableOption (lib.mdDoc "COSMIC desktop environment");
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
# seed configuration in nixos-generate-config
|
||||
system.nixos-generate-config.desktopConfiguration = [''
|
||||
# Enable the COSMIC Desktop Environment.
|
||||
services.xserver.displayManager.cosmic-greeter.enable = true;
|
||||
services.xserver.desktopManager.cosmic.enable = true;
|
||||
''];
|
||||
|
||||
# environment packages
|
||||
environment.pathsToLink = [ "/share/cosmic" ];
|
||||
environment.systemPackages = with pkgs; [
|
||||
gnome.adwaita-icon-theme
|
||||
cosmic-applibrary
|
||||
cosmic-applets
|
||||
cosmic-bg
|
||||
cosmic-comp
|
||||
cosmic-edit
|
||||
cosmic-files
|
||||
cosmic-greeter
|
||||
cosmic-icons
|
||||
cosmic-launcher
|
||||
cosmic-notifications
|
||||
cosmic-osd
|
||||
cosmic-panel
|
||||
cosmic-randr
|
||||
cosmic-screenshot
|
||||
cosmic-session
|
||||
cosmic-settings
|
||||
cosmic-settings-daemon
|
||||
cosmic-term
|
||||
cosmic-workspaces-epoch
|
||||
hicolor-icon-theme
|
||||
pop-icon-theme
|
||||
pop-launcher
|
||||
];
|
||||
|
||||
# xdg portal packages and config
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-cosmic
|
||||
xdg-desktop-portal-gtk
|
||||
];
|
||||
configPackages = with pkgs; [
|
||||
xdg-desktop-portal-cosmic
|
||||
];
|
||||
};
|
||||
|
||||
# fonts
|
||||
fonts.packages = with pkgs; [
|
||||
fira-mono
|
||||
];
|
||||
|
||||
# required features
|
||||
hardware.opengl.enable = true;
|
||||
services.xserver.libinput.enable = true;
|
||||
|
||||
# optional features
|
||||
hardware.pulseaudio.enable = lib.mkDefault true;
|
||||
|
||||
# required dbus services
|
||||
services.upower.enable = true;
|
||||
security.polkit.enable = true;
|
||||
|
||||
# session packages
|
||||
services.xserver.displayManager.sessionPackages = with pkgs; [ cosmic-session ];
|
||||
systemd.packages = with pkgs; [ cosmic-session ];
|
||||
|
||||
# required for screen locker
|
||||
security.pam.services.cosmic-greeter = {};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user