I just read Mickey’s wonderful article on window management, and has given me the push I need to take control over my emacs windows/frames. I have an idea of what I will configure; maximum of two windows per frame, and if is my portrait frame split horizontally and split vertically for my landscape frame, plus some additional config for Magit. Before I take the plunge, I wanted to quickly reach out to see what other people have done for their configs to get some ideas. Figure might also be good to collect a few different configurations of window configs for people interested.

Some configs I have found on the way and will update with any suggestions people have:

  • Karthink’s config, good integration with the popper package
  • emacs-pure - has some display-buffer-alist settings for magit which are of interest to me, as the built in magit methods for handling new frames isn’t exactly what I want.

Any recommendations, please feel free to share them.

  • skyler544@fediverser.communick.devB
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago
    (add-to-list 'display-buffer-alist
                 '("\\*sly-mrepl"
                   (display-buffer-at-bottom)
                   (window-height . 12)))
    (add-to-list 'display-buffer-alist
                 '("\\*Calendar*"
                   (display-buffer-at-bottom)))
    (add-to-list 'display-buffer-alist
                 '("\\*shell:"
                   (display-buffer-below-selected)
                   (window-height . 12)))
    (add-to-list 'display-buffer-alist
                 '("\\magit:"
                   (display-buffer-same-window)))
    (add-to-list 'display-buffer-alist
                 '("\\*Man"
                   (display-buffer-same-window)))
    (add-to-list 'display-buffer-alist
                 '("\\*Help"
                   (display-buffer-same-window)))
    (add-to-list 'display-buffer-alist
                 '("\\*helpful"
                   (display-buffer-same-window)))
    
      • egstatsml@fediverser.communick.devOPB
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        Awesome thanks for sharing. I have a note for emacs-run-command to comeback and check it out, but hadn’t come across shell-command-x.el. Will have to check them out.

        Do you notice any wierd behaviour with Magit? I have just been going through the documentation about how Magit spawns/reuses their own frames, and was wondering if playing with display-buffer-alist would get in the way of how Magit wants to do it.

        • skyler544@fediverser.communick.devB
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 year ago

          I think that preferences for display-buffer-alist will depend on each user’s workflow. With my rule it will pop up magit-status in the currently active window, then split to show logs, diffs, etc. I don’t normally use more than two windows per frame, so it’s not too bad if it messes things up, but I haven’t noticed it doing that. If it does do something weird, I just use winner-undo until I get back to where I was. For this you have to have (winner-mode) somewhere in your config or start it manually I guess.

          For instance, if you had two windows in a vertical split like A | B with point in A, then run magit-status, A will show magit and B won’t change unless you run something like magit-log. Pressing q in the log window will restore B to what it was showing before.

          Changing this behavior is probably possible, but I’m satisfied with this so far.