From e4813107c373b002dbf521745270ac299b3c2d4e Mon Sep 17 00:00:00 2001 From: Wroclaw Date: Wed, 2 Oct 2024 01:44:58 +0200 Subject: [PATCH 01/10] pkgs/overlays/cosmic-packages: use unstable pinned in upstream. --- pkgs/overlays/cosmic-packages.nix | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/pkgs/overlays/cosmic-packages.nix b/pkgs/overlays/cosmic-packages.nix index 8f2cff8..4026eae 100644 --- a/pkgs/overlays/cosmic-packages.nix +++ b/pkgs/overlays/cosmic-packages.nix @@ -7,14 +7,18 @@ let cosmicPkgsMainDir = builtins.readDir "${nixos-cosmic}/pkgs"; cosmicPkgsDirs = builtins.filter (v: cosmicPkgsMainDir."${v}" == "directory") (builtins.attrNames cosmicPkgsMainDir); - # Pinned unstable nixpkgs + # Pinned unstable nixpkgs from cosmic-modules + cosmicModulesLock = builtins.fromJSON (builtins.readFile "${nixos-cosmic}/flake.lock"); + pinnedNixpkgsRev = cosmicModulesLock.nodes.nixpkgs.locked.rev; + pinnedNixpkgsNarHash = cosmicModulesLock.nodes.nixpkgs.locked.narHash; + futureNixpkgsSrc = builtins.fetchTarball { name = "nixpkgs"; - url = "https://github.com/NixOS/nixpkgs/archive/c3aa7b8938b17aebd2deecf7be0636000d62a2b9.tar.gz"; - sha256 = "1ds3yjcy52l8d3rkxr3b7h9c0c3nly079bgakjaasnfjj3xprrwr"; + url = "https://github.com/NixOS/nixpkgs/archive/${pinnedNixpkgsRev}.tar.gz"; + sha256 = pinnedNixpkgsNarHash; }; - # Take rustPackages from staging nixpkgs + # Take rustPackages from pinned nixpkgs futureNixpkgs = import futureNixpkgsSrc { localSystem = self.stdenv.buildPlatform; config = self.config; From 667f7d819910f63540ed36f51baf8d39926732b2 Mon Sep 17 00:00:00 2001 From: Wroclaw Date: Wed, 2 Oct 2024 02:20:46 +0200 Subject: [PATCH 02/10] pkgs/overlays/cosmic-packages: use packages constructor from upstream --- pkgs/overlays/cosmic-packages.nix | 30 ++++++------------------------ 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/pkgs/overlays/cosmic-packages.nix b/pkgs/overlays/cosmic-packages.nix index 4026eae..fcaee7b 100644 --- a/pkgs/overlays/cosmic-packages.nix +++ b/pkgs/overlays/cosmic-packages.nix @@ -4,8 +4,6 @@ self: super: let nixos-cosmic = inputs.cosmic-modules; - cosmicPkgsMainDir = builtins.readDir "${nixos-cosmic}/pkgs"; - cosmicPkgsDirs = builtins.filter (v: cosmicPkgsMainDir."${v}" == "directory") (builtins.attrNames cosmicPkgsMainDir); # Pinned unstable nixpkgs from cosmic-modules cosmicModulesLock = builtins.fromJSON (builtins.readFile "${nixos-cosmic}/flake.lock"); @@ -18,33 +16,17 @@ let sha256 = pinnedNixpkgsNarHash; }; - # Take rustPackages from pinned nixpkgs + # Initialize pinned nixpkgs futureNixpkgs = import futureNixpkgsSrc { localSystem = self.stdenv.buildPlatform; config = self.config; } // (if self.stdenv.buildPlatform == self.stdenv.hostPlatform then {} else { crossSystem = self.stdenv.hostPlatform; }); - futureRustPackages = futureNixpkgs.rustPackages; - - # Create nixpkgs with future rust - nixpkgsWithFutureRust = self.extend (futureSelf: futureSuper: { - rustPackages = futureRustPackages; - }); - - # Create cosmicPkgs that contains cosmic packages built from nixpkgs with future rust - cosmicOverlay = cosmicSelf: cosmicSuper: builtins.listToAttrs ( - builtins.map (v: {name = v; value = nixpkgsWithFutureRust.callPackage "${nixos-cosmic}/pkgs/${v}/package.nix" {};}) cosmicPkgsDirs - ); - cosmicNixpkgs = import inputs.nixpkgs { - localSystem = self.stdenv.buildPlatform; - config = self.config; - overlays = [ cosmicOverlay ]; - } // (if self.stdenv.buildPlatform == self.stdenv.hostPlatform then {} else { - crossSystem = self.stdenv.hostPlatform; - }); in -builtins.listToAttrs ( - builtins.map (v: {name = v; value = cosmicNixpkgs.${v};}) cosmicPkgsDirs -) +import "${nixos-cosmic}/pkgs" { + final = self; + prev = super; + rustPlatform = futureNixpkgs.rustPlatform; +} From 7c9d74e561659bd8db18517ada57d5556ad14cd5 Mon Sep 17 00:00:00 2001 From: Wroclaw Date: Wed, 2 Oct 2024 02:21:08 +0200 Subject: [PATCH 03/10] pkgs/overlays/cosmic-packages: allow to provide own rustPlatform --- pkgs/overlays/cosmic-packages.nix | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pkgs/overlays/cosmic-packages.nix b/pkgs/overlays/cosmic-packages.nix index fcaee7b..9b9f6f5 100644 --- a/pkgs/overlays/cosmic-packages.nix +++ b/pkgs/overlays/cosmic-packages.nix @@ -1,4 +1,7 @@ -{ inputs ? import ../../inputs.nix {}}: +{ + inputs ? import ../../inputs.nix {}, + rustPlatform ? null, +}: self: super: @@ -28,5 +31,5 @@ in import "${nixos-cosmic}/pkgs" { final = self; prev = super; - rustPlatform = futureNixpkgs.rustPlatform; + rustPlatform = if rustPlatform != null then rustPlatform else futureNixpkgs.rustPlatform; } From f90a7b4e9a4b166dd7f68403ccf7f1c836b11d83 Mon Sep 17 00:00:00 2001 From: Wroclaw Date: Wed, 2 Oct 2024 03:29:05 +0200 Subject: [PATCH 04/10] lock: update cosmic-modules --- lock.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lock.nix b/lock.nix index 228a570..b9b5f45 100644 --- a/lock.nix +++ b/lock.nix @@ -8,7 +8,7 @@ sha256 = "07wa6y7q4ql0x1jj08dignak2lra003inf2cxl4xxvyqdsspshp3"; }; cosmic-modules = { - revision = "7d3dd56cca20e409261ff8c69867d38376f7ecae"; - sha256 = "06i1gqwgrpcarmkszcnblx02804n86424sklw4mva0p47j9n7gww"; + revision = "074bbcc4e3fa9ce4bee100de64506c3662c62299"; + sha256 = "0rb0d20i05rjkhk3g5xld46l0ir055mbbbnlic4p3jvbqv9xqiqd"; }; } From af5cb9c7d1001b4079ee8b2b4f605ef2a3d71bdf Mon Sep 17 00:00:00 2001 From: Wroclaw Date: Wed, 2 Oct 2024 13:39:38 +0200 Subject: [PATCH 05/10] nixos/polkit/disable-shutdown: allow delaying power actions --- nix-os/polkit/disable-shutdown.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/nix-os/polkit/disable-shutdown.nix b/nix-os/polkit/disable-shutdown.nix index 24571dd..660c32a 100644 --- a/nix-os/polkit/disable-shutdown.nix +++ b/nix-os/polkit/disable-shutdown.nix @@ -15,8 +15,6 @@ action.id == "org.freedesktop.login1.inhibit-block-idle" || action.id == "org.freedesktop.login1.inhibit-block-shutdown" || action.id == "org.freedesktop.login1.inhibit-block-sleep" || - action.id == "org.freedesktop.login1.inhibit-delay-shutdown" || - action.id == "org.freedesktop.login1.inhibit-delay-sleep" || action.id == "org.freedesktop.login1.inhibit-handle-hibernate-key" || action.id == "org.freedesktop.login1.inhibit-handle-lid-switch" || action.id == "org.freedesktop.login1.inhibit-handle-power-key" || From 85fd323785cca0e5eaa2b770a20fb4b4bfe39830 Mon Sep 17 00:00:00 2001 From: Wroclaw Date: Wed, 2 Oct 2024 18:32:05 +0200 Subject: [PATCH 06/10] nixos/cosmic: add pavucontrol --- nix-os/desktopManagers/cosmic.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nix-os/desktopManagers/cosmic.nix b/nix-os/desktopManagers/cosmic.nix index 902c435..01dd902 100644 --- a/nix-os/desktopManagers/cosmic.nix +++ b/nix-os/desktopManagers/cosmic.nix @@ -11,5 +11,8 @@ cosmic-term cosmic-files ]; + environment.systemPackages = with pkgs; [ + pavucontrol + ]; }; } From 454249c104093e80561cd85c949dbe7fc2fc38b7 Mon Sep 17 00:00:00 2001 From: Wroclaw Date: Wed, 2 Oct 2024 18:31:10 +0200 Subject: [PATCH 07/10] hosts/vm-base: expose ssh port --- hosts/vm-base.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hosts/vm-base.nix b/hosts/vm-base.nix index 1e57e16..3aac310 100644 --- a/hosts/vm-base.nix +++ b/hosts/vm-base.nix @@ -18,5 +18,8 @@ virtualisation = { memorySize = 4096; }; + virtualisation.forwardPorts = [ + { from = "host"; host.port = 2222; guest.port = 22; } + ]; }; } From 47e0304b6da208b6e93b9ea2e1481c173a970cc5 Mon Sep 17 00:00:00 2001 From: Wroclaw Date: Wed, 2 Oct 2024 18:38:26 +0200 Subject: [PATCH 08/10] outputs: expose cosmicPackages overlay --- outputs.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/outputs.nix b/outputs.nix index d5fdeb7..3355399 100644 --- a/outputs.nix +++ b/outputs.nix @@ -13,6 +13,7 @@ self = { modifiedNixpkgs = import ./pkgs/top-level/impure.nix; modifiedNixpkgsPure = import ./pkgs/top-level/default.nix; overlays = { + cosmicPackages = import ./pkgs/overlays/cosmic-packages.nix { inherit inputs; }; selfExpr = import ./pkgs/overlays/selfExpr.nix { nixpkgsPath = inputs.nixpkgs; }; unstable = import ./pkgs/overlays/unstable.nix; versionInfoFixup = import ./pkgs/overlays/version-info-fixup.nix { inherit inputs; }; From b2a2bdbd8ad175b4b9877bc08b1019108d5b62f9 Mon Sep 17 00:00:00 2001 From: Wroclaw Date: Wed, 2 Oct 2024 18:31:47 +0200 Subject: [PATCH 09/10] hosts: use cosmic desktop --- hosts/main/default.nix | 15 ++++++++++++--- hosts/tablet.nix | 13 ++++++++++--- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/hosts/main/default.nix b/hosts/main/default.nix index d35b5bc..62aeacb 100644 --- a/hosts/main/default.nix +++ b/hosts/main/default.nix @@ -1,4 +1,9 @@ -{ inputs, pkgs, ... }: +{ + inputs, + pkgs, + self, + ... +}: { imports = [ @@ -7,8 +12,8 @@ ../../nix-os/nvidia.nix ../../nix-os/docker.nix ../../nix-os/razer.nix - ../../nix-os/desktopManagers/gnome.nix - ../../nix-os/displayManagers/gdm.nix + ../../nix-os/desktopManagers/cosmic.nix + ../../nix-os/displayManagers/cosmic-greeter.nix ../../nix-os/shell.nix ../../nix-os/virtualization.nix ../../nix-os/polkit/disable-shutdown.nix @@ -36,6 +41,10 @@ hplip ]; + nixpkgs.overlays = [ + self.overlays.cosmicPackages + ]; + # nixos-vscode-server module needs this programs.nix-ld.enable = true; services.vscode-server = { diff --git a/hosts/tablet.nix b/hosts/tablet.nix index a9f656a..faf4c2a 100644 --- a/hosts/tablet.nix +++ b/hosts/tablet.nix @@ -1,4 +1,7 @@ -{ config, lib, pkgs, ... }: +{ + self, + ... +}: { imports = [ @@ -11,8 +14,8 @@ ../nix-os/gnupg.nix ../nix-os/polkit/network.nix - ../nix-os/desktopManagers/gnome.nix - ../nix-os/displayManagers/gdm.nix + ../nix-os/desktopManagers/cosmic.nix + ../../nix-os/displayManagers/cosmic-greeter.nix ../nix-os/udev.nix ]; @@ -25,6 +28,10 @@ networking.firewall.enable = true; hardware.sensor.iio.enable = true; + nixpkgs.overlays = [ + self.overlays.cosmicPackages + ]; + networking.firewall.allowedTCPPortRanges = [ # KDE Connect rec { from = 1714; to = from + 50; } From aa94855506d1b7f714f63c069edf245e07cba5e3 Mon Sep 17 00:00:00 2001 From: Wroclaw Date: Wed, 2 Oct 2024 23:56:34 +0200 Subject: [PATCH 10/10] nixos/cosmic: enable gnome-keyring --- nix-os/desktopManagers/cosmic.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nix-os/desktopManagers/cosmic.nix b/nix-os/desktopManagers/cosmic.nix index 01dd902..c863b27 100644 --- a/nix-os/desktopManagers/cosmic.nix +++ b/nix-os/desktopManagers/cosmic.nix @@ -14,5 +14,6 @@ environment.systemPackages = with pkgs; [ pavucontrol ]; + services.gnome.gnome-keyring.enable = true; }; }