diff --git a/live_exam_os/Dockerfile b/live_exam_os/Dockerfile
index 96bcbddaa3d22adc49e3170a44a05a0f87b2021c..3e5a747f23e9b8455c816bb146aebde851dd7b89 100644
--- a/live_exam_os/Dockerfile
+++ b/live_exam_os/Dockerfile
@@ -19,16 +19,23 @@ ADD ${config_dir}/packages.list.chroot config/package-lists/
 ADD ${config_dir}/removepkg.hook.chroot config/hooks/live/
 
 ## add swiss-french keyboard config
-ADD ${config_dir}/keyboard config/includes.chroot/etc/default/
+ADD ${config_dir}/keyboard/keyboard config/includes.chroot/etc/default/
 
 ## run "nexus-exam" as soon as user logs in
 ADD ${config_dir}/nexus-exam config/includes.chroot/usr/local/bin/
 ADD ${config_dir}/nexus-exam.desktop config/includes.chroot/etc/xdg/autostart/
-RUN mkdir config/includes.chroot/etc/skel/
-# ADD ${config_dir}/Xsession config/includes.chroot/etc/X11/Xsession.d/99x-user_session
-ADD ${config_dir}/Xsession config/includes.chroot/etc/skel/.xsessionrc
 
-#RUN echo "export NEXUS_SERVER=${server_ip}\nexport NEXUS_CERT=/etc/ssl/certs/nexus-server.pem\n" >> config/includes.chroot/etc/skel/.xsessionrc
+## run various screen settings as soon as user logs in
+ADD ${config_dir}/screen/screen_settings.sh config/includes.chroot/usr/local/bin/
+ADD ${config_dir}/screen/screen_settings.desktop config/includes.chroot/etc/xdg/autostart/
+
+## systemd service to set various screen settings (does not work - not sure why)
+# ADD ${config_dir}/systemd/screen_settings.sh config/includes.chroot/usr/local/bin/
+# RUN chmod +x config/includes.chroot/usr/local/bin/screen_settings.sh
+# ADD ${config_dir}/systemd/screen_settings.service config/includes.chroot/etc/systemd/system/
+
+# RUN mkdir config/includes.chroot/etc/skel/
+# RUN echo "export NEXUS_SERVER=${server_ip}\nexport NEXUS_CERT=/etc/ssl/certs/nexus-server.pem\n" >> config/includes.chroot/etc/skel/.xsessionrc
 
 ## customize xfce4 desktop
 ADD ${config_dir}/xubuntu-development.png config/includes.chroot/usr/share/xfce4/backdrops/xubuntu-development.png
@@ -39,24 +46,23 @@ ADD ${config_dir}/xfce/xfce4-power-manager.xml config/includes.chroot/etc/xdg/xf
 ADD ${config_dir}/xfce/xfwm4.xml config/includes.chroot/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/
 
 # syslinux (bios) cfg
-ADD ${config_dir}/isolinux.cfg config/includes.binary/isolinux/isolinux.cfg
-ADD ${config_dir}/isolinux_splash.png config/includes.binary/isolinux/splash.png
+ADD ${config_dir}/bootloader/isolinux.cfg config/includes.binary/isolinux/isolinux.cfg
+ADD ${config_dir}/bootloader/isolinux_splash.png config/includes.binary/isolinux/splash.png
 # grub (uefi) cfg
-ADD ${config_dir}/grub_splash.png config/includes.binary/boot/grub/splash.png
-ADD ${config_dir}/grub_config.cfg config/includes.binary/boot/grub/config.cfg
-ADD ${config_dir}/isolinux_menu.cfg config/includes.binary/isolinux/menu.cfg
-ADD ${config_dir}/isolinux_stdmenu.cfg config/includes.binary/isolinux/stdmenu.cfg
+ADD ${config_dir}/bootloader/grub_splash.png config/includes.binary/boot/grub/splash.png
+ADD ${config_dir}/bootloader/grub_config.cfg config/includes.binary/boot/grub/config.cfg
+ADD ${config_dir}/bootloader/isolinux_menu.cfg config/includes.binary/isolinux/menu.cfg
+ADD ${config_dir}/bootloader/isolinux_stdmenu.cfg config/includes.binary/isolinux/stdmenu.cfg
 
 # server pub cert to be installed (system wide)
 #ADD ${config_dir}/${nexus_cert} config/includes.chroot/usr/share/ca-certificates/nexus-server/nexus-server.crt
 
-# script hook ran at boot time (install system wide cert and firewall)
-ADD ${config_dir}/live-exam-hook config/includes.chroot/lib/live/config/9999-custom
-# update server destination from docker's variable (all others IP are banned)
-RUN echo "firewall ${server_ip} ${server_port}\n" >> config/includes.chroot/lib/live/config/9999-custom
+# firewall hook ran at boot time
+ADD ${config_dir}/boot_hooks/firewall config/includes.chroot/lib/live/config/9999-firewall
+RUN echo "firewall ${server_ip} ${server_port}\n" >> config/includes.chroot/lib/live/config/9999-firewall
 
 # install wifi template
