The blendOS v4 alpha is now out! Here’s how you can install and try it out.
Installing v4 #
blendOS v4 is a lot more declarative than v3. The current beta must be installed on top of Arch.
What you’ll need #
Do not install this on top of blendOS v3!
There is no upgrade procedure yet, this will ruin your v3 install if you try to update from it.
- An Arch Linux VM (or real PC, if you dare) using
mkinitcpio
for the kernel image, GRUB as the bootloader, and no disk encryption1. - An internet connection
- Time
- Basic YAML knowledge
Steps #
archinstall
. If you’re on a T2 Intel mac (2017 iMac Pro or an Intel Mac from 2018 and later), instructions are
here.
Add the breakfast
repo
#
At the end of your /etc/pacman.conf
add the following lines:
[breakfast]
SigLevel = Never
Server = https://pkg-repo.blendos.co
* Yes, I am aware this has a SigLevel
of never, this is very insecure. I’m assuming this is just a testing thing and will be fixed.
If you’d like to browse our small repo, feel free to do so.
Create your system config #
Create a file in /
named system.yaml
.
Avalible tracks on the standard repo:
-
plasma
-
gnome
-
xfce
-
mate
-
lxqt
-
blendos-base
* Kinda bloated for a base, if you want something stripped down, see below. This track allows for custom desktops and more.
This is YAML so indentation is important. All indents are 2 spaces (no tabs).
Add the following to it (or something similar, THIS IS JUST AN EXAMPLE!):
# /system.yaml
repo: 'https://pkg-repo.blendos.co/'
impl: 'https://github.com/blend-os/tracks/raw/main' # or an alternate track repo
track: 'plasma' # or 'xfce' or 'mate'
# GNOME isn't recommended
# at the moment as it is
# known to be be buggy.
packages:
- 'firefox' # stuff to install using pacman
# - 'nvidia-dkms' if you're using an NVIDIA GPU
You can add repos and things to this file, as documented here (Again, just an example):
repo: 'https://pkg-repo.blendos.co/'
impl: 'https://github.com/blend-os/tracks/raw/main'
track: 'gnome'
packages:
- 'micro'
- 'caddy'
services:
- 'caddy' # what services to start
package-repos:
- name: 'chaotic-aur' # the name as it would appear in pacman.conf
repo-url: 'https://cdn-mirror.chaotic.cx/$repo/$arch' # the Server
Configuration customization #
Track repo #
Currently there are also alternate track repos:
For T2Linux users.
Avalible tracks:
- All tracks from the standard repo. modified for T2Linux
blendos-base
renamed toblendos-base-t2
impl: 'https://github.com/NoaHimesaka1873/blendos-tracks-t2/raw/main'
ico277 stripped base track repo:
This repo modifies blendos-base
to be more stripped down, and creates a blendos-dekstop
track.
Avalible tracks:
- All standard tracks are unmodified, except for
blendos-base
blendos-desktop
added
impl: 'https://github.com/ico277/blendos-tracks/raw/main'
track: 'blendos-base' # one of two tracks that differ from the standard repo
* you can also use ico277’s blendos-desktop
track with this repo, which adds a very minimal (like just pipewire and xorg) desktop setup to blendos-base
.
sudo akshara update
after editing your system.yaml
.
Adding custom track repos #
Your repo must have a series of YAML files, look at the main track repo for examples.
Your base track must have a track:
of custom
, as shown
here. Desktop tracks must have their track set to your base track.
Tracks are like mini system.yaml
files, and have the same structure.
The easiest way to get started is to just fork the main repo, but impl
URL structures for common Git forges are shown below:
Common git forges:
Replace everything in caps with what it represents.
GitHub:
https://github.com/USER/REPO/raw/BRANCH
GitLab: https://GITLAB-SERVER/USER/REPO/-/raw/BRANCH
Gitea/Forgejo (i.e. Codeberg): https://GITEA-SERVER/USER/REPO/raw/branch/BRANCH
BitBucket Cloud (Not Recommended):
https://bitbucket.org/USER/REPO/raw/FULL_COMMIT_HASH/
For BitBucket, you must add all the track files in ONE COMMIT, and use that commit's full hash.
Steps (cont.d) #
Wifi firmware (T2 ONLY!) #
If you are on a T2 Mac, please follow this guide to copy your wifi firmware over from MacOS BEFORE continuing with the rest of this guide.
Installing akshara
#
Run sudo pacman -Sy akshara
.
Adding akshara
into mkinitcpio
#
Edit /etc/mkinitcpio.conf
and add akshara
after the base udev
bit in the HOOKS
part of the file.
Run sudo mkinitcpio -P; sudo akshara update
.
Reboot your system.
blendOS v4 is now installed!
To update your Arch packages, just run sudo akshara update
.
Post-Install #
Adding repos #
Add a line to the end of system.yaml
like so (using the
chaotic-aur
as an example):
package-repos:
- name: 'chaotic-aur' # repo name as it would appear in pacman.conf
repo-url: 'https://cdn-mirror.chaotic.cx/$repo/$arch' # Repo URL as it would appear in pacman.conf
(the Chaotic AUR’s package list can be found here, and packages can be manually downloaded from here)
If you add repos, run sudo akshara update
and reboot afterwards.
Adding AUR packages #
Add stuff under the aur-packages
tag. They will be installed via paru
automatically (paru
is in our repo, don’t add it as a package here). You will need to run sudo akshara update
a lot more often.
aur-packages:
- '1'
- '2'
Reference #
system.yaml
#
system.yaml
structure (preserve all single quotes and the order of items):
repo: 'https://pkg-repo.blendos.co' # Do not change this.
# the track repo
impl: 'https://github.com/USER/REPO/raw/BRANCH'
track: 'plasma' # The track you want
packages: # Packages to install using pacman
- 'package_1'
- 'package_2'
aur-packages: # AUR packages, installed via paru
- 'package_1-git'
- 'package_2-bin'
services: # Enable these systemd services
- 'service_1'
package-repos:
- name: 'REPO_NAME' # as it appears in pacman.conf
repo-url: 'REPO_URL' # the Server variable in pacman.conf for this repo
commands: # List of commands to run at system build, will execute with root permissions, more file-related stuff like git is tricky
- 'echo command_1'
- 'echo command_2'
repo
#
https://pkg-repo.blendos.co
Type: string value
Don’t change this. Repo where the core blendOS packages (and akshara
) are stored.
impl
#
Type: string value
The repo where the tracks are.
track
#
blendos-base
Type: string value
The track yaml file, without the extension (i.e. blendos-base.yaml
-> track: blendos-base
).
packages
#
Type: array
Add packages to install from the repos (including set custom ones) via pacman
, one per-line.
packages:
- '1'
- '2'
aur-packages
#
Type: array
Same as
packages
, but for packages from the AUR.
aur-packages:
- '1-bin'
- '2-git'
services
#
Type: array
Services to start via systemd
.
services:
- 'service-1'
- 'socket-2.socket'
custom-repos
#
Type: object array
Custom repos to add. Consists of their name and URL as they would appear in pacman.conf.
custom-repos:
- name: 'NAME'
url: 'MAIN_REPO_URL'
Support for mirrorlists is coming in the future. For now, you can just pick a mirror or use a geolocator URL if applicable.
commands
#
Type: array
Commands to be run at system build, run as root.
commands:
- 'echo 1'
- 'echo 2'
akshara
#
Update system (new arch packages, edited config) #
sudo akshara update
* You will need to reboot after this.
Help menu #
akshara help
Version #
akshara version
-
You can use encryption by moving the
akshara
hook after theencrypt
one in yourmkinitcpio.conf
, but this has not been tested, and is not officially supported. ↩︎