[konsole] [Bug 455143] Feature Request: Expanded JSON Layout Configuration

shellsmoke bugzilla_noreply at kde.org
Fri Jul 15 17:52:18 BST 2022


https://bugs.kde.org/show_bug.cgi?id=455143

--- Comment #2 from shellsmoke <smokeintheshell at gmail.com> ---
(In reply to tcanabrava from comment #1)
> Created attachment 149645 [details]
> attachment-32408-0.html
> 
> This is a really nice idea. I’ll implement this week, thanks for the heads
> up.
> 
> On Sat, 11 Jun 2022 at 01:17 shellsmoke <bugzilla_noreply at kde.org> wrote:
> 
> > https://bugs.kde.org/show_bug.cgi?id=455143
> >
> >             Bug ID: 455143
> >            Summary: Feature Request: Expanded JSON Layout Configuration
> >            Product: konsole
> >            Version: unspecified
> >           Platform: Other
> >                 OS: Linux
> >             Status: REPORTED
> >           Severity: wishlist
> >           Priority: NOR
> >          Component: split-view
> >           Assignee: konsole-devel at kde.org
> >           Reporter: smokeintheshell at gmail.com
> >   Target Milestone: ---
> >
> > Created attachment 149605 [details]
> >   --> https://bugs.kde.org/attachment.cgi?id=149605&action=edit
> > Konsole Session Generated example JSON
> >
> > It appears that currently, Konsole only supports the number and
> > orientation of
> > window splits in a JSON file format with the --layout commandline option.
> > While
> > most of the features requested below can be controlled for automation
> > purposes
> > with dbus, using dbus commands requires a steeper learning curve for the
> > end
> > user, creates issues with portability between systems, and can cause issues
> > with script readability (one user writes a bash script one way, while other
> > people might write it another). There are additional security concerns
> > with the
> > runCommand and sendText dbus methods, though Konsole already supports
> > executing
> > commands in a new session with the '-e' option. These issues can be
> > alleviated
> > by exposing more of Konsole's configuration and commandline options via
> > JSON.
> >
> > 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,
> > as there is just a first '"Orientation": "Horizontal"' for the beginning
> > of the
> > first split). 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:
> >
> > {
> >         "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
> >
> > --
> > You are receiving this mail because:
> > You are the assignee for the bug.
(In reply to shellsmoke from comment #0)
> Created attachment 149605 [details]
> Konsole Session Generated example JSON
> 
> It appears that currently, Konsole only supports the number and orientation
> of window splits in a JSON file format with the --layout commandline option.
> While most of the features requested below can be controlled for automation
> purposes with dbus, using dbus commands requires a steeper learning curve
> for the end user, creates issues with portability between systems, and can
> cause issues with script readability (one user writes a bash script one way,
> while other people might write it another). There are additional security
> concerns with the runCommand and sendText dbus methods, though Konsole
> already supports executing commands in a new session with the '-e' option.
> These issues can be alleviated by exposing more of Konsole's configuration
> and commandline options via JSON.
> 
> 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, as there is just a first '"Orientation": "Horizontal"' for
> the beginning of the first split). 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:
> 
> {
> 	"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


Awesome, I would be happy to help in testing test once implemented.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the konsole-devel mailing list