{"id":14482970,"url":"https://github.com/ouralien/raspberry-pi-chromium-kiosk-mode","last_synced_at":"2025-08-30T03:32:35.398Z","repository":{"id":217615963,"uuid":"44017031","full_name":"ouralien/raspberry-pi-chromium-kiosk-mode","owner":"ouralien","description":"Chromium 48 on Debian 8 (Jessie) in a kiosk mode.","archived":false,"fork":false,"pushed_at":"2016-03-09T19:38:10.000Z","size":3,"stargazers_count":25,"open_issues_count":1,"forks_count":10,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-27T04:32:06.949Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ouralien.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-10-10T15:53:32.000Z","updated_at":"2022-07-13T03:58:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"efe00803-5ffe-472a-af97-4bccb8caf35d","html_url":"https://github.com/ouralien/raspberry-pi-chromium-kiosk-mode","commit_stats":null,"previous_names":["ouralien/raspberry-pi-chromium-kiosk-mode"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ouralien/raspberry-pi-chromium-kiosk-mode","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ouralien%2Fraspberry-pi-chromium-kiosk-mode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ouralien%2Fraspberry-pi-chromium-kiosk-mode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ouralien%2Fraspberry-pi-chromium-kiosk-mode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ouralien%2Fraspberry-pi-chromium-kiosk-mode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ouralien","download_url":"https://codeload.github.com/ouralien/raspberry-pi-chromium-kiosk-mode/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ouralien%2Fraspberry-pi-chromium-kiosk-mode/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272800742,"owners_count":24995138,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-30T02:00:09.474Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-09-03T00:01:25.293Z","updated_at":"2025-08-30T03:32:35.114Z","avatar_url":"https://github.com/ouralien.png","language":null,"funding_links":[],"categories":["Others"],"sub_categories":[],"readme":"# PI Setup\n\n### Download Image \u0026 Install\n\n`https://www.raspberrypi.org/downloads/raspbian/`\n\n[Raspbian Latest](https://downloads.raspberrypi.org/raspbian_latest.torrent) (Jessie 8)\n\n`sudo dd bs=1m if=path_of_your_image.img of=/dev/rdiskn`\n\nReplace `n` with the disk number\n\n### Setup Wifi\n\n`sudo nano /etc/wpa_supplicant/wpa_supplicant.conf`\n\n```\nnetwork={\n    ssid=\"SSID\"\n    psk=\"password\"\n}\n```\n\n```\nsudo ifdown wlan0\nsudo ifup wlan\n```\n\n### Necessary Software for Kiosk\n```\nsudo apt-get update\nsudo apt-get dist-upgrade\nsudo apt-get install matchbox x11-xserver-utils ttf-mscorefonts-installer xwit sqlite3 libnss3\n```\n\nThen reboot : `sudo reboot`\n\n\n### Installation of libgcrypt11 on Debian Linux 8 ( Jessie ) 64-bit\n\n```\nwget http://ftp.acc.umu.se/mirror/cdimage/snapshot/Debian/pool/main/libg/libgcrypt11/libgcrypt11_1.5.3-5_armhf.deb\n\nsudo dpkg -i libgcrypt11_1.5.3-5_armhf.deb\n```\n\n### Installation of Chromium browser 48\n\n`https://launchpad.net/ubuntu/vivid/armhf/chromium-browser/`\n\n```\n# Download chromium package\nwget http://launchpadlibrarian.net/234969703/chromium-browser_48.0.2564.82-0ubuntu0.15.04.1.1193_armhf.deb\n```\n\n`https://launchpad.net/ubuntu/vivid/armhf/chromium-codecs-ffmpeg-extra/`\n\n```\n# Download ffmpeg extra package\nwget http://launchpadlibrarian.net/234969705/chromium-codecs-ffmpeg-extra_48.0.2564.82-0ubuntu0.15.04.1.1193_armhf.deb\n```\n\n```\n# Install Packages\nsudo dpkg -i chromium-codecs-ffmpeg-extra_48.0.2564.82-0ubuntu0.15.04.1.1193_armhf.deb \\ \n\tchromium-browser_48.0.2564.82-0ubuntu0.15.04.1.1193_armhf.deb\n```\n\n### Pi Config \n\n`/boot/config.txt`\n\n```\n# 1900x1200 at 32bit depth, DMT mode\ndisable_overscan=0\noverscan_left=38\noverscan_right=38\noverscan_top=25\noverscan_bottom=25\n\nframebuffer_width=1900\nframebuffer_height=1200\nframebuffer_depth=32\nframebuffer_ignore_alpha=1\nhdmi_pixel_encoding=1\nhdmi_group=2\n\n#uncomment to overclock the arm. 700 MHz is the default.\narm_freq=1000\n\ncore_freq=500\nsdram_freq=500\nover_voltage=2\ngpu_mem=128\n```\n\n### Method 1 : rc.local + xinit script\n\n`/etc/rc.local`\n\n```\n# Wait for the TV-screen to be turned on...\nwhile ! $( tvservice --dumpedid /tmp/edid | fgrep -qv 'Nothing written!' ); do\n\tbHadToWaitForScreen=true;\n\tprintf \"===\u003e Screen is not connected, off or in an unknown mode, waiting for it to become available...\\n\"\n\tsleep 10;\ndone;\n\nprintf \"===\u003e Screen is on, extracting preferred mode...\\n\"\n_DEPTH=32;\neval $( edidparser /tmp/edid | fgrep 'preferred mode' | tail -1 | sed -Ene 's/^.+(DMT|CEA) \\(([0-9]+)\\) ([0-9]+)x([0-9]+)[pi]? @.+/_GROUP=\\1;_MODE=\\2;_XRES=\\3;_YRES=\\4;/p' );\n\nprintf \"===\u003e Resetting screen to preferred mode: %s-%d (%dx%dx%d)...\\n\" $_GROUP $_MODE $_XRES $_YRES $_DEPTH\ntvservice --explicit=\"$_GROUP $_MODE\"\nsleep 1;\n\nprintf \"===\u003e Resetting frame-buffer to %dx%dx%d...\\n\" $_XRES $_YRES $_DEPTH\nfbset --all --geometry $_XRES $_YRES $_XRES $_YRES $_DEPTH -left 0 -right 0 -upper 0 -lower 0;\nsleep 1;\n\nif [ -f /boot/xinitrc ]; then\n\tln -fs /boot/xinitrc /home/pi/.xinitrc;\n\tsu - pi -c 'startx' \u0026\nfi\n```\n\n\n`/boot/xinitrc`\n\n```\n#!/bin/sh\nwhile true; do\n\n\t# Clean up previously running apps, gracefully at first then harshly\n\tkillall -TERM chromium-browser 2\u003e/dev/null;\n\tkillall -TERM matchbox-window-manager 2\u003e/dev/null;\n\tsleep 2;\n\tkillall -9 chromium-browser 2\u003e/dev/null;\n\tkillall -9 matchbox-window-manager 2\u003e/dev/null;\n\n\t# Clean out existing profile information\n\trm -rf /home/pi/.cache;\n\trm -rf /home/pi/.config;\n\trm -rf /home/pi/.pki;\n\n\t# Generate the bare minimum to keep Chromium happy!\n\tmkdir -p /home/pi/.config/chromium/Default\n\tsqlite3 /home/pi/.config/chromium/Default/Web\\ Data \"CREATE TABLE meta(key LONGVARCHAR NOT NULL UNIQUE PRIMARY KEY, value LONGVARCHAR); INSERT INTO meta VALUES('version','46'); CREATE TABLE keywords (foo INTEGER);\";\n\n\t# Disable DPMS / Screen blanking\n\txset -dpms\n\txset s off\n\n\t# Reset the framebuffer's colour-depth\n\tfbset -depth $( cat /sys/module/*fb*/parameters/fbdepth );\n\n\t# Hide the cursor (move it to the bottom-right, comment out if you want mouse interaction)\n\txwit -root -warp $( cat /sys/module/*fb*/parameters/fbwidth ) $( cat /sys/module/*fb*/parameters/fbheight )\n\n\t# Start the window manager (remove \"-use_cursor no\" if you actually want mouse interaction)\n\tmatchbox-window-manager -use_titlebar no -use_cursor no \u0026\n\n\t# Start the browser (See http://peter.sh/experiments/chromium-command-line-switches/)\n\tchromium-browser  --app='https://google.com'\n\ndone;\n```\n\n### Method 2 : lxsession autostart\n\n`nano .config/lxsession/LXDE-pi/autostart`\n\n```\n@lxpanel --profile LXDE-pi\n@pcmanfm --desktop --profile LXDE-pi\n@chromium-browser --kiosk --disable-session-crashed-bubble --disable-infobars https://www.google.com\n```\n\n`sudo nano /etc/lightdm/lightdm.conf`\n\n```\n# don't sleep the screen\nxserver-command=X -s 0 dpms\n```\n\n### Credits\n\n* [HOWTO: Boot your Raspberry Pi into a fullscreen browser kiosk](http://blogs.wcode.org/2013/09/howto-boot-your-raspberry-pi-into-a-fullscreen-browser-kiosk/)\n* [Installing Google Chromium on ARM devices](http://blog.valitov.me/2014/06/installing-google-chromium-on-arm.html)\n* [Installation of Spotify client on Debian Linux 8 ( Jessie ) 64-bit](http://linuxconfig.org/installation-of-spotify-client-on-debian-linux-8-jessie-64-bit)\n* [How do I cross-compile Chromium for ARM?](http://unix.stackexchange.com/questions/176794/how-do-i-cross-compile-chromium-for-arm)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fouralien%2Fraspberry-pi-chromium-kiosk-mode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fouralien%2Fraspberry-pi-chromium-kiosk-mode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fouralien%2Fraspberry-pi-chromium-kiosk-mode/lists"}