Compare commits
1 Commits
main
...
eu-edition
| Author | SHA1 | Date | |
|---|---|---|---|
| 1186cb2d47 |
19
README.md
19
README.md
@ -1,20 +1,3 @@
|
|||||||
# deskOS - An easy to use, stable desktop operating system
|
# deskOS - EU Edition
|
||||||
|
|
||||||
## 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/).
|
deskOS is based on [Linux](https://en.wikipedia.org/wiki/Linux) and [NixOS](https://nixos.org/).
|
||||||
|
|||||||
BIN
assets/eu-wallpaper.jpg
Normal file
BIN
assets/eu-wallpaper.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 238 KiB |
8
flake.lock
generated
8
flake.lock
generated
@ -2,16 +2,16 @@
|
|||||||
"nodes": {
|
"nodes": {
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743576891,
|
"lastModified": 1725407940,
|
||||||
"narHash": "sha256-vXiKURtntURybE6FMNFAVpRPr8+e8KoLPrYs9TGuAKc=",
|
"narHash": "sha256-tiN5Rlg/jiY0tyky+soJZoRzLKbPyIdlQ77xVgREDNM=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "44a69ed688786e98a101f02b712c313f1ade37ab",
|
"rev": "6f6c45b5134a8ee2e465164811e451dcb5ad86e3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-24.11",
|
"ref": "nixos-24.05",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
description = "deskOS - An easy to use, stable desktop operating system";
|
description = "deskOS - An easy to use, stable desktop operating system";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs = {
|
||||||
|
|||||||
@ -20,12 +20,12 @@
|
|||||||
loader.efi.canTouchEfiVariables = true;
|
loader.efi.canTouchEfiVariables = true;
|
||||||
plymouth = {
|
plymouth = {
|
||||||
enable = true;
|
enable = true;
|
||||||
theme = "desk-os";
|
theme = "eu-flag";
|
||||||
themePackages = [(pkgs.callPackage ../../packages/desk-os-plymouth {})];
|
themePackages = [ (pkgs.callPackage ../../packages/eu-flag-plymouth {}) ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
system.nixos.distroName = "deskOS 1";
|
system.nixos.distroName = "deskOS 1 - EU Edition";
|
||||||
|
|
||||||
system.autoUpgrade = {
|
system.autoUpgrade = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@ -68,14 +68,16 @@
|
|||||||
pulse.enable = true;
|
pulse.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
i18n.inputMethod.enabled = "ibus";
|
||||||
|
|
||||||
programs.dconf.enable = true;
|
programs.dconf.enable = true;
|
||||||
programs.dconf.profiles = {
|
programs.dconf.profiles = {
|
||||||
user.databases = [
|
user.databases = [
|
||||||
{
|
{
|
||||||
settings = {
|
settings = {
|
||||||
"org/gnome/desktop/background" = {
|
"org/gnome/desktop/background" = {
|
||||||
picture-uri = "file://${pkgs.gnome-backgrounds}/share/backgrounds/gnome/geometrics-l.jxl";
|
picture-uri = "file://${../../assets/eu-wallpaper.jpg}";
|
||||||
picture-uri-dark = "file://${pkgs.gnome-backgrounds}/share/backgrounds/gnome/geometrics-d.jxl";
|
picture-uri-dark = "file://${../../assets/eu-wallpaper.jpg}";
|
||||||
};
|
};
|
||||||
|
|
||||||
"org/gnome/desktop/wm/preferences" = {
|
"org/gnome/desktop/wm/preferences" = {
|
||||||
@ -83,7 +85,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
"org/gnome/desktop/screensaver" = {
|
"org/gnome/desktop/screensaver" = {
|
||||||
picture-uri = "file://${pkgs.gnome-backgrounds}/share/backgrounds/gnome/geometrics-l.jxl";
|
picture-uri = "file://${../../assets/eu-wallpaper.jpg}";
|
||||||
};
|
};
|
||||||
|
|
||||||
"org/gnome/desktop/interface" = {
|
"org/gnome/desktop/interface" = {
|
||||||
@ -198,7 +200,7 @@
|
|||||||
desktopManager.gnome.enable = true;
|
desktopManager.gnome.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.udev.packages = with pkgs; [gnome-settings-daemon];
|
services.udev.packages = with pkgs; [gnome.gnome-settings-daemon];
|
||||||
|
|
||||||
programs.firefox.enable = true;
|
programs.firefox.enable = true;
|
||||||
|
|
||||||
@ -215,7 +217,7 @@
|
|||||||
|
|
||||||
environment.gnome.excludePackages = with pkgs; [
|
environment.gnome.excludePackages = with pkgs; [
|
||||||
pkgs.gnome-tour
|
pkgs.gnome-tour
|
||||||
pkgs.epiphany
|
pkgs.gnome.epiphany
|
||||||
];
|
];
|
||||||
|
|
||||||
# Fix scaling issues with electron apps
|
# Fix scaling issues with electron apps
|
||||||
|
|||||||
@ -30,7 +30,7 @@ in {
|
|||||||
(modulesPath + "/profiles/installation-device.nix")
|
(modulesPath + "/profiles/installation-device.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
system.nixos.distroName = "deskOS 1";
|
system.nixos.distroName = "deskOS 1 - EU Edition";
|
||||||
|
|
||||||
# FIXME(m): Disable squashfs compression during development
|
# FIXME(m): Disable squashfs compression during development
|
||||||
# isoImage.squashfsCompression = null;
|
# isoImage.squashfsCompression = null;
|
||||||
@ -43,8 +43,8 @@ in {
|
|||||||
loader.timeout = lib.mkForce 0;
|
loader.timeout = lib.mkForce 0;
|
||||||
plymouth = {
|
plymouth = {
|
||||||
enable = true;
|
enable = true;
|
||||||
theme = "desk-os-installer";
|
theme = "eu-flag-installer";
|
||||||
themePackages = [(pkgs.callPackage ../../packages/desk-os-installer-plymouth {})];
|
themePackages = [ (pkgs.callPackage ../../packages/eu-flag-installer-plymouth {}) ];
|
||||||
};
|
};
|
||||||
# NOTE(m): Enable kernel modules that improve wifi support on
|
# NOTE(m): Enable kernel modules that improve wifi support on
|
||||||
# Macbooks during installation.
|
# Macbooks during installation.
|
||||||
@ -125,6 +125,8 @@ in {
|
|||||||
gnomeExtensions.no-overview
|
gnomeExtensions.no-overview
|
||||||
];
|
];
|
||||||
|
|
||||||
|
i18n.defaultLocale = "en_GB.UTF-8";
|
||||||
|
|
||||||
# Support choosing from any locale
|
# Support choosing from any locale
|
||||||
i18n.supportedLocales = ["all"];
|
i18n.supportedLocales = ["all"];
|
||||||
|
|
||||||
@ -147,12 +149,12 @@ in {
|
|||||||
sleep-inactive-ac-type='nothing'
|
sleep-inactive-ac-type='nothing'
|
||||||
sleep-inactive-battery-type='nothing'
|
sleep-inactive-battery-type='nothing'
|
||||||
[org.gnome.desktop.background]
|
[org.gnome.desktop.background]
|
||||||
picture-uri='file://${pkgs.gnome-backgrounds}/share/backgrounds/gnome/geometrics-l.jxl'
|
picture-uri='file://${../../assets/eu-wallpaper.jpg}'
|
||||||
[org.gnome.desktop.screensaver]
|
[org.gnome.desktop.screensaver]
|
||||||
picture-uri='file://${pkgs.gnome-backgrounds}/share/backgrounds/gnome/geometrics-l.jxl'
|
picture-uri='file://${../../assets/eu-wallpaper.jpg}'
|
||||||
'';
|
'';
|
||||||
|
|
||||||
extraGSettingsOverridePackages = [pkgs.gnome-settings-daemon];
|
extraGSettingsOverridePackages = [pkgs.gnome.gnome-settings-daemon];
|
||||||
|
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|||||||
@ -9,21 +9,21 @@ windowExpanding: fullscreen
|
|||||||
windowPlacement: center
|
windowPlacement: center
|
||||||
sidebar: none
|
sidebar: none
|
||||||
strings:
|
strings:
|
||||||
productName: deskOS
|
productName: deskOS - EU Edition
|
||||||
shortProductName: deskOS
|
shortProductName: deskOS - EU Edition
|
||||||
version: 1
|
version: 1
|
||||||
shortVersion: 1
|
shortVersion: 1
|
||||||
versionedName: deskOS 1
|
versionedName: deskOS 1 - EU Edition
|
||||||
shortVersionedName: deskOS 1
|
shortVersionedName: deskOS 1 - EU Edition
|
||||||
bootloaderEntryName: deskOS
|
bootloaderEntryName: deskOS - EU Edition
|
||||||
productUrl: https://nixup.io
|
productUrl: https://www.edps.europa.eu/
|
||||||
supportUrl: https://nixup.io
|
supportUrl: https://www.edps.europa.eu/
|
||||||
knownIssuesUrl: https://git.michaelsmith.be/m/desk-os/issues
|
knownIssuesUrl: https://github.com/EU-EDPS
|
||||||
releaseNotesUrl: https://nixup.io
|
releaseNotesUrl: https://www.edps.europa.eu/
|
||||||
donateUrl: https://nixup.io
|
donateUrl: https://www.edps.europa.eu/
|
||||||
images:
|
images:
|
||||||
productIcon: "desk-os-logo.png"
|
productIcon: "desk-os-logo-eu.png"
|
||||||
productLogo: "desk-os-logo.png"
|
productLogo: "desk-os-logo-eu.png"
|
||||||
style:
|
style:
|
||||||
SidebarBackground: "#292F34"
|
SidebarBackground: "#292F34"
|
||||||
SidebarText: "#FFFFFF"
|
SidebarText: "#FFFFFF"
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 395 KiB |
@ -8,6 +8,7 @@ efi:
|
|||||||
label: "EFI"
|
label: "EFI"
|
||||||
userSwapChoices:
|
userSwapChoices:
|
||||||
- suspend
|
- suspend
|
||||||
|
luksGeneration: luks2
|
||||||
drawNestedPartitions: false
|
drawNestedPartitions: false
|
||||||
alwaysShowPartitionLabels: true
|
alwaysShowPartitionLabels: true
|
||||||
allowManualPartitioning: false
|
allowManualPartitioning: false
|
||||||
@ -26,5 +27,9 @@ initialSwapChoice: suspend
|
|||||||
requiredPartitionTableType: gpt
|
requiredPartitionTableType: gpt
|
||||||
partitionLayout:
|
partitionLayout:
|
||||||
- filesystem: "ext4"
|
- filesystem: "ext4"
|
||||||
|
noEncrypt: false
|
||||||
mountPoint: "/"
|
mountPoint: "/"
|
||||||
size: 100%
|
size: 100%
|
||||||
|
enableLuksAutomatedPartitioning: true
|
||||||
|
# FIXME(m): This does not seem to work
|
||||||
|
preCheckEncryption: true
|
||||||
|
|||||||
@ -5,9 +5,8 @@
|
|||||||
defaultGroups:
|
defaultGroups:
|
||||||
- users
|
- users
|
||||||
- networkmanager
|
- networkmanager
|
||||||
- wheel
|
setRootPassword: true
|
||||||
setRootPassword: false
|
doAutologin: false
|
||||||
doAutologin: true
|
|
||||||
user:
|
user:
|
||||||
shell: /run/current-system/sw/bin/bash
|
shell: /run/current-system/sw/bin/bash
|
||||||
forbidden_names: [ root ]
|
forbidden_names: [ root ]
|
||||||
|
|||||||
@ -8,7 +8,7 @@ showReleaseNotesUrl: false
|
|||||||
requirements:
|
requirements:
|
||||||
requiredStorage: 60
|
requiredStorage: 60
|
||||||
requiredRam: 4.0
|
requiredRam: 4.0
|
||||||
internetCheckUrl: [ https://cache.nixos.org/ ]
|
internetCheckUrl: [ https://www.edps.europa.eu, https://cache.nixos.org/ ]
|
||||||
check:
|
check:
|
||||||
- storage
|
- storage
|
||||||
- ram
|
- ram
|
||||||
|
|||||||
@ -54,9 +54,9 @@ flake = f"""
|
|||||||
description = "deskOS flake";
|
description = "deskOS flake";
|
||||||
|
|
||||||
inputs = {{
|
inputs = {{
|
||||||
nixpkgs.url = "git+https://git.michaelsmith.be/m/nixpkgs-desk-os.git";
|
nixpkgs.url = "github:nixup-io/nixpkgs-desk-os/stable";
|
||||||
desk-os = {{
|
desk-os = {{
|
||||||
url = "git+https://git.michaelsmith.be/m/desk-os.git";
|
url = "github:nixup-io/desk-os/eu-edition";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
}};
|
}};
|
||||||
}};
|
}};
|
||||||
@ -114,11 +114,6 @@ configuration_body = """
|
|||||||
extraGroups = [ @@groups@@ ];
|
extraGroups = [ @@groups@@ ];
|
||||||
};
|
};
|
||||||
|
|
||||||
services.displayManager.autoLogin = {
|
|
||||||
enable = true;
|
|
||||||
user = "@@username@@";
|
|
||||||
};
|
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@ -168,7 +163,7 @@ configuration_tail = """
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
def pretty_name():
|
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()
|
status = pretty_name()
|
||||||
@ -243,7 +238,7 @@ def run():
|
|||||||
|
|
||||||
if (gs.value("username") is not None):
|
if (gs.value("username") is not None):
|
||||||
fullname = gs.value("fullname")
|
fullname = gs.value("fullname")
|
||||||
groups = ["networkmanager", "wheel"]
|
groups = ["networkmanager"]
|
||||||
|
|
||||||
catenate(variables, "username", gs.value("username"))
|
catenate(variables, "username", gs.value("username"))
|
||||||
catenate(variables, "fullname", fullname)
|
catenate(variables, "fullname", fullname)
|
||||||
@ -295,7 +290,7 @@ def run():
|
|||||||
libcalamares.utils.host_env_process_output(
|
libcalamares.utils.host_env_process_output(
|
||||||
["cp", "/dev/stdin", flakeFile], None, flake)
|
["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
|
# Install
|
||||||
try:
|
try:
|
||||||
|
|||||||
16
packages/eu-flag-installer-plymouth/default.nix
Normal file
16
packages/eu-flag-installer-plymouth/default.nix
Normal file
@ -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
|
||||||
|
'';
|
||||||
|
}
|
||||||
@ -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
|
||||||
BIN
packages/eu-flag-installer-plymouth/src/eu-flag-installer.png
Normal file
BIN
packages/eu-flag-installer-plymouth/src/eu-flag-installer.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 36 KiB |
@ -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);
|
||||||
16
packages/eu-flag-plymouth/default.nix
Normal file
16
packages/eu-flag-plymouth/default.nix
Normal file
@ -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
|
||||||
|
'';
|
||||||
|
}
|
||||||
8
packages/eu-flag-plymouth/src/eu-flag.plymouth
Normal file
8
packages/eu-flag-plymouth/src/eu-flag.plymouth
Normal file
@ -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
|
||||||
BIN
packages/eu-flag-plymouth/src/eu-flag.png
Normal file
BIN
packages/eu-flag-plymouth/src/eu-flag.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 34 KiB |
8
packages/eu-flag-plymouth/src/eu-flag.script
Normal file
8
packages/eu-flag-plymouth/src/eu-flag.script
Normal file
@ -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);
|
||||||
Loading…
x
Reference in New Issue
Block a user