• Stars
    star
    163
  • Rank 231,141 (Top 5 %)
  • Language
    Emacs Lisp
  • License
    GNU General Publi...
  • Created over 10 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Make emacs play nicely with tiling window managers by setting it up to use frames rather than windows

Frames only mode

CI MELPA

An emacs global minor mode to use emacs frames (i.e. operating system windows) instead of emacs' internal windowing system. This combines particularly well with tiling window managers such as XMonad.

There's a fairly rough screencast showing the kind of things you can do with this here.

Typical Setup

In combination with frames-only-mode I recommend:

  • Running emacs as server-client.
  • Binding a hotkey to open new emacs frames (see below).
  • Using helm, ivy or ido instead of the default completion interface.

Bind this shell command to a hotkey to automatically open a useful buffer in a new frame (usually your most recently viewed buffer which isn't currently open):

emacsclient -c -n -e '(switch-to-buffer nil)'

Changelog

Unstable

  • Add support for eshell completion
  • Fix some customize group weirdness
  • Fix sometimes leaving additional frames open after quitting magit

Advanced Configuration

Integrating with command line git

To make this work nicely with git (e.g. to pop up a new frame when we run git commit from the command line) we need to set the editor to run an emacsclient in a new frame. However, unlike the case for running emacsclient instances from the window manager, we don't want it to detach from the console. We can achieve this by adding the following to the ~/.gitconfig file:

[core]
    editor = emacsclient -c

If instead we only used editor = emacsclient it would try to open a new buffer in an existing frame. This often results in the commit message buffer showing up in a different workspace(!), or in the terminal.

Integration with default emacs completion

If you use the default emacs completion (or ido with a popup completion buffer) then frames-only-mode-use-windows-for-completion can be used to control whether the *Completions* buffer is displayed in a frame or an emacs window. The default is to use an emacs window, which works well with any window manager. Alternatively the *Completions* buffer can be disabled entirely by setting completion-auto-help to nil.

Other links

This mode originated in a blog post which has some additional details.

More Repositories

1

electric-operator

An emacs minor mode to automatically add spacing around operators
Emacs Lisp
86
star
2

terminal-here

An Emacs package to open an external terminal emulator in the current directory
Emacs Lisp
73
star
3

Kurose-and-Ross-socket-programming-exercises

Skeleton code, tips and solutions for the socket programming exercises from Kurose and Ross Computer Networking: A Top-Down Approach, 6th ed
Python
58
star
4

anki-mode

An Emacs major mode for creating anki cards
Emacs Lisp
49
star
5

aggressive-fill-paragraph-mode

An emacs minor-mode for keeping paragraphs filled (in both comments and prose)
Emacs Lisp
23
star
6

ankicli

Proof-of-concept command line interface for managing Anki decks.
Python
22
star
7

fill-function-arguments

An emacs package to add/remove line breaks between function arguments and similar constructs
Emacs Lisp
16
star
8

Landau-Lifshitz-Gilbert-ODE-model

Tools and a simple model for the spatially constant LLG equation
Python
16
star
9

emacs-read-stdin

A simple shell wrapper function to allow emacs to read from stdin
Shell
12
star
10

simple-latex-poster

A simple theme and template for making posters in LaTeX
TeX
8
star
11

replace-pairs

Find-replace pairs of things with a single command
Emacs Lisp
4
star
12

oomph-lib

My working copy of oomph-lib. If you are interested in working on oomph-lib please use the central svn repository (available via the oomph-lib website) not this one! svn can't deal with git-style development so any changes would be very hard to merge back.
C++
4
star
13

oomph-lib-micromagnetics

Code to extend oomph-lib to solve micromagnetics problems
C++
3
star
14

llg-matlab-experiments

MATLAB
2
star
15

color-grep

Python
2
star
16

thesis

LaTeX code and pdfs for my PhD thesis
TeX
2
star
17

dotfiles

My config files for emacs, zsh, xmonad, urxvt etc.
Emacs Lisp
2
star
18

blog

Just my website/blog
HTML
1
star
19

latex-commands

TeX
1
star
20

cloudworkflowsim-power-cap-experiments

Driver code for running some experiments with cloudworkflowsim.
Java
1
star
21

generate-bdf-method

Generate code and symbolic representations for general BDF methods (implicit or explicit)
Python
1
star
22

statistical-rethinking-solutions

R solutions for http://xcelab.net/rm/statistical-rethinking/
R
1
star
23

polish-generator

Generate random grammatically correct Polish phrases.
JavaScript
1
star
24

xtip

Run commands on selected text quickly (for Linux)
Python
1
star
25

haskell-pong

Pong in Haskell using Gloss, http://andrew.gibiansky.com/blog/haskell/haskell-gloss/
Haskell
1
star
26

splot

Python
1
star