diff --git a/build.sh b/build.sh index 8790182..3a8e90b 100755 --- a/build.sh +++ b/build.sh @@ -969,8 +969,6 @@ configure_live_operator_session() { "${MOUNT_POINT}/usr/local/bin/clawdie-bootstrap-launch.sh" install -m 0755 "${LIVE_SESSION_DIR}/clawdie-noblank-guard.sh" \ "${MOUNT_POINT}/usr/local/bin/clawdie-noblank-guard.sh" - install -m 0755 "${LIVE_SESSION_DIR}/clawdie-xfce-visuals-guard.sh" \ - "${MOUNT_POINT}/usr/local/bin/clawdie-xfce-visuals-guard.sh" install -m 0755 "${LIVE_SESSION_DIR}/hw-report" \ "${MOUNT_POINT}/usr/local/bin/hw-report" @@ -1029,8 +1027,6 @@ EOF "${MOUNT_POINT}/usr/local/etc/xdg/autostart/clawdie-bootstrap.desktop" install -m 0644 "${LIVE_SESSION_DIR}/autostart/clawdie-noblank-guard.desktop" \ "${MOUNT_POINT}/usr/local/etc/xdg/autostart/clawdie-noblank-guard.desktop" - install -m 0644 "${LIVE_SESSION_DIR}/autostart/clawdie-xfce-visuals-guard.desktop" \ - "${MOUNT_POINT}/usr/local/etc/xdg/autostart/clawdie-xfce-visuals-guard.desktop" mkdir -p "${MOUNT_POINT}/usr/local/etc/X11/xorg.conf.d" install -m 0644 "${LIVE_SESSION_DIR}/xorg.conf.d/30-keyboard.conf" \ "${MOUNT_POINT}/usr/local/etc/X11/xorg.conf.d/30-keyboard.conf" @@ -1358,8 +1354,8 @@ EOF fi # Keep a real hostname so startx/xauth do not derive invalid display names # such as bare :0 or /unix:0 on the installer-derived "Amnesiac" profile. - set_config_line "${MOUNT_POINT}/etc/rc.conf" 'hostname="clawdie-live"' - if ! grep -Eq '^hostname="clawdie-live"' "${MOUNT_POINT}/etc/rc.conf"; then + set_config_line "${MOUNT_POINT}/etc/rc.conf" 'hostname="usb.clawdie.home.arpa"' + if ! grep -Eq '^hostname="usb.clawdie.home.arpa"' "${MOUNT_POINT}/etc/rc.conf"; then echo "ERROR: live USB hostname is not configured in /etc/rc.conf" exit 1 fi @@ -1405,12 +1401,11 @@ EOF # hidbus / iichid — HID-over-I²C bridge for modern touchpads / keyboards. # hms / hmt / hkbd — HID mouse / multitouch / keyboard class drivers. # acpi_video — backlight control sysctls (hw.acpi.video.lcd0.brightness). - # acpi_asus / acpi_asus_wmi — ASUS-laptop fn-keys, hotkeys, fan control. No-op on non-ASUS hardware. append_rc_list_values "${MOUNT_POINT}/etc/rc.conf" kld_list \ linux linux64 zfs \ cuse \ hidbus iichid hms hmt hkbd \ - acpi_video acpi_asus acpi_asus_wmi + acpi_video mkdir -p "${MOUNT_POINT}/etc/ssh/sshd_config.d" install -m 0644 "${LIVE_SESSION_DIR}/sshd-live.conf" \ @@ -1546,7 +1541,7 @@ EOF mkdir -p "${MOUNT_POINT}/usr/local/etc/xdg/xfce4/xfconf/xfce-perchannel-xml" cp "${PANEL_SKEL}/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml" \ "${MOUNT_POINT}/usr/local/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml" - for _xfconf_xml in xsettings.xml xfwm4.xml xfce4-desktop.xml xfce4-power-manager.xml; do + for _xfconf_xml in xsettings.xml xfwm4.xml xfce4-desktop.xml xfce4-power-manager.xml displays.xml; do if [ -f "${PANEL_SKEL}/.config/xfce4/xfconf/xfce-perchannel-xml/${_xfconf_xml}" ]; then cp "${PANEL_SKEL}/.config/xfce4/xfconf/xfce-perchannel-xml/${_xfconf_xml}" \ "${MOUNT_POINT}/usr/local/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/${_xfconf_xml}" @@ -1589,9 +1584,14 @@ EOF echo " Installing brand icons..." mkdir -p \ "${MOUNT_POINT}/usr/local/share/clawdie-iso/icons" \ + "${MOUNT_POINT}/usr/local/share/icons/hicolor/48x48/apps" \ "${MOUNT_POINT}/usr/local/share/icons/hicolor/64x64/apps" \ "${MOUNT_POINT}/usr/local/share/icons/hicolor/scalable/apps" cp "${_icons_dir}"/* "${MOUNT_POINT}/usr/local/share/clawdie-iso/icons/" 2>/dev/null || true + if [ -f "${_icons_dir}/clawdie-start-48.png" ]; then + install -m 0644 "${_icons_dir}/clawdie-start-48.png" \ + "${MOUNT_POINT}/usr/local/share/icons/hicolor/48x48/apps/clawdie-start.png" + fi if [ -f "${_icons_dir}/clawdie-start.png" ]; then install -m 0644 "${_icons_dir}/clawdie-start.png" \ "${MOUNT_POINT}/usr/local/share/icons/hicolor/64x64/apps/clawdie-start.png" diff --git a/live/operator-session/autostart/clawdie-xfce-visuals-guard.desktop b/live/operator-session/autostart/clawdie-xfce-visuals-guard.desktop deleted file mode 100644 index 1a10853..0000000 --- a/live/operator-session/autostart/clawdie-xfce-visuals-guard.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Type=Application -Name=Clawdie XFCE Visual Guard -Comment=Re-apply Clawdie live USB theme, icon, and wallpaper settings -Exec=/usr/local/bin/clawdie-xfce-visuals-guard.sh -OnlyShowIn=XFCE; -X-GNOME-Autostart-enabled=true -Terminal=false diff --git a/live/operator-session/clawdie-xfce-visuals-guard.sh b/live/operator-session/clawdie-xfce-visuals-guard.sh deleted file mode 100755 index 97a38e2..0000000 --- a/live/operator-session/clawdie-xfce-visuals-guard.sh +++ /dev/null @@ -1,87 +0,0 @@ -#!/bin/sh -# Best-effort live-session visual guard for XFCE. -# -# XFCE may create monitor-specific desktop keys only after xfdesktop starts, and -# some panel plugins are stricter about themed icon names than absolute paths. -# Re-assert the operator USB visual contract after login without failing the -# session if a component is missing. - -LOG="${HOME}/.clawdie-xfce-visuals-guard.log" -WALLPAPER="/usr/local/share/clawdie-iso/wallpapers/clawdie-operator-bg.png" -START_ICON="clawdie-start" - -log() { - printf '%s %s\n' "$(date -u '+%Y-%m-%dT%H:%M:%SZ')" "$*" >>"$LOG" 2>/dev/null || true -} - -set_xfconf() { - _channel="$1" - _property="$2" - _type="$3" - _value="$4" - - command -v xfconf-query >/dev/null 2>&1 || return 0 - xfconf-query -c "$_channel" -p "$_property" -s "$_value" >/dev/null 2>&1 || \ - xfconf-query -c "$_channel" -p "$_property" -n -t "$_type" -s "$_value" >/dev/null 2>&1 || true -} - -apply_theme() { - set_xfconf xsettings /Net/ThemeName string Greybird - set_xfconf xsettings /Net/IconThemeName string Papirus - set_xfconf xsettings /Net/CursorTheme string DMZ-White - set_xfconf xsettings /Net/CursorSize int 24 - set_xfconf xsettings /Gtk/FontName string "Noto Sans 11" - set_xfconf xsettings /Gtk/MonospaceFontName string "Hack 11" -} - -apply_panel() { - set_xfconf xfce4-panel /plugins/plugin-1/button-icon string "$START_ICON" - set_xfconf xfce4-panel /plugins/plugin-1/show-button-icon bool true - set_xfconf xfce4-panel /plugins/plugin-1/show-button-title bool true - set_xfconf xfce4-panel /panels/panel-1/size uint 40 - set_xfconf xfce4-panel /panels/panel-1/icon-size uint 2 - set_xfconf xfce4-panel /plugins/plugin-8/square-icons bool true -} - -apply_wallpaper() { - [ -f "$WALLPAPER" ] || { - log "wallpaper missing: $WALLPAPER" - return 0 - } - command -v xfconf-query >/dev/null 2>&1 || return 0 - - _bases="$(xfconf-query -c xfce4-desktop -l 2>/dev/null | awk '/\/last-image$/ { sub(/\/last-image$/, ""); print }')" - if [ -z "$_bases" ]; then - _bases='/backdrop/screen0/monitor0/workspace0 -/backdrop/screen0/monitorDefault/workspace0' - fi - - printf '%s\n' "$_bases" | while IFS= read -r _base; do - [ -n "$_base" ] || continue - set_xfconf xfce4-desktop "${_base}/last-image" string "$WALLPAPER" - set_xfconf xfce4-desktop "${_base}/image-path" string "$WALLPAPER" - set_xfconf xfce4-desktop "${_base}/image-style" int 5 - set_xfconf xfce4-desktop "${_base}/image-show" bool true - set_xfconf xfce4-desktop "${_base}/color-style" int 0 - done - - if command -v xfdesktop >/dev/null 2>&1; then - xfdesktop --reload >/dev/null 2>&1 || true - fi -} - -run_once() { - log "applying XFCE visual guard" - apply_theme - apply_panel - apply_wallpaper -} - -# Run more than once because xfdesktop/panel may create monitor/plugin state -# after XDG autostart begins. -sleep 3 -run_once -sleep 7 -run_once -sleep 15 -run_once diff --git a/live/operator-session/hw-report b/live/operator-session/hw-report index 33f0836..013da2e 100755 --- a/live/operator-session/hw-report +++ b/live/operator-session/hw-report @@ -245,7 +245,6 @@ run_shell_if_present usbhid-dump usbhid-dump-version "usbhid-dump --help 2>&1 | run_if_present cat clawdie-live-gpu-log /var/log/clawdie-live-gpu.log run_if_present cat clawdie-noblank-guard-log /home/clawdie/.clawdie-noblank-guard.log -run_if_present cat clawdie-xfce-visuals-guard-log /home/clawdie/.clawdie-xfce-visuals-guard.log run_if_present cat clawdie-touchpad-guard-log /home/clawdie/.clawdie-touchpad-guard.log run_if_present cat sndstat /dev/sndstat run_if_present mixer mixer-s -s diff --git a/live/operator-session/icons/clawdie-start-48.png b/live/operator-session/icons/clawdie-start-48.png new file mode 100644 index 0000000..bcae09a Binary files /dev/null and b/live/operator-session/icons/clawdie-start-48.png differ diff --git a/live/operator-session/panel-skel/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml b/live/operator-session/panel-skel/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml new file mode 100644 index 0000000..19feeac --- /dev/null +++ b/live/operator-session/panel-skel/.config/xfce4/xfconf/xfce-perchannel-xml/displays.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/live/operator-session/panel-skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml b/live/operator-session/panel-skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml index 3a7d1be..73293f5 100644 --- a/live/operator-session/panel-skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml +++ b/live/operator-session/panel-skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml @@ -7,12 +7,34 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/live/operator-session/panel-skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml b/live/operator-session/panel-skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml index f72b289..58eba59 100644 --- a/live/operator-session/panel-skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml +++ b/live/operator-session/panel-skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml @@ -40,6 +40,7 @@ + @@ -93,13 +94,13 @@ - + - +