File config.sh of Package labwc-livecd-zeus

#!/bin/bash
test -f /.kconfig && . /.kconfig
test -f /.profile && . /.profile
set -euxo pipefail

#Hello
echo "Configure image: [$kiwi_iname]..."

#setup product
suseSetupProduct

#set hostname
echo "livecd" > /etc/hostname

#add rpm keys
suseImportBuildKey

#services
suseRemoveService wicked
suseRemoveService SuSEfirewall2
suseRemoveService sshd
suseRemoveService cron
suseRemoveService purge-kernels
#suseRemoveService lvm2-monitor
suseRemoveService smartd
suseRemoveService udisks2
suseInsertService NetworkManager
suseInsertService firewalld
suseInsertService chronyd

systemctl mask lvm2-monitor

#sudoers
mkdir -p /etc/sudoers.d
echo "linux ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/50-livecd

#add user
/usr/sbin/useradd -m -U -u 1000 linux -c "Live User" -p ""
#add user to the video group
usermod -aG video linux
#delete passwords
passwd -d root
passwd -d linux
pam-config -a --nullok

: > /var/log/zypper.log
: > /var/log/tallylog

## repos
zypper ar -p 85 https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed packman
zypper ar -p 95 https://download.opensuse.org/tumbleweed/repo/non-oss/ non-oss
zypper ar -p 95 https://download.opensuse.org/tumbleweed/repo/oss/ oss
zypper mr -d packman

## pacman keys
pacman-key --init
pacman-key --populate

## ram journal and limit size
rm -f /etc/systemd/journald.conf
cat >/etc/systemd/journald.conf <<EOF
[Journal]
Storage=volatile
SystemMaxUse=86M
EOF

## disable core dumps
mkdir -p /etc/sysctl.d
echo "kernel.core_pattern=|/bin/false" > /etc/sysctl.d/50-coredump.conf
mkdir -p /etc/systemd/coredump.conf.d
cat >/etc/systemd/coredump.conf.d/disable.conf <<EOF
[Coredump]
Storage=none
ProcessSizeMax=0
EOF

# Remove generated files (boo#1098535)
rm -rf /var/cache/zypp/* /var/lib/zypp/AnonymousUniqueId /var/lib/systemd/random-seed

# Not needed, but required by suse-module-tools (bsc#1116665)
#rpm -q binutils && rpm -e --nodeps binutils
# Not needed, but required by dracut-kiwi-live -> cdrkit-cdrtools-compat
rpm -q wodim && rpm -e --nodeps wodim
# Reuse what the macro does
rpm --eval "%fdupes /usr/share/licenses"

echo '# multipath needs to be excluded from dracut as it breaks os-prober' > /etc/dracut.conf.d/no-multipath.conf
echo 'omit_dracutmodules+=" multipath "' >> /etc/dracut.conf.d/no-multipath.conf

# Stronger compression for the initrd
echo 'compress="xz -9 --check=crc32 --memlimit-compress=50%"' >> /etc/dracut.conf.d/less-storage.conf

# Smaller initrd where necessary
	# Forcibly exclude networking support
	sed -i 's/echo network rootfs-block/echo rootfs-block/' /usr/lib/dracut/modules.d/90kiwi-live/module-setup.sh
	echo 'omit_dracutmodules+=" network qemu-net rdma "' >> /etc/dracut.conf.d/no-network.conf

	# This only needs to be able to boot the live cd
	echo 'omit_dracutmodules+=" bcache crypt lvm lunmask mdraid nvdimm "' >> /etc/dracut.conf.d/less-storage.conf

	# Unnecessary modules in the initrd
	echo 'omit_drivers+=" ceph chcr cifs csiostor cxgb4 intel_qat ocfs2 bnx2fc qedf "' >> /etc/dracut.conf.d/less-storage.conf

	# Work around https://github.com/OSInside/kiwi/issues/1751
	sed -i '/omit_dracutmodules=/d' /usr/bin/dracut
    
### add dmsquash modules?
echo 'add_dracutmodules+=" dmsquash-live dmsquash-live-autooverlay "' >> /etc/dracut.conf.d/dmsquash-mods.conf


# Only used for OpenCL and X11 acceleration on vmwgfx (?), saves ~50MiB
#rpm -e --nodeps Mesa-gallium
# Too big and will have to be dropped anyway (unmaintained, known security issues)
rm -rf /usr/lib*/libmfxhw*.so.* /usr/lib*/mfx/

# Remove some large locales to save space
rm -rf /usr/{lib,share}/locale/{a,b,c,d,f,g,h,i,j,k,l,m,n,o,p,r,s,t,u,v,w,z}*
rm -rf /usr/{lib,share}/locale/{el,en_A,en_B,en_C,en_D,en_G,en_H,en_I,en_N,en_P,en_S,en_Z,eo,es,et,eu}*
rm -rf /usr/share/qt5/translations/*_{ca,cs,da,es,it,ja,fi,hu,id,ko,nl,pl,pr_BR,tr,ro,ru,sk,sr,sv,uk,vi,cmn_TW,zh}*
zypper --non-interactive rm yast2-trans-{uk,sv,ru,ja,da,cs,sr,vi} || :

# Some packages really exaggerate here
rm -rf /usr/share/doc/packages/*
rm -rf /usr/share/licenses/*

# Save more than 150 MiB by removing this, not very useful for lives
rm -rf /lib/firmware/{amdgpu/{gc_,isp,psp}*,amdnpu,liquidio,netronome,qcom,qca,qed,mrvl,mellanox,cypress,dpaa2,bnx2x,cxgb4,intel/vsc,intel/ipu,ueagle-atm,xe}

# the new, optional nvidia gsp firmware blobs are huge - ~ 70MB
find /lib/firmware/nvidia -name gsp | xargs -r rm -rf 

# the new nvidia firmware isn't wired up yet
#find /usr/lib/firmware/nvidia/* -type f,l -name '*570.144*' | xargs rm -rf

# Remove the mellanox kernel drivers (firmware is removed too)
rm -rf /lib*/modules/*/kernel/drivers/net/ethernet/mellanox

# The gems are unpackaged already, no need to store them twice
rm -rf /usr/lib*/ruby/gems/*/cache/

## Decompress kernel modules, better for squashfs (boo#1192457)
find /lib/modules/*/kernel -name '*.ko.xz' -exec xz -d {} +
find /lib/modules/*/kernel -name '*.ko.zst' -exec zstd --rm -d {} +
depmod $(basename /lib/modules/*)

# Not needed, boo#1166406
rm -f /boot/vmlinux*.[gx]z /lib/modules/*/vmlinux*.[gx]z
# Also not needed
rm -f /boot/System.map-* /lib/modules/*/System.map

# Remove the zypper locks needed for a slimmer system
zypper rl $(seq 1 $(zypper ll | wc -l))

# Create fstab if it doesn't exist (Work around boo#1185815)
#cat << EOF >> /etc/fstab
#tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
#EOF

cat >/etc/systemd/system/fixupbootloader.service <<EOF
# boo#1155545 - LOADER_TYPE has to be nil for the upgrade to work properly.
# Kiwi does not allow changing the file directly, so do it in this ugly way.
[Unit]
Description=Remove LOADER_TYPE from /etc/sysconfig/bootloader
Before=systemd-user-sessions.service

[Service]
Type=oneshot
ExecStart=/usr/bin/gawk -i inplace '!/^LOADER_TYPE=/' /etc/sysconfig/bootloader

[Install]
WantedBy=multi-user.target
EOF

systemctl -f enable fixupbootloader.service

ln -s /usr/lib/systemd/system/graphical.target /etc/systemd/system/default.target

# Disable recommends
sed -i 's/.*solver.onlyRequires.*/solver.onlyRequires = true/g' /etc/zypp/zypp.conf
# Disable installing documentation
#sed -i 's/.*rpm.install.excludedocs.*/rpm.install.excludedocs = yes/g' /etc/zypp/zypp.conf
# Allow vendor change
sed -i 's/.*solver.allowVendorChange.*/solver.allowVendorChange = true/g' /etc/zypp/zypp.conf
# Allow dup vendor change
sed -i 's/.*solver.dupAllowVendorChange.*/solver.dupAllowVendorChange = true/g' /etc/zypp/zypp.conf

