Compare commits

..

7 Commits

Author SHA1 Message Date
Michael Smith
2130b915ee Update README.md 2025-06-08 10:51:27 +02:00
a36b44d1af Upgrade to nixos-24.11 2025-04-04 16:08:31 +02:00
8cac364367 Update repository urls 2025-04-04 14:43:03 +02:00
Michael Smith
4619935c9a
Update README.md 2025-04-03 14:38:37 +02:00
Michael Smith
bc42dde34a
Update README.md 2025-04-03 14:37:37 +02:00
Michael Smith
2b2ee66665
Update README.md 2025-03-28 12:42:16 +01:00
Michael Smith
27596e7f45
Update README.md 2024-12-07 18:49:15 +01:00
20 changed files with 63 additions and 113 deletions

View File

@ -1,3 +1,20 @@
# deskOS - EU Edition
# deskOS - An easy to use, stable desktop operating system
## 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 git+https://git.michaelsmith.be/m/desk-os.git
```
## Contact
- E-mail: [postbus@michaelsmith.be](mailto:postbus@michaelsmith.be)
- Mastodon: [@neo](https://social.hacktheplanet.be/@neo)
- Bluesky: [Michael Smith (Neo)](https://bsky.app/profile/hacktheplanet.be)
- X: [@michaelshmitty](https://x.com/michaelshmitty)
## Acknowledgements
deskOS is based on [Linux](https://en.wikipedia.org/wiki/Linux) and [NixOS](https://nixos.org/).

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 KiB

8
flake.lock generated
View File

@ -2,16 +2,16 @@
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1725407940,
"narHash": "sha256-tiN5Rlg/jiY0tyky+soJZoRzLKbPyIdlQ77xVgREDNM=",
"lastModified": 1743576891,
"narHash": "sha256-vXiKURtntURybE6FMNFAVpRPr8+e8KoLPrYs9TGuAKc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6f6c45b5134a8ee2e465164811e451dcb5ad86e3",
"rev": "44a69ed688786e98a101f02b712c313f1ade37ab",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.05",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}

View File

@ -2,7 +2,7 @@
description = "deskOS - An easy to use, stable desktop operating system";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
};
outputs = {

View File

@ -20,12 +20,12 @@
loader.efi.canTouchEfiVariables = true;
plymouth = {
enable = true;
theme = "eu-flag";
themePackages = [ (pkgs.callPackage ../../packages/eu-flag-plymouth {}) ];
theme = "desk-os";
themePackages = [(pkgs.callPackage ../../packages/desk-os-plymouth {})];
};
};
system.nixos.distroName = "deskOS 1 - EU Edition";
system.nixos.distroName = "deskOS 1";
system.autoUpgrade = {
enable = true;
@ -68,16 +68,14 @@
pulse.enable = true;
};
i18n.inputMethod.enabled = "ibus";
programs.dconf.enable = true;
programs.dconf.profiles = {
user.databases = [
{
settings = {
"org/gnome/desktop/background" = {
picture-uri = "file://${../../assets/eu-wallpaper.jpg}";
picture-uri-dark = "file://${../../assets/eu-wallpaper.jpg}";
picture-uri = "file://${pkgs.gnome-backgrounds}/share/backgrounds/gnome/geometrics-l.jxl";
picture-uri-dark = "file://${pkgs.gnome-backgrounds}/share/backgrounds/gnome/geometrics-d.jxl";
};
"org/gnome/desktop/wm/preferences" = {
@ -85,7 +83,7 @@
};
"org/gnome/desktop/screensaver" = {
picture-uri = "file://${../../assets/eu-wallpaper.jpg}";
picture-uri = "file://${pkgs.gnome-backgrounds}/share/backgrounds/gnome/geometrics-l.jxl";
};
"org/gnome/desktop/interface" = {
@ -200,7 +198,7 @@
desktopManager.gnome.enable = true;
};
services.udev.packages = with pkgs; [gnome.gnome-settings-daemon];
services.udev.packages = with pkgs; [gnome-settings-daemon];
programs.firefox.enable = true;
@ -217,7 +215,7 @@
environment.gnome.excludePackages = with pkgs; [
pkgs.gnome-tour
pkgs.gnome.epiphany
pkgs.epiphany
];
# Fix scaling issues with electron apps

View File

@ -30,7 +30,7 @@ in {
(modulesPath + "/profiles/installation-device.nix")
];
system.nixos.distroName = "deskOS 1 - EU Edition";
system.nixos.distroName = "deskOS 1";
# FIXME(m): Disable squashfs compression during development
# isoImage.squashfsCompression = null;
@ -43,8 +43,8 @@ in {
loader.timeout = lib.mkForce 0;
plymouth = {
enable = true;
theme = "eu-flag-installer";
themePackages = [ (pkgs.callPackage ../../packages/eu-flag-installer-plymouth {}) ];
theme = "desk-os-installer";
themePackages = [(pkgs.callPackage ../../packages/desk-os-installer-plymouth {})];
};
# NOTE(m): Enable kernel modules that improve wifi support on
# Macbooks during installation.
@ -125,8 +125,6 @@ in {
gnomeExtensions.no-overview
];
i18n.defaultLocale = "en_GB.UTF-8";
# Support choosing from any locale
i18n.supportedLocales = ["all"];
@ -149,12 +147,12 @@ in {
sleep-inactive-ac-type='nothing'
sleep-inactive-battery-type='nothing'
[org.gnome.desktop.background]
picture-uri='file://${../../assets/eu-wallpaper.jpg}'
picture-uri='file://${pkgs.gnome-backgrounds}/share/backgrounds/gnome/geometrics-l.jxl'
[org.gnome.desktop.screensaver]
picture-uri='file://${../../assets/eu-wallpaper.jpg}'
picture-uri='file://${pkgs.gnome-backgrounds}/share/backgrounds/gnome/geometrics-l.jxl'
'';
extraGSettingsOverridePackages = [pkgs.gnome.gnome-settings-daemon];
extraGSettingsOverridePackages = [pkgs.gnome-settings-daemon];
enable = true;
};

View File

@ -9,21 +9,21 @@ windowExpanding: fullscreen
windowPlacement: center
sidebar: none
strings:
productName: deskOS - EU Edition
shortProductName: deskOS - EU Edition
productName: deskOS
shortProductName: deskOS
version: 1
shortVersion: 1
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/
versionedName: deskOS 1
shortVersionedName: deskOS 1
bootloaderEntryName: deskOS
productUrl: https://nixup.io
supportUrl: https://nixup.io
knownIssuesUrl: https://git.michaelsmith.be/m/desk-os/issues
releaseNotesUrl: https://nixup.io
donateUrl: https://nixup.io
images:
productIcon: "desk-os-logo-eu.png"
productLogo: "desk-os-logo-eu.png"
productIcon: "desk-os-logo.png"
productLogo: "desk-os-logo.png"
style:
SidebarBackground: "#292F34"
SidebarText: "#FFFFFF"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 395 KiB

View File

@ -8,7 +8,6 @@ efi:
label: "EFI"
userSwapChoices:
- suspend
luksGeneration: luks2
drawNestedPartitions: false
alwaysShowPartitionLabels: true
allowManualPartitioning: false
@ -27,9 +26,5 @@ initialSwapChoice: suspend
requiredPartitionTableType: gpt
partitionLayout:
- filesystem: "ext4"
noEncrypt: false
mountPoint: "/"
size: 100%
enableLuksAutomatedPartitioning: true
# FIXME(m): This does not seem to work
preCheckEncryption: true

View File

@ -5,8 +5,9 @@
defaultGroups:
- users
- networkmanager
setRootPassword: true
doAutologin: false
- wheel
setRootPassword: false
doAutologin: true
user:
shell: /run/current-system/sw/bin/bash
forbidden_names: [ root ]

View File

@ -8,7 +8,7 @@ showReleaseNotesUrl: false
requirements:
requiredStorage: 60
requiredRam: 4.0
internetCheckUrl: [ https://www.edps.europa.eu, https://cache.nixos.org/ ]
internetCheckUrl: [ https://cache.nixos.org/ ]
check:
- storage
- ram

View File

@ -54,9 +54,9 @@ flake = f"""
description = "deskOS flake";
inputs = {{
nixpkgs.url = "github:nixup-io/nixpkgs-desk-os/stable";
nixpkgs.url = "git+https://git.michaelsmith.be/m/nixpkgs-desk-os.git";
desk-os = {{
url = "github:nixup-io/desk-os/eu-edition";
url = "git+https://git.michaelsmith.be/m/desk-os.git";
inputs.nixpkgs.follows = "nixpkgs";
}};
}};
@ -114,6 +114,11 @@ configuration_body = """
extraGroups = [ @@groups@@ ];
};
services.displayManager.autoLogin = {
enable = true;
user = "@@username@@";
};
nixpkgs.config.allowUnfree = true;
"""
@ -163,7 +168,7 @@ configuration_tail = """
"""
def pretty_name():
return _("Installing deskOS - EU Edition (this can take a while depending on your Internet speed)...")
return _("Installing deskOS (this can take a while depending on your Internet speed)...")
status = pretty_name()
@ -238,7 +243,7 @@ def run():
if (gs.value("username") is not None):
fullname = gs.value("fullname")
groups = ["networkmanager"]
groups = ["networkmanager", "wheel"]
catenate(variables, "username", gs.value("username"))
catenate(variables, "fullname", fullname)
@ -290,7 +295,7 @@ def run():
libcalamares.utils.host_env_process_output(
["cp", "/dev/stdin", flakeFile], None, flake)
status = _("Installing deskOS - EU Edition (this can take a while depending on your Internet speed)...")
status = _("Installing deskOS (this can take a while depending on your Internet speed)...")
# Install
try:

View File

@ -1,16 +0,0 @@
{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
'';
}

View File

@ -1,8 +0,0 @@
[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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

View File

@ -1,8 +0,0 @@
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);

View File

@ -1,16 +0,0 @@
{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
'';
}

View File

@ -1,8 +0,0 @@
[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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

View File

@ -1,8 +0,0 @@
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);