Added xscreensaver preview
This commit is contained in:
parent
0f46303c7c
commit
8bfce547f2
Binary file not shown.
|
@ -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("<span foreground=\"#e0cc64\">Nothing saved...</span>")
|
||||
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):
|
||||
|
|
|
@ -12,206 +12,6 @@
|
|||
<!-- column-name XScreensavers -->
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
<data>
|
||||
<row>
|
||||
<col id="0" translatable="yes">electricsheep</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">atlantis</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">atunnel</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">blinkbox</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">blocktube</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">bouncingcow</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">boxfit</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">bsod</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">bubble3d</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">bumps</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">cage</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">carousel</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">cube21</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">cubenetic</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">cubicgrid</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">cwaves</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">dangerball</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">fiberlamp</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">fireworkx</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">flipflop</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">fliptext</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">flow</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">flurry</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">flyingtoasters</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">gflux</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">glcells</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">gleidescope</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">glknots</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">glmatrix</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">glschool</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">glslideshow</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">glsnake</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">hypertorus</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">hypnowheel</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">interaggregate</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">intermomentary</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">jigglypuff</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">jigsaw</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">julia</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">lament</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">lockward</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">metaballs</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">moebiusgears</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">molecule</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">morph3d</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">noof</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">phosphor</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">photopile</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">pinion</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">popsquares</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">ripples</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">skytentacles</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">slidescreen</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">stonerview</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">strange</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">substrate</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">tangram</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">whirlwindwarp</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">wormhole</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">xflame</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">xrayswarm</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">companioncube</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">fuzzyflakes</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">galaxy</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">glplanet</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">penetrate</col>
|
||||
</row>
|
||||
</data>
|
||||
</object>
|
||||
<object class="GtkImage" id="clearImage">
|
||||
<property name="visible">True</property>
|
||||
|
@ -449,6 +249,7 @@
|
|||
<property name="can_focus">True</property>
|
||||
<property name="model">XScreensaver List</property>
|
||||
<property name="headers_visible">False</property>
|
||||
<signal name="button-press-event" handler="previewXscreen" swapped="no"/>
|
||||
<signal name="cursor-changed" handler="passXScreenVal" swapped="no"/>
|
||||
<child internal-child="selection">
|
||||
<object class="GtkTreeSelection"/>
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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("<span foreground=\"#e0cc64\">Nothing saved...</span>")
|
||||
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):
|
||||
|
|
|
@ -12,206 +12,6 @@
|
|||
<!-- column-name XScreensavers -->
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
<data>
|
||||
<row>
|
||||
<col id="0" translatable="yes">electricsheep</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">atlantis</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">atunnel</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">blinkbox</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">blocktube</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">bouncingcow</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">boxfit</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">bsod</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">bubble3d</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">bumps</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">cage</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">carousel</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">cube21</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">cubenetic</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">cubicgrid</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">cwaves</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">dangerball</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">fiberlamp</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">fireworkx</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">flipflop</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">fliptext</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">flow</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">flurry</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">flyingtoasters</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">gflux</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">glcells</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">gleidescope</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">glknots</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">glmatrix</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">glschool</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">glslideshow</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">glsnake</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">hypertorus</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">hypnowheel</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">interaggregate</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">intermomentary</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">jigglypuff</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">jigsaw</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">julia</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">lament</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">lockward</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">metaballs</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">moebiusgears</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">molecule</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">morph3d</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">noof</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">phosphor</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">photopile</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">pinion</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">popsquares</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">ripples</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">skytentacles</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">slidescreen</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">stonerview</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">strange</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">substrate</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">tangram</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">whirlwindwarp</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">wormhole</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">xflame</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">xrayswarm</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">companioncube</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">fuzzyflakes</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">galaxy</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">glplanet</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">penetrate</col>
|
||||
</row>
|
||||
</data>
|
||||
</object>
|
||||
<object class="GtkImage" id="clearImage">
|
||||
<property name="visible">True</property>
|
||||
|
@ -449,6 +249,7 @@
|
|||
<property name="can_focus">True</property>
|
||||
<property name="model">XScreensaver List</property>
|
||||
<property name="headers_visible">False</property>
|
||||
<signal name="button-press-event" handler="previewXscreen" swapped="no"/>
|
||||
<signal name="cursor-changed" handler="passXScreenVal" swapped="no"/>
|
||||
<child internal-child="selection">
|
||||
<object class="GtkTreeSelection"/>
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue