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 + + ## 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
