emacs-helm / helm

Emacs incremental completion and selection narrowing framework
https://emacs-helm.github.io/helm/
GNU General Public License v3.0
3.37k stars 389 forks source link

helm-eshell-history always opens a new window #2091

Closed ChoppinBlockParty closed 6 years ago

ChoppinBlockParty commented 6 years ago

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?

thierryvolpiatto commented 6 years ago

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

ChoppinBlockParty commented 6 years ago

Fantastic. Thanks.

azzamsa commented 6 years ago

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.

valankar commented 5 years ago

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.

thierryvolpiatto commented 5 years ago

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

rileyrg commented 4 years ago

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 ;)