aboutsummaryrefslogtreecommitdiff
path: root/logout-manager-tcl.py
diff options
context:
space:
mode:
authorB Stack <bgstack15@gmail.com>2019-06-17 15:00:26 -0400
committerB Stack <bgstack15@gmail.com>2019-06-17 15:00:26 -0400
commit7d0f70188db8b0097074695459da274af816e6f3 (patch)
treec004267285662545804cf7c3191d85ee813c7485 /logout-manager-tcl.py
parentadd ref for svg for tkinter (diff)
downloadlogout-manager-7d0f70188db8b0097074695459da274af816e6f3.tar.gz
logout-manager-7d0f70188db8b0097074695459da274af816e6f3.tar.bz2
logout-manager-7d0f70188db8b0097074695459da274af816e6f3.zip
move gtk3 icon theme to lmlib and improve icon category resolution
Diffstat (limited to 'logout-manager-tcl.py')
-rwxr-xr-xlogout-manager-tcl.py36
1 files changed, 12 insertions, 24 deletions
diff --git a/logout-manager-tcl.py b/logout-manager-tcl.py
index cfeb851..5b0d29d 100755
--- a/logout-manager-tcl.py
+++ b/logout-manager-tcl.py
@@ -248,24 +248,6 @@ class Tooltip:
tw.destroy()
self.tw = None
-def get_gtk3_default_theme():
- # WORKHERE: move this to lmlib
- # 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
- name = "hicolor"
- print("Found gtk3 default theme:",name)
- return name
-
def tryint(s):
try:
return int(s)
@@ -309,13 +291,20 @@ def get_filename_of_icon(name, theme = "hicolor", size = 48, category = "actions
# example: Adwaita system-log-out
if theme == "default" or theme is None:
- theme = "hicolor"
+ try:
+ theme = lmlib.get_gtk3_default_icon_theme()
+ except:
+ theme = "hicolor"
# first, find all files underneath /usr/share/icons/$THEME/$SIZE
# WORKHERE, allow a prioritization of category, but tolerate any category if the requested category has no matches but another category does
print("Finding filename of icon, theme=",theme,"category=",category,"name=",name)
# WORKHERE: this glob affects if scalable/ dir is included. When support for svg is added (which is beyond PIL), need to add a conditional and use a second glob if USE_SVG=1.
+ results = []
results = glob.glob("/usr/share/icons/"+theme+"/*/"+category+"/"+name+".*")
+ if len(results) == 0:
+ # no results with that category, so try all categories
+ results = glob.glob("/usr/share/icons/"+theme+"/*/*/"+name+".*")
# the sort arranges it so a Numix/24 dir comes before a Numix/24@2x dir
results = sorted(results, key=sort_sizes)
#print(results)
@@ -333,9 +322,8 @@ def get_scaled_icon(icon_name, size = 24, icon_theme = "default", fallback_icon_
else:
if icon_theme == "default":
- # retrieve default theme from config file
- print("Discovering default icon theme...")
- icon_theme = get_gtk3_default_theme()
+ # this should not happen, because the Initialize_config should have checked gtk3 default value.
+ icon_theme = "hicolor"
# so now that icon_theme is defined, let us go find the icon that matches the requested name and size, in the actions category
#print("Using icon theme",icon_theme)
iconfilename = get_filename_of_icon(name=icon_name, theme=icon_theme, size=size, category=config.get_icon_category())
@@ -420,14 +408,14 @@ root = tk.Tk()
# MAIN LOOP
root.title("Log out options")
#root.iconbitmap(r'/usr/share/icons/Numix/48/actions/system-logout.svg')
-imgicon = get_scaled_icon(config.get_logout_icon(),24)
+imgicon = get_scaled_icon(config.get_logout_icon(),24,config.get_icon_theme())
#if USE_PRIVATE_TCL_IMAGES is None:
# #imgicon = PhotoImage(file=os.path.join("/usr/share/icons/Adwaita/24x24/actions","system-log-out.png"))
# imgicon = get_scaled_icon(config.get_logout_icon(),24)
#else:
# #imgicon = PhotoImage_from_png(file=os.path.join("/usr/share/icons/Adwaita/24x24/actions","system-log-out.png"))
# imgicon = get_scaled_icon(config.get_logout_icon(),24)
-print(imgicon)
+#print(imgicon)
root.tk.call('wm','iconphoto', root._w, imgicon)
app = App(root)
root.mainloop()
bgstack15