web-dev-qa-db-fra.com

Comment configurer les paramètres par défaut de KDE pour un nouvel utilisateur d'un groupe?

Je suis un administrateur système sur la machine Kubuntu 11.10. Où dois-je configurer la configuration de base pour un nouvel utilisateur (par exemple, appartenant au groupe "utilisateurs")?

Éditez 1 :

Je souhaite configurer des langues. Actuellement, mes nouveaux utilisateurs ont l’anglais et le bulgare. Je veux qu’ils maîtrisent l’anglais et le russe - et définissent également Alt-CapsLock - comme étant la combinaison de commutation de langue d’entrée.

Éditez 2 :

Comment puis-je configurer les choses dans

/usr/share/kde4

Quand je fais

kdesudo systemsettings

et enregistrer les configurations - seuls les paramètres racine ont été modifiés - pas ceux /usr/share/kde4.

Éditez 3 :

Un nouvel utilisateur obtient les fichiers /etc/skel contrôlant l’apparence du comportement de bash. Qu'en est-il des fichiers par défaut du nouvel utilisateur KDE - où sont-ils stockés?

Éditez 4 :

Oh, j'ai trouvé des indices:

kde4-config --path config

donne une liste de dossiers (séparés par deux points) où KDE recherche les configs. Ma machine a répondu avec:

/home/boris/.kde/share/config/
/etc/kde4/
/usr/share/kubuntu-default-settings/kde4-profile/default/share/config/
/usr/share/kde4/config/
/usr/share/desktop-base/profiles/kde-profile/share/config/

Il semble que KDE prenne les options par défaut sur la troisième ligne. J'ai donc trouvé ces zilions de paramètres, mais aucun moyen graphique de le configurer ((.

Éditez 5 :

Enfin, j'ai créé un utilisateur factice, je l'ai configuré et j'ai écrit un script qui donne ses paramètres à un ou plusieurs utilisateurs donnés. L'astuce consiste à chown après avoir transféré les fichiers de points d'un utilisateur à un autre. Je l'ai testé - cela fonctionne bien.

4
Adobe

J'ai fini d'écrire un script qui transfère les fichiers de points, et ensuite chowns tout.

Modifier :

J'ai réécrit ce script à Bash il y a environ trois ans. Et je l'utilisais depuis un certain temps. Cependant, je n'ai pas utilisé ce script depuis des années et je ne le maintiens plus. Je n'ai pas revu ce script pour le moment, mais j'imagine qu'il n'est pas de grande qualité, vu que je l'ai écrit il y a longtemps.

L'idée de base est de stocker les fichiers de points de base sur github, de les télécharger par script, de corriger le nom d'utilisateur et d'attribuer les autorisations appropriées.

#!/bin/bash
# to get description use the -h flag

# You can see the structure of this code in emacs. For that eval the
# following lines:
# (mapc
#  (lambda (language-mode-hook)
#    (add-hook language-mode-hook 
#              (lambda ()
#                (make-local-variable 'outline-regexp)
#                (setq outline-regexp "^## ")
#                (make-local-variable 'outline-heading-end-regexp)
#                (setq outline-heading-end-regexp ":\n")
#                (outline-minor-mode 1))))
#    '(Shell-script-mode-hook sh-mode-hook))
# this makes use of outline-minor-mode and the default keys are:
# C-c @ C-t    show top level structure
# C-c @ C-a    show all
# for more see the Outline menu.

# TODO:
# update routine documntation?

# exit after a single error:
set -e

# ===========
## preambula:

PROGNAME=${0##*/}
PROGVERSION=4.02
NoColors=false

Dependencies=false
Root=false
Internet=false
Localhost=false
Base=`logname`
Update=false
Source=boris
Autostart=false

usage()
{
cat << EO
Usage: $PROGNAME <user>

This script install bkubuntu kubuntu set of programs and settings. It
assumes the user have x86_64 archeticture.

It does back-up all the configs, but it keeps only the latest back-up
-- so if You'll run this script twice in a row -- You'll lose Your
files. You might want to back up the original thing manually.

All of the options except for -u/--update require root privilages.

Examples
========

To install bkubuntu for Yourself::

    cd /path/to/bkubuntu.bash 
    Sudo ./bkubuntu.bash -i

To install Your bkubuntu to root::

    cd /path/to/bkubuntu.bash
    Sudo ./bkubuntu.bash -r

To install bkubuntu from other user at localhost::

    cd /path/to/bkubuntu.bash
    Sudo ./bkubuntu.bash -l -s <that user>

To update Your bkubuntu::

    bkubuntu.bash -u # provided bkubuntu.bash is in the PATH

Add -a if You want to have emacs, firefox, krusader, libreoffice
quickstart to run at start-up.

Options
=======

EO
cat << EO | column -s\& -t

  -i, --internet & fetchs bkubuntu from the internet and installs it for the current user
  -l, --localhost & fetchs bkubuntu from other user (-s)
  -a, --autostart & also turn on the autostart script (starts emacs, firefox, krusader at start up)
 
  -s, --source & source repository user, default to $Source
  -u, --update & updates Your bkubuntu git repos from the internet (should not be done under Sudo)
  -r, --root & transfers subset of Your bkubuntu to the root
 
  -h, --help & show this output
  -v, --version & show version information
      --no-colors & disables coloring in output
EO
}


SHORTOPTS="hvars:ilu"
LONGOPTS="help,version,no-colors,autostart,root,source:,internet,localhost,update"

ARGS=$(getopt -s bash --options $SHORTOPTS --longoptions $LONGOPTS --name $PROGNAME -- "$@")
eval set -- "$ARGS"

while true; do
    case $1 in

        -a|--autostart)
            Autostart=true;;
        -r|--root)
            Root=true;;
        -s|--source)
            Source=$2; shift;;
        -i|--internet)
            Internet=true;;
        -l|--localhost)
            Localhost=true;;
        -u|--update)
            Update=true;;

        -h|--help)
            usage; exit 0;;
        -v|--version)
            echo "$PROGVERSION"; exit 0;;
           --no-colors)
            NoColors=true;;
        --)
            shift; break;;
        *)
            shift; break;;
    esac
    shift
done

if $NoColors; then
    BLUE=''
    GREEN=''
    RED=''
    BLACK=''
else
    BLUE='\033[94m'
    GREEN='\e[0;32m'
    RED='\033[91m'
    BLACK='\033[0m'
fi


# ===========
## functions:

autostart () {
    if [ -e /home/$Base/.kde/Autostart/bkubuntu_startup_simple.bash ]; then
        rm /home/$Base/.kde/Autostart/bkubuntu_startup_simple.bash
    fi
    if ! [ -d /home/$Base/.kde/Autostart ]; then
        mkdir /home/$Base/.kde/Autostart
    fi
    ln /home/$Base/cmp/devs/bk_automates/bkubuntu/bk_runs_at/bkubuntu_startup_simple.bash /home/$Base/.kde/Autostart/bkubuntu_startup_simple.bash
}


back-up_and_clean () {
    if [ -d "$Base~" ]; then
        rm -rf "$Base~"
    fi
    mkdir "$Base~"

    mv -T $Base "$Base~"
    mkdir $Base
    cd $Base

    echo -e "${RED}${PROGNAME}: ${GREEN}Done with backing up $Base (to $Base~).${BLACK}"
}


rebase () {

    # these files should have ho spaces!
    FILES="\
$PWD/.kde/share/config/plasma-desktoprc
$PWD/.kde/share/config/plasma-desktop-appletsrc
$PWD/.kde/share/apps/kfileplaces/bookmarks.xml
$PWD/.kde/share/config/krusaderrc
$PWD/.kde/share/apps/krusader/krbookmarks.xml
$PWD/.kde/share/apps/krusader/useractions.xml
$PWD/.kde/share/apps/krusader/krusaderui.rc
$PWD/.config/libreoffice/3/user/registrymodifications.xcu
$PWD/.kde/share/apps/kfileplaces/bookmarks.xml
$PWD/.kde/share/config/khotkeysrc
$PWD/.Thunderbird/n8fe137g.default/secmod.db
$PWD/.Thunderbird/n8fe137g.default/prefs.js
$PWD/.Thunderbird/n8fe137g.default/extensions.ini
$PWD/.Thunderbird/n8fe137g.default/extensions.sqlite
$PWD/.Thunderbird/n8fe137g.default/panacea.dat
$PWD/.Thunderbird/n8fe137g.default/startupCache/startupCache.8.little
$PWD/.mozilla/firefox/kkhrci0w.default/secmod.db
$PWD/.mozilla/firefox/kkhrci0w.default/prefs.js
$PWD/.mozilla/firefox/kkhrci0w.default/extensions.ini
$PWD/.mozilla/firefox/kkhrci0w.default/search.json
$PWD/.mozilla/firefox/kkhrci0w.default/extensions.sqlite
$PWD/.mozilla/firefox/kkhrci0w.default/startupCache/startupCache.8.little
$PWD/.mozilla/firefox/kkhrci0w.default/zotero/locate/engines.json"

    # root doesn't have all these files:
    if [ $Base = "root" ]; then
        FILES=`echo $FILES | Perl -pe 's/ /\n/g' | Perl -pe 's/.*(emacs|libreoffice|autokey|bkubuntu|mozilla|Thunderbird).*//' | Perl -pe 's/^\n//'`
    fi

    for fileName in $FILES; do
        sed -i "s/$Source/$Base/g" "$fileName"
    done

    echo -e "${RED}${PROGNAME}: ${GREEN}Done with rebasing.${BLACK}"

}


chown_logout () {

    # ------
    # chown:

    chown -R $Base $PWD
    echo -e "${RED}${PROGNAME}: ${GREEN}chown: everything went fine.\n    You may wish to restart now.${BLACK}"
    sleep 1

    # ---------------
    # finally logout:

    secsTilLogout=10
    while [ $secsTilLogout -gt 0 ]; do
        sleep 1 &
        clear
        echo -e "${RED}${PROGNAME}: ${GREEN}Done. Documentation for hotkeys is available at:\n    ~/bks/computer/HotKeyPoetry/index.html\n\n    Unless You kill me with Ctrl-c --\n    I'll logout computer in $secsTilLogout seconds.${BLACK}"
        secsTilLogout=$(( $secsTilLogout - 1 ))
        wait # the point of 'sleep 1 & -- wait' construct is not to take into account the time of `sleep' execution
    done

    qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.logout 0 0 0

}


# ==========
## internet:

if $Internet; then

    # -------------
    # adding repos:

    echo -e \\n | Sudo add-apt-repository ppa:kubuntu-ppa/ppa
    echo -e \\n | Sudo add-apt-repository ppa:kubuntu-ppa/backports

    echo -e \\n | add-apt-repository ppa:cassou/emacs

    wget -q http://download.virtualbox.org/virtualbox/debian/Oracle_vbox.asc -O- | Sudo apt-key add -
    # perhaps I should add 
    # deb http://download.virtualbox.org/virtualbox/debian precise contrib
    # to /etc/apt/sources.list

    wget -q "http://deb.playonlinux.com/public.gpg" -O- | apt-key add -
    wget http://deb.playonlinux.com/playonlinux_squeeze.list -O /etc/apt/sources.list.d/playonlinux.list

    apt-get update

    echo -e "${RED}${PROGNAME}: ${GREEN}Done with repos.\n    Now the back-up phase...${BLACK}"
    sleep 1

    # -----------
    # installing:

    echo -e \\n | apt-get install emacs-snapshot konsole krusader okular kolourpaint4 smplayer vlc audacious gwenview k3b synaptic kopete keepassx xclip firefox Thunderbird procps tree xsel libreoffice wmctrl git virtualbox playonlinux build-essential kubuntu-restricted-extras gfortran parallel sshfs ssh

    echo -e "${RED}${PROGNAME}: ${GREEN}Done with installing prerequisites.\n    Now the cloning stage...${BLACK}"
    sleep 1


    # --------------------
    # preparing the place:

    cd /home
    back-up_and_clean

    # -----------------
    # clonning configs:

    git clone https://github.com/bk322/bk_dots .
    cp -R .bkubuntu/* . # copying dir structure
    git clone https://github.com/bk322/bk_automates /home/$Base/cmp/devs/bk_automates

    echo -e "${RED}${PROGNAME}: ${GREEN}Done with cloning configs.${BLACK}"
    sleep 1

    # parallel:
    # dpkg -i /home/$Base/cmp/repo/parallel*.deb


    # -----------------
    # applying configs:

    # autostart?
    if $Autostart; then
        autostart
    fi

    # ----------
    # XULRunner:

    mv /home/$Base/cmp/repo/.mozilla .
    mv /home/$Base/cmp/repo/.Thunderbird .

    rebase
    chown_logout

fi


# =========
## copying:

if $Localhost; then

    cd /home
    back-up_and_clean

    # ----------------------------------
    # cloning configs from user $Source:

    cd /home/$Base
    git clone /home/$Source .
    cp -R .bkubuntu/* . # copying dir structure
    git clone /home/$Source/cmp/devs/bk_automates /home/$Base/cmp/devs/bk_automates

    echo -e "${RED}${PROGNAME}: ${GREEN}Done with cloning configs from $Source.${BLACK}"
    sleep 1

    # -----------------
    # applying configs:

    # autostart?
    if $Autostart; then
        autostart
    fi

    # ----------
    # XULRunner:

    mv /home/$Base/cmp/repo/.mozilla .
    mv /home/$Base/cmp/repo/.Thunderbird .

    # -----------------------
    # rebase, chown, restart:

    rebase
    chown_logout

fi


# ==========
## updating:

if $Update; then

    # -------------
    # update repos:

    cd /home/$Base
    git checkout -- . && git pull -u Origin master

    cd /home/$Base/cmp/devs
    git checkout -- . && git pull -u Origin master

    cd /home/$Base
    echo -e "${RED}${PROGNAME}: ${GREEN}Done with syncing gits.${BLACK}"
    sleep 1

    # ---------
    # rebasing:
    rebase

fi

# ======
## root:

if $Root; then

    cd /
    Base=root
    back-up_and_clean

    Source=`logname`
    cd /home/$Source
    listOfFiles=`git ls-files | Perl -pe 's/.*(libreoffice|autokey|bkubuntu|mozilla|Thunderbird).*//' | Perl -pe 's/^\n//'`
    for File in $listOfFiles; do
        Parents=${File#/home/$Source/}
        cp --parents "$Parents" /root
    done


    # -----------------------
    # rebase, chown, restart:

    cd /root
    rebase
    chown_logout

fi
1
Adobe

Tout dans/etc/skel est copié. Par conséquent, si vous incluez un .bashrc ou de la même manière, il sera copié dans le répertoire de base du nouvel utilisateur et deviendra le nouveau paramètre de l'utilisateur. Jetez un coup d'œil aux fichiers cachés de votre propre répertoire personnel et voyez ce qui s'y trouve. KDE et la plupart des autres applications y placeront les paramètres par utilisateur.

ls -la /home/$(whoami)/
0
Huckle