Update to xfce4

parent ea73576c
No preview for this file type
......@@ -1459,17 +1459,20 @@ export XKB_DEFAULT_OPTIONS=""
# Create .xsession for proper X session startup
xsession_content = '''#!/bin/bash
# .xsession script for mbetterclient Kiosk setup (Openbox + Picom)
export PATH=/usr/local/bin:/usr/bin:/bin
export DISPLAY=:0
export QT_QPA_PLATFORM=xcb
#export QT_QUICK_BACKEND=software
#export QTWEBENGINE_CHROMIUM_FLAGS="--disable-gpu"
#export LIBGL_ALWAYS_SOFTWARE=1
# D-Bus configuration (essential for modern apps)
# .xsession script for mbetterclient Kiosk setup (Openbox + Picom)
export PATH=/usr/local/bin:/usr/bin:/bin
export DISPLAY=:0
export QT_QPA_PLATFORM=xcb
# Disable XFCE PolicyKit agent to prevent conflict with elogind
export XDG_CONFIG_HOME=/home/mbetterclient/.config
xfconf-query -c xfce4-session -p /compat/LaunchGNOME -s false -t bool
#export QT_QUICK_BACKEND=software
#export QTWEBENGINE_CHROMIUM_FLAGS="--disable-gpu"
#export LIBGL_ALWAYS_SOFTWARE=1
# D-Bus configuration (essential for modern apps)
if which dbus-launch >/dev/null && [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then
eval "$(dbus-launch --sh-syntax --exit-with-session)"
fi
......@@ -1557,31 +1560,169 @@ wait $APP_PID
try:
self.log("Configuring lightdm.conf for mbetterclient autologin...")
lightdm_content = '''[Seat:*]
autologin-user=mbetterclient
autologin-user-timeout=0
lightdm_content = '''#
# General configuration
#
# start-default-seat = True to always start one seat if none are defined in the configuration
# greeter-user = User to run greeter as
# minimum-display-number = Minimum display number to use for X servers
# minimum-vt = First VT to run displays on
# lock-memory = True to prevent memory from being paged to disk
# user-authority-in-system-dir = True if session authority should be in the system location
# guest-account-script = Script to be run to setup guest account
# logind-check-graphical = True to on start seats that are marked as graphical by logind
# log-directory = Directory to log information to
# run-directory = Directory to put running state in
# cache-directory = Directory to cache to
# sessions-directory = Directory to find sessions
# remote-sessions-directory = Directory to find remote sessions
# greeters-directory = Directory to find greeters
# backup-logs = True to move add a .old suffix to old log files when opening new ones
# dbus-service = True if LightDM provides a D-Bus service to control it
#
[LightDM]
#start-default-seat=true
#greeter-user=lightdm
#minimum-display-number=0
#minimum-vt=7
#lock-memory=true
#user-authority-in-system-dir=false
#guest-account-script=guest-account
#logind-check-graphical=true
#log-directory=/var/log/lightdm
#run-directory=/var/run/lightdm
#cache-directory=/var/cache/lightdm
#sessions-directory=/usr/share/lightdm/sessions:/usr/share/xsessions:/usr/share/wayland-sessions
#remote-sessions-directory=/usr/share/lightdm/remote-sessions
#greeters-directory=$XDG_DATA_DIRS/lightdm/greeters:$XDG_DATA_DIRS/xgreeters
#backup-logs=true
#dbus-service=true
#
# Seat configuration
#
# Seat configuration is matched against the seat name glob in the section, for example:
# [Seat:*] matches all seats and is applied first.
# [Seat:seat0] matches the seat named "seat0".
# [Seat:seat-thin-client*] matches all seats that have names that start with "seat-thin-client".
#
# type = Seat type (local, xremote)
# pam-service = PAM service to use for login
# pam-autologin-service = PAM service to use for autologin
# pam-greeter-service = PAM service to use for greeters
# xserver-command = X server command to run (can also contain arguments e.g. X -special-option)
# xmir-command = Xmir server command to run (can also contain arguments e.g. Xmir -special-option)
# xserver-config = Config file to pass to X server
# xserver-layout = Layout to pass to X server
# xserver-allow-tcp = True if TCP/IP connections are allowed to this X server
# xserver-share = True if the X server is shared for both greeter and session
# xserver-hostname = Hostname of X server (only for type=xremote)
# xserver-display-number = Display number of X server (only for type=xremote)
# xdmcp-manager = XDMCP manager to connect to (implies xserver-allow-tcp=true)
# xdmcp-port = XDMCP UDP/IP port to communicate on
# xdmcp-key = Authentication key to use for XDM-AUTHENTICATION-1 (stored in keys.conf)
# greeter-session = Session to load for greeter
# greeter-hide-users = True to hide the user list
# greeter-allow-guest = True if the greeter should show a guest login option
# greeter-show-manual-login = True if the greeter should offer a manual login option
# greeter-show-remote-login = True if the greeter should offer a remote login option
# user-session = Session to load for users
# allow-user-switching = True if allowed to switch users
# allow-guest = True if guest login is allowed
# guest-session = Session to load for guests (overrides user-session)
# session-wrapper = Wrapper script to run session with
# greeter-wrapper = Wrapper script to run greeter with
# guest-wrapper = Wrapper script to run guest sessions with
# display-setup-script = Script to run when starting a greeter session (runs as root)
# display-stopped-script = Script to run after stopping the display server (runs as root)
# greeter-setup-script = Script to run when starting a greeter (runs as root)
# session-setup-script = Script to run when starting a user session (runs as root)
# session-cleanup-script = Script to run when quitting a user session (runs as root)
# autologin-guest = True to log in as guest by default
# autologin-user = User to log in with by default (overrides autologin-guest)
# autologin-user-timeout = Number of seconds to wait before loading default user
# autologin-session = Session to load for automatic login (overrides user-session)
# autologin-in-background = True if autologin session should not be immediately activated
# exit-on-failure = True if the daemon should exit if this seat fails
#
[Seat:*]
#type=local
#pam-service=lightdm
#pam-autologin-service=lightdm-autologin
#pam-greeter-service=lightdm-greeter
#xserver-command=X
#xmir-command=Xmir
#xserver-config=
#xserver-layout=
#xserver-allow-tcp=false
#xserver-share=true
#xserver-hostname=
#xserver-display-number=
#xdmcp-manager=
#xdmcp-port=177
#xdmcp-key=
greeter-session=lightdm-gtk-greeter
greeter-hide-users=false
greeter-show-manual-login=true
greeter-show-remote-login=false
#greeter-hide-users=false
#greeter-allow-guest=true
#greeter-show-manual-login=false
#greeter-show-remote-login=true
#user-session=xfce4
display-setup-script=/usr/local/bin/lightdm-display-setup
session-setup-script=/usr/local/bin/lightdm-session-setup
#allow-user-switching=true
#allow-guest=true
#guest-session=
#session-wrapper=lightdm-session
#greeter-wrapper=
#guest-wrapper=
#display-setup-script=
#display-stopped-script=
#greeter-setup-script=
#session-setup-script=
#session-cleanup-script=
#autologin-guest=false
autologin-user=mbetterclient
autologin-user-timeout=0
#autologin-in-background=false
#autologin-session=
#exit-on-failure=false
[LightDM]
minimum-display-number=0
minimum-vt=7
lock-memory=true
user-authority-in-system-dir=false
guest-account-script=guest-account
logind-check-graphical=false
log-directory=/var/log/lightdm
run-directory=/run/lightdm
cache-directory=/var/cache/lightdm
sessions-directory=/usr/share/xsessions
remote-sessions-directory=/usr/share/xgreeters
greeters-directory=/usr/share/xgreeters
backup-logs=true
#
# XDMCP Server configuration
#
# enabled = True if XDMCP connections should be allowed
# port = UDP/IP port to listen for connections on
# listen-address = Host/address to listen for XDMCP connections (use all addresses if not present)
# key = Authentication key to use for XDM-AUTHENTICATION-1 or blank to not use authentication (stored in keys.conf)
# hostname = Hostname to report to XDMCP clients (defaults to system hostname if unset)
#
# The authentication key is a 56 bit DES key specified in hex as 0xnnnnnnnnnnnnnn. Alternatively
# it can be a word and the first 7 characters are used as the key.
#
[XDMCPServer]
#enabled=false
#port=177
#listen-address=
#key=
#hostname=
#
# VNC Server configuration
#
# enabled = True if VNC connections should be allowed
# command = Command to run Xvnc server with
# port = TCP/IP port to listen for connections on
# listen-address = Host/address to listen for VNC connections (use all addresses if not present)
# width = Width of display to use
# height = Height of display to use
# depth = Color depth of display to use
#
[VNCServer]
#enabled=false
#command=Xvnc
#port=5900
#listen-address=
#width=1024
#height=768
#depth=8
'''
lightdm_path = f"{target_mount}/etc/lightdm/lightdm.conf"
......
#!/bin/sh
set -e
echo "Overriding live-config lightdm script to force autologin-user=root..."
# Override lightdm config script
LIGHTDM_CONFIG="/usr/lib/live/config/0100-lightdm"
if [ -f "$LIGHTDM_CONFIG" ]; then
cp "$LIGHTDM_CONFIG" "${LIGHTDM_CONFIG}.original"
cat > "$LIGHTDM_CONFIG" << 'EOF'
#!/bin/sh
. /lib/live/config.sh
## live-config(7) - Modified to force autologin-user=root
#set -e
Cmdline ()
{
# Reading kernel command line
for _PARAMETER in ${LIVE_CONFIG_CMDLINE}
do
case "${_PARAMETER}" in
live-config.username=*|username=*)
LIVE_USERNAME="${_PARAMETER#*username=}"
;;
esac
done
# Force root username for autologin
LIVE_USERNAME="root"
}
Init ()
{
if [ -n "${LIVE_USERNAME}" ]
then
echo -n " lightdm"
fi
}
Config ()
{
if [ -n "${LIVE_USERNAME}" ]
then
sed -i -r -e "s|^#.*autologin-user=.*\$|autologin-user=root|" \
-e "s|^#.*autologin-user-timeout=.*\$|autologin-user-timeout=0|" \
/etc/lightdm/lightdm.conf
fi
}
Cmdline
Init
Config
EOF
chmod +x "$LIGHTDM_CONFIG"
echo "Replaced lightdm config script to force autologin-user=root"
fi
echo "Live-config lightdm override completed"
\ No newline at end of file
#
# General configuration
#
# start-default-seat = True to always start one seat if none are defined in the configuration
# greeter-user = User to run greeter as
# minimum-display-number = Minimum display number to use for X servers
# minimum-vt = First VT to run displays on
# lock-memory = True to prevent memory from being paged to disk
# user-authority-in-system-dir = True if session authority should be in the system location
# guest-account-script = Script to be run to setup guest account
# logind-check-graphical = True to on start seats that are marked as graphical by logind
# log-directory = Directory to log information to
# run-directory = Directory to put running state in
# cache-directory = Directory to cache to
# sessions-directory = Directory to find sessions
# remote-sessions-directory = Directory to find remote sessions
# greeters-directory = Directory to find greeters
# backup-logs = True to move add a .old suffix to old log files when opening new ones
# dbus-service = True if LightDM provides a D-Bus service to control it
#
[LightDM]
#start-default-seat=true
#greeter-user=lightdm
#minimum-display-number=0
#minimum-vt=7
#lock-memory=true
#user-authority-in-system-dir=false
#guest-account-script=guest-account
#logind-check-graphical=true
#log-directory=/var/log/lightdm
#run-directory=/var/run/lightdm
#cache-directory=/var/cache/lightdm
#sessions-directory=/usr/share/lightdm/sessions:/usr/share/xsessions:/usr/share/wayland-sessions
#remote-sessions-directory=/usr/share/lightdm/remote-sessions
#greeters-directory=$XDG_DATA_DIRS/lightdm/greeters:$XDG_DATA_DIRS/xgreeters
#backup-logs=true
#dbus-service=true
#
# Seat configuration
#
# Seat configuration is matched against the seat name glob in the section, for example:
# [Seat:*] matches all seats and is applied first.
# [Seat:seat0] matches the seat named "seat0".
# [Seat:seat-thin-client*] matches all seats that have names that start with "seat-thin-client".
#
# type = Seat type (local, xremote)
# pam-service = PAM service to use for login
# pam-autologin-service = PAM service to use for autologin
# pam-greeter-service = PAM service to use for greeters
# xserver-command = X server command to run (can also contain arguments e.g. X -special-option)
# xmir-command = Xmir server command to run (can also contain arguments e.g. Xmir -special-option)
# xserver-config = Config file to pass to X server
# xserver-layout = Layout to pass to X server
# xserver-allow-tcp = True if TCP/IP connections are allowed to this X server
# xserver-share = True if the X server is shared for both greeter and session
# xserver-hostname = Hostname of X server (only for type=xremote)
# xserver-display-number = Display number of X server (only for type=xremote)
# xdmcp-manager = XDMCP manager to connect to (implies xserver-allow-tcp=true)
# xdmcp-port = XDMCP UDP/IP port to communicate on
# xdmcp-key = Authentication key to use for XDM-AUTHENTICATION-1 (stored in keys.conf)
# greeter-session = Session to load for greeter
# greeter-hide-users = True to hide the user list
# greeter-allow-guest = True if the greeter should show a guest login option
# greeter-show-manual-login = True if the greeter should offer a manual login option
# greeter-show-remote-login = True if the greeter should offer a remote login option
# user-session = Session to load for users
# allow-user-switching = True if allowed to switch users
# allow-guest = True if guest login is allowed
# guest-session = Session to load for guests (overrides user-session)
# session-wrapper = Wrapper script to run session with
# greeter-wrapper = Wrapper script to run greeter with
# guest-wrapper = Wrapper script to run guest sessions with
# display-setup-script = Script to run when starting a greeter session (runs as root)
# display-stopped-script = Script to run after stopping the display server (runs as root)
# greeter-setup-script = Script to run when starting a greeter (runs as root)
# session-setup-script = Script to run when starting a user session (runs as root)
# session-cleanup-script = Script to run when quitting a user session (runs as root)
# autologin-guest = True to log in as guest by default
# autologin-user = User to log in with by default (overrides autologin-guest)
# autologin-user-timeout = Number of seconds to wait before loading default user
# autologin-session = Session to load for automatic login (overrides user-session)
# autologin-in-background = True if autologin session should not be immediately activated
# exit-on-failure = True if the daemon should exit if this seat fails
#
[Seat:*]
#type=local
#pam-service=lightdm
#pam-autologin-service=lightdm-autologin
#pam-greeter-service=lightdm-greeter
#xserver-command=X
#xmir-command=Xmir
#xserver-config=
#xserver-layout=
#xserver-allow-tcp=false
#xserver-share=true
#xserver-hostname=
#xserver-display-number=
#xdmcp-manager=
#xdmcp-port=177
#xdmcp-key=
greeter-session=lightdm-gtk-greeter
#greeter-hide-users=false
#greeter-allow-guest=true
#greeter-show-manual-login=false
#greeter-show-remote-login=true
#user-session=xfce4
#allow-user-switching=true
#allow-guest=true
#guest-session=
#session-wrapper=lightdm-session
#greeter-wrapper=
#guest-wrapper=
#display-setup-script=
#display-stopped-script=
#greeter-setup-script=
#session-setup-script=
#session-cleanup-script=
#autologin-guest=false
autologin-user=root
autologin-user-timeout=0
greeter-session=lightdm-gtk-greeter
greeter-hide-users=false
greeter-show-manual-login=true
greeter-show-remote-login=false
user-session=openbox-session
display-setup-script=/usr/local/bin/lightdm-display-setup
session-setup-script=/usr/local/bin/lightdm-session-setup
#autologin-in-background=false
#autologin-session=
#exit-on-failure=false
[LightDM]
minimum-display-number=0
minimum-vt=7
lock-memory=true
user-authority-in-system-dir=false
guest-account-script=guest-account
logind-check-graphical=false
log-directory=/var/log/lightdm
run-directory=/run/lightdm
cache-directory=/var/cache/lightdm
sessions-directory=/usr/share/xsessions
remote-sessions-directory=/usr/share/xgreeters
greeters-directory=/usr/share/xgreeters
backup-logs=true
\ No newline at end of file
#
# XDMCP Server configuration
#
# enabled = True if XDMCP connections should be allowed
# port = UDP/IP port to listen for connections on
# listen-address = Host/address to listen for XDMCP connections (use all addresses if not present)
# key = Authentication key to use for XDM-AUTHENTICATION-1 or blank to not use authentication (stored in keys.conf)
# hostname = Hostname to report to XDMCP clients (defaults to system hostname if unset)
#
# The authentication key is a 56 bit DES key specified in hex as 0xnnnnnnnnnnnnnn. Alternatively
# it can be a word and the first 7 characters are used as the key.
#
[XDMCPServer]
#enabled=false
#port=177
#listen-address=
#key=
#hostname=
#
# VNC Server configuration
#
# enabled = True if VNC connections should be allowed
# command = Command to run Xvnc server with
# port = TCP/IP port to listen for connections on
# listen-address = Host/address to listen for VNC connections (use all addresses if not present)
# width = Width of display to use
# height = Height of display to use
# depth = Color depth of display to use
#
[VNCServer]
#enabled=false
#command=Xvnc
#port=5900
#listen-address=
#width=1024
#height=768
#depth=8
\ No newline at end of file
#%PAM-1.0
#auth required pam_succeed_if.so user != root quiet_success
auth required pam_env.so
auth required pam_permit.so
@include common-account
......
......@@ -29,8 +29,12 @@ cat > "$TARGET_MOUNT/root/.xsession" << 'EOF'
#!/bin/bash
# Xsession for installed system with OpenVPN and MBetterClient
# Start Openbox window manager in background
openbox &
# Disable XFCE PolicyKit agent to prevent conflict with elogind
export XDG_CONFIG_HOME=/root/.config
xfconf-query -c xfce4-session -p /compat/LaunchGNOME -s false -t bool
# Start XFCE4 window manager in background
startxfce4 &
# Wait for X11 to be ready
sleep 2
......@@ -120,6 +124,15 @@ elif [ -d "$TARGET_MOUNT/etc/init.d" ]; then
fi
echo "SSH service enabled on installed system"
# 8.5. Install xfce4-power-manager-plugins on installed system
echo "Installing xfce4-power-manager-plugins on installed system..."
if [ -f "$TARGET_MOUNT/etc/apt/sources.list" ]; then
chroot "$TARGET_MOUNT" apt-get update
chroot "$TARGET_MOUNT" apt-get install -y xfce4-power-manager-plugins
else
echo "Warning: Cannot install xfce4-power-manager-plugins - no sources.list found"
fi
# 9. Configure fstab - ensure no overlay fs and no tmpfs for /tmp
echo "Configuring fstab for installed system..."
if [ -f "$TARGET_MOUNT/etc/fstab" ]; then
......
......@@ -113,7 +113,7 @@ vim
# Font packages
fonts-noto-color-emoji
fonts-symbola
fonts-twemoji
# fonts-twemoji
fonts-recommended
fonts-dejavu
fonts-liberation
......@@ -152,6 +152,9 @@ laptop-detect
# VMware tools for virtual machine support
open-vm-tools
# XFCE power manager plugins
xfce4-power-manager-plugins
# Additional WiFi and network utilities
ethtool
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment