diff --git a/README.md b/README.md index ac5334d..93e78ff 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,3 @@ -# deskOS - An easy to use, stable desktop operating system - -See https://nixup.io/desk-os/learn-more - -## Run a deskOS demo in a virtual machine - -If you are running NixOS or you have the [Nix package manager](https://nixos.org/) installed, you can easily run a deskOS demo from this flake: - -```sh -nix run github:nixup-io/desk-os -``` - -## Contact - -- E-mail: [info@nixup.io](mailto:info@nixup.io) -- X: [@michaelshmitty](https://x.com/michaelshmitty) -- Fediverse: [@neo](https://social.hacktheplanet.be/@neo) - -## Acknowledgements +# deskOS - EU Edition deskOS is based on [Linux](https://en.wikipedia.org/wiki/Linux) and [NixOS](https://nixos.org/). diff --git a/assets/eu-wallpaper.jpg b/assets/eu-wallpaper.jpg new file mode 100644 index 0000000..bd03203 Binary files /dev/null and b/assets/eu-wallpaper.jpg differ diff --git a/modules/desk-os/default.nix b/modules/desk-os/default.nix index edc0fe5..8550994 100644 --- a/modules/desk-os/default.nix +++ b/modules/desk-os/default.nix @@ -20,12 +20,12 @@ loader.efi.canTouchEfiVariables = true; plymouth = { enable = true; - theme = "desk-os"; - themePackages = [(pkgs.callPackage ../../packages/desk-os-plymouth {})]; + theme = "eu-flag"; + themePackages = [ (pkgs.callPackage ../../packages/eu-flag-plymouth {}) ]; }; }; - system.nixos.distroName = "deskOS 1"; + system.nixos.distroName = "deskOS 1 - EU Edition"; system.autoUpgrade = { enable = true; @@ -76,8 +76,8 @@ { settings = { "org/gnome/desktop/background" = { - picture-uri = "file://${pkgs.gnome.gnome-backgrounds}/share/backgrounds/gnome/geometrics-l.jxl"; - picture-uri-dark = "file://${pkgs.gnome.gnome-backgrounds}/share/backgrounds/gnome/geometrics-d.jxl"; + picture-uri = "file://${../../assets/eu-wallpaper.jpg}"; + picture-uri-dark = "file://${../../assets/eu-wallpaper.jpg}"; }; "org/gnome/desktop/wm/preferences" = { @@ -85,7 +85,7 @@ }; "org/gnome/desktop/screensaver" = { - picture-uri = "file://${pkgs.gnome.gnome-backgrounds}/share/backgrounds/gnome/geometrics-l.jxl"; + picture-uri = "file://${../../assets/eu-wallpaper.jpg}"; }; "org/gnome/desktop/interface" = { diff --git a/modules/installer/default.nix b/modules/installer/default.nix index cb3d7f1..3dfa5b8 100644 --- a/modules/installer/default.nix +++ b/modules/installer/default.nix @@ -30,7 +30,7 @@ in { (modulesPath + "/profiles/installation-device.nix") ]; - system.nixos.distroName = "deskOS 1"; + system.nixos.distroName = "deskOS 1 - EU Edition"; # FIXME(m): Disable squashfs compression during development # isoImage.squashfsCompression = null; @@ -43,8 +43,8 @@ in { loader.timeout = lib.mkForce 0; plymouth = { enable = true; - theme = "desk-os-installer"; - themePackages = [(pkgs.callPackage ../../packages/desk-os-installer-plymouth {})]; + theme = "eu-flag-installer"; + themePackages = [ (pkgs.callPackage ../../packages/eu-flag-installer-plymouth {}) ]; }; # NOTE(m): Enable kernel modules that improve wifi support on # Macbooks during installation. @@ -125,6 +125,8 @@ in { gnomeExtensions.no-overview ]; + i18n.defaultLocale = "en_GB.UTF-8"; + # Support choosing from any locale i18n.supportedLocales = ["all"]; @@ -147,9 +149,9 @@ in { sleep-inactive-ac-type='nothing' sleep-inactive-battery-type='nothing' [org.gnome.desktop.background] - picture-uri='file://${pkgs.gnome.gnome-backgrounds}/share/backgrounds/gnome/geometrics-l.jxl' + picture-uri='file://${../../assets/eu-wallpaper.jpg}' [org.gnome.desktop.screensaver] - picture-uri='file://${pkgs.gnome.gnome-backgrounds}/share/backgrounds/gnome/geometrics-l.jxl' + picture-uri='file://${../../assets/eu-wallpaper.jpg}' ''; extraGSettingsOverridePackages = [pkgs.gnome.gnome-settings-daemon]; diff --git a/packages/calamares-extensions/branding/default/branding.desc b/packages/calamares-extensions/branding/default/branding.desc index ee19628..3050771 100644 --- a/packages/calamares-extensions/branding/default/branding.desc +++ b/packages/calamares-extensions/branding/default/branding.desc @@ -9,21 +9,21 @@ windowExpanding: fullscreen windowPlacement: center sidebar: none strings: - productName: deskOS - shortProductName: deskOS + productName: deskOS - EU Edition + shortProductName: deskOS - EU Edition version: 1 shortVersion: 1 - versionedName: deskOS 1 - shortVersionedName: deskOS 1 - bootloaderEntryName: deskOS - productUrl: https://nixup.io - supportUrl: https://nixup.io - knownIssuesUrl: https://github.com/nixup-io/desk-os/issues - releaseNotesUrl: https://nixup.io - donateUrl: https://nixup.io + versionedName: deskOS 1 - EU Edition + shortVersionedName: deskOS 1 - EU Edition + bootloaderEntryName: deskOS - EU Edition + productUrl: https://www.edps.europa.eu/ + supportUrl: https://www.edps.europa.eu/ + knownIssuesUrl: https://github.com/EU-EDPS + releaseNotesUrl: https://www.edps.europa.eu/ + donateUrl: https://www.edps.europa.eu/ images: - productIcon: "desk-os-logo.png" - productLogo: "desk-os-logo.png" + productIcon: "desk-os-logo-eu.png" + productLogo: "desk-os-logo-eu.png" style: SidebarBackground: "#292F34" SidebarText: "#FFFFFF" diff --git a/packages/calamares-extensions/branding/default/desk-os-logo-eu.png b/packages/calamares-extensions/branding/default/desk-os-logo-eu.png new file mode 100644 index 0000000..6b1098d Binary files /dev/null and b/packages/calamares-extensions/branding/default/desk-os-logo-eu.png differ diff --git a/packages/calamares-extensions/config/modules/partition.conf b/packages/calamares-extensions/config/modules/partition.conf index 5aa8f77..e8aaecb 100644 --- a/packages/calamares-extensions/config/modules/partition.conf +++ b/packages/calamares-extensions/config/modules/partition.conf @@ -8,6 +8,7 @@ efi: label: "EFI" userSwapChoices: - suspend +luksGeneration: luks2 drawNestedPartitions: false alwaysShowPartitionLabels: true allowManualPartitioning: false @@ -26,5 +27,9 @@ initialSwapChoice: suspend requiredPartitionTableType: gpt partitionLayout: - filesystem: "ext4" + noEncrypt: false mountPoint: "/" size: 100% +enableLuksAutomatedPartitioning: true +# FIXME(m): This does not seem to work +preCheckEncryption: true diff --git a/packages/calamares-extensions/config/modules/users.conf b/packages/calamares-extensions/config/modules/users.conf index d069de6..53abe42 100644 --- a/packages/calamares-extensions/config/modules/users.conf +++ b/packages/calamares-extensions/config/modules/users.conf @@ -5,9 +5,8 @@ defaultGroups: - users - networkmanager - - wheel -setRootPassword: false -doAutologin: true +setRootPassword: true +doAutologin: false user: shell: /run/current-system/sw/bin/bash forbidden_names: [ root ] diff --git a/packages/calamares-extensions/config/modules/welcome.conf b/packages/calamares-extensions/config/modules/welcome.conf index c4f0497..350f96f 100644 --- a/packages/calamares-extensions/config/modules/welcome.conf +++ b/packages/calamares-extensions/config/modules/welcome.conf @@ -8,7 +8,7 @@ showReleaseNotesUrl: false requirements: requiredStorage: 60 requiredRam: 4.0 - internetCheckUrl: [ https://nixup.io, https://cache.nixos.org/ ] + internetCheckUrl: [ https://www.edps.europa.eu, https://cache.nixos.org/ ] check: - storage - ram diff --git a/packages/calamares-extensions/modules/desk_os_installation/main.py b/packages/calamares-extensions/modules/desk_os_installation/main.py index 408b45e..a3e8503 100644 --- a/packages/calamares-extensions/modules/desk_os_installation/main.py +++ b/packages/calamares-extensions/modules/desk_os_installation/main.py @@ -56,7 +56,7 @@ flake = f""" inputs = {{ nixpkgs.url = "github:nixup-io/nixpkgs-desk-os/stable"; desk-os = {{ - url = "github:nixup-io/desk-os"; + url = "github:nixup-io/desk-os/eu-edition"; inputs.nixpkgs.follows = "nixpkgs"; }}; }}; @@ -114,11 +114,6 @@ configuration_body = """ extraGroups = [ @@groups@@ ]; }; - services.displayManager.autoLogin = { - enable = true; - user = "@@username@@"; - }; - nixpkgs.config.allowUnfree = true; """ @@ -168,7 +163,7 @@ configuration_tail = """ """ def pretty_name(): - return _("Installing deskOS (this can take a while depending on your Internet speed)...") + return _("Installing deskOS - EU Edition (this can take a while depending on your Internet speed)...") status = pretty_name() @@ -243,7 +238,7 @@ def run(): if (gs.value("username") is not None): fullname = gs.value("fullname") - groups = ["networkmanager", "wheel"] + groups = ["networkmanager"] catenate(variables, "username", gs.value("username")) catenate(variables, "fullname", fullname) @@ -295,7 +290,7 @@ def run(): libcalamares.utils.host_env_process_output( ["cp", "/dev/stdin", flakeFile], None, flake) - status = _("Installing deskOS (this can take a while depending on your Internet speed)...") + status = _("Installing deskOS - EU Edition (this can take a while depending on your Internet speed)...") # Install try: diff --git a/packages/eu-flag-installer-plymouth/default.nix b/packages/eu-flag-installer-plymouth/default.nix new file mode 100644 index 0000000..4c70a5c --- /dev/null +++ b/packages/eu-flag-installer-plymouth/default.nix @@ -0,0 +1,16 @@ +{stdenv}: +stdenv.mkDerivation { + pname = "eu-flag-installer-plymouth"; + version = "0.0.1"; + + src = ./src; + + installPhase = '' + runHook preInstall + sed -i 's:\(^ImageDir=\)/usr:\1'"$out"':' eu-flag-installer.plymouth + sed -i 's:\(^ScriptFile=\)/usr:\1'"$out"':' eu-flag-installer.plymouth + mkdir -p $out/share/plymouth/themes/eu-flag-installer + cp * $out/share/plymouth/themes/eu-flag-installer + runHook postInstall + ''; +} diff --git a/packages/eu-flag-installer-plymouth/src/eu-flag-installer.plymouth b/packages/eu-flag-installer-plymouth/src/eu-flag-installer.plymouth new file mode 100644 index 0000000..51e8e24 --- /dev/null +++ b/packages/eu-flag-installer-plymouth/src/eu-flag-installer.plymouth @@ -0,0 +1,8 @@ +[Plymouth Theme] +Name=EU flag Installer +Description=A theme that displays the EU flag Installer logo +ModuleName=script + +[script] +ImageDir=/usr/share/plymouth/themes/eu-flag-installer +ScriptFile=/usr/share/plymouth/themes/eu-flag-installer/eu-flag-installer.script diff --git a/packages/eu-flag-installer-plymouth/src/eu-flag-installer.png b/packages/eu-flag-installer-plymouth/src/eu-flag-installer.png new file mode 100644 index 0000000..7c6fb06 Binary files /dev/null and b/packages/eu-flag-installer-plymouth/src/eu-flag-installer.png differ diff --git a/packages/eu-flag-installer-plymouth/src/eu-flag-installer.script b/packages/eu-flag-installer-plymouth/src/eu-flag-installer.script new file mode 100644 index 0000000..ce9c3e6 --- /dev/null +++ b/packages/eu-flag-installer-plymouth/src/eu-flag-installer.script @@ -0,0 +1,8 @@ +image = Image("eu-flag-installer.png"); + +pos_x = Window.GetWidth()/2 - image.GetWidth()/2; +pos_y = Window.GetHeight()/2 - image.GetHeight()/2; + +sprite = Sprite(image); +sprite.SetX(pos_x); +sprite.SetY(pos_y); diff --git a/packages/eu-flag-plymouth/default.nix b/packages/eu-flag-plymouth/default.nix new file mode 100644 index 0000000..3acc8ff --- /dev/null +++ b/packages/eu-flag-plymouth/default.nix @@ -0,0 +1,16 @@ +{stdenv}: +stdenv.mkDerivation { + pname = "eu-flag-plymouth"; + version = "0.0.1"; + + src = ./src; + + installPhase = '' + runHook preInstall + sed -i 's:\(^ImageDir=\)/usr:\1'"$out"':' eu-flag.plymouth + sed -i 's:\(^ScriptFile=\)/usr:\1'"$out"':' eu-flag.plymouth + mkdir -p $out/share/plymouth/themes/eu-flag + cp * $out/share/plymouth/themes/eu-flag + runHook postInstall + ''; +} diff --git a/packages/eu-flag-plymouth/src/eu-flag.plymouth b/packages/eu-flag-plymouth/src/eu-flag.plymouth new file mode 100644 index 0000000..c8414e5 --- /dev/null +++ b/packages/eu-flag-plymouth/src/eu-flag.plymouth @@ -0,0 +1,8 @@ +[Plymouth Theme] +Name=EU flag +Description=A theme that displays the EU flag +ModuleName=script + +[script] +ImageDir=/usr/share/plymouth/themes/eu-flag +ScriptFile=/usr/share/plymouth/themes/eu-flag/eu-flag.script diff --git a/packages/eu-flag-plymouth/src/eu-flag.png b/packages/eu-flag-plymouth/src/eu-flag.png new file mode 100644 index 0000000..0e58fad Binary files /dev/null and b/packages/eu-flag-plymouth/src/eu-flag.png differ diff --git a/packages/eu-flag-plymouth/src/eu-flag.script b/packages/eu-flag-plymouth/src/eu-flag.script new file mode 100644 index 0000000..72f6a75 --- /dev/null +++ b/packages/eu-flag-plymouth/src/eu-flag.script @@ -0,0 +1,8 @@ +image = Image("eu-flag.png"); + +pos_x = Window.GetWidth()/2 - image.GetWidth()/2; +pos_y = Window.GetHeight()/2 - image.GetHeight()/2; + +sprite = Sprite(image); +sprite.SetX(pos_x); +sprite.SetY(pos_y);