Avec plusieurs moniteurs, j'ai jusqu'à présent fait glisser manuellement les fenêtres. Existe-t-il un moyen d'ouvrir une fenêtre sur un écran spécifique dans une configuration à double tête? (À ne pas confondre avec plusieurs écrans de serveur X.)
Quelque chose comme: SCREEN=2 firefox
ou open-in-screen 2 firefox
.
Si cela est important, mon environnement est KDE utilisant le gestionnaire de fenêtres KWin. Les règles de fenêtre KWin ne peuvent correspondre qu'à certaines propriétés comme le titre, mais je n'ai pas pu trouver de variable d'environnement comme filtre.
L'affichage secondaire étend l'écran principal:
$ xrandr -q
Screen 0: minimum 320 x 200, current 3520 x 1080, maximum 32767 x 32767
LVDS1 connected 1600x900+0+0 (normal left inverted right x axis y axis) 382mm x 214mm
1600x900 60.1*+
1024x768 60.0
800x600 60.3 56.2
640x480 59.9
VGA1 disconnected (normal left inverted right x axis y axis)
HDMI1 connected 1920x1080+1600+0 (normal left inverted right x axis y axis) 477mm x 268mm
1920x1080 60.0* 50.0 59.9
1920x1080i 60.1 50.0 60.0
1680x1050 59.9
1280x1024 75.0 60.0
1440x900 59.9
1280x960 60.0
1280x720 60.0 50.0 59.9
1024x768 75.1 70.1 60.0
832x624 74.6
800x600 72.2 75.0 60.3 56.2
720x576 50.0
720x480 60.0 59.9
640x480 75.0 72.8 66.7 60.0 59.9
720x400 70.1
DP1 disconnected (normal left inverted right x axis y axis)
kde
desktop
multi-monitor
kwin
virtual-desktop
Lekensteyn
la source
la source
kstart
pour cela, mais ilkstart
ne semble que prendre en charge la définition d'un bureau spécifique, mais pas un écran sur lequel l'application doit être lancée. Vaut probablement un rapport de bogue WISHLIST sur bugs.kde.org .kstart
, je voulais aussi le savoir. La commande est:kstart --desktop $N firefox
où$N
est un nombre compris entre 1 et le nombre total de bureaux virtuels .Réponses:
Non, vous ne pouvez pas faire ça directement. Dans l'architecture X, les deux moniteurs physiques que vous voyez ne sont pas discernables par les applications. Vous ne pouvez contourner cette abstraction qu'en déterminant quelles zones de l'espace de travail visible correspondent à quel moniteur, puis placez les fenêtres avec le décalage correct.
Des boîtes à outils sensibles prennent en charge une
-geometry
option, qui permet à votre application de demander à être placée à une position spécifique. Si vous ne disposez pas de cette option, vous pouvez utiliserwmctrl
si vous avez un gestionnaire de fenêtres X compatible EWMH / NetWM pour déplacer et redimensionner les fenêtres déjà existantes (voir wmctrl (1), vous avez besoin des options-r
et-e
). J'utilisedevilspie
pour forcer le placement de certaines fenêtres et bien sûr, votre gestionnaire de fenêtres de choix peut avoir sa propre fonction pour forcer le placement des fenêtres.devilspie
permet d'appliquer certaines actions sur X windows et peut utiliser les propriétés de X window pour discerner différentes fenêtres et applications. La règle clé pour vous seraitgeometry "<width>x<height>+<xoffset>+<yoffset>"
.Pourtant, vous devez toujours faire les calculs de quand et où un autre moniteur physique commence vous-même. Mais ce n'est pas trop difficile et
xrandr
vous indique comment et où il utilise des moniteurs sous la forme de"<width>x<height>+<xoffset>+<yoffset>
chaque ligne avec un nom de sortie.Il n'y a pas de méthode infaillible, cela fonctionnera simplement, car les implémentations peuvent (et changent!) Varier.
wmctrl
fonctionne généralement sur le titre de la fenêtre pour identifier la cible.devilspie
peut également faire référence à sa classe, mais je ne connais aucune boîte à outils qui vous permette de spécifier une classe X windows mais pas sa géométrie.Bien sûr, vous pouvez toujours démarrer deux
xephyr
instances et en faire une remplir votre écran de gauche et l'autre votre écran de droite, puis adresser les écrans via laDISPLAY
variable d'environnement, mais cette solution a d'autres inconvénients.En théorie, l'autorité de gouverner le placement des fenêtres est le gestionnaire de fenêtres. Par conséquent, si vous voulez que votre gestionnaire de fenêtres ne puisse pas le faire, ce sera hacky et c'est aussi la raison pour laquelle il n'y a pas de moyen générique pour y parvenir.
Pourtant, si votre cas d'utilisation concret est votre émulateur Android ... ce qui est très différent de demander l'option à spécifier
SCREEN=n fooapp
sur le shell, alors c'estdevilspie
peut-être ce que vous recherchez. Astuce: j'ai trouvé qu'il était préférable d'identifier les applications par leur classe de fenêtre.la source
SCREEN=x app
, est-il possible d'ajouter une propriété de fenêtre de cette manière afin qu'elle puisse être filtrée par KWin?Il s'agit d'une solution spécifique au gestionnaire de fenêtres. Voici comment le faire avec kwin qui est le gestionnaire de fenêtres par défaut de KDE.
Si vous faites un clic droit sur la barre de titre de l'application et sélectionnez plus de paramètres -> paramètres d'application spéciaux.
Accédez à l'onglet Correspondance de fenêtre. Cliquez sur le bouton Détecter les propriétés de la fenêtre. Ensuite, avec le curseur de la souris, cliquez sur la fenêtre principale de l'application. Il sélectionnera la classe de fenêtre, etc. et obtiendra également des informations de positionnement de fenêtre, etc.
Cliquez ensuite sur l'onglet Taille et position. Cliquez sur la position de la boîte et la taille de la boîte et la liste déroulante à droite des deux et définissez-la pour vous en souvenir.
Cliquez ensuite sur OK.
La prochaine fois que vous exécutez l'application, elle doit être de la même taille et sur le même moniteur.
J'utilise cela dans KDE pour ouvrir mon terminal uRxvt sur mon moniteur gauche sur une configuration à 3 moniteurs et cela fonctionne à chaque fois.
Bonne chance.
la source
Cela dépend de la configuration de vos deux moniteurs.
Si vous utilisez XINERAMA pour que les deux écrans ressemblent à un à X, vous utiliseriez l'
-geometry
option pour demander aux applications d'apparaître à un emplacement spécifique. Si les écrans sont configurés en différents écrans, vous utiliserez leDISPLAY
pour y parvenir.Essayez-les:
Si vos moniteurs sont les écrans 0 et 1, cela devrait engendrer un xterm sur chaque moniteur.
la source
-geometry
ne fonctionne pas toujours correctement.emulator
, basée sur QEMU). Le programme s'ouvre là où se trouve le curseur de ma souris.Je n'ai rencontré cette méthode qui utilise
xdotool
,xprop
, &wmctrl
.Voici ce que fera le script ci-dessous:
scénario
Cela déplacera la fenêtre active vers l'autre moniteur. Il ne peut gérer qu'un côte à côte, alias. horizontal, configuration des moniteurs.
Source: Xubuntu - déplacement des fenêtres entre les moniteurs
la source
SCREEN=2 appX
concept, sauf qu'elle l'estappX; sleep 1; moveWindow.sh
.app & sleep 1; moveWindow.sh
si les programmes ne se détachent pas. Je ne considère pas cela comme une amélioration par rapport à l'utilisation des règles de fenêtre KWin. +1 pour vos efforts.Eu un problème similaire. Trouvé ce qui suit:
Si aucun autre paramètre par défaut n'est spécifié, des fenêtres apparaissent sur l'écran actuellement actif. Avec la procédure décrite ci-dessus, la position de la souris définit cet écran actif.
la source