On Thu, 12 Oct 2017 08:13:00 -0500
"Matthew D. Fuller" <fulle...@over-yonder.net> wrote:

> On Sat, Oct 07, 2017 at 10:13:35PM -0400 I heard the voice of
> Steve Litt, and lo! it spake thus:
> > 
> > I mentioned I was writing documentation about ctwm for
> > Troubleshooters.Com. I finished the docs, and they're at
> > http://troubleshooters.com/linux/ctwm  
> 
> Some notes in going through:
> 

Thanks for this thorough feedback, Matthew. This email contains
responses to the easy low-hanging fruit.


>     The nested/window-mode ctwm with -w is still high up on my mental
>     chopping block; it's a really weird thing that doesn't actually
>     work all that well in a lot of ways, has fingers mucking up a lot
>     of different parts of the code, and has been involved in some
>     weird bugs in the past even when you're not using it. 

Yes, -w is definitely twitchy. I once tried to import a base window
into the ctwm -w window, and that made a mess that finally resulted in
my killing X. 

>     I would
>     definitely recommend not even mentioning its existence; xnest is
>     better in every practical and most impractical ways.

I could recommend xnest, but not until I solve some of its problems.
First, it's horribly underdocumented --- I spoze I could fix that. But
also, ctwm acts funny within it. First is the deficiency also shown by
ctwm -w: hotkeys are intercepted by the base server (display :0) before
going to xnest (display :1), so hotkeys are out. Unless I include a
menu path to execute dmenu, this is a severely retarding influence (no
different than ctwm -w, though).

So I can't really change this until I solve some problems with running
ctwm in Xnest.




>   - "About Icons".  I'd probably move this into a place talking about
>     the icon manager.  In ctwm (and twm before it, for that matter)
>     I've always just used the icon manager and IconifyByUnmapping, so
>     icons never show up at all.  Other people do differ.

About a day after releasing this document,  I realized ctwm is at a big
disadvantage without full icon support. Also, Aaron Sloman pointed this
out to me. And now you.

I'll remove this very negative "About icons" sections, and probably add
a full document on icons and the icon manager.

> 
> 
> - install.htm
> 
>   - "Download either ctwm-4.0.1.tar.xz or ctwm-4.0.1.tar.xz."  You
>     probably wanted one of those to be .gz.  

Fixed!


>     I'd consider skipping
>     talking about .gz depending on your audience, since it's just
>     there for what are now pretty old systems that lack xz.

I left in the .gz. A lot of people still use that, especially for
archival purposes.

> 
>   - "Testing ctwm" (and the cp'ing of system.ctwmrc earlier); trust
>     me, nobody running ctwm uses or thinks too highly of the
>     system.ctwmrc   :).  Note that it's also baked into the binary, so
>     if you don't have a .ctwmrc (or .twmrc, as a fallback), it'll get
>     used anyway, so you may not have to bother cp'ing it around.

I'm glad to know I'm not alone in thinking the default messy. I left
the blurb about copying to ~/.ctwmrc in there on the theory that we all
like a known state.


> 
> 
> - modernize.htm
> 
>   - (various comments handled in talking about config)
> 
>   - f.fullscreenzoom mentions using F11 to "come back", but that isn't
>     something ctwm would do unless you added a key binding for it
>     (which I don't see in your config).  Some _programs_ (like
>     Firefox) use F11 

Ouch! I hate giving bad advice: Thanks for pointing this out to me. 

I just fixed it, telling them to move the window down and to the left,
then shrink it.



>   - "Accommodating Workspaces"
> 
>     - "There are two ways to navigate workspaces: Brute force menus,
>       and the super-magic workspace thingy, which looks like 8
>       chicklets in 2 rows of 4 columns each. This section uses a
>       little of each."
> 
>       Actually, there's at least one more; keybindings, which you then
>       talk about and have in your sample config, and are probably
>       widely used anyway.

I know that, and you know that, but the person not knowing it will
probably encounter it as a 2x4. I thought about more explanation, and
decided against it.

> 
>       Also, the size and layout of the WSM is pretty depending on how
>       you config it; e.g., mine (when it's shown, which is extremely
>       rarely) is currently a 3x3 grid, and in your sample config,
>       you've got it 8-wide in 1 row.

Again, not wanting to overload the reader, I left this for her/him to
discover.


> 
> - menu_behavior.htm
> 
>   - The "Slide left" behavior for the mouse is wrong.  Sliding left by
>     itself never does anything, no matter what entry you're on.

Fixed.
 
> 
> - patch.htm
> 
>   - vim-style menu navigation is an interesting idea.  I'll bet there
>     are ways that could be cleanly(*) made an option.

You bet there are. I had Vim-key menu navigation running for awhile
(with my patch) but took it out because I don't like changing other
peoples' code because I don't know their design priorities. My j,k,h
and l hotkeys overrode ctwm's excellent first letter recognition, so
probably in real life they should have a modifer like alt or ctrl.

> 
>       (*) Well, not significantly less clean than anything else around
>           that part of the codebase, anyway...
> 
>   - Re: the patch, I'd generally suggest something more like
> 
> -                                       if(!strcmp(keynam, "Return"))
> {
> +                                       if(0 && !strcmp(keynam,
> "Return")) {
> 
>     instead of messing with the string being compared; it's more
>     explicit about the intention to the reader, as well as making it
>     completely removable by the compiler.  Or using the preprocessor
>     to remove it, but that takes TWO lines instead of one, so it's
>     obviously only half as good.

You're right, of course, but I left the patch alone because as of your
next version release this becomes a moot point and I remove all
references to the patch.

> 
> - stevelitt_ctwmrc.htm (and -1.0.ctwmrc)
> 
>   - I've academic interest in how MaxWindowSize is helping you.  I had
>     it in my config for years, but I eventually took it out, because I
>     pretty much never saw it helping anything, and even once in a
>     great while (~yearly, if perhaps less) it got in my way.

I'm not sure, but I think it makes sure my maximized windows are the
correct size. Don't shoot me if I'm wrong.

> 
>   - BorderWidth and ThreeDBorderWidth.  If you're
>     UseThreeDBorders'ing, BorderWidth is meaningless.

I just set them to the same thing in case I switch between 3D and flat.


> 
>   - The various bits you have "Help kbd instantiated windows get
>     focus" commented probably need a little more precise explanation.
>     UsePPosition especially doesn't have anything to do with focus,
>     but with positioning, and ditto RandomPlacement.  Possibly you
>     mean how that just plop the window somewhere rather than waiting
>     for the user to position?  Of course, if you have RandomPlacement
>     on, UsePPosition wouldn't be needed for that anyway, and
>     RandomPlacement "on" is the default in 4.0.0+ as well.

That .ctwmrc code was some of the first I wrote, before I was even sure
I was going to spend any time with ctwm. It was a result of rapid fire
trial and error to get the behavior I wanted.

You're right about waiting for the user to position. In a workflow
where 90%+ of all windows result from a hotkey, requiring the user to
position the window would bring productivity to a halt.

> 
>     Now, I don't see any obvious reason it would be difficult or
>     ambiguous to add an AutoFocusToNewWindows or the like...  there
>     are certainly the various (IMO unpleasant) side effects, but
>     that's not the WM's fault.

I might examine that later. So far, my stevelitt.ctwmrc is working very
well for me, so further experimentation is a lower priority.

> 
>   - You may want to rethink whether to set NoDefaults; as long as
>     you're making some adjustments to the icons on the titlebar
>     anyway, you may want to just take over from scratch.  That's pure
>     personal style though.

Turns out I regularly use the default provided iconize and resize
buttons, and simply add to those. Given that the NoDefaults also
removes some default behavior, according to the man page, I took the
safe rout and left the defaults intact.

>   - On the menus:
> 
>     - There's probably no reason you need xcalc/xman/xmag on there  :)

xcalc and xman, you're right. Xmag, I did this:

 "Xmag"         !"xmag -mag 3 -source 600x300 &"

Yeah! Perfect!


> 
>     - menu "workspace-special" looks like a fossil from
>       experimentation; probably not needed in a dist'd config.

Yeah, that'll be gone in 1.1

> 
>     - I'd definitely lose the f.adoptwindow binding, along with the
>       other nested stuff above.  

Good catch. f.adoptwindow is just plain dangerous. That'll be gone in
1.1.

Thanks so much for this detailed report!
 
SteveT

Steve Litt 
October 2017 featured book: Rapid Learning for the 21st Century
http://www.troubleshooters.com/rl21

Reply via email to