commit 60e2138a12bc04f98656a6c37837ed4ff013022e Author: Stian Lund Date: Mon Aug 5 18:15:25 2024 +0200 commit diff --git a/Vivaldi-logo-red.svg b/Vivaldi-logo-red.svg new file mode 100755 index 0000000..789a24d --- /dev/null +++ b/Vivaldi-logo-red.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Vivaldi-stars.jpg b/Vivaldi-stars.jpg new file mode 100755 index 0000000..00a1e3e Binary files /dev/null and b/Vivaldi-stars.jpg differ diff --git a/adblock/index.html b/adblock/index.html new file mode 100755 index 0000000..bb54e6a --- /dev/null +++ b/adblock/index.html @@ -0,0 +1,40 @@ + + + + + + + adblock + + + +

adblock

+ ..
+[ 468 Apr 25 22:32]  myfilters.txt
+

+

+

+ +0 directories, 1 file +

+

+ diff --git a/adblock/myfilters.txt b/adblock/myfilters.txt new file mode 100755 index 0000000..3b1b3c8 --- /dev/null +++ b/adblock/myfilters.txt @@ -0,0 +1,21 @@ +! Title: Adblock Filters (personal) +!! EXCEPTIONS +@@||log.medietall.no^$domain=nrk.no +@@||apibay.org^$domain=thepiratebay.org +@@||exdynsrv.com^$domain=thepiratebay.org +@@||wpadmngr.com^$domain=thepiratebay.org +@@||forexprostools.com^ +@@||tiktok.com^ + +! Block all WebSocket requests +!$websocket + +! Block all WebSocket requests to localhost +!127.0.0.1^$websocket +!localhost^$websocket + +!! DOMAIN BLOCKS +!||facebook.com^$document + +||example.com##h1 + diff --git a/index.html b/index.html new file mode 100755 index 0000000..c489d3e --- /dev/null +++ b/index.html @@ -0,0 +1,50 @@ + + + + + + + vivaldi + + + +

vivaldi

+ ..
+[   0 May 10 15:08]  adblock
+[   0 May 10 15:08]  mods
+[   0 May 24 17:10]  panels
+[   0 May 10 15:08]  sdthumbs
+[   0 May 10 15:08]  tools
+[   0 Dec 14  2023]  user_files
+[   0 Dec 14  2023]  userscript
+[ 29K May 27 18:29]  keyboard.html
+[9.9K May 27 18:26]  keyboard.md
+[2.0K Mar 21  2021]  Vivaldi-logo-red.svg
+[320K Dec  2  2021]  Vivaldi-stars.jpg
+

+

+

+ +7 directories, 4 files +

+

+ diff --git a/keyboard.html b/keyboard.html new file mode 100755 index 0000000..d1edddf --- /dev/null +++ b/keyboard.html @@ -0,0 +1,596 @@ + + + + Keyboard Cheat Sheet + + + +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+ + diff --git a/keyboard.md b/keyboard.md new file mode 100755 index 0000000..af31414 --- /dev/null +++ b/keyboard.md @@ -0,0 +1,189 @@ + + +# Keyboard Cheat Sheet + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
WINDOW
New WindowCtrl+N
New Private WindowCtrl+Shift+N
Close WindowCtrl+Shift+Q
Quick CommandsF2
Task ManagerShift+Esc
SettingsAlt+F2
Ctrl+F12
ExtensionsCtrl+Shift+E
HistoryCtrl+H
NotesShift+O
BookmarksCtrl+B
Delete Browsing DataCtrl+Shift+Del
Keyboard Cheat SheetCtrl+F2
Show Webpage Access Key ShortcutsShift+F2
Break ModeCtrl+Shift+.
Capture Area to FileCtrl+Alt+F
Capture Area to ClipboardCtrl+Alt+C
Focus Next PaneF6
Ctrl+2
Focus Previous PaneShift+F6
Ctrl+1
PrintCtrl+P
View Page SourceCtrl+U
Alt+F3
Developer ToolsF12
Toggle Developer ToolsCtrl+Shift+C
UndoCtrl+Z
RedoCtrl+Y
CutCtrl+X
CopyCtrl+C
PasteCtrl+V
Select AllCtrl+A
Paste as Plain TextAlt+Insert
Ctrl+Shift+V
Paste and GoCtrl+G
  
VIEW
Fullscreen ModeF11
Bookmarks BarCtrl+Alt+B
Menu PositionCtrl+Alt+M
Status BarCtrl+Alt+S
Tab BarCtrl+Alt+T
Address BarCtrl+Alt+A
Toggle UICtrl+F11
Page Zoom In+
Ctrl++
Page Zoom Out-
Ctrl+-
Page Zoom ResetCtrl+0
*
Ctrl+Numpad0
UI Zoom InCtrl+Alt++
UI Zoom OutCtrl+Alt+-
UI Zoom ResetCtrl+Alt+*
Ctrl+Alt+0
PanelF4
Focus PanelF1
Focus Panel ControlsCtrl+5
Alt+F1
Focus Bookmarks BarF9
Focus Tab BarF8
Ctrl+F1
Shift+Home
Toggle Floating PanelCtrl+Alt+F4
Open Next PanelCtrl+Shift+Page↓
Ctrl+4
Open Previous PanelCtrl+Shift+Page↑
Ctrl+3
Toggle Current PanelShift+F4
Bookmarks PanelCtrl+Shift+B
Reading List PanelCtrl+Shift+R
Downloads PanelCtrl+Shift+D
History PanelCtrl+Shift+H
Notes PanelCtrl+Shift+O
Translate PanelCtrl+Shift+L
Window PanelCtrl+Shift+W
Web Panel 1Alt+Shift+1
Web Panel 2Alt+Shift+2
Web Panel 3Alt+Shift+3
Web Panel 4Alt+Shift+4
Web Panel 5Alt+Shift+5
Web Panel 6Alt+Shift+6
Web Panel 7Alt+Shift+7
Web Panel 8Alt+Shift+8
Web Panel 9Alt+Shift+9
  
TAB
New TabCtrl+T
New Top Level TabAlt+Shift+T
Close TabCtrl+W
Close Other TabsCtrl+Alt+W
Tab Cycler BackCtrl+Shift+Tab
Alt+Page↑
Tab Cycler ForwardCtrl+Tab
Alt+Page↓
Previous Tab (by Order)1
Ctrl+Page↑
Next Tab (by Order)2
Ctrl+Page↓
Move Tabs to BeginningCtrl+Alt+↑
7
Move Tabs to EndCtrl+Alt+↓
8
Move Active Tab BackwardCtrl+Alt+←
5
Move Active Tab ForwardCtrl+Alt+→
6
Select Previous TabCtrl+Shift+←
Select Next TabCtrl+Shift+→
Select Related TabsCtrl+Shift+A
Deselect TabsCtrl+Shift+End
Rename Tab StackAlt+Shift+R
Switch to Tab 1Alt+1
3
Switch to Tab 2Alt+2
Switch to Tab 3Alt+3
Switch to Tab 4Alt+4
Switch to Tab 5Alt+5
Switch to Tab 6Alt+6
Switch to Tab 7Alt+7
Switch to Tab 8Alt+8
Switch to Tab 9Alt+9
Switch to the Last TabAlt+0
4
Show Closed TabsAlt+Z
Reopen Closed TabCtrl+Z
Tile VerticallyAlt+F9
Tile HorizontallyAlt+F10
Tile to GridAlt+F11
Stack TabsCtrl+Shift+↓
Unstack TabsCtrl+Shift+↑
Remove from Tab StackCtrl+↑
Load ImagesAlt+I
Mute / Unmute TabCtrl+M
Mute Other TabsAlt+M
Mute All TabsAlt+Shift+M
Capture Page to FileCtrl+Alt+P
Capture Page to ClipboardCtrl+Alt+O
Filter IntensifyCtrl+Alt+I
  
PAGE
Toggle Reader ViewAlt+R
Bookmark Selected TabsCtrl+Alt+D
Create BookmarkCtrl+D
Add Page to Reading ListShift+R
Focus Address FieldAlt+D
Reload PageCtrl+R
F5
Force Page ReloadCtrl+F5
Focus PageAlt+A
Shift+F1
Disable Keyboard ShortcutsCtrl+Alt+K
Focus Search FieldAlt+S
Find Next in PageF3
Find Previous in PageShift+F3
History BackAlt+←
Z
History ForwardAlt+→
X
History RewindShift+Z
Fast ForwardShift+X
Go to Parent DirectoryAlt+Backspace
Alt+↑
Stop LoadingEsc
Open FileCtrl+O
Save Page AsCtrl+S
Search with SelectionCtrl+Shift+S
HomepageCtrl+Space
Alt+Home
Copy Selected Text to NoteCtrl+Shift+I
Spatial Navigation LeftShift+←
Spatial Navigation UpShift+↑
Spatial Navigation RightShift+→
Spatial Navigation DownShift+↓
  
CALENDAR
Day ViewD
Week ViewW
Multi Week ViewN
Month ViewM
Year ViewY
Agenda ViewA
View Next PeriodK
Page↓
View Previous PeriodJ
Page↑
View TodayT
Home
Zoom View InAlt+Page↑
Zoom View OutAlt+Page↓
Create EventC
Go to DateG
Search in Calendar/
Refresh CalendarR
  
MAIL
Compose New MessageN
Reply to MessageR
Reply AllShift+R
Forward MessageF
Delete PermanentlyShift+Del
Mark Message as ReadK
Mark Message Thread as ReadM
Mark Message Thread as UnreadShift+M
Mark Message as UnreadShift+K
Show Messages for SenderE
Show Message ThreadT
Mark Message as Read and Go to Next UnreadG
Send Mail From Mail ComposerCtrl+Enter
Queue Mail From Mail ComposerCtrl+Shift+Enter
  
