For all of those who like their custom made minimal desktops, i3, awasome, jwm, openbox, etc. or are pure console freaks, there is Arch and there is an established and verified way to change from Arch to Artix and have OpenRC and lately Runit as an init system. This makes a low resources fast booting machine faster and lighter yet. Artix is progressively rebuilding all Arch pkgs and growing their own repositories, while 2/3 of Arch pkgs can be used still straight out of Arch. But it is a blend of things with the Arch-Core repository left out.
For those that don’t like or know how to tinker too much with stuff, like conf and rc files, they prefer a precustomized desktop with all the possible bells and whistles predesigned by the distro designers. Ubuntu, Mint, and Manjaro are really such products appealing to such audience. But they all have the resource hog complex init system we love to hate. We have to admit that Manjaro’s desktop designs are state of the art, aesthetically. People get addicted to Manjaro and stick with it, even if they like further customizing things themselves.
But then there is a gray area of those who slowly are graduating from OEM ready out of the box setups to making the same installation lighter and faster. That is to improve on the core system where a desktop really floats on. So how do you go from a Manjaro full desktop installation to something faster and lighter? Obarun
Obarun is blistering fast on its own, and its desktops from which to choose from during installation are really well engineered and aesthetically pleasing. Really, that is what I use daily and may have added things but rarely have I changed what Obarun had installed. It really is nice. But some of you may want more. They like their Manjaro experience but they are stuck with the resources hungry monolith called systemd. Some of you like things like Gnome, and Mate, and Cinnamon, and we are sorry. You may need to change habits or will have a hell of a lot of cleaning up to do. Those desktops are infested by the plague. That doesn’t mean that Gnome, and Pulseaudio, and NetworkManager, will not work with Obarun, they mostly do. But we can still feel sorry for you.
So we decided to experiment and we chose from the list the community edition of Manjaro LXDE. If you are into LXDE or openbox, there is no LXDE like the LXDE from Manjaro. It is absolutely astonishing! https://osdn.net/projects/manjaro-community/storage/lxde/17.1.7 And this is generally what Manjaro does best. Taking desktops from Arch and making them fancier and install a ready to go desktop better than most. No need for tinkering or fixing or tuning. Just install and go to work or play.
Obarun has its own repository for some system files, the “Marvel” of an init system (we think it is far better than Runit and OpenRC but people just don’t know yet). Below the Obarun repository normally is ALL of Arch repositories. There is priority in system files and init system from Obarun, the rest is plain Jane Arch. Obarun also has some really creative tools, such as making a live-iso out of your running system (a live clone of your system is about the best backup answer we can think about, other than making a full copy of the shut and parked system with dd that takes for ever and is huge). There is the obarun live-installer, which you can use to make a new installation while running Obarun. And there are many other surprises waiting and keep being built in Obarun. So you have your Arch and a whole new experience in booting up and running. Seriously, most people we have demonstrated an Obarun installation to, the first reaction to Obarun booting was: “Is this it, I can login already?”. It is hard to believe it is that simple and quick that makes you wonder what everyone else is doing waiting in front of a screen while text is running 6 pages long. Then you start what it is that you have installed, you look at the cpu and Ram and most likely you go WOW! This can’t be right, there must be something missing. There is nothing missing except what you intentionally didn’t want present. S6 does NOT decide what you need running, you tell s6 what you want running and what not.
So, to make a long story not so long, can you change Manjaro to dump its native init system (system-D-isease) and adopt S6? Yes, you can, we tried it and it works.
This is a one shot change while you are on Manjaro LXDE, and the next time you boot you will be on S6 and your desktop will still be the same.
The instructions are an improvisation of what Eric Vidal from Obarun had posted as a method to transform Arch into Obarun. In Italic is notes we added as we felt were needed or added due to the nature of Manjaro vs Arch. It may be of interest to look at Artix’s instructions of moving from Manjaro to Artix and utilising the OpenRC init system.
1 first remove automatic login or DM we left autologin as it was and just removed the DM, in our case it was lightdm. If you are working on a new installation to replicate this it might be best to leave autologin off during installation and use a normal login for user. 2 pass to console Although Eric advised to pass to console, we just worked on terminal from within the desktop as it is easier to copy past things back and forth and make notes of output. If you have more than one kernels installed, and Manjaro has a wide variety of kernels available, you can just leave the active kernel and remove the rest so you can speed up the process, as every other system file that will be installed will need to update all kernels.
3 general step to follow : append pacman.conf with obarun repo and SigLevel set to Never The Obarun repositories MUST go before Core (Manjaro's main repository) so it will be Obarun, core, extra, community. #[obarun-testing] #SigLevel = Never #SigLevel = Required #Server = https://repo.obarun.org/$arch/testing [obarun] SigLevel = Never #SigLevel = Required Server = https://repo.obarun.org/$arch
synchronize : # pacman -Syy install obarun-keyring # pacman -S obarun-keyring modify pacman.conf setting SigLevel to Required you can also add obarun-keyring to the line of pacman.conf that reads SyncFirst
SyncFirst = manjaro-system pacman archlinux-keyring manjaro-keyring obarun-keyring
synchronize again with # pacman -Syy
After you use # pacman -Syy to update, # pacman -S obarun-keyring then re-edit /etc/pacman.conf erase the Siglevel = Never and leave Siglevel = Required and take the # comment sign out from in front. You can use the Obarun testing repository or you can leave it commented for whenever you need to use it, if ever. Also modify this line and add the obarun-keyring so your database will be tested for signatures from Manjaro, Arch, and Obarun. SyncFirst = manjaro-system archlinux-keyring manjaro-keyring obarun-keyring
4 install applysys pacopts # sudo pacman -S applysys pacopts keep a list of the active daemons so you can activate the appropriate services later # systemctl list-units --state=running | grep -v systemd | awk '{print $1}' | grep service > daemon.list # cat daemon.list in our case: accounts-daemon.service cronie.service dbus.service lvm2-lvmetad.service ModemManager.service NetworkManager.service ntpd.service pamac-system.service polkit.service rtkit-daemon.service udisks2.service user@1000.service 5 remove crap with -Rnsudd systemd libsystemd systemd-sysvcompat # sudo pacman -Rnsudd systemd libsystemd systemd-sysvcompat 6 install the marvel with -S s6-suite eudev-obarun consolekit2 # sudo pacman -S s6-suite eudev consolekit2 and a marvel it is! :: There are 12 members in group s6-suite: :: Repository obarun 1) execline 2) mdevd 3) s6 4) s6-boot 5) s6-dns 6) s6-linux-init 7) s6-linux-utils 8) s6-networking 9) s6-portable-utils 10) s6-rc 11) s6opts 12) skalibs Install all 12 7 launch pacopts origin command and replace all packages with the good one when it ask you. be carefull of the messages when filesystem is installed and make the necessaries change about x.pacnew files. $ sudo pacopts origin (and output to compare yours) :: package accountsservice do not come from obarun repository :: package bluez do not come from obarun repository :: package bluez-libs do not come from obarun repository :: package crda do not come from obarun repository :: package cups do not come from obarun repository :: package cups-filters do not come from obarun repository :: package cups-pdf do not come from obarun repository :: package dbus do not come from obarun repository :: package device-mapper do not come from obarun repository :: package dhcpcd do not come from obarun repository :: package dmraid do not come from obarun repository :: package filesystem do not come from obarun repository :: package gtk2 do not come from obarun repository :: package gvfs do not come from obarun repository :: package gvfs-afc do not come from obarun repository :: package gvfs-gphoto2 do not come from obarun repository :: package gvfs-mtp do not come from obarun repository :: package gvfs-nfs do not come from obarun repository :: package gvfs-smb do not come from obarun repository :: package iptables do not come from obarun repository :: package libcups do not come from obarun repository :: package libgudev do not come from obarun repository :: package libinput do not come from obarun repository :: package libmbim do not come from obarun repository :: package libmm-glib do not come from obarun repository :: package libnm do not come from obarun repository :: package libnm-glib do not come from obarun repository :: package libpulse do not come from obarun repository :: package libusb do not come from obarun repository :: package libwacom do not come from obarun repository :: package libwbclient do not come from obarun repository :: package lsb-release do not come from obarun repository :: package lvm2 do not come from obarun repository :: package mkinitcpio do not come from obarun repository :: package modemmanager do not come from obarun repository :: package networkmanager do not come from obarun repository :: package nfs-utils do not come from obarun repository :: package nfsidmap do not come from obarun repository :: package openssh do not come from obarun repository :: package openvpn do not come from obarun repository :: package pcmciautils do not come from obarun repository :: package pcsclite do not come from obarun repository :: package polkit do not come from obarun repository :: package procps-ng do not come from obarun repository :: package pulseaudio do not come from obarun repository :: package pulseaudio-bluetooth do not come from obarun repository :: package pulseaudio-zeroconf do not come from obarun repository :: package qt5-base do not come from obarun repository :: package rpcbind do not come from obarun repository :: package rtkit do not come from obarun repository :: package samba do not come from obarun repository :: package smbclient do not come from obarun repository :: package subversion do not come from obarun repository :: package udisks2 do not come from obarun repository :: package upower do not come from obarun repository :: package xdg-user-dirs do not come from obarun repository :: package xf86-input-evdev do not come from obarun repository :: package xf86-input-libinput do not come from obarun repository :: package xf86-video-amdgpu do not come from obarun repository :: package xf86-video-ati do not come from obarun repository :: package xf86-video-intel do not come from obarun repository :: package xf86-video-nouveau do not come from obarun repository :: Do you want to replace this package(s)? [y|n] Y (yes yes yes) resolving dependencies... replace all of the above by hitting y y y to all. Take really a close look of the output for any red lines of warnings or errors and take care of anything that was not reinstalled properly. You may encounter a problem, a pkg that does not want to be replaced easy. Remove and reinstall, it will automatically come from Obarun as obarun's repository is above (Arch Core system extra community on pacman.conf)) the following are replacement .conf files that came from replacing the appropriate Manjaro pkgs with Obarun's. Some don't require much attention and some do, do a little research on your own. Shells for example are important for Obarun as it is heavy on zsh and there is extensive work done on that shell. You will learn to love it as we did. (1/1) upgrading filesystem [###########################] 100% warning: /etc/vconsole.conf saved as /etc/vconsole.conf.pacsave warning: /etc/locale.conf saved as /etc/locale.conf.pacsave warning: /etc/hostname saved as /etc/hostname.pacsave warning: /etc/shells installed as /etc/shells.pacnew warning: /etc/gshadow installed as /etc/gshadow.pacnew warning: /etc/group installed as /etc/group.pacnew warning: /etc/crypttab installed as /etc/crypttab.pacnew warning: /etc/hosts installed as /etc/hosts.pacnew warning: /etc/passwd installed as /etc/passwd.pacnew warning: /etc/shadow installed as /etc/shadow.pacnew warning: /etc/resolv.conf installed as /etc/resolv.conf.pacnew lsb-release-1.4-15-any 18,4 KiB 3,59M/s 00:00 [######################] 100% (1/1) checking keys in keyring [##################################] 100% (1/1) checking package integrity [##################################] 100% (1/1) loading package files [##################################] 100% (1/1) checking for file conflicts [##################################] 100% error: failed to commit transaction (conflicting files) lsb-release: /etc/lsb-release exists in filesystem Errors occurred, no packages were upgraded. resolving dependencies... looking for conflicting packages... error: failed to prepare transaction (could not satisfy dependencies) :: pulseaudio-bluetooth: installing pulseaudio (11.1-2) breaks dependency 'pulseaudio=11.1-1' :: pulseaudio-zeroconf: installing pulseaudio (11.1-2) breaks dependency 'pulseaudio=11.1-1' resolving dependencies... looking for conflicting packages... error: failed to prepare transaction (could not satisfy dependencies) :: pulseaudio-zeroconf: installing pulseaudio (11.1-2) breaks dependency 'pulseaudio=11.1-1' resolving dependencies... looking for conflicting packages... error: failed to prepare transaction (could not satisfy dependencies) :: pulseaudio-bluetooth: installing pulseaudio (11.1-2) breaks dependency 'pulseaudio=11.1-1' resolving dependencies... looking for conflicting packages... sudo pacman -Rnsudd lib32-libcanberra-pulse lib32-libpulse libcanberra-pulse manjaro-pulse pavucontrol pulseaudio pulseaudio-alsa pulseaudio-bluetooth pulseaudio-ctl pulseaudio-zeroconf xfce4-volumed-pulse libpulse manjaro-lxde-xfce4-volumed-pulse xfce4-volumed-pulse sudo pacman -S lsb-release --force You will be removing pulseaudio with the above command and when you are all done, if audio does not work with alsa you can install it all back but in a way that will work on Obarun and s6. So make a note of what you have removed if you like to re-install them later. lsb-release does not want to upgrade, it is the same version with obarun's, so use force to force it in place. New optional dependencies for xdg-user-dirs xdg-user-dirs-s6rcserv: xdg-user-dirs rc service resolving dependencies... 8 modify the s6.conf to suit your needs # sudo nano /etc/s6/s6.conf launch pacopts service and install the service that you need when it asks you. 9 sudo pacopts service 10 sudo pacman -S xorg Trust us on this one, unexplained in detail, but there are packages in Manjaro that have identical version numbers with Obarun, and you don't want you X to be confused. So by reinstalling over it you are forcing everything on Xorg to come from Obarun. There may be a more scientific way, but this is one that works. 11 run # sudo pacman -Su update and upgrade everything. 12 error: missing 'systemd' dependency for 'colord' error: missing 'libpulse' dependency for 'conky' error: missing 'libpulse' dependency for 'ffmpeg' error: missing 'libpulse' dependency for 'gst-plugins-good' error: missing 'libsystemd' dependency for 'libatasmart' error: missing 'libsystemd' dependency for 'util-linux' Take each one on the list and reinstall as an obarun pkg. Due to version numbers and signatures from Manjaro and Arch pacopts does not pick them up as "foreign" packages and their dependencies are different than what they are in Obarun. Simply: # pacman -S colord ffmpeg gst-plugins-good libatasmart util-linux which don't have libsystemd dependencies on them. 13 kill the pid 1 with kill 1 command then press CTRL-C when the tty appear(this will reboot the machine) after the reboot, log on and enable service with s6opts program finally reboot for the last time done You don't need to hit ctrl-c or anything else # sudo kill 1 reboots the system fine and this is from a terminal in desktop.. Obviously, i think this pseudo conversion need improvement, so test it and make a report It worked fine in Arch, it needed a little more pushing and shoving on Manjaro. 14 For conky, if you like conky, in Obarun, it is best to use the AUR package conky-git that will compile on your new system. If you want yaourt do # sudo pacman -S yaourt. If you like the yaourt tui do # yaourt -S yaourt-gui Then use yaourt or yaourt-gui to install the conky-git package: # yaourt -S conky-git (after it was published Eric commented "About package coming from AUR, yaourt works well but "pacopts aur -I package_to_install" works too ." 15 # sudo s6opts list (will give you an output like this:) current -> Default previous -> Default Classic service(s) networkmanager :: up (pid 730) 1933 seconds Rc longruns service(s) s6rc-fdholder :: down (exitcode 0) 1942 seconds, ready 1942 seconds s6rc-oneshot-runner :: up (pid 260) 1941 seconds, ready 1941 seconds Rc oneshots service(s) Rc bundles All You may need to add the networkmanager service manually, somehow it wasn't automatically installed.# sudo pacman -S networkmanager networkmanager-s6rcserv networkmanager-s6serv # sudo s6opts enable networkmanager (for next time you boot) # sudo s6opts up networkmanager (for immidiate effect)(Note: after publication of this Eric corrected the confusion - Obarun comes normally with connman - so here is what he suggests: ) "About networkmanager service : if the networkmanager package is installed before using "pacopts service" command, the script should ask you if you want to install networkmanager-s6serv or networkmanager-s6rcserv. Only install one of them, the networkmanager-s6serv is the easier way to use. Also, normally, you don't need to do "s6opts up networkmanager" right after enabling it. Enabling the service starts it directly too." So, I stand corrected, here is the correct way to go: # sudo pacman -S networkmanager networkmanager-s6serv # sudo s6opts enable networkmanager ========================== At this point you can reboot and you are done. When you log in at console just type xinit and your desktop will come up and should be just like it was on Manjaro only less ram and less processes running initially. It is like you stepped up your processor and got some extra Ram to work with. To have a DM like lightdm come up straight from boot is something I am working on and I will update this information when I figure it out. --- future reference ------ If you get any s6 errors now or in the future here is a test whether your init's database is correct. Well now try the following(all this command need to be made with root privilegies) # s6-rc-compile /etc/s6/compiled/newdefault /etc/s6/rc this will create a new database newdefault with all services present in the directory rc now point the symlinks current to this new database to be able to boot with it at the next boot # ln -sTf /etc/s6/compiled/newdefault /etc/s6/compiled/current now reboot and look if the directory /run/user/master exist. If it doesn't exist you are OK. If it does do the following: # rm -rf /etc/s6/compiled/default # s6-rc-compile /etc/s6/compiled/default /etc/s6/rc # ln -sTf /etc/s6/compiled/default /etc/s6/compiled/current finally reboot.
This is it, Manjaro starting with S6 and obarun as a hybrid with manjaro. At this point you can go wilder, you can substitute repositories and mirrors to Arch, easy, update and upgrade, or you can use Artix where there is no chance anything with systemd dependencies will ever come in. Now Artix has some substitute libraries for systemd dependencies, Obarun just blocks them.
If you show up at obarun’s forum for support please indicate you are running a hybrid like this and not obarun cleanly installed. One of the drawbacks of running a hybrid is you may get no support or wrong support from either system. You are on your own really, but you may love it anyway!
PLEASE let us know as soon as you encounter a problem so we may add notes and corrections as things may change from day to day. Both Manjaro and Obarun are rolling releases, we can never know what tomorrow will be like. Most likely there will not be a problem. Alternative desktops and setups may bring a little different experience but the core system changes and boots. Everything else can be patched.
Enjoy
After running this project for a while and continue to update and upgrade packages from both Manjaro and its Obarun overhead, everything kept working as expected (or worked when it was not expected to) and we have laid it to rest. We backed up the installation and we may revive it in the future if interest is renewed. With other Arch-based distros the process is the same or simpler, just as Eric had prescribed, and we have tried Antergos, Arch-Strike, Black-Arch, arcolinux, ..etc. They are basically Arch with extra repositories for some of their own packages and configurations, but pure Arch at heart. So Obarun works with all of them. Manjaro, since they use their own repositories, was perceived as a challenge, but really Manjaro is not that different from Arch. It is like the Ubuntu of Arch.
LikeLiked by 1 person
“Obarun also has some really creative tools, such as making a live-iso out of your running system”
Where is this tool?
LikeLike
obextra/obarun-mkiso 0.2.0-1
Script for making an iso
Make sure you read the doc. and look up the forum the late discussion on it.
LikeLike