ElScreen
[ English | Japanese ]

News

December 30, 2007

  • ElScreen is updated to version 1.4.6.
    • elscreen-display-tab now takes t, nil, or integer. t means display tabs whose width is automatically calculated, integer means display tabs with fixed with, and nil hides tabs. elscreen-tab-width has been removed.
    • elscreen-tab-display-kill-screen now takes 'left, 'right, and nil. 'left and 'right means display "[X]" icon at the left/right side of each tab respectively. nil hides the icon.
    • M-mouse-1 on the "[X]" icon is now assigned to (elscreen-kill-screen-and-buffers).
    • Fix bug related to dedicated window.
    • Fix bug related to delete-window.

November 23, 2007

  • ElScreen-server is updated to version 0.2.0.
    • Use dframe-attached-dframe if selected frame is dedicated (this behavior is configurable). This will be usefull when you use Speedbar for instance.

November 19, 2007

  • ElScreen-ColorTheme is newly released (version 0.0.0).
    • When faces for ElScreen are not included in selected theme, suitable faces are automatically generated.

November 18, 2007

  • ElScreen-Speedbar is newly released (version 0.0.0).
    • Create new screen if needed when you open a file from speedbar.
    • dframe-power-click (typically assigned to S-mouse-1) invokes the original behavior; new screen won't be created.

November 07, 2007

  • ElScreen-GF is updated to 1.5.3.
    • Store the points where you started GF searches. You can go back to these points with C-z C-g u
    • Don't use sed to format the outputs of grep etc.
    • Eliminate old-style backquotes.
    • Many minor changes to add some new features later.

November 03, 2007

  • ElScreen-WL is updated to version 0.8.0.
    • Add subject string to screen nickname if exists.
    • Select summary buffer after a buffer for replay or forward is created as expected.
    • Eliminate old-style backquotes.

October 12, 2007

  • ElScreen-server is updated to version 0.1.0.
    • Support server.el r1.131 or later (after multi-tty branch is merged).
    • The constraint that elscreen-server.el should be evaluated after server.el or gnuserv.el is loaded is now removed.

December 06, 2006

  • ElScreen is updated to version 1.4.5.
    • Fix bug that occurs on XEmacs and Emacs 21.