# install browser
rpm -i /mullvad-browser.rpm
rm /mullvad-browser.rpm

## workaround xdg not respecting term value
ln -s /usr/bin/foot /usr/bin/gnome-terminal

# disable connection check
cat >/etc/NetworkManager/conf.d/20-connectivity.conf <<EOF
[connectivity]
uri=""
enabled=false
interval=0
EOF

## fix mpv not finding openh
ln -s /usr/lib64/libopenh264.so.8 /usr/lib64/libopenh264.so.7

# setup autologin so we don't have to install a DM
mkdir -p /etc/systemd/system/getty@tty1.service.d
sh -c "cat <<\EOF > /etc/systemd/system/getty@tty1.service.d/autologin.conf
[Service]
ExecStart=
ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin linux %I \$TERM
EOF"

# labwc user service
cat >/etc/systemd/user/labwc.service <<EOF
[Unit]
Description=labwc
[Service]
ExecStart=/bin/sh -lc /usr/bin/labwc 
[Install]
WantedBy=default.target
EOF

# link labwc user service
mkdir -p /home/linux/.config/systemd/user/default.target.wants/
ln -s /etc/systemd/user/labwc.service /home/linux/.config/systemd/user/default.target.wants/labwc.service

## labwc and waybar configs
mkdir -p /home/linux/.config/{labwc,waybar}

cat >/home/linux/.config/labwc/autostart <<EOF
waybar >/dev/null 2>&1 &
swaybg -i /usr/share/wallpapers/old1-default-1920x1080.jpg >/dev/null 2>&1 &
sh -c 'sleep 3;exec /usr/libexec/polkit-gnome-authentication-agent-1' >/dev/null 2>&1 &
sh -c 'sleep 5;exec foot --title="Welcome" -w 770x550 -e nano --zero /home/linux/.local/share/welcome.txt' &
EOF

cat >/home/linux/.config/labwc/environment <<EOF
WLR_RENDERER=vulkan
NOUVEAU_USE_ZINK=1
GTK_THEME=Dragon
SDL_VIDEODRIVER=wayland,x11
SDL_VIDEO_DRIVER=wayland,x11
GTK_A11Y=none
NO_AT_BRIDGE=1
MOZ_ENABLE_WAYLAND=1
XCURSOR_SIZE=24
XCURSOR_THEME=Adwaita
EOF

cat >/home/linux/.config/labwc/rc.xml <<EOF
<?xml version="1.0"?>
<labwc_config>
  <core>
    <gap>0</gap>
    <adaptiveSync>yes</adaptiveSync>
    <allowTearing>yes</allowTearing>
  </core>
  <theme>
    <name>Dragon</name>
    <cornerRadius>0</cornerRadius>
  </theme>
  <keyboard>
    <default />
    <!-- Use a different terminal emulator -->
    <keybind key="W-Return">
      <action name="Execute" command="foot" />
    </keybind>
    <!--
      Remove a previously defined keybind
      A shorter alternative is <keybind key="W-F4" />
    -->
    <keybind key="W-F4">
      <action name="None" />
    </keybind>
    <keybind key="A-F3">
      <action name="Execute" command="wofi -S drun" />
    </keybind>
    <keybind key="W-s">
      <action name="Iconify" />
    </keybind>
    <keybind key="W-0">
      <action name="ShowMenu">
        <menu>start-menu</menu>
          <position>
            <x>0</x>
            <y>0</y>
          </position>
      </action>
    </keybind>
    <keybind key="W-Space">
      <action name="ShowMenu">
        <menu>start-menu</menu>
          <position>
            <x>0</x>
            <y>0</y>
          </position>
      </action>
    </keybind>
  </keyboard>
  <mouse>
    <default />
    <context name="Root">
      <mousebind button="Right" action="Press">
        <action name="ShowMenu" menu="start-menu" />
      </mousebind>
    <!-- unbind left click -->
       <mousebind button="Left" action="Press">
        <action name="None" />
      </mousebind>
    </context>
  </mouse>
  <libinput>
    <device category="default">
      <accelProfile>flat</accelProfile>
      <pointerSpeed>0.75</pointerSpeed>
    </device>
  </libinput>
  <menu>
    <showIcons>yes</showIcons>
  </menu>
