Latest commit

History

152 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Try it now in CWS

#Chrome Kiosk

Basic kiosk packaged application. Allows any URL to be loaded as a fullscreen kiosk in Google Chrome or Chrome OS, also disables device sleep mode while app is running.

##Features

###System

  • Launches a specified URL full-screen at all times.
  • Device power-saving (sleep mode) disabled
  • Can be locked into-single app kiosk on managed Chrome devices.

###Interaction

  • Option to hide cursor
  • Option to disable context menu
  • Option to disable image dragging
  • Option to disable touch highlighting
  • Option to disable text selection

Caveat: these interaction adjustments will only be applied once your content is fully loaded. If you have a multi-page application, the cursor, etc. may be enabled on each page load until the content is fully loaded. Recommended solution is to develop content as single-page (AJAX) application and/or use the following CSS:

*{
cursor:none;
-webkit-tap-highlight-color: rgba(0,0,0,0);
-webkit-touch-callout: none;
-webkit-user-select: none;
user-select: none;
}

and javascript:

window.oncontextmenu = function(){return false};
window.ondragstart = function(){return false};

###Local Administration

Setup can be accessed via keystroke (CTRL+A) and administer-configured username/password.

###Remote Administration

On desktop operating systems basic configuration as well as application restart options are available remotely. See "Known Limitations" for details on ChromeOS support.

###Inactivity Reset

Allow content to be reset after a administrator-specified period of inactivity.

###Daily restart

Application can be completely restarted at an administrator-specified time once per day.

###Remote Schedule Server

Accepts a URL to a JSON feed for a content schedule. If no item is currently scheduled, the default content (specified by the Content URL on Kiosk setup page) is used. Default content will be overridden by scheduled items. Schedule URL is polled at configurable interval. kiosk_t parameter is appended to the URL with a value of the current timestamp to prevent caching of the schedule. Schedule should be formatted according to (a simplified version of) the format provided by Chrome Sign Builder (exported schedules from Chrome Sign Builder are currently supported without support for screen position, repetition or display settings):

{
"schedule": {
"Value": {
"items": [
{
"content": "http://www.zebradog.com",
"end": "Tue Jul 14 2015 12:30:00 GMT-0500",
"start": "Tue Jul 14 2015 09:30:00 GMT-0500",
},
{
"content": "http://www.google.com",
"end": "Tue Jul 15 2015 12:30:00 GMT-0500",
"start": "Tue Jul 16 2015 09:30:00 GMT-0500",
}
]
}
}
}

####Note:

Remote schedule server must have CORS headers set or the Allow-Control-Allow-Origin:* Chrome extension can be installed to allow access. JSONP is not an option since scripts from arbitrary domains cannot be executed inside Chrome extensions.

###Auto-start

On ChromeOS devices: Using managed devices and setting Kiosk application to start in Kiosk mode is the recommended solution. On Windows and OSX: From chrome://apps/ right click on "Kiosk" and "Create shortcut" then copy this shortcut into the startup folder (Windows) or add to login items (OSX). Linux: Likely similar to Windows and OSX, untested.

##Support & Feature Requests

This product is maintained by ZEBRADOG and provided without warranty or guaranteed support. If you need a bug fix please check that it has not be reported and submit details here: https://github.com/zebradog/kiosk/issues

Patches and new features are released at our convenience. If you need a bug fix or new feature on a specific schedule, please send details to support@zebradog.com for a quote. Alternatively, if the issue does not yet have a milestone assigned to it, add a bounty via https://www.bountysource.com and either we or a third party developer can prioritize the update.

Pull requests are welcome.

##Known Limitations

##Changelog

  • v5.7.2

    • Allow simplified version of schedule JSON
    • Bug fix: load schedule JSON cross-domain
    • Bug fix: append time to schedule JSON to prevent caching
  • v5.7.1

    • Bug fix: clear cache now fully clears cache
  • v5.7.0

    • Sleep/screensaver mode configurable
  • v5.6.0

    • Allow files to be served from local directory
    • Add option to clear cache on save
    • Add option to set custom user agent
    • Bug fix: Reload will now work correctly on all systems.
  • v5.5.2

    • Bug fix: Correctly focus form-fields on load.
    • Bug fix: Save cookies, etc. across sessions.
    • Bug fix: 1:00 or 2:00 AM/PM restart time now loads correctly.
    • Change default remote management port to 8080 since 80 is blocked on ChromeOS.
    • Allow videos in content to go full screen.
    • Prevent exiting fullscreen by pressing escape
  • v5.5.1

    • Bug fix: users on 5.4.0 with scheduling enabled experience rapid polling upon upgrade to 5.5.0.
  • v5.5.0

    • Bug fix: switching scheduled content
    • Added ability to set schedule polling interval
  • v5.4.0

    • Added remote schedule server support
    • Added option to hide cursor
    • Added option to disable context menu
    • Added option to disable image dragging
    • Added option to disable touch highlighting
    • Added option to disable text selection
  • v5.3.4

    • Bug fix: restart scheduling
  • v.5.3.3

    • Bug fix: reset/restart combo.
  • v.5.3.2

    • Optional webcam/mic access added.
  • v.5.3.1

    • Prevent inactivity reset via console.log("kiosk:active") in content page.
  • v.5.3.0

    • updated to Materialize v0.96.1
    • added local administration
    • added daily restart
    • added inactivity reset
  • v.5.2.1

    • auto-restart on content crash or unresponsive
  • v.5.2.0

    • added remote administration
    • remote restart for ChromeOS devices in kiosk mode
    • skinned with Materialize
  • v5.1.2

    • automatically attempt to reconnect to content if connection broken
  • v5.1.1

    • Bug fix: 1/5 screen fullscreen on Windows 8
  • v5.1.0

    • started using proper semver
    • added demo link
  • v5.0

    • added support for offline use
  • v4.0

    • prevent system sleep (previously only prevented display sleep)
  • v3.0

    • cleaned up design files
  • v2.0

    • added branding
    • cleaned up interface
    • switched to setup page from key-combo options page
  • v1.0

    • initial draft version

About

Allows any URL to be loaded as a fullscreen kiosk in Google Chrome or Chrome OS.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

152 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Try it now in CWS

#Chrome Kiosk

Basic kiosk packaged application. Allows any URL to be loaded as a fullscreen kiosk in Google Chrome or Chrome OS, also disables device sleep mode while app is running.

##Features

###System

  • Launches a specified URL full-screen at all times.
  • Device power-saving (sleep mode) disabled
  • Can be locked into-single app kiosk on managed Chrome devices.

###Interaction

  • Option to hide cursor
  • Option to disable context menu
  • Option to disable image dragging
  • Option to disable touch highlighting
  • Option to disable text selection

Caveat: these interaction adjustments will only be applied once your content is fully loaded. If you have a multi-page application, the cursor, etc. may be enabled on each page load until the content is fully loaded. Recommended solution is to develop content as single-page (AJAX) application and/or use the following CSS:

*{
cursor:none;
-webkit-tap-highlight-color: rgba(0,0,0,0);
-webkit-touch-callout: none;
-webkit-user-select: none;
user-select: none;
}

and javascript:

window.oncontextmenu = function(){return false};
window.ondragstart = function(){return false};

###Local Administration

Setup can be accessed via keystroke (CTRL+A) and administer-configured username/password.

###Remote Administration

On desktop operating systems basic configuration as well as application restart options are available remotely. See "Known Limitations" for details on ChromeOS support.

###Inactivity Reset

Allow content to be reset after a administrator-specified period of inactivity.

###Daily restart

Application can be completely restarted at an administrator-specified time once per day.

###Remote Schedule Server

Accepts a URL to a JSON feed for a content schedule. If no item is currently scheduled, the default content (specified by the Content URL on Kiosk setup page) is used. Default content will be overridden by scheduled items. Schedule URL is polled at configurable interval. kiosk_t parameter is appended to the URL with a value of the current timestamp to prevent caching of the schedule. Schedule should be formatted according to (a simplified version of) the format provided by Chrome Sign Builder (exported schedules from Chrome Sign Builder are currently supported without support for screen position, repetition or display settings):

{
"schedule": {
"Value": {
"items": [
{
"content": "http://www.zebradog.com",
"end": "Tue Jul 14 2015 12:30:00 GMT-0500",
"start": "Tue Jul 14 2015 09:30:00 GMT-0500",
},
{
"content": "http://www.google.com",
"end": "Tue Jul 15 2015 12:30:00 GMT-0500",
"start": "Tue Jul 16 2015 09:30:00 GMT-0500",
}
]
}
}
}

####Note:

Remote schedule server must have CORS headers set or the Allow-Control-Allow-Origin:* Chrome extension can be installed to allow access. JSONP is not an option since scripts from arbitrary domains cannot be executed inside Chrome extensions.

###Auto-start

On ChromeOS devices: Using managed devices and setting Kiosk application to start in Kiosk mode is the recommended solution. On Windows and OSX: From chrome://apps/ right click on "Kiosk" and "Create shortcut" then copy this shortcut into the startup folder (Windows) or add to login items (OSX). Linux: Likely similar to Windows and OSX, untested.

##Support & Feature Requests

This product is maintained by ZEBRADOG and provided without warranty or guaranteed support. If you need a bug fix please check that it has not be reported and submit details here: https://github.com/zebradog/kiosk/issues

Patches and new features are released at our convenience. If you need a bug fix or new feature on a specific schedule, please send details to support@zebradog.com for a quote. Alternatively, if the issue does not yet have a milestone assigned to it, add a bounty via https://www.bountysource.com and either we or a third party developer can prioritize the update.

Pull requests are welcome.

##Known Limitations

##Changelog

  • v5.7.2

    • Allow simplified version of schedule JSON
    • Bug fix: load schedule JSON cross-domain
    • Bug fix: append time to schedule JSON to prevent caching
  • v5.7.1

    • Bug fix: clear cache now fully clears cache
  • v5.7.0

    • Sleep/screensaver mode configurable
  • v5.6.0

    • Allow files to be served from local directory
    • Add option to clear cache on save
    • Add option to set custom user agent
    • Bug fix: Reload will now work correctly on all systems.
  • v5.5.2

    • Bug fix: Correctly focus form-fields on load.
    • Bug fix: Save cookies, etc. across sessions.
    • Bug fix: 1:00 or 2:00 AM/PM restart time now loads correctly.
    • Change default remote management port to 8080 since 80 is blocked on ChromeOS.
    • Allow videos in content to go full screen.
    • Prevent exiting fullscreen by pressing escape
  • v5.5.1

    • Bug fix: users on 5.4.0 with scheduling enabled experience rapid polling upon upgrade to 5.5.0.
  • v5.5.0

    • Bug fix: switching scheduled content
    • Added ability to set schedule polling interval
  • v5.4.0

    • Added remote schedule server support
    • Added option to hide cursor
    • Added option to disable context menu
    • Added option to disable image dragging
    • Added option to disable touch highlighting
    • Added option to disable text selection
  • v5.3.4

    • Bug fix: restart scheduling
  • v.5.3.3

    • Bug fix: reset/restart combo.
  • v.5.3.2

    • Optional webcam/mic access added.
  • v.5.3.1

    • Prevent inactivity reset via console.log("kiosk:active") in content page.
  • v.5.3.0

    • updated to Materialize v0.96.1
    • added local administration
    • added daily restart
    • added inactivity reset
  • v.5.2.1

    • auto-restart on content crash or unresponsive
  • v.5.2.0

    • added remote administration
    • remote restart for ChromeOS devices in kiosk mode
    • skinned with Materialize
  • v5.1.2

    • automatically attempt to reconnect to content if connection broken
  • v5.1.1

    • Bug fix: 1/5 screen fullscreen on Windows 8
  • v5.1.0

    • started using proper semver
    • added demo link
  • v5.0

    • added support for offline use
  • v4.0

    • prevent system sleep (previously only prevented display sleep)
  • v3.0

    • cleaned up design files
  • v2.0

    • added branding
    • cleaned up interface
    • switched to setup page from key-combo options page
  • v1.0

    • initial draft version

About

Allows any URL to be loaded as a fullscreen kiosk in Google Chrome or Chrome OS.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

152 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Try it now in CWS

#Chrome Kiosk

Basic kiosk packaged application. Allows any URL to be loaded as a fullscreen kiosk in Google Chrome or Chrome OS, also disables device sleep mode while app is running.

##Features

###System

  • Launches a specified URL full-screen at all times.
  • Device power-saving (sleep mode) disabled
  • Can be locked into-single app kiosk on managed Chrome devices.

###Interaction

  • Option to hide cursor
  • Option to disable context menu
  • Option to disable image dragging
  • Option to disable touch highlighting
  • Option to disable text selection

Caveat: these interaction adjustments will only be applied once your content is fully loaded. If you have a multi-page application, the cursor, etc. may be enabled on each page load until the content is fully loaded. Recommended solution is to develop content as single-page (AJAX) application and/or use the following CSS:

*{
cursor:none;
-webkit-tap-highlight-color: rgba(0,0,0,0);
-webkit-touch-callout: none;
-webkit-user-select: none;
user-select: none;
}

and javascript:

window.oncontextmenu = function(){return false};
window.ondragstart = function(){return false};

###Local Administration

Setup can be accessed via keystroke (CTRL+A) and administer-configured username/password.

###Remote Administration

On desktop operating systems basic configuration as well as application restart options are available remotely. See "Known Limitations" for details on ChromeOS support.

###Inactivity Reset

Allow content to be reset after a administrator-specified period of inactivity.

###Daily restart

Application can be completely restarted at an administrator-specified time once per day.

###Remote Schedule Server

Accepts a URL to a JSON feed for a content schedule. If no item is currently scheduled, the default content (specified by the Content URL on Kiosk setup page) is used. Default content will be overridden by scheduled items. Schedule URL is polled at configurable interval. kiosk_t parameter is appended to the URL with a value of the current timestamp to prevent caching of the schedule. Schedule should be formatted according to (a simplified version of) the format provided by Chrome Sign Builder (exported schedules from Chrome Sign Builder are currently supported without support for screen position, repetition or display settings):

{
"schedule": {
"Value": {
"items": [
{
"content": "http://www.zebradog.com",
"end": "Tue Jul 14 2015 12:30:00 GMT-0500",
"start": "Tue Jul 14 2015 09:30:00 GMT-0500",
},
{
"content": "http://www.google.com",
"end": "Tue Jul 15 2015 12:30:00 GMT-0500",
"start": "Tue Jul 16 2015 09:30:00 GMT-0500",
}
]
}
}
}

####Note:

Remote schedule server must have CORS headers set or the Allow-Control-Allow-Origin:* Chrome extension can be installed to allow access. JSONP is not an option since scripts from arbitrary domains cannot be executed inside Chrome extensions.

###Auto-start

On ChromeOS devices: Using managed devices and setting Kiosk application to start in Kiosk mode is the recommended solution. On Windows and OSX: From chrome://apps/ right click on "Kiosk" and "Create shortcut" then copy this shortcut into the startup folder (Windows) or add to login items (OSX). Linux: Likely similar to Windows and OSX, untested.

##Support & Feature Requests

This product is maintained by ZEBRADOG and provided without warranty or guaranteed support. If you need a bug fix please check that it has not be reported and submit details here: https://github.com/zebradog/kiosk/issues

Patches and new features are released at our convenience. If you need a bug fix or new feature on a specific schedule, please send details to support@zebradog.com for a quote. Alternatively, if the issue does not yet have a milestone assigned to it, add a bounty via https://www.bountysource.com and either we or a third party developer can prioritize the update.

Pull requests are welcome.

##Known Limitations

##Changelog

  • v5.7.2

    • Allow simplified version of schedule JSON
    • Bug fix: load schedule JSON cross-domain
    • Bug fix: append time to schedule JSON to prevent caching
  • v5.7.1

    • Bug fix: clear cache now fully clears cache
  • v5.7.0

    • Sleep/screensaver mode configurable
  • v5.6.0

    • Allow files to be served from local directory
    • Add option to clear cache on save
    • Add option to set custom user agent
    • Bug fix: Reload will now work correctly on all systems.
  • v5.5.2

    • Bug fix: Correctly focus form-fields on load.
    • Bug fix: Save cookies, etc. across sessions.
    • Bug fix: 1:00 or 2:00 AM/PM restart time now loads correctly.
    • Change default remote management port to 8080 since 80 is blocked on ChromeOS.
    • Allow videos in content to go full screen.
    • Prevent exiting fullscreen by pressing escape
  • v5.5.1

    • Bug fix: users on 5.4.0 with scheduling enabled experience rapid polling upon upgrade to 5.5.0.
  • v5.5.0

    • Bug fix: switching scheduled content
    • Added ability to set schedule polling interval
  • v5.4.0

    • Added remote schedule server support
    • Added option to hide cursor
    • Added option to disable context menu
    • Added option to disable image dragging
    • Added option to disable touch highlighting
    • Added option to disable text selection
  • v5.3.4

    • Bug fix: restart scheduling
  • v.5.3.3

    • Bug fix: reset/restart combo.
  • v.5.3.2

    • Optional webcam/mic access added.
  • v.5.3.1

    • Prevent inactivity reset via console.log("kiosk:active") in content page.
  • v.5.3.0

    • updated to Materialize v0.96.1
    • added local administration
    • added daily restart
    • added inactivity reset
  • v.5.2.1

    • auto-restart on content crash or unresponsive
  • v.5.2.0

    • added remote administration
    • remote restart for ChromeOS devices in kiosk mode
    • skinned with Materialize
  • v5.1.2

    • automatically attempt to reconnect to content if connection broken
  • v5.1.1

    • Bug fix: 1/5 screen fullscreen on Windows 8
  • v5.1.0

    • started using proper semver
    • added demo link
  • v5.0

    • added support for offline use
  • v4.0

    • prevent system sleep (previously only prevented display sleep)
  • v3.0

    • cleaned up design files
  • v2.0

    • added branding
    • cleaned up interface
    • switched to setup page from key-combo options page
  • v1.0

    • initial draft version

About

Allows any URL to be loaded as a fullscreen kiosk in Google Chrome or Chrome OS.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

152 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Try it now in CWS

#Chrome Kiosk

Basic kiosk packaged application. Allows any URL to be loaded as a fullscreen kiosk in Google Chrome or Chrome OS, also disables device sleep mode while app is running.

##Features

###System

  • Launches a specified URL full-screen at all times.
  • Device power-saving (sleep mode) disabled
  • Can be locked into-single app kiosk on managed Chrome devices.

###Interaction

  • Option to hide cursor
  • Option to disable context menu
  • Option to disable image dragging
  • Option to disable touch highlighting
  • Option to disable text selection

Caveat: these interaction adjustments will only be applied once your content is fully loaded. If you have a multi-page application, the cursor, etc. may be enabled on each page load until the content is fully loaded. Recommended solution is to develop content as single-page (AJAX) application and/or use the following CSS:

*{
cursor:none;
-webkit-tap-highlight-color: rgba(0,0,0,0);
-webkit-touch-callout: none;
-webkit-user-select: none;
user-select: none;
}

and javascript:

window.oncontextmenu = function(){return false};
window.ondragstart = function(){return false};

###Local Administration

Setup can be accessed via keystroke (CTRL+A) and administer-configured username/password.

###Remote Administration

On desktop operating systems basic configuration as well as application restart options are available remotely. See "Known Limitations" for details on ChromeOS support.

###Inactivity Reset

Allow content to be reset after a administrator-specified period of inactivity.

###Daily restart

Application can be completely restarted at an administrator-specified time once per day.

###Remote Schedule Server

Accepts a URL to a JSON feed for a content schedule. If no item is currently scheduled, the default content (specified by the Content URL on Kiosk setup page) is used. Default content will be overridden by scheduled items. Schedule URL is polled at configurable interval. kiosk_t parameter is appended to the URL with a value of the current timestamp to prevent caching of the schedule. Schedule should be formatted according to (a simplified version of) the format provided by Chrome Sign Builder (exported schedules from Chrome Sign Builder are currently supported without support for screen position, repetition or display settings):

{
"schedule": {
"Value": {
"items": [
{
"content": "http://www.zebradog.com",
"end": "Tue Jul 14 2015 12:30:00 GMT-0500",
"start": "Tue Jul 14 2015 09:30:00 GMT-0500",
},
{
"content": "http://www.google.com",
"end": "Tue Jul 15 2015 12:30:00 GMT-0500",
"start": "Tue Jul 16 2015 09:30:00 GMT-0500",
}
]
}
}
}

####Note:

Remote schedule server must have CORS headers set or the Allow-Control-Allow-Origin:* Chrome extension can be installed to allow access. JSONP is not an option since scripts from arbitrary domains cannot be executed inside Chrome extensions.

###Auto-start

On ChromeOS devices: Using managed devices and setting Kiosk application to start in Kiosk mode is the recommended solution. On Windows and OSX: From chrome://apps/ right click on "Kiosk" and "Create shortcut" then copy this shortcut into the startup folder (Windows) or add to login items (OSX). Linux: Likely similar to Windows and OSX, untested.

##Support & Feature Requests

This product is maintained by ZEBRADOG and provided without warranty or guaranteed support. If you need a bug fix please check that it has not be reported and submit details here: https://github.com/zebradog/kiosk/issues

Patches and new features are released at our convenience. If you need a bug fix or new feature on a specific schedule, please send details to support@zebradog.com for a quote. Alternatively, if the issue does not yet have a milestone assigned to it, add a bounty via https://www.bountysource.com and either we or a third party developer can prioritize the update.

Pull requests are welcome.

##Known Limitations

##Changelog

  • v5.7.2

    • Allow simplified version of schedule JSON
    • Bug fix: load schedule JSON cross-domain
    • Bug fix: append time to schedule JSON to prevent caching
  • v5.7.1

    • Bug fix: clear cache now fully clears cache
  • v5.7.0

    • Sleep/screensaver mode configurable
  • v5.6.0

    • Allow files to be served from local directory
    • Add option to clear cache on save
    • Add option to set custom user agent
    • Bug fix: Reload will now work correctly on all systems.
  • v5.5.2

    • Bug fix: Correctly focus form-fields on load.
    • Bug fix: Save cookies, etc. across sessions.
    • Bug fix: 1:00 or 2:00 AM/PM restart time now loads correctly.
    • Change default remote management port to 8080 since 80 is blocked on ChromeOS.
    • Allow videos in content to go full screen.
    • Prevent exiting fullscreen by pressing escape
  • v5.5.1

    • Bug fix: users on 5.4.0 with scheduling enabled experience rapid polling upon upgrade to 5.5.0.
  • v5.5.0

    • Bug fix: switching scheduled content
    • Added ability to set schedule polling interval
  • v5.4.0

    • Added remote schedule server support
    • Added option to hide cursor
    • Added option to disable context menu
    • Added option to disable image dragging
    • Added option to disable touch highlighting
    • Added option to disable text selection
  • v5.3.4

    • Bug fix: restart scheduling
  • v.5.3.3

    • Bug fix: reset/restart combo.
  • v.5.3.2

    • Optional webcam/mic access added.
  • v.5.3.1

    • Prevent inactivity reset via console.log("kiosk:active") in content page.
  • v.5.3.0

    • updated to Materialize v0.96.1
    • added local administration
    • added daily restart
    • added inactivity reset
  • v.5.2.1

    • auto-restart on content crash or unresponsive
  • v.5.2.0

    • added remote administration
    • remote restart for ChromeOS devices in kiosk mode
    • skinned with Materialize
  • v5.1.2

    • automatically attempt to reconnect to content if connection broken
  • v5.1.1

    • Bug fix: 1/5 screen fullscreen on Windows 8
  • v5.1.0

    • started using proper semver
    • added demo link
  • v5.0

    • added support for offline use
  • v4.0

    • prevent system sleep (previously only prevented display sleep)
  • v3.0

    • cleaned up design files
  • v2.0

    • added branding
    • cleaned up interface
    • switched to setup page from key-combo options page
  • v1.0

    • initial draft version

About

Allows any URL to be loaded as a fullscreen kiosk in Google Chrome or Chrome OS.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

