Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New feature: A Separate Json file for dynamic Layouts #213

Closed
dvdlevanon opened this issue Sep 18, 2020 · 11 comments · Fixed by #214
Closed

New feature: A Separate Json file for dynamic Layouts #213

dvdlevanon opened this issue Sep 18, 2020 · 11 comments · Fixed by #214
Labels
enhancement New feature or request

Comments

@dvdlevanon
Copy link
Contributor

Adding the following command line arguments

--layout path/to/layout.json

The Json file may provide an easy way to configure a collection of tabs and terminals using common pre-defined layouts, and also may support basic theming like background and text color.

This would allow to:

  1. Edit Layouts using a Text Editor instead of the "Preferences > Layouts" dialog.
  2. Share layouts easily between machines and people.
  3. A way to keep layouts under source control (git).

For years I used terminator and this feature was missing. so I wrote my own script that takes a list JSON files, representing layouts and profiles, and build a unified INI file for the terminator. Those files are also in the source control so my colleagues can use them easily.

Now that I see terminator is under active development again, I think of adding this feature to the code base. Would like to get your feedback and suggestions.

@mattrose
Copy link
Member

This sounds interesting. I think it might be better to have profiles defined in JSON rather than layouts. Profiles have the functionality that you need (judging from your description), and can contain layouts as well.

Personally, I'd be very comfortable working on this with you as well, just because it would be a nice change from all the GUI programming I've been doing lately with trying to get background image support back, and definitely an area in which I'm more comfortable :)

@dvdlevanon
Copy link
Contributor Author

dvdlevanon commented Sep 19, 2020

Hi,

Thanks for your response @mattrose, would be glad to work with you, I already started something and will have it ready for push soon, will share the PR.

Regarding layout vs profiles, I might miss something, currently a .config file looks like:

[profiles]
  [[Monitor]]
    allow_bold = False
    icon_bell = False
    background_color = "#100000"
    background_darkness = 0.93
    background_type = transparent
    font = Monospace 16
    foreground_color = "#DCDfff"
    show_titlebar = False
    scrollbar_position = hidden
    scrollback_lines = 3000
    scrollback_infinite = True
    use_system_font = False
[layouts]
  [[Monitor]]
    [[[root]]]
      fullscreen = False
      last_active_window = True
      maximised = True
      order = 0
      parent = ""
      position = 1920:0
      size = 1920, 1080
      title = Monitor
      type = Window
    [[[tabs]]]
      active_page = 0
      labels = htop, cmus
      order = 0
      parent = root
      type = Notebook
    [[[htop]]]
      command = htop ; bash
      order = A
      parent = tabs
      type = Terminal
    [[[cmus]]]
      command = cmus ; bash
      order = B
      parent = tabs
      type = Terminal

Seems like tabs+terminals are part of the layouts section, while profile holds things like colors and fonts. isn't it?

@mattrose
Copy link
Member

You know what, you're right. Profiles and Layouts are separate. For some reason I thought that Layouts were a subset of Profiles. Looking forward to your PR

@dvdlevanon
Copy link
Contributor Author

Just pushed the initial PR, work is still in progress.
#214

I put some json files in here: https://github.com/dvdlevanon/terminator/tree/layout-json-file/layout-files-examples

Example run:

./terminator --no-dbus --layout layout-files-examples/2-3-grid.json --maximise
./terminator --no-dbus --layout layout-files-examples/3-tabs-2-rows.json --maximise

The --layout argument may be either a name of a layout from the global config file, or a path to a layout.json file.
It first look for the layout name, like the regular behaviour of terminator, and only if it is missing it tries to look for a file.
If the argument passed is indeed a file, the new LayoutFile.get_layout_file method will build a dict with the same format like in the ini file.
This way it is both backward compatible with current logic, and pretty safe as no actual touching in the existing logic.

Would like to hear your opinion and suggestions.

@dvdlevanon
Copy link
Contributor Author

Here is a screenshot with this example:

./terminator --no-dbus --layout layout-files-examples/2-3-grid.json --maximise

https://ibb.co/zFVBM55

@mattrose
Copy link
Member

That looks very clean on first glance, and thanks for the PR. Hopefully I'll be able to pull it down and play with it tomorrow, but more likely Monday.

@dvdlevanon
Copy link
Contributor Author

@mattrose Noticed I just pushed my latest changes, and I slightly changed the interface due to the profile support that was added.

Example run:

./terminator --config-json layout-files-examples/4-4-grid.json

The --config-json parameter is a layer above the regular config file, it may contain a single layout and a single profile. both used by default if no other option is specified.

It is possible for the user to create custom a layout, with custom colors and fonts in a single Json file. Then use it when opening terminator without touching the global config, using the new --config-json parameter.

The Json file is pretty straightforward, its depth is unlimited and may contain very complex layouts with combination of tabs, horizental and vertical terminals.

@mattrose mattrose linked a pull request Sep 23, 2020 that will close this issue
@mattrose mattrose added the enhancement New feature or request label Oct 1, 2020
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this issue Jan 24, 2021
Switch to new upstream https://github.com/gnome-terminator/terminator

Add Python 3 support (3.8 tested).

Disable keybinder dependency, temporarily unavailable in pkgsrc.

Changelog

[v2.1.0](https://github.com/gnome-terminator/terminator/tree/v2.1.0) (2021-01-04)

[Full Changelog](gnome-terminator/terminator@v2.0.1...v2.1.0)

**Package Maintainers**

- We have changed the tarball format, and it should now include all the files in the tarball, rather than just a subset.  See [\348](gnome-terminator/terminator#348)

**Implemented enhancements:**

- Add bigger icon sizes [\258](gnome-terminator/terminator#258)
- Smart Copy option to clear selection after copy [\242](gnome-terminator/terminator#242)
- New feature: A Separate Json file for dynamic Layouts [\213](gnome-terminator/terminator#213)
- new feature: support for term://1.2.3.4/ 'links' that when clicked open a new terminator ssh'ed to 1.2.3.4. [\178](gnome-terminator/terminator#178)
- Reimplement "unfocused dim" using overpainting [\74](gnome-terminator/terminator#74)
- Add Transifex integration and documentation for translations [\352](gnome-terminator/terminator#352) ([lazyfrosch](https://github.com/lazyfrosch))

**Fixed bugs:**

- No \(visible\) context menu in sway [\330](gnome-terminator/terminator#330)
- Saving a layout after changing it, it correctly updates the config file but does not update the UI [\319](gnome-terminator/terminator#319)

**Closed issues:**

- Rethinking release artifacts [\348](gnome-terminator/terminator#348)
- The Alt+L layout chooser is too small [\345](gnome-terminator/terminator#345)
- Open in Previous Location [\337](gnome-terminator/terminator#337)
- Improve separator between splitted terminals [\329](gnome-terminator/terminator#329)
- Using shift+Super+} for next\_tab key binding doesn't work [\326](gnome-terminator/terminator#326)
- "Copy email address" actually doesn't quite do that [\323](gnome-terminator/terminator#323)
- Can't disable key binding [\322](gnome-terminator/terminator#322)
- Middle click does not paste selected text [\320](gnome-terminator/terminator#320)
- Terminator does not read config file from /etc/xdg directory  [\308](gnome-terminator/terminator#308)
- Add a 'clear terminal' function [\306](gnome-terminator/terminator#306)
- terminator-2.0.1: vertical separator too big [\305](gnome-terminator/terminator#305)
- rewrap\_on\_resize is deprecated in vte-0.60.0 [\303](gnome-terminator/terminator#303)
- Geometry ignored [\297](gnome-terminator/terminator#297)
- hangs after update [\292](gnome-terminator/terminator#292)
- Unable to Set "Image" as Background [\285](gnome-terminator/terminator#285)
- module 'command\_notify' has no attribute 'AVAILABLE' [\264](gnome-terminator/terminator#264)
- symlinked config replaced with regular file [\234](gnome-terminator/terminator#234)
- Cannot "Drag and Drop" Folders or Files [\159](gnome-terminator/terminator#159)

**Merged pull requests:**

- Update RELEASE docs [\353](gnome-terminator/terminator#353) ([lazyfrosch](https://github.com/lazyfrosch))
- German language updated [\351](gnome-terminator/terminator#351) ([Brambleberry4](https://github.com/Brambleberry4))
- Update terminator.appdata.xml.in [\350](gnome-terminator/terminator#350) ([jooola](https://github.com/jooola))
- Fix \345 The Alt+L layout chooser is too small [\349](gnome-terminator/terminator#349) ([evandrocoan](https://github.com/evandrocoan))
- fix 319: refresh layout after save [\344](gnome-terminator/terminator#344) ([mattrose](https://github.com/mattrose))
- feat: refactoring terminal file [\343](gnome-terminator/terminator#343) ([JAugusto42](https://github.com/JAugusto42))
- Local user install: terminator.desktop and terminator.metainfo.xml [\342](gnome-terminator/terminator#342) ([zothar](https://github.com/zothar))
- update to non-deprecated Gtk.Menu popup call [\341](gnome-terminator/terminator#341) ([mattrose](https://github.com/mattrose))
- feat: Migrating from hbox to GtkBox [\340](gnome-terminator/terminator#340) ([JAugusto42](https://github.com/JAugusto42))
- remove rewrap on resize from option and remove functions too [\339](gnome-terminator/terminator#339) ([JAugusto42](https://github.com/JAugusto42))
- fix: \323 [\338](gnome-terminator/terminator#338) ([JAugusto42](https://github.com/JAugusto42))
- Revert pr36 [\336](gnome-terminator/terminator#336) ([mattrose](https://github.com/mattrose))
- Feature: Relaunch command option on held open after child exit [\333](gnome-terminator/terminator#333) ([zothar](https://github.com/zothar))
- add note aboug moving config file out of the way [\328](gnome-terminator/terminator#328) ([mattrose](https://github.com/mattrose))
- issue 271: add keybindings to zoom all terminals at once [\314](gnome-terminator/terminator#314) ([mattrose](https://github.com/mattrose))
- load config from XDG\_CONFIG\_DIRS if user config file doesn't exist [\310](gnome-terminator/terminator#310) ([mattrose](https://github.com/mattrose))
- Update README with install instructions [\309](gnome-terminator/terminator#309) ([tomeksabala](https://github.com/tomeksabala))
- add a commandline flag to unhide any windows [\307](gnome-terminator/terminator#307) ([mattrose](https://github.com/mattrose))
- fix background image profile preferences ui [\296](gnome-terminator/terminator#296) ([mattrose](https://github.com/mattrose))
- Minor fixes [\295](gnome-terminator/terminator#295) ([strottie](https://github.com/strottie))
- fix issue with older vte lib [\294](gnome-terminator/terminator#294) ([mattrose](https://github.com/mattrose))
- replace feed\_child\_binary\(\) calls with feed\_child\(\) [\291](gnome-terminator/terminator#291) ([mattrose](https://github.com/mattrose))
- Update German and Croatian [\287](gnome-terminator/terminator#287) ([milotype](https://github.com/milotype))
- fix issue \74 [\286](gnome-terminator/terminator#286) ([mattrose](https://github.com/mattrose))
- support for SSH URIs [\280](gnome-terminator/terminator#280) ([mattrose](https://github.com/mattrose))
- add bigger icon sizes [\279](gnome-terminator/terminator#279) ([mattrose](https://github.com/mattrose))
- fix stupid debugging error [\278](gnome-terminator/terminator#278) ([mattrose](https://github.com/mattrose))
- multiple small documentation fixes [\277](gnome-terminator/terminator#277) ([mattrose](https://github.com/mattrose))
- fix drag and drop issues on KDE [\275](gnome-terminator/terminator#275) ([mattrose](https://github.com/mattrose))
- pass original working directory to dbus\_options as well [\270](gnome-terminator/terminator#270) ([mattrose](https://github.com/mattrose))
- fix new upstream vte warning [\267](gnome-terminator/terminator#267) ([mattrose](https://github.com/mattrose))
- suppress warning if the vte capability is not there [\266](gnome-terminator/terminator#266) ([mattrose](https://github.com/mattrose))
- remove workaround for ibus/ibus#1802 [\265](gnome-terminator/terminator#265) ([mattrose](https://github.com/mattrose))
- Add support for inverted search [\257](gnome-terminator/terminator#257) ([yoavp77](https://github.com/yoavp77))
- update translations [\255](gnome-terminator/terminator#255) ([mattrose](https://github.com/mattrose))
- Clear selection on smart copy [\254](gnome-terminator/terminator#254) ([mattrose](https://github.com/mattrose))
- Polish translation update [\252](gnome-terminator/terminator#252) ([napcok](https://github.com/napcok))
- update terminator.pot [\251](gnome-terminator/terminator#251) ([napcok](https://github.com/napcok))
- Polish translation update [\248](gnome-terminator/terminator#248) ([napcok](https://github.com/napcok))
- fix the handle on the divider between horizontal panes [\247](gnome-terminator/terminator#247) ([mattrose](https://github.com/mattrose))
- add tests to release tarball [\246](gnome-terminator/terminator#246) ([mattrose](https://github.com/mattrose))
- Change how config file is saved [\235](gnome-terminator/terminator#235) ([planet36](https://github.com/planet36))
- Updated Estonian translation [\226](gnome-terminator/terminator#226) ([ookull](https://github.com/ookull))
- Fix: Key Binding Clearing in `Preferences \> Keybindings` [\224](gnome-terminator/terminator#224) ([dkmvs](https://github.com/dkmvs))
- layout file - initial commit - work in progress [\214](gnome-terminator/terminator#214) ([dvdlevanon](https://github.com/dvdlevanon))
- fast resize keyboard shortcuts [\36](gnome-terminator/terminator#36) ([waldner](https://github.com/waldner))

 [v2.0.1](https://github.com/gnome-terminator/terminator/tree/v2.0.1) (2020-10-11)

[Full Changelog](gnome-terminator/terminator@v2.0...v2.0.1)

TODO

 Package maintainers



**Fixed bugs:**

- config settings lost when I cancel "Close multiple terminals" dialog [\210](gnome-terminator/terminator#210)

**Closed issues:**

- Feature Suggestion: Splitted screen shells based on parent [\230](gnome-terminator/terminator#230)
- Release 2.0 does not have signed assets [\228](gnome-terminator/terminator#228)
- Some files install to the wrong location [\227](gnome-terminator/terminator#227)
- Multi tab breaks transparent background [\225](gnome-terminator/terminator#225)

**Merged pull requests:**

- Preserve searchbar case sensitivity state in config file on state change [\249](gnome-terminator/terminator#249) ([yoavp77](https://github.com/yoavp77))
- make sure data/\*.in files are there for distributors [\237](gnome-terminator/terminator#237) ([mattrose](https://github.com/mattrose))
- only set clear background when background\_image in config [\233](gnome-terminator/terminator#233) ([mattrose](https://github.com/mattrose))
- fix INSTALL instructions for setuptools [\232](gnome-terminator/terminator#232) ([mattrose](https://github.com/mattrose))

 [v2.0](https://github.com/gnome-terminator/terminator/tree/v2.0) (2020-10-06)

[Full Changelog](gnome-terminator/terminator@v1.92...v2.0)

**Implemented enhancements:**

- Feature Request: "broadcast-only" option in profile preferences [\157](gnome-terminator/terminator#157)
- Feature Request: Key binding option for creating group in current tab [\156](gnome-terminator/terminator#156)
- Terminator should use XDG\_CONFIG\_HOME environment variable if it's available. [\152](gnome-terminator/terminator#152)
- align maximize option spelling with gnome-terminal [\125](gnome-terminator/terminator#125)
- Putty style paste makes it impossible to reach preferences [\120](gnome-terminator/terminator#120)
- Adjust Line Height [\111](gnome-terminator/terminator#111)
- Allow to open layout in a new tab [\106](gnome-terminator/terminator#106)
- Use VTE api instead of python psutil to get cwd. [\82](gnome-terminator/terminator#82)
- Make a submenu of Layouts in the popup menu. [\63](gnome-terminator/terminator#63)
- Search should have a case-sensitive option [\44](gnome-terminator/terminator#44)
- Remove default keybindings for enabling terminal broadcast [\40](gnome-terminator/terminator#40)
- \[Feature Request\] Make bold-is-bright option configurable [\38](gnome-terminator/terminator#38)
-  No option for background image in gtk3 version  [\5](gnome-terminator/terminator#5)
-  Terminator need to highlight search string  [\4](gnome-terminator/terminator#4)
- rely on python psutil to get the cwd [\83](gnome-terminator/terminator#83) ([mattrose](https://github.com/mattrose))
- Propagate tab-swictch events if there is only one tab [\61](gnome-terminator/terminator#61) ([blackm0re](https://github.com/blackm0re))
- Install AppStream data as .metainfo.xml [\53](gnome-terminator/terminator#53) ([DarthGandalf](https://github.com/DarthGandalf))
- Added option to disable ctrl+mousewheel zoom [\46](gnome-terminator/terminator#46) ([filipkilibarda](https://github.com/filipkilibarda))
- Add layout launcher to terminal popup menu. [\42](gnome-terminator/terminator#42) ([nbeaver](https://github.com/nbeaver))
- \38: Add option for configuring bold-is-bright setting of VTE [\39](gnome-terminator/terminator#39) ([JakubVanek](https://github.com/JakubVanek))
- Only import GdkX11 when available [\19](gnome-terminator/terminator#19) ([mattrose](https://github.com/mattrose))
- Removing packaging files from the repository [\7](gnome-terminator/terminator#7) ([lazyfrosch](https://github.com/lazyfrosch))

**Fixed bugs:**

- Fails to run for LDAP user [\128](gnome-terminator/terminator#128)
- Crash in paned.py:311  [\68](gnome-terminator/terminator#68)
- terminator runs in network namespace only with -u option \(dbus\) [\65](gnome-terminator/terminator#65)
- dbus FileNotFoundError [\58](gnome-terminator/terminator#58)
- Middle click does not paste selected text [\24](gnome-terminator/terminator#24)
- Fix crash when GdkX11 module is not available when creating layout [\113](gnome-terminator/terminator#113) ([mattrose](https://github.com/mattrose))
- Do not crash when dbus server is unavailable, just emit an error message [\88](gnome-terminator/terminator#88) ([mattrose](https://github.com/mattrose))
- Fix fallback for getting the current working directory [\87](gnome-terminator/terminator#87) ([terceiro](https://github.com/terceiro))
- fix FileNotFound error when terminator is run from a directory that no longer exists [\81](gnome-terminator/terminator#81) ([mattrose](https://github.com/mattrose))
- Fix layout launcher error [\59](gnome-terminator/terminator#59) ([FernandoBasso](https://github.com/FernandoBasso))
- fix traceback on dragging and dropping files from a file manager [\54](gnome-terminator/terminator#54) ([mattrose](https://github.com/mattrose))
- Disable special logic for pasting on Wayland [\51](gnome-terminator/terminator#51) ([lazyfrosch](https://github.com/lazyfrosch))
- searchbar: Implement modern/glib regexp support [\43](gnome-terminator/terminator#43) ([lazyfrosch](https://github.com/lazyfrosch))
- fix exception when feeding terminal number to terminal [\35](gnome-terminator/terminator#35) ([mattrose](https://github.com/mattrose))
- terminal: Improve compat for Vte Regex [\28](gnome-terminator/terminator#28) ([lazyfrosch](https://github.com/lazyfrosch))

**Closed issues:**

- Feature request: Preference to disable Ctrl + Scroll font size change [\219](gnome-terminator/terminator#219)
- AttributeError: 'Terminal' object has no attribute 'spawn\_async' [\218](gnome-terminator/terminator#218)
- Question - custom command line [\212](gnome-terminator/terminator#212)
- Terminator overwrite shortcut of console Applications [\204](gnome-terminator/terminator#204)
- Gap between windows [\203](gnome-terminator/terminator#203)
- Search does not work [\199](gnome-terminator/terminator#199)
- Selecting first char of a line for copy-paste is impossible [\191](gnome-terminator/terminator#191)
- Duplicate Key Bindings are Allowed in `Preferences \> Keybindings` [\190](gnome-terminator/terminator#190)
- Cannot open terminator windows with different configs [\184](gnome-terminator/terminator#184)
- Feature request: reenable broadcast keybindings and warn on their first use instead [\183](gnome-terminator/terminator#183)
- Add Terminator version in About screen [\169](gnome-terminator/terminator#169)
- Feature Request: Add hyperlink support [\164](gnome-terminator/terminator#164)
- ctrl-alt-a activates even when terminal has no focus [\163](gnome-terminator/terminator#163)
- TypeError in terminal.py [\162](gnome-terminator/terminator#162)
- Active tab identification [\158](gnome-terminator/terminator#158)
- Is terminator is rolling for Windows Subsystem For Linux \(WSL\)??? [\154](gnome-terminator/terminator#154)
- broken mouse events in fullscreen applications [\151](gnome-terminator/terminator#151)
- Key Bindigs That Contain a Key Modified by a Shift Key Don't Work [\149](gnome-terminator/terminator#149)
- move translation of ConfigObj from main terminator code to the only method that uses it. [\148](gnome-terminator/terminator#148)
- Gnome session support no longer works [\147](gnome-terminator/terminator#147)
- Errors in prefseditor.py [\137](gnome-terminator/terminator#137)
- PuTTY style paste is pasting from x-selection instead of clipboard [\134](gnome-terminator/terminator#134)
- Terminator separator size cannot be changed [\133](gnome-terminator/terminator#133)
- update dependencies in INSTALL.md [\127](gnome-terminator/terminator#127)
- Feature request: show bold text in bright colors \(option\) [\122](gnome-terminator/terminator#122)
- Feature request: configurable shortcut to open Prefs [\121](gnome-terminator/terminator#121)
- Support desktop dark/light theme [\119](gnome-terminator/terminator#119)
- conflicting UUID when cloning layout [\115](gnome-terminator/terminator#115)
- Add support for tmux integration \(like iTerm2\)  [\107](gnome-terminator/terminator#107)
- Ubuntu 20.04 drag and drop crashes  [\103](gnome-terminator/terminator#103)
- When opening a new window, terminator automatically switch to the last tab of the first window. [\99](gnome-terminator/terminator#99)
- Why we use python in shebang [\98](gnome-terminator/terminator#98)
- Ubuntu 20.04 split terminal broadcast duplicate keys [\96](gnome-terminator/terminator#96)
- ubuntu 18.04 Install ok but no desktop icon [\95](gnome-terminator/terminator#95)
- There are still translation commits to launchpad [\85](gnome-terminator/terminator#85)
- cwd.get\_pid\_cwd is a mess. [\80](gnome-terminator/terminator#80)
- Resize borderless window [\75](gnome-terminator/terminator#75)
- Add distribution info into INSTALL [\45](gnome-terminator/terminator#45)
- Alt+ScrollWheel ? [\29](gnome-terminator/terminator#29)
- Switch to setuptools [\14](gnome-terminator/terminator#14)
- Improve gettext integration [\13](gnome-terminator/terminator#13)

**Merged pull requests:**

- Revert "Merge pull request \208 from mattrose/update-vte-spawn" [\220](gnome-terminator/terminator#220) ([mattrose](https://github.com/mattrose))
- Background image [\217](gnome-terminator/terminator#217) ([mattrose](https://github.com/mattrose))
- fix spacing [\215](gnome-terminator/terminator#215) ([mattrose](https://github.com/mattrose))
- Fix: Allow `Shift+Tab` Key Binding [\211](gnome-terminator/terminator#211) ([dkmvs](https://github.com/dkmvs))
- add preferences keybindings [\209](gnome-terminator/terminator#209) ([mattrose](https://github.com/mattrose))
- fix login\_shell option so that it sends -l rather than -shell [\207](gnome-terminator/terminator#207) ([mattrose](https://github.com/mattrose))
- Command notify [\205](gnome-terminator/terminator#205) ([mattrose](https://github.com/mattrose))
- Dbus options [\200](gnome-terminator/terminator#200) ([mattrose](https://github.com/mattrose))
- Fix: Forbid Duplicate Key Bindings in `Preferences \> Keybindings` [\196](gnome-terminator/terminator#196) ([dkmvs](https://github.com/dkmvs))
- Key binding option for creating group in current terminal [\195](gnome-terminator/terminator#195) ([mattrose](https://github.com/mattrose))
- Add 'wide\_handle' property  [\193](gnome-terminator/terminator#193) ([mattrose](https://github.com/mattrose))
- Exit remotinator with an explicit error message when terminator is needed but not running [\185](gnome-terminator/terminator#185) ([phidebian](https://github.com/phidebian))
- Add a 'title bar at bottom' option [\182](gnome-terminator/terminator#182) ([phidebian](https://github.com/phidebian))
- Format shortcuts [\181](gnome-terminator/terminator#181) ([aadrian](https://github.com/aadrian))
- add support for OSC-8 [\176](gnome-terminator/terminator#176) ([mattrose](https://github.com/mattrose))
- add packages to install doc [\174](gnome-terminator/terminator#174) ([mattrose](https://github.com/mattrose))
- Fix readme [\173](gnome-terminator/terminator#173) ([mattrose](https://github.com/mattrose))
- remove unused gnome session code [\172](gnome-terminator/terminator#172) ([mattrose](https://github.com/mattrose))
- Add version string to "Preferences -\> About" [\171](gnome-terminator/terminator#171) ([mattrose](https://github.com/mattrose))
- Update README.md [\166](gnome-terminator/terminator#166) ([br0kenbuild](https://github.com/br0kenbuild))
- Allow live previewing of profile color changes [\160](gnome-terminator/terminator#160) ([dafrito](https://github.com/dafrito))
- Fix: Allow Key Bindings with Shift-Modified Keys [\150](gnome-terminator/terminator#150) ([dkmvs](https://github.com/dkmvs))
- Fixed bug in prefseditor.py [\146](gnome-terminator/terminator#146) ([robertoetcheverryr](https://github.com/robertoetcheverryr))
- fix traceback on paned.py [\145](gnome-terminator/terminator#145) ([mattrose](https://github.com/mattrose))
- issue 44, add option for case sensitive search [\144](gnome-terminator/terminator#144) ([dugb](https://github.com/dugb))
- fix line height config variable location to match ui [\142](gnome-terminator/terminator#142) ([mattrose](https://github.com/mattrose))
- Issue 111, add line\_height slider [\141](gnome-terminator/terminator#141) ([dugb](https://github.com/dugb))
- replaces the handle\_size property that was deprecated in gtk3.20 [\140](gnome-terminator/terminator#140) ([mattrose](https://github.com/mattrose))
- update apt repos before installing packages [\136](gnome-terminator/terminator#136) ([mattrose](https://github.com/mattrose))
- Added putty\_paste\_style\_source\_clipboard [\135](gnome-terminator/terminator#135) ([robertoetcheverryr](https://github.com/robertoetcheverryr))
- launch new layouts directly from right-click menu [\132](gnome-terminator/terminator#132) ([mattrose](https://github.com/mattrose))
- Issue99 [\131](gnome-terminator/terminator#131) ([mattrose](https://github.com/mattrose))
- Adding maximize option [\126](gnome-terminator/terminator#126) ([qckzr](https://github.com/qckzr))
- add line\_height config variable [\124](gnome-terminator/terminator#124) ([mattrose](https://github.com/mattrose))
- fix cwd for non-vte shells [\123](gnome-terminator/terminator#123) ([mattrose](https://github.com/mattrose))
- fix detection of whether or not ibus is running [\114](gnome-terminator/terminator#114) ([mattrose](https://github.com/mattrose))
- fix traceback when closing a window [\112](gnome-terminator/terminator#112) ([mattrose](https://github.com/mattrose))
- add debug logging to searchbar [\110](gnome-terminator/terminator#110) ([mattrose](https://github.com/mattrose))
- fix io errors on debugserver [\109](gnome-terminator/terminator#109) ([mattrose](https://github.com/mattrose))
- Fix TODO for documenting vte regex matching constants [\105](gnome-terminator/terminator#105) ([GerbenWelter](https://github.com/GerbenWelter))
- Revert "replace gettext and intltool with Babel" [\100](gnome-terminator/terminator#100) ([lazyfrosch](https://github.com/lazyfrosch))
- Import Launchpad translations [\91](gnome-terminator/terminator#91) ([lazyfrosch](https://github.com/lazyfrosch))
- Gentoo: github is only a mirror [\86](gnome-terminator/terminator#86) ([DarthGandalf](https://github.com/DarthGandalf))
- update the INSTALL.md for Ubuntu installation [\77](gnome-terminator/terminator#77) ([yosoufe](https://github.com/yosoufe))
- Update AUTHORS with a full list from GIT history [\67](gnome-terminator/terminator#67) ([lazyfrosch](https://github.com/lazyfrosch))
- docs: Update INSTALL.md and add distributions [\66](gnome-terminator/terminator#66) ([lazyfrosch](https://github.com/lazyfrosch))
- Make LayoutLauncher window a little larger by default [\60](gnome-terminator/terminator#60) ([FernandoBasso](https://github.com/FernandoBasso))
- fix up language strings in .po files [\52](gnome-terminator/terminator#52) ([mattrose](https://github.com/mattrose))
- Switch to setuptools and use pytest [\50](gnome-terminator/terminator#50) ([lazyfrosch](https://github.com/lazyfrosch))
- \40: remove default key bindings for input broadcasting [\41](gnome-terminator/terminator#41) ([JakubVanek](https://github.com/JakubVanek))
- Add FreeBSD [\33](gnome-terminator/terminator#33) ([h-ume](https://github.com/h-ume))
- Update pt\_BR.po [\30](gnome-terminator/terminator#30) ([chclxds](https://github.com/chclxds))
- Remove obsolete terminator.wrapper [\27](gnome-terminator/terminator#27) ([lazyfrosch](https://github.com/lazyfrosch))
- Add Gentoo, sort the order of distributions [\23](gnome-terminator/terminator#23) ([DarthGandalf](https://github.com/DarthGandalf))

 [v1.92](https://github.com/gnome-terminator/terminator/tree/v1.92) (2020-04-18)

[Full Changelog](gnome-terminator/terminator@1.91...v1.92)

This is the first release since 2017, while we are now a few years later a few things changed.

* New home on GitHub https://github.com/gnome-terminator/terminator
* New team under the lead of https://github.com/lazyfrosch
* Python 3 support finally released
* Some tedious bugs solved for current GTK and VTE

There is still a lot to do, and we need more help to keep Terminator available for
your daily use.

If you are interested in contributing to the project, please contact us, open issues,
discuss issues or help with whatever you can! Any help is welcome!

**Notes for packagers:**

* All scripts now use `!/usr/bin/env python` as shebang, when you are using
  `python3 setup.py install` or similar all binary scripts should be automatically
   modified to the correct shebang
* Any feedback is welcome, please open an issue or join the community channels

**Implemented enhancements:**

- Implement support for Python 3 [\6](gnome-terminator/terminator#6) ([lazyfrosch](https://github.com/lazyfrosch))

**Fixed bugs:**

- VTE Regexp should work with older VTE releases as well [\10](gnome-terminator/terminator#10)
- ctrl+click should open links [\3](gnome-terminator/terminator#3)
- Ensure Python 3 support [\2](gnome-terminator/terminator#2)
- terminal: Add compat detection for Vte regexp feature [\22](gnome-terminator/terminator#22) ([lazyfrosch](https://github.com/lazyfrosch))
- Fix some compat issues for Python 2.7 [\18](gnome-terminator/terminator#18) ([lazyfrosch](https://github.com/lazyfrosch))
- Converting to python 3 and making all tests pass. [\9](gnome-terminator/terminator#9) ([JAugusto42](https://github.com/JAugusto42))

**Merged pull requests:**

- Add GitHub action for Python [\17](gnome-terminator/terminator#17) ([lazyfrosch](https://github.com/lazyfrosch))
- Updating URLs in application and appdata [\16](gnome-terminator/terminator#16) ([mattrose](https://github.com/mattrose))
- update the INSTALL file [\15](gnome-terminator/terminator#15) ([mattrose](https://github.com/mattrose))


\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
@bitinerant
Copy link

I am excited about this feature but so far cannot find documentation and link above to some examples is broken. It would be great if a brief explanation and several examples could be added to https://gnome-terminator.readthedocs.io/en/latest/advancedusage.html

@bitinerant
Copy link

Update: I found one example .json file (source):

{
	"layout": {
        "vertical": false,
		"tab1": [
			{
                "ratio": 0.7,
				"children": [
					{
						"command": "bpytop;neofetch;bash"
					},
					{
						"command": "neofetch;sleep 6;man terminator;bash"
					}
				]
			},
			{
				"children": [
					{
						"command": "pyradio -p 16;bash",
                        "ratio": 0.6
					},
					{
						"command": "cava;bash",
                        "ratio": 0.4
					},
					{
						"command": "theme.sh -i2;bash"
					}
				]
			}
		]
	},
	"profile": {
        "font": "JetBrains Mono NL Regular 9"
	}
}

@FernandoBasso
Copy link
Contributor

Just pushed the initial PR, work is still in progress. #214

I put some json files in here: https://github.com/dvdlevanon/terminator/tree/layout-json-file/layout-files-examples

That branch doesn't exist anymore, it seems. Here's a link to @dvdlevanon's master branch which currently also contains the examples.

Thanks a lot for this work, @dvdlevanon. Much appreciated!

@mattrose
Copy link
Member

These are in the repo. https://github.com/gnome-terminator/terminator/tree/master/data/layout-files-examples

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants