Ich möchte, dass das Firefox-Fenster mit einem Shell-Befehl in einer bestimmten Größe und Position auf dem Bildschirm geöffnet wird. Beispiel:
firefox myfile.html size 800x600 location bottom-left
Gibt es so einen Befehl?
Ich möchte, dass das Firefox-Fenster mit einem Shell-Befehl in einer bestimmten Größe und Position auf dem Bildschirm geöffnet wird. Beispiel:
firefox myfile.html size 800x600 location bottom-left
Gibt es so einen Befehl?
Antworten:
Hier ist eine Community-Version der Antwort von Yokai , die Beispiele von Rudolf Olah enthält .
Mit dem aufgerufenen Tool können Sie die xdotool
Fenstergröße und -position steuern. Nicht nur , dass jedes Skript Sie schreiben in bash
, mit xdotool
, Setup zu arbeiten mit einem vollständig maximierten Fenster sein kann , und es kann scripted werden , um die Fenstergröße einzustellen und x: y - Koordinaten durch die Manipulation mousemove
und click
Befehle.
Finden Sie die Fenster-ID:
xdotool search --onlyvisible --name firefox
Stellen Sie die Fenstergröße ein
xdotool windowsize $WINDOW_ID_GOES_HERE $WIDTH $HEIGHT
Bewege das Fenster
xdotool windowmove $WINDOW_ID_GOES_HERE $X $Y
Wenn die Fenster-ID für Firefox beispielsweise 123 lautet, würden Sie Folgendes tun:
xdotool windowsize 123 800 600
xdotool windowmove 123 0 1080
Die Positionierung unten links muss anhand Ihrer Bildschirmauflösung ermittelt werden.
xdotool
, wmctrl
etc .. und Ubuntu, XFCE (dass ich): Wenn das Fenster bereits im Vollbildmodus gestartet wurde, können Sie es sich nicht mehr bewegen: bugs.launchpad.net/ubuntu/+source/unity/ + Bug / 971147
Soweit ich weiß, ist dies nicht möglich, da Firefox keine Befehle zur Steuerung des Fensters akzeptiert. Das liegt auch (meistens) in der Verantwortung des Fenstermanagers, daher bezweifle ich, dass es jemals Parameter dafür geben wird. Sie können das Fenster jedoch mit wmctrl steuern , aber das wird ein bisschen schwierig:
#!/bin/sh
firefox -new-instance -new-window "http://www.reddit.org" &
# Process ID of the process we just launched
PID=$!
# Window ID of the process...pray that there's
# only one window! Otherwise this might break.
# We also need to wait for the process to spawn
# a window.
while [ "$WID" == "" ]; do
WID=$(wmctrl -lp | grep $PID | cut "-d " -f1)
done
# Set the size and location of the window
# See man wmctrl for more info
wmctrl -i -r $WID -e 0,50,50,250,250
Es gibt vielleicht klügere Möglichkeiten, dies zu tun, und es gibt einige Interoperabilitätsprobleme mit Firefox (z. B. dass keine andere Instanz ausgeführt wird), aber es sollte Sie zum Laufen bringen.
In der Vergangenheit habe ich ein HTML-Dokument erstellt, in dem die Fenstergröße mit Javascript festgelegt und dann auf die gewünschte Seite umgeleitet wurde. Es ist ein dummer Hack, aber hey, es funktioniert.
Ich glaube nicht, dass dies nur mit Shell-Befehlen möglich ist, da es nichts mit Ihrem Windowmanager zu tun hat.
Ich habe von wmctrl und devilspie gehört, die dies bewirken können. Aber ich bezweifle, dass es einen Weg gibt, dies so einfach zu erreichen, wie Sie es in Ihrem Beispiel beschrieben haben.
Ich mache das die ganze Zeit. Ich benutze jedoch DevilsPie2, weil es robuster ist. Es verwendet die LUA-Skriptsprache, die nicht sehr schwierig ist.
Hier ist mein Lua-Skript für Thunderbird, das ich beim Öffnen auf dem linken Bildschirm (Laptop-Bildschirm) öffnen möchte:
if (get_window_name()=="Mozilla Thunderbird") then
pin_window()
set_window_geometry( 50, 10, 1220, 780 )
end
where 50 = X coordinate (for upper-left corner of the window)
10 = Y coordinate ( " " )
1220 = window width
780 = window height
Um dies einzurichten, erstellen Sie in Ihrer Home-Konfiguration (auf Ubuntu-ähnlichen Distributionen) ein Verzeichnis mit dem Namen devilspie2, z. B. /home/$USERNAME/.config/devilspie2
Für Thunderbird habe ich thunderbird.lua erstellt, obwohl der Dateiname keine Rolle spielt. Ich habe einen anderen Dateinamen für jede Anwendung, obwohl Sie alles in eine Skriptdatei setzen können, wenn Sie wünschen. Stellen Sie devilspie2 so ein, dass es beim Anmelden automatisch startet, z. B. /home/$USERNAME/.config/autostart/devilspie2.desktop
Hier ist ein Link zu einer guten Seite mit verschiedenen Optionen für Ihr Lua-Skript: https://github.com/gusnan/devilspie2/blob/master/README
Ein Hinweis: Die Skripte müssen nicht ausführbar sein. Meins sind 664 und funktionieren gut. Einige der anderen Programme, die ich steuere, sind openconnect, pidgin, RecordMyDesktop, timeshift, xeyes, xload und yad. Ich benutze pin_window für sie, damit sie auf allen Desktops und je nach Anwendung auch auf anderen Befehlen erscheinen.
devilspie2 --debug
)