diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e2f5dd2 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +result \ No newline at end of file diff --git a/CodeOfEthics.md b/CodeOfEthics.md deleted file mode 100644 index 11e7a8d..0000000 --- a/CodeOfEthics.md +++ /dev/null @@ -1,31 +0,0 @@ -The Lunduke Computer Operating System does not have an official "Code of Conduct". - -All people are welcome to use and enjoy The Lunduke Computer Operating System, regardless of: - -- Ethnicity -- Gender -- Nationality -- Religion -- Political Leanings -- Taste in Music - -When interacting with The Lunduke Computer Operating System (email, forums, or any other communications) there exists a very simple (very easy to follow) set of rules: - -- Be Excellent to Each Other. -- No Cursin' or Swearin'. -- Meritocracy Rules. - -That said, the leadership of The Lunduke Computer Operating System highly recommends the following. - -The Ten Commandments (English Translation from Exodus 20: 2 - 14): - -- I am the L‑rd your G‑d, Who brought you out of the land of Egypt, out of the house of bondage. -- You shall have no other gods before Me. You shall not make for yourself a graven image, nor any manner of likeness of anything that is in heaven above, that is in the earth beneath, or that is in the water under the earth. You shall not bow down to them, nor serve them. For I the L‑rd your G‑d am a jealous G‑d, visiting the iniquity of the fathers upon the children of the third and fourth generation of them that hate Me; and showing mercy unto the thousandth generation of them that love Me and keep My commandments. -- You shall not take the name of the L‑rd your G‑d in vain; for the L‑rd will not hold him guiltless that takes His name in vain. -- Remember the Sabbath Day, to keep it holy. Six days you shall labor and do all your work; but the seventh day is a Sabbath unto the L‑rd your G‑d. On it you shall not do any manner of work—you, your son, your daughter, your man-servant, your maid-servant, your cattle, and your stranger that is within your gates. For in six days the L‑rd made heaven and earth, the sea and all that is in them, and rested on the seventh day; wherefore the L‑rd blessed the Sabbath Day, and hallowed it. -- Honor your father and mother, so that your days may be long upon the land which the L‑rd your G‑d gives you. -- You shall not murder. -- You shall not commit adultery. -- You shall not steal. -- You shall not bear false witness against your neighbor. -- You shall not covet your neighbor's house; you shall not covet your neighbor's wife, his manservant, his maid-servant, his ox, his donkey, nor anything that is your neighbor's. diff --git a/README.md b/README.md index 8f9d677..e883266 100644 --- a/README.md +++ b/README.md @@ -6,15 +6,14 @@ A Linux system built by Lunduke, for Lunduke. The Lunduke Computer Operating System (LCOS) adheres to a core set of ideas: -- No Age or ID Verification. -- No Online Accounts Needed. - No AI. -- No Weird Politics. -- No Systemd. -- No Forced Rust Clones. -- Modern Tech. 90s UI. +- A lot of Weird Politics. +- All of Systemd. +- So many forced Rust Clones. +- Using wayland only +- Restricting non woke packages -LCOS is built on top of Devuan (a high quality fork of Debian, which removes Systemd), and includes carefully selected software to adhere to those core ideals (including the stripped-down Brave Origin as the default web browser). +LCOS is built on top of NixOs (a high quality operating system), and includes carefully selected software to adhere to those core ideals. ## The Lunduke Computer Operating System is a Monarchy. @@ -30,12 +29,4 @@ As such, source code deviations, from upstream projects, is kept to an absolute LCOS is in early development. Expect bugs. -[The Lunduke Journal Forum](https://forum.lunduke.com/) is the exclusive place to ask questions, provide suggestions, report issues, or talk with other LCOS users. To keep trolls away, [this forum](https://forum.lunduke.com/) is only available to [Lunduke Journal subscribers](https://lunduke.com/). - -## Screenshots - -![](screenshots/lcos-01-shot3.png) - -![](screenshots/lcos-01-shot1.png) - -![](screenshots/lcos-01-shot4.png) +[The Lunduke Journal Forum](https://forum.lunduke.com/) is the exclusive place to ask questions, provide suggestions, report issues, or talk with other LCOS users. To keep trolls away, [this forum](https://forum.lunduke.com/) is only available to [Lunduke Journal subscribers](https://lunduke.com/). \ No newline at end of file diff --git a/cdImage/default.nix b/cdImage/default.nix new file mode 100644 index 0000000..57234a2 --- /dev/null +++ b/cdImage/default.nix @@ -0,0 +1,10 @@ +{ pkgs, modulesPath, ...}: { + imports = [ (modulesPath + "/installer/cd-dvd/installation-cd-minimal.nix") ]; + + services.displayManager.cosmic-greeter.enable = true; + services.desktopManager.cosmic.enable = true; + services.displayManager.autoLogin = { + enable = true; + user = "nixos"; + }; +} \ No newline at end of file diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..4e5087c --- /dev/null +++ b/flake.lock @@ -0,0 +1,27 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1784497964, + "narHash": "sha256-vlHUuqAcbcH2RKmHbPiuQzbv1pnzzavXnI62RD0bqCU=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..7709665 --- /dev/null +++ b/flake.nix @@ -0,0 +1,21 @@ +{ + description = "A very basic flake"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; + }; + + outputs = { self, nixpkgs }: { + nixosModules.default = import ./nixosModules; + + nixosConfigurations = { + iso = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + ./nixosModules + ./cdImage + ]; + }; + }; + }; +} diff --git a/nixosModules/alternatives.nix b/nixosModules/alternatives.nix new file mode 100644 index 0000000..45b14dc --- /dev/null +++ b/nixosModules/alternatives.nix @@ -0,0 +1,7 @@ +{ ... }: { + nixpkgs.overlays = [ + (self: super: { + neofetch = builtins.trace "Neofetch has been deemed not woke enough will use pkgs.hyfetch" super.hyfetch; + }) + ]; +} \ No newline at end of file diff --git a/nixosModules/blacklist.nix b/nixosModules/blacklist.nix new file mode 100644 index 0000000..2bd2a42 --- /dev/null +++ b/nixosModules/blacklist.nix @@ -0,0 +1,14 @@ +{ lib, config, ... }: { + nixpkgs.overlays = [ + (self: super: { + xwayland-satellite = abort "Lunduke Computer Operating System does not allow XORG compatibility anymore please use wayland"; + }) + ]; + + assertions = [ + { + assertion = !config.services.xserver.enable; + message = "Lunduke Computer Operating System does not allow XORG anymore please use wayland"; + } + ]; +} \ No newline at end of file diff --git a/nixosModules/default.nix b/nixosModules/default.nix new file mode 100644 index 0000000..5251af2 --- /dev/null +++ b/nixosModules/default.nix @@ -0,0 +1,16 @@ +{ lib, ... }: { + imports = [ + ./installConfig.nix + ./blacklist.nix + ./alternatives.nix + ./systemd.nix + ]; + + networking.hostName = lib.mkDefault "lcos"; + system.nixos = { + distroName = "lcos"; + distroId = "lcos"; + vendorId = "lunduke"; + vendorName = "lunduke"; + }; +} \ No newline at end of file diff --git a/nixosModules/installConfig.nix b/nixosModules/installConfig.nix new file mode 100644 index 0000000..ef29979 --- /dev/null +++ b/nixosModules/installConfig.nix @@ -0,0 +1,146 @@ +{ config, options, ...}: let + flake = '' + { + inputs = { + # This is pointing to an unstable release. + # If you prefer a stable release instead, you can change the word unstable to the latest number shown here: https://nixos.org/download + # i.e. nixos-26.05 + # Use `nix flake update` to update the flake to the latest revision of the chosen release channel. + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + lcos.url = "github:AwesomeQubic/lcosv2"; + }; + outputs = inputs\@{ self, nixpkgs, lcos, ... }: { + nixosConfigurations.${options.networking.hostName} = nixpkgs.lib.nixosSystem { + modules = [ + ./configuration.nix + lcos.nixosModules.default + ]; + }; + }; + } + ''; + configuration = '' + # Edit this configuration file to define what should be installed on + # your system. Help is available in the configuration.nix(5) man page, on + # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). + + { config, lib, pkgs, ... }: + + { + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + + $bootLoaderConfig + # networking.hostName = "${options.networking.hostName}"; # Define your hostname. + + # Configure network connections interactively with nmcli or nmtui. + networking.networkmanager.enable = true; + + # Set your time zone. + # time.timeZone = "Europe/Amsterdam"; + + # Configure network proxy if necessary + # networking.proxy.default = "http://user:password\@proxy:port/"; + # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + + # Select internationalisation properties. + # i18n.defaultLocale = "en_US.UTF-8"; + # console = { + # font = "Lat2-Terminus16"; + # keyMap = "us"; + # useXkbConfig = true; # use xkb.options in tty. + # }; + + $desktopConfiguration + + # Enable CUPS to print documents. + # services.printing.enable = true; + + # Enable sound. + # services.pulseaudio.enable = true; + # OR + # services.pipewire = { + # enable = true; + # pulse.enable = true; + # }; + + # Enable touchpad support (enabled default in most desktopManager). + # services.libinput.enable = true; + + # Define a user account. Don't forget to set a password with ‘passwd’. + # users.users.alice = { + # isNormalUser = true; + # extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user. + # packages = with pkgs; [ + # tree + # ]; + # }; + + # programs.firefox.enable = true; + + # List packages installed in system profile. + # You can use https://search.nixos.org/ to find more packages (and options). + # environment.systemPackages = with pkgs; [ + # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. + # wget + # ]; + + # Some programs need SUID wrappers, can be configured further or are + # started in user sessions. + # programs.mtr.enable = true; + # programs.gnupg.agent = { + # enable = true; + # enableSSHSupport = true; + # }; + + # List services that you want to enable: + + # Enable the OpenSSH daemon. + # services.openssh.enable = true; + + # Open ports in the firewall. + # networking.firewall.allowedTCPPorts = [ ... ]; + # networking.firewall.allowedUDPPorts = [ ... ]; + # Or disable the firewall altogether. + # networking.firewall.enable = false; + + # Copy the NixOS configuration file and link it from the resulting system + # (/run/current-system/configuration.nix). This is useful in case you + # accidentally delete configuration.nix. + # system.copySystemConfiguration = true; + + # This option defines the first version of NixOS you have installed on this particular machine, + # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions. + # + # Most users should NEVER change this value after the initial install, for any reason, + # even if you've upgraded your system to a new NixOS release. + # + # This value does NOT affect the Nixpkgs version your packages and OS are pulled from, + # so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how + # to actually do that. + # + # This value being lower than the current NixOS release does NOT mean your system is + # out of date, out of support, or vulnerable. + # + # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, + # and migrated your data accordingly. + # + # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . + system.stateVersion = "${config.system.nixos.release}"; # Did you read the comment? + + } + ''; +in { + + system.nixos-generate-config = { + inherit flake configuration; + }; + + # Set it to use flake + environment.etc."nixos-generate-config.conf".text = '' + [Defaults] + Flake=true + ''; +} \ No newline at end of file diff --git a/nixosModules/systemd.nix b/nixosModules/systemd.nix new file mode 100644 index 0000000..3426e35 --- /dev/null +++ b/nixosModules/systemd.nix @@ -0,0 +1,3 @@ +{ pkgs, ...}: { + boot.initrd.systemd.enable = true; +} \ No newline at end of file diff --git a/pkgs/default.nix b/pkgs/default.nix new file mode 100644 index 0000000..e69de29 diff --git a/screenshots/lcos-01-shot-boot.png b/screenshots/lcos-01-shot-boot.png deleted file mode 100644 index a9830c9..0000000 Binary files a/screenshots/lcos-01-shot-boot.png and /dev/null differ diff --git a/screenshots/lcos-01-shot-refractainstaller.png b/screenshots/lcos-01-shot-refractainstaller.png deleted file mode 100644 index 7243160..0000000 Binary files a/screenshots/lcos-01-shot-refractainstaller.png and /dev/null differ diff --git a/screenshots/lcos-01-shot1.png b/screenshots/lcos-01-shot1.png deleted file mode 100644 index dd26fb0..0000000 Binary files a/screenshots/lcos-01-shot1.png and /dev/null differ diff --git a/screenshots/lcos-01-shot2.png b/screenshots/lcos-01-shot2.png deleted file mode 100644 index 3789940..0000000 Binary files a/screenshots/lcos-01-shot2.png and /dev/null differ diff --git a/screenshots/lcos-01-shot3.png b/screenshots/lcos-01-shot3.png deleted file mode 100644 index 2453107..0000000 Binary files a/screenshots/lcos-01-shot3.png and /dev/null differ diff --git a/screenshots/lcos-01-shot4.png b/screenshots/lcos-01-shot4.png deleted file mode 100644 index 4c6ebc7..0000000 Binary files a/screenshots/lcos-01-shot4.png and /dev/null differ