tvrzna / emptty Goto Github PK
View Code? Open in Web Editor NEWDead simple CLI Display Manager on TTY
License: MIT License
Dead simple CLI Display Manager on TTY
License: MIT License
I see these are the current dependencies aside from pam:
libx11
xorg / xorg-server (optional)
xauth / xorg-xauth (required for xorg)
mcookie (required for xorg)
go
gcc
libx11-devel (libx11)
Can you do this? I would love to be able to use this on a BSD or even a distro without pam or any other excessively bloated depends.
Thanks in advance...
If not, let me know.
Some of the dependencies like pam-devel, pam, go and mcookie. I can't seem to find them in the Ubuntu repositories.
Is there a way to execute a script as root on login/logout?
I have a specific usecase which I was wondering if it were possible with emptty.
I wanted to run optimus manager but ran into this issue, where I had to run a couple of scripts on login/logout as a workaround.
It always logs to /var/log/emptty. I want to configure logging method.
When trying out emptty I ran into a problem with rofi not launching from within i3. I discovered, by printing env | sort
from within i3 and also within my shell (whence launching rofi did work) that this was because i3 had LANG=en_US.UTF-8
set, and this, I realised, was coming from emptty.
For me, in /etc/locale.conf
the locale is defined, and en_US.UTF-8
is not available on my system, so is it possible for emptty to load only locally defined locales, not en_US.UTF-8 by default?
I'm on linux mint xfce 20.2. My setting:
DEFAULT_USER=*secret
AUTOLOGIN=true
AUTOLOGIN_SESSION=startxfce4
Others are default.
Autologin works fine, but even after logout !?
/etc/emptty/conf
TTY_NUMBER=7
SWICH_TTY=true
PRINT_ISSUE=true
AUTOLOGIN=false
DBUS_LAUNCH=false
XINITRC_LAUNCH=false
VERTICAL_SELECTION=true
XORG_ARGS=-logfile /dev/null
LOGGING_FILE=/tmp/emptty.log
$ pgrep -a X
27414 /usr/bin/Xorg vt7 :0
Hi,
When using emptty (which is awesome btw) with the xinitrc option set to true, some commands in the file are executed and some are not, specifically the merging of my .Xresources and setting touchpad scaling. However, the exec command is executed at the end, and other commands inside of the file are run. For reference, here is my xinitrc:
#!/bin/sh
userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap
if [ -f $sysresources ]; then
xrdb -merge $sysresources
fi
if [ -f $sysmodmap ]; then
xmodmap $sysmodmap
fi
if [ -f "$userresources" ]; then
xrdb -merge "$userresources"
fi
if [ -f "$usermodmap" ]; then
xmodmap "$usermodmap"
fi
if [ -d /etc/X11/xinit/xinitrc.d ] ; then
for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
[ -x "$f" ] && . "$f"
done
unset f
fi
xinput set-prop 'SynPS/2 Synaptics TouchPad' 'libinput Accel Speed' 1
xinput set-prop 'SynPS/2 Synaptics TouchPad' 'libinput Tapping Enabled' 1
export PATH=$PATH:/home/ilthraim/.local/bin/
/usr/bin/prime-offload
xrdb -merge "$HOME/.Xresources"
exec dbus-launch $@
And here is my emptty log
2020/08/11 22:12:34 Authenticate OK
2020/08/11 22:12:34 Defined Environment
2020/08/11 22:12:34 Created XDG folder
2020/08/11 22:12:34 Defined uid
2020/08/11 22:12:34 Defined gid
2020/08/11 22:12:34 Defined gids
2020/08/11 22:12:34 Defined Xorg environment
2020/08/11 22:12:34 Created xauthority file
2020/08/11 22:12:34 Generated mcookie
2020/08/11 22:12:34 Generated xauthority
2020/08/11 22:12:34 Starting Xorg
2020/08/11 22:12:34 Started Xorg
X.Org X Server 1.20.8
X Protocol Version 11, Revision 0
Build Operating System: Linux Arch Linux
Current Operating System: Linux thneedville 5.7.12-arch1-1 #1 SMP PREEMPT Fri, 31 Jul 2020 17:38:22 +0000 x86_64
Kernel command line: root=PARTUUID=d352ecd2-5fed-8548-a7ce-4a8036e4b21f rw add_efi_memmap initrd=boot\intel-ucode.img initrd=boot\initramfs-linux.img
Build Date: 31 July 2020 04:00:57PM
Current version of pixman: 0.40.0
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Tue Aug 11 22:12:34 2020
(==) Using config directory: "/etc/X11/xorg.conf.d"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
2020/08/11 22:12:34 Starting /home/ilthraim/.xinitrc i3
(II) modeset(0): Initializing kms color map for depth 24, 8 bpc.
(II) modeset(0): Initializing kms color map for depth 24, 8 bpc.
(II) modeset(0): Initializing kms color map for depth 24, 8 bpc.
(II) modeset(0): Initializing kms color map for depth 24, 8 bpc.
(II) modeset(0): Initializing kms color map for depth 24, 8 bpc.
(II) modeset(0): Initializing kms color map for depth 24, 8 bpc.
(II) modeset(0): Initializing kms color map for depth 24, 8 bpc.
(II) modeset(0): Initializing kms color map for depth 24, 8 bpc.
(II) modeset(0): Initializing kms color map for depth 24, 8 bpc.
/bin/sh: xss-lock: command not found
/bin/sh: nm-applet: command not found
[ 08/11/2020 22:12:50.070 parse_config_libconfig WARN ] Option `no-dock-shadow` is deprecated, and will be removed. Please use the wintype option `shadow` of `dock` instead.
/home/ilthraim/.scripts/poly_launch.sh: line 8: /tmp/ilbar.log: Permission denied
[2743:2743:0811/221301.794913:ERROR:sandbox_linux.cc(374)] InitializeSandbox() called with multiple threads in process gpu-process.
[ 08/11/2020 22:13:19.444 win_clear_flags WARN ] Flags cleared on a destroyed window 0x00200093 (New Tab - Google Chrome)
[0811/221319.559058:ERROR:nacl_helper_linux.cc(308)] NaCl helper process running without a sandbox!
Most likely you need to configure your SUID sandbox correctly
[3497:3497:0811/221321.275684:ERROR:sandbox_linux.cc(374)] InitializeSandbox() called with multiple threads in process gpu-process.
I would like it if emptty would support the s6 init system in addition to the current ones( systemd, openrc, etc).
I have tested it in Artix Linux in the following way. (I assume it would also work on other distros as well)
How:
A directory must be created at "/etc/s6/sv/emptty"
It will contain three files.
A file named "dependencies" with the contents "udevadm"
A file named "type" with the contents "longrun"
A file named "run" with the contents "#!/usr/bin/execlineb -P" on the first line and "exec /usr/bin/emptty -d" on the second.
Like any other DM out there keyring should auto-start and auto-auth if we have this in pam conf:
auth optional pam_gnome_keyring.so
session optional pam_gnome_keyring.so auto_start
At least it works for me for lxdm, ly and gdm, but not for emptty. Am I missing something?
It would be neat if the motd could be sourced as something that is generated dynamically, as opposed to a static file.
Perhaps a file like /etc/motd-gen that would be executable, and its output would be printed as the motd? So, for example:
#!/bin/bash
fortune | cowsay
How can I do that?
in lightdm there is no need for 2 >&1 on every program I run.
I cant find how some dm do that so I can doit manually
I tried to run xorg like that on argvs and doesnt work
#XORG_ARGS='2>&1 > ~.xsession-errors'
Hi! I just installed Emptty with
sudo make install install-pam install-config install-manual install-systemd
And I started it with sudo systemctl start emptty
.
However, I get the output "Error: Permission Denied" when I enter my username. I don't see any helpful log output other than "Permission Denied".
Is this a problem with PAM? How can I fix this?
I am using Debian Bullseye, and the latest commit from Emptty master.
I've noticed that by default emptty fail starting bspwm. This is the emptty log:
2020/06/26 16:29:33 Authenticate OK
2020/06/26 16:29:35 Defined Environment
2020/06/26 16:29:35 Created XDG folder
2020/06/26 16:29:35 Defined uid
2020/06/26 16:29:35 Defined gid
2020/06/26 16:29:35 Defined gids
2020/06/26 16:29:35 Defined Xorg environment
2020/06/26 16:29:35 Created xauthority file
2020/06/26 16:29:35 Generated mcookie
2020/06/26 16:29:35 Generated xauthority
2020/06/26 16:29:35 Starting Xorg
2020/06/26 16:29:35 Started Xorg
2020/06/26 16:29:35 Starting dbus-launch bspwm
The server closed the connection: socket, pipe or stream error.
2020/06/26 16:29:35 dbus-launch bspwm finished
2020/06/26 16:29:35 Interrupted Xorg
2020/06/26 16:29:35 Cleaned up xauthority
with i3 everything work. Other DM like lightDM start successfully bspwm
I have no idea about how to code in Go, but I'd like to have a way to be able to build offline so I can package this in the Open Build Service.
Given two zip/tar.gz files with both repos, how could I handle this situation?
Sorry but I can't understand how do I configure emptty to get it working with my environment...
zerdox% cat .config/emptty
#!/bin/sh
Environment=wayland
source /etc/profile
exec /home/zerdox/.local/bin/river
zerdox% cat /etc/emptty/custom-sessions/river.desktop
Name=River
Exec=/home/zerdox/.local/bin/river
Environment=wayland
I am trying to get this work for a long time and now I am able to run river but it's launching with default settings somehow. It doesn't read my .config/river/init file
.
Also I need to write full path to executable. Without full path login screen refreshes in milliseconds and nothing happens (i guess thats because /etc/profile
is not used).
This is how I usually started my wayland session before I tried to use emptty:
# /etc/profile
# ...
if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ]; then
exec river
fi
Right now, emptty just sets XDG_RUNTIME_DIR to /run/user/uid
.
However, https://github.com/FredrikAleksander/pam_rundir sets XDG_RUNTIME_DIR to /run/users/uid
and creates it.
Thus, emptty fails. emptty should respect XDG_RUNTIME_DIR passed from pam_rundir.
I am on Fedora 33 with kernel 5.9.16-200.fc33.x86_64
.
I ran the following code to build and install:
make build
sudo make install-all
sudo make install-config
sudo make install-motd-gen
sudo make install-systemd
sudo systemctl enable emptty
I encountered an error similar to that found in #20. After reading #20 and #7 I changed the instances of system-login
in /etc/pam.d/emptty
to system-auth
since that exists in my /etc/pam.d
(I apologize if the transparency makes it harder to read).
With that change, I can not only get into my WM but also autologin.
However, the issue is that I will always autologin no matter if I have AUTOLOGIN=true
or false
set in /etc/emtty/conf`. I have not been able to find a solution for this issue yet.
The folllowing are my files relevant to emptty:
/etc/emptty/conf:
# TTY, where emptty will start.
TTY_NUMBER=7
# Enables switching to defined TTY number.
SWITCH_TTY=true
# Enables printing of /etc/issue in daemon mode.
PRINT_ISSUE=true
# Preselected user, if AUTOLOGIN is enabled, this user is logged in.
DEFAULT_USER=krisbalintona
# Enables Autologin, if DEFAULT_USER is defined and part of nopasswdlogin group. Possible values are "true" or "false".
AUTOLOGIN=false
# The default session used, if Autologin is enabled. If session is not found in list of session, it proceeds to manual selection.
AUTOLOGIN_SESSION=awesome
# Default LANG, if user does not have set own in init script.
#LANG=en_US.UTF-8
# Starts desktop with calling "dbus-launch".
DBUS_LAUNCH=true
# Starts Xorg desktop with calling "~/.xinitrc" script, if is true, file exists and selected WM/DE is Xorg session, it overrides DBUS_LAUNCH.
XINITRC_LAUNCH=true
# Prints available WM/DE each on new line instead of printing on single line.
VERTICAL_SELECTION=true
# Defines the way, how is logging handled. Possible values are "default", "appending" or "disabled".
#LOGGING=default
# Arguments passed to Xorg server.
#XORG_ARGS=
# Overrides path of log file
#LOGGING_FILE=/var/log/emptty
# Allows to use /etc/emptty/motd-gen.sh script to generate custom MOTD.
#DYNAMIC_MOTD=false
# Foreground color, available only in daemon mode.
FG_COLOR=LIGHT_WHITE
# Background color, available only in daemon mode.
#BG_COLOR=BLACK
/etc/pam.d/emptty:
#%PAM-1.0
auth sufficient pam_succeed_if.so user ingroup nopasswdlogin
auth include system-auth
-auth optional pam_gnome_keyring.so
account include system-auth
password include system-auth
session include system-auth
-session optional pam_gnome_keyring.so auto_start
~/.config/emptty:
Name=AwesomeWM
Exec=/usr/bin/awesome
Environment=xorg
Agetty is able to parse sequences like \4{enp4s0}
and \6{enp4s0}
to obtain the IPv4/IPv6 address on that interface. Would it be possible to add this capability to Emptty as well?
I looked at the Go source, but it doesn't seem like the current issueVariable
struct is able to handle this kind of thing. I'm not a good enough Go programmer to refactor this. But after the parsing is done, it seems easy to query the interface using net.InterfaceByName
.
The Agetty implementation is here, if it helps:
As it's mentioned in 3d8a74d#r44720233, Setfsuid (and others) are only Linux specific. For further compatibility this should be handled differently.
XDG_CONFIG_HOME
will be set to /home/user/.config
by emptty. after login to de, open a console and type su
, XDG_CONFIG_HOME
will also be passed to root environment, therefore neovim will load config from /home/user/.config/nvim/init.vim
instead of /root/.config/nvim/init.vim
. is this a expected behavior?
For example, I want to pass -logfile /dev/null
or -logverbose 2
as arguments to xorg server.
I think xorg server arguments can be specified in /etc/emptty/conf
or each custom session.
Perhaps, I can create a custom session without any xorg log file.
Hello! Been enjoying emptty, just had a question (maybe a bug report) about proper dbus launching.
My current version
➜ pacman -Qs emptty-git
local/emptty-git 0.3.0.r16.af974bf-1
Dead simple CLI Display Manager on TTY
I noticed that recently dunst
stopped working for chromium notifications and after researching that issue, found that my $DBUS_SESSION_BUS_ADDRESS
env variable was not set.
I'm using emptty conf with just xinitrc script + i3
If I disable emptty, login via regular tty prompt, then use sx
to start X
+ i3
, my $DBUS_SESSION_BUS_ADDRESS
is set correctly.
Should I be using dbus-launch
or DBUS_LAUNCH
emptty option in my init scripts? Or is this better left to systemd to start the daemon?
I'll continue trying to reproduce with the current non-git version: https://aur.archlinux.org/packages/emptty/ but haven't got there yet.
Is it by design? Although I can source ~/.profile
in ~/.config/emptty
executable, I think emptty can be configured to handle user configuration in some way.
PATH is supposed to be
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/lib/llvm/12/bin:/usr/lib/llvm/11/bin
But, with emptty, it becomes
/bin:/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/opt/bin:/usr/lib/llvm/12/bin:/usr/lib/llvm/11/bin
I think it's best for emptty to not touch PATH.
I configure the autologin. But I have installed many desktop environments, it is inconvenient to manually select one.
I'm unsure if the following configuration is possible:
I want to be prompted for my username and password, but skip the manual selection of a window manager and have a default one be passed as an argument to xinitrc.
If i enable the XINITRC_LAUNCH option, i still get manually prompted for a wm. I guess I could have a script in .config/emptty that calls ~/.xinitrc i3 for example, but that seems like the incorrect way since XINITRC_LAUNCH is an option. Am I missing a better way?
Hello, I was wondering if it was possible to make an entry in the make install section to have the init scripts get put into the proper folder in /etc/? I use runit and when I installed using sudo make install-runit
it put the init script into /etc/sv rather than /etc/runit/sv
Seems rather minor, but i'm getting the following warning in journalctl:
Nov 13 19:41:04 systemd[1]: Configuration file /usr/lib/systemd/system/emptty.service is marked executable. Please remove executable permission bits. Proceeding >
Potential security flaw with easy fix
I think it's time to release a new version since it has acquired a few features.
Hi,
I install the emptty from the aur package. I use:
I think that these files aren't loaded because dpi is not fixed and keys aren't swapped. The emptty log:
2020/06/28 11:11:22 Authenticate OK
2020/06/28 11:11:23 Defined Environment
2020/06/28 11:11:23 Created XDG folder
2020/06/28 11:11:23 Defined uid
2020/06/28 11:11:23 Defined gid
2020/06/28 11:11:23 Defined gids
2020/06/28 11:11:23 Defined Xorg environment
2020/06/28 11:11:23 Created xauthority file
2020/06/28 11:11:23 Generated mcookie
2020/06/28 11:11:23 Generated xauthority
2020/06/28 11:11:23 Starting Xorg
2020/06/28 11:11:23 Started Xorg
X.Org X Server 1.20.8
X Protocol Version 11, Revision 0
Build Operating System: Linux Arch Linux
Current Operating System: Linux archlinux 5.7.6-arch1-1 #1 SMP PREEMPT Thu, 25 Jun 2020 00:14:47 +0000 x86_64
Kernel command line: initrd=\intel-ucode.img initrd=\initramfs-linux.img root=PARTUUID=<myPartuuid> rw
Build Date: 05 May 2020 05:08:17AM
Current version of pixman: 0.40.0
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Sun Jun 28 11:11:23 2020
(==) Using config directory: "/etc/X11/xorg.conf.d"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
2020/06/28 11:11:23 Starting dbus-launch bspwm
lemonblocks: no process found
lemonbar: no process found
11:12:04 INFO: Request to collector.githubapp.com blocked by host blocker.
11:12:05 INFO: Request to collector.githubapp.com blocked by host blocker.
11:12:23 INFO: Request to collector.githubapp.com blocked by host blocker.
11:12:34 INFO: Request to collector.githubapp.com blocked by host blocker.
11:12:35 INFO: Request to collector.githubapp.com blocked by host blocker.
11:12:38 INFO: Request to collector.githubapp.com blocked by host blocker.
11:12:47 INFO: Request to collector.githubapp.com blocked by host blocker.
11:13:07 INFO: Request to collector.githubapp.com blocked by host blocker.
11:13:09 INFO: Request to collector.githubapp.com blocked by host blocker.
zsh: /etc/init.d/emptty: bad interpreter: /usr/bin/openrc-run: no such file or directory
it's actually on
% which openrc-run
/sbin/openrc-run
Look at the screenshot: https://imgur.com/a/hrb62pA
I think custom user sessions could be stored in ~/.config/emptty/custom-sessions
.
I discovered that last session is saved to disk whenever I enter a GUI session.
If the last session is the same as the current session I'm trying to enter, we can save a write cycle.
I also suggest saving last session in ~/.local
or ~/.cache
instead of /etc/emptty/last-sessions
elogind and system-logind make rootless xorg sessions possible.
Refer to man Xorg
for more details.
I think it'd be nice if there was an option (e.g. a field in /etc/emptty/conf) to auto-enable numlock in emptty. This would make it more convenient to enter alph-numeric passwords at login.
Admittedly I'm not sure if this request even makes sense in this context, maybe numlock is something that is controlled outside of emptty. But none of the things I've tried to auto-enable numlock on startup have had any effect on the emptty login screen (but work otherwise).
I love this display manager as it does everything a display manager should do efficiently in my eyes, so thank you so much to @tvrzna especially and all of the other contributors ❤️
There's an issue under Logging/appending
in README.md, in which the docs refer to the user as 'himself' which isn't accurate to the more diverse user-base of the application. I think this should be 'themselves' instead to also represent women and other people using not only a masculine pronoun.
appending
This option provides functionality that logs everything into /var/log/emptty and does not handle log rotation by itself. It leaves the option for user to handle it himself (e.g. with logrotate).
Apologies for bringing this up as it's only one word and is likely only mistranslation or a typo. Thanks for your time :)
I have a few xinitrc files in my ~/.config directory ; i was thinking if we could do some kind of a config parameter specifying where the xinitrc file can be found ; i would like to make the changes if it could be merged later :)
Hi,
I'm using emptty on Void Linux and I've noticed that (in contrast to all other display manager that I have tried) /etc/profile
is not run, even with bash as default shell.
As effect at least the PATH variable is not correct (missing /usr/local
dirs) and other environment variables from scripts within /etc/profile.d
are not set, too.
I wonder if this is a bug? Or it's not a bug, it's a feature?
I suggest something like
/etc/emptty/conf
LOGGING-FILE=/path/to/log/file
This way, you can control where it is logged. You may also write log on a tmpfs mount where you don't have to worry about wearing storage devices.
For example, I want to enter a session with logging and another session without logging.
This is an easy way to turn logging on and off.
Hi,
So I'm using @Askannz/optimus-manager on my home Arch machine.
And if you look at this section in the Wiki, it mentions that the prime-switch
command must be ran after the X session is closed (as root).
And I think that running commands/scripts/etc is a nice feature to have. For example I may want to:
BTW: I would have happily contributed myself, but I don't know/like Go :P
Love the work you've done so far. Thank you
Whenever I enter a username, I see Password: Error: Authentication token manipulation error
.
Version: 0.2.3
I have a problem!
My session file /etc/emptty/custom-sessions/Xfce.desktop:'
Name=Xfce
Exec=startxfce4
And my conf:
# TTY, where emptty will start.
TTY_NUMBER=7
# Enables switching to defined TTY number.
SWITCH_TTY=true
# Enables printing of /etc/issue in daemon mode.
PRINT_ISSUE=true
# Preselected user, if AUTOLOGIN is enabled, this user is logged in.
DEFAULT_USER=x
# Enables Autologin, if DEFAULT_USER is defined and part of nopasswdlogin group. Possible values are "true" or "false".
AUTOLOGIN=true
# The default session used, if Autologin is enabled. If session is not found in list of session, it proceeds to manual selection.
AUTOLOGIN_SESSION=Xfce
# Default LANG, if user does not have set own in init script.
#LANG=en_US.UTF-8
# Starts desktop with calling "dbus-launch".
DBUS_LAUNCH=true
# Starts Xorg desktop with calling "~/.xinitrc" script, if is true, file exists and selected WM/DE is Xorg session, it overrides DBUS_LAUNCH.
XINITRC_LAUNCH=false
# Prints available WM/DE each on new line instead of printing on single line.
VERTICAL_SELECTION=false
# Defines the way, how is logging handled. Possible values are "default", "appending" or "disabled".
#LOGGING=default
# Arguments passed to Xorg server.
#XORG_ARGS=
# Overrides path of log file
#LOGGING_FILE=/var/log/emptty
# Allows to use /etc/emptty/motd-gen.sh script to generate custom MOTD.
#DYNAMIC_MOTD=false
# Foreground color, available only in daemon mode.
#FG_COLOR=GREEN
# Background color, available only in daemon mode.
#BG_COLOR=BLACK
After auto login, a window pops up with a choice: [0] Xfce Session [1] Xfce
I have arch linux. What is the problem?
I use a window manager who's binary is called river
. In order for me to also use an alternative keyboard layout, I configure this through the following environment variable, and immediately execute it:
env XKB_DEFAULT_LAYOUT="us(dvorak)" river
When I try to use this technique via emptty using the following river.desktop
file, I am seemingly unable to activate any of my keys:
[Desktop Entry]
Name=River
Comment=A dynamic tiling Wayland compositor
Exec=env XKB_DEFAULT_LAYOUT="us(dvorak)" river
Type=Application
Environment=wayland
I am not sure which part of the stack is misconfigured.
Hi 👋 I'm an Arch user with emptty
on the AUR. I never used a WM before instead of a full DE, so I got 2 questions:
sudo emptty
Is there a solution to this by possibly overriding the regular login screen?
how do i can the emptty text at login screen? I have no idea because I don't have much knowledge about linux
I'm on ubuntu 20.04 and after switching from lightdm
to emptty
, some applications started to fail. It boils down to the fact that the system doesn't report any currently logged in users. Both w
and who
doesn't return anything.
For this to be fixed we need utmp audit.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.