diff --git a/README.md b/README.md index fb35ae5..64c1cde 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # saturnOS +NOTE: This repository is now a meta-repository to track builds of the OS and meta-issue with the OS and project, not relevant to any part of the system individually, the rest of the README will be updated occordingly soon + ok so there's been way too many failed OS concepts that have tried to be convergent, i could list some of them but i'm sure you all know of examples . the biggest problem as i see it is they try to use the same app for all platforms and that's not only too much stress on the dev it's also just gonna always be a worse output, plus this is nearly imossible to scale to vr/ar where the idea of a flat window is an ugly holdover from the 2d ancestors it comes from . so what's the solution ? breaking apps apart into component pieces, and swapping them out at runtime . diff --git a/configuration.nix b/configuration.nix deleted file mode 100644 index f7da15b..0000000 --- a/configuration.nix +++ /dev/null @@ -1,5 +0,0 @@ -# symlinkg this file to your /etc/nixos/ and make sure the directory is correct ! -{...}: -{ - imports = [ /home/hive/.saturn ]; -} diff --git a/local.nix b/local.nix deleted file mode 100644 index 82eee96..0000000 --- a/local.nix +++ /dev/null @@ -1,6 +0,0 @@ -# link this into the dependencies/nix-mobile directory : -# ln -rs local.nix dependencies/mobile-nixos/local.nix -{ ... }: -{ - imports = [ ./default.nix ]; -} diff --git a/saturnOS/default.nix b/saturnOS/default.nix deleted file mode 100644 index 7427cae..0000000 --- a/saturnOS/default.nix +++ /dev/null @@ -1,56 +0,0 @@ -# welcome to saturnOS config, run nixos-help if you need it . -{ config, pkgs, lib, ... }: -{ - imports = [ - ./modules - ./system - ]; - - # nix options - nix.settings = { - experimental-features = "nix-command flakes"; - auto-optimise-store = true; - }; - - # enable gnome - services.xserver.enable = true; - services.xserver.displayManager.gdm.enable = true; - services.xserver.desktopManager.gnome.enable = true; - - # enable dconf configuration for gnome and other supported applications - programs.dconf.enable = true; - - # configure pipewire - sound.enable = true; - hardware.pulseaudio.enable = false; - security.rtkit.enable = true; - services.pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - jack.enable = true; - }; - - # install packages - # `nix search` to add more - nixpkgs.config.allowUnfree = true; - environment.systemPackages = with pkgs; [ - ]; - - # set fish as default shell for all users - users.defaultUserShell = pkgs.fish; - - # suid wrapper ( for things which need privelidged acccess, or additional configuration ) - programs.gnupg.agent = { - enable = true; - enableSSHSupport = true; - pinentryFlavor = "gnome3"; - }; - programs.fish.enable = true; - - # enable configure services - services.printing.enable = true; # printing - services.openssh.enable = true; # remote shell - services.flatpak.enable = true; #flatpak lol -} diff --git a/saturnOS/modules/default.nix b/saturnOS/modules/default.nix deleted file mode 100644 index 47bd7b9..0000000 --- a/saturnOS/modules/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ ... }: -{ - imports = [ - ./saturnConfig.nix - ./machineInfo.nix - ]; -} diff --git a/saturnOS/modules/machineInfo.nix b/saturnOS/modules/machineInfo.nix deleted file mode 100644 index a30f2a1..0000000 --- a/saturnOS/modules/machineInfo.nix +++ /dev/null @@ -1,119 +0,0 @@ -{ config, pkgs, lib, ... }@nixpkgs: with lib; { - options.environment.machineInfo = mkOption { - description = lib.mdDoc '' - Machine metadata, including stylized hostname, computer icon, etc. - - This module controls the options written to `/etc/machine-info`. For more - information, see [the freedesktop documentation][1]. - - [1]: https://www.freedesktop.org/software/systemd/man/machine-info.html - ''; - default = {}; - type = types.submodule { options = { - - prettyHostname = mkOption { - description = lib.mdDoc '' - A pretty, human-readable hostname for this machine, potentially including - spaces, unicode, and emoji. If unset, this falls back to the network hostname - set in `networking.hostName`. - ''; - type = with types; nullOr str; - default = null; - defaultText = literalExpression "null"; - example = literalExpression "\"Jade's Laptop 💎\""; - }; - - iconName = mkOption { - description = lib.mdDoc '' - An XDG icon which should be associated with this machine. Some common choices - include: `"computer"`, `"phone"`, but a complete list of icons can be found in - the [XDG Icon Naming Spec][1]. - - If left unset, applications will typically default to `"computer"`. - - [1]: https://specifications.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html - ''; - type = with types; nullOr str; - default = null; - defaultText = literalExpression "null"; - example = literalExpression "\"computer\""; - }; - - chassis = mkOption { - description = lib.mdDoc '' - The type of chassis this machine resides within. This is typically detected - automatically, but can be manually overridden here. - ''; - type = with types; nullOr (enum [ - "desktop" - "laptop" - "convertible" - "server" - "tablet" - "handset" - "watch" - "embedded" - "vm" - "container" - ]); - default = null; - defaultText = literalExpression "null"; - example = literalExpression "\"server\""; - }; - - deployment = mkOption { - description = lib.mdDoc '' - If this machine is part of a deployment environment / pipeline, this option can - be used to specify what environment/pipeline stage it manages. - - Typically, but not necessarily, set to something like `"development"`, - `"integration"`, `"staging"`, or `"production"`. - ''; - type = with types; nullOr str; - default = null; - defaultText = literalExpression "null"; - example = literalExpression "\"production\""; - }; - - location = mkOption { - description = lib.mdDoc '' - A human-readable short description of the location of this machine. - - This can be set to whatever has the most meaning for you, for example "Living - Room", "Left Rack, 2nd Shelf", or "Parishville, NY". - ''; - type = with types; nullOr str; - default = null; - defaultText = literalExpression "null"; - example = literalExpression "\"Bedroom\""; - }; - - extraOptions = mkOption { - description = lib.mdDoc '' - Extra variables to put in `/etc/machine-info` - ''; - type = with types; attrsOf str; - default = {}; - defaultText = literalExpression "{ }"; - example = literalExpression "{ HARDWARE_VENDOR = \"Intel Corp.\" }"; - }; - - };}; - }; - - config.environment.etc.machine-info = - with config.environment.machineInfo; - let - rawShellVars = { - PRETTY_HOSTNAME = prettyHostname; - ICON_NAME = iconName; - CHASSIS = chassis; - DEPLOYMENT = deployment; - LOCATION = location; - } // extraOptions; - nonNullShellVars = attrsets.filterAttrs (k: v: v != null) rawShellVars; - in rec { - text = strings.toShellVars nonNullShellVars; - enable = builtins.stringLength text > 0; - }; -} \ No newline at end of file diff --git a/saturnOS/modules/saturnConfig.nix b/saturnOS/modules/saturnConfig.nix deleted file mode 100644 index 9767b36..0000000 --- a/saturnOS/modules/saturnConfig.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ config, lib, ... }: with lib; -{ - options.saturn = { - user = mkOption { - type = types.str; - default = "saturn"; - description = mdDoc "The name of the user of the system."; - }; - hostname = mkOption { - type = types.strMatching - "[a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?"; - default = "saturnOS-device"; - description = mdDoc "The network hostname of the system, which must only contain letters, - numbers, and dashes, and cannot start or end with a dash."; - }; - prettyHostname = mkOption { - type = types.str; - default = "🪐 saturnOS"; - description = mdDoc "The pretty hostname is used for things like bluetooth pairing, - device sharing, and is fully unicode."; - }; - }; - config.networking.hostName = config.saturn.hostname; - config.environment.machineInfo.prettyHostname = config.saturn.prettyHostname; -} diff --git a/saturnOS/system/custom.nix b/saturnOS/system/custom.nix deleted file mode 100644 index 4280f4e..0000000 --- a/saturnOS/system/custom.nix +++ /dev/null @@ -1,2 +0,0 @@ -# this is for options not managed bysaturnConfig, added by the user -# again this is an example template not meant to be used diff --git a/saturnOS/system/default.nix b/saturnOS/system/default.nix deleted file mode 100644 index 3e86766..0000000 --- a/saturnOS/system/default.nix +++ /dev/null @@ -1,45 +0,0 @@ -#this is a template, but would be auto-generated by saturnConfig, when the system is first created and on later modification to the system options -# it is not reccomended to use this file, as it should be generated by the script only -{ config, pkgs, lib, ... }: -{ - # importing custom user config - imports = [ ./custom.nix ]; - - # settings hostname - saturn.hostname = "saturnOS"; - saturn.prettyHostname = "🪐 saturnOS"; - - # efi bootloader - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; - boot.loader.efi.efiSysMountPoint = "/boot/efi"; - boot.initrd.systemd.enable = true; - boot.plymouth.enable = true; - boot.kernelParams = ["quiet"]; - - # configure networking - networking.networkmanager.enable = true; - - # configure locale - time.timeZone = "Etc/UTC"; - i18n.defaultLocale = "en_CA.UTF-8"; - - # configure x11 keymap - services.xserver = { - layout = "us"; - xkbVariant = ""; - }; - - # add and configure users - users.users.saturn = { - initialPassword = ""; - isNormalUser = true; - description = "Saturn User"; - extraGroups = [ "networkmanager" "wheel" ]; - }; - - # import home-manager config from home.nix ( kept for legacy reasons ) - # home-manager.users.${sysConf.user} = import "${userDir}/home.nix" sysConf; - - system.stateVersion = "23.05"; -}