152 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Try it now in CWS

#Chrome Kiosk

Basic kiosk packaged application. Allows any URL to be loaded as a fullscreen kiosk in Google Chrome or Chrome OS, also disables device sleep mode while app is running.

##Features

###System

  • Launches a specified URL full-screen at all times.
  • Device power-saving (sleep mode) disabled
  • Can be locked into-single app kiosk on managed Chrome devices.

###Interaction

  • Option to hide cursor
  • Option to disable context menu
  • Option to disable image dragging
  • Option to disable touch highlighting
  • Option to disable text selection

Caveat: these interaction adjustments will only be applied once your content is fully loaded. If you have a multi-page application, the cursor, etc. may be enabled on each page load until the content is fully loaded. Recommended solution is to develop content as single-page (AJAX) application and/or use the following CSS:

*{
cursor:none;
-webkit-tap-highlight-color: rgba(0,0,0,0);
-webkit-touch-callout: none;
-webkit-user-select: none;
user-select: none;
}

and javascript:

window.oncontextmenu = function(){return false};
window.ondragstart = function(){return false};

###Local Administration

Setup can be accessed via keystroke (CTRL+A) and administer-configured username/password.

###Remote Administration

On desktop operating systems basic configuration as well as application restart options are available remotely. See "Known Limitations" for details on ChromeOS support.

###Inactivity Reset

Allow content to be reset after a administrator-specified period of inactivity.

###Daily restart

Application can be completely restarted at an administrator-specified time once per day.

###Remote Schedule Server

Accepts a URL to a JSON feed for a content schedule. If no item is currently scheduled, the default content (specified by the Content URL on Kiosk setup page) is used. Default content will be overridden by scheduled items. Schedule URL is polled at configurable interval. kiosk_t parameter is appended to the URL with a value of the current timestamp to prevent caching of the schedule. Schedule should be formatted according to (a simplified version of) the format provided by Chrome Sign Builder (exported schedules from Chrome Sign Builder are currently supported without support for screen position, repetition or display settings):

{
"schedule": {
"Value": {
"items": [
{
"content": "http://www.zebradog.com",
"end": "Tue Jul 14 2015 12:30:00 GMT-0500",
"start": "Tue Jul 14 2015 09:30:00 GMT-0500",
},
{
"content": "http://www.google.com",
"end": "Tue Jul 15 2015 12:30:00 GMT-0500",
"start": "Tue Jul 16 2015 09:30:00 GMT-0500",
}
]
}
}
}

####Note:

Remote schedule server must have CORS headers set or the Allow-Control-Allow-Origin:* Chrome extension can be installed to allow access. JSONP is not an option since scripts from arbitrary domains cannot be executed inside Chrome extensions.

###Auto-start

On ChromeOS devices: Using managed devices and setting Kiosk application to start in Kiosk mode is the recommended solution. On Windows and OSX: From chrome://apps/ right click on "Kiosk" and "Create shortcut" then copy this shortcut into the startup folder (Windows) or add to login items (OSX). Linux: Likely similar to Windows and OSX, untested.

##Support & Feature Requests

This product is maintained by ZEBRADOG and provided without warranty or guaranteed support. If you need a bug fix please check that it has not be reported and submit details here: https://github.com/zebradog/kiosk/issues

Patches and new features are released at our convenience. If you need a bug fix or new feature on a specific schedule, please send details to support@zebradog.com for a quote. Alternatively, if the issue does not yet have a milestone assigned to it, add a bounty via https://www.bountysource.com and either we or a third party developer can prioritize the update.

Pull requests are welcome.

##Known Limitations

##Changelog

  • v5.7.2

    • Allow simplified version of schedule JSON
    • Bug fix: load schedule JSON cross-domain
    • Bug fix: append time to schedule JSON to prevent caching
  • v5.7.1

    • Bug fix: clear cache now fully clears cache
  • v5.7.0

    • Sleep/screensaver mode configurable
  • v5.6.0

    • Allow files to be served from local directory
    • Add option to clear cache on save
    • Add option to set custom user agent
    • Bug fix: Reload will now work correctly on all systems.
  • v5.5.2

    • Bug fix: Correctly focus form-fields on load.
    • Bug fix: Save cookies, etc. across sessions.
    • Bug fix: 1:00 or 2:00 AM/PM restart time now loads correctly.
    • Change default remote management port to 8080 since 80 is blocked on ChromeOS.
    • Allow videos in content to go full screen.
    • Prevent exiting fullscreen by pressing escape
  • v5.5.1

    • Bug fix: users on 5.4.0 with scheduling enabled experience rapid polling upon upgrade to 5.5.0.
  • v5.5.0

    • Bug fix: switching scheduled content
    • Added ability to set schedule polling interval
  • v5.4.0

    • Added remote schedule server support
    • Added option to hide cursor
    • Added option to disable context menu
    • Added option to disable image dragging
    • Added option to disable touch highlighting
    • Added option to disable text selection
  • v5.3.4

    • Bug fix: restart scheduling
  • v.5.3.3

    • Bug fix: reset/restart combo.
  • v.5.3.2

    • Optional webcam/mic access added.
  • v.5.3.1

    • Prevent inactivity reset via console.log("kiosk:active") in content page.
  • v.5.3.0

    • updated to Materialize v0.96.1
    • added local administration
    • added daily restart
    • added inactivity reset
  • v.5.2.1

    • auto-restart on content crash or unresponsive
  • v.5.2.0

    • added remote administration
    • remote restart for ChromeOS devices in kiosk mode
    • skinned with Materialize
  • v5.1.2

    • automatically attempt to reconnect to content if connection broken
  • v5.1.1

    • Bug fix: 1/5 screen fullscreen on Windows 8
  • v5.1.0

    • started using proper semver
    • added demo link
  • v5.0

    • added support for offline use
  • v4.0

    • prevent system sleep (previously only prevented display sleep)
  • v3.0

    • cleaned up design files
  • v2.0

    • added branding
    • cleaned up interface
    • switched to setup page from key-combo options page
  • v1.0

    • initial draft version

About

Allows any URL to be loaded as a fullscreen kiosk in Google Chrome or Chrome OS.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

152 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Try it now in CWS

#Chrome Kiosk

Basic kiosk packaged application. Allows any URL to be loaded as a fullscreen kiosk in Google Chrome or Chrome OS, also disables device sleep mode while app is running.

##Features

###System

  • Launches a specified URL full-screen at all times.
  • Device power-saving (sleep mode) disabled
  • Can be locked into-single app kiosk on managed Chrome devices.

###Interaction

  • Option to hide cursor
  • Option to disable context menu
  • Option to disable image dragging
  • Option to disable touch highlighting
  • Option to disable text selection

Caveat: these interaction adjustments will only be applied once your content is fully loaded. If you have a multi-page application, the cursor, etc. may be enabled on each page load until the content is fully loaded. Recommended solution is to develop content as single-page (AJAX) application and/or use the following CSS:

*{
cursor:none;
-webkit-tap-highlight-color: rgba(0,0,0,0);
-webkit-touch-callout: none;
-webkit-user-select: none;
user-select: none;
}

and javascript:

window.oncontextmenu = function(){return false};
window.ondragstart = function(){return false};

###Local Administration

Setup can be accessed via keystroke (CTRL+A) and administer-configured username/password.

###Remote Administration

On desktop operating systems basic configuration as well as application restart options are available remotely. See "Known Limitations" for details on ChromeOS support.

###Inactivity Reset

Allow content to be reset after a administrator-specified period of inactivity.

###Daily restart

Application can be completely restarted at an administrator-specified time once per day.

###Remote Schedule Server

Accepts a URL to a JSON feed for a content schedule. If no item is currently scheduled, the default content (specified by the Content URL on Kiosk setup page) is used. Default content will be overridden by scheduled items. Schedule URL is polled at configurable interval. kiosk_t parameter is appended to the URL with a value of the current timestamp to prevent caching of the schedule. Schedule should be formatted according to (a simplified version of) the format provided by Chrome Sign Builder (exported schedules from Chrome Sign Builder are currently supported without support for screen position, repetition or display settings):

{
"schedule": {
"Value": {
"items": [
{
"content": "http://www.zebradog.com",
"end": "Tue Jul 14 2015 12:30:00 GMT-0500",
"start": "Tue Jul 14 2015 09:30:00 GMT-0500",
},
{
"content": "http://www.google.com",
"end": "Tue Jul 15 2015 12:30:00 GMT-0500",
"start": "Tue Jul 16 2015 09:30:00 GMT-0500",
}
]
}
}
}

####Note:

Remote schedule server must have CORS headers set or the Allow-Control-Allow-Origin:* Chrome extension can be installed to allow access. JSONP is not an option since scripts from arbitrary domains cannot be executed inside Chrome extensions.

###Auto-start

On ChromeOS devices: Using managed devices and setting Kiosk application to start in Kiosk mode is the recommended solution. On Windows and OSX: From chrome://apps/ right click on "Kiosk" and "Create shortcut" then copy this shortcut into the startup folder (Windows) or add to login items (OSX). Linux: Likely similar to Windows and OSX, untested.

##Support & Feature Requests

This product is maintained by ZEBRADOG and provided without warranty or guaranteed support. If you need a bug fix please check that it has not be reported and submit details here: https://github.com/zebradog/kiosk/issues

Patches and new features are released at our convenience. If you need a bug fix or new feature on a specific schedule, please send details to support@zebradog.com for a quote. Alternatively, if the issue does not yet have a milestone assigned to it, add a bounty via https://www.bountysource.com and either we or a third party developer can prioritize the update.

Pull requests are welcome.

##Known Limitations

##Changelog

  • v5.7.2

    • Allow simplified version of schedule JSON
    • Bug fix: load schedule JSON cross-domain
    • Bug fix: append time to schedule JSON to prevent caching
  • v5.7.1

    • Bug fix: clear cache now fully clears cache
  • v5.7.0

    • Sleep/screensaver mode configurable
  • v5.6.0

    • Allow files to be served from local directory
    • Add option to clear cache on save
    • Add option to set custom user agent
    • Bug fix: Reload will now work correctly on all systems.
  • v5.5.2

    • Bug fix: Correctly focus form-fields on load.
    • Bug fix: Save cookies, etc. across sessions.
    • Bug fix: 1:00 or 2:00 AM/PM restart time now loads correctly.
    • Change default remote management port to 8080 since 80 is blocked on ChromeOS.
    • Allow videos in content to go full screen.
    • Prevent exiting fullscreen by pressing escape
  • v5.5.1

    • Bug fix: users on 5.4.0 with scheduling enabled experience rapid polling upon upgrade to 5.5.0.
  • v5.5.0

    • Bug fix: switching scheduled content
    • Added ability to set schedule polling interval
  • v5.4.0

    • Added remote schedule server support
    • Added option to hide cursor
    • Added option to disable context menu
    • Added option to disable image dragging
    • Added option to disable touch highlighting
    • Added option to disable text selection
  • v5.3.4

    • Bug fix: restart scheduling
  • v.5.3.3

    • Bug fix: reset/restart combo.
  • v.5.3.2

    • Optional webcam/mic access added.
  • v.5.3.1

    • Prevent inactivity reset via console.log("kiosk:active") in content page.
  • v.5.3.0

    • updated to Materialize v0.96.1
    • added local administration
    • added daily restart
    • added inactivity reset
  • v.5.2.1

    • auto-restart on content crash or unresponsive
  • v.5.2.0

    • added remote administration
    • remote restart for ChromeOS devices in kiosk mode
    • skinned with Materialize
  • v5.1.2

    • automatically attempt to reconnect to content if connection broken
  • v5.1.1

    • Bug fix: 1/5 screen fullscreen on Windows 8
  • v5.1.0

    • started using proper semver
    • added demo link
  • v5.0

    • added support for offline use
  • v4.0

    • prevent system sleep (previously only prevented display sleep)
  • v3.0

    • cleaned up design files
  • v2.0

    • added branding
    • cleaned up interface
    • switched to setup page from key-combo options page
  • v1.0

    • initial draft version

About

Allows any URL to be loaded as a fullscreen kiosk in Google Chrome or Chrome OS.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