CHAINS
Open Downloads PageCtrl+Shift+J
Rename TabCtrl+Alt+R
\ No newline at end of file diff --git a/mods/CSS/custom.css b/mods/CSS/custom.css new file mode 100755 index 0000000..1c9ac84 --- /dev/null +++ b/mods/CSS/custom.css @@ -0,0 +1,188 @@ +/* CUSTOM CSS for Vivaldi */ + +/* Vivaldi logo */ +.vivaldi-v, .vivaldi-horizontal-icon {opacity: 1 !important;} +.vivaldi-v svg, .vivaldi-horizontal-icon svg {background: radial-gradient(white, white 50%, transparent 50%); fill: #383838;} + +/* Remove V button expand arrow */ +#browser:has(.vivaldi-v) {--menuWidth: 26px;} +.vivaldi .expand-arrow {display: none;} + +/* Skinnier mainbar */ +.mainbar .toolbar-mainbar, +.mainbar .toolbar-mainbar .button-toolbar button, +.mainbar .toolbar-mainbar .toolbar-extensions, +.mainbar .toolbar-mainbar .toolbar-extensions .button-toolbar button { + height: 30px; +} + +/* Skinnier mainbar - fix BookmarkButton focus */ +.toolbar-mainbar .UrlBar-AddressField .BookmarkButton button { + height: 100%; +} + +/* Skinnier statusbar */ +#browser footer .toolbar-statusbar { + height: 20px; +} +#browser footer .toolbar-statusbar button { + height: 20px; + width: 100%; +} +#browser footer .toolbar-statusbar .override.button-icon { + height: 100%; +} + +/* SiteInfo V logo */ +.SiteInfoButton.internal svg path, .SiteInfoButton.warning svg path { + d: path("M10.4 5c-.4-.8 0-1.8 1-2 .7 0 1.5.4 1.6 1.2a1.4 1.4 0 0 1-.2 1l-4 7c-.3.5-.7.8-1.2.8-.6 0-1-.2-1.3-.7L3.8 7.8 2.2 5c-.5-.8 0-2 1-2 .7 0 1 .2 1.4.7l1 2 1 1.4a2 2 0 0 0 1.7 1.5 2.2 2.2 0 0 0 2.3-2V6c0-.3 0-.6-.2-1z"); +} + +/* SiteInfo old style lock */ +.SiteInfoButton.secure svg path, .SiteInfoButton.certified svg path { + d: path("M12.2 6.7C12.2 4 10.5 2 8 2 5.8 2 3.8 4 3.8 6.7V7H3v7h10V7h-.8v-.3zM10.7 8H5.3V6.7c0-1.7 1.4-3 2.8-3 1.7 0 2.8 1.3 2.8 3V8z"); + fill: #00a100; +} + +/* SiteInfo secure background colour */ +.SiteInfoButton.secure, .SiteInfoButton.certified { + background-color: #004400 !important; + opacity: unset; + height: 22px; + width: 22px; +} + +/* SiteInfo hide EV/Not Secure text */ +.SiteInfoButton .siteinfo-text { + display: none; +} + +/* Remove panels switch top padding */ +#switch { + padding-top: unset; +} + +/* Smaller icon for internal webpanels */ +#switch .button-toolbar-webpanel .button-icon svg { + width: 20px; + height: 20px; +} + +/* Add drop-shadow to some buttons */ +#switch button img, +.tab:not(.active) .favicon img, +.OmniLinkItem-Favicon img, +.SiteInfoButton-Favicon, +.item-icon { + filter: drop-shadow(0 0 1px white); +} + +/* Hide AddressField stuff */ +.UrlBar-AddressField .permission-popup.is-blocking, +.UrlBar-AddressField .UrlBar-UrlObfuscationWarning, +.UrlBar-AddressField .ContentBlocker-Control, +.UrlBar-AddressField .ToolbarButton-Button[title^="Translate"] { + display: none; +} + +/* AddressField URL scheme part */ +.UrlFragment--Lowlight:first-of-type { + color: var(--colorFgFadedMost); +} + +/* AddressField URL host part */ +.UrlFragment-HostFragment-Subdomain, .UrlFragment-HostFragment-Basedomain, .UrlFragment-HostFragment-TLD { + color: var(--colorFgIntense) !important; + font-weight: bold; +} + +/* Extensions toggle button */ +.toolbar-extensions button svg path { + d: path("M10 13l3.634-3.634c.504-.504 1.366-.147 1.366.566v6.137c0 .713-.862 1.07-1.366.566l-3.634-3.634z"); + opacity: .5; +} + +/* Extensions buttons background */ +.ExtensionDropdownIcon, .ExtensionIcon { + background-color: transparent !important; +} + +/* Toolbar buttons keyboard focus */ +.button-toolbar:focus-within, .button-toolbar:hover { + background-color: var(--colorAccentBgDark) !important; +} + +/* Address + Search field icons dimmed */ +.toolbar-insideinput button { + opacity: 0.5; +} + +/* Trashcan dimmed */ +.toolbar-tabbar.sync-and-trash-container button { + opacity: 0.3; +} + +/* Bookmark button fill colour */ +.BookmarkButton .bookmark-animated-fill { + fill: var(--colorAccentBgFaded) !important; +} + +/* Bookmark button active opacity */ +.BookmarkButton .button-on { + opacity: 1; +} + +/* Bookmarks Panel input width */ +/*.addbookmark-cardwrapper { + width: 100%; +}*/ + +/* Bookmarks thumbnails hide */ +.panel-bookmarks-edit .cardview .preview, +.manager-editor .cardview .preview { + display: none; +} + +/* Hide Image Properties button */ +.webpageview button.inspector { + display: none; +} + +/* Unread tabs bold font */ +.tab-strip .tab.unread { + font-weight: bold; +} + +/* Tab tooltip hide size+ruler+thumbnail */ +#vivaldi-tooltip .tooltip-item .thumbnail-text hr, +#vivaldi-tooltip .tooltip-item .thumbnail-image { + display: none !important; +} + +/* Tab tooltip size */ +#vivaldi-tooltip .tooltip .tab-group .tooltip-item { + width: 250px; + height: auto; +} + +/* Dim empty UrlField text colour */ +.UrlField--IsEmpty { + color: var(--colorFgFadedMost); +} + +/* Input text selection background */ +#browser input:focus::selection, +#browser textarea:focus::selection, +#browser [contenteditable]:focus::selection, +.OmniLinkItem--Highlighted, +.vivaldi-settings .settings-sidebar .button-category.category-selected { + background-color: var(--colorHighlightBgDark) !important; +} + +/* Pageload Indicator */ +.UrlBar-AddressField .pageload .pageload-indicator { + background-color: var(--colorAccentBg) !important; +} + +/* Hide Extension buttons */ +.button-toolbar.extensionId button[title="Spatial Navigation"] {display: none;} diff --git a/mods/CSS/find-in-page.css b/mods/CSS/find-in-page.css new file mode 100755 index 0000000..5b3fb98 --- /dev/null +++ b/mods/CSS/find-in-page.css @@ -0,0 +1,46 @@ +/* Find-in-page mod */ +.find-in-page { + position:absolute; + background-color: var(--colorBg); + border-radius: var(--radius); + max-width: fit-content; + margin: 0 auto; + top: 3px; + right: 0; + left: 0; + z-index:1; +} + +/* Find-in-page input wider */ +.find-in-page .fip-input-container { + width: 400px; + max-width: unset; +} + +/* Find-in-page transparent if not focused */ +.find-in-page:not(:focus-within):not(:hover) { + opacity: 0.8; +} + +/* Find-in-page background colour for no matches */ +.find-in-page.fip-nomatches { + background: darkred; +} + +/* Find-in-page result numbers clearer */ +.find-in-page .fip-results { + opacity: 1 !important; +} + +/* Find-in-page hit no animation */ +.fip-active-hit { + display: none; +} + +/* Find-in-page hit no page dimming */ +#browser:has(.find-in-page) webview { +filter: none !important; +} +/*.find-in-page-wrapper:has(.find-in-page) + .row-wrapper .webpage>webview { + filter: unset !important; +}*/ diff --git a/mods/CSS/header.css b/mods/CSS/header.css new file mode 100755 index 0000000..34004ae --- /dev/null +++ b/mods/CSS/header.css @@ -0,0 +1,76 @@ +/* Hide header if tabs not on top */ +#browser:not(.tabs-top) #header { + min-height: 0px !important; +} + +/* Hide page title (Start Page for some reason shows this) */ +#browser:not(.tabs-top):not(.minimal-ui):not(.normal) #pagetitle { + display: none; +} + +/* Set mainbar/bookmark-bar l/r padding */ +#browser:not(.tabs-top) .toolbar-mainbar, +#browser:not(.tabs-top):not(.address-top):not(.normal) .bookmark-bar { + padding-left: 26px; + padding-right: 130px; +} + +/* Bottom border of mainbar */ +#browser:not(.tabs-top) .toolbar-mainbar:after { + content: ''; + background-color: var(--colorAccentBgDarker); + bottom: 0; +} + +/* Window buttons size + zindex */ +#browser:not(.tabs-top) .window-buttongroup, +#browser .window-buttongroup button { + height: 30px !important; + z-index: 10 !important; +} + +/* V icon size + zindex */ +#browser:not(.tabs-top) #titlebar .vivaldi { + width: 26px; + height: 30px; + scale: unset; + z-index: 10; +} +/* V icon SVG size */ +#browser:not(.tabs-top) .vivaldi svg { + height: 22px; + width: 22px; +} + +/* Hide buttons when all UI hidden */ +#browser.address-top-off.bookmark-bar-top-off:not(.tabs-top) .vivaldi, +#browser.address-top-off.bookmark-bar-top-off:not(.tabs-top) .window-buttongroup, +#browser.address-bottom-off.bookmark-bar-top-off:not(.tabs-top) .vivaldi, +#browser.address-bottom-off.bookmark-bar-top-off:not(.tabs-top) .window-buttongroup { + display: none; +} + +/* Show buttons on windowed/minimal-ui */ +#browser.normal .vivaldi, +#browser.minimal-ui:not(.fullscreen) .vivaldi, +#browser.normal .window-buttongroup, +#browser.minimal-ui .window-buttongroup { + display: initial !important; +} + +/* Reset header on windowed/minimal-ui/bottom-UrlBar/horizontal-menu */ +#browser.normal #header, +#browser.minimal-ui:not(.fullscreen) #header, +#browser.address-bottom #header, +#browser.horizontal-menu #header { + min-height: calc(25px / var(--uiZoomLevel)) !important; +} + +/* Reset header on windowed/minimal-ui/bottom-UrlBar/horizontal-menu */ +#browser.normal .toolbar-mainbar, +#browser.minimal-ui .toolbar-mainbar, +#browser.address-bottom .toolbar-mainbar, +#browser.horizontal-menu .toolbar-mainbar { + padding-left: unset; + padding-right: unset; +} diff --git a/mods/CSS/index.html b/mods/CSS/index.html new file mode 100755 index 0000000..f5ffdae --- /dev/null +++ b/mods/CSS/index.html @@ -0,0 +1,45 @@ + + + + + + + CSS + + + +

CSS

+ ..
+[4.8K Jul 31 19:30]  custom.css
+[ 923 Mar  1 21:55]  find-in-page.css
+[2.1K Aug  5 18:03]  header.css
+[ 922 Jun  8  2023]  quick-command-tweaks.css
+[ 979 Jul  2 10:25]  speed-dials.css
+[ 354 Oct 14  2023]  tabcycler.css
+

+

+

+ +0 directories, 6 files +

+

+ diff --git a/mods/CSS/quick-command-tweaks.css b/mods/CSS/quick-command-tweaks.css new file mode 100755 index 0000000..4b10734 --- /dev/null +++ b/mods/CSS/quick-command-tweaks.css @@ -0,0 +1,34 @@ +/* Placement */ +.qc-modal {top: 15vh !important;} + +/* Width */ +.quick-command-container, .quick-commands > div {width: 60vw !important;} +.quick-commands > div > div {max-width: 100% !important;} + +/* Height */ +.quick-commands > div {height: 60vh !important;} +.quick-commands {max-height: 100% !important;} + +/* Transparency */ +.quick-commands, .qc-entry {background-color: transparent !important;} + +/* Selected line */ +.quick-command[data-selected] {background-color: var(--colorHighlightBg) !important;} + +/* Styling */ +.qc-modal > div { + color: var(--colorFgIntense) !important; + background-color: var(--colorBgAlphaBlur) !important; + backdrop-filter: var(--backgroundBlur); + border: 2px solid var(--colorAccentBgAlphaHeavy); + border-radius: var(--radius); +} + +/* Hide scrollbar */ +/*** +.qc-modal ::-webkit-scrollbar-track, +.qc-modal ::-webkit-scrollbar-thumb, +.qc-modal ::-webkit-scrollbar-button { + display: none; +} +***/ diff --git a/mods/CSS/speed-dials.css b/mods/CSS/speed-dials.css new file mode 100755 index 0000000..32ea27d --- /dev/null +++ b/mods/CSS/speed-dials.css @@ -0,0 +1,44 @@ +/* Speed Dials Mods */ +.SpeedDialView-Head, .SpeedDialView-Head:empty { + margin: 1em auto; +} + +/* Settings button focus outline */ +.SpeedDialView-Settings-Button:focus { + outline: 2px solid var(--colorHighlightBg); +} + +/* Speed Dials search field position (if shown) */ +.sdwrapper .iconmenu-container.SearchField { + background: var(--colorBgAlphaHeavy); +} + +/* Speed Dials look */ +.speeddial .dial { + opacity: 0.8 !important; + transition: opacity 0.2s linear; + background-color: var(--colorBgAlphaHeavy); +} + +/* Speed Dials opaque when hovering */ +.speeddial .dial:hover, .speeddial .dial:focus { + opacity: 1 !important; +} + +/* Speed Dials thumbnail */ +.speeddial .dial .thumbnail-image { + display: block; + padding: 1em; +} + +/* Speed Dials thumbnail fit container */ +.speeddial .dial .thumbnail-image img { + object-fit: contain; + object-position: center; +} + +/* Speed Dial background image fit */ +/*.startpage { + background-size: 100% 100% !important; + transition: none !important; +}*/ diff --git a/mods/CSS/tabcycler.css b/mods/CSS/tabcycler.css new file mode 100755 index 0000000..65e2213 --- /dev/null +++ b/mods/CSS/tabcycler.css @@ -0,0 +1,19 @@ +/* Tabcycler hide image */ +.tabswitcher.list img.visual-list-preview { + visibility: collapse; + height: 0; + min-height: 0; +} + +/* Tabcycler list */ +.tabswitcher.list { + grid-template-columns: 0px 1fr; + grid-gap: unset; + width: 36em; + max-height: 80vh; +} + +/* Tabcycler hide scrollbar */ +.tabswitcher.list .listed-tabs::-webkit-scrollbar { + display: none; +} diff --git a/mods/JS/backup-keyboard-cheat-sheet.js b/mods/JS/backup-keyboard-cheat-sheet.js new file mode 100755 index 0000000..9d65e43 --- /dev/null +++ b/mods/JS/backup-keyboard-cheat-sheet.js @@ -0,0 +1,177 @@ +// Backup Search Engines +// version 2022.3.3 +// https://forum.vivaldi.net/post/277594 +// Adds functionality to backup and restore search engines in +// vivaldi://settings/search. + +(function () { + function msg(print) { + clearTimeout(msgTimeout); + if (print === "backup") { + info.innerText = "Backup copied to clipboard"; + } else if (print === "restore") { + info.innerText = "Search engines restored"; + } else { + info.innerText = "Code error, aborted"; + } + msgTimeout = setTimeout(() => (info.innerText = ""), 5000); + } + + function lookup(n) { + const defaults = [n.defaultSearch, n.defaultPrivate, n.defaultImage]; + return defaults; + } + + function bringingItAllBackHome(remains) { + vivaldi.searchEngines.getTemplateUrls((engines) => { + for (i = 0; i < defaultsArray.length; i++) { + const getName = engines.templateUrls.map((e) => e.name); + const index = getName.lastIndexOf(defaultsArray[i][0]); + const id = engines.templateUrls[index].id.toString(); + const search = defaultsArray[i][1]; + if (search === 0) { + vivaldi.searchEngines.setDefault( + vivaldi.searchEngines.DefaultType.DEFAULT_SEARCH, + id, + ); + } else if (search === 1) { + vivaldi.searchEngines.setDefault( + vivaldi.searchEngines.DefaultType.DEFAULT_PRIVATE, + id, + ); + } else { + vivaldi.searchEngines.setDefault( + vivaldi.searchEngines.DefaultType.DEFAULT_IMAGE, + id, + ); + } + } + remains.forEach((remove) => { + vivaldi.searchEngines.removeTemplateUrl(remove); + }); + defaultsArray = []; + msg("restore"); + }); + } + + function exec(collection) { + vivaldi.searchEngines.getTemplateUrls((engines) => { + const oldDefaults = lookup(engines); + const newDefaults = lookup(collection); + engines.templateUrls.forEach((engine) => { + if (oldDefaults.indexOf(engine.id) === -1) { + vivaldi.searchEngines.removeTemplateUrl(engine.id); + } + }); + collection.templateUrls.forEach((collect) => { + vivaldi.searchEngines.addTemplateUrl(collect, () => { + if (newDefaults.indexOf(collect.id) > -1) { + const indeces = newDefaults + .map((e, i) => (e === collect.id ? i : "")) + .filter(String); + indeces.forEach((index) => { + const tunnel = [collect.name, index]; + defaultsArray.push(tunnel); + }); + } + }); + }); + const remains = [...new Set(oldDefaults)]; + bringingItAllBackHome(remains); + }); + } + + function restore(e) { + e.preventDefault(); + e.stopPropagation(); + let backupCode; + let collection; + if (e.type === "paste") { + const clipboardData = e.clipboardData; + backupCode = clipboardData.getData("text"); + } else { + backupCode = e.dataTransfer.getData("text"); + } + try { + collection = JSON.parse(backupCode); + } catch (err) { + msg("error"); + return; + } + if ( + "defaultImage" in collection && + "defaultPrivate" in collection && + "defaultSearch" in collection + ) { + exec(collection); + } else { + msg("error"); + } + } + + function backup() { + vivaldi.searchEngines.getTemplateUrls((engines) => { + const backupCode = JSON.stringify(engines); + navigator.clipboard.writeText(backupCode); + msg("backup"); + }); + } + + function ui() { + const check = document.getElementById("vm-backup"); + if (!check) { + const place = document.querySelector( + ".setting-section > div > .setting-group.unlimited > .setting-single" + ); + const btn = document.createElement("input"); + btn.setAttribute("type", "button"); + btn.setAttribute("value", "Backup"); + btn.id = "vm-backup"; + place.insertBefore(btn, place.lastChild); + btn.addEventListener("click", backup); + const input = document.createElement("input"); + input.setAttribute("type", "text"); + input.setAttribute("placeholder", "Restore Backup"); + input.id = "vm-restore"; + place.insertBefore(input, place.lastChild); + input.addEventListener("paste", restore); + input.addEventListener("drop", restore); + info = document.createElement("span"); + info.id = "vm-msg"; + place.insertBefore(info, place.lastChild); + } + } + + const css = ` + #vm-restore { + width: 130px; + margin-left: 6px; + margin-top: 6px; + } + #vm-restore::-webkit-input-placeholder { + opacity: 1; + color: var(--colorHighlightBg); + text-align: center; + } + #vm-msg { + margin-left: 12px; + } + `; + + let msgTimeout; + let defaultsArray = []; + const settingsUrl = + "chrome-extension://mpognobbkildjkofajifpdfhcoklimli/components/settings/settings.html?path="; + chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) { + if (changeInfo.url === `${settingsUrl}search`) { + setTimeout(ui, 100); + const check = document.getElementById("vm-engines"); + if (!check) { + const style = document.createElement("style"); + style.id = "vm-engines"; + style.innerHTML = css; + document.getElementsByTagName("head")[0].appendChild(style); + } + } + }); +})(); diff --git a/mods/JS/backup-search-engines.js b/mods/JS/backup-search-engines.js new file mode 100755 index 0000000..ce48ac9 --- /dev/null +++ b/mods/JS/backup-search-engines.js @@ -0,0 +1,186 @@ +// Backup Search Engines +// version 2022.4.0 +// https://forum.vivaldi.net/post/277594 +// Adds functionality to backup and restore search engines in +// vivaldi://settings/search. + +(function backupSearchEngines() { + function msg(print) { + clearTimeout(msgTimeout); + if (print === "backup") { + info.innerText = "Backup copied to clipboard"; + } else if (print === "restore") { + info.innerText = "Search engines restored"; + } else { + info.innerText = "Code error, aborted"; + } + msgTimeout = setTimeout(() => (info.innerText = ""), 5000); + } + + function bringingItAllBackHome(remains, defaultsArray) { + vivaldi.searchEngines.getTemplateUrls((engines) => { + const getKeys = engines.templateUrls.map((e) => e.keyword); + for (let i = 0; i < defaultsArray.length; i++) { + const index = getKeys.lastIndexOf(defaultsArray[i][0]); + const id = engines.templateUrls[index].id.toString(); + const ds = defaultsArray[i][1]; + vivaldi.searchEngines.setDefault(ds, id); + } + remains.forEach((remove) => { + vivaldi.searchEngines.removeTemplateUrl(remove); + }); + msg("restore"); + }); + } + + function exec(collection) { + vivaldi.searchEngines.getTemplateUrls((engines) => { + const oldDefaults = [ + engines.defaultImage, + engines.defaultPrivate, + engines.defaultSearch, + ]; + const newDefaults = [ + collection.defaultImage, + collection.defaultPrivate, + collection.defaultSearch, + collection.defaultSearchField, + collection.defaultSearchFieldPrivate, + collection.defaultSpeeddials, + collection.defaultSpeeddialsPrivate, + ]; + engines.templateUrls.forEach((engine) => { + if (oldDefaults.indexOf(engine.id) === -1) { + vivaldi.searchEngines.removeTemplateUrl(engine.id); + } + }); + console.info("restoring search engines..."); + const defaultsArray = []; + collection.templateUrls.forEach((collect) => { + vivaldi.searchEngines.addTemplateUrl(collect, () => { + console.info(` \u2022 ${collect.name}`); + if (newDefaults.indexOf(collect.id) > -1) { + const indeces = newDefaults + .map((e, i) => (e === collect.id ? i : "")) + .filter(String); + indeces.forEach((index) => { + let ds; + if (index === 0) { + ds = vivaldi.searchEngines.DefaultType.DEFAULT_IMAGE; + } else if (index === 1) { + ds = vivaldi.searchEngines.DefaultType.DEFAULT_PRIVATE; + } else if (index === 2) { + ds = vivaldi.searchEngines.DefaultType.DEFAULT_SEARCH; + } else if (index === 3) { + ds = vivaldi.searchEngines.DefaultType.DEFAULT_SEARCH_FIELD; + } else if (index === 4) { + ds = vivaldi.searchEngines.DefaultType.DEFAULT_SEARCH_FIELD_PRIVATE; + } else if (index === 5) { + ds = vivaldi.searchEngines.DefaultType.DEFAULT_SPEEDDIALS; + } else { + ds = vivaldi.searchEngines.DefaultType.DEFAULT_SPEEDDIALS_PRIVATE; + } + const tunnel = [collect.keyword, ds]; + defaultsArray.push(tunnel); + }); + } + }); + }); + const remains = [...new Set(oldDefaults)]; + bringingItAllBackHome(remains, defaultsArray); + }); + } + + function restore(e) { + e.preventDefault(); + e.stopPropagation(); + let backupCode; + let collection; + if (e.type === "paste") { + const clipboardData = e.clipboardData; + backupCode = clipboardData.getData("text"); + } else { + backupCode = e.dataTransfer.getData("text"); + } + try { + collection = JSON.parse(backupCode); + } catch (err) { + msg("error"); + return; + } + if ( + "defaultImage" in collection && + "defaultPrivate" in collection && + "defaultSearch" in collection + ) { + exec(collection); + } else { + msg("error"); + } + } + + function backup() { + vivaldi.searchEngines.getTemplateUrls((engines) => { + const backupCode = JSON.stringify(engines, null, 2); + navigator.clipboard.writeText(backupCode); + msg("backup"); + }); + } + + function ui() { + const check = document.getElementById("vm-bse-backup"); + if (!check) { + const place = document.querySelector( + ".setting-section > div > .setting-group.unlimited > .setting-single" + ); + const btn = document.createElement("input"); + btn.setAttribute("type", "button"); + btn.setAttribute("value", "Backup"); + btn.classList.add("vm-bse-backup"); + place.insertBefore(btn, place.lastChild); + btn.addEventListener("click", backup); + const input = document.createElement("input"); + input.setAttribute("type", "text"); + input.setAttribute("placeholder", "Restore Backup"); + input.classList.add("vm-bse-restore"); + place.insertBefore(input, place.lastChild); + input.addEventListener("paste", restore); + input.addEventListener("drop", restore); + info = document.createElement("span"); + info.classList.add("vm-bse-msg"); + place.insertBefore(info, place.lastChild); + } + } + + const css = ` + .vm-bse-restore { + width: 130px; + margin-left: 6px; + margin-top: 6px; + } + .vm-bse-restore::-webkit-input-placeholder { + opacity: 1; + color: var(--colorHighlightBg); + text-align: center; + } + .vm-bse-msg { + margin-left: 12px; + } + `; + + let msgTimeout; + const settingsUrl = + "chrome-extension://mpognobbkildjkofajifpdfhcoklimli/components/settings/settings.html?path="; + chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => { + if (changeInfo.url === `${settingsUrl}search`) { + setTimeout(ui, 100); + const check = document.getElementById("vm-bse-css"); + if (!check) { + const style = document.createElement("style"); + style.id = "vm-bse-css"; + style.innerHTML = css; + document.getElementsByTagName("head")[0].appendChild(style); + } + } + }); +})(); diff --git a/mods/JS/index.html b/mods/JS/index.html new file mode 100755 index 0000000..07de4fc --- /dev/null +++ b/mods/JS/index.html @@ -0,0 +1,41 @@ + + + + + + + JS + + + +

JS

+ ..
+[5.4K Mar 30  2022]  backup-keyboard-cheat-sheet.js
+[6.2K Jul 22 13:07]  backup-search-engines.js
+

+

+

+ +0 directories, 2 files +

+

+ diff --git a/mods/custom.css b/mods/custom.css new file mode 100755 index 0000000..d047b25 --- /dev/null +++ b/mods/custom.css @@ -0,0 +1,188 @@ +/* CUSTOM CSS for Vivaldi */ + +/* Vivaldi logo */ +.vivaldi-v, .vivaldi-horizontal-icon {opacity: 1 !important;} +.vivaldi-v svg, .vivaldi-horizontal-icon svg {background: radial-gradient(white, white 50%, transparent 50%); fill: #383838;} + +/* Remove V button expand arrow */ +#browser:has(.vivaldi-v) {--menuWidth: 26px;} +.vivaldi .expand-arrow {display: none;} + +/* Skinnier mainbar */ +.mainbar>.toolbar-mainbar, +.mainbar>.toolbar-mainbar .button-toolbar button, +.mainbar>.toolbar-mainbar .toolbar-extensions, +.mainbar>.toolbar-mainbar .toolbar-extensions .button-toolbar button { + height: 30px; +} + +/* Skinnier mainbar - fix BookmarkButton focus */ +.toolbar-mainbar .UrlBar-AddressField .BookmarkButton button { + height: 100%; +} + +/* Skinnier statusbar */ +#browser footer .toolbar-statusbar { + height: 20px; +} +#browser footer .toolbar-statusbar button { + height: 20px; + width: 100%; +} +#browser footer .toolbar-statusbar .override.button-icon { + height: 100%; +} + +/* SiteInfo V logo */ +.SiteInfoButton.internal svg path, .SiteInfoButton.warning svg path { + d: path("M10.4 5c-.4-.8 0-1.8 1-2 .7 0 1.5.4 1.6 1.2a1.4 1.4 0 0 1-.2 1l-4 7c-.3.5-.7.8-1.2.8-.6 0-1-.2-1.3-.7L3.8 7.8 2.2 5c-.5-.8 0-2 1-2 .7 0 1 .2 1.4.7l1 2 1 1.4a2 2 0 0 0 1.7 1.5 2.2 2.2 0 0 0 2.3-2V6c0-.3 0-.6-.2-1z"); +} + +/* SiteInfo old style lock */ +.SiteInfoButton.secure svg path, .SiteInfoButton.certified svg path { + d: path("M12.2 6.7C12.2 4 10.5 2 8 2 5.8 2 3.8 4 3.8 6.7V7H3v7h10V7h-.8v-.3zM10.7 8H5.3V6.7c0-1.7 1.4-3 2.8-3 1.7 0 2.8 1.3 2.8 3V8z"); + fill: #00a100; +} + +/* SiteInfo secure background colour */ +.SiteInfoButton.secure, .SiteInfoButton.certified { + background-color: #004400; + height: 22px; + width: 22px; +} + +/* SiteInfo hide EV/Not Secure text */ +.SiteInfoButton .siteinfo-text { + display: none; +} + +/* Remove panels switch top padding */ +#switch { + padding-top: unset; +} + +/* Smaller icon for internal webpanels */ +#switch .button-toolbar-webpanel .button-icon svg { + width: 20px; + height: 20px; +} + +/* Add drop-shadow to some buttons */ +#switch button img, +.tab:not(.active) .favicon img, +.OmniLinkItem-Favicon img, +.SiteInfoButton-Favicon, +.item-icon { + filter: drop-shadow(0 0 1px white); +} + +/* Hide AddressField stuff */ +.UrlBar-AddressField .permission-popup.is-blocking, +.UrlBar-AddressField .UrlBar-UrlObfuscationWarning, +.UrlBar-AddressField .ContentBlocker-Control, +.UrlBar-AddressField .ToolbarButton-Button[title^="Translate"] { + display: none; +} + +/* AddressField URL scheme part */ +.UrlFragment--Lowlight:first-of-type { + color: var(--colorFgFadedMost); +} + +/* AddressField URL host part */ +.UrlFragment-HostFragment-Subdomain, .UrlFragment-HostFragment-Basedomain, .UrlFragment-HostFragment-TLD { + color: var(--colorFgIntense) !important; + font-weight: bold; +} + +/* Extensions toggle button */ +.toolbar-extensions button svg path { + d: path("M10 13l3.634-3.634c.504-.504 1.366-.147 1.366.566v6.137c0 .713-.862 1.07-1.366.566l-3.634-3.634z"); + opacity: .5; +} + +/* Extensions buttons background */ +.ExtensionDropdownIcon, .ExtensionIcon { + background-color: transparent !important; +} + +/* Toolbar buttons keyboard focus */ +.button-toolbar:focus-within, .button-toolbar:hover { + background-color: var(--colorAccentBgDark) !important; +} + +/* Address + Search field icons dimmed */ +.toolbar-insideinput button { + opacity: 0.5; +} + +/* Trashcan dimmed */ +.toolbar-tabbar.sync-and-trash-container button { + opacity: 0.3; +} + +/* Bookmark button fill colour */ +.BookmarkButton .bookmark-animated-fill { + fill: var(--colorAccentBgFaded) !important; +} + +/* Bookmark button active opacity */ +.BookmarkButton .button-on { + opacity: 1; +} + +/* Bookmarks Panel input width */ +/*.addbookmark-cardwrapper { + width: 100%; +}*/ + +/* Bookmarks thumbnails hide */ +.panel-bookmarks-edit .cardview .preview, +.manager-editor .cardview .preview { + display: none; +} + +/* Hide Image Properties button */ +.webpageview button.inspector { + display: none; +} + +/* Unread tabs bold font */ +.tab-strip .tab.unread { + font-weight: bold; +} + +/* Tab tooltip hide size+ruler+thumbnail */ +#vivaldi-tooltip .tooltip-item .thumbnail-text hr, +#vivaldi-tooltip .tooltip-item .thumbnail-text .size, +#vivaldi-tooltip .tooltip-item .thumbnail-image { + display: none !important; +} + +/* Tab tooltip size */ +#vivaldi-tooltip .tooltip .tab-group .tooltip-item { + width: 250px; + height: auto; +} + +/* Dim empty UrlField text colour */ +.UrlField--IsEmpty { + color: var(--colorFgFadedMost); +} + +/* Input text selection background */ +#browser input:focus::selection, +#browser textarea:focus::selection, +#browser [contenteditable]:focus::selection, +.OmniLinkItem--Highlighted, +.vivaldi-settings .settings-sidebar .button-category.category-selected { + background-color: var(--colorHighlightBgDark) !important; +} + +/* Pageload Indicator */ +.UrlBar-AddressField .pageload .pageload-indicator { + background-color: var(--colorAccentBg) !important; +} + +/* Hide Extension buttons */ +.button-toolbar.extensionId button[title="Spatial Navigation"] {display: none;} diff --git a/mods/custom.unused.css b/mods/custom.unused.css new file mode 100755 index 0000000..64f0cb9 --- /dev/null +++ b/mods/custom.unused.css @@ -0,0 +1,70 @@ +/* Startup background colour */ +body { + background-color: #26272a !important; +} + +/* Hide synced tab button */ +.button-toolbar.synced-tabs-button { + display: none; +} + +/* Highlight expanded bookmark folder */ +.panel-bookmarks .tree-item[data-expanded] { + font-weight: bold; +} + +/* Vivaldi logo old style */ +.vivaldi-v {opacity: 1 !important;} +.vivaldi-v svg{background: radial-gradient(white, white 50%, transparent 50%, transparent); fill: #383838;} + +/* Hide trash can when empty */ +/* No longer works */ +.toggle-trash > button:disabled { + display: none; +} + +/* Scrollable web panels */ +#panels-container #switch { + overflow: scroll; +} +#panels-container #switch::-webkit-scrollbar, #panels-container #switch .addwebpanel-wrapper { + display: none; +} + +/* Tabcycler hide image */ +.tabswitcher.list img.visual-list-preview { + visibility: collapse; +} + +/* Tabcycler list */ +.tabswitcher.list { + grid-template-columns: 0px 1fr; + grid-gap: unset; + max-height: 80vh !important; +} +/* Tabcycler hide scrollbar */ +.tabswitcher.list .listed-tabs::-webkit-scrollbar { + display: none; +} + +/* TEMP(?) fix for url bar dropdown */ +.OmniLinkItem--Highlighted, OmniLinkItem:hover { + background-color: var(--colorHighlightBg) !important; +} + +/* Floating multiline StatusInfo URL */ +.toolbar .StatusInfo { + background: var(--colorBg); + border-radius: var(--radius); + position: absolute; + max-width: 99%; + bottom: 25px; + left: 5px; + padding: 5px 0; +} + +.StatusInfo-Content .UrlFragments { + overflow-wrap: anywhere; + text-wrap: wrap; + overflow: visible; +} \ No newline at end of file diff --git a/mods/index.html b/mods/index.html new file mode 100755 index 0000000..2c0d77c --- /dev/null +++ b/mods/index.html @@ -0,0 +1,45 @@ + + + + + + + mods + + + +

mods

+ ..
+[   0 May 17 13:50]  CSS
+[   0 May 27 18:23]  JS
+[4.9K Jul  9 13:27]  custom.css
+[1.5K Mar 23 15:03]  custom.unused.css
+[ 485 Apr 21  1:20]  page-confirm-info-bar.css
+[ 854 Jun  7  2023]  window-panel-tweaks.css
+

+

+

+ +2 directories, 4 files +

+

+ diff --git a/mods/page-confirm-info-bar.css b/mods/page-confirm-info-bar.css new file mode 100755 index 0000000..74c64bb --- /dev/null +++ b/mods/page-confirm-info-bar.css @@ -0,0 +1,25 @@ +.page-confirm-info-bar { + height: 25px; + color: var(--colorFg); + background: var(--colorBg); +} + +.webpageview:has(.page-confirm-info-bar) .webpage { + top: 25px; +} + +.webpageview:has(.page-confirm-info-bar) .find-in-page-wrapper { + top: 25px; + position: relative; +} + +.infobar-controls input[type='button'] { + height: 20px; + color: white; + background: darkred; +} + +.infobar-close svg { + height: 20px !important; + fill: var(--colorFgFadedMost) !important; +} diff --git a/mods/window-panel-tweaks.css b/mods/window-panel-tweaks.css new file mode 100755 index 0000000..85b8073 --- /dev/null +++ b/mods/window-panel-tweaks.css @@ -0,0 +1,29 @@ +/* Vivaldi Window Panel tweaks */ + +/* Background unset for selected item/row */ +/*.vivaldi-tree .tree-item[data-lead], .vivaldi-tree .tree-row[data-selected] {background-color: unset; outline: none !important;}*/ + +/* Padding for active and undread titles */ +/*#window-panel .tree-row .title.active, #window-panel .tree-row .title.unread {padding: 0 5px;}*/ + +/* Active tab */ +#window-panel .tree-row .title.active:before { + content: '\2B24'; + position: absolute; + margin-left: -40px; +} +#window-panel .tree-row .title.active { + background-color: var(--colorAccentBorder); + border-radius: var(--radius); +} + +/* Unread tabs */ +#window-panel .tree-row .title.unread:before { + content: '\25CB'; + position: absolute; + margin-left: -40px; +} +#window-panel .tree-row .title.unread { + background-color: var(--colorHighlightBgAlpha); + border-radius: var(--radius); +} diff --git a/panels/CSS/at.html b/panels/CSS/at.html new file mode 100755 index 0000000..dd70fb8 --- /dev/null +++ b/panels/CSS/at.html @@ -0,0 +1,82 @@ + + + + + + + + CSS - @ Rules + + + + +

@ rules

+ +

Media Queries Rec 2012-06-19

+ + +

Namespaces Module Rec 2011-09-29

+ + +

CSS Level 2 Revision 1 Rec 2011-06-07

+ + +

Conditional Rules Module Level 3 CR 2013-04-04

+ + +

Animations WD 2013-02-19

+ + +

Fonts WD 2013-02-12

+ + +

Counter Styles Level 3 WD 2011-05-24

+ + +

Cascading and Inheritance Level 3 WD 2013-01-03

+ + +

Paged Media Module Level 3 WD 2013-03-14

+ + +

Device Adaptation WD 2011-09-15

+ + +

Filter Effects 1.0 WD 2013-05-23

+ + diff --git a/panels/CSS/index.html b/panels/CSS/index.html new file mode 100755 index 0000000..1f55213 --- /dev/null +++ b/panels/CSS/index.html @@ -0,0 +1,396 @@ + + + + + + + + CSS - Properties + + + + +

CSS Properties

+ + + + + + + + + + +
Legend
CSS Snapshot 2010 Stable Properties
CSS 2.1 Superseded by CSS 3 Rec/CR Module
WDWorking Draft
LCLast Call Working Draft
REC / CR(Candidate) Recommendation
See below the table for the list of included modules
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Properties
alpha-compositingcompWD
align-contentbxalWD
align-contentflexCR
align-itemsbxalWD
align-itemsflexCR
align-selfbxalWD
align-selfflexCR
allcascWD
animationanimWD
animation-delayanimWD
animation-directionanimWD
animation-durationanimWD
animation-fill-modeanimWD
animation-iteration-countanimWD
animation-nameanimWD
animation-play-stateanimWD
animation-timing-functionanimWD
backface-visibilitytrafWD
backgroundbborCR
backgroundc21REC
background-alpha-compositingcompWD
background-attachmentbborCR
background-attachmentc21REC
background-blend-modecompWD
background-clipbborCR
background-colorbborCR
background-colorc21REC
background-imagebborCR
background-imagec21REC
background-originbborCR
background-positionbborCR
background-positionc21REC
background-repeatbborCR
background-repeatc21REC
background-sizebborCR
blend-modecompWD
borderbborCR
borderc21REC
border-collapsec21REC
border-colorbborCR
border-colorc21REC
border-imagebborCR
border-image-outsetbborCR
border-image-repeatbborCR
border-image-slicebborCR
border-image-sourcebborCR
border-image-widthbborCR
border-radiusbborCR
border-spacingc21REC
border-stylebborCR
border-stylec21REC
border-top, border-right, border-bottom, border-leftbborCR
border-top, border-right, border-bottom, border-leftc21REC
border-top-color, border-right-color, border-bottom-color, border-left-colorbborCR
border-top-color, border-right-color, border-bottom-color, border-left-colorc21REC
border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-top-left-radiusbborCR
border-top-style, border-right-style, border-bottom-style, border-left-stylebborCR
border-top-style, border-right-style, border-bottom-style, border-left-stylec21REC
border-top-width, border-right-width, border-bottom-width, border-left-widthbborCR
border-top-width, border-right-width, border-bottom-width, border-left-widthc21REC
border-widthbborCR
border-widthc21REC
bottomc21REC
bottomposlWD
box-decoration-breakbborCR
box-shadowbborCR
box-shadow-blend-modecompWD
box-sizingbauiLC
break-aftermcolCR
break-afterfragWD
break-afterregiWD
break-beforemcolCR
break-beforefragWD
break-beforeregiWD
break-insidemcolCR
break-insidefragWD
break-insideregiWD
caption-sidec21REC
chainstmplWD
clearc21REC
clipc21REC
clipposlWD
clipmaskWD
clip-pathmaskWD
clip-rulemaskWD
colorcolrREC
colorc21REC
color-interpolation-filtersfiltWD
column-countmcolCR
column-fillmcolCR
column-gapmcolCR
column-rulemcolCR
column-rule-colormcolCR
column-rule-stylemcolCR
column-rule-widthmcolCR
column-spanmcolCR
column-widthmcolCR
column-widthsizeWD
columnsmcolCR
contentbauiLC
contentc21REC
counter-incrementc21REC
counter-resetc21REC
cursorbauiLC
cursorc21REC
directionc21REC
directionwmodWD
displaytmplWD
displayflexCR
displaylistWD
displayc21REC
empty-cellsc21REC
enable-backgroundfiltWD
filterfiltWD
flex-basisflexCR
flex-directionflexCR
flex-flowflexCR
flex-growflexCR
flex-shrinkflexCR
flexflexCR
flex-wrapflexCR
floatc21REC
flood-colorfiltWD
flood-opacityfiltWD
flow-fromregiWD
flow-intoregiWD
fontc21REC
fontfontWD
font-familyc21REC
font-familyfontWD
font-feature-settingsfontWD
font-kerningfontWD
font-language-overridefontWD
font-sizec21REC
font-sizefontWD
font-size-adjustfontWD
font-stretchfontWD
font-stylec21REC
font-stylefontWD
font-synthesisfontWD
font-variantc21REC
font-variantfontWD
font-variant-alternatesfontWD
font-variant-capsfontWD
font-variant-east-asianfontWD
font-variant-ligaturesfontWD
font-variant-numericfontWD
font-variant-positionfontWD
font-weightc21REC
font-weightfontWD
grid-aftergridWD
grid-areagridWD
grid-auto-columnsgridWD
grid-auto-flowgridWD
grid-auto-rowsgridWD
grid-beforegridWD
grid-columngridWD
grid-definition-columnsgridWD
grid-definition-rowsgridWD
grid-endgridWD
grid-rowgridWD
grid-startgridWD
grid-templategridWD
hanging-punctuationtextWD
heightc21REC
hyphenstextWD
iconbauiLC
image-orientationimagCR
image-resolutionimagCR
ime-modebauiLC
isolationcompWD
justify-contentflexCR
justify-contentbxalWD
justify-itemsbxalWD
justify-selfbxalWD
knock-outcompWD
leftc21REC
leftposlWD
lighting-colorfiltWD
letter-spacingtextWD
letter-spacingc21REC
line-breaktextWD
line-heightc21REC
list-style-imagelistWD
list-style-imagec21REC
list-style-positionlistWD
list-style-positionc21REC
list-style-typelistWD
list-style-typec21REC
list-stylelistWD
list-stylec21REC
margin-right, margin-leftc21REC
margin-top, margin-bottomc21REC
marginc21REC
marquee-directionmarqCR
marquee-play-countmarqCR
marquee-speedmarqCR
marquee-stylemarqCR
maskmaskWD
mask-box-imagemaskWD
mask-box-image-outsetmaskWD
mask-box-image-repeatmaskWD
mask-box-image-slicemaskWD
mask-box-image-sourcemaskWD
mask-box-image-widthmaskWD
mask-clipmaskWD
mask-imagemaskWD
mask-originmaskWD
mask-positionmaskWD
mask-repeatmaskWD
mask-sizemaskWD
mask-typemaskWD
max-heightc21REC
max-linesoverWD
max-widthc21REC
min-heightc21REC
min-widthc21REC
min-width, min-heightflexCR
min-width, min-heightsizeWD
nav-indexbauiLC
nav-up, nav-right, nav-down, nav-leftbauiLC
object-fitimagCR
object-positionimagCR
opacitycolrREC
orderflexCR
orphansfragWD
orphansc21REC
outlinebauiLC
outlinec21REC
outline-colorbauiLC
outline-colorc21REC
outline-offsetbauiLC
outline-stylebauiLC
outline-stylec21REC
outline-widthbauiLC
outline-widthc21REC
overflow-stylemarqCR
overflow-wraptextWD
overflowc21REC
overflowoverWD
overflow-xoverWD
overflow-yoverWD
padding-top, padding-right, padding-bottom, padding-leftc21REC
paddingc21REC
pagepmedWD
page-break-afterc21REC
page-break-beforec21REC
page-break-insidec21REC
perspectivetrafWD
perspective-origintrafWD
positiontmplWD
positionc21REC
positionposlWD
presentation-levelpresWD
quotesc21REC
region-fragmentregiWD
resizebauiLC
rightc21REC
rightposlWD
shape-image-thresholdexshWD
shape-insideexshWD
shape-marginexshWD
shape-outsideexshWD
shape-paddingexshWD
sizepmedWD
tab-sizetextWD
table-layoutc21REC
text-align-lasttextWD
text-aligntextWD
text-alignc21REC
text-blend-modecompWD
text-combine-horizontalwmodWD
text-decorationc21REC
text-decorationtdecLC
text-decoration-colortdecLC
text-decoration-linetdecLC
text-decoration-skiptdecLC
text-decoration-styletdecLC
text-emphasistdecLC
text-emphasis-colortdecLC
text-emphasis-positiontdecLC
text-emphasis-styletdecLC
text-indenttextWD
text-indentc21REC
text-justifytextWD
text-orientationwmodWD
text-overflowtextWD
text-shadowtdecLC
text-shadow-blend-modecompWD
text-transformtextWD
text-transformc21REC
text-underline-positiontdecLC
transformtrafWD
transform-origintrafWD
transform-styletrafWD
transitiontranWD
transition-delaytranWD
transition-durationtranWD
transition-propertytranWD
transition-timing-functiontranWD
topc21REC
topposlWD
unicode-bidic21REC
unicode-bidiwmodWD
var-*variWD
vertical-alignc21REC
visibilityc21REC
white-spacetextWD
white-spacec21REC
widowsfragWD
widowsc21REC
widthc21REC
width, min-width, max-width, height, min-height, max-heightsizeWD
word-breaktextWD
word-spacingtextWD
word-spacingc21REC
word-wraptextWD
wrap-flowexclWD
wrap-throughexclWD
writing-modewmodWD
z-indexc21REC
z-indexposlWD
+ +

Modules included in the properties index

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
stability: completed +
Colorcolr
CSS 2.1c21
stability: testing +
Backgrounds and Bordersbbor
Image Values and Replaced Contentimag
Marqueemarq
Multi-column Layoutmcol
Flexible Box Layoutflex
stability: refining +
Animationsanim
Fontsfont
Texttext
Fragmentationfrag
Text Decorationtdec
Transformstraf
Transitionstran
Writing Modeswmod
stability: revising +
Cascading and Inheritancecasc
Paged Mediapmed
Basic User Interfacebaui
stability: exploring +
Box Alignmentbxal
Compositing and Blendingcomp
Exclusionsexcl
Exclusions and Shapesexsh
Filter Effectsfilt
Grid Layoutgrid
Template Layouttmpl
Intrinsic & Extrinsic Sizingsize
Listslist
Positioned Layoutposl
Presentation Levelspres
Regionsregi
Maskingmask
Overflowover
diff --git a/panels/CSS/prop-interactive.html b/panels/CSS/prop-interactive.html new file mode 100755 index 0000000..fb925a3 --- /dev/null +++ b/panels/CSS/prop-interactive.html @@ -0,0 +1,59 @@ + + + + + + + + CSS - Interactive Properties + + + + +

Properties for Interactive media

+ +

Flexible Box Layout Module CR 2012-09-18

+ + +

CSS Level 2 Revision 1 Rec 2011-06-07

+ + +

Basic User Interface Module Level 3 WD 2012-01-17

+ +

Note: the outline properties are also defined in this module, but not considered to be interactive anymore.

+ +

Transitions WD 2013-02-12

+ + +

Lists and Counters Module Level 3 WD 2011-05-24

+ diff --git a/panels/CSS/prop-paged.html b/panels/CSS/prop-paged.html new file mode 100755 index 0000000..92ad9cd --- /dev/null +++ b/panels/CSS/prop-paged.html @@ -0,0 +1,48 @@ + + + + + + + + CSS - Paged Media Properties + + + + +

Properties for Paged media

+ +

Multi-column Layout Module CR 2011-04-12

+ + +

CSS Level 2 Revision 1 Rec 2011-06-07

+ + +

Paged Media Module Level 3 WD 2013-03-14

+ diff --git a/panels/CSS/prop-speech.html b/panels/CSS/prop-speech.html new file mode 100755 index 0000000..8171994 --- /dev/null +++ b/panels/CSS/prop-speech.html @@ -0,0 +1,66 @@ + + + + + + + + CSS - Speech Properties + + + + +

Properties for Speech media

+ +

Speech Module CR 2012-03-20

+ + +

Note: CSS 3 defines properties for the 'speech' media type. The aural properties in CSS 2.1 are defined for the 'aural' media type, but that type is also deprecated in that specification. + +

CSS Level 2 Revision 1 Rec 2011-06-07

+ diff --git a/panels/CSS/prop-visual.html b/panels/CSS/prop-visual.html new file mode 100755 index 0000000..ad3be7c --- /dev/null +++ b/panels/CSS/prop-visual.html @@ -0,0 +1,458 @@ + + + + + + + + CSS - Visual Properties + + + + +

Properties for Visual and All media

+ +

Color Module Level 3 Rec 2011-06-07

+ + +

Backgrounds and Borders Module Level 3 CR 2012-07-24

+ + +

Image Values and Replaced Content Module Level 3 CR 2012-04-17

+ + +

Marquee Module Level 3 CR 2008-12-05

+ + +

Multi-column Layout Module CR 2011-04-12

+ + +

Flexible Box Layout Module CR 2012-09-18

+ + +

CSS Level 2 Revision 1 Rec 2011-06-07

+ + +

Animations WD 2013-02-19

+ + +

Fonts Module Level 3 WD 2013-02-12

+ + +

Counter Styles Level 3 WD 2013-02-13

+ + +

Text Module Level 3 WD 2012-11-13

+ + +

Fragmentation Module Level 3 WD 2012-08-23

+ + +

Text Decoration Module Level 3 WD 2013-01-032

+ + +

Transforms WD 2012-09-11

+ + +

Transitions WD 2013-02-12

+ + +

Writing Modes Module Level 3 WD 2012-11-15

+ + +

Cascading and Inheritance Level 3 WD 2013-01-03

+ + +

Basic User Interface Module Level 3 WD 2012-01-17

+ + +

Box Alignment Module Level 3 WD 2013-05-13

+ + +

Compositing and Blending 1.0 WD 2012-08-16

+ + +

Exclusions Module Level 1 WD 2013-05-28

+ + +

Exclusions and Shapes Module Level 3 WD 2012-05-03

+ + +

Filter Effects 1.0 WD 2013-05-23

+ + +

Grid Layout WD 2013-04-02

+ + +

Template Layout Module WD 2011-11-29

+ + +

Intrinsic & Extrinsic Sizing Module Level 3 WD 2012-09-27

+ + +

Lists and Counters Module Level 3 WD 2011-05-24

+ + +

Positioned Layout Module Level 3 WD 2012-02-07

+ + +

Presentation Levels Module WD 2003-08-13

+ + +

Regions Module Level 3 WD 2013-05-28

+ + +

Masking WD 2012-11-15

+ + + +

Overflow Module Level 3 WD 2013-04-18

+ + diff --git a/panels/CSS/sel.html b/panels/CSS/sel.html new file mode 100755 index 0000000..154f4e1 --- /dev/null +++ b/panels/CSS/sel.html @@ -0,0 +1,127 @@ + + + + + + + CSS - Selectors + + + + +

Selectors

+ +

Selectors Level 3 Rec 2011-09-29

+ +

Simple selectors

+ + +

Pseudo-classes

+ + +

Pseudo-elements

+ + +

Combinators

+ + +

Paged Media Module Level 3 WD 2013-03-14

+

Page selector pseudo-classes

+ + +

Basic User Interface Module Level 3 WD 2012-01-17

+ +

User interface states: pseudo-classes

+ + +

User interface states: pseudo-elements

+ + +

Template Layout Module WD 2011-11-29

+

Pseudo-element

+ + +

Selectors Level 4 WD 2013-05-02

+

Listing only the additions and extensions to Selectors 3

+ + +

Overflow Module Level 3 WD 2013-04-18

+

Pseudo-element

+ + +

Regions Module Level 3 WD 2013-05-28

+

Pseudo-element

+ diff --git a/panels/CSS/toc.html b/panels/CSS/toc.html new file mode 100755 index 0000000..81b6a37 --- /dev/null +++ b/panels/CSS/toc.html @@ -0,0 +1,1435 @@ + + + + + + + + CSS - TOCs + + + + + + + +

Contents

+ +

Stable specs: CSS Snapshot 2010 2011-05-12

+ + + +

Work in Progress

+ + + +

Testing

+ + + +

Refining

+ + + +

Revising

+ + + +

Exploring

+ + + +

Rewriting

+ + + +

Abandoned

+ + + +

Related

+ + + +

Other

+ + diff --git a/panels/CSS/val.html b/panels/CSS/val.html new file mode 100755 index 0000000..70332dd --- /dev/null +++ b/panels/CSS/val.html @@ -0,0 +1,160 @@ + + + + + + + + CSS - Values + + + + +

Value Types and Units

+ +

Media Queries Rec 2012-06-19

+ + +

Color Module Level 3 Rec 2011-06-07

+ + +

Backgrounds and Borders Module Level 3 CR 2012-07-24

+ + +

Image Values and Replaced Content Module Level 3 CR 2012-04-17

+ + +

Functional notation

+ + +

Other Units

+ + +

Speech Module CR 2012-03-20

+ +

Other Units

+ + +

Values and Units Module Level 3 CR 2013-04-04

+ +

Textual Data Types

+ + +

Numeric Data Types

+ + +

Distance Units: <length>

+ + +

Other Units

+ + + +

Defined elsewhere

+ + +

Functional notation

+ + +

Custom Properties for Cascading Variables Module Level 1 WD 2013-03-12

+ + +

Cascading and Inheritance Level 3 WD 2013-01-03

+ + +

Template Layout Module WD 2011-11-29

+ + +

CSS 2.1 Rec 2011-06-07

+ diff --git a/panels/HTML/attributes.html b/panels/HTML/attributes.html new file mode 100755 index 0000000..4d1c809 --- /dev/null +++ b/panels/HTML/attributes.html @@ -0,0 +1,785 @@ + + + + + + HTML - Attributes + + + + + + +

HTML Attributes

+ +
Attribute + Element(s) + Description + Value +
abbr + th + Alternative label to use for the header cell when referencing the cell in other contexts + Text* +
accept + input + Hint for expected file type in file upload controls + Set of comma-separated tokens* consisting of valid MIME types with no parameters or audio/*, video/*, or image/* +
accept-charset + form + Character encodings to use for form submission + Ordered set of unique space-separated tokens, ASCII case-insensitive, consisting of names of ASCII-compatible character encodings* +
accesskey + HTML elements + Keyboard shortcut to activate or focus element + Ordered set of unique space-separated tokens, case-sensitive, consisting of one Unicode code point in length +
action + form + URL to use for form submission + Valid non-empty URL potentially surrounded by spaces +
allowfullscreen + iframe + Whether to allow the iframe's contents to use requestFullscreen() + Boolean attribute +
alt + area; + img; + input + Replacement text for use when images are not available + Text* +
async + script + Execute script asynchronously + Boolean attribute +
autocomplete + form + Default setting for autofill feature for controls in the form + "on"; "off" +
autocomplete + input; + select; + textarea + Hint for form autofill feature + Autofill field name and related tokens* +
autofocus + button; + input; + keygen; + select; + textarea + Automatically focus the form control when the page is loaded + Boolean attribute +
autoplay + audio; + video + Hint that the media resource can be started automatically when the page is loaded + Boolean attribute +
challenge + keygen + String to package with the generated and signed public key + Text +
charset + meta + Character encoding declaration + Encoding name* +
charset + script + Character encoding of the external script resource + Encoding name* +
checked + menuitem; + input + Whether the command or control is checked + Boolean attribute +
cite + blockquote; + del; + ins; + q + Link to the source of the quotation or more information about the edit + Valid URL potentially surrounded by spaces +
class + HTML elements + Classes to which the element belongs + Set of space-separated tokens +
cols + textarea + Maximum number of characters per line + Valid non-negative integer greater than zero +
colspan + td; + th + Number of columns that the cell is to span + Valid non-negative integer greater than zero +
command + menuitem + Command definition + ID* +
content + meta + Value of the element + Text* +
contenteditable + HTML elements + Whether the element is editable + "true"; "false" +
contextmenu + HTML elements + The element's context menu + ID* +
controls + audio; + video + Show user agent controls + Boolean attribute +
coords + area + Coordinates for the shape to be created in an image map + Valid list of integers* +
crossorigin + audio; + img; + link; + script; + video + How the element handles crossorigin requests + "anonymous"; "use-credentials" +
data + object + Address of the resource + Valid non-empty URL potentially surrounded by spaces +
datetime + del; + ins + Date and (optionally) time of the change + Valid date string with optional time +
datetime + time + Machine-readable value + Valid month string, + valid date string, + valid yearless date string, + valid time string, + valid local date and time string, + valid time-zone offset string, + valid global date and time string, + valid week string, + valid non-negative integer, or + valid duration string +
default + track + Enable the track if no other text track is more suitable + Boolean attribute +
defer + script + Defer script execution + Boolean attribute +
dir + HTML elements + The text directionality of the element + "ltr"; "rtl"; "auto" +
dirname + input; + textarea + Name of form field to use for sending the element's directionality in form submission + Text* +
disabled + button; + menuitem; + fieldset; + input; + keygen; + optgroup; + option; + select; + textarea + Whether the form control is disabled + Boolean attribute +
download + a; + area + Whether to download the resource instead of navigating to it, and its file name if so + Text +
draggable + HTML elements + Whether the element is draggable + "true"; "false" +
dropzone + HTML elements + Accepted item types for drag-and-drop + Unordered set of unique space-separated tokens, ASCII case-insensitive, consisting of accepted types and drag feedback* +
enctype + form + Form data set encoding type to use for form submission + "application/x-www-form-urlencoded"; "multipart/form-data"; "text/plain" +
for + label + Associate the label with form control + ID* +
for + output + Specifies controls from which the output was calculated + Unordered set of unique space-separated tokens, case-sensitive, consisting of IDs* +
form + button; + fieldset; + input; + keygen; + label; + object; + output; + select; + textarea + Associates the control with a form element + ID* +
formaction + button; + input + URL to use for form submission + Valid non-empty URL potentially surrounded by spaces +
formenctype + button; + input + Form data set encoding type to use for form submission + "application/x-www-form-urlencoded"; "multipart/form-data"; "text/plain" +
formmethod + button; + input + HTTP method to use for form submission + "GET"; "POST" +
formnovalidate + button; + input + Bypass form control validation for form submission + Boolean attribute +
formtarget + button; + input + Browsing context for form submission + Valid browsing context name or keyword +
headers + td; + th + The header cells for this cell + Unordered set of unique space-separated tokens, case-sensitive, consisting of IDs* +
height + canvas; + embed; + iframe; + img; + input; + object; + video + Vertical dimension + Valid non-negative integer +
hidden + HTML elements + Whether the element is relevant + Boolean attribute +
high + meter + Low limit of high range + Valid floating-point number* +
href + a; + area + Address of the hyperlink + Valid URL potentially surrounded by spaces +
href + link + Address of the hyperlink + Valid non-empty URL potentially surrounded by spaces +
href + base + Document base URL + Valid URL potentially surrounded by spaces +
hreflang + a; + area; + link + Language of the linked resource + Valid BCP 47 language tag +
http-equiv + meta + Pragma directive + Text* +
icon + menuitem + Icon for the command + Valid non-empty URL potentially surrounded by spaces +
id + HTML elements + The element's ID + Text* +
inert + HTML elements + Whether the element is inert + Boolean attribute +
inputmode + input; + textarea + Hint for selecting an input modality + verbatim; + latin; + latin-name; + latin-prose; + full-width-latin; + kana; + katakana; + + numeric; + tel; + email; + url +
ismap + img + Whether the image is a server-side image map + Boolean attribute +
itemid + HTML elements + Global identifier for a microdata item + Valid URL potentially surrounded by spaces +
itemprop + HTML elements + Property names of a microdata item + Unordered set of unique space-separated tokens, case-sensitive, consisting of valid absolute URLs, defined property names, or text* +
itemref + HTML elements + Referenced elements + Unordered set of unique space-separated tokens, case-sensitive, consisting of IDs* +
itemscope + HTML elements + Introduces a microdata item + Boolean attribute +
itemtype + HTML elements + Item types of a microdata item + Unordered set of unique space-separated tokens, case-sensitive, consisting of valid absolute URL* +
keytype + keygen + The type of cryptographic key to generate + Text* +
kind + track + The type of text track + "subtitles"; + "captions"; + "descriptions"; + "chapters"; + "metadata" +
label + menuitem; + menu; + optgroup; + option; + track + User-visible label + Text +
lang + HTML elements + Language of the element + Valid BCP 47 language tag or the empty string +
list + input + List of autocomplete options + ID* +
loop + audio; + video + Whether to loop the media resource + Boolean attribute +
low + meter + High limit of low range + Valid floating-point number* +
manifest + html + Application cache manifest + Valid non-empty URL potentially surrounded by spaces +
max + input + Maximum value + Varies* +
max + meter; + progress + Upper bound of range + Valid floating-point number* +
maxlength + input; + textarea + Maximum length of value + Valid non-negative integer +
media + link; + source; + style + Applicable media + Valid media query +
mediagroup + audio; + video + Groups media elements together with an implicit MediaController + Text +
method + form + HTTP method to use for form submission + "GET"; + "POST"; + "dialog" +
min + input + Minimum value + Varies* +
min + meter + Lower bound of range + Valid floating-point number* +
multiple + input; + select + Whether to allow multiple values + Boolean attribute +
muted + audio; + video + Whether to mute the media resource by default + Boolean attribute +
name + button; + fieldset; + input; + keygen; + output; + select; + textarea + Name of form control to use for form submission and in the form.elements API + Text* +
name + form + Name of form to use in the document.forms API + Text* +
name + iframe; + object + Name of nested browsing context + Valid browsing context name or keyword +
name + map + Name of image map to reference from the usemap attribute + Text* +
name + meta + Metadata name + Text* +
name + param + Name of parameter + Text +
novalidate + form + Bypass form control validation for form submission + Boolean attribute +
open + details + Whether the details are visible + Boolean attribute +
open + dialog + Whether the dialog box is showing + Boolean attribute +
optimum + meter + Optimum value in gauge + Valid floating-point number* +
pattern + input + Pattern to be matched by the form control's value + Regular expression matching the JavaScript Pattern production +
ping + a; + area + URLs to ping + Set of space-separated tokens consisting of valid non-empty URLs +
placeholder + input; + textarea + User-visible label to be placed within the form control + Text* +
poster + video + Poster frame to show prior to video playback + Valid non-empty URL potentially surrounded by spaces +
preload + audio; + video + Hints how much buffering the media resource will likely need + "none"; + "metadata"; + "auto" +
radiogroup + menuitem + Name of group of commands to treat as a radio button group + Text +
readonly + input; + textarea + Whether to allow the value to be edited by the user + Boolean attribute +
rel + a; + area; + link + Relationship between the document containing the hyperlink and the destination resource + Set of space-separated tokens* +
required + input; + select; + textarea + Whether the control is required for form submission + Boolean attribute +
reversed + ol + Number the list backwards + Boolean attribute +
rows + textarea + Number of lines to show + Valid non-negative integer greater than zero +
rowspan + td; + th + Number of rows that the cell is to span + Valid non-negative integer +
sandbox + iframe + Security rules for nested content + Unordered set of unique space-separated tokens, ASCII case-insensitive, consisting of + "allow-forms", + "allow-pointer-lock", + "allow-popups", + "allow-same-origin", + "allow-scripts and + "allow-top-navigation" +
spellcheck + HTML elements + Whether the element is to have its spelling and grammar checked + "true"; "false" +
scope + th + Specifies which cells the header cell applies to + "row"; + "col"; + "rowgroup"; + "colgroup" +
scoped + style + Whether the styles apply to the entire document or just the parent subtree + Boolean attribute +
seamless + iframe + Whether to apply the document's styles to the nested content + Boolean attribute +
selected + option + Whether the option is selected by default + Boolean attribute +
shape + area + The kind of shape to be created in an image map + "circle"; + "default"; + "poly"; + "rect" +
size + input; + select + Size of the control + Valid non-negative integer greater than zero +
sizes + link + Sizes of the icons (for rel="icon") + Unordered set of unique space-separated tokens, ASCII case-insensitive, consisting of sizes* +
span + col; + colgroup + Number of columns spanned by the element + Valid non-negative integer greater than zero +
src + audio; + embed; + iframe; + img; + input; + script; + source; + track; + video + Address of the resource + Valid non-empty URL potentially surrounded by spaces +
srcdoc + iframe + A document to render in the iframe + The source of an iframe srcdoc document* +
srclang + track + Language of the text track + Valid BCP 47 language tag +
srcset + img + Images to use in different situations (e.g. high-resolution displays, small monitors, etc) + Comma-separated list of image candidate strings +
start + ol + Ordinal value of the first item + Valid integer +
step + input + Granularity to be matched by the form control's value + Valid floating-point number greater than zero, or "any" +
style + HTML elements + Presentational and formatting instructions + CSS declarations* +
tabindex + HTML elements + Whether the element is focusable, and the relative order of the element for the purposes of sequential focus navigation + Valid integer +
target + a; + area + Browsing context for hyperlink navigation + Valid browsing context name or keyword +
target + base + Default browsing context for hyperlink navigation and form submission + Valid browsing context name or keyword +
target + form + Browsing context for form submission + Valid browsing context name or keyword +
title + HTML elements + Advisory information for the element + Text +
title + abbr; + dfn + Full term or expansion of abbreviation + Text +
title + menuitem + Hint describing the command + Text +
title + link + Title of the link + Text +
title + link; + style + Alternative style sheet set name + Text +
translate + HTML elements + Whether the element is to be translated when the page is localized + "yes"; "no" +
type + a; + area; + link + Hint for the type of the referenced resource + Valid MIME type +
type + button + Type of button + "submit"; + "reset"; + "button"; + "menu" +
type + embed; + object; + script; + source; + style + Type of embedded resource + Valid MIME type +
type + input + Type of form control + input type keyword +
type + menu + Type of menu + "popup"; "toolbar" +
type + menuitem + Type of command + "command"; + "checkbox"; + "radio" +
type + ol + Kind of list marker + "1"; + "a"; + "A"; + "i"; + "I" +
typemustmatch + object + Whether the type attribute and the Content-Type value need to match for the resource to be used + Boolean attribute +
usemap + img; + object + Name of image map to use + Valid hash-name reference* +
value + button; + option + Value to be used for form submission + Text +
value + data + Machine-readable value + Text* +
value + input + Value of the form control + Varies* +
value + li + Ordinal value of the list item + Valid integer +
value + meter; + progress + Current value of the element + Valid floating-point number +
value + param + Value of parameter + Text +
width + canvas; + embed; + iframe; + img; + input; + object; + video + Horizontal dimension + Valid non-negative integer +
wrap + textarea + How the value of the form control is to be wrapped for form submission + "soft"; + "hard" +
+

Event handler content attributes not included.
+An asterisk (*) in a cell indicates that the actual rules are more complicated than indicated in the table above.

diff --git a/panels/HTML/categories.html b/panels/HTML/categories.html new file mode 100755 index 0000000..4883d22 --- /dev/null +++ b/panels/HTML/categories.html @@ -0,0 +1,358 @@ + + + + + + HTML - Categories + + + + + + +

HTML Element Content Categories

+ + +
Category + Elements +
Metadata content + + base + link + meta + noscript + script + style + title +
Flow content + + a + abbr + address + article + aside + audio + b + bdi + bdo + blockquote + br + button + canvas + cite + code + data + datalist + del + details + dfn + dialog + div + dl + em + embed + fieldset + figure + footer + form + h1 + h2 + h3 + h4 + h5 + h6 + header + hgroup + hr + i + iframe + img + input + ins + kbd + keygen + label + main + map + mark + math + menu + meter + nav + noscript + object + ol + output + p + pre + progress + q + ruby + s + samp + script + section + select + small + span + strong + sub + sup + svg + table + textarea + time + u + ul + var + video + wbr + Text +
+ area + link + meta + style +
Sectioning content + + article + aside + nav + section +
Heading content + + h1 + h2 + h3 + h4 + h5 + h6 + hgroup +
Phrasing content + + a + abbr + audio + b + bdi + bdo + br + button + canvas + cite + code + data + datalist + del + dfn + em + embed + i + iframe + img + input + ins + kbd + keygen + label + map + mark + math + meter + noscript + object + output + progress + q + ruby + s + samp + script + select + small + span + strong + sub + sup + svg + textarea + time + u + var + video + wbr + Text +
+ area + link + meta + +
Embedded content + + audio + canvas + embed + iframe + img + math + object + svg + video +
Interactive content + + a + button + details + embed + iframe + keygen + label + select + textarea +
+ audio + img + input + object + video + +
Sectioning roots + + blockquote + body + details + dialog + fieldset + figure + td +
Form-associated elements + + button + fieldset + input + keygen + label + object + output + select + textarea +
Listed elements + + button + fieldset + input + keygen + object + output + select + textarea +
Submittable elements + + button + input + keygen + object + select + textarea +
Resettable elements + + input + keygen + output + select + textarea +
Labelable elements + + button + input + keygen + meter + output + progress + select + textarea +
Palpable content + + a + abbr + address + article + aside + b + bdi + bdo + blockquote + button + canvas + cite + code + data + details + dfn + div + em + embed + fieldset + figure + footer + form + h1 + h2 + h3 + h4 + h5 + h6 + header + hgroup + i + iframe + img + ins + kbd + keygen + label + main + map + mark + math + meter + nav + object + output + p + pre + progress + q + ruby + s + samp + section + select + small + span + strong + sub + sup + svg + table + textarea + time + u + var + video +
+ audio + dl + input + menu + ol + ul + Text + +
diff --git a/panels/HTML/index.html b/panels/HTML/index.html new file mode 100755 index 0000000..4ca2cdf --- /dev/null +++ b/panels/HTML/index.html @@ -0,0 +1,132 @@ + + + + + + HTML - Elements + + + + + + +

HTML Elements

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ElementDescriptionAttributes
aHyperlinkhref; target; download; ping; rel; hreflang; type
abbrAbbreviation
addressContact information for a page or article element
areaHyperlink or dead area on an image mapalt; coords; shape; href; target; download; ping; rel; hreflang; type
articleSelf-contained syndicatable or reusable composition
asideSidebar for tangentially related content
audioAudio playercrossorigin; preload; autoplay; mediagroup; loop; muted; controls
bKeywords
baseBase URL and default target browsing context for hyperlinks and forms
bdiText directionality isolation
bdoText directionality formatting
blockquoteA section quoted from another source
bodyDocument bodyonafterprint; onbeforeprint; onbeforeunload; onfullscreenchange; onfullscreenerror; onhashchange; onmessage; onoffline; ononline; onpagehide; onpageshow; onpopstate; onresize; onstorage; onunload
brLine break, e.g. in poem or postal address
buttonButton controlautofocus; disabled; form; formaction; formenctype; formmethod; formnovalidate; formtarget; name; type; value
canvasScriptable bitmap canvaswidth; height
captionTable caption
citeTitle of a work
codeComputer code
colTable columnspan
colgroupGroup of columns in a tablespan
menuitemMenu commandtype; label; icon; disabled; checked; radiogroup; command
dataMachine-readable equivalentvalue
datalistContainer for options for combo box control
ddContent for corresponding dt element(s)
delA removal from the documentcite; datetime
detailsDisclosure control for hiding detailscode title="attr-details-open">open
dfnDefining instance
dialogDialog box or windowopen
divGeneric flow container
dlAssociation list consisting of zero or more name-value groups
dtLegend for corresponding dd element(s)
emStress emphasis
embedPluginsrc; type; width; height; any*
fieldsetGroup of form controlsdisabled; form; name
figcaptionCaption for figure
figureFigure with optional caption
footerFooter for a page or section
formUser-submittable formaccept-charset; action; autocomplete; enctype; method; name; novalidate; target
h1, h2, h3, h4, h5, h6Section heading
headContainer for document metadata
headerIntroductory or navigational aids for a page or section
hgroupHeading group
hrThematic break
htmlRoot elementmanifest
iAlternate voice
iframeNested browsing contextsrc; srcdoc; name; sandbox; seamless; allowfullscreen; width; height
imgImagealt; src; srcset; crossorigin; usemap; ismap; width; height
inputForm controlaccept; alt; autocomplete; autofocus; checked; dirname; disabled; form; formaction; formenctype; formmethod; formnovalidate; formtarget; height; list; max; maxlength; min; multiple; name; pattern; placeholder; readonly; required; size; src; step; type; value; width
insAn addition to the documentcite; datetime
kbdUser input
keygenCryptographic key-pair generator form controlautofocus; challenge; disabled; form; keytype; name
labelCaption for a form controlform; for
legendCaption for fieldset
liList itemvalue*
linkLink metadatahref; crossorigin; rel; media; hreflang; type; sizes
mainContainer for the dominant contents of another element
mapImage mapname
markHighlight
menuMenu of commandstype; label
metaText metadataname; http-equiv; content; charset
meterGaugevalue; min; max; low; high; optimum
navSection with navigational links
noscriptFallback content for script
objectImage, nested browsing context, or plugindata; type; typemustmatch; name; usemap; form; width; height
olOrdered listreversed; start; type
optgroupGroup of options in a list boxdisabled; label
optionOption in a list box or combo box controldisabled; label; selected; value
outputCalculated output valuefor; form; name
pParagraph
paramParameter for objectname; value
preBlock of preformatted text
progressProgress barvalue; max
qQuotationcite
rpParenthesis for ruby annotation text
rtRuby annotation text
rubyRuby annotation(s)
sInaccurate text
sampComputer output
scriptEmbedded scriptsrc; type; charset; async; defer; crossorigin
sectionGeneric document or application section
selectList box controlautofocus; disabled; form; multiple; name; required; size
smallSide comment
sourceMedia source for video or audiosrc; type; media
spanGeneric phrasing container
strongImportance
styleEmbedded styling informationmedia; type; scoped
subSubscript
summaryCaption for details
supSuperscript
tableTable
tbodyGroup of rows in a table
tdTable cellcolspan; rowspan; headers
textareaMultiline text fieldautofocus; cols; dirname; disabled; form; maxlength; name; placeholder; readonly; required; rows; wrap
tfootGroup of footer rows in a table
thTable header cellcolspan; rowspan; headers; scope; abbr
theadGroup of heading rows in a table
timeMachine-readable equivalent of date- or time-related datadatetime
titleDocument title
trTable row
trackTimed text trackdefault; kind; label; src; srclang
uKeywords
ulList
varVariable
videoVideo playersrc; crossorigin; poster; preload; autoplay; mediagroup; loop; muted; controls; width; height
wbrLine breaking opportunity
+

An asterisk (*) in a cell indicates that the actual rules are more complicated than indicated in the table above.

diff --git a/panels/HTTP/index.html b/panels/HTTP/index.html new file mode 100755 index 0000000..bcb1dc9 --- /dev/null +++ b/panels/HTTP/index.html @@ -0,0 +1,69 @@ + + + + + + + HTTP/1.1 Headers + + + + + +

HTTP/1.1 Request Headers

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTTP headerQuick definitionAgent
Acceptmedia types handled by clientClient
Accept-Charsetcharsets understood by clientClient
Accept-Encodingencodings understood by clientClient
Accept-Languagelanguages understood by client (or ideally by user)Client
Accept-Rangeswhether server understands range requests (and what type)Server
Agehow long the content has been cachedCache
Allowmethods supported for that URLServer
Authori­zationHTTP authen­tication user name and passwordClient
Cache-Controlvarious sub-fields indicating if the file can be cachedServer
ConnectionTo distinguish persistent and close-able connectionsClient, Server
Content-EncodingEncodings used - for example gzip compressionServer
Content-LanguageLanguage of pageServer
Content-LengthSize of what is being sent from server or POSTed by UAClient, Server
Content-LocationThe "real" URL of a pageServer
Content-MD5MD5 hash for integrity check of the entity-bodyClient, Server
Content-RangeWhat part of the document is being sentServer
Content-TypeWhat type of file is sentServer
DateCurrent dateServer
ETagShort "signature" of that version of a file, can be used to check if it is updatedServer
ExpectClient asks for specific server behaviourClient
Expireshow long the content may be cachedServer
FromE-mail of user visiting site (anyone actually using this??)Client
HostDomain name of server one is requesting page fromClient
If-MatchIf page still matches previously received ETag "signature"Client
If-Modified-SinceIf page has been changed since a certain dateClient
If-None-MatchIf page does not match previously received ETag "signature"Client
If-RangeRequest only part of a file if it isn't updatedClient
If-Unmod­ified-SinceIf page hasn't been changed since a certain dateClient
Last-ModifiedDate of last time the file was changedServer
LocationSend the request to another placeServer
Max-ForwardsLimit the number of proxy servers that may process the requestClient
PragmaGeneral "whatever" tag, like HTML's METAClient, Server, Cache
Proxy-Authen­ticateRequest proxy user name and passwordProxy
Proxy-Authori­zationSend proxy user name and passwordClient
RangeRequest only part of a fileClient
RefererURL of page with a link that took you to the currentClient
Retry-AfterUsed with error messages to indicate when service may be available againServer
ServerName of server softwareServer
TEAcceptable transfer-codingsClient
TrailerUsed with transfer-coding to show what HTTP headers are available in "trailer" of messageServer
Transfer-EncodingType of transformation used between sender and recipientServer
UpgradeClient indicates that it supports other protocols/versions than HTTP/1.1Client
User-AgentName of UA softwareClient
VaryFor content-negotiation, shows criteria used for selecting that contentServer
ViaProxy servers note that they've been involved in transferring this contentProxy
WarningHuman- or proxy-readable message about the state of the contentsServer
WWW-Authen­ticateRequest user name and passwordServer
+ +
Modified from Hallvord's original cheatsheet for the HTTP 1.1 specification
diff --git a/panels/HTTP/methods.html b/panels/HTTP/methods.html new file mode 100755 index 0000000..146e8b3 --- /dev/null +++ b/panels/HTTP/methods.html @@ -0,0 +1,52 @@ + + + + + + + HTTP/1.1 Methods + + + + + +

HTTP/1.1 Request Methods

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MethodDescription
OPTIONSAllows client to determine options and/or requirements for a resource
GETRetrieve information identified by Request-URI
HEADSame as GET, but doesn't return body
POSTRequest server accept enclosed entity as a new subordinate of the resource identified by Request-URI
PUTRequests the enclosed entity be stored under the Request-URI
DELETERequests server delete resource identified by Request-URI
TRACEInvokes a remote, application-layer loopback of the request message
CONNECTReserved for use with proxies that can dynamically switch to being a tunnel
diff --git a/panels/HTTP/responses.html b/panels/HTTP/responses.html new file mode 100755 index 0000000..bc7a3e2 --- /dev/null +++ b/panels/HTTP/responses.html @@ -0,0 +1,180 @@ + + + + + + + HTTP/1.1 Responses + + + + + +

HTTP/1.1 Response Codes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CodeName
100Continue
101Switching Protocols
200OK
201Created
202Accepted
203Non-Authoritative Information
204No Content
205Reset Content
206Partial Content
300Multiple Choices
301Moved Permanently
302Found
303See Other
304Not Modified
305Use Proxy
307Temporary Redirect
400Bad Request
401Unauthorized
402Payment Required
403Forbidden
404Not Found
405Method Not Allowed
406Not Acceptable
407Proxy Authentication Required
408Request Time-out
409Conflict
410Gone
411Length Required
412Precondition Failed
413Request Entity Too Large
414Request-URI Too Large
415Unsupported Media Type
416Requested range not satisfied
417Expectation Failed
500Internal Server Error
501Not Implemented
502Bad Gateway
503Service Unavailable
504Gateway Time-out
505HTTP Version not supported
diff --git a/panels/HTTP/toc.html b/panels/HTTP/toc.html new file mode 100755 index 0000000..f0dd216 --- /dev/null +++ b/panels/HTTP/toc.html @@ -0,0 +1,44 @@ + + + + + + + HTTP/1.1 RFC + + + + + +

HTTP/1.1 RFC Table of Contents

+ + + +
    +
  1. Introduction
  2. +
  3. Notational Conventions and Generic Grammar
  4. +
  5. Protocol Parameters
  6. +
  7. HTTP Message
  8. +
  9. Request
  10. +
  11. Response
  12. +
  13. Entity
  14. +
  15. Connections
  16. +
  17. Method Definitions
  18. +
  19. Status Code Definitions
  20. +
  21. Access Authentication
  22. +
  23. Content Negotiation
  24. +
  25. Caching in HTTP
  26. +
  27. Header Field Definitions
  28. +
  29. Security Considerations
  30. +
  31. Acknowledgments
  32. +
  33. References
  34. +
  35. Authors' Addresses
  36. +
  37. Appendices
  38. +
  39. Index
  40. +
  41. Full Copyright Statement
  42. +
diff --git a/panels/JS/index.html b/panels/JS/index.html new file mode 100755 index 0000000..3a25b2b --- /dev/null +++ b/panels/JS/index.html @@ -0,0 +1,343 @@ + + + + + + + JavaScript Guide + + + + + + + + +

JavaScript Guide

+ + diff --git a/panels/html-chars.css b/panels/html-chars.css new file mode 100755 index 0000000..51c0743 --- /dev/null +++ b/panels/html-chars.css @@ -0,0 +1,18 @@ + +body { color: white; background-color: black; } +h1,body,html { margin-top: none; padding-top: none; } + +a { color: skyblue; } +td { font-size: 90%; text-align: center; } +td.right { text-align: right; } +td.dark { color: #FFFFFF; } +.highlight { background-color: darkred ; } + +img { border: 0px; } +em { background-color: darkred; } +caption { display: none; } + +h1 { font-size: medium; } +html[xmlns] h1 { font-size: large; } + + diff --git a/panels/html-chars.html b/panels/html-chars.html new file mode 100755 index 0000000..ad222a9 --- /dev/null +++ b/panels/html-chars.html @@ -0,0 +1,331 @@ + + + +HTML Character Codes (TnTLuoma.com) + + + + + + + + + + + +

HTML Special Characters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
A listing of HTML4 Character Entities
CodeNameDisplays As:
&#09;Horizontal tabnon-printing
&#10;Line feednon-printing
&#13;Carriage Returnnon-printing
&#34; or &quot;quotation mark = APL quote" or "
&#38; or &amp;ampersand& or &
&#32;Spacenon-printing
&#33;Exclamation mark!
&#34; or &quot;Quotation mark" or "
&#35;Number sign#
&#36;Dollar sign$
&#37;Percent sign%
&#38; or &amp;Ampersand& or &
&#39;Apostrophe'
&#40;Left parenthesis(
&#41;Right parenthesis)
&#42;Asterisk*
&#43;Plus sign+
&#44;Comma,
&#45;Hyphen-
&#46;Period (fullstop).
&#47;Solidus (slash)/
&#58;Colon:
&#59;Semi-colon;
&#60; or &lt;Less than< or <
&#61;Equals sign=
&#62; or &gt;Greater than> or >
&#63;Question mark?
&#64;Commercial at@
&#91;Left square bracket[
&#92;Reverse solidus (backslash)\
&#93;Right square bracket]
&#94;Caret^
&#95;Horizontal bar (underscore)_
&#96;Acute accent`
&#123;Left curly brace{
&#124;Vertical bar|
&#125;Right curly brace}
&#126;Tilde~
&#146 is non-standard! use &#8217; instead!
&endash; or &#150; are non-standard! use &#8211; instead!
&emdash; or &#151; are non-standard! use &#8212; instead!
&#160; or &nbsp;no-break space = non-breaking space  or  
&#161; or &iexcl;inverted exclamation mark¡ or ¡
&#162; or &cent;Cent sign¢ or ¢
&#163; or &pound;Pound sterling£ or £
&#164; or &curren;General currency sign¤ or ¤
&#165; or &yen;yen sign = yuan sign¥ or ¥
&#166; or &brvbar;pipe or broken bar = broken vertical bar¦ or ¦
&#167; or &sect;Section sign§ or §
&#168; or &uml;diaeresis = spacing diaeresis¨ or ¨
&#169; or &copy;copyright sign© or ©
&#170; or &ordf;feminine ordinal indicatorª or ª
&#171; or &laquo;left-pointing double angle quotation mark = left pointing guillemet« or «
&#172; or &not;not sign¬ or ¬
&#173; or &shy;soft hyphen = discretionary hyphen­ or ­
&#174; or &reg;registered sign = registered trade mark sign® or ®
&#175; or &macr;macron = spacing macron = overline = APL overbar¯ or ¯
&#176; or &deg;degree sign° or °
&#177; or &plusmn;plus-minus sign = plus-or-minus sign± or ±
&#178; or &sup2;superscript two = superscript digit two = squared² or ²
&#179; or &sup3;superscript three = superscript digit three = cubed³ or ³
&#180; or &acute;acute accent = spacing acute´ or ´
&#181; or &micro;micro signµ or µ
&#182; or &para;pilcrow sign = paragraph sign¶ or ¶
&#183; or &middot;middle dot = Georgian comma = Greek middle dot· or ·
&#184; or &cedil;cedilla = spacing cedilla¸ or ¸
&#185; or &sup1;superscript one = superscript digit one¹ or ¹
&#186; or &ordm;masculine ordinal indicatorº or º
&#187; or &raquo;right-pointing double angle quotation mark = right pointing guillemet» or »
&#188; or &frac14;vulgar fraction one quarter = fraction one quarter¼ or ¼
&#189; or &frac12;vulgar fraction one half = fraction one half½ or ½
&#190; or &frac34;vulgar fraction three quarters = fraction three quarters¾ or ¾
&#191; or &iquest;inverted question mark = turned question mark¿ or ¿
&#192; or &Agrave;latin capital letter A with grave = latin capital letter A graveÀ or À
&#193; or &Aacute;latin capital letter A with acuteÁ or Á
&#194; or &Acirc;latin capital letter A with circumflex or Â
&#195; or &Atilde;latin capital letter A with tildeà or Ã
&#196; or &Auml;latin capital letter A with diaeresisÄ or Ä
&#197; or &Aring;latin capital letter A with ring above = latin capital letter A ringÅ or Å
&#198; or &AElig;latin capital letter AE = latin capital ligature AEÆ or Æ
&#199; or &Ccedil;latin capital letter C with cedillaÇ or Ç
&#200; or &Egrave;latin capital letter E with graveÈ or È
&#201; or &Eacute;latin capital letter E with acuteÉ or É
&#202; or &Ecirc;latin capital letter E with circumflexÊ or Ê
&#203; or &Euml;latin capital letter E with diaeresisË or Ë
&#204; or &Igrave;latin capital letter I with graveÌ or Ì
&#205; or &Iacute;latin capital letter I with acuteÍ or Í
&#206; or &Icirc;latin capital letter I with circumflexÎ or Î
&#207; or &Iuml;latin capital letter I with diaeresisÏ or Ï
&#208; or &ETH;latin capital letter ETHÐ or Ð
&#209; or &Ntilde;latin capital letter N with tildeÑ or Ñ
&#210; or &Ograve;latin capital letter O with graveÒ or Ò
&#211; or &Oacute;latin capital letter O with acuteÓ or Ó
&#212; or &Ocirc;latin capital letter O with circumflexÔ or Ô
&#213; or &Otilde;latin capital letter O with tildeÕ or Õ
&#214; or &Ouml;latin capital letter O with diaeresisÖ or Ö
&#215; or &times;multiplication sign× or ×
&#216; or &Oslash;latin capital letter O with stroke = latin capital letter O slashØ or Ø
&#217; or &Ugrave;latin capital letter U with graveÙ or Ù
&#218; or &Uacute;latin capital letter U with acuteÚ or Ú
&#219; or &Ucirc;latin capital letter U with circumflexÛ or Û
&#220; or &Uuml;latin capital letter U with diaeresisÜ or Ü
&#221; or &Yacute;latin capital letter Y with acuteÝ or Ý
&#222; or &THORN;latin capital letter THORNÞ or Þ
&#223; or &szlig;Small sharp s, German (sz ligature)ß or ß
&#223; or &szlig;latin small letter sharp s = ess-zedß or ß
&#224; or &agrave;latin small letter a with grave = latin small letter a graveà or à
&#225; or &aacute;latin small letter a with acuteá or á
&#226; or &acirc;latin small letter a with circumflexâ or â
&#227; or &atilde;latin small letter a with tildeã or ã
&#228; or &auml;latin small letter a with diaeresisä or ä
&#229; or &aring;latin small letter a with ring above = latin small letter a ringå or å
&#230; or &aelig;latin small letter ae = latin small ligature aeæ or æ
&#231; or &ccedil;latin small letter c with cedillaç or ç
&#232; or &egrave;latin small letter e with graveè or è
&#233; or &eacute;latin small letter e with acuteé or é
&#234; or &ecirc;latin small letter e with circumflexê or ê
&#235; or &euml;latin small letter e with diaeresisë or ë
&#236; or &igrave;latin small letter i with graveì or ì
&#237; or &iacute;latin small letter i with acuteí or í
&#238; or &icirc;latin small letter i with circumflexî or î
&#239; or &iuml;latin small letter i with diaeresisï or ï
&#240; or &eth;latin small letter ethð or ð
&#241; or &ntilde;latin small letter n with tildeñ or ñ
&#242; or &ograve;latin small letter o with graveò or ò
&#243; or &oacute;latin small letter o with acuteó or ó
&#244; or &ocirc;latin small letter o with circumflexô or ô
&#245; or &otilde;latin small letter o with tildeõ or õ
&#246; or &ouml;latin small letter o with diaeresisö or ö
&#247; or &divide;division sign÷ or ÷
&#248; or &oslash;latin small letter o with stroke, = latin small letter o slashø or ø
&#249; or &ugrave;latin small letter u with graveù or ù
&#250; or &uacute;latin small letter u with acuteú or ú
&#251; or &ucirc;latin small letter u with circumflexû or û
&#252; or &uuml;latin small letter u with diaeresisü or ü
&#253; or &yacute;latin small letter y with acuteý or ý
&#254; or &thorn;latin small letter thornþ or þ
&#255; or &yuml;Small y, dieresis or umlaut markÿ or ÿ
&#338; or &OElig;latin capital ligature OEŒ or Œ
&#339; or &oelig;latin small ligature oeœ or œ
&#352; or &Scaron;latin capital letter S with caronŠ or Š
&#353; or &scaron;latin small letter s with caronš or š
&#376; or &Yuml;latin capital letter Y with diaeresisŸ or Ÿ
&#402; or &fnof;latin small f with hook = function = florinƒ or ƒ
&#710; or &circ;modifier letter circumflex accentˆ or ˆ
&#732; or &tilde;small tilde˜ or ˜
&#913; or &Alpha;greek capital letter alphaΑ or Α
&#914; or &Beta;greek capital letter betaΒ or Β
&#915; or &Gamma;greek capital letter gammaΓ or Γ
&#916; or &Delta;greek capital letter deltaΔ or Δ
&#917; or &Epsilon;greek capital letter epsilonΕ or Ε
&#918; or &Zeta;greek capital letter zetaΖ or Ζ
&#919; or &Eta;greek capital letter etaΗ or Η
&#920; or &Theta;greek capital letter thetaΘ or Θ
&#921; or &Iota;greek capital letter iotaΙ or Ι
&#922; or &Kappa;greek capital letter kappaΚ or Κ
&#923; or &Lambda;greek capital letter lambdaΛ or Λ
&#924; or &Mu;greek capital letter muΜ or Μ
&#925; or &Nu;greek capital letter nuΝ or Ν
&#926; or &Xi;greek capital letter xiΞ
&#927; or &Omicron;greek capital letter omicronΟ or Ο
&#928; or &Pi;greek capital letter piΠ or Π
&#929; or &Rho;greek capital letter rhoΡ or Ρ
&#931; or &Sigma;greek capital letter sigmaΣ or Σ
&#932; or &Tau;greek capital letter tauΤ or Τ
&#933; or &Upsilon;greek capital letter upsilonΥ or Υ
&#934; or &Phi;greek capital letter phiΦ or Φ
&#935; or &Chi;greek capital letter chiΧ or Χ
&#936; or &Psi;greek capital letter psiΨ or Ψ
&#937; or &Omega;greek capital letter omegaΩ or Ω
&#945; or &alpha;greek small letter alphaα or α
&#946; or &beta;greek small letter betaβ or β
&#947; or &gamma;greek small letter gammaγ or γ
&#948; or &delta;greek small letter deltaδ or δ
&#949; or &epsilon;greek small letter epsilonε or ε
&#950; or &zeta;greek small letter zetaζ or ζ
&#951; or &eta;greek small letter etaη or η
&#952; or &theta;greek small letter thetaθ or θ
&#953; or &iota;greek small letter iotaι or ι
&#954; or &kappa;greek small letter kappaκ or κ
&#955; or &lambda;greek small letter lambdaλ or λ
&#956; or &mu;greek small letter muμ or μ
&#957; or &nu;greek small letter nuν or ν
&#958; or &xi;greek small letter xiξ
&#959; or &omicron;greek small letter omicronο or ο
&#960; or &pi;greek small letter piπ or π
&#961; or &rho;greek small letter rhoρ or ρ
&#962; or &sigmaf;greek small letter final sigmaς or ς
&#963; or &sigma;greek small letter sigmaσ or σ
&#964; or &tau;greek small letter tauτ or τ
&#965; or &upsilon;greek small letter upsilonυ or υ
&#966; or &phi;greek small letter phiφ or φ
&#967; or &chi;greek small letter chiχ or χ
&#968; or &psi;greek small letter psiψ or ψ
&#969; or &omega;greek small letter omegaω or ω
&#977; or &thetasym;greek small letter theta symbolϑ or ϑ
&#978; or &upsih;greek upsilon with hook symbolϒ or ϒ
&#982; or &piv;greek pi symbolϖ or ϖ
&#8194; or &ensp;en space  or  
&#8195; or &emsp;em space  or  
&#8201; or &thinsp;thin space  or  
&#8204; or &zwnj;zero width non-joiner‌ or ‌
&#8205; or &zwj;zero width joiner‍ or ‍
&#8206; or &lrm;left-to-right mark‎ or ‎
&#8207; or &rlm;right-to-left mark‏ or ‏
&#8211; or &ndash;en dash– or –
&#8212; or &mdash;em dash— or —
&#8216; or &lsquo;left single quotation mark‘ or ‘
&#8217; or &rsquo;right single quotation mark’ or ’
&#8218; or &sbquo;single low-9 quotation mark‚ or ‚
&#8220; or &ldquo;left double quotation mark“ or “
&#8221; or &rdquo;right double quotation mark” or ”
&#8222; or &bdquo;double low-9 quotation mark„ or „
&#8224; or &dagger;dagger† or †
&#8225; or &Dagger;double dagger‡ or ‡
&#8226; or &bull;bullet = black small circle• or •
&#8230; or &hellip;horizontal ellipsis = three dot leader… or …
&#8240; or &permil;per mille sign‰ or ‰
&#8242; or &prime;prime = minutes = feet′ or ′
&#8243; or &Prime;double prime = seconds = inches″ or ″
&#8249; or &lsaquo;single left-pointing angle quotation mark‹ or ‹
&#8250; or &rsaquo;single right-pointing angle quotation mark› or ›
&#8254; or &oline;overline = spacing overscore‾ or ‾
&#8260; or &frasl;fraction slash⁄ or ⁄
&#8364; or &euro;euro sign€ or €
&#8465; or &image;blackletter capital I = imaginary partℑ or ℑ
&#8472; or &weierp;script capital P = power set = Weierstrass p℘ or ℘
&#8476; or &real;blackletter capital R = real part symbolℜ or ℜ
&#8482; or &trade;trade mark sign™ or ™
&#8501; or &alefsym;alef symbol = first transfinite cardinalℵ or ℵ
&#8592; or &larr;leftwards arrow← or ←
&#8593; or &uarr;upwards arrow↑ or ↑
&#8594; or &rarr;rightwards arrow→ or →
&#8595; or &darr;downwards arrow↓ or ↓
&#8596; or &harr;left right arrow↔ or ↔
&#8629; or &crarr;downwards arrow with corner leftwards = carriage return↵ or ↵
&#8656; or &lArr;leftwards double arrow⇐ or ⇐
&#8657; or &uArr;upwards double arrow⇑ or ⇑
&#8658; or &rArr;rightwards double arrow⇒ or ⇒
&#8659; or &dArr;downwards double arrow⇓ or ⇓
&#8660; or &hArr;left right double arrow⇔ or ⇔
&#8704; or &forall;for all∀ or ∀
&#8706; or &part;partial differential∂ or ∂
&#8707; or &exist;there exists∃ or ∃
&#8709; or &empty;empty set = null set = diameter∅ or ∅
&#8711; or &nabla;nabla = backward difference∇ or ∇
&#8712; or &isin;element of∈ or ∈
&#8713; or &notin;not an element of∉ or ∉
&#8715; or &ni;contains as member∋ or ∋
&#8719; or &prod;n-ary product = product sign∏ or ∏
&#8721; or &sum;n-ary sumation∑ or ∑
&#8722; or &minus;minus sign− or −
&#8727; or &lowast;asterisk operator∗ or ∗
&#8730; or &radic;square root = radical sign√ or √
&#8733; or &prop;proportional to∝ or ∝
&#8734; or &infin;infinity∞ or ∞
&#8736; or &ang;angle∠ or ∠
&#8743; or &and;logical and = wedge∧ or ∧
&#8744; or &or;logical or = vee∨ or ∨
&#8745; or &cap;intersection = cap∩ or ∩
&#8746; or &cup;union = cup∪ or ∪
&#8747; or &int;integral∫ or ∫
&#8756; or &there4;therefore∴ or ∴
&#8764; or &sim;tilde operator = varies with = similar to∼ or ∼
&#8773; or &cong;approximately equal to≅ or ≅
&#8776; or &asymp;almost equal to = asymptotic to≈ or ≈
&#8800; or &ne;not equal to≠ or ≠
&#8801; or &equiv;identical to≡ or ≡
&#8804; or &le;less-than or equal to≤ or ≤
&#8805; or &ge;greater-than or equal to≥ or ≥
&#8834; or &sub;subset of⊂ or ⊂
&#8835; or &sup;superset of⊃ or ⊃
&#8836; or &nsub;not a subset of⊄ or ⊄
&#8838; or &sube;subset of or equal to⊆ or ⊆
&#8839; or &supe;superset of or equal to⊇ or ⊇
&#8853; or &oplus;circled plus = direct sum⊕ or ⊕
&#8855; or &otimes;circled times = vector product⊗ or ⊗
&#8869; or &perp;up tack = orthogonal to = perpendicular⊥ or ⊥
&#8901; or &sdot;dot operator⋅ or ⋅
&#8968; or &lceil;left ceiling = apl upstile⌈ or ⌈
&#8969; or &rceil;right ceiling⌉ or ⌉
&#8970; or &lfloor;left floor = apl downstile⌊ or ⌊
&#8971; or &rfloor;right floor⌋ or ⌋
&#9001; or &lang;left-pointing angle bracket = bra〈 or ⟨
&#9002; or &rang;right-pointing angle bracket = ket〉 or ⟩
&#9674; or &loz;lozenge◊ or ◊
&#9824; or &spades;black spade suit♠ or ♠
&#9827; or &clubs;black club suit = shamrock♣ or ♣
&#9829; or &hearts;black heart suit = valentine♥ or ♥
&#9830; or &diams;black diamond suit♦ or ♦
&#10004;Check Mark
+ + + diff --git a/panels/html-chars.ico b/panels/html-chars.ico new file mode 100755 index 0000000..2f7ab04 Binary files /dev/null and b/panels/html-chars.ico differ diff --git a/panels/index.html b/panels/index.html new file mode 100755 index 0000000..c6aa0fb --- /dev/null +++ b/panels/index.html @@ -0,0 +1,55 @@ + + + + + + + panels + + + +

panels

+ ..
+[   0 Jun  6  2023]  CSS
+[   0 Jun  6  2023]  HTML
+[   0 Jun  6  2023]  HTTP
+[   0 Jun  6  2023]  JS
+[   0 May 24 17:10]  res
+[   0 Jun  6  2023]  unicodeChartsPanel
+[ 421 Aug 15  2023]  html-chars.css
+[ 30K Apr  7  2023]  html-chars.html
+[4.2K Nov 25  2022]  html-chars.ico
+[1.4K Apr  7  2023]  multisearch.html
+[1.3K Mar 21  2021]  multisearch.png
+[1.2K Apr  7  2023]  multisearch2.html
+[ 32K Jun  4  2022]  triplecolors.html
+[3.2K Sep 13  2022]  triplecolors.ico
+[1.0K May 24 17:09]  tunein-radio.html
+[2.2K Nov 26  2022]  tunein-radio.ico
+

+

+

+ +6 directories, 10 files +

+

+ diff --git a/panels/multisearch.html b/panels/multisearch.html new file mode 100755 index 0000000..98aa5e9 --- /dev/null +++ b/panels/multisearch.html @@ -0,0 +1,51 @@ + + + + MultiSearch! + + + + +

Websearch:

+ + +

Music:

+ + +

Torrents:

+ + + + + + diff --git a/panels/multisearch.png b/panels/multisearch.png new file mode 100755 index 0000000..d0dd03d Binary files /dev/null and b/panels/multisearch.png differ diff --git a/panels/multisearch2.html b/panels/multisearch2.html new file mode 100755 index 0000000..23d2ea0 --- /dev/null +++ b/panels/multisearch2.html @@ -0,0 +1,42 @@ + + + +MultiSearch! + + + + + + + + + + \ No newline at end of file diff --git a/panels/res/arrow-bl.gif b/panels/res/arrow-bl.gif new file mode 100755 index 0000000..9b5409f Binary files /dev/null and b/panels/res/arrow-bl.gif differ diff --git a/panels/res/arrow-minus.gif b/panels/res/arrow-minus.gif new file mode 100755 index 0000000..20b88eb Binary files /dev/null and b/panels/res/arrow-minus.gif differ diff --git a/panels/res/arrow-plus.gif b/panels/res/arrow-plus.gif new file mode 100755 index 0000000..76587f5 Binary files /dev/null and b/panels/res/arrow-plus.gif differ diff --git a/panels/res/css.ico b/panels/res/css.ico new file mode 100755 index 0000000..7161521 Binary files /dev/null and b/panels/res/css.ico differ diff --git a/panels/res/html.ico b/panels/res/html.ico new file mode 100755 index 0000000..94140ef Binary files /dev/null and b/panels/res/html.ico differ diff --git a/panels/res/http.ico b/panels/res/http.ico new file mode 100755 index 0000000..0e7030c Binary files /dev/null and b/panels/res/http.ico differ diff --git a/panels/res/index.html b/panels/res/index.html new file mode 100755 index 0000000..5c6a672 --- /dev/null +++ b/panels/res/index.html @@ -0,0 +1,50 @@ + + + + + + + res + + + +

res

+ ..
+[  43 Apr  3  2010]  arrow-bl.gif
+[  63 Jan 23  2020]  arrow-minus.gif
+[  64 Jan 23  2020]  arrow-plus.gif
+[3.6K May 14  2013]  css.ico
+[ 766 May 14  2013]  html.ico
+[6.4K Apr 14  2022]  http.ico
+[4.1K May 14  2013]  qr.css
+[ 201 May 17  2013]  qr-1.css
+[ 200 Apr 18  2013]  qr-2.css
+[3.7K Jun  4  2022]  script.ico
+[3.3K May 17  2013]  setup.js
+

+

+

+ +0 directories, 11 files +

+

+ diff --git a/panels/res/qr-1.css b/panels/res/qr-1.css new file mode 100755 index 0000000..ba22b2a --- /dev/null +++ b/panels/res/qr-1.css @@ -0,0 +1,2 @@ +/* color overrides */ +/*green*/ h1,nav{background:#08b955;}h2,th,footer{background:#99d1b4;}a[href],nav>a[href]{border-color:#18b975;}nav>a[href]{background:#dce6e3;}iframe{border-left-color:#dce6e3;} diff --git a/panels/res/qr-2.css b/panels/res/qr-2.css new file mode 100755 index 0000000..d54c6e2 --- /dev/null +++ b/panels/res/qr-2.css @@ -0,0 +1,2 @@ +/* color overrides */ +/*pink*/ h1,nav{background:#b90855;}h2,th,footer{background:#d199b4;}a[href],nav>a[href]{border-color:#b91875;}nav>a[href]{background:#e6dce3;}iframe{border-left-color:#e6dce3;} diff --git a/panels/res/qr.css b/panels/res/qr.css new file mode 100755 index 0000000..309270c --- /dev/null +++ b/panels/res/qr.css @@ -0,0 +1,183 @@ +/* Style sheet for the Quick Reference pages * + * (c) Rijk 2013 */ + +ul, ol {margin: 0; padding: 0 0 0 1.5em;} +ol {counter-reset: item;} +li {display: block; list-style: none; position: relative; padding: .3em 0; margin: 0;} +li h3 {padding: 0; margin: 0;} + +ol > li:before { +content: counters(item, ".") ". "; +counter-increment: item; +display: inline-block; +width: 2em; +position: absolute; +left: -2.3em; +text-align: right; +} + +ol.append li:before, ol.other li:before, li.no-num:before {content: none;} +ol.append li, .other li, li.no-num {display: list-item;} +ol.append li {list-style-type: upper-alpha;} +.other li {list-style: none;} + +li.turner {position: relative;} +.turner img { +position: absolute; left: -1em; top: .5em; +border-width: 0; +vertical-align: bottom; +height: 11px; +width: 11px; +margin: 1px 1px 1px 0; +} +ul ol .turner img {left: -2.2em;} + + +html, body.iframed {height: 100%; padding: 0;} + +body { +/* .875 means 14 px font, .75 means 12px font. nav bar layout adapts more or less to the font size */ +font: .875em/1.125 "Segoe UI", sans-serif;*/ +color: #333; +background: #efefef; +margin: 0; +padding: 1.652em 0 0; +} + +h1, h2, h3 { +font: bold 1em "Segoe UI", sans-serif; +} + +h1 { +color: #fff; +background: #1875b9; +text-align: center; +margin: 0; +padding: 0.5em 0.1em; +text-shadow: 1px 1px 3px #000; +} + +h2, th { +color: #000; +background: #99B4D1; +margin: 0; +padding: .3em; +text-shadow: 1px 1px 3px #666; +font-weight: normal; +text-align: left; +} + +h3, h4 { +margin: .5em 0 0.2em 0; +padding-left: 0.2em; +font-weight: normal; +text-shadow: 1px 1px 3px #666; +} + +h3 a[href] {text-shadow: none;} + +a[href] { +color: #609; +background: inherit; +text-decoration: none; +border-bottom: 1px solid #1875b9; +} + +a, a[href], td a[href], li a[href] {text-decoration: none; border-bottom: none; color: inherit; background: inherit;} + +a[href]:hover { +text-shadow: 0px 0px 10px #555; +} + +div.holder {position: fixed; left: 0; top: 1.652em; bottom: 0; width: 25%; padding-top: 0; overflow: auto;} + +iframe {position: fixed; left: 25%; top: 0; width: 75%; height: 100%; border: none; border-top: 1.652em solid transparent; border-left: .1rem solid #dce3e6; box-sizing: border-box; -moz-box-sizing: border-box;} + +nav { +display: block; +padding: 1px 0 0 1px; +color: #333; background: #1875b9; +border-bottom: 1px solid #fff; +white-space: nowrap; +position: fixed; +z-index: 2; +top: 0; left: 0; right: 0; +bottom: auto; +height: auto; +height: 1.5em; +width: 100%; +} + +nav a[href] { +color: #333; background: #dce3e6; +padding: 2px .5em 1px; +margin: 0; +border: 1px solid #1875b9; +border-top-left-radius: 2px; +border-top-right-radius: 2px; +display: inline-block; +height: 1.14em; +min-width: 1.3em; text-align: center; +font-variant: small-caps; /*text-transform: lowercase;*/ +} + +nav a[href]#current { +color: #555; background: #fff; +border-bottom: 2px solid #fff; +} + +nav a[href]:hover { +outline: none; +color: #555; background: #fff; +text-shadow: none; +} + + +/* Start: Leaf-Turner QR Pages Styles */ + + +div.leaf table {border: 1px solid #dce3e6; border-width: 0 0 2px 11px; margin-bottom: 0; border-collapse: collapse; width: 100%;} +div.leaf th {padding: 0 2px; background: inherit; color: inherit;} + +#html-attr li {margin: 1px 0 0 0; padding: 1px 0 1px 12px;} +#html-attr li.turner {padding: 1px 0 1px 1px;} + +/* End: Leaf-Turner QR Pages Styles */ + +table {margin: 0 0 1em; padding: 0; width: 100%; empty-cells: show; border-collapse: collapse;} + +td, th {border: 1px solid #ddd; border-width: 0 1px 1px 0;} + +td { +text-align: left; +vertical-align: top; +padding: 2px 4px; +} + +tr.lc td + td + td, td.lc {background: #dfdfdf; color: #666;} +tr.cr td + td + td, td.cr, tr.rec td + td + td, td.rec {background: #efdfdf; color: maroon;} + +tr.css2010 .name, tr.cr .name, tr.rec .name { +font-variant: small-caps; +text-transform: lowercase; +letter-spacing: .2em; +font-weight: bold; +} + +tr.suse .name a, table#legend tr.suse td { +color: #808080; +font-variant: normal; +letter-spacing: normal; +text-decoration: line-through; +font-weight: normal; +} + +table#css-prop td + td {text-align: center;} + +li:nth-child(even) {background: #fff;} +li:nth-child(odd) {background: #eee;} + +tr:nth-child(even) {background: #fff;} +tr:nth-child(odd) {background: #eee;} + +small {font-size: .8em;} \ No newline at end of file diff --git a/panels/res/script.ico b/panels/res/script.ico new file mode 100755 index 0000000..430c3ae Binary files /dev/null and b/panels/res/script.ico differ diff --git a/panels/res/setup.js b/panels/res/setup.js new file mode 100755 index 0000000..ee1a928 --- /dev/null +++ b/panels/res/setup.js @@ -0,0 +1,105 @@ +window.onload=SetStyleSheet(); +//window.onload=init(); + +function init(){ + SetStyleSheet(); + changeLinks(); +} + +// LeafTurner starts here. Modified from Eric Meyer's script function MaKo. + +function GetElementsWithClassName(elementName,className) { + var i; + var allElements = document.getElementsByTagName(elementName); + var elemColl = new Array(); + for (i = 0; i < allElements.length; i++) { + if (allElements[i].className == className) { + elemColl[elemColl.length] = allElements[i]; + } + } + return elemColl; +} + +function initialLeaf() { + var n; + var imgColl = GetElementsWithClassName('img','turner'); + var olColl = GetElementsWithClassName('ol','leaf'); + var ulColl = GetElementsWithClassName('ul','leaf'); + var divColl = GetElementsWithClassName('div','leaf'); + for (n = 0; n < imgColl.length; n++) { + imgColl[n].src = '../res/arrow-plus.gif'; + } + for (n = 0; n < divColl.length; n++) { + divColl[n].style.display = 'none'; + } + for (n = 0; n < olColl.length; n++) { + olColl[n].style.display = 'none'; + } + for (n = 0; n < ulColl.length; n++) { + ulColl[n].style.display = 'none'; + } +} + +function leafTurn(leafName) { + var myLeaf = document.getElementById(leafName); + var myArrow = document.getElementById(leafName+'Turn'); + if (myLeaf.style.display == 'none') { + myLeaf.style.display = 'block'; + myArrow.src = '../res/arrow-minus.gif'; + } else { + myLeaf.style.display = 'none'; + myArrow.src = '../res/arrow-plus.gif'; + } +} + + + +// if the browser supports sidebar.addPanel and is not Firefox, call the function changeLinks onload +// Firefox directly support rel=sidebar so it doesn't need the script + +if((window.sidebar) && (window.sidebar.addPanel) && navigator.vendor != 'Firefox' ){ + window.onload=changeLinks; +} + +// add event handlers to links with rel=sidebar + +function changeLinks() { + var links,i; +// grab all links, loop over them; + links = document.getElementsByTagName('a'); + for(i=0; i < links.length; i++) { +// check which link has a rel attribute, with value 'sidebar' and send this one to addTab +// if(links[i].getAttribute('rel')!='') { + if(links[i].getAttribute('rel') && links[i].getAttribute('rel').match(/\bsidebar\b/)) { +// Note: the simple function below doesn't provide for handling relative URLs, and addPanel only works with absolute URLs... +// links[i].onclick=function(){return(addTab(this.title,this.href,''));}; +// Hence the hack below to make the URL absolute if it isn't already. + links[i].onclick=function(){ + var abshref = this.href; + if(!this.href.match(/^(https?|file):/)) { + abshref = location.protocol + '\/\/' + location.pathname.replace(/\/[^\/]*$/,'\/') + abshref; + } + return(addTab(this.title,abshref,'')); + }; + } + } +} + + +function addTab(tabName,tabURL,tabCURL) { + if ((window.sidebar) && (window.sidebar.addPanel) && navigator.vendor != 'Firefox' ){ + try { + window.sidebar.addPanel(tabName,tabURL,tabCURL); + } + catch (e) { + alert('An error occurred when trying to add this tab to your '+ + 'Sidebar. Maybe you have hit a known bug '+ + '(see Bugzilla #97016) in some Netscape6/Mozilla versions. '+ + 'You should be able to click the add tab link again now '+ + 'and it should work properly, else press F9 twice.'); + } + return false; + } else { + return true; + } +} diff --git a/panels/triplecolors.html b/panels/triplecolors.html new file mode 100755 index 0000000..13b7d6c --- /dev/null +++ b/panels/triplecolors.html @@ -0,0 +1,700 @@ + + + + + + + TripleColors (TnTLuoma.com) + + + + + + + + + +

TripleColors: The Best and Most Comprehensive Guide[*] to Official HTML Color Codes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
HTML4 color keywords
aqua
black
blue
fuchsia
gray
green
lime
maroon
navy
olive
purple
red
silver
teal
white
yellow
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SVG color keywords
Black#0000000,0,0
Navy#0000800,0,128
DarkBlue#00008B0,0,139
MediumBlue#0000CD0,0,205
Blue#0000FF0,0,255
DarkGreen#0064000,100,0
Green#0080000,128,0
Teal#0080800,128,128
DarkCyan#008B8B0,139,139
DeepSkyBlue#00BFFF0,191,255
DarkTurquoise#00CED10,206,209
MediumSpringGreen#00FA9A0,250,154
Lime#00FF000,255,0
SpringGreen#00FF7F0,255,127
Aqua#00FFFF0,255,255
Cyan#00FFFF0,255,255
MidnightBlue#19197025,25,112
DodgerBlue#1E90FF30,144,255
LightSeaGreen#20B2AA32,178,170
ForestGreen#228B2234,139,34
SeaGreen#2E8B5746,139,87
DarkSlateGray#2F4F4F47,79,79
LimeGreen#32CD3250,205,50
MediumSeaGreen#3CB37160,179,113
Turquoise#40E0D064,224,208
RoyalBlue#4169E165,105,225
SteelBlue#4682B470,130,180
DarkSlateBlue#483D8B72,61,139
MediumTurquoise#48D1CC72,209,204
Indigo#4B008275,0,130
DarkOliveGreen#556B2F85,107,47
CadetBlue#5F9EA095,158,160
CornflowerBlue#6495ED100,149,237
MediumAquamarine#66CDAA102,205,170
DimGray#696969105,105,105
SlateBlue#6A5ACD106,90,205
OliveDrab#6B8E23107,142,35
SlateGray#708090112,128,144
LightSlateGray#778899119,136,153
MediumSlateBlue#7B68EE123,104,238
LawnGreen#7CFC00124,252,0
Chartreuse#7FFF00127,255,0
Aquamarine#7FFFD4127,255,212
Maroon#800000128,0,0
Purple#800080128,0,128
Olive#808000128,128,0
Gray#808080128,128,128
SkyBlue#87CEEB135,206,235
LightSkyBlue#87CEFA135,206,250
BlueViolet#8A2BE2138,43,226
DarkRed#8B0000139,0,0
DarkMagenta#8B008B139,0,139
SaddleBrown#8B4513139,69,19
DarkSeaGreen#8FBC8F143,188,143
LightGreen#90EE90144,238,144
MediumPurple#9370DB147,112,219
DarkViolet#9400D3148,0,211
PaleGreen#98FB98152,251,152
DarkOrchid#9932CC153,50,204
YellowGreen#9ACD32154,205,50
Sienna#A0522D160,82,45
Brown#A52A2A165,42,42
DarkGray#A9A9A9169,169,169
LightBlue#ADD8E6173,216,230
GreenYellow#ADFF2F173,255,47
PaleTurquoise#AFEEEE175,238,238
LightSteelBlue#B0C4DE176,196,222
PowderBlue#B0E0E6176,224,230
FireBrick#B22222178,34,34
DarkGoldenrod#B8860B184,134,11
MediumOrchid#BA55D3186,85,211
RosyBrown#BC8F8F188,143,143
DarkKhaki#BDB76B189,183,107
Silver#C0C0C0192,192,192
MediumVioletRed#C71585199,21,133
IndianRed#CD5C5C205,92,92
Peru#CD853F205,133,63
Chocolate#D2691E210,105,30
Tan#D2B48C210,180,140
LightGrey#D3D3D3211,211,211
Thistle#D8BFD8216,191,216
Orchid#DA70D6218,112,214
Goldenrod#DAA520218,165,32
PaleVioletRed#DB7093219,112,147
Crimson#DC143C220,20,60
Gainsboro#DCDCDC220,220,220
Plum#DDA0DD221,160,221
BurlyWood#DEB887222,184,135
LightCyan#E0FFFF224,255,255
Lavender#E6E6FA230,230,250
DarkSalmon#E9967A233,150,122
Violet#EE82EE238,130,238
PaleGoldenrod#EEE8AA238,232,170
LightCoral#F08080240,128,128
Khaki#F0E68C240,230,140
AliceBlue#F0F8FF240,248,255
Honeydew#F0FFF0240,255,240
Azure#F0FFFF240,255,255
SandyBrown#F4A460244,164,96
Wheat#F5DEB3245,222,179
Beige#F5F5DC245,245,220
WhiteSmoke#F5F5F5245,245,245
MintCream#F5FFFA245,255,250
GhostWhite#F8F8FF248,248,255
Salmon#FA8072250,128,114
AntiqueWhite#FAEBD7250,235,215
Linen#FAF0E6250,240,230
LightGoldenrodYellow#FAFAD2250,250,210
OldLace#FDF5E6253,245,230
Red#FF0000255,0,0
Fuchsia#FF00FF255,0,255
Magenta#FF00FF255,0,255
DeepPink#FF1493255,20,147
OrangeRed#FF4500255,69,0
Tomato#FF6347255,99,71
HotPink#FF69B4255,105,180
Coral#FF7F50255,127,80
DarkOrange#FF8C00255,140,0
LightSalmon#FFA07A255,160,122
Orange#FFA500255,165,0
LightPink#FFB6C1255,182,193
Pink#FFC0CB255,192,203
Gold#FFD700255,215,0
PeachPuff#FFDAB9255,218,185
NavajoWhite#FFDEAD255,222,173
Moccasin#FFE4B5255,228,181
Bisque#FFE4C4255,228,196
MistyRose#FFE4E1255,228,225
BlanchedAlmond#FFEBCD255,235,205
PapayaWhip#FFEFD5255,239,213
LavenderBlush#FFF0F5255,240,245
Seashell#FFF5EE255,245,238
Cornsilk#FFF8DC255,248,220
LemonChiffon#FFFACD255,250,205
FloralWhite#FFFAF0255,250,240
Snow#FFFAFA255,250,250
Yellow#FFFF00255,255,0
LightYellow#FFFFE0255,255,224
Ivory#FFFFF0255,255,240
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
System Colors
ActiveBorder
ActiveCaption
AppWorkspace
Background
ButtonFace
ButtonHighlight
ButtonShadow
ButtonText
CaptionText
GrayText
Highlight
HighlightText
InactiveBorder
InactiveCaption
InactiveCaptionText
InfoBackground
InfoText
Menu
MenuText
Scrollbar
ThreeDDarkShadow
ThreeDFace
ThreeDHighlight
ThreeDLightShadow
ThreeDShadow
Window
WindowFrame
WindowText
+ +
+ + +

The color names can be used but the Hex or RGB colors are preferred.

+ +

This list taken from http://www.w3.org/TR/css3-color/.

+ +

Add TripleColors to your Opera Panels or +Add TripleColors to Netscape / Mozilla sidebars

+ + +

Compiled by Tim Luoma (latest version available at http://www.tntluoma.com/sidebars/triplecolors/.

+ +

See more Sidebars at TnTLuoma.com

+ +

Reload this page

+ + +

It is my goal to have the most complete list of official colors according to the W3 specifications in a format which is conducive to being used as a Sidebar or Hotlist Panel. If you have any suggestions/corrections/additions, please contact me.

+
+ +

+Add to Mozilla Sidebars (requires Javascript) +

+ + diff --git a/panels/triplecolors.ico b/panels/triplecolors.ico new file mode 100755 index 0000000..62ccd54 Binary files /dev/null and b/panels/triplecolors.ico differ diff --git a/panels/tunein-radio.html b/panels/tunein-radio.html new file mode 100755 index 0000000..9292a22 --- /dev/null +++ b/panels/tunein-radio.html @@ -0,0 +1,21 @@ + + + TuneIn Radio + + + + + + + + + + + + + + + + + + diff --git a/panels/tunein-radio.ico b/panels/tunein-radio.ico new file mode 100755 index 0000000..21f2185 Binary files /dev/null and b/panels/tunein-radio.ico differ diff --git a/panels/unicodeChartsPanel/index.html b/panels/unicodeChartsPanel/index.html new file mode 100755 index 0000000..e0f3bcf --- /dev/null +++ b/panels/unicodeChartsPanel/index.html @@ -0,0 +1,249 @@ + + + + +Unicode Charts Panel + + + + + + + + + + + + + \ No newline at end of file diff --git a/panels/unicodeChartsPanel/pics/index.html b/panels/unicodeChartsPanel/pics/index.html new file mode 100755 index 0000000..4db9efc --- /dev/null +++ b/panels/unicodeChartsPanel/pics/index.html @@ -0,0 +1,41 @@ + + + + + + + pics + + + +

pics

+ ..
+[ 16K Aug 13  2013]  metall10d.gif
+[2.2K Aug 13  2013]  metall5breit.gif
+

+

+

+ +0 directories, 2 files +

+

+ diff --git a/panels/unicodeChartsPanel/pics/metall10d.gif b/panels/unicodeChartsPanel/pics/metall10d.gif new file mode 100755 index 0000000..389c74a Binary files /dev/null and b/panels/unicodeChartsPanel/pics/metall10d.gif differ diff --git a/panels/unicodeChartsPanel/pics/metall5breit.gif b/panels/unicodeChartsPanel/pics/metall5breit.gif new file mode 100755 index 0000000..078635d Binary files /dev/null and b/panels/unicodeChartsPanel/pics/metall5breit.gif differ diff --git a/sdthumbs/1337x.png b/sdthumbs/1337x.png new file mode 100755 index 0000000..086a5fe Binary files /dev/null and b/sdthumbs/1337x.png differ diff --git a/sdthumbs/Aftenposten.png b/sdthumbs/Aftenposten.png new file mode 100755 index 0000000..f603888 Binary files /dev/null and b/sdthumbs/Aftenposten.png differ diff --git a/sdthumbs/BBC.png b/sdthumbs/BBC.png new file mode 100755 index 0000000..7101f1c Binary files /dev/null and b/sdthumbs/BBC.png differ diff --git a/sdthumbs/Feedly.png b/sdthumbs/Feedly.png new file mode 100755 index 0000000..1f5f6f4 Binary files /dev/null and b/sdthumbs/Feedly.png differ diff --git a/sdthumbs/GOG-old.png b/sdthumbs/GOG-old.png new file mode 100755 index 0000000..61c9c96 Binary files /dev/null and b/sdthumbs/GOG-old.png differ diff --git a/sdthumbs/GOG.png b/sdthumbs/GOG.png new file mode 100755 index 0000000..9d5d65c Binary files /dev/null and b/sdthumbs/GOG.png differ diff --git a/sdthumbs/Hinterland.png b/sdthumbs/Hinterland.png new file mode 100755 index 0000000..4e99b5a Binary files /dev/null and b/sdthumbs/Hinterland.png differ diff --git a/sdthumbs/Inmatrix.png b/sdthumbs/Inmatrix.png new file mode 100755 index 0000000..c8f5e02 Binary files /dev/null and b/sdthumbs/Inmatrix.png differ diff --git a/sdthumbs/Mastodon.png b/sdthumbs/Mastodon.png new file mode 100755 index 0000000..5f85834 Binary files /dev/null and b/sdthumbs/Mastodon.png differ diff --git a/sdthumbs/NRK-TV.png b/sdthumbs/NRK-TV.png new file mode 100755 index 0000000..7902b9b Binary files /dev/null and b/sdthumbs/NRK-TV.png differ diff --git a/sdthumbs/NRK.png b/sdthumbs/NRK.png new file mode 100755 index 0000000..48724e4 Binary files /dev/null and b/sdthumbs/NRK.png differ diff --git a/sdthumbs/RPS-new.png b/sdthumbs/RPS-new.png new file mode 100755 index 0000000..38d1159 Binary files /dev/null and b/sdthumbs/RPS-new.png differ diff --git a/sdthumbs/RPS-old.png b/sdthumbs/RPS-old.png new file mode 100755 index 0000000..757c5a2 Binary files /dev/null and b/sdthumbs/RPS-old.png differ diff --git a/sdthumbs/RPS.png b/sdthumbs/RPS.png new file mode 100755 index 0000000..6b4a76b Binary files /dev/null and b/sdthumbs/RPS.png differ diff --git a/sdthumbs/StartMe.png b/sdthumbs/StartMe.png new file mode 100755 index 0000000..e80aadb Binary files /dev/null and b/sdthumbs/StartMe.png differ diff --git a/sdthumbs/Steam.png b/sdthumbs/Steam.png new file mode 100755 index 0000000..f518f6c Binary files /dev/null and b/sdthumbs/Steam.png differ diff --git a/sdthumbs/TWCenter.png b/sdthumbs/TWCenter.png new file mode 100755 index 0000000..9003e9d Binary files /dev/null and b/sdthumbs/TWCenter.png differ diff --git a/sdthumbs/Telia-play.png b/sdthumbs/Telia-play.png new file mode 100755 index 0000000..128ec9b Binary files /dev/null and b/sdthumbs/Telia-play.png differ diff --git a/sdthumbs/TheRegister.png b/sdthumbs/TheRegister.png new file mode 100755 index 0000000..a850176 Binary files /dev/null and b/sdthumbs/TheRegister.png differ diff --git a/sdthumbs/Tripwire.png b/sdthumbs/Tripwire.png new file mode 100755 index 0000000..bfd9c1d Binary files /dev/null and b/sdthumbs/Tripwire.png differ diff --git a/sdthumbs/Vivaldi.png b/sdthumbs/Vivaldi.png new file mode 100755 index 0000000..c5cfe09 Binary files /dev/null and b/sdthumbs/Vivaldi.png differ diff --git a/sdthumbs/Waxy.png b/sdthumbs/Waxy.png new file mode 100755 index 0000000..fff70fa Binary files /dev/null and b/sdthumbs/Waxy.png differ diff --git a/sdthumbs/Youtube.png b/sdthumbs/Youtube.png new file mode 100755 index 0000000..5dc0f88 Binary files /dev/null and b/sdthumbs/Youtube.png differ diff --git a/sdthumbs/index.html b/sdthumbs/index.html new file mode 100755 index 0000000..0365010 --- /dev/null +++ b/sdthumbs/index.html @@ -0,0 +1,62 @@ + + + + + + + sdthumbs + + + +

sdthumbs

+ ..
+[ 73K May 21  2017]  1337x.png
+[ 20K Apr  2  2016]  Aftenposten.png
+[ 15K Mar 30  2016]  BBC.png
+[ 11K Oct 10  2016]  Feedly.png
+[7.9K Oct 23  2019]  GOG.png
+[ 34K Nov 13  2022]  GOG-old.png
+[ 57K Apr  1  2016]  Hinterland.png
+[ 70K Feb  2  2019]  Inmatrix.png
+[ 16K Dec 11  2022]  Mastodon.png
+[ 17K Sep  6  2018]  NRK.png
+[4.4K Aug 21  2021]  NRK-TV.png
+[8.4K Nov 18  2018]  RPS.png
+[ 52K Jan 27  2021]  RPS-new.png
+[ 23K Jun 17  2017]  RPS-old.png
+[8.8K Feb 28  2018]  StartMe.png
+[ 23K Oct 10  2016]  Steam.png
+[ 43K Nov 23  2020]  Telia-play.png
+[ 39K Oct 22  2019]  TheRegister.png
+[ 59K Apr  1  2016]  Tripwire.png
+[ 35K Mar 30  2016]  TWCenter.png
+[ 73K Jun 28  2017]  Vivaldi.png
+[8.3K Apr  9  2017]  Waxy.png
+[8.6K Oct 21  2019]  Youtube.png
+

+

+

+ +0 directories, 23 files +

+

+ diff --git a/tools/Giant-Bookmarks.zip b/tools/Giant-Bookmarks.zip new file mode 100755 index 0000000..70e0fb8 Binary files /dev/null and b/tools/Giant-Bookmarks.zip differ diff --git a/tools/ListExtensions.exe b/tools/ListExtensions.exe new file mode 100755 index 0000000..9a8170d Binary files /dev/null and b/tools/ListExtensions.exe differ diff --git a/tools/anonymize-history.sql b/tools/anonymize-history.sql new file mode 100755 index 0000000..703b95a --- /dev/null +++ b/tools/anonymize-history.sql @@ -0,0 +1,40 @@ +/* Anonymize Chromium History file*/ +UPDATE cluster_keywords set + keyword = lower(hex(randomblob(8))); +UPDATE clusters set + label = lower(hex(randomblob(8))), + raw_label = lower(hex(randomblob(8))); +UPDATE clusters_and_visits set + url_for_deduping = 'https://'||lower(hex(randomblob(8)))||'.com', + normalized_url = 'https://'||lower(hex(randomblob(8)))||'.com', + url_for_display = 'https://'||lower(hex(randomblob(8)))||'.com'; +UPDATE content_annotations set + related_searches = lower(hex(randomblob(8))), + search_normalized_url = 'https://'||lower(hex(randomblob(8)))||'.com', + search_terms = lower(hex(randomblob(8))); +UPDATE downloads set + current_path = 'C:\temp', + target_path = 'C:\temp', + referrer = 'https://'||lower(hex(randomblob(8)))||'.com', + tab_url = 'https://'||lower(hex(randomblob(8)))||'.com', + tab_referrer_url = 'https://'||lower(hex(randomblob(8)))||'.com'; +UPDATE downloads_url_chains set + url = 'https://'||lower(hex(randomblob(8)))||'.com'; +UPDATE keyword_search_terms set + term = lower(hex(randomblob(8))), + normalized_term = lower(hex(randomblob(8))); +UPDATE segments set + name = 'https://'||lower(hex(randomblob(8)))||'.com'; +UPDATE content_annotations set + search_normalized_url = 'https://'||lower(hex(randomblob(8)))||'.com', + search_terms = lower(hex(randomblob(8))); +UPDATE urls set + url = 'https://'||lower(hex(randomblob(8)))||'.com', + title = lower(hex(randomblob(8))); +UPDATE visited_links set + top_level_url = 'https://'||lower(hex(randomblob(8)))||'.com', + frame_url = 'https://'||lower(hex(randomblob(8)))||'.com'; +UPDATE visits set + external_referrer_url = 'https://'||lower(hex(randomblob(8)))||'.com'; +DELETE from visit_source; +VACUUM; diff --git a/tools/chrome-pak/index.html b/tools/chrome-pak/index.html new file mode 100755 index 0000000..ba5ccaf --- /dev/null +++ b/tools/chrome-pak/index.html @@ -0,0 +1,43 @@ + + + + + + + chrome-pak + + + +

chrome-pak

+ ..
+[ 586 Apr 15  2018]  pack.bat
+[ 14K Apr 15  2018]  pak_mingw32.exe
+[ 16K Apr 15  2018]  pak_mingw64.exe
+[ 647 Apr 15  2018]  unpack.bat
+

+

+

+ +0 directories, 4 files +

+

+ diff --git a/tools/chrome-pak/pack.bat b/tools/chrome-pak/pack.bat new file mode 100755 index 0000000..8246685 --- /dev/null +++ b/tools/chrome-pak/pack.bat @@ -0,0 +1,15 @@ +@echo off +setlocal EnableExtensions EnableDelayedExpansion +if exist "%SystemRoot%\SysWOW64\cmd.exe" set x64=1 +set core_x64=pak_mingw64.exe +set core_x86=pak_mingw32.exe +set "WORK_DIR=%~dp0" +set "file=%~1" +set "pack_file=%~dpn1_packed.pak" +if not exist "%WORK_DIR%" md "%WORK_DIR%" +pushd "%WORK_DIR%" +if "%x64%"=="1" ( set core=%core_x64% ) else ( set core=%core_x86% ) +if not exist %core% echo core program (%core%) NOT FOUND! &pause &exit +if exist "%file%" %core% -p "%file%" "%pack_file%" +if exist "%pack_file%" echo packed "%pack_file%" from "%file%" +timeout /t 5||pause \ No newline at end of file diff --git a/tools/chrome-pak/pak_mingw32.exe b/tools/chrome-pak/pak_mingw32.exe new file mode 100755 index 0000000..3f59b11 Binary files /dev/null and b/tools/chrome-pak/pak_mingw32.exe differ diff --git a/tools/chrome-pak/pak_mingw64.exe b/tools/chrome-pak/pak_mingw64.exe new file mode 100755 index 0000000..3e72866 Binary files /dev/null and b/tools/chrome-pak/pak_mingw64.exe differ diff --git a/tools/chrome-pak/unpack.bat b/tools/chrome-pak/unpack.bat new file mode 100755 index 0000000..c024fde --- /dev/null +++ b/tools/chrome-pak/unpack.bat @@ -0,0 +1,16 @@ +@echo off +setlocal EnableExtensions EnableDelayedExpansion +if exist "%SystemRoot%\SysWOW64\cmd.exe" set x64=1 +set core_x64=pak_mingw64.exe +set core_x86=pak_mingw32.exe +set "WORK_DIR=%~dp0" +set "file=%~1" +set unpack_dir=%~dpn1_unpacked +if not exist "%WORK_DIR%" md "%WORK_DIR%" +pushd "%WORK_DIR%" +if "%x64%"=="1" ( set core=%core_x64% ) else ( set core=%core_x86% ) +if not exist %core% echo core program (%core%) NOT FOUND! &pause &exit +if not exist "%unpack_dir%" md "%unpack_dir%" +if exist "%file%" %core% -u "%file%" "%unpack_dir%" +if exist "%unpack_dir%\pak_index.ini" echo Unpacked "%file%" to "%unpack_dir%" +timeout /t 5||pause \ No newline at end of file diff --git a/tools/create-cookie-file.sql b/tools/create-cookie-file.sql new file mode 100755 index 0000000..ea8eb00 --- /dev/null +++ b/tools/create-cookie-file.sql @@ -0,0 +1,42 @@ +INSERT INTO "main"."cookies" ( + "creation_utc", + "host_key", + "top_frame_site_key", + "name", + "value", + "encrypted_value", + "path", + "expires_utc", + "is_secure", + "is_httponly", + "last_access_utc", + "has_expires", + "is_persistent", + "priority", + "samesite", + "source_scheme", + "source_port", + "is_same_party", + "last_update_utc" +) +VALUES ( + '13347199299620897', + lower(hex(randomblob(4)))||'.com', + '', + lower(hex(randomblob(8))), + lower(hex(randomblob(8))), + '', + '/', + '13378735299620897', + '1', + '0', + '13347199299620897', + '1', + '1', + '1', + '0', + '2', + '443', + '0', + '13347199299620962' +); diff --git a/tools/index.html b/tools/index.html new file mode 100755 index 0000000..2a91275 --- /dev/null +++ b/tools/index.html @@ -0,0 +1,47 @@ + + + + + + + tools + + + +

tools

+ ..
+[   0 May 10 15:08]  chrome-pak
+[   0 May 10 15:08]  vivaldi-searchengine-sync
+[1.7K Feb 18 19:53]  anonymize-history.sql
+[ 631 Feb 17 18:05]  create-cookie-file.sql
+[3.2M May  5 14:20]  Giant-Bookmarks.zip
+[  96 Jan 29  2020]  keepass-to-chrome-csv.cmd
+[689K Dec 18  2017]  ListExtensions.exe
+[2.5M Sep 16  2017]  python27.dll
+

+

+

+ +2 directories, 6 files +

+

+ diff --git a/tools/keepass-to-chrome-csv.cmd b/tools/keepass-to-chrome-csv.cmd new file mode 100755 index 0000000..d842d1b --- /dev/null +++ b/tools/keepass-to-chrome-csv.cmd @@ -0,0 +1,3 @@ +@echo off +sed.exe -i 's/"//g' %1 +sed.exe -i -E 's/(.*),(.*),(.*),(.*)(,.*)/\1,\4,\2,\3/' %1 diff --git a/tools/python27.dll b/tools/python27.dll new file mode 100755 index 0000000..eabfc24 Binary files /dev/null and b/tools/python27.dll differ diff --git a/tools/vivaldi-searchengine-sync/chrome/export_chrome_search_engines.sh b/tools/vivaldi-searchengine-sync/chrome/export_chrome_search_engines.sh new file mode 100755 index 0000000..512bc3a --- /dev/null +++ b/tools/vivaldi-searchengine-sync/chrome/export_chrome_search_engines.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +DESTINATION=${1:-./keywords.sql} +TEMP_SQL_SCRIPT=/tmp/sync_chrome_sql_script +echo "Exporting Chrome keywords to $DESTINATION..." +cd ~/Library/Application\ Support/Google/Chrome/Default +echo .output $DESTINATION > $TEMP_SQL_SCRIPT +echo .dump keywords >> $TEMP_SQL_SCRIPT +sqlite3 -init $TEMP_SQL_SCRIPT Web\ Data .exit +rm $TEMP_SQL_SCRIPT diff --git a/tools/vivaldi-searchengine-sync/chrome/import_chrome_search_engines.cmd b/tools/vivaldi-searchengine-sync/chrome/import_chrome_search_engines.cmd new file mode 100755 index 0000000..0da93fe --- /dev/null +++ b/tools/vivaldi-searchengine-sync/chrome/import_chrome_search_engines.cmd @@ -0,0 +1,42 @@ +@echo off + +tasklist /FI "IMAGENAME eq chrome.exe" 2>NUL | find /I /N "chrome.exe">NUL +if "%ERRORLEVEL%"=="0" ( + echo Close Chrome and try again... + pause + exit /B 1 +) + +set /P PROCEED=This will overwrite your Google Chrome search engines! Are you sure? +if "%PROCEED%"=="Y" goto DoIt +if "%PROCEED%"=="y" goto DoIt +if "%PROCEED%"=="YES" goto DoIt +if "%PROCEED%"=="Yes" goto DoIt +if "%PROCEED%"=="yes" goto DoIt +echo Cancelled operation. +pause +exit /B 2 + +:DoIt +set CURRENT_DRIVE=%~d0 +set CURRENT_DIR=%~p0 +if "%1"=="" ( + set SOURCE=%CURRENT_DRIVE%%CURRENT_DIR%keywords.sql +) else ( + set SOURCE=%~f1 +) + +set SOURCE=%SOURCE:\=/% +set TEMP_SQL_SCRIPT=%TEMP%\sync_chrome_sql_script + +pushd +echo Importing Chrome keywords from %SOURCE%... +cd /D "%HOMEDRIVE%%HOMEPATH%\AppData\Local\Google\Chrome\User Data\Default" +echo DROP TABLE IF EXISTS keywords;> %TEMP_SQL_SCRIPT% +echo .read "%SOURCE%">> %TEMP_SQL_SCRIPT% +copy "Web Data" "Web Data.backup" +"%CURRENT_DRIVE%%CURRENT_DIR%\sqlite3.exe" -init %TEMP_SQL_SCRIPT% "Web Data" .exit +del %TEMP_SQL_SCRIPT% +popd + +if errorlevel 1 pause diff --git a/tools/vivaldi-searchengine-sync/chrome/import_chrome_search_engines.sh b/tools/vivaldi-searchengine-sync/chrome/import_chrome_search_engines.sh new file mode 100755 index 0000000..c7a1fbf --- /dev/null +++ b/tools/vivaldi-searchengine-sync/chrome/import_chrome_search_engines.sh @@ -0,0 +1,22 @@ +#!/bin/sh +if ps -x | grep -v grep | grep Google\ Chrome > /dev/null; then + echo "Close Chrome and try again..." + exit 1 +fi + +read -p "This will overwrite your Google Chrome search engines! Are you sure? " -n 1 +if [[ ! $REPLY =~ ^[Yy]$ ]]; then + echo "Cancelling operation." + exit 1 +fi + +SOURCE=${1:-./keywords.sql} +TEMP_SQL_SCRIPT=/tmp/sync_chrome_sql_script +echo +echo "Importing Chrome keywords from $SOURCE..." +cd ~/Library/Application\ Support/Google/Chrome/Default +echo DROP TABLE IF EXISTS keywords\; > $TEMP_SQL_SCRIPT +echo .read $SOURCE >> $TEMP_SQL_SCRIPT +cp -f "Web Data" "Web Data.backup" +sqlite3 -init $TEMP_SQL_SCRIPT Web\ Data .exit +rm $TEMP_SQL_SCRIPT diff --git a/tools/vivaldi-searchengine-sync/chrome/index.html b/tools/vivaldi-searchengine-sync/chrome/index.html new file mode 100755 index 0000000..4bedfb8 --- /dev/null +++ b/tools/vivaldi-searchengine-sync/chrome/index.html @@ -0,0 +1,42 @@ + + + + + + + chrome + + + +

chrome

+ ..
+[ 348 Dec 29  2010]  export_chrome_search_engines.sh
+[1.1K Jan 18  2011]  import_chrome_search_engines.cmd
+[ 665 Jan 18  2011]  import_chrome_search_engines.sh
+

+

+

+ +0 directories, 3 files +

+

+ diff --git a/tools/vivaldi-searchengine-sync/index.html b/tools/vivaldi-searchengine-sync/index.html new file mode 100755 index 0000000..2a3728c --- /dev/null +++ b/tools/vivaldi-searchengine-sync/index.html @@ -0,0 +1,42 @@ + + + + + + + vivaldi-searchengine-sync + + + +

vivaldi-searchengine-sync

+ ..
+[   0 May 10 15:08]  chrome
+[1.4K Jul 11  2023]  vivaldi-keywords-insert.sql
+[1.4K Jul 18  2023]  vivaldi-searchengine-sync.cmd
+

+

+

+ +1 directory, 2 files +

+

+ diff --git a/tools/vivaldi-searchengine-sync/vivaldi-keywords-insert.sql b/tools/vivaldi-searchengine-sync/vivaldi-keywords-insert.sql new file mode 100755 index 0000000..cfd4b2a --- /dev/null +++ b/tools/vivaldi-searchengine-sync/vivaldi-keywords-insert.sql @@ -0,0 +1,38 @@ +begin transaction; +insert into keywords +select (select max(k.id) from keywords k) + row_number() over (order by kt.id) id, + kt.short_name, + kt.keyword, + kt.favicon_url, + kt.url, + -- Do not auto-delete engines on browser update + 0 as safe_for_autoreplace, + kt.originating_url, + kt.date_created, + kt.usage_count, + kt.input_encodings, + kt.suggest_url, + kt.prepopulate_id, + kt.created_by_policy, + kt.last_modified, + -- Ensure sync_guid is unique + printf('%s-%s-%s-%s-%s', lower(hex(randomblob(4))), lower(hex(randomblob(2))), lower(hex(randomblob(2))), + lower(hex(randomblob(2))), lower(hex(randomblob(6)))) as sync_guid, + kt.alternate_urls, + kt.image_url, + kt.search_url_post_params, + kt.suggest_url_post_params, + kt.image_url_post_params, + kt.new_tab_url, + kt.last_visited, + kt.created_from_play_api, + kt.is_active, + -- Ensure position is unique; increment over highest existing position + -- It's unclear if the order of this value actually matters. The runtime position in Vivaldi appears to rely on the ID only. + -- Alternative: substr(hex(randomblob(30)), 1, 60) + printf('%s%d', (select max(k.position) from keywords k), row_number() over (order by kt.id)) as position, + kt.starter_pack_id, + kt.enforced_by_policy +from keywords_temp kt; +drop table keywords_temp; +commit transaction; diff --git a/tools/vivaldi-searchengine-sync/vivaldi-searchengine-sync.cmd b/tools/vivaldi-searchengine-sync/vivaldi-searchengine-sync.cmd new file mode 100755 index 0000000..34b9927 --- /dev/null +++ b/tools/vivaldi-searchengine-sync/vivaldi-searchengine-sync.cmd @@ -0,0 +1,40 @@ +@echo off + +set CHROME_PROFILE="%LOCALAPPDATA%\Chromium\User Data\Default" +set VIVALDI_PROFILE="%LOCALAPPDATA%\Vivaldi\User Data\Default" +set SQLITE3="sqlite3" +set SCRIPTDIR=%~dp0 + +echo Copying Chrome Web Data to chrome.db... +copy /y %CHROME_PROFILE%\"Web Data" chrome.db +if %errorlevel% neq 0 exit /b %errorlevel% + +echo Copying Vivaldi Web Data to vivaldi.db... +copy /y %VIVALDI_PROFILE%\"Web Data" vivaldi.db +if %errorlevel% neq 0 exit /b %errorlevel% + +echo Exporting Chrome 'keywords' table to keywords.csv... +%SQLITE3% chrome.db -bail -header -csv "select * from keywords;" > keywords.csv +if %errorlevel% neq 0 exit /b %errorlevel% + +echo Importing keywords.csv to vivaldi.db as new table 'keywords_temp' +%SQLITE3% vivaldi.db -bail -cmd ".mode csv" -cmd ".import keywords.csv keywords_temp" .exit +if %errorlevel% neq 0 exit /b %errorlevel% + +echo Moving 'keywords_temp' table data to the 'keywords' table... +%SQLITE3% vivaldi.db -bail -init %SCRIPTDIR%\vivaldi-keywords-insert.sql .exit +if %errorlevel% neq 0 exit /b %errorlevel% + +echo Renaming vivaldi.db to 'Web Data'... +move /y vivaldi.db "Web Data" +if %errorlevel% neq 0 exit /b %errorlevel% + +echo Cleaning up temporary files... +del chrome.db keywords.csv +if %errorlevel% neq 0 exit /b %errorlevel% + +echo All done! +echo Now copy 'Web Data' back into your profile :) +echo Make sure to close the browser first! + +pause diff --git a/user_files/Emulate_text_browser.css b/user_files/Emulate_text_browser.css new file mode 100755 index 0000000..a53799f --- /dev/null +++ b/user_files/Emulate_text_browser.css @@ -0,0 +1,243 @@ +@charset "UTF-8"; +/* +Name: Emulate text browser +Version: 1.10 +Author: Opera Software ASA +Description: This is a "text browser" style sheet. Tables and forms are kept, but images are +not displayed. Only one font and one size is used, but spacing and bolding is used on headings. + +Copyright © 2003 Opera Software ASA. +*/ + +/* All elements */ + +* { + position: static !important; + + max-height: none !important; + min-height: 0px !important; + height: auto !important; + max-width: none !important; + min-width: 0px !important; + width: auto !important; + border: none !important; + outline: none !important; + + background: Blue !important; + color: White !important; + + font-family: "Fixedsys", "Courier New", "Courier", monospace !important; + +/* + This font may not scale well, so several alternative sizes have been provided. + Please apply the one that best fints your resolution. + + 1em is the font-size defined in File > Preferences > Fonts > Normal + 2em would be twice that and 0.5em would be half that +*/ + + font-size: 1em !important; +/* font-size: 16px !important; */ +/* font-size: 12px !important; */ +/* font-size: 10px !important; */ + + font-weight: normal !important; + font-style: normal !important; + line-height: 1em !important; + + text-align: left !important; + text-decoration: none !important; + letter-spacing: 0px !important; +} + +/* Form elements */ +input, textarea, select { + border-top: 2px solid Black !important; + border-right: 1px solid silver !important; + border-bottom: 1px solid silver !important; + border-left: 2px solid Black !important; + + background: White !important; + color: Black !important; + font-weight: normal !important; +} + +input[type="text"], input[type="password"] {min-height: 1.2em !important;} + +textarea {min-height: 4em !important;} + +button, input[type="file"], input[type="submit"], input[type="button"], input[type="reset"], input[type="image"] { + border: medium outset !important; + padding: 2px 3px 2px 3px !important; + min-width: 2em !important; + height: 1.2em !important; + + background: Silver !important; + color: Black !important; + text-align: center !important; +} + +button:active, input[type="file"]:active, input[type="submit"]:active, +input[type="button"]:active, input[type="reset"]:active, input[type="image"]:active { + border: medium inset !important; + padding: 2px 2px 2px 4px !important; +} + +input[type="radio"] {border: none !important;} + +/* Headings */ +h1, h2, h3, h4, h5, h6, th, caption { + font-weight: bold !important; + margin-top: 2em !important; +} + +h1 {text-transform: uppercase !important;} +h1, h2 {letter-spacing: 5px !important;} +h3 {letter-spacing: 3px !important;} +h4 {letter-spacing: 2px !important;} + +/* Nested lists */ +ol > li {list-style: decimal !important;} +ol ol > li {list-style: upper-alpha !important;} +ol ol ol > li {list-style: lower-alpha !important;} +ol ol ol ol > li {list-style: lower-roman !important;} + +ul > li {list-style: square !important;} +ul ul > li {list-style: circle !important;} + +/* Links */ +a, a[href], a[href]:link, span {font-weight: inherit !important;} +a[href]:visited {text-decoration: line-through !important;} +a[href], a[href]:link, a[href]:hover {text-decoration: underline !important;} +a[href]:active, a[href] img[alt]:active {text-decoration: none !important;} + +/* Other */ +kbd { + background: White !important; + color: Blue !important; + padding: 0px 2px !important; +} + +hr { + height: 0px !important; + border-top: medium dashed White !important; + margin: 4px 0px 4px 0px !important; +} + +@media screen, handheld, projection, tv { + +/* Display document title on screen */ +head, title {display: block !important;} + +title { + margin-bottom: 1em !important; + padding: 8px !important; + + background-color: White !important; + color: Blue !important; + + text-align: center !important; + font-weight: bold !important; +} + +body {padding-bottom: 3.5em !important;} + +a[target]:before, *[lang]:before,*[lang]:after, img, iframe { + padding: 0px 2px 1px 2px !important; + background: White !important; + color: Blue !important; + font-size: smaller !important; +} +a[target]:before, *[lang]:before, img {margin-right: 4px !important;} +a[target]:before {content: "Win:" !important;} +a[target="_blank"]:before {content: "New:" !important;} + +/* Display text language when given */ +*[lang]:before {content: "Lng " attr(lang) ":" !important;} + +*[lang]:after { + content: attr(lang) !important; + margin-left: 4px !important; + text-decoration: line-through !important; +} + +body:after, body[lang]:after { + display: block !important; + clear: both !important; + content: "Navigate: [Z] and [X] — Elements: [Shift+arrow keys] — Shortcuts: [Ctrl+B]" !important; + + position: fixed !important; + bottom: 0px !important; + + margin-left: auto !important; + margin-right: auto !important; + border-top: thin solid Black !important; + border-left: thin solid Black !important; + border-right: thin solid Black !important; + padding: 2px !important; + width: 100% !important; + height: auto !important; + + background: White !important; + color: Blue !important; + + text-align: center !important; + font-size: smaller !important; + text-decoration: none !important; +} + +img, iframe { + margin-left: 2px !important; + line-height: 1.5em !important; +} + +iframe {content: "IFRAME" !important;} +iframe[longdesc] {content: attr(longdesc) !important;} + +/* Change images to alternate text */ +img { + display: none !important; + content: "IMG" !important; +} + +img[alt], a[href] img {display: inline !important;} +input[type="image"] {content: "Submit" !important;} +img[alt], input[type="image"][alt] {content: attr(alt) !important;} + +} + +@media print { + +* { + background: white !important; + color: Black !important; + background: White !important; + color: Black !important; +} + +img { + display: none !important; + + margin-right: 4px !important; + padding: 0px 2px 1px 2px !important; + outline: thin solid Black !important; + + color: Gray !important; + background-color: White !important; + font-size: smaller !important; +} + +a[href]:visited {text-decoration: underline !important;} + +input[type="image"] {content: "Submit" !important;} +input[type="image"][alt] {content: attr(alt) !important;} + +img[alt] { + display: inline !important; + content: attr(alt) !important; + margin-left: 2px !important; + line-height: 1.5em !important; +} + +} + diff --git a/user_files/Nostalgia.css b/user_files/Nostalgia.css new file mode 100755 index 0000000..f1e02f2 --- /dev/null +++ b/user_files/Nostalgia.css @@ -0,0 +1,209 @@ +@charset "UTF-8"; +/* +Name: Nostalgia +Version: 1.10 +Author: Opera Software ASA +Description: This style sheet attempts to simulate surfing the Web with a browser written in the early 1980s. + +Copyright © 2003 Opera Software ASA. +*/ + +* { + font-family: "Fixedsys", "Courier New", "Courier", monospace !important; + font-style: normal !important; + line-height: 1.3em !important; + letter-spacing: 0px !important; + + text-decoration: none !important; + text-align: left !important; + border: none !important; + outline: none !important; +} + +title, h1 {text-transform: uppercase !important;} + +h1, h2, h3, h4, h5, h6, th, caption {margin-top: 2em !important;} + +iframe {content: "IFRAME removed" !important;} +iframe[title] {content: attr(title) !important;} +iframe[longdesc] {content: attr(longdesc) !important;} + +img { + max-width: 96px !important; + max-height: 84px !important; +} + +iframe, img[alt], img[title] { + padding: 0.2em !important; + max-width: none !important; + max-height: none !important; + width: auto !important; + height: auto !important; + background: Black !important; + color: White !important; +} + +img[title] {content: attr(title) !important;} +img[alt] {content: attr(alt) !important;} + +input, textarea, select { + background: White !important; + color: Black !important; +} + +input[type="text"], input[type="password"] {min-height: 1.2em !important;} + +textarea {min-height: 4em !important;} + +button, input[type="file"], input[type="submit"], input[type="button"], input[type="reset"], input[type="image"] { + height: 1.2em !important; + background: Silver !important; + color: Black !important; + text-align: center !important; + padding: 2px 3px 2px 3px !important; + min-width: 2em !important; +} + +button:active, input[type="file"]:active, input[type="submit"]:active, +input[type="button"]:active, input[type="reset"]:active, input[type="image"]:active {padding: 2px 2px 2px 4px !important;} + +hr { + height: 0px !important; + border-top: medium dashed #6C5EB5 !important; + margin: 4px 0px 4px 0px !important; +} + +@media screen, projection { + +* { + font-size: 22px !important; + font-weight: bold !important; + white-space: normal !important; + + background: #352879 !important; /*Blue*/ + color: #6C5EB5 !important; /*Light blue*/ + + position: static !important; + float: none !important; + max-width: 80% !important; + min-width: 0px !important; + width: auto !important; + max-height: none !important; + min-height: 0px !important; + height: auto !important; +} + +html { + border: 2.5em solid #6C5EB5 !important; /*Light blue*/ + width: 80% !important; + margin: 0em !important; + padding: 0em !important; + + background: #6C5EB5 !important; /*Light blue*/ + color: #352879 !important; /*Blue*/ +} + +html:after { + display: block !important; + clear: both !important; + margin: 0em !important; + padding: 0em 0em 0em 2px !important; + content: "\2588" !important; + + background: #352879 !important; /*Blue*/ + color: #6C5EB5 !important; /*Light blue*/ + text-decoration: blink !important; + text-align: left !important; +} + +head, title {display: block !important;} + +head:before, head:after, body:before, body:after { + display: block !important; + clear: both !important; + + background: #352879 !important; /*Blue*/ + color: #6C5EB5 !important; /*Light blue*/ + text-decoration: none !important; +} + +head:after, body:before, body:after {text-align: left !important;} + +head:before { + margin: 0em !important; + padding: 1em 0em 2em 0em !important; + content: "**** VIVALDI FOR 8-BIT COMPUTERS ****" !important; + text-align: center !important; +} + +head:after { + margin: 0em !important; + padding: 0em !important; + content: "READY." !important; +} + +body { + margin: 0px !important; + padding: 1em 12px 0.5em 2px !important; + text-align: left !important; +} + +body:before { + margin: 0em 0em 1em 0em !important; + padding: 0em !important; + content: "RUN" !important; +} + +body:after { + margin: 2em 0em 0em 0em !important; + padding: 0em !important; + content: "READY." !important; +} + +title { + margin: 0em !important; + padding: 0px 0px 0px 2px !important; +} + +title:before {content: 'LOAD"' !important;} + +title:after {content: '",8\ALOADING' !important;} + +table, caption, tr, thead, tfoot, tbody, th, td { + display: block !important; + text-align: left !important; +} + +pre {white-space: -pre-wrap !important;} + +input, textarea, select {max-width: 38em !important;} + +kbd, em, b, i, strong, u { + padding: 0px 2px 0px 2px !important; + background: #6C5EB5 !important; /*Light blue*/ + color: #352879 !important; /*Blue*/ +} + +a[href], a[href]:link, a[href]:hover, a[href]:active { + color: #FFFFFF !important; /*White*/ + text-decoration: none !important; +} + +a[href]:visited { +/* color: #6F3D86 !important;*/ /*Purple */ + color: #9A6759 !important; /*Light red*/ + text-decoration: none !important; +} + +} + +@media print { + +* { + font-size: 12pt !important; + background: White !important; + color: Black !important; +} + +} + diff --git a/user_files/Textonly.css b/user_files/Textonly.css new file mode 100755 index 0000000..c103ef6 --- /dev/null +++ b/user_files/Textonly.css @@ -0,0 +1,165 @@ +@charset "utf-8"; +/* Name: 1490680840 + Emulate text browser + Copyright 2006 Opera Software */ +* { + font-family: monospace !important; + font-size: 1em !important; + font-weight: normal !important; + font-style: normal !important; + text-align: left !important; + text-decoration: none !important; + letter-spacing: 0px !important; + line-height: 1em !important; + color: white !important; + background: #2A2F47 !important; + border: none !important; + outline: none !important; + width: auto !important; + min-width: 0px !important; + max-width: none !important; + height: auto !important; + min-height: 0px !important; + max-height: none !important; + position: static !important; +} +html::before, html::after, html *::before, html *::after {display: none !important;} +input, textarea, select { + font-weight: normal !important; + color: black !important; + background: white !important; + border-width: 2px 1px 1px 2px !important; + border-style: solid !important; + border-color: black silver silver black !important; +} +input[type="text"], input[type="password"] {min-height: 1.2em !important;} +textarea {min-height: 4em !important;} +button, input[type="file"], input[type="submit"], input[type="button"], input[type="reset"], input[type="image"] { + text-align: center !important; + color: black !important; + background: silver !important; + padding: 2px 3px 2px 3px !important; + border: medium outset !important; + min-width: 2em !important; + height: 1.2em !important; +} +button:active, input[type="file"]:active, input[type="submit"]:active, input[type="button"]:active, input[type="reset"]:active, +input[type="image"]:active { + padding: 2px 2px 2px 4px !important; + border: medium inset !important; +} +input[type="radio"] {border: none !important;} +h1, h2, h3, h4, h5, h6, th, caption { + font-weight: bold !important; + margin-top: 2em !important; +} +h1 {text-transform: uppercase !important;} +h1, h2 {letter-spacing: 5px !important;} +h3 {letter-spacing: 3px !important;} +h4 {letter-spacing: 2px !important;} +ol > li {list-style: decimal !important;} +ol ol > li {list-style: upper-alpha !important;} +ol ol ol > li {list-style: lower-alpha !important;} +ol ol ol ol > li {list-style: lower-roman !important;} +ul > li {list-style: square !important;} +ul ul > li {list-style: circle !important;} +a, a[href], a[href]:link, span {font-weight: inherit !important;} +a[href]:visited {text-decoration: line-through !important;} +a[href], a[href]:link, a[href]:hover {text-decoration: underline !important;} +a[href]:active, a[href] img[alt]:active {text-decoration: none !important;} +kbd { + color: #3366CC !important; + background: white !important; + padding: 0px 2px !important; +} +hr { + margin: 4px 0px 4px 0px !important; + border-top: medium dashed white !important; + height: 0px !important; +} +@media screen, handheld, projection, tv { + head, title {display: block !important;} + title { + font-weight: bold !important; + text-align: center !important; + color: #FFCC00 !important; + background-color: #000114 !important; + padding: 8px !important; + margin-bottom: 1em !important; + } + body {padding: 0 1em 3.5em !important;} + html a[target]:before, html *[lang]:before, html *[lang]:after, img, iframe { + font-size: smaller !important; + color: #FFCC00 !important; + background: #000114 !important; + padding: 0px 2px 1px 2px !important; + display: inline !important; + } + html a[target]:before, html *[lang]:before, img {margin-right: 4px !important;} + html a[target]:before {content: "Win:" !important;} + html a[target="_blank"]:before {content: "New:" !important;} + html *[lang]:before {content: "Lng " attr(lang) ":" !important;} + html *[lang]:after { + content: attr(lang) !important; + text-decoration: line-through !important; + margin-left: 4px !important; + } + html body:after, html body[lang]:after { + content: "Navigate: [Z] and [X] — Elements: [Shift+arrow keys] — Shortcuts: [Ctrl+B]" !important; + font-size: smaller !important; + text-align: center !important; + text-decoration: none !important; + color: #FFCC00 !important; + background: #000114 !important; + padding: 2px 0 !important; + margin-left: auto !important; + margin-right: auto !important; + border-top: thin solid black !important; + border-left: thin solid black !important; + border-right: thin solid black !important; + width: 100% !important; + height: auto !important; + clear: both !important; + position: fixed !important; + left: 0 !important; + bottom: 0px !important; + display: block !important; + } + img, iframe { + margin-left: 2px !important; + line-height: 1.5em !important; + } + iframe {content: "IFRAME" !important;} + iframe[longdesc] {content: attr(longdesc) !important;} + img { + content: "IMG" !important; + display: none !important; + } + img[alt], a[href] img {display: inline !important;} + input[type="image"] {content: "Submit" !important;} + img[alt], input[type="image"][alt] {content: attr(alt) !important;} +} +@media print { + * { + color: black !important; + background: white !important; + } + img { + font-size: smaller !important; + color: Gray !important; + background-color: white !important; + padding: 0px 2px 1px 2px !important; + margin-right: 4px !important; + outline: thin solid black !important; + display: none !important; + } + a[href]:visited {text-decoration: underline !important;} + input[type="image"] {content: "Submit" !important;} + input[type="image"][alt] {content: attr(alt) !important;} + img[alt] { + content: attr(alt) !important; + line-height: 1.5em !important; + margin-left: 2px !important; + display: inline !important; + } +} diff --git a/user_files/index.html b/user_files/index.html new file mode 100755 index 0000000..2cfc631 --- /dev/null +++ b/user_files/index.html @@ -0,0 +1,42 @@ + + + + + + + user_files + + + +

user_files

+ ..
+[6.3K Nov 25  2003]  Emulate_text_browser.css
+[4.9K Nov 25  2003]  Nostalgia.css
+[5.6K Jun  8  2006]  Textonly.css
+

+

+

+ +0 directories, 3 files +

+

+ diff --git a/userscript/Absolute Enable Right Click & Copy.options.json b/userscript/Absolute Enable Right Click & Copy.options.json new file mode 100755 index 0000000..3730074 --- /dev/null +++ b/userscript/Absolute Enable Right Click & Copy.options.json @@ -0,0 +1 @@ +{"options":{"check_for_updates":false,"comment":"","compat_foreach":false,"compat_metadata":false,"compat_powerful_this":null,"compat_wrappedjsobject":false,"compatopts_for_requires":true,"noframes":null,"override":{"merge_connects":true,"merge_excludes":true,"merge_includes":false,"merge_matches":true,"orig_connects":[],"orig_excludes":[],"orig_includes":["*://*"],"orig_matches":[],"orig_noframes":null,"orig_run_at":"document-idle","use_blockers":[],"use_connects":[],"use_excludes":[],"use_includes":[],"use_matches":["*://connect.garmin.com/*","*://*.ovps.de/*","*://*.vaberlin.de/*","*://*.discord.com/*"]},"run_at":null,"sandbox":null,"tab_types":null,"unwrap":null},"settings":{"enabled":true,"position":3},"meta":{"name":"Absolute Enable Right Click & Copy","uuid":"3ded8744-62b8-45b2-afdc-2daa3f6313af","modified":1672099402357,"file_url":"https://greasyfork.org/scripts/23772-absolute-enable-right-click-copy/code/Absolute%20Enable%20Right%20Click%20%20Copy.user.js"}} \ No newline at end of file diff --git a/userscript/Absolute Enable Right Click & Copy.storage.json b/userscript/Absolute Enable Right Click & Copy.storage.json new file mode 100755 index 0000000..8e96181 --- /dev/null +++ b/userscript/Absolute Enable Right Click & Copy.storage.json @@ -0,0 +1 @@ +{"ts":1654514671397,"data":{}} \ No newline at end of file diff --git a/userscript/Absolute Enable Right Click & Copy.user.js b/userscript/Absolute Enable Right Click & Copy.user.js new file mode 100755 index 0000000..5fb68f2 --- /dev/null +++ b/userscript/Absolute Enable Right Click & Copy.user.js @@ -0,0 +1,187 @@ +// ==UserScript== +// @name Absolute Enable Right Click & Copy +// @namespace Absolute Right Click +// @description Force Enable Right Click & Copy & Highlight +// @shortcutKeys [Ctrl + `] Activate Absolute Right Click Mode To Force Remove Any Type Of Protection +// @author Absolute +// @version 1.8.9 +// @include *://* +// @icon https://i.imgur.com/AC7SyUr.png +// @compatible Chrome Google Chrome + Tampermonkey +// @grant GM_registerMenuCommand +// @license BSD +// @copyright Absolute, 2016-Oct-06 +// ==/UserScript== + +(function() { + 'use strict'; + + var css = document.createElement('style'); + var head = document.head; + + css.type = 'text/css'; + + css.innerText = `* { + -webkit-user-select: text !important; + -moz-user-select: text !important; + -ms-user-select: text !important; + user-select: text !important; + }`; + + function main() { + + var doc = document; + var body = document.body; + + var docEvents = [ + doc.oncontextmenu = null, + doc.onselectstart = null, + doc.ondragstart = null, + doc.onmousedown = null + ]; + + var bodyEvents = [ + body.oncontextmenu = null, + body.onselectstart = null, + body.ondragstart = null, + body.onmousedown = null, + body.oncut = null, + body.oncopy = null, + body.onpaste = null + ]; + + [].forEach.call( + ['copy', 'cut', 'paste', 'select', 'selectstart'], + function(event) { + document.addEventListener(event, function(e) { e.stopPropagation(); }, true); + } + ); + + alwaysAbsoluteMode(); + enableCommandMenu(); + head.appendChild(css); + document.addEventListener('keydown', keyPress); + } + + function keyPress(event) { + if (event.ctrlKey && event.keyCode == 220) { + return confirm('Activate Absolute Right Click Mode!') == true ? absoluteMode() : null; + } + } + + function absoluteMode() { + [].forEach.call( + ['contextmenu', 'copy', 'cut', 'paste', 'mouseup', 'mousedown', 'keyup', 'keydown', 'drag', 'dragstart', 'select', 'selectstart'], + function(event) { + document.addEventListener(event, function(e) { e.stopPropagation(); }, true); + } + ); + } + + function alwaysAbsoluteMode() { + let sites = ['example.com','www.example.com']; + const list = RegExp(sites.join('|')).exec(location.hostname); + return list ? absoluteMode() : null; + } + + function enableCommandMenu() { + var commandMenu = true; + try { + if (typeof(GM_registerMenuCommand) == undefined) { + return; + } else { + if (commandMenu == true ) { + GM_registerMenuCommand('Enable Absolute Right Click Mode', function() { + return confirm('Activate Absolute Right Click Mode!') == true ? absoluteMode() : null; + }); + } + } + } + catch(err) { + console.log(err); + } + } + + var blackList = [ + 'youtube.com','.google.','.google.com','greasyfork.org','twitter.com','instagram.com','facebook.com','translate.google.com','.amazon.','.ebay.','github.','stackoverflow.com', + 'bing.com','live.com','.microsoft.com','dropbox.com','pcloud.com','box.com','sync.com','onedrive.com','mail.ru','deviantart.com','pastebin.com', + 'dailymotion.com','twitch.tv','spotify.com','steam.com','steampowered.com','gitlab.com','.reddit.com' + ] + + var enabled = false; + var url = window.location.hostname; + var match = RegExp(blackList.join('|')).exec(url); + + if (window && typeof window != undefined && head != undefined) { + + if (!match && enabled != true) { + + main(); + enabled = true + + //console.log(location.hostname); + + window.addEventListener('contextmenu', function contextmenu(event) { + event.stopPropagation(); + event.stopImmediatePropagation(); + var handler = new eventHandler(event); + window.removeEventListener(event.type, contextmenu, true); + var eventsCallBack = new eventsCall(function() {}); + handler.fire(); + window.addEventListener(event.type, contextmenu, true); + if (handler.isCanceled && (eventsCallBack.isCalled)) { + event.preventDefault(); + } + }, true); + } + + function eventsCall() { + this.events = ['DOMAttrModified', 'DOMNodeInserted', 'DOMNodeRemoved', 'DOMCharacterDataModified', 'DOMSubtreeModified']; + this.bind(); + } + + eventsCall.prototype.bind = function() { + this.events.forEach(function (event) { + document.addEventListener(event, this, true); + }.bind(this)); + }; + + eventsCall.prototype.handleEvent = function() { + this.isCalled = true; + }; + + eventsCall.prototype.unbind = function() { + this.events.forEach(function (event) {}.bind(this)); + }; + + function eventHandler(event) { + this.event = event; + this.contextmenuEvent = this.createEvent(this.event.type); + } + + eventHandler.prototype.createEvent = function(type) { + var target = this.event.target; + var event = target.ownerDocument.createEvent('MouseEvents'); + event.initMouseEvent( + type, this.event.bubbles, this.event.cancelable, + target.ownerDocument.defaultView, this.event.detail, + this.event.screenX, this.event.screenY, this.event.clientX, this.event.clientY, + this.event.ctrlKey, this.event.altKey, this.event.shiftKey, this.event.metaKey, + this.event.button, this.event.relatedTarget + ); + return event; + }; + + eventHandler.prototype.fire = function() { + var target = this.event.target; + var contextmenuHandler = function(event) { + event.preventDefault(); + }.bind(this); + target.dispatchEvent(this.contextmenuEvent); + this.isCanceled = this.contextmenuEvent.defaultPrevented; + }; + + } + +})(); + diff --git a/userscript/Disable page close confirmation.options.json b/userscript/Disable page close confirmation.options.json new file mode 100755 index 0000000..a46256a --- /dev/null +++ b/userscript/Disable page close confirmation.options.json @@ -0,0 +1 @@ +{"options":{"check_for_updates":true,"comment":null,"compat_foreach":false,"compat_metadata":false,"compat_powerful_this":null,"compat_prototypes":false,"compat_wrappedjsobject":false,"compatopts_for_requires":true,"noframes":null,"override":{"merge_connects":true,"merge_excludes":true,"merge_includes":true,"merge_matches":false,"orig_connects":[],"orig_excludes":[],"orig_includes":[],"orig_matches":["*://*/*"],"orig_noframes":null,"orig_run_at":"document-start","use_blockers":[],"use_connects":[],"use_excludes":[],"use_includes":[],"use_matches":["*://music.youtube.com/*"]},"run_at":null,"tab_types":null},"settings":{"enabled":true,"position":2},"meta":{"name":"Disable page close confirmation","uuid":"29b5aaa7-8ef4-41a9-b589-583bc41a5779","modified":1642196588804,"file_url":"https://greasyfork.org/scripts/4279-disable-page-close-confirmation/code/Disable%20page%20close%20confirmation.user.js"}} \ No newline at end of file diff --git a/userscript/Disable page close confirmation.storage.json b/userscript/Disable page close confirmation.storage.json new file mode 100755 index 0000000..d5f701e --- /dev/null +++ b/userscript/Disable page close confirmation.storage.json @@ -0,0 +1 @@ +{"ts":1642196591002,"data":{}} \ No newline at end of file diff --git a/userscript/Disable page close confirmation.user.js b/userscript/Disable page close confirmation.user.js new file mode 100755 index 0000000..21d3aeb --- /dev/null +++ b/userscript/Disable page close confirmation.user.js @@ -0,0 +1,32 @@ +// ==UserScript== +// @name Disable page close confirmation +// @description Disable page close confirmation (onBeforeUnload) +// @namespace http://nags.must.die +// @version 2.0 +// @grant none +// @run-at document-start +// @match *://*/* +// ==/UserScript== + +(function () { + var spoofer = { + enumerable: true, + configurable: false, + get: () => null, + set: fn => fn, + }; + Object.defineProperties(window, { + onbeforeunload: spoofer, + onunload: spoofer, + }); + + var originalAdd = EventTarget.prototype.addEventListener; + EventTarget.prototype.addEventListener = function (type) { + var tl; + if (this !== window || + typeof type !== 'string' || + (tl = type.toLowerCase()) !== 'beforeunload' && tl !== 'unload') { + originalAdd.apply(this, arguments); + } + }; +})(); diff --git a/userscript/Google I'm Feeling Lucky Redirect.options.json b/userscript/Google I'm Feeling Lucky Redirect.options.json new file mode 100755 index 0000000..2a7aa05 --- /dev/null +++ b/userscript/Google I'm Feeling Lucky Redirect.options.json @@ -0,0 +1 @@ +{"options":{"check_for_updates":false,"comment":null,"compatopts_for_requires":true,"compat_wrappedjsobject":false,"compat_metadata":false,"compat_foreach":false,"compat_powerful_this":null,"sandbox":null,"noframes":null,"unwrap":null,"run_at":null,"tab_types":null,"override":{"merge_connects":true,"merge_excludes":true,"merge_includes":true,"merge_matches":true,"orig_connects":[],"orig_excludes":[],"orig_includes":["https://www.google.com/url?*q=*"],"orig_matches":[],"orig_noframes":null,"orig_run_at":"document-start","use_blockers":[],"use_connects":[],"use_excludes":[],"use_includes":[],"use_matches":[]}},"settings":{"enabled":true,"position":4},"meta":{"name":"Google I'm Feeling Lucky Redirect","uuid":"e8841671-f77e-4ce0-a44b-9d78f8618a39","modified":1672495936618,"file_url":"https://greasyfork.org/scripts/422086-google-i-m-feeling-lucky-redirect/code/Google%20I'm%20Feeling%20Lucky%20Redirect.user.js"}} \ No newline at end of file diff --git a/userscript/Google I'm Feeling Lucky Redirect.storage.json b/userscript/Google I'm Feeling Lucky Redirect.storage.json new file mode 100755 index 0000000..9db2591 --- /dev/null +++ b/userscript/Google I'm Feeling Lucky Redirect.storage.json @@ -0,0 +1 @@ +{"ts":1645628827820,"data":{}} \ No newline at end of file diff --git a/userscript/Google I'm Feeling Lucky Redirect.user.js b/userscript/Google I'm Feeling Lucky Redirect.user.js new file mode 100755 index 0000000..42b96a2 --- /dev/null +++ b/userscript/Google I'm Feeling Lucky Redirect.user.js @@ -0,0 +1,21 @@ +// ==UserScript== +// @name Google I'm Feeling Lucky Redirect +// @namespace https://snomiao.com/ +// @version 0.3.0 +// @description Immediately redirects when google prompts 'redirection notice'. Used to circumvent google pestering you when querying with I'm Feeling Lucky feature. +// @author snomiao +// @include https://www.google.com/url?*q=* +// @icon https://icons.duckduckgo.com/ip2/google.com.ico +// @run-at document-start +// @github https://github.com/snomiao/userscript.js/blob/master/GoogleImFeelingLuckyRedirect.user.js +// ==/UserScript== + +// ref: [Workaround for Google I'm Feeling Lucky Redirect]( https://greasyfork.org/en/scripts/390770-workaround-for-google-i-m-feeling-lucky-redirect ) + +const url = Object.fromEntries( + location.search + .slice(1) + .split('&') + .map((e) => e.split('=')) +).q; +if (url) location = url; diff --git a/userscript/RPS Night Mode.options.json b/userscript/RPS Night Mode.options.json new file mode 100755 index 0000000..2c3b724 --- /dev/null +++ b/userscript/RPS Night Mode.options.json @@ -0,0 +1 @@ +{"options":{"check_for_updates":true,"comment":null,"compatopts_for_requires":true,"compat_wrappedjsobject":false,"compat_metadata":false,"compat_foreach":false,"compat_powerful_this":null,"sandbox":null,"noframes":null,"unwrap":null,"run_at":null,"tab_types":null,"override":{"use_includes":[],"orig_includes":[],"merge_includes":true,"use_matches":[],"orig_matches":["*://*.rockpapershotgun.com/*"],"merge_matches":true,"use_excludes":[],"orig_excludes":["*://forum.rockpapershotgun.com/*"],"merge_excludes":true,"use_connects":[],"orig_connects":[],"merge_connects":true,"use_blockers":[],"orig_run_at":"document-start","orig_noframes":null}},"settings":{"enabled":true,"position":5},"meta":{"name":"RPS Night Mode","uuid":"0eb7141b-a77c-4f7d-b774-2599bfee0027","modified":1672497784464,"file_url":"https://greasyfork.org/scripts/370482-rps-night-mode/code/RPS%20Night%20Mode.user.js"}} \ No newline at end of file diff --git a/userscript/RPS Night Mode.storage.json b/userscript/RPS Night Mode.storage.json new file mode 100755 index 0000000..b0e1d14 --- /dev/null +++ b/userscript/RPS Night Mode.storage.json @@ -0,0 +1 @@ +{"ts":1665846673062,"data":{}} \ No newline at end of file diff --git a/userscript/RPS Night Mode.user.js b/userscript/RPS Night Mode.user.js new file mode 100755 index 0000000..ebb7087 --- /dev/null +++ b/userscript/RPS Night Mode.user.js @@ -0,0 +1,37 @@ +// ==UserScript== +// @name RPS Night Mode +// @namespace https://greasyfork.org/en/users/197428-pathduck +// @license MIT +// @version 0.40 +// @description Night mode for site "Rock, Paper, Shotgun" +// @author Pathduck +// @supportURL https://greasyfork.org/en/scripts/370482-rps-night-mode +// @match *://*.rockpapershotgun.com/* +// @exclude *://forum.rockpapershotgun.com/* +// @icon https://icons.duckduckgo.com/ip2/rockpapershotgun.com.ico +// @grant GM_addStyle +// @run-at document-start +// ==/UserScript== + +GM_addStyle(` +body {color: #eee !important; background: black !important;} +figcaption {color: #00b893 !important;} +input {color: #eee !important;} +#content {background: #393939 !important; border-radius: 16px;} +#comments .markdown {background: unset !important;} +.article[data-article-type], .summary[data-article-type] {--color: #ee77a7;--strap-color: #ee77a7;} +.article[data-premium=true], .summary[data-premium=true] {--color: #9763ff !important; --strap-color: #9763ff !important;} +.article_body_content blockquote {background: #222 !important;} +.app_header, .app_footer {background: black !important; border: none;} +.app_footer a, .app_footer button {color: #eee !important;} +.article p a, .article_header a {color: #00b893 !important;} +.archive_by_date a {color: #00b893 !important;} +.nav_primary a, .nav_secondary a {color: #eee !important;} +.profile-comments a {color: #00b893 !important;} +.section_title, .page_title, .label {color: #00b893 !important;} +.supporters_shelf .section_title {color: #9763ff !important;} +.strapline, .disclaimer, .alert {color: #eee !important;} +.title, .title a, .summary a {color: #00b893 !important;} +.thumbnail:after {content: unset !important;} +.username .name {color: white !important;} +`); diff --git a/userscript/Tampermonkey.global.json b/userscript/Tampermonkey.global.json new file mode 100755 index 0000000..e60a5aa --- /dev/null +++ b/userscript/Tampermonkey.global.json @@ -0,0 +1 @@ +{"action_menu_columns":"1","action_menu_scripts_hide_disabled":false,"action_menu_scripts_sort":"auto","appearance_badge_color":"#ee3131","appearance_badges":"running","configMode":100,"connect_mode":"off","editor_autoLint":true,"editor_autoLintMaxLen":"1000000","editor_autoSave":true,"editor_easySave":true,"editor_electricChars":true,"editor_enabled":true,"editor_fontSize":"100","editor_highlightSelectionMatches":"cursor","editor_highlightTrailingWhitespace":true,"editor_indentUnit":"2","editor_indentWithTabs":"spaces","editor_keyMap":"windows","editor_lineWrapping":false,"editor_linter_config":null,"editor_tabMode":"classic","editor_tabSize":"2","editor_theme":"default","editor_trimTrailingSpacesFromModifiedLines":true,"enabled":true,"external_connect":"all","favicon_service":"duckduckgo","forbiddenPages":["*example.org/*","*paypal.tld/*","*stripe.com/*","/^.*:\\/\\/apis\\.google\\.com\\/((?!render)([^\\/]+)\\/)+([^\\/]+)?$/","*://www.facebook.com/plugins/*","*://platform.twitter.com/widgets/*"],"incognito_mode":"temporary","layout":"default","layout_user_css":"","notification_showUpdate":"changelog","page_filter_mode":"black","page_whitelist":["/https?:\\/\\/greasyfork\\.org\\/.*/"],"require_sri_mode":"supported","runtime_inject_mode":"default","script_blacklist_server":[{"rules":["/https?:\\/\\/userscripts\\.org\\/scripts\\/(source|version)/(102614).*\\.user\\.js/"],"severity":2},{"name":"SaveFrom.net helper","reason":"Shows advertisements","rules":["/https?:\\/\\/sf-addon\\.com\\/.*\\/.*\\.user\\.js/","/https?:\\/\\/.*\\.sf-helper\\.com\\/.*\\.user\\.js/"],"severity":3},{"reasons":{"en":"Used for a phishing compain to compromise users of baon-nutrition.com"},"rules":["/https?:\\/\\/files\\.ulysse\\.travel\\/.*\\.user\\.js/"],"severity":8},{"name":"Local YouTube Downloader","reasons":{"en":"Shows a disturbing alert message at every page with a youtube frame or iframe"},"rules":["/https?:\\/\\/greasyfork\\.org\\/scripts\\/369400-.*\\.user\\.js.*/"],"severity":8}],"webrequest_fixCSP":"no","webrequest_modHeaders":"no"} \ No newline at end of file diff --git a/userscript/Vivaldi Forum Tweaks.options.json b/userscript/Vivaldi Forum Tweaks.options.json new file mode 100755 index 0000000..2c257cc --- /dev/null +++ b/userscript/Vivaldi Forum Tweaks.options.json @@ -0,0 +1 @@ +{"options":{"check_for_updates":true,"comment":null,"compatopts_for_requires":true,"compat_wrappedjsobject":false,"compat_metadata":false,"compat_foreach":false,"compat_powerful_this":null,"sandbox":null,"noframes":null,"unwrap":null,"run_at":null,"tab_types":null,"override":{"use_includes":[],"orig_includes":[],"merge_includes":true,"use_matches":[],"orig_matches":["https://forum.vivaldi.net/*"],"merge_matches":true,"use_excludes":[],"orig_excludes":["https://forum.vivaldi.net/assets/*"],"merge_excludes":true,"use_connects":[],"orig_connects":[],"merge_connects":true,"use_blockers":[],"orig_run_at":"document-start","orig_noframes":null}},"settings":{"enabled":true,"position":6},"meta":{"name":"Vivaldi Forum Tweaks","uuid":"a59b229e-cfbc-4cfd-b626-57015e249641","modified":1672497628562,"file_url":"https://greasyfork.org/scripts/457399-vivaldi-forum-tweaks/code/Vivaldi%20Forum%20Tweaks.user.js"}} \ No newline at end of file diff --git a/userscript/Vivaldi Forum Tweaks.storage.json b/userscript/Vivaldi Forum Tweaks.storage.json new file mode 100755 index 0000000..1b89024 --- /dev/null +++ b/userscript/Vivaldi Forum Tweaks.storage.json @@ -0,0 +1 @@ +{"ts":1672497325995,"data":{}} \ No newline at end of file diff --git a/userscript/Vivaldi Forum Tweaks.user.js b/userscript/Vivaldi Forum Tweaks.user.js new file mode 100755 index 0000000..55784b0 --- /dev/null +++ b/userscript/Vivaldi Forum Tweaks.user.js @@ -0,0 +1,72 @@ +// ==UserScript== +// @name Vivaldi Forum Tweaks +// @namespace https://greasyfork.org/en/users/197428-pathduck +// @license MIT +// @version 0.8 +// @description CSS tweaks for Vivaldi Forums +// @author Pathduck +// @supportURL https://greasyfork.org/en/scripts/457399-vivaldi-forum-tweaks +// @match https://forum.vivaldi.net/* +// @exclude https://forum.vivaldi.net/assets/* +// @icon https://icons.duckduckgo.com/ip2/vivaldi.net.ico +// @grant GM_addStyle +// @run-at document-start +// ==/UserScript== + +GM_addStyle(` +@media (min-width: 960px) {body {padding-top: 95px;}} +body {font-size: 15px;} +hr {margin: 5px;} +pre, pre code {padding: 5px !important;} +ul#vivaldimenu {margin-bottom: 0;}; +small.pull-right {padding: 0; margin: 0px;} +#communitysubmenu { min-height: unset; top: 40px; padding: 0px;} +#content, main#panel {padding-top: 0px !important;} +#menucontent, #vivaldi-header, .navbar {min-height: unset; padding: 0; height: 40px;} +#menucontent>.row {padding: 5px 5px 0; height: 40px;} +#menucontent #search-form .form-control {margin: 5px;} +#menucontent #search-form input.form-control {max-width: unset !important; width: 320px;} +#newtopicbar {padding: 5px; margin-bottom: 5px;} +#submenu {top: 65px !important;} +#submenu.isfixed {top: 40px !important;} +#submenu, #submenu li, #submenu ul {line-height: 30px; height: 30px;} +#vivaldi-header .sublinks a {padding: 0;} +.account .cover {margin-top: 50px !important;} +.breadcrumb {padding: 0; margin-bottom: 0px;} +.btn {line-height: 1;} +.btn-toolbar {padding-top: 5px;} +.categories-title {margin: 5px 0 5px;} +.categories>li, .category>ul>li {margin-bottom: 0px; padding-bottom: 0px;} +.composer .preview, .composer .write {font-size: 15px;} +.dropdown-menu {font-size: 13px;} +.form-control:focus, .dropdown-toggle:focus {outline: solid !important;} +.header .notification-list, .header .chat-list {max-height: 60vh;} +.navbar-nav>li>a {padding: 10px 15px; margin-top: 2px;} +.navbar-nav>li>a#user_dropdown {padding: 5px 15px;margin-top: 2px;} +.posts-list-item.deleted {opacity: .5 !important;} +.search .bootstrap-tagsinput:has(input:focus) {outline: solid;} +.small.pull-right {margin-top: 0px;} +.topic-list-header {top: 30px;} +.topic h1 {line-height: 25px; font-weight: bold;} +.topic .topic-info, .topic .topic-info>* {margin-bottom: 0px; padding-bottom: 2px; padding-top: 0px;} +.topic .posts .content .img-responsive, .message-body img {max-width: 50vw; max-height: 30vh;} + +/* Dark skin fixes */ +.skin-dark blockquote {background-color: #333; border-left: 5px solid #4c70f0;} +.skin-dark code, .skin-dark pre {color: #fff; background-color: #333;} +.skin-dark .account .profile .profile-meta strong {color: #fff;} +.skin-dark .alert-window .alert {background-color: #333;} +.skin-dark .alert-window .alert.alert-info {color: limegreen;} +.skin-dark .alert-warning {background-color: darkred;} +.skin-dark .btn-primary, .pagination>.active>a {background-color: #3652b0;} +.skin-dark .composer .preview a {color: #809cff !important} +.skin-dark .label-success {background-color: green;} +.skin-dark .search .bootstrap-tagsinput, +.skin-dark .search .bootstrap-tagsinput input {border: 0; background-color: #272727; color: #fff;} +.skin-dark .topic .posts a {color: #809cff !important} +.skin-dark .topic .posts .dropdown-menu a {color: #fff !important} + +/* External link warning */ +a[rel^="nofollow"]::after{font-size:12px; content:"⚠️";} +a[href*="vivaldi"]::after{content: unset;} +`); diff --git a/userscript/YouTube fast fullscreen toggle.options.json b/userscript/YouTube fast fullscreen toggle.options.json new file mode 100755 index 0000000..a7df49a --- /dev/null +++ b/userscript/YouTube fast fullscreen toggle.options.json @@ -0,0 +1 @@ +{"options":{"check_for_updates":true,"comment":null,"compat_foreach":false,"compat_metadata":false,"compat_powerful_this":null,"compat_prototypes":false,"compat_wrappedjsobject":false,"compatopts_for_requires":true,"noframes":null,"override":{"merge_connects":true,"merge_excludes":true,"merge_includes":true,"merge_matches":true,"orig_connects":[],"orig_excludes":[],"orig_includes":[],"orig_matches":["https://www.youtube.com/*"],"orig_noframes":true,"orig_run_at":"document-idle","use_blockers":[],"use_connects":[],"use_excludes":[],"use_includes":[],"use_matches":[]},"run_at":null,"tab_types":null},"settings":{"enabled":true,"position":1},"meta":{"name":"YouTube fast fullscreen toggle","uuid":"7cbfb171-b070-4682-a3e4-07918a9e9632","modified":1632432693263,"file_url":"https://raw.githubusercontent.com/ZimbiX/youtube-fast-fullscreen-toggle/master/extension/contentScript.js"}} \ No newline at end of file diff --git a/userscript/YouTube fast fullscreen toggle.storage.json b/userscript/YouTube fast fullscreen toggle.storage.json new file mode 100755 index 0000000..979795f --- /dev/null +++ b/userscript/YouTube fast fullscreen toggle.storage.json @@ -0,0 +1 @@ +{"ts":1616100197540,"data":{}} \ No newline at end of file diff --git a/userscript/YouTube fast fullscreen toggle.user.js b/userscript/YouTube fast fullscreen toggle.user.js new file mode 100755 index 0000000..5f6fb75 --- /dev/null +++ b/userscript/YouTube fast fullscreen toggle.user.js @@ -0,0 +1,132 @@ +// ==UserScript== +// @name YouTube fast fullscreen toggle +// @namespace http://tampermonkey.net/ +// @version 2.7.0 +// @description Avoids the ~3 second lag when entering/exiting fullscreen on a YouTube video - by hiding the heavy fluff while transitioning +// @author Brendan Weibrecht +// @match https://www.youtube.com/* +// @noframes +// @icon https://raw.githubusercontent.com/ZimbiX/youtube-fast-fullscreen-toggle/master/extension/icon-128.png +// @downloadURL https://raw.githubusercontent.com/ZimbiX/youtube-fast-fullscreen-toggle/master/extension/contentScript.js +// @grant none +// ==/UserScript== + +(function() { + 'use strict'; + + const isWatchVideoPage = () => window.location.pathname == "/watch" + + const fluff = ['#secondary-inner', '#info', '#meta', '#comments', '#masthead-container', '#speedyg'] + + const setFluffDisplay = (value) => { + fluff.forEach(selector => { + document.querySelectorAll(selector).forEach(el => { + el.style.display = value + }) + }) + } + + const hideFluff = () => { + console.log(`[YT-FFT] Hiding fluff`) + setFluffDisplay('none') + } + const showFluff = () => { + console.log(`[YT-FFT] Showing fluff again`) + setFluffDisplay('') + } + + const isInFullscreen = () => !!document.fullscreenElement + + // Opposite since we will be checking this only after it's changed by YouTube + const checkIfDirectionIsLeavingFullscreen = () => !isInFullscreen() + + const playerWidthDiff = (player) => Math.abs(player.clientWidth - window.innerWidth) + const playerHeightDiff = (player) => Math.abs(player.clientHeight - window.innerHeight) + + const playerIsFullWidth = (player) => playerWidthDiff(player) <= 2 + const playerIsFullHeight = (player) => playerHeightDiff(player) <= 2 + + const debugPlayerSize = (player) => { + console.log('[YT-FFT] w:', player.clientHeight, window.innerHeight, 'h:', player.clientWidth, window.innerWidth) + } + + const playerIsFullscreen = () => { + const player = document.querySelector('ytd-player') + debugPlayerSize(player) + return playerIsFullHeight(player) && playerIsFullWidth(player) + } + + const isFinishedLeavingFullscreen = () => !playerIsFullscreen() + const isFinishedEnteringFullscreen = () => playerIsFullscreen() + + const transitionIsFinished = (directionIsLeavingFullscreen) => ( + directionIsLeavingFullscreen ? isFinishedLeavingFullscreen() : isFinishedEnteringFullscreen() + ) + + const timedOut = (startedAt) => new Date() - startedAt >= 2000 + + const showFluffWhenReady = (directionIsLeavingFullscreen, startedAt) => { + if (timedOut(startedAt)) { + console.log(`[YT-FFT] Timed out detecting finish of ${directionIsLeavingFullscreen ? 'leaving' : 'entering'} fullscreen transition`) + showFluff() + } else if (transitionIsFinished(directionIsLeavingFullscreen)) { + console.log(`[YT-FFT] Finished ${directionIsLeavingFullscreen ? 'leaving' : 'entering'} fullscreen transition`) + // Delay a little after entering fullscreen for reliability, since delay before showing the fluff when entering fullscreen is not noticeable + directionIsLeavingFullscreen ? showFluff() : setTimeout(showFluff, 20) + } else { + setTimeout(() => showFluffWhenReady(directionIsLeavingFullscreen, startedAt), 10) + } + } + + const fastToggleFullScreen = () => { + hideFluff() + // Wait until YouTube's event handler has executed. This is required since the order of event handler execution is not guaranteed, and we need to be able to reliably detect the transition direction + setTimeout(() => { + const directionIsLeavingFullscreen = checkIfDirectionIsLeavingFullscreen() + console.log(`[YT-FFT] Waiting until ${directionIsLeavingFullscreen ? 'leaving' : 'entering'} fullscreen transition has finished`) + showFluffWhenReady(directionIsLeavingFullscreen, new Date()) + }, 10) + } + + const isWritingText = (e) => ( + e.path[0].tagName == 'INPUT' || + e.path[0].id == 'contenteditable-root' + ) + + const delegateEvent = (eventName, elementSelector, handler) => { + document.addEventListener(eventName, (e) => { + // loop parent nodes from the target to the delegation node + for (var target = e.target; target && target != this; target = target.parentNode) { + if (target.matches && target.matches(elementSelector)) { + handler(target, e) + break + } + } + }, false) + } + + const addEventListeners = () => { + delegateEvent('click', '.ytp-fullscreen-button', e => { + if (isWatchVideoPage()) { + fastToggleFullScreen() + } + }) + + delegateEvent('dblclick', 'video', e => { + if (isWatchVideoPage()) { + fastToggleFullScreen() + } + }) + + document.addEventListener("keydown", e => { + if (isWatchVideoPage() && e.code == 'KeyF' && !isWritingText(e)) { + console.log(e) + fastToggleFullScreen() + } + }) + } + + addEventListeners() + + console.log(`[YT-FFT] Initialised`) +})(); diff --git a/userscript/index.html b/userscript/index.html new file mode 100755 index 0000000..a9b4ce5 --- /dev/null +++ b/userscript/index.html @@ -0,0 +1,58 @@ + + + + + + + userscript + + + +

userscript

+ ..
+[ 981 Dec 31  2022]  Absolute Enable Right Click & Copy.options.json
+[  30 Dec 31  2022]  Absolute Enable Right Click & Copy.storage.json
+[6.3K Dec 27  2022]  Absolute Enable Right Click & Copy.user.js
+[ 908 Dec 31  2022]  Disable page close confirmation.options.json
+[  30 Dec 31  2022]  Disable page close confirmation.storage.json
+[ 834 Jan 14  2022]  Disable page close confirmation.user.js
+[ 920 Dec 31  2022]  Google I'm Feeling Lucky Redirect.options.json
+[  30 Dec 31  2022]  Google I'm Feeling Lucky Redirect.storage.json
+[ 899 Dec 31  2022]  Google I'm Feeling Lucky Redirect.user.js
+[ 889 Dec 31  2022]  RPS Night Mode.options.json
+[  30 Dec 31  2022]  RPS Night Mode.storage.json
+[1.8K Dec 31  2022]  RPS Night Mode.user.js
+[2.0K Dec 31  2022]  Tampermonkey.global.json
+[ 908 Dec 31  2022]  Vivaldi Forum Tweaks.options.json
+[  30 Dec 31  2022]  Vivaldi Forum Tweaks.storage.json
+[3.4K Dec 31  2022]  Vivaldi Forum Tweaks.user.js
+[ 885 Dec 31  2022]  YouTube fast fullscreen toggle.options.json
+[  30 Dec 31  2022]  YouTube fast fullscreen toggle.storage.json
+[5.2K Sep 23  2021]  YouTube fast fullscreen toggle.user.js
+

+

+

+ +0 directories, 19 files +

+

+