-
Notifications
You must be signed in to change notification settings - Fork 257
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
[Feature request] move layout/session definitions into separate files with a dedicated extension in a dedicated directory #604
Comments
This is already possible using the --config-json flag in 2.1.0. JSON may not be the best language, but it's there now. I can take a look at merging configobj objects from different file sources, but I don't have a lot of spare time right now. PRs are always welcome. |
I'm trying to adapt some of these json layout file examples and I wondered, is there available syntax to give each pane its own title, working directory, and profile assignment from existing profile names in the global config file, as well as to give the application window a title and maximized state, and to define the last active pane? For example, I'm trying to convert every attribue from the below snippet from my global config file into json: [[3-tab-generic]]
[[[child0]]]
type = Window
parent = ""
order = 0
position = 58:29
maximised = True
fullscreen = False
size = 1862, 1051
title = Terminator: 3 tab generic layout window
last_active_window = True
[[[child1]]]
type = Notebook
parent = child0
order = 0
labels = 2 cols, 2 rows, one pane
last_active_term = f8e2958e-273c-4016-86c9-c433c70c17e0, 2eb0ee62-b18c-45e7-8553-19ef79c08d5c, b5bcf7c1-e588-4ade-b723-bd7372d91a2f
active_page = 2
[[[child2]]]
type = HPaned
parent = child1
order = 0
position = 928
ratio = 0.5002695417789758
[[[terminal3]]]
type = Terminal
parent = child2
order = 0
profile = default
title = left
uuid = f8e2958e-273c-4016-86c9-c433c70c17e0
directory = /usr/share
[[[terminal4]]]
type = Terminal
parent = child2
order = 1
profile = ambience
title = right
uuid = ae934e50-069b-4d22-89d1-029c149b8fc0
directory = /usr/share
[[[child5]]]
type = VPaned
parent = child1
order = 1
position = 505
ratio = 0.5009920634920635
[[[terminal6]]]
type = Terminal
parent = child5
order = 0
profile = default
title = top
uuid = 2eb0ee62-b18c-45e7-8553-19ef79c08d5c
directory = /usr/share
[[[terminal7]]]
type = Terminal
parent = child5
order = 1
profile = ambience
title = bottom
uuid = 24bee835-2b63-4461-8094-5efce084cccb
directory = /usr/share
[[[terminal8]]]
type = Terminal
parent = child1
order = 2
profile = default
title = single
uuid = b5bcf7c1-e588-4ade-b723-bd7372d91a2f
directory = /usr/share |
Never mind on my last question, I'm just going to use complete and separate normal (INI) config files, rather than mess with JSON. |
Is your feature request related to a problem? Please describe.
In particular I'd like to be able to define a layout for a specific programming project. So this layout may or may not be ephemeral, and has less to do with the configuration of terminator and more to do with my programming project. Moreover, I'd like to be able to store the layout file in or closer to my programming project's directory, akin to a vscode workspace file or Sublime Text project file. Then I would put a symlink to my programming project-specific layout (temporary or not temporary) in the new default directory terminator would look in for one or more layout/session files. If the programming project is ever considered permanently finished, all I have to do is delete a symlink in terminator's proposed layouts files subdirectory.
I'm not currently asking for any other changes to the concept of layouts, whether in the syntax, or in the graphical UI for saving new layouts in preferences, or invoking them for the layout launcher, or command line options.
Describe the solution you'd like
Just take the existing layout definition concept, but move it out of the config file. Allow one or more layout defintion files, including the default layout if none is explicitly specified. One file should only contain one layout. By default have terminator look for these files in
.config/terminator/layouts
(or maybe "sessions" instead of "layouts" ... I haven't read them but I noticed another issue where someone requests that layouts have additional functionality akin to saved session state, but at a minimum I just seek to have the existing layout functionality, only divided out into discreet files and a default subdirectory).It seems like terminator configuration syntaxy is mostly like
.ini
files, is that correct? Then perhaps the new layout files (or symlinks to them, if they are stored outside of the proper layouts subdirectory) would have.ini
extensions and would be ignored by terminator otherwise.Describe alternatives you've considered
I like that Tilix has session definition files, but I don't like that by default it doesn't seem to look in a specific, predictable place for them. Moreover, creating a
.desktop
launcher to open Tilix with a specific session (layout) sometimes works and sometimes does not work. Terminator is more reliable and predictable in this regard. Moreover, I don't think JSON was ever intended to be used for configuration files (e.g., you cannot even put comments in JSON files), so I don't like that Tilix opted for this file type.Additional context
Add any other context or screenshots about the feature request here.
The text was updated successfully, but these errors were encountered: