New version number plus major layout changes. Cleaned logic too.
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,8 @@
|
|||||||
|
Package: fxwinwrap
|
||||||
|
Version: 0.1-3
|
||||||
|
Section: base
|
||||||
|
Priority: optional
|
||||||
|
Architecture: i386
|
||||||
|
Depends: openjdk-8-jre (>= 8u45-b14-1), openjfx (>= 8u60-b27-4), ffmpegthumbnailer (>= 2.0.10-0.1), mplayer2 (>=2.0-728-g2c378c7-4), gifsicle (>=1.86-1), nitrogen (>=1.5.2-2)
|
||||||
|
Maintainer: Maxim Stewart [email protected]
|
||||||
|
Description: A GUI to handle setting XWinWrap options.
|
||||||
Executable
+16
@@ -0,0 +1,16 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#postrm (script executed after uninstalling the package)
|
||||||
|
#set -e
|
||||||
|
|
||||||
|
if [ -f /bin/fxwinwrap ]; then
|
||||||
|
rm /bin/fxwinwrap
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d /opt/FXWinWrap ]; then
|
||||||
|
rm -rf /opt/FXWinWrap
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -x "`which xdg-desktop-menu 2>/dev/null`" ]; then
|
||||||
|
xdg-desktop-menu uninstall /usr/share/applications/FXWinWrap.desktop
|
||||||
|
xdg-desktop-menu forceupdate --mode user
|
||||||
|
fi
|
||||||
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
java XWWMenu
|
||||||
@@ -0,0 +1,175 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<?import java.lang.String?>
|
||||||
|
<?import javafx.collections.FXCollections?>
|
||||||
|
<?import javafx.geometry.Insets?>
|
||||||
|
<?import javafx.scene.control.Button?>
|
||||||
|
<?import javafx.scene.control.CheckBox?>
|
||||||
|
<?import javafx.scene.control.ChoiceBox?>
|
||||||
|
<?import javafx.scene.control.Label?>
|
||||||
|
<?import javafx.scene.control.ListView?>
|
||||||
|
<?import javafx.scene.control.ScrollPane?>
|
||||||
|
<?import javafx.scene.control.TextField?>
|
||||||
|
<?import javafx.scene.layout.AnchorPane?>
|
||||||
|
<?import javafx.scene.layout.TilePane?>
|
||||||
|
<?import javafx.scene.paint.Color?>
|
||||||
|
<?import javafx.scene.text.Font?>
|
||||||
|
<?scenebuilder-background-color 0x444444ff?>
|
||||||
|
|
||||||
|
<AnchorPane minHeight="300.0" minWidth="300.0" prefHeight="600.0" prefWidth="950.0" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" fx:controller="Controller">
|
||||||
|
<children>
|
||||||
|
<TextField id="txtDirPath" fx:id="dirPathField" blendMode="DIFFERENCE" onKeyReleased="#onEnter" prefWidth="880.0" promptText="Directory Path" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="70.0" AnchorPane.topAnchor="5.0" />
|
||||||
|
<Button fx:id="clear" mnemonicParsing="false" onAction="#clearBttnClick" text="Clear" AnchorPane.rightAnchor="15.0" AnchorPane.topAnchor="5.0" />
|
||||||
|
<TextField id="txtDirPath" fx:id="filePathField" blendMode="DIFFERENCE" layoutY="33.0" onKeyReleased="#onEnter" prefWidth="950.0" promptText="File Path" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="15.0" />
|
||||||
|
<ScrollPane id="ScrollPane" layoutX="19.0" layoutY="101.0" minHeight="226.0" minWidth="300.0" prefHeight="490.0" prefViewportHeight="534.0" prefViewportWidth="742.0" prefWidth="637.0" style=" -fx-fit-to-height: true; -fx-fit-to-width: true;" AnchorPane.bottomAnchor="10.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="315.0" AnchorPane.topAnchor="100.0">
|
||||||
|
<content>
|
||||||
|
<TilePane fx:id="tilePane" hgap="15.0" prefHeight="532.0" prefWidth="755.0" vgap="15.0">
|
||||||
|
<children>
|
||||||
|
<Label id="dir" fx:id="dirLbl" contentDisplay="CENTER" labelFor="$clear" onMouseClicked="#setNewDir" opacity="0.5" prefHeight="478.0" prefWidth="629.0" text="Choose Image/Video Directory..." textAlignment="LEFT" textOverrun="CLIP" underline="false" wrapText="false" TilePane.alignment="CENTER">
|
||||||
|
<font>
|
||||||
|
<Font name="System Bold" size="32.0" />
|
||||||
|
</font>
|
||||||
|
<textFill>
|
||||||
|
<Color blue="0.875" green="0.875" red="0.875" />
|
||||||
|
</textFill>
|
||||||
|
<TilePane.margin>
|
||||||
|
<Insets />
|
||||||
|
</TilePane.margin>
|
||||||
|
</Label>
|
||||||
|
</children>
|
||||||
|
</TilePane>
|
||||||
|
</content>
|
||||||
|
</ScrollPane>
|
||||||
|
<ListView fx:id="selXScreenSvr" disable="true" layoutX="649.0" layoutY="101.0" onMouseClicked="#passXScreenVal" prefHeight="257.0" prefWidth="283.0" AnchorPane.bottomAnchor="230.0" AnchorPane.rightAnchor="15.0" AnchorPane.topAnchor="100.0">
|
||||||
|
<items>
|
||||||
|
<FXCollections fx:factory="observableArrayList">
|
||||||
|
<String fx:value="electricsheep " />
|
||||||
|
<String fx:value="atlantis" />
|
||||||
|
<String fx:value="atunnel " />
|
||||||
|
<String fx:value="blinkbox " />
|
||||||
|
<String fx:value="blocktube" />
|
||||||
|
<String fx:value="bouncingcow " />
|
||||||
|
<String fx:value="boxfit " />
|
||||||
|
<String fx:value="bsod" />
|
||||||
|
<String fx:value="bubble3d " />
|
||||||
|
<String fx:value="bumps " />
|
||||||
|
<String fx:value="cage" />
|
||||||
|
<String fx:value="carousel " />
|
||||||
|
<String fx:value="cube21 " />
|
||||||
|
<String fx:value="cubenetic" />
|
||||||
|
<String fx:value="cubicgrid " />
|
||||||
|
<String fx:value="cwaves " />
|
||||||
|
<String fx:value="dangerball" />
|
||||||
|
<String fx:value="fiberlamp " />
|
||||||
|
<String fx:value="fireworkx " />
|
||||||
|
<String fx:value="flipflop" />
|
||||||
|
<String fx:value="fliptext " />
|
||||||
|
<String fx:value="flow " />
|
||||||
|
<String fx:value="flurry" />
|
||||||
|
<String fx:value="flyingtoasters " />
|
||||||
|
<String fx:value="gflux " />
|
||||||
|
<String fx:value="glcells" />
|
||||||
|
<String fx:value="gleidescope " />
|
||||||
|
<String fx:value="glknots " />
|
||||||
|
<String fx:value="glmatrix" />
|
||||||
|
<String fx:value="glschool " />
|
||||||
|
<String fx:value="glslideshow " />
|
||||||
|
<String fx:value="glsnake" />
|
||||||
|
<String fx:value="hypertorus " />
|
||||||
|
<String fx:value="hypnowheel " />
|
||||||
|
<String fx:value="interaggregate" />
|
||||||
|
<String fx:value="intermomentary " />
|
||||||
|
<String fx:value="jigglypuff " />
|
||||||
|
<String fx:value="jigsaw" />
|
||||||
|
<String fx:value="julia " />
|
||||||
|
<String fx:value="lament " />
|
||||||
|
<String fx:value="lockward" />
|
||||||
|
<String fx:value="metaballs " />
|
||||||
|
<String fx:value="moebiusgears " />
|
||||||
|
<String fx:value="molecule" />
|
||||||
|
<String fx:value="morph3d " />
|
||||||
|
<String fx:value="noof " />
|
||||||
|
<String fx:value="phosphor" />
|
||||||
|
<String fx:value="photopile " />
|
||||||
|
<String fx:value="pinion " />
|
||||||
|
<String fx:value="popsquares" />
|
||||||
|
<String fx:value="ripples " />
|
||||||
|
<String fx:value="skytentacles " />
|
||||||
|
<String fx:value="slidescreen" />
|
||||||
|
<String fx:value="stonerview " />
|
||||||
|
<String fx:value="strange " />
|
||||||
|
<String fx:value="substrate" />
|
||||||
|
<String fx:value="tangram " />
|
||||||
|
<String fx:value="whirlwindwarp " />
|
||||||
|
<String fx:value="wormhole" />
|
||||||
|
<String fx:value="xflame " />
|
||||||
|
<String fx:value="xrayswarm " />
|
||||||
|
<String fx:value="companioncube" />
|
||||||
|
<String fx:value="fuzzyflakes " />
|
||||||
|
<String fx:value="galaxy " />
|
||||||
|
<String fx:value="glplanet" />
|
||||||
|
<String fx:value="penetrate" />
|
||||||
|
</FXCollections>
|
||||||
|
</items>
|
||||||
|
</ListView>
|
||||||
|
<Label layoutX="804.0" layoutY="374.0" text="Position Offset:" AnchorPane.bottomAnchor="210.0" AnchorPane.rightAnchor="47.0" />
|
||||||
|
<Label layoutX="654.0" layoutY="429.0" text="Save Path:" AnchorPane.bottomAnchor="155.0" AnchorPane.rightAnchor="226.0" />
|
||||||
|
<Button id="saveBttn" layoutX="652.0" layoutY="487.0" mnemonicParsing="false" onAction="#saveToFile" prefHeight="50.0" prefWidth="169.0" text="Save Selection" AnchorPane.bottomAnchor="63.0" AnchorPane.rightAnchor="129.0" />
|
||||||
|
<Button id="applyBttn" layoutX="835.0" layoutY="487.0" mnemonicParsing="false" onAction="#applySttngs" prefHeight="50.0" prefWidth="100.0" text="Apply" AnchorPane.bottomAnchor="63.0" AnchorPane.rightAnchor="15.0" />
|
||||||
|
<Button id="killBttn" layoutX="652.0" layoutY="540.0" mnemonicParsing="false" onAction="#killXWinWrp" prefHeight="50.0" prefWidth="169.0" text="Kill XWinWrap" AnchorPane.bottomAnchor="10.0" AnchorPane.rightAnchor="129.0" />
|
||||||
|
<Button fx:id="closeBttn" mnemonicParsing="false" onAction="#closeProg" prefHeight="50.0" prefWidth="100.0" text="Close" AnchorPane.bottomAnchor="10.0" AnchorPane.rightAnchor="15.0" />
|
||||||
|
<ChoiceBox fx:id="listSaveLoc" layoutX="641.0" layoutY="443.0" prefHeight="29.0" prefWidth="283.0" AnchorPane.bottomAnchor="125.0" AnchorPane.rightAnchor="15.0">
|
||||||
|
<items>
|
||||||
|
<FXCollections fx:factory="observableArrayList">
|
||||||
|
<String fx:value=".animatedBGstarter.sh" />
|
||||||
|
<String fx:value=".animatedBGstarter2.sh" />
|
||||||
|
</FXCollections>
|
||||||
|
</items>
|
||||||
|
</ChoiceBox>
|
||||||
|
<ChoiceBox id="listRes" fx:id="setMonPosOffset" layoutX="769.0" layoutY="401.0" prefHeight="29.0" prefWidth="135.0" value="+0+0" AnchorPane.bottomAnchor="180.0" AnchorPane.rightAnchor="12.0">
|
||||||
|
<items>
|
||||||
|
<FXCollections fx:factory="observableArrayList">
|
||||||
|
<String fx:value="Left" />
|
||||||
|
<String fx:value="-1920+0" />
|
||||||
|
<String fx:value="-1440+0" />
|
||||||
|
<String fx:value="-1600+0" />
|
||||||
|
<String fx:value="-1280+0" />
|
||||||
|
<String fx:value="-800+0" />
|
||||||
|
<String fx:value="Right" />
|
||||||
|
<String fx:value="+1920+0" />
|
||||||
|
<String fx:value="+1440+0" />
|
||||||
|
<String fx:value="+1600+0" />
|
||||||
|
<String fx:value="+1280+0" />
|
||||||
|
<String fx:value="+800+0" />
|
||||||
|
<String fx:value="+0+0" />
|
||||||
|
<String fx:value="Top" />
|
||||||
|
<String fx:value="+0+1920" />
|
||||||
|
<String fx:value="+0+1440" />
|
||||||
|
<String fx:value="+0+1600" />
|
||||||
|
<String fx:value="+0+1280" />
|
||||||
|
<String fx:value="+0+800" />
|
||||||
|
<String fx:value="Bottom" />
|
||||||
|
<String fx:value="+0-1920" />
|
||||||
|
<String fx:value="+0-1440" />
|
||||||
|
<String fx:value="+0-1600" />
|
||||||
|
<String fx:value="+0-1280" />
|
||||||
|
<String fx:value="+0-800" />
|
||||||
|
</FXCollections>
|
||||||
|
</items>
|
||||||
|
</ChoiceBox>
|
||||||
|
<ChoiceBox id="listRes" fx:id="playbackResolution" layoutX="652.0" layoutY="401.0" prefHeight="29.0" prefWidth="135.0" value="1920x1080" AnchorPane.bottomAnchor="180.0" AnchorPane.rightAnchor="163.0">
|
||||||
|
<items>
|
||||||
|
<FXCollections fx:factory="observableArrayList">
|
||||||
|
<String fx:value="1920x1080" />
|
||||||
|
<String fx:value="1440x720" />
|
||||||
|
<String fx:value="1600x900" />
|
||||||
|
<String fx:value="1280x720" />
|
||||||
|
<String fx:value="800x600" />
|
||||||
|
</FXCollections>
|
||||||
|
</items>
|
||||||
|
</ChoiceBox>
|
||||||
|
<CheckBox fx:id="useXSvrn" layoutX="724.0" layoutY="75.0" mnemonicParsing="false" onMouseClicked="#toggleXscreenUsageField" prefHeight="18.0" prefWidth="158.0" text="Use XScreenSaver" AnchorPane.rightAnchor="65.0" AnchorPane.topAnchor="75.0" />
|
||||||
|
<Label layoutX="653.0" layoutY="374.0" text="Playback Resolutions:" AnchorPane.bottomAnchor="210.0" AnchorPane.rightAnchor="155.0" />
|
||||||
|
<Label layoutX="127.0" layoutY="76.0" prefWidth="382.0" text="Note: Double click an image to view the video or image." AnchorPane.leftAnchor="125.0" AnchorPane.topAnchor="75.0" />
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
+8
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
|
||||||
|
function main() {
|
||||||
|
notify-send -u critical "You need to install ffmpegthumbnailer to have FXWinWrap work properly..."
|
||||||
|
xterm -e sudo apt install ffmpegthumbnailer
|
||||||
|
}
|
||||||
|
main;
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
### nohup is needed to keep child processes alive from java's
|
||||||
|
nohup bash ~/.animatedBGstarter.sh &> /dev/null &
|
||||||
|
nohup bash ~/.animatedBGstarter2.sh &> /dev/null &
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 9.1 KiB |
@@ -0,0 +1,3 @@
|
|||||||
|
.root {
|
||||||
|
-fx-background: rgba(68, 68, 68, 0.8); // == #444444;
|
||||||
|
}
|
||||||
Binary file not shown.
@@ -0,0 +1,10 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Encoding=UTF-8
|
||||||
|
Name=FXWinWrap
|
||||||
|
Comment=JavaFX gui for XWinWrap
|
||||||
|
Exec=/bin/fxwinwrap
|
||||||
|
Icon=/opt/FXWinWrap/resources/fxwinwrap.png
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
Categories=System;
|
||||||
|
MimeType=application/fxml;
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
Package: fxwinwrap
|
||||||
|
Version: 0.1-3
|
||||||
|
Section: base
|
||||||
|
Priority: optional
|
||||||
|
Architecture: i386
|
||||||
|
Depends: openjdk-8-jre (>= 8u45-b14-1), openjfx (>= 8u60-b27-4), ffmpegthumbnailer (>= 2.0.10-0.1), mplayer2 (>=2.0-728-g2c378c7-4), gifsicle (>=1.86-1), nitrogen (>=1.5.2-2)
|
||||||
|
Maintainer: Maxim Stewart [email protected]
|
||||||
|
Description: A GUI to handle setting XWinWrap options.
|
||||||
Executable
+16
@@ -0,0 +1,16 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#postrm (script executed after uninstalling the package)
|
||||||
|
#set -e
|
||||||
|
|
||||||
|
if [ -f /bin/fxwinwrap ]; then
|
||||||
|
rm /bin/fxwinwrap
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d /opt/FXWinWrap ]; then
|
||||||
|
rm -rf /opt/FXWinWrap
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -x "`which xdg-desktop-menu 2>/dev/null`" ]; then
|
||||||
|
xdg-desktop-menu uninstall /usr/share/applications/FXWinWrap.desktop
|
||||||
|
xdg-desktop-menu forceupdate --mode user
|
||||||
|
fi
|
||||||
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
java XWWMenu
|
||||||
@@ -0,0 +1,175 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<?import java.lang.String?>
|
||||||
|
<?import javafx.collections.FXCollections?>
|
||||||
|
<?import javafx.geometry.Insets?>
|
||||||
|
<?import javafx.scene.control.Button?>
|
||||||
|
<?import javafx.scene.control.CheckBox?>
|
||||||
|
<?import javafx.scene.control.ChoiceBox?>
|
||||||
|
<?import javafx.scene.control.Label?>
|
||||||
|
<?import javafx.scene.control.ListView?>
|
||||||
|
<?import javafx.scene.control.ScrollPane?>
|
||||||
|
<?import javafx.scene.control.TextField?>
|
||||||
|
<?import javafx.scene.layout.AnchorPane?>
|
||||||
|
<?import javafx.scene.layout.TilePane?>
|
||||||
|
<?import javafx.scene.paint.Color?>
|
||||||
|
<?import javafx.scene.text.Font?>
|
||||||
|
<?scenebuilder-background-color 0x444444ff?>
|
||||||
|
|
||||||
|
<AnchorPane minHeight="300.0" minWidth="300.0" prefHeight="600.0" prefWidth="950.0" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" fx:controller="Controller">
|
||||||
|
<children>
|
||||||
|
<TextField id="txtDirPath" fx:id="dirPathField" blendMode="DIFFERENCE" onKeyReleased="#onEnter" prefWidth="880.0" promptText="Directory Path" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="70.0" AnchorPane.topAnchor="5.0" />
|
||||||
|
<Button fx:id="clear" mnemonicParsing="false" onAction="#clearBttnClick" text="Clear" AnchorPane.rightAnchor="15.0" AnchorPane.topAnchor="5.0" />
|
||||||
|
<TextField id="txtDirPath" fx:id="filePathField" blendMode="DIFFERENCE" layoutY="33.0" onKeyReleased="#onEnter" prefWidth="950.0" promptText="File Path" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="15.0" />
|
||||||
|
<ScrollPane id="ScrollPane" layoutX="19.0" layoutY="101.0" minHeight="226.0" minWidth="300.0" prefHeight="490.0" prefViewportHeight="534.0" prefViewportWidth="742.0" prefWidth="637.0" style=" -fx-fit-to-height: true; -fx-fit-to-width: true;" AnchorPane.bottomAnchor="10.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="315.0" AnchorPane.topAnchor="100.0">
|
||||||
|
<content>
|
||||||
|
<TilePane fx:id="tilePane" hgap="15.0" prefHeight="532.0" prefWidth="755.0" vgap="15.0">
|
||||||
|
<children>
|
||||||
|
<Label id="dir" fx:id="dirLbl" contentDisplay="CENTER" labelFor="$clear" onMouseClicked="#setNewDir" opacity="0.5" prefHeight="478.0" prefWidth="629.0" text="Choose Image/Video Directory..." textAlignment="LEFT" textOverrun="CLIP" underline="false" wrapText="false" TilePane.alignment="CENTER">
|
||||||
|
<font>
|
||||||
|
<Font name="System Bold" size="32.0" />
|
||||||
|
</font>
|
||||||
|
<textFill>
|
||||||
|
<Color blue="0.875" green="0.875" red="0.875" />
|
||||||
|
</textFill>
|
||||||
|
<TilePane.margin>
|
||||||
|
<Insets />
|
||||||
|
</TilePane.margin>
|
||||||
|
</Label>
|
||||||
|
</children>
|
||||||
|
</TilePane>
|
||||||
|
</content>
|
||||||
|
</ScrollPane>
|
||||||
|
<ListView fx:id="selXScreenSvr" disable="true" layoutX="649.0" layoutY="101.0" onMouseClicked="#passXScreenVal" prefHeight="257.0" prefWidth="283.0" AnchorPane.bottomAnchor="230.0" AnchorPane.rightAnchor="15.0" AnchorPane.topAnchor="100.0">
|
||||||
|
<items>
|
||||||
|
<FXCollections fx:factory="observableArrayList">
|
||||||
|
<String fx:value="electricsheep " />
|
||||||
|
<String fx:value="atlantis" />
|
||||||
|
<String fx:value="atunnel " />
|
||||||
|
<String fx:value="blinkbox " />
|
||||||
|
<String fx:value="blocktube" />
|
||||||
|
<String fx:value="bouncingcow " />
|
||||||
|
<String fx:value="boxfit " />
|
||||||
|
<String fx:value="bsod" />
|
||||||
|
<String fx:value="bubble3d " />
|
||||||
|
<String fx:value="bumps " />
|
||||||
|
<String fx:value="cage" />
|
||||||
|
<String fx:value="carousel " />
|
||||||
|
<String fx:value="cube21 " />
|
||||||
|
<String fx:value="cubenetic" />
|
||||||
|
<String fx:value="cubicgrid " />
|
||||||
|
<String fx:value="cwaves " />
|
||||||
|
<String fx:value="dangerball" />
|
||||||
|
<String fx:value="fiberlamp " />
|
||||||
|
<String fx:value="fireworkx " />
|
||||||
|
<String fx:value="flipflop" />
|
||||||
|
<String fx:value="fliptext " />
|
||||||
|
<String fx:value="flow " />
|
||||||
|
<String fx:value="flurry" />
|
||||||
|
<String fx:value="flyingtoasters " />
|
||||||
|
<String fx:value="gflux " />
|
||||||
|
<String fx:value="glcells" />
|
||||||
|
<String fx:value="gleidescope " />
|
||||||
|
<String fx:value="glknots " />
|
||||||
|
<String fx:value="glmatrix" />
|
||||||
|
<String fx:value="glschool " />
|
||||||
|
<String fx:value="glslideshow " />
|
||||||
|
<String fx:value="glsnake" />
|
||||||
|
<String fx:value="hypertorus " />
|
||||||
|
<String fx:value="hypnowheel " />
|
||||||
|
<String fx:value="interaggregate" />
|
||||||
|
<String fx:value="intermomentary " />
|
||||||
|
<String fx:value="jigglypuff " />
|
||||||
|
<String fx:value="jigsaw" />
|
||||||
|
<String fx:value="julia " />
|
||||||
|
<String fx:value="lament " />
|
||||||
|
<String fx:value="lockward" />
|
||||||
|
<String fx:value="metaballs " />
|
||||||
|
<String fx:value="moebiusgears " />
|
||||||
|
<String fx:value="molecule" />
|
||||||
|
<String fx:value="morph3d " />
|
||||||
|
<String fx:value="noof " />
|
||||||
|
<String fx:value="phosphor" />
|
||||||
|
<String fx:value="photopile " />
|
||||||
|
<String fx:value="pinion " />
|
||||||
|
<String fx:value="popsquares" />
|
||||||
|
<String fx:value="ripples " />
|
||||||
|
<String fx:value="skytentacles " />
|
||||||
|
<String fx:value="slidescreen" />
|
||||||
|
<String fx:value="stonerview " />
|
||||||
|
<String fx:value="strange " />
|
||||||
|
<String fx:value="substrate" />
|
||||||
|
<String fx:value="tangram " />
|
||||||
|
<String fx:value="whirlwindwarp " />
|
||||||
|
<String fx:value="wormhole" />
|
||||||
|
<String fx:value="xflame " />
|
||||||
|
<String fx:value="xrayswarm " />
|
||||||
|
<String fx:value="companioncube" />
|
||||||
|
<String fx:value="fuzzyflakes " />
|
||||||
|
<String fx:value="galaxy " />
|
||||||
|
<String fx:value="glplanet" />
|
||||||
|
<String fx:value="penetrate" />
|
||||||
|
</FXCollections>
|
||||||
|
</items>
|
||||||
|
</ListView>
|
||||||
|
<Label layoutX="804.0" layoutY="374.0" text="Position Offset:" AnchorPane.bottomAnchor="210.0" AnchorPane.rightAnchor="47.0" />
|
||||||
|
<Label layoutX="654.0" layoutY="429.0" text="Save Path:" AnchorPane.bottomAnchor="155.0" AnchorPane.rightAnchor="226.0" />
|
||||||
|
<Button id="saveBttn" layoutX="652.0" layoutY="487.0" mnemonicParsing="false" onAction="#saveToFile" prefHeight="50.0" prefWidth="169.0" text="Save Selection" AnchorPane.bottomAnchor="63.0" AnchorPane.rightAnchor="129.0" />
|
||||||
|
<Button id="applyBttn" layoutX="835.0" layoutY="487.0" mnemonicParsing="false" onAction="#applySttngs" prefHeight="50.0" prefWidth="100.0" text="Apply" AnchorPane.bottomAnchor="63.0" AnchorPane.rightAnchor="15.0" />
|
||||||
|
<Button id="killBttn" layoutX="652.0" layoutY="540.0" mnemonicParsing="false" onAction="#killXWinWrp" prefHeight="50.0" prefWidth="169.0" text="Kill XWinWrap" AnchorPane.bottomAnchor="10.0" AnchorPane.rightAnchor="129.0" />
|
||||||
|
<Button fx:id="closeBttn" mnemonicParsing="false" onAction="#closeProg" prefHeight="50.0" prefWidth="100.0" text="Close" AnchorPane.bottomAnchor="10.0" AnchorPane.rightAnchor="15.0" />
|
||||||
|
<ChoiceBox fx:id="listSaveLoc" layoutX="641.0" layoutY="443.0" prefHeight="29.0" prefWidth="283.0" AnchorPane.bottomAnchor="125.0" AnchorPane.rightAnchor="15.0">
|
||||||
|
<items>
|
||||||
|
<FXCollections fx:factory="observableArrayList">
|
||||||
|
<String fx:value=".animatedBGstarter.sh" />
|
||||||
|
<String fx:value=".animatedBGstarter2.sh" />
|
||||||
|
</FXCollections>
|
||||||
|
</items>
|
||||||
|
</ChoiceBox>
|
||||||
|
<ChoiceBox id="listRes" fx:id="setMonPosOffset" layoutX="769.0" layoutY="401.0" prefHeight="29.0" prefWidth="135.0" value="+0+0" AnchorPane.bottomAnchor="180.0" AnchorPane.rightAnchor="12.0">
|
||||||
|
<items>
|
||||||
|
<FXCollections fx:factory="observableArrayList">
|
||||||
|
<String fx:value="Left" />
|
||||||
|
<String fx:value="-1920+0" />
|
||||||
|
<String fx:value="-1440+0" />
|
||||||
|
<String fx:value="-1600+0" />
|
||||||
|
<String fx:value="-1280+0" />
|
||||||
|
<String fx:value="-800+0" />
|
||||||
|
<String fx:value="Right" />
|
||||||
|
<String fx:value="+1920+0" />
|
||||||
|
<String fx:value="+1440+0" />
|
||||||
|
<String fx:value="+1600+0" />
|
||||||
|
<String fx:value="+1280+0" />
|
||||||
|
<String fx:value="+800+0" />
|
||||||
|
<String fx:value="+0+0" />
|
||||||
|
<String fx:value="Top" />
|
||||||
|
<String fx:value="+0+1920" />
|
||||||
|
<String fx:value="+0+1440" />
|
||||||
|
<String fx:value="+0+1600" />
|
||||||
|
<String fx:value="+0+1280" />
|
||||||
|
<String fx:value="+0+800" />
|
||||||
|
<String fx:value="Bottom" />
|
||||||
|
<String fx:value="+0-1920" />
|
||||||
|
<String fx:value="+0-1440" />
|
||||||
|
<String fx:value="+0-1600" />
|
||||||
|
<String fx:value="+0-1280" />
|
||||||
|
<String fx:value="+0-800" />
|
||||||
|
</FXCollections>
|
||||||
|
</items>
|
||||||
|
</ChoiceBox>
|
||||||
|
<ChoiceBox id="listRes" fx:id="playbackResolution" layoutX="652.0" layoutY="401.0" prefHeight="29.0" prefWidth="135.0" value="1920x1080" AnchorPane.bottomAnchor="180.0" AnchorPane.rightAnchor="163.0">
|
||||||
|
<items>
|
||||||
|
<FXCollections fx:factory="observableArrayList">
|
||||||
|
<String fx:value="1920x1080" />
|
||||||
|
<String fx:value="1440x720" />
|
||||||
|
<String fx:value="1600x900" />
|
||||||
|
<String fx:value="1280x720" />
|
||||||
|
<String fx:value="800x600" />
|
||||||
|
</FXCollections>
|
||||||
|
</items>
|
||||||
|
</ChoiceBox>
|
||||||
|
<CheckBox fx:id="useXSvrn" layoutX="724.0" layoutY="75.0" mnemonicParsing="false" onMouseClicked="#toggleXscreenUsageField" prefHeight="18.0" prefWidth="158.0" text="Use XScreenSaver" AnchorPane.rightAnchor="65.0" AnchorPane.topAnchor="75.0" />
|
||||||
|
<Label layoutX="653.0" layoutY="374.0" text="Playback Resolutions:" AnchorPane.bottomAnchor="210.0" AnchorPane.rightAnchor="155.0" />
|
||||||
|
<Label layoutX="127.0" layoutY="76.0" prefWidth="382.0" text="Note: Double click an image to view the video or image." AnchorPane.leftAnchor="125.0" AnchorPane.topAnchor="75.0" />
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
+8
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
|
||||||
|
function main() {
|
||||||
|
notify-send -u critical "You need to install ffmpegthumbnailer to have FXWinWrap work properly..."
|
||||||
|
xterm -e sudo apt install ffmpegthumbnailer
|
||||||
|
}
|
||||||
|
main;
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
### nohup is needed to keep child processes alive from java's
|
||||||
|
nohup bash ~/.animatedBGstarter.sh &> /dev/null &
|
||||||
|
nohup bash ~/.animatedBGstarter2.sh &> /dev/null &
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 9.1 KiB |
@@ -0,0 +1,3 @@
|
|||||||
|
.root {
|
||||||
|
-fx-background: rgba(68, 68, 68, 0.8); // == #444444;
|
||||||
|
}
|
||||||
Binary file not shown.
@@ -0,0 +1,10 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Encoding=UTF-8
|
||||||
|
Name=FXWinWrap
|
||||||
|
Comment=JavaFX gui for XWinWrap
|
||||||
|
Exec=/bin/fxwinwrap
|
||||||
|
Icon=/opt/FXWinWrap/resources/fxwinwrap.png
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
Categories=System;
|
||||||
|
MimeType=application/fxml;
|
||||||
@@ -0,0 +1,260 @@
|
|||||||
|
import javafx.stage.*;
|
||||||
|
import javafx.scene.Scene;
|
||||||
|
import javafx.fxml.FXML;
|
||||||
|
import javafx.scene.image.Image;
|
||||||
|
import javafx.scene.image.ImageView;
|
||||||
|
import javafx.scene.layout.Pane;
|
||||||
|
import javafx.scene.layout.TilePane;
|
||||||
|
import javafx.scene.control.*;
|
||||||
|
import javafx.event.ActionEvent;
|
||||||
|
import javafx.scene.input.KeyEvent;
|
||||||
|
import javafx.scene.input.KeyCode;
|
||||||
|
import javafx.scene.input.MouseEvent;
|
||||||
|
import javafx.geometry.Insets;
|
||||||
|
import java.io.*;
|
||||||
|
import javafx.beans.value.ChangeListener;
|
||||||
|
import javafx.beans.value.ObservableValue;
|
||||||
|
import javafx.concurrent.Task;
|
||||||
|
import javafx.application.Platform;
|
||||||
|
|
||||||
|
|
||||||
|
public class Controller {
|
||||||
|
private DirectoryChooser folderChooser = new DirectoryChooser(); // Selects a dir
|
||||||
|
private FileWriter fileWriter; // Writes to files
|
||||||
|
private File directory, sveFileLoc; // Path to file or dir
|
||||||
|
private File[] fileList;
|
||||||
|
private Image pth = new Image("."); // Path to image
|
||||||
|
private ImageView imgView = new ImageView(pth); // Image view area
|
||||||
|
private Process pb; // Process runner
|
||||||
|
private String tmpPath, resolution, xScreenVal, output,
|
||||||
|
startScrpt = System.getProperty("user.dir") + "/resources/bin/StartXWW.sh", // Gets shell that starts stuff local
|
||||||
|
textAreaPth = "";
|
||||||
|
private int applyType = 1;
|
||||||
|
private Stage fileChooserStage;
|
||||||
|
@FXML private ListView<?> selXScreenSvr;
|
||||||
|
@FXML private Label dirLbl; // Labels
|
||||||
|
@FXML private TilePane tilePane;
|
||||||
|
@FXML private TextField dirPathField, filePathField; // Text fields
|
||||||
|
@FXML private CheckBox useXSvrn; // Check boxes
|
||||||
|
@FXML private ChoiceBox<?> playbackResolution, setMonPosOffset, listSaveLoc; // Choice box fields
|
||||||
|
@FXML private Button applyBttn, closeBttn, fileBttn, clear, // Buttons
|
||||||
|
killBttn, saveBttn;
|
||||||
|
|
||||||
|
// This method is called by the FXMLLoader when initialization is complete
|
||||||
|
@FXML void initialize() throws Exception {
|
||||||
|
assert dirPathField != null : "fx:id=\"dirPathField\" was not injected: check your FXML file 'Window.fxml'.";
|
||||||
|
assert clear != null : "fx:id=\"clear\" was not injected: check your FXML file 'Window.fxml'.";
|
||||||
|
assert filePathField != null : "fx:id=\"filePathField\" was not injected: check your FXML file 'Window.fxml'.";
|
||||||
|
assert tilePane != null : "fx:id=\"tilePane\" was not injected: check your FXML file 'Window.fxml'.";
|
||||||
|
assert dirLbl != null : "fx:id=\"dirLbl\" was not injected: check your FXML file 'Window.fxml'.";
|
||||||
|
assert selXScreenSvr != null : "fx:id=\"selXScreenSvr\" was not injected: check your FXML file 'Window.fxml'.";
|
||||||
|
assert closeBttn != null : "fx:id=\"closeBttn\" was not injected: check your FXML file 'Window.fxml'.";
|
||||||
|
assert listSaveLoc != null : "fx:id=\"listSaveLoc\" was not injected: check your FXML file 'Window.fxml'.";
|
||||||
|
assert setMonPosOffset != null : "fx:id=\"setMonPosOffset\" was not injected: check your FXML file 'Window.fxml'.";
|
||||||
|
assert playbackResolution != null : "fx:id=\"playbackResolution\" was not injected: check your FXML file 'Window.fxml'.";
|
||||||
|
assert useXSvrn != null : "fx:id=\"useXSvrn\" was not injected: check your FXML file 'Window.fxml'.";
|
||||||
|
// Initialize your logic here: all @FXML variables will have been injected
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handler for TextArea[fx:id="dirPathField"] onKeyReleased
|
||||||
|
@FXML void setNewDir(MouseEvent event) { newDir(); }
|
||||||
|
@FXML void onEnter(KeyEvent event) {
|
||||||
|
if (event.getCode().equals(KeyCode.ENTER)) {
|
||||||
|
textAreaPth = dirPathField.getText();
|
||||||
|
System.out.println(textAreaPth);
|
||||||
|
newDir();
|
||||||
|
}
|
||||||
|
else {}
|
||||||
|
}
|
||||||
|
|
||||||
|
@FXML void test(ActionEvent event) {
|
||||||
|
newDir();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Scan selected dir
|
||||||
|
public void newDir() {
|
||||||
|
tilePane.getChildren().clear();
|
||||||
|
Stage stage = new Stage();
|
||||||
|
if (textAreaPth != "")
|
||||||
|
directory = new File(textAreaPth);
|
||||||
|
else {
|
||||||
|
directory = folderChooser.showDialog(stage);
|
||||||
|
|
||||||
|
if (directory != null) {
|
||||||
|
System.out.println("Directory: " + directory);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fileList = directory.listFiles();
|
||||||
|
dirPathField.setText("" + directory);
|
||||||
|
|
||||||
|
for (int i=0; i<fileList.length; i++) {
|
||||||
|
String path = "" + fileList[i];
|
||||||
|
if (path.toLowerCase().matches("^.*?(mp4|mpeg|mpg|wmv|mkv|flv|webm|avi|png|jpg|jpeg|gif).*$")) {
|
||||||
|
imgView = new ImageView();
|
||||||
|
imgView.setFitWidth(300); // Need these here to get grid properly.
|
||||||
|
imgView.setFitHeight(200);
|
||||||
|
tilePane.getChildren().add(imgView);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Task getDir = new Task<Void>() {
|
||||||
|
@Override public Void call() {
|
||||||
|
newDir2();
|
||||||
|
return null;
|
||||||
|
}};
|
||||||
|
|
||||||
|
new Thread(getDir).start();
|
||||||
|
}
|
||||||
|
public void newDir2() {
|
||||||
|
for (int i=0; i<fileList.length; i++) {
|
||||||
|
String path = "" + fileList[i];
|
||||||
|
if (path.toLowerCase().matches("^.*?(mp4|mpeg|mpg|wmv|mkv|flv|webm|avi).*$")) {
|
||||||
|
String movieImg = "ffmpegthumbnailer -w -t='00:30:00' -c png -i " + fileList[i] +
|
||||||
|
" -s 300 -o /tmp/image.png",
|
||||||
|
vExec = "mplayer " + fileList[i];
|
||||||
|
try {
|
||||||
|
pb = Runtime.getRuntime().exec(movieImg);
|
||||||
|
pb.waitFor();
|
||||||
|
} catch(Throwable imgIOErr) {
|
||||||
|
System.out.println(imgIOErr);
|
||||||
|
}
|
||||||
|
|
||||||
|
ImageView view = (ImageView) (tilePane.getChildren().get(i));
|
||||||
|
pth = new Image("file:///tmp/image.png");
|
||||||
|
Platform.runLater(new Runnable() {
|
||||||
|
@Override public void run() {
|
||||||
|
view.setImage(pth);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
view.setOnMouseClicked(mouse -> {
|
||||||
|
if (mouse.getClickCount() == 2 && !mouse.isConsumed()) {
|
||||||
|
mouse.consume();
|
||||||
|
try {
|
||||||
|
pb = Runtime.getRuntime().exec(vExec);
|
||||||
|
} catch(IOException vidIOErr) {
|
||||||
|
throw new UncheckedIOException(vidIOErr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
filePathField.setText(path);
|
||||||
|
});
|
||||||
|
} else if(path.toLowerCase().matches("^.*?(png|jpg|jpeg|gif).*$")) {
|
||||||
|
String title = "" + fileList[i];
|
||||||
|
pth = new Image("file://" + fileList[i]);
|
||||||
|
ImageView view = (ImageView) (tilePane.getChildren().get(i));
|
||||||
|
|
||||||
|
Platform.runLater(new Runnable() {
|
||||||
|
@Override public void run() {
|
||||||
|
view.setImage(pth);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
final ImageView imgViewPoped = new ImageView("file://" + fileList[i]);
|
||||||
|
// image click actions
|
||||||
|
view.setOnMouseClicked(mouse -> {
|
||||||
|
if (mouse.getClickCount() == 2 && !mouse.isConsumed()) {
|
||||||
|
mouse.consume();
|
||||||
|
displayImg(imgViewPoped, title);
|
||||||
|
}
|
||||||
|
filePathField.setText(path);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
System.out.println("Not a video or image file.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Open image in new window
|
||||||
|
public void displayImg(ImageView imgViewPoped, String title) {
|
||||||
|
Stage popOut = new Stage();
|
||||||
|
Pane pane = new Pane();
|
||||||
|
imgViewPoped.setLayoutX(0);
|
||||||
|
imgViewPoped.setLayoutY(0);
|
||||||
|
imgViewPoped.fitWidthProperty().bind(pane.widthProperty());
|
||||||
|
imgViewPoped.fitHeightProperty().bind(pane.heightProperty());
|
||||||
|
pane.getChildren().add(imgViewPoped);
|
||||||
|
Scene scene = new Scene(pane, 1280, 900);
|
||||||
|
popOut.setTitle(title);
|
||||||
|
popOut.setScene(scene);
|
||||||
|
popOut.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
@FXML void toggleXscreenUsageField(MouseEvent event) {
|
||||||
|
if (useXSvrn.isSelected() == true)
|
||||||
|
selXScreenSvr.setDisable(false);
|
||||||
|
else if (useXSvrn.isSelected() == false)
|
||||||
|
selXScreenSvr.setDisable(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Kill xwinwrap process
|
||||||
|
@FXML void killXWinWrp(ActionEvent event) throws Exception {
|
||||||
|
pb = Runtime.getRuntime().exec("killall xwinwrap &");
|
||||||
|
pb.waitFor();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Pass resolution values
|
||||||
|
@FXML void passXScreenVal() {
|
||||||
|
xScreenVal = "" + selXScreenSvr.getSelectionModel().getSelectedItem();
|
||||||
|
}
|
||||||
|
// Preliminary setup to save settings to files
|
||||||
|
@FXML void saveToFile(ActionEvent saveEvent) throws Exception {
|
||||||
|
|
||||||
|
// Saves to file with selected and needed settings
|
||||||
|
if(filePathField.getText().toLowerCase().matches("^.*?(png|jpg|jpeg|gif).*$"))
|
||||||
|
sveFileLoc = new File(System.getProperty("user.home") + "/" + ".config/nitrogen/bg-saved.cfg");
|
||||||
|
else
|
||||||
|
sveFileLoc = new File(System.getProperty("user.home") + "/" + listSaveLoc.getValue());
|
||||||
|
|
||||||
|
fileWriter = new FileWriter(sveFileLoc);
|
||||||
|
resolution = "" + playbackResolution.getValue() + "" + setMonPosOffset.getValue();
|
||||||
|
startSave();
|
||||||
|
}
|
||||||
|
// Save settings to files
|
||||||
|
void startSave() throws Exception {
|
||||||
|
// XSCREENSAVER
|
||||||
|
if (useXSvrn.isSelected() == true) {
|
||||||
|
output = "xwinwrap -ov -g " + resolution + " -st -sp -b -nf -s -ni -- /usr/lib/xscreensaver/" + xScreenVal + " -window-id WID -root";
|
||||||
|
fileWriter.write(output);
|
||||||
|
applyType = 1;
|
||||||
|
// GIF
|
||||||
|
} else if (filePathField.getText().toLowerCase().contains(".gif")) {
|
||||||
|
output = "xwinwrap -ov -g " + resolution + " -st -sp -b -nf -s -ni -- gifview -a -w WID " + filePathField.getText();
|
||||||
|
fileWriter.write(output);
|
||||||
|
applyType = 1;
|
||||||
|
// Standard images using nitrogen
|
||||||
|
} else if(filePathField.getText().toLowerCase().contains(".jpg") ||
|
||||||
|
filePathField.getText().toLowerCase().contains(".png")) {
|
||||||
|
output = "[xin_0] \n file=" + filePathField.getText() + "\nmode=0 \nbgcolor=#000000\n" +
|
||||||
|
"[xin_1] \nfile=" + filePathField.getText() + "\nmode=0 \nbgcolor=#000000";
|
||||||
|
fileWriter.write(output);
|
||||||
|
applyType = 2;
|
||||||
|
//VIDEO
|
||||||
|
} else {
|
||||||
|
output = "xwinwrap -ov -g " + resolution + " -st -sp -b -nf -s -ni -- mplayer -wid WID -really-quiet -nosound -loop 0 " + filePathField.getText();
|
||||||
|
fileWriter.write(output);
|
||||||
|
applyType = 1;
|
||||||
|
}
|
||||||
|
fileWriter.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Run changes
|
||||||
|
@FXML void applySttngs(ActionEvent event) throws Exception {
|
||||||
|
pb = Runtime.getRuntime().exec("killall xwinwrap &");
|
||||||
|
if (applyType == 1) {
|
||||||
|
pb = Runtime.getRuntime().exec(startScrpt);
|
||||||
|
pb.waitFor();
|
||||||
|
} else if (applyType == 2) {
|
||||||
|
pb = Runtime.getRuntime().exec("nitrogen --restore");
|
||||||
|
pb.waitFor();
|
||||||
|
} else
|
||||||
|
pb = Runtime.getRuntime().exec("nitrogen --restore");
|
||||||
|
pb.waitFor();
|
||||||
|
}
|
||||||
|
// Clean selection to start new search.
|
||||||
|
@FXML void clearBttnClick(ActionEvent event) {
|
||||||
|
tilePane.getChildren().clear();
|
||||||
|
tilePane.getChildren().addAll(dirLbl);
|
||||||
|
dirPathField.setText("");
|
||||||
|
filePathField.setText("");
|
||||||
|
}
|
||||||
|
// Closes program
|
||||||
|
@FXML void closeProg(ActionEvent event) { System.exit(0); }
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
import javafx.application.Application;
|
||||||
|
import javafx.fxml.FXMLLoader;
|
||||||
|
import javafx.stage.Stage;
|
||||||
|
import javafx.scene.Scene;
|
||||||
|
import javafx.scene.layout.AnchorPane;
|
||||||
|
|
||||||
|
|
||||||
|
public class XWWMenu extends Application {
|
||||||
|
@Override
|
||||||
|
public void start(final Stage stage) throws Exception {
|
||||||
|
Scene scene = new Scene(FXMLLoader.load(XWWMenu.class.getResource("resources/Window.fxml")));
|
||||||
|
scene.getStylesheets().add("resources/stylesheet.css");
|
||||||
|
stage.setScene(scene);
|
||||||
|
stage.setTitle("FXWinWrap");
|
||||||
|
stage.setMinWidth(800);
|
||||||
|
stage.setMinHeight(600);
|
||||||
|
stage.show();
|
||||||
|
}
|
||||||
|
// needed because you know... it's java.
|
||||||
|
public static void main(String[] args) { launch(args); }
|
||||||
|
}
|
||||||
Executable
+3
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
rm *.class
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
chdir("/opt/FXWinWrap/");
|
||||||
|
system("bash launch.sh");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Executable
+3
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
java XWWMenu
|
||||||
@@ -0,0 +1,175 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<?import java.lang.String?>
|
||||||
|
<?import javafx.collections.FXCollections?>
|
||||||
|
<?import javafx.geometry.Insets?>
|
||||||
|
<?import javafx.scene.control.Button?>
|
||||||
|
<?import javafx.scene.control.CheckBox?>
|
||||||
|
<?import javafx.scene.control.ChoiceBox?>
|
||||||
|
<?import javafx.scene.control.Label?>
|
||||||
|
<?import javafx.scene.control.ListView?>
|
||||||
|
<?import javafx.scene.control.ScrollPane?>
|
||||||
|
<?import javafx.scene.control.TextField?>
|
||||||
|
<?import javafx.scene.layout.AnchorPane?>
|
||||||
|
<?import javafx.scene.layout.TilePane?>
|
||||||
|
<?import javafx.scene.paint.Color?>
|
||||||
|
<?import javafx.scene.text.Font?>
|
||||||
|
<?scenebuilder-background-color 0x444444ff?>
|
||||||
|
|
||||||
|
<AnchorPane minHeight="300.0" minWidth="300.0" prefHeight="600.0" prefWidth="950.0" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" fx:controller="Controller">
|
||||||
|
<children>
|
||||||
|
<TextField id="txtDirPath" fx:id="dirPathField" blendMode="DIFFERENCE" onKeyReleased="#onEnter" prefWidth="880.0" promptText="Directory Path" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="70.0" AnchorPane.topAnchor="5.0" />
|
||||||
|
<Button fx:id="clear" mnemonicParsing="false" onAction="#clearBttnClick" text="Clear" AnchorPane.rightAnchor="15.0" AnchorPane.topAnchor="5.0" />
|
||||||
|
<TextField id="txtDirPath" fx:id="filePathField" blendMode="DIFFERENCE" layoutY="33.0" onKeyReleased="#onEnter" prefWidth="950.0" promptText="File Path" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="15.0" />
|
||||||
|
<ScrollPane id="ScrollPane" layoutX="19.0" layoutY="101.0" minHeight="226.0" minWidth="300.0" prefHeight="490.0" prefViewportHeight="534.0" prefViewportWidth="742.0" prefWidth="637.0" style=" -fx-fit-to-height: true; -fx-fit-to-width: true;" AnchorPane.bottomAnchor="10.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="315.0" AnchorPane.topAnchor="100.0">
|
||||||
|
<content>
|
||||||
|
<TilePane fx:id="tilePane" hgap="15.0" prefHeight="532.0" prefWidth="755.0" vgap="15.0">
|
||||||
|
<children>
|
||||||
|
<Label id="dir" fx:id="dirLbl" contentDisplay="CENTER" labelFor="$clear" onMouseClicked="#setNewDir" opacity="0.5" prefHeight="478.0" prefWidth="629.0" text="Choose Image/Video Directory..." textAlignment="LEFT" textOverrun="CLIP" underline="false" wrapText="false" TilePane.alignment="CENTER">
|
||||||
|
<font>
|
||||||
|
<Font name="System Bold" size="32.0" />
|
||||||
|
</font>
|
||||||
|
<textFill>
|
||||||
|
<Color blue="0.875" green="0.875" red="0.875" />
|
||||||
|
</textFill>
|
||||||
|
<TilePane.margin>
|
||||||
|
<Insets />
|
||||||
|
</TilePane.margin>
|
||||||
|
</Label>
|
||||||
|
</children>
|
||||||
|
</TilePane>
|
||||||
|
</content>
|
||||||
|
</ScrollPane>
|
||||||
|
<ListView fx:id="selXScreenSvr" disable="true" layoutX="649.0" layoutY="101.0" onMouseClicked="#passXScreenVal" prefHeight="257.0" prefWidth="283.0" AnchorPane.bottomAnchor="230.0" AnchorPane.rightAnchor="15.0" AnchorPane.topAnchor="100.0">
|
||||||
|
<items>
|
||||||
|
<FXCollections fx:factory="observableArrayList">
|
||||||
|
<String fx:value="electricsheep " />
|
||||||
|
<String fx:value="atlantis" />
|
||||||
|
<String fx:value="atunnel " />
|
||||||
|
<String fx:value="blinkbox " />
|
||||||
|
<String fx:value="blocktube" />
|
||||||
|
<String fx:value="bouncingcow " />
|
||||||
|
<String fx:value="boxfit " />
|
||||||
|
<String fx:value="bsod" />
|
||||||
|
<String fx:value="bubble3d " />
|
||||||
|
<String fx:value="bumps " />
|
||||||
|
<String fx:value="cage" />
|
||||||
|
<String fx:value="carousel " />
|
||||||
|
<String fx:value="cube21 " />
|
||||||
|
<String fx:value="cubenetic" />
|
||||||
|
<String fx:value="cubicgrid " />
|
||||||
|
<String fx:value="cwaves " />
|
||||||
|
<String fx:value="dangerball" />
|
||||||
|
<String fx:value="fiberlamp " />
|
||||||
|
<String fx:value="fireworkx " />
|
||||||
|
<String fx:value="flipflop" />
|
||||||
|
<String fx:value="fliptext " />
|
||||||
|
<String fx:value="flow " />
|
||||||
|
<String fx:value="flurry" />
|
||||||
|
<String fx:value="flyingtoasters " />
|
||||||
|
<String fx:value="gflux " />
|
||||||
|
<String fx:value="glcells" />
|
||||||
|
<String fx:value="gleidescope " />
|
||||||
|
<String fx:value="glknots " />
|
||||||
|
<String fx:value="glmatrix" />
|
||||||
|
<String fx:value="glschool " />
|
||||||
|
<String fx:value="glslideshow " />
|
||||||
|
<String fx:value="glsnake" />
|
||||||
|
<String fx:value="hypertorus " />
|
||||||
|
<String fx:value="hypnowheel " />
|
||||||
|
<String fx:value="interaggregate" />
|
||||||
|
<String fx:value="intermomentary " />
|
||||||
|
<String fx:value="jigglypuff " />
|
||||||
|
<String fx:value="jigsaw" />
|
||||||
|
<String fx:value="julia " />
|
||||||
|
<String fx:value="lament " />
|
||||||
|
<String fx:value="lockward" />
|
||||||
|
<String fx:value="metaballs " />
|
||||||
|
<String fx:value="moebiusgears " />
|
||||||
|
<String fx:value="molecule" />
|
||||||
|
<String fx:value="morph3d " />
|
||||||
|
<String fx:value="noof " />
|
||||||
|
<String fx:value="phosphor" />
|
||||||
|
<String fx:value="photopile " />
|
||||||
|
<String fx:value="pinion " />
|
||||||
|
<String fx:value="popsquares" />
|
||||||
|
<String fx:value="ripples " />
|
||||||
|
<String fx:value="skytentacles " />
|
||||||
|
<String fx:value="slidescreen" />
|
||||||
|
<String fx:value="stonerview " />
|
||||||
|
<String fx:value="strange " />
|
||||||
|
<String fx:value="substrate" />
|
||||||
|
<String fx:value="tangram " />
|
||||||
|
<String fx:value="whirlwindwarp " />
|
||||||
|
<String fx:value="wormhole" />
|
||||||
|
<String fx:value="xflame " />
|
||||||
|
<String fx:value="xrayswarm " />
|
||||||
|
<String fx:value="companioncube" />
|
||||||
|
<String fx:value="fuzzyflakes " />
|
||||||
|
<String fx:value="galaxy " />
|
||||||
|
<String fx:value="glplanet" />
|
||||||
|
<String fx:value="penetrate" />
|
||||||
|
</FXCollections>
|
||||||
|
</items>
|
||||||
|
</ListView>
|
||||||
|
<Label layoutX="804.0" layoutY="374.0" text="Position Offset:" AnchorPane.bottomAnchor="210.0" AnchorPane.rightAnchor="47.0" />
|
||||||
|
<Label layoutX="654.0" layoutY="429.0" text="Save Path:" AnchorPane.bottomAnchor="155.0" AnchorPane.rightAnchor="226.0" />
|
||||||
|
<Button id="saveBttn" layoutX="652.0" layoutY="487.0" mnemonicParsing="false" onAction="#saveToFile" prefHeight="50.0" prefWidth="169.0" text="Save Selection" AnchorPane.bottomAnchor="63.0" AnchorPane.rightAnchor="129.0" />
|
||||||
|
<Button id="applyBttn" layoutX="835.0" layoutY="487.0" mnemonicParsing="false" onAction="#applySttngs" prefHeight="50.0" prefWidth="100.0" text="Apply" AnchorPane.bottomAnchor="63.0" AnchorPane.rightAnchor="15.0" />
|
||||||
|
<Button id="killBttn" layoutX="652.0" layoutY="540.0" mnemonicParsing="false" onAction="#killXWinWrp" prefHeight="50.0" prefWidth="169.0" text="Kill XWinWrap" AnchorPane.bottomAnchor="10.0" AnchorPane.rightAnchor="129.0" />
|
||||||
|
<Button fx:id="closeBttn" mnemonicParsing="false" onAction="#closeProg" prefHeight="50.0" prefWidth="100.0" text="Close" AnchorPane.bottomAnchor="10.0" AnchorPane.rightAnchor="15.0" />
|
||||||
|
<ChoiceBox fx:id="listSaveLoc" layoutX="641.0" layoutY="443.0" prefHeight="29.0" prefWidth="283.0" AnchorPane.bottomAnchor="125.0" AnchorPane.rightAnchor="15.0">
|
||||||
|
<items>
|
||||||
|
<FXCollections fx:factory="observableArrayList">
|
||||||
|
<String fx:value=".animatedBGstarter.sh" />
|
||||||
|
<String fx:value=".animatedBGstarter2.sh" />
|
||||||
|
</FXCollections>
|
||||||
|
</items>
|
||||||
|
</ChoiceBox>
|
||||||
|
<ChoiceBox id="listRes" fx:id="setMonPosOffset" layoutX="769.0" layoutY="401.0" prefHeight="29.0" prefWidth="135.0" value="+0+0" AnchorPane.bottomAnchor="180.0" AnchorPane.rightAnchor="12.0">
|
||||||
|
<items>
|
||||||
|
<FXCollections fx:factory="observableArrayList">
|
||||||
|
<String fx:value="Left" />
|
||||||
|
<String fx:value="-1920+0" />
|
||||||
|
<String fx:value="-1440+0" />
|
||||||
|
<String fx:value="-1600+0" />
|
||||||
|
<String fx:value="-1280+0" />
|
||||||
|
<String fx:value="-800+0" />
|
||||||
|
<String fx:value="Right" />
|
||||||
|
<String fx:value="+1920+0" />
|
||||||
|
<String fx:value="+1440+0" />
|
||||||
|
<String fx:value="+1600+0" />
|
||||||
|
<String fx:value="+1280+0" />
|
||||||
|
<String fx:value="+800+0" />
|
||||||
|
<String fx:value="+0+0" />
|
||||||
|
<String fx:value="Top" />
|
||||||
|
<String fx:value="+0+1920" />
|
||||||
|
<String fx:value="+0+1440" />
|
||||||
|
<String fx:value="+0+1600" />
|
||||||
|
<String fx:value="+0+1280" />
|
||||||
|
<String fx:value="+0+800" />
|
||||||
|
<String fx:value="Bottom" />
|
||||||
|
<String fx:value="+0-1920" />
|
||||||
|
<String fx:value="+0-1440" />
|
||||||
|
<String fx:value="+0-1600" />
|
||||||
|
<String fx:value="+0-1280" />
|
||||||
|
<String fx:value="+0-800" />
|
||||||
|
</FXCollections>
|
||||||
|
</items>
|
||||||
|
</ChoiceBox>
|
||||||
|
<ChoiceBox id="listRes" fx:id="playbackResolution" layoutX="652.0" layoutY="401.0" prefHeight="29.0" prefWidth="135.0" value="1920x1080" AnchorPane.bottomAnchor="180.0" AnchorPane.rightAnchor="163.0">
|
||||||
|
<items>
|
||||||
|
<FXCollections fx:factory="observableArrayList">
|
||||||
|
<String fx:value="1920x1080" />
|
||||||
|
<String fx:value="1440x720" />
|
||||||
|
<String fx:value="1600x900" />
|
||||||
|
<String fx:value="1280x720" />
|
||||||
|
<String fx:value="800x600" />
|
||||||
|
</FXCollections>
|
||||||
|
</items>
|
||||||
|
</ChoiceBox>
|
||||||
|
<CheckBox fx:id="useXSvrn" layoutX="724.0" layoutY="75.0" mnemonicParsing="false" onMouseClicked="#toggleXscreenUsageField" prefHeight="18.0" prefWidth="158.0" text="Use XScreenSaver" AnchorPane.rightAnchor="65.0" AnchorPane.topAnchor="75.0" />
|
||||||
|
<Label layoutX="653.0" layoutY="374.0" text="Playback Resolutions:" AnchorPane.bottomAnchor="210.0" AnchorPane.rightAnchor="155.0" />
|
||||||
|
<Label layoutX="127.0" layoutY="76.0" prefWidth="382.0" text="Note: Double click an image to view the video or image." AnchorPane.leftAnchor="125.0" AnchorPane.topAnchor="75.0" />
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
|
||||||
|
function main() {
|
||||||
|
notify-send -u critical "You need to install ffmpegthumbnailer to have FXWinWrap work properly..."
|
||||||
|
xterm -e sudo apt install ffmpegthumbnailer
|
||||||
|
}
|
||||||
|
main;
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
### nohup is needed to keep child processes alive from java's
|
||||||
|
nohup bash ~/.animatedBGstarter.sh &> /dev/null &
|
||||||
|
nohup bash ~/.animatedBGstarter2.sh &> /dev/null &
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 9.1 KiB |
@@ -0,0 +1,5 @@
|
|||||||
|
.root {
|
||||||
|
-fx-background: rgba(68, 68, 68, 0.8); // == #444444;
|
||||||
|
}
|
||||||
|
.button {
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user