make my thinkpad into a typewriter

William O'Higgins Witteman william.ohiggins-H217xnMUJC0sA/PxXw9srA at public.gmane.org
Thu Sep 25 06:15:14 UTC 2008


On Wed, Sep 24, 2008 at 05:15:24PM -0400, Matt Price wrote:
>can't see enough text on the screen.  So  i'm looking for a lightweight
>window manager with the following characteristics:
>
>- boots very fast
>- tiled or tabbed interface
>- easy way to maximize a window to fill the whole screen (so, overriding
>the tiling).  
>- fast keybindings that don't conflict with emacs

I have used several over the years that can do things that you are
looking for.  For keyboard-heavy use I used wmii2 for a while, and it is
very good, fast and interesting.  Unfortunately, I needed the GIMP, and 
the philosophy of the GIMP is at odds with wmii2 (many floaty windows).
It worked, but it was clunky.  wmii2 has a steep learning/configuring
curve, but it is very good for leaving your hands on the home row and
still having the advantages of a GUI.

You may get other advice, but what I have settled on is OpenBox - a
blackbox variant that is nicely mature and does almost nothing, but has
great configurability.  I don't use widgets, but that would be how I
would keep tabs on battery life, etc.

To get OpenBox configured I'd use obconf, but it will only get you so
far.  There are two config files; rc.xml which has cool stuff like
keyboard shortcuts, and menu.xml, which has the menu.  I build my own
menus (visible on right-click on the desktop only) which are *very*
streamlined, but YMMV.

Here are my config files for OpenBox:

.config/openbox/rc.xml
<?xml version="1.0" encoding="UTF-8"?>
<openbox_config xmlns="http://openbox.org/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://openbox.org/                 file:///usr/share/openbox/rc.xsd">
  <resistance>
    <strength>100</strength>
    <screen_edge_strength>100</screen_edge_strength>
  </resistance>
  <focus>
    <focusNew>yes</focusNew>
    <followMouse>no</followMouse>
    <focusDelay>0</focusDelay>
    <raiseOnFocus>yes</raiseOnFocus>
    <focusLast>yes</focusLast>
    <underMouse>no</underMouse>
  </focus>
  <theme>
    <name>Carbon</name>
    <!-- titlelayout options:
	N - The window's icon
	D - The all-desktops (sticky) button
	S - The shade (roll up) button
	L - The label (window title)
	I - The iconify (minimize) button
	M - The maximize button
	C - The close button

	Order matters-->
    <keepBorder>yes</keepBorder>
    <animateIconify>yes</animateIconify>
    <titleLayout>NLIMC</titleLayout>
    <font place="ActiveWindow">
      <name>Bitstream Vera Sans</name>
      <size>11</size>
      <weight>Normal</weight>
      <slant>Normal</slant>
    </font>
    <font place="InactiveWindow">
      <name>Bitstream Vera Sans</name>
      <size>11</size>
      <weight>Normal</weight>
      <slant>Normal</slant>
    </font>
    <font place="MenuHeader">
      <name>Bitstream Vera Sans</name>
      <size>11</size>
      <weight>Normal</weight>
      <slant>Normal</slant>
    </font>
    <font place="MenuItem">
      <name>Bitstream Vera Sans</name>
      <size>11</size>
      <weight>Normal</weight>
      <slant>Normal</slant>
    </font>
    <font place="OnScreenDisplay">
      <name>Bitstream Vera Sans</name>
      <size>11</size>
      <weight>Normal</weight>
      <slant>Normal</slant>
    </font>
  </theme>
  <placement>
    <!-- placement policy options:
	Smart
	UnderMouse
	-->
    <policy>UnderMouse</policy>
    <center>no</center>
    <monitor>Active</monitor>
  </placement>
  <desktops>
    <number>2</number>
    <names>
      <name>one</name>
      <name>two</name>
    </names>
    <popupTime>875</popupTime>
  </desktops>
  <resize>
    <drawContents>no</drawContents>
    <popupShow>NonPixel</popupShow>
    <popupPosition>Center</popupPosition>
    <popupFixedPosition>
      <x>0</x>
      <y>0</y>
    </popupFixedPosition>
  </resize>
  <dock>
    <position>BottomRight</position>
    <stacking>Top</stacking>
    <direction>Vertical</direction>
    <floatingX>0</floatingX>
    <floatingY>0</floatingY>
    <autoHide>yes</autoHide>
    <hideDelay>300</hideDelay>
    <moveButton>A-Left</moveButton>
    <noStrut>no</noStrut>
    <showDelay>300</showDelay>
  </dock>
  <keyboard>
    <chainQuitKey>C-g</chainQuitKey>
    <keybind key="F3">
      <action name="Execute">
        <execute>urxvt</execute>
      </action>
    </keybind>
    <keybind key="F2">
      <action name="Execute">
        <execute>xfce4-terminal --geometry 80x72</execute>
      </action>
    </keybind>
    <keybind key="F1">
      <action name="Execute">
        <execute>xterm -fg white -bg black -vb +sb -geometry 80x72</execute>
      </action>
    </keybind>
    <keybind key="F4">
      <action name="Execute">
        <execute>gvim</execute>
      </action>
    </keybind>
    <keybind key="F9">
      <action name="Execute">
        <execute>ogle /home/willyyam/vids/pixar_shorts</execute>
      </action>
    </keybind>
    <keybind key="C-A-l">
      <action name="Execute">
        <execute>xscreensaver-command -lock</execute>
      </action>
    </keybind>
    <keybind key="A-f">
      <action name="Execute">
        <execute>firefox</execute>
      </action>
    </keybind>
    <keybind key="A-v">
      <action name="Execute">
        <execute>vlc</execute>
      </action>
    </keybind>
    <keybind key="A-o">
      <action name="Execute">
        <execute>ooffice</execute>
      </action>
    </keybind>
    <keybind key="A-1">
      <action name="DesktopNext">
        <wrap>yes</wrap>
        <dialog>yes</dialog>
      </action>
    </keybind>
    <keybind key="A-2">
      <action name="DesktopPrevious">
        <wrap>yes</wrap>
        <dialog>yes</dialog>
      </action>
    </keybind>
    <keybind key="A-F4">
      <action name="Close"/>
    </keybind>
    <keybind key="A-Tab">
      <action name="NextWindow">
        <dialog>yes</dialog>
      </action>
    </keybind>
    <keybind key="A-S-Tab">
      <action name="PreviousWindow">
        <dialog>yes</dialog>
      </action>
    </keybind>
    <keybind key="A-space">
      <action name="ShowMenu">
        <menu>client-menu</menu>
      </action>
    </keybind>
  </keyboard>
  <mouse>
    <dragThreshold>3</dragThreshold>
    <doubleClickTime>200</doubleClickTime>
    <context name="Frame">
      <mousebind button="A-Left" action="Drag">
        <action name="Move"/>
      </mousebind>
      <mousebind button="A-Left" action="Click">
        <action name="Raise"/>
      </mousebind>
      <mousebind button="A-Left" action="Press">
        <action name="Focus"/>
      </mousebind>
      <mousebind button="A-Middle" action="Drag">
        <action name="Resize"/>
      </mousebind>
      <mousebind button="A-Middle" action="Click">
        <action name="Lower"/>
      </mousebind>
      <mousebind button="A-Right" action="Press">
        <action name="ShowMenu">
          <menu>client-menu</menu>
        </action>
      </mousebind>
      <mousebind button="A-Up" action="Click">
        <action name="DesktopPrevious"/>
      </mousebind>
      <mousebind button="A-Down" action="Click">
        <action name="DesktopNext"/>
      </mousebind>
      <mousebind button="C-A-Up" action="Click">
        <action name="SendToDesktopPrevious"/>
      </mousebind>
      <mousebind button="C-A-Down" action="Click">
        <action name="SendToDesktopNext"/>
      </mousebind>
    </context>
    <context name="Titlebar">
      <mousebind button="Left" action="Drag">
        <action name="Move"/>
      </mousebind>
      <mousebind button="Left" action="Click">
        <action name="Raise"/>
      </mousebind>
      <mousebind button="Left" action="Press">
        <action name="Focus"/>
      </mousebind>
      <mousebind button="Left" action="DoubleClick">
        <action name="ToggleMaximizeFull"/>
      </mousebind>
      <mousebind button="Middle" action="Press">
        <action name="Lower"/>
      </mousebind>
      <mousebind button="Up" action="Click">
        <action name="Shade"/>
      </mousebind>
      <mousebind button="Down" action="Click">
        <action name="Unshade"/>
      </mousebind>
      <mousebind button="Right" action="Press">
        <action name="ShowMenu">
          <menu>client-menu</menu>
        </action>
      </mousebind>
    </context>
    <context name="Handle">
      <mousebind button="Left" action="Drag">
        <action name="Move"/>
      </mousebind>
      <mousebind button="Left" action="Click">
        <action name="Raise"/>
      </mousebind>
      <mousebind button="Left" action="Press">
        <action name="Focus"/>
      </mousebind>
      <mousebind button="Middle" action="Press">
        <action name="Lower"/>
      </mousebind>
    </context>
    <context name="BLCorner">
      <mousebind button="Left" action="Drag">
        <action name="Resize"/>
      </mousebind>
      <mousebind button="Left" action="Press">
        <action name="Focus"/>
      </mousebind>
    </context>
    <context name="BRCorner">
      <mousebind button="Left" action="Drag">
        <action name="Resize"/>
      </mousebind>
      <mousebind button="Left" action="Press">
        <action name="Focus"/>
      </mousebind>
    </context>
    <context name="TLCorner">
      <mousebind button="Left" action="Drag">
        <action name="Resize"/>
      </mousebind>
      <mousebind button="Left" action="Press">
        <action name="Focus"/>
      </mousebind>
    </context>
    <context name="TRCorner">
      <mousebind button="Left" action="Drag">
        <action name="Resize"/>
      </mousebind>
      <mousebind button="Left" action="Press">
        <action name="Focus"/>
      </mousebind>
    </context>
    <context name="Client">
      <mousebind button="Left" action="Press">
        <action name="Focus"/>
        <action name="Raise"/>
      </mousebind>
      <mousebind button="Middle" action="Press">
        <action name="Focus"/>
      </mousebind>
      <mousebind button="Right" action="Press">
        <action name="Focus"/>
      </mousebind>
    </context>
    <context name="Icon">
      <mousebind button="Left" action="Press">
        <action name="Focus"/>
      </mousebind>
      <mousebind button="Right" action="Press">
        <action name="ShowMenu">
          <menu>client-menu</menu>
        </action>
      </mousebind>
      <mousebind button="Left" action="Press">
        <action name="ShowMenu">
          <menu>client-menu</menu>
        </action>
      </mousebind>
    </context>
    <context name="AllDesktops">
      <mousebind button="Left" action="Press">
        <action name="Focus"/>
      </mousebind>
      <mousebind button="Left" action="Click">
        <action name="ToggleOmnipresent"/>
      </mousebind>
    </context>
    <context name="Shade">
      <mousebind button="Left" action="Press">
        <action name="Focus"/>
      </mousebind>
      <mousebind button="Left" action="Click">
        <action name="ToggleShade"/>
      </mousebind>
    </context>
    <context name="Iconify">
      <mousebind button="Left" action="Press">
        <action name="Focus"/>
      </mousebind>
      <mousebind button="Left" action="Click">
        <action name="Iconify"/>
      </mousebind>
    </context>
    <context name="Maximize">
      <mousebind button="Left" action="Press">
        <action name="Focus"/>
      </mousebind>
      <mousebind button="Middle" action="Press">
        <action name="Focus"/>
      </mousebind>
      <mousebind button="Right" action="Press">
        <action name="Focus"/>
      </mousebind>
      <mousebind button="Left" action="Click">
        <action name="ToggleMaximizeFull"/>
      </mousebind>
      <mousebind button="Middle" action="Click">
        <action name="ToggleMaximizeVert"/>
      </mousebind>
      <mousebind button="Right" action="Click">
        <action name="ToggleMaximizeHorz"/>
      </mousebind>
    </context>
    <context name="Close">
      <mousebind button="Left" action="Press">
        <action name="Focus"/>
      </mousebind>
      <mousebind button="Left" action="Click">
        <action name="Close"/>
      </mousebind>
    </context>
    <context name="Desktop">
      <mousebind button="Up" action="Press">
        <action name="DesktopPrevious"/>
      </mousebind>
      <mousebind button="Down" action="Press">
        <action name="DesktopNext"/>
      </mousebind>
      <mousebind button="A-Up" action="Press">
        <action name="DesktopPrevious"/>
      </mousebind>
      <mousebind button="A-Down" action="Press">
        <action name="DesktopNext"/>
      </mousebind>
      <mousebind button="Left" action="Press">
        <action name="Focus"/>
        <action name="Raise"/>
      </mousebind>
      <mousebind button="Middle" action="Press">
        <action name="ShowMenu">
          <menu>client-list-menu</menu>
        </action>
      </mousebind>
      <mousebind button="Right" action="Press">
        <action name="ShowMenu">
          <menu>root-menu</menu>
        </action>
      </mousebind>
    </context>
    <context name="MoveResize">
      <mousebind button="Up" action="Press">
        <action name="DesktopPrevious"/>
      </mousebind>
      <mousebind button="Down" action="Press">
        <action name="DesktopNext"/>
      </mousebind>
      <mousebind button="A-Up" action="Press">
        <action name="DesktopPrevious"/>
      </mousebind>
      <mousebind button="A-Down" action="Press">
        <action name="DesktopNext"/>
      </mousebind>
    </context>
    <screenEdgeWarpTime>0</screenEdgeWarpTime>
  </mouse>
  <margins>
    <left>0</left>
    <right>0</right>
    <top>0</top>
    <bottom>0</bottom>
  </margins>
