-
Notifications
You must be signed in to change notification settings - Fork 2
QtWebEngine based minimal kiosk browser - all features opt-in customizable
License
WinTeach/pykib
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Python Based Kiosk Browser Python3 and packages from requirements.txt are neccessary to run this browser. Output from -h (--help): ------------------------------------------------------------------------------ usage: pykib [-h] [-c CONFIGFILE] [-u URL] [-p PROXY] [-ppo PROXYPORT] [-pu PROXYUSERNAME] [-pp PROXYPASSWORD] [-ppp PERSISTENTPROFILEPATH] [-amc ADDMEMORYCAP] [-d] [-dh DOWNLOADHANDLE [DOWNLOADHANDLE ...]] [-dp DOWNLOADPATH] [-ijs INJECTJAVASCRIPT [INJECTJAVASCRIPT ...]] [-eal] [-alu AUTOLOGONUSER] [-alp AUTOLOGONPASSWORD] [-ald AUTOLOGONDOMAIN] [-aluid AUTOLOGONUSERID] [-alpid AUTOLOGONPASSWORDID] [-aldid AUTOLOGONDOMAINID] [-es] [-sl SPELLCHECKINGLANGUAGE] [-eps] [-prm] [-sbl SETBROWSERLANGUAGE] [-scua] [-t TITLE] [-dt] [-san SYSTEMAPPLICATIONNAME] [-rt] [-f] [-aot] [-rwc] [-ic] [-m] [-v] [-rdpv] [-isds] [-szf SETZOOMFACTOR] [--no-sandbox] [--name NAME] [--disable-gpu] [--js-flags JS-FLAGS] [--single-process] [--remote-debugging-port REMOTE-DEBUGGING-PORT] [-md] [-sa] [-sn] [-slpb] [-ecm] [-etm] [-sih] [-ecbpo] [-g GEOMETRY [GEOMETRY ...]] [-ng] [-a ADMINKEY] [-epkh] [-wl WHITELIST [WHITELIST ...]] [-wlmfo] [-ll LOGLEVEL] [-sjsc] [-art AUTORELOADTIMER] [-brt BROWSERRESETTIMEOUT] [-ama] [-awa] [-ads] [-abn] [-pns] [-emd] [-sp] [-spp STOREPIDPATH] [-rbd] [-rbmi REMOTEBROWSERMOVEINTERVAL] [-rbmpmi REMOTEBROWSERPIXMAPMONITORINTERVAL] [-rl REMOTINGLIST [REMOTINGLIST ...]] [-aubr] [-rbix11] [-rbsp REMOTEBROWSERSOCKETPATH] [-rbkai REMOTEBROWSERKEEPALIVEINTERVAL] [-rbkael REMOTEBROWSERKEEPALIVEERRORLIMIT] [-rbp REMOTEBROWSERPORT] [-rbst REMOTEBROWSERSESSIONTOKEN] [-utst] [-tstp TEMPORARYSESSIONTOKENPATH] [URL] positional arguments: URL alternative to -u, --url options: -h, --help show this help message and exit -c CONFIGFILE, --configFile CONFIGFILE Use this as configuration file - configured setting will override command line arguments. The ini file settings parameters are the same like the long form command line arguments -u URL, --url URL Start and Home URL -p PROXY, --proxy PROXY Use this as HTTP Proxy -ppo PROXYPORT, --proxyPort PROXYPORT Proxy Port -pu PROXYUSERNAME, --proxyUsername PROXYUSERNAME Enter Proxy username if needed -pp PROXYPASSWORD, --proxyPassword PROXYPASSWORD Enter Proxy password if needed -ppp PERSISTENTPROFILEPATH, --persistentProfilePath PERSISTENTPROFILEPATH Defines a folder where the webprofile should be stored. Browser will be allways in private mode if not defined -amc ADDMEMORYCAP, --addMemoryCap ADDMEMORYCAP Can be set to a value in MB. If the browser needs more than this amount of memory he will kill itself -d, --download Enables download function -dh DOWNLOADHANDLE [DOWNLOADHANDLE ...], --downloadHandle DOWNLOADHANDLE [DOWNLOADHANDLE ...] With this option, default behaviour for special file extensions can be defined, this will also work when -d is not defined. Format: #extension#|#app_to_start#|#tmpdownloadpath# -dp DOWNLOADPATH, --downloadPath DOWNLOADPATH Defines the start path for any download and upload dialog -ijs INJECTJAVASCRIPT [INJECTJAVASCRIPT ...], --injectJavascript INJECTJAVASCRIPT [INJECTJAVASCRIPT ...] With this option, a js script file can be defined which should be injected on every page when loadFinished is triggered.Format: #pathToScript#|#once #|#argX#::argXvalue.....#pathToScript# = path to Script. Full path or relative to folder 'scripts' from installation dir#once# = 0 or 1. If 1 it will be injected only when the first site load completes. With 0 or default it will be injected each time a site is loaded.#argX#::#value# = define Arguments which should be replaced in Script File at Runtime. in Script use {argX} in script file -eal, --enableAutoLogon Enables the autologon functionality, this function requires at least autoLogonUser and autoLogonPassword to be set. The Browser is preconfigured to work with Citrix Webinterface, Citrix Storefront and RDWeb Servers -alu AUTOLOGONUSER, --autoLogonUser AUTOLOGONUSER Defines the username used for autologon -alp AUTOLOGONPASSWORD, --autoLogonPassword AUTOLOGONPASSWORD Defines the password used for autologon -ald AUTOLOGONDOMAIN, --autoLogonDomain AUTOLOGONDOMAIN Defines the domain name used for autologon. If a domain name is set, but no value for autoLogonDomainID, the domain will bei merged with the username to domain\username -aluid AUTOLOGONUSERID, --autoLogonUserID AUTOLOGONUSERID Defines the ID of the HTML Element in which the username should be put in -alpid AUTOLOGONPASSWORDID, --autoLogonPasswordID AUTOLOGONPASSWORDID Defines the ID of the HTML Element in which the password should be put in -aldid AUTOLOGONDOMAINID, --autoLogonDomainID AUTOLOGONDOMAINID Defines the ID of the HTML Element in which the domain should be put in -es, --enablespellcheck Enables spellchecking when set -sl SPELLCHECKINGLANGUAGE, --spellcheckinglanguage SPELLCHECKINGLANGUAGE Defines the language for the spellcheck dictionary. Default en_US -eps, --enablepdfsupport Enables the Option of viewing PDFs in the BrowserWindow -prm, --pdfreadermode if set the close button will close pykib complete instead of only the pdf and the Download Button will be labeld with 'save' -sbl SETBROWSERLANGUAGE, --setbrowserlanguage SETBROWSERLANGUAGE Overrides the default Browser Language in format de (for German), en (for English).... -scua, --setCitrixUserAgent Overrides the default UserAgent for skipping citrix receivers client detection -t TITLE, --title TITLE Defines the Window Title -dt, --dynamicTitle When enabled the window title will display the current websites title -san SYSTEMAPPLICATIONNAME, --systemApplicationName SYSTEMAPPLICATIONNAME With this option the system application Name which will shown on pulse audio and some other apps can be overritten -rt, --removeTitleBar Removes the window title bar -f, --fullscreen Start browser in fullscreen mode -aot, --alwaysOnTop Makes the Browser Windows to Stay always on top of all other Windows -rwc, --removeWindowControls This Option will remove the top Window Frame (with the Buttons Minimize/Maximize/Close) -ic, --ignoreCertificates with this option HTTPS Warnings will be ignored -m, --maximized Start browser in a maximized window -v, --version show program's version number and exit -rdpv, --remoteDaemonProtocolVersion show program's version number and exit -isds, --ignoreSystemDpiSettings When set, the Browser won't try to use the systems DPI Settings -szf SETZOOMFACTOR, --setZoomFactor SETZOOMFACTOR Set Zoom Factor for Webpages in percent. Allowed Values between 25 and 500. Allowed only in combination with ignoreSystemDpiSettings --no-sandbox Allows to run as root --name NAME Used to set the WM_CLASS --disable-gpu Disables QTs GPU Support --js-flags JS-FLAGS Allows setting js-flags --single-process Allows to run the browser in one thread --remote-debugging-port REMOTE-DEBUGGING-PORT Allows to debug with chromes webbrowser console -md, --memoryDebug Show informations about the browser current memory usage -sa, --showAddressBar Shows a Address Bar when set -sn, --showNavigationButtons Shows Navigation Buttons when set -slpb, --showLoadingProgressBar Shows a Progress Bar on site loading. -ecm, --enableContextMenu Enables a minimal context Menu -etm, --enableTrayMode when this option is set the browser will be minimized to tray instead of closed -sih, --startInTray when this option is set the browser will start to Tray. -ecbpo, --enableCleanupBrowserProfileOption when this option is set the user has the option to Cleanup the Browser Profile (in tray and context menu). When 'Cleanup Browser Profile' is performed it will:- remove all Browser Cookies- perform localStorage.clean() and sessionStorage.clean() via JS- reload the current Site -g GEOMETRY [GEOMETRY ...], --geometry GEOMETRY [GEOMETRY ...] Set window geomety #left# #top# #width# #height#, when using a multimonitor envireoment you can define the monitor for fullscreen or maximized mode with #left# #top# -ng, --normalizeGeometry This Option makes the #left# geometry Parameter be calculated started from the primary screen (windows default behavior). Specially help full in multi monitor enviroments when using the remote damon function -a ADMINKEY, --enableAdminKey ADMINKEY Enables the admin key SHIFT+STRG+ALT+A and defines a Application which will be started when pushed -epkh, --enablePrintKeyHandle When enabled, a press on the 'Print'-Button will insert a Image of the current page to the clipboard -wl WHITELIST [WHITELIST ...], --whiteList WHITELIST [WHITELIST ...] Enables the white List function. Only Urls which start with elemtens from this list could be opend -wlmfo, --whiteListMainFrameOnly When set, whitelist will only be checked in mainframe navigation requests -ll LOGLEVEL, --logLevel LOGLEVEL Setting the Level of Loggin. Allowed Values are ERROR, INFO, WARNING and DEBUG, Default is ERROR -sjsc, --showJsConsole Showing all js console entry on in DEBUG log -art AUTORELOADTIMER, --autoReloadTimer AUTORELOADTIMER Here you can configure a Timeout (in seconds) after which the actives site gets reloaded -brt BROWSERRESETTIMEOUT, --browserResetTimeout BROWSERRESETTIMEOUT Here you can configure a Timeout of inactivity (in seconds) after which the browser will be resettet -ama, --allowMicAccess Allows all Websites to use your Microfon -awa, --allowWebcamAccess Allows all Websites to use your Webcam -ads, --allowDesktopSharing Allows all Websites to share your screen and local computers audio -abn, --allowBrowserNotifications Allows all Websites to send Push Notifications -pns, --playNotificationSound if set a sound jingle is played when a notification is received -emd, --enableMouseDrag Enable Single Click (Touch) website movement (js injection) -sp, --storePid With this Option each start of the Rangee Browser the current Process ID will be written to the file .pykibLatestProcId in the users tmp path -spp STOREPIDPATH, --storePidPath STOREPIDPATH Path where the temporary current process id should be stored on the system. Only works in combination with --storePid -rbd, --remoteBrowserDaemon start a remote browser daemon -rbmi REMOTEBROWSERMOVEINTERVAL, --remoteBrowserMoveInterval REMOTEBROWSERMOVEINTERVAL Define Interval in ms in which movement requests are send when moving the remote browser window - Default 50ms -rbmpmi REMOTEBROWSERPIXMAPMONITORINTERVAL, --remoteBrowserPixmapMonitorInterval REMOTEBROWSERPIXMAPMONITORINTERVAL This option allows you to define the interval at which the optionally installed server-side connector app monitors the viewport of the server-side browser for overlapping applications. If an overlapping application is detected, the server sends a pixmap to the remote browser, which cuts out the area of the overlapping application.Lower values lead to a higher CPU load on the server side. disabled = 0, min = 50, max = 2000, Default 300ms -rl REMOTINGLIST [REMOTINGLIST ...], --remotingList REMOTINGLIST [REMOTINGLIST ...] Defined a List of Urls which should be remoted - use * as wildcard -aubr, --allowUserBasedRemoting When this option is set, the user on the remote side is allowed to define an own additional remoting list -rbix11, --remoteBrowserIgnoreX11 With this Option X11BypassWindowManagerHint will be used to force the browser to top. Usually not needed -rbsp REMOTEBROWSERSOCKETPATH, --remoteBrowserSocketPath REMOTEBROWSERSOCKETPATH When this option is set, the remote browser Deamon will only listen to commands send to this socket. Any other communication options will be disabled -rbkai REMOTEBROWSERKEEPALIVEINTERVAL, --remoteBrowserKeepAliveInterval REMOTEBROWSERKEEPALIVEINTERVAL Define interval in ms in which keep alive aignals should be send. At least 200, 0 will disable keep alive function - Default 1000ms -rbkael REMOTEBROWSERKEEPALIVEERRORLIMIT, --remoteBrowserKeepAliveErrorLimit REMOTEBROWSERKEEPALIVEERRORLIMIT Define interval how many keepAlive Signal losts in a row will be tolerated. Default 5 -rbp REMOTEBROWSERPORT, --remoteBrowserPort REMOTEBROWSERPORT Define the Port on which the remoteBrowserDaemon waits for incoming websocket connections -rbst REMOTEBROWSERSESSIONTOKEN, --remoteBrowserSessionToken REMOTEBROWSERSESSIONTOKEN Only Request which includes the configured Token will be accepted. This Option will be overritten if 'useTemporarySessionToken' is set -utst, --useTemporarySessionToken With this Option each start of the daemon a temporary session Token will be created -tstp TEMPORARYSESSIONTOKENPATH, --temporarySessionTokenPath TEMPORARYSESSIONTOKENPATH Path where the temporary session token should be stored on the system. If not set the file .pykibTemporarySessionToken will be stored in the users tmp path example Usage: Save all .rdp files to /tmp/tmp.rdp and execute the script"/home/xfreerdp.sh /tmp/tmp.rdp", after that the file will be deleted: python3 pykib.py -dh "rdp|/home/xfreerdp.sh|/tmp" "rdp|rm|/tmp" Open the site www.winteach.de in fullscreen. With the Whiteliste Option no one will be able to leave this site python3 pykib.py -u https://www.winteach.de -f -wl "https://www.winteach.de" Open the site www.winteach.de maximized and show Adressbar and Navigation Buttons. python3 pykib.py -u https://www.winteach.de -m -sn -sa
About
QtWebEngine based minimal kiosk browser - all features opt-in customizable
Topics
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published