Feature Request: Expanded Layout JSON Configurations
It appears that currently, Konsole only supports the number and orientation of window splits in a JSON file format with the --layout commandline option. My suggestion/feature request is to expand the JSON configuration to encompass the following:
Publicly exposed DBus methods and properties for the org.kde.konsole
endpoint:
- org.kde.konsole.Session.setTitle
- org.kde.konsole.Session.setTabTitleFormat
-
- There are two Title and TabTitleFormat properties controlled by the above two methods. I've accounted for this in my example below
- org.kde.konsole.Session.setProfile
- org.kde.konsole.Session.sendText
- org.kde.konsole.Session.runCommand Split pane sizing with either "HEIGHTxWIDTH" or separate HEIGHT and WIDTH properties. Window configurations such as window size and view-enabled plugins.
The JSON formatting should be easy and simple to read and configure, and KDE Konsole documentation should be updated to include its usage. To assist in ease of formatting and standardization, I propose having all splits be separated by their left-right (horizontal) top-bottom (vertical) orientation (current behavior) to include the first split (Konsole Session 1. Not current behavior). Additionally, all Konsole window settings, such as Window size, should be declared at the top of the JSON config file.
An example of what this JSON configuration file might look like is below (comments with a # are simply to assist in following the json config with the screenshot):
{
"WindowSize" : "Maximized",
"Plugins": ["SSHManager", "Plugin2"],
"Splits": [
{
# First Split on far left
# session 1
"Orientation": "Horizontal",
"SessionRestoreId": 0,
"TabTitleLocal": "Local Tab Title"
},
{
# Second split to right
"Orientation": "Vertical",
"Widgets": [
{
# Top
# session 2
"SessionRestoreId": 0,
"TabTitleFormatLocal": "%d : %n"
},
{
# Bottom
# session 3
"SessionRestoreId": 0,
"TabTitleFormatRemote": "%U%H"
}
]
},
{
# Third split to right
# session 4
"SessionRestoreId": 0,
"TabTitleRemote": "Remote Tab Title",
"Profile": "KonsoleProfile1"
},
{
# Fourth Split to far right
"Orientation": "Vertical",
"Widgets": [
{
# top
# session 5
"SessionRestoreId": 0,
"SendText": "# echo send text"
},
{
# middle
# session 6
"SessionRestoreId": 0,
"RunCommand": "echo run command"
},
{
# bottom
# session 7
"SessionRestoreId": 0,
"PaneSize": "64x30"
}
]
}
]
}
A Screenshot of the resulting Konsole window from the example configuration I'm suggesting would look like the attached screenshot