From 3e90bbfaec0953f2ef74fa2827ac41678ee11dee Mon Sep 17 00:00:00 2001 From: dakkar Date: Thu, 13 Aug 2009 21:37:24 +0200 Subject: importing Crystal config into git --- README.rest.txt | 186 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 186 insertions(+) create mode 100644 README.rest.txt (limited to 'README.rest.txt') diff --git a/README.rest.txt b/README.rest.txt new file mode 100644 index 0000000..3bf56e6 --- /dev/null +++ b/README.rest.txt @@ -0,0 +1,186 @@ +.. -*- mode: rst; coding: utf-8 -*- + +==================================== + Dakkar's ``fvwm-crystal`` settings +==================================== + +I use a 2800x1050 desktop (two 20" LCD panels on a GeForce 6600), with +a `slightly modified version`_ of the `TopLine` recipe. I also use a 5x5 +pages virtual desktop, and a Dvorak keyboard with valume keys (mapped +to the proper keycodes in X11). My music player is `AmaroK`, and my +desktop manager is `ROX`. + +.. _`slightly modified version`: recipes/TopLine + +Since my monitors can "pivot", I have further modified the recipe to +handle rotating the displays. This needs help from the video card. See +the section `Rotating the displays`_. + +The recipe +========== + +The main differences from the stock `TopLine` are: + +- different desktop bindings +- larger thumbnails +- different behaviour of the edges +- 2 identical pagers (one per physical screen) +- geometries rewritten to use ``@g`` to work with `Xinerama` +- each pager (and my "biff" terminal) is raised above all other + windows if I keep the mouse pointer on it long enough +- some functions added to handle `rotating the displays`_ + +The decoration +============== + +I have changed the `Clearlooks DeepSky` decoration_ to add a mini-icon +as button 3. + +.. _decoration: decorations/Dakkar/ + +The colorsets +============= + +Since I use tha `Gentoo` version of ``fvwm2``, it has a patch that +allow fake transparency in the menus. Thus, I changed the +`DarkDesktop` and `WhiteDesktop` colorsets_ to use this feature. + +.. _colorsets: colorsets/ + +The bindings +============ + +I redefined most keyboard bindings to my taste. Of particular interest +may be the Music_ file, where I bind the volume controls to the volume +keycodes, and the ``Music-GUI`` function to the "eject" keycode. I +also bound most window manipulation functions to various combination +of ``Alt`` and the numeric keypad (see the `Window-Control-Dakkar`_ +file) + +.. _Music: components/bindings/Music +.. _Window-Control-Dakkar: components/bindings/Window-Control-Dakkar + +The preferences +=============== + +To be able to select `AmaroK` as a music player, and `amixer` as a +mixer control, I created the `dakkar_Preferences`_ file, which adds +them to the appropriate menus. + +.. _`dakkar_Preferences`: components/desktop/dakkar_Preferences + +The styles and icons +==================== + +I added some style declaration and icons for some applications +(e.g. the windows created by ``xine-ui`` and ``xpad`` should be bare, +and I added icons for ``xchat-2`` and ``skype``) + +The functions +============= + +I redefined a couple of function in the Numpad_ to add the +``AnyScreen`` option. + +.. _Numpad: components/functions/Numpad + +Then I wrote the `Mixer-amixer`_ and `Music-amarok`_ files to interact +with by chosen music programs. + +.. _`Mixer-amixer`: components/functions/Mixer-amixer +.. _`Music-amarok`: components/functions/Music-amarok + +``amixer`` is a simple command-line mixer, and its integration was +easy. + +`AmaroK` is a `KDE` application, and it's not straightforward to +control. At the moment only "random", "repeat", "stop", "play/pause" +and "show/hide" are implemented, all via ``dcop`` calls. + +The ``Music-GUI`` function is used to toggle the display of +`AmaroK`, and also to start it: it the ``dcop`` calls fails, the +``amarok`` command gets executed, launching the program. + +.. note:: `AmaroK` and `Trayer` + + For some not-really-clear-to-me reason, the tray icon of `AmaroK` + is not displayed by `Trayer`, normally. To work around this + problem, I have written the small ``amarok`` script, which sits in + my ``~/bin`` directory (which is at the beginning of my + ``$PATH``). Using this, the icon works as expected. + +I also tweaked a Perl script I found on the Web to create a menu for +my ``screen`` sessions, see the `Screen-Menu`_ configuration file and +the `fvwm-screen.pl`_ script. + +.. _`Screen-Menu`: components/functions/Screen-Menu +.. _`fvwm-screen.pl`: scripts/fvwm-screen.pl + +Finally, in the `Notify`_ file, I redefined the ``UrgencyFunc`` to pop +up a notification via the dbus notification mechanism (using a `simple +Perl script`_ which uses `Net::DBus`_). + +.. _Notify: components/functions/Notify +.. _`simple Perl script`: FvwmNotify.pm +.. _`Net::DBus`: http://search.cpan.org/~danberr/Net-DBus-0.33.5/ + +Rotating the displays +===================== + +This takes a little background. + +First of all, my ``/etc/X11/xorg.conf`` file has a ``Screen`` section +like this:: + + Section "Screen" + Identifier "dual-nv" + Device "nvidia" + Monitor "LCD" + DefaultDepth 24 + Option "TwinView" "true" + Option "MetaModes" "DFP-0: 1400x1050 @1400x1050 +0+0, DFP-1: 1400x1050 @1400x1050 +1400+0" + Option "RandRRotation" "on" + Option "Xinerama" "on" + + SubSection "Display" + ViewPort 0 0 + Depth 24 + Modes "1400x1050" + EndSubSection + EndSection + +This specifies that, normally, I use my displays horizontally, one to +the right of the other. + +Then, in my `~/.xinirc`_, I add a second "MetaMode":: + + ./bin/nv-control-dpy --add-metamode \ + 'DFP-0: 1400x1050 @1400x1050 +0+1050, DFP-1: 1400x1050 @1400x1050 +0+0' + +The ``nv-control-dpy`` program can be found in the source tarball for +the ``nvidia-settings`` program, in the ``samples`` subdirectory. + +You may be wondering: why adding a second MetaMode in this way, when +you can specify both in the ``xorg.conf`` file? Good question. The +answer is that, if you do it "the logical way", the always helpful +NVidia drivers will tell the X server that you have a virtual screen +whose size is the bounding box of the union of all MetaModes. Which in +my case would mean that I'd have a lot of panning around, *very* +irritating when you use multiple viewports. Adding the MetaMode after +the startup of the X server avoids this issue. + +In the recipe, I have two functions to set landscape (normal) and +portrait (vertical) orientation. They call ``xrandr`` to set the +display orientation and size, and do some repositioning of the various +things that need it: + +- a script instructs `ROX-Filer` to change its "pinboard" to the one + with the proper layout (this is not optimal, but since I very rarely + change the contents of my pinboard, works well enough for me) +- `gkrellm2` and my "biff" terminal get moved to their proper + positions during ``StartFunction`` + +Maybe there's a samrter way to get the same result, but this works, +and it only took an evening to set up. + +.. _`~/.xinirc`: xinitrc -- cgit v1.2.3