Ich versuche, eine benutzerdefinierte Toolchain einzurichten, bei der der Browser (Firefox oder vorzugsweise Chrome) oft/häufig/ständig gezwungen ist, von der Befehlszeile aus zu aktualisieren.
(Die Idee ist, die visuellen Änderungen in der HTML-/Webanwendung, die ich bearbeite, sofort in einem angrenzenden Emacs-Frame zu sehen – ohne ständig zum Browser wechseln zu müssen, um eine manuelle Aktualisierung durchzuführen.)
Am nächsten bin ich bisher gekommen, um google-chrome FILE_PATH
auszuführen . Dies öffnet jedoch jedes Mal einen neuen Tab.
Gibt es andere Ansätze?
Akzeptierte Antwort:
Etwas zum Spielen
Es verwendet xdotool , mit dem Sie Fenster-/Desktop-Aktionen skripten können. Wenn Sie den Namen des Browsers als Argument angeben, wird die aktuelle Seite gefunden und neu geladen. Sie können einen Standardbrowser festlegen, sodass Sie nicht jedes Mal einen angeben müssen, und Sie können ändern, ob Sie STRG-R zum Neuladen oder SHIFT-STRG-R zum Neuladen ohne Cache senden.
Es sollte Wechseln Sie zu Ihrem Browser, laden Sie die Seite neu und blättern Sie dann zurück zu dem Fenster, von dem aus Sie dies aufgerufen haben. Ich verwende dies oft, indem ich den Browser in den Hintergrund stelle, wobei das Editorfenster auf 'ON-TOP' eingestellt ist, damit es immer sichtbar ist, drücken Sie dieses Skript per Hotkey oder rufen Sie es von Ihrem Editor aus auf, und es wird Ihren Fokus zurückgeben, wenn es fertig ist.
Ich bin ein vim-Benutzer, und ich könnte mir vorstellen, einen Autocommand zu machen, um dieses Skript automatisch auszulösen, wenn eine bestimmte Datei geschrieben wird, damit der Browser bei Bedarf aktualisiert wird, ich weiß, dass Sie dasselbe tun können.
#!/bin/bash
#
# L Nix <[email protected]>
# reload browser window
#
# whether to use SHIFT+CTRL+R to force reload without cache
RELOAD_KEYS="CTRL+R"
#RELOAD_KEYS="SHIFT+CTRL+R"
#
# set to whatever's given as argument
BROWSER=$1
#
# if was empty, default set to name of browser, firefox/chrome/opera/etc..
if [ -z "${BROWSER}" ]; then
BROWSER=firefox
fi
#
# get which window is active right now
MYWINDOW=$(xdotool getactivewindow)
#
# bring up the browser
xdotool search --name ${BROWSER} windowactivate --sync
# send the page-reload keys (C-R) or (S-C-R)
xdotool search --name ${BROWSER} key --clearmodifiers ${RELOAD_KEYS}
#
# sometimes the focus doesn't work, so follow up with activate
xdotool windowfocus --sync ${MYWINDOW}
xdotool windowactivate --sync ${MYWINDOW}
#