Closed ghost closed 5 years ago
@chilimangoes Since you're working on the grids already, you want to take this one?
Sure, can you assign it to me? I'd like to give the command usage a bit more thought though. @Zone22 can you give a couple examples of what you'd like to do and how you think the commands would be?
All right @chilimangoes, imagine using your mouse to select multiple icons on your desktop. This is performed by right clicking and holding down the button on the mouse. Then dragging the mouse to the desired size grid containing the icons.
The Castor equivalent for the desktop could achieve the same effect creating the desired grid size by saying rainbow + select + (color) + (number)
Atom can use the desktop method for traditional selecting of text or the block style of selecting text.
The block style is similar to Sublime text 2 selection. In Atom create the desired grid size by saying rainbow + block + (color) + (number)
The key and mouse combinations for Adom to achieve block style selection. (alt-hold + right mouse click-hold)
I can't think of a better command word then 'block' for selection in Atom although I want to keep it to one word and as few syllables as possible. Suggestions are definitely welcome.
@Zone22 I'm not sure I understand what you're saying about Atom. The grids are not integrated with IDEs. Are you simply commenting on how you would be able to use this feature with Atom's existing functionality, or are you asking for more than the initial description?
@synkarius I understand grids are not integrated in to the IDEs both commands would have to be registered globally. Unless if you can think of a better solution. I'm describing two commands one of which is a windows default function as described in the desktop example using the standard (right mouse click hold) then drag mouse. That can be used in any application that supports it.
The second command is a block style selection unique to Atom requires a different key combination (alt-hold + right mouse click-hold) and command name but for all intensive purposes functions the same as a windows default function. What I mean by it functions the same is the implementation is the same, key combinations are made followed by a click and hold. Block style selects a block of text or code geometrically\grid instead of by text wrap.
rainbow + command name + key and mouse button combinations + (color) + (number)
I guess I should've edited my initial post on not asking for really anything more except for two separate commands instead of one. In my initial post I did not consider that if there's two different keyboard shortcuts would need different command names if they were in the same context such as global.
I get it now. Thanks for the clarification.
If you would prefer not to have a program specific command registered globally I understand. In that case for the time being just implement the 'rainbow + select + (color) + (number)' windows function.
@Zone22 OK, I understand what you're asking for now. However, rather than creating specific commands for each scenario, I would favor creating a more limited set of commands that can be composed together to accomplish a wide variety of tasks. For example, to accomplish the block highlight in Atom, you might say the following sequence of commands:
This is a bit longer than what you were proposing, but has the advantage of being generic, and I think that not having to say both the start and end point in one phrase might reduce cognitive load a bit as well.
We could have an assortment of commands to use in the grids, such as:
[alt] [shift] [control] kick
[alt] [shift] [control] drag
And maybe some others. What do you think?
I also had some ideas at work this week about basically setting mode position "markers" that could be recalled and used in other commands later. So you might say "red 24 set mark 1" then "purple 79 set mark 2" then "drag 1 drop 2" or "yellow 65 drop 2". These marker positions would persist, like the sticky lists, and you could have a command like "show markers" to overlay the markers on the screen.
@chilimangoes I'll post my thoughts later tonight when I more time to post. So far so good though.
@chilimangoes I like your idea of having a limited set of commands that that can be combined for a variety of tasks. But defining commands each time you form a grid takes too much time my personal opinion. Therefore I slightly tweaked version of your suggestion.
Think of two commands. One of which simply is windows default function as described in the desktop example. (right mouse click hold). This command will most likely be used due to the fact that it's commonly supported in programs. Could be [rainbow select red 15 to green 30]
I like how you laid out the command as a generic set of commands. The second command example could be [rainbow alternate...] it function as you describe in your suggestion. In addition, the ability to 'Set 'that command similar to 'set format command' would be invaluable. For instance [rainbow alternate red 15 to green 30] would recall the combination of assorted commands previously or last 'set'.
Between these two commands I think this allows for the maximum speed and utility with the minimum amount of formatting per use. Thoughts?
I love the drag drop concept persistent markers. I can't think of any improvements.
@Zone22 I don't understand what you're proposing.
Second paragraph, what do you mean by "right mouse click hold"? I'm not familiar with any use cases that require holding down the right mouse button on a target. Do you mean dragging from point A to point B with the right mouse button held down? This would seem to be the case based on your later usage of "rainbow select red 15 to green 30." If so, would "red 15 drag green 30" (or possibly "drag red 15 [to] green 30" work for you? I feel like this phrasing is more generic.
Third paragraph, I don't understand what you're suggesting with "rainbow alternate."
Regarding the second paragraph, I meant 'left mouse click hold' describing buttons pressed with mouse and keyboard which would also include the action 'drag'. As for phrasing it depends how you view what is generic 'drag' is more descriptive of the action where 'select' is descriptive of the function. It could go either way. I don't really have a preference.
Regarding the third paragraph. The proposed assortment of commands '[alt] [shift] [control] drag' and any other additions you see fit. if I understand your example it would function like this:
'rainbow + red 26 (set starting point, but don't close grid) + [assortment of commands] + yellow 78'
An slightly revised version of your example would look like...
rainbow + alternate + red 26 (set starting point, but don't close grid) + [assortment of commands] + yellow 78'
Notice it's a bit longer having 'alternate' in the command . This is to differentiate 'rainbow + drag/select from the 'rainbow + alternate' or whatever command we choose use of the word 'alternate'.
My example functions functions very much like the example you gave with one defining difference. That defining difference is [assortment of commands] can be persistent or remembered between uses of the 'rainbow + alternate...' command.
I can picture this happening in two different ways.
set + grid + [assortment of commands]
Then if I were to use the 'rainbow + alternate' command it would have the assorted commands that have been set above implied. The command would look like the following.
rainbow + alternate + red 26 (set starting point, but don't close grid) + yellow 78'
Notice that there are not an [assortment of commands] which we previously defined as '[alt] [shift] [control] kick/drag'. That's because they're implied because they are persistent by the (set + grid...) command.
'rainbow + alternate + red 26 (set starting point, but don't close grid) + [assortment of commands] + yellow 78'
Then say
'rainbow + alternate + red 26 (set starting point, but don't close grid) + yellow 78'
The [assortment of commands] uttered in the first command are assumed and persist in the second utterance of the command if [assortment of commands] are not defined in the second utterance.
I hope that clarifies things and if you have any questions ask.
Let's lock this down to its original status: the ability to drag from one square to another using the rainbow grid. Modifier keys on click/drag, other mouse buttons, etc., are good ideas, but should be opened as separate issues. Setting / using markers falls within the scope of this item.
@synkarius I'm OK with that, but weren't modifier keys and other mouse buttons part of the original request? From my reading of the first post, @Zone22 seems to have originally been asking for drag functionality with the alt key modifier and right-click drag.
Hmm. Reading the original comment again, I guess you're right. Alright, nevermind. What I mistook for feature creep was just a lot of clarification.
I need to work on clarity and fully expressing my thoughts. I'll ship some aspirin for all the headaches i'v caused, if you guys give me your address :-). I appreciate the patience that you guys have had in this regard.
Originally I assumed the modifiers would be hardcoded. @chilimangoes idea about taking a more generic approach with optional modifiers is a superior implementation that adds utility and flexibility.
No worries, @Zone22. Glad to have your ideas and input, even if it takes a bit sometimes, haha.
@Zone22 I think I've got a pretty good idea what you're looking for now. I'll come back to this once I've got the new grid code ready to PR (it's basically done).
@chilimangoes Is your code ready for PR?
Implemented via https://github.com/dictation-toolbox/Caster/pull/501. Docs here: https://caster.readthedocs.io/en/latest/readthedocs/Mouse/
The rainbow command to select a grid on the screen by (right mouse click hold) such as the desktop or (alt-hold + right mouse click-hold) in Atom' Command example [select red 15 to green 30]