Apply customization for School Edition

This commit is contained in:
Michael Smith 2024-09-11 10:39:48 +02:00
parent c08e57de0d
commit 8e3c2c64ee
17 changed files with 95 additions and 47 deletions

View File

@ -1,21 +1,3 @@
# deskOS - An easy to use, stable desktop operating system # deskOS - School Edition
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 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/school-wallpaper.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

View File

@ -20,9 +20,8 @@
# Localization # Localization
time.timeZone = "Europe/Brussels"; time.timeZone = "Europe/Brussels";
i18n.defaultLocale = "en_US.UTF-8"; i18n.defaultLocale = "nl_NL.UTF-8";
services.xserver.xkb.layout = "us"; services.xserver.xkb.layout = "nl";
services.xserver.xkb.variant = "dvorak";
services.displayManager.autoLogin = { services.displayManager.autoLogin = {
enable = true; enable = true;

View File

@ -20,12 +20,12 @@
loader.efi.canTouchEfiVariables = true; loader.efi.canTouchEfiVariables = true;
plymouth = { plymouth = {
enable = true; enable = true;
theme = "desk-os"; theme = "lightbulb";
themePackages = [(pkgs.callPackage ../../packages/desk-os-plymouth {})]; themePackages = [ (pkgs.callPackage ../../packages/lightbulb-plymouth {}) ];
}; };
}; };
system.nixos.distroName = "deskOS 1"; system.nixos.distroName = "deskOS 1 - School Edition";
system.autoUpgrade = { system.autoUpgrade = {
enable = true; enable = true;
@ -76,8 +76,8 @@
{ {
settings = { settings = {
"org/gnome/desktop/background" = { "org/gnome/desktop/background" = {
picture-uri = "file://${pkgs.gnome.gnome-backgrounds}/share/backgrounds/gnome/geometrics-l.jxl"; picture-uri = "file://${../../assets/school-wallpaper.jpg}";
picture-uri-dark = "file://${pkgs.gnome.gnome-backgrounds}/share/backgrounds/gnome/geometrics-d.jxl"; picture-uri-dark = "file://${../../assets/school-wallpaper.jpg}";
}; };
"org/gnome/desktop/wm/preferences" = { "org/gnome/desktop/wm/preferences" = {
@ -85,7 +85,7 @@
}; };
"org/gnome/desktop/screensaver" = { "org/gnome/desktop/screensaver" = {
picture-uri = "file://${pkgs.gnome.gnome-backgrounds}/share/backgrounds/gnome/geometrics-l.jxl"; picture-uri = "file://${../../assets/school-wallpaper.jpg}";
}; };
"org/gnome/desktop/interface" = { "org/gnome/desktop/interface" = {
@ -171,12 +171,12 @@
menu-layout = "Windows"; menu-layout = "Windows";
pinned-apps = lib.gvariant.mkArray [ pinned-apps = lib.gvariant.mkArray [
[(lib.gvariant.mkDictionaryEntry "id" "firefox.desktop")] [(lib.gvariant.mkDictionaryEntry "id" "firefox.desktop")]
[(lib.gvariant.mkDictionaryEntry "id" "org.gnome.Geary.desktop")]
[(lib.gvariant.mkDictionaryEntry "id" "org.gnome.Calendar.desktop")]
[(lib.gvariant.mkDictionaryEntry "id" "org.gnome.Nautilus.desktop")] [(lib.gvariant.mkDictionaryEntry "id" "org.gnome.Nautilus.desktop")]
[(lib.gvariant.mkDictionaryEntry "id" "writer.desktop")] [(lib.gvariant.mkDictionaryEntry "id" "writer.desktop")]
[(lib.gvariant.mkDictionaryEntry "id" "calc.desktop")] [(lib.gvariant.mkDictionaryEntry "id" "calc.desktop")]
[(lib.gvariant.mkDictionaryEntry "id" "impress.desktop")] [(lib.gvariant.mkDictionaryEntry "id" "impress.desktop")]
[(lib.gvariant.mkDictionaryEntry "id" "org.kde.krita.desktop")]
[(lib.gvariant.mkDictionaryEntry "id" "supertuxkart.desktop")]
[(lib.gvariant.mkDictionaryEntry "id" "org.gnome.Software.desktop")] [(lib.gvariant.mkDictionaryEntry "id" "org.gnome.Software.desktop")]
]; ];
}; };
@ -212,7 +212,9 @@
gnomeExtensions.just-perfection gnomeExtensions.just-perfection
gnomeExtensions.printers gnomeExtensions.printers
gnomeExtensions.removable-drive-menu gnomeExtensions.removable-drive-menu
krita
libreoffice libreoffice
superTuxKart
]; ];
environment.gnome.excludePackages = with pkgs; [ environment.gnome.excludePackages = with pkgs; [

View File

@ -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 - School 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 = "lightbulb-installer";
themePackages = [(pkgs.callPackage ../../packages/desk-os-installer-plymouth {})]; themePackages = [ (pkgs.callPackage ../../packages/lightbulb-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 = "nl_NL.UTF-8";
# Support choosing from any locale # Support choosing from any locale
i18n.supportedLocales = ["all"]; i18n.supportedLocales = ["all"];
@ -147,9 +149,9 @@ 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.gnome-backgrounds}/share/backgrounds/gnome/geometrics-l.jxl' picture-uri='file://${../../assets/school-wallpaper.jpg}'
[org.gnome.desktop.screensaver] [org.gnome.desktop.screensaver]
picture-uri='file://${pkgs.gnome.gnome-backgrounds}/share/backgrounds/gnome/geometrics-l.jxl' picture-uri='file://${../../assets/school-wallpaper.jpg}'
''; '';
extraGSettingsOverridePackages = [pkgs.gnome.gnome-settings-daemon]; extraGSettingsOverridePackages = [pkgs.gnome.gnome-settings-daemon];

View File

@ -9,21 +9,21 @@ windowExpanding: fullscreen
windowPlacement: center windowPlacement: center
sidebar: none sidebar: none
strings: strings:
productName: deskOS productName: deskOS - School Edition
shortProductName: deskOS shortProductName: deskOS - School Edition
version: 1 version: 1
shortVersion: 1 shortVersion: 1
versionedName: deskOS 1 versionedName: deskOS 1 - School Edition
shortVersionedName: deskOS 1 shortVersionedName: deskOS 1 - School Edition
bootloaderEntryName: deskOS bootloaderEntryName: deskOS - School Edition
productUrl: https://nixup.io productUrl: https://nixup.io
supportUrl: https://nixup.io supportUrl: https://nixup.io
knownIssuesUrl: https://github.com/nixup-io/desk-os/issues knownIssuesUrl: https://github.com/nixup-io/desk-os/issues
releaseNotesUrl: https://nixup.io releaseNotesUrl: https://nixup.io
donateUrl: https://nixup.io donateUrl: https://nixup.io
images: images:
productIcon: "desk-os-logo.png" productIcon: "desk-os-logo-school.png"
productLogo: "desk-os-logo.png" productLogo: "desk-os-logo-school.png"
style: style:
SidebarBackground: "#292F34" SidebarBackground: "#292F34"
SidebarText: "#FFFFFF" SidebarText: "#FFFFFF"

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

View File

@ -5,7 +5,6 @@
defaultGroups: defaultGroups:
- users - users
- networkmanager - networkmanager
- wheel
setRootPassword: false setRootPassword: false
doAutologin: true doAutologin: true
user: user:

View File

@ -56,7 +56,7 @@ flake = f"""
inputs = {{ inputs = {{
nixpkgs.url = "github:nixup-io/nixpkgs-desk-os/stable"; nixpkgs.url = "github:nixup-io/nixpkgs-desk-os/stable";
desk-os = {{ desk-os = {{
url = "github:nixup-io/desk-os"; url = "github:nixup-io/desk-os/school-edition";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}}; }};
}}; }};
@ -168,7 +168,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 - School Edition (this can take a while depending on your Internet speed)...")
status = pretty_name() status = pretty_name()
@ -243,7 +243,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 +295,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 - School Edition (this can take a while depending on your Internet speed)...")
# Install # Install
try: try:

View File

@ -0,0 +1,16 @@
{stdenv}:
stdenv.mkDerivation {
pname = "lightbulb-installer-plymouth";
version = "0.0.1";
src = ./src;
installPhase = ''
runHook preInstall
sed -i 's:\(^ImageDir=\)/usr:\1'"$out"':' lightbulb-installer.plymouth
sed -i 's:\(^ScriptFile=\)/usr:\1'"$out"':' lightbulb-installer.plymouth
mkdir -p $out/share/plymouth/themes/lightbulb-installer
cp * $out/share/plymouth/themes/lightbulb-installer
runHook postInstall
'';
}

View File

@ -0,0 +1,8 @@
[Plymouth Theme]
Name=Lightbulb Installer
Description=A theme that displays the Lightbulb Installer logo
ModuleName=script
[script]
ImageDir=/usr/share/plymouth/themes/lightbulb-installer
ScriptFile=/usr/share/plymouth/themes/lightbulb-installer/lightbulb-installer.script

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -0,0 +1,8 @@
image = Image("lightbulb-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

@ -0,0 +1,16 @@
{stdenv}:
stdenv.mkDerivation {
pname = "lightbulb-plymouth";
version = "0.0.1";
src = ./src;
installPhase = ''
runHook preInstall
sed -i 's:\(^ImageDir=\)/usr:\1'"$out"':' lightbulb.plymouth
sed -i 's:\(^ScriptFile=\)/usr:\1'"$out"':' lightbulb.plymouth
mkdir -p $out/share/plymouth/themes/lightbulb
cp * $out/share/plymouth/themes/lightbulb
runHook postInstall
'';
}

View File

@ -0,0 +1,8 @@
[Plymouth Theme]
Name=Lightbulb
Description=A theme that displays the Lightbulb
ModuleName=script
[script]
ImageDir=/usr/share/plymouth/themes/lightbulb
ScriptFile=/usr/share/plymouth/themes/lightbulb/lightbulb.script

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@ -0,0 +1,8 @@
image = Image("lightbulb.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);