Skip to content

Commit

Permalink
✨ Add a configuration UI
Browse files Browse the repository at this point in the history
  • Loading branch information
Aetf committed Oct 29, 2018
1 parent fde5e83 commit e1cefd9
Show file tree
Hide file tree
Showing 3 changed files with 258 additions and 7 deletions.
34 changes: 34 additions & 0 deletions contents/config/main.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
http://www.kde.org/standards/kcfg/1.0/kcfg.xsd">
<kcfgfile name=""/>
<group name="">
<entry name="trigger" type="Enum">
<label>When to trigger the script.</label>
<default>Fullscreen</default>
<choices>
<choice name="FullscreenOnly"></choice>
<choice name="MaximizeOnly"></choice>
<choice name="FullscreenAndMaximize"></choice>
</choices>
</entry>
<entry name="newDesktopPosition" type="Enum">
<default>RightMost</default>
<label>Where to put the new desktop.</label>
<choices>
<choice name="RightMost"></choice>
<choice name="RightToCurrent"></choice>
</choices>
</entry>
<entry name="keepNonEmptyDesktop" type="Bool">
<label>Only remove the virtual desktop if the fullscreen app is the only window.</label>
<default>false</default>
</entry>
<entry name="blockWMClass" type="StringList">
<label>The window of WM_CLASS in the following list will be skipped.</label>
<default></default>
</entry>
</group>
</kcfg>
213 changes: 213 additions & 0 deletions contents/ui/config.ui
Original file line number Diff line number Diff line change
@@ -0,0 +1,213 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>358</width>
<height>429</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QGridLayout" name="gridLayout" columnstretch="1,2">
<item row="2" column="0">
<widget class="QLabel" name="label_3">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>&amp;Position:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>kcfg_newDesktopPosition</cstring>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QCheckBox" name="kcfg_keepNonEmptyDesktop">
<property name="text">
<string>&amp;Keep non-empty desktop</string>
</property>
</widget>
</item>
<item row="4" column="0" colspan="2">
<widget class="QLabel" name="label_4">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Remove Desktop</string>
</property>
</widget>
</item>
<item row="6" column="0" colspan="2">
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="8" column="0" colspan="2">
<widget class="KEditListWidget" name="kcfg_blockWMClass">
<property name="buttons">
<set>KEditListWidget::Add|KEditListWidget::Remove</set>
</property>
</widget>
</item>
<item row="3" column="0" colspan="2">
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="KComboBox" name="kcfg_newDesktopPosition">
<item>
<property name="text">
<string>Right Most</string>
</property>
</item>
<item>
<property name="text">
<string>Right To Current</string>
</property>
</item>
</widget>
</item>
<item row="0" column="0" colspan="2">
<widget class="QLabel" name="label_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>New Desktop</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>&amp;Trigger:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>kcfg_trigger</cstring>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="KComboBox" name="kcfg_trigger">
<item>
<property name="text">
<string>Fullscreen Only</string>
</property>
</item>
<item>
<property name="text">
<string>Maximize Only</string>
</property>
</item>
<item>
<property name="text">
<string>Fullscreen And Maximize</string>
</property>
</item>
</widget>
</item>
<item row="7" column="0" colspan="2">
<widget class="QLabel" name="label_5">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Window Class Blacklist</string>
</property>
</widget>
</item>
<item row="5" column="0">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>KComboBox</class>
<extends>QComboBox</extends>
<header>kcombobox.h</header>
</customwidget>
<customwidget>
<class>KEditListWidget</class>
<extends>QWidget</extends>
<header>keditlistwidget.h</header>
</customwidget>
</customwidgets>
<tabstops>
<tabstop>kcfg_trigger</tabstop>
<tabstop>kcfg_newDesktopPosition</tabstop>
<tabstop>kcfg_keepNonEmptyDesktop</tabstop>
</tabstops>
<resources/>
<connections/>
</ui>
18 changes: 11 additions & 7 deletions metadata.desktop
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,22 @@
Name=Maxmize To New Virtual Desktop
Comment=Automatically move fullscreened window to a new virtual desktop.
Icon=preferences-system-windows-script-test
Type=Service

X-Plasma-API=javascript
X-Plasma-MainScript=code/main.js

X-KDE-PluginInfo-Author=Aetf
X-KDE-PluginInfo-Email[email protected]
X-KDE-PluginInfo-Name=max2NewVirtualDesktop
X-KDE-PluginInfo-Version=0.1.0
X-KDE-PluginInfo-Version=0.2.0
X-KDE-PluginKeyword=max2NewVirtualDesktop
X-KDE-PluginInfo-EnabledByDefault=true

Type=Service

X-Plasma-API=javascript
X-Plasma-MainScript=code/main.js

X-KDE-Library=kwin/effects/configs/kcm_kwin4_genericscripted
X-KDE-ParentComponents=max2NewVirtualDesktop

X-KDE-PluginInfo-Depends=
X-KDE-PluginInfo-License=MIT
X-KDE-ServiceTypes=KWin/Script
X-KDE-PluginKeyword=max2NewVirtualDesktop
X-KDE-ServiceTypes=KWin/Script,KCModule

0 comments on commit e1cefd9

Please sign in to comment.