moeOS is an elegant Operating System based on Arch Linux. It fits on tablets, laptops and desktops.
Things just work, with a touch of security. No need to fiddle with printers and hybrid graphics.
For a list of breaking changes, see /usr/share/moeOS-Docs/NEWS
- A swap partition is REQUIRED
- Vanilla Zen kernel.
- Multi-core CPU.
- EFI System Partition auto-mounted by systemd.
- (Optional) Your own sbctl keys which can be imported.
- The
moeDiscreteOnly=1environment variable can be used to override GPU detection:- 1: Force use of discrete GPU
- Side note: while switching from discrete mode to hybrid mode, run
sudo touch /dev/dri/renderD100 && sudo modprobe xeto trick the building script
- Defaults to NVIDIA driver stack, nouveau can be used by setting
moeNouveauenvironment.
- Please follow the official Arch Linux installation guide using the BTRFS file system with subvolumes
@and@home, until Initramfs, excludingFstab.- Note that unencrypted setups are not tested
- Your root partition MUST be btrfs, and has 2 subvolumes:
@and@home. The former which should mount to/, and the latter to/home - You MUST set the correct partition type UUID, or the system may not boot
- Cheatsheet:
- x86_64 root: SD_GPT_ROOT_X86_64: 4f68bce3-e8cd-4db1-96e7-fbcaf984b709
- Swap: SD_GPT_SWAP: 0657fd6d-a4ab-43c4-84e5-0933c84b4f4f
- EFI: c12a7328-f81f-11d2-ba4b-00a0c93ec93b
- Cheatsheet:
- Please add the archlinuxcn repository. Add the following lines in the chroot system /etc/pacman.conf:
[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
- Optionally, configure the mirror:
- run `pacman -Syu archlinuxcn-mirrorlist-git`
- edit `/etc/pacman.d/archlinuxcn-mirrorlist`, uncomment wanted mirrors
- edit `/etc/pacman.conf` replace the _Server_ line with `Include = /etc/pacman.d/archlinuxcn-mirrorlist`
- Install package
fishnanogitparudevtoolslinux-headers - Create your user:
useradd -m -G wheel <User>passwd <User> - Uncomment or add
%wheel ALL=(ALL:ALL) ALLin /etc/sudoers - Install this project: (Note that you should choose xdg-desktop-portal-gnome, and nvidia-open-dkms when asked)
sudo -u <User>
paru -S xone-dongle-firmware
git clone https://github.com/Kimiblock/moeOS-Package.git
cd moeOS-Package
paru -Ui
exit
systemctl enable gdm
cd /
rm moeOS-Package
- Format and mount /efi
- Run
kernel-install add-all - Reboot to firmware via
systemctl reboot -i --firmware-setup, put Secure Boot in Setup Mode, then runsudo sbctl enroll-keys --tpm-eventlogin the new system to complete Secure Boot setup. - Run
sudo systemd-cryptenroll /dev/nvme* --tpm2-device=auto --tpm2-pcrs=7 --tpm2-public-key=/var/lib/moeOS/TPM-Keys/Public.pem --tpm2-public-key-pcrs=11
git clone https://github.com/Kimiblock/moeOS-Package.git
cd moeOS-Package
paru -Ui
Add the following lines to /etc/paru.conf:
[moeOS-git]
Url = https://github.com/Kimiblock/moeOS-Package.git
[lsb-release-moe]
Url = https://github.com/Kimiblock/moeOS-Package.git
[nvidia-prime-moe]
Url = https://github.com/Kimiblock/moeOS-Package.git
[moe-multimedia-meta]
Url = https://github.com/Kimiblock/moeOS-Package.git
[moe-fonts-meta]
Url = https://github.com/Kimiblock/moeOS-Package.git
[moe-input-config]
Url = https://github.com/Kimiblock/moeOS-Package.git
[moe-desktop-meta]
Url = https://github.com/Kimiblock/moeOS-Package.git
Then install the package:
paru -Sy --pkgbuilds
paru -Syu
paru -S "moeOS-git" "lsb-release-moe" "nvidia-prime-moe" "moe-multimedia-meta" "moe-fonts-meta" "moe-input-config" "moe-desktop-meta"
Contains the following configurations and customizations:
-
moeOS Plymouth splash theme.
-
Defaults to GNOME, KDE flavor is actively improving.
-
Default
sbctlSecure Boot configuation. -
Printing that just works with IPP Everywhere and AirPrint printers. Wired and wireless printers are supported. Older printer drivers are included, if there is any open source driver for it.
-
Example configuraions which can't be generated. (Located in
/usr/share/moeOS-Docs/Reference Configs) -
Firefox and Zen configuration, no annoyance.
-
OS branding replacement.
-
Pacman hooks to replace files automatically.
-
A libadwaita-like Kvantum theme for Qt applications.
-
Some handy scripts (eg.
v2hevcv2avcoggaudio) to transcode video footages and audio files quickly using VA-API. -
Powersave settings.
-
Better switchable graphics handling.
-
Default MPV / Celluloid config files.
- Hardware Acceleration
- Better scaling
- Volume normalization
- Vulkan GPU API
- dmabuf-wayland speedy video output
-
Default font configuration.
-
Colors:
-
Bright: Accent:
#ed65e2; Background:#ed65e2 -
Dark: Accent:
#ed65e2; Background:#da7de3
-
Applications using the Portable Sandboxing framework already supports discrete GPU utilisation.
Prepend the launch command with prime-run
For Steam, launch options can be set to:
prime-run %command%
For Prism Launcher, navigate to File -> Settings... -> Custom Commands
Set Wrapper command to prime-run mcLaunch
Flatseal is needed.
Open Flatseal, select the Application you want to run on discrete GPU.
Under Environment, add those variables (one for each line):
__GLX_VENDOR_LIBRARY_NAME=nvidia
VK_LOADER_DRIVERS_SELECT=nvidia_icd.json
for nouveau, use these instead:
VK_LOADER_DRIVERS_SELECT=nouveau_icd.x86_64.json
DRI_PRIME=1
If you're having problems, add the following two:
__NV_PRIME_RENDER_OFFLOAD=1
__VK_LAYER_NV_optimus=NVIDIA_only
Location Services may appear inaccurate. We are currently using BeaconDB, which relies someone in your region uploads Wi-Fi data to locate.
- When using HiDPI scaling, older applications and some browsers may appear blurry.
- libadwaita applications are sluggish GTK #6438.
- When fractional scaling is enabled, screenshots of a window may appear slightly blurry.
- With many intel GPUs, the brightness may not be controllable if HDR is off. Switching to xe solves this issue.
- Qt applications may not have any kinetic when scrolling with a trackpad, or behave strange.
- Trackpad scrolling speed is too fast.
- Hardware accelerated video decoding / encoding may not work.
- Waking up discrete GPU.
- Input method may not work.
- Applications may not use system font Flatpak #1563.