21 Nov

Open Gnus article in new tab

Tuesday November 21st 2006, 6:08 pm
Tags: , , , ,

And yet another Emacs hack: open an article from the Gnus summary buffer in another elscreen tab by pressing C-RET. Gnus does not support multiple article buffers for the same group, so I select the article below the cursor, rename the buffer to something else and restore the previous selected article. Works fine ™. Only drawback: most Gnus command like “reply” will not work, or more precisely they will be relative to the current article in the real *Article* buffer.

(defun my-show-article-other-window ()
  (interactive)
  "Show article in a seperate window from Gnus summary buffer"
  (mapcar
   (lambda (article)
     (elscreen-find-and-goto-by-buffer gnus-summary-buffer)
     (let ((show-article
            (lambda ()
              (gnus-summary-select-article nil ‘force ‘pseudo article)
              (gnus-summary-select-article-buffer)
              (let ((new-name (concat "*Article " gnus-newsgroup-name
                                      "/" (number-to-string article) "*")))
                (if (get-buffer new-name) (kill-buffer (get-buffer new-name)))
                (rename-buffer new-name)
                new-name))))
       (elscreen-create)
       (switch-to-buffer
        (save-window-excursion
          (save-excursion
            (if (gnus-buffer-live-p gnus-article-buffer)
                (let ((old-article (cdr gnus-article-current))
                      (new-name (funcall show-article)))
                  (gnus-summary-select-article nil ‘force ‘pseudo old-article)
                  new-name)
              (funcall show-article))))))
     (gnus-summary-work-articles nil))))

(define-key gnus-summary-mode-map [(control return)] ‘my-show-article-other-window)

0 Comments

21 Nov

Tabbed Emacs

Tuesday November 21st 2006, 10:29 am
Tags: , ,

You like Firefox’s tabs to clean up your screen and keep an overview of which pages are open? Of course Emacs can do that as well: elscreen.
With the following code you can open new tabs with C-t and close them with C-x C-c (yes, the way you normally quit your Emacs; Firefox uses C-w which is used in Emacs for cutting text though). Every tab can be split into windows as you like of course.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Elscreen - http://www.emacswiki.org/cgi-bin/wiki/EmacsLispScreen
(load "elscreen" "ElScreen" t)
(global-set-key (kbd "<C-tab>") ‘elscreen-toggle)
(global-set-key [(control shift right)] ‘elscreen-next)
(global-set-key [(control shift left)] ‘elscreen-previous)
(global-set-key [(control t)] ‘elscreen-create)
(elscreen-set-prefix-key "\C-j")

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; C-x C-c closes frame or tab
(global-set-key "\C-x\C-c" ‘intelligent-kill)

(defun intelligent-kill ()
  "quit the same way no matter what kind of window you are on"
  (interactive)
;  (kill-buffer (buffer-name))
  (if (and (not (elscreen-one-screen-p)) (elscreen-kill))
      (message "Killed screen")
    (if (eq (car (visible-frame-list)) (selected-frame))
        ;;for parent/master frame…
        (if (> (length (visible-frame-list)) 1)
            ;;a parent with children present
            (delete-frame (selected-frame))
          ;;a parent with no children present
          (save-buffers-kill-emacs))
      ;;a child frame
      (delete-frame (selected-frame)))))

0 Comments

15 Nov

Fenster/Tab-Überflutung

Wednesday November 15th 2006, 9:03 am
Tags: , ,

Die Webseiten, die man selbst gestaltet, sind natürlich die wichtigsten. Und für wichtige Webseiten dürfen es auch mal ein paar Fenster mehr sein, damit der Nutzer auf der anderen Seite der IP-Verbindung auch ja nichts übersieht. Raus kommt bei dieser Einstellung dann manchmal so was:

Auf dem Weg von der Startseite der Stadtsparkasse München zur Anmeldung fürs Online-Banking wird man mit drei Fenstern bzw. drei Tabs zugekleistert. Ist natürlich schade, wenn dem Kunden beim Klicken auf einen Link die Chance genommen wird, die aktuelle Seite weiter zu betrachten. Drum öffnen wir mal eben für jeden Klick ein neues Fenster. Der aufgeklärte Internet-Benutzer ist jedoch sehr wohl in der Lage, in seinem Browser mit “Vor” und “Zurück” selbst zu navigieren und möchte selten entmündigt werden von der Entscheidung, wann er neue Tabs und Fenster benötigt und wann nicht.

0 Comments