#!/bin/bash

. /etc/lsb-release

################################################################################
## fix sources list
################################################################################

# grab source.lists file
logger -t late-command "getting original sources.list"
wget -qO - https://gitlab.com/morph027/preseed-cinnamon-ubuntu/raw/${DISTRIB_CODENAME}/sources.list | sed "s,##DISTCODENAME##,${DISTRIB_CODENAME},g" > /etc/apt/sources.list

# add extras.ubuntu.com gpg key
logger -t late-command "getting key 16126D3A3E5C1192"
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 16126D3A3E5C1192

# nemo-extensions
curl -sL -o /etc/apt/trusted.gpg.d/morph027-nemo-extensions.asc https://packaging.gitlab.io/nemo-extensions/gpg.key
echo "deb [arch=amd64] https://packaging.gitlab.io/nemo-extensions $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/morph027-nemo-extensions.list

# refresh package lists
logger -t late-command "refresh package lists"
apt-get update

################################################################################
## install additional packages
################################################################################

logger -t late-command "installing additional packages"

apt-get -y install \
 	cinnamon \
 	cinnamon-session \
  gnome-software-plugin-flatpak \
 	nemo \
 	nemo-fileroller \
 	nemo-gtkhash \
 	nemo-image-converter \
 	nemo-preview \
 	nemo-seahorse \
 	nemo-share \
 	nemo-nextcloud \
  arc-theme \
  papirus-icon-theme \
  zram-config

################################################################################
## enable boot services
################################################################################

systemctl enable zram-config

################################################################################
## remove unwanted packages (unable to exclude them in preseed)
################################################################################

apt-get -y purge \
	lxd \
  gnome-session-bin \
  gnome-session-common \
  gdm \
  multipath-tools

################################################################################
## fix network-manager
################################################################################

logger -t late-command "fixing network-manager"

cat > /etc/network/interfaces << EOF
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

EOF

################################################################################
## fix shutdown menu
################################################################################

logger -t late-command "fixing shutdown menu"

cat > /usr/share/glib-2.0/schemas/org.cinnamon.desktop.session.gschema.override << EOF
[org.cinnamon.desktop.session]
settings-daemon-uses-logind=true
session-manager-uses-logind=true
EOF

glib-compile-schemas /usr/share/glib-2.0/schemas

################################################################################
## set cinnamon as default session
################################################################################

logger -t late-command "make cinnamon default"

cat > /usr/share/lightdm/lightdm.conf.d/50-cinnamon.conf << EOF
[SeatDefaults]
user-session=cinnamon
EOF

################################################################################
## set nemo as default filebrowser
################################################################################

logger -t late-command "make nemo default"

mkdir -p /etc/skel/.local/share/applications
cat > /etc/skel/.local/share/applications/mimeapps.list << EOF

[Default Applications]
inode/directory=nemo.desktop
application/x-gnome-saved-search=nemo.desktop
EOF

logger -t late-command "remove nautilus"

apt-get purge nautilus -y

################################################################################
## dconf settings
################################################################################

# enable custom presets

mkdir -p /etc/dconf/profile/
cat > /etc/dconf/profile/user << EOF
user-db:user
system-db:local
EOF

mkdir -p /etc/dconf/db/local.d

# trayicon for language

cat > /etc/dconf/db/local.d/01-ibus-indicator << EOF
[desktop/ibus/panel]
show-icon-on-systray=false

[org/gnome/libgnomekbd/keyboard]
layouts=['de', 'us\talt-intl']
EOF

# theming

cat > /etc/dconf/db/local.d/01-theme << EOF
[org/cinnamon]
enabled-applets=['panel1:left:0:menu@cinnamon.org:0', 'panel1:left:1:show-desktop@cinnamon.org:1', 'panel1:left:2:grouped-window-list@cinnamon.org:2', 'panel1:right:0:systray@cinnamon.org:3', 'panel1:right:1:xapp-status@cinnamon.org:4', 'panel1:right:2:notifications@cinnamon.org:5', 'panel1:right:4:removable-drives@cinnamon.org:7', 'panel1:right:5:keyboard@cinnamon.org:8', 'panel1:right:6:network@cinnamon.org:9', 'panel1:right:7:sound@cinnamon.org:10', 'panel1:right:8:power@cinnamon.org:11', 'panel1:right:9:calendar@cinnamon.org:12']

[org/cinnamon/theme]
name='Arc-Dark'

[org/cinnamon/desktop/interface]
icon-theme='Papirus'
gtk-theme='Arc-Darker'

[org/cinnamon/desktop/background]
picture-uri='file:///usr/share/backgrounds/Ubuntu_80s_glitch_by_Abubakar_NK.jpg'
picture-options='zoom'

[org/cinnamon/desktop/slideshow]
image-source='xml:///usr/share/gnome-background-properties/eoan-wallpapers.xml'

[org/cinnamon/desktop/wm/preferences]
theme='Arc-Darker'

EOF

# finally apply

dconf update

################################################################################
## cleanup
################################################################################

logger -t late-command "cleanup"

apt-get autoremove -y
apt-get clean

################################################################################
## tweaks
################################################################################

## bashrc

# color prompt
sed -i 's,^#force_color_prompt,force_color_prompt,' /etc/skel/.bashrc /home/morph/.bashrc
# add to root user, red prompt
sed 's,01;32m,01;31m,' /etc/skel/.bashrc > /root/.bashrc

################################################################################
## user settings
################################################################################
