stumpwm-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Spatial groups concept discussion


From: Roland Everaert
Subject: Re: Spatial groups concept discussion
Date: Mon, 14 Mar 2022 08:19:09 +0000

No worries, I have never written a module, so I couldn't blame you for anything.

Regarding keybings, (un)fortunately, I live in a hybrid-world, the machine I 
use for my job is a windows machine provided by the customer, so I have to 
account for the Windows world, hence C-n et al. doesn't feels natural to me for 
a very long time.

Maybe you could propose predefined keybindings in addition to the possibility 
for the user to define its own. The Nyxt web-browser, a common lisp based 
browser, do that quite well.

Below is my keybindings definition:

;; 1. Undefine all the default keybindings
(undefine-key *top-map* (kbd "C-Left"))
(undefine-key *top-map* (kbd "C-Right"))
(undefine-key *top-map* (kbd "C-Up"))
(undefine-key *top-map* (kbd "C-Down"))
(undefine-key *top-map* (kbd "C-S-Left"))
(undefine-key *top-map* (kbd "C-S-Right"))
(undefine-key *top-map* (kbd "C-S-Up"))
(undefine-key *top-map* (kbd "C-S-Down"))
;; 2. Set my own keybindings
(define-key *top-map* (kbd "s-Left")    "coord-left")
(define-key *top-map* (kbd "s-Right")   "coord-right")
(define-key *top-map* (kbd "s-Up")      "coord-up")
(define-key *top-map* (kbd "s-Down")    "coord-down")
;; Control-Shift left/right to switch desktop Z
(define-key *top-map* (kbd "C-s-Left")  "coord-taskleft")
(define-key *top-map* (kbd "C-s-Right") "coord-taskright")
;; Control-Shift-Up to return to origin 0,0 on current desktop Z
(define-key *top-map* (kbd "C-s-Up")    "coord-taskorigin")
;; "Pop" back to last desktop position
(define-key *top-map* (kbd "C-s-Down")  "coord-taskpop")
;; ----------------------------------------------

As for the multi-head usage, S-Arrows allows to switch between frames in the 
same group, so it allows to switch between heads.

As for frame/windows placement in groups, according to the documentation, it is 
possible to define rules, unfortunately, I never manage to make them works, 
with the exception of firefox. :(

It is important to note that the target group must exists for the rule to not 
raise an error.

Below is the rule I had defined for firefox, before using spatial groups.

(define-frame-preference "F3-Media"
  (0 nil t :create t :class "Navigator.Firefox"))



Roland Everaert
---
Use the F.O.S.S., Luke

Envoyé avec la messagerie sécurisée ProtonMail.

------- Original Message -------

Le dimanche 13 mars 2022 à 15:43, Russell Adams <RLAdams@adamsinfoserv.com> a 
écrit :

> On Sun, Mar 13, 2022 at 08:58:47AM +0000, Roland Everaert wrote:
>
> > Hello M. Adams,
> >
> > I just install the module which works quite well.
> >
> > Nonetheless, could you, please, consider updating your documentation
> >
> > to explain how to override your keybindings?
>
> That's an oversight on my part. I'll add a config variable and wrap
>
> those in a function shortly.
>
> To be fair, this is my first module and it was adapted from my
>
> personal config. ;]
>
> > They are interfering with keybindings used in terminals and text editors.
> >
> > C-Left and C-Right are used to jump between words. C-Up and C-Down
> >
> > are used to jump between paragraphs. The keys coords C-S-<arrow-key>
> >
> > are also used in text editors.
>
> I disagree completely. These are my day to day bindings carefully
>
> chosen not to interfere with the applications I use. The only one I
>
> run into is Shift-arrows breaks updating Org-mode timestamps. They
>
> haven't changed in about a decade.
>
> However, I'm aware that Windoze style GUI applications may abuse
>
> C-Arrows instead of sane defaults like C-n and C-p. In Emacs,
>
> Meta-arrows jumps across words. C-c is interrupt, and C-v is page
>
> down, they have nothing to do with the clipboard.
>
> You absolutely should be able to customize your keys though, I'll post
>
> a fix.
>
> > So, I have the feeling it can be, at the very least, surprising to
> >
> > new users of your module.
>
> Yep, I'll wrap it. Would you recommend enabling the keybinds by
>
> default with an option to disable, or require additional configuration
>
> to set the base keybinds?
>
> I'm leaning toward the second option, of updating the install
>
> instructions to call the keybind function.
>
> > With regards to using your module with multiple heads, I find the
> >
> > behaviours quite natural, so far.
>
> You're using it multihead? I'm surprised it even works. There are
>
> rules like "same group can never be on two screens", and there's no
>
> relationship logic (ie: to the left, to the right of, screens = ( x ,
>
> x - 1) ) in the code.
>
> I always thought I'd have to add a layer to specify orientation to the
>
> coordinate change login per screen, and then swap all screens to a
>
> screen specific "null" group before moving to the final.
>
> > How did you save and restore each workspace?
>
> I don't normally. In my startup I had some code to make some splits,
>
> but I've not found a good way to launch applications into those
>
> specific places.
>
> Do you know how to do "run program in group 1, frame 3"? It always
>
> just launches in current frame for me.
>
> > There are commands, in stumpwm, to dump and restore frames and
> >
> > windows, but I am not quite sure they are adapted to a spacial
> >
> > grouping.
>
> I think that they should work. Spatial uses group names as a text
>
> string of coordinates, and doesn't touch the splits/frames. I think
>
> save and load will work normally.
>
> > I will try to provide some feedback about my usage of the spatial
> >
> > groups in the coming weeks.
>
> Looking forward to it!
>
> ------------------------------------------------------------------
>
> Russell Adams RLAdams@AdamsInfoServ.com
>
> PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/
>
> Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3



reply via email to

[Prev in Thread] Current Thread [Next in Thread]