</labwc_config>
EOF

cat >/home/linux/.config/labwc/menu.xml <<EOF
<openbox_menu>
<menu id="start-menu">
  <item label="Terminal">
    <action name="Execute" command="foot" />
  </item>
  <item label="Web Browser">
    <action name="Execute" command="mullvad-browser" />
  </item>
<menu id="" label="Programs" execute="/usr/bin/labwc-menu-generator -p -n -I -t foot" />
  <item label="Logout">
    <action name="Exit" />
  </item>
  <item label="Reboot">
    <action name="Execute" command="systemctl -i reboot" />
  </item>
  <item label="Poweroff">
    <action name="Execute" command="systemctl -i poweroff" />
  </item>
  <item label="Reconfigure">
    <action name="Reconfigure" />
  </item>
</menu>
</openbox_menu>
EOF

cat >/home/linux/.config/waybar/config <<EOF
{
    "layer": "top", // Waybar at top layer
    "position": "top", // Waybar position (top|bottom|left|right)
    "height": 26, // Waybar height (to be removed for auto height)
    "modules-left": [ "image", "wlr/taskbar" ],
    "modules-center": [ ],
    "modules-right": [ "tray", "network", "wireplumber", "clock" ],

    "wlr/taskbar": {
        "all-outputs": true,
        "format": "{icon} {title:.15}",
        "on-click": "minimize-raise",
        "tooltip": "{name}",
        "icon-size": 16
    },
    "image": {
        "path": "/usr/share/icons/hicolor/scalable/apps/labwc.svg",
        "on-click": "flock -n /tmp/1wofionly.lock -c '/usr/bin/wofi -S drun -W 250 -H 510 -l 1 -I'",
        "tooltip": false,
        "size": 24
    },
    "custom/start": {
        "format": "  ",
        "exec‐on‐event": false,
        "on-click": "wtype -M win -k 0 -m win",
        "interval": "once",
        "tooltip": false,
        "font-size": 18,
        "icon-size": 18
    },
    "tray": {
        "spacing": 5
    },
    "clock": {
        "format": "{:%H:%M  %e %b}",
        "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
        "today-format": "<b>{}</b>",
    },
    "network": {
        // "interface": "wlan0", // (Optional) To force the use of this interface,
        "format-wifi": "  {essid}",
        "format-ethernet": "",
        "format-linked": "{ifname} (No IP) ",
        "format-disconnected": "",
        "format-alt": "{ifname}: {ipaddr}/{cidr}",
        "family": "ipv4",
        "tooltip-format-wifi": "  {ifname} @ {essid}\nIP: {ipaddr}\nStrength: {signalStrength}%\nFreq: {frequency}MHz\n {bandwidthUpBits} 
{bandwidthDownBits}",
        "tooltip-format-ethernet": " {ifname}\nIP: {ipaddr}\n {bandwidthUpBits}  {bandwidthDownBits}"
    },
    "wireplumber": {
        "format": "{icon} {volume}%",
        "format-muted": "",
        "on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
        "on-click-right": "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle",
        "format-icons": {
            "default": ["", "", ""]
        },
        },
}
EOF

cat >/home/linux/.config/waybar/style.css <<EOF
@define-color foreground #eff0f1;
@define-color foreground-inactive #7f8c8d;
@define-color background #232629;
@define-color background-alt #31363b;
@define-color task-active #676971;
* {
    font-family:  "Cantarell", "Font Awesome 6 Free Solid";
    font-size: 14px;
    border-radius: 3;
    padding: 0;
    margin: 0;
}
#waybar {
    color: @foreground;
    background-color: @background;
}
#taskbar {
    padding: 0;
    margin-left: 0.15em;
    margin-right: 0.15em;
}
#taskbar button {
    background-color: @background-alt ;
    padding-left: 2px;
    padding-right: 2px;
    margin-left: 0.1em;
    margin-right: 0.1em;
}
#taskbar button.active {
    background-color: #676971;
}
#clock {
    background-color: @background-alt;
    padding-left: 0.5em;
    padding-right: 0.5em;
    margin-left: 0.15em;
    margin-right: 0.0em;
}
#custom-start {
    background-color: @background-alt;
    font-size: 20px;
    padding-left: 0.5em;
    padding-right: 0.5em;
    margin-left: 0.0em;
    margin-right: 0.0em;
}
#battery,
#cpu,
#custom-layout,
#memory,
#mode,
#network,
#pulseaudio,
#temperature,
#network,
#wireplumber,
#tray,
#image  {
    background-color: @background-alt;
    padding-left: 0.5em;
    padding-right: 0.5em;
    margin-left: 0.15em;
    margin-right: 0.15em;
}
*:hover {
    box-shadow: inset 0 1px @foreground-inactive;
}
EOF

