From 8bfce547f2ae60504cc67793c6da82dec53b9b88 Mon Sep 17 00:00:00 2001 From: Maxim Stewart Date: Mon, 13 May 2019 21:54:16 -0500 Subject: [PATCH] Added xscreensaver preview --- python/bin/gwinwrap-0-0-1-x64.deb | Bin 21756 -> 21432 bytes .../opt/GWinWrap/GWinWrap.py | 29 ++- .../opt/GWinWrap/resources/GWinWrap.glade | 201 +----------------- .../opt/GWinWrap/utils/SaveState.py | 30 +-- .../src/versions/0.0.1/GWinWrap/GWinWrap.py | 29 ++- .../0.0.1/GWinWrap/resources/GWinWrap.glade | 201 +----------------- .../0.0.1/GWinWrap/utils/SaveState.py | 30 +-- 7 files changed, 86 insertions(+), 434 deletions(-) diff --git a/python/bin/gwinwrap-0-0-1-x64.deb b/python/bin/gwinwrap-0-0-1-x64.deb index f3a0a2849811daf801ba7ad2c84efef2f0dc6a54..1c6ad69c4a421cdc2e0bf8a629e100a76037507c 100644 GIT binary patch delta 12829 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 delta 13155 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 J00004Sy~bGwP64N diff --git a/python/src/debs/gwinwrap-0-0-1-x64/opt/GWinWrap/GWinWrap.py b/python/src/debs/gwinwrap-0-0-1-x64/opt/GWinWrap/GWinWrap.py index 7e59ead..0fa48cb 100755 --- a/python/src/debs/gwinwrap-0-0-1-x64/opt/GWinWrap/GWinWrap.py +++ b/python/src/debs/gwinwrap-0-0-1-x64/opt/GWinWrap/GWinWrap.py @@ -8,7 +8,7 @@ gi.require_version('Gdk', '3.0') from gi.repository import Gtk as gtk from gi.repository import Gdk as gdk from gi.repository import GObject as gobject -from gi.repository import Gtk, GdkPixbuf +from gi.repository import GdkPixbuf from os import listdir from os.path import isfile, join @@ -28,9 +28,8 @@ class GWinWrap: self.window = self.builder.get_object("Main") self.builder.connect_signals(self) self.window.connect("delete-event", gtk.main_quit) - - self.screen = self.window.get_screen() - self.visual = self.screen.get_rgba_visual() + self.screen = self.window.get_screen() + self.visual = self.screen.get_rgba_visual() if self.visual != None and self.screen.is_composited(): self.window.set_visual(self.visual) @@ -61,7 +60,15 @@ class GWinWrap: # foreground=\"#ffa800\" # foreground=\"#88cc27\" # foreground=\"#ff0000\" - # foreground=\"#ff0000\" + + # Fill list xscreensaver + self.xscrPth = "/usr/lib/xscreensaver/" + xscreenList = self.builder.get_object("XScreensaver List") + list = [f for f in listdir(self.xscrPth) if isfile(join(self.xscrPth, f))] + list.sort() + + for file in list: + xscreenList.append((file,)) self.window.show() @@ -205,6 +212,10 @@ class GWinWrap: resolution = plyBckRes.get_active_text() + offset4Res.get_active_text() self.applyType = self.stateSaver.saveToFile(self.toSavePath, resolution, saveLoc, useXscreenSaver, self.xScreenVal) + if self.applyType == -1: + self.helpLabel.set_markup("Nothing saved...") + return + self.helpLabel.set_markup(self.savedLabel) def applySttngs(self, widget, data=None): @@ -229,6 +240,11 @@ class GWinWrap: treeiter = xSvrListStore.get_iter(path[0]) self.xScreenVal = xSvrListStore.get_value(treeiter, 0) + def previewXscreen(self, widget, eve): + if eve.type == gdk.EventType.DOUBLE_BUTTON_PRESS: + preview = self.xscrPth + "/" + self.xScreenVal + "&" + os.system(preview) + def clearSelection(self, widget, data=None): self.clear() @@ -242,10 +258,13 @@ class GWinWrap: break imageGrid.attach(self.gridLabel, 0, 0, 1, 1) + self.builder.get_object("xScreenSvrList").set_sensitive(False) + self.builder.get_object("useXScrnList").set_active(False) self.helpLabel.set_markup(self.defaultLabel) self.loadProgress.set_text("") self.loadProgress.set_fraction(0.0) self.toSavePath = None + self.xScreenVal = None self.applyType = 1 # Default to XWinWrap def closeProgram(self, widget, data=None): diff --git a/python/src/debs/gwinwrap-0-0-1-x64/opt/GWinWrap/resources/GWinWrap.glade b/python/src/debs/gwinwrap-0-0-1-x64/opt/GWinWrap/resources/GWinWrap.glade index 7920fbd..8654681 100644 --- a/python/src/debs/gwinwrap-0-0-1-x64/opt/GWinWrap/resources/GWinWrap.glade +++ b/python/src/debs/gwinwrap-0-0-1-x64/opt/GWinWrap/resources/GWinWrap.glade @@ -12,206 +12,6 @@ - - - electricsheep - - - atlantis - - - atunnel - - - blinkbox - - - blocktube - - - bouncingcow - - - boxfit - - - bsod - - - bubble3d - - - bumps - - - cage - - - carousel - - - cube21 - - - cubenetic - - - cubicgrid - - - cwaves - - - dangerball - - - fiberlamp - - - fireworkx - - - flipflop - - - fliptext - - - flow - - - flurry - - - flyingtoasters - - - gflux - - - glcells - - - gleidescope - - - glknots - - - glmatrix - - - glschool - - - glslideshow - - - glsnake - - - hypertorus - - - hypnowheel - - - interaggregate - - - intermomentary - - - jigglypuff - - - jigsaw - - - julia - - - lament - - - lockward - - - metaballs - - - moebiusgears - - - molecule - - - morph3d - - - noof - - - phosphor - - - photopile - - - pinion - - - popsquares - - - ripples - - - skytentacles - - - slidescreen - - - stonerview - - - strange - - - substrate - - - tangram - - - whirlwindwarp - - - wormhole - - - xflame - - - xrayswarm - - - companioncube - - - fuzzyflakes - - - galaxy - - - glplanet - - - penetrate - - True @@ -449,6 +249,7 @@ True XScreensaver List False + diff --git a/python/src/debs/gwinwrap-0-0-1-x64/opt/GWinWrap/utils/SaveState.py b/python/src/debs/gwinwrap-0-0-1-x64/opt/GWinWrap/utils/SaveState.py index 0eac2af..6187fde 100644 --- a/python/src/debs/gwinwrap-0-0-1-x64/opt/GWinWrap/utils/SaveState.py +++ b/python/src/debs/gwinwrap-0-0-1-x64/opt/GWinWrap/utils/SaveState.py @@ -5,29 +5,32 @@ import os class SaveState: def __init__(self): self.fileWriter = None - self.filePath = None + self.toSavePath = None self.useXSvrn = None self.xScreenVal = None self.sveFileLoc = None self.resolution = None - def saveToFile(self, filePath, resolution, - saveLoc, useXSvrn, xScreenVal): + def saveToFile(self, toSavePath, resolution, + saveLoc, useXSvrn, xScreenVal): - self.filePath = filePath + self.toSavePath = toSavePath self.useXSvrn = useXSvrn self.xScreenVal = xScreenVal self.resolution = resolution userPth = os.path.expanduser('~') # Saves to file with selected and needed settings - if filePath: - if filePath.lower().endswith(('.png', '.jpg', '.jpeg', '.gif')): + if toSavePath: + if toSavePath.lower().endswith(('.png', '.jpg', '.jpeg', '.gif')): self.sveFileLoc = userPth + "/" + ".config/nitrogen/bg-saved.cfg" else: self.sveFileLoc = userPth + "/" + saveLoc + elif useXSvrn and xScreenVal: + self.sveFileLoc = userPth + "/" + saveLoc else: - self.filePath = '' + return -1 + if self.sveFileLoc: self.fileWriter = open(self.sveFileLoc, "w") @@ -37,19 +40,22 @@ class SaveState: applyType = 1 output = None + print("XScreen: " + str(self.useXSvrn)) + print(self.fileWriter) + # XSCREENSAVER if self.useXSvrn: output = "xwinwrap -ov -g " + self.resolution + " -st -sp -b -nf -s -ni -- /usr/lib/xscreensaver/" + self.xScreenVal + " -window-id WID -root"; # GIF - elif self.filePath.lower().endswith(('.gif')): - output = "xwinwrap -ov -g " + self.resolution + " -st -sp -b -nf -s -ni -- gifview -a -w WID " + self.filePath; + elif self.toSavePath.lower().endswith(('.gif')): + output = "xwinwrap -ov -g " + self.resolution + " -st -sp -b -nf -s -ni -- gifview -a -w WID " + self.toSavePath; # Standard images using nitrogen - elif self.filePath.lower().endswith(('.png', 'jpg', '.jpeg')): - output = "[xin_0] \n file=" + self.filePath + "\nmode=0 \nbgcolor=#000000\n[xin_1] \nfile=" + self.filePath + "\nmode=0 \nbgcolor=#000000"; + elif self.toSavePath.lower().endswith(('.png', 'jpg', '.jpeg')): + output = "[xin_0] \n file=" + self.toSavePath + "\nmode=0 \nbgcolor=#000000\n[xin_1] \nfile=" + self.toSavePath + "\nmode=0 \nbgcolor=#000000"; applyType = 2; # VIDEO else: - output = "xwinwrap -ov -g " + self.resolution + " -st -sp -b -nf -s -ni -- mplayer -wid WID -really-quiet -ao null -loop 0 " + self.filePath; + output = "xwinwrap -ov -g " + self.resolution + " -st -sp -b -nf -s -ni -- mplayer -wid WID -really-quiet -ao null -loop 0 " + self.toSavePath; pass if self.fileWriter: diff --git a/python/src/versions/0.0.1/GWinWrap/GWinWrap.py b/python/src/versions/0.0.1/GWinWrap/GWinWrap.py index 7e59ead..0fa48cb 100755 --- a/python/src/versions/0.0.1/GWinWrap/GWinWrap.py +++ b/python/src/versions/0.0.1/GWinWrap/GWinWrap.py @@ -8,7 +8,7 @@ gi.require_version('Gdk', '3.0') from gi.repository import Gtk as gtk from gi.repository import Gdk as gdk from gi.repository import GObject as gobject -from gi.repository import Gtk, GdkPixbuf +from gi.repository import GdkPixbuf from os import listdir from os.path import isfile, join @@ -28,9 +28,8 @@ class GWinWrap: self.window = self.builder.get_object("Main") self.builder.connect_signals(self) self.window.connect("delete-event", gtk.main_quit) - - self.screen = self.window.get_screen() - self.visual = self.screen.get_rgba_visual() + self.screen = self.window.get_screen() + self.visual = self.screen.get_rgba_visual() if self.visual != None and self.screen.is_composited(): self.window.set_visual(self.visual) @@ -61,7 +60,15 @@ class GWinWrap: # foreground=\"#ffa800\" # foreground=\"#88cc27\" # foreground=\"#ff0000\" - # foreground=\"#ff0000\" + + # Fill list xscreensaver + self.xscrPth = "/usr/lib/xscreensaver/" + xscreenList = self.builder.get_object("XScreensaver List") + list = [f for f in listdir(self.xscrPth) if isfile(join(self.xscrPth, f))] + list.sort() + + for file in list: + xscreenList.append((file,)) self.window.show() @@ -205,6 +212,10 @@ class GWinWrap: resolution = plyBckRes.get_active_text() + offset4Res.get_active_text() self.applyType = self.stateSaver.saveToFile(self.toSavePath, resolution, saveLoc, useXscreenSaver, self.xScreenVal) + if self.applyType == -1: + self.helpLabel.set_markup("Nothing saved...") + return + self.helpLabel.set_markup(self.savedLabel) def applySttngs(self, widget, data=None): @@ -229,6 +240,11 @@ class GWinWrap: treeiter = xSvrListStore.get_iter(path[0]) self.xScreenVal = xSvrListStore.get_value(treeiter, 0) + def previewXscreen(self, widget, eve): + if eve.type == gdk.EventType.DOUBLE_BUTTON_PRESS: + preview = self.xscrPth + "/" + self.xScreenVal + "&" + os.system(preview) + def clearSelection(self, widget, data=None): self.clear() @@ -242,10 +258,13 @@ class GWinWrap: break imageGrid.attach(self.gridLabel, 0, 0, 1, 1) + self.builder.get_object("xScreenSvrList").set_sensitive(False) + self.builder.get_object("useXScrnList").set_active(False) self.helpLabel.set_markup(self.defaultLabel) self.loadProgress.set_text("") self.loadProgress.set_fraction(0.0) self.toSavePath = None + self.xScreenVal = None self.applyType = 1 # Default to XWinWrap def closeProgram(self, widget, data=None): diff --git a/python/src/versions/0.0.1/GWinWrap/resources/GWinWrap.glade b/python/src/versions/0.0.1/GWinWrap/resources/GWinWrap.glade index 7920fbd..8654681 100644 --- a/python/src/versions/0.0.1/GWinWrap/resources/GWinWrap.glade +++ b/python/src/versions/0.0.1/GWinWrap/resources/GWinWrap.glade @@ -12,206 +12,6 @@ - - - electricsheep - - - atlantis - - - atunnel - - - blinkbox - - - blocktube - - - bouncingcow - - - boxfit - - - bsod - - - bubble3d - - - bumps - - - cage - - - carousel - - - cube21 - - - cubenetic - - - cubicgrid - - - cwaves - - - dangerball - - - fiberlamp - - - fireworkx - - - flipflop - - - fliptext - - - flow - - - flurry - - - flyingtoasters - - - gflux - - - glcells - - - gleidescope - - - glknots - - - glmatrix - - - glschool - - - glslideshow - - - glsnake - - - hypertorus - - - hypnowheel - - - interaggregate - - - intermomentary - - - jigglypuff - - - jigsaw - - - julia - - - lament - - - lockward - - - metaballs - - - moebiusgears - - - molecule - - - morph3d - - - noof - - - phosphor - - - photopile - - - pinion - - - popsquares - - - ripples - - - skytentacles - - - slidescreen - - - stonerview - - - strange - - - substrate - - - tangram - - - whirlwindwarp - - - wormhole - - - xflame - - - xrayswarm - - - companioncube - - - fuzzyflakes - - - galaxy - - - glplanet - - - penetrate - - True @@ -449,6 +249,7 @@ True XScreensaver List False + diff --git a/python/src/versions/0.0.1/GWinWrap/utils/SaveState.py b/python/src/versions/0.0.1/GWinWrap/utils/SaveState.py index 0eac2af..6187fde 100644 --- a/python/src/versions/0.0.1/GWinWrap/utils/SaveState.py +++ b/python/src/versions/0.0.1/GWinWrap/utils/SaveState.py @@ -5,29 +5,32 @@ import os class SaveState: def __init__(self): self.fileWriter = None - self.filePath = None + self.toSavePath = None self.useXSvrn = None self.xScreenVal = None self.sveFileLoc = None self.resolution = None - def saveToFile(self, filePath, resolution, - saveLoc, useXSvrn, xScreenVal): + def saveToFile(self, toSavePath, resolution, + saveLoc, useXSvrn, xScreenVal): - self.filePath = filePath + self.toSavePath = toSavePath self.useXSvrn = useXSvrn self.xScreenVal = xScreenVal self.resolution = resolution userPth = os.path.expanduser('~') # Saves to file with selected and needed settings - if filePath: - if filePath.lower().endswith(('.png', '.jpg', '.jpeg', '.gif')): + if toSavePath: + if toSavePath.lower().endswith(('.png', '.jpg', '.jpeg', '.gif')): self.sveFileLoc = userPth + "/" + ".config/nitrogen/bg-saved.cfg" else: self.sveFileLoc = userPth + "/" + saveLoc + elif useXSvrn and xScreenVal: + self.sveFileLoc = userPth + "/" + saveLoc else: - self.filePath = '' + return -1 + if self.sveFileLoc: self.fileWriter = open(self.sveFileLoc, "w") @@ -37,19 +40,22 @@ class SaveState: applyType = 1 output = None + print("XScreen: " + str(self.useXSvrn)) + print(self.fileWriter) + # XSCREENSAVER if self.useXSvrn: output = "xwinwrap -ov -g " + self.resolution + " -st -sp -b -nf -s -ni -- /usr/lib/xscreensaver/" + self.xScreenVal + " -window-id WID -root"; # GIF - elif self.filePath.lower().endswith(('.gif')): - output = "xwinwrap -ov -g " + self.resolution + " -st -sp -b -nf -s -ni -- gifview -a -w WID " + self.filePath; + elif self.toSavePath.lower().endswith(('.gif')): + output = "xwinwrap -ov -g " + self.resolution + " -st -sp -b -nf -s -ni -- gifview -a -w WID " + self.toSavePath; # Standard images using nitrogen - elif self.filePath.lower().endswith(('.png', 'jpg', '.jpeg')): - output = "[xin_0] \n file=" + self.filePath + "\nmode=0 \nbgcolor=#000000\n[xin_1] \nfile=" + self.filePath + "\nmode=0 \nbgcolor=#000000"; + elif self.toSavePath.lower().endswith(('.png', 'jpg', '.jpeg')): + output = "[xin_0] \n file=" + self.toSavePath + "\nmode=0 \nbgcolor=#000000\n[xin_1] \nfile=" + self.toSavePath + "\nmode=0 \nbgcolor=#000000"; applyType = 2; # VIDEO else: - output = "xwinwrap -ov -g " + self.resolution + " -st -sp -b -nf -s -ni -- mplayer -wid WID -really-quiet -ao null -loop 0 " + self.filePath; + output = "xwinwrap -ov -g " + self.resolution + " -st -sp -b -nf -s -ni -- mplayer -wid WID -really-quiet -ao null -loop 0 " + self.toSavePath; pass if self.fileWriter: