Hello community,

here is the log from the commit of package terminus for openSUSE:Factory 
checked in at 2019-02-11 21:23:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/terminus (Old)
 and      /work/SRC/openSUSE:Factory/.terminus.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "terminus"

Mon Feb 11 21:23:37 2019 rev:2 rq:672743 version:1.3.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/terminus/terminus.changes        2018-10-25 
09:08:24.078431187 +0200
+++ /work/SRC/openSUSE:Factory/.terminus.new.28833/terminus.changes     
2019-02-11 21:23:38.471136843 +0100
@@ -1,0 +2,9 @@
+Fri Feb  8 10:30:47 UTC 2019 - Alexei Podvalsky <[email protected]>
+
+- Update to 1.3.0:
+  * Allows to use the -e and -x parameters to create a new window 
+    an launch a command inside
+  * Fixed the .desktop file to fully follow the standard
+  * Added an screenshot in the README.md file
+
+-------------------------------------------------------------------

Old:
----
  terminus-1.2.0.tar.gz

New:
----
  terminus-1.3.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ terminus.spec ++++++
--- /var/tmp/diff_new_pack.ksPbeg/_old  2019-02-11 21:23:39.035136540 +0100
+++ /var/tmp/diff_new_pack.ksPbeg/_new  2019-02-11 21:23:39.039136538 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           terminus
-Version:        1.2.0
+Version:        1.3.0
 Release:        0
 Summary:        An X terminal written in Vala
 License:        GPL-3.0-or-later

++++++ terminus-1.2.0.tar.gz -> terminus-1.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terminus-1.2.0/HISTORY.md 
new/terminus-1.3.0/HISTORY.md
--- old/terminus-1.2.0/HISTORY.md       2018-10-19 23:14:36.000000000 +0200
+++ new/terminus-1.3.0/HISTORY.md       2019-02-07 00:39:12.000000000 +0100
@@ -1,5 +1,10 @@
 # History of versions #
 
+* Version 1.3.0 (2019-01-06)
+  * Added the -e and -x parameters to create a new window an launch a command 
inside
+  * Added the --working-directory parameter
+  * Fixed the .desktop file to fully follow the standard
+  * Added an screenshot in the README.md file
 * Version 1.2.0 (2018-10-19)
   * Fixes Guake hotkey don't working on X11 with another terminus open
   * Added missing parameter in the help
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terminus-1.2.0/PKGBUILD new/terminus-1.3.0/PKGBUILD
--- old/terminus-1.2.0/PKGBUILD 2018-10-19 23:14:36.000000000 +0200
+++ new/terminus-1.3.0/PKGBUILD 2019-02-07 00:39:12.000000000 +0100
@@ -1,5 +1,5 @@
 pkgname=terminus
-pkgver=1.2.0
+pkgver=1.3.0
 pkgrel=1
 pkgdesc="A new terminal for XWindows
 "
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terminus-1.2.0/README.md new/terminus-1.3.0/README.md
--- old/terminus-1.2.0/README.md        2018-10-19 23:14:36.000000000 +0200
+++ new/terminus-1.3.0/README.md        2019-02-07 00:39:12.000000000 +0100
@@ -1,6 +1,8 @@
 # Terminus #
 
-A new terminal for XWindows (and Wayland)
+A new terminal for XWindows and Wayland
+
+![Terminus screenshot](terminus.png)
 
 ## What is it ##
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terminus-1.2.0/data/terminus.desktop 
new/terminus-1.3.0/data/terminus.desktop
--- old/terminus-1.2.0/data/terminus.desktop    2018-10-19 23:14:36.000000000 
+0200
+++ new/terminus-1.3.0/data/terminus.desktop    2019-02-07 00:39:12.000000000 
+0100
@@ -1,5 +1,5 @@
 [Desktop Entry]
-Icon=terminus.svg
+Icon=terminus
 Type=Application
 Exec=terminus
 Hidden=false
@@ -9,8 +9,8 @@
 TryExec=terminus
 Categories=GNOME;GTK;Utility;TerminalEmulator;System;
 X-Ubuntu-Gettext-Domain=terminus
-X-Ayatana-Desktop-Shortcuts=NewWindow;
-[NewWindow Shortcut Group]
+X-Ayatana-Desktop-Shortcuts=X-NewWindow;
+[X-NewWindow Shortcut Group]
 Name=Open a New Window
 Exec=terminus
 TargetEnvironment=Unity
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terminus-1.2.0/debian/changelog 
new/terminus-1.3.0/debian/changelog
--- old/terminus-1.2.0/debian/changelog 2018-10-19 23:14:36.000000000 +0200
+++ new/terminus-1.3.0/debian/changelog 2019-02-07 00:39:12.000000000 +0100
@@ -1,3 +1,11 @@
+terminus (1.3.0-Debian1) sid; urgency=low
+
+  * Allows to use the -e and -x parameters to create a new window an launch a 
command inside
+  * Fixed the .desktop file to fully follow the standard
+  * Added an screenshot in the README.md file
+
+ -- Sergio Costas Rodriguez <[email protected]>  Sun, 06 Jan 2019 23:55:00 
+0200
+
 terminus (1.2.0-Debian1) sid; urgency=low
 
   * Fixes Guake hotkey don't working on X11 with another terminus open
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terminus-1.2.0/debian/control 
new/terminus-1.3.0/debian/control
--- old/terminus-1.2.0/debian/control   2018-10-19 23:14:36.000000000 +0200
+++ new/terminus-1.3.0/debian/control   2019-02-07 00:39:12.000000000 +0100
@@ -8,7 +8,7 @@
 
 Package: terminus
 Architecture: any
-Version: 1.2.0
+Version: 1.3.0
 Depends: libgee-0.8-2, libkeybinder-3.0-0, libvte-2.91-0
 Description: A new terminal for X11 and Wayland both for classic,
  in-window terminal, and Guake-like (hot-key drop-down mode)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terminus-1.2.0/po/POTFILES.in 
new/terminus-1.3.0/po/POTFILES.in
--- old/terminus-1.2.0/po/POTFILES.in   2018-10-19 23:14:36.000000000 +0200
+++ new/terminus-1.3.0/po/POTFILES.in   2019-02-07 00:39:12.000000000 +0100
@@ -3,6 +3,7 @@
 src/bindkeys.vala
 src/container.vala
 src/notetab.vala
+src/params.vala
 src/settings.vala
 src/terminal.vala
 src/terminus.vala
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terminus-1.2.0/po/es.po new/terminus-1.3.0/po/es.po
--- old/terminus-1.2.0/po/es.po 2018-10-19 23:14:36.000000000 +0200
+++ new/terminus-1.3.0/po/es.po 2019-02-07 00:39:12.000000000 +0100
@@ -2,33 +2,92 @@
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-# Sergio Costas <[email protected]>, 2016, 2018.
+# Sergio Costas <[email protected]>, 2016-2019.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: 1.3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-09-13 23:23+0200\n"
-"PO-Revision-Date: 2018-09-13 23:29+0200\n"
+"POT-Creation-Date: 2019-02-07 00:30+0100\n"
+"PO-Revision-Date: 2019-02-07 00:30+0100\n"
 "Last-Translator: Sergio Costas <[email protected]>\n"
 "Language-Team: Español; Castellano <[email protected]>\n"
-"Language: \n"
+"Language: es\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Gtranslator 2.91.7\n"
+"X-Generator: Gtranslator 3.30.1\n"
+
+#: src/params.vala:81
+#, c-format
+msgid ""
+"The '%s' parameter requires a path after it.\n"
+"\n"
+msgstr ""
+"El parámetro '%s' necesita una ruta detrás de él.\n"
+"\n"
+
+#: src/params.vala:86
+#, c-format
+msgid ""
+"The '%s' parameter requires a command after it.\n"
+"\n"
+msgstr ""
+"El parámetro '%s' necesita un comando detrás de él.\n"
+"\n"
+
+#: src/params.vala:91
+msgid ""
+"Usage:\n"
+"  terminus [OPTION...] [-- COMMAND ...]\n"
+"\n"
+"Help commands:\n"
+"  -h, --help                    show this help\n"
+"\n"
+"Options:\n"
+"  -x, --execute, --             launches a new Terminus window and execute "
+"the remainder of the command line inside the terminal\n"
+"  -e, --command=STRING          launches a new Terminus window and execute "
+"the argument inside the terminal\n"
+"  --working-directory=DIRNAME   sets the terminal directory to DIRNAME\n"
+"  --guake                       launch Terminus in background\n"
+"  --check_guake                 launch Terminus in background and return if "
+"there is already another Terminus process\n"
+"  --nobindkey                   don't try to bind the Quake-mode key (useful "
+"for gnome shell)\n"
+"\n"
+msgstr ""
+"Uso:\n"
+"  terminus [OPCION...] [-- COMANDO ...]\n"
+"\n"
+"Comandos de ayuda:\n"
+"  -h, --help                    muestra esta ayuda\n"
+"\n"
+"Options:\n"
+"  -x, --execute, --             lanza una nueva ventana de Terminus y "
+"ejecuta el resto de la línea de comandos dentro del terminal\n"
+"  -e, --command=STRING          lanza una nueva ventana de Terminus y "
+"ejecuta el argumento dentro del terminal\n"
+"  --working-directory=DIRNAME   establece el directorio dentro del terminal "
+"a DIRNAME\n"
+"  --guake                       lanza Terminus en segundo plano\n"
+"  --check_guake                 lanza Terminus en segundo plano y retorna si "
+"ya existe otro proceso de Terminus corriendo\n"
+"  --nobindkey                   no intentar apropiarse de la tecla para "
+"mostrar el modo Quake (útil para gnome shell)\n"
+"\n"
 
 #: src/settings.vala:69
 #, c-format
 msgid "Version %s"
 msgstr "Versión %s"
 