# wofi config
mkdir -p /home/linux/.config/wofi
cat >/home/linux/.config/wofi/config <<EOF
image_size=24
single_click=true
#hide_search=true
#sort_order=alphabetical
#layer=overlay
EOF

# fix order of wofi menu items
mkdir -p /home/linux/.cache
cat >/home/linux/.cache/wofi-drun <<EOF
1000 /usr/share/applications/foot.desktop
900 /usr/share/applications/thunar.desktop
800 /usr/share/applications/mullvad-browser.desktop
700 /usr/share/applications/mpv.desktop
600 /usr/share/applications/sol.desktop
525 /usr/share/applications/org.xfce.mousepad.desktop
500 /usr/share/applications/galculator.desktop
400 /usr/share/applications/engrampa.desktop
300 /usr/share/applications/labwc-tweaks-gtk.desktop
250 /usr/share/applications/btop.desktop
200 /usr/share/applications/org.gnome.DiskUtility.desktop
150 /usr/share/applications/su-thunar.desktop
EOF

## disable some gvfs Automounts
sed -i 's/AutoMount=.*/AutoMount=false/g' /usr/share/gvfs/mounts/network.mount
sed -i 's/AutoMount=.*/AutoMount=false/g' /usr/share/gvfs/mounts/nfs.mount
sed -i 's/AutoMount=.*/AutoMount=false/g' /usr/share/gvfs/mounts/trash.mount
#sed -i 's/AutoMount=.*/AutoMount=false/g' /usr/share/gvfs/mounts/gphoto2.mount
rm -rf /usr/share/gvfs/remote-volume-monitors/{gphoto2.monitor,mtp.monitor}

## nano desktop entry
cat >/usr/share/applications/nano.desktop <<EOF
[Desktop Entry]
Name=Nano
GenericName=Text Editor
Comment=Edit text files in a terminal
Icon=text-x-generic
Type=Application
Categories=Utility;TextEditor;
Keywords=text;editor;terminal;
Exec=nano -l %F
StartupNotify=false
Terminal=true
NoDisplay=true
MimeType=text/plain;application/xml;text/html;text/css;
EOF

## add superuser thunar for system rescue convenience
cat >/usr/share/applications/su-thunar.desktop <<EOF
[Desktop Entry]
Name=Thunar Superuser
Comment=Root file manager
GenericName=Root File Manager
Keywords=file manager;explorer;finder;browser;folders;directory;directories;partitions;drives;network;devices;rename;move;copy;delete;permissions;home;trash;
Exec=thunar admin:///
Icon=org.xfce.thunar
Terminal=false
StartupNotify=false
Type=Application
Categories=System;Core;GTK;FileManager;
MimeType=inode/directory;
EOF

## add wlogout entry
cat >/usr/share/applications/wlogout.desktop <<EOF
[Desktop Entry]
Name=Logout
Comment=Logout or Reboot
GenericName=Logout
Keywords=
Exec=wlogout
Icon=labwc-symbolic
Terminal=false
StartupNotify=false
Type=Application
Categories=System;
EOF

