- // ==UserScript==
- // @name MiniClock
- // @description simple clock for full screen mode
- // @version 1.0.0
- // @include *
- // @grant GM_setValue
- // @grant GM_getValue
- // @grant GM_registerMenuCommand
- // @icon data:image/gif;base64,R0lGODlhEAAQAKECABEREe7u7v///////yH5BAEKAAIALAAAAAAQABAAAAIplI+py30Bo5wB2IvzrXDvaoFcCIBeeXaeSY4tibqxSWt2RuWRw/e+UQAAOw==
- // @namespace https://greasyfork.org/users/230459
- // ==/UserScript==
-
- /*==================================================================================*/
- const clockSettings = {
- opacity: '0.6', // Controls CSS Opacity and needs a value from 0 to 1
- fontSize: '0.6rem', // Sets the size of the clock.
- is12hour: true, // Toggles between 24 hour or 12 hour clock.
- font: 'Arial', // Allow a custom font
- }
- /*==================================================================================*/
-
- function setStyles(styles) {
- styles.forEach(style => node.style.setProperty(style.name, style.value));
- }
-
- function changeOpacity(newOpacity){
- node.style.setProperty('opacity', newOpacity);
- }
-
- function updateClock() {
- let date = new Date();
- let time = date.toLocaleString('en-US', {
- hour: 'numeric',
- minute: 'numeric',
- hour12: clockSettings.is12hour
- });
- node.innerHTML = time;
- }
-
- function isFullscreen() {
- return (window.fullScreen ||
- (window.innerWidth == screen.width && window.innerHeight == screen.height) ||
- (window.innerWidth >= screen.width && window.innerHeight >= screen.height) || /* Fix for chrome when zoom is < 100% */
- (!window.screenTop && !window.screenY))
- }
-
- let node = document.createElement('div');
- let textnode = document.createTextNode('');
- node.appendChild(textnode);
- setStyles([
- { name: 'position', value: 'fixed' },
- { name: 'bottom', value: '0' },
- { name: 'right', value: '0' },
- { name: 'background-color', value: 'black' },
- { name: 'color', value: 'white' },
- { name: 'z-index', value: '99999' },
- { name: 'font-size', value: clockSettings.fontSize },
- { name: 'padding', value: '1px 4px' },
- { name: 'border-radius', value: '4px' },
- { name: 'border', value: '1px solid rgba(250, 250, 250, 0.3)' },
- { name: 'margin', value: '2px' },
- { name: 'opacity', value: '0' },
- { name: 'font-family', value: '"' + clockSettings.font + '", sans-serif' },
- { name: 'text-rendering', value: 'optimizelegibility' },
- { name: 'cursor', value: 'default' },
- ]);
- document.body.appendChild(node);
-
- setInterval(() => updateClock(), 1000);
- window.addEventListener('resize', () => changeOpacity((isFullscreen())? clockSettings.opacity : '0'));
- node.addEventListener('mouseover', () => changeOpacity('0'));
- node.addEventListener('mouseout', () => changeOpacity(clockSettings.opacity));