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

open workspace specification ("session support" / "split more flexible" / ...) #274

Closed
cbucher opened this issue Sep 20, 2015 · 31 comments
Closed

Comments

@cbucher
Copy link
Owner

cbucher commented Sep 20, 2015

This is an open specification for workspace.
It is impossible to restart a shell in the exact same state. (That's why I prefer "workspace" instead of "session".)
A workspace is limited to describe opened tabs, split configuration.
There are also some missing in tab splitting.

Specification should consider:

  • separate shell settings from tab settings
  • allow distinct shells in a split tab (Split more flexible #17)
  • design a creator of workspace (and/or just save the current workspace in a specified file)
  • specify the workspace(s) in command line
  • allow auto backup/restore of current workspace when application closes/starts
@DerellLicht
Copy link

I will certainly act as a tester for this project

@DALDEI
Copy link

DALDEI commented Oct 14, 2015

I've been looking for about 10 years for a decent 'console' front end to Java applications.
This may well be what I'm looking for.
The first project that would benifit is 'xmlsh' ( https://github.com/DALDEI/xmlsh )
I dont know if you have experience with Java 'console' apps -- but they are horried. The JVM does some magic tricks to the console that render it nearly useless. I'm currently using the Java 'jline' library for windows as an option, but it is problematic. I would love to be involved in integrating and/or building a Java integration to a decent native console application.

@cbucher
Copy link
Owner Author

cbucher commented Oct 17, 2015

I would love to be involved in integrating and/or building a Java integration to a decent native console application.

a reminder:
ConsoleZ is not a shell.
ConsoleZ is a wrapper for Windows console applications.

You can write here your needs and ideas.

@DerellLicht
Copy link

Well, I don't know about java integration, but I do sincerely wish for session support, defined as remembering my current console list when I close ConsoleZ, and restoring it automatically next time I open it. It doesn't matter to me what the implementation is named, as long as this functionality is provided.

Frankly, char101's implementation works superbly, and I am using that now. The only problems with it are that Aero style is not available, and the fact that since it isn't being integrated into main project, I won't be able to update ConsoleZ in the future.

I truly wish you would reconsider your position on that branch. Theoretical desire for a written specification is wonderful, in concept, but typically what an outside user cares about is functionality.

@cbucher cbucher changed the title workspace specification open workspace specification ("session support" / "Split more flexible") Feb 10, 2016
@cbucher cbucher changed the title open workspace specification ("session support" / "Split more flexible") open workspace specification ("session support" / "split more flexible" / ...) Feb 10, 2016
@leendek
Copy link

leendek commented May 2, 2016

It would be nice if ConsoleZ could startup with some commands already executed. That would really improve the startup of my web development. Something like this (even if the commands were only entered instead of executed, that would be a huge timesaver):
startup
Saving an existing session/workspace for future re-use seems the most user friendly.

@cbucher
Copy link
Owner Author

cbucher commented May 3, 2016

@leendek like ConsoleZ -r command line option?

@leendek
Copy link

leendek commented May 7, 2016

@cbucher idd, but can I use that to open a split tab? If I run this now (console -t ConsoleZ -r "/k ping www.google.be" -t ConsoleZ -r "/k ipconfig"), I get 2 different tabs.

@devicenul
Copy link

I'd really love to have this functionality. Is this feature development dead?

@DerellLicht
Copy link

The reality is, the author was never very interested in this feature; he only started poking at it because someone else (char101) had actually gotten an implementation mostly working, and author didn't want to accept his commits.

Actually, there's another alternative called ConEmu which does have this feature, very well implemented, and I've switched to that program for months now. It's got a bit of a learning curve when coming from ConsoleZ, but it's very stable, and author is very supportive (if a bit terse in email exchanges).

I don't think we will ever see sessions support in ConsoleZ, though I'd be happy to be proven wrong!

@devicenul
Copy link

Awesome. I've tried searching for a console client that would do this a few times but it never quite found the one that proclaimed support for it and only so many hours in the day to search for tool instead of actually using them. I'll give ConEmu a look.

@cbucher
Copy link
Owner Author

cbucher commented Nov 19, 2016

I'm waiting for help on specifications since more than one year now.
I grouped multiple features because I think they are linked and should be coded together. Developing them separately could be a waste of time by rewriting parts of code and inducing regressions between these features.
"allow auto backup/restore of current workspace when application closes/starts" was the last feature to develop, you must have workspace before automatically save them. That's one reason why I didn't accept char101 pull request.
I haven't seen a real interest for a complete big feature.

I don't think we will ever see sessions support in ConsoleZ, though I'd be happy to be proven wrong!

Help to write some specifications, perhaps you will be happy 😉

@DerellLicht
Copy link

Hi Christophe; thank you for responding to this thread.
To be honest, though, I am not a technical writer, I am only a software
engineer. I don't have any idea what you are thinking about when you
get into workspaces... what I want, is for the program to remember what
tabs I have open, including their current subdirectory, when I close the
program, and then automatically load those same tabs and directories later.

NOTE: this is a complete, thorough, implementable description of
everything that I want in this feature, and I predict that it is exactly
what everyone else wants when they ask for this feature. ConEmu handles
it perfectly; when ConEmu is closed, it saves a list of all the current
tabs and their directories, and when the program is restarted, it
re-opens all the previous tabs in the directories that they were in.

Frankly, that's exactly what Char101's code did too, though
unfortunately it had a major bug in it... when I tried to contact him
later to discuss the topic, he told me that he had abandoned the effort
because the project manager (that would be you) rejected his work; he
had switched to ConEmu.

I would be very happy to switch back to ConsoleZ someday; I think it is
more intuitive and easier to use than ConEmu... but until save/restore
sessions is implemented, it isn't going to happen. And waiting for
people to "collaborate with you" on a "product specification", is just a
way to say "I don't want to spend time on this feature", at least in
this case. Nobody is going to form an IEEE study group for this, we
just want a (relatively) simple feature implemented.

Derell Licht

On 11/19/16 14:29, Christophe Bucher wrote:

I'm waiting for help on specifications since more than one year now.
I grouped multiple features because I think they are linked and should
be coded together. Developing them separately could be a waste of time
by rewriting parts of code and inducing regressions between these
features.
"allow auto backup/restore of current workspace when application
closes/starts" was the last feature to develop, you must have
workspace before automatically save them. That's one reason why I
didn't accept char101 pull request.
I haven't seen a real interest for a complete big feature.

I don't think we will ever see sessions support in ConsoleZ,
though I'd be happy to be proven wrong!

Help to write some specifications, perhaps you will be happy 😉


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
#274 (comment), or
mute the thread
https://github.com/notifications/unsubscribe-auth/AFS19gAb_424wJDHOySaWu1Vlwyf5jaeks5q_3hPgaJpZM4GAd70.


This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus

@cbucher
Copy link
Owner Author

cbucher commented Nov 21, 2016

image

@cbucher
Copy link
Owner Author

cbucher commented Nov 21, 2016

And waiting for people to "collaborate with you" on a "product specification", is just a way to say "I don't want to spend time on this feature", at least in this case. Nobody is going to form an IEEE study group for this, we just want a (relatively) simple feature implemented.

😞 This is so stupid... I opened myself this issue ❗️ (#260 (comment))
I understand, you just want the last feature in the list. That's okay. But don't be selfish and don't considerate that everyone is like you.
Personally I don't understand the gain with an automatic backup/restore of the last instance of ConsoleZ... But I don't considerate that everyone is like me.
I really want to be able to mix shells in a same tab.

Why I didn't merge the pull request?
The discussion between you and char101 indicated that code was not working...

So please:
If you don't know how to be constructive, just do not comment...

cbucher added a commit that referenced this issue Nov 21, 2016
@DerellLicht
Copy link

Yes, I know you opened it yourself, but then after that, (at least, it appeared to me) that you just dropped it because others weren't submitting suggestions for a "product specification". I really wanted this feature, but had no idea what would be involved in creating a formal spec for it, and it didn't appear that anyone else did either, judging from the inputs on the other (now closed) topics. All I could do was describe what I wanted... I also offered to act as a tester if you developed prototypes, but then nothing else followed.

ITM, Char101's version really did work, very nicely indeed!! Yes, it had a major bug (if user rebooted Windows with the program open), but it likely would have been very easy to fix, easier (most likely) than re-writing some other solution. I was sad that he abandoned it.

@DerellLicht
Copy link

DerellLicht commented Nov 22, 2016

On a separate topic, I've been trying to figure out what your post with the images was saying, but I think I understand now; I think you're asking "how do I handle multiple consoles if user has specified different background images for different shells?"... I'm very glad I don't have to figure that out!! However, I think that's less an issue for the save/restore function, than just for the program's operation itself... Very complicated... does the user really want different background image for each tiled shell, or one image spread across them all? I've never thought about that, because the few times I've tried using transparency and background images, I felt it made the console almost unreadable!! You would need input from someone who uses them.

And also, if you started working on this feature at some point, I'll re-iterate that I would be happy to act as a beta tester for the prototypes.

@cbucher
Copy link
Owner Author

cbucher commented Nov 22, 2016

My first idea to handle the mix of shells into a same tab was to separate shell settings from tab settings. But this is a big modification including settings structure.

Tab settings remain unchanged.
Tab settings are used to defines:

  • tab's background
  • shell's command line, starting directory and environment variables
  • view's icon, cursor and colors

The actual command "new tab XXX" creates a new tab (using XXX settings) and creates a new view (using XXX settings) and launches a new shell (using XXX settings).

The actual command "split horizontally/vertically" creates a new view (using XXX settings) and launches a new shell (using XXX settings).

The future command "split horizontally/vertically using other tab YYY" creates a new view (using YYY settings) and launches a new shell (using YYY settings).

image

There is an example of xml file used to define a workspace. Xml is chosen for consistency: settings and snippets are already in xml.

<?xml version="1.0" encoding="utf-8"?>
<ConsoleZWorkspace>
	<Tab Title="tab1"
	     Name="my first tab">
		<View Title="tab1" CurrentDirectory="C:\perso" />
	</Tab>
	<Tab Title="tab2"
	     Name="my second tab">
		<SplitView Type="Horizontal" Ratio="50%">
			<Pane0><View Title="tab2" CurrentDirectory="C:\perso" BasePriority="BelowNormal" /></Pane0>
			<Pane1><View Title="tab4" CurrentDirectory="C:\perso\yolo" /></Pane1>
		</SplitView>
	</Tab>
	<Tab Title="tab3"
	     Name="my third tab">
		<SplitView Type="Vertical" Ratio="70%">
			<Pane0><View Title="tab3" CurrentDirectory="C:\perso" /></Pane0>
			<Pane1><View Title="tab3" CurrentDirectory="C:\perso\yolo" /></Pane1>
		</SplitView>
	</Tab>
</ConsoleZWorkspace>

@cbucher
Copy link
Owner Author

cbucher commented Nov 23, 2016

I'm not sure for icon, cursor and colors. Which property should be affected to tab (aka common to all the views present in the tab) or to the view?

@DerellLicht
Copy link

Wow, I don't have any ideas on any of those... I tried split consoles once, really didn't like it; I prefer all my consoles to be as large as possible!! So I don't have any experience with them. I think trying to retain any color scheme other than "all consoles use same colors", would get very complicated very quickly.

cbucher added a commit that referenced this issue Dec 5, 2016
- tab (background image, colors and cursor)
- shell (shell, runas, icon, environment vars)
@cbucher
Copy link
Owner Author

cbucher commented Dec 10, 2016

@DerellLicht
Copy link

Well, this appears to be usable. Is there a way to auto-load a given workspace? That would be desirable. I tried "consolez workspace_filename", but that did nothing.
For now, it appears that I need to start up with my home directory, then load the workspace, which will give me another copy of my home directory, plus all other directories that I had at the previous save.
It's not ideal, but it's certainly usable.

What would be ideal, I think, would be to have auto-save/auto-load options. If I enable auto-save, then when I close ConsoleZ, it saves the current workspace. Next time I load with no arguments, it auto-loads that previous workspace.

That is what ConEmu does; at first, I wasn't sure that was really how I wanted a console aggregator to work, but now it's hard to imagine living without it!! Whatever project that I'm currently working on, next time I reboot and start the program, I'm right back where I started!! It's pretty awesome.

ITM, I'll continue using this ConsoleZ release, both here and at work (where I have 32-bit Win7, believe it or not!!)... I'll let you know if anything odd happens.

@cbucher
Copy link
Owner Author

cbucher commented Dec 11, 2016

Progress tracking:

  • separate shell settings from tab settings
    Tab settings remain unchanged. But distinct tab settings can be associated to tab view and any console view.
  • allow distinct shells in a split tab (Split more flexible #17)
    By editing a workspace file! Worspace files are xml files.
  • design a creator of workspace (and/or just save the current workspace in a specified file)
    By saving current workspace and/or editing workspace file.
  • specify the workspace(s) in command line
  • allow auto backup/restore of current workspace when application closes/starts

@cbucher
Copy link
Owner Author

cbucher commented Dec 11, 2016

I'm not sure for icon, cursor and colors. Which property should be affected to tab (aka common to all the views present in the tab) or to the view?

Tab settings are used to configure two things:

  • tab (background image, colors and cursor)
  • shell (shell, runas, icon, environment vars)

cbucher added a commit that referenced this issue Dec 11, 2016
cbucher added a commit that referenced this issue Dec 12, 2016
@dmiller2
Copy link

dmiller2 commented Dec 12, 2016

Confirmed, 32-bit version (non-legacy) works fine as well.

I'm very happy with this save/restore mechanism, works very nicely.
While auto-save/auto-restore would be ideal, this is powerful enough to make me happy now!!
And it's wonderful to have ConsoleZ back!

(BTW, this post came from DerellLicht, just have different name at work...)

cbucher added a commit that referenced this issue Dec 13, 2016
@cbucher
Copy link
Owner Author

cbucher commented Dec 14, 2016

Thanks for your feedback. I will build a new experimental version soon.

@cbucher
Copy link
Owner Author

cbucher commented Dec 15, 2016

@DerellLicht
Copy link

DerellLicht commented Dec 15, 2016

Okay, program version 1.18.0.16349 seems to work, at least as well as previous build.
"Store workspace on exit" works beautifully!! Thank you!!

I'm still having problems with tab naming on reload; see my post from yesterday.

Thank you for your excellent work!!

hmmm... later note:
I also don't seem to be able to de-select "Save settings to user directory" any more, I was able to on the previous experimental build. If I de-select that setting, close and re-open ConsoleZ, all of my new settings are discarded, including "Save settings to user directory". This is true with both 32-bit and 64-bit builds.

@cbucher
Copy link
Owner Author

cbucher commented Dec 15, 2016

You must move or delete the backup-ed configuration file (bak file in %appdata%\console).

@DerellLicht
Copy link

Ahh!! Yes, that solved the "save settings" issue, thank you!!

the tab-naming issue, however, remains.

That's about all, though... everything else seems to be working very nicely...
Mind you, I don't use the tiled consoles, so haven't been testing that...

@cbucher
Copy link
Owner Author

cbucher commented Dec 15, 2016

Tab title has not be designed to be empty. I don't understand what you want to do.

cbucher added a commit that referenced this issue Dec 19, 2016
CloseSettings moved from BehaviorSettings to BehaviorSettings2 (need more height in dialog)
cbucher added a commit that referenced this issue Dec 19, 2016
…rkspace or tab are specified in command line)
@cbucher cbucher added this to the 1.18.0 milestone Dec 29, 2016
@cbucher cbucher self-assigned this Feb 5, 2017
@cbucher
Copy link
Owner Author

cbucher commented Feb 5, 2017

I deleted some comments unrelated to this discussion but related to "Question about tab naming..." #395

@cbucher cbucher closed this as completed Feb 14, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants