Showing posts with label conkeror. Show all posts
Showing posts with label conkeror. Show all posts

Conkeror: "Firefox for Emacs users"



This is my OLD blog. I've copied this post over to my NEW blog at:

http://www.saltycrane.com/blog/2008/01/firefox-for-emacs-users/

You should be redirected in 2 seconds.



I recently discovered Conkeror via Bill Clementson's article, Firefox for Emacs users . I must say it is pretty sweet. It's the type of thing that makes you have to get up and go to the bathroom because it's so exciting.

So I switched over to Emacs from Eclipse about 4 months ago. Though it has been slow learning everything in Emacs, I am starting to feel pretty comfortable now and actually feel uneasy when I'm using another editor. It is very nice to be able to do everything with the keyboard in Emacs. I can do all cursor movement, scrolling, and selection very nicely in Emacs. And all text manipulation commands are immediately accessible from the keyboard. Pair that with a bash command line running inside GNU screen, and I can do about 50% of my work without using a mouse. Of the other 50%, one big chunk is Microsoft Outlook which, as far as I know, I need because we are using an Exchange server. But the other big chunk is web browsing, which, up until now, has been very mouse dependent.

Enter Conkeror, the keyboard-driven web browser that "conkers" the web without a mouse. (I just made that up, btw. I do not know the origin of the name "Conkeror".) Conkeror is a Mozilla-based browser (e.g. Firefox) with an Emacs-like skin. Emacs users should feel at right home-- screen-stealing toolbars and menubars are gone. In their place is the modeline and mini-buffer. Commands are entered using M-x, switch buffers using C-x b, incremental search using C-s, and edit text using Emacs editing conventions. (Being a relative Emacs newbie, I actually rebound a lot of these to be more Windows/Firefox friendly. But I expect long time Emacs users would rejoice.)

In my opinion, the best part about Conkeror is the hyperlink navigation design. Hitting the f key while browsing highlights all possible hyperlinks (or focus areas) within the current view. Limiting the scope of choices to the current view is smart because you most likely won't want to follow a link that's not in the current view. To follow a link, there are two options. The first is to type in the link number which is overlaid in the top left corner of each link. The second method is to start typing any part of the link text and tab through the remaining selections. A different color highlight shows which link is currently selected. The second method is very fast-- however, the first method is more robust in that it can handle links with no text or a large number of links with similar text.

Conkeror is currently being actively developed and can be considered to be alpha stage software so there are issues and bugs. Also the documentation seems to be pretty sparse. However, to me, it looks like a really great tool with a potential for much more efficient and comfortable browsing. Kudos to the authors.

Will I ditch Firefox for Conkeror? That question remains to be answered. I hope the answer will be yes. I plan to use it for a few days and see if I run across any deal-breakers. Hopefully, with Conkeror, I can up my mouseless activity to around 70%.

Below are some notes on using Conkeror. I am using the snapshot XULRunner version of Conkeror on Windows XP.



How to set a proxy server

