RSS

Διαχειριση των παραθυρων των εφαρμογων μεσω script (wmctrl)

11 Οκτ.

Περιγραφη
Σκοπος αυτου του οδηγου ειναι να μπορεσουμε να διαχειριστουμε τα παραθυρα των εφαρμογων μας μεσω απλων scripts και κατ´ επεκταση μεσω συντομευσεων στον πληκτρολογιο.

Εγκατασταση
Αρχικα θα χρειαστει να εγκαταστησουμε το απαραιτητο προγραμμα για τον ελεγχο των εφαρμογων. Λεγεται wmctrl, γραφετε απλα:

sudo apt-get install wmctrl


στο terminal για να το εγκαταστησετε.

Απο εδω και περα, με το προγραμμα αυτο μπορουμε να μεγιστοποιησουμε/ελαχιστοποιησουμε καποιο παραθυρο οποιασδηποτε εφαρμογης, να της αλλαξουμε το μεγεθος, να την φερουμε στο προσκηνιο ή ακομα και να την μεταφερουμε σε καποια αλλη εικονικη επιφανεια εργασιας. Το μονο που χρειαζετε ειναι να γνωριζουμε το ονομα της εφαρμογης που θελουμε να διαχειριστουμε. Για να το δουμε αυτο, γραφουμε:

wmctrl -l


στο terminal και θα μας δωθει μια πληρη λιστα με τα στοιχεια των εφαρμογων που τρεχουν αυτη τη στιγμη στο συστημα μας. Για παραδειγμα:

:~$ wmctrl -l
0x01200003 -1 laptop Top Expanded Edge Panel
0x01200075 -1 laptop Bottom Expanded Edge Panel
0x0140001c -1 laptop x-nautilus-desktop
0x0141985f  0 laptop Torrents – File Browser
0x03200043  0 laptop Ubuntu-gr Forum • Δημιουργία νέου θέματος – Shiretoko
0x03e00003  0 laptop user@laptop: ~

Παραδειγματα
Στο παραδειγμα βλεπουμε οτι ο χρηστης τρεχει την εφαρμογη Shiretoko (εκδοση του Firefox) και την οποια θα χρησιμοποιησουμε για τα παραδειγματα μας:

Μεγιστοποιηση Εφαρμογης

wmctrl -r «shiretoko» -b add,maximized_vert,maximized_horz


Ελαχιστοποιηση Εφαρμογης

wmctrl -r «shiretoko» -b remove,maximized_vert,maximized_horz


Μετακινηση Εφαρμογης σε Συγκεκριμενη Θεση στην Επιφανεια Εργασιας

wmctrl -r «shiretoko» -e ‘0,6,0,1040,708’


Αλλαγη Εικονικης Επιφανειας Εργασιας (χωρις το Compiz ενεργοποιημενο)

wmctrl -s 2


Αλλαγη Ονοματος της Εφαρμογης

wmctrl -r «shiretoko» -T «Ubuntu Internet Explorer»


Αν στα παραπανω παραδειγματα αντι για «shiretoko» γραψετε :SELECT:, δηλαδη:

wmctrl -r :SELECT: -T «Ubuntu Internet Explorer»


τοτε θα πρεπει να διαλεξετε με το ποντικι την εφαρμογη που θελετε να εφαρμοσετε την εντολη, ενω αν βαλετε :ACTIVE: 

wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz


η εντολη θα εφαρμοστει στην εφαρμογη που ειναι ενεργη.

Εφαρμογες

Quake Terminal
Θα φτιαξουμε ενα script το οποιο θα ενεργοποιουμε με το πατημα ενος συνδυασμου πληκτρων και το οποιο θα μας εμφανιζει/εξαφανιζει το terminal. Θα προσομειωσουμε δηλαδη ενα terminal στο στυλ παιχνιδιων τυπου Doom, Quake κτλ.
Καταρχας ανοιγουμε το terminal και πηγαινουμε στο μενου «Edit» -> «Profile Preferences» -> «Title and command» και στο πεδιο «Initial Title» δεινουμε ενα δικο μας τιτλο πχ «Quake Terminal» και στο scrollbox απο κατω επιλεγουμε «Append Initial Title» η «Keep Initial Title». Και το κλεινουμε.
Ανοιγουμε τον GEdit και κανουμε paste το παρακατω script:

#!/bin/sh

# Επαναφορα στο προσκηνιο
if [ -f /tmp/.quake.shaded ]; then #Αν υπαρχει το αρχειο
wmctrl -r ‘Quake’ -e ‘0,3,0,800,600’  #Μετακινηση του παραθυρου επανω αριστερα
wmctrl -r ‘Quake’ -b remove,below   #Εμφανιση
wmctrl -r ‘Quake’ -b remove,shaded  #Ανοιγμα
rm /tmp/.quake.shaded
# Αποστολη στο παρασκηνιο
else #Αν δεν υπαρχει το αρχειο
wmctrl -r ‘Quake’ -b add,shaded
wmctrl -r ‘Quake’ -b add,below
touch /tmp/.quake.shaded
fi


Το σωζουμε και το κανουμε εκτελεσιμο. Τελος το συνδεουμε να ανοιγει και με ενα συνδυασμο πληκτρων πχ «Alt + ~» απο το μενου «System» -> «Preferences» -> «Keyboard Shortcuts». Τωρα το terminal με ενα πατημα των πληκτρων θα εμφανιζεται και με αλλο ενα θα κρυβεται. Εννοειται οτι για να λειτουργησει το script θα πρεπει να εχετε τρεξει πρωτα το terminal.

Aποκρυψη ολων των εφαρμογων εκτος του Conky
Στο ubuntu υπαρχει ενα κουμπακι στo panel με το οποιο οταν το πατατε, ελαχιστοποιουντε ολες οι εφαρμογες ωστε να εμφανιστει το desktop. Δυστυχως ομως αν τρεχετε το Conky τοτε εξαφανιζετε και αυτο, χωρις να μπορειτε να το επαναφερετε. Πρεπει αναγκαστικα να το κλεισετε (πχ μεσω kill) και να το τρεξετε παλι. Χρησιμοποιηστε το παρακατω script ωστε να ελαχιστοποιουνται ολες οι εφαρμογες, εκτος του Conky.

#!/bin/sh
wmctrl -k on
wmctrl -a conky

Διαφορετικο background σε καθε εικονικο desktop
Κανονικα δεν γινετε… 
 αλλα με το παρακατω τρικ, στην ουσια το προσομοιωνουμε. Φτιαχνετε δυο scripts. To ενα για να «κυλατε» τα desktops δεξια και το αλλο για αριστερα. Θα πρεπει να τα εκτελειτε με συντομευση πληκτρων πχ Ctrl + Alt + Δεξι Βελακι ή Αριστερο Βελακι (cursor). 

Script για κυλιση αριστερα:

#
#!/bin/bash
#
#left_workspace.sh
#

#
#get number of workspaces
#
ws=$(wmctrl -d | wc -l)
#

#
#current workspace index
#
cws=$(wmctrl -d | awk ‘/\*/ {print $1}’)
#

#
#work space on left
#
lws=$(($cws-1))
#

#
#wrap if required
#
if [ $lws = -1 ]; then
#
lws=$(($ws-1))
#
fi
#
echo $lws
#

#
#change to next workspace
#
wmctrl -s $lws
#

#
#set wallpaper depending on workspace number
#
case $lws in
#
(«0») gconftool -t string -s /desktop/gnome/background/picture_filename /home/jp/Pictures/100.jpg;
#
;;
#
(«1») gconftool -t string -s /desktop/gnome/background/picture_filename /home/jp/Pictures/200.jpg;
#
;;
#
(«2») gconftool -t string -s /desktop/gnome/background/picture_filename /home/jp/Pictures/300.jpg;
#
;;
#
(«3») gconftool -t string -s /desktop/gnome/background/picture_filename /home/jp/Pictures/400.jpg;
#
;;
#
#follow the above format to set as many desktops as you have specified in the workspace applet
#
esac

Script για κυλιση δεξια:

#
#!/bin/bash
#

#
#right_workspace.sh
#

#
#get number of workspaces
#
ws=$(wmctrl -d | wc -l)
#

#
#current workspace index
#
cws=$(wmctrl -d | awk ‘/\*/ {print $1}’)
#

#
#work space on right
#
rws=$(($cws+1))
#

#
#wrap if required
#
if [ $rws = $ws ]; then
#
rws=0
#
fi
#

#
#change to next workspace
#
wmctrl -s $rws
#

#
#set wallpaper depending on workspace number
#
case $rws in
#
(«0») gconftool -t string -s /desktop/gnome/background/picture_filename /home/jp/Pictures/100.jpg;
#
;;
#
(«1») gconftool -t string -s /desktop/gnome/background/picture_filename /home/jp/Pictures/200.jpg;
#
;;
#
(«2») gconftool -t string -s /desktop/gnome/background/picture_filename /home/jp/Pictures/300.jpg;
#
;;
#
(«3») gconftool -t string -s /desktop/gnome/background/picture_filename /home/jp/Pictures/400.jpg;
#
;;
#
#follow the above format to set as many desktops as you have specified in the workspace applet
#
esac


Στις γραμμες οπου αναφερεται η εντολη gconftool θα πρεπει στο τελος να δωσετε την διαδρομη της εικονας που εσεις θελετε.

Εναρξη Εφαρμογης ή Ενεργοποιηση
Πολλες φορες τυχαινει να ξεχναμε οτι εχουμε ανοιξει μια εφαρμογη πχ το terminal ή τον firefox και να την ανοιγουμε πολλες φορες. Με την παρακατω εντολη ομως ειναι δυνατον να ψαχνουμε πρωτα αν ηδη τρεχει η εφαρμογη και αν οχι τοτε να εκτελεστει. Μπορειτε να την βαλετε σε καποιο script η κατευθειαν σαν συντομευση σε καποιο πληκτρο.

wmctrl -a Firefox || firefox

Ο οδηγος αυτος βασιζεται στα παρακατω links:
http://sourceforge.net/apps/trac/easyst … sAndTricks
http://snipplr.com/view/11349/unique-ba … -on-linux/
http://www.linuxjournal.com/article/10066
http://www.oreillynet.com/sysadmin/blog … windo.html
http://www.linuxjournal.com/article/9973

 
 

Σχολιάστε

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση / Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση / Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση / Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση / Αλλαγή )

Σύνδεση με %s

 
Αρέσει σε %d bloggers: