helm-eshell-history always opens a new window

Created on 4 Sep 2018  路  6Comments  路  Source: emacs-helm/helm

I have the following relevant setting for helm

(setq
  helm-split-window-in-side-p           t ; open helm buffer inside current window, not occupy whole other window
  helm-split-window-default-side        'above

Every time I call helm-eshell-history it opens a new window of global window manager (X window system for me), i.e it is not a split within current root emacs window, it is another emacs root window. Is it expected, can I change this behavior?

Most helpful comment

Yuki notifications@github.com writes:

I have the following relevant setting for helm

(setq
helm-split-window-in-side-p t ; open helm buffer inside current window, not occupy whole other window
helm-split-window-default-side 'above

Every time I call helm-eshell-history it opens a new window

Not a window but a frame.

of global window manager (X window system for me), i.e it is not a
split within current root emacs window, it is another emacs root
window.

In emacs we call this a frame.

Is it expected,

Yes.

can I change this behavior?

Yes, (setq helm-show-completion-display-function #'helm-show-completion-default-display-function)

--
Thierry

All 6 comments

Yuki notifications@github.com writes:

I have the following relevant setting for helm

(setq
helm-split-window-in-side-p t ; open helm buffer inside current window, not occupy whole other window
helm-split-window-default-side 'above

Every time I call helm-eshell-history it opens a new window

Not a window but a frame.

of global window manager (X window system for me), i.e it is not a
split within current root emacs window, it is another emacs root
window.

In emacs we call this a frame.

Is it expected,

Yes.

can I change this behavior?

Yes, (setq helm-show-completion-display-function #'helm-show-completion-default-display-function)

--
Thierry

Fantastic. Thanks.

Have the same issue today. After coming back to use shell, eshell and ansi-term. helm-comint-input-ring works well for me. But helm-eshell-history open up an new separate frame. (I think it's not my fault, I suppose it was by design).

Then I decide to open new issue. But changed my mind and look carefully to other issue. I don't want to disturb Thierry's time :)

(setq helm-show-completion-display-function #'helm-show-completion-default-display-function)

Works great for me. Though I still curious what is the motivation behind this default design (open new separate frame).

Thank you for Helm.

In emacs we call this a frame.
Is it expected,
Yes.

Is there some reason why this is the default behaviour? It seems pretty strange to me when other helm buffers do not open this way. I had a pretty bad interaction with this in Spacemacs and i3wm. First, when I have 2 windows in 1 frame, the new frame that helm-eshell-history creates also gets 2 windows, so I end up with 4 buffers on the screen. Also one time running helm-eshell-history it went into an infinite loop creating windows, with emacs eventually core dumping.

valankar notifications@github.com writes:

In emacs we call this a frame.
Is it expected,
Yes.

Is there some reason why this is the default behaviour?

Because it is much better except perhaps for spacemacs users, if you are
not happy with this, customize helm-show-completion-display-function.

--
Thierry

Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997

It's not better on my Debian system with emacs 27. It ends up floating there out of focus and I have to alt-tab to it and hit C-g to close it.

(setq helm-show-completion-display-function #'helm-show-completion-default-display-function)

fixes it. This should be the default. it's been driving me to distraction ;)

Was this page helpful?
0 / 5 - 0 ratings