152 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Try it now in CWS

#Chrome Kiosk

Basic kiosk packaged application. Allows any URL to be loaded as a fullscreen kiosk in Google Chrome or Chrome OS, also disables device sleep mode while app is running.

##Features

###System

  • Launches a specified URL full-screen at all times.
  • Device power-saving (sleep mode) disabled
  • Can be locked into-single app kiosk on managed Chrome devices.

###Interaction

  • Option to hide cursor
  • Option to disable context menu
  • Option to disable image dragging
  • Option to disable touch highlighting
  • Option to disable text selection

Caveat: these interaction adjustments will only be applied once your content is fully loaded. If you have a multi-page application, the cursor, etc. may be enabled on each page load until the content is fully loaded. Recommended solution is to develop content as single-page (AJAX) application and/or use the following CSS:

*{
cursor:none;
-webkit-tap-highlight-color: rgba(0,0,0,0);
-webkit-touch-callout: none;
-webkit-user-select: none;
user-select: none;
}

and javascript:

window.oncontextmenu = function(){return false};
window.ondragstart = function(){return false};

###Local Administration

Setup can be accessed via keystroke (CTRL+A) and administer-configured username/password.

###Remote Administration

On desktop operating systems basic configuration as well as application restart options are available remotely. See "Known Limitations" for details on ChromeOS support.

###Inactivity Reset

Allow content to be reset after a administrator-specified period of inactivity.

###Daily restart

Application can be completely restarted at an administrator-specified time once per day.

###Remote Schedule Server

Accepts a URL to a JSON feed for a content schedule. If no item is currently scheduled, the default content (specified by the Content URL on Kiosk setup page) is used. Default content will be overridden by scheduled items. Schedule URL is polled at configurable interval. kiosk_t parameter is appended to the URL with a value of the current timestamp to prevent caching of the schedule. Schedule should be formatted according to (a simplified version of) the format provided by Chrome Sign Builder (exported schedules from Chrome Sign Builder are currently supported without support for screen position, repetition or display settings):

{
"schedule": {
"Value": {
"items": [
{
"content": "http://www.zebradog.com",
"end": "Tue Jul 14 2015 12:30:00 GMT-0500",
"start": "Tue Jul 14 2015 09:30:00 GMT-0500",
},
{
"content": "http://www.google.com",
"end": "Tue Jul 15 2015 12:30:00 GMT-0500",
"start": "Tue Jul 16 2015 09:30:00 GMT-0500",
}
]
}
}
}

####Note:

Remote schedule server must have CORS headers set or the Allow-Control-Allow-Origin:* Chrome extension can be installed to allow access. JSONP is not an option since scripts from arbitrary domains cannot be executed inside Chrome extensions.

###Auto-start

On ChromeOS devices: Using managed devices and setting Kiosk application to start in Kiosk mode is the recommended solution. On Windows and OSX: From chrome://apps/ right click on "Kiosk" and "Create shortcut" then copy this shortcut into the startup folder (Windows) or add to login items (OSX). Linux: Likely similar to Windows and OSX, untested.

##Support & Feature Requests

This product is maintained by ZEBRADOG and provided without warranty or guaranteed support. If you need a bug fix please check that it has not be reported and submit details here: https://github.com/zebradog/kiosk/issues

Patches and new features are released at our convenience. If you need a bug fix or new feature on a specific schedule, please send details to support@zebradog.com for a quote. Alternatively, if the issue does not yet have a milestone assigned to it, add a bounty via https://www.bountysource.com and either we or a third party developer can prioritize the update.

Pull requests are welcome.

##Known Limitations

##Changelog

  • v5.7.2

    • Allow simplified version of schedule JSON
    • Bug fix: load schedule JSON cross-domain
    • Bug fix: append time to schedule JSON to prevent caching
  • v5.7.1

    • Bug fix: clear cache now fully clears cache
  • v5.7.0

    • Sleep/screensaver mode configurable
  • v5.6.0

    • Allow files to be served from local directory
    • Add option to clear cache on save
    • Add option to set custom user agent
    • Bug fix: Reload will now work correctly on all systems.
  • v5.5.2

    • Bug fix: Correctly focus form-fields on load.
    • Bug fix: Save cookies, etc. across sessions.
    • Bug fix: 1:00 or 2:00 AM/PM restart time now loads correctly.
    • Change default remote management port to 8080 since 80 is blocked on ChromeOS.
    • Allow videos in content to go full screen.
    • Prevent exiting fullscreen by pressing escape
  • v5.5.1

    • Bug fix: users on 5.4.0 with scheduling enabled experience rapid polling upon upgrade to 5.5.0.
  • v5.5.0

    • Bug fix: switching scheduled content
    • Added ability to set schedule polling interval
  • v5.4.0

    • Added remote schedule server support
    • Added option to hide cursor
    • Added option to disable context menu
    • Added option to disable image dragging
    • Added option to disable touch highlighting
    • Added option to disable text selection
  • v5.3.4

    • Bug fix: restart scheduling
  • v.5.3.3

    • Bug fix: reset/restart combo.
  • v.5.3.2

    • Optional webcam/mic access added.
  • v.5.3.1

    • Prevent inactivity reset via console.log("kiosk:active") in content page.
  • v.5.3.0

    • updated to Materialize v0.96.1
    • added local administration
    • added daily restart
    • added inactivity reset
  • v.5.2.1

    • auto-restart on content crash or unresponsive
  • v.5.2.0

    • added remote administration
    • remote restart for ChromeOS devices in kiosk mode
    • skinned with Materialize
  • v5.1.2

    • automatically attempt to reconnect to content if connection broken
  • v5.1.1

    • Bug fix: 1/5 screen fullscreen on Windows 8
  • v5.1.0

    • started using proper semver
    • added demo link
  • v5.0

    • added support for offline use
  • v4.0

    • prevent system sleep (previously only prevented display sleep)
  • v3.0

    • cleaned up design files
  • v2.0

    • added branding
    • cleaned up interface
    • switched to setup page from key-combo options page
  • v1.0

    • initial draft version

About

Allows any URL to be loaded as a fullscreen kiosk in Google Chrome or Chrome OS.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

