Difference between pages "LXQt" and "Build Manjaro ISOs with buildiso"

From Manjaro
(Difference between pages)
Jump to navigation Jump to search
imported>Excalibur1234
 
imported>Excalibur1234
 
Line 1: Line 1:
 +
__TOC__
 +
  
This wiki page is about theming your LXQt installation.
+
=Prerequisites=
  
 +
Before we began. You need Kernel linux44 or newer.
  
__TOC__
+
It is recommend to download the latest version of [https://sourceforge.net/projects/manjarolinux/files/?source=navbar Manjaro Distribution].
  
  
=Window Title Bar Theming=
+
==Install manjaro-tools-iso==
  
The window title bars are drawn onto your screen by the window manager you use. The default window manager of LXQt is Openbox.
+
To get started you need to download the following packages.
  
The Openbox Configuration Manager can be opened: Start Menu --> Settings --> Openbox Configuration Manager
+
* '''manjaro-tools-base'''
 +
* '''manjaro-tools-iso'''
 +
* '''manjaro-efi-shell'''
 +
* '''manjaro-isolinux'''
  
  
If you lack the Openbox Configuration Manager, please install it:
+
==Install manjaro-iso-profiles==
  
sudo pacman -S obconf
+
You will also need to download manjaro-iso-profiles from Package Manager.
  
 +
There are three manjaro-iso-profiles packages to choose.
  
Or better, install the Qt version of obconf included in repolxqt:
+
* '''manjaro-iso-profiles-base'''
 +
* '''manjaro-iso-profiles-community'''
 +
* '''manjaro-iso-profiles-official'''
  
sudo pacman -S obconf-qt-git
+
You can choose any profiles you want.
  
But if you've not installed LXQt from the install media you can install the AUR package:
+
We're going to choose <code>manjaro-iso-profiles-official</code> along with XFCE to help you understand what you need to do.
  
yaourt -S obconf-qt-git
+
We do not recommend downloading profiles from GitHub. It may not work for you while building. But, if it does work for you. That's fine.
  
 +
=Name your own Manjaro Distribution=
  
Then please choose your preferred window title bar theme in Openbox Configuration Manager .
+
Open Thunar Root and go to this file
  
Additional themes can be downloaded. Examples:
+
/usr/share/manjaro-tools/isolinux/gfxboot.cfg
  
sudo pacman -S menda-themes-dark
+
Find '''product=Manjaro Linux''' and change from '''Manjaro Linux''' to whatever you want to name it.
  
sudo pacman -S menda-themes
+
===Example:===
  
  yaourt -S mediterraneannight-theme
+
  ; Sections are read in the order given in base::layout, with section 'base'
 +
; implicitly added at the end. If a config value is given more than once,
 +
; the first entry wins.
 +
;
 +
; If a screen resolution can't be set, 640x480 is used as fallback (and
 +
; section '640x480' added to the layout list).
 +
;
 +
; Setting livecd=1 implicitly adds section 'live' to the layout list.
 +
;
 +
; Color values: 24 bit RGB (e.g. 0xff0000 = red).
 +
;
 +
 +
[base]
 +
; theme name
 +
theme=artwork-gfxboot
 +
; product name
 +
product='''NAME YOUR MANJARO DISTRIBUTION HERE'''
 +
; other sections to read
 +
layout=800x600,live,install
 +
; sound volume (0..100)
 +
volume=70
 +
; menu background transparency (0..255)
 +
menu.transparency=0x0
 +
; default font
 +
font.normal=16x16.fnt
 +
; main menu font
 +
font.large=16x16.fnt
 +
; max. visible main menu items
 +
mainmenu.entries=8
 +
; minimal main menu selection bar width
 +
mainmenu.bar.minwidth=300
 +
; main menu selection bar transparency (0..255)
 +
mainmenu.bar.transparency=0
 +
; main menu colors
 +
mainmenu.bar.color=0xffffff
 +
mainmenu.normal.fg=0xffffff
 +
mainmenu.selected.fg=0x000000
 +
; boot option colors
 +
bootopt.label.fg=0xffffff
 +
bootopt.text.fg=0xffffff
 +
; progress bar color
 +
progress.bar.color=0x295202
 +
; menu colors
 +
menu.normal.bg=0xd8deed
 +
menu.normal.fg=0x000000
 +
menu.normal.alt.fg=0x606060
 +
menu.selected.bg=0x6c6c6c
 +
menu.selected.fg=0xffffff
 +
; window colors
 +
window.bg=0xd8deed
 +
window.fg=0x000000
 +
window.title.bg=0x217b05
 +
window.title.fg=0xffffff
 +
window.title.error.bg=0xc00000
 +
; help system colors
 +
help.link.fg=0x0000a0
 +
help.link.selected.fg=0xffffff
 +
help.link.selected.bg=0x0000a0
 +
help.highlight.fg=0x009000
 +
; panel colors
 +
panel.fg=0xffffff
 +
panel.title.fg=0xffffff
 +
panel.f-key.fg=0xffe050
 +
; default keymap (e.g. de-latin1-nodeadkeys or cz-lat2-us)
 +
keymap=
 +
; replace underscores ('_') with space in menu entries
 +
_2space=1
 +
 +
[800x600]
 +
; screen size
 +
screen.size=800,600
 +
; background image
 +
background=back800x600.jpg
 +
; upper left corner, if x = -1, center horizontally
 +
mainmenu.pos=-1,240
 +
; boot option input field position
 +
bootopt.pos=263,480
 +
 +
[640x480]
 +
; screen size
 +
screen.size=640,480
 +
; background image
 +
background=back640x480.jpg
 +
; upper left corner, if x = -1, center horizontally
 +
mainmenu.pos=-1,170
 +
; boot option input field position
 +
bootopt.pos=263,380
 +
 +
[live]
 +
; show welcome animation
 +
welcome=1
 +
; set livecd flag
 +
livecd=1
 +
; main menu items where user can't add boot options
 +
nobootoptions=hdt,memtest
 +
; move down one menu entry the first time an F-key is used
 +
autodown=0
 +
; F-key assignments, see install section for doc
 +
; serial line setup (up to four lines)
 +
; format: port,baud,dev
 +
;  - port: 0-3: first four BIOS serial lines (COM1-COM4); >=4: I/O port (0x3f8)
 +
- baud: baud rate (e.g. 115200); 0 = autodetect (considers baud rates >= 9600)
 +
;  - dev: linux device name (e.g. ttyS0)
 +
; - all lines are set up with 8 bits, no parity, 1 stop bit
 +
; - if the bootloader also has a serial line setup, the port is
 +
;  automatically used
 +
serial.line0=0,0,ttyS0
 +
serial.line1=1,0,ttyS1
 +
serial.line2=
 +
serial.line3=
 +
key.F2=lang
 +
key.F3=video
 +
key.F4=kernelopts
 +
key.F5=
 +
key.F6=
 +
key.F7=
 +
key.F8=
 +
key.F11=
 +
key.F12=
 +
; show keymap menu as submenu in lang dialog
 +
keymap.submenu=1
 +
; add 'keytable' option with current keymap
 +
addopt.keytable=1
 +
; add 'lang' option with current locale
 +
addopt.lang=1
 +
; add 'layout' option with current keyboad layout
 +
addopt.layout=1
 +
  
  
Alternatively, follow this guide to install a more modern window manager with higher hardware resources: [[LXQt with kwin]]
+
=ISO profile=
  
  
=Window Content Theming=
+
==ISO profile overview==
  
This section is about theming the content of you windows. Especially the background and font colors, but also the form of menus and buttons.
+
Open Thunar Root and go to this directory.
  
 +
/usr/share/manjaro-tools/iso-profiles/manjaro/xfce
  
Instructions to have a unified theme for all your GTK2/3/Openbox and Qt4/5 applications and be able to customize them:
+
Let's take a closer look at the XFCE profile folder (marked above):
  
===1.===
+
~ >>> ls -lAgo /usr/share/manjaro-tools/iso-profiles/manjaro/xfce
Choose <code>GTK+</code> in <code>lxqt-config</code> (LXQt Configuration Center --> LXQt Appearance)
+
drwxr-xr-x 3 4096 16 feb 19:52 '''desktop-overlay'''
 +
lrwxr-xr-x 1   33 16 feb 19:52 live-overlay -> ../../shared/manjaro/live-overlay
 +
lrwxr-xr-x 1  28 16 feb 19:52 mkinitcpio.conf -> ../../shared/mkinitcpio.conf
 +
-rw-r--r-- 1 5115 16 feb 19:52 '''Packages-Desktop'''
 +
lrwxr-xr-x 1  26 16 feb 19:52 Packages-Live -> ../../shared/Packages-Live
 +
lrwxr-xr-x 1  26 16 feb 19:52 Packages-Mhwd -> ../../shared/Packages-Mhwd
 +
lrwxr-xr-x 1  26 16 feb 19:52 Packages-Root -> ../../shared/Packages-Root
 +
-rw-r--r-- 1 2400 16 feb 19:52 '''profile.conf'''
  
===2.===
+
* '''desktop-overlay''': After every successful installation of your ISO the files and folders in here will get copied over.
Install the LXDE theme switcher:
+
* ''live-overlay'': Similar to ''desktop-overlay''. Files and folders in here will only get copied over to the LiveCD of your ISO.
sudo pacman -S lxappearance
+
* ''mkinitcpio.conf'' holds the information of all needed kernel modules.
Open it by clicking on: Start Menu --> Settings --> Appearance.
+
* '''Packages-Desktop''': This file contains packages for the ISO installation. All packages will also get installed on LiveCDs.
 +
* ''Packages-Live'': This file contains packages, which will only get installed on the LiveCD.
 +
* ''Packages-Mhwd'': This file contains Mhwd packages important to all Manjaro installations and LiveCDs.
 +
* ''Packages-Root'': This file contains base packages important to all Manjaro installations and LiveCDs.
 +
* '''profile.conf''' contains basic settings for your ISO installation and LiveCD.
  
Unfortunately, this functionality is not implemented in LXQt yet. Therefore, the LXDE theme switcher is still needed.
+
As you have probably noticed, all files and folders are readonly and several are only symlinks to the <code>shared</code> ISO profile. It is good practice to never change files or folders in the <code>shared</code> ISO profile. If you ever want to change them, first copy them to your ISO profile folder and delete the symlink.
  
