Skip to content

Commit

Permalink
add grub theme and efi support
Browse files Browse the repository at this point in the history
  • Loading branch information
hauskens committed Jan 8, 2024
1 parent 82fcd81 commit e51d60d
Show file tree
Hide file tree
Showing 4 changed files with 99 additions and 82 deletions.
89 changes: 60 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# BigBother
## An annoying, yet functional linux distribution

**Still work in progress**
**Just a hobby project**

The goal of this distribution is to push the limits of an annoying user experience, while still remaining fully functional.

It is based on NixOS using flakes and comes with features you would normally not find in other distributions, such as having **Microsoft Edge** as default browser and **Telemetry enabled** by default wherever possible.
It is based on NixOS using flakes and comes with features you would normally not find in other distributions, such as having **Microsoft Edge** as default browser and a genuinely inconvenient features.

Anything annoying is likely intended (except how slow edge is at first time startup lol).

Expand All @@ -16,26 +16,75 @@ The simple answer is: **Don't.**
If you are still not conviced, here are some of the features in this distro:

- Microsoft Edge as default browser
- The cursor's active click point has been shifted
- Accidental boot protection
- Nano is aliased to VIM
- The cursor's active click point has been [shifted](#cursor)
- Cursor will [slowly drift](#trackpoint-drift-simulation) in a direction
- [Accidental boot protection](#accidental-boot-protection)
- Steep learning curve if you want install or update the system
- Telemetry enabled by default
- Login screen configured to not remember username
- Nano is aliased to VIM
- [Login screen](#customizations-to-the-login-screen) configured to not remember username
- Sudo is customized to insult you on incorrect password attempts

More in depth details about the features are found [here](#features)
Much more in depth details about the features are found [here](#features)

## Getting started
**⚠️INSTALL AT YOUR OWN RISK⚠️**

You should preferably run this in a virtual machine, not on physical hardware.
Some of the implementations have too much permissions and is considered to be insecure.

Check the [github releases](https://github.com/BigBotherLinux/BigBother/releases) for torrent file which will include the ISO. Boot up the ISO, preferably in an Virtual Machine.
### Get the ISO

Check the [github releases](https://github.com/BigBotherLinux/BigBother/releases) for torrent file which will include the latest ISO.

You can [build from source](#building-from-source) with nix if you are interested, as builds are reproducable.

### Running iso on Hyper-V
There are some settings you need to change to be able to run this in Hyper-V on Windows.

- When creating virtual machine, **Generation 1** is preferred
- If running **Generation 2** virtual machine, you need to disable secure boot
- Right after starting the iso you will be prompted with some options, **select the 2nd option (nomodeset)**

### Running the iso on QEMU

If you for some weird reason don't use Nix, simply run the quoted commands instead of using `nix-shell -p qemu --command`.
Modify these commands if you want different memory/cpu setup, you're a grown up, im sure you'll figure it out.

#### Create virtual disk
```bash
nix-shell -p qemu --command "qemu-img create test.qcow2 -f qcow2 40G"
```
#### BIOS - Preferred
Start virtual machine (with iso):
```bash
nix-shell -p qemu --command "qemu-system-x86_64 -enable-kvm -m 6000 -cdrom ISO-IMAGE-HERE.iso -hda test.qcow2 -boot d -smp 4"
```


After installation, shut down the machine and start it without the iso mounted:
```bash
nix-shell -p qemu --command "qemu-system-x86_64 -enable-kvm -m 6000 -hda test.qcow2 -boot d -smp 4"
```

#### UEFI

Non-Nix users need to find out a way to link to their own EFI files here, glhf.

Start virtual machine (with iso):
```bash
nix-shell -p qemu --command "qemu-system-x86_64 -bios $(nix build --print-out-paths --no-link nixpkgs#OVMF.fd)/FV/OVMF.fd -enable-kvm -m 6000 -cdrom ISO-IMAGE-HERE.iso -hda test.qcow2 -boot d -smp 4"
```


After installation, shut down the machine and start it without the iso mounted:
```bash
nix-shell -p qemu --command "qemu-system-x86_64 -bios $(nix build --print-out-paths --no-link nixpkgs#OVMF.fd)/FV/OVMF.fd -enable-kvm -m 6000 -hda test.qcow2 -boot d -smp 4"
```


You can [build from source](#building-from-source) with nix if you are interested.

## Need help?
### Need help?

There is nothing wrong in seeking help, however i doubt you will find it here.

Expand Down Expand Up @@ -134,24 +183,6 @@ nix build .\#nixosConfigurations.bigbotherinstaller.config.formats.isogen

There will be a symlink `result` in the root folder where you ran the command which is a link to the generated iso.

## Testing the image with QEMU

Create virtual disk:
```bash
nix-shell -p qemu --command "qemu-img create test.qcow2 -f qcow2 40G"
```

Start virtual machine (with iso):
```bash
nix-shell -p qemu --command "qemu-system-x86_64 -enable-kvm -m 8000 -cdrom result -hda test.qcow2 -boot d -smp 4"
```


After installation, shut down the machine and start it without the iso mounted:
```bash
nix-shell -p qemu --command "qemu-system-x86_64 -enable-kvm -m 8000 -hda test.qcow2 -boot d -smp 4"
```

## Distributing iso with torrent

This will build the iso and create a torrent file.
Expand All @@ -170,7 +201,7 @@ After taking the [Nix pills](https://nixos.org/guides/nix-pills/) i got motivate

## Special thanks

- [Instagram @jfb_fit](https://www.instagram.com/jfb_fit/) for making the logo
- Instagram @jfb_fit for making the logo
- [SnowflakeOS](https://github.com/snowflakelinux/) for inspiration and versioning implementation
- [calamares nixos extension](https://github.com/NixOS/calamares-nixos-extensions) for fork and inspiration
- [Arc KDE theme](https://github.com/PapirusDevelopmentTeam/arc-kde) for inspiration on global theme implementation
Expand Down
80 changes: 33 additions & 47 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions flake.nix
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# Build with nix build .\#nixosConfigurations.bigbotherpc.config.formats.isogen

{
description = "BigBrother Distro";

Expand All @@ -18,6 +16,7 @@

calamares-bb = {
url = "github:hauskens/calamares-nixos-extensions";
inputs.nixpkgs.follows = "nixpkgs";
};

bigbother-theme = {
Expand All @@ -36,7 +35,7 @@

outputs = { self, nixpkgs, nixos-generators, ... }@inputs:
let
version = "1.7";
version = "1.8";
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
in
Expand All @@ -52,7 +51,8 @@
isoImage.squashfsCompression = "zstd -Xcompression-level 3";
# Custom iso splash image
isoImage.splashImage = inputs.bigbother-theme + "/images/splashImage.png";
#isoImage.efiSplashImage = "${inputs.bigbother-theme.packages.${system}.bb-wallpaper}/contents/images/1920x1080.png";
isoImage.efiSplashImage = inputs.bigbother-theme + "/images/splashImage.png";
isoImage.grubTheme = inputs.bigbother-theme + "/grub2-theme";
formatAttr = "isoImage";
fileExtension = ".iso";
};
Expand Down
4 changes: 2 additions & 2 deletions modules/accidental-boot-protection.nix
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ in
config = lib.mkIf cfg.enable {
# Accidental boot protection
boot.loader.grub = {
splashImage = inputs.bigbother-theme + "/images/logo.png";
extraEntries = ''
menuentry "Accidental boot protection" {
Expand Down Expand Up @@ -40,9 +41,8 @@ in
halt
}
'';
extraConfig = "set theme=($drive2)${pkgs.breeze-grub}/grub/themes/breeze/theme.txt";
splashImage = null; # TODO: Add some branding here
extraEntriesBeforeNixOS = true;
};
boot.kernelParams = [ "nomodeset" ];
};
}

0 comments on commit e51d60d

Please sign in to comment.