diff --git a/vivaldi/mods/CSS/find-in-page.css b/vivaldi/mods/CSS/find-in-page.css index 029f929..5b3fb98 100755 --- a/vivaldi/mods/CSS/find-in-page.css +++ b/vivaldi/mods/CSS/find-in-page.css @@ -38,6 +38,9 @@ } /* Find-in-page hit no page dimming */ -.find-in-page-wrapper:has(.find-in-page) + .row-wrapper .webpage>webview { +#browser:has(.find-in-page) webview { +filter: none !important; +} +/*.find-in-page-wrapper:has(.find-in-page) + .row-wrapper .webpage>webview { filter: unset !important; -} \ No newline at end of file +}*/ diff --git a/vivaldi/tools/ListExtensions.exe b/vivaldi/tools/ListExtensions.exe new file mode 100755 index 0000000..9a8170d Binary files /dev/null and b/vivaldi/tools/ListExtensions.exe differ diff --git a/vivaldi/tools/anonymize-history.sql b/vivaldi/tools/anonymize-history.sql new file mode 100755 index 0000000..703b95a --- /dev/null +++ b/vivaldi/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/vivaldi/tools/chrome-pak/pack.bat b/vivaldi/tools/chrome-pak/pack.bat new file mode 100755 index 0000000..8246685 --- /dev/null +++ b/vivaldi/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/vivaldi/tools/chrome-pak/pak_mingw32.exe b/vivaldi/tools/chrome-pak/pak_mingw32.exe new file mode 100755 index 0000000..3f59b11 Binary files /dev/null and b/vivaldi/tools/chrome-pak/pak_mingw32.exe differ diff --git a/vivaldi/tools/chrome-pak/pak_mingw64.exe b/vivaldi/tools/chrome-pak/pak_mingw64.exe new file mode 100755 index 0000000..3e72866 Binary files /dev/null and b/vivaldi/tools/chrome-pak/pak_mingw64.exe differ diff --git a/vivaldi/tools/chrome-pak/unpack.bat b/vivaldi/tools/chrome-pak/unpack.bat new file mode 100755 index 0000000..c024fde --- /dev/null +++ b/vivaldi/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/vivaldi/tools/create-cookie-file.sql b/vivaldi/tools/create-cookie-file.sql new file mode 100755 index 0000000..ea8eb00 --- /dev/null +++ b/vivaldi/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/vivaldi/tools/fix-keepass-to-chrome.cmd b/vivaldi/tools/fix-keepass-to-chrome.cmd new file mode 100755 index 0000000..d842d1b --- /dev/null +++ b/vivaldi/tools/fix-keepass-to-chrome.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/vivaldi/tools/python27.dll b/vivaldi/tools/python27.dll new file mode 100755 index 0000000..eabfc24 Binary files /dev/null and b/vivaldi/tools/python27.dll differ diff --git a/vivaldi/tools/vivaldi-searchengine-sync/bak/export_chrome_search_engines.sh b/vivaldi/tools/vivaldi-searchengine-sync/bak/export_chrome_search_engines.sh new file mode 100755 index 0000000..512bc3a --- /dev/null +++ b/vivaldi/tools/vivaldi-searchengine-sync/bak/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/vivaldi/tools/vivaldi-searchengine-sync/bak/import_chrome_search_engines.cmd b/vivaldi/tools/vivaldi-searchengine-sync/bak/import_chrome_search_engines.cmd new file mode 100755 index 0000000..0da93fe --- /dev/null +++ b/vivaldi/tools/vivaldi-searchengine-sync/bak/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/vivaldi/tools/vivaldi-searchengine-sync/bak/import_chrome_search_engines.sh b/vivaldi/tools/vivaldi-searchengine-sync/bak/import_chrome_search_engines.sh new file mode 100755 index 0000000..c7a1fbf --- /dev/null +++ b/vivaldi/tools/vivaldi-searchengine-sync/bak/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/vivaldi/tools/vivaldi-searchengine-sync/vivaldi-keywords-insert.sql b/vivaldi/tools/vivaldi-searchengine-sync/vivaldi-keywords-insert.sql new file mode 100755 index 0000000..cfd4b2a --- /dev/null +++ b/vivaldi/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/vivaldi/tools/vivaldi-searchengine-sync/vivaldi-searchengine-sync.cmd b/vivaldi/tools/vivaldi-searchengine-sync/vivaldi-searchengine-sync.cmd new file mode 100755 index 0000000..34b9927 --- /dev/null +++ b/vivaldi/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/vivaldi/user_files/Nostalgia.css b/vivaldi/user_files/Nostalgia.css index bbeb146..f1e02f2 100755 --- a/vivaldi/user_files/Nostalgia.css +++ b/vivaldi/user_files/Nostalgia.css @@ -28,10 +28,14 @@ iframe {content: "IFRAME removed" !important;} iframe[title] {content: attr(title) !important;} iframe[longdesc] {content: attr(longdesc) !important;} -iframe, img { - display: block; +img { + max-width: 96px !important; + max-height: 84px !important; +} + +iframe, img[alt], img[title] { padding: 0.2em !important; - max-width: 25% !important; + max-width: none !important; max-height: none !important; width: auto !important; height: auto !important; @@ -81,7 +85,7 @@ hr { position: static !important; float: none !important; - max-width: 80vw !important; + max-width: 80% !important; min-width: 0px !important; width: auto !important; max-height: none !important; @@ -91,7 +95,7 @@ hr { html { border: 2.5em solid #6C5EB5 !important; /*Light blue*/ - width: 100% !important; + width: 80% !important; margin: 0em !important; padding: 0em !important; @@ -105,6 +109,7 @@ html:after { 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; @@ -160,10 +165,15 @@ title { padding: 0px 0px 0px 2px !important; } -title:before {content: 'LOAD "' !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;}