How can I configure LXDM to appear as the Manjaro wiki screenshots?

And that’s all it is – an example;
likewise, the LXDM Greeter style and theme – an example.

The relative size and positioning of the login controls can vary according to the Greeter you choose and the theme you choose.

You can also customise the theme (make your own theme) if you wish; however, you would need to research that yourself.

This is true no matter which Display Manager, or which Greeter you choose; there are often many ways to achieve the same result in Linux.

Subjective, at best.

I’ll simply say that you’re not right. Many DM/Greeter combinations share that honour of being lighter than SDDM or GDM, for example.

CDM, XDM, LightDM and LXDM are arguably lighter.

SLiM, Console TDM, and Ly are lighter still.

However, none of these are ideal for every distribution; some are abandoned or unmaintained for a very long time; some are incompatible; some are missing features that most have come to expect.

As has been said, LXDM is no longer used by any currently available Manjaro edition; neither Official or Community – but, LightDM is.

This also infers that LXDM is largely unsupported. It’s in the Official Repositories; no doubt it’s also available via the AUR (I haven’t checked), so it can still be installed, but how long it may be a viable concern is anyone’s guess.

The logic seems clear. Use a supported DM, find (or create) a theme and Greeter to satisfy your desire.

Incidentally, it’s quite possible to duplicate the look and feel of that LXDM Greeter in LightDM, with a little effort; possibly using the Slick Greeter as a starting point.


Another important consideration – is it compatible with Wayland? It’s only a question of time before most every Linux distribution will make the switch from X11 to Wayland.

Wayland is already the default on Gnome and Plasma; and KDE plan to remove X11 completely. Much to consider, indeed.


Unofficially, as was hinted at earlier, some members regularly maintain custom Manjaro distributions (spins).

@Jim.B (for example) maintains quite a few:

Perhaps one of these will already have a similar Greeter.

Otherwise, all we can really do is to wish you luck.

Regards.

1 Like

No, it’s not. Adding startx to ~/.bash_profile could have some nasty consequences.

Furthermore, a session started with startx can be destroyed from the tty where the startx command was issued, and it leaves said tty open — i.e. logged into — while the physical console is automatically connected to a different tty for the graphical session.

I don’t call that “secure” by any stretch of the imagination.

2 Likes

Thanks for the link. LXDM is no longer under development to my knowledge, having moved to LXQt. I do make spins of LXQt, and its the desktop I use so I know it quite well. The current 1025 release is quite nice and the desktop, grub, and Lightdm all have a consistent theme.

Thank you for your reply.

Overall, I agree with you, but with some reservations. For example, Slim, which you mentioned, is not very attractive, to put it mildly, compared to LXDM.

Xlibre is currently being actively developed instead of Xorg, so it is unclear whether Wayland or Xlibre will ultimately become popular.

As for . bash_profile, if I am wrong, as you say, then the Arch Wiki needs to be corrected))

Autostart X at login

Place the following in your login shell initialization file (e.g. ~/.bash_profile for Bash or ~/.zprofile for Zsh):

if [ -z "$DISPLAY" ] && [ "$XDG_VTNR" = 1 ]; then
exec startx
fi

And LY display is a CLI display manager, not a GUI as you wrote. Display manager - ArchWiki

How attractive a DM may be is your emphasis, not mine. My comments were clearly responding to your claim of LXDM being the lightest and most minimalistic.

On the topic of visual minimalism, this again is directly proportionate to the Greeter and theming used.

It’s very clear that “Wayland is the future”, despite the Xlibre initiative. You seem to be cherry picking and distorting ny comments to suit your agenda.

Again, my comments were clearly a response to;

and not in response to your opinions on bash_profile which is another topic entirely.


You have had many responses and have argued against virtually every one of them when it conflicts with your own views.

This topic may have progressed as far as it reasonably can.

1 Like

I checked manjaro-lxde-20.2.1-210130-linux59.iso and it is using lightdm

$ inxi -Sa
System:
  Host: manjaro-lxde Kernel: 5.9.16-1-MANJARO x86_64 bits: 64 compiler: gcc 
  v: 10.2.1 
  
  Desktop: LXDE 0.10.0 info: lxpanel wm: Openbox 3.6.1 dm: LightDM 1.30.0 
  Distro: Manjaro Linux

and lightdm-gtk-greeter is using the default desktop wallpaper lxde-breath.png

$ grep 'background /etc/lightdm/lightdm-gtk-greeter.conf
background = /usr/share/backgrounds/lxde-breath.png

I also found a youtube review of Manjaro LXDE 17.0.2 that shows release notes from 2017-05-25:

The default display manager is lightdm. Of course you can replace it if you want to with something like lxdm

So Manjaro Wiki screenshots of lxdm greeter must be more than 8 years out of date

