명령줄에서 활성 브라우저 탭을 새로 고치거나 다시 로드하시겠습니까?

명령줄에서 활성 브라우저 탭을 새로 고치거나 다시 로드하시겠습니까?

브라우저(Firefox 또는 바람직하게는 Chrome)가 명령줄에서 자주/자주/지속적으로 새로 고쳐지는 사용자 정의 도구 모음을 설정하려고 합니다.

(아이디어는 수동으로 새로 고치기 위해 브라우저로 계속 전환할 필요 없이 인접한 Emacs 프레임에서 편집 중인 html/webapp의 시각적 변경 사항을 즉시 확인하는 것입니다.)

지금까지 내가 왔던 것 중 가장 가까운 것은 달리기이다 google-chrome FILE_PATH. 그러나 이렇게 하면 매번 새 탭이 열립니다.

다른 방법이 있나요?

답변1

가지고 놀 것이 있다

그것은 사용한다xdo 도구, 창/데스크톱 작업을 스크립팅할 수 있습니다. 브라우저 이름을 매개변수로 제공하면 현재 페이지를 찾아 다시 로드합니다. 매번 제공할 필요가 없도록 기본 브라우저를 설정할 수 있으며, 캐싱을 사용하지 않고 다시 로드하려면 CTRL-R을 보낼지, 다시 로드하려면 SHIFT-CTRL-R을 보낼지 여부를 변경할 수 있습니다.

그것~해야 한다브라우저로 전환하고 페이지를 다시 로드한 다음 호출하던 창으로 다시 전환하세요. 저는 이것을 많이 사용합니다. 브라우저를 백그라운드에 두고, 편집기 창을 "ON-TOP"으로 설정하여 항상 표시되도록 하고, 이 스크립트를 단축키로 설정하거나 편집기에서 호출하면 완료되면 포커스가 반환됩니다.

저는 vim 사용자이고 주어진 파일이 작성될 때 이 스크립트를 자동으로 실행하도록 자동 명령을 만들어 브라우저가 적절한 시간에 새로 고쳐지는 것을 볼 수 있었습니다. 여러분도 똑같이 할 수 있다는 것을 알고 있습니다.

#!/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}
#

답변2

@lornix의 답변은 나에게 적합하지 않았습니다. (왜인지 모르겠습니다. 내 창 관리자가 xdotool이 창을 전환하는 것을 허용하지 않을 수도 있습니다.) 나는 더 강력하다고 생각되는 수정된 버전을 작성했습니다.

  1. 불필요한 창 전환이 없습니다.
  2. 눈에 보이는 창으로 제한하세요
  3. 보이는 모든 창 새로 고침

(또한 Ctrl-R 대신 F5를 사용하지만 이는 Ctrl-R을 다른 것에 바인딩했기 때문입니다.)

#!/bin/bash

set -o errexit
set -o nounset

keystroke="CTRL+F5"

# set to whatever's given as argument, defaults to firefox
BROWSER="${1:-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"
done

답변3

Firefox를 사용하는 경우 자동 새로 고침은 파일이 변경될 때마다 파일을 다시 로드하는 확장 기능입니다. 파일, 디렉터리 또는 로컬 호스트를 추가하고 정규식 기반 필터를 편집하여 원하는 효과를 얻을 수 있습니다. Chrome에 추가된 내용이 있는지 모르겠습니다. 관련된:https://addons.mozilla.org/en-US/firefox/addon/auto-reload/

답변4

OS X의 경우 다음 AppleScript를 사용할 수 있습니다.

activate application "Firefox"
tell application "System Events" to keystroke "r" using command down

예를 들어 터미널에서 실행하면 다음과 같습니다.

osascript \
  -e 'activate application "Firefox"' \
  -e 'tell application "System Events" to keystroke "r" using command down'

관련 정보