December 01, 2006

  • ElScreen is updated to version 1.4.4.
    • Add tab to XEmacs (if it's capabile to display tab).
    • Tab to control screens replaces tab to create new screen.
    • Fix some minor bugs.

November 12, 2006

  • ElScreen-GF is updated to version 1.5.2.
    • Support GNU GLOBAL.
    • Ask to select what to do instead (execute mkid or grep) when you execute gid but `ID' cannot be located.
    • Fix some minor bugs.

July 26, 2006

  • ElScreen-W3M is updated to version 0.2.2.
    • Make sure that favicon is displayed correctly.

July 25, 2006

  • ElScreen-howm is updated to version 0.1.0.
    • Migrate to howm 1.3.3. Those who use howm 1.3.2 or earlier should use ElScreen-howm 0.0.1.
  • ElScreen-server is updated to version 0.0.1.
    • Fix bug that error is occured when directory is specified to gnuclient.
    • Suppress new frame on gnuserv.

Feburary 19, 2006

  • ElScreen-WL is updated to version 0.7.0.
    • Biff icon is shown on ElScreen's tab.

January 03, 2006

  • ElScreen-GF is updated to version 1.5.1.
    • Fix bug that (elscreen-gf-db-directory) causes infinite loop on Windows.

December 26, 2005

  • ElScreen-GF is updated to version 1.5.0.
    • Add support for regexp as a keyword to search.
    • Add support for cscope, which is bound to <prefix> C-g c.
    • Now ElScreen-GF looks for token database (ID for ID Utils, cscope.out for cscope). File names in ElScreen-GF buffer is shown as relative path to where token database is stored.
    • Support XEmacs.
    • Add (elscreen-gf-grep-quit) to delete grep process, bound to C-g.
    • Add (elscreen-gf-mode-exit) to exit from ElScreen-GF buffer. This deletes ElScreen-GF buffer and its window (or screen when there is only one window).

December 17, 2005

  • ElScreen is updated to version 1.4.3.
    • (elscreen-select-and-goto) originally bound to <prefix> g is now bound to <prefix> ". This new key binding is more compatible with GNU Screen.
    • Fix bug that tabs are not updated on GNU Emacs 21 in some case.
    • Fig bug that current-buffer is changed unintentionally around (make-frame).
  • ElScreen-dnd is newly released (version 0.0.0).
  • ElScreen-W3M is updated to 0.2.0.
    • Fully re-rewritten to use ElScreen's tab more effectively.
  • ElScreen-howm is updated to version 0.0.1.
    • Fix bug that current-buffer is changed unintentionally around (howm-create-file-with-title).

December 09, 2005

  • ElScreen is updated to version 1.4.2.
    • Improve performance of updating status.
    • Add (elscreen-clone) bound to <prefix> C.
    • Add (elscreen-kill-screen-and-buffers) bound to <prefix> M-k.
    • Add (elscreen-dired) bound to <prefix> d.
    • Accept command line option, -e or --elscreen-funcall, which calls function with new screen. Now you can invoke emacs like following:
      emacs -e gnus -e w3m

November 24, 2005

  • ElScreen-GF is updated to version 1.4.1.
    • Fix bug that (elscreen-gf-mode-jump-to-entry) jumps wrong point when the search pattern is at beginning of the line.
    • Improve the behavior of (elscreen-gf-execute-grep).

November 22, 2005

  • ElScreen is updated to version 1.4.1.
    • (elscreen-find-and-goto-by-buffer) switches to the selected buffer.
    • Add (elscreen-find-file-read-only) bound to <prefix> C-r.

November 22, 2005

  • ElScreen is updated to version 1.4.0 with several new features.
  • ElScreen-GF is almost rewrtten and updated to version 1.4.0.
  • ElScreen-server is newly released (version 0.0.0).
  • ElScreen-howm is newly released (version 0.0.0).
  • Following add-on softwares are updated without any new features, to keep compativility with ElScreen 1.4.0.
    • ElScreen-dired 0.1.0
    • ElScreen-WL 0.6.0
    • ElScreen-W3M 0.1.0

Introduction

Emacs is more of an "environment" than just an editor, since it has the strong configuration language, emacs-lisp. There are a lot of applications written in emacs-lisp, and you may run many applications on your Emacs at the same time, i.e. e-mail reader, news reader, IRC client, a kind of IDE, etc. These applications likely consist of two or more windows, so when you switch among applications, you may want to save or restore how windows are located (this is called as "window-configuration"). For this purpose, Emacs has two functions, window-configuratin-to-register and jump-to-register, but these are too primitive to use on a daily basis.

ElScreen provides the ease-to-use environment to save or restore several window-configurations. For instance, you just have to type C-z C-a to switch following two window-configurations:

Screen 0 (Wanderlust) >>
<<
Screen 1 (w3m)

Features

Key features of ElScreen are:

  • Key bindings are similar to GNU Screen.
  • Screens are tabbed which makes it easier and faster to switch among applications.
  • ElScreen menu is also added to menu-bar to create, select or delete screens.
  • Each frame keeps up to 10 window-configurations.
  • List of screens can be shown in mini-buffer.
  • You can assign your own name to each window.

Environment

Following emacs variants are confirmed to run ElScreen:

  • GNU Emacs 22.0.50 (including Meadow 3.00-dev)
  • GNU Emacs 21.4
  • GNU Emacs 21.3
  • GNU Emacs 21.2
  • XEmacs 21.4
  • XEmacs 21.5

Tips

How to iconify (or suspend) Emacs?

C-z is assigned to iconify-or-deiconify-frame (or suspend-emacs), however ElScreen reassigns this key to its prefix key. How can we iconify (or suspend) our Emacs?

Ask emacs where iconify-or-deiconify-frame on with "C-h C-w iconify-or-deiconify", and it will reply with "iconify-or-deiconify-frame is on C-x C-z". ... Yes, you can also use C-x C-z to iconify-or-deiconify (or suspend-emacs)!

Of course you can change it by setting elscreen-prefix-key as following:

(setq elscreen-prefix-key "\C-z")

Note: You must set this value before ElScreen is loaded.

How to change prefix-key after ElScreen is loaded?

As described above, ElScreen prefix key can be changed by setting elscreen-prefix-key. However, this will not have any effect after ElScreen is loaded. Even in this case, you can change it with elscreen-set-prefix-key as following:

(elscreen-set-prefix-key "\C-t")

How to create screen automatically when there is only one screen?

C-z C-n, C-z C-p and suchlike are used to switch screen. When there is only one screen, these commands just warn and exit. Following code fragment makes new screen for you automatically in that case, just put this to your .emacs.

(defmacro elscreen-create-automatically (ad-do-it)
  `(if (not (elscreen-one-screen-p))
       ,ad-do-it
     (elscreen-create)
     (elscreen-notify-screen-modification 'force-immediately)
     (elscreen-message "New screen is automatically created")))

(defadvice elscreen-next (around elscreen-create-automatically activate)
  (elscreen-create-automatically ad-do-it))

(defadvice elscreen-previous (around elscreen-create-automatically activate)
  (elscreen-create-automatically ad-do-it))

(defadvice elscreen-toggle (around elscreen-create-automatically activate)
  (elscreen-create-automatically ad-do-it))

How to display the list of screens on the frame-title of my Emacs?

Following code fragment will help those who does not want the tabs to occupy valuable space on their Emacsen but display the list of screens somewhere. This displays it on the frame-title of your Emacsen. (This code fragments now uses set-frame-name instead of setting frame-title-format if set-frame-name is avaiable, suggested by Evgeny V. Oleynik).

(defun elscreen-frame-title-update ()
  (when (elscreen-screen-modified-p 'elscreen-frame-title-update)
    (let* ((screen-list (sort (elscreen-get-screen-list) '<))
	   (screen-to-name-alist (elscreen-get-screen-to-name-alist))
	   (title (mapconcat
		   (lambda (screen)
		     (format "%d%s %s"
			     screen (elscreen-status-label screen)
			     (get-alist screen screen-to-name-alist)))
		   screen-list " ")))
      (if (fboundp 'set-frame-name)
	  (set-frame-name title)
	(setq frame-title-format title)))))

(eval-after-load "elscreen"
  '(add-hook 'elscreen-screen-update-hook 'elscreen-frame-title-update))

Add-On Software

There are some add-on softwares for ElScreen.

ElScreen-GF

GNU ID Utils is a package of language independent tools that indexes tokens in source codes. Through ID database, it becomes much easier to list these tokens.

ElScreen-GF is an Emacs interface to GNU ID Utils. With this add-on, you can list tokens with filename and line number in which each token apper, select interesting entries, and jump to them more easily, making use of ElScreen.

ElScreen-GF 1.5.0 or later also supports cscope, and 1.5.2 or later supports GNU GLOBAL. Moreover, 1.5.0 or later is expected to run on XEmacs.

ElScreen-dired

In dired-mode, dired-find-file-other-window, which is bound to "o", opens the entry in another window. With ElScreen-dired, new screen is created for the selected entry if it is a regular file.

ElScreen-server

Emacssen has the ways to access from remote program, emacsclient or GNUServ, and can ask running emacs to open files through these programs. With ElScreen-server, new screens are automatically created for each file.

ElScreen-dnd

On some window system, such as MacOS X, Microsoft Windows, X Window System with some cool toolkit, you can drag & drop files from a file manager to your emacsen to open. With ElScreen-dnd, new screens are automatically created for each file.

ElScreen-Speedbar

Speedbar creates a special frame which makes it easier to handle files; browsing directories/files and opening them for instance. ElScreen-Speedbar allows you to open a file from speedbar in new screen. "power click" which is typically assigned to S-mouse-1 invokes the original behavior; new screen won't be created.

ElScreen-WL

Wanderlust is a mail and news client which can manage internet messages with IMAP. ElScreen-WL Add-On software provides the capability to manage draft buffers of Wanderlust effectively in conjunction with ElScreen. When you write new message or reply message, new screen is created for the draft buffer, and when a draft buffer is killed or a message is submitted, the screen for this draft buffer is automatically closed.

ElScreen-W3M

Emacs-W3M is the Web browser on Emacs variants using w3m. It supports tabbed browsing, so ElScreen's tabbing capability is incompatible with it. ElScreen-W3M resolves this incompatibility by integrating Emacs-W3M's tabbing into ElScreen.

ElScreen-ColorTheme

ColorTheme provides more tham 50 color themes for your use. Most of them does not have face definitions for ElScreen, and ElScreen-ColorTheme will automatically generate suitable faces in such a case.

Download

ElScreen and Add-On softwares can be retrieved here. You can also find prior version in "old" directory.

ElScreen
Latest version: 1.4.6 (December 30, 2007)
ElScreen-GF
Latest version: 1.5.3 (November 07, 2007)
ElScreen-dired
Latest version: 0.1.0 (November 20, 2005)
ElScreen-server
Latest version: 0.2.0 (November 23, 2007)
ElScreen-dnd
Latest version: 0.0.0 (December 17, 2005)
ElScreen-Speedbar
Latest version: 0.0.0 (November 18, 2007)
ElScreen-WL
Latest version: 0.8.0 (November 03, 2007)
ElScreen-W3M
Latest version: 0.2.2 (July 26, 2006)
ElScreen-howm
Latest version: 0.1.0 (July 25, 2006)
ElScreen-Goby
Latest version: 0.0.0 (September 12, 2005)
ElScreen-ColorTheme
Latest version: 0.0.0 (November 19, 2007)