152 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Try it now in CWS

#Chrome Kiosk

Basic kiosk packaged application. Allows any URL to be loaded as a fullscreen kiosk in Google Chrome or Chrome OS, also disables device sleep mode while app is running.

##Features

###System

  • Launches a specified URL full-screen at all times.
  • Device power-saving (sleep mode) disabled
  • Can be locked into-single app kiosk on managed Chrome devices.

###Interaction

  • Option to hide cursor
  • Option to disable context menu
  • Option to disable image dragging
  • Option to disable touch highlighting
  • Option to disable text selection

Caveat: these interaction adjustments will only be applied once your content is fully loaded. If you have a multi-page application, the cursor, etc. may be enabled on each page load until the content is fully loaded. Recommended solution is to develop content as single-page (AJAX) application and/or use the following CSS:

*{
cursor:none;
-webkit-tap-highlight-color: rgba(0,0,0,0);
-webkit-touch-callout: none;
-webkit-user-select: none;
user-select: none;
}

and javascript:

window.oncontextmenu = function(){return false};
window.ondragstart = function(){return false};

###Local Administration

Setup can be accessed via keystroke (CTRL+A) and administer-configured username/password.

###Remote Administration

On desktop operating systems basic configuration as well as application restart options are available remotely. See "Known Limitations" for details on ChromeOS support.

###Inactivity Reset

Allow content to be reset after a administrator-specified period of inactivity.

###Daily restart

Application can be completely restarted at an administrator-specified time once per day.

###Remote Schedule Server

Accepts a URL to a JSON feed for a content schedule. If no item is currently scheduled, the default content (specified by the Content URL on Kiosk setup page) is used. Default content will be overridden by scheduled items. Schedule URL is polled at configurable interval. kiosk_t parameter is appended to the URL with a value of the current timestamp to prevent caching of the schedule. Schedule should be formatted according to (a simplified version of) the format provided by Chrome Sign Builder (exported schedules from Chrome Sign Builder are currently supported without support for screen position, repetition or display settings):

{
"schedule": {
"Value": {
"items": [
{
"content": "http://www.zebradog.com",
"end": "Tue Jul 14 2015 12:30:00 GMT-0500",
"start": "Tue Jul 14 2015 09:30:00 GMT-0500",
},
{
"content": "http://www.google.com",
"end": "Tue Jul 15 2015 12:30:00 GMT-0500",
"start": "Tue Jul 16 2015 09:30:00 GMT-0500",
}
]
}
}
}

####Note:

Remote schedule server must have CORS headers set or the Allow-Control-Allow-Origin:* Chrome extension can be installed to allow access. JSONP is not an option since scripts from arbitrary domains cannot be executed inside Chrome extensions.

###Auto-start

On ChromeOS devices: Using managed devices and setting Kiosk application to start in Kiosk mode is the recommended solution. On Windows and OSX: From chrome://apps/ right click on "Kiosk" and "Create shortcut" then copy this shortcut into the startup folder (Windows) or add to login items (OSX). Linux: Likely similar to Windows and OSX, untested.

##Support & Feature Requests

This product is maintained by ZEBRADOG and provided without warranty or guaranteed support. If you need a bug fix please check that it has not be reported and submit details here: https://github.com/zebradog/kiosk/issues

Patches and new features are released at our convenience. If you need a bug fix or new feature on a specific schedule, please send details to support@zebradog.com for a quote. Alternatively, if the issue does not yet have a milestone assigned to it, add a bounty via https://www.bountysource.com and either we or a third party developer can prioritize the update.

Pull requests are welcome.

##Known Limitations

##Changelog

  • v5.7.2

    • Allow simplified version of schedule JSON
    • Bug fix: load schedule JSON cross-domain
    • Bug fix: append time to schedule JSON to prevent caching
  • v5.7.1

    • Bug fix: clear cache now fully clears cache
  • v5.7.0

    • Sleep/screensaver mode configurable
  • v5.6.0

    • Allow files to be served from local directory
    • Add option to clear cache on save
    • Add option to set custom user agent
    • Bug fix: Reload will now work correctly on all systems.
  • v5.5.2

    • Bug fix: Correctly focus form-fields on load.
    • Bug fix: Save cookies, etc. across sessions.
    • Bug fix: 1:00 or 2:00 AM/PM restart time now loads correctly.
    • Change default remote management port to 8080 since 80 is blocked on ChromeOS.
    • Allow videos in content to go full screen.
    • Prevent exiting fullscreen by pressing escape
  • v5.5.1

    • Bug fix: users on 5.4.0 with scheduling enabled experience rapid polling upon upgrade to 5.5.0.
  • v5.5.0

    • Bug fix: switching scheduled content
    • Added ability to set schedule polling interval
  • v5.4.0

    • Added remote schedule server support
    • Added option to hide cursor
    • Added option to disable context menu
    • Added option to disable image dragging
    • Added option to disable touch highlighting
    • Added option to disable text selection
  • v5.3.4

    • Bug fix: restart scheduling
  • v.5.3.3

    • Bug fix: reset/restart combo.
  • v.5.3.2

    • Optional webcam/mic access added.
  • v.5.3.1

    • Prevent inactivity reset via console.log("kiosk:active") in content page.
  • v.5.3.0

    • updated to Materialize v0.96.1
    • added local administration
    • added daily restart
    • added inactivity reset
  • v.5.2.1

    • auto-restart on content crash or unresponsive
  • v.5.2.0

    • added remote administration
    • remote restart for ChromeOS devices in kiosk mode
    • skinned with Materialize
  • v5.1.2

    • automatically attempt to reconnect to content if connection broken
  • v5.1.1

    • Bug fix: 1/5 screen fullscreen on Windows 8
  • v5.1.0

    • started using proper semver
    • added demo link
  • v5.0

    • added support for offline use
  • v4.0

    • prevent system sleep (previously only prevented display sleep)
  • v3.0

    • cleaned up design files
  • v2.0

    • added branding
    • cleaned up interface
    • switched to setup page from key-combo options page
  • v1.0

    • initial draft version

About

Allows any URL to be loaded as a fullscreen kiosk in Google Chrome or Chrome OS.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages