Depending on why you want this behavior, you might find this project useful: https://github.com/sdegutis/project-buffers.el -Steven On Wed, Apr 10, 2013 at 3:52 PM, João Távora wrote: > So I needed to scratch a code-browsing itch and came up with this monster: > > (defvar joaot/browse-frame) > (setq joaot/browse-frame (new-frame)) > (setq display-buffer-alist > `((joaot/browse-buffer-p . (joaot/browse-buffer-in-special-frame . > nil)))) > > (defun joaot/browse-buffer-p (buffer action) > (declare (ignore action)) > (let ((buffer (and buffer > (get-buffer buffer)))) > (and (frame-live-p joaot/browse-frame) > buffer > (buffer-file-name buffer) > (string-match "someproject" (buffer-file-name buffer))))) > > (defun joaot/browse-buffer-in-special-frame (buffer alist) > (let ((window (frame-selected-window joaot/browse-frame))) > (window--display-buffer buffer window 'reuse alist))) > > (defadvice switch-to-buffer (around joaot/browse-buffer-maybe activate) > (if (joaot/browse-buffer-p buffer-or-name nil) > (display-buffer buffer-or-name) > ad-do-it)) > > Do you see what it is doing? Whenever I switch to a buffer or file > belonging to "someproject", which I only want to read, it makes sure > the buffer is displayed in a special "browse-frame" created beforehand > and that lives in my secondary monitor. > > This is not quite "dedicated windows". It's sort of frames dedicated > to buffers. > > Does anyone know of a less hackish way to do this? The defadvice is > particularly nasty... Do you see this breaking anything important that > I'm not seeing?? > > Thanks in advance, > J > > PS: yes I refuse to open a secondary emacs instance on principle :-) > >