-ADD ${config_dir}/WIFI.nmconnection config/includes.chroot/etc/NetworkManager/system-connections/
+ADD ${config_dir}/wifi/WIFI.nmconnection config/includes.chroot/etc/NetworkManager/system-connections/
 RUN chmod 0600 config/includes.chroot/etc/NetworkManager/system-connections/WIFI.nmconnection
 
 # script hook to set password for nexus user (pwd is "pipo")
diff --git a/live_exam_os/config/boot_hooks/certificates b/live_exam_os/config/boot_hooks/certificates
new file mode 100755
index 0000000000000000000000000000000000000000..d75bf970e8912bfcf6251c0e8a54650092ef1184
--- /dev/null
+++ b/live_exam_os/config/boot_hooks/certificates
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+. /lib/live/config.sh
+
+## live-config(7) - System Configuration Components
+## Copyright (C) 2016-2020 The Debian Live team
+## Copyright (C) 2006-2015 Daniel Baumann <mail@daniel-baumann.ch>
+##
+## This program comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
+## This is free software, and you are welcome to redistribute it
+## under certain conditions; see COPYING for details.
+
+# Unused for now
+add_nexus_certs ()
+{
+    if [ ! -e /etc/ssl/certs/nexus-server.pem ] && [ -e /usr/share/ca-certificates/nexus-server/nexus-server.crt ]
+    then
+        echo "nexus-server/nexus-server.crt" >> /etc/ca-certificates.conf
+        update-ca-certificates
+    fi
+}
+
+add_nexus_certs
\ No newline at end of file
diff --git a/live_exam_os/config/boot_hooks/firewall b/live_exam_os/config/boot_hooks/firewall
new file mode 100755
index 0000000000000000000000000000000000000000..e09fac389465dea0ba1bd873757cc87a6ee59050
--- /dev/null
+++ b/live_exam_os/config/boot_hooks/firewall
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+. /lib/live/config.sh
+
+firewall ()
+{
+    ufw default deny incoming
+    ufw default deny outgoing
+    ufw allow out from any to $1 port 80
+    ufw allow out from any to $1 port 443
+    ufw allow out from any to $1 port $2
+    ufw allow out from any to $1 port 1025:65535 proto tcp
+    ufw allow out from any to $1 port 1025:65535 proto udp
+    ufw enable
+}
+
diff --git a/live_exam_os/config/grub_config.cfg b/live_exam_os/config/bootloader/grub_config.cfg
similarity index 100%
rename from live_exam_os/config/grub_config.cfg
rename to live_exam_os/config/bootloader/grub_config.cfg
diff --git a/live_exam_os/config/grub_splash.png b/live_exam_os/config/bootloader/grub_splash.png
similarity index 100%
rename from live_exam_os/config/grub_splash.png
rename to live_exam_os/config/bootloader/grub_splash.png
diff --git a/live_exam_os/config/isolinux.cfg b/live_exam_os/config/bootloader/isolinux.cfg
similarity index 100%
rename from live_exam_os/config/isolinux.cfg
rename to live_exam_os/config/bootloader/isolinux.cfg
diff --git a/live_exam_os/config/isolinux_menu.cfg b/live_exam_os/config/bootloader/isolinux_menu.cfg
similarity index 100%
rename from live_exam_os/config/isolinux_menu.cfg
rename to live_exam_os/config/bootloader/isolinux_menu.cfg
diff --git a/live_exam_os/config/isolinux_splash.png b/live_exam_os/config/bootloader/isolinux_splash.png
similarity index 100%
rename from live_exam_os/config/isolinux_splash.png
rename to live_exam_os/config/bootloader/isolinux_splash.png
diff --git a/live_exam_os/config/isolinux_stdmenu.cfg b/live_exam_os/config/bootloader/isolinux_stdmenu.cfg
similarity index 100%
rename from live_exam_os/config/isolinux_stdmenu.cfg
rename to live_exam_os/config/bootloader/isolinux_stdmenu.cfg
diff --git a/live_exam_os/config/keyboard b/live_exam_os/config/keyboard
deleted file mode 100644
index ad849b1f846aece8158718d922fdc961dd2aeea5..0000000000000000000000000000000000000000
--- a/live_exam_os/config/keyboard
+++ /dev/null
@@ -1,10 +0,0 @@
-# KEYBOARD CONFIGURATION FILE
-
-# Consult the keyboard(5) manual page.
-
-XKBMODEL="pc105"
-XKBLAYOUT="ch"
-XKBVARIANT="fr"
-XKBOPTIONS=""
-
-BACKSPACE="guess"
diff --git a/live_exam_os/config/live-exam-hook b/live_exam_os/config/live-exam-hook
deleted file mode 100755
index b413a788c949ff13bb4d13b36d6f9fb8a2698be1..0000000000000000000000000000000000000000
--- a/live_exam_os/config/live-exam-hook
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/sh
-
-. /lib/live/config.sh
-
-## live-config(7) - System Configuration Components
-## Copyright (C) 2016-2020 The Debian Live team
-## Copyright (C) 2006-2015 Daniel Baumann <mail@daniel-baumann.ch>
-##
-## This program comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
-## This is free software, and you are welcome to redistribute it
-## under certain conditions; see COPYING for details.
-
-# add_nexus_certs ()
-# {
-#     if [ ! -e /etc/ssl/certs/nexus-server.pem ] && [ -e /usr/share/ca-certificates/nexus-server/nexus-server.crt ]
-#     then
-#         echo "nexus-server/nexus-server.crt" >> /etc/ca-certificates.conf
-#         update-ca-certificates
-#     fi
-# }
-
-firewall ()
-{
-    ufw default deny incoming
-    ufw default deny outgoing
-    ufw allow out from any to $1 port 80
-    ufw allow out from any to $1 port 443
-    ufw allow out from any to $1 port $2
-    ufw allow out from any to $1 port 1025:65535 proto tcp
-    ufw allow out from any to $1 port 1025:65535 proto udp
-    ufw enable
-}
-
-# add_nexus_certs
\ No newline at end of file
diff --git a/live_exam_os/config/screen/screen_settings.desktop b/live_exam_os/config/screen/screen_settings.desktop
new file mode 100644
index 0000000000000000000000000000000000000000..16b9210395a02d506417a7da9ca7003470ca8feb
--- /dev/null
+++ b/live_exam_os/config/screen/screen_settings.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Encoding=UTF-8
+Version=0.9.4
+Type=Application
+Name=screen settings
+Comment=
+Exec=bash /usr/local/bin/screen_settings.sh
+OnlyShowIn=XFCE;
+RunHook=0
+StartupNotify=false
+Terminal=true
+Hidden=false
diff --git a/live_exam_os/config/Xsession b/live_exam_os/config/screen/screen_settings.sh
similarity index 70%
rename from live_exam_os/config/Xsession
rename to live_exam_os/config/screen/screen_settings.sh
index 3222364ce4fc830d6c8ee341b7fc9a8d43a166af..670b38a0798901b3e2deafb6bd404148b5594922 100644
--- a/live_exam_os/config/Xsession
+++ b/live_exam_os/config/screen/screen_settings.sh
@@ -1,6 +1,8 @@
+#!/bin/bash
+
 # Set brightness at 100%
 screen=`xrandr -q|grep ' connected'|head -n1|cut -d ' ' -f1`
