Text-Editing UI

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

Text-Editing UI

Alex Landraitis
Hello. I would like to modify the text-editing UI in Pharo to add some affordances I’m accustomed to from MacOS. Specifically, right now command(a.k.a. meta)-left/right-arrow moves one word left/right in Pharo, whereas on MacOS this is done with the option(a.k.a. alt)-key, and command-left/right-arrow moves to the start/end of the current visual line. Another MacOS convention I use a lot and would like in Pharo is triple-click to select a whole paragraph. And if I can implement that, I would also like to disable the corresponding Pharo convention (double click at the start or end of the paragraph).

Some smaller things that I’m also not used to: When moving the text cursor one word at a time, Pharo treats white space as words, whereas MacOS skips over white space. Conversely, when double-clicking to select a whole word, MacOS treats white space between words like a word, whereas Pharo selects the adjacent word.

So anyway, I’m wondering what I would have to modify to customize these UI conventions. I didn’t see anything relevant in the settings browser. (There was a "Skip over white space” option under "Text Editing," but it didn’t affect how the move-cursor-one-word-at-a-time keystrokes work, so I don’t know what it does.) Does anyone have any pointers on where these behaviors are encoded in the system? Or if someone has already posted a package for customizing this sort of thing?

     Alex Landraitis
Reply | Threaded
Open this post in threaded view
|

Re: Text-Editing UI

Stéphane Ducasse
Hello Alex

Hello. I would like to modify the text-editing UI in Pharo to add some affordances I’m accustomed to from MacOS. Specifically, right now command(a.k.a. meta)-left/right-arrow moves one word left/right in Pharo, whereas on MacOS this is done with the option(a.k.a. alt)-key, and command-left/right-arrow moves to the start/end of the current visual line.

We would love you to be able to do it. 

Another MacOS convention I use a lot and would like in Pharo is triple-click to select a whole paragraph. And if I can implement that, I would also like to disable the corresponding Pharo convention (double click at the start or end of the paragraph).
For the tripple-click I do not know. 

Now if you want to try use the headless vm (because we are introducing SDL20 as a backend to capture event and expose them to the user
so you will be able to get all the events from the OS and not some as it was previously the case) and ask. 
Using SDL20 we were able to implement several gesture recognition in the past. 

Some smaller things that I’m also not used to: When moving the text cursor one word at a time, Pharo treats white space as words, whereas MacOS skips over white space. Conversely, when double-clicking to select a whole word, MacOS treats white space between words like a word, whereas Pharo selects the adjacent word.

Yes Pharo could really improve from that perspectiv. If you provide a fix we will really look at it and probably accept it. 
At some point we want to have move to the end of the next word. :)

So anyway, I’m wondering what I would have to modify to customize these UI conventions. I didn’t see anything relevant in the settings browser. (There was a "Skip over white space” option under "Text Editing," but it didn’t affect how the move-cursor-one-word-at-a-time keystrokes work, so I don’t know what it does.) Does anyone have any pointers on where these behaviors are encoded in the system?

Check the keymapper.
And what you should know is that we are not happy with the text editor (Rubric was never made to stay). 

Or if someone has already posted a package for customizing this sort of thing?

    Alex Landraitis

--------------------------------------------
Stéphane Ducasse
03 59 35 87 52
Assistant: Aurore Dalle 
FAX 03 59 57 78 50
TEL 03 59 35 86 16
S. Ducasse - Inria
40, avenue Halley, 
Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
Villeneuve d'Ascq 59650
France

Reply | Threaded
Open this post in threaded view
|

Re: Text-Editing UI

tbrunz
It might be best to have this be configurable/customizable for each user
(which is what I think you're getting at).

The question is what should the default "out of the box" behavior be?  There
are conventions, although they're not exactly "standardized" (as they should
be).  

Most of us have "muscle memory" for many of these operations: Go forward one
word, select a paragraph, expectations of where the cursor will be when you
go forward/backward word-by-word, etc. and I don't think anyone enjoys
having to learn a different way for every tool they use.

So the default probably should follow the most common conventions, while
still allowing a fairly easy way to change it to suit each user.  

The best approach might be to have the default adapt itself automatically to
the platform the VM is running on, so that Windows users get Windows
conventions, Mac users get Mac conventions, Linux users get Linux
conventions.

-t



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html

Reply | Threaded
Open this post in threaded view
|

Re: Text-Editing UI

Russ Whaley
+1 - platform specific defaults.

Also, is there any document anyone can point me to on why Pharo is not viable for iOS?  I have an iPad Pro and I'd LOVE to be able to code/test and run my apps when I travel... my old MacBookPro is getting long-in-the-tooth.

On Sun, Aug 2, 2020 at 1:01 PM tbrunz <[hidden email]> wrote:
It might be best to have this be configurable/customizable for each user
(which is what I think you're getting at).

The question is what should the default "out of the box" behavior be?  There
are conventions, although they're not exactly "standardized" (as they should
be). 

Most of us have "muscle memory" for many of these operations: Go forward one
word, select a paragraph, expectations of where the cursor will be when you
go forward/backward word-by-word, etc. and I don't think anyone enjoys
having to learn a different way for every tool they use.

So the default probably should follow the most common conventions, while
still allowing a fairly easy way to change it to suit each user. 

The best approach might be to have the default adapt itself automatically to
the platform the VM is running on, so that Windows users get Windows
conventions, Mac users get Mac conventions, Linux users get Linux
conventions.

-t



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html



--
Russ Whaley
[hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Text-Editing UI

tbrunz
Not exactly the answer you're looking for, but...

Take a look at the latest Chromebooks.  They are *awesome*.  Beats iPads &
iOS!

There are "tablet" Chromebooks (the keyboard folds all the way underneath
the touchscreen, and is de-activated), as well as keyboard-detachable
models, as well as "clamshell" ultrabook models.

Otherwise, you have a tablet with a sensible way to type on; many models
have touchscreens anyway.  (Mine does, and I variously use the touchscreen,
the touchpad, and the arrow keys to scroll content.)

Here's the home run:  You can enable "Linux containers" on newer
Chromebooks, and then you can install *any* Linux app in the container.
Yes, including Pharo Launcher.

So you can run Pharo images on Chromebooks, and of course program on your
Chromebook tablets in Pharo.

Save your iPads for watching YouTube..  (Watch your YouTube Pharo tutorials
while you program Pharo on your Chromebook.  :^)



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html

Reply | Threaded
Open this post in threaded view
|

Re: Text-Editing UI

tbrunz
Look at the keyboard -- that's a Chromebook, not a WinTel or Linux laptop.

<http://forum.world.st/file/t372161/Pharo-on-Chromebook_2019-0127.jpg>

That was about a year & a half ago.  



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html

Reply | Threaded
Open this post in threaded view
|

Re: Text-Editing UI

Russ Whaley
In reply to this post by tbrunz
Yes, I played with my daughter's chromebook - was considering doing just what you're suggesting - a few weeks later it died - well not completely - but is finicky enough that she can't use it for her masters work any longer (too unreliable) - so she went back to a 2013 MacBookPro... (they just work).  

I recently bought a new iPad Pro - so after that investment, I'd really like to stick with it :)  I do some drone piloting, guitar playing through my new Spark amp by positiveGrid... and the iPad is the right tool for me.  I could have gone android - but I tired of the constant - which app / device supports which candy-of-the-month... hehe, I digress. 

Mostly, I just want one device that does it all... I could buy a MacBookPro or Air or whatever, but that doesn't work with my drone...  I know, I know... first world problems.

Thanks for the reminder on the Chromebook.  Who knows, I may be back to that in a few months.

On Sun, Aug 2, 2020 at 4:20 PM tbrunz <[hidden email]> wrote:
Not exactly the answer you're looking for, but...

Take a look at the latest Chromebooks.  They are *awesome*.  Beats iPads &
iOS!

There are "tablet" Chromebooks (the keyboard folds all the way underneath
the touchscreen, and is de-activated), as well as keyboard-detachable
models, as well as "clamshell" ultrabook models.

Otherwise, you have a tablet with a sensible way to type on; many models
have touchscreens anyway.  (Mine does, and I variously use the touchscreen,
the touchpad, and the arrow keys to scroll content.)

Here's the home run:  You can enable "Linux containers" on newer
Chromebooks, and then you can install *any* Linux app in the container.
Yes, including Pharo Launcher.

So you can run Pharo images on Chromebooks, and of course program on your
Chromebook tablets in Pharo.

Save your iPads for watching YouTube..  (Watch your YouTube Pharo tutorials
while you program Pharo on your Chromebook.  :^)



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html



--
Russ Whaley
[hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Text-Editing UI

Russ Whaley
In reply to this post by tbrunz
:)  indeed it is

On Sun, Aug 2, 2020 at 4:27 PM tbrunz <[hidden email]> wrote:
Look at the keyboard -- that's a Chromebook, not a WinTel or Linux laptop.

<http://forum.world.st/file/t372161/Pharo-on-Chromebook_2019-0127.jpg>

That was about a year & a half ago. 



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html



--
Russ Whaley
[hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Text-Editing UI

tbrunz
In reply to this post by Russ Whaley
Of course, ask a half-dozen people about this subject and you'll get 6
different responses...

Between myself, my wife, my daughter, family, friends, we've had at least 8
CBs.  None have failed.  My wife is still using (and loving) the 2015 Pixel
LS CB I got 5 years ago.  Not even the battery has degraded.

My daughter used one CB for her entire undergrad program.  (I offered to get
her a "real laptop" before she started as a Freshman, but she insisted she
wanted a CB).  The only thing I needed to do was add Eclipse and the Java
JDK to it for one of her classes.  (The programming nerds in her class were
impressed that she was developing Java on a CB.)

For graduation, I upgraded her to a Pixelbook CB.  I rebuilt her original CB
with GalliumOS -- a Linux distro optimized to run CB hardware.  It's still
running...

Chromebooks run Android, Linux, Chrome apps, Windows apps...  All except Mac
apps.

First-world problems indeed...  And mostly a religious issue.  I'm fine if
you use Apple products.  But I haven't a solution to suggest in that case!

For the record, I have a Pixelbook (the photo), but I also have a DIY tower
and a Dell 7710.  The CB gives me portability + Pharo.

(If you do go back to a CB, just be sure you check the specs: Intel CPU
only, and be sure it can run "Crostini" so you get Linux containers.)



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html

Reply | Threaded
Open this post in threaded view
|

Re: Text-Editing UI

Russ Whaley
Wow! Nice to know there are success stories like yours. When we were having issues and trying to determine which way we should go to, we just couldn’t find good answers on the CB side. Perhaps we should give it another go!

On Sun, Aug 2, 2020 at 5:34 PM tbrunz <[hidden email]> wrote:
Of course, ask a half-dozen people about this subject and you'll get 6
different responses...

Between myself, my wife, my daughter, family, friends, we've had at least 8
CBs.  None have failed.  My wife is still using (and loving) the 2015 Pixel
LS CB I got 5 years ago.  Not even the battery has degraded.

My daughter used one CB for her entire undergrad program.  (I offered to get
her a "real laptop" before she started as a Freshman, but she insisted she
wanted a CB).  The only thing I needed to do was add Eclipse and the Java
JDK to it for one of her classes.  (The programming nerds in her class were
impressed that she was developing Java on a CB.)

For graduation, I upgraded her to a Pixelbook CB.  I rebuilt her original CB
with GalliumOS -- a Linux distro optimized to run CB hardware.  It's still
running...

Chromebooks run Android, Linux, Chrome apps, Windows apps...  All except Mac
apps.

First-world problems indeed...  And mostly a religious issue.  I'm fine if
you use Apple products.  But I haven't a solution to suggest in that case!

For the record, I have a Pixelbook (the photo), but I also have a DIY tower
and a Dell 7710.  The CB gives me portability + Pharo.

(If you do go back to a CB, just be sure you check the specs: Intel CPU
only, and be sure it can run "Crostini" so you get Linux containers.)



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html

--
Russ Whaley
[hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: Text-Editing UI

tbrunz
If you do, send me a message about what you're considering, and I can help
you choose.  I'm much more knowledgeable about CBs that the average person
-- especially about programming on them & using Linux on them.

Another nice thing about Chromebooks is that they're inexpensive.  Meaning,
you get a lot for the price.

They used to all be fairly low-performance "budget" devices, but they've
been catching on, and now pretty much all the manufacturers make a variety
of models.

What's really interesting are the "power user" models.  Google started the
trend by selling the "Pixel" model to attendees of their "Google I/O"
conferences, starting in 2013.  They did it again in 2015.  Both have
touchscreens -- they were the only ones at the time with T/S.

The 2015 model was available as an i5/8GB/32GB (cpu/ram/ssd -- they don't
have a lot of disk space because you're encouraged to save things in "the
cloud"; you get a lot of free Google Drive space as part of buying a CB).
Then there was the "LS" (Ludicrous Speed) model that's an i7/16GB/64GB.
(The CPU is a dual-core Broadwell mobile with HT enabled -- it's no slouch.)

The hardware, for the time, was second-to-none.  It was Google's way of
showing the world, "Look what you can do!" as well as a perk for power
users.  Now many of the mfgrs have high-end models, many of which are really
nice systems.

And for "content consumption", they're just as much an "appliance" as iPads.
Turn them on & go...  You can't break them.  Perfect for "the parents" or
anyone who's not tech-savvy.  But unlike iPad devices, you can conveniently
create content, such as emails, etc.

So the 2015 Pixel was too much for me to pass up...  I didn't go to Google
I/O, but you can always count on a percentage of recipients to flip them on
eBay.   Which they did, so I bought one.  It's been a good value, and the
hardware really is top-notch.

Of course I wasted no time in learning how to run Linux apps on them.  First
was "Crouton", a side project of a Google engineer.  That gave way to
"Crostini", an official Google project to add Linux, but in a container --
and a supported feature.  (Like many things Google, it's "in beta", but it
works well, so 'who cares?')

My wife got the 2015 Pixel LS when I got the base model of the Pixelbook
(i7/8GB/128GB) when it came out a couple of years ago -- Google gave them
more SSD so you can add your Linux development environments.  

So I added all my Ubuntu tools, and Pharo Launcher, and my images...
Everything works, including file & network access.  (Linux containers share
a directory with the ChromeOS file system that's visible from the Chrome
environment.)

The only thing I needed to do was write a bash script that will enlarge the
cursor (because the Pixel/Pixelbook screens are hi-dpi, like my 7710) and
set the font size in my images to "Large".

That script is here:  https://github.com/tbrunz/pharo-support

-t



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html