</openbox_config>

.config/openbox/menu.xml
<?xml version="1.0" encoding="UTF-8"?>

<openbox_menu xmlns="http://openbox.org/"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://openbox.org/
                file:///usr/share/openbox/menu.xsd">

<menu id="root-menu" label="openbox">
    <item label="firefox">
      <action name="Execute"><execute>firefox</execute></action>
    </item>
    <item label="icedove">
      <action name="Execute"><execute>icedove</execute></action>
    </item>
    <item label="iceowl">
      <action name="Execute"><execute>iceowl</execute></action>
    </item>
    <item label="openoffice">
      <action name="Execute"><execute>ooffice</execute></action>
    </item>
    <item label="qtorrent">
      <action name="Execute"><execute>qtorrent</execute></action>
    </item>
    <item label="pidgin">
      <action name="Execute"><execute>pidgin</execute></action>
    </item>
    <menu id="sub1" label="video">
        <item label="vlc">
          <action name="Execute"><execute>vlc</execute></action>
        </item>
        <item label="ogle">
          <action name="Execute"><execute>ogle</execute></action>
        </item>
        <item label="gxine">
          <action name="Execute"><execute>gxine</execute></action>
        </item>
        <item label="kino">
          <action name="Execute"><execute>kino</execute></action>
        </item>
        <item label="dvdstyler">
          <action name="Execute"><execute>dvdstyler</execute></action>
        </item>
    </menu>
    <menu id="sub2" label="pdfs">
        <item label="xpdf">
          <action name="Execute"><execute>xpdf</execute></action>
        </item>
        <item label="ghostview">
          <action name="Execute"><execute>gv</execute></action>
        </item>
    </menu>
    <menu id="sub3" label="audio">
        <item label="xmms">
          <action name="Execute"><execute>xmms</execute></action>
        </item>
        <item label="amarok">
          <action name="Execute"><execute>amarok</execute></action>
       </item>
    </menu>
    <menu id="sub4" label="images">
        <item label="gimp">
          <action name="Execute"><execute>gimp</execute></action>
        </item>
        <item label="gqview">
          <action name="Execute"><execute>gqview</execute></action>
        </item>
        <item label="inkscape">
          <action name="Execute"><execute>inkscape</execute></action>
        </item>
        <item label="qcad">
          <action name="Execute"><execute>qcad</execute></action>
        </item>
    </menu>
    <menu id="sub5" label="discs">
        <item label="k3b">
          <action name="Execute"><execute>k3b --config .kde/share/config/k3br</execute></action>
        </item>
        <item label="xcdroast">
          <action name="Execute"><execute>xcdroast</execute></action>
        </item>
    </menu>
    <item label="reconfigure">
      <action name="Reconfigure" />
    </item>
    <item label="restart">
      <action name="Restart" />
    </item>
    <item label="exit">
      <action name="Exit" />
    </item>
</menu>

</openbox_menu>
-- 

yours,

William

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://gtalug.org/pipermail/legacy/attachments/20080925/a390aeed/attachment.sig>


More information about the Legacy mailing list