From 379c716bc5e703fb5ca229256457868acb533fa6 Mon Sep 17 00:00:00 2001 From: Dieter Plaetinck Date: Sat, 2 Jan 2010 16:35:55 +0100 Subject: give a more objective pov of the multiple instances discussion + elaborate on possible directions and scripts --- docs/FAQ | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 55 insertions(+), 15 deletions(-) (limited to 'docs') diff --git a/docs/FAQ b/docs/FAQ index 4a29663..b61107d 100644 --- a/docs/FAQ +++ b/docs/FAQ @@ -24,21 +24,61 @@ tools and scripts, by itself doesn't do many usefull things. See README. The layout of uzbl (and derivatives) only contains what you really need to see. we only have a statusbar, which even can also be disabled. There are no buttons, but we do have lots of keybinding possibilities. -### Why can uzbl-browser only show one page? -Among uzbl hackers, there are 2 groups: some people prefer tabs, they use -uzbl-tabbed. The others stick to "one page per uzbl-browser instance" because -it's a very flexible approach. They believe "multiple instances management" is something that must -be handled outside of uzbl by a separate/different program. Here are some solutions: - - * Many window managers can handle this by default. Xmonads tabbed layout, Wmii's stacked layout, fluxbox or kwin tabs and so on. - * Uzbl supports acting as a GtkPlug to plug into GtkSockets (Xembed) so you can embed uzbl instances in other Gtk applications. - (This is also what uzbl-tabbed does) - * If you want highest customizablity, you need the 3rd option: - You can also write a custom script. The only thing you need to do is focus/maximize the instance you want, - keep the others out of sight and use tools like dmenu and wmctrl to switch instances. - This allows you to use application-specific properties (such as uzbl tag, name etc). - For more information about this approach, see docs/multiple-instances-management. - (If you want to work on such script, let us know and we might include it along with the other sample scripts) +### Why can uzbl-core/uzbl-browser only show one page? +It is nearly unanimously agreed that one page per uzbl-core is best. +It allows a simple implementation of both uzbl-core and +uzbl-browser, and it makes things more robust. +But read the next entry... + +### How to have multiple pages in one window? +So, given that uzbl-core and uzbl-browser only deal with one page at a time (see +above), how can you have a window with multiple pages? + +Basically this is involves concerns on two sides: +* window management: can I keep all pages together in 1 X window so + that I can move all at once to a different workspace, can I "split off" + pages into separate windows (i.e. move only one specific page/window to a + different desktop), can I integrate uzbl pages/windows into WM features? + (alt-tab, tiling layouts, taskbar, ...), etc +* application-level: having a realtime overview of all page titles of all uzbl + instances, special representation styles which are tightly coupled to the + application such as treeviews that show from which you page you opened + others, or page state (loading etc) + +Uzbl itself can hardly be a limiting factor, as it supports/has: +* Xembed (GtkPlug mode) so you can embed a uzbl-browser or uzbl-core into another window +* an events system you can have realtime updates of window title, pageload state, etc. +* command interface to programmatically change it's behavior. + +And then there is the style of representation (tabs, tree overviews, visual +thumbnails etc) which can be handled from the WM side or the application +side. + +There are multiple approaches, each with pros and cons and you can pick the one that suits you best. + +* Tabbing in the WM: Xmonads tabbed layout, Wmii's stacked layout, fluxbox or kwin tabs and so on. +* Visual overview in the WM: commonly used with dwm or Awesome's tiling layouts with master/slave areas. + The [dynamic zoom script](http://www.uzbl.org/wiki/dynamic_zooming) is useful here. +* A container application whih embeds multiple uzbl-browsers and provide tablists, tree views, and more. + Examples: + - [uzbl-tabbed](http://www.uzbl.org/wiki/uzbl_tabbed) (officially supported) + - [uzbltreetab](http://www.uzbl.org/wiki/uzbltreetab) + - [uzbltab](http://www.uzbl.org/wiki/uzbltab) + - [suckless tabbed](http://tools.suckless.org/tabbed) +* An application to mimic tabbing independently of WM support. + The only thing you need to do is focus/maximize the instance you want, + keep the others out of sight and use tools like dmenu/xbindkeys and wmctrl to switch instances. + This allows you to use application-specific properties (such as uzbl tag, name etc). + For more ideas on such an approach, see docs/multiple-instances-management. + Examples: + - [wmctrl-based](http://www.uzbl.org/wiki/metacity-tabs) (works on at least Metacity) + - [wmii] (http://www.uzbl.org/wiki/wmii) + +There are really a lot of options. +On the wiki you'll find a lot of related scripts, some of them providing new +workflows (do you really need open windows for all pages you intend to read, or is a list enough? +[articlecue](http://www.uzbl.org/wiki/article_queue.py)), some providing integration with WM's such as +[awesome](http://www.uzbl.org/wiki/awesome), and more. ### Okay, what can I actually do? What commands are there? How do I get more information? * Commands and other features are documented in README. Read it. -- cgit v1.2.3