get display number method has been added for gnome desktop env

This commit is contained in:
Tuncay ÇOLAK 2020-04-22 15:30:28 +03:00
parent f40990d5b6
commit 51dd82ebd9
5 changed files with 33 additions and 6 deletions

View file

@ -15,7 +15,7 @@ function log() {
} }
if [ -n $PAM_USER ] && [ $PAM_USER != "root" ]; then if [ -n $PAM_USER ] && [ $PAM_USER != "root" ]; then
if ([ -n $PAM_SERVICE ] && [[ $PAM_SERVICE == *"dm" ]]) || ([ -n $PAM_TTY ] && [[ $PAM_TTY == ":"* ]]); then if ([ -n $PAM_SERVICE ] && [[ ( $PAM_SERVICE == *"dm" || $PAM_SERVICE == "gdm"* )]]) || ([ -n $PAM_TTY ] && [[ $PAM_TTY == ":"* ]]); then
SERVICE="none" SERVICE="none"
if [ -n $PAM_SERVICE ]; then if [ -n $PAM_SERVICE ]; then
SERVICE="$PAM_SERVICE" SERVICE="$PAM_SERVICE"

View file

@ -15,7 +15,7 @@ function log() {
} }
if [ -n $PAM_USER ] && [ $PAM_USER != "root" ]; then if [ -n $PAM_USER ] && [ $PAM_USER != "root" ]; then
if ([ -n $PAM_SERVICE ] && [[ $PAM_SERVICE == *"dm" ]]) || ([ -n $PAM_TTY ] && [[ $PAM_TTY == ":"* ]]); then if ([ -n $PAM_SERVICE ] && [[ ( $PAM_SERVICE == "gdm"* || $PAM_SERVICE == *"dm" )]]) || ([ -n $PAM_TTY ] && [[ $PAM_TTY == ":"* ]]); then
SERVICE="none" SERVICE="none"
if [ -n $PAM_SERVICE ]; then if [ -n $PAM_SERVICE ]; then
SERVICE="$PAM_SERVICE" SERVICE="$PAM_SERVICE"

View file

@ -430,6 +430,24 @@ class Util:
display_number = ":"+str(display_number) display_number = ":"+str(display_number)
return display_number return display_number
@staticmethod
def get_username_display_gnome(user):
result_code, p_out, p_err = Util.execute("who | awk '{print $1, $5}' | sed 's/(://' | sed 's/)//'", result=True)
display_number = None
result = []
lines = str(p_out).split('\n')
for line in lines:
arr = line.split(' ')
if len(arr) > 1 and str(arr[1]).isnumeric() is True:
result.append(line)
for res in result:
arr = res.split(" ")
username = arr[0]
if username == user:
display_number = ":" + arr[1]
# print("--->>> dis no: " + str(display_number))
return display_number
@staticmethod @staticmethod
def get_desktop_env(): def get_desktop_env():
xfce4_session = "/usr/bin/xfce4-session" xfce4_session = "/usr/bin/xfce4-session"

View file

@ -102,16 +102,21 @@ class RunConkyCommand(AbstractPlugin):
self.create_file(self.conky_config_global_autorun_file) self.create_file(self.conky_config_global_autorun_file)
self.write_file(self.conky_config_global_autorun_file, self.conky_autorun_content) self.write_file(self.conky_config_global_autorun_file, self.conky_autorun_content)
users=self.Sessions.user_name() users = self.Sessions.user_name()
desktop_env = self.get_desktop_env()
self.logger.info("Get desktop environment is {0}".format(desktop_env))
for user in users: for user in users:
user_display = self.Sessions.display(user) user_display = self.Sessions.display(user)
if desktop_env == "gnome":
user_display = self.get_username_display_gnome(user)
if user_display is None: if user_display is None:
self.logger.debug('[Conky] executing for display none for user '+ str(user)) self.logger.debug('[Conky] executing for display none for user '+ str(user))
self.execute('conky -q', result=False) self.execute('conky -q', result=False)
else : else:
self.logger.debug('[Conky] user display ' + str(user_display) +' user '+ str(user)) self.logger.debug('[Conky] user display ' + str(user_display) +' user '+ str(user))
conky_cmd= 'su ' + str(user) + ' -c ' + ' "conky --display=' + str(user_display) + ' " ' conky_cmd = 'su ' + str(user) + ' -c ' + ' "conky --display=' + str(user_display) + ' " '
self.logger.debug('[Conky] executing command: ' + str(conky_cmd)) self.logger.debug('[Conky] executing command: ' + str(conky_cmd))
self.execute(conky_cmd, result=False) self.execute(conky_cmd, result=False)

View file

@ -26,12 +26,16 @@ class RunXMessageCommand(AbstractPlugin):
def execute_xmessage(self, message): def execute_xmessage(self, message):
users = self.Sessions.user_name(); users = self.Sessions.user_name()
self.logger.debug('[XMessage] users : ' + str(users)) self.logger.debug('[XMessage] users : ' + str(users))
desktop_env = self.get_desktop_env()
self.logger.info("Get desktop environment is {0}".format(desktop_env))
for user in users: for user in users:
user_display = self.Sessions.display(user) user_display = self.Sessions.display(user)
user_ip = self.Sessions.userip(user) user_ip = self.Sessions.userip(user)
if desktop_env == "gnome":
user_display = self.get_username_display_gnome(user)
if user_display is None: if user_display is None:
self.logger.debug('[XMessage] executing for display none for user ' + str(user)) self.logger.debug('[XMessage] executing for display none for user ' + str(user))