OSDN Git Service

2020.05.14 update
[rebornos/cnchi-gnome-osdn.git] / Cnchi / postinstall.sh
1 #!/usr/bin/bash
2 # -*- coding: utf-8 -*-
3 #
4 #  postinstall.sh
5 #
6 #  Copyright © 2013-2016 Antergos
7 #
8 # Modifications by Rafael from RebornOS in 2020
9 #
10 #  This file is part of Cnchi.
11 #
12 #  Cnchi is free software; you can redistribute it and/or modify
13 #  it under the terms of the GNU General Public License as published by
14 #  the Free Software Foundation; either version 3 of the License, or
15 #  (at your option) any later version.
16 #
17 #  Cnchi is distributed in the hope that it will be useful,
18 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
19 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20 #  GNU General Public License for more details.
21 #
22 #  The following additional terms are in effect as per Section 7 of the license:
23 #
24 #  The preservation of all legal notices and author attributions in
25 #  the material or in the Appropriate Legal Notices displayed
26 #  by works containing it is required.
27 #
28 #  You should have received a copy of the GNU General Public License
29 #  along with Cnchi; If not, see <http://www.gnu.org/licenses/>.
30 #
31 # Set xorg config files
32 set_xorg_touchpad() {
33     cp /usr/share/cnchi/scripts/postinstall/50-synaptics.conf ${CN_DESTDIR}/etc/X11/xorg.conf.d/50-synaptics.conf
34     cp /usr/share/cnchi/scripts/postinstall/99-killX.conf ${CN_DESTDIR}/etc/X11/xorg.conf.d/99-killX.conf
35
36     # Fix sensitivity for chromebooks
37     if lsmod | grep -q cyapa; then
38         cp /usr/share/cnchi/scripts/postinstall/50-cros-touchpad.conf ${CN_DESTDIR}/etc/X11/xorg.conf.d/50-cros-touchpad.conf
39     fi
40 }
41
42 set_xscreensaver() {
43     # xscreensaver config
44     cp /usr/share/cnchi/scripts/postinstall/xscreensaver ${CN_DESTDIR}/home/${CN_USER_NAME}/.xscreensaver
45     cp ${CN_DESTDIR}/home/${CN_USER_NAME}/.xscreensaver ${CN_DESTDIR}/etc/skel
46
47     if [[ -f ${CN_DESTDIR}/etc/xdg/autostart/xscreensaver.desktop ]]; then
48         rm ${CN_DESTDIR}/etc/xdg/autostart/xscreensaver.desktop
49     fi
50 }
51
52 set_gsettings() {
53     # Set gsettings input-source
54     CN_KEYBOARD=""
55     CN_INPUT_SCHEMA="${CN_DESTDIR}/usr/share/glib-2.0/schemas/90_rebornos.input-sources.gschema.override"
56     if [[ "${CN_KEYBOARD_LAYOUT}" != '' ]]; then
57         if [[ "${CN_KEYBOARD_VARIANT}" != '' ]]; then
58             CN_KEYBOARD=${CN_KEYBOARD_LAYOUT}+${CN_KEYBOARD_VARIANT}
59         else
60             CN_KEYBOARD=${CN_KEYBOARD_LAYOUT}
61         fi
62         echo "[org.cinnamon.desktop.input-sources]" > ${CN_INPUT_SCHEMA}
63         echo "sources=[('xkb','${CN_KEYBOARD}')]" >> ${CN_INPUT_SCHEMA}
64         echo " " >> ${CN_INPUT_SCHEMA}
65         echo "[org.gnome.desktop.input-sources]" >> ${CN_INPUT_SCHEMA}
66         echo "sources=[('xkb','${CN_KEYBOARD}')]" >> ${CN_INPUT_SCHEMA}
67     fi
68
69     # Set default Internet browser
70     for CN_SCHEMA_OVERRIDE in ${CN_DESTDIR}/usr/share/glib-2.0/schemas/90_rebornos*; do
71         if [ "${CN_BROWSER}" != "" ]; then
72             sed -i "s|chromium|${CN_BROWSER}|g" "${CN_SCHEMA_OVERRIDE}"
73         else
74             sed -i "s|'chromium.desktop',||g" "${CN_SCHEMA_OVERRIDE}"
75         fi
76     done
77
78     glib-compile-schemas "${CN_DESTDIR}/usr/share/glib-2.0/schemas"
79 }
80
81 set_dmrc() {
82     # Set session in .dmrc
83     echo "[Desktop]" > ${CN_DESTDIR}/home/${CN_USER_NAME}/.dmrc
84     echo "Session=$1" >> ${CN_DESTDIR}/home/${CN_USER_NAME}/.dmrc
85     chroot ${CN_DESTDIR} chown ${CN_USER_NAME}:users /home/${CN_USER_NAME}/.dmrc
86 }
87
88 common_settings() {
89     # Set skel directory (not needed, antergos-desktop-settings does this)
90     #cp -R ${CN_DESTDIR}/home/${CN_USER_NAME}/.config ${CN_DESTDIR}/etc/skel
91
92     # Set .bashrc (antergos-desktop-settings can't set it because it's already in bash package)
93     if [[ -f "${CN_DESTDIR}/etc/skel/bashrc" ]]; then
94         cp ${CN_DESTDIR}/etc/skel/bashrc ${CN_DESTDIR}/etc/skel/.bashrc
95         cp ${CN_DESTDIR}/etc/skel/bashrc ${CN_DESTDIR}/home/${CN_USER_NAME}/.bashrc
96     fi
97
98     # Setup root defaults
99     cp -R ${CN_DESTDIR}/etc/skel/. ${CN_DESTDIR}/root
100 }
101
102 gnome_settings() {
103     set_gsettings
104     set_xscreensaver
105
106     set_dmrc gnome
107 }
108
109 cinnamon_settings() {
110     set_gsettings
111     set_xscreensaver
112
113     # Copy menu@cinnamon.org.json to set menu icon
114     mkdir -p ${CN_DESTDIR}/home/${CN_USER_NAME}/.cinnamon/configs/menu@cinnamon.org/
115     cp -f /usr/share/cnchi/scripts/postinstall/menu@cinnamon.org.json ${CN_DESTDIR}/home/${CN_USER_NAME}/.cinnamon/configs/menu@cinnamon.org/
116
117     # Copy panel-launchers@cinnamon.org.json to set launchers
118     PANEL_LAUNCHER="/usr/share/cnchi/scripts/postinstall/panel-launchers@cinnamon.org.json"
119     if [[ firefox = "${CN_BROWSER}" ]]; then
120         sed -i 's|chromium|firefox|g' ${PANEL_LAUNCHER}
121     elif [ "${CN_BROWSER}" == "" ]; then
122         sed -i 's|"chromium.desktop",||g' ${PANEL_LAUNCHER}
123     fi
124
125     mkdir -p ${CN_DESTDIR}/home/${CN_USER_NAME}/.cinnamon/configs/panel-launchers@cinnamon.org/
126     cp -f /usr/share/cnchi/scripts/postinstall/panel-launchers@cinnamon.org.json ${CN_DESTDIR}/home/${CN_USER_NAME}/.cinnamon/configs/panel-launchers@cinnamon.org/
127
128     set_dmrc cinnamon
129 }
130
131 xfce_settings() {
132     set_gsettings
133     set_xscreensaver
134
135     # Set XFCE settings
136     mkdir -p ${CN_DESTDIR}/home/${CN_USER_NAME}/.config/xfce4/xfconf/xfce-perchannel-xml
137     cp -R ${CN_DESTDIR}/etc/xdg/xfce4/panel ${CN_DESTDIR}/etc/xdg/xfce4/helpers.rc ${CN_DESTDIR}/home/${CN_USER_NAME}/.config/xfce4
138
139     HELPERS_RC="${CN_DESTDIR}/home/${CN_USER_NAME}/.config/xfce4/helpers.rc"
140     if [[ ${CN_BROWSER} = "chromium" ]]; then
141         sed -i "s/WebBrowser=firefox/WebBrowser=chromium/" ${HELPERS_RC}
142     elif [ "${CN_BROWSER}" == "" ]; then
143         sed -i "s/WebBrowser=firefox//" ${HELPERS_RC}
144     fi
145
146     set_dmrc xfce
147
148     # Add lxpolkit to autostart apps
149     cp /etc/xdg/autostart/lxpolkit.desktop ${CN_DESTDIR}/home/${CN_USER_NAME}/.config/autostart
150 }
151
152 openbox_settings() {
153     set_gsettings
154     set_xscreensaver
155
156     set_dmrc openbox
157
158     # Set Numix theme in oblogout
159     if [[ -f /etc/oblogout.conf ]]; then
160         sed -i 's|buttontheme = oxygen|buttontheme = Numix|g' "${CN_DESTDIR}/etc/oblogout.conf"
161     fi
162 }
163
164 kde_settings() {
165     set_gsettings
166     set_xscreensaver
167
168     set_dmrc kde-plasma
169
170     # Force QtCurve to use our theme
171     rm -R ${CN_DESTDIR}/usr/share/kstyle/themes/qtcurve.themerc
172
173     # Setup user defaults
174     #if [ -f "${CN_DESTDIR}/usr/share/antergos-kde-setup/install.sh" ]; then
175     #    chroot ${CN_DESTDIR} /usr/share/antergos-kde-setup/install.sh ${CN_USER_NAME}
176     #elif [ -f "${CN_DESTDIR}/usr/share/antergos-desktop" ]; then
177     #    chroot ${CN_DESTDIR} /usr/bin/antergos-desktop plasma ${CN_USER_NAME}
178     #fi
179
180     cp ${CN_DESTDIR}/etc/skel/.gtkrc-2.0-kde4 ${CN_DESTDIR}/root
181     chroot ${CN_DESTDIR} "ln -s /root/.gtkrc-2.0-kde4 /root/.gtkrc-2.0"
182
183     # Set default directories
184     chroot ${CN_DESTDIR} su -c xdg-user-dirs-update ${CN_USER_NAME}
185 }
186
187 mate_settings() {
188     set_gsettings
189     set_xscreensaver
190
191     set_dmrc mate
192
193     # Set MintMenu Favorites
194     APP_LIST="/usr/share/cnchi/scripts/postinstall/applications.list"
195     if [[ "${CN_BROWSER}" = 'firefox' ]]; then
196         sed -i 's|chromium|firefox|g' ${APP_LIST}
197     elif [ "${CN_BROWSER}" == "" ]; then
198         sed -i 's|location:/usr/share/applications/chromium.desktop||g' ${APP_LIST}
199     fi
200
201     cp ${APP_LIST} "${CN_DESTDIR}/usr/lib/linuxmint/mintMenu/applications.list"
202
203     # Work-around for bug in mate-panel - Fixed now in line 501 (Rafael from RebornOS)
204     #CN_POST_INSTALL_DIR=/usr/share/cnchi/scripts/postinstall
205     #CN_HOTFIX_SCRIPT="${CN_POST_INSTALL_DIR}/first-boot-hotfix.sh"
206     #CN_HOTFIX_DESKTOP="${CN_POST_INSTALL_DIR}/first-boot-hotfix.desktop"
207     #cp "${CN_HOTFIX_SCRIPT}" "${CN_DESTDIR}/usr/bin"
208     #mkdir -p "${CN_DESTDIR}/home/${CN_USER_NAME}/.config/autostart"
209     #cp "${CN_HOTFIX_DESKTOP}" "${CN_DESTDIR}/home/${CN_USER_NAME}/.config/autostart"
210     #chmod +x "${CN_DESTDIR}/usr/bin/first-boot-hotfix.sh"
211 }
212
213 nox_settings() {
214     echo "Done"
215 }
216
217 # Experimental DE's
218
219 lxqt_settings() {
220     set_gsettings
221     set_xscreensaver
222
223     set_dmrc razor
224 }
225
226 #enlightenment_settings() {
227 #    set_gsettings
228 #    set_xscreensaver
229
230     # http://git.enlightenment.org/core/enlightenment.git/plain/data/tools/enlightenment_remote
231
232     # Setup user defaults
233     #chroot ${CN_DESTDIR} /usr/share/antergos-enlightenment-setup/install.sh ${CN_USER_NAME}
234     #chroot ${CN_DESTDIR} /usr/bin/antergos-desktop enlightenment ${CN_USER_NAME}
235
236     # Set Keyboard layout
237 #    E_CFG="/home/${CN_USER_NAME}/.e/e/config/standard/e.cfg"
238 #    E_SRC="/home/${CN_USER_NAME}/.e/e/config/standard/e.src"
239
240 #    ${CN_DESTDIR}/usr/bin/eet -d ${E_CFG} config ${E_SRC}
241 #    sed -i 's/"us"/"${CN_KEYBOARD_LAYOUT}"/' ${E_SRC}
242 #    if [[ "${CN_KEYBOARD_VARIANT}" != '' ]]; then
243 #        sed -i 's/"basic"/"${CN_KEYBOARD_VARIANT}"/' ${E_SRC}
244 #    fi
245 #    ${CN_DESTDIR}/usr/bin/eet -e ${E_CFG} config ${E_SRC} 1
246
247 #    set_dmrc enlightenment
248
249 #    echo "QT_STYLE_OVERRIDE=gtk" >> ${CN_DESTDIR}/etc/environment
250
251     # Add lxpolkit to autostart apps
252 #    cp /etc/xdg/autostart/lxpolkit.desktop ${CN_DESTDIR}/home/${CN_USER_NAME}/.config/autostart
253 #}
254
255 budgie_settings() {
256     set_gsettings
257     set_xscreensaver
258
259     set_dmrc budgie
260 }
261
262 i3_settings() {
263     set_gsettings
264     set_xscreensaver
265
266     set_dmrc i3
267 }
268
269 postinstall() {
270     # Specific user configurations
271     if [[ -f /usr/share/applications/firefox.desktop ]]; then
272         export CN_BROWSER=firefox
273     elif [[ -f /usr/share/applications/chromium.desktop ]]; then
274         export CN_BROWSER=chromium
275     else
276         export CN_BROWSER=""
277     fi
278
279     # Workaround for LightDM bug https://bugs.launchpad.net/lightdm/+bug/1069218
280     sed -i 's|UserAccounts|UserList|g' "${CN_DESTDIR}/etc/lightdm/users.conf"
281
282     ## Unmute alsa channels
283     #chroot "${CN_DESTDIR}" amixer -c 0 -q set Master playback 50% unmute
284
285     # Configure touchpad. Skip with base installs
286     if [[ "base" != "${CN_DESKTOP}" ]]; then
287         set_xorg_touchpad
288     fi
289
290     # Fix ugly styles for Qt applications when running under GTK-based desktops and Qt 5.7+
291     if [[ kde != "${CN_DESKTOP}" && lxqt != "${CN_DESKTOP}" ]]; then
292         mkdir -p "${CN_DESTDIR}/home/${CN_USER_NAME}/.config/qt5ct" "${CN_DESTDIR}/etc/skel/qt5ct"
293         cp /usr/share/cnchi/scripts/postinstall/qt5ct.conf "${CN_DESTDIR}/etc/skel/qt5ct"
294         cp /usr/share/cnchi/scripts/postinstall/qt5ct.conf "${CN_DESTDIR}/home/${CN_USER_NAME}/.config/qt5ct"
295     fi
296
297     # Monkey patch session wrapper
298     cp /usr/share/cnchi/scripts/postinstall/Xsession "${CN_DESTDIR}/etc/lightdm"
299     chmod +x "${CN_DESTDIR}/etc/lightdm/Xsession"
300
301     # Configure fontconfig
302     FONTCONFIG_FILE="/usr/share/cnchi/scripts/fonts.conf"
303     if [[ -f "${FONTCONFIG_FILE}" ]]; then
304         FONTCONFIG_DIR="${CN_DESTDIR}/home/${CN_USER_NAME}/.config/fontconfig"
305         mkdir -p "${FONTCONFIG_DIR}"
306         cp "${FONTCONFIG_FILE}" "${FONTCONFIG_DIR}"
307     fi
308
309     # Set RebornOS name in filesystem files
310     cp /etc/arch-release "${CN_DESTDIR}/etc/"
311     cp /etc/os-release "${CN_DESTDIR}/etc/"
312     sed -i 's|Arch|RebornOS|g' "${CN_DESTDIR}/etc/issue"
313
314     # Set common desktop settigns
315     common_settings
316
317     # Set desktop-specific settings
318     ${CN_DESKTOP}_settings
319
320     # Set some environment vars
321     env_files=("${CN_DESTDIR}/etc/environment"
322         "${CN_DESTDIR}/home/${CN_USER_NAME}/.bashrc"
323         "${CN_DESTDIR}/etc/skel/.bashrc"
324     "${CN_DESTDIR}/etc/profile")
325
326     for file in "${env_files[@]}"
327     do
328         echo "# ---> Added by Cnchi RebornOS Installer Gnome based <---" >> "${file}"
329         if [ "${CN_BROWSER}" != "" ]; then
330             echo "BROWSER=/usr/bin/${CN_BROWSER}" >> "${file}"
331         fi
332         echo "EDITOR=/usr/bin/nano" >> "${file}"
333         echo "# ---> End added by Cnchi RebornOS Installer Gnome based <---" >> "${file}"
334     done
335
336     # Uncomplicated Firewall Workaround (Rafael from RebornOS)
337     cp /usr/share/cnchi/gufw.svg ${CN_DESTDIR}/usr/share/icons/default/gufw.svg
338     cp /usr/share/cnchi/gufw.png ${CN_DESTDIR}/usr/share/icons/hicolor/48x48/apps/gufw.png
339     cp /usr/share/cnchi/gufw.desktop ${CN_DESTDIR}/usr/share/applications/gufw.desktop
340     
341     # reborn-mirrorlist permission change
342     chroot ${CN_DESTDIR} chmod 644 /etc/pacman.d/reborn-mirrorlist
343
344     # Configure makepkg so that it doesn't compress packages after building.
345     # Most users are building packages to install them locally so there's no need for compression.
346     sed -i "s|^PKGEXT='.pkg.tar.xz'|PKGEXT='.pkg.tar'|g" "${CN_DESTDIR}/etc/makepkg.conf"
347
348     # Set lightdm-webkit2-greeter in lightdm.conf. This should have been done here (not in the pkg) all along.
349     if [[ deepin = "${CN_DESKTOP}" ]]; then
350         rm ${CN_DESTDIR}/etc/lightdm/lightdm.conf
351         cp /etc/lightdm/lightdm.conf ${CN_DESTDIR}/etc/lightdm/
352         cp /usr/share/cnchi/flatpak.sh ${CN_DESTDIR}/usr/bin/
353         cp /usr/share/cnchi/pkcon.sh ${CN_DESTDIR}/usr/bin/
354         cp /usr/share/cnchi/pkcon2.sh ${CN_DESTDIR}/usr/bin/
355         cp /usr/share/cnchi/flatpak.desktop ${CN_DESTDIR}/usr/share/applications/
356         cp /usr/share/cnchi/update.desktop ${CN_DESTDIR}/etc/xdg/autostart/
357         cp /usr/share/cnchi/updating.sh ${CN_DESTDIR}/usr/bin/
358         cp /usr/share/cnchi/deepin-fix.sh ${CN_DESTDIR}/usr/bin/
359         cp /usr/share/cnchi/deepin-fix.service ${CN_DESTDIR}/etc/systemd/system/
360         chroot ${CN_DESTDIR} sudo systemctl enable deepin-fix.service
361         chroot ${CN_DESTDIR} systemctl enable earlyoom
362         chroot ${CN_DESTDIR} systemctl enable ufw
363     fi
364
365     if [[ gnome = "${CN_DESKTOP}" ]]; then
366         chroot ${CN_DESTDIR} systemctl -fq enable gdm
367         cp /usr/share/cnchi/flatpak.sh ${CN_DESTDIR}/usr/bin/
368         cp /usr/share/cnchi/pkcon.sh ${CN_DESTDIR}/usr/bin/
369         cp /usr/share/cnchi/pkcon2.sh ${CN_DESTDIR}/usr/bin/
370         cp /usr/share/cnchi/flatpak.desktop ${CN_DESTDIR}/usr/share/applications/
371         cp /usr/share/cnchi/update.desktop ${CN_DESTDIR}/etc/xdg/autostart/
372         cp /usr/share/cnchi/updating.sh ${CN_DESTDIR}/usr/bin/
373         echo "# ---> Added by Cnchi RebornOS Installer Gnome based for Gnome Desktop <---" >> ${CN_DESTDIR}/etc/environment
374         echo "QT_QPA_PLATFORMTHEME=qt5ct" >> ${CN_DESTDIR}/etc/environment
375         echo "# ---> End added by Cnchi RebornOS Installer Gnome based for Gnome Desktop <---" >> ${CN_DESTDIR}/etc/environment
376         chroot ${CN_DESTDIR} systemctl enable earlyoom
377         chroot ${CN_DESTDIR} systemctl enable ufw
378         cp /usr/share/cnchi/101_gnome.gschema.override ${CN_DESTDIR}/usr/share/glib-2.0/schemas/
379         chroot ${CN_DESTDIR} /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas
380     fi
381
382 #    if [[ apricity = "${CN_DESKTOP}" ]]; then
383 #        chroot ${CN_DESTDIR} systemctl -fq enable gdm
384 #        cp /usr/share/cnchi/flatpak.sh ${CN_DESTDIR}/usr/bin/
385 #        cp /usr/share/cnchi/pkcon.sh ${CN_DESTDIR}/usr/bin/
386 #        cp /usr/share/cnchi/pkcon2.sh ${CN_DESTDIR}/usr/bin/
387 #        cp /usr/share/cnchi/flatpak.desktop ${CN_DESTDIR}/usr/share/applications/
388 #        cp /usr/share/cnchi/update.desktop ${CN_DESTDIR}/etc/xdg/autostart/
389 #        cp /usr/share/cnchi/updating.sh ${CN_DESTDIR}/usr/bin/
390 #        echo "# ---> Added by Cnchi RebornOS Installer Gnome based for Apricity Desktop <---" >> ${CN_DESTDIR}/etc/environment
391 #        echo "QT_QPA_PLATFORMTHEME=qt5ct" >> ${CN_DESTDIR}/etc/environment
392 #        echo "# ---> End added by Cnchi RebornOS Installer Gnome based for Apricity Desktop <---" >> ${CN_DESTDIR}/etc/environment
393 #        chroot ${CN_DESTDIR} systemctl enable earlyoom
394 #        chroot ${CN_DESTDIR} systemctl enable ufw
395 #    fi
396
397     if [[ kde = "${CN_DESKTOP}" ]]; then
398         chroot ${CN_DESTDIR} systemctl -fq enable sddm
399         cp /usr/share/cnchi/sddm.conf ${CN_DESTDIR}/etc/
400         cp /usr/share/cnchi/flatpak.sh ${CN_DESTDIR}/usr/bin/
401         cp /usr/share/cnchi/pkcon.sh ${CN_DESTDIR}/usr/bin/
402         cp /usr/share/cnchi/pkcon2.sh ${CN_DESTDIR}/usr/bin/
403         cp /usr/share/cnchi/flatpak.desktop ${CN_DESTDIR}/usr/share/applications/
404         cp /usr/share/cnchi/update.desktop ${CN_DESTDIR}/etc/xdg/autostart/
405         cp /usr/share/cnchi/updating.sh ${CN_DESTDIR}/usr/bin/
406         chroot ${CN_DESTDIR} systemctl enable earlyoom
407         chroot ${CN_DESTDIR} systemctl enable ufw
408     fi
409
410     if [[ budgie = "${CN_DESKTOP}" ]]; then
411         chroot ${CN_DESTDIR} systemctl -fq enable lightdm
412             sed -i 's/^webkit_theme\s*=\s*\(.*\)/webkit_theme = lightdm-webkit-theme-aether #\1/g' ${CN_DESTDIR}/etc/lightdm/lightdm-webkit2-greeter.conf
413             sed -i 's/^\(#?greeter\)-session\s*=\s*\(.*\)/greeter-session = lightdm-webkit2-greeter #\1/ #\2g' ${CN_DESTDIR}/etc/lightdm/lightdm.conf
414         cp /usr/share/cnchi/flatpak.sh ${CN_DESTDIR}/usr/bin/
415         cp /usr/share/cnchi/pkcon.sh ${CN_DESTDIR}/usr/bin/
416         cp /usr/share/cnchi/pkcon2.sh ${CN_DESTDIR}/usr/bin/
417         cp /usr/share/cnchi/flatpak.desktop ${CN_DESTDIR}/usr/share/applications/
418         cp /usr/share/cnchi/update.desktop ${CN_DESTDIR}/etc/xdg/autostart/
419         cp /usr/share/cnchi/updating.sh ${CN_DESTDIR}/usr/bin/
420         echo "# ---> Added by Cnchi RebornOS Installer Gnome based for Budgie Desktop <---" >> ${CN_DESTDIR}/etc/environment
421         echo "QT_QPA_PLATFORMTHEME=qt5ct" >> ${CN_DESTDIR}/etc/environment
422         echo "# ---> End added by Cnchi RebornOS Installer Gnome based for Budgie Desktop <---" >> ${CN_DESTDIR}/etc/environment
423         chroot ${CN_DESTDIR} systemctl enable earlyoom
424         chroot ${CN_DESTDIR} systemctl enable ufw
425     fi
426
427     if [[ i3 = "${CN_DESKTOP}" ]]; then
428         chroot ${CN_DESTDIR} systemctl -fq enable sddm
429         cp /usr/share/cnchi/sddm.conf ${CN_DESTDIR}/etc/
430         cp /usr/share/cnchi/flatpak.sh ${CN_DESTDIR}/usr/bin/
431         cp /usr/share/cnchi/pkcon.sh ${CN_DESTDIR}/usr/bin/
432         cp /usr/share/cnchi/pkcon2.sh ${CN_DESTDIR}/usr/bin/
433         cp /usr/share/cnchi/flatpak.desktop ${CN_DESTDIR}/usr/share/applications/
434         cp /usr/share/cnchi/update.desktop ${CN_DESTDIR}/etc/xdg/autostart/
435         cp /usr/share/cnchi/updating.sh ${CN_DESTDIR}/usr/bin/
436         echo "# ---> Added by Cnchi RebornOS Installer Gnome based for i3 Desktop <---" >> ${CN_DESTDIR}/etc/environment
437         echo "QT_QPA_PLATFORMTHEME=qt5ct" >> ${CN_DESTDIR}/etc/environment
438         echo "# ---> End added by Cnchi RebornOS Installer Gnome based for i3 Desktop <---" >> ${CN_DESTDIR}/etc/environment
439         chroot ${CN_DESTDIR} systemctl enable earlyoom
440         chroot ${CN_DESTDIR} systemctl enable ufw
441     fi
442
443  #   if [ -f "${CN_DESTDIR}/usr/bin/enlightenment" ]; then
444  #       chroot ${CN_DESTDIR} systemctl -fq enable sddm
445  #       cp /usr/share/cnchi/sddm.conf ${CN_DESTDIR}/etc/
446  #       cp /usr/share/cnchi/flatpak.sh ${CN_DESTDIR}/usr/bin/
447  #       cp /usr/share/cnchi/pkcon.sh ${CN_DESTDIR}/usr/bin/
448  #       cp /usr/share/cnchi/pkcon2.sh ${CN_DESTDIR}/usr/bin/
449  #       cp /usr/share/cnchi/flatpak.desktop ${CN_DESTDIR}/usr/share/applications/
450  #       cp /usr/share/cnchi/update.desktop ${CN_DESTDIR}/etc/xdg/autostart/
451  #       cp /usr/share/cnchi/updating.sh ${CN_DESTDIR}/usr/bin/
452  #       echo "# ---> Added by Cnchi RebornOS Installer Gnome based for Enlightenment Desktop <---" >> ${CN_DESTDIR}/etc/environment
453  #       echo "QT_QPA_PLATFORMTHEME=qt5ct" >> ${CN_DESTDIR}/etc/environment
454  #       echo "# ---> End added by Cnchi RebornOS Installer Gnome based for Enlightenment Desktop <---" >> ${CN_DESTDIR}/etc/environment
455  #       chroot ${CN_DESTDIR} systemctl enable earlyoom
456  #       chroot ${CN_DESTDIR} systemctl enable ufw
457  #   fi
458
459     if [[ lxqt = "${CN_DESKTOP}" ]]; then
460         chroot ${CN_DESTDIR} systemctl -fq enable sddm
461         cp /usr/share/cnchi/sddm.conf ${CN_DESTDIR}/etc/
462         cp /usr/share/cnchi/flatpak.sh ${CN_DESTDIR}/usr/bin/
463         cp /usr/share/cnchi/pkcon.sh ${CN_DESTDIR}/usr/bin/
464         cp /usr/share/cnchi/pkcon2.sh ${CN_DESTDIR}/usr/bin/
465         cp /usr/share/cnchi/flatpak.desktop ${CN_DESTDIR}/usr/share/applications/
466         cp /usr/share/cnchi/update.desktop ${CN_DESTDIR}/etc/xdg/autostart/
467         cp /usr/share/cnchi/updating.sh ${CN_DESTDIR}/usr/bin/
468         chroot ${CN_DESTDIR} systemctl enable earlyoom
469         chroot ${CN_DESTDIR} systemctl enable ufw
470     fi
471
472     if [ -f "${CN_DESTDIR}/usr/bin/lxsession" ]; then
473         rm ${CN_DESTDIR}/etc/lightdm/lightdm-webkit2-greeter.conf
474         cp /usr/share/cnchi/lightdm-webkit2-greeter.conf ${CN_DESTDIR}/etc/lightdm/
475         chmod go=rx ${CN_DESTDIR}/var/lib/lightdm-data
476         chroot ${CN_DESTDIR} systemctl -fq enable lxdm
477         cp /usr/share/cnchi/flatpak.sh ${CN_DESTDIR}/usr/bin/
478         cp /usr/share/cnchi/pkcon.sh ${CN_DESTDIR}/usr/bin/
479         cp /usr/share/cnchi/pkcon2.sh ${CN_DESTDIR}/usr/bin/
480         cp /usr/share/cnchi/flatpak.desktop ${CN_DESTDIR}/usr/share/applications/
481         cp /usr/share/cnchi/update.desktop ${CN_DESTDIR}/etc/xdg/autostart/
482         cp /usr/share/cnchi/conky-start.desktop ${CN_DESTDIR}/etc/xdg/autostart/
483         cp /usr/share/cnchi/updating.sh ${CN_DESTDIR}/usr/bin/
484         cp /usr/share/cnchi/tint2-start.desktop ${CN_DESTDIR}/etc/xdg/autostart/
485         cp /usr/share/cnchi/obmenu-gen.desktop ${CN_DESTDIR}/etc/xdg/autostart/
486         cp /usr/share/cnchi/openbox-config.sh ${CN_DESTDIR}/usr/bin/
487         chroot ${CN_DESTDIR} obmenu-generator -p -i
488         chroot ${CN_DESTDIR} systemctl enable earlyoom
489         chroot ${CN_DESTDIR} systemctl enable ufw
490     fi
491
492     if [[ mate = "${CN_DESKTOP}" ]]; then
493         chroot ${CN_DESTDIR} systemctl -fq enable sddm
494         cp /usr/share/cnchi/sddm.conf ${CN_DESTDIR}/etc/
495         cp /usr/share/cnchi/flatpak.sh ${CN_DESTDIR}/usr/bin/
496         cp /usr/share/cnchi/pkcon.sh ${CN_DESTDIR}/usr/bin/
497         cp /usr/share/cnchi/pkcon2.sh ${CN_DESTDIR}/usr/bin/
498         cp /usr/share/cnchi/flatpak.desktop ${CN_DESTDIR}/usr/share/applications/
499         cp /usr/share/cnchi/update.desktop ${CN_DESTDIR}/etc/xdg/autostart/
500         cp /usr/share/cnchi/updating.sh ${CN_DESTDIR}/usr/bin/
501         chroot ${CN_DESTDIR} mate-panel --reset --layout default
502         # chroot ${CN_DESTDIR} mate-panel --reset --layout cinnamon
503         # chroot ${CN_DESTDIR} sudo mate-panel --reset --layout cinnamon
504         echo "# ---> Added by Cnchi RebornOS Installer Gnome based for MATE Desktop <---" >> ${CN_DESTDIR}/etc/environment
505         echo "QT_QPA_PLATFORMTHEME=qt5ct" >> ${CN_DESTDIR}/etc/environment
506         echo "# ---> End added by Cnchi RebornOS Installer Gnome based for MATE Desktop <---" >> ${CN_DESTDIR}/etc/environment
507         chroot ${CN_DESTDIR} systemctl enable earlyoom
508         chroot ${CN_DESTDIR} systemctl enable ufw
509     fi
510
511 if [[ xfce = "${CN_DESKTOP}" ]]; then
512         chroot ${CN_DESTDIR} systemctl -fq enable sddm
513         cp /usr/share/cnchi/sddm.conf ${CN_DESTDIR}/etc/
514         cp /usr/share/cnchi/flatpak.sh ${CN_DESTDIR}/usr/bin/
515         cp /usr/share/cnchi/pkcon.sh ${CN_DESTDIR}/usr/bin/
516         cp /usr/share/cnchi/pkcon2.sh ${CN_DESTDIR}/usr/bin/
517         cp /usr/share/cnchi/flatpak.desktop ${CN_DESTDIR}/usr/share/applications/
518         cp /usr/share/cnchi/update.desktop ${CN_DESTDIR}/etc/xdg/autostart/
519         cp /usr/share/cnchi/updating.sh ${CN_DESTDIR}/usr/bin/
520         echo "# ---> Added by Cnchi RebornOS Installer Gnome based for XFCE Desktop <---" >> ${CN_DESTDIR}/etc/environment
521         echo "QT_QPA_PLATFORMTHEME=qt5ct" >> ${CN_DESTDIR}/etc/environment
522         echo "# ---> End added by Cnchi RebornOS Installer Gnome based for XFCE Desktop <---" >> ${CN_DESTDIR}/etc/environment
523         chroot ${CN_DESTDIR} systemctl enable earlyoom
524         chroot ${CN_DESTDIR} systemctl enable ufw
525 fi
526
527 if [[ cinnamon = "${CN_DESKTOP}" ]]; then
528         chroot ${CN_DESTDIR} systemctl -fq enable sddm
529         cp /usr/share/cnchi/sddm.conf ${CN_DESTDIR}/etc/
530         cp /usr/share/cnchi/flatpak.sh ${CN_DESTDIR}/usr/bin/
531         cp /usr/share/cnchi/pkcon.sh ${CN_DESTDIR}/usr/bin/
532         cp /usr/share/cnchi/pkcon2.sh ${CN_DESTDIR}/usr/bin/
533         cp /usr/share/cnchi/flatpak.desktop ${CN_DESTDIR}/usr/share/applications/
534         cp /usr/share/cnchi/update.desktop ${CN_DESTDIR}/etc/xdg/autostart/
535         cp /usr/share/cnchi/updating.sh ${CN_DESTDIR}/usr/bin/
536         echo "# ---> Added by Cnchi RebornOS Installer Gnome based for Cinnamon Desktop <---" >> ${CN_DESTDIR}/etc/environment
537         echo "QT_QPA_PLATFORMTHEME=qt5ct" >> ${CN_DESTDIR}/etc/environment
538         echo "# ---> End added by Cnchi RebornOS Installer Gnome based for Cinnamon Desktop <---" >> ${CN_DESTDIR}/etc/environment
539         chroot ${CN_DESTDIR} systemctl enable earlyoom
540         chroot ${CN_DESTDIR} systemctl enable ufw
541         cp /usr/share/cnchi/95_cinnamon.gschema.override ${CN_DESTDIR}/usr/share/glib-2.0/schemas/
542         chroot ${CN_DESTDIR} /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas
543 fi
544
545 if [[ pantheon = "${CN_DESKTOP}" ]]; then
546         chroot ${CN_DESTDIR} systemctl -fq enable sddm
547         cp /usr/share/cnchi/sddm.conf ${CN_DESTDIR}/etc/
548         cp /usr/share/cnchi/flatpak.sh ${CN_DESTDIR}/usr/bin/
549         cp /usr/share/cnchi/pkcon.sh ${CN_DESTDIR}/usr/bin/
550         cp /usr/share/cnchi/pkcon2.sh ${CN_DESTDIR}/usr/bin/
551         cp /usr/share/cnchi/flatpak.desktop ${CN_DESTDIR}/usr/share/applications/
552         cp /usr/share/cnchi/update.desktop ${CN_DESTDIR}/etc/xdg/autostart/
553         cp /usr/share/cnchi/updating.sh ${CN_DESTDIR}/usr/bin/
554         echo "# ---> Added by Cnchi RebornOS Installer Gnome based for Pantheon Desktop <---" >> ${CN_DESTDIR}/etc/environment
555         echo "QT_QPA_PLATFORMTHEME=qt5ct" >> ${CN_DESTDIR}/etc/environment
556         echo "# ---> End added by Cnchi RebornOS Installer Gnome based for Pantheon Desktop <---" >> ${CN_DESTDIR}/etc/environment
557         chroot ${CN_DESTDIR} systemctl enable earlyoom
558         chroot ${CN_DESTDIR} systemctl enable ufw
559 fi
560
561 #if [[ windows = "${CN_DESKTOP}" ]]; then
562 #        chroot ${CN_DESTDIR} systemctl -fq enable sddm
563 #        cp /usr/share/cnchi/sddm.conf ${CN_DESTDIR}/etc/
564 #        cp /usr/share/cnchi/flatpak.sh ${CN_DESTDIR}/usr/bin/
565 #        cp /usr/share/cnchi/pkcon.sh ${CN_DESTDIR}/usr/bin/
566 #        cp /usr/share/cnchi/pkcon2.sh ${CN_DESTDIR}/usr/bin/
567 #        cp /usr/share/cnchi/flatpak.desktop ${CN_DESTDIR}/usr/share/applications/
568 #        cp /usr/share/cnchi/update.desktop ${CN_DESTDIR}/etc/xdg/autostart/
569 #        cp /usr/share/cnchi/updating.sh ${CN_DESTDIR}/usr/bin/
570 #        echo "# ---> Added by Cnchi RebornOS Installer Gnome based for Windows Desktop <---" >> ${CN_DESTDIR}/etc/environment
571 #        echo "QT_QPA_PLATFORMTHEME=qt5ct" >> ${CN_DESTDIR}/etc/environment
572 #        echo "# ---> End added by Cnchi RebornOS Installer Gnome based for Windows Desktop <---" >> ${CN_DESTDIR}/etc/environment
573 #        chroot ${CN_DESTDIR} systemctl enable earlyoom
574 #        chroot ${CN_DESTDIR} systemctl enable ufw
575 #fi
576
577     # Copy pacman.conf file over
578     rm ${CN_DESTDIR}/etc/pacman.conf
579     cp /usr/share/cnchi/pacman.conf ${CN_DESTDIR}/etc/
580     cp /etc/pacman.d/reborn-mirrorlist ${CN_DESTDIR}/etc/pacman.d/
581
582     #Copy blacklist.conf file over
583     cp /etc/modprobe.d/blacklist.conf ${CN_DESTDIR}/etc/modprobe.d/
584
585     #Copy Plymouth Files over if the Plymouth feature has been selected
586     if [ -f "${CN_DESTDIR}/usr/bin/plymouth" ]; then
587     echo "[STATUS] Plymouth selected. Configuring now..." >${CN_DESTDIR}/var/log/cnchi/plymouth.log
588     echo "[STATUS] Plymouth selected. Configuring now..." >/tmp/cnchi.log
589     cp /usr/share/cnchi/plymouth.sh ${CN_DESTDIR}/usr/bin/
590     cp /usr/share/cnchi/plymouth-reborn.desktop ${CN_DESTDIR}/etc/xdg/autostart/
591     chroot ${CN_DESTDIR} plymouth-set-default-theme -R arch-charge-big
592     echo "[SUCCESS] Plymouth has been installed and configured" >${CN_DESTDIR}/var/log/cnchi/plymouth.log
593     echo "[SUCCESS] Plymouth has been installed and configured" >/tmp/cnchi.log
594     else
595     echo "[STATUS] Plymouth not selected" >${CN_DESTDIR}/var/log/cnchi/plymouth.log
596     echo "[STATUS] Plymouth not selected" >/tmp/postinstall.log
597     fi
598
599     # Ensure user permissions are set in /home
600     chroot "${CN_DESTDIR}" chown -R "${CN_USER_NAME}:users" "/home/${CN_USER_NAME}"
601
602     # Remove reborn user if it still exists
603     if [ -d "${CN_DESTDIR}/home/reborn" ]; then
604     chroot ${CN_DESTDIR} sudo rm -rf /home/reborn
605     fi
606     
607     # Remove rebornos user if it still exists
608     if [ -d "${CN_DESTDIR}/home/rebornos" ]; then
609     chroot ${CN_DESTDIR} sudo rm -rf /home/reborn
610     fi
611
612     # Start vbox client services if we are installed in vbox
613     if [[ ${CN_IS_VBOX} = "True" ]] || { [[ $(systemd-detect-virt) ]] && [[ 'oracle' = $(systemd-detect-virt -v) ]]; }; then
614         # TODO: This should be done differently
615         sed -i 's|echo "X|/usr/bin/VBoxClient-all \&\necho "X|g' "${CN_DESTDIR}/etc/lightdm/Xsession"
616     fi
617 }
618
619 touch /tmp/.postinstall.lock
620 echo "Called installation script with these parameters: [$1] [$2] [$3] [$4] [$5] [$6] [$7]" > /tmp/postinstall.log
621 CN_USER_NAME=$1
622 CN_DESTDIR=$2
623 CN_DESKTOP=$3
624 CN_LOCALE=$4
625 CN_IS_VBOX=$5
626 CN_KEYBOARD_LAYOUT=$6
627 CN_KEYBOARD_VARIANT=$7
628
629 # Use this to test this script (remember to mount /install manually before testing)
630 #chroot_setup "${CN_DESTDIR}"
631
632 { postinstall; } >> /tmp/postinstall.log 2>&1
633 rm /tmp/.postinstall.lock
634