J'ai regardé autour pendant un moment et ne pouvais pas trouver la réponse à mon problème suivant:
J'ai une configuration de six ordinateurs de bureau sur Ubuntu 12.04 avec Unity. Au démarrage, chaque matin, je suis habitué à ouvrir les mêmes cinq ou six programmes. J'ouvre chacun sur un espace de travail spécifique. J'aimerais que cela soit automatisé. Y at-il un moyen de script ou de configurer cela?
Question supplémentaire: Pour compliquer encore les choses, j'utilise deux écrans en mode d'affichage double. J'ai en fait besoin de démarrer chaque programme sur un écran spécifique, de préférence en plein écran.
l'idée de jdp407 d'utiliser compizconfig associe une application particulière à un espace de travail particulier, de sorte que CHAQUE FOIS que cette application est ouverte, elle est placée dans l'espace de travail correspondant. Si cela n'est pas souhaité, vous pouvez procéder comme suit:
1) Installez wmctrl
name__
Sudo apt-get install wmctrl
2) Créer un fichier avec le contenu suivant et le rendre exécutable
#!/bin/bash
wmctrl -s 0 #Switches to workspace 0 [workspaces are numbered from 0]
gnome-terminal & #Say you want a terminal in the 0th workspace
nautilus & #Maybe a file browser too
sleep 2 #Windows take some time to open. If you switch immediately, they'll open up in wrong workspaces. May have to change the value 2.
wmctrl -s 1 #Switches to workspace 1
firefox & #You get the idea. Continue for all workspaces
sleep 2
wmctrl -s 0 #You will be left at this workspace when the script finishes executing
3) Appelez ce script à partir de .xsessionrc
de votre répertoire personnel [si vous devez créer ce fichier] pour automatiser le processus à chaque connexion. Ou vous pouvez simplement l'appeler depuis un terminal en cas de besoin. EDIT: Mettez-le dans "Applications de démarrage", pas .xsessionrc. .xsessionrc s'exécutera avant même que le chargement de l'environnement de bureau soit terminé.
Vous souhaiterez peut-être créer une xsession personnalisée, comme suggéré par jdp407, afin de choisir entre deux sessions: une qui ouvre ces applications automatiquement et une autre qui ne le fait pas. Mais cela me semble inutile.
Si vous estimez que passer à un espace de travail, ouvrir les applications appropriées puis passer au suivant prend beaucoup de temps, vous pouvez ouvrir toutes les applications en une seule prise, puis déplacer les fenêtres à l'aide de wmctrl
name__. Par exemple
wmctrl -r 'Firefox' -t 1
déplacera une fenêtre avec Firefox dans son titre en espace de travail 1. S'il existe plusieurs fenêtres, la première de la liste des fenêtres gérées par wmctrl
sera déplacée. Vous aurez besoin de connaître le titre des fenêtres qui seront créées par les applications pour l'utiliser. C'est pourquoi je n'ai pas suggéré cela comme option principale. Si les titres ne sont pas ambigus, comme c'est le cas avec les applications les plus utilisées, c'est la voie à suivre.
Ouverture d'applications en plein écran:
Certaines applications telles que gnome-terminal ont des arguments de ligne de commande pour ouvrir une fenêtre en mode maximisé ou en mode plein écran. Si de telles options existent, utilisez-les. Sinon, utilisez wmctrl
comme suit
wmctrl -r 'prasanth@nb37' -b add,maximized_vert,maximized_horz
Cela maximise ma fenêtre de terminal (déjà existante).
wmctrl -r 'prasanth@nb37' -b add,fullscreen
Cela envoie la fenêtre en mode plein écran.
Parcourez la page de manuel de wmctrl
name __. Vous pouvez trouver une utilisation pour plus de ses fonctionnalités.
Il y a deux "problèmes" ici: le premier consiste à ouvrir un ensemble spécifique de programmes lorsque vous vous connectez; la seconde consiste à les ouvrir sur des espaces de travail spécifiques. Je traiterai les deux séparément:
Création d'une session X personnalisée
C'est assez facile à faire. Vous devez simplement créer un script de session X, puis demander à LightDM de l’utiliser. Vous aurez besoin de connaître les commandes pour lancer les programmes que vous voulez depuis le terminal.
touch ~/.customxsession
et appuyez sur entrée.gedit ~/.customxsession
et appuyez sur entrée.touch /usr/share/xsessions/multi.desktop
et appuyez sur entrée.gedit /usr/share/xsessions/multi.desktop
et appuyez sur entrée.Affectation de programmes aux espaces de travail
C’est aussi très facile, mais il faut un logiciel supplémentaire qui n’est pas installé par défaut dans Ubuntu.
Sudo apt-get install compizconfig-settings-manager
dans Terminal).Connexion
Lorsque vous vous connectez, vous devez indiquer à Ubuntu que vous souhaitez utiliser votre session X personnalisée.
Problèmes
Cela aurait pu mal tourner, que ce soit si vous faites une petite erreur ou si je me suis trompé en écrivant cette réponse. Si quelque chose ne va pas, assurez-vous que vous avez suivi les instructions à la lettre, et corrigez quoi que ce soit si vous ne l'avez pas déjà fait. Si vous avez toujours un problème, laissez un commentaire.
~/.customxsession:
#!/usr/bin/env bash
program-command-1 &
program-command-2 &
program-command-3 &
program-command-4 &
program-command-5 &
program-command-6 &
exec gnome-session
/usr/share/xsessions/multi.desktop:
[Desktop Entry]
Name=Multi-Session
Exec=/home/your-username/.customxsession
Ajoutez les applications requises dans le programme StarupApplications, puis ajoutez également ce script. Ceci est mon script: ManageWorkSpaces.sh
echo "Jeril"
wmctrl -r NetBeans IDE 7.1.1 -t 0
wmctrl -r /bin/bash -t 1
wmctrl -r Google Chrome -t 2
wmctrl -r jerilkuruvila - Skype™ -t 3
// focus sur le terminal
wmctrl -a NetBeans IDE 7.1.1 -t 0
Mais je n'ai aucune idée de la gestion de 2 écrans.