-xrandr --output $screen --brightness 0.5
+xrandr --output $screen --brightness 1
 
 # Disable screen blanking
 xset s off
diff --git a/live_exam_os/config/systemd/screen_settings.service b/live_exam_os/config/systemd/screen_settings.service
new file mode 100644
index 0000000000000000000000000000000000000000..9ee3773a738d3ae8f1cc696674c5fab5dc3a9318
--- /dev/null
+++ b/live_exam_os/config/systemd/screen_settings.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Screen settings
+After=display-manager.service
+Requires=display-manager.service
+
+[Service]
+Type=oneshot
+ExecStart=/usr/local/bin/screen_settings.sh
+
+[Install]
+WantedBy=default.target
diff --git a/live_exam_os/config/systemd/screen_settings.sh b/live_exam_os/config/systemd/screen_settings.sh
new file mode 100644
index 0000000000000000000000000000000000000000..670b38a0798901b3e2deafb6bd404148b5594922
--- /dev/null
+++ b/live_exam_os/config/systemd/screen_settings.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+# Set brightness at 100%
+screen=`xrandr -q|grep ' connected'|head -n1|cut -d ' ' -f1`
+xrandr --output $screen --brightness 1
+
+# Disable screen blanking
+xset s off
diff --git a/live_exam_os/config/WIFI.nmconnection b/live_exam_os/config/wifi/WIFI.nmconnection
similarity index 100%
rename from live_exam_os/config/WIFI.nmconnection
rename to live_exam_os/config/wifi/WIFI.nmconnection
diff --git a/live_exam_os/config/xfce/xfce4-power-manager.xml b/live_exam_os/config/xfce/xfce4-power-manager.xml
index 40b61b670c4305cbaa3e550493130049a6167800..3b653cd2c1133248cead5c0ec1304fe437c4df4a 100644
--- a/live_exam_os/config/xfce/xfce4-power-manager.xml
+++ b/live_exam_os/config/xfce/xfce4-power-manager.xml
@@ -2,7 +2,7 @@
 
 <channel name="xfce4-power-manager" version="1.0">
   <property name="xfce4-power-manager" type="empty">
-    <property name="power-button-action" type="empty"/>
+    <property name="power-button-action" type="uint" value="3"/>
     <property name="dpms-enabled" type="bool" value="false"/>
   </property>
 </channel>