Hackers' Screenshots
Show us how you hack!
Show us how you hack!
Those are my six workspaces merged into one image. I use Linux+ion3 and emacs.
Pretty common for old-school desktops back when X had bitmap fonts that looked poor at large sizes, but personally I'm glad we have the choice now.
And for an actual screenshot: http://en.wikipedia.org/wiki/Image:Stumpwm-2008-08.png
The first is a 5.2 megapixel quin-head, the second is a plain ol' 1024x768 mono-head.
Wait, there's two laptops... How's that work?
If you've never heard of it, you're missing out.
Two or more machines, each with their own desktops, but one keyboard and one mouse.
When you move the cursor out the right of your first desktop, it appears at the left hand side of your next desktop - and so on and so on.
It turns as many desktops as you want into one virtual one.
Did I mention it rocks?
If you've got a Windows machine, there's also X2VNC.
Reading e-mail, hanging out on IRC, fixing some cut-n-pasted elisp:
http://disk.jrock.us/bingo/public/random/irc-color.png
Working on Perl stuff, reading e-mail:
http://disk.jrock.us/bingo/public/random/8-aug-2008-screensh...
(Shameless plug for Stylish-REPL: http://git.jrock.us/?p=Server-Stylish.git;a=summary)
A desktop without distractions:
http://disk.jrock.us/bingo/public/random/8-aug-2008-screensh...
Here is my Firefox desktop:
http://disk.jrock.us/bingo/public/random/firefox-screenshot....
Then I have another desktop where Amarok lives, although I mostly control it from emacs.
http://www.matasano.com/ba02a15a70759d0389a6fa3f4c1.png
Mac, Emacs, Ruby, Hex Fiend, Terminal. On a product day, instead of a research day, you'd sub CSSEdit in for Hex Fiend. On a blog day, maybe Illustrator too.
I don't even use Emacs as my REPL, even though it does a decent job for Python and Ruby. I want my up-arrow to work the way it does everywhere else, and I want to be able to cycle the interpreter process in less than a second. My .irbrc will load a per-directory .irbrc for me, so while I'm testing, CTR-D up-arrow enter will reset my test case for me.
Making Emacs does this was just too much of a pain.
As for hexl-mode --- have you ever used Hex Fiend? For that matter, have you ever used hexl-mode? I don't use hex editors only occasionally. I would pay money for a great hex editor. I would pay twice as much money never to have to use hexl-mode. Luckily, I don't have to do either; Hex Fiend is free. It is awesome. You can pull a 15 meg firmware image into it, and it won't even blink; you can search for a symbol table signature across that whole binary in sub-user time.
I'm not one of those people who wants their Emacs to do everything it can possibly do. I read my mail in Mail.app, and my news in NetNewsWire.
What do you get out of running your terminals in Emacs? I'm genuinely curious.
http://img381.imageshack.us/img381/5126/hackerdesktopyu3.png
The line wrapping isn't an issue because I usually make it much wider, and if when its wider there's still line wrapping, the person who wrote such code should probably be forced to endure great pain. Most programs I work on have a "please don't make 250-character-lines" policy, for good reason.
I do sometimes use vim, but I find that a simple tabbed GUI text editor gives me the most productivity. I've never liked IDEs, especially since I would rather just type "make" than try to use an internal build system. Add to this the fact that both my company and all my personal projects are based on the GNU toolset in some form or another.
:vsp
Syntax highlighting
:syntax on
Tabs
:tabnew
Bracket matching
:inoremap ( ()
:inoremap [ []
:inoremap { {}
And so many built-in tools...you really should take another look. I use TextMate on my Mac to churn out massive amounts of HTML, but any other editing happens in (G)Vim.
" Coding aids
set undolevels=5000
set backspace=indent,eol,start
vnoremap < <gv
vnoremap > >gv
" Braces, etc.
inoremap ( ()<LEFT>
inoremap (<CR> (<CR>)<ESC>O
inoremap () ()
inoremap { {}<LEFT>
inoremap {<CR> {<CR>}<Esc>O
inoremap {{ {
inoremap [ []<LEFT>
inoremap [<CR> [<CR>]<Esc>O
inoremap [] []
" Wrap in braces, etc.
vnoremap -( <ESC>`>a)<ESC>`<i(<ESC>
vnoremap -[ <ESC>`>a]<ESC>`<i[<ESC>
vnoremap -{ <ESC>`>a}<ESC>`<i{<ESC>
vnoremap -" <ESC>`>a"<ESC>`<i"<ESC>
vnoremap -' <ESC>`>a'<ESC>`<i'<ESC>
" End the line, adding a semicolon
inoremap <S-CR> <ESC>A;<ESC>o
noremap <S-CR> A;<ESC>j
I also use NERDCommenter for quick commenting, an XML tag wrapper script, and a tag closer script. As you can see above, typing the open/close pair doesn't result in "())", and typing an open brace plus a carriage return automatically adds the close brace to the line below, in the format: function hello($name) {
// Insertion point
}
Edit: Of course, that isn't my entire .vimrcThis is pretty personal, so I guess it's something you may want to at least give a try.
Line endings have significance in some languages. Even in languages where they don't, it can confuse you by looking like the end of an indentation level.
It shouldn't - any competent editor should have no line number on the area it wraps round.
(XMonad, so all you see is emacs. Big font because my laptop has small pixels and I have bad eyes. If anyone can recommend a better program font than Luxi Mono (O and 0 indistinguishable, bold letters are wider than regular, but I like the way it looks at this size), do tell.
I find ProFont and its relatives (http://www.tobias-jung.de/seekingprofont/index.html) quite readable as tiny programming fonts, but Terminus is my favorite medium/small programming font. It's the font in Emacs and the bottom statusbar in my screenshot (http://shenani.gen.nz/~scott/screenshot.png).
Obviously rearranged little. Firefox tends to be on the smaller screen opened up to whatever documentation I might need. Terminal lives over there, too. Textmate is fullscreen on the big screen most of the time with various other utilities (CocoaMySQL, Transmit, iTunes) living somewhere behind it.
Nothing special, Vim and a python interpreter.
My primary editor is Emacs. I don't usually use 3 different editors simultaneously.
http://www.ur-ban.com/galleryv2/d/15417-1/hn_001.jpg
Using: Flexbuilder, Textmate, Photoshop, VMFusion (Vista)
While I'm at it, I'll also plug the Kinesis Advantage keyboard and Cirque *Cat trackpads.
I usually have Terminal open as well.
I got it from Smashing Magazine; they release a bunch of awesome wallpaper at the beginning of every month and offer them with or without a calendar. You can find it here (August 2008):
http://www.smashingmagazine.com/2008/07/30/desktop-wallpaper...
FreeBSD + WindowMaker + Synergy Server on the left (IBM P3 from 2002 w/ 4g RAM and SCSI)
Windows XP on center and right screens (ThinkPad T60p), Synergy Client
I tend toward maximized windows in window managers that make it easy to do so (such as XP) but things get pretty messy when I can't.
Other aspects of this environment that you can't see from looking at it:
- Synergy is running on a crossover cable from the laptop docking station wired port to a dedicated ethernet port on the desktop. This makes synergy do the right thing whether the laptop is docked (do) or not (don't).
- I have focus follows mouse but no autoraise on both the XP and WMaker environments. Being able to have a PuTTY window on top of a browser window you're scrolling / typing on is nice.
- I tend toward smaller fonts whenever possible.
Dock (usually hidden): Minefield, Camino, Safari, Google Reader (fluid), Mail, TextMate, Terminal, Localhost (fluid), RailsDoc (fluid), Coda, Color Schemer Pro, CSSEdit, Transmit, OnTheJob, Photoshop, Yojimbo, iTunes, Fusion, System Preferences, Github (fluid)...
Menubar: Quicksilver, DropBox, Skitch, Mailplane, Monocle, Coversutra, TextExpander, SlimBatteryMonitor, Mozy, Little Snitch, Spaces, iStat Menu...
Wallpaper: http://interfacelift.com/wallpaper_beta/details/1596/big_cit...
Instead of using virtual desktops, I have one work area and alt+tab between Firefox and Gnome's Terminal app. My IM buddy list and IM window (also with tabs) always stays in the same place. If I'm reading a paper, it takes up the space used by Firefox and Terminal. Having tabs in Terminal means I don't have shells spread out all over place.
It's a brittle setup, in that it all depends on getting window sizes to match and then not changing them, but I've found it works very well for me.
Vim + Ubuntu.
Thats screenshot of one of my two screens. I place my laptop on the right and use synergy to connect. Do all my dev on 19" desktop and use laptop mainly for browsing, reading.
My dev env: WinXP, Python2.5, IPython, PyScripter, Aptana, Firefox + Firebug
Pretty basic. Emacs (in tuareg mode for OCaml), gnu screen with ncmpc & mpd (music), dwm window manager.
I merged workspaces 1 and 8 onto 4, otherwise it'd just be full-screen Emacs. (Which is how I hack, but makes for boring screenshots.)
There's a pretty good gallery here, incidentally: http://www.cs.cmu.edu/~maverick/GNUEmacsColorThemeTest/index... You can probably find at least a couple you like enough to start from.
http://www.flickr.com/photos/berlinbrown/2423596879/
http://www.flickr.com/photos/berlinbrown/2360945449/
I use Eclipse for project management and Emacs for actual coding.
Standard Ubuntu interface.
This is the only thing that's really unique about my desktop--it's the Factor IRC client, which I wrote(well, the UI part, at least, the IRC stuff is actually done by the person on the channel named "tizoc".)
beware, it's big - one 30" and one 24" monitor.
Emacs, preview for a couple of documents, a few shells so I can monitor progress of a training run, and some music.
http://www.dedasys.com/Screenshot.png
I don't see how people can live without virtual desktops.
Code/Terminal font is Consolas, editor is Kate
awesome window manager, hacker news in firefox
As less as possible at all, since the most important part is always deep down in your head (and subconscious, and never ever would be able to have some 'screen representation'...)
(Let's be sincere: all other super-cool stuff is only vanity...)