This commit is contained in:
Vince 2021-06-24 10:55:17 +08:00
parent b476e478a5
commit b10c494d23
13 changed files with 501 additions and 22 deletions

View file

@ -582,7 +582,17 @@ install_firefox_theme() {
remove_firefox_theme
udo mkdir -p "${TARGET_DIR}"
udo cp -rf "${FIREFOX_SRC_DIR}"/* "${TARGET_DIR}"
udo cp -rf "${FIREFOX_SRC_DIR}"/customChrome.css "${TARGET_DIR}"
if [[ "${monterey}" == 'true' ]]; then
udo cp -rf "${FIREFOX_SRC_DIR}"/Monterey "${TARGET_DIR}"
udo cp -rf "${FIREFOX_SRC_DIR}"/WhiteSur/{icons,titlebuttons} "${TARGET_DIR}"/Monterey
udo cp -rf "${FIREFOX_SRC_DIR}"/userChrome-Monterey.css "${TARGET_DIR}"/userChrome.css
else
udo cp -rf "${FIREFOX_SRC_DIR}"/WhiteSur "${TARGET_DIR}"
udo cp -rf "${FIREFOX_SRC_DIR}"/userChrome-WhiteSur.css "${TARGET_DIR}"/userChrome.css
fi
config_firefox
}

View file

@ -0,0 +1,16 @@
/* Allow drag window from headerbar buttons */
@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
:root[tabsintitlebar] #nav-bar *,
:root[tabsintitlebar] #titlebar .titlebar-button,
:root[tabsintitlebar][inFullscreen] #window-controls toolbarbutton {
-moz-window-dragging: drag;
}
/* Avoid window dragging from urlbar */
:root[tabsintitlebar] #nav-bar .urlbar-input-box,
:root[tabsintitlebar] #nav-bar .urlbar-input-box * {
-moz-window-dragging: no-drag !important;
}

View file

@ -0,0 +1,7 @@
@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
#tabbrowser-tabs tab:only-of-type {
display: none !important;
}
/* TODO: Hidde tabbar bottom border */

View file

@ -0,0 +1,9 @@
@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
:root[tabsintitlebar][sizemode="maximized"] #titlebar .titlebar-buttonbox-container {
display: none !important;
}
:root[tabsintitlebar][sizemode="maximized"] #nav-bar {
padding-left: 3px !important;
}

View file

@ -1 +0,0 @@
../WhiteSur/icons

View file

@ -0,0 +1,177 @@
@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
/*
This feature is included by default for Firefox 70+
*/
/**************************************************************************************
*********************************** FIREFOX 68 ****************************************
**************************************************************************************/
/* Set popover size and position */
panel#urlbar-results {
--box-width: calc(100vw - var(--item-padding-start) - var(--item-padding-end) + 8px);
--fixed-widths: calc((6px + 16px + 6px) + (16px + 9px) + 11px);
box-sizing: border-box;
border-radius: 9px;
margin-left: 0 !important;
margin-top: 0 !important;
max-width: var(--box-width) !important;
}
/* Style as regular popover */
panel#urlbar-results {
background: var(--gnome-popover-background) !important;
border: 1px solid !important;
border-color: var(--gnome-popover-border-color) !important;
border-radius: 9px;
color: var(--gnome-toolbar-color) !important;
padding: 8px;
}
/* Results box */
#urlbarView-results {
--item-padding-start: 0 !important;
--item-padding-end: 0 !important;
max-height: 35vh !important;
overflow-x: auto;
max-width: calc(var(--box-width) - 18px) !important;
}
/* Search panel */
.search-one-offs {
width: 100%;
--item-padding-start: 0 !important;
--item-padding-end: 0 !important;
}
.search-panel-one-offs-header, .search-panel-one-offs {
background: transparent !important;
border: 0 !important;
}
panel#urlbar-results.search-panel-one-offs-header {
border-top: 1px solid var(--gnome-popover-separator-color) !important;
}
/* Search engines buttons */
.searchbar-engine-one-off-item:not(.dummy) {
--toolbarbutton-active-background: transparent !important;
--toolbarbutton-hover-background: transparent !important;
}
.searchbar-engine-one-off-item:not(.dummy) {
-moz-appearance: none !important;
--toolbarbutton-active-background: transparent !important;
--toolbarbutton-hover-background: transparent !important;
-moz-appearance: none !important;
background: var(--gnome-button-background) !important;
box-shadow: var(--gnome-button-box-shadow) !important;
border: 1px solid var(--gnome-button-border-color) !important;
border-left-width: 0 !important;
border-bottom-color: var(--gnome-button-border-accent-color) !important;
padding: 0 2px !important;
min-height: 34px !important;
min-width: 34px !important;
margin: 0 !important;
}
.searchbar-engine-one-off-item:hover, .searchbar-engine-one-off-item[selected] {
background: var(--gnome-button-hover-background) !important;
color: unset !important;
}
.searchbar-engine-one-off-item:first-child {
border-radius: 5px 0 0 5px;
border-left-width: 1px !important;
}
.searchbar-engine-one-off-item.last-engine, .searchbar-engine-one-off-item:last-child {
border-radius: 0 5px 5px 0;
}
.searchbar-engine-one-off-item.dummy {
display: none !important;
}
.searchbar-engine-one-off-item:not(.last-row) {
box-sizing: border-box !important;
}
#urlbar-anon-search-settings-compact {
border-left-width: 1px !important;
border-bottom: 1px solid var(--gnome-button-border-accent-color) !important;
border-radius: 5px;
margin-left: 6px !important;
}
/* Convert search engines icons to symbolic */
#urlbar-results .searchbar-engine-one-off-item:not(.search-setting-button-compact) .button-icon {
filter: var(--gnome-convert-icon-to-symbolic-hack-filter);
}
/**************************************************************************************
********************************** FIREFOX 60-67 **************************************
**************************************************************************************/
/* TODO: Remove when FF =< 67 is deprecated */
#PopupAutoCompleteRichResult {
margin-left: 0 !important;
margin-top: -7px;
}
#PopupAutoCompleteRichResult {
background: var(--gnome-popover-background) !important;
border: 1px solid !important;
border-color: var(--gnome-popover-border-color) !important;
border-radius: 9px;
box-shadow: var(--gnome-popover-shadow) !important; /* BUG: Not showing any shadow at all */
color: var(--gnome-toolbar-color) !important;
padding: 8px !important;
}
#PopupAutoCompleteRichResult .autocomplete-richlistbox {
--box-width: calc(100vw - var(--item-padding-start) - var(--item-padding-end) - 42px);
max-width: var(--box-width);
}
#PopupAutoCompleteRichResult .autocomplete-richlistitem {
padding-left: 0 !important;
padding-right: 5px !important;
border-inline-end-width: 0 !important;
max-width: calc(var(--box-width) - 5px);
display: flex;
align-items: center;
}
/* Search panel */
#PopupAutoCompleteRichResult .search-panel-one-offs-header, #PopupAutoCompleteRichResult .search-panel-one-offs {
background: transparent !important;
border: 0 !important;
}
#PopupAutoCompleteRichResult .search-panel-one-offs-header {
border-top: 1px solid var(--gnome-popover-separator-color) !important;
}
#PopupAutoCompleteRichResult .search-panel-one-offs {
--item-padding-start: 0 !important;
--item-padding-end: 0 !important;
}
/* Search engines buttons */
#PopupAutoCompleteRichResult .searchbar-engine-one-off-item:not(.dummy) {
-moz-appearance: none !important;
--toolbarbutton-active-background: transparent !important;
--toolbarbutton-hover-background: transparent !important;
background: var(--gnome-button-background) !important;
box-shadow: var(--gnome-button-box-shadow);
border-width: 1px 1px 1px 0;
border-style: solid;
border-color: var(--gnome-button-border-color) !important;
border-bottom-color: var(--gnome-button-border-accent-color) !important;
padding: 0 2px !important;
height: 34px !important;
color: var(--gnome-toolbar-color) !important;
box-sizing: border-box !important;
}
#PopupAutoCompleteRichResult .searchbar-engine-one-off-item:hover, #PopupAutoCompleteRichResult .searchbar-engine-one-off-item[selected] {
background: var(--gnome-button-hover-background) !important;
color: unset !important;
}
#PopupAutoCompleteRichResult .searchbar-engine-one-off-item:first-child {
border-radius: 5px 0 0 5px;
border-left-width: 1px !important;
}
#PopupAutoCompleteRichResult .searchbar-engine-one-off-item.last-engine {
border-radius: 0 5px 5px 0;
}
#PopupAutoCompleteRichResult .searchbar-engine-one-off-item.dummy {
display: none !important;
}
#PopupAutoCompleteRichResult .searchbar-engine-one-off-item:not(.last-row) {
box-sizing: border-box !important;
}

