Ich möchte, dass das Firefox-Fenster mithilfe eines Shell-Befehls in einer bestimmten Größe und an einer bestimmten Position auf dem Bildschirm geöffnet wird, zum Beispiel:
firefox myfile.html size 800x600 location bottom-left
Gibt es einen solchen Befehl?
Antwort1
Hier ist eine Community-Version der Antwort vonYokaidas Beispiele enthält vonRudolf Olah.
Sie können das aufgerufene Tool verwenden, xdotool
um Fenstergröße und -position zu steuern. Darüber hinaus kann jedes Skript, das Sie in schreiben bash
, so xdotool
eingerichtet werden, dass es mit einem vollständig maximierten Fenster funktioniert, und es kann so programmiert werden, dass es die Fenstergröße und die x:y-Koordinaten durch Manipulation der Befehle mousemove
und einstellt click
.
Suchen Sie die Fenster-ID:
xdotool search --onlyvisible --name firefox
Festlegen der Fenstergröße
xdotool windowsize $WINDOW_ID_GOES_HERE $WIDTH $HEIGHT
Verschieben Sie das Fenster
xdotool windowmove $WINDOW_ID_GOES_HERE $X $Y
Wenn die Fenster-ID für Firefox beispielsweise 123 ist, 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.
Antwort2
Soweit ich weiß, ist das nicht möglich, da Firefox keine Befehle zur Steuerung des Fensters akzeptiert. Das liegt auch (hauptsächlich) in der Verantwortung des Fenstermanagers, daher bezweifle ich, dass es jemals Parameter dafür geben wird. Sie können das Fenster jedoch steuern mitwmctrl, aber das wird etwas schwierig:
#!/usr/bin/env bash
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 möglicherweise cleverere 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 Ihnen weiterhelfen.
Antwort3
Dies löst zwar nicht das Positionsproblem, aber Sie können zumindest die Abmessungen festlegen:
firefox -width 200 -height 500
Antwort4
Ich mache das ständig. Ich verwende jedoch DevilsPie2, weil es robuster ist. Es verwendet die Skriptsprache LUA, die nicht sehr schwierig ist.
Hier ist mein Lua-Skript für Thunderbird, das ich beim Öffnen auf dem ganz linken Monitor (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, wobei der Dateiname keine Rolle spielt. Ich habe für jede Anwendung einen anderen Dateinamen, Sie können aber auch alles in eine Skriptdatei packen, wenn Sie möchten. 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 über verschiedene Optionen, die für Ihr Lua-Skript verfügbar sind:https://github.com/gusnan/devilspie2/blob/master/README
Eine Anmerkung: Die Skripte müssen nicht ausführbar sein. Meine sind 664 und funktionieren einwandfrei. Einige der anderen Programme, die ich steuere, sind Openconnect, Pidgin, RecordMyDesktop, Timeshift, Xeyes, Xload und yad. Ich verwende Pin_Window für sie, damit sie auf allen Desktops erscheinen, sowie weitere Befehle, je nach Anwendung.