aboutsummaryrefslogtreecommitdiff
path: root/lmlib.py
diff options
context:
space:
mode:
authorB Stack <bgstack15@gmail.com>2020-03-10 17:23:25 -0400
committerB Stack <bgstack15@gmail.com>2020-03-10 17:23:25 -0400
commitb499fd8bbf3d455cbbdf57acc4091b911d96ee22 (patch)
tree982e24259ddcb45e358d94b2fa3200925fb56f57 /lmlib.py
parentuse /etc/default/logout-manager and conf files (diff)
downloadlogout-manager-b499fd8bbf3d455cbbdf57acc4091b911d96ee22.tar.gz
logout-manager-b499fd8bbf3d455cbbdf57acc4091b911d96ee22.tar.bz2
logout-manager-b499fd8bbf3d455cbbdf57acc4091b911d96ee22.zip
rearrange src and add readme
Diffstat (limited to 'lmlib.py')
-rw-r--r--lmlib.py286
1 files changed, 0 insertions, 286 deletions
diff --git a/lmlib.py b/lmlib.py
deleted file mode 100644
index 7c9dc1e..0000000
--- a/lmlib.py
+++ /dev/null
@@ -1,286 +0,0 @@
-#!/usr/bin/env python3
-# File: lmlib.py
-# License: CC-BY-SA 4.0
-# Author: bgstack15
-# Startdate: 2019-06-12
-# Title: Python libs for logout-manager
-# Purpose: Store the common elements for operating a logout-manager
-# History:
-# Usage:
-# In a logout-manager-gtk.py program
-# Reference:
-# platform info https://stackoverflow.com/questions/110362/how-can-i-find-the-current-os-in-python/10091465#10091465
-# Improve:
-# Documentation:
-
-import configparser, platform, os
-
-logout_manager_version="2020-03-10a"
-
-class Actions:
-
- @staticmethod
- def hibernate(config, event=None):
- #print("need to run the /sys/power/state trick, if available")
- print(config.get_hibernate_command())
-
- @staticmethod
- def lock(config, event=None):
- #print("please lock the screen.")
- print(config.get_lock_command())
-
- @staticmethod
- def logout(config, event=None):
- #print("please log out of current session!")
- print(config.get_logout_command())
-
- @staticmethod
- def reboot(config, event=None):
- #print("please reboot.")
- print(config.get_reboot_command())
-
- @staticmethod
- def shutdown(config, event=None):
- #print("please shut yourself down!")
- print(config.get_shutdown_command())
-
-class Config:
- def __init__(self):
- # load defaults which can be overwritten
- self.hibernate_command = ""
- self.lock_command = ""
- self.logout_command = ""
- self.reboot_command = ""
- self.shutdown_command = ""
- self.hibernate_icon = "system-hibernate"
- self.hibernate_fallback_icon = "system-hibernate"
- self.lock_icon = "system-lock-screen"
- self.lock_fallback_icon = "system-lock-screen"
- self.logout_icon = "system-log-out"
- self.logout_fallback_icon = "system-log-out"
- self.reboot_icon = "system-reboot"
- self.reboot_fallback_icon = "system-reboot"
- self.shutdown_icon = "system-shutdown"
- self.shutdown_fallback_icon = "system-shutdown"
- self.icon_size = 24
- self.icon_theme = "default"
- self.gtk3_default_icon_theme = "hicolor"
- self.icon_category = "actions"
- self.can_hibernate = False
- self.application_icon=("system-log-out")
-
- def set_hibernate_command(self,hibernate_command):
- self.hibernate_command = hibernate_command
-
- def set_lock_command(self,lock_command):
- self.lock_command = lock_command
-
- def set_logout_command(self,logout_command):
- self.logout_command = logout_command
-
- def set_reboot_command(self,reboot_command):
- self.reboot_command = reboot_command
-
- def set_shutdown_command(self,shutdown_command):
- self.shutdown_command = shutdown_command
-
- def set_hibernate_icon(self,hibernate_icon):
- self.hibernate_icon = hibernate_icon
-
- def set_lock_icon(self,lock_icon):
- self.lock_icon = lock_icon
-
- def set_logout_icon(self,logout_icon):
- self.logout_icon = logout_icon
-
- def set_reboot_icon(self,reboot_icon):
- self.reboot_icon = reboot_icon
-
- def set_shutdown_icon(self,shutdown_icon):
- self.shutdown_icon = shutdown_icon
-
- def set_icon_size(self,icon_size):
- self.icon_size = int(icon_size)
-
- def set_icon_theme(self,icon_theme):
- self.icon_theme = icon_theme
-
- def set_gtk3_default_icon_theme(self,icon_theme):
- self.gtk3_default_icon_theme= icon_theme
-
- def set_icon_category(self,icon_category):
- self.icon_category = icon_category
-
- def set_can_hibernate(self,can_hibernate):
- print("Setting can_hibernate:",can_hibernate)
- self.can_hibernate = bool(can_hibernate)
-
- def get_hibernate_command(self):
- return self.hibernate_command
-
- def get_lock_command(self):
- return self.lock_command
-
- def get_logout_command(self):
- return self.logout_command
-
- def get_reboot_command(self):
- return self.reboot_command
-
- def get_shutdown_command(self):
- return self.shutdown_command
-
- def get_hibernate_icon(self):
- return self.hibernate_icon
-
- def get_lock_icon(self):
- return self.lock_icon
-
- def get_logout_icon(self):
- return self.logout_icon
-
- def get_reboot_icon(self):
- return self.reboot_icon
-
- def get_shutdown_icon(self):
- return self.shutdown_icon
-
- def get_hibernate_fallback_icon(self):
- return self.hibernate_fallback_icon
-
- def get_lock_fallback_icon(self):
- return self.lock_fallback_icon
-
- def get_logout_fallback_icon(self):
- return self.logout_fallback_icon
-
- def get_reboot_fallback_icon(self):
- return self.reboot_fallback_icon
-
- def get_shutdown_fallback_icon(self):
- return self.shutdown_fallback_icon
-
- def get_icon_size(self):
- return self.icon_size
-
- def get_icon_theme(self):
- return self.icon_theme
-
- def get_gtk3_default_icon_theme(self):
- return self.gtk3_default_icon_theme
-
- def get_icon_category(self):
- return self.icon_category
-
- def get_can_hibernate(self):
- return self.can_hibernate
-
-def get_gtk3_default_icon_theme():
- # abstracted so it does not clutter get_scaled_icon
- name = "hicolor"
- gtk3_config_path = os.path.join(os.path.expanduser("~"),".config","gtk-3.0","settings.ini")
- gtk3_config = configparser.ConfigParser()
- gtk3_config.read(gtk3_config_path)
- try:
- if 'Settings' in gtk3_config:
- name = gtk3_config['Settings']['gtk-icon-theme-name']
- elif 'settings' in gtk3_config:
- name = gtk3_config['settings']['gtk-icon-theme-name']
- except:
- # supposed failsafe: keep name = hicolor
- pass
- print("Found gtk3 default theme:",name)
- return name
-
-def Initialize_config(infile):
- # Read config
- config_in = configparser.ConfigParser()
- config_in.read(infile)
- config = Config()
- try:
- ci = config_in['logout-manager']
- except:
- # no definition
- print("Using default commands")
-
- try:
- ci_icons = config_in['icons']
- except:
- # no definition
- print("Using default icons")
-
- # load up our custom class, which stores the defaults in case we do not set them here
- if 'hibernate_command' in ci:
- config.set_hibernate_command(ci['hibernate_command'])
- if 'lock_command' in ci:
- config.set_lock_command(ci['lock_command'])
- if 'logout_command' in ci:
- config.set_logout_command(ci['logout_command'])
- if 'reboot_command' in ci:
- config.set_reboot_command(ci['reboot_command'])
- if 'shutdown_command' in ci:
- config.set_shutdown_command(ci['shutdown_command'])
- if 'hibernate' in ci_icons:
- config.set_hibernate_icon(ci_icons['hibernate'])
- if 'lock' in ci_icons:
- config.set_lock_icon(ci_icons['lock'])
- if 'logout' in ci_icons:
- config.set_logout_icon(ci_icons['logout'])
- if 'reboot' in ci_icons:
- config.set_reboot_icon(ci_icons['reboot'])
- if 'shutdown' in ci_icons:
- config.set_shutdown_icon(ci_icons['shutdown'])
- if 'size' in ci_icons:
- config.set_icon_size(ci_icons['size'])
- if 'theme' in ci_icons:
- config.set_icon_theme(ci_icons['theme'])
- # store the info about if hibernate is an option
- can_hibernate = False
- try:
- with open('/sys/power/state') as r:
- line = r.read()
- if 'disk' in line: can_hibernate = True
- except:
- pass
- config.set_can_hibernate(can_hibernate)
-
- # read gtk3_default_icon_theme
- config.set_gtk3_default_icon_theme(get_gtk3_default_icon_theme())
- if config.get_icon_theme() == "default":
- config.set_icon_theme(config.get_gtk3_default_icon_theme())
-
- # set icon category
- # written primarily for el7 which uses "app" for the system-reboot icons, etc.
- a = platform.dist()
- try:
- if a[0] == "redhat" and int(a[1].split(".")[0]) <= 7:
- config.set_icon_category("apps")
- except:
- pass
-
- # DEBUG, raw from conf file and system status
- print("Raw values:")
- for item in config_in.sections():
- print("["+item+"]")
- for key in config_in[item]:
- print(key+" = "+config_in[item][key])
- print("Can hibernate:",can_hibernate)
-
- # DEBUG, stored values
- print("Stored values:")
- print(config.get_hibernate_command())
- print(config.get_lock_command())
- print(config.get_logout_command())
- print(config.get_reboot_command())
- print(config.get_shutdown_command())
- print(config.get_hibernate_icon())
- print(config.get_lock_icon())
- print(config.get_logout_icon())
- print(config.get_reboot_icon())
- print(config.get_shutdown_icon())
- print(config.get_icon_size())
- print(config.get_icon_theme())
- print(config.get_icon_category())
- print("Can hibernate:",config.get_can_hibernate())
-
- return config
bgstack15