View file

@ -0,0 +1,6 @@
@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
:root[tabsintitlebar]:not([inFullscreen])[sizemode="maximized"] #nav-bar {
border-radius: 16px 16px 0 0 !important;
}

View file

@ -0,0 +1,17 @@
@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
/* Icons light/dark fix coloring hack filters */
:root {
--gnome-convert-icon-to-symbolic-hack-filter: invert(100%) sepia(100%) grayscale(100%) brightness(200%) brightness(85%) invert(100%);
}
@media (prefers-color-scheme: dark) {
:root {
--gnome-convert-icon-to-symbolic-hack-filter: invert(100%) sepia(100%) grayscale(100%) brightness(200%) brightness(85%);
}
}
/* Make tab icons look kinda like symbolic icons */
tab .tab-icon-image {
filter: var(--gnome-convert-icon-to-symbolic-hack-filter);
}

View file

@ -0,0 +1,203 @@
@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
/* Icons light/dark fix coloring hack filters */
:root {
--gnome-icons-hack-filter: none;
--gnome-window-icons-hack-filter: none;
}
@media (prefers-color-scheme: dark) {
:root {
--gnome-icons-hack-filter: invert(100%) sepia(100%) grayscale(100%) brightness(200%) brightness(200%);
--gnome-window-icons-hack-filter: invert(90%);
}
}
/* OPTIONAL: Use system theme icons instead of Adwaita icons included by theme */
@supports -moz-bool-pref("gnomeTheme.systemIcons") {
/* Window buttons */
:root[tabsintitlebar] #titlebar .titlebar-button .toolbarbutton-icon,
:root[tabsintitlebar][inFullscreen] #window-controls toolbarbutton .toolbarbutton-icon {
filter: var(--gnome-window-icons-hack-filter) !important;
width: 16px;
}
:root[tabsintitlebar] #titlebar .titlebar-buttonbox .titlebar-close .toolbarbutton-icon,
:root[tabsintitlebar] #titlebar #titlebar-close .toolbarbutton-icon {
list-style-image: url("moz-icon://stock/window-close-symbolic?size=dialog") !important;
}
:root[tabsintitlebar] #titlebar .titlebar-buttonbox .titlebar-max .toolbarbutton-icon,
:root[tabsintitlebar] #titlebar #titlebar-max .toolbarbutton-icon {
list-style-image: url("moz-icon://stock/window-maximize-symbolic?size=dialog") !important;
}
:root[tabsintitlebar] #titlebar .titlebar-buttonbox .titlebar-restore .toolbarbutton-icon {
list-style-image: url("moz-icon://stock/window-restore-symbolic?size=dialog") !important;
}
:root[tabsintitlebar] #titlebar .titlebar-buttonbox .titlebar-min .toolbarbutton-icon,
:root[tabsintitlebar] #titlebar #titlebar-min .toolbarbutton-icon {
list-style-image: url("moz-icon://stock/window-minimize-symbolic?size=dialog") !important;
}
:root[tabsintitlebar][inFullscreen] #window-controls #restore-button .toolbarbutton-icon {
list-style-image: url("moz-icon://stock/view-restore-symbolic?size=dialog") !important;
}
/* Toolbars close button */
.close-icon:not(.tab-close-button) {
list-style-image: url("moz-icon://stock/window-close-symbolic?size=dialog") !important;
}
.close-icon:not(.tab-close-button) image {
filter: var(--gnome-window-icons-hack-filter) !important;
}
/* Navbar icons */
/* Back button */
#nav-bar #back-button .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/go-previous-symbolic?size=dialog") !important;
}
/* Forward button */
#nav-bar #forward-button .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/go-next-symbolic?size=dialog") !important;
}
/* Menu button */
#PanelUI-menu-button .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/open-menu-symbolic?size=dialog") !important;
}
/* New tab button */
#new-tab-button .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/tab-new-symbolic?size=dialog") !important;
}
/* Home button */
#home-button .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/user-home-symbolic?size=dialog") !important;
}
/* Preferences button */
#preferences-button .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/preferences-system-symbolic?size=dialog") !important;
}
/* Fullscreen button */
#fullscreen-button .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/view-fullscreen-symbolic?size=dialog") !important;
}
/* Zoom out button */
#zoom-out-button .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/zoom-out-symbolic?size=dialog") !important;
}
/* Zoom in button */
#zoom-in-button .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/zoom-in-symbolic?size=dialog") !important;
}
/* Developer button */
#developer-button .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/applications-engineering-symbolic?size=dialog") !important;
}
/* Email link button */
#email-link-button .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/mail-unread-symbolic?size=dialog") !important;
}
/* Print button */
#print-button .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/printer-symbolic?size=dialog") !important;
}
/* Addons button */
#add-ons-button .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/application-x-addon-symbolic?size=dialog") !important;
}
/* Find button */
#find-button .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/edit-find-symbolic?size=dialog") !important;
}
/* New window button */
#new-window-button .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/window-new-symbolic?size=dialog") !important;
}
/* Bookmarks menu button */
#bookmarks-menu-button .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/starred-symbolic?size=dialog") !important;
}
/* History button */
#history-panelmenu .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/preferences-system-time-symbolic?size=dialog") !important;
}
/* All tabs button */
#alltabs-button {
list-style-image: url("moz-icon://stock/pan-down-symbolic?size=dialog") !important;
}
#alltabs-button .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
}
/* Cut button */
#cut-button .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/edit-cut-symbolic?size=dialog") !important;
}
/* Copy button */
#copy-button .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/edit-copy-symbolic?size=dialog") !important;
}
/* Paste button */
#paste-button .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/edit-paste-symbolic?size=dialog") !important;
}
/* Navbar overflow button */
#nav-bar-overflow-button .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/pan-down-symbolic?size=dialog") !important;
}
/* Context back button */
#context-back .menu-iconic-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/go-previous-symbolic?size=dialog") !important;
}
/* Context forward button */
#context-forward .menu-iconic-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/go-next-symbolic?size=dialog") !important;
}
/* Main menu buttons icons */
#appMenu-zoomReduce-button .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/zoom-out-symbolic?size=dialog") !important;
}
#appMenu-zoomEnlarge-button .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/zoom-in-symbolic?size=dialog") !important;
}
#appMenu-fullscreen-button .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/view-fullscreen-symbolic?size=dialog") !important;
}
#appMenu-cut-button .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/edit-cut-symbolic?size=dialog") !important;
}
#appMenu-copy-button .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/edit-copy-symbolic?size=dialog") !important;
}
#appMenu-paste-button .toolbarbutton-icon {
filter: var(--gnome-icons-hack-filter);
list-style-image: url("moz-icon://stock/edit-paste-symbolic?size=dialog") !important;
}
}

View file

@ -1 +0,0 @@
../WhiteSur/titlebuttons

View file

@ -3,14 +3,7 @@
* Add "/*" at the begining of "@import" line to DISABLE.
*/
/*-------------------Choose your theme---------------------
* Enable one of these themes and disable the other ones.
*/
@import "WhiteSur/theme.css"; /**/
/*@import "Monterey/theme.css"; /**/
@import "Monterey/theme.css"; /**/
/*--------------Configure your Monterey theme--------------
* ONLY for Monterey theme
@ -33,30 +26,30 @@
/* Hide the tab bar when only one tab is open (GNOMISH)
* You should move the new tab button somewhere else for this to work, because by
* default it is on the tab bar too. */
/*@import "WhiteSur/hide-single-tab.css"; /**/
/*@import "Menterey/hide-single-tab.css"; /**/
/* Limit the URL bar's autocompletion popup's width to the URL bar's width (GNOMISH)
* This feature is included by default for Firefox 70+ */
/*@import "WhiteSur/matching-autocomplete-width.css"; /**/
/*@import "Menterey/matching-autocomplete-width.css"; /**/
/* Rounded window even when it gets maximized */
/*@import "WhiteSur/rounded-window-maximized.css"; /**/
/*@import "Menterey/rounded-window-maximized.css"; /**/
/* Active tab high contrast */
/*@import "WhiteSur/active-tab-contrast.css"; /**/
/*@import "Menterey/active-tab-contrast.css"; /**/
/* Use system theme icons instead of Adwaita icons included by theme [BUGGED] */
/*@import "WhiteSur/system-icons.css"; /**/
/*@import "Menterey/system-icons.css"; /**/
/* Allow drag window from headerbar buttons (GNOMISH) [BUGGED]
* It can activate button action, with unpleasant behavior. */
/*@import "WhiteSur/drag-window-headerbar-buttons.css"; /**/
/* Allow drag window from headerbar buttons (GNOMISH) [BUGGED] */
/* It can activate button action, with unpleasant behavior. */
/*@import "Menterey/drag-window-headerbar-buttons.css"; /**/
/* Make all tab icons look kinda like symbolic icons */
/*@import "WhiteSur/symbolic-tab-icons.css"; /**/
/*@import "Menterey/symbolic-tab-icons.css"; /**/
/* Hide window buttons (close/min/max) in maximized windows */
/*@import "WhiteSur/hide-window-buttons.css"; /**/
/*@import "Menterey/hide-window-buttons.css"; /**/
/* Import your custom stylesheet */
@import "customChrome.css"; /**/

