GithubHelp home page GithubHelp logo

sddm / sddm Goto Github PK

View Code? Open in Web Editor NEW
1.8K 81.0 326.0 9.41 MB

QML based X11 and Wayland display manager

License: GNU General Public License v2.0

CMake 5.07% QML 15.56% Shell 0.98% C++ 77.35% Perl 1.05%
qml xorg wayland qtquick

sddm's Introduction

INTRODUCTION

IRC Network

SDDM is a modern display manager for X11 and Wayland sessions aiming to be fast, simple and beautiful. It uses modern technologies like QtQuick, which in turn gives the designer the ability to create smooth, animated user interfaces.

SDDM is extremely themeable. We put no restrictions on the user interface design, it is completely up to the designer. We simply provide a few callbacks to the user interface which can be used for authentication, suspend etc.

To further ease theme creation we provide some premade components like a textbox, a combox etc.

There are a few sample themes distributed with SDDM. They can be used as a starting point for new themes.

SCREENSHOTS

sample screenshot

VIDEOS

RESOURCES

INSTALLATION

Qt >= 5.15.0 is required to use SDDM.

SDDM runs the greeter as a system user named "sddm" whose home directory needs to be set to /var/lib/sddm.

If pam and systemd are available, the greeter will go through logind which will give it access to drm devices.

Distributions without pam and systemd will need to put the "sddm" user into the "video" group, otherwise errors regarding GL and drm devices might be experienced.

VIRTUAL TERMINALS

SDDM is assumed to start at the tty specified by the cmake variable SDDM_INITIAL_VT which is an integer and defaults to 1.

If SDDM_INITIAL_VT wasn't available, SDDM will use the next available one instead.

You can override SDDM_INITIAL_VT if you want to have a different one if, for example, you were planning on using tty1 for something else.

LICENSE

Source code of SDDM is licensed under GNU GPL version 2 or later (at your choosing). QML files are MIT licensed and images are CC BY 3.0.

TROUBLESHOOTING

NVIDIA Prime

Add this at the bottom of the Xsetup script:

if [ -e /sbin/prime-offload ]; then
    echo running NVIDIA Prime setup /sbin/prime-offload, you will need to manually run /sbin/prime-switch to shut down
    /sbin/prime-offload
fi

No User Icon

SDDM reads user icon from either ~/.face.icon or FacesDir/username.face.icon

You need to make sure that SDDM user have permissions to read those files. In case you don't want to allow other users to access your $HOME you can use ACLs if your filesystem does support it.

setfacl -m u:sddm:x /home/username
setfacl -m u:sddm:r /home/username/.face.icon

Custom DPI

In order to set custom DPI for high resolution screens you should configure Xorg yourself. An easy way is to pass an additional argument to Xorg.

Edit /etc/sddm.conf, go to the X11 section and change ServerArguments like this:

ServerArguments=-nolisten tcp -dpi 192

to set DPI to 192.

As an alternative you can edit Xorg configuration xorg.conf, please refer to the Xorg documentation.

sddm's People

Contributors

aavci1 avatar adriaandegroot avatar alebastr avatar aleixpol avatar arrowd avatar aseigo avatar conan-kudo avatar cordlandwehr avatar davidedmundson avatar davispuh avatar eliasp avatar hhl avatar hsitter avatar ilpianista avatar jleclanche avatar kscd avatar luis-pereira avatar mobius3 avatar nanolx avatar naund avatar nmikhailov avatar plfiorini avatar radiosity avatar rakuco avatar rbuj avatar rshah avatar spremi avatar super-nathan avatar vogtinator avatar welaq avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sddm's Issues

Introcude to QML text field widget with language icon

Introcude to QML text field widget with language icon at right (or left) accoring to left or right input method.

Also will be great if such icon(text) with current keyboard layout will be also as separate widget. E.g. to add it on the right top corner.

No shutdown/reboot in KDE

When logged in using SDDM, KDE doesn't show the shut down and reboot options in the kickoff menu. When logged in through KDM these options are available.

Unable to completely stop SDDM with start-stop-daemon

I'm attempting to start/stop SDDM (git master) on Gentoo using the following init script.

Note: Gentoo has a generic X startup script that supports a number of different display managers. It's more complicated so I'm now using the script below to keep it simple during testing. The end result is the same with both scripts.