-#: src/settings.vala:308 src/terminal.vala:193
+#: src/settings.vala:308 src/terminal.vala:201
 msgid "New window"
 msgstr "Nueva ventana"
 
-#: src/settings.vala:309 src/terminal.vala:187
+#: src/settings.vala:309 src/terminal.vala:195
 msgid "New tab"
 msgstr "Nueva pestaña"
 
@@ -52,72 +111,72 @@
 msgid "Key"
 msgstr "Tecla"
 
-#: src/terminal.vala:146
+#: src/terminal.vala:154
 msgid "Copy"
 msgstr "Copiar"
 
-#: src/terminal.vala:155
+#: src/terminal.vala:163
 msgid "Paste"
 msgstr "Pegar"
 
-#: src/terminal.vala:165
+#: src/terminal.vala:173
 msgid "Split horizontally"
 msgstr "Dividir horizontalmente"
 
-#: src/terminal.vala:177
+#: src/terminal.vala:185
 msgid "Split vertically"
 msgstr "Dividir verticalmente"
 
-#: src/terminal.vala:201
+#: src/terminal.vala:209
 msgid "Preferences"
 msgstr "Preferencias"
 
-#: src/terminal.vala:210
+#: src/terminal.vala:218
 msgid "Close"
 msgstr "Cerrar"
 
-#: src/terminus.vala:112 src/terminus.vala:163
+#: src/terminus.vala:114 src/terminus.vala:165
 #, c-format
 msgid "Error: palette file %s has unrecognized content at line %d\n"
 msgstr "Error: la paleta %s tiene contenido extraño en la línea %d\n"
 
-#: src/terminus.vala:125
+#: src/terminus.vala:127
 #, c-format
 msgid ""
 "Error: palette file %s has opens a bracket at line %d without closing it\n"
 msgstr "Error: la paleta %s abre un corchete en la línea %d sin cerrarlo\n"
 
-#: src/terminus.vala:138
+#: src/terminus.vala:140
 #, c-format
 msgid "Error: palette file %s has an unrecognized color at line %d\n"
 msgstr "Error: la paleta %s tiene un color desconocido en la línea %d\n"
 
-#: src/terminus.vala:148
+#: src/terminus.vala:150
 #, c-format
 msgid "Warning: palette file %s has more than 16 colors\n"
 msgstr "Aviso: la paleta %s tiene más de 16 colores\n"
 
-#: src/terminus.vala:173
+#: src/terminus.vala:175
 #, c-format
 msgid "Error: Palette file %s has less than 16 colors\n"
 msgstr "Error: la paleta %s tiene menos de 16 colores\n"
 
-#: src/terminus.vala:177
+#: src/terminus.vala:179
 #, c-format
 msgid "Error: Palette file %s has no palette name\n"
 msgstr "Error: la paleta %s no tiene nombre de paleta\n"
 
-#: src/terminus.vala:181
+#: src/terminus.vala:183
 #, c-format
 msgid "Error: Palette file %s has text_fg color but not text_bg color\n"
 msgstr "Error: la paleta %s tiene color text_fg, pero no color text_bg\n"
 
-#: src/terminus.vala:185
+#: src/terminus.vala:187
 #, c-format
 msgid "Error: Palette file %s has text_bg color but not text_fg color\n"
 msgstr "Error: la paleta %s tiene color text_bg, pero no color text_fg\n"
 
-#: src/terminus.vala:239
+#: src/terminus.vala:242
 msgid "Custom colors"
 msgstr "Colores personalizados"
 
@@ -261,6 +320,15 @@
 msgid "About"
 msgstr "Acerca de"
 
+#~ msgid ""
+#~ "Usage: terminus [--guake] [--check_guake] [--nobindkey] [-e single "
+#~ "command to launch] [-x command to launch and params]\n"
+#~ "When using the '-x' parameter, it must be the last one.\n"
+#~ msgstr ""
+#~ "Uso: terminus [--guake] [--check_guake] [--nobindkey] [-e single command "
+#~ "to launch] [-x command to launch and params]\n"
+#~ "When using the '-x' parameer, it must be the last one.\n"
+
 #~ msgid "Black on light yellow"
 #~ msgstr "Negro sobre amarillo claro"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terminus-1.2.0/po/terminus.pot 
new/terminus-1.3.0/po/terminus.pot
--- old/terminus-1.2.0/po/terminus.pot  2018-10-19 23:14:36.000000000 +0200
+++ new/terminus-1.3.0/po/terminus.pot  2019-02-07 00:39:12.000000000 +0100
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: terminus 1.0.0\n"
+"Project-Id-Version: terminus 1.2.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-09-13 23:23+0200\n"
+"POT-Creation-Date: 2019-02-07 00:30+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <[email protected]>\n"
@@ -17,16 +17,52 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#: src/params.vala:81
+#, c-format
+msgid ""
+"The '%s' parameter requires a path after it.\n"
+"\n"
+msgstr ""
+
+#: src/params.vala:86
+#, c-format
+msgid ""
+"The '%s' parameter requires a command after it.\n"
+"\n"
+msgstr ""
+
+#: src/params.vala:91
+msgid ""
+"Usage:\n"
+"  terminus [OPTION...] [-- COMMAND ...]\n"
+"\n"
+"Help commands:\n"
+"  -h, --help                    show this help\n"
+"\n"
+"Options:\n"
+"  -x, --execute, --             launches a new Terminus window and execute "
+"the remainder of the command line inside the terminal\n"
+"  -e, --command=STRING          launches a new Terminus window and execute "
+"the argument inside the terminal\n"
+"  --working-directory=DIRNAME   sets the terminal directory to DIRNAME\n"
+"  --guake                       launch Terminus in background\n"
+"  --check_guake                 launch Terminus in background and return if "
+"there is already another Terminus process\n"
+"  --nobindkey                   don't try to bind the Quake-mode key (useful "
+"for gnome shell)\n"
+"\n"
+msgstr ""
+
 #: src/settings.vala:69
 #, c-format
 msgid "Version %s"
 msgstr ""
 
-#: src/settings.vala:308 src/terminal.vala:193
+#: src/settings.vala:308 src/terminal.vala:201
 msgid "New window"
 msgstr ""
 
-#: src/settings.vala:309 src/terminal.vala:187
+#: src/settings.vala:309 src/terminal.vala:195
 msgid "New tab"
 msgstr ""
 
@@ -50,72 +86,72 @@
 msgid "Key"
 msgstr ""
 
-#: src/terminal.vala:146
+#: src/terminal.vala:154
 msgid "Copy"
 msgstr ""
 
-#: src/terminal.vala:155
+#: src/terminal.vala:163
 msgid "Paste"
 msgstr ""
 
-#: src/terminal.vala:165
+#: src/terminal.vala:173
 msgid "Split horizontally"
 msgstr ""
 
-#: src/terminal.vala:177
+#: src/terminal.vala:185
 msgid "Split vertically"
 msgstr ""
 
-#: src/terminal.vala:201
+#: src/terminal.vala:209
 msgid "Preferences"
 msgstr ""
 
-#: src/terminal.vala:210
+#: src/terminal.vala:218
 msgid "Close"
 msgstr ""
 
-#: src/terminus.vala:112 src/terminus.vala:163
+#: src/terminus.vala:114 src/terminus.vala:165
 #, c-format
 msgid "Error: palette file %s has unrecognized content at line %d\n"
 msgstr ""
 
-#: src/terminus.vala:125
+#: src/terminus.vala:127
 #, c-format
 msgid ""
 "Error: palette file %s has opens a bracket at line %d without closing it\n"
 msgstr ""
 
-#: src/terminus.vala:138
+#: src/terminus.vala:140
 #, c-format
 msgid "Error: palette file %s has an unrecognized color at line %d\n"
 msgstr ""
 
-#: src/terminus.vala:148
+#: src/terminus.vala:150
 #, c-format
 msgid "Warning: palette file %s has more than 16 colors\n"
 msgstr ""
 
-#: src/terminus.vala:173
+#: src/terminus.vala:175
 #, c-format
 msgid "Error: Palette file %s has less than 16 colors\n"
 msgstr ""
 
-#: src/terminus.vala:177
+#: src/terminus.vala:179
 #, c-format
 msgid "Error: Palette file %s has no palette name\n"
 msgstr ""
 
-#: src/terminus.vala:181
+#: src/terminus.vala:183
 #, c-format
 msgid "Error: Palette file %s has text_fg color but not text_bg color\n"
 msgstr ""
 
-#: src/terminus.vala:185
+#: src/terminus.vala:187
 #, c-format
 msgid "Error: Palette file %s has text_bg color but not text_fg color\n"
 msgstr ""
 
-#: src/terminus.vala:239
+#: src/terminus.vala:242
 msgid "Custom colors"
 msgstr ""
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terminus-1.2.0/rpmbuild/SPECS/terminus.spec 
new/terminus-1.3.0/rpmbuild/SPECS/terminus.spec
--- old/terminus-1.2.0/rpmbuild/SPECS/terminus.spec     2018-10-19 
23:14:36.000000000 +0200
+++ new/terminus-1.3.0/rpmbuild/SPECS/terminus.spec     2019-02-07 
00:39:12.000000000 +0100
@@ -1,5 +1,5 @@
 Name: terminus