View file

@ -0,0 +1,39 @@
/*------------------------USAGE----------------------------
* Remove "/*" at the begining of "@import" line to ENABLE.
* Add "/*" at the begining of "@import" line to DISABLE.
*/
@import "WhiteSur/theme.css"; /**/
/*--------------Configure common theme features--------------*/
/* Hide the tab bar when only one tab is open (GNOMISH)
* You should move the new tab button somewhere else for this to work, because by
* default it is on the tab bar too. */
/*@import "WhiteSur/hide-single-tab.css"; /**/
/* Limit the URL bar's autocompletion popup's width to the URL bar's width (GNOMISH)
* This feature is included by default for Firefox 70+ */
/*@import "WhiteSur/matching-autocomplete-width.css"; /**/
/* Rounded window even when it gets maximized */
/*@import "WhiteSur/rounded-window-maximized.css"; /**/
/* Active tab high contrast */
/*@import "WhiteSur/active-tab-contrast.css"; /**/
/* Use system theme icons instead of Adwaita icons included by theme [BUGGED] */
/*@import "WhiteSur/system-icons.css"; /**/
/* Allow drag window from headerbar buttons (GNOMISH) [BUGGED] */
/* It can activate button action, with unpleasant behavior. */
/*@import "WhiteSur/drag-window-headerbar-buttons.css"; /**/
/* Make all tab icons look kinda like symbolic icons */
/*@import "WhiteSur/symbolic-tab-icons.css"; /**/
/* Hide window buttons (close/min/max) in maximized windows */
/*@import "WhiteSur/hide-window-buttons.css"; /**/
/* Import your custom stylesheet */
@import "customChrome.css"; /**/

View file

@ -20,6 +20,7 @@ usage() {
# You also have to check and update them regurally
helpify_title
helpify "-f, --firefox" "" "Install '${THEME_NAME}' theme for Firefox and connect it to the current Firefox profiles" ""
helpify "-m, --monterey" "( Run this with -f )" "Install 'Monterey' theme for Firefox and connect it to the current Firefox profiles" ""
helpify "-e, --edit-firefox" "" "Edit '${THEME_NAME}' theme for Firefox settings and also connect the theme to the current Firefox profiles" ""
helpify "-F, --flatpak" "" "Connect '${THEME_NAME}' theme to Flatpak" ""
helpify "-s, --snap" "" "Connect '${THEME_NAME}' theme the currently installed snap apps" ""
@ -64,12 +65,15 @@ while [[ $# -gt 0 ]]; do
full_sudo "${1}"; silent_mode='true'; shift ;;
-h|--help)
need_help="true"; shift ;;
-f|--firefox|-e|--edit-firefox)
-f|--firefox|-e|--edit-firefox|-m|--monterey)
case "${1}" in
-f|--firefox)
firefox="true" ;;
-e|--edit-firefox)
edit_firefox="true" ;;
-m|--monterey)
monterey="true"
name="Monterey" ;;
esac
if ! has_command firefox && ! has_flatpak_app org.mozilla.firefox && ! has_snap_app firefox; then