C-h v pop-up-frames tells you this. It should get you much of the way there.
pop-up-frames is a variable defined in window.el.
Its value is t
Original value was nil
Whether `display-buffer' should make a separate frame.
If nil, never make a separate frame.
If the value is graphic-only, make a separate frame
There is an internal predicate in ediff-init.el, called ediff-window-display-p. When I redefined it (after loading ediff, of course) like so, everything works in a single frame, including the function you mentioned as a problem:
(defun ediff-window-display-p () nil)
I do agree with @lawlist that this is a nice feature request -- to fix ediff-window-setup-...
The function other-frame, bound to C-x 5 o by default, moves you to the next frame, and calling it repeatedly will cycle you through all available frames. As I recall, that's what Alt-tab does?
ace-window might also be useful for you. See this answer: https://emacs.stackexchange.com/a/46587/262
In file .XdefHiDPI, add the following line, adapting for your preferred font and size. I use the Hack TTF font at 14 point on a normal-resolution display.
See: (info "(emacs) X Resources") and https://sourcefoundry.org/hack/
My suggestion would be to specify that *Help* and *info* buffers be special-display buffers.
You can customize option special-display-buffer-names, to specify that these buffers should be shown in their own frames at specific screen locations. You can also use option special-display-regexps, to handle multiple buffers *info*, *info<2>*,...
The answer has two parts.
The function get-file-buffer returns the buffer visiting the file given as argument or nil if there is no such buffer. You can use it in the following way:
(require 'subr-x) ;; for `when-let'
(when-let ((buf (get-file-buffer file-name))
(win (get-buffer-window buf)))
You do actually not need get-file-buffer ...
M-x customize-face default, then set the height attribute to the value you want.
There are several other approaches. Here's one involving default-frame-alist:
Use M-x customize-option default-frame-alist, providing a full font name for the value of frame-parameter font. For example: this value uses a font height of 16 pixels:
along with a message about the desktop file already being in use
Emacsclient does not attempt to process the desktop file, so you are clearly starting a new instance of Emacs.
If emacsclient can't connect to the server, but you either passed it -a '' or --alternate-editor='' or else have the ALTERNATE_EDITOR environment variable set to an empty string, ...
This is a kind of quirky way of achieving it, but it worked for me.
Having frame-title-format set to its original value:
(setq frame-title-format '(multiple-frames "%b"
("" invocation-name "@" system-name)))
shows this on wmctrl utility to interact with X-Windows manager:
$ wmctrl -l
0x00e00003 0 ES-00002604 /...
Your question title speaks about the command line. This answer instead talks about setting the font size in Emacs.
zoom-frm-in is a command in Emacs-Lisp library zoom-frm.el. It's purpose is to zoom inward interactively.
It sounds like you don't want to zoom in interactively but you instead want to start Emacs at the right zoom level - in other words, set ...
What about frameshot by tarsius? I haven't tried it myself, but it seems to do what you want. According to its release history on GitHub, the package was born into this world on February 26, 2018 — later than the most recent update to this post.
Give it a shot! ;)
Emacs reads the .emacs after creating the initial frame, and after that it looks at default-frame-alist (and others) to see if it changed and then tries to update the initial frame accordingly. This update happens fairly late in the startup sequence, so apparently after running window-setup-hook.
If you're running Emacs≥27, you can set default-frame-alist ...
This pull request, Only delete window when not opened in new frame, seems related to the problem you describe. It has been merged but it's not part of a release yet. You can try the development version of the package. If it doesn't fix the problem you should open a new issue on github.
If you want a replacement command for other-frame then this will do it. The definition is the same, except for the condition for a candidate frame not to be a member of the blacklist, my-frames-blacklist.
(defvar my-frames-blacklist ()
"List of frames to be ignored by `my-other-frame'.")
(defun my-other-frame (arg)
"Select the ARGth different visible ...
set-background-color does work in your init file! It's just that the setting is overridden later in Emacs's startup process, which goes (in part) something like this:
load site init files
load user init file
set up frame parameters
To set up window frame attributes and have them actually persist, you need to set up variables (customization ...
set-background-color is an interactive compiled Lisp function in `frame.el'.
Set the background color of the selected frame to COLOR-NAME. When called interactively, prompt for the name of the color to use. To get the frame's current background color, use `frame-parameters'.
I'm going to guess that you're ...
Emacs tries to prevent multiple buffers visiting a given file because that's not generally desirable (e.g. you can then have conflicting changes in each of the buffers); but it's certainly possible. In essence you just need the buffer-local buffer-file-name variable to be set.
Here's a very basic command:
(defun find-file-new-buffer (filename)