Yes, it is.
(split-window (frame-root-window) (truncate (* (window-total-height (frame-root-window)) 0.75)) 'below)
The crucial part is (frame-root-window) which returns a window spanning the whole frame.
I happened on this old thread as I was trying to figure out the same headache myself, and I thought it worthwhile to share my solution. You can modify the info link handling in a few ways. One method I like is advising the function, but that's not really necessary here. Org-mode (probably like many Emacs components and plugins) is easy enough to extend and ...
You can invoke windmove-display-up/-down/-left/-right, windmove-display-same-window (C-M-S-0) or windmove-display-new-tab (C-M-S-t) right before making a new buffer to specify where to put it.
The function windmove-display-default-keybindings sets up key bindings for the directional windmove-display-* commands. Withouth arguments, it sets S-M-<arrow key&...
Here's the definition of deft (version 20210101.1519 on MELPA)
(defun deft ()
"Switch to *Deft* buffer and load files."
(if (not (eq major-mode 'deft-mode))
So it uses your current window, then switch to a buffer with a name of the value of deft-buffer variable, "\*Deft\...
compile displays the output buffer using display-buffer (as do most other commands, fwiw). You can see this in compile.el, which is included with Emacs. There is always a link from the help for a function to the source code. Use C-h f compile RET to show the help for this function, then click the link. compile ends by calling compile-start, which does most ...
If you don't care which file goes on the right and which file goes on the left, try the following init file:
(setq inhibit-splash-screen t)
And yes: split-window-horizontally splits it vertically in your terminology :-) Emacs's terminology is different from yours.
Actually, the option pop-up-window controlls the generation of new windows.
The pitfall is, that there are commands that locally bind that variable to t.
The command switch-to-buffer-other-window is such a command that is especially relevant for your problem, since ido-find-file-other-window uses it.
The strategy for displaying buffers is controlled by a ...
Try replacing one-window-p with window-full-width-p.
Function: window-full-width-p &optional window
This function returns non-nil if window has no other window to the left or right in its frame, i.e., its total width equals that of the
root window on that frame. If window is omitted or nil, it defaults to
the selected window.
I don't quite understand your last comment, but try the following in your init file:
(setq inhibit-splash-screen t)
(setq command-line-functions (list #'handle-files))
(defun handle-files ()
(let* ((files (cons argi command-line-args-left))
(lastfile (car (last files)))
(files (butlast files)))
I assume you're referring to this piece of code: https://github.com/tpapp/julia-repl/blob/d073acb6339e99edf77833f82277afd9a076f16a/julia-repl.el#L449-L454
It doesn't use display-buffer internally, so customizations to display-buffer-alist have no effect. Ask the developer to replace switch-to-buffer-other-window with pop-to-buffer or better, hand in a pull ...
You can try this function:
(defun my/open-files-vert-in-new-frame (file1 file2)
The key is select-frame-set-input-focus which makes subsequent functions operating on windows of the new frame and set input focus on it....