
Emacs Is My New Window Manager - lelf
http://www.howardism.org/Technical/Emacs/new-window-manager.html
======
a3n
I'm always a little jealous when I see what people do with emacs. But I've
never liked _using_ emacs, so I've resigned myself to a permanent, mild case
of emacs envy.

I think you could get approximately his same functionality with a terminal
(e.g urxvt) and tmux for the splitting. In fact I do essentially that at work
on Windows, from a cygwin terminal and tmux. When it fits whatever workflow
I'm doing from within cygwin, I'll launch the occasional Windows program from
there; the rest of the corporate Outlook, IE etc is done normally from
Windows.

At home on Linux I get my basic window splitting from my window manager, i3wm.
If I need more terminal-ish splitting I'll run tmux in a urxvt.

... still jealous of emacs though.

~~~
chriswarbo
The nice thing about Emacs is how much it's open to modification. There are
compatibility modes to make it work like other editors (eg. "evil mode" to
make it work more like Vi, "cua mode" to use "normal" key combos instead of
having to learn Emacs's, etc.). There are often a bunch of alternative ways to
do things, which have their own pros and cons, so if something seems
frustrating, it pays to Google around a little to see if there's another way.

For example, running a terminal can be done with `term` (b/w) or `ansi-term`
(colour), which provide a pretty standard xterm-like terminal emulator,
completely under the control of whatever shell you use (eg. bash). This is
useful for screen-manipulating programs like ncurses-based UIs, but is awkward
to manipulate as text (a bit like the awkward copy/paste functionality in
screen and tmux).

There's also `shell`, which runs a regular shell (like bash), but Emacs keeps
control of the screen. This makes it useless for curses-based UIs, but great
for text manipulation. For example, rather than running a pipeline over and
over, tweaking the output options, we can often just dump everything to stdout
then play around with it using the full power of Emacs (search/replace,
regexes, keyboard macros, lisp functions, etc.).

There's also `eshell`, which is like shell mode but instead of a regular shell
like bash, it uses a custom shell written in Emacs Lisp. Eshell's strength is
its integration with Emacs; for example, Emacs Lisp functions can be run just
like commands and Emacs buffers (including shells!) can be treated as files,
etc. Eshell's weakness compared to shell is that it can't do pipes.

Personally, I use mixture of shell and eshell, plus some handy Lisp functions
eg. for spawning new shells instead of always switching back to the same one.
I avoid term and ansi-term in favour of a separate st terminal though, since
they're pretty slow to update and their lack of decent text manipulation makes
them feel uncomfortably "un-Emacsish".

~~~
acomjean
M-x shell

is so useful for searching for text strings in outputs. (when grep alone will
not do) like all things emacs/ terminal its a little awkward when trying to
use the control keys (up arrow, ^r) and they get captured by emacs and not the
shell.

~~~
MarcScott
M-p is the replacement for up arrow

~~~
wglb
Which I bind to f6 for convenience.

~~~
codygman
I've never understood claims that function keys are convenient, but I guess
it's because I don't use them that much.

~~~
wglb
I agree that they are less convenient than the control key sequence, but
better than the up arrow trick.

And it is a little worse on the kinesis, as the function keys are not the same
quality as the rest of the keys.

------
simonswain
Xmonad, Emacs, a terminal and Chrome pretty much do the same thing for me on
Ubuntu desktop, possibly with a little less pain. Mostly mouse free operation,
and easy resizing, swapping etc.

If you want to learn Emacs, just jump in head first. Try and use it like a
native. Just for kicks I'm trying to do the same with vi by forcing myself to
use it for anything vaguely sysadmin related.

~~~
jzawodn
Do you find yourself needing other little helpers (panel applets) or just run
xmonad as is?

~~~
59nadir
I run Xmonad with no status bars or anything and it works great. No clutter,
just the windows I want to have there. I tried it out as an experiment on my
laptop to get more screen real estate and then I carried it over to my next
desktop install. I used to think that it was obvious that there were things I
wanted to have visible all the time, but in reality there was really only one
thing that could even qualify for that and that was a clock. When I realized I
could do without that, even, I decided to skip status bars entirely.

The effect is what the article is seeking, without the pain of "Oh, but if I
want to do this thing I can't". Free with workspaces that can be used for
anything, meaning you don't have to deal with this "It opens up on top of
everything else, making multitasking useless".

~~~
girvo
Specifically for the laptop use case, where do you find out how much battery
life is left without a top panel?

~~~
59nadir
There were a few 'solutions' that I was content with. You can have a workspace
where you have these things (htop, other monitoring tools) and you can also
have it in your vim/emacs status-line if you want to keep track of it while
working.

I've never actually found that I need something _everywhere_ as much as I need
to have it _somewhere_. Monitoring of things like these included.

Edit: I hesitate to call them real solutions, because obviously they are not
for everyone. Some people need to see their CPU/RAM usage, network usage,
clock and battery level at all times.

------
srott
No bad for a first try, but my goal is

cat /proc/cmdline initrd=/install/initrd.gz quiet init=/usr/bin/emacs

~~~
p4bl0
It has already been done, see [http://www.informatimago.com/linux/emacs-on-
user-mode-linux....](http://www.informatimago.com/linux/emacs-on-user-mode-
linux.html).

~~~
flyrain
Interesting. Have you tried it?

~~~
p4bl0
Nope. I already tried to use emacs as my login shell but it was not very
concluding… But clearly I would like to read some feedback of someone who
tries.

------
davexunit
Rather than using Emacs standalone, I like using ratpoison as the window
manager. That way I can have a full screen Emacs and easily use other
applications, too. Bonus points for not having to use the mouse for any of it.

~~~
SquidMagnet
Just out of curiosity, have you tried StumpWM? It was also created by Shawn
Betts; the idea was essentially to rewrite ratpoison in lisp.

~~~
davexunit
Yeah, I've used StumpWM. I don't really like Common Lisp so I don't use it
anymore. I want to use guile-wm because it's written in Scheme, but it's not
ready to be a daily driver.

------
mark_l_watson
Thanks for writing that up - I am going to work on improving my Emacs setup on
my Linux and OS X laptops. I find it much easier to write or code when my
screen is not cluttered so full screen Emacs makes sense for me.

BTW, off topic, but re: having a personal environment while at work: I was
fortunate to work at Google for a while in 2013 and I was uncomfortable having
any personal setups on my work Linux box or laptop. My solution was simple: I
just used my Android phone for personal email, checking Hacker News, etc.
during my lunch break. I also have a SSH shell app on my phone so in an
emergency I could have accessed my personal servers. Anyway, it seems odd to
spend too much effort setting up a personal environment for use at work :-)