#!/sbin/runscript

start() {
    ebegin "Starting SDDM"
    start-stop-daemon --start --exec /usr/bin/sddm --background \
        --make-pidfile --pidfile /var/run/sddm.pid
    eend $?
}

stop () {
    ebegin "Stopping SDDM"
    start-stop-daemon --stop --exec /usr/bin/sddm --pidfile /var/run/sddm.pid
    eend $?
}

I'm able to start SDDM successfully and the following processes are present.

/usr/bin/sddm
/usr/bin/X :0 -auth /run/sddm/A:0-PrhdeZ -nolisten tcp vt07
/usr/bin/sddm-greeter --socket sddm-:0-CFnGlB --theme /usr/share/apps/sddm/themes/maui

When stopping SDDM the init script kills the sddm process but the X and sddm-greeter processes remain.

/usr/bin/X :0 -auth /run/sddm/A:0-PrhdeZ -nolisten tcp vt07
/usr/bin/sddm-greeter --socket sddm-:0-CFnGlB --theme /usr/share/apps/sddm/themes/maui

Manpage

A man page would be nice. Certainly one that includes info about sddm.conf too.

Testing themes

Testing themes does not work any more with
$ sddm -t /path/to/theme
but instead works with
$ sddm-greater --theme /path/to/theme

The README file has to be updated

The font used in the maui theme doesn't support certain characters

Please look at the screen-shot sddm-maui-font

It seems that the included font doesn't have Romanian diacritics (ăâșț) and maybe others.

Using Oxygen as the font is not nice but gets the job done: sddm-maui-font1-oxygen

It would be better to only use oxygen for the day name but not for the clock itself.

xkbset repeatkeys has no effect on autostart

I run a script which contains this on autostart:

xkbset repeatkeys rate 175 35

It has no effect. The script runs fine (other lines of the script are in effect), but this seems to be reset when starting my session. Setting it later works fine.

Exit from fullscreen flash video leads to white screen

I switched to SDDM from SLiM and found out the following bug: when I exit from fullscreen playback mode at any site that uses adobe flash player, I see only white screen and mouse cursor, background processes continue, I can only exit with power off button or CTRL+F1. Switching back to SLiM solved the problem. My config - Arch Linux and Razor-qt-git, Browser - Google Chrome.
Here is video, where this situation is shown.
http://www.youtube.com/watch?v=TizLtrAAp6g

Problems with xcb usage

Hi,
I did a github search on some xcb functions to see where they're used, and found this project which seems to be maintained. I noticed a couple of issues you might want to fix:

Sorry I can't offer any patches,
Ran

PAM context is lost between authentication and session start

Hi everyone,
during my latest testing, I've come across the following issue:
In Fedora, PulseAudio depends heavily on user authentication with the PAM/logind stack. Users that didn't go through the whole authentication process with it don't have sound enabled.
The problem here (in my opinion) lies in the fact, SDDM doesn't preserve the PAM context (handle) between calls to Authenticator::authenticate and Authenticator::start on session start. The authenticate method does check the user's password, yes, but the context isn't preserved when he's logged in "by force" in the start method.
I was trying to fix the problem now but my experience with PAM isn't really huge so I'm asking you guys if you could please check it to, too.
Thank you.

KeyboardModel.cpp "looser throw specifier"

Can't build on Gentoo:

/var/tmp/portage/x11-misc/sddm-9999/work/sddm-9999/src/greeter/KeyboardModel.cpp:113:9: error: looser throw specifier for ‘virtual SDDM::XcbKeyboardBackend::~XcbKeyboardBackend()’

/var/tmp/portage/x11-misc/sddm-9999/work/sddm-9999/src/greeter/KeyboardModel.cpp:92:17: error: overriding ‘virtual SDDM::KeyboardBackend::~KeyboardBackend() noexcept (true)’

Sddm did not replace default kdm

Hi, I've built Sddm exactly as documents are saying:

mkdir build

cd build

cmake .. -DCMAKE_INSTALL_PREFIX=/usr

make

sudo make install

...But it doesn't start after reboot...

I'm using openSUSE. I've tried setting default display manager to 'sddm' but it doesn't help either.

What should I do? :-(

Can't build latest sddm from git

Hi, I can't build sddm from git since some of the latest changes:

-- The C compiler identification is GNU 4.8.1
-- The CXX compiler identification is GNU 4.8.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Release build
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.28") 
-- Performing Test PAM_MESSAGE_CONST
-- Performing Test PAM_MESSAGE_CONST - Success
-- Found PAM: /usr/lib64/libpam.so;/usr/lib64/libdl.so
-- checking for module 'xcb'
--   found xcb, version 1.9.1
-- Found XCB: /usr/lib64/libxcb.so  
-- checking for module 'xcb-xkb'
--   found xcb-xkb, version 1.9.1
-- Found XKB: /usr/lib64/libxcb-xkb.so  
CMake Error at CMakeLists.txt:46 (find_package):
  By not providing "FindQt5LinguistTools.cmake" in CMAKE_MODULE_PATH this
  project has asked CMake to find a package configuration file provided by
  "Qt5LinguistTools", but CMake did not find one.

  Could not find a package configuration file provided by "Qt5LinguistTools"
  with any of the following names:

    Qt5LinguistToolsConfig.cmake
    qt5linguisttools-config.cmake

  Add the installation prefix of "Qt5LinguistTools" to CMAKE_PREFIX_PATH or
  set "Qt5LinguistTools_DIR" to a directory containing one of the above
  files.  If "Qt5LinguistTools" provides a separate development package or
  SDK, be sure it has been installed.


-- Configuring incomplete, errors occurred!

I have tried the package in AUR.

add maximumUid support

In KDM it is possible to not only set a minimumUid for logins, but also a maximumUid. On my system, this is set to 65.000 per default, to hide 'nobody' from the login prompt.

I've added a few lines here and there to sddm to make that work.

Can not compile on GNU/Linux 7.0 (wheezy)

here is buildlog

[  4%] Automoc for target sddm
[  4%] Built target sddm_automoc
[  8%] Building CXX object src/CMakeFiles/sddm.dir/daemon/PowerManager.cpp.o
/home/kermit/devel/sddm/src/daemon/PowerManager.cpp:28:18: error: operator '!' has no right operand
/home/kermit/devel/sddm/src/daemon/PowerManager.cpp:40:28: error: operator '!' has no right operand
/home/kermit/devel/sddm/src/daemon/PowerManager.cpp:67:19: error: #elif with no expression
/home/kermit/devel/sddm/src/daemon/PowerManager.cpp:131:19: error: #elif with no expression
make[2]: *** [src/CMakeFiles/sddm.dir/daemon/PowerManager.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/sddm.dir/all] Error 2
make: *** [all] Error 2

here is source code:

#if !LOGIN1_FOUND
#include "Configuration.h"

#include <QProcess>
#endif

my gcc version:

gcc version 4.7.2 (Debian 4.7.2-5)

Add support for automatically restarting a session (auto re-login)

Would it be possible to add support for automatically restarting a session when it ends? This is very useful when a session ends unexpectedly and needs to be restarted e.g. media center application crashes and no keyboard/mouse is connected.

With auto login enabled SDDM will start the greeter when the session ends but this requires interaction by the user.

Currently I'm using KDM with it's 'AutoLoginAgain' option but would much prefer to use SDDM as it's much lighter on the dependencies/resources.

Add suport for login with enter key

Qt have different key codes for enter (keypad) and return (main keyboard area) keys, and SDDM need to login at the press of any of then.
The patch at http://pastebin.com/rCif9Qmh make this for all themes.

As we have components, maybe we can inplement more two componets, a PasswordBox (with login keys and ofuscation features) and a UserBox (with a signal to change user picture and load last session) for the theme designers to not have to implement these functions, but only the apparence.

sddm theme not updated unless restarted

New selected theme didnot take effect until the computer is restarted.
Try changing current theme to other theme, then logout.
The old theme still displayed instead of new theme.

Build error on gcc 4.8.0, needs -lpthread LDFLAGS

I got build error after upgrading gcc to 4.8.0

/usr/lib/gcc/i486-slackware-linux/4.8.0/../../../../i486-slackware-linux/bin/ld: CMakeFiles/sddm.dir/daemon/Authenticator.cpp.o: undefined reference to symbol '__pthread_key_create@@GLIBC_2.0'
/usr/lib/gcc/i486-slackware-linux/4.8.0/../../../../i486-slackware-linux/bin/ld: note: '__pthread_key_create@@GLIBC_2.0' is defined in DSO /lib/libpthread.so.0 so try adding it to the linker command line
/lib/libpthread.so.0: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
make[2]: *** [src/sddm] Error 1
make[2]: Leaving directory `/tmp/wlsbuild/sddm-0.1.0/build'
make[1]: *** [src/CMakeFiles/sddm.dir/all] Error 2
make[1]: Leaving directory `/tmp/wlsbuild/sddm-0.1.0/build'
make: *** [all] Error 2

As a workaround, I have to passed LDFLAGS = "-lpthread" before cmake and the build complete without error.

Multi-seat support

I would like to propose multi-seat support in SDDM in a similar way it's proposed in LightDM.

Maybe this bug should be broken in four, namely:

1. Basic multi-seat support (as of PR #564)

  • Implement steps 3 and 4 of systemd-logind multi-seat protocol:
    • Setting PAM variable XDG_SEAT=SEAT_ID is already done in SDDM.
    • Command-line option -seat SEAT_ID needs to be passed to Xorg.
    • If SEAT_ID is not seat0, don't allocate a VT for Xorg and don't pass "vtXX" command-line argument. Since release 1.16, non-seat0 Xorg servers don't touch VTs.
      • For Xorg servers older than 1.16, systemd multi-seat-x wrapper is required for starting Xorg on non-seat0 seats (if it's not available, start Xorg with options "-sharevts -config non-seat0.conf.multi-seat"). WARNING: multi-seat-x wrapper was dropped in systemd 217.

2. Automatic multi-seat support (as of LightDM#1190581)

  • Implement steps 1 and 2 of systemd-logind multi-seat protocol:
    • If systemd-logind is running in the system, do the following:
      • Instantiate a QDBusInterface to org.freedesktop.login1.Manager.
      • Call login1 method ListSeats() once to get initial seat list and call SeatManager method createSeat() for each one.
      • Connect somehow login1 signals SeatNew() and SeatRemoved() signals to SeatManager slots createSeat() and removeSeat(), respectively.
      • For each seat added from logind, store its object path in a Seat object, in order to get its properties later (CanGraphical, CanMultiSession, etc.).
    • Otherwise, add statically a single seat named "seat0", as SDDM currently does.

3. Complete multi-seat support

  • Prevent user switching on seats that have property CanMultiSession=no.
    • CAUTION: do NOT prevent switching to greeter, or you can have problems when a user logs out from a non-seat0 seat.
  • Only spawn a greeter/start an autologin session on seats that have property CanGraphical=yes. Listen to DBus signal PropertyChanged() and react properly to changes of property CanGraphical.
    • A special use case (the only one, I believe) of CanGraphical property changing is the following: systemd boots so fast that SDDM service is started before main graphics device drivers are completely loaded. In this case, property CanGraphical for seat0 starts as no, and switches to yes after drivers are loaded.
    • CAUTION: CanGraphical support should be made optional, since it may break on cases that main graphics device has no DRM/KMS video driver (affects mainly VirtualBox guests before installing Guest Additions).

4. Additional steps

  • Support per-seat configurations in sddm.conf. Extend current [X11] and [Autologin] sections in a per-seat basis. I have three alternative proposals:
    • Make seat name appendable to section header. Example:
[X11]
(...) # Apply for all seats

[X11:seat0]
(...) # Apply for seat0 only (overrides entries from generic `[X11]` section)

[Autologin:seat-1]
(...) # Apply for seat-1 only

[Autologin:seat-foo*]
(...) # Apply for all seats matching glob seat-foo*
  • Support multiple [X11] / [Autologin] sections and introduce a new option MatchSeat. Example:
[X11]
(...) # Apply for all seats

[X11]
MatchSeat=seat0
(...) # Apply for seat0 only (overrides entries from generic `[X11]` section)

[Autologin]
MatchSeat=seat-1
(...) # Apply for seat-1 only

[Autologin]
MatchSeat=seat-foo*
(...) # Apply for all seats matching glob seat-foo*
  • Make seat name appendable to each option name within [X11] / [Autologin] sections. Example:
[X11]
ServerPath=(...) # Apply for all seats
ServerPath[seat0]=(...) # Apply for seat0 only (overrides generic entry above)

[Autologin]
User[seat-1]=(...) # Apply for seat-1 only
User[seat-foo*]=(...) # Apply for all seats matching glob seat-foo*

xfce won't deconnect when firefox is open

Hello,
i have notice that when i want deconnect (not reboot neither poweroff), the session block when firefox is open (not an other application). Even if i connect tty and i kill firefox process. I must kill x, then startxfce4.
It appears that happen with sddm but not with other DM.

I think it's ok now.
And not the fault of sddm....

link fails on opensuse

the error:

Linking CXX executable sddm
/usr/bin/cmake -E cmake_link_script CMakeFiles/sddm.dir/link.txt --verbose=1                                                 
/usr/bin/c++       CMakeFiles/sddm.dir/src/Authenticator.cpp.o CMakeFiles/sddm.dir/src/Configuration.cpp.o CMakeFiles/sddm.dir/src/Cookie.cpp.o CMakeFiles/sddm.dir/src/DisplayManager.cpp.o CMakeFiles/sddm.dir/src/LockFile.cpp.o CMakeFiles/sddm.dir/src/Main.cpp.o CMakeFiles/sddm.dir/src/SessionManager.cpp.o CMakeFiles/sddm.dir/sddm_automoc.cpp.o  -o sddm -rdynamic -lpam -ldl -lX11 -lQtDeclarative -lQtScript -lQtSvg -lQtXmlPatterns -lQtGui -lQtXml -lQtSql -lQtNetwork -lQtCore 
/usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/bin/ld: CMakeFiles/sddm.dir/src/Cookie.cpp.o: undefined reference to symbol 'clock_gettime@@GLIBC_2.2.5'
/usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/bin/ld: note: 'clock_gettime@@GLIBC_2.2.5' is defined in DSO /lib64/librt.so.1 so try adding it to the linker command line
/lib64/librt.so.1: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
make[2]: *** [sddm] Error 1

hotfix:

diff --git a/CMakeLists.txt b/CMakeLists.txt
index bd88f03..ce5535d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -28,7 +28,7 @@ if (USE_QT5)
   find_package(Qt5Core REQUIRED)

   add_executable(sddm ${SOURCES})
-  target_link_libraries(sddm ${PAM_LIBRARIES} ${X11_X11_LIB})
+  target_link_libraries(sddm ${PAM_LIBRARIES} ${X11_X11_LIB} rt)

   qt5_use_modules(sddm Widgets Quick)
 else()
@@ -38,5 +38,5 @@ else()
   include(${QT_USE_FILE})

   add_executable(sddm ${SOURCES})
-  target_link_libraries(sddm ${PAM_LIBRARIES} ${X11_X11_LIB} ${QT_LIBRARIES})
+  target_link_libraries(sddm ${PAM_LIBRARIES} ${X11_X11_LIB} ${QT_LIBRARIES} rt)
 endif(USE_QT5)

but maybe we don't need clock_gettime() at all... QDateTime::toTime_t(), QDateTime::toMSecSinceEpoch()?

SDDM crashes on logout

Today SDDM froze after logging out from razor-qt.
journalctl:

Mai 25 02:05:46 Archer polkitd[2852]: Unregistered Authentication Agent for unix-session:1 (system bus name :1.6, object path /org/razorqt/PolicyKit1/AuthenticationAgent, locale de_DE.UTF-8) (disconnected from bus)
Mai 25 02:05:46 Archer sddm[241]: /usr/bin/xauth:  file /var/run/xauth//A:0-dWVlva does not exist
Mai 25 02:05:46 Archer systemd-coredump[6777]: Process 6776 (sddm-greeter) dumped core.

sddm.log:

[02:05:46.860] (II)  DAEMON: User session ended. 
[02:05:46.860] (II)  DAEMON: Socket server stopping... 
[02:05:46.860] (II)  DAEMON: Socket server stopped. 
[02:05:46.860] (II)  DAEMON: Display server stopping... 
[02:05:46.926] (II)  DAEMON: Display server stopped. 
[02:05:46.926] (II)  DAEMON: Removing display : 0 ... 
[02:05:46.927] (II)  DAEMON: Adding new display : 0  on vt 7 ... 
[02:05:46.928] (II)  DAEMON: Adding cookie to "/var/run/xauth//A:0-dWVlva" 
[02:05:46.937] (II)  DAEMON: Display server starting... 
[02:05:46.938] (II)  DAEMON: Display server started. 
[02:05:46.938] (II)  DAEMON: Socket server starting... 
[02:05:46.939] (II)  DAEMON: Socket server started. 
[02:05:46.939] (II)  DAEMON: Greeter starting... 
[02:05:46.940] (II)  DAEMON: Greeter started. 
[02:05:46.966] (EE) QXcbConnection: Could not connect to display :0
[02:05:46.988] (II)  DAEMON: Greeter stopped. 

Any idea what could have caused it? Is it SDDMs fault?
I have noticed that after every logout (even if SDDM doesn't freeze) I get a warning simillar to

/usr/bin/xauth:  file /var/run/xauth//A:0-dWVlva does not exist

EDIT: It also appears on first login. Btw I've looked through journalctl logs for SDDM and it seems that I have this problem from the beginning.
EDIT2: SDDM also often freezes on shutdown.

SDDM doesn't start in Ubuntu

Hi, I have compiled sddm on Ubuntu 12.10 with qt4 and installed via make install. Then I have modified /etc/X11/default-display-manager setting /usr/bin/sddm. So when I reboot the system keeps forever on boot screen and X server crached, it doesnt find any display manager. The system boot fine by any other DM.
106.110 intel(0): [drm] Failed to open DRM device for pci:0000:00:02.0: No such file or directory
106.110 intel(0): Failed to become DRM master.
106.110 UnloadModule: "intel"
106.110 Screen(s) found, but none have a usable configuration.
[ 106.110]
Fatal server error:
[ 106.110] no screens found
106.110
Please consult the The X.Org Foundation support
at http://wiki.x.org
for help.
106.110 Please also check the log file at "/var/log/Xorg.0.log" for additional information.
106.110
[ 106.129] Server terminated with error (1). Closing log file.

CMake failed on gentoo without systemd

I try to build sddm, but I have issue with systemd. I have only udev, which on gentoo installs libsystemd-daemon but there is no systemd.

this pass on my system: pkg_check_modules(SYSTEMD "libsystemd-daemon")
this fails on my system: pkg_check_modules(SYSTEMD2 "systemd")

so after changing these lines of CMakeLists.txt

 pkg_check_modules(SYSTEMD "libsystemd-daemon")
-if(SYSTEMD_FOUND)
+pkg_check_modules(SYSTEMD2 "systemd")
+if(SYSTEMD2_FOUND)

it at least configures and compiles.

It is only the hack and I don't know if it works with systemd installed. It seems that it is not just my missconfiguration.

Export general environment variables earlier

While trying to set some additional environment variables via my ~/.pam_environment, I noticed that other variables like ${HOME} are not available when this file is read during session initialization. I then took a look into the pam_env.conf man page and I found this:

"For example, HOME is used below several times, but many PAM applications don't make it available by the time you need it."

I don't have any experience in writing display managers but it seems that in the source code (/src/daemon/Authenticator.cpp, lines 300 to 330) the two actions in question could easily be exchanged. Are there any reasons for this specific order?

Multi-monitor support

SDDM looks awful on 2 monitors; it's centered between the two and blank on the sides.

Mouse Pointer Theme doesn't get applied reliably

The mouse pointer theme doesn't get applied very reliably somehow. Sometimes I see the correct mouse theme, but mostly I see the ugly X default mouse pointer.

Interestingly I get the same issue on Razor-qt - sometimes the mouse theme applies but mostly it doesn't.

So maybe it's something Qt related?

make error: cc1plus: error: unrecognized command line option ‘-std=c++11’

I get the following error during make with git master on Gentoo:

cc1plus: error: unrecognized command line option ‘-std=c++11’

Output from cmake:

cmake .. -DCMAKE_INSTALL_PREFIX=/usr
-- The C compiler identification is GNU 4.6.3
-- The CXX compiler identification is GNU 4.6.3
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Release build
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.28")
-- Performing Test PAM_MESSAGE_CONST
-- Performing Test PAM_MESSAGE_CONST - Success
-- Found PAM: /usr/lib64/libpam.so;/usr/lib64/libdl.so
-- checking for module 'xcb'
-- found xcb, version 1.9
-- Found XCB: /usr/include
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - found
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - not found.
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found.
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found.
-- Found Qt4: /usr/bin/qmake (found version "4.8.4")
-- checking for module 'libsystemd-login'
-- package 'libsystemd-login' not found
-- checking for module 'upower-glib'
-- found upower-glib, version 0.9.19
-- checking for module 'systemd'
-- package 'systemd' not found
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dev/sddm/build

Output from make:

make
Scanning dependencies of target sddm_automoc
[ 4%] Automoc for target sddm
Generating moc_Configuration.cpp
Generating moc_Authenticator.cpp
Generating moc_DaemonApp.cpp
Generating moc_Display.cpp
Generating moc_DisplayServer.cpp
Generating moc_Greeter.cpp
Generating moc_PowerManager.cpp
Generating moc_SessionProcess.cpp
Generating moc_SignalHandler.cpp
Generating moc_SocketServer.cpp
[ 4%] Built target sddm_automoc
Scanning dependencies of target sddm
[ 8%] Building CXX object src/CMakeFiles/sddm.dir/common/Configuration.cpp.o
cc1plus: error: unrecognized command line option ‘-std=c++11’
make[2]: *** [src/CMakeFiles/sddm.dir/common/Configuration.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/sddm.dir/all] Error 2
make: *** [all] Error 2

add ability to use SDDM as locker

A lot of DM is not supporting the same UI as lock screen. Will be greate if SDDM will have such mechanizm.

E.g. run sddm --lock and it use the same theme but show locker screen.

Any ideas how it can be implemented?

Thanks,
Vladimir

Multiple issues in Ubuntu

Ubuntu 12.10 64 bits
Linux MACHINE 3.5.0-26-generic #42-Ubuntu SMP Fri Mar 8 23:18:20 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
NVIDIA 310.32 (650 GTX)
Qt5 (5.0.0)
sddm (Master git branch)
Xorg 1.7.7


One cannot just modify /etc/X11/default-display-manger in order to run sddm on Ubuntu. It seems the issue has already been categorized as sddm lacking a proper Upstart init script.

To run sddm, I stopped lightdm service (also kills X server), log in into a tty, and run sddm as root.

1 - Pam config file has to be adapted in order for sddm to be able to accept non-latin characters. If not, the user won't be able to log in even if he/she enters the password flawlessly as it is an input problem.
A temporary workaround would be to replace "/etc/pam.d/sddm" by "/etc/pam.d/lightdm". Don't forget to backup your sddm pam config file.
After that, user is able to log in.

As for my installation, all Gnome sessions as well a Unity have been confirmed to work with no problem/glitches whatsoever.

2 - When running sddm from tty, if in order to stop the program the user uses the CTRL-C combination in the relevant tty, the whole screen would freeze, leaving no choice but hard reset/shutdown. In order to avoid the bug, killing X in a separate tty and then killing sddm has proven to be a safe way out of the issue.

3 - With sddm started in a tty. Log into "Gnome Classic" session (Gnome 3 shells). Log out. Switch to tty, try to switch to X server : the mouse cursor appears and change shapes but the overall screen in black.

General suggestions :

  • When failling to log in, the message that is displayed doesn't appear to be refreshing and doesn't dissapear even when choosing another user. I think it would be clearer if the log in failure message blinked each time the user enters a wrong password, so that the user knows it is the current try that is being rejected. It would also be nice if the message would disappear when switching to another user.
  • It would be nice to have a GUI tool that would allow users, once logged in, to chooses their "faces" for the login screen.
  • It might be a good idea to have sddm to detect available locales on the system, and let the user switch between them from login screen.
  • It would be nice to have a GUI tool that lets the user to easily change login screen background once logged in, as well as being able to change theme, and such options.

Passwordless?

Thanks for the gift. Passwordless login is not the job of display managers, is it? (Would be a fine convenience for a Qt-only environment.)

Can't Find XKB Library

For some reason, CMake can't find the necessary files for libxkb. My system info:

$ lsb_release --all
Distributor ID: Ubuntu
Description:    Ubuntu 13.04
Release:        13.04
Codename:       raring

Snapshot from Konsole:
snapshot2

Numlock on LoginScreen

I noticed that it is not possible to turn on the numlock on sddm.config. Would it be possible to install such a thing?

PS: Translated with Google because my native language is German. ;)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.