Προσθήκη εικονιδίου γλώσσας για όλους τους χρήστες

...ερωτήσεις & προβλήματα με το ubuntu ltsp και τους thin clients στην εκπαίδευση

Συντονιστές: the_eye, pros

Προσθήκη εικονιδίου γλώσσας για όλους τους χρήστες

Δημοσίευσηαπό alkisg » 20 Μάιος 2009, 09:12

Το συνημμένο script προσθέτει το εικονίδιο γλώσσας (ΕΛΛ-ΗΠΑ) για όλους τους χρήστες, χωρίς να πειράζονται οι υπόλοιπες ρυθμίσεις των πινάκων. Απλά το αποθηκεύετε με όνομα add-keyboard-applet.sh και το εκτελείτε με την εντολή
Κώδικας: Επιλογή όλων
sudo sh add-keyboard-applet.sh

Η παραπάνω εντολή το βάζει ως προεπιλογή για νέους χρήστες. Επομένως αν το εκτελέσετε πριν την προσθήκη χρηστών έχετε ξεμπερδέψει.

Για τους υπάρχοντες χρήστες δυσκολεύουν ελαφρώς τα πράγματα, επειδή θα πρέπει να εκτελεστεί η εντολή sh add-keyboard-applet.sh για κάθε χρήση ξεχωριστά!
Να δύο τρόποι για να γίνει αυτό, ο ένας άμεσος και ο άλλος κατά το logon.

1ος τρόπος:
Αν όλοι οι επιθυμητοί χρήστες ανήκουν σε κάποιο group, για παράδειγμα στο fuse ή στο students, τότε μπορείτε να κάνετε
Κώδικας: Επιλογή όλων
USERS=$(getent group fuse | cut -d':' -f4 | tr ',' "\n")
for U in $USERS
do
  sudo su $U -c 'sh add-keyboard-applet.sh'
done

Προσέξτε το add-keyboard-applet.sh να είναι στον τρέχοντα κατάλογο, αλλιώς βάλτε το πλήρες μονοπάτι.

2ος τρόπος:
Μπορείτε να το αντιγράψετε στον κατάλογο /etc/profile.d ώστε να εκτελείται όταν συνδέεται κάποιος χρήστης:
Κώδικας: Επιλογή όλων
  sudo cp add-keyboard-applet.sh /etc/profile.d/add-keyboard-applet.sh
  chmod +x /etc/profile.d/add-keyboard-applet.sh

Όταν περάσουν αρκετές μέρες και έχουν συνδεθεί τουλάχιστον από μία φορά όλοι οι χρήστες, θυμηθείτε να το διαγράψετε με
Κώδικας: Επιλογή όλων
  sudo rm /etc/profile.d/add-keyboard-applet.sh


Το script add-keyboard-applet.sh:
Κώδικας: Επιλογή όλων
#!/bin/sh
# Put gnome-keyboard-applet in the panel for new or existing users.
# copyright 2009 Alkis Georgopoulos <http://users.sch.gr/alkisg/>

if [ ! -z "$@" ]
then
   cat <<EOF
Το add-keyboard-applet.sh προσθέτει το εικονίδιο γλώσσας στον πίνακα εφαρμογών.

Πρέπει να εκτελεστεί μια φορά με
  sudo sh add-keyboard-applet.sh
ώστε να μπει ως προεπιλογή για νέους χρήστες, καθώς και από μία με
  sh add-keyboard-applet.sh
για ΚΑΘΕ ήδη υπάρχοντα χρήστη.
EOF
   return
fi

if [ $(id -u) -eq "0" ]      # Αν έγινε εκτέλεση με sudo
then
   SUDO="sudo"
   CONFIG_SOURCE="--config-source xml:readwrite:/etc/gconf/gconf.xml.defaults"
   [ $(gconftool-2 --ping) ] || CONFIG_SOURCE="--direct $CONFIG_SOURCE"
   APPLET_ID_LIST="/apps/panel/default_setup/general/applet_id_list"
   APPLET_BASE="/apps/panel/default_setup/applets/keyboard_applet"
   APPLET_INSTANCE=""
   APPLET_SCREEN=""
else
   SUDO=""
   CONFIG_SOURCE=""
   APPLET_ID_LIST="/apps/panel/general/applet_id_list"
   APPLET_BASE="/apps/panel"
   APPLET_INSTANCE="applets/keyboard_applet_screen0/"
   APPLET_SCREEN="_screen0"
fi

LIST=`gconftool-2 --get $APPLET_ID_LIST`

if [ -z $(echo $LIST | grep keyboard_applet${APPLET_SCREEN} >/dev/null) ]
then         # Αν το keyboard_applet δεν υπάρχει ήδη, πρόσθεσέ το
   LIST="[keyboard_applet${APPLET_SCREEN},${LIST#\[}"
   $SUDO gconftool-2 $CONFIG_SOURCE --type list --list-type string \
     --set $APPLET_ID_LIST "$LIST"
fi

$SUDO gconftool-2 $CONFIG_SOURCE --load - <<EOF
<gconfentryfile>
  <entrylist base="$APPLET_BASE">
    <entry>
      <key>${APPLET_INSTANCE}action_type</key>
      <schema_key>/schemas/apps/panel/objects/action_type</schema_key>
      <value>
        <string>lock</string>
      </value>
    </entry>
    <entry>
      <key>${APPLET_INSTANCE}attached_toplevel_id</key>
      <schema_key>/schemas/apps/panel/objects/attached_toplevel_id</schema_key>
      <value>
        <string></string>
      </value>
    </entry>
    <entry>
      <key>${APPLET_INSTANCE}bonobo_iid</key>
      <schema_key>/schemas/apps/panel/objects/bonobo_iid</schema_key>
      <value>
        <string>OAFIID:GNOME_KeyboardApplet</string>
      </value>
    </entry>
    <entry>
      <key>${APPLET_INSTANCE}custom_icon</key>
      <schema_key>/schemas/apps/panel/objects/custom_icon</schema_key>
      <value>
        <string></string>
      </value>
    </entry>
    <entry>
      <key>${APPLET_INSTANCE}launcher_location</key>
      <schema_key>/schemas/apps/panel/objects/launcher_location</schema_key>
      <value>
        <string></string>
      </value>
    </entry>
    <entry>
      <key>${APPLET_INSTANCE}locked</key>
      <schema_key>/schemas/apps/panel/objects/locked</schema_key>
      <value>
        <bool>true</bool>
      </value>
    </entry>
    <entry>
      <key>${APPLET_INSTANCE}menu_path</key>
      <schema_key>/schemas/apps/panel/objects/menu_path</schema_key>
      <value>
        <string>applications:/</string>
      </value>
    </entry>
    <entry>
      <key>${APPLET_INSTANCE}object_type</key>
      <schema_key>/schemas/apps/panel/objects/object_type</schema_key>
      <value>
        <string>bonobo-applet</string>
      </value>
    </entry>
    <entry>
      <key>${APPLET_INSTANCE}panel_right_stick</key>
      <schema_key>/schemas/apps/panel/objects/panel_right_stick</schema_key>
      <value>
        <bool>true</bool>
      </value>
    </entry>
    <entry>
      <key>${APPLET_INSTANCE}position</key>
      <schema_key>/schemas/apps/panel/objects/position</schema_key>
      <value>
        <int>6</int>
      </value>
    </entry>
    <entry>
      <key>${APPLET_INSTANCE}tooltip</key>
      <schema_key>/schemas/apps/panel/objects/tooltip</schema_key>
      <value>
        <string></string>
      </value>
    </entry>
    <entry>
      <key>${APPLET_INSTANCE}toplevel_id</key>
      <schema_key>/schemas/apps/panel/objects/toplevel_id</schema_key>
      <value>
        <string>top_panel${APPLET_SCREEN}</string>
      </value>
    </entry>
    <entry>
      <key>${APPLET_INSTANCE}use_custom_icon</key>
      <schema_key>/schemas/apps/panel/objects/use_custom_icon</schema_key>
      <value>
        <bool>false</bool>
      </value>
    </entry>
    <entry>
      <key>${APPLET_INSTANCE}use_menu_path</key>
      <schema_key>/schemas/apps/panel/objects/use_menu_path</schema_key>
      <value>
        <bool>false</bool>
      </value>
    </entry>
  </entrylist>
</gconfentryfile>
EOF

pkill -U `id -u` gnome-panel   # επαναφόρτωση των πινάκων, εάν τυχόν εκτελούνται
alkisg
punkTUX
punkTUX
 
Δημοσιεύσεις: 190
Εγγραφή: 26 Μάιος 2008, 11:38
Εκτύπωση

  • ΣΧΕΤΙΚΑ ΘΕΜΑΤΑ
    ΑΠΑΝΤΗΣΕΙΣ
    ΠΡΟΒΟΛΕΣ
    ΣΥΓΓΡΑΦΕΑΣ

Επιστροφή στο Ubuntu LTSP και Thin Clients στην Εκπαίδευση