Làm cách nào để khởi động trình duyệt epiphany ở chế độ toàn màn hình từ thiết bị đầu cuối (không phải F11)? Tài liệu nói rằng sử dụng các đối số -f
hoặc --fullscreen
nhưng cả hai đều không hoạt động.
Làm cách nào để khởi động trình duyệt epiphany ở chế độ toàn màn hình từ thiết bị đầu cuối (không phải F11)? Tài liệu nói rằng sử dụng các đối số -f
hoặc --fullscreen
nhưng cả hai đều không hoạt động.
Câu trả lời:
Bạn có thể khởi động nó trong chế độ kiosk bằng cách sử dụng -a
, bạn có thể phải tạo ~/.config
hồ sơ cho hồ sơ của mình.
epiphany-browser -a --profile ~/.config http://localhost/index.html
~/.config
để /home/pi/.config
khi bạn đặt này trong /etc/rc.local
và nó hoạt động như một nét duyên dáng
Đây là cách tôi có trình duyệt ephiphany mặc định làm việc trong Chế độ kiosk. Đầu tiên tôi đặt sudo raspi-config
tùy chọn khởi động thành b2 "nhắc lệnh với đăng nhập tự động"
Tạo một tệp startB trong thư mục chính của bạn /home/pi/
với nội dung sau
sudo nano ./startB
#!/bin/sh
xset -dpms # disable DPMS (Energy Star) features.
xset s off # disable screen saver
xset s noblank # don't blank the video device
matchbox-window-manager -use_titlebar no &
WEBKIT_DISABLE_TBS=1 epiphany-browser -a --profile /home/pi/.config http://site
Bây giờ sudo nano /etc/rc.local
và đặt vào dòng sau trước khi thoát 0
sudo xinit ./home/pi/startB &
và Raspberry Pi sẽ khởi động ở chế độ kiosk với trình duyệt.
WEBKIT_DISABLE_TBS=1
được thiết lập và những gì nó phải làm. không liên quan đến kweb sao?
Tôi đã làm cho nó làm việc với xautomation. Tôi đã không có bất kỳ thành công với "-a".
Kịch bản tôi đang sử dụng là:
xte 'sleep 10' 'key F11'&
epiphany-browser test.html
Mã này sẽ gửi một phím F11 10 giây sau khi khởi động trình duyệt.
Đó là sau khi tôi cài đặt xautomation, cung cấp lệnh xte:
root@nexus:/home/pi/bin# aptitude install xautomation
Tôi đã thành công sau khi thử điều này.
Lưu tập lệnh shell này vào: /home/pi/fullscreen.sh
sudo -u pi epiphany-browser -a --profile ~/.config http://127.0.0.1/index.html --display=:0 &
sleep 15s;
xte "key F11" -x:0
&
là quan trọng Dấu này đang bỏ qua các lỗi từ trình duyệt epiphany. Tôi đã thêm &
dấu vì tôi gặp lỗi sau khi tôi thử tập lệnh shell này trên dòng lệnh.
sudo apt-get install epiphany-browser
sudo apt-get install xautomation
sudo vi /etc/xdg/lxsession/LXDE/autostart
@/home/pi/fullscreen.sh
sudo chmod 755 /home/pi/fullscreen.sh
(xin lỗi tiếng anh của tôi kém vì tôi là người Nhật.)
Các -a
cờ không dẫn đến toàn màn hình đối với tôi, và như F11
Toggles toàn màn hình (thay vì chỉ đặt nó) Tôi muốn một cái gì đó cụ thể hơn.
Tôi đã kết thúc bằng cách sử dụng wmctrl -r "<name of window>" -b add,fullscreen
mà bộ toàn màn hình thay vì chuyển đổi qua lại và kêu gọi này trong một vòng lặp trong khi quá trình duyệt vẫn chạy. Epiphany phản ứng với điều này giống như khi bạn vừa nhấn F11, ẩn thanh điều hướng và xóa trang trí cửa sổ.
# disable screensaver and screen blanking
xset -dpms s off
# create profile folder if it doesn't exist
mkdir -p /home/<user>/.config/epiphany-kiosk
# launch the browser as a background process
epiphany-browser -a --profile /home/<user>/.config/epiphany-kiosk http://localhost:8000/ &
# see /programming//a/20165094/66349
# get the browser PID
pid=$!
# If this script is killed, kill the main process.
trap "kill $pid 2> /dev/null" EXIT
# Loop while it's running...
while kill -0 $pid 2> /dev/null; do
wmctrl -r "<name of window>" -b add,fullscreen
sleep 2
done
# Disable the trap on a normal exit.
trap - EXIT
Tôi thấy rằng việc sử dụng độ trễ giữa lệnh khởi chạy epiphany và xte hút. Tôi tìm kiếm một cách tốt hơn (và đáng tin cậy hơn).
Nỗ lực đầu tiên của tôi là mở epiphany trên một tệp php sẽ thực thi lệnh xte: <?php $out = shell_exec("xte 'key F11'"); ?>
Thật không may, nó không hoạt động. Không thể cho bạn biết lý do tại sao (nếu ai đó biết, tôi quan tâm). Khi tôi lặp lại đầu ra với xte -h
tôi, tôi nhận được sự trợ giúp của lệnh xte trên trang web của mình ... Dù sao tôi cũng không có nhiều thời gian, vì vậy tôi thử cách khác.
Ý tưởng vẫn là khởi chạy epiphany cho tệp php (fs.php) có chứa:
$h = fopen("/var/www/fs/FS.chk", "w");
#fwrite($h, "browser opened"); # <- don't really need this
fclose($h);
Để khởi chạy trình duyệt web, tôi sẽ sử dụng tập lệnh bash có thể chạy sau khi khởi động hoặc bất cứ lúc nào bạn muốn. Kịch bản chứa:
if [ -e "var/www/fs/FS.chk" ]; then
rm -f /var/www/fs/FS.chk
fi
epiphany localhost/fs/fs.php &
until [ -e "/var/www/fs/FS.chk" ]
do
sleep 0.1
done
xte "key F11"
Như bạn nhận thấy, thư mục làm việc của tôi là / var / www / fs /. Nhưng bạn có thể thích ứng điều này với nhu cầu của bạn. Ngoài ra, khá dễ dàng để thêm một chuyển hướng trên tệp php để chuyển sang trang web mong muốn khi trình duyệt web đang chạy ở chế độ toàn màn hình.
Mã php tạo tệp nhân chứng (FS.chk) trong khi bash, sau khi đã khởi chạy epiphany cho tệp php này, đang tìm kiếm tệp nhân chứng . Tập tin này chỉ được tạo sau khi epiphany được mở (có thể thoát khỏi giấc ngủ 15 giây trong các bài viết trước). Khi bash nhìn thấy tệp nhân chứng , nó sẽ thực thi lệnh xte ...
EDIT: Tôi chỉ phát hiện ra rằng điều quan trọng là không thêm "http: //" trước khi URL được chuyển đến epiphany. Nếu bạn làm như vậy, lệnh xte sẽ được ban hành, rõ ràng, quá sớm.
Làm như thế này! GoTo: https://github.com/elalemanyo/raspberry-pi-kiosk-screen
tạo tập tin: nano /home/pi/fullscreen.sh
dán cái này vào fullscreen.sh:
#!/bin/bash
sleep 20
if [ -z "$(pgrep epiphany)" ];
then (sudo -u pi epiphany-browser -a -i --profile ~/.config http://www.na.se --display=:0) &
sleep 5s;
xte "key F11" -x:0;
fi
bash $0 &
Và sau đó nếu trình duyệt của bạn gặp sự cố, nó sẽ hoạt động trở lại :)
xte có một tùy chọn để gửi lệnh đến điều khiển từ xa (hoặc hiển thị cục bộ)
sử dụng tùy chọn -x xte sẽ đơn giản hơn:
epiphany --display=:0 [http://YOURURL]
sleep 20 && xte -x :0 "key F11"
Chúc may mắn!
Theo dõi bài viết @ Jacobm001 và @Adeel nhưng sau khi sửa đổi:
~/.config/states.xml
sửa #property id="3" value_type="gint">1920< #width
đổi sửa đổi#property id="3" value_type="gint">1080< #height
phù hợp với những điều trên với độ phân giải của thiết bị của bạn. Các phần nhận xét của tôi không có trong tệp state.xml.
Lưu và khởi động lại