===3.===
+
All folders and files specific to your ISO are '''in bold'''. You can change them to your liking.
Install well maintained themes supporting [http://gnome-look.org/index.php?xcontentmode=167 GTK2/3] and [http://box-look.org/index.php?xcontentmode=7402 Openbox]
 
  
 +
==Modifying an ISO profile==
  
Examples:  
+
The most common places to tweak and customize an ISO profile are the 3 folders marked above: ''desktop-overlay'', ''profile.conf'', ''Packages-Desktop'':
  
sudo pacman -S menda-themes-dark
 
  
sudo pacman -S menda-themes
+
===desktop-overlay===
  
yaourt -S vertex-themes
+
The ''desktop-overlay'' folder looks like this:
  
Edit manually the theme files to further customize if you like.
+
~ >>> tree /usr/share/manjaro-tools/iso-profiles/manjaro/xfce/desktop-overlay/etc                                         
 +
/usr/share/manjaro-tools/iso-profiles/manjaro/xfce/desktop-overlay/etc
 +
├── fonts
 +
│   └── conf.d
 +
│      └── 70-no-bitmaps.conf -> /etc/fonts/conf.avail/70-no-bitmaps.conf
 +
└── lightdm
 +
    └── lightdm-gtk-greeter.conf
  
 +
3 directories, 2 files
  
=Theming A Pure Qt4/5 System=
+
Go to this directory.
  
For customizing a pure Qt4/5 system you can use the preinstalled qtconfig-qt4 and you can install its qt5 version, <code>qt5ct</code> by
+
/usr/share/manjaro-tools/iso-profiles/manjaro/xfce/desktop-overlay/etc/
  
yaourt -S qt5ct-svn
+
Then create '''skel''' folder. This is where you can clone everything you see on your Desktop Screen to ISO.
  
 +
After the ISO has been successfully installed all files and folder in ''desktop-overlay'' folder get copied over to the installed system. This includes settings/config files but also themes and backgrounds/pictures.
  
After installation you need to put this in your <code>~/.bashrc</code> file:
+
All files and folder in here will get copied to the home folder. Most hidden files and their structure in <code>/usr/share/manjaro-tools/iso-profiles/manjaro/xfce/desktop-overlay/etc/skel/</code> should be already familiar to you, because your home folder looks very similar.
  
export QT_QPA_PLATFORMTHEME=qt5ct
+
===Clone Custom Wallpaper Desktop===
  
Attention: After an update to Qt5 you may need to re-install/compile <code>qt5ct</code>.
+
To clone your Custom Wallpaper Desktop. Open a New File Manager and go to this file.
  
 +
/home/<username>/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml
  
Your customization by this tool will not be honoured immediately (only) by <code>pcmanfm-qt</code> which runs in your LXQt system in daemon mode. In order for it to honour your customization you need to re-login.
+
Change all image directories to where your Custom Wallpaper was located at.
  
 +
/usr/share/backgrounds/<YOUR IMAGE HERE>
  
In addition to the preinstalled Qt theme engines you can install <code>qtcurve-qt4</code> and <code>qtcurve-qt5</code> from the repo by:
+
===Example===
  
  sudo pacman -S qtcurve-qt4 qtcurve-qt5
+
  <?xml version="1.0" encoding="UTF-8"?>
 +
 +
<channel name="xfce4-desktop" version="1.0">
 +
  <property name="backdrop" type="empty">
 +
    <property name="screen0" type="empty">
 +
      <property name="monitor0" type="empty">
 +
        <property name="image-path" type="string" value="'''/usr/share/backgrounds/<YOUR IMAGE HERE>'''"/>
 +
        <property name="last-image" type="string" value="'''/usr/share/backgrounds/<YOUR IMAGE HERE>'''"/>
 +
        <property name="last-single-image" type="string" value="'''/usr/share/backgrounds/<YOUR IMAGE HERE>'''"/>
 +
        <property name="image-style" type="int" value="5"/>
 +
      </property>
 +
      <property name="monitorVGA-0" type="empty">
 +
        <property name="workspace0" type="empty">
 +
          <property name="color-style" type="int" value="0"/>
 +
          <property name="image-style" type="int" value="5"/>
 +
          <property name="last-image" type="string" value="'''/usr/share/backgrounds/<YOUR IMAGE HERE>'''"/>
 +
        </property>
 +
        <property name="workspace1" type="empty">
 +
          <property name="color-style" type="int" value="0"/>
 +
          <property name="image-style" type="int" value="5"/>
 +
          <property name="last-image" type="string" value="'''/usr/share/backgrounds/<YOUR IMAGE HERE>'''"/>
 +
        </property>
 +
      </property>
 +
    </property>
 +
  </property>
 +
  <property name="desktop-icons" type="empty">
 +
    <property name="style" type="int" value="2"/>
 +
    <property name="file-icons" type="empty">
 +
      <property name="show-removable" type="bool" value="true"/>
 +
    </property>
 +
    <property name="icon-size" type="uint" value="32"/>
 +
  </property>
 +
</channel>
 +
  
 +
Go to this directory in Thunar Root.
  
And you can install <code>virtuality</code> AUR packages by:
+
/usr/share/manjaro-tools/iso-profiles/manjaro/xfce/desktop-overlay/
  
yaourt -S virtuality-qt4-git virtuality-qt5-git
+
Then create <code>usr/share/backgrounds</code> and place your Custom Wallpaper at this directory.
  
 +
/usr/share/manjaro-tools/iso-profiles/manjaro/xfce/desktop-overlay/usr/share/backgrounds/
  
Those two theming engines' default styles by themselves can be customized too. With <code>qtcurve</code> you need to manually edit the <code>~/.config/qtcurve/stylerc</code> file. You can, for instance, change the menu bar background colour by
+
===profile.conf===
  
  shadeMenubars=#cdcdcd
+
  ##########################################
 +
###### use this file in the profile ######
 +
##########################################
 +
 +
# use multilib packages; x86_64 only
 +
# multilib="true"
 +
 +
displaymanager="lightdm"
 +
 +
# Set to false to disable autologin in the livecd
 +
# autologin="true"
 +
 +
# nonfree mhwd drivers
 +
# nonfree_mhwd="true"
 +
 +
# use plymouth; initcpio hook
 +
plymouth_boot="false"
 +
 +
# use pxe boot; initcpio hook
 +
pxe_boot="false"
 +
 +
# use core packages as defined in pkglist to use in basic profile
 +
# basic="false"
 +
 +
# use extra packages as defined in pkglist to activate a full profile
 +
extra="true"
 +
 +
################ install ################
 +
 +
# unset defaults to given value
 +
# efi_boot_loader="grub"
 +
 +
# configure calamares for netinstall
 +
# netinstall="false"
 +
 +
# the default url for the netinstall.yaml
 +
# netgroups="https://raw.githubusercontent.com/manjaro/iso-profiles/master/shared/netgroups"
 +
 +
# configure calamares to use chrootcfg instead of unpackfs
 +
# chrootcfg="false"
 +
 +
# use geoip for localization
 +
# geoip='true'
 +
 +
# unset defaults to given values
 +
# names must match systemd service names
 +
enable_systemd=('avahi-daemon' 'bluetooth' 'cronie' 'ModemManager' 'NetworkManager' 'org.cups.cupsd' 'tlp' 'tlp-sleep')
 +
disable_systemd=('pacman-init')
 +
 +
# unset defaults to given values,
 +
# names must match openrc service names
 +
# enable_openrc=('acpid' 'bluetooth' 'cgmanager' 'consolekit' 'cronie' 'cupsd' 'dbus' 'syslog-ng' 'NetworkManager')
 +
# disable_openrc=()
 +
 +
# the same workgroup name if samba is used
 +
# smb_workgroup=""
 +
 +
################# livecd #################
 +
 +
# unset defaults to given value
 +
# hostname="manjaro"
 +
 +
# unset defaults to given value
 +
# username="manjaro"
 +
 +
# unset defaults to given value
 +
# password="manjaro"
 +
 +
# the login shell
 +
# defaults to bash
 +
# login_shell=/bin/bash
 +
 +
# unset defaults to given values
 +
# addgroups="video,audio,power,disk,storage,optical,network,lp,scanner,wheel"
 +
 +
# unset defaults to given values
 +
# names must match systemd service names
 +
# services in enable_systemd array don't need to be listed here
 +
# enable_systemd_live=('manjaro-live' 'mhwd-live' 'pacman-init' 'mirrors-live-net')
 +
 +
# unset defaults to given values,
 +
# names must match openrc service names
 +
# services in enable_openrc array don't need to be listed here
 +
# enable_openrc_live=('manjaro-live' 'mhwd-live' 'pacman-init' 'mirrors-live-net')
  
and then change the popup menu background colour by
 
  
shadePopupMenu=true
+
This config file contains setting options. All default settings are commented. If you want to change them, uncomment them (remove the <code>#</code> symbol in front) and change it.
  
or change sliders colour by
+
The following settings are noteworthy:
  
  shadeSliders=origselected
+
* <code>initsys=</code> lets you choose between systemd and OpenRC. This setting is associated with the <code>>systemd</code> and <code>>openrc</code> flags in your package lists.
 +
* <code>multilib=</code> setting belongs to the <code>>multilib</code> flag in your package lists. multilib will install basic 32bit libraries on 64bit systems. This increases compatibility for 32bit applications on 64bit systems.
 +
* <code>displaymanager=</code> sets the display / login manager your system uses. You need to list your display manager in your package list, too.
 +
* <code>nonfree_xorg=</code> refers to proprietary graphics drivers.
 +
* <code>plymouth_boot=</code> lets you activate Plymouth (the graphics displayed during boot). Do not forget the <code> plymouth</code> package in your package list.
 +
* <code>pxe_boot=</code> activates PXE boot on your system.
 +
* <code>netinstall=</code> activates an additional package selection in calamares. These packages will be downloaded and installed during the installation of the ISO (besides the packages in Packages-Desktop and Packages-Xfce). The list of packages gets chosen from [https://github.com/manjaro/calamares-netgroups this Github repository] according to your ISO profile. Look for a file called <code>packages-systemd.yaml</code>.
 +
* <code>chrootcfg=</code>: If both <code>netinstall=true</code> and <code>chrootcfg=true</code> are set, the ISO will become a pure net install. This means that '''no''' packages from Packages-Desktop, Packages-Xfce, Packages-Mhwd, and Packages-Root will get installed during ISO installation. Only packages present in [https://github.com/manjaro/calamares-netgroups this Github repository] in a file called <code>chrootcfg-systemd.yaml</code> will get installed. Calamares offers a comfortable selection screen, where all packages (to be installed on your system) can be selected.
 +
* <code>kernel=</code> lets you set the installed kernel. Do '''not''' include any kernels in your package list! This setting is all you need.
 +
* <code>enable_systemd=</code> let's you set systemd services, which get started on the installed system (and with a similar setting on the livecd). A similar setting is available for OpenRC.
  
Instead of "origselected" you can enter "selected" or any colour (#xyxyxy) you want.
+
===Packages-Desktop===
  
You can set
+
<pre>
 +
## Network
 +
>systemd avahi
 +
>openrc avahi-openrc
 +
>systemd networkmanager
 +
>openrc networkmanager-openrc
 +
>openrc networkmanager-consolekit
 +
networkmanager-openconnect
 +
networkmanager-openvpn
 +
networkmanager-pptp
 +
networkmanager-vpnc
 +
networkmanager-dispatcher-ntpd
 +
nss-mdns # NSS support for mDNS (optdepend for avahi)
 +
>systemd ntp
 +
>openrc ntp-openrc
 +
mobile-broadband-provider-info
 +
modemmanager
 +
>systemd openresolv
 +
>systemd openssh
 +
>openrc openssh-openrc
 +
samba
  
colorMenubarMouseOver=true
+
## Libraries for Sound/Audio/Video
 +
alsa-firmware
 +
>systemd alsa-utils
 +
>openrc alsa-utils-openrc
 +
ffmpeg
 +
gst-libav
 +
gst-plugins-bad
 +
gst-plugins-base
 +
gst-plugins-good
 +
gst-plugins-ugly
 +
libdvdcss
 +
>multilib manjaro-alsa
 +
>systemd manjaro-pulse
 +
>systemd pulseaudio-bluetooth
 +
>systemd pulseaudio-ctl
 +
>systemd pulseaudio-zeroconf
  
You can set custom menu text colour by
+
## Connect Packages
 +
android-tools
 +
android-udev
 +
gvfs
 +
gvfs-afc
 +
gvfs-gphoto2
 +
gvfs-mtp
 +
gvfs-nfs
 +
gvfs-smb
 +
mtpfs
 +
udiskie
 +
udisks2
  
customMenuNormTextColor=#ff5500
+
## AUR Support/Development
customMenuSelTextColor=#ffaa00
+
# Missing base-devel packages
customMenuTextColor=true
+
autoconf
 +
automake
 +
binutils
 +
bison
 +
fakeroot
 +
flex
 +
gcc
 +
>multilib gcc-multilib
 +
libtool
 +
m4
 +
make
 +
patch
 +
pkg-config
 +
>multilib lib32-flex
 +
# Extra packages for AUR support
 +
>extra git
 +
>extra patchutils
 +
>extra subversion
 +
yaourt
  
Besides, you can download a qtcurve preset (a xxxxx.qtcurve file) and copy-paste its content into your .stylerc.
+
## Fonts
 +
cantarell-fonts
 +
# noto-fonts              # default font
 +
# noto-fonts-cjk        # big package, ~76 mb compressed
 +
# >extra noto-fonts-emoji
 +
>extra terminus-font
 +
>extra ttf-bitstream-vera
 +
# ttf-dejavu            # Installed as gnome-themes-standard dependency
 +
>extra ttf-inconsolata
 +
>extra ttf-indic-otf
 +
>extra ttf-liberation
 +
>extra ttf-droid
  
Another theme engine is <code>kvantum</code>:
+
## Games
 +
>extra steam-manjaro
  
yaourt -S kdestyle-kvantum-kde4-git
+
## Package management
 +
pamac
  
It doesn't have KDE dependencies, but its said customization utility seemingly only works in KDE (at this time) as I couldn't see any such utility in my system after installing it. <code>kvantum</code> can be installed as a Qt5 app as well, but since there's no separate Qt5 AUR package, you need to install it once more as a Qt5 app. To do that you should edit the package content when <code>yaourt</code> asks you to; just replace the "qt4" entries with "qt5".
+
## Java
 +
>extra jdk8-openjdk
 +
>extra jre8-openjdk-headless
 +
>extra jre8-openjdk
  
 +
## Printing
 +
>extra cups
 +
>extra cups-pdf
 +
>extra cups-pk-helper
 +
>extra ghostscript
 +
>extra gsfonts
 +
>extra hplip
 +
>extra splix
  
=Panel Theming=
+
## Optional dependencies for hplip
 +
>extra pyqt5-common # For hplip
 +
>extra python-pillow # For hplip
 +
>extra python-pip # For hplip
 +
>extra python-pyqt5  # For hplip gui
 +
>extra python-reportlab # For hplip
  
Panel theming is available via the LXQt Configuration Center --> LXQt Appearance --> LXQt Theme
+
## Display manager
 +
lightdm
 +
lightdm-gtk-greeter
 +
lightdm-gtk-greeter-settings
 +
accountsservice  # Enhanced user accounts handling
  
Additionally there are more themes available for download in the [https://forum.manjaro.org/index.php?board=20.0 Manjaro LXQt subforum].
+
## XFCE Group
All Theme folders need to be unpacked into the following directory:
+
exo
 +
garcon
 +
gtk-xfce-engine
 +
thunar
 +
thunar-volman
 +
tumbler
 +
xfce4-appfinder
 +
xfce4-panel
 +
xfce4-power-manager
 +
xfce4-session
 +
xfce4-settings
 +
xfce4-terminal
 +
xfconf
 +
xfdesktop
 +
xfwm4
 +
xfwm4-themes
  
  /usr/share/lxqt/themes/
+
## XFCE Extras
 +
blueman
 +
ffmpegthumbnailer # tumbler - for video thumbnails
 +
freetype2          # tumbler - for font thumbnails
 +
gconf              # fix qt-theme
 +
gksu
 +
gnome-keyring      # fix wlan segfault
 +
libgsf            # tumbler - for ODF thumbnails
 +
libopenraw        # tumbler - for RAW thumbnails
 +
light-locker
 +
network-manager-applet
 +
menulibre
 +
orage
 +
poppler-glib      # tumbler - for PDF thumbnails
 +
thunar-archive-plugin
 +
thunar-media-tags-plugin
 +
# >extra xfce4-artwork
 +
xfce4-battery-plugin
 +
xfce4-clipman-plugin
 +
>extra xfce4-cpufreq-plugin
 +
>extra xfce4-cpugraph-plugin
 +
# xfce4-datetime-plugin
 +
>extra xfce4-dict
 +
>extra xfce4-diskperf-plugin
 +
>extra xfce4-fsguard-plugin
 +
>extra xfce4-genmon-plugin
 +
>extra xfce4-mailwatch-plugin
 +
>extra xfce4-mount-plugin
 +
>extra xfce4-mpc-plugin
 +
>extra xfce4-netload-plugin
 +
>extra xfce4-notes-plugin
 +
xfce4-notifyd
 +
xfce4-screenshooter
 +
>extra xfce4-sensors-plugin
 +
>extra xfce4-smartbookmark-plugin
 +
>extra xfce4-systemload-plugin
 +
xfce4-taskmanager
 +
>extra xfce4-time-out-plugin
 +
>extra xfce4-timer-plugin
 +
>extra xfce4-verve-plugin
 +
>extra xfce4-wavelan-plugin
 +
>extra xfce4-weather-plugin
 +
xfce4-whiskermenu-plugin
 +
xfce4-xkb-plugin
 +
>systemd pa-applet
 +
>systemd pavucontrol
  
Attention: Some themes do not fully work. Please read the comments about the recommended usage.
+
## Themes QT/GTK/SDDM
 +
>extra manjaro-backgrounds
 +
gnome-icon-theme
 +
gnome-themes-standard
 +
gtk-theme-breath
 +
>systemd plymouth-legacy
 +
>systemd plymouth-theme-manjaro-elegant
 +
xcursor-simpleandsoft
 +
xcursor-vanilla-dmz-aa
  
===Example:===
+
## Applications
Please look at this [https://forum.manjaro.org/index.php?topic=18058.msg165462#msg165462 Chrome theme].
+
>extra catfish
 +
dmidecode # optional dependency inxi
 +
engrampa
 +
engrampa-thunar-plugin
 +
>extra firefox
 +
>extra flashplugin
 +
>extra galculator-gtk2
 +
>extra gimp
 +
gparted
 +
gufw
 +
>extra guayadeque
 +
>extra hexchat
 +
htop
 +
qpdfview
 +
>extra qpdfview-djvu-plugin
 +
>extra qpdfview-ps-plugin
 +
inxi
 +
>extra libreoffice-still
 +
manjaro-hello
 +
manjaro-settings-manager
 +
manjaro-settings-manager-notifier
 +
>basic midori
 +
>extra mlocate
 +
mousepad
 +
mugshot
 +
parole # media player
 +
>extra pidgin
 +
powertop
 +
>extra poppler-data  # CKJ support for pdf
 +
>basic sylpheed # mail client
 +
>extra thunderbird
 +
# vlc-nightly
 +
>extra viewnior
 +
>extra xfburn
 +
>extra yelp
  
The downloaded folder needs to be unpacked and moved into the right location mentioned above. The final path to the "chrome" folder has to be
+
# Optional dependencies engrampa
 +
p7zip  # 7Z and ARJ archive support
 +
unace  # ACE archive support
 +
unrar  # RAR archive support
  
/usr/share/lxqt/themes/chrome/
+
## Documentation
 +
manjaro-documentation
  
 +
## Settings packages
 +
>extra manjaro-xfce-settings
 +
>basic manjaro-xfce-minimal-settings
 +
manjaro-browser-settings
  
=Change Mouse Cursor=
+
## Xorg Input Drivers
 +
xf86-input-elographics
 +
xf86-input-evdev
 +
xf86-input-keyboard
 +
xf86-input-libinput
 +
xf86-input-mouse
 +
xf86-input-void
  
Mouse cursor theming is available via the LXQt Configuration Center --> LXQt Appearance --> Cursor.
+
## Xorg Server and Graphics
 +
numlockx
 +
mesa-demos
 +
>multilib lib32-mesa-demos
 +
xorg-server
 +
xorg-server-utils
 +
xorg-twm
 +
xorg-utils
 +
xorg-xinit
 +
xorg-xkill
  
<code>Adwaita</code> is the default mouse cursor theme in LXQt. Other mouse cursor themes can be downloaded. Example of a mouse cursor theme:
+
## Desktop Utils
 +
perl-file-mimeinfo
 +
xdg-user-dirs
 +
xdg-utils
 +
xdg-su
  
sudo pacman -S xcursor-menda
+
## Misc
 +
>openrc consolekit-openrc
 +
>openrc displaymanager-openrc
 +
>openrc pm-utils
 +
>openrc cgmanager-openrc
 +
manjaro-hotfixes
 +
</pre>
  
 +
This file contains a list of packages, which will get installed on your installed ISO (XFCE) '''and''' the LiveCD (the packages in Packages-Live file only get installled on the live ISO). This is a package list with Xfce specific packages (and packages you like to add to your custom Manjaro ISO) of multiple package lists in your ISO profile. The other package lists are more generic.
  
=Change Icon Theme=
+
You can add or remove package names from this list as you like. You do not need to worry about dependencies when adding package names, just make sure the package name is spelled correctly and the package is available in the Manjaro repositories.
  
The icon theme can be changed via LXQt Configuration Center --> LXQt Appearance --> Icon Theme
+
<code>#</code> marks a comment. The rest of the line after the <code>#</code> symbol gets ignored.
  
The default icon theme of LXQt is ''oxygen-icons''. It is a relatively large download, but pretty complete.
+
<code>>i686</code> is a flag and marks a package, which will only get installed on the 32bit version of your ISO (XFCE).  
  
 +
<code>>x86_64</code> marks a package, which will only get installed on the 64bit version of your ISO (XFCE).
  
Examples of other icon themes are:
+
===Adding AUR packages===
  
sudo pacman -S menda-circle-icon-theme
+
If you want to add AUR packages to your ISO, you need to create a online repository and add it to the right <code>pacman-XXXXX.conf</code> file in <code>/usr/share/manjaro-tools/</code>
  
yaourt -S numix-icon-theme-git
+
[https://wiki.manjaro.org/index.php?title=Buildiso_with_AUR_packages:_Using_buildpkg Buildiso with AUR packages: Using buildpkg]
  
sudo pacman -S faenza-icon-theme
+
=manjaro-tools.conf=
  
yaourt -S tango-icon-theme
+
<code>manjaro-tools.conf</code> is the central configuration file for all tools part of ''manjaro-tools''. Only edit the general and the "buildiso" part to not exceed the scope of this tutorial. If you are not sure what and how to edit it, do '''not''' edit it. You can always use arguments with the <code>buildiso</code> command later.
  
yaourt -S azenis-icon-theme
+
By default, the systemwide config file is installed in
  
  yaourt -S azenis-green-icon-theme
+
  /etc/manjaro-tools/manjaro-tools.conf
  
All of these example do '''not''' provide '''complete''' icon themes. Especially in the LXQt Configuration Center are icons missing. Some application icons can be missing, too. You can easily identify applications and settings with missing icons by opening the start menu and looking at all the icons in it.
+
Additionally, a userconfig <code>manjaro-tools.conf</code> file can be placed in your home directory here:
  
Please read the next chapter (chapter 5) for a tutorial on how to assign new/other icons.
+
~/.config/manjaro-tools/manjaro-tools.conf
  
 +
If the userconfig is present, ''manjaro-tools''/''buildiso'' will load the userconfig values, however, if variables have been set in the systemwide config file, these values take precedence over the userconfig. Best practice is to leave the systemwide file untouched. By default it is commented and shows just initialization values done in code.
  
=Change Icons of Applications and System Settings=
 
  
The path of icons is saved in <code>.desktop</code> files. For each application you can find their corresponding <code>.desktop</code> files in one of these two locations:
+
=Build your ISO=
  
/usr/share/applications/
+
Build your ISO with the following command:
  
  ~/.local/share/applications/
+
  buildiso -p xfce
  
Note that all folder names beginning with a dot are hidden folders. You need to make them visible by clicking <code>View --> Show Hidden</code> in your PcManFM-Qt File Browser. The <code>~</code> directory is your home folder.
+
You need to specify the name of your ISO profile after the <code>-p</code> argument. In this case, it is <code>xfce</code>.
  
 +
If the build process fails with an error, start it again.
  
Open a <code>.desktop</code> file with a text editor with root privileges and look for the following line:
+
Attention: The build process needs at least 10 minutes to complete or much longer when you are using HDDs, slow CPUs, or large ISOs.
Icon=
 
Insert the path to the icon you want to use after the <code>=</code> symbol. A lot of system icons can be found in this location:
 
/usr/share/icons/
 
  
  
===Example:===
+
When the build process finishes successfully, the ISO file and the package list will appear in this folder:  
If you want to use a flag icon, use this line in the <code>.desktop</code> file:
 
Icon=/usr/share/icons/gnome/48x48/apps/locale.png
 
  
 +
/var/cache/manjaro-tools/iso/
  
=Create Custom Icon on Panel=
 
  
Right click on your panel and choose "Add panel widget". Then add a Quick Launch / Starter widget. A text will appear on your panel.
+
===Example:===
 +
You can use arguments with the <code>buildiso</code> command for more build options:
  
You can drag and drop any icon (from your start menu / mainmenu or your custom icon file) there in order to create a Quick Launch / Starter icon in your panel. You can even drop multiple icons / icon files on one Quick Launch / Starter widget.
+
buildiso -p xfce -a i686 -b stable
  
But if you want your custom icon in your panel, you must first create your own <code>.desktop</code> file (please keep reading).
+
* <code>-a</code> let's you build for other architectures. Here, it builds a 32bit ISO image on a 64bit host system. You can also set this in your <code>manjaro-tools.conf</code> file.
 +
* <code>-b</code> let's you specify the branch. You can also set this in your <code>manjaro-tools.conf</code> file.
  
===Example:===
+
You can find other examples of builds using different arguments for ''buildiso'' [https://wiki.manjaro.org/index.php?title=Manjaro-tools#buildiso here].
For demonstration purposes, let's create a custom icon, which will shut down our computer when clicked:
 
  
First, let's create a new file (e.g. in your home directory or any other directory you want): Right click and choose "Create New" --> "Blank File". Name the file <code>ShutDown.desktop</code>. You can choose any name you want, but the <code>.desktop</code> in the end is important.
 
  
Next, edit this file with a text editor. It's file content is supposed to look like:
+
=Cleaning your hard drive=
  
[Desktop Entry]
+
After a successful or failed build, you can get rid of most data (the "raw" ISO with all downloaded packages) by deleting this folder:
Type=Application
 
Name=ShutDown
 
Comment=Shut down my computer
 
Exec=poweroff
 
Icon=/usr/share/icons/Menda-Circle/actions/scalable/bottom.svg
 
  
* <code>Name=</code> is the name of the icon
+
sudo rm -r /var/lib/manjaro-tools/buildiso/
* <code>Comment=</code> gets shown when you hover with your mouse cursor over the icon
 
* <code>Exec=</code> defines the terminal command, which is executed when the icon is clicked
 
* <code>Icon=</code> specifies the path to the icon
 
  
  
Finally, you can drag and drop your custom icon file onto a Quick Launch / Starter widget in your panel (as described in the beginning of this chapter) to create your custom panel icon.
+
To clean your system of packages files of packages not installed on your system (this includes all the package files downloaded for your custom ISO):
  
 +
paccache -ruk0
  
=Change Order of Icons on Panel=
 
  
You can click the right mouse button on top of a panel element in order to move it. Alternatively, you can move panel elements by holding <code>CTRL+Left Mouse</code> and draging the element. These methods work for all panel elements, except Quick Launch / Starter elements with added icons.
+
You can also manually look into
  
Quick Launch / Starter elements have "Move Left" and "Move Right" as right click options, which do enable you to freely move it. Just click the "Remove from quicklaunch" in order to remove the icon from the Quick Launch Widget.
+
/var/cache/manjaro-tools/
  
Now, you can move the Quick Launch Widget like all other panel elements. After you have moved the Quick Launch Widget to the desired position on your panel, follow [https://wiki.manjaro.org/index.php?title=LXQt_Theming&action=edit#Create_Custom_Icon_on_Panel this tutorial] to add your icon again.
+
and delete folders or files to your liking. If you want to delete all ISO images, package lists, and cached Xorg packages do:
  
 +
sudo rm -r /var/cache/manjaro-tools/
  
=Change Icon of Start Menu / Mainmenu=
 
  
This Icon can be changed by opening the following folder with root privileges:
+
Please remember that all these packages and files are saved for your convenience. If you clean your system like suggested above, you have to download '''all''' packages and build '''all''' images again the next time you want to build your own Manjaro ISO.
/usr/share/lxqt/themes/<theme name>/
 
Replace <theme name> with the name of the theme you are currently using. The name of your current theme can be found in <code>System Settings&gt;LXQT Configuration Center&gt;LXQtAppearance&gt;LXQt Theme</code>. The Start Menu icon will only get changed for <theme name>. All other themes still use the default icon!
 
  
In this folder, you find a <code>mainmenu.png</code> file. It is the icon of your Start Menu (called "Mainmenu" in LXQt). Replace this file with the icon file you want to use. Rename your icon file to the same name.
+
=Further Reading=
  
 +
=== Tutorials for ''manjaro-tools'' and ''buildiso'' ===
  
Great icons can be found in this thread: https://forum.manjaro.org/index.php?topic=15613.0
+
* Source: [https://github.com/manjaro/manjaro-tools Manjaro-tools on GitHub] (always up to date)
 +
* Forum: [https://forum.manjaro.org/t/how-to-create-your-own-manjaro-spin-with-manjaro-tools/1355 How to create your own Manjaro spin with Manjaro-Tools]
 +
* Video: [https://www.youtube.com/watch?v=9BxqN326G6o Building Manjaro by Spatry](Tutorial Video)
  
  
In order to see the changes logout and log in again. If you want to see the changes immediately run the following commands:
+
=== [[Manjaro-tools]] (outdated) ===
killall lxqt-panel
+
* [https://classicforum.manjaro.org/index.php?board=52.0 Support for Manjaro-Tools] (outdated)
lxqt-panel
+
* [https://classicforum.manjaro.org/index.php?topic=21976.0 Simple buildiso tutorial] (outdated)
 +
* [https://classicforum.manjaro.org/index.php?topic=20167.0 How to use Manjaro-Tools] (outdated)
 +
* [[Buildiso with AUR packages: Using buildpkg]] (outdated)
 +
* [[Buildiso with AUR packages: Using yaourt]] (outdated)
  
  
=Links=
+
It is also possible to ask questions on IRC:
 +
* Server: <code>irc.freenode.net</code>
 +
* Channel: <code>#manjaro</code>
  
You can find more pages about LXQt in the Manjaro Wiki [https://wiki.manjaro.org/index.php?title=Desktop_Environments#LXQt here].
 
  
  
 
[[Category:Contents Page]]
 
[[Category:Contents Page]]

Revision as of 00:57, 4 March 2017


Prerequisites

Before we began. You need Kernel linux44 or newer.

It is recommend to download the latest version of Manjaro Distribution.


Install manjaro-tools-iso

To get started you need to download the following packages.

  • manjaro-tools-base
  • manjaro-tools-iso
  • manjaro-efi-shell
  • manjaro-isolinux


Install manjaro-iso-profiles

You will also need to download manjaro-iso-profiles from Package Manager.

There are three manjaro-iso-profiles packages to choose.

  • manjaro-iso-profiles-base
  • manjaro-iso-profiles-community
  • manjaro-iso-profiles-official

You can choose any profiles you want.

We're going to choose manjaro-iso-profiles-official along with XFCE to help you understand what you need to do.

We do not recommend downloading profiles from GitHub. It may not work for you while building. But, if it does work for you. That's fine.

Name your own Manjaro Distribution

Open Thunar Root and go to this file

/usr/share/manjaro-tools/isolinux/gfxboot.cfg

Find product=Manjaro Linux and change from Manjaro Linux to whatever you want to name it.

Example:

; Sections are read in the order given in base::layout, with section 'base'
; implicitly added at the end. If a config value is given more than once,
; the first entry wins.
;
; If a screen resolution can't be set, 640x480 is used as fallback (and
; section '640x480' added to the layout list).
;
; Setting livecd=1 implicitly adds section 'live' to the layout list.
;
; Color values: 24 bit RGB (e.g. 0xff0000 = red).
;

[base]
; theme name
theme=artwork-gfxboot
; product name
product=NAME YOUR MANJARO DISTRIBUTION HERE
; other sections to read
layout=800x600,live,install
; sound volume (0..100)
volume=70
; menu background transparency (0..255)
menu.transparency=0x0
; default font
font.normal=16x16.fnt
; main menu font
font.large=16x16.fnt
; max. visible main menu items
mainmenu.entries=8
; minimal main menu selection bar width
mainmenu.bar.minwidth=300
; main menu selection bar transparency (0..255)
mainmenu.bar.transparency=0
; main menu colors
mainmenu.bar.color=0xffffff
mainmenu.normal.fg=0xffffff
mainmenu.selected.fg=0x000000
; boot option colors
bootopt.label.fg=0xffffff
bootopt.text.fg=0xffffff
; progress bar color
progress.bar.color=0x295202
; menu colors
menu.normal.bg=0xd8deed
menu.normal.fg=0x000000
menu.normal.alt.fg=0x606060
menu.selected.bg=0x6c6c6c
menu.selected.fg=0xffffff
; window colors
window.bg=0xd8deed
window.fg=0x000000
window.title.bg=0x217b05
window.title.fg=0xffffff
window.title.error.bg=0xc00000
; help system colors
help.link.fg=0x0000a0
help.link.selected.fg=0xffffff
help.link.selected.bg=0x0000a0
help.highlight.fg=0x009000
; panel colors
panel.fg=0xffffff
panel.title.fg=0xffffff
panel.f-key.fg=0xffe050
; default keymap (e.g. de-latin1-nodeadkeys or cz-lat2-us)
keymap=
; replace underscores ('_') with space in menu entries
_2space=1

[800x600]
; screen size
screen.size=800,600
; background image
background=back800x600.jpg
; upper left corner, if x = -1, center horizontally
mainmenu.pos=-1,240
; boot option input field position
bootopt.pos=263,480

[640x480]
; screen size
screen.size=640,480
; background image
background=back640x480.jpg
; upper left corner, if x = -1, center horizontally
mainmenu.pos=-1,170
; boot option input field position
bootopt.pos=263,380

[live]
; show welcome animation
welcome=1
; set livecd flag
livecd=1
; main menu items where user can't add boot options
nobootoptions=hdt,memtest
; move down one menu entry the first time an F-key is used
autodown=0
; F-key assignments, see install section for doc
; serial line setup (up to four lines)
; format: port,baud,dev
;   - port: 0-3: first four BIOS serial lines (COM1-COM4); >=4: I/O port (0x3f8)
;   - baud: baud rate (e.g. 115200); 0 = autodetect (considers baud rates >= 9600)
;   - dev: linux device name (e.g. ttyS0)
; - all lines are set up with 8 bits, no parity, 1 stop bit
; - if the bootloader also has a serial line setup, the port is
;   automatically used
serial.line0=0,0,ttyS0
serial.line1=1,0,ttyS1
serial.line2=
serial.line3=
key.F2=lang
key.F3=video
key.F4=kernelopts
key.F5=
key.F6=
key.F7=
key.F8=
key.F11=
key.F12=
; show keymap menu as submenu in lang dialog
keymap.submenu=1
; add 'keytable' option with current keymap
addopt.keytable=1
; add 'lang' option with current locale
addopt.lang=1
; add 'layout' option with current keyboad layout
addopt.layout=1


ISO profile

ISO profile overview

Open Thunar Root and go to this directory.

/usr/share/manjaro-tools/iso-profiles/manjaro/xfce

Let's take a closer look at the XFCE profile folder (marked above):

~ >>> ls -lAgo /usr/share/manjaro-tools/iso-profiles/manjaro/xfce
drwxr-xr-x 3 4096 16 feb 19:52 desktop-overlay
lrwxr-xr-x 1   33 16 feb 19:52 live-overlay -> ../../shared/manjaro/live-overlay
lrwxr-xr-x 1   28 16 feb 19:52 mkinitcpio.conf -> ../../shared/mkinitcpio.conf
-rw-r--r-- 1 5115 16 feb 19:52 Packages-Desktop
lrwxr-xr-x 1   26 16 feb 19:52 Packages-Live -> ../../shared/Packages-Live
lrwxr-xr-x 1   26 16 feb 19:52 Packages-Mhwd -> ../../shared/Packages-Mhwd
lrwxr-xr-x 1   26 16 feb 19:52 Packages-Root -> ../../shared/Packages-Root
-rw-r--r-- 1 2400 16 feb 19:52 profile.conf
  • desktop-overlay: After every successful installation of your ISO the files and folders in here will get copied over.
  • live-overlay: Similar to desktop-overlay. Files and folders in here will only get copied over to the LiveCD of your ISO.
  • mkinitcpio.conf holds the information of all needed kernel modules.
  • Packages-Desktop: This file contains packages for the ISO installation. All packages will also get installed on LiveCDs.
  • Packages-Live: This file contains packages, which will only get installed on the LiveCD.
  • Packages-Mhwd: This file contains Mhwd packages important to all Manjaro installations and LiveCDs.
  • Packages-Root: This file contains base packages important to all Manjaro installations and LiveCDs.
  • profile.conf contains basic settings for your ISO installation and LiveCD.

As you have probably noticed, all files and folders are readonly and several are only symlinks to the shared ISO profile. It is good practice to never change files or folders in the shared ISO profile. If you ever want to change them, first copy them to your ISO profile folder and delete the symlink.

All folders and files specific to your ISO are in bold. You can change them to your liking.

Modifying an ISO profile

The most common places to tweak and customize an ISO profile are the 3 folders marked above: desktop-overlay, profile.conf, Packages-Desktop:


desktop-overlay

The desktop-overlay folder looks like this:

~ >>> tree /usr/share/manjaro-tools/iso-profiles/manjaro/xfce/desktop-overlay/etc                                           
/usr/share/manjaro-tools/iso-profiles/manjaro/xfce/desktop-overlay/etc
├── fonts
│   └── conf.d
│       └── 70-no-bitmaps.conf -> /etc/fonts/conf.avail/70-no-bitmaps.conf
└── lightdm
    └── lightdm-gtk-greeter.conf
3 directories, 2 files

Go to this directory.

/usr/share/manjaro-tools/iso-profiles/manjaro/xfce/desktop-overlay/etc/

Then create skel folder. This is where you can clone everything you see on your Desktop Screen to ISO.

After the ISO has been successfully installed all files and folder in desktop-overlay folder get copied over to the installed system. This includes settings/config files but also themes and backgrounds/pictures.

All files and folder in here will get copied to the home folder. Most hidden files and their structure in /usr/share/manjaro-tools/iso-profiles/manjaro/xfce/desktop-overlay/etc/skel/ should be already familiar to you, because your home folder looks very similar.

Clone Custom Wallpaper Desktop

To clone your Custom Wallpaper Desktop. Open a New File Manager and go to this file.

/home/<username>/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml

Change all image directories to where your Custom Wallpaper was located at.

/usr/share/backgrounds/<YOUR IMAGE HERE>

Example

<?xml version="1.0" encoding="UTF-8"?>

<channel name="xfce4-desktop" version="1.0">
  <property name="backdrop" type="empty">
    <property name="screen0" type="empty">
      <property name="monitor0" type="empty">
        <property name="image-path" type="string" value="/usr/share/backgrounds/<YOUR IMAGE HERE>"/>
        <property name="last-image" type="string" value="/usr/share/backgrounds/<YOUR IMAGE HERE>"/>
        <property name="last-single-image" type="string" value="/usr/share/backgrounds/<YOUR IMAGE HERE>"/>
        <property name="image-style" type="int" value="5"/>
      </property>
      <property name="monitorVGA-0" type="empty">
        <property name="workspace0" type="empty">
          <property name="color-style" type="int" value="0"/>
          <property name="image-style" type="int" value="5"/>
          <property name="last-image" type="string" value="/usr/share/backgrounds/<YOUR IMAGE HERE>"/>
        </property>
        <property name="workspace1" type="empty">
          <property name="color-style" type="int" value="0"/>
          <property name="image-style" type="int" value="5"/>
          <property name="last-image" type="string" value="/usr/share/backgrounds/<YOUR IMAGE HERE>"/>
        </property>
      </property>
    </property>
  </property>
  <property name="desktop-icons" type="empty">
    <property name="style" type="int" value="2"/>
    <property name="file-icons" type="empty">
      <property name="show-removable" type="bool" value="true"/>
    </property>
    <property name="icon-size" type="uint" value="32"/>
  </property>
</channel>

Go to this directory in Thunar Root.

/usr/share/manjaro-tools/iso-profiles/manjaro/xfce/desktop-overlay/

Then create usr/share/backgrounds and place your Custom Wallpaper at this directory.

/usr/share/manjaro-tools/iso-profiles/manjaro/xfce/desktop-overlay/usr/share/backgrounds/

profile.conf

##########################################
###### use this file in the profile ######
##########################################

# use multilib packages; x86_64 only
# multilib="true"

displaymanager="lightdm"

# Set to false to disable autologin in the livecd
# autologin="true"

# nonfree mhwd drivers
# nonfree_mhwd="true"

# use plymouth; initcpio hook
plymouth_boot="false"

# use pxe boot; initcpio hook
pxe_boot="false"

# use core packages as defined in pkglist to use in basic profile
# basic="false"

# use extra packages as defined in pkglist to activate a full profile
extra="true"

################ install ################

# unset defaults to given value
# efi_boot_loader="grub"

# configure calamares for netinstall
# netinstall="false"

# the default url for the netinstall.yaml
# netgroups="https://raw.githubusercontent.com/manjaro/iso-profiles/master/shared/netgroups"

# configure calamares to use chrootcfg instead of unpackfs
# chrootcfg="false"

# use geoip for localization
# geoip='true'

# unset defaults to given values
# names must match systemd service names
enable_systemd=('avahi-daemon' 'bluetooth' 'cronie' 'ModemManager' 'NetworkManager' 'org.cups.cupsd' 'tlp' 'tlp-sleep')
disable_systemd=('pacman-init')

# unset defaults to given values,
# names must match openrc service names
# enable_openrc=('acpid' 'bluetooth' 'cgmanager' 'consolekit' 'cronie' 'cupsd' 'dbus' 'syslog-ng' 'NetworkManager')
# disable_openrc=()

# the same workgroup name if samba is used
# smb_workgroup=""

################# livecd #################

# unset defaults to given value
# hostname="manjaro"

# unset defaults to given value
# username="manjaro"

# unset defaults to given value
# password="manjaro"

# the login shell
# defaults to bash
# login_shell=/bin/bash

# unset defaults to given values
# addgroups="video,audio,power,disk,storage,optical,network,lp,scanner,wheel"

# unset defaults to given values
# names must match systemd service names
# services in enable_systemd array don't need to be listed here
# enable_systemd_live=('manjaro-live' 'mhwd-live' 'pacman-init' 'mirrors-live-net')

# unset defaults to given values,
# names must match openrc service names
# services in enable_openrc array don't need to be listed here
# enable_openrc_live=('manjaro-live' 'mhwd-live' 'pacman-init' 'mirrors-live-net')


This config file contains setting options. All default settings are commented. If you want to change them, uncomment them (remove the # symbol in front) and change it.

The following settings are noteworthy:

  • initsys= lets you choose between systemd and OpenRC. This setting is associated with the >systemd and >openrc flags in your package lists.
  • multilib= setting belongs to the >multilib flag in your package lists. multilib will install basic 32bit libraries on 64bit systems. This increases compatibility for 32bit applications on 64bit systems.
  • displaymanager= sets the display / login manager your system uses. You need to list your display manager in your package list, too.
  • nonfree_xorg= refers to proprietary graphics drivers.
  • plymouth_boot= lets you activate Plymouth (the graphics displayed during boot). Do not forget the plymouth package in your package list.
  • pxe_boot= activates PXE boot on your system.
  • netinstall= activates an additional package selection in calamares. These packages will be downloaded and installed during the installation of the ISO (besides the packages in Packages-Desktop and Packages-Xfce). The list of packages gets chosen from this Github repository according to your ISO profile. Look for a file called packages-systemd.yaml.
  • chrootcfg=: If both netinstall=true and chrootcfg=true are set, the ISO will become a pure net install. This means that no packages from Packages-Desktop, Packages-Xfce, Packages-Mhwd, and Packages-Root will get installed during ISO installation. Only packages present in this Github repository in a file called chrootcfg-systemd.yaml will get installed. Calamares offers a comfortable selection screen, where all packages (to be installed on your system) can be selected.
  • kernel= lets you set the installed kernel. Do not include any kernels in your package list! This setting is all you need.
  • enable_systemd= let's you set systemd services, which get started on the installed system (and with a similar setting on the livecd). A similar setting is available for OpenRC.

Packages-Desktop

## Network
>systemd avahi
>openrc avahi-openrc
>systemd networkmanager
>openrc networkmanager-openrc
>openrc networkmanager-consolekit
networkmanager-openconnect
networkmanager-openvpn
networkmanager-pptp
networkmanager-vpnc
networkmanager-dispatcher-ntpd
nss-mdns # NSS support for mDNS (optdepend for avahi)
>systemd ntp
>openrc ntp-openrc
mobile-broadband-provider-info
modemmanager
>systemd openresolv
>systemd openssh
>openrc openssh-openrc
samba

## Libraries for Sound/Audio/Video
alsa-firmware
>systemd alsa-utils
>openrc alsa-utils-openrc
ffmpeg
gst-libav
gst-plugins-bad
gst-plugins-base
gst-plugins-good
gst-plugins-ugly
libdvdcss
>multilib manjaro-alsa
>systemd manjaro-pulse
>systemd pulseaudio-bluetooth
>systemd pulseaudio-ctl
>systemd pulseaudio-zeroconf

## Connect Packages
android-tools
android-udev
gvfs
gvfs-afc
gvfs-gphoto2
gvfs-mtp
gvfs-nfs
gvfs-smb
mtpfs
udiskie
udisks2

## AUR Support/Development
# Missing base-devel packages
autoconf
automake
binutils
bison
fakeroot
flex
gcc
>multilib gcc-multilib
libtool
m4
make
patch
pkg-config
>multilib lib32-flex
# Extra packages for AUR support
>extra git
>extra patchutils
>extra subversion
yaourt

## Fonts
cantarell-fonts
# noto-fonts               # default font
# noto-fonts-cjk         # big package, ~76 mb compressed
# >extra noto-fonts-emoji
>extra terminus-font
>extra ttf-bitstream-vera
# ttf-dejavu             # Installed as gnome-themes-standard dependency
>extra ttf-inconsolata
>extra ttf-indic-otf
>extra ttf-liberation
>extra ttf-droid

## Games
>extra steam-manjaro

## Package management
pamac

## Java
>extra jdk8-openjdk
>extra jre8-openjdk-headless
>extra jre8-openjdk

## Printing
>extra cups
>extra cups-pdf
>extra cups-pk-helper
>extra ghostscript
>extra gsfonts
>extra hplip
>extra splix

## Optional dependencies for hplip
>extra pyqt5-common # For hplip
>extra python-pillow # For hplip
>extra python-pip # For hplip
>extra python-pyqt5  # For hplip gui
>extra python-reportlab # For hplip

## Display manager
lightdm
lightdm-gtk-greeter
lightdm-gtk-greeter-settings
accountsservice  # Enhanced user accounts handling

## XFCE Group
exo
garcon
gtk-xfce-engine
thunar
thunar-volman
tumbler
xfce4-appfinder
xfce4-panel
xfce4-power-manager
xfce4-session
xfce4-settings
xfce4-terminal
xfconf
xfdesktop
xfwm4
xfwm4-themes

## XFCE Extras
blueman
ffmpegthumbnailer  # tumbler - for video thumbnails
freetype2          # tumbler - for font thumbnails
gconf              # fix qt-theme
gksu
gnome-keyring      # fix wlan segfault
libgsf             # tumbler - for ODF thumbnails
libopenraw         # tumbler - for RAW thumbnails
light-locker
network-manager-applet
menulibre
orage
poppler-glib       # tumbler - for PDF thumbnails
thunar-archive-plugin
thunar-media-tags-plugin
# >extra xfce4-artwork
xfce4-battery-plugin
xfce4-clipman-plugin
>extra xfce4-cpufreq-plugin
>extra xfce4-cpugraph-plugin
# xfce4-datetime-plugin
>extra xfce4-dict
>extra xfce4-diskperf-plugin
>extra xfce4-fsguard-plugin
>extra xfce4-genmon-plugin
>extra xfce4-mailwatch-plugin
>extra xfce4-mount-plugin
>extra xfce4-mpc-plugin
>extra xfce4-netload-plugin
>extra xfce4-notes-plugin
xfce4-notifyd
xfce4-screenshooter
>extra xfce4-sensors-plugin
>extra xfce4-smartbookmark-plugin
>extra xfce4-systemload-plugin
xfce4-taskmanager
>extra xfce4-time-out-plugin
>extra xfce4-timer-plugin
>extra xfce4-verve-plugin
>extra xfce4-wavelan-plugin
>extra xfce4-weather-plugin
xfce4-whiskermenu-plugin
xfce4-xkb-plugin
>systemd pa-applet
>systemd pavucontrol

## Themes QT/GTK/SDDM
>extra manjaro-backgrounds
gnome-icon-theme
gnome-themes-standard
gtk-theme-breath
>systemd plymouth-legacy
>systemd plymouth-theme-manjaro-elegant
xcursor-simpleandsoft
xcursor-vanilla-dmz-aa

## Applications
>extra catfish
dmidecode # optional dependency inxi
engrampa
engrampa-thunar-plugin
>extra firefox
>extra flashplugin
>extra galculator-gtk2
>extra gimp
gparted
gufw
>extra guayadeque
>extra hexchat
htop
qpdfview
>extra qpdfview-djvu-plugin
>extra qpdfview-ps-plugin
inxi
>extra libreoffice-still
manjaro-hello
manjaro-settings-manager
manjaro-settings-manager-notifier
>basic midori
>extra mlocate
mousepad
mugshot
parole # media player
>extra pidgin
powertop
>extra poppler-data  # CKJ support for pdf
>basic sylpheed # mail client
>extra thunderbird
# vlc-nightly
>extra viewnior
>extra xfburn
>extra yelp

# Optional dependencies engrampa
p7zip  # 7Z and ARJ archive support
unace  # ACE archive support
unrar  # RAR archive support 

## Documentation
manjaro-documentation

## Settings packages
>extra manjaro-xfce-settings
>basic manjaro-xfce-minimal-settings
manjaro-browser-settings

## Xorg Input Drivers
xf86-input-elographics
xf86-input-evdev
xf86-input-keyboard
xf86-input-libinput
xf86-input-mouse
xf86-input-void

## Xorg Server and Graphics
numlockx
mesa-demos
>multilib lib32-mesa-demos
xorg-server
xorg-server-utils
xorg-twm
xorg-utils
xorg-xinit
xorg-xkill

## Desktop Utils
perl-file-mimeinfo
xdg-user-dirs
xdg-utils
xdg-su

## Misc
>openrc consolekit-openrc
>openrc displaymanager-openrc
>openrc pm-utils
>openrc cgmanager-openrc
manjaro-hotfixes

This file contains a list of packages, which will get installed on your installed ISO (XFCE) and the LiveCD (the packages in Packages-Live file only get installled on the live ISO). This is a package list with Xfce specific packages (and packages you like to add to your custom Manjaro ISO) of multiple package lists in your ISO profile. The other package lists are more generic.

You can add or remove package names from this list as you like. You do not need to worry about dependencies when adding package names, just make sure the package name is spelled correctly and the package is available in the Manjaro repositories.

# marks a comment. The rest of the line after the # symbol gets ignored.

>i686 is a flag and marks a package, which will only get installed on the 32bit version of your ISO (XFCE).

>x86_64 marks a package, which will only get installed on the 64bit version of your ISO (XFCE).

Adding AUR packages

If you want to add AUR packages to your ISO, you need to create a online repository and add it to the right pacman-XXXXX.conf file in /usr/share/manjaro-tools/

Buildiso with AUR packages: Using buildpkg

manjaro-tools.conf

manjaro-tools.conf is the central configuration file for all tools part of manjaro-tools. Only edit the general and the "buildiso" part to not exceed the scope of this tutorial. If you are not sure what and how to edit it, do not edit it. You can always use arguments with the buildiso command later.

By default, the systemwide config file is installed in

/etc/manjaro-tools/manjaro-tools.conf

Additionally, a userconfig manjaro-tools.conf file can be placed in your home directory here:

~/.config/manjaro-tools/manjaro-tools.conf

If the userconfig is present, manjaro-tools/buildiso will load the userconfig values, however, if variables have been set in the systemwide config file, these values take precedence over the userconfig. Best practice is to leave the systemwide file untouched. By default it is commented and shows just initialization values done in code.


Build your ISO

Build your ISO with the following command:

buildiso -p xfce

You need to specify the name of your ISO profile after the -p argument. In this case, it is xfce.

If the build process fails with an error, start it again.

Attention: The build process needs at least 10 minutes to complete or much longer when you are using HDDs, slow CPUs, or large ISOs.


When the build process finishes successfully, the ISO file and the package list will appear in this folder:

/var/cache/manjaro-tools/iso/


Example:

You can use arguments with the buildiso command for more build options:

buildiso -p xfce -a i686 -b stable
  • -a let's you build for other architectures. Here, it builds a 32bit ISO image on a 64bit host system. You can also set this in your manjaro-tools.conf file.
  • -b let's you specify the branch. You can also set this in your manjaro-tools.conf file.

You can find other examples of builds using different arguments for buildiso here.


Cleaning your hard drive

After a successful or failed build, you can get rid of most data (the "raw" ISO with all downloaded packages) by deleting this folder:

sudo rm -r /var/lib/manjaro-tools/buildiso/


To clean your system of packages files of packages not installed on your system (this includes all the package files downloaded for your custom ISO):

paccache -ruk0


You can also manually look into

/var/cache/manjaro-tools/

and delete folders or files to your liking. If you want to delete all ISO images, package lists, and cached Xorg packages do:

sudo rm -r /var/cache/manjaro-tools/


Please remember that all these packages and files are saved for your convenience. If you clean your system like suggested above, you have to download all packages and build all images again the next time you want to build your own Manjaro ISO.

Further Reading

Tutorials for manjaro-tools and buildiso


Manjaro-tools (outdated)


It is also possible to ask questions on IRC:

  • Server: irc.freenode.net
  • Channel: #manjaro