## set default mime apps, probably overkill but in the name of convenience
cat >/home/linux/.config/mimeapps.list <<EOF
[Default Applications]
text/plain=nano.desktop
application/xml=nano.desktop
text/css=nano.desktop
text/x-chdr=nano.desktop
text/x-csrc=nano.desktop
text/x-c++hdr=nano.desktop
text/x-c++src=nano.desktop
text/x-java=nano.desktop
text/x-dsrc=nano.desktop
text/x-pascal=nano.desktop
text/x-perl=nano.desktop
text/x-python=nano.desktop
application/x-php=nano.desktop
application/x-httpd-php3=nano.desktop
application/x-httpd-php4=nano.desktop
application/x-httpd-php5=nano.desktop
application/x-zerosize=nano.desktop
application/xml=nano.desktop
text/html=nano.desktop
text/x-sql=nano.desktop
text/x-diff=nano.desktop
image/jpeg=mullvad-browser.desktop
image/png=mullvad-browser.desktop
image/svg=mullvad-browser.desktop
video/webm=mpv.desktop
audio/mpeg=mpv.desktop
audio/mp4=mpv.desktop
video/mp4=mpv.desktop
application/pdf=mullvad-browser.desktop
EOF

## "Edit as Root" for thunar
mkdir -p /home/linux/.config/Thunar/
cat >/home/linux/.config/Thunar/uca.xml <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<actions>
<action>
	<icon>utilities-terminal</icon>
	<name>Open Terminal Here</name>
	<submenu></submenu>
	<command>foot -D %f</command>
	<description>open terminal in current directory</description>
	<range></range>
	<patterns>*</patterns>
	<startup-notify/>
	<directories/>
</action>
<action>
	<icon></icon>
	<name>Edit as Root</name>
	<submenu></submenu>
	<command>foot --title="%n - su:nano" -e pkexec /usr/bin/nano %F</command>
	<description>superuser nano</description>
	<range>*</range>
	<patterns>*</patterns>
	<other-files/>
	<text-files/>
</action>
</actions>
EOF

## wlogout config
rm -f /etc/wlogout/layout
cat << EOF >> /etc/wlogout/layout
{
    "label" : "logout",
    "action" : "labwc -e",
    "text" : "Logout",
    "keybind" : "e"
}
{
    "label" : "shutdown",
    "action" : "systemctl poweroff",
    "text" : "Shutdown",
    "keybind" : "s"
}
{
    "label" : "reboot",
    "action" : "systemctl reboot",
    "text" : "Reboot",
    "keybind" : "r"
}
EOF

## foot config
mkdir -p /etc/xdg/foot
cat >/etc/xdg/foot/foot.ini <<EOF
# -*- conf -*-
font=monospace:size=12
[scrollback]
lines=10000
[colors]
## DARK+ from gentoo wiki
foreground=cccccc
background=000000
regular0=000000 # black
regular1=cd3131 # red
regular2=0dbc79 # green
regular3=e5e510 # yellow
regular4=2472c8 # blue
regular5=bc3fbc # magenta
regular6=11a8cd # cyan
regular7=e5e5e5 # white
bright0=666666 # bright black
bright1=f14c4c # bright red
bright2=23d18b # bright green
bright3=f5f543 # bright yellow
bright4=3b8eea # bright blue
bright5=d670d6 # bright magenta
bright6=29b8db # bright cyan
bright7=e5e5e5 # bright white
EOF

