450 γραμμές
34 KiB
Markdown
450 γραμμές
34 KiB
Markdown
|
+++
|
|||
|
title = 'Πώς να κάνετε τον FVWM2 πιο Στυλάτο'
|
|||
|
date = '2000-01-01T00:00:00Z'
|
|||
|
description = ''
|
|||
|
author = 'The Reverant(mailto:reverant@x-treme.gr)'
|
|||
|
issue = ['Magaz 22']
|
|||
|
issue_weight = 5
|
|||
|
+++
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
*Ο FVWM2 είναι ένας Window Manager (WM) που λόγω ηλικίας είναι πλέον αρκετά \"ώριμος\" και σταθερός. Δυστυχώς όμως, είναι περισσότερο \"ώριμος\" από όσο θα
|
|||
|
έπρεπε όσον αφορά την εμφάνισή του, και είναι αναμφισβήτητο γεγονός το ότι η λειτουργικότητά του χρήζει παραιτέρω βελτίωσης.*
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
Αυτός είναι και ο σκοπός αυτού του άρθρου. Πρωτίστως να βελτιώσει το εντελώς ανιαρό και συντηρητικό standard look του FVWM2, και να βελτιώσει στα σημεία τη
|
|||
|
λειτουργικότητά του. Αρχίζουμε λοιπόν\... :-)
|
|||
|
|
|||
|
ΣΗΜΕΙΩΣΗ: Αυτό το άρθρο προϋποθέτει κάποια εξοικείωση με τον FVWM2. Αν αυτή δεν υπάρχει, προτείνεται η χρήση του μέχρι κάποιου σημείου εξοικείωσης, καθώς και η
|
|||
|
ανάγνωση της man σελίδας (man fvwm2 μόνο για όποιον έχει πραγματικά **ΓΑΙΔΟΥΡΙΝΗ** υπομονή. Ο υπογράφων μερικές φορές δεν φάνηκε αρκετά \"ζώον\" και η υπομονή
|
|||
|
του δοκιμάστηκε πέραν ανθρωπίνων ορίων :-) )
|
|||
|
|
|||
|
Πρώτο βήμα είναι να βρούμε το config αρχείο του FVWM2. Αυτό είναι το .fvwm2rc το οποίο αναζητείται στο home directory του χρήστη. Εαν δεν βρεθεί εκεί, τότε
|
|||
|
χρησιμοποιείται το system-wide που συνήθως βόσκει στο λιβάδι /usr/X11R6/lib/X11/fvwm2/.fvwm2rc. Δεν προτείνεται να πειράξετε το system-wide αρχείο, αντιθέτως,
|
|||
|
πειράξτε το αντίστοιχο ενός απλού χρήστη. Και φυσικά, πριν κάνετε οποιαδήποτε παρέμβαση, κάντε ένα **τριπλό** backup του αρχείου αυτού, για κάθε ενδεχόμενο.
|
|||
|
|
|||
|
Κατόπιν, ανοίγουμε το αρχείο .fvwm2rc με έναν editor και αρχίζουμε:
|
|||
|
|
|||
|
1. Window buttons - Μπορούμε να ορίσουμε την εμφάνιση των window control buttons. Τα standard κρίνονται ικανοποιητικά, οπότε αφήνονται ως εχουν.
|
|||
|
|
|||
|
2. General Configuration - Διάφορες γενικοί παράμετροι του FVWM2. Αυτό που θα πειραχθεί από εδώ είναι το DeskTopSize. Αυτή η παράμετρος ορίζει πόσα virtual
|
|||
|
desktops θα εμφανίζονται στον pager. Η default τιμη 3x2 μέχρι τώρα δεν μου έχει χρησιμεύσει προσωπικά. Τουναντίον μάλιστα :-). Για αυτό και βάζουμε τιμή
|
|||
|
2x2:
|
|||
|
|
|||
|
DeskTopSize 2x2
|
|||
|
|
|||
|
3. Colors and fonts - Μπορούμε να ορίσουμε τα χρώματα των selected windows και των διαφόρων menu. Με τη δήλωση:
|
|||
|
|
|||
|
HilightColors TextColor BackColor
|
|||
|
|
|||
|
το selected window θα έχει ως font color το \"TextColor\" και ως background color το \"backColor\". Αυτά τα χρώματα μπορεί να είναι οποιαδήποτε χρώματα που
|
|||
|
αναφέρονται στο αρχείο: /usr/X11R6/lib/X11/rgb.txt\
|
|||
|
Για τα sticky παράθυρα:
|
|||
|
|
|||
|
StickyColors TextColor BackColor
|
|||
|
|
|||
|
Για τα ανενεργά παράθυρα, καθώς και για συγκεκριμένα παράθυρα, θα χρησιμοποιήσουμε τη Style δήλωση, της οποίας η χρήση αναλύεται αργότερα. Κατόπιν, για το
|
|||
|
χρώμα & το font των menus:
|
|||
|
|
|||
|
Menustyle TextColor BackColor OtherColor -misc-fixed-medium-r-normal-*-15-*-75-75-c-90-iso8859-1 fvwm
|
|||
|
|
|||
|
Το \"OtherColor\" δεν έχει διαπιστωθεί που χρησιμεύει (κανείς;). Κατόπιν, η standard δήλωση του font που θέλουμε.
|
|||
|
|
|||
|
4. Functions για Initialization, Restart & Exit.\
|
|||
|
Functions είναι δηλώσεις που εκτελούνται κατόπιν κάποιας πράξης του χρήστη, π.χ. πατάει ένα button στο FvwmButtons, ή κάνει κλικ στο desktop, κ.τ.λ. Αυτές
|
|||
|
εκτελούνται κατόπιν αναλόγου σήματος του WM. Για initialization (οι παρακάτω δηλώσεις θα εκτελούνται όταν ο FVWM2 γίνεται initialized):\
|
|||
|
Δήλωση της function \"InitFunction\":
|
|||
|
|
|||
|
AddToFunc InitFunction
|
|||
|
|
|||
|
Και μετά έχουμε:
|
|||
|
|
|||
|
- Το module \"FvwmBanner\" δεν χρησιμεύει πουθενά, οπότε κερδίζει ένα comment-out σύμβολο (\#) με την αξία του! :-)
|
|||
|
|
|||
|
#+ "I" Module Fvwmbanner
|
|||
|
|
|||
|
- Τα xmessages προτιμώ προσωπικά να εμφανίζονται σε ενα xterm με background χρώμα το μαύρο και text χρώμα το πράσινο (Old-schoοl terminal), με τίτλο
|
|||
|
\"Xmessages\", και ένα συγκεκριμένο geometry (δηλαδή μέγεθος και σημείο τοποθέτησης του παραθύρου πάνω στο desktop) που βολεύει. Αυτό γίνεται με την
|
|||
|
εξής δήλωση:
|
|||
|
|
|||
|
+ "I" Exec xterm -geometry 83x10+0+1120 -bg black -fg green -T "XMessages" -e tail -f /root/.X.err
|
|||
|
|
|||
|
Η original δήλωση αφαιρείται όπως έχει.
|
|||
|
|
|||
|
- Το default xterm που εμφανίζεται με το initialization του fvwm2 έχει χάλια χρώματα, οπότε:
|
|||
|
|
|||
|
+ "I" Exec xterm -geometry +0+88 -bg black -fg green
|
|||
|
|
|||
|
- Ένα όμορφο background πάντα βοηθάει την κατάσταση :-)
|
|||
|
|
|||
|
+ "I" Exec xpmroot /root/pics/skull.xpm
|
|||
|
|
|||
|
ΣΗΜΕΙΩΣΗ: Για όποιον ενδιαφέρεται, οι εικόνες και τα εικονίδια που χρησιμοποιώ, θα είναι διαθέσιμα από 5-6 Ιανουαρίου στο:
|
|||
|
<http://reverant.fortunecity.com/linux-icons.tar.gz>. Τα κάνετε extract με:
|
|||
|
|
|||
|
$: tar zxfv linux-icons.tar.gz
|
|||
|
|
|||
|
και ύστερα τα αντιγράφετε στο: /usr/X11R6/include/X11/pixmaps
|
|||
|
|
|||
|
- Με ενδιαφέρει επίσης να μπορώ να βλέπω τα διάφορα log messages χωρίς να αλλάζω consoles συνεχώς, οπότε:
|
|||
|
|
|||
|
+ "I" Exec xterm -ls -geometry 100x10+513+1120 -T "Messages" -bg black -fg green -e tail -f /var/log/messages
|
|||
|
|
|||
|
- Μια **ΜΕΓΑΛΗ** έλλειψη του FVWM2 όπως έρχεται το config του, είναι ένα είδος taskbar, η οποία να δείχνει ποια παράθυρα υπάρχουν, και να βοηθάει στην
|
|||
|
μεταξύ τους εναλλαγή. Αυτό το πρόβλημα λύνεται με τη χρήση του module \"FvwmTaskBar\":
|
|||
|
|
|||
|
+ "I" Module FvwmTaskBar
|
|||
|
|
|||
|
Για Restart (Οι παρακάτω δηλώσεις θα εκτελούνται όταν κάνουμε restart τον FVWM2). Τα βήματα 2, 4 και 5 επαναλαμβάνονται σε αυτήν τη δήλωση:
|
|||
|
|
|||
|
AddToFunc RestartFunction
|
|||
|
+ "I" Exec xterm -geometry 83x10+0+1120 -bg black -fg green -T "XMessages" -e tail -f /root/.X.err
|
|||
|
+ "I" Exec xpmroot /root/pics/skull.xpm
|
|||
|
+ "I" Exec xterm -ls -geometry 100x10+513+1120 -T "Messages" -bg black -fg green -e tail -f /var/log/messages
|
|||
|
|
|||
|
Εννοείται ότι οι original δηλώσεις για xmessages, xpmroot αφήνουν το μάταιο τούτο config file :-)\
|
|||
|
Η Exit function αφήνεται όπως έχει.
|
|||
|
|
|||
|
5. Functions - Το ψωμί της υπόθεσης, ή αλλιώς, \"όλα τα λεφτά!\". Εδώ δηλώνουμε τις functions, κοινώς δηλαδή τι γίνεται όταν λαμβάνει χώρα κάποιο γεγονός
|
|||
|
(μπερδευτήκατε;), π.χ. κάνουμε κλικ σε ενα button του FvwmButtons. Μια function, προκειμένου να δηλώσουμε την εμφάνιση ενός menu με επιλογές, έχει την εξής
|
|||
|
μορφή:
|
|||
|
|
|||
|
AddToMenu OnomaTisFunctionPopUp "Onoma Tis Function" Title
|
|||
|
...Εδώ μέσα δηλώσεις για το τι περιλαμβάνει η function...
|
|||
|
# end popup OnomaTisFunction
|
|||
|
|
|||
|
Εξηγήσεις:\
|
|||
|
Με την λέξη \"AddToMenu\" δηλώνουμε μια function η οποία θα κάνει PopUp μια λίστα με εντολές. Μετά δηλώνεται το όνομα της function. Στην περίπτωσή μας, αυτό
|
|||
|
είναι \"OnomaTisFunctionPopUp\". Δηλαδή, όποτε θέλουμε να αναφερθούμε στη function αυτή, θα χρησιμοποιούμε το όνομα αυτό. Προσοχή, το όνομα της function δεν
|
|||
|
μπορεί να έχει κενά ανάμεσα στα γράμματα, ούτε κάποιους ειδικούς χαρακτήρες.\
|
|||
|
ΣΗΜΕΙΩΣΗ: Στην πραγματικότητα, με τη δήλωση \"AddToMenu\" δεν δηλώνουμε μια function, αλλά ένα menu, που είναι κατά κάποιο τρόπο μια function, απλά το μόνο
|
|||
|
που μπορεί να κάνει είναι να εμφανίζει μια λίστα. Για λόγους απλούστευσης όμως, θα θεωρούμε και τα menus ως functions. Κατόπιν, δηλώνεται το όνομα που
|
|||
|
θέλουμε να εμφανίζεται στην ανώτερη θέση της λίστας, δηλαδή ένα όνομα που περιγράφει τι εντολές περιέχονται στη λίστα, και μετά την ειδική λέξη \"Title\".
|
|||
|
Ένα παράδειγμα είναι π.χ. \"Shells\", ή \"My Programs\". Εδώ επιτρέπονται και κενά, και ειδικοί χαρακτήρες (Για περισσότερες πληροφορίες, κοιτάξτε το manual
|
|||
|
page του fvwm2). Εάν κάποιος δεν θέλει να εμφανίζεται καθόλου τίτλος, απλά δεν γράφει έναν και ΔΕΝ βάζει την λέξη Title μετά το όνομα της Function.\
|
|||
|
\... Μετά οι δηλώσεις για τα περιεχόμενα της λίστας (εξηγούνται παρακάτω, υπομονή παρακαλώ :ο) )\...\
|
|||
|
Τέλος, **εάν** θέλει κανείς μπορεί για λόγους ευκολίας ανάγνωσης και μόνο να βάλει ένα comment-out και μετά να δηλώσει \"end popup onomatisfunction\". Αυτό
|
|||
|
είτε το βάλει κανείς είτε δεν το βάλει, ένα και το αυτό. Απλά, για να είναι ξεκάθαρο που τελειώνει η δήλωση της function καλό θα ήταν να το δηλώνετε.\
|
|||
|
Και τώρα οι δηλώσεις για το τι θα περιλαμβάνει η PopUp λίστα που θα εμφανίζεται. Γενικά, μια δήλωση έχει ως εξής:
|
|||
|
|
|||
|
+ "Onoma entolis%onomaicon.xpm" Kanekati
|
|||
|
|
|||
|
Όπου:
|
|||
|
|
|||
|
- Onoma entolis είναι το όνομα της εντολής που θα εμφανίζεται σε μία PopUp λίστα, π.χ. StarOffice, ή BitchX. Προσοχή στο ότι αυτό το όνομα δεν είναι η
|
|||
|
\"πραγματική\" εντολή που θα εκτελεστεί από τον WM. Είναι απλά ένα όνομα, ένα \"alias\". Κατόπιν, τοποθετούμε το σύμβολο \"%\" για να διαχωρίσουμε το
|
|||
|
alias από το filename του icon που θέλουμε να χρησιμοποιήσουμε για το alias αυτό, και ταυτόχρονα να δηλώσουμε ότι το icon θέλουμε να εμφανιστεί δίπλα
|
|||
|
στο alias (χρησιμοποιώντας το σύμβολο \"\$\" αντί του \"%\" δηλώνουμε ότι θέλουμε το icon να εμφανιστεί πάνω από το alias). Προσοχή στο ότι η συνένωση
|
|||
|
αυτών των δύο δηλώσεων πρέπει να είναι μέσα σε εισαγωγικά (double quotes: \").
|
|||
|
|
|||
|
- Ακολουθεί η εντολή που θέλουμε να πραγματοποιηθεί. Αυτή μπορεί να είναι είτε μια κανονική εντολή που θα εκτελοέσαμε εμείς στο shell, είτε μια εντολή
|
|||
|
προς τον WM να εμφανίσει μια άλλη PopUp λίστα. Για να εκτελέσει ο WM ένα πρόγραμμα, δηλώνουμε:
|
|||
|
|
|||
|
+ "Onoma entolis%onomaicon.xpm" Exec enaprogramma
|
|||
|
|
|||
|
π.χ., για να εκτελέσουμε ένα bash shell, δηλώνουμε:
|
|||
|
|
|||
|
+ "Bash shell%bash.xpm" Exec bash
|
|||
|
|
|||
|
Άλλο παράδειγμα, για το XISP:
|
|||
|
|
|||
|
+ "XISP%xisp.xpm" Exec xisp
|
|||
|
|
|||
|
Αν θέλουμε, μπορεί αντί να εκτελεστεί μια εντολή, να εμφανιστεί μια άλλη PopUp λίστα. Για να το κάνουμε αυτό, δηλώνουμε:
|
|||
|
|
|||
|
+ "List of programs%programs.xpm" PopUp ProgramsPopUp
|
|||
|
|
|||
|
όπου ProgramsPopUp μια function με το όνομα αυτό.\
|
|||
|
Γνωρίζοντας τα παραπάνω ας αρχίσουμε λοιπόν να γράφουμε/τροποποιούμε τις functions που θα χρειαστούμε, αφού σκεφτούμε πρώτα τι χρειαζόμαστε από ένα WM.
|
|||
|
Χρειαζόμαστε λοιπόν:
|
|||
|
|
|||
|
1. Μια function για να χειριζόμαστε διάφορες παραμέτρους του WM (modules, exit/restart, start another WM), βοήθεια για τον WM και τα modules του, καθώς και
|
|||
|
για reboot/halt του συστήματος.
|
|||
|
2. Μια function για ανεύρεση αρχείων.
|
|||
|
3. Μια function για βοήθεια
|
|||
|
4. Μια function για να ξεκινάμε ένα shell (Το γιατί πρέπει να είναι ξεχωριστή αυτή η function από τις άλλες είναι θέμα εργονομίας: Ένα shell συνήθως
|
|||
|
εκτελείται αρκετές φορές παραπάνω από οποιοδήποτε άλλο πρόγραμμα.)
|
|||
|
5. Μια function για γενικό configuration του συστήματος
|
|||
|
6. Μια function για να τρέχουμε κάποια συχνά χρησιμοποιούμενα προγράμματα μας.
|
|||
|
7. Μια function για άμεση πρόσβαση σε δισκους, CD-ROM, Floppy, κ.τ.λ.
|
|||
|
|
|||
|
Για την πρώτη function, θα χρησιμοποιήσουμε μια υπάρχουσα. Αυτή είναι η thiswmpopup:
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
###############################################################################
|
|||
|
#
|
|||
|
# thiswmpopup
|
|||
|
#
|
|||
|
###############################################################################
|
|||
|
|
|||
|
AddToMenu thiswmpopup "Fvwm2" Title
|
|||
|
|
|||
|
+ "Other window managers%small.icon_warning_3d.xpm%" Popup otherwmpopup
|
|||
|
+ "Fvwm2 Modules%small.install_3d.xpm%" Popup modulepopup
|
|||
|
+ "Configuration%small.checklist2_3d.xpm%" Popup susewmpopup
|
|||
|
+ "Fvwm2 Man Pages%small.xman3d.xpm%" Popup wmmanpopup
|
|||
|
+ "" Nop
|
|||
|
+ "Restart Fvwm2%small.restart_suse_3d.xpm%" Restart fvwm2
|
|||
|
+ "Exit Fvwm2 and X%small.exit.xpm%" Function QuitSave
|
|||
|
|
|||
|
# end popup thiswmpopup
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
στην οποία θα προσθέσουμε τις εξής 2 γραμμές:
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
+ "Reboot System" Exec Reboot
|
|||
|
+ "Halt System" Exec Halt
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
για να κάνουμε reboot & halt αντίστοιχα όλο το σύστημα.
|
|||
|
|
|||
|
Δεύτερη function είναι η function που μας βοηθά στο να βρούμε κάποιο αρχείο γρήγορα, χωρις να θυμόμαστε πολύπλοκες συντάξεις εντολών, π.χ. της find:
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
############################################################
|
|||
|
#
|
|||
|
# findpopup
|
|||
|
#
|
|||
|
############################################################
|
|||
|
|
|||
|
AddToMenu findpopup "Find" Title
|
|||
|
+ "Find a file*find.xpm*" Exec xterm -bg black -fg green -e findfile
|
|||
|
|
|||
|
# end popup findpopup
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
To findfile είναι ένα shell script που έχει γραφεί με σκοπό τον προαναφερθέντα, και είναι το εξής:
|
|||
|
|
|||
|
echo "Filename?"
|
|||
|
read filename
|
|||
|
echo "Search where?"
|
|||
|
read pathname
|
|||
|
find $pathname -name $filename
|
|||
|
echo "Done, press enter to exit"
|
|||
|
read anykey
|
|||
|
exit
|
|||
|
|
|||
|
Η τρίτη function είναι η function που θα μας εμφανίζει τα σχετικά με help, documentation, κ.τ.λ. Συγκεκριμένα, θα τρέχει το xman για να διαβάσουμε κάποια
|
|||
|
man page, μας ανοίγει τον xfilemanager στο /usr/doc/howto/en/ ή στο /usr/doc/howto/el/ :
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
############################################################
|
|||
|
#
|
|||
|
# helpmepopup
|
|||
|
#
|
|||
|
############################################################
|
|||
|
|
|||
|
AddToMenu helpmepopup "Help" Title
|
|||
|
+ "Manual Pages%small.xman3d.xpm%" Exec xman
|
|||
|
+ "Greek HOWTO's%help1.xpm%" Exec xfilemanager -rootDir /usr/doc/howto/el -singleWindow
|
|||
|
+ "English HOWTO's%help1.xpm%" Exec xfilemanager -rootDir /usr/doc/howto/en -singleWindow
|
|||
|
|
|||
|
# end popup findpopup
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
Με την τέταρτη function θα εμφανίζεται ένα xterm, στοιχείο πολύ βασικό στο Πραγματικό Λειτουργικό :-)
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
############################################################
|
|||
|
#
|
|||
|
# runmepopup
|
|||
|
#
|
|||
|
############################################################
|
|||
|
|
|||
|
AddToMenu runpopup "Shells" Title
|
|||
|
+ "Old-school Xterm%small.greenterm.xpm%" Exec xterm -bg black -fg green
|
|||
|
|
|||
|
# end popup findpopup
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
Με την πέμπτη function θα εμφανίζεται μια λίστα με διάφορες επιλογές για configuration, π.χ. για kernel configuration, εκτέλεση του yast (Για S.u.S.E.
|
|||
|
μόνο!), καθώς και για configuration των Χ:
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
############################################################
|
|||
|
#
|
|||
|
# mesettingspopup
|
|||
|
#
|
|||
|
############################################################
|
|||
|
|
|||
|
AddToMenu mesettingspopup "Settings" Title
|
|||
|
+ "Yast%small.yast_suse_3d.xpm%" Exec xterm -bg balck -fg green -e yast
|
|||
|
+ "Kernel Configuration" Exec xterm -bg black -fg green -e mkmc
|
|||
|
+ "X configuration" Exec xterm -bg black -fg green -e Xconfig
|
|||
|
|
|||
|
# end popup mesettingspopup
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
Με την έκτη function θα εμφανίζεται μία λίστα με διάφορα προγράμματα που θα χρησιμοποιούνται συχνά - για αυτό και η ανάγκη για μια δικιά τους function.
|
|||
|
Κόφτε και ράφτε κατά τα μέτρα σας :-) :
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
############################################################
|
|||
|
#
|
|||
|
# meprogramspopup
|
|||
|
#
|
|||
|
############################################################
|
|||
|
|
|||
|
AddToMenu meprogramspopup "Programs" Title
|
|||
|
+ "Netscape%netscape1.xpm%" Exec netscape
|
|||
|
+ "X11Amp%x11amp.xpm%" Exec x11amp
|
|||
|
+ "The Gimp%gimp.xpm%" Exec gimp
|
|||
|
+ "GRio%grio.xpm%" Exec grio
|
|||
|
+ "KEdit%kedit.xpm%" Exec kedit
|
|||
|
+ "Bitchx%bitchx.xpm%" Exec bitchx
|
|||
|
+ "Kmix%kmix.xpm%" Exec kmix
|
|||
|
+ "XIsp%xisp.xpm%" Exec xisp -nohints
|
|||
|
+ "Acrobat Reader%acrobat.xpm" Exec xpdf
|
|||
|
|
|||
|
# end popup findpopup
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
Τέλος, η function για πρόσβαση στα διάφορα drives:
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
############################################################
|
|||
|
#
|
|||
|
# medrivespopup
|
|||
|
#
|
|||
|
############################################################
|
|||
|
|
|||
|
AddToMenu medrivespopup "Drive I/O" Title
|
|||
|
+ "Root filesystem%hdd.xpm" Exec xfilemanager -rootDir / -singleWindow
|
|||
|
+ "CD-ROM%cdrom.xpm" Exec xfilemanager -rootDir /cdrom -singleWindow
|
|||
|
+ "Floppy%floppy.xpm" Exec xfilemanager -rootDir /floppy -singleWindow
|
|||
|
|
|||
|
# end popup medrivespopup
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
Σημείωση: Αν χρησιμοποίησετε τις functions αυτές, θα παρατηρήσετε ότι πρέπει να κρατάτε πατημένο το πλήκτρο του πόντικα σας ή του πληκτρολογίου σας για να
|
|||
|
παραμείνει η λίστα στην οθόνη. Για να το αποφύγετε αυτό, κάντε το εξής: Γράφτε μια function σαν την παρακάτω, για κάθε function που θέλετε να συμβαίνει
|
|||
|
αυτό, και στη συνέχεια αντί να καλείτε την πρωτότυπη, καλέστε την καινούργια. Π.χ., για την medrivespopup, γράφουμε την εξής function:
|
|||
|
|
|||
|
AddToFunc medrivespopupfunc
|
|||
|
+ "I" Popup medrivespopup
|
|||
|
# end function medrivespopupfunc
|
|||
|
|
|||
|
6. Η δήλωση \"Style\" - Με αυτήν μπορούμε να δηλώσουμε συγκεκριμένες ιδιότητες που θα έχει κάποιο ή όλα τα παράθυρα. Αυτή η δήλωση δεν γίνεται μόνο μια φορά
|
|||
|
αλλά πολλές - τόσες ώστε να αποδώσουμε όλες τις επιθυμητές ιδιότητες στα παράθυρά μας. Μια δήλωση style έχει ως εξής:
|
|||
|
|
|||
|
style "titleparathirou" idiotita1, idiotita2, idiotia3, κ.τ.λ.
|
|||
|
|
|||
|
όπου titleparathirou ο τίτλος του παραθύρου στο οποίο θέλουμε να δώσουμε τις ιδιότητες idiotita1, idiotita2, idiotita3, κ.τ.λ. Αν αυτές τις ιδιότητες
|
|||
|
θέλουμε να τις αποδώσουμε σε όλα τα παράθυρα, τότε δηλώνουμε:
|
|||
|
|
|||
|
style "*" idiotita1, idiotita2, idiotia3, κ.τ.λ.
|
|||
|
|
|||
|
Άν ακόμα έχουμε ένα παράθυρο του οποίου ο τίτλος δεν είναι απολύτως σταθερός, όπως π.χ. το xosview, του οποίου ο τίτλος εξαρτάται από το όνομα του
|
|||
|
μηχανήματος (Hostname), τότε μπορούμε να δηλώσουμε:
|
|||
|
|
|||
|
style "katistathero*" idiotita1, idiotita2, idiotia3, κ.τ.λ.
|
|||
|
|
|||
|
όπου katistathero είναι το μέρος του τίτλου τού παραθύρου που μένει σταθερό. Ας αρχίσουμε λοιπόν τις style δηλώσεις που μας ενδιαφέρουν:
|
|||
|
|
|||
|
- Το module FvwmTaskbar είναι μια Taskbar η οποία έχει κουμπιά με τα προγράμματα που τρέχουν. Επειδή είναι αρκετά χαζό να συμπεριλαμβάνεται ο εαυτός της,
|
|||
|
θα της δώσουμε την ιδιότητα WindowListSkip, η οποία εξαιρεί την εμφάνιση του προγράμματος στο οποίο αποδίδουμε την ιδιότητα, στην Taskbar. Ακόμα, δεν
|
|||
|
θέλουμε η Taskbar να έχει τίτλο και \"decorations\", για αυτό της δίνουμε την ιδιότητα NoTitle. Ακόμα, θέλουμε να είναι συνεχώς ορατό, οπότε του δίνουμε
|
|||
|
την ιδιότητα StaysOnTop. Έτσι έχουμε:
|
|||
|
|
|||
|
Style "FvwmWinList" NoTitle, WindowListSkip, StaysOnTop
|
|||
|
|
|||
|
- Το εικονίδιο του xterm είναι **επειικώς** απαράδεκτο, οπότε:
|
|||
|
|
|||
|
Style *xterm* Icon greenterm.xpm
|
|||
|
|
|||
|
Με τη δήλωση αυτή, δηλώνουμε ότι θέλουμε όταν το xterm γίνεται iconified, το εικονίδιό του να είναι το greenterm.xpm
|
|||
|
|
|||
|
- Εμένα μου αρέσουν αυτά τα χρώματα στα inactive παράθυρά μου:
|
|||
|
|
|||
|
Style "*" BackColor Purple4
|
|||
|
Style "*" ForeColor Red
|
|||
|
|
|||
|
BackColor to background χρώμα του παραθύρου, ForeColor το χρώμα των γραμμάτων του τίτλου του παραθύρου. Αν δεν σας αρέσουν, ξέρετε τι να κάνετε :-P
|
|||
|
|
|||
|
7. FvwmButtons - Το FvwmButtons είναι ένα Module του FVWM, το οποίο είναι ουσιαστικά μια μπάρα με κουμπιά, και εμείς διαλέγουμε πόσα κουμπιά θα έχει, τι θα
|
|||
|
κάνει το καθένα, κ.τ.λ. Αρχίζουμε με τα χρώματα, τών οποιων η δήλωση είναι αρκετά απλή:
|
|||
|
|
|||
|
*FvwmButtonsFore Green
|
|||
|
*FvwmButtonsBack Purple4
|
|||
|
|
|||
|
και ύστερα η θέση του στο desktop, η οποία είναι ελαφρώς μετατοπισμένη προς τα κάτω, γιατί επάνω από το FvwmButtons θα τοποθετηθεί η TaskBar:
|
|||
|
|
|||
|
*FvwmButtonsGeometry +0+31
|
|||
|
|
|||
|
Άν θέλετε, μπορείτε όπως εγώ να βγάλετε τις δηλώσεις των xclock, xeyes, και asclock, γιατί καταλαμβάνουν πολύτιμο χώρο. Εξ άλλου, η Taskbar διαθέτει ρολόι
|
|||
|
στο δεξί άκρο της. Έχουμε λοιπόν:
|
|||
|
|
|||
|
#*FvwmButtons - - Swallow "FvwmXeyes" Exec xeyes -name "FvwmXeyes" -geometry +0+0 -bg grey67 &
|
|||
|
#*FvwmButtons - - Swallow "FvwmXclock" Exec xclock -name "FvwmXclock" -geometry +0+0 -padding 1 -bg grey67 &
|
|||
|
#*FvwmButtons - - Swallow "asclock" Exec asclock -position +0+0 -shape -led green &
|
|||
|
|
|||
|
Για το αν το coolmail αξίζει το χώρο που πιάνει, εγώ προσωπικά νομίζω πως όχι, οπότε\... Αν βέβαια εσείς θέλετε να το έχετε, ε, τι να κάνουμε\... :-) Και
|
|||
|
τώρα οι ζουμερές δηλώσεις ;-)
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
*FvwmButtons "" shutdown.xpm Function barthiswmpopupfunc
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
Με την παραπάνω δηλώνουμε ότι θέλουμε να προσθέσουμε ένα button στο FvwmButtons, το οποίο δεν έχει καθόλου κείμενο πάνω του (Τα εισαγωγικά είναι κενά. Ο
|
|||
|
λόγος είναι ότι στη συγκεκριμένη περίπτωση, το εικονίδιο έχει πάνω του το περιγραφικό κείμενο, π.χ. \"I/O Access\", ή \"Help\".), ενώ όταν κάνουμε αριστερό
|
|||
|
κλικ πάνω εκτελείται η function barthiswmpopupfunc, η οποία με τη σειρά της εμφανίζει και κρατάει σταθερό στην οθόνη το thiswmpopup menu.\
|
|||
|
Ομοίως λοιπόν για τις άλλες δηλώσεις:
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
*FvwmButtons "" cfind.xpm Function findpopupfunc
|
|||
|
*FvwmButtons "" help.xpm Function helpmepopupfunc
|
|||
|
*FvwmButtons "" run.xpm Function runpopupfunc
|
|||
|
*FvwmButtons "" settings.xpm Function mesettingspopupfunc
|
|||
|
*FvwmButtons "" programs.xpm Function meprogramspopupfunc
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
Τα άλλα buttons (SuSE, Graphics, Tools, Shells) μας αποχαιρέτησαν (\#).
|
|||
|
|
|||
|
8. FvwmTaskBar - Όπως αναφέρθηκε και προηγουμένως, η TaskBar είναι μια μπάρα, πάνω στην οποία υπάρχουν buttons τα οποία χρησιμοποιεί κανείς για να κάνει
|
|||
|
iconify/maximise ένα πρόγραμμα. Εκτός αυτών, η Taskbar έχει και ένα button στο οποίο μπορούμε να αναθέσουμε κάποια function ή menu, παρόμοιο με το \"Start\"
|
|||
|
button ακατανόμαστου αλειτούργητου συστήματος που άρχισε να κυκλοφορεί το 1995 ;-) Οι δηλώσεις που έχω εγώ για την TaskBar είναι:
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
###############################################################################
|
|||
|
# #
|
|||
|
# Task Bar #
|
|||
|
# #
|
|||
|
###############################################################################
|
|||
|
*FvwmTaskBarGeometry +0+0
|
|||
|
*FvwmTaskBarFore Green
|
|||
|
*FvwmTaskBarBack Purple4
|
|||
|
*FvwmTaskBarUseSkipList
|
|||
|
*FvwmTaskBarShowTips
|
|||
|
*FvwmTaskBarStartName Main()
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
Επεξηγήσεις: Οι τρεις πρώτες δηλώσεις είναι αρκετά απλές. Η τέταρτη (\*FvwmTaskBarUseSkipList) δίνει εντολή στην TaskBar να \"δίνει σημασία\" στην ιδιότητα
|
|||
|
WinListSkip ενός παραθύρου. Αν αυτή η δήλωση παραλειφθεί, παράθυρα στα οποία έχει δωθεί η ιδιότητα WinListSkip θα φαίνονται κανονικά και με το Νόμο στην
|
|||
|
TaskBar.
|
|||
|
|
|||
|
Φυσικά δεν είναι αναγκαστικό να κάνετε ότι έκανα και εγώ. Πειραματιστείτε, ψάξτε, και όλο και κάτι πιο καλό θα βρείτε.
|