Assuming you have your proxy configured in Firefox already...

  • Type g about:config and hit ENTER in Conkeror.
  • Hit ENTER to promise you'll be careful.
  • Hit TAB to get to the "Filter:" box and type in "proxy".
  • Go to about:config in Firefox and filter on "proxy".
  • Make the relevant settings in Conkeror match Firefox. Make sure you set "network.proxy.type" in addition to the proxy servers. (If you were wondering, no, I don't know how to set these preferences without using the mouse.)


Here is my .conkerorrc file:

See also dotfiles.org for a few more.

// new bindings
define_key(default_global_keymap, "C-w", "kill-current-buffer");

// rebound from global.js
define_key(default_global_keymap, "h", "find-url");
define_key(default_global_keymap, "f1", default_help_keymap);
define_key(default_global_keymap, "b", "switch-to-buffer");
define_key(default_global_keymap, "C-f", "isearch-forward"); 
// note, i had to comment out the "C-f" binding in basic-commands.js to make this work

// rebound from isearch.js
define_key(isearch_keymap, "C-f", "isearch-continue-forward");

// rebound from normal.js
define_key(content_buffer_normal_keymap, "back_space", "go-back");
define_key(content_buffer_normal_keymap, "S-back_space", "go-forward");

// rebound from element.js
//define_key(content_buffer_normal_keymap, "k", "bookmark");

// rebound from basic-commands.js
define_key(content_buffer_normal_keymap, "home","beginning-of-line");
define_key(content_buffer_normal_keymap, "end","end-of-line");
define_key(content_buffer_normal_keymap, "C-home","cmd_scrollTop");    
define_key(content_buffer_normal_keymap, "C-end","cmd_scrollBottom");

// rebound from text.js
define_key(content_buffer_text_keymap, "home", "cmd_beginLine");
define_key(content_buffer_text_keymap, "end", "cmd_endLine");
define_key(content_buffer_text_keymap, "C-left", "cmd_wordPrevious");
define_key(content_buffer_text_keymap, "C-right", "cmd_wordNext");
define_key(content_buffer_text_keymap, "C-y", "cmd_redo");
define_key(content_buffer_text_keymap, "C-z", "cmd_undo");
define_key(content_buffer_text_keymap, "C-v", "cmd_paste");
define_key(content_buffer_text_keymap, "C-x", "cmd_cut");
define_key(content_buffer_text_keymap, "C-c", "cmd_copy");

// new for textarea.js
define_key(content_buffer_textarea_keymap, "home", "cmd_beginLine");
define_key(content_buffer_textarea_keymap, "end", "cmd_endLine");
define_key(content_buffer_textarea_keymap, "C-left", "cmd_wordPrevious");
define_key(content_buffer_textarea_keymap, "C-right", "cmd_wordNext");
define_key(content_buffer_textarea_keymap, "C-y", "cmd_redo");
define_key(content_buffer_textarea_keymap, "C-z", "cmd_undo");
define_key(content_buffer_textarea_keymap, "C-v", "cmd_paste");
define_key(content_buffer_textarea_keymap, "C-x", "cmd_cut");
define_key(content_buffer_textarea_keymap, "C-c", "cmd_copy");

// rebound for textarea.js
define_key(content_buffer_textarea_keymap, "C-home", "cmd_moveTop");
define_key(content_buffer_textarea_keymap, "C-end", "cmd_moveBottom");

// rebound from zoom.js
define_key(content_buffer_normal_keymap, "C-subtract", "zoom-out-text");
define_key(content_buffer_normal_keymap, "C-add", "zoom-in-text");

// webjumps 
add_delicious_webjumps ("sofengboe");
add_webjump("g", "www.google.com/search?q=%s");
add_webjump("d", "del.icio.us/sofengboe/%s");
add_webjump("blank", "about:blank");
add_webjump("iwi", "iwiwdsmi.blogspot.com");
add_webjump("pandora", "www.pandora.com");
add_webjump("reader", "www.google.com/reader");


How to search the Conkeror mailing list archive

Don't use the one linked from the Conkeror website. Instead use: http://www.nabble.com/MozDev---conkeror-f11304.html



How to get out of Adobe reader when visiting a pdf file

See this thread on the MozDev - conkeror mailing list archive.



How to copy a link

Use the c command.



add_command doesn't work!

Per the ChangeLog, it was renamed to interactive. I still can't figure out how to use message though.



How to uninstall XULRunner

Run the command xulrunner --unregister-user and then delete the xulrunner directory. If you deleted the xulrunner directory without unregistering, delete the registry items in HKEY_CURRENT_USER\Software\mozilla.org\GRE on Windows, or the directory ~/.gre.d on Linux.


[Read the full post...]

My software tools list



This is my OLD blog. I've copied this post over to my NEW blog at:

http://www.saltycrane.com/blog/2007/08/current-configuration/

You should be redirected in 2 seconds.



Below is a table of my current software configuration. If you notice a lot of "I switched from ..." statements, keep in mind that I am a programmer who likes shiny things.

Category Currently using Comments
Operating System Ubuntu 8.04, Windows XP, Windows Vista Work Desktop: Ubuntu Hardy via coLinux on Windows XP and Cygwin when needed.
Home Laptop: dual-boot Windows Vista with Cygwin and Ubuntu Hardy
Home Desktop: Ubuntu Hardy

I am in the process of migrating from Windows to Linux. My first Ubuntu install was in 2007 (dual-boot) and I got my first Windows-free machine in 2008. Currently I am using Cygwin and coLinux when on Windows. Cygwin integrates better with Windows applications, but coLinux is super fast and allows you to run a full Linux distro on top of Windows. Windows does have some advantages, but overall I prefer Linux.

I don't have enough experience with OSX to draw any authoritative conclusions, though I think Mark Pilgrim has biased me against Apple. Also, I think Linux's free as in beer (and somewhat related free as in speech) characteristics vs. Mac's expensive (and somewhat related proprietary) characteristics resonate with the cheap engineer in me.

Additional Linux vs. Mac commentary from some A-list geeks:
Window Manager wmii Dynamic, tiling, scriptable window manager that doesn't require a mouse. It sucks less.

I switched from ratpoison at the same time I started using coLinux because running native Linux allowed me to use any Linux window manager as well.

Recently, some have switched from wmii to xmonad, the new Haskell tiling window manager. It has some nice features over wmii, including dual head support, but after a brief excursion, I slightly prefer wmii's way of doing things.

If you're a hard core Lisper, stumpwm is the window manager for you. It has a REPL. This one seems a little too hard core for me, especially since I don't know Lisp (yet).

Other options: ion, dwm, awesomewm

Editor/IDE GNU Emacs Switched from Eclipse in 2007. It was a slow transition, but worth it. I think Emacs is definitely worth the investment if you do a lot of coding.

Terminal urxvt +
screen
urxvt supports xft (anti-aliased) fonts, real transparency (not that I actually use transparency with wmii), and fading (which I do use with wmii) and it is much lighter than gnome-terminal or konsole. screen allows me to switch terminal sessions without ugly tabs, attach to remote sessions, search through the scrollback buffer, and more.

Version Control System Mercurial Switched from Subversion in June 2007. The merging in Mercurial is very nice and can be done without thinking. I do miss Subversion/Subclipse's revision history viewer, file compare, and ability to isolate files apart from changesets.

Compiled Language C Wouldn't mind learning C++. Although, Linus doesn't like it.

Dynamic Language Python 2.5 My love for python is strong. I switched from Perl in 2005 and have no regrets. Object-oriented, easy to read (no more TIMTOWTDI), and smart people use it. I also want to learn Javascript 2 becuase it is the "Next Big Language" and Lisp because it is the "most powerful language".

On Python vs. Ruby: from what I've read, I characterize Ruby as the more expressive language more similar to Perl (than Python is) and Python as the more regimented language. Since I like regimented, I like Python.

On Python vs. Lisp: I've concluded that I lack the intelligence to harness enough of Lisp's power to counteract its non-practicality (e.g. lack of libraries).

Some other links:
Paul Graham: Python is getting closer to Lisp (2002)
Paul Prescod: no it isn't

Web Framework Django I haven't tried much else, but Django is pretty cool.

Here are some links:
Ian Bicking: There's so much more than Rails (2005), What PHP deployment gets right (2008)

Web Browser Conkeror Not to be confused with Konqueror, Conkeror is an emacs-like, keyboard driven, scriptable, Mozilla-based web browser. I've used it almost full time since January 2008. It is still considered alpha stage software so there are a number of bugs. However, it is still pretty sweet. I use Firefox as a backup (and IE Tab for Launchcast and Netflix on Windows). Unfortunately, one of the annoying things in Firefox 2 is present in Conkeror as well-- memory leaks. Based on this Mozilla article and some brief personal experience, Firefox 3 has made fixes in this area. It would be nice if Conkeror could benefit from the Firefox 3 fixes.

Email/PIM Undecided Thunderbird?, Evolution?, Mutt?, Gnus?, Alpine?, Gmail?, Claws Mail?,

I currently use Microsoft Outlook with an Exchange Server at work. Evolution supports Exchange Server through Outlook Web Access (OWA), but I couldn't get it to work for me. Thunderbird (and I assume others) support Exchange through IMAP, but this is only available at work by special request.

Links:
Adam Gomaa chooses Claws Mail over Thunderbird, Evolution, Mutt, and Gnus (2007)

PDF Viewer KPDF Preferred over Gnome's Evince
Screen Capture KSnapshot Courtesy of Mark Pilgrim's essentials list
Graphical diff/merge KDiff3 I started using KDiff a while ago on Windows and have always liked it. I'm thinking, though, since I'm an Emacs person, I ought to use Ediff.
Updated 7/2/2008
[Read the full post...]

About

This is my *OLD* blog. I've copied all of my posts and comments over to my NEW blog at:

http://www.saltycrane.com/blog/.

Please go there for my updated posts. I will leave this blog up for a short time, but eventually plan to delete it. Thanks for reading.