# .steprc dérivé de l'exemple fourni avec AfterStep 1.0. J'ai adapté pas mal # de choses, mais l'essentiel est resté en place. # # Arnaud Gomes-do-Vale # Les couleurs sont données au format RGB standard. StdForeColor White StdBackColor #bfbfbf HiForeColor White HiBackColor #000044 MenuBackColor #bfbfbf MenuForeColor Black # Set some cursors Cursor 5 68 # Set the WAIT cursor to the normal left_ptr Cursor 7 68 # Set the SELECT (iconify) cursor Cursor 8 68 # Set the DESTROY cursor # Les barres de titres de la fenêtre qui a le focus et des fenêtres "normales" # sans focus comportent des images. Les barres de titres des fenêtres # "collantes" sans focus et les menus sont de simples dégradés. TextureTypes 128 128 1 1 1 # Les textures comportent au plus 128 couleurs. A réserver aux cartes # graphiques raisonnablement puissantes, donc. TextureMaxColors 128 128 128 128 128 # On met une image dans la barre de titres de la fenêtre au focus... TitlePixmap /home/arnaud/.afterstep/pixmaps/topbar.xpm # ... et une autre pour celles qui n'ont pas le focus. UTitlePixmap /home/arnaud/.afterstep/pixmaps/title2.xpm # Les images en question viennent d'un thème d'une ancienne version # d'Enlightenment # Pour les menus, on se contente de dégradés de couleurs MTitleTextureColor #303080 #000010 MenuTextureColor #606060 #d0d0d0 # La barre de titre ne doit pas donner l'impression de s'enfoncer sous les # clics de souris. TitlebarNoPush # Les icones ont des titres. IconTitle # Les titres des fenêtres sont alignés à gauche. TitleTextAlign 1 # La police de caractères des menus: Font -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-* # Celle des titres des fenêtres: WindowFont -adobe-helvetica-bold-r-*-*-12-*-*-*-*-*-*-* # Celle des icones: IconFont -adobe-helvetica-medium-r-*-*-8-*-*-*-*-*-*-* # La zone de placement des icones. # Ici les icones sont placées vers la droite de l'écran, mais a gauche # du Wharf. # D'abord une rangée en bas, puis une rangée en haut, puis une rangée en bas, # à raison 5 icones par rangée. En pratique, j'en utilise beaucoup moins. IconBox -400 -64 -64 -1 IconBox -400 0 -64 130 IconBox -400 -129 -64 -65 # Les fenêtres se placent toutes seules, sans intervention de l'utilisateur. RandomPlacement # Si possible, elles s'ouvrent dans les endroits vides de l'écran. SmartPlacement # Quand le curseur sort de l'écran, l'affichage le suit en se décalant d'un # écran entier. EdgeScroll 100 100 # Il faut quand même forcer un peu pour changer d'écran. Je n'aime pas que mon # écran change juste à cause d'un faux mouvement, et mes Wharfs sont près des # bords. EdgeResistance 400 400 # Quand on clique dans une fenêtre, elle prend le focus, mais le clic n'est pas # passé à l'application. Ca évite des opérations involontaire. ClickToFocus 1 # Lorsqu'on déplace une fenêtre, seul le cadre s'affiche tant qu'on n'a pas # relaché la fenêtre à sa place définitive. Ca accélère beaucoup l'affichage. OpaqueMove 0 # Ca, apparemment c'est utile, mais je ne sais pas exactement pourquoi :-) NoPPosition # On fixe la durée maximale d'un clic à 150 millisecondes. Si c'est plus long, # c'est une pression prolongée style "drag'n'drop". ClickTime 150 # Quand on utilise Alt-Tab pour changer de fenêtres, on ignore les icones. CirculateSkipIcons # Les boites de dialogues ont aussi droit à une barre de titre. DecorateTransients # Les icones apparaissent sur tous les écrans virtuels. Pratique pour déplacer # des applications d'un écran à l'autre ou pour garder une application # iconifiée sous la main. StickyIcons # On se donne une surface de 3x2 écrans virtuels. DeskTopSize 3x2 # Le paramètre DeskTopScale sert à configurer la taille du Pager; ici, il ne # sert pas à grand chose, vu que la Pager s'insère dans le Wharf. DeskTopScale 32 # Le chemin de recherche des modules: ModulePath /usr/lib/X11/afterstep:/usr/X11R6/lib/X11/afterstep # Celui des icones en couleurs: PixmapPath /home/arnaud/.afterstep/icons/:/usr/include/X11/pixmaps/ # Celui des icones en noir et blanc: IconPath /usr/include/X11/bitmaps/ # Certaines applications ont des styles particulers (présence ou absence de # barre de titre, de poignées...). Style "oclock" Sticky, NoTitle, StaysOnTop, WindowListSkip Style "*Pager" NoTitle, Sticky, StaysOnTop, WindowListSkip, NoHandles Style "xbiff" NoTitle, WindowListSkip Style "xmailbox" NoTitle, WindowListSkip Style "Minitabx11" StaysOnTop Style "Wharf" NoFocus,NoTitle, Sticky, WindowListSkip,StaysOnTop, NoHandles Style "Whorf" NoFocus,NoTitle, Sticky, WindowListSkip,StaysOnTop, NoHandles Style "Banner" NoTitle, NoHandles, WindowListSkip, Sticky, StaysOnTop Style "Loadmeter" NoTitle, Sticky, WindowListSkip, StaysOnTop, NoHandles Style "x11amp" NoTitle, NoHandles # Le module Animate gère l'animation lors de l'iconification d'une fenêtre. Module Animate # Les lignes sont tracées en noir. *AnimateColor Black # 1 ms entre chaque image lors de l'animation. *AnimateDelay 1 # L'animation est décomposée en 12 étapes. *AnimateIterations 12 # Les lignes sont de largeur minimale pour accélérer l'animation. *AnimateWidth 0 # L'animation fait un effet de "zoom"; la fenêtre ne "tourne" pas sur # elle-même. *AnimateResize zoom # Le premier Wharf (barre d'icones), à droite de l'écran. Module Wharf # L'ouverture des dossiers s'accompagne d'une animation. *WharfAnimate # Le repli du Wharf en une icone aussi. *WharfAnimateMain # Le Wharf démarre en haut à droite de l'écran. *WharfGeometry -0+0 # Il se compose d'une colonne. *WharfColumns 1 *Wharf AfterStep afterstep.xpm Folder # Pour quitter: *Wharf Shutdown shutdown.xpm Quit *Wharf ~Folder # Les icones suivantes sont en fait des applications. La plupart des wm* sont # sur ftp://ftp.windowmaker.org et dans les Red Hat contribs. *Wharf wmtime nil MaxSwallow "wmtime" wmtime & *Wharf wmcdplay nil MaxSwallow "wmcdplay" wmcdplay -a -position -0-0 & *Wharf wmmixer nil MaxSwallow "wmmixer" wmmixer -a -position -0-0 & # Xeyes est un "standard" d'Unix. *Wharf xeyes nil Swallow "xeyes" xeyes & # Un peu plus complexe: On affiche une xmailbox, et on lance Gnus en cas de # clic. La xmailbox surveille uniquement mon courrier "perso", pas ce qui # vient des mailing-lists. C'est dans ces cas-là qu'on aime procmail. :-) # emacs.sh est un script qui lance un gnuclient si un gnuserv tourne déjà, # et un xemacs dans le cas contraire: # ---8<---8<---8<---8<--- # #!/bin/sh # SLP=/usr/lib # SGML_CATALOG_FILES=$SLP/sgml/iso-entities-8879.1986/iso-entities.cat # SGML_CATALOG_FILES=$SLP/sgml-tools/dtd/catalog:$SGML_CATALOG_FILES # export SGML_CATALOG_FILES # # ps x | grep gnuserv && gnuclient $* || xemacs $* # ---8<---8<---8<---8<--- *Wharf xmailbox nil Swallow "xmailbox" xmailbox -update 15 -file /home/arnaud/mail/inbox -bg "#8e8a9e" -fg "#00003f" -geometry 45x45-1-1 & *Wharf xmailbox nil Exec "-" /home/arnaud/bin/emacs.sh -f gnus & *Wharf wmmon nil MaxSwallow "wmmon" wmmon & # J'utilise wterm à la place de xterm, ne serait-ce qu'à cause des barres de # défilement "à la NeXTStep". *Wharf wterm monitor.xpm Exec "-" wterm -geometry 80x25 -sl 256 -sb -ls -T "arnaud@carrosse.frmug.org" -n "arnaud@carrosse" & # Quelques applications utiles: *Wharf emacs text.xpm Exec "-" /home/arnaud/bin/emacs.sh & *Wharf gimp wilbur.xpm Exec "-" gimp & *Wharf Netscape netscape3.xpm Exec "-" netscape -geometry +0+0 & # La Pager apparait comme une icone dans le Wharf. *Wharf pager nil SwallowModule "Pager" Pager 0 0 # Le deuxieme Wharf, en bas a gauche. # Pour pouvoir l'utiliser, il faut créer un lien symbolique: # cd /usr/X11R6/lib/X11/afterstep/ # ln -s Wharf Whorf Module Whorf *WhorfAnimate *WhorfAnimateMain *WhorfGeometry +0-1 # Il s'étend horizontalement sur une ligne. *WhorfRows 1 # Redémarrer AfterStep (par exemple pour prendre en compte un changement de # configuration). *Whorf Recycler recycler.xpm Restart " " afterstep # A propos, on peut la changer comme ça: *Whorf config interface.xpm Exec "-" /home/arnaud/bin/emacs.sh ~/.steprc & # La suite, c'est du classique. *Whorf manual library.xpm Exec "-" tkman & *Whorf gv gv.xpm Exec "-" gv & # Je n'utilise pas Gnome, mais certaines de ses applications sont très bien. # Pour le moment, "certaines", c'est GnoRPM, mais je vais certainement en # ajouter d'autres par la suite. *Whorf gnome gnome-logo-icon-transparent.xpm Folder *Whorf gnorpm redhat.xpm Exec "-" gnorpm & *Whorf ~Folder # J'ai une deuxième machine, sur laquelle je peux vouloir me connecter. Ici, # le xterm tourne réellement sur la machine distante, contrairement au menu # "Shells" qui se trouve plus loin, qui lance un wterm en local et une # connexion ssh depuis cet wterm. *Whorf chance sparc.xpm Folder *Whorf chance_xterm monitor.xpm Exec "-" ssh chance /usr/X11R6/bin/xterm -ls -T "arnaud@chance.carrosse.frmug.org" -n "arnaud@chance" & *Whorf ~Folder # Encore du classique. cbb.sh se contente de se placer dans le bon répertoire # avant de lancer CBB. *Whorf cbb cbb.xpm Exec "-" /home/arnaud/bin/cbb.sh & # On définit les icones correspondant aux applications courantes: Icon "*term*" monitor.xpm Icon "*emacs*" text.xpm Icon "pine" writeletter.xpm Icon "ghostview" text.xpm Icon "xman" xman.xpm Icon "gimp" 3dpaint.xpm Icon "xli" monalisa.xpm Icon "xv" xv.color.xpm Icon "moxfm*" FileFolders.xpm Icon "*lyx*" TeX.xpm Icon "LyX" TeX.xpm Icon "fof" fof.xpm Icon "fr" filerunner.xpm Icon "xconsole" penguin.xpm Icon "StarOffice*" word.xpm Icon "kscd" cd.xpm Icon "gtcd" cd.xpm Icon "Untitled*" brush.xpm Icon "" default.xpm #/////////////////////////# # Initialization Function # #/////////////////////////# # Here we will put programs and modules that we wish to # load up automatically upon startup Function "InitFunction" # Wait until Wharf is done loading so that our xterm will have # the focus when it is first created Wait "I" Wharf # Place the green carpet image onto the background upon startup # I personally recommend xli/xloadimage, but xv seems to be # ubiquitous in the unix world so I'll use that Exec "I" exec xv -root -quit /home/arnaud/.afterstep/backgrounds/urfamily.jpg #Exec "I" exec nxterm -geometry +4+4 -sl 256 -sb -ls -T 'arnaud@carrosse.frmug.org' & EndFunction #///////////# # Functions # #///////////# # Now define some handy complex functions # Each function can be bound to a specific Mouse Button and # a specific window location (Title, TitleButton, Root Window, # etc.) later on # This one will Raise the window on a Single Click, Shade # (display only the TitleBar) on a DoubleClick, and make # the window uncoverable by all other non-OnTop windows # with a TripleClick. A Click+Motion will move the # window around Function "Shade-or-Raise" Move "Motion" Raise "Click" Shade "DoubleClick" PutOnTop "TripleClick" EndFunction # This will move the window on mouse motion, maximize the # window (while leaving space for Wharf on the right) with a # single MouseClick, roll up the window for a Shade with a # DoubleClick, and put the window on top of all other windows # with a TripleClick (no regular window can be placed on top # of this window until the ontop window has been taken # another PutOnTop TripleClick Function "Maximize_Function" Move "Motion" Maximize "Click" 93 91 Shade "DoubleClick" PutOnTop "TripleClick" EndFunction # This one moves or (de)iconifies: # Icons will restore to full size with a single mouse click # Change "Click" to "DoubleClick" or "TripleClick" as desired Function "Move-or-Iconify" Move "Motion" Iconify "Click" EndFunction # Pretty Simple...Mouse Motion Raises and Resizes the given # window. A mouse click will also Raise it. DoubleClick # will perform a Shade while TripleClick grants unobscurable # status Function "Resize-or-Raise" Resize "Motion" Raise "Motion" Raise "Click" Shade "DoubleClick" PutOnTop "TripleClick" EndFunction # This is provided as a hint only. # Move to a known page on the desktop, then start an application in a # known location. Could also switch to a known desktop, I guess #Function "abs_coord" # GoToPage "Immediate" 1,1 # Exec "Immediate" exec xcalc -geometry +100+100& #EndFunction # La définition des menus. On commence par les sous-menus. Popup "Multimedia" Title "Multimedia" Exec "KMedia" exec kmedia & Exec "XPlayCD" exec xplaycd & Exec "XMCD" exec xmcd -dev /dev/cdrom & Exec "KSCD" exec kscd & Exec "GTCD" exec gtcd & Exec "XMixer" exec xmixer & Exec "X11Amp" exec x11amp & Exec "RipperX" exec ripperX & EndPopup Popup "Graphisme" Title "Graphisme" Exec "The Gimp" exec gimp & Exec "xfpovray" exec xfpovray & Exec "Moonlight Creator" exec moonlight & Exec "xv" exec xv & Exec "ElectricEyes" exec ee & EndPopup Popup "Reseau" Title "Reseau" Exec "Netscape" exec nets -geometry +0+0 & Exec "KVirc" exec kvirc & Exec "BitchX" exec wterm -geometry 80x45 -T "BitchX" -n "BitchX" -e BitchX citrouille vancouver.dal.net & Exec "Telnet" exec xterm -T telnet -e telnet & Exec "FTP" exec xterm -T ftp -e ftp & Exec "Mail & News" exec /home/arnaud/bin/emacs.sh -f gnus & Exec "Minicom" exec xminicom & EndPopup Popup "Editeurs" Title "Editeurs" Exec "vi" exec xterm -T vi -e vi & Exec "XEmacs" exec /home/arnaud/bin/emacs.sh & Exec "NEdit" exec nedit & EndPopup Popup "KDE" Title "KDE" Exec "KFM" exec kfmclient exec file:$HOME & Exec "KGhostView" exec kghostview & Exec "KDiskFree" exec kdiskfree & EndPopup Popup "Bureautique" Title "Bureautique" Exec "KLyX" exec klyx & Exec "LyX" exec lyx & Exec "Maxwell" exec /opt/maxwell/bin/maxwell & Exec "StarOffice" exec /opt/Office50/bin/soffice & Exec "Siag" exec siag & Exec "GNUMeric" exec gnumeric & Exec "PGAccess" exec pgaccess & EndPopup Popup "Jeux" Title "Jeux" Exec "Shisen-Sho" exec kshisen & Exec "Same Game" exec ksame & Exec "Demineur" exec gnomines & Exec "Galaga" exec xgal & Exec "NetHack" exec nethack & Exec "Soko-Ban" exec xsok & EndPopup Popup "Terminaux" Title "Terminaux" Exec "XTerm" exec xterm -ls -T "arnaud@carrosse.frmug.org" -n "arnaud@carrosse" & Exec "NXTerm" exec nxterm -ls -T "arnaud@carrosse.frmug.org" -n "arnaud@carrosse" & Exec "Rxvt" exec rxvt -ls -T "arnaud@carrosse.frmug.org" -n "arnaud@carrosse" & Exec "ATerm" exec aterm -ls -T "arnaud@carrosse.frmug.org" -n "arnaud@carrosse" & Exec "WTerm" exec wterm -ls -T "arnaud@carrosse.frmug.org" -n "arnaud@carrosse" & EndPopup # Un menu qui regroupe tous les précédents: Popup "Applications" Title "Applications" Popup "Terminaux" Terminaux Popup "Graphisme" Graphisme Popup "Multimedia" Multimedia Popup "Reseau" Reseau Popup "KDE" KDE Popup "Bureautique" Bureautique Popup "Editeurs" Editeurs Popup "Jeux" Jeux EndPopup # Des shells pour mes différents comptes Popup "Shells" Title "Shells" Exec "arnaud@carrosse" exec wterm -ls -T "arnaud@carrosse.frmug.org" -n "arnaud@carrosse" & Exec "root@carrosse" exec wterm -T "root@carrosse.frmug.org" -n "root@carrosse" -e slogin -l root carrosse & Exec "admin@carrosse" exec wterm -T "admin@carrosse.frmug.org" -n "admin@carrosse" -e slogin -l admin carrosse & Exec "arnaud@chance" exec wterm -T "arnaud@chance.carrosse.frmug.org" -n "arnaud@chance" -e slogin chance & Exec "root@chance" exec wterm -T "root@chance.carrosse.frmug.org" -n "root@chance" -e slogin -l root chance & Exec "p6dma002@ibm1" exec wterm -T "p6dma002@ibm1.cicrp.jussieu.fr" -n "p6dma002@ibm1" -e rlogin -l p6dma002 ibm1.cicrp.jussieu.fr & Exec "gomesdv@grex" exec wterm -T "gomesdv@cyberspace.org" -n "gomesdv@grex" -e slogin -l gomesdv cyberspace.org & EndPopup # Quelques utilitaires d'administration: Popup "Utilities" Title "Utilities" Exec "Config" exec /home/arnaud/bin/emacs.sh ~/.steprc & Exec "Top" exec xterm -T Top -n Top -e top & Exec "gtop" exec gtop & Exec "XOSView" exec xosview & EndPopup # Un autre menu qui permet de redémarrer ou de quitter AfterStep. Popup "Quit-Verify" Title "Quit?" Quit "Yes, Quit" Restart "Restart" afterstep Nop "No, Don't" EndPopup # Celui-ci permet de relancer les modules. Noter que c'est le seul moyen; ils # ne peuvent pas être invoqués depuis un shell. # asclock n'est pas un module, mais c'est tout comme. Popup "Module-Popup" Title "Modules" Exec "asclock" exec asclock -12 -shape & Module "Banner" Banner Module "Pager" Pager 0 0 Module "Wharf" Wharf EndPopup # Voilà le menu principal. Comme tout menu, il est déclaré après ses # sous-menus. # Il sera accessible par un clic sur le bouton gauche de la souris. Popup "HotList" Title "HotList" Exec "Xterm" exec xterm -ls -sl 256 -sb -T "arnaud@carrosse.frmug.org" -n "arnaud@carrosse" & Popup "Applications" Applications Popup "Shells" Shells Popup "Utilities" Utilities Popup "Modules" Module-Popup Popup "Exit" Quit-Verify EndPopup # Ce menu-ci permet de manipuler les fenêtres. Il est accessible pas un clic # sur le fond de l'écran avec le bouton du milieu, ou par un clic sur la barre # de titre d'une fenêtre avec n'importe quel bouton. # Les correspondances entre actions de la souris et menus ne sont pas fixées # par AfterStep; elles sont définies plus loin. Popup "Window Ops" Title "Window Ops" Function "Move" Shade-or-Raise Function "Resize" Resize-or-Raise Raise "Raise" Lower "Lower" PutOnTop "(Un)PutOnTop" Iconify "(De)Iconify" Stick "(Un)Stick" Function "(Un)Maximize" Maximize_Function Destroy "Destroy" Close "Close" Refresh "Refresh Screen" EndPopup #////////////////# # Mouse Bindings # #////////////////# # First, for the mouse in the root window # Button 1 gives the HotList menu # Button 2 gives the WindowList menu (Listing of current windows) # Button 3 gives the WindowOps # There are 4 colums to the table # First column is the event (Mouse Click or Key Press) # Mouse 0 specify any click in a TitleBar box # Where can be 1 or 2 for first or second box # Mouse 1 is left button, 2 is middle, 3 is right # Second Column is where the click takes place # R = Root window (main background) # F = Window Frame (the corners) # S = Bottom bar # I = Icon Window # T = TitleBar # W = Application Window # Third Column is the Context (ie, modifier keys) # N = No modifiers # A = Any context except for inside the TitleBar Boxes # C = Control # S = Shift # M = Meta # Combos are allowed (eg, CS = Control+Shift) # Fourth Column is the action to take upon click # Action can be a function, popup, or regular action # Key # # Where # # Context# # Action # Mouse 0 1 A Iconify Mouse 0 2 A Close Mouse 1 R A PopUp "HotList" Mouse 1 FS A Function "Resize-or-Raise" Mouse 1 I A Function "Move-or-Iconify" Mouse 1 T A Function "Shade-or-Raise" Mouse 2 R A WindowList Mouse 2 FST A PopUp "Window Ops" Mouse 3 TSIF A Function "Maximize_Function" Mouse 3 R A PopUp "Window Ops" Mouse 3 W M RaiseLower #////////////////////# # Keyboard Shortcuts # #////////////////////# Key F1 A M Popup "HotList" Key F2 A M Popup "Window Ops" Key F3 A M WindowList # Alt-F4 will take a screenshot and save it in # the user's home directory as screen.xwd # Programs such as ImageMagick can then be used # to convert the xwd file into jpg or gif format Key F4 A M Exec "xwd" xwd -root -out ~/screen.xwd & Key F5 A A Iconify # Alt(Meta)-Tab pages through open, bordered windows Key Tab A M CirculateUp # Arrow Keys # Control+Arrow scrolls to the next page on the desk Key Left A C Scroll -100 0 Key Right A C Scroll +100 +0 Key Up A C Scroll +0 -100 Key Down A C Scroll +0 +100 #////////////////////# # Module Definitions # #////////////////////# # Pager Configuration -- We have Swallow-ed Pager into the Wharf # Now let's change colors and make labels *PagerBack #908090 *PagerFore #484048 *PagerFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-* *PagerHilight #cab3ca *PagerGeometry -1-1 *PagerLabel 0 Pager *PagerSmallFont 5x8 # Start the Audio player Module Audio # Select your normal audio player #*AudioPlayCmd /usr/bin/showaudio # Select the directory containing your sounds #*AudioDir /home/frank/mac/sounds #*AudioDelay 1 # Attach sounds to window manager events...some don't appear to function # as well as they could #*Audio startup gong.au #*Audio shutdown clink.au #*Audio add_window bong.au #*Audio raise_window drip.au #*Audio lower_window drip.au #*Audio focus_change drip.au #*Audio destroy_window crash.au #*Audio iconify ploop.au #*Audio deiconify ploop.au #*Audio toggle_paging fwop.au #*Audio new_page beaming.au #*Audio new_desk beam_trek.au #*Audio configure_window huh.au #*Audio window_name bong.au #*Audio icon_name beep.au #*Audio res_class bong.au #*Audio res_name beep.au #*Audio end_windowlist twang.au # qed