Intended to be read by complete novices. Not everybody has eleven years of experience on Ubuntu, so I plead to my fellow Linuxoids an extension of respect and understanding. Thank you.
Preface
Many people who are like me, having spent the better part of their life on Debian / Ubuntu, are tired of the Debian packaging format crippling their capability to use the latest software and wanting to check out an Arch system probably stumbled upon Manjaro MATE and wonder how it isn’t as user-friendly out-of-the-box as Ubuntu MATE. This guide to making Manjaro MATE just as friendly for first-time users is intended to help ease the transition away from Ubuntu, while preserving workflow habits which may have been picked up during their use of Ubuntu MATE or Linux Mint MATE.
Teething problems
Cutting my teeth on my first Arch Linux OS, I encountered a few issues that many people may find make their first-time experience on Manjaro MATE feel tenuous, if not become ruinous to their first impressions of the system. On Manjaro MATE 20.0.1, compared to Ubuntu MATE these are the initial problems I’ve had to seek a resolution for:
- Lack of automatic Bluetooth function by default
- No Ubuntu MATE pre-loaded software
- Lack of Compiz
- No default terminal feature
- Lack of
service
command. - Difficulty seeking third-party software
Compiz had been removed form Ubuntu MATE as of 19.10, but can still be installed — either current or legacy versions — for Debian systems should a user want it.
If any of these issues need resolution on your system, then read on. Else if you don’t care about any of this, then feel free to ignore this post.
Issues to resolve
Bluetooth “Not on” by default
Many users wanting to hitch their Bluetooth headset, keyboard and mouse will be disappointed to see Bluetooth is a bit more difficult to use. If you want all of your Bluetooth devices to be enabled by default then perform the following:
in
xdg-terminal
or preferred emulator:sudo nano /etc/bluetooth/main.conf
GUI software command alternatives:
Execution without use of GVFS:
pkexec pluma /etc/bluetooth.main.conf
Execution with use of GVFS
pluma admin:///etc/bluetooth.main.conf
Both can also be executed in Run Application dialogue if you’re not a terminal fan, which can be accessed by default by holding Alt and pressing F2.
Insert your password, then scroll to the bottom of the document. De-comment AutoEnable
and set it to true
. Hold Ctrl and press O to save.
If you don’t like to the terminal and use
pluma
instead, it’s the usual fare for GUI apps:
Ctrl + SFor your safety, Bluetooth shouldn’t always be enabled. This is only if you wish to eschew your safety in exchange for convenience, whereby leaving Bluetooth enabled can make your machine vulnerable to forms of unauthorized access using Bluetooth as an attack vector.
Once saved, reboot and you’ll see all of your Bluetooth devices function when LightDM executes.
Missing software packed in with Ubuntu MATE
While not everything specific to that system can be installed, there are a couple of things one can get from the included software repositories Manjaro MATE uses by default which will allow use of MATE Menu (a fork of Linux Mint’s Mint Menu) and MATE Tweak. It is recommended to upgrade all system components beforehand, so to do that, perform this:
In
xdg-terminal
or preferred emulator:sudo pacman -Syyu
Understand this command
Information presented here comes from the manual for
pacman
compiled on June 25th, 2020:
-S
: Synchronize packages[…] including all dependencies required to run the packages.
-yy
: Download a fresh copy of the master package database from the server(s) defined in pacman.conf[.] Passing two-y
flags will force a refresh of all package databases, even if they appear to be up-to-date.
-u
: Upgrades all packages that are out-of-date.
Once that task has completed, you can then perform the following:
In
xdg-terminal
or preferred emulator:sudo pacman -S mate-menu mate-tweak
When all transactions finish, most software required for panel configuration by MATE Tweak should be installed. If there is anything else necessary for the function of your previous panel layout to install (for example, Tilda) repeat the above procedure with package names from the list of optional dependencies rendered in the terminal emulator.
Lack of Compiz
Installation for 0.9 branch is straight-forward:
In
xdg-terminal
or preferred emulator:sudo pacman -S compiz-manjaro
If you’re seeking information about Compiz 0.8 / Reloaded, that’s an entirely different beast outside the scope of this article, to later be covered elsewhere.
No default terminal
Debian users may be more familiar with x-terminal-emulator
as provided by update-alternatives
, but no such things exist in Arch, and xdg-terminal
doesn’t necessarily exist in your instance yet.
For this, the Arch User Repository needs to be utilized. As pamac
is already installed, packages from AUR can be fetched using it as shown:
In
xdg-terminal
or preferred emulator:pamac build xdg-utils-terminal-true-git
No
sudo
here:pamac
wiill request your password during installation.
Don’t perform any keystrokes after this just yet — Prior to installation,you will be asked to edit build files. While it is good practice to at least view them, typically this package is trusted and used by many. For information about this package, visit the Arch Linux AUR page about it here.
After pressing N to refuse viewing build files (like a naughty user) you will be requested to proceed with installation. Press Y when requested to continue.
If on the other hand, you chose to view build files (accidentially or otherwise), hold Ctrl and press X to exit
nano
and answer the prompts which follow accordingly.
Insert your account password and everything will be executed as desired. When finished, typing in xdg-terminal
will open whatever terminal is defined in mate-default-appplication-properties
.
This also means default
xdg-utils
will be removed but that isn’t such a problem as what’s provided by the AUR is effectively a drop-in replacement.
No service
command
If you’re familiar with the service
command, drop that habit right quick. Here is a typical example for when the desktop is frozen but you can still access a TTY:
In
tty
x
(x
being anywhere between 1 through 6):sudo service lightdm stop sudo service lightdm start
That doesn’t work in Arch land. What you can do instead is this:
In
tty
x
(x
being anywhere between 1 through 6):systemctl lightdm stop systemctl lightdm start
If your scripts rely on any invocation of service
, it may benefit you to modify these commands to use systemctl
instead.
If there are any recommendations for making scripts which invoke
service
usesystemctl
instead, leave a reply about that! Many a novice developer will appreciate it.
Lack of third-party software
If you already opened pamac-manager
during system configuration, you’ll see there’s plenty of software you might need, but not so much of what you’d want. While the AUR is always available via pamac
's terminal commands, not everybody may be so inclined to exclusively use their terminal.
Fortunately, AUR support in Pamac Manager is a few clicks away. Click on the overflow icon in the titlebar, then access Preferences. After authenticating, visit the AUR tab and toggle on Enable AUR Support. This is kind of a misnomer — pamac
already is an AUR helper, but pamac-manager
hides AUR-installable software by default.
Some versions of Manjaro also include FlatPak and Snap support. For this to be avaiilable in Manjaro MATE, install the following packages:
pamac-flatpak-plugin
pamac-snap-plugin
Or, if you want to use the terminal to install them before opening pamac-manager
:
In
xdg-terminal
or preferred emulator:sudo pacman -S pamac-flatpak-plugin pamac-snap-plugin
A quick note about Flatpak: in certain instances, removing Flatpak software isn’t nearly as clean as Snap, AUR or use of official repositories, so while most software you’d want is probably available via Flatpak, it should be only as a last resort, at the bottom of a source preference hierarchy.
Official repos and AUR should be prioritized for the best software experience in Manjaro.
Corrections
@cscs supplied some corrections which had been implemented.