Unlikely since Manjaro was using sourceforge for community ISOs

Seems to be the best response to OP request

LXDM Configuration - Manjaro

Changing The Background Image

As an example, the author has activated the ability to set backgrounds, and used a background image (abstractgreen.jpg) located in their Pictures folder.

By the way, if it is all about the background, here it is
https://wall.alphacoders.com/big.php?i=62233
And the password box and the bar can be moved, so this pretty much can be recreated with lightdm for a minute (moving the bar to the top requires editing the config file).
Just put the background on the root filesystem and not in home.

3 Likes

Why - it is the norm - the members of the Manjaro Community will always be trying to point you in the right direction..

Some of us (especially myself) may be blunt to a fault.. but it does not change the intent - trying to be helpful..

GTK2 has been deprecated for many years and LXDM was written for GTK2.

LXDE for which LXDM was created no longer exist. The domain exist, but is unreachable and LXQt is the current maintained alternative.

Manjaro follow upstream Archlinux closely and with the removal of GTK2 the themes which previously existing for LXDM was moved to AUR. They are likely unmaintained unless someone decides to adopt and maintain.

But you can - by using glade adapt one of the GTK3 variants to fit your desire.

By editing the file greeter-gtk3.ui you can very easily resemble the look and feel - but I’d say - you are better off by using lightdm with slick-greeter or using sddm with either the default or an ultra simple theme using only the basic qtquick controls.

Example

This example has been modified to display the selection bar at the top with the session/desktop selector at the end.

Fairly simple…

<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.40.0 -->
<interface>
  <requires lib="gtk+" version="3.0"/>
  <object class="GtkWindow" id="lxdm">
    <property name="can-focus">False</property>
    <property name="decorated">False</property>
    <child>
      <object class="GtkVBox" id="vbox1">
        <property name="visible">True</property>
        <property name="can-focus">False</property>
        <child>
          <object class="GtkEventBox" id="bottom_pane">
            <property name="visible">True</property>
            <property name="app-paintable">True</property>
            <property name="can-focus">False</property>
            <property name="visible-window">False</property>
            <child>
              <object class="GtkHBox" id="bottom_hbox">
                <property name="visible">True</property>
                <property name="can-focus">False</property>
                <property name="border-width">4</property>
                <property name="spacing">12</property>
                <child>
                  <object class="GtkImage" id="image2">
                    <property name="visible">True</property>
                    <property name="can-focus">False</property>
                    <property name="pixbuf">session.png</property>
                  </object>
                  <packing>
                    <property name="expand">False</property>
                    <property name="fill">True</property>
                    <property name="position">0</property>
                  </packing>
                </child>
                <child>
                  <object class="GtkLabel" id="label_spacer">
                    <property name="visible">True</property>
                    <property name="can-focus">False</property>
                  </object>
                  <packing>
                    <property name="expand">True</property>
                    <property name="fill">True</property>
                    <property name="position">1</property>
                  </packing>
                </child>
                <child>
                  <object class="GtkButton" id="exit">
                    <property name="visible">True</property>
                    <property name="can-focus">True</property>
                    <property name="receives-default">True</property>
                    <property name="relief">none</property>
                    <child>
                      <object class="GtkImage" id="imageShutdown">
                        <property name="visible">True</property>
                        <property name="can-focus">False</property>
                        <property name="pixbuf">system-shutdown.png</property>
                      </object>
                    </child>
                  </object>
                  <packing>
                    <property name="expand">False</property>
                    <property name="fill">True</property>
                    <property name="pack-type">end</property>
                    <property name="position">2</property>
                  </packing>
                </child>
                <child>
                  <object class="GtkHBox" id="lang_box">
                    <property name="visible">True</property>
                    <property name="can-focus">False</property>
                    <property name="spacing">6</property>
                    <child>
                      <object class="GtkImage" id="image3">
                        <property name="visible">True</property>
                        <property name="can-focus">False</property>
                      </object>
                      <packing>
                        <property name="expand">False</property>
                        <property name="fill">True</property>
                        <property name="position">0</property>
                      </packing>
                    </child>
                    <child>
                      <object class="GtkLabel" id="label_lang">
                        <property name="visible">True</property>
                        <property name="can-focus">False</property>
                        <property name="label" translatable="yes">Language:</property>
                      </object>
                      <packing>
                        <property name="expand">False</property>
                        <property name="fill">True</property>
                        <property name="position">1</property>
                      </packing>
                    </child>
                    <child>
                      <object class="GtkComboBox" id="lang">
                        <property name="visible">True</property>
                        <property name="can-focus">False</property>
                      </object>
                      <packing>
                        <property name="expand">False</property>
                        <property name="fill">True</property>
                        <property name="position">2</property>
                      </packing>
                    </child>
                  </object>
                  <packing>
                    <property name="expand">False</property>
                    <property name="fill">True</property>
                    <property name="position">3</property>
                  </packing>
                </child>
                <child>
                  <object class="GtkLabel" id="label_keyboard">
                    <property name="can-focus">False</property>
                    <property name="label" translatable="yes">Keyboard:</property>
                  </object>
                  <packing>
                    <property name="expand">False</property>
                    <property name="fill">True</property>
                    <property name="position">4</property>
                  </packing>
                </child>
                <child>
                  <object class="GtkComboBox" id="keyboard">
                    <property name="can-focus">False</property>
                  </object>
                  <packing>
                    <property name="expand">False</property>
                    <property name="fill">True</property>
                    <property name="position">5</property>
                  </packing>
                </child>
                <child>
                  <object class="GtkHBox" id="sessions_box">
                    <property name="visible">True</property>
                    <property name="can-focus">False</property>
                    <property name="spacing">6</property>
                    <child>
                      <object class="GtkLabel" id="label2">
                        <property name="visible">True</property>
                        <property name="can-focus">False</property>
                        <property name="label" translatable="yes">Desktop:</property>
                      </object>
                      <packing>
                        <property name="expand">False</property>
                        <property name="fill">True</property>
                        <property name="position">0</property>
                      </packing>
                    </child>
                    <child>
                      <object class="GtkComboBox" id="sessions">
                        <property name="visible">True</property>
                        <property name="can-focus">False</property>
                      </object>
                      <packing>
                        <property name="expand">False</property>
                        <property name="fill">True</property>
                        <property name="position">1</property>
                      </packing>
                    </child>
                  </object>
                  <packing>
                    <property name="expand">False</property>
                    <property name="fill">True</property>
                    <property name="position">6</property>
                  </packing>
                </child>
              </object>
            </child>
          </object>
          <packing>
            <property name="expand">False</property>
            <property name="fill">True</property>
            <property name="position">0</property>
          </packing>
        </child>
        <child>
          <object class="GtkAlignment" id="alignment1">
            <property name="visible">True</property>
            <property name="can-focus">False</property>
            <property name="xalign">0.05000000074505806</property>
            <property name="xscale">0</property>
            <property name="yscale">0</property>
            <child>
              <object class="GtkEventBox" id="login_pane">
                <property name="visible">True</property>
                <property name="app-paintable">True</property>
                <property name="can-focus">False</property>
                <property name="visible-window">False</property>
                <child>
                  <object class="GtkVBox" id="vbox2">
                    <property name="visible">True</property>
                    <property name="can-focus">False</property>
                    <property name="border-width">35</property>
                    <child>
                      <object class="GtkAlignment" id="alignment2">
                        <property name="visible">True</property>
                        <property name="can-focus">False</property>
                        <property name="xscale">0</property>
                        <property name="yscale">0</property>
                        <child>
                          <object class="GtkHBox" id="hbox3">
                            <property name="visible">True</property>
                            <property name="can-focus">False</property>
                            <property name="spacing">12</property>
                            <child>
                              <object class="GtkLabel" id="prompt">
                                <property name="visible">True</property>
                                <property name="can-focus">False</property>
                                <property name="label" translatable="yes">User:</property>
                                <property name="yalign">0.20000000298023224</property>
                              </object>
                              <packing>
                                <property name="expand">False</property>
                                <property name="fill">False</property>
                                <property name="position">0</property>
                              </packing>
                            </child>
                            <child>
                              <object class="GtkEntry" id="login_entry">
                                <property name="visible">True</property>
                                <property name="can-focus">True</property>
                                <property name="invisible-char">•</property>
                              </object>
                              <packing>
                                <property name="expand">False</property>
                                <property name="fill">False</property>
                                <property name="position">1</property>
                              </packing>
                            </child>
                            <child>
                              <object class="GtkIconView" id="user_list">
                                <property name="visible">True</property>
                                <property name="can-focus">True</property>
                                <property name="margin">2</property>
                                <property name="item-width">210</property>
                                <property name="row-spacing">1</property>
                                <property name="column-spacing">0</property>
                                <property name="item-padding">1</property>
                              </object>
                              <packing>
                                <property name="expand">False</property>
                                <property name="fill">False</property>
                                <property name="position">1</property>
                              </packing>
                            </child>
                          </object>
                        </child>
                      </object>
                      <packing>
                        <property name="expand">True</property>
                        <property name="fill">True</property>
                        <property name="position">1</property>
                      </packing>
                    </child>
                  </object>
                </child>
              </object>
            </child>
          </object>
          <packing>
            <property name="expand">True</property>
            <property name="fill">True</property>
            <property name="position">1</property>
          </packing>
        </child>
      </object>
    </child>
  </object>
</interface>

I am fairly certain Wayland and wayback will be the dominating compositors.

2 Likes