# make nano colorful
cat >/home/linux/.nanorc <<EOF
#set linenumbers
#set breaklonglines
set atblanks
set softwrap
set titlecolor white,grey
set numbercolor white,grey
set statuscolor white,grey
set keycolor white,grey
set promptcolor red,black
include /usr/share/nano/*.nanorc
EOF
# make root's nano red
cp /home/linux/.nanorc /root/
sed -i 's/grey/red/g' /root/.nanorc

## Thunar prefs; have to recreate the file header
## show hidden and list view
mkdir -p /home/linux/.config/xfce4/xfconf/xfce-perchannel-xml
cat >/home/linux/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml <<EOF
<?xml version="1.1" encoding="UTF-8"?>

<channel name="thunar" version="1.0">
  <property name="last-view" type="string" value="ThunarDetailsView"/>
  <property name="last-show-hidden" type="bool" value="true"/>
</channel>

EOF

## hide clutterish .desktop entries
echo 'NoDisplay=true' >>/usr/share/applications/thunar-bulk-rename.desktop
echo 'NoDisplay=true' >>/usr/share/applications/thunar-settings.desktop
echo 'NoDisplay=true' >>/usr/share/applications/footclient.desktop
echo 'NoDisplay=true' >>/usr/share/applications/foot-server.desktop

## welcome notes -WIP
cat >/home/linux/.local/share/welcome.txt <<EOF
Notes:

- Change timezone with timedatectl. 'tldr timedatectl' for help. 
- Comment "GTK_THEME=" in ~/.config/labwc/environment to change the theme.
- Zypper defaults changed to "--no-recommends" and "--allow-vendor-change"
- Have a lot of fun!


Links:

Arch Linux installation guide
https://wiki.archlinux.org/title/Installation_guide
https://wiki.archlinux.org/title/Install_Arch_Linux_from_existing_Linux
https://wiki.cachyos.org/features/optimized_repos/

openSUSE expert installation guide
https://en.opensuse.org/openSUSE:Expert_Installation

Source of this LiveCD
https://build.opensuse.org/project/show/home:zeussuse:iso


Manual/Expert OS Installation Notes:

- Do NOT use a GUI tool to create the new root filesystem.
     You will encounter permission errors and a non-functional Dbus.
- Use mkfs.ext4/xfs/etc in a superuser terminal to create the "/" fs.


Arch AUR / makepkg
https://aur.archlinux.org/
https://wiki.archlinux.org/title/Makepkg
https://wiki.archlinux.org/title/DeveloperWiki:Building_in_a_clean_chroot

Needed packages for AUR building:
devtools binutils systemd-container git curl
Install devtools with opi.

Installed software:
labwc
waybar
wofi
thunar
foot
mpv
nano
swaybg
swayimg
engrampa
galculator
aisleriot
gnome-disk-util
btop
pacman
arch-install-scripts
EOF

## give root's thunar the user's configs
mkdir -p /root/.config
cp -r /home/linux/.config/xfce4 /root/.config/
cp -r /home/linux/.config/Thunar /root/.config/

## install tealdeer pages
mkdir -p /home/linux/.cache/tealdeer/tldr-pages/pages/
tar -xf /tldr-pages.tar.gz --directory=/home/linux/.cache/tealdeer/tldr-pages/pages/
rm -rf /home/linux/.cache/tealdeer/tldr-pages/pages/{android,freebsd,openbsd,sunos,windows,LICENSE.md,netbsd,osx}
rm -rf /tldr-pages.tar.gz
mkdir -p /root/.cache
ln -s /home/linux/.cache/tealdeer /root/.cache/

## set the theme for more consistency out of box.
su linux -c "gsettings set org.gnome.desktop.interface gtk-theme 'Dragon'"
## disable automounting
su linux -c "gsettings set org.gnome.desktop.media-handling automount false"
su linux -c "gsettings set org.gnome.desktop.media-handling automount-open false"
## set default browser
su linux -c "xdg-settings set default-web-browser mullvad-browser.desktop"

## add commented repos to pacman.conf
cat >> /etc/pacman.conf <<EOF

# cachyos repos:

#[cachyos-v3]
#Include = /etc/pacman.d/cachyos-v3-mirrorlist
#[cachyos-core-v3]
#Include = /etc/pacman.d/cachyos-v3-mirrorlist
#[cachyos-extra-v3]
#Include = /etc/pacman.d/cachyos-v3-mirrorlist

#[cachyos-v4]
#Include = /etc/pacman.d/cachyos-v4-mirrorlist
#[cachyos-core-v4]
#Include = /etc/pacman.d/cachyos-v4-mirrorlist
#[cachyos-extra-v4]
#Include = /etc/pacman.d/cachyos-v4-mirrorlist

#[cachyos]
#Include = /etc/pacman.d/cachyos-mirrorlist


# Artix repos

#[system]
#Include = /etc/pacman.d/artix-mirrorlist
#[world]
#Include = /etc/pacman.d/artix-mirrorlist
#[galaxy]
#Include = /etc/pacman.d/artix-mirrorlist
#[lib32]
#Include = /etc/pacman.d/artix-mirrorlist


# https://wiki.archlinux.org/title/Unofficial_user_repositories

EOF

## run ldconfig for good measure
/sbin/ldconfig

chown -R linux /home/linux

chkstat --system --set

exit 0
openSUSE Build Service is sponsored by