mshernandez5 / WelcomeXP

A nody-greeter / web-greeter 3.0 theme to mimic the Windows XP login screen.
79 stars 7 forks source link

Missing theme #5

Closed lukynmatuska closed 3 years ago

lukynmatuska commented 3 years ago

Hello,

this theme look like really cool and I want to use it on my old laptop. But after installing and reboot it stops on this: Screenshot_20210111_011104

mshernandez5 commented 3 years ago

Hello,

Just to be sure, you are using lightdm-webkit2-greeter rather than the older lightdm-webkit-greeter correct?

If so, what are the contents of /var/log/lightdm/seat0-greeter.log, ex. sudo cat /var/log/lightdm/seat0-greeter.log?

lukynmatuska commented 3 years ago

Hi,

thank you for your fast response. I've got installed lightdm-webkit2-greeter and the CinXP theme, but not set as active.

sudo cat /var/log/lightdm/seat0-greeter.log (on SSH) returned: file:///usr/share/lightdm-webkit/themes/WelcomeXP/js/main.js:74:58: CONSOLE JS ERROR Session returned error code 1

mshernandez5 commented 3 years ago

Which distribution and version of lightdm-webkit2-greeter are you using? Unfortunately the error is a little vague but I can see if I can reproduce it on a similar setup.

lukynmatuska commented 3 years ago

I am using Debian Buster. apt-cache policy lightdm-webkit2-greeter:

lightdm-webkit2-greeter:
  Installed: 2.2.5-1+15.8
  Candidate: 2.2.5-1+15.8
  Version table:
 *** 2.2.5-1+15.8 500
        500 http://download.opensuse.org/repositories/home:/antergos/Debian_9.0  Packages
        100 /var/lib/dpkg/status
mshernandez5 commented 3 years ago

I got some time and installed Debian 10 in a VirtualBox and was able to use the theme without issues after the configuration. Let's take a closer look at how you have everything configured.

Can you give the full output of: cat /etc/lightdm/lightdm.conf cat /etc/lightdm/lightdm-webkit2-greeter.conf ls -l /usr/share/lightdm-webkit/themes/WelcomeXP

Hopefully we can find out what is going on and get this theme working for you.

lukynmatuska commented 3 years ago

There are the outputs of the commands:

cat /etc/lightdm/lightdm.conf:

#
# 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=false
#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, unity)
# 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-backend = X backend to use (mir)
# 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)
# unity-compositor-command = Unity compositor command to run (can also contain arguments e.g. unity-system-compositor -special-option)
# unity-compositor-timeout = Number of seconds to wait for compositor to start
# greeter-session = Session to load for greeter
#greeter-session=lightdm-webkit2-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-backend=
#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=
#unity-compositor-command=unity-system-compositor
#unity-compositor-timeout=60
#greeter-session=example-gtk-gnome
#############greeter-session=lightdm-webkit2-greeter
greeter-session=lightdm-webkit2-greeter
#greeter-hide-users=false
greeter-hide-users=false
#greeter-allow-guest=true
#greeter-show-manual-login=false
#greeter-show-remote-login=true
#user-session=default
#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=
#autologin-user-timeout=0
#autologin-in-background=false
#autologin-session=
#exit-on-failure=false

#
# 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

cat /etc/lightdm/lightdm-webkit2-greeter.conf:

#
# [greeter]
# debug_mode          = Greeter theme debug mode.
# detect_theme_errors = Provide an option to load a fallback theme when theme errors are detected.
# screensaver_timeout = Blank the screen after this many seconds of inactivity.
# secure_mode         = Don't allow themes to make remote http requests.
# time_format         = A moment.js format string so the greeter can generate localized time for display.
# time_language       = Language to use when displaying the time or "auto" to use the system's language.
# webkit_theme        = Webkit theme to use.
#
# NOTE: See moment.js documentation for format string options: http://momentjs.com/docs/#/displaying/format/
#

[greeter]
debug_mode          = false
detect_theme_errors = true
screensaver_timeout = 300
secure_mode         = true
time_format         = LT
time_language       = auto
#webkit_theme        = antergos
webkit_theme = WelcomeXP
#webkit-theme = aqua

#
# [branding]
# background_images = Path to directory that contains background images for use by themes.
# logo              = Path to logo image for use by greeter themes.
# user_image        = Default user image/avatar. This is used by themes for users that have no .face image.
#
# NOTE: Paths must be accessible to the lightdm system user account (so they cannot be anywhere in /home)
#

[branding]
background_images = /usr/share/backgrounds
logo              = /usr/share/help/C/ubuntu-help/figures/ubuntu-logo.png
user_image        = /usr/share/pixmaps/faces/sunset.jpg

ls -l /usr/share/lightdm-webkit/themes/WelcomeXP:

total 40
drwxr-xr-x 2 root root 4096 led 11 00:43 css
drwxr-xr-x 2 root root 4096 led 11 00:43 fonts
drwxr-xr-x 2 root root 4096 led 11 00:43 img
-rwxr-xr-x 1 root root 5689 led 11 00:43 index.html
-rwxr-xr-x 1 root root  110 led 11 00:43 index.theme
drwxr-xr-x 2 root root 4096 led 11 00:43 js
-rwxr-xr-x 1 root root 4948 led 11 00:43 README.md
drwxr-xr-x 2 root root 4096 led 11 00:43 screenshot
mshernandez5 commented 3 years ago

The most likely problem I can think of is that the default user session, for reasons I am not entirely sure of, is not properly set at the point where the script from this theme executes so when the script attempts to start your desktop environment it cannot proceed.

I assume that you are using Cinnamon since you are also using the CinnXP theme; in that case you can try to set user-session=cinnamon in /etc/lightdm/lightdm.conf under the seat defaults and restarting to see if the error persists when you attempt to login.

From the command-line, you can edit the configuration using the nano editor (if you don't already have a preference for command-line editors). ex. sudo nano /etc/lightdm/lightdm.conf

Let me know if this helps at all!

lukynmatuska commented 3 years ago

You've fixed that! So I think you should add this step to the installation tutorial.

And now is time to celebrate! giphy-downsized-large

Is there any idea how to use this as a lock screen?

mshernandez5 commented 3 years ago

I'm glad it's working! I am not sure about including this in the installation steps because in every system I've tested to far the default was correct without any modification necessary, and if this is set incorrectly then it can cause trouble. I'm not sure why the default was causing problems on your system before setting it manually and don't know if enough other systems would have similar issues to add that step and add extra risk to the installation.

I might make some changes that could alleviate this problem in the future though. Many other themes look at all available desktop environments from a list, while my theme only checks for the default (since adding a dropdown list could break the XP experience). I could try checking if the default is problematic before attempting to login then simply use the first known desktop environment from the list in that case, which would probably let you get to the desktop even if the default is not correct.

As for the lock screen, that is something I am interested in as well. There is no way to get it working currently but when I get time I am going to look into it and see if it can be done. I'll try to let you know if it ends up happening!

lukynmatuska commented 3 years ago

Fine, I think It's time to close this issue. Let me know about the lock screen on my email.