------
wtbob
One can get the same effect (full-screen emacs, no window decorations, Lisp)
with stumpwm, a window manager written in Common Lisp. It's under active
development, but it has not so far succumbed to creeping featuritis.

And one can then run Firefox instead of Chrome…

~~~
smazga
I thought stumpwm was dead until just now! Thanks for that.

Did they ever fix the system tray situation? When I last used it (several
years ago) there was refusal by the devs to implement any sort of systray
support and the third-party tools did not fill the gap, so I switched to i3.

~~~
wtbob
I use stalonetray, but i"ll probably get rid of it soon.

Unfortunately, it's getting harder and harder to use GNOME with anything other
than the GNOME WM.

I really should post my pure-stumpwm config on GitHub one of these days. It
really is a nice desktop-environment replacement.

------
cJ0th
My impression has been that emacs is a poor window manager. Granted, I am not
incredibly skilled with emacs but even after some weeks I was still confused
by the way emacs opened up new windows or changed existing windows when you've
clicked on something (for instance, in dired or org-mode's agenda) I ended up
to open everything in a new frame and left the management of these frames to
awesomewm.

~~~
brudgers
Emacs has many frustrating behaviors out of the box. Typo-> C-z->Crap->Grab
Mouse->Expand Emacs Window->Scold self for not calling it a frame.

"Frames v. Windows" thing aside, every behavior in Emacs is configurable. It's
just that the default assumes that the user fired up Dired to seriously use
Dired. The default assumes that the user is using Emacs as Dired and so it
becomes Dired with lots of dedicated resources. Orgmode is the same way. They
don't constrain the amount of information they show in deference to other
activities.

~~~
chriswarbo
Yeah, I do find it annoying how many Emacs-based applications assume they're
the only thing running.

I'm developing an application built on ProofGeneral, which itself is built
inside Emacs. I ran the test suite one day and one function turned out to
_quit Emacs_ if it encoutered an error! It took out all of my open shells,
files, etc. (everything was saved, but I had to open them all again).

Now I'm running the tests in a dedicated Emacs process, launched via a command
from eshell!

~~~
brudgers
I know it's the internet and the standard assumpution is that what I wrote is
a complaint.

But just to be clear, I don't find Emac's behavior annoying. I find it
empowering. The idea that I might know what I am doing and be doing it
seriously is refreshing. Even if I don't.

I get annoyed with the fact that I don't know Emacs better. But I love the
fact that I can change that fact. I love that there's something else to learn
about Emacs and that it's likely to be worth learning because it involves
diving into an incredible piece of software as an object of design.

~~~
chriswarbo
Well, I was mostly piling my own complaints on top of what you said. I also
agree that Emacs is wonderful, and I agree that it's great how much power it
gives us to reconfigure everything. However, that doesn't make it perfect.
It's completely legitimate to point out flaws, whether they're actual bugs,
subjective annoyances or hand-wavey project-wide things.

For example, I think that the Emacs community should embrace starter kits more
when encouraging others to get started. Of course there's some truth to the
"thrown in at the deep end" and "get to grips with the real, inner-workings"
approaches, but at the same time the line has to be drawn somewhere; I doubt
many would recommend new starters to compile Emacs themselves.

Still, Emacs is certainly not as scary as many make it out to be. This week I
was helping out a Haskell programming class of CS students, where the
instructions included setting up Emacs and installing haskell-mode (in Emacs
23, so they had to install the package manager first!). Out of a group of 60,
only one struggled to do this, and it turned out to be because the sysadmin
hadn't installed Emacs on the machine he was using ;)

~~~
brudgers
The Emacs community embraces starter kits to the extent it makes sense to
embrace starter kits. That extent is the extent to which people are willing to
expend the energy to develop and maintain those configurations. My impression
is that few people have the energy and will to make such projects a successful
ongoing enterprise because in the end, pretending that Emacs is notepad.exe
comes crashing down to the reality that Emacs is a power tool and even newbies
are drawn to it for that reason. The bill for its learning curve comes
through.

------
spiralpolitik
I used to be a big Emacs user, especially in my postgraduate days and would
love to go back to the run everything in Emacs days but the world has changed.
These days I only use it for editing text.

The many problem is that Emacs hasn't really kept up with the times. It's
bloated in the wrong ways with too many default packages installed.
Asynchronous processes and integrating WebKit to allow binary buffers (PDF,
Images, SVG) would solve a lot of issues but I can't see it happening without
a fork given the stubbornness of RMS. The recent spat over AST in gcc (which
would again improve Emacs) doesn't increase the hope that things will change
anytime soon.

And that the sad thing. The idea of Emacs, a scriptable, extensible
environment is timeless and should not be lost to the past.

(BTW I would pay money for an Emacs fork and modernization project)

~~~
AceJohnny2

      > (BTW I would pay money for an Emacs fork and modernization project)

Maybe go talk to Jamie [1] and see if he's willing to give it another go [2]?

[1] [https://www.dnalounge.com/](https://www.dnalounge.com/) [2]
[http://en.wikipedia.org/wiki/XEmacs](http://en.wikipedia.org/wiki/XEmacs)

(for some background:
[http://www.jwz.org/doc/lemacs.html](http://www.jwz.org/doc/lemacs.html)

Jamie Zawinski later went to work at Netscape where he was responsible for the
Unix version, and named the Mozilla open-source project that you have heard
of. He cashed out of Netscape and bought the DNA Lounge nightclub.

On his blog, he likes to point out software inanities with the caption "This
is why I sell beer now")

~~~
spiralpolitik
He also sells me my pizza.

------
dmm
StumpWM is strongly inspired by emacs. It uses a similar window handling
style.

[https://stumpwm.github.io/](https://stumpwm.github.io/)

~~~
TeMPOraL
Also, it's written in Common Lisp, which - apart from giving it points of
awesomeness - means you can easily plug Emacs into it via SLIME/SWANK.

------
helper
The one thing that I have never been able to work to my liking is running a
shell inside emacs. I've tried the different modes (term, ansi-term, eshell)
and find that they are all deficient in different ways.

I think the main issue is that I have different operating models for emacs vs
a terminal and when they get mashed together I subconsciously want a superset
of functionality without any conflicts. So when there are key bindings that
are different in term mode I get quite annoyed. Likewise, I have no problem
with copy/paste in an xterm or in emacs, but put a terminal inside emacs and
copy/paste frustrates me all day.

~~~
sedachv
Have you tried term/ansi-term mode in Emacs 24? I thought it (and eshell)
weren't that usable in 23 but just this past week I decided to give them
another go in 24. It's a huge improvement, I went from a standalone iTerm/st
and occasional shell mode to eshell and ansi-term for everything. So much
better.

------
julienchastang
I basically have a variation on this set up but I use Vagrant on top of
VirtualBox. Then I keep the Vagrantfile and ancillary files on github. So I
can theoretically show up to a computer and be able to quickly recreate my
environment. I customize my VMs for Python or Clojure development and have a
nicely set up emacs as foundations for both. This set up is really useful for
Python where different Pythons coming from different package managers (brew,
conda) tend to clash on my regular (OS X) OS.

~~~
math0ne
Are the files for this public, can I see your config?

~~~
gknoy
Looking at his user info, it looks like this might be it:

[https://github.com/julienchastang/dotemacs/blob/master/setti...](https://github.com/julienchastang/dotemacs/blob/master/settings.org)

It looks like it's meant to be included directly as a config file, which seems
like deep magic to me. :-)

~~~
julienchastang
@math0ne @gknoy

Sorry for answering late:

[https://github.com/julienchastang/dotemacs](https://github.com/julienchastang/dotemacs)

You'll need tangle/babel

    
    
      ➜  .emacs.d  cat init.el 
      (package-initialize)
      (require 'cl)
      (require 'ob-tangle)
      (org-babel-load-file "~/git/dotemacs/settings.org")
    

[https://github.com/julienchastang/vagrant](https://github.com/julienchastang/vagrant)
(still a work in progress)

~~~
math0ne
Thanks man!

------
philo23
Minor nitpick, but isn't that Firefox, not Chromium in the screenshot of the
web browser overlaying emacs, right after mentioning that he uses Chromium
instead of Firefox because it requires a "real" window manager?

Regardless though it's an interesting setup, I've always wanted to try a
minimal window manager.

------
kyllo
This is awesome and has opened my eyes to features of emacs I didn't know
about. But I still have use for tmux because it lets me attach to the same
long-running session on a remote host from multiple clients. I'll probably
just start having emacs be the only window open in my tmux session.

~~~
TeMPOraL
Check out emacs-server then ;).

~~~
kyllo
Ok, _now_ I have no need for tmux anymore. Thanks!

~~~
jacobsenscott
I use emacs every day. You'll soon find emacs is a terrible xterm/gnome-
term/iterm/whatever-term.

* The emacs terminal is very slow. Run a command that produces a few hundred lines of output and you need to wait 30 seconds for it to catch up. A dedicated terminal program displays the output several orders of magnitude faster.

* Emacs crashes or freezes from time to time forcing you to kill all your emacs terminals anyway. It isn't nearly as stable as tmux.

That said you can connect to a tmux session with an emacs terminal. That fixes
the stability issue - even if emacs crashes your tmux session lives on. It
doesn't handle resizing well, and it is still slow as molasses.

I do use emacs server. That plus emacsclient allows you to open files
instantly, and your term mode and gui mode emacs can share buffers.

------
gexla
Interesting idea. I would just use something like DWM, a lightweight tiling
window manager. You still get the simplicity but with a bit more flexibility.
Most people will probably quickly hit a deal breaker with just using Emacs as
a WM.

~~~
chriswarbo
I agree. He's not really using Emacs as a WM, so much as using _no_ WM, and
doing as much as possible within Emacs. Note that Emacs _can_ be used as a WM,
with a little effort:
[http://www.emacswiki.org/emacs/EmacsXWidgets](http://www.emacswiki.org/emacs/EmacsXWidgets)

Likewise, it wouldn't be "using Firefox as a WM" by just running Web apps in a
fullscreen FF. You'd need something like PyroDesktop
[http://web.archive.org/web/20080905102046/http://www.pyrodes...](http://web.archive.org/web/20080905102046/http://www.pyrodesktop.org/Main_Page)

I much prefer my current Xmonad setup to this "Emacs WM":

1) My windows are all fullscreen, whilst his are stuck at their app-specific
defaults.

2) I can use multiple desktops (in practice, each one holds a different app,
including 2 instances of Emacs)

3) I can show one desktop on my laptop screen and another on an external
monitor (or occasionally a projector). I have no idea how his setup would cope
with multiple screens.

4) I can have long-running external windows. He must close his before
returning to Emacs. Whilst I could live without this, it would be a pain. Even
if I only used each app temporarily, I'd have to wait for them to start up
every time.

5) I can run slow Emacs applications in a separate instance. I read my mail
with Gnus, which gives me four options:

5a) Run Gnus in my main Emacs instance, which will freeze every time updates
are fetched.

5b) Start a separate Emacs instance for Gnus, which I must wait for as it
fetches updates, since it is overlayed above my main Emacs instance.

5c) Start a separate Emacs instance for Gnus _in a terminal_ , which of course
limits me to a character-based interface, and causes key conflicts between the
outer and inner Emacs instances.

5d) Have a long-running GUI Emacs instance, fetching mail on another desktop,
which doesn't interfere with my main Emacs and I can switch to instantly
whenever I like.

------
hollerith
The OP uses (set-frame-parameter nil 'fullscreen 'fullboth).

In contrast, I use (set-frame-parameter nil 'fullscreen 'maximized) leaving OS
X's menu bar and Dock on the screen.

I do not know if Homebrew package `emacs` has been fixed because these years,
I only ever install Homebrew package `emacs-mac` (a.k.a., Mitsuharu Emacs) but
it used to be that one had to install Emacs.app via `brew install emacs-mac`
instead of the conventional `brew install emacs` for (set-frame-parameter nil
'fullscreen 'maximized) to automatically and cleanly occupy every screen pixel
except for the pixels needed for the menu bar and the Dock.

~~~
gcv
How does this handle multiple displays?

~~~
hollerith
I cannot do a definitive test because I only ever use one monitor at a time,
but since (set-frame-parameter nil 'fullscreen 'maximized) does not make use
of the fullscreen mode introduced by Apple with Lion, it will almost certainly
not suffer from the most-complained-about problem with multiple monitors on OS
X.

In contrast, (set-frame-parameter nil 'fullscreen 'fullboth) does make use of
Lion's fullscreen mode -- and it gets rid of the menu bar and the Dock,
letting the Emacs frame occupy every screen pixel. But then at least on Lion
and Mountain Lion (which is the extent of my experience with recent versions
of OS X) multi-monitor support is hosed IIUC.

~~~
leonsp
Full screen mode works great with multiple monitors on Mavericks. I vastly
prefer it to traditional maximizing.

------
scrumper
I do something similar when I'm taking notes in meetings. It's a nice clean
interface.

I love your modeline, which is actually clear - any pointers to how to do it
myself? I'm using Prelude (I know) which does its own weirdness.

~~~
tyrust
It looks like he has his emacs config on github [0]. emacs-modeline-mode-
line{,2}.org [1] are probably what you're looking for.

[0] - [https://github.com/howardabrams/dot-
files/blob/master/emacs....](https://github.com/howardabrams/dot-
files/blob/master/emacs.org)

[1] - Yes, he writes his configs in org-mode. This is the first time I've
actually seen literate programming used and it's beautiful.

~~~
scrumper
Great thanks, missed that. Be interesting to see the LP stuff.

------
tribaal
I'm a vim guy, but I've been wanting to try emacs for a long time.

Any tip for a convert like me? Is the "trick" just to make the jump and
persist until it clicks? How do I still get my job done in the mean time?

~~~
bojo
After years of using vim I made the switch last Friday when I stumbled across
this fellow's blog post while randomly trying to figure out more about evil
mode: [http://juanjoalvarez.net/es/detail/2014/sep/19/vim-
emacsevil...](http://juanjoalvarez.net/es/detail/2014/sep/19/vim-emacsevil-
chaotic-migration-guide/)

It took all day Saturday to configure things so they mostly behaved the same
as my vim environment, mixed with learning emacs specific stuff along the way.
There's a few quirks I still need to work out, but the power to configure
absolutely anything is worth the switch in my book. I have to admit, I wish I
had made the switch sooner.

The biggest thing I desire right now, and maybe I just don't know what to look
for, is a way to swap between full sets of buffers. i.e. Group A: handful of
IRC windows, Group B: project 1's code buffers, Group C: project 2's code
buffers, etc. Maybe someone has a tip?

~~~
noahl
I just hit the same issue, and I started using desktop-save-mode for that
([https://www.gnu.org/software/emacs/manual/html_node/emacs/Sa...](https://www.gnu.org/software/emacs/manual/html_node/emacs/Saving-
Emacs-Sessions.html)). It may be a bit heavyweight for instant switching,
depending on what you want. I found it among a list of possible solutions at
[http://www.reddit.com/r/emacs/comments/1m73gs/how_do_you_man...](http://www.reddit.com/r/emacs/comments/1m73gs/how_do_you_manage_multiple_workspaces/)
.

~~~
bojo
That is exactly what I was looking for. Thanks!

------
mattjbarlow
I would love to do something similar. I recently switched from Weechat to ERC,
and started getting into eshell more heavily.

However, I must have a browser window open at all times. There is no way
around this. So, unless another solution presents itself, I will continue
using dwm with Emacs / Firefox.

------
coldnebo
> Of course, I do not install personal software...

> My remedy is to install a virtualization system...

which is personal software.

~~~
pyre
He says that his work is virtualization systems, so the install of (e.g.)
VirtualBox itself is not "personal software." It really comes down to whether
or not you consider the guest OS image running in the virtualization system to
be "installing personal software."

~~~
falcolas
Most IP reassignments I've ever signed have included the clause "any IP
developed with the company's resources belongs to the company".

This would include anything created in such a VM, unfortunately. So, if you're
not worried about that, it's a great separation of concerns. If you are
developing new IP, though, you would want to be very careful about using your
work machine.

I'm even nervous about logging into a personal machine via SSH from my
corporate laptop, if I'm honest. Might not be enough to legally take
ownership, but its probably enough to draw you into a protracted legal battle.

~~~
pyre
It doesn't sound like he's "creating" anything of value in the VMs. He notes
that he mostly uses it for org-mode. It's probably just him needing to access
(from his work computer) to notes / agenda info that he would rather keep
(e.g.) on his personal Dropbox.

You are right though that anything done using "company resources" may be fair
game for a legal battle to determine ownership.

------
jtth
Can emacs soft-wrap at a set column size without doing so in the middle of a
word? When I last tried to get into it I couldn't get it to do this, and that
put me off my meal.

~~~
yohoho22
Yeah, if you set the buffer-local variable "word-wrap". As noted in the docs
for that variable, you probably just want to use "visual-line-mode", as that
sets it and also adjusts some navigation keybindings to account for the soft
wrapping. Works pretty well, overall.

------
allending
What is the best way to actually learn emacs? I'm a vim guy who is curious
enough to switch but I'd rather just hack the introductory process and get to
the fun bits.

~~~
VLM
The most interesting cultural observation thats not often talked about is bare
emacs and bare vi are equivalent-ish, but all the "cool" stuff in emacs is in
the addons.

If you just use bare emacs you'll think its pretty boring and not see any
productivity gains.

If you use a pre-packaged set for emacs, you'll be utterly overwhelmed trying
to learn a million things at once. There are no pre-pack sets with just
systemic improvements.

Another cultural thing is there's addons for emacs that improve everything
(like helm) and addons that provide one nifty feature (like magit) and addons
that are affinity specific (like clojure-mode thats of interest to clojure
coders but not likely other coders). So we call them all the same thing, addon
or extension or whatever, but there's 3 classes of thing with that name that
differ in how you interact with them and they interact with you.

So ... my advice is install your vanilla emacs, put in the stereotypical
system wide addons maybe just helm, and then add one package at a time
figuring out what they do.

Aggressive-indent rather forcefully indents your code as it sees fit, which
some like, others hate. Maybe a good place to start?

So projectile and helm-projectile makes opening files in the same project
simple. It understands your git repos and you can open any file in that repo
and a lot of other repo related stuff.

And perspective lets to segregate multiple project buffers so however unwise
it is, you can work on multiple separate real world projects at the same time.

And flycheck does on the fly highlighting of errors in your code.

And magit does git inside emacs sorta

rainbow-* does colorful syntax highlighting (or drives people nuts)

yasnippet adds tab completion (so "i" "f" "tab" give you a whole if-then
stanza ready for editing, depending on your language)

Trying to add all that at once would drive you nuts, so one package at a time
till you feel OK with it. I still don't entirely feel OK with magit, whatever.

There's also language specific packages although cider and clojure-mode will
be quite useless unless you code clojure, etc.

~~~
TeMPOraL
I very much second this comment.

Learning Emacs is a very interactive process (much as Emacs itself). It's best
to introduce new extensions one by one as you need them, and spending some
time using them.

I consider myself a noob Emacs user (having been using it exclusively for the
last 4+ years), and here's a trick I use if I feel overwhelmed/annoyed by some
extension: I decide to spend 30-60 minutes (to the clock; personally I measure
it in pomodoros) practicing the mode itself. Such focused learning gives
wonderful results. For instance, I spent 30 minutes on learning multiple-
cursors.el and now I can't imagine living without it. Or I was always confused
by Paredit, but it took about one hour of practicing it to become proficient
in it. Again, I now can't imagine working in Lisp without Paredit.

Discovering interesting modes can be a task in itself; I suggest browsing
through at least Emacs Rocks short videos[0], they introduce many a handy
utility.

[0] - [http://emacsrocks.com/](http://emacsrocks.com/)

~~~
VLM
@melpa_emacs twitter feed automatically lets you know packages that are under
development. That doesn't mean they're any good LOL, but it does mean they're
definitely not abandoned.

meta x package-list-packages or something like that and scroll thru 3000 or so
packages. I used to do that with Debian in the 90s or so when there were only
a couple thousand packages, to see whats new.

HELM input method addon for emacs is interesting. So you hit alt-x and type
pac (spacebar) lis and it searches the command list for the regex _pac_
(logical AND) _lis_ and returns the set of scrollable results. Its why I don't
remember if the command is packages-list-packages or elpa-list-package-list or
whatever, no cognitive need anymore, you want a list of packages you type some
of the word package, spacebar and some of the word list, and its right there,
ready for up and down arrow and hit enter. And HELM is applied to pretty much
everything in emacs, running commands, switching buffers, opening files,
projectile addon stuff... pretty awesome. I think it took me about a month to
completely break my decades old tab completion habit when opening files LOL.

Just scrollin about the emacswiki finds some interesting addons.

Finally if you install a pre-pack of 50 addons and init file, you'll be blown
away, but they can be a nice map or todo list. I think that was how I
discovered perspective addon, I'd seen it and shrugged shoulders, but everyone
likes it in the lists of pre-packs so I gave it a try, and I really liked it
after trying.

AFAIK there is no "emacs addon of the week" twitter feed or podcast or
screencast. This would be an interesting microstartup for some bored new emacs
user. "Lets play" screencast video series on youtube featuring exactly one
emacs extension per episode sounds fun.

------
josch
[http://www.sxemacs.org](http://www.sxemacs.org), an xemacs fork, works as a
window manager. hasn't been updated in a while, though.

------
ramnes
Since the goal is a low VM footprint, rather than install a X on the VM, I'd
rather use Emacs as my kernel init process and simply use my host web browser
when needed.

------
Gurkenmaster
I was already doing this on arch but I wasn't aware of the fullscreen mode so
I used matchbox as a simple fullscreen window manager.

------
riquito
> I always grin when I read the change log in the release notes of any window
> manager project. It begins by complaining that all other window managers are
> bloated, and that this one will be small and efficient, [...] and soon the
> project is just as big as the competition

I bet he doesn't grin thinking about how many things can Emacs do other than
editing text. That said, I like people with peculiar workflows, they open up
ideas and discussions.

p.s. xmonad + vim is the true way ;-)

~~~
TeMPOraL
Well, Emacs doesn't claim to be just a text editor. It's a living Lisp
instance with text-editing utilities bolted on top of it.

------
sblom
I thought you were going to demonstrate x11-mode or something! Whew.

------
pjmlp
The 80's are back, except Emacs fails short of being Genera.

~~~
wtbob
Yeah, but it has the virtue of existing, unlike (sadly) Genera.

One of the reasons I like to use stumpwm (c.f. supra) is that I have an
always-running Common Lisp process which I can connect to. I have some ideas
about how to make it even cooler, but sadly I've not explored them yet.

------
ttmarek
Does anyone know what theme he's using?

~~~
Nashie
He mentioned Tomorrow Night in one of his YouTube videos. Don't know about his
windows status bars tho.

------
raphaelss
Does it handle multiple screens?

------
ndesaulniers
everything but a good text editor... :P

------
0xFFC
emacs is my os and almost everything!

------
sklogic
If only eshell was more usable. My favourite setup so far is i3 + emacs +
xterm.

~~~
chriswarbo
There's eshell, shell and term, each with tradeoffs (see on of my other
comments). I have an external terminal running tmux and a bunch of curses
programs (wicd-curses, alsamixer and cmus) but do everything else in shell
mode or eshell mode.

To me, the killer feature of shell mode is the ability to manipulate the
buffer contents like any other file. The killer feature of eshell is its
built-in TRAMP support, for manipulating and opening remote files
transparently. Eshell's lack of pipes makes shell mode my default though.

~~~
omaranto
Does eshell lack pipes? I thought it had pipes and output redirection and
lacked only input redirection.