-Version: 1.2.0
+Version: 1.3.0
 Release: 1
 License: Unknown/not set
 Summary: A new terminal for XWindows
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terminus-1.2.0/src/CMakeLists.txt 
new/terminus-1.3.0/src/CMakeLists.txt
--- old/terminus-1.2.0/src/CMakeLists.txt       2018-10-19 23:14:36.000000000 
+0200
+++ new/terminus-1.3.0/src/CMakeLists.txt       2019-02-07 00:39:12.000000000 
+0100
@@ -7,13 +7,13 @@
 set (RELEASE_NAME "terminus")
 set (CMAKE_C_FLAGS "")
 set (PREFIX ${CMAKE_INSTALL_PREFIX})
-set (VERSION "1.2.0")
+set (VERSION "1.3.0")
 set (TESTSRCDIR "${CMAKE_SOURCE_DIR}")
 set (DOLLAR "$")
 
 configure_file (${CMAKE_SOURCE_DIR}/src/Config.vala.base 
${CMAKE_BINARY_DIR}/src/Config.vala)
 add_definitions(-DGETTEXT_PACKAGE=\"${GETTEXT_PACKAGE}\")
-set (VERSION "1.2.0")
+set (VERSION "1.3.0")
 add_definitions (${DEPS_CFLAGS})
 link_libraries ( ${DEPS_LIBRARIES} )
 link_directories ( ${DEPS_LIBRARY_DIRS} )
@@ -38,6 +38,7 @@
 set (APP_SOURCES ${APP_SOURCES} bindkeys.vala)
 set (APP_SOURCES ${APP_SOURCES} container.vala)
 set (APP_SOURCES ${APP_SOURCES} notetab.vala)
+set (APP_SOURCES ${APP_SOURCES} params.vala)
 set (APP_SOURCES ${APP_SOURCES} settings.vala)
 set (APP_SOURCES ${APP_SOURCES} terminal.vala)
 set (APP_SOURCES ${APP_SOURCES} terminus.vala)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terminus-1.2.0/src/meson.build 
new/terminus-1.3.0/src/meson.build
--- old/terminus-1.2.0/src/meson.build  2018-10-19 23:14:36.000000000 +0200
+++ new/terminus-1.3.0/src/meson.build  2019-02-07 00:39:12.000000000 +0100
@@ -4,7 +4,7 @@
 cfg_terminus.set('GETTEXT_PACKAGE', 'terminus')
 cfg_terminus.set('RELEASE_NAME', 'terminus')
 cfg_terminus.set('PREFIX', get_option('prefix'))
-cfg_terminus.set('VERSION', '1.2.0')
+cfg_terminus.set('VERSION', '1.3.0')
 cfg_terminus.set('TESTSRCDIR', meson.source_root())
 
 cfgfile_2 = configure_file(input: 'Config.vala.base',output: 
'Config.vala',configuration: cfg_terminus)
@@ -23,6 +23,7 @@
 terminus_sources += ['bindkeys.vala']
 terminus_sources += ['container.vala']
 terminus_sources += ['notetab.vala']
+terminus_sources += ['params.vala']
 terminus_sources += ['settings.vala']
 terminus_sources += ['terminal.vala']
 terminus_sources += ['terminus.vala']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terminus-1.2.0/src/params.vala 
new/terminus-1.3.0/src/params.vala
--- old/terminus-1.2.0/src/params.vala  1970-01-01 01:00:00.000000000 +0100
+++ new/terminus-1.3.0/src/params.vala  2019-02-07 00:39:12.000000000 +0100
@@ -0,0 +1,109 @@
+namespace Terminus {
+       class Parameters : Object {
+               public bool bind_keys;
+               public bool launch_guake;
+               public bool check_guake;
+               public string[] command;
+               public string ? working_directory;
+
+               public Parameters(string [] argv) {
+                       int param_counter = 0;
+
+                       this.bind_keys         = true;
+                       this.launch_guake      = false;
+                       this.check_guake       = false;
+                       this.working_directory = null;
+                       this.command           = {};
+
+                       var add_commands = false;
+
+                       while (param_counter < (argv.length - 1)) {
+                               param_counter++;
+                               bool is_last_command = (param_counter == 
(argv.length - 1));
+                               if (add_commands) {
+                                       this.command += argv[param_counter];
+                                       continue;
+                               }
+                               if ((argv[param_counter] == "-h") || 
(argv[param_counter] == "--help")) {
+                                       this.show_usage(0);
+                                       break;
+                               }
+                               if (argv[param_counter] == "--guake") {
+                                       this.launch_guake = true;
+                                       continue;
+                               }
+                               if (argv[param_counter] == "--check_guake") {
+                                       this.check_guake = true;
+                                       continue;
+                               }
+                               if (argv[param_counter] == "--nobindkey") {
+                                       this.bind_keys = false;
+                                       continue;
+                               }
+                               if ((argv[param_counter] == "-e") || 
(argv[param_counter] == "--command")) {
+                                       if (is_last_command) {
+                                               this.required_command(-1, 
argv[param_counter]);
+                                       }
+                                       this.command = {};
+                                       param_counter++;
+                                       this.command += argv[param_counter];
+                                       continue;
+                               }
+                               if 
(argv[param_counter].has_prefix("--command=")) {
+                                       this.command  = {};
+                                       this.command += 
argv[param_counter].substring(10);
+                                       continue;
+                               }
+                               if ((argv[param_counter] == "-x") || 
(argv[param_counter] == "--execute") || (argv[param_counter] == "--")) {
+                                       if (param_counter == (argv.length - 1)) 
{
+                                               this.required_command(-1, 
argv[param_counter]);
+                                       }
+                                       this.command = {};
+                                       add_commands = true;
+                                       continue;
+                               }
+                               if (argv[param_counter] == 
"--working-directory") {
+                                       if (param_counter == (argv.length - 1)) 
{
+                                               this.required_path(-1, 
argv[param_counter]);
+                                       }
+                                       param_counter++;
+                                       this.working_directory = 
argv[param_counter];
+                                       continue;
+                               }
+                               if 
(argv[param_counter].has_prefix("--working-directory=")) {
+                                       this.working_directory = 
argv[param_counter].substring(20);
+                                       continue;
+                               }
+                       }
+               }
+
+               private void required_path(int retval, string parameter) {
+                       print(_("The '%s' parameter requires a path after 
it.\n\n").printf(parameter));
+                       this.show_usage(-1);
+               }
+
+               private void required_command(int retval, string parameter) {
+                       print(_("The '%s' parameter requires a command after 
it.\n\n").printf(parameter));
+                       this.show_usage(-1);
+               }
+
+               private void show_usage(int retval) {
+                       print(_("""Usage:
+  terminus [OPTION...] [-- COMMAND ...]
+
+Help commands:
+  -h, --help                    show this help
+
+Options:
+  -x, --execute, --             launches a new Terminus window and execute the 
remainder of the command line inside the terminal
+  -e, --command=STRING          launches a new Terminus window and execute the 
argument inside the terminal
+  --working-directory=DIRNAME   sets the terminal directory to DIRNAME
+  --guake                       launch Terminus in background
+  --check_guake                 launch Terminus in background and return if 
there is already another Terminus process
+  --nobindkey                   don't try to bind the Quake-mode key (useful 
for gnome shell)
+
+"""));
+                       Posix.exit(retval);
+               }
+       }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terminus-1.2.0/src/terminal.vala 
new/terminus-1.3.0/src/terminal.vala
--- old/terminus-1.2.0/src/terminal.vala        2018-10-19 23:14:36.000000000 
+0200
+++ new/terminus-1.3.0/src/terminal.vala        2019-02-07 00:39:12.000000000 
+0100
@@ -81,13 +81,14 @@
                        this.closeButton = new Gtk.EventBox();
                        var label = new Gtk.Label("<span size=\"small\">   X   
</span>");
                        label.use_markup = true;
-                       this.closeButton.button_release_event.connect( (event) 
=> {
+                       this.closeButton.button_release_event.connect((event) 
=> {
 #if VALA_0_40
-                                Posix.kill(this.pid, Posix.Signal.KILL);
+                               Posix.kill(this.pid, Posix.Signal.KILL);
 #else
-                                Posix.kill(this.pid, Posix.SIGKILL);
+                               Posix.kill(this.pid, Posix.SIGKILL);
 #endif
-                        return false;});
+                               return false;
+                       });
                        this.closeButton.add(label);
                        var titleContainer = new 
Gtk.Box(Gtk.Orientation.HORIZONTAL, 0);
                        titleContainer.pack_start(this.titlebox, true, true);
@@ -137,7 +138,14 @@
 
                        string[] cmd = {};
                        cmd += Terminus.settings.get_string("shell-command");
-                       this.vte_terminal.spawn_sync(Vte.PtyFlags.DEFAULT, 
null, cmd, GLib.Environ.get(), 0, null, out this.pid);
+                       if (parameters.command.length != 0) {
+                               cmd += "-c";
+                               foreach (var command in parameters.command) {
+                                       cmd += command;
+                               }
+                               parameters.command = {};
+                       }
+                       this.vte_terminal.spawn_sync(Vte.PtyFlags.DEFAULT, 
parameters.working_directory, cmd, GLib.Environ.get(), 0, null, out this.pid);
                        this.vte_terminal.child_exited.connect(() => {
                                this.ended(this);
                        });
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terminus-1.2.0/src/terminus.vala 
new/terminus-1.3.0/src/terminus.vala
--- old/terminus-1.2.0/src/terminus.vala        2018-10-19 23:14:36.000000000 
+0200
+++ new/terminus-1.3.0/src/terminus.vala        2019-02-07 00:39:12.000000000 
+0100
@@ -19,13 +19,15 @@
 using Gtk;
 using Gee;
 
-//project version = 1.2.0
+//project version = 1.3.0
 
 namespace Terminus {
        TerminusRoot     main_root;
        GLib.Settings    settings         = null;
        GLib.Settings    keybind_settings = null;
        Terminus.Bindkey bindkey;
+       Parameters       parameters = null;
+       int tid_counter             = 0;
 
        class Terminuspalette : Object {
                public bool custom;
@@ -54,7 +56,7 @@
                                return false;
                        }
 
-                       var    color = Gdk.RGBA();
+                       var color = Gdk.RGBA();
 
                        color.parse(Terminus.settings.get_string("fg-color"));
                        if (!this.text_fg.equal(color)) {
@@ -198,8 +200,8 @@
 
        class TerminusRoot : Object {
                private Gee.List<Terminus.Window> window_list;
-               private bool launch_guake = false;
-               private bool check_guake = false;
+               private bool launch_guake;
+               private bool check_guake;
                private Terminus.Base ? guake_terminal;
                private Terminus.Window ? guake_window;
                private bool ready;
@@ -225,7 +227,8 @@
 
                        this.window_list = new Gee.ArrayList<Terminus.Window>();
 
-                       this.check_params(argv);
+                       this.launch_guake = parameters.launch_guake;
+                       this.check_guake  = parameters.check_guake;
 
                        this.tmp_launch_terminal = true;
                        this.tmp_launch_guake    = false;
@@ -259,25 +262,27 @@
                        }
 
                        if (this.tmp_launch_terminal || this.tmp_launch_guake) {
-                               Bus.own_name(BusType.SESSION, 
"com.rastersoft.terminus", BusNameOwnerFlags.NONE, this.on_bus_aquired,
-                               () => {
+                               Bus.own_name(BusType.SESSION, 
"com.rastersoft.terminus", BusNameOwnerFlags.NONE, this.on_bus_aquired, () => {
+                                       // if there is no other Terminus 
process, we are responsible for everything
                                        if (this.tmp_launch_terminal) {
-                                               this.create_window(false);
+                                           this.create_window(false);
                                        }
                                        this.tmp_launch_terminal = false;
                                        if (this.tmp_launch_guake) {
-                                               this.create_window(true);
+                                           this.create_window(true);
                                        }
                                        this.tmp_launch_guake = false;
                                        
Terminus.keybind_settings.changed.connect(this.keybind_settings_changed);
                                        this.ready = true;
                                        if (this.extcall != -1) {
-                                               show_hide_global(this.extcall);
+                                           show_hide_global(this.extcall);
                                        }
                                }, () => {
+                                       // if there is another Terminus 
process, ask it to open a new window and exit
                                        RemoteControlInterface server = 
Bus.get_proxy_sync(BusType.SESSION, "com.rastersoft.terminus", 
"/com/rastersoft/terminus");
                                        if (this.tmp_launch_terminal) {
-                                               server.show_terminal();
+                                           int tid;
+                                           
server.show_terminal(parameters.command, out tid);
                                        }
                                        Gtk.main_quit();
                                });
@@ -341,62 +346,40 @@
                        return false;
                }
 
-               public void create_window(bool guake_mode) {
+               public int create_window(bool guake_mode) {
                        Terminus.Window window;
 
                        if (guake_mode) {
                                if (this.guake_terminal == null) {
                                        this.guake_terminal = new 
Terminus.Base();
                                }
-                               window            = new Terminus.Window(true, 
this.guake_terminal);
+                               window            = new Terminus.Window(true, 
tid_counter, this.guake_terminal);
                                this.guake_window = window;
                                
Terminus.bindkey.show_guake.connect(this.show_hide);
                                
this.guake_window.focus_in_event.connect(this.focus_in);
                                
this.guake_window.focus_out_event.connect(this.focus_out);
                        } else {
-                               window = new Terminus.Window(false);
+                               window = new Terminus.Window(false, 
tid_counter);
                        }
+                       tid_counter++;
 
                        window.ended.connect((w) => {
                                window_list.remove(w);
                                if (w == this.guake_window) {
-                                       
Terminus.bindkey.show_guake.disconnect(this.show_hide);
-                                       this.guake_window   = null;
-                                       this.guake_terminal = null;
-                                       this.create_window(true);
+                                   
Terminus.bindkey.show_guake.disconnect(this.show_hide);
+                                   this.guake_window   = null;
+                                   this.guake_terminal = null;
+                                   this.create_window(true);
                                }
                                if (window_list.size == 0) {
-                                       Gtk.main_quit();
+                                   Gtk.main_quit();
                                }
                        });
                        window.new_window.connect(() => {
                                this.create_window(false);
                        });
                        window_list.add(window);
-               }
-
-               public void check_params(string[] argv) {
-                       int  param_counter = 0;
-                       bool exit_at_end   = false;
-
-                       while (param_counter < argv.length) {
-                               param_counter++;
-                               if (argv[param_counter] == "--guake") {
-                                       this.launch_guake = true;
-                                       continue;
-                               }
-                               if (argv[param_counter] == "--check_guake") {
-                                       this.check_guake = true;
-                                       continue;
-                               }
-                               if ((argv[param_counter] == "-h") || 
(argv[param_counter] == "--help")) {
-                                       print("Usage: terminus [--guake] 
[--check_guake] [--nobindkey]\n");
-                                       exit_at_end = true;
-                               }
-                       }
-                       if (exit_at_end) {
-                               Posix.exit(0);
-                       }
+                       return window.terminal_id;
                }
 
                public void show_hide() {
@@ -450,23 +433,6 @@
                }
        }
 
-       bool check_params(string[] argv) {
-               int param_counter = 0;
-
-               if (check_wayland() == 1) {
-                       // under Wayland we can't use bindkeys the bindkeys 
library
-                       return false;
-               }
-
-               while (param_counter < argv.length) {
-                       param_counter++;
-                       if (argv[param_counter] == "--nobindkey") {
-                               return false;
-                       }
-               }
-               return true;
-       }
-
        /**
         * Ensures that the palette stored in the settings is valid
         * If not, replaces the ofending elements
@@ -512,8 +478,9 @@
                        main_root.show_hide_global(2);
                }
 
-               public void show_terminal() throws GLib.Error, GLib.DBusError {
-                       main_root.create_window(false);
+               public void show_terminal(string[] argv, out int tid) throws 
GLib.Error, GLib.DBusError {
+                       parameters.command = argv;
+                       tid = main_root.create_window(false);
                }
        }
 
@@ -529,7 +496,7 @@
 
                public abstract void swap_guake() throws GLib.Error, 
GLib.DBusError;
 
-               public abstract void show_terminal() throws GLib.Error, 
GLib.DBusError;
+               public abstract void show_terminal(string[] argv, out int tid) 
throws GLib.Error, GLib.DBusError;
        }
 }
 
@@ -541,9 +508,10 @@
 
        Gtk.init(ref argv);
 
+       Terminus.parameters       = new Terminus.Parameters(argv);
        Terminus.settings         = new 
GLib.Settings("org.rastersoft.terminus");
        Terminus.keybind_settings = new 
GLib.Settings("org.rastersoft.terminus.keybindings");
-       Terminus.bindkey          = new 
Terminus.Bindkey(Terminus.check_params(argv));
+       Terminus.bindkey          = new 
Terminus.Bindkey(Terminus.parameters.bind_keys);
 
        Terminus.check_palette();
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terminus-1.2.0/src/window.vala 
new/terminus-1.3.0/src/window.vala
--- old/terminus-1.2.0/src/window.vala  2018-10-19 23:14:36.000000000 +0200
+++ new/terminus-1.3.0/src/window.vala  2019-02-07 00:39:12.000000000 +0100
@@ -37,6 +37,8 @@
                public signal void ended(Terminus.Window window);
                public signal void new_window();
 
+               public int terminal_id;
+
                private int current_size;
                private int mouseY;
                private Gtk.Paned paned;
@@ -62,7 +64,8 @@
 #endif
                }
 
-               public Window(bool guake_mode, Terminus.Base ? terminal = null) 
{
+               public Window(bool guake_mode, int id, Terminus.Base ? terminal 
= null) {
+                       this.terminal_id = id;
                        this.is_guake    = guake_mode;
                        this.initialized = 0;
 
@@ -133,8 +136,8 @@
                                        }
 
                                        int y;
-                                       y = (int) (event.y_root);
-                                       int newval = y - this.mouseY;
+                                       y                  = (int) 
(event.y_root);
+                                       int newval         = y - this.mouseY;
                                        this.current_size += newval;
                                        this.mouseY        = y;
                                        this.resize(this.get_monitor_width(), 
this.current_size);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/terminus-1.2.0/terminus.avprj 
new/terminus-1.3.0/terminus.avprj
--- old/terminus-1.2.0/terminus.avprj   2018-10-19 23:14:36.000000000 +0200
+++ new/terminus-1.3.0/terminus.avprj   2019-02-07 00:39:12.000000000 +0100
@@ -13,7 +13,7 @@
 *vapidir: src/vapidir
 
 vala_binary: src/terminus
-*version: 1.2.0
+*version: 1.3.0
 use_gresource: extras_gresource_xml
 vala_vapi: checkwayland.vapi
 *vala_package: posix
@@ -30,6 +30,7 @@
 *vala_source: bindkeys.vala
 *vala_source: container.vala
 *vala_source: notetab.vala
+*vala_source: params.vala
 *vala_source: settings.vala
 *vala_source: terminal.vala
 *vala_source: terminus.vala
@@ -46,6 +47,7 @@
 *translate: c src/checkwayland.c
 *translate: vala src/container.vala
 *translate: vala src/notetab.vala
+*translate: vala src/params.vala
 *translate: vala src/settings.vala
 *translate: vala src/terminal.vala
 *translate: vala src/terminus.vala
Binary files old/terminus-1.2.0/terminus.png and 
new/terminus-1.3.0/terminus.png differ


Reply via email to