Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm trying to set up a custom toolchain where the browser (Firefox or, preferrably, Chrome) is often/frequently/constantly forced to refresh from the commandline.

(The idea is to instantly see the visual changes in the html/webapp I'm editing in an adjacent Emacs frame - without having to constantly tab to the browser to do a manual refresh.)

The closest I've come so far is to run google-chrome FILE_PATH. However this opens a new tab every time.

Are there other approaches?

share|improve this question
I would try to start from something like Auto Reload. – manatwork Apr 25 '12 at 7:09
Ah thank you for this. I first thought this was a no-go since it's Mac only, but looks like there's something more crossplatform at github.com/guard/guard-livereload – thomanil Apr 25 '12 at 7:11
Firefox can apparently be remote-controlled, but i couldn't get it to work. Maybe you have better luck. – amenthes Jul 17 '15 at 0:23

Something to play with

It uses xdotool, which lets you script windows/desktop actions. If you supply the name of the browser as an argument, it'll find and reload the current page. You can set a default browser, so you don't need to supply one each time, and you can change whether you send a CTRL-R to reload, or SHIFT-CTRL-R to reload without cache.

It should flip to your browser, reload the page, then flip back to whatever window you called this from. I use this often by putting browser in background, with editor window set to 'ON-TOP' so it's always visible, hot-key this script, or call it from your editor, and it'll return your focus when it's done.

I'm a vim user, and I could see making an autocommand to automatically trigger this script whenever a given file was written, so the browser would refresh when appropriate, I know you can do the same.

# L Nix <lornix@lornix.com>
# reload browser window
# whether to use SHIFT+CTRL+R to force reload without cache
# set to whatever's given as argument
# if was empty, default set to name of browser, firefox/chrome/opera/etc..
if [ -z "${BROWSER}" ]; then
# 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}
share|improve this answer
+1 Cool stuff! Note that --name parameter matches against the string that is displayed in the window titlebar so it might not always contain the name of the browser as in this here example. – rebus Dec 27 '12 at 1:31
@rebus what about --class or --classname? – Aquarius Power Jun 20 '14 at 19:09

If you are using Firefox, Auto Reload is an extension where it reloads whenever file changes. You can add files, directories or localhost and edit regex based filter so that you will achieve what you want. I dont know any complementary to this in Chrome. link: https://addons.mozilla.org/en-US/firefox/addon/auto-reload/

share|improve this answer

@lornix's answer didn't quite work for me (I'm not sure why, possibly my window manager doesn't let xdotool switch windows). I wrote a modified version which should be more robust, it:

  1. Doesn't do the unnecessary switching between windows
  2. Limits itself to visible windows
  3. Refreshes all of the visible windows

(Also it uses F5 instead of Ctrl-R, but that's just because I have Ctrl-R bound to something else.)


set -o errexit
set -o nounset


# set to whatever's given as argument, defaults to firefox

# find all visible browser windows
browser_windows="$(xdotool search --sync --all --onlyvisible --name ${BROWSER})"

# Send keystroke
for bw in $browser_windows; do
    xdotool key --window "$bw" "$keystroke"
share|improve this answer
I should add this doesn't seem to work with chromium, and I have absolutely no idea why. – dshepherd Jan 12 at 10:21

For OS X you can use this bit of applescript:

activate application "Firefox"
tell application "System Events" to keystroke "r" using command down
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.