From 56c219aa68b2ccfbdc10674ab15facefc3728855 Mon Sep 17 00:00:00 2001 From: Vladyslav Hroshev Date: Fri, 17 Mar 2023 04:27:37 +0200 Subject: [PATCH 1/8] Reset panel height --- gnome-shell/gnome-shell.css | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnome-shell/gnome-shell.css b/gnome-shell/gnome-shell.css index be7508b..8653558 100644 --- a/gnome-shell/gnome-shell.css +++ b/gnome-shell/gnome-shell.css @@ -27,7 +27,7 @@ stage { /* panel */ #panel{ background-color: BACKGROUND-COLOR; - height: 38px; + /* height: 34px; */ font-size: 14px; } @@ -59,8 +59,8 @@ stage { .clock, .clock-display StIcon{ color: TEXT-PRIMARY-COLOR; - border-radius: 14px; - border: 4px solid transparent; + /* border-radius: 14px; */ + /* border: 4px solid transparent; */ background-color: ACCENT-DISABLED-COLOR; box-shadow: inset 0 0 0 1px BORDER-SHADOW; } @@ -79,6 +79,7 @@ stage { .panel-button:overview, /* activites */ .panel-button:active .clock{ background-color: ACCENT-DISABLED_HOVER; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; } #panel .power-status.panel-status-indicators-box { From ebf5a757362f45641816d9e82284872a892a5b5f Mon Sep 17 00:00:00 2001 From: Vladyslav Hroshev Date: Fri, 17 Mar 2023 04:52:47 +0200 Subject: [PATCH 2/8] Smaller popup menu paddings --- gnome-shell/gnome-shell.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnome-shell/gnome-shell.css b/gnome-shell/gnome-shell.css index 8653558..6d34dfd 100644 --- a/gnome-shell/gnome-shell.css +++ b/gnome-shell/gnome-shell.css @@ -132,7 +132,7 @@ stage { } .popup-menu-item, .app-menu { - margin: 3px 1.5px; + margin: 3px 0; } .popup-menu-item:focus, .popup-menu-item:hover, .popup-menu-item:checked { @@ -171,7 +171,7 @@ stage { color: TEXT-PRIMARY-COLOR; box-shadow: inset 0 0 0 1px BORDER-SHADOW; border-radius: 0 0 12px 12px; - margin: 0 1.5px 2px 1.5px; + margin: 0 0 2px 0; } .popup-sub-menu .popup-menu-item { From c817940b15bb0bf769566f345fb9946db00233d7 Mon Sep 17 00:00:00 2001 From: Vladyslav Hroshev Date: Sun, 19 Mar 2023 21:58:30 +0200 Subject: [PATCH 3/8] Panel tweaks, trying to separate shell styles --- css/gnome.css | 1431 +++++++++++++++++++++++++++++++++++ css/panel.css | 105 +++ gnome-shell/gnome-shell.css | 1302 ------------------------------- install.py | 32 +- tweaks/panel/def-size.css | 10 + tweaks/panel/no-pill.css | 14 + 6 files changed, 1591 insertions(+), 1303 deletions(-) create mode 100644 css/gnome.css create mode 100644 css/panel.css delete mode 100644 gnome-shell/gnome-shell.css create mode 100644 tweaks/panel/def-size.css create mode 100644 tweaks/panel/no-pill.css diff --git a/css/gnome.css b/css/gnome.css new file mode 100644 index 0000000..44b0091 --- /dev/null +++ b/css/gnome.css @@ -0,0 +1,1431 @@ +stage { + color: TEXT-PRIMARY-COLOR; +} + +.workspace-background { + border: 1px solid BORDER-SHADOW; +} + +/* Activities Ripple */ +.ripple-box { + background-color: ACCENT-OPACITY-COLOR; + box-shadow: 0 0 2px 2px ACCENT-OPACITY-COLOR; +} + + +/* POPOVERS */ +.popup-menu-content, +.candidate-popup-content { + color: TEXT-PRIMARY-COLOR; + background: BACKGROUND-COLOR; + padding: 10px; + border-radius: 20px; + border: 1px solid BORDER-MENU-SHADOW; + box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.05); +} + +.popup-menu-item, +.app-menu { + margin: 3px 0; +} + +.popup-menu-item:focus, +.popup-menu-item:hover, +.popup-menu-item:checked { + background-color: ACCENT-DISABLED-COLOR !important; + box-shadow: inset 0 0 0 1px BORDER-SHADOW !important; + color: TEXT-PRIMARY-COLOR; +} + +.popup-menu-item:checked { + border-radius: 12px 12px 0 0; +} + +.popup-menu-item:active { + background-color: ACCENT-DISABLED_HOVER; + color: TEXT-PRIMARY-COLOR; +} + +/* 44 separator margin fix */ +.popup-separator-menu-item { + padding: 0 !important; +} + +.popup-separator-menu-item .popup-separator-menu-item-separator { + height: 1px; + margin: 6px 0; + background-color: SEPARATOR-COLOR; +} + +.popup-separator-menu-item-separator:ltr { + margin-right: 4.5px; +} + +.popup-separator-menu-item-separator:rtl { + margin-left: 4.5px; +} + +.popup-sub-menu { + background-color: ACCENT-DISABLED-COLOR; + color: TEXT-PRIMARY-COLOR; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; + border-radius: 0 0 12px 12px; + margin: 0 0 2px 0; +} + +.popup-sub-menu .popup-menu-item { + margin: 0; + color: TEXT-PRIMARY-COLOR; + +} + +.popup-sub-menu .popup-menu-item:last-child { + border-radius: 0 0 12px 12px; +} + +.popup-sub-menu .popup-menu-item:hover, +.popup-sub-menu .popup-menu-item:focus { + background-color: ACCENT-DISABLED_HOVER !important; +} + +.popup-menu-item:insensitive { + color: TEXT-DISABLED-COLOR; + margin: 0; +} + +.popup-inactive-menu-item { + color: TEXT-PRIMARY-COLOR; + background-color: transparent; +} + +.popup-inactive-menu-item:insensitive { + color: TEXT-SECONDARY-COLOR !important; +} + +.calendar .calendar-nonwork-day { + color: TEXT-PRIMARY-COLOR; +} + + +/* calendar */ +#calendarArea { + padding: 0; +} + +.datemenu-calendar-column { + spacing: 5px; +} + +.datemenu-calendar-column:ltr { + padding-left: 6px; +} + +.datemenu-calendar-column:rtl { + padding-right: 6px; +} + +.datemenu-calendar-column .datemenu-displays-box { + spacing: 5px; +} + +/* calendar header */ +.datemenu-today-button { + color: TEXT-SECONDARY-COLOR; + background-color: none; + border-radius: 12px; +} + +.datemenu-today-button:hover { + transition-duration: 100ms; + background-color: ACCENT-DISABLED-COLOR; +} + +.datemenu-today-button:focus { + transition-duration: 100ms; + background-color: ACCENT-DISABLED-COLOR; + box-shadow: inset 0 0 0 2px ACCENT-SECONDARY-COLOR !important; +} + +.day-label { + font-weight: 600; +} + +.date-label { + font-weight: 700; +} + +/* calendar-days */ +.calendar-day-base, +.calendar-month-header .pager-button { + color: TEXT-PRIMARY-COLOR; + border-radius: 10px; +} + +.calendar-month-label { + color: TEXT-PRIMARY-COLOR; +} + +.calendar-day-base, +.calendar .calendar-month-header .pager-button { + transition-duration: 100ms; +} + +.calendar-day-base:hover, +.calendar-day-base:focus, +.calendar-day-base:active:hover, +.calendar-day-base:selected:hover, +.calendar .calendar-month-header .pager-button:hover, +.calendar .calendar-month-header .pager-button:focus { + background-color: ACCENT-DISABLED_HOVER; + color: TEXT-PRIMARY-COLOR; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; +} + +.calendar-day-base:active, +.calendar-day-base:selected { + background: ACCENT-DISABLED_HOVER; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; +} + +.calendar-today, +.calendar-today:selected { + background-color: ACCENT-COLOR; + color: TEXT-PRIMARY-COLOR !important; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; +} + +.calendar-today:hover, +.calendar-today:selected:hover { + background-color: ACCENT_HOVER; +} + +.calendar .calendar-day-with-events { + background-image: url("calendar-today.svg"); + background-size: contain; + font-weight: 700; +} + + +/* events */ +.calendar { + border-radius: 14px; + background-color: SECTION-COLOR; + box-shadow: inset 0 0 0 1px BORDER-SHADOW !important; + padding: 5px; +} + + +.events-button, +.world-clocks-button, +.weather-button { + background-color: SECTION-COLOR; + color: TEXT-SECONDARY-COLOR; + border-radius: 14px; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; +} + +.events-button:hover, +.world-clocks-button:hover, +.weather-button:hover { + background-color: ACCENT-DISABLED-COLOR; +} + +.events-button:focus, +.world-clocks-button:focus, +.weather-button:focus { + box-shadow: inset 0 0 0 2px ACCENT-SECONDARY-COLOR !important; +} + +.weather-button .weather-header, +.events-button .events-title, +.world-clocks-button .world-clocks-header { + color: TEXT-PRIMARY-COLOR; +} + +.events-button .event-time { + color: TEXT-SECONDARY-COLOR; +} + +.events-button:active, +.world-clock-button:active, +.weather-button:active { + background-color: ACCENT-DISABLED_HOVER; +} + +.world-clocks-button .world-clocks-time, +.world-clocks-button .world-clocks-city, +.world-clocks-button .world-clocks-timezone { + color: TEXT-SECONDARY-COLOR; +} + +.weather-button .weather-forecast-time { + color: TEXT-SECONDARY-COLOR; +} + + +/* message-list */ +.message-list { + border: none; + padding: 0; +} + +.message-list-sections:ltr { + margin-right: 0px; +} + +.message-list-sections:rtl { + margin-left: 0px; +} + +.message { + background: BACKGROUND-COLOR; + color: TEXT-PRIMARY-COLOR; + border-radius: 18px; + border: none; + box-shadow: inset 0 0 0 1px BORDER-MENU-SHADOW; +} + +.message:focus { + box-shadow: inset 0 0 0 2px ACCENT-SECONDARY-COLOR !important; +} + +.message-list .message { + background-color: SECTION-COLOR; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; + transition-duration: 100ms; +} + +.message-list .message:hover { + background-color: ACCENT-DISABLED-COLOR; +} + +.message .message-body, +.message-title { + color: TEXT-PRIMARY-COLOR; +} + +.message-dialog-content .message-dialog-title { + font-weight: 700; +} + +.message .message-secondary-bin>.event-time { + color: TEXT-SECONDARY-COLOR; +} + +.message-close-button { + border-radius: 9px; + color: TEXT-PRIMARY-COLOR; + background-color: ACCENT-DISABLED-COLOR; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; + transition-duration: 100ms; +} + +.message-close-button:hover { + background-color: ACCENT-DISABLED_HOVER; +} + +.message-close-button:active { + color: TEXT-SECONDARY-COLOR; +} + + +/* Media Controls */ +.message-media-control { + border-radius: 12px; + padding: 0 14px; + margin: 20px 2px; + color: TEXT-PRIMARY-COLOR; + transition-duration: 100ms; +} + +.message-media-control:hover { + background-color: ACCENT-DISABLED-COLOR; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; + color: TEXT-PRIMARY-COLOR; +} + +.message-media-control:insensitive { + color: TEXT-DISABLED-COLOR +} + +.message-media-control:last-child:ltr { + margin-right: 20px; +} + +.message-media-control:last-child:rtl { + margin-left: 12px; +} + +.message-media-control StIcon { + icon-size: 1.09em; +} + +.media-message-cover-icon { + icon-size: 3.2em !important; + border-radius: 12px; +} + +.media-message-cover-icon.fallback { + color: TEXT-PRIMARY-COLOR; + background-color: ACCENT-DISABLED_HOVER; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; + border-radius: 12px; + icon-size: 1.6em !important; + padding: 0.79em; +} + + +/* Check Boxes */ +.check-box StBoxLayout { + spacing: .8em; +} + +.check-box StBin { + width: 24px; + height: 24px; + background-image: url("checkbox-off.svg"); +} + +.check-box:focus StBin { + background-image: url("checkbox-off-focused.svg"); +} + +.check-box:checked StBin { + background-image: url("checkbox.svg"); +} + +.check-box:focus:checked StBin { + background-image: url("checkbox-focused.svg"); +} + + +/* Toggles */ +.toggle-switch { + background-image: url("./toggle-off.svg"); + background-color: ACCENT-DISABLED_HOVER; + border-radius: 10px; + box-shadow: inset 0 0 0 1px BORDER-SHADOW !important; +} + +.toggle-switch:checked { + background-image: url("./toggle-on.svg"); + background-color: ACCENT-COLOR; +} + + +/* Do Not Distrub toggle */ +.dnd-button { + width: 48px; + border-radius: 10px; +} + +.dnd-button .toggle-switch { + background-color: ACCENT-DISABLED-COLOR; +} + +.dnd-button:hover .toggle-switch { + background-color: ACCENT-DISABLED_HOVER; +} + +.dnd-button .toggle-switch:checked { + background-color: ACCENT-COLOR; +} + +.dnd-button:hover .toggle-switch:checked { + background-color: ACCENT_HOVER; +} + +.dnd-button:focus { + border-color: transparent; +} + +.dnd-button:focus .toggle-switch { + box-shadow: inset 0 0 0 1px ACCENT-SECONDARY-COLOR !important; +} + + +.button { + color: TEXT-PRIMARY-COLOR; + background-color: ACCENT-DISABLED-COLOR; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; +} + +.button:insensitive { + box-shadow: none; + color: TEXT-SECONDARY-COLOR; +} + +.button:hover, +.button:active { + background-color: ACCENT-DISABLED_HOVER; +} + +.message-list-clear-button { + border-radius: 9px; + background-color: SECTION-COLOR; + padding: 3px 15px; + color: TEXT-PRIMARY-COLOR; +} + +.message-list-clear-button:focus { + box-shadow: inset 0 0 0 2px ACCENT-SECONDARY-COLOR !important; +} + +/* quick-settings */ +.quick-settings { + padding: 18px; + border-radius: 24px; +} + +.icon-button { + background-color: ACCENT-DISABLED-COLOR; + color: TEXT-PRIMARY-COLOR; + transition-duration: 100ms; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; +} + +.icon-button:hover { + background-color: ACCENT-DISABLED_HOVER; +} + + +.quick-toggle, +.quick-menu-toggle .quick-toggle { + color: TEXT-PRIMARY-COLOR; + border-radius: 15px; + background-color: ACCENT-DISABLED-COLOR; + transition-duration: 100ms; +} + +.quick-menu-toggle .quick-toggle:ltr { + border-radius: 15px 0 0 15px; +} + +.quick-menu-toggle .quick-toggle:rtl { + border-radius: 0 15px 15px 0; +} + +.quick-menu-toggle .quick-toggle:last-child { + border-radius: 15px; +} + +.quick-menu-toggle .quick-toggle-arrow:ltr { + border-radius: 0 15px 15px 0; +} + +.quick-menu-toggle .quicl-toggle-arrow:rtl { + border-radius: 15px 0 0 15px; +} + +.quick-toggle:hover, +.quick-menu-toggle .quick-toggle:hover, +.quick-menu-toggle .quick-toggle-arrow:hover { + background-color: ACCENT-DISABLED_HOVER; +} + +.quick-toggle:checked, +.quick-menu-toggle .quick-toggle:checked, +.quick-menu-toggle .quick-toggle-arrow:checked { + color: TEXT-PRIMARY-COLOR; + background-color: ACCENT-COLOR; +} + +.quick-toggle:checked:hover, +.quick-menu-toggle .quick-toggle:checked:hover, +.quick-menu-toggle .quick-toggle-arrow:checked:hover { + background-color: ACCENT_HOVER; +} + +.quick-menu-toggle .quick-toggle-arrow:ltr { + margin-left: 1px; +} + +.quick-menu-toggle .quick-toggle-arrow:rtl { + margin-right: 1px; +} + +.quick-slider .slider-bin { + padding: 2px 1px; + margin: 0px; + color: TEXT-PRIMARY-COLOR; +} + +.quick-slider .slider-bin:focus { + background-color: ACCENT-DISABLED-COLOR; +} + +.icon-button:focus, +.quick-toggle:focus, +.slider-bin:focus { + box-shadow: inset 0 0 0 2px ACCENT-SECONDARY-COLOR !important; +} + +.quick-toggle .quick-toggle-label { + font-weight: 600; +} + +.quick-slider .icon-button { + background-color: BACKGROUND-COLOR; + box-shadow: none; + padding: 6px; + border-radius: 11px; + transition-duration: 150ms; +} + +.quick-slider .icon-button:hover { + background-color: ACCENT-DISABLED-COLOR; + color: TEXT-PRIMARY-COLOR; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; +} + +.quick-toggle-menu { + background-color: BACKGROUND-COLOR; + border-radius: 20px; + color: TEXT-PRIMARY-COLOR; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; +} + +/* connect / disconnect text color */ +.device-subtitle { + color: TEXT-SECONDARY-COLOR; +} + +.quick-toggle-menu .header .icon { + background-color: ACCENT-COLOR; + border-radius: 12px; + icon-size: 1.4em; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; +} + +.level-bar { + padding: 0; + background-color: ACCENT-DISABLED-COLOR; +} + +/* background apps */ +.background-apps-quick-toggle { + background-color: transparent; +} + +.background-apps-quick-toggle:hover { + background-color: ACCENT-DISABLED-COLOR; +} + +.background-apps-quick-toggle:focus { + background-color: ACCENT-DISABLED-COLOR; + box-shadow: inset 0 0 0 2px ACCENT-SECONDARY-COLOR; +} + +.background-app-item .title { + color: TEXT-PRIMARY-COLOR; + font-weight: 600; +} + +.background-app-item .close-button { + color: TEXT-PRIMARY-COLOR; + background-color: ACCENT-DISABLED-COLOR; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; +} + +.background-app-item .close-button:hover { + background-color: ACCENT-DISABLED_HOVER; +} + + +/* Notifications */ +.notification-banner { + background-color: BACKGROUND-COLOR; + color: TEXT-PRIMARY-COLOR; +} + +.notification-button:active { + background-color: ACCENT-COLOR; + color: TEXT-PRIMARY-COLOR; +} + + +/* slider */ +.slider, +.level { + height: 16px; + -barlevel-height: 16px; + -barlevel-background-color: ACCENT-DISABLED-COLOR; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; + /* fill */ + -barlevel-active-background-color: ACCENT-COLOR; + /* overfill */ + -barlevel-overdrive-color: #c01c28; + -barlevel-overdrive-separator-width: 2px; + -slider-handle-radius: 7px; +} + + +/* Scroll bar */ +StScrollBar { + padding: 0; +} + +StScrollView StScrollBar { + min-width: 8px; + min-height: 8px; +} + +StScrollBar StBin#trough { + border-radius: 0; + background-color: transparent; +} + +StScrollBar StButton#vhandle, +StScrollBar StButton#hhandle { + border-radius: 8px; + background-color: SCROLLBAR-COLOR; + border: 3px solid transparent; + transition-duration: 100ms; +} + +StScrollBar StButton#vhandle:hover, +StScrollBar StButton#hhandle:hover { + background-color: SCROLLBAR_HOVER; +} + +StScrollBar StButton#vhandle:active, +StScrollBar StButton#hhandle:active { + background-color: SCROLLBAR_ACTIVE; +} + + +/* overview-ws-thumbnail */ +.workspace-thumbnail { + border: none; + /* border-radius: 9px; */ + background-color: ACCENT-DISABLED-COLOR; + border: 1px solid BORDER-SHADOW; +} + +.workspace-thumbnails .placeholder { + background-image: url("workspace-placeholder.svg"); + background-size: contain; + width: 18px; +} + +.workspace-thumbnail-indicator { + background-color: ACCENT-OPACITY-COLOR; + border-color: TEXT-DISABLED-COLOR; + border-width: 1px; + border-radius: 3px; +} + + +/* overview */ +#overviewGroup, +.workspace-animation { + background-color: BACKGROUND-COLOR; +} + +.workspace-background { + border-radius: 20px; + box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.2); +} + +.window-caption { + spacing: 20px; + border-radius: 10px; + color: TEXT-PRIMARY-COLOR; + background-color: BACKGROUND-COLOR; + border: 1px solid BORDER-SHADOW; + padding: 4px 8px; +} + + +/* App icons */ +.app-well-app.app-folder .overview-icon, +.app-folder.grid-search-result .overview-icon, +.app-well-app .overview-icon, +.grid-search-result .overview-icon { + box-shadow: inset 0 0 0 0px rgba(255, 255, 255, 0); + /* fix default dash focused box-shadow*/ + transition-duration: 100ms; + border-radius: 20px; + color: TEXT-PRIMARY-COLOR; + /* ubuntu fix */ +} + +.app-well-app:hover .overview-icon, +.app-well-app:focus .overview-icon, +.app-well-app:selected .overview-icon, +.show-apps:hover .overview-icon, +.show-apps:focus .overview-icon, +.app-well-app.app-folder .overview-icon { + box-shadow: inset 0 0 0 1px BORDER-SHADOW; + background-color: ACCENT-DISABLED-COLOR; +} + +.app-well-app.app-folder .overview-icon { + background-color: ACCENT-DISABLED_HOVER; +} + +.app-well-app:drop .overview-icon, +.grid-search-result:drop .overview-icon, +.app-well-app.app-folder:drop .overview-icon, +.app-folder.grid-search-result:drop .overview-icon { + border: 2px solid ACCENT-SECONDARY-COLOR; + background-color: ACCENT-OPACITY-COLOR; +} + + +/* folder dialog */ +.app-folder-dialog { + border-radius: 32px; + background-color: BACKGROUND-COLOR; + border: none; + box-shadow: inset 0 0 0 1px BORDER-MENU-SHADOW; +} + +.app-folder-dialog .app-well-app:hover .overview-icon, +.app-folder-dialog .app-well-app:focus .overview-icon { + background-color: ACCENT-DISABLED-COLOR; + box-shadow: inset 1px solid BORDER-SHADOW; +} + +.app-folder-dialog .folder-name-container { + color: TEXT-PRIMARY-COLOR; +} + +.app-folder-dialog .folder-name-container .folder-name-label { + padding: 5px 7px; + color: TEXT-PRIMARY-COLOR; + font-weight: 700; + transition-duration: 100ms; +} + +.app-folder-dialog .folder-name-container .folder-name-entry { + font-weight: 700; + border: none; + box-shadow: inset 0 0 0 1px BORDER-MENU-SHADOW; + background-color: ACCENT-DISABLED-COLOR; + selection-background-color: ACCENT-COLOR; + selected-color: TEXT-PRIMARY-COLOR; + /* ubuntu fix */ +} + +.app-folder-dialog .folder-name-container .edit-folder-button { + border-radius: 12px; + background-color: ACCENT-DISABLED-COLOR; + color: TEXT-PRIMARY-COLOR; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; +} + +.app-folder-dialog .folder-name-container .edit-folder-button:hover { + background-color: ACCENT-DISABLED_HOVER; +} + +.app-folder-dialog .folder-name-container .edit-folder-button:focus { + box-shadow: inset 0 0 0 2px ACCENT-SECONDARY-COLOR !important; +} + +.page-indicator .page-indicator-icon { + background-color: TEXT-SECONDARY-COLOR; +} + +.page-navigation-arrow { + border-radius: 99px; + color: TEXT-PRIMARY-COLOR; + transition-duration: 100ms; +} + +.page-navigation-arrow>StIcon { + margin: 0; +} + +.page-navigation-arrow:hover { + background-color: ACCENT-DISABLED-COLOR; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; +} + +.page-navigation-arrow:hover>StIcon { + background-color: rgba(0, 0, 0, 0); +} + +.page-navigation-arrow:active { + background-color: ACCENT-DISABLED_HOVER; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; +} + +.page-navigation-hint.next:ltr, +.page-navigation-hint.previous:rtl { + background-gradient-start: PAGE-NAV-HINT; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; +} + +.page-navigation-hint.previous:ltr, +.page-navigation-hint.next:rtl { + background-gradient-end: PAGE-NAV-HINT; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; +} + + +/* Dash */ +#dash .dash-background { + background-color: DASH-COLOR; + box-shadow: inset 0 0 0 1px BORDER-MENU-SHADOW; + padding: 4px 2px 4px 2px; + border-radius: 21px; +} + +#dashtodockContainer #dash .dash-background { + border: none; + border-radius: 18px; + /* ubuntu fix */ + transition-duration: 250ms; +} + +#dashtodockContainer.overview #dash .dash-background { + box-shadow: inset 0 0 0 1.5px BORDER-MENU-SHADOW; + background-color: DASH_OVERVIEW; +} + + +.dash-label { + background-color: BACKGROUND-COLOR; + color: TEXT-PRIMARY-COLOR; + border-radius: 11px; + border: none; + /* ubuntu fix */ + box-shadow: inset 0 0 0 1px BORDER-MENU-SHADOW; +} + +.app-well-app-running-dot { + width: 10px; + height: 5px; + border-radius: 5px; + background: ACCENT-SECONDARY-COLOR; + transition-duration: 100ms; +} + +#dash .app-well-app-running-dot { + margin-bottom: 6px; +} + +.dash-item-container .app-well-app .overview-icon, +.dash-item-container .show-apps .overview-icon { + border-radius: 21px; +} + +#dash .app-well-app:hover .overview-icon, +#dash .app-well-app:focus .overview-icon, +#dash .app-well-app:selected .overview-icon, +#dash .show-apps:hover .overview-icon, +#dash .show-apps:focus .overview-icon { + box-shadow: inset 0 0 4px 1px WELL-APP-SELECTED; + background-color: rgba(255, 255, 255, 0.1); +} + +/* ubuntu fix */ +#dashtodockContainer #dash .app-well-app:hover .overview-icon, +#dashtodockContainer #dash .app-well-app:focus .overview-icon, +#dashtodockContainer #dash .app-well-app:selected .overview-icon, +#dashtodockContainer #dash .show-apps:hover .overview-icon, +#dashtodockContainer #dash .show-apps:focus .overview-icon, +#dashtodockContainer .show-apps:selected .overview-icon, +#dashtodockContainer .show-apps:selected:hover .overview-icon, +#dashtodockContainer .show-apps:active .overview-icon, +#dashtodockContainer .show-apps:checked .overview-icon, +#dashtodockContainer .app-well-app.focused .overview-icon { + border-radius: 15px; + /* ubuntu fix*/ +} + +#dashtodockContainer .app-well-app.focused .overview-icon, +.show-apps:selected .overview-icon, +.show-apps:selected:hover .overview-icon, +.show-apps:active .overview-icon, +.show-apps:checked .overview-icon { + box-shadow: inset 0 0 4px 1px WELL-APP-SELECTED; +} + +/* ubuntu fix */ +#dashtodockContainer.bottom.extended #dash .dash-background, +#dashtodockContainer.bottom.extended.dashtodock #dash .dash-background, +#dashtodockContainer.bottom.extended.shrink #dash .dash-background, +#dashtodockContainer.top.extended #dash .dash-background, +#dashtodockContainer.top.extended.dashtodock #dash .dash-background, +#dashtodockContainer.top.extended.shrink #dash .dash-background, +#dashtodockContainer.left.extended #dash .dash-background, +#dashtodockContainer.left.extended.dashtodock #dash .dash-background, +#dashtodockContainer.left.extended.shrink #dash .dash-background, +#dashtodockContainer.right.extended #dash .dash-background, +#dashtodockContainer.right.extended.dashtodock #dash .dash-background, +#dashtodockContainer.right.extended.shrink #dash .dash-background { + border-radius: 0; + background-color: DASH-COLOR; + box-shadow: none; + transition-duration: 250ms; +} + +/* animation fix */ +#dashtodockContainer.bottom.extended.overview #dash .dash-background, +#dashtodockContainer.bottom.extended.overview.dashtodock #dash .dash-background, +#dashtodockContainer.bottom.extended.overview.shrink #dash .dash-background, +#dashtodockContainer.top.extended.overview #dash .dash-background, +#dashtodockContainer.top.extended.overview.dashtodock #dash .dash-background, +#dashtodockContainer.top.extended.overview.shrink #dash .dash-background, +#dashtodockContainer.left.extended.overview #dash .dash-background, +#dashtodockContainer.left.extended.overview.dashtodock #dash .dash-background, +#dashtodockContainer.left.extended.overview.shrink #dash .dash-background, +#dashtodockContainer.right.extended.overview #dash .dash-background, +#dashtodockContainer.right.extended.overview.dashtodock #dash .dash-background, +#dashtodockContainer.right.extended.overview.shrink #dash .dash-background { + background-color: BACKGROUND-COLOR; +} + +#dash .app-well-app:hover .app-well-app-running-dot { + width: 15px; +} + +#dashtodockContainer .app-well-app.focused .app-well-app-running-dot { + width: 20px; +} + +.dash-separator { + box-shadow: 0 0 0 0.25px TEXT-DISABLED-COLOR; +} + +.show-apps .overview-icon { + color: SHOW-APPS-ICON-COLOR; +} + + +/* Search */ +StEntry { + border-radius: 13px; + padding: 8px; + transition-duration: 100ms; + border: 1px solid BORDER-SHADOW; + background-color: SECTION-COLOR; + color: TEXT-SECONDARY-COLOR; + selection-background-color: ACCENT-COLOR; + selected-color: TEXT-PRIMARY-COLOR; + /* ubuntu fix */ +} + +StEntry StLabel { + color: TEXT-PRIMARY-COLOR; +} + +StEntry StLabel:insensitive { + color: TEXT-SECONDARY-COLOR; +} + +StEntry:hover, +StEntry:focus, +StEntry:active { + border: 1px solid TEXT-DISABLED-COLOR; + background-color: ACCENT-DISABLED-COLOR; + box-shadow: none; +} + +StEntry:focus { + color: TEXT-PRIMARY-COLOR; +} + +.search-section-content { + box-shadow: inset 0 0 0 1px BORDER-SHADOW; + border-radius: 15px; + border: none; + background-color: SECTION-COLOR; + color: TEXT-PRIMARY-COLOR; +} + +.list-search-result .list-search-result-title { + color: TEXT-PRIMARY-COLOR; +} + +/* ubuntu fix */ + +.list-search-result .list-search-result-description { + color: TEXT-SECONDARY-COLOR; +} + +.search-provider-icon .list-search-provider-content .list-search-provider-details { + width: 120px; + color: TEXT-PRIMARY-COLOR; +} + +.list-search-result:focus, +.search-provider-icon:focus, +.list-search-result:hover, +.search-provider-icon:hover, +.list-search-result:selected, +.search-provider-icon:selected { + background-color: ACCENT-DISABLED_HOVER; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; +} + +.list-search-result:active, +.search-provider-icon:active { + background-color: ACCENT-DISABLED_HOVER; + color: TEXT-PRIMARY-COLOR; +} + + +/* OSD */ +.modal-dialog { + border-radius: 18px; + background-color: BACKGROUND-COLOR; + border: none; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; + color: TEXT-PRIMARY-COLOR; +} + +.switcher-list, +.resize-popup, +.workspace-switcher, +.osd-window { + border-radius: 18px; + background: BACKGROUND-COLOR; + color: TEXT-PRIMARY-COLOR; + box-shadow: 0 0px 8px 0 rgba(0, 0, 0, 0.05); + border: none; + box-shadow: inset 0 0 0 1px BORDER-MENU-SHADOW; +} + +.ws-switcher-indicator { + background-color: TEXT-SECONDARY-COLOR; +} + +.switcher-list .item-box:hover, +.switcher-list .item-box:focus, +.switcher-list .item-box:selected { + background-color: ACCENT-DISABLED-COLOR; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; +} + +.modal-dialog-linked-button, +.notification-button, +.hotplug-notification-item { + padding: 10px 0 !important; + border-radius: 12px !important; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; + background-color: ACCENT-DISABLED-COLOR; + color: TEXT-PRIMARY-COLOR; + animation-duration: 100ms; +} + +.modal-dialog-linked-button:first-child, +.notification-button:first-child, +.hotplug-notification-item:first-child { + margin: 0 6px 12px 12px !important; +} + +.modal-dialog-linked-button:last-child, +.notification-button:last-child, +.hotplug-notification-item:last-child { + margin: 0 12px 12px 6px !important; +} + +.modal-dialog-linked-button:first-child:last-child, +.notification-button:first-child:last-child, +.hotplug-notification-item:first-child:last-child { + margin: 0 12px 12px 12px !important; +} + +.modal-dialog-linked-button, +.notification-button, +.hotplug-notification-item { + margin: 0 6px 12px 6px !important; +} + +.modal-dialog-linked-button:hover, +.modal-dialog-linked-button:focus, +.notification-button:hover, +.notification-button:focus { + background: ACCENT-DISABLED_HOVER; + color: TEXT-PRIMARY-COLOR; +} + +.modal-dialog-linked-button:last-child { + background-color: ACCENT-COLOR; +} + +.modal-dialog-linked-button:last-child:hover, +.modal-dialog-linked-button:last-child:focus { + background-color: ACCENT_HOVER; +} + +.modal-dialog .modal-dialog-linked-button:focus, +.hotplug-notification-item:focus, +.notification-banner .notification-button:focus { + animation-duration: 100ms; + box-shadow: inset 0 0 0 1px TEXT-DISABLED-COLOR !important; +} + +.modal-dialog .modal-dialog-linked-button:focus:hover, +.hotplug-notification-item:focus:hover, +.notification-banner .notification-button:focus:hover, +.modal-dialog .modal-dialog-linked-button:focus:active, +.hotplug-notification-item:focus:active, +.notification-banner .notification-button:focus:active { + box-shadow: inset 0 0 0 1px TEXT-SECONDARY-COLOR !important; +} + +.modal-dialog .modal-dialog-linked-button:insensitive, +.hotplug-notification-item:insensitive, +.notification-banner .notification-button:insensitive { + color: TEXT-SECONDARY-COLOR; + background-color: ACCENT_HOVER; +} + +.prompt-dialog-password-entry { + background-color: SECTION-COLOR; +} + +.nm-dialog-scroll-view { + border: 1px solid BORDER-SHADOW; +} + +.nm-dialog-item:selected { + box-shadow: inset 0 0 0 1px BORDER-SHADOW; +} + + +/* screenshot ui */ +.screenshot-ui-panel { + border-radius: 22px; + background-color: BACKGROUND-COLOR; + border: 0; + /* ubuntu fix */ + box-shadow: inset 0 0 0 1px BORDER-MENU-SHADOW; + color: TEXT-PRIMARY-COLOR; +} + +.screenshot-ui-show-pointer-button, +.screenshot-ui-type-button { + border-radius: 15px; + transition-duration: 100ms; +} + +.screenshot-ui-show-pointer-button:checked, +.screenshot-ui-type-button:checked, +.screenshot-ui-show-pointer-button:checked:hover, +.screenshot-ui-type-button:checked:hover, +.screenshot-ui-show-pointer-button:checked:focus, +.screenshot-ui-type-button:checked:focus { + background-color: ACCENT-DISABLED_HOVER; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; + color: TEXT-PRIMARY-COLOR; +} + +.screenshot-ui-show-pointer-button:hover, +.screenshot-ui-type-button:hover, +.screenshot-ui-show-pointer-button:focus, +.screenshot-ui-type-button:focus { + background: ACCENT-DISABLED-COLOR; + color: TEXT-PRIMARY-COLOR; +} + +.screenshot-ui-show-pointer-button:insensitive, +.screenshot-ui-type-button:insensitive { + color: TEXT-DISABLED-COLOR; +} + +.screenshot-ui-show-pointer-button:hover, +.screenshot-ui-type-button:hover, +.screenshot-ui-show-pointer-button:active, +.screenshot-ui-type-button:active { + box-shadow: inset 0 0 0 1px BORDER-SHADOW; +} + +.screenshot-ui-window-selector { + background-color: SECTION-COLOR; +} + +.screenshot-ui-window-selector-window:hover .screenshot-ui-window-selector-window-border { + border-color: ACCENT-COLOR; +} + +.screenshot-ui-window-selector-window:checked .screenshot-ui-window-selector-window-border { + border-color: ACCENT-COLOR; + background-color: ACCENT-OPACITY-COLOR; +} + +.screenshot-ui-window-selector-window:checked .screenshot-ui-window-selector-check { + color: TEXT-PRIMARY-COLOR; + background-color: ACCENT-COLOR; +} + +.screenshot-ui-capture-button { + width: 36px; + height: 36px; + border-radius: 99px; + border: 4px ACCENT-SECONDARY-COLOR; + padding: 4px; +} + +.screenshot-ui-capture-button .screenshot-ui-capture-button-circle { + background-color: ACCENT-SECONDARY-COLOR; + transition-duration: 100ms; + border-radius: 99px; +} + +.screenshot-ui-capture-button .screenshot-ui-capture-button-circle:hover, +.screenshot-ui-capture-button .screenshot-ui-capture-button-circle:focus { + background-color: ACCENT-SECONDARY_HOVER; +} + +.screenshot-ui-capture-button:hover .screenshot-ui-capture-button-circle, +.screenshot-ui-capture-button:focus .screenshot-ui-capture-button-circle { + background-color: ACCENT-SECONDARY_HOVER; +} + +.screenshot-ui-capture-button:cast .screenshot-ui-capture-button-circle { + background-color: #c01c28; +} + +.screenshot-ui-capture-button:cast:hover .screenshot-ui-capture-button-circle, +.screenshot-ui-capture-button:cast:focus .screenshot-ui-capture-button-circle { + background-color: #d61f2d; +} + +.screenshot-ui-capture-button:cast:active .screenshot-ui-capture-button-circle { + background-color: #a11722; +} + +.screenshot-ui-shot-cast-container { + background-color: ACCENT-DISABLED-COLOR; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; +} + +.screenshot-ui-shot-cast-button { + background-color: transparent; + transition-duration: 100ms; +} + +.screenshot-ui-shot-cast-button:hover, +.screenshot-ui-shot-cast-button:focus, +.screenshot-ui-shot-cast-button:active { + background-color: ACCENT-DISABLED_HOVER; +} + +.screenshot-ui-shot-cast-button:checked { + background-color: ACCENT-SECONDARY-COLOR; + color: TEXT-INVERTED-COLOR; +} + +.screenshot-ui-tooltip { + color: TEXT-PRIMARY-COLOR; + background-color: BACKGROUND-COLOR; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; + border-radius: 10px; + padding: 6px 12px; + text-align: center; + -y-offset: 24px; +} + + +/* Tiled window previews */ +.tile-preview { + background-color: ACCENT-OPACITY-COLOR; + border: 1px solid ACCENT-COLOR; +} + +.window-close, +.screenshot-ui-close-button { + background-color: CLOSE-BUTTON-COLOR; + color: TEXT-PRIMARY-COLOR; + border: 1px solid BORDER-SHADOW; + box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2); + transition-duration: 100ms; +} + +.window-close:hover, +.screenshot-ui-close-button:hover { + background-color: CLOSE-BUTTON_HOVER; +} + + +/* Looking Glass | R.I.P. custom colors & light mode */ +#LookingGlassDialog { + border-radius: 14px; + margin: 5px; + background-color: #191919; + border: 1px solid rgba(255, 255, 255, 0.06); + box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.2); +} + +#LookingGlassDialog .notebook-tab, +#LookingGlassDialog>#Toolbar .lg-toolbar-button { + border-radius: 9px; + box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.03); +} + +#LookingGlassDialog>#Toolbar .lg-toolbar-button, +#LookingGlassDialog .notebook-tab:selected { + background-color: rgba(255, 255, 255, 0.08); +} + +#LookingGlassDialog>#Toolbar .lg-toolbar-button:hover { + background-color: rgba(255, 255, 255, 0.13); +} + +.lg-dialog StEntry { + background-color: rgba(48, 48, 48, 0.6); + color: white; + border-color: rgba(255, 255, 255, 0.2); + min-height: 16px; + selection-background-color: ACCENT-COLOR; + selected-color: #fff; +} + +.lg-extension { + border-radius: 12px; +} + +.lg-debug-flag-button .toggle-switch { + margin: 5px; + border-radius: 10px; + height: 26px; + padding: 0; +} + + +/* Aylur's widgets */ +.quick-settings.tweaked .media, +.quick-settings.tweaked .message, +.popup-menu-content .message, +.quick-settings.tweaked .quick-container { + background-color: SECTION-COLOR; + border-radius: 16px; + border: none; +} + +.quick-settings.tweaked .quick-container .quick-slider { + margin: 2.5px 0 2.5px 0; +} + +.quick-settings.tweaked .quick-container .quick-slider:first-child { + margin: 0 0 2.5px 0; +} + +.quick-settings.tweaked .quick-container .quick-slider:last-child { + margin: 2.5px 0 0 0; +} + +.quick-settings.tweaked .quick-container .quick-slider:first-child:last-child { + margin: 0; +} + +.quick-settings.tweaked .media { + font-weight: 500; +} + +.quick-settings.adjusted .quick-toggle .quick-toggle-arrow:ltr { + border-radius: 0 36px 36px 0; +} + +.quick-settings.adjusted .quick-toggle .quick-toggle-arrow:rtl { + border-radius: 36px 0 0 36px; +} + +.usage-level StIcon { + width: 1.29em; +} \ No newline at end of file diff --git a/css/panel.css b/css/panel.css new file mode 100644 index 0000000..5436a1c --- /dev/null +++ b/css/panel.css @@ -0,0 +1,105 @@ +#panel { + background-color: BACKGROUND-COLOR; + height: 38px; + font-size: 14px; +} + +#panel:overview { + background-color: transparent; +} + +#panel .screencast-indicator, +#panel .remote-access-indicator { + color: #cd9309; +} + +#panel .panel-button.screen-recording-indicator { + background: #c01c28; +} + +#panel .panel-button.screen-sharing-indicator { + background: #cd9309; +} + +#panel .panel-button.screen-recording-indicator:hover { + background: rgba(192, 28, 40, 0.9); +} + +#panel .panel-button.screen-sharing-indicator:hover { + background: rgba(205, 147, 9, 0.9); +} + +.panel-button, +.clock, +.clock-display StIcon { + color: TEXT-PRIMARY-COLOR; + border-radius: 14px; + border: 4px solid transparent; + background-color: ACCENT-DISABLED-COLOR; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; +} + +.clock-display StIcon { + padding: 8px; + margin: 0; +} + +#panel .power-status.panel-status-indicators-box StIcon { + font-size: 14px; +} + +.panel-button:hover, +.panel-button:hover .clock, +.panel-button:active, +.panel-button:overview, +/* activites */ +.panel-button:active .clock { + background-color: ACCENT-DISABLED_HOVER; +} + +#panel .power-status.panel-status-indicators-box { + font-size: 12px; +} + +/* date-menu-mod */ +.clock-display { + background-color: transparent !important; + box-shadow: none !important; + border: none !important; +} + +.clock { + margin: 0 !important; +} + +/* clock fix by Aylur's widgets */ +#panel .panel-button.clock-display { + -natural-hpadding: 0; + -minimum-hpadding: 0; +} + +.datemenu-calendar-column { + padding-left: 0; + padding-right: 0; +} + +/* if notifications are hidden, make the column centered */ +.datemenu-user { + padding: 30px; +} + +.datemenu-user>StButton { + width: 160px; + height: 160px; + padding: 2px; + border-radius: 99px; + margin-bottom: 12px; +} + +.datemenu-user>StButton>StWidget { + border-radius: 99px; +} + +.datemenu-levels { + spacing: 8px; +} \ No newline at end of file diff --git a/gnome-shell/gnome-shell.css b/gnome-shell/gnome-shell.css deleted file mode 100644 index 6d34dfd..0000000 --- a/gnome-shell/gnome-shell.css +++ /dev/null @@ -1,1302 +0,0 @@ -/* Raw Marble shell theme for GNOME DE -Copyright (C) 2023 Vladyslav Hroshev - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . */ - - -stage { - color: TEXT-PRIMARY-COLOR; -} - -.workspace-background{ - border: 1px solid BORDER-SHADOW; -} - - -/* panel */ -#panel{ - background-color: BACKGROUND-COLOR; - /* height: 34px; */ - font-size: 14px; -} - -#panel:overview{ - background-color: transparent; -} - -#panel .screencast-indicator, -#panel .remote-access-indicator { - color: #cd9309; } - -#panel .panel-button.screen-recording-indicator { - background:#c01c28; -} - -#panel .panel-button.screen-sharing-indicator { - background: #cd9309; -} - -#panel .panel-button.screen-recording-indicator:hover { - background: rgba(192, 28, 40, 0.9); -} - -#panel .panel-button.screen-sharing-indicator:hover { - background: rgba(205, 147, 9, 0.9); -} - -.panel-button, -.clock, -.clock-display StIcon{ - color: TEXT-PRIMARY-COLOR; - /* border-radius: 14px; */ - /* border: 4px solid transparent; */ - background-color: ACCENT-DISABLED-COLOR; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; -} -.clock-display StIcon{ - padding: 8px; - margin: 0; -} - -#panel .power-status.panel-status-indicators-box StIcon { - font-size: 14px; -} - -.panel-button:hover, -.panel-button:hover .clock, -.panel-button:active, -.panel-button:overview, /* activites */ -.panel-button:active .clock{ - background-color: ACCENT-DISABLED_HOVER; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; -} - -#panel .power-status.panel-status-indicators-box { - font-size: 12px; -} - -/* date-menu-mod */ -.clock-display{ - background-color: transparent !important; - box-shadow: none !important; - border: none !important; -} -.clock{ - margin: 0 !important; -} - -/* clock fix by Aylur's widgets */ -#panel .panel-button.clock-display{ - -natural-hpadding: 0; - -minimum-hpadding: 0; -} -.datemenu-calendar-column{ padding-left: 0; padding-right: 0; } /* if notifications are hidden, make the column centered */ -.datemenu-user{ padding: 30px;} -.datemenu-user > StButton{ - width: 160px; - height: 160px; - padding: 2px; - border-radius: 99px; - margin-bottom: 12px; -} -.datemenu-user > StButton > StWidget{ border-radius: 99px; } -.datemenu-levels{ spacing: 8px; } - - -/* Activities Ripple */ -.ripple-box { - background-color: ACCENT-OPACITY-COLOR; - box-shadow: 0 0 2px 2px ACCENT-OPACITY-COLOR; -} - - -/* POPOVERS */ -.popup-menu-content, .candidate-popup-content { - color: TEXT-PRIMARY-COLOR; - background: BACKGROUND-COLOR; - padding: 10px; - border-radius: 20px; - border: 1px solid BORDER-MENU-SHADOW; - box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.05); -} - -.popup-menu-item, .app-menu { - margin: 3px 0; -} - -.popup-menu-item:focus, .popup-menu-item:hover, .popup-menu-item:checked { - background-color: ACCENT-DISABLED-COLOR !important; - box-shadow: inset 0 0 0 1px BORDER-SHADOW !important; - color: TEXT-PRIMARY-COLOR; -} - -.popup-menu-item:checked { - border-radius: 12px 12px 0 0; -} - -.popup-menu-item:active { - background-color: ACCENT-DISABLED_HOVER; - color: TEXT-PRIMARY-COLOR; -} - -/* 44 separator margin fix */ -.popup-separator-menu-item { - padding: 0 !important; -} - -.popup-separator-menu-item .popup-separator-menu-item-separator { - height: 1px; - margin: 6px 0; - background-color: SEPARATOR-COLOR; -} - -.popup-separator-menu-item-separator:ltr { - margin-right: 4.5px; } -.popup-separator-menu-item-separator:rtl { - margin-left: 4.5px; } - -.popup-sub-menu { - background-color: ACCENT-DISABLED-COLOR; - color: TEXT-PRIMARY-COLOR; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; - border-radius: 0 0 12px 12px; - margin: 0 0 2px 0; -} - -.popup-sub-menu .popup-menu-item { - margin: 0; - color: TEXT-PRIMARY-COLOR; - -} - -.popup-sub-menu .popup-menu-item:last-child { - border-radius: 0 0 12px 12px; -} - -.popup-sub-menu .popup-menu-item:hover, .popup-sub-menu .popup-menu-item:focus { - background-color: ACCENT-DISABLED_HOVER !important; -} - -.popup-menu-item:insensitive { color: TEXT-DISABLED-COLOR; margin: 0; } - -.popup-inactive-menu-item { color: TEXT-PRIMARY-COLOR; background-color: transparent; } - -.popup-inactive-menu-item:insensitive { color: TEXT-SECONDARY-COLOR !important; } - -.calendar .calendar-nonwork-day { color: TEXT-PRIMARY-COLOR; } - - -/* calendar */ -#calendarArea { padding: 0; } - -.datemenu-calendar-column { - spacing: 5px; } - .datemenu-calendar-column:ltr { - padding-left: 6px; } - .datemenu-calendar-column:rtl { - padding-right: 6px; } - .datemenu-calendar-column .datemenu-displays-box { - spacing: 5px; } - -/* calendar header */ -.datemenu-today-button { - color: TEXT-SECONDARY-COLOR; - background-color: none; - border-radius: 12px; -} - -.datemenu-today-button:hover { - transition-duration: 100ms; - background-color: ACCENT-DISABLED-COLOR; -} - -.datemenu-today-button:focus { - transition-duration: 100ms; - background-color: ACCENT-DISABLED-COLOR; - box-shadow: inset 0 0 0 2px ACCENT-SECONDARY-COLOR !important; -} - -.day-label { - font-weight: 600; -} - -.date-label { - font-weight: 700; -} - -/* calendar-days */ -.calendar-day-base, .calendar-month-header .pager-button { - color: TEXT-PRIMARY-COLOR; - border-radius: 10px; -} - -.calendar-month-label{ - color: TEXT-PRIMARY-COLOR; -} - -.calendar-day-base, .calendar .calendar-month-header .pager-button { transition-duration: 100ms; } - -.calendar-day-base:hover, -.calendar-day-base:focus, -.calendar-day-base:active:hover, -.calendar-day-base:selected:hover, -.calendar .calendar-month-header .pager-button:hover, -.calendar .calendar-month-header .pager-button:focus { - background-color: ACCENT-DISABLED_HOVER; - color: TEXT-PRIMARY-COLOR; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; -} - -.calendar-day-base:active, -.calendar-day-base:selected { - background: ACCENT-DISABLED_HOVER; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; -} - -.calendar-today, -.calendar-today:selected { - background-color: ACCENT-COLOR; - color: TEXT-PRIMARY-COLOR !important; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; -} - -.calendar-today:hover, -.calendar-today:selected:hover { - background-color: ACCENT_HOVER; -} - -.calendar .calendar-day-with-events { - background-image: url("calendar-today.svg"); - background-size: contain; - font-weight: 700; -} - - -/* events */ -.calendar { - border-radius: 14px; - background-color: SECTION-COLOR; - box-shadow: inset 0 0 0 1px BORDER-SHADOW !important; - padding: 5px; -} - - -.events-button, -.world-clocks-button, -.weather-button { - background-color: SECTION-COLOR; - color: TEXT-SECONDARY-COLOR; - border-radius: 14px; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; -} - -.events-button:hover, -.world-clocks-button:hover, -.weather-button:hover { - background-color: ACCENT-DISABLED-COLOR; -} - -.events-button:focus, -.world-clocks-button:focus, -.weather-button:focus { - box-shadow: inset 0 0 0 2px ACCENT-SECONDARY-COLOR !important; -} - -.weather-button .weather-header, -.events-button .events-title, -.world-clocks-button .world-clocks-header { color: TEXT-PRIMARY-COLOR; } - -.events-button .event-time { color: TEXT-SECONDARY-COLOR; } - -.events-button:active, -.world-clock-button:active, -.weather-button:active { background-color: ACCENT-DISABLED_HOVER; } - -.world-clocks-button .world-clocks-time, -.world-clocks-button .world-clocks-city, -.world-clocks-button .world-clocks-timezone { color: TEXT-SECONDARY-COLOR; } - -.weather-button .weather-forecast-time { color: TEXT-SECONDARY-COLOR; } - - -/* message-list */ -.message-list { - border: none; - padding: 0; -} - -.message-list-sections:ltr { - margin-right: 0px; } -.message-list-sections:rtl { - margin-left: 0px; -} - -.message { - background: BACKGROUND-COLOR; - color: TEXT-PRIMARY-COLOR; - border-radius: 18px; - border: none; - box-shadow: inset 0 0 0 1px BORDER-MENU-SHADOW; -} - -.message:focus { - box-shadow: inset 0 0 0 2px ACCENT-SECONDARY-COLOR !important; -} - -.message-list .message { - background-color: SECTION-COLOR; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; - transition-duration: 100ms; -} - -.message-list .message:hover { - background-color: ACCENT-DISABLED-COLOR; -} - -.message .message-body, .message-title { - color: TEXT-PRIMARY-COLOR; -} - -.message-dialog-content .message-dialog-title { - font-weight: 700; -} - -.message .message-secondary-bin > .event-time { - color: TEXT-SECONDARY-COLOR; -} - -.message-close-button { - border-radius: 9px; - color: TEXT-PRIMARY-COLOR; - background-color: ACCENT-DISABLED-COLOR; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; - transition-duration: 100ms; -} - -.message-close-button:hover { - background-color: ACCENT-DISABLED_HOVER; -} - -.message-close-button:active { - color: TEXT-SECONDARY-COLOR; -} - - -/* Media Controls */ -.message-media-control { - border-radius: 12px; - padding: 0 14px; - margin: 20px 2px; - color: TEXT-PRIMARY-COLOR; - transition-duration: 100ms;} - .message-media-control:hover { - background-color: ACCENT-DISABLED-COLOR; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; - color: TEXT-PRIMARY-COLOR; } - .message-media-control:insensitive { - color: TEXT-DISABLED-COLOR } - .message-media-control:last-child:ltr { - margin-right: 20px; } - .message-media-control:last-child:rtl { - margin-left: 12px; } - .message-media-control StIcon { - icon-size: 1.09em; - } - -.media-message-cover-icon { - icon-size: 3.2em !important; - border-radius: 12px; -} - -.media-message-cover-icon.fallback { - color: TEXT-PRIMARY-COLOR; - background-color: ACCENT-DISABLED_HOVER; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; - border-radius: 12px; - icon-size: 1.6em !important; - padding: 0.79em; -} - - -/* Check Boxes */ -.check-box StBoxLayout { - spacing: .8em; } - -.check-box StBin { - width: 24px; - height: 24px; - background-image: url("checkbox-off.svg"); -} - -.check-box:focus StBin { - background-image: url("checkbox-off-focused.svg"); -} - -.check-box:checked StBin { - background-image: url("checkbox.svg"); -} - -.check-box:focus:checked StBin { - background-image: url("checkbox-focused.svg"); -} - - -/* Toggles */ -.toggle-switch { - background-image: url("./toggle-off.svg"); - background-color: ACCENT-DISABLED_HOVER; - border-radius: 10px; - box-shadow: inset 0 0 0 1px BORDER-SHADOW !important; -} -.toggle-switch:checked { - background-image: url("./toggle-on.svg"); - background-color: ACCENT-COLOR; -} - - -/* Do Not Distrub toggle */ -.dnd-button { - width: 48px; - border-radius: 10px; -} - -.dnd-button .toggle-switch { - background-color: ACCENT-DISABLED-COLOR; -} - -.dnd-button:hover .toggle-switch { - background-color: ACCENT-DISABLED_HOVER; -} - -.dnd-button .toggle-switch:checked { - background-color: ACCENT-COLOR; -} - -.dnd-button:hover .toggle-switch:checked { - background-color: ACCENT_HOVER; -} - -.dnd-button:focus { - border-color: transparent; -} - -.dnd-button:focus .toggle-switch { - box-shadow: inset 0 0 0 1px ACCENT-SECONDARY-COLOR !important; -} - - -.button { - color: TEXT-PRIMARY-COLOR; - background-color: ACCENT-DISABLED-COLOR; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; -} - -.button:insensitive { - box-shadow: none; - color: TEXT-SECONDARY-COLOR; -} - -.button:hover, .button:active { - background-color: ACCENT-DISABLED_HOVER; -} - -.message-list-clear-button { - border-radius: 9px; - background-color: SECTION-COLOR; - padding: 3px 15px; - color: TEXT-PRIMARY-COLOR; -} - -.message-list-clear-button:focus { - box-shadow: inset 0 0 0 2px ACCENT-SECONDARY-COLOR !important; -} - -/* quick-settings */ -.quick-settings { - padding: 18px; - border-radius: 24px; -} - -.icon-button { - background-color: ACCENT-DISABLED-COLOR; - color: TEXT-PRIMARY-COLOR; - transition-duration: 100ms; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; -} - -.icon-button:hover { - background-color: ACCENT-DISABLED_HOVER; -} - - -.quick-toggle, .quick-menu-toggle .quick-toggle { - color: TEXT-PRIMARY-COLOR; - border-radius: 15px; - background-color: ACCENT-DISABLED-COLOR; - transition-duration: 100ms; -} - -.quick-menu-toggle .quick-toggle:ltr { - border-radius: 15px 0 0 15px; } -.quick-menu-toggle .quick-toggle:rtl { - border-radius: 0 15px 15px 0; } -.quick-menu-toggle .quick-toggle:last-child { - border-radius: 15px; -} - -.quick-menu-toggle .quick-toggle-arrow:ltr { border-radius: 0 15px 15px 0; } -.quick-menu-toggle .quicl-toggle-arrow:rtl { border-radius: 15px 0 0 15px; } - -.quick-toggle:hover, .quick-menu-toggle .quick-toggle:hover, .quick-menu-toggle .quick-toggle-arrow:hover { - background-color: ACCENT-DISABLED_HOVER; -} - -.quick-toggle:checked, .quick-menu-toggle .quick-toggle:checked, .quick-menu-toggle .quick-toggle-arrow:checked { - color: TEXT-PRIMARY-COLOR; - background-color: ACCENT-COLOR; -} - -.quick-toggle:checked:hover, .quick-menu-toggle .quick-toggle:checked:hover, .quick-menu-toggle .quick-toggle-arrow:checked:hover { - background-color: ACCENT_HOVER; -} - -.quick-menu-toggle .quick-toggle-arrow:ltr { - margin-left: 1px; -} -.quick-menu-toggle .quick-toggle-arrow:rtl { - margin-right: 1px; -} - -.quick-slider .slider-bin { - padding: 2px 1px; - margin: 0px; - color: TEXT-PRIMARY-COLOR; -} -.quick-slider .slider-bin:focus { - background-color: ACCENT-DISABLED-COLOR; -} - -.icon-button:focus, .quick-toggle:focus, .slider-bin:focus { box-shadow: inset 0 0 0 2px ACCENT-SECONDARY-COLOR !important; } - -.quick-toggle .quick-toggle-label { - font-weight: 600; -} - -.quick-slider .icon-button { - background-color: BACKGROUND-COLOR; - box-shadow: none; - padding: 6px; - border-radius: 11px; - transition-duration: 150ms; -} - -.quick-slider .icon-button:hover { - background-color: ACCENT-DISABLED-COLOR; - color: TEXT-PRIMARY-COLOR; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; -} - -.quick-toggle-menu { - background-color: BACKGROUND-COLOR; - border-radius: 20px; - color: TEXT-PRIMARY-COLOR; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; -} - -/* connect / disconnect text color */ -.device-subtitle { - color: TEXT-SECONDARY-COLOR; } - -.quick-toggle-menu .header .icon { - background-color: ACCENT-COLOR; - border-radius: 12px; - icon-size: 1.4em; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; -} - -.level-bar { - padding: 0; - background-color: ACCENT-DISABLED-COLOR; -} - -/* background apps */ -.background-apps-quick-toggle { - background-color: transparent; -} - -.background-apps-quick-toggle:hover { - background-color: ACCENT-DISABLED-COLOR; -} - -.background-apps-quick-toggle:focus { - background-color: ACCENT-DISABLED-COLOR; - box-shadow: inset 0 0 0 2px ACCENT-SECONDARY-COLOR; -} - -.background-app-item .title { - color: TEXT-PRIMARY-COLOR; - font-weight: 600; -} - -.background-app-item .close-button { - color: TEXT-PRIMARY-COLOR; - background-color: ACCENT-DISABLED-COLOR; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; -} - -.background-app-item .close-button:hover { - background-color: ACCENT-DISABLED_HOVER; -} - - -/* Notifications */ -.notification-banner{ - background-color: BACKGROUND-COLOR; - color: TEXT-PRIMARY-COLOR; -} - -.notification-button:active{ - background-color: ACCENT-COLOR; - color: TEXT-PRIMARY-COLOR; -} - - -/* slider */ -.slider, -.level { - height: 16px; - -barlevel-height: 16px; - -barlevel-background-color: ACCENT-DISABLED-COLOR; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; - /* fill */ - -barlevel-active-background-color: ACCENT-COLOR; - /* overfill */ - -barlevel-overdrive-color: #c01c28; - -barlevel-overdrive-separator-width: 2px; - -slider-handle-radius: 7px; -} - - -/* Scroll bar */ -StScrollBar { - padding: 0; } - StScrollView StScrollBar { - min-width: 8px; - min-height: 8px;} - StScrollBar StBin#trough { - border-radius: 0; - background-color: transparent; } - StScrollBar StButton#vhandle, StScrollBar StButton#hhandle { - border-radius: 8px; - background-color: SCROLLBAR-COLOR; - border: 3px solid transparent; - transition-duration: 100ms; } - StScrollBar StButton#vhandle:hover, StScrollBar StButton#hhandle:hover { - background-color: SCROLLBAR_HOVER; } - StScrollBar StButton#vhandle:active, StScrollBar StButton#hhandle:active { - background-color: SCROLLBAR_ACTIVE; } - - -/* overview-ws-thumbnail */ -.workspace-thumbnail { - border: none; - /* border-radius: 9px; */ - background-color: ACCENT-DISABLED-COLOR; - border: 1px solid BORDER-SHADOW; -} - -.workspace-thumbnails .placeholder { - background-image: url("workspace-placeholder.svg"); - background-size: contain; - width: 18px; -} - -.workspace-thumbnail-indicator { - background-color: ACCENT-OPACITY-COLOR; - border-color: TEXT-DISABLED-COLOR; - border-width: 1px; - border-radius: 3px; -} - - -/* overview */ -#overviewGroup, .workspace-animation { - background-color: BACKGROUND-COLOR; -} - -.workspace-background { - border-radius: 20px; - box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.2); -} - -.window-caption { - spacing: 20px; - border-radius: 10px; - color: TEXT-PRIMARY-COLOR; - background-color: BACKGROUND-COLOR; - border: 1px solid BORDER-SHADOW; - padding: 4px 8px; -} - - -/* App icons */ -.app-well-app.app-folder .overview-icon, .app-folder.grid-search-result .overview-icon, .app-well-app .overview-icon, .grid-search-result .overview-icon { - box-shadow: inset 0 0 0 0px rgba(255, 255, 255, 0); /* fix default dash focused box-shadow*/ - transition-duration: 100ms; - border-radius: 20px; - color: TEXT-PRIMARY-COLOR; /* ubuntu fix */ -} - -.app-well-app:hover .overview-icon, -.app-well-app:focus .overview-icon, -.app-well-app:selected .overview-icon, -.show-apps:hover .overview-icon, -.show-apps:focus .overview-icon, -.app-well-app.app-folder .overview-icon { - box-shadow: inset 0 0 0 1px BORDER-SHADOW; - background-color: ACCENT-DISABLED-COLOR; -} - -.app-well-app.app-folder .overview-icon { - background-color: ACCENT-DISABLED_HOVER; -} - -.app-well-app:drop .overview-icon, .grid-search-result:drop .overview-icon, -.app-well-app.app-folder:drop .overview-icon, .app-folder.grid-search-result:drop .overview-icon { - border: 2px solid ACCENT-SECONDARY-COLOR; - background-color: ACCENT-OPACITY-COLOR; -} - - -/* folder dialog */ -.app-folder-dialog { - border-radius: 32px; - background-color: BACKGROUND-COLOR; - border: none; - box-shadow: inset 0 0 0 1px BORDER-MENU-SHADOW; -} - -.app-folder-dialog .app-well-app:hover .overview-icon, -.app-folder-dialog .app-well-app:focus .overview-icon { - background-color: ACCENT-DISABLED-COLOR; - box-shadow: inset 1px solid BORDER-SHADOW; -} - -.app-folder-dialog .folder-name-container { color: TEXT-PRIMARY-COLOR; } - -.app-folder-dialog .folder-name-container .folder-name-label { - padding: 5px 7px; - color: TEXT-PRIMARY-COLOR; - font-weight: 700; - transition-duration: 100ms; -} - -.app-folder-dialog .folder-name-container .folder-name-entry { - font-weight: 700; - border: none; - box-shadow: inset 0 0 0 1px BORDER-MENU-SHADOW; - background-color: ACCENT-DISABLED-COLOR; - selection-background-color: ACCENT-COLOR; - selected-color: TEXT-PRIMARY-COLOR; /* ubuntu fix */ -} - -.app-folder-dialog .folder-name-container .edit-folder-button { - border-radius: 12px; - background-color: ACCENT-DISABLED-COLOR; - color: TEXT-PRIMARY-COLOR; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; -} - -.app-folder-dialog .folder-name-container .edit-folder-button:hover { - background-color: ACCENT-DISABLED_HOVER; -} - -.app-folder-dialog .folder-name-container .edit-folder-button:focus { box-shadow: inset 0 0 0 2px ACCENT-SECONDARY-COLOR !important; } - -.page-indicator .page-indicator-icon { background-color: TEXT-SECONDARY-COLOR; } - -.page-navigation-arrow { - border-radius: 99px; - color: TEXT-PRIMARY-COLOR; - transition-duration: 100ms; -} - -.page-navigation-arrow > StIcon { - margin: 0; -} - -.page-navigation-arrow:hover { - background-color: ACCENT-DISABLED-COLOR; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; -} - -.page-navigation-arrow:hover > StIcon { - background-color: rgba(0, 0, 0, 0); -} - -.page-navigation-arrow:active { - background-color: ACCENT-DISABLED_HOVER; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; -} - -.page-navigation-hint.next:ltr, .page-navigation-hint.previous:rtl { - background-gradient-start: PAGE-NAV-HINT; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; -} - -.page-navigation-hint.previous:ltr, .page-navigation-hint.next:rtl { - background-gradient-end: PAGE-NAV-HINT; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; -} - - -/* Dash */ -#dash .dash-background { - background-color: DASH-COLOR; - box-shadow: inset 0 0 0 1px BORDER-MENU-SHADOW; - padding: 4px 2px 4px 2px; - border-radius: 21px; -} - -#dashtodockContainer #dash .dash-background { - border: none; - border-radius: 18px; /* ubuntu fix */ - transition-duration: 250ms; -} - -#dashtodockContainer.overview #dash .dash-background { - box-shadow: inset 0 0 0 1.5px BORDER-MENU-SHADOW; - background-color: DASH_OVERVIEW; -} - - -.dash-label { - background-color: BACKGROUND-COLOR; - color: TEXT-PRIMARY-COLOR; - border-radius: 11px; - border: none; /* ubuntu fix */ - box-shadow: inset 0 0 0 1px BORDER-MENU-SHADOW; -} - -.app-well-app-running-dot { - width: 10px; - height: 5px; - border-radius: 5px; - background: ACCENT-SECONDARY-COLOR; - transition-duration: 100ms; -} - -#dash .app-well-app-running-dot { - margin-bottom: 6px; } - -.dash-item-container .app-well-app .overview-icon, -.dash-item-container .show-apps .overview-icon { - border-radius: 21px; -} - -#dash .app-well-app:hover .overview-icon, -#dash .app-well-app:focus .overview-icon, -#dash .app-well-app:selected .overview-icon, -#dash .show-apps:hover .overview-icon, -#dash .show-apps:focus .overview-icon { - box-shadow: inset 0 0 4px 1px WELL-APP-SELECTED; - background-color: rgba(255, 255, 255, 0.1); -} - -/* ubuntu fix */ -#dashtodockContainer #dash .app-well-app:hover .overview-icon, -#dashtodockContainer #dash .app-well-app:focus .overview-icon, -#dashtodockContainer #dash .app-well-app:selected .overview-icon, -#dashtodockContainer #dash .show-apps:hover .overview-icon, -#dashtodockContainer #dash .show-apps:focus .overview-icon, -#dashtodockContainer .show-apps:selected .overview-icon, -#dashtodockContainer .show-apps:selected:hover .overview-icon, -#dashtodockContainer .show-apps:active .overview-icon, -#dashtodockContainer .show-apps:checked .overview-icon, -#dashtodockContainer .app-well-app.focused .overview-icon { - border-radius: 15px; /* ubuntu fix*/ -} - -#dashtodockContainer .app-well-app.focused .overview-icon, -.show-apps:selected .overview-icon, -.show-apps:selected:hover .overview-icon, -.show-apps:active .overview-icon, -.show-apps:checked .overview-icon { - box-shadow: inset 0 0 4px 1px WELL-APP-SELECTED; -} - -/* ubuntu fix */ -#dashtodockContainer.bottom.extended #dash .dash-background, #dashtodockContainer.bottom.extended.dashtodock #dash .dash-background, #dashtodockContainer.bottom.extended.shrink #dash .dash-background, -#dashtodockContainer.top.extended #dash .dash-background, #dashtodockContainer.top.extended.dashtodock #dash .dash-background, #dashtodockContainer.top.extended.shrink #dash .dash-background, -#dashtodockContainer.left.extended #dash .dash-background, #dashtodockContainer.left.extended.dashtodock #dash .dash-background, #dashtodockContainer.left.extended.shrink #dash .dash-background, -#dashtodockContainer.right.extended #dash .dash-background, #dashtodockContainer.right.extended.dashtodock #dash .dash-background, #dashtodockContainer.right.extended.shrink #dash .dash-background { - border-radius: 0; - background-color: DASH-COLOR; - box-shadow: none; - transition-duration: 250ms; -} - -/* animation fix */ -#dashtodockContainer.bottom.extended.overview #dash .dash-background, #dashtodockContainer.bottom.extended.overview.dashtodock #dash .dash-background, #dashtodockContainer.bottom.extended.overview.shrink #dash .dash-background, -#dashtodockContainer.top.extended.overview #dash .dash-background, #dashtodockContainer.top.extended.overview.dashtodock #dash .dash-background, #dashtodockContainer.top.extended.overview.shrink #dash .dash-background, -#dashtodockContainer.left.extended.overview #dash .dash-background, #dashtodockContainer.left.extended.overview.dashtodock #dash .dash-background, #dashtodockContainer.left.extended.overview.shrink #dash .dash-background, -#dashtodockContainer.right.extended.overview #dash .dash-background, #dashtodockContainer.right.extended.overview.dashtodock #dash .dash-background, #dashtodockContainer.right.extended.overview.shrink #dash .dash-background { - background-color: BACKGROUND-COLOR; } - -#dash .app-well-app:hover .app-well-app-running-dot { width: 15px; } - -#dashtodockContainer .app-well-app.focused .app-well-app-running-dot { width: 20px; } - -.dash-separator { - box-shadow: 0 0 0 0.25px TEXT-DISABLED-COLOR; -} - -.show-apps .overview-icon { - color: SHOW-APPS-ICON-COLOR; -} - - -/* Search */ -StEntry{ - border-radius: 13px; - padding: 8px; - transition-duration: 100ms; - border: 1px solid BORDER-SHADOW; - background-color: SECTION-COLOR; - color: TEXT-SECONDARY-COLOR; - selection-background-color: ACCENT-COLOR; - selected-color: TEXT-PRIMARY-COLOR; /* ubuntu fix */ -} - -StEntry StLabel { - color: TEXT-PRIMARY-COLOR; -} - -StEntry StLabel:insensitive { - color: TEXT-SECONDARY-COLOR; -} - -StEntry:hover, StEntry:focus, StEntry:active { - border: 1px solid TEXT-DISABLED-COLOR; - background-color: ACCENT-DISABLED-COLOR; - box-shadow: none; -} - -StEntry:focus { - color: TEXT-PRIMARY-COLOR; -} - -.search-section-content{ - box-shadow: inset 0 0 0 1px BORDER-SHADOW; - border-radius: 15px; - border: none; - background-color: SECTION-COLOR; - color:TEXT-PRIMARY-COLOR; -} - -.list-search-result .list-search-result-title { color: TEXT-PRIMARY-COLOR; } /* ubuntu fix */ - -.list-search-result .list-search-result-description { color: TEXT-SECONDARY-COLOR; } - -.search-provider-icon .list-search-provider-content .list-search-provider-details { - width: 120px; - color: TEXT-PRIMARY-COLOR; } - -.list-search-result:focus, .search-provider-icon:focus, -.list-search-result:hover, .search-provider-icon:hover, -.list-search-result:selected, .search-provider-icon:selected { - background-color: ACCENT-DISABLED_HOVER; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; -} - -.list-search-result:active, .search-provider-icon:active{ - background-color: ACCENT-DISABLED_HOVER; - color: TEXT-PRIMARY-COLOR; -} - - -/* OSD */ -.modal-dialog { - border-radius: 18px; - background-color: BACKGROUND-COLOR; - border: none; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; - color: TEXT-PRIMARY-COLOR; -} - -.switcher-list, -.resize-popup, -.workspace-switcher, -.osd-window { - border-radius: 18px; - background: BACKGROUND-COLOR; - color: TEXT-PRIMARY-COLOR; - box-shadow: 0 0px 8px 0 rgba(0, 0, 0, 0.05); - border: none; - box-shadow: inset 0 0 0 1px BORDER-MENU-SHADOW; -} - -.ws-switcher-indicator { background-color: TEXT-SECONDARY-COLOR; } - -.switcher-list .item-box:hover, -.switcher-list .item-box:focus, -.switcher-list .item-box:selected{ - background-color: ACCENT-DISABLED-COLOR; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; -} - -.modal-dialog-linked-button, .notification-button, .hotplug-notification-item { - padding: 10px 0 !important; - border-radius: 12px !important; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; - background-color: ACCENT-DISABLED-COLOR; - color:TEXT-PRIMARY-COLOR; - animation-duration: 100ms; -} - -.modal-dialog-linked-button:first-child, .notification-button:first-child, .hotplug-notification-item:first-child { - margin: 0 6px 12px 12px !important; -} - -.modal-dialog-linked-button:last-child, .notification-button:last-child, .hotplug-notification-item:last-child { - margin: 0 12px 12px 6px !important; -} - -.modal-dialog-linked-button:first-child:last-child, .notification-button:first-child:last-child, .hotplug-notification-item:first-child:last-child { - margin: 0 12px 12px 12px !important; -} - -.modal-dialog-linked-button, .notification-button, .hotplug-notification-item { - margin: 0 6px 12px 6px !important; -} - -.modal-dialog-linked-button:hover, -.modal-dialog-linked-button:focus, -.notification-button:hover, -.notification-button:focus { - background: ACCENT-DISABLED_HOVER; - color: TEXT-PRIMARY-COLOR; -} - -.modal-dialog-linked-button:last-child { - background-color: ACCENT-COLOR; -} - -.modal-dialog-linked-button:last-child:hover, -.modal-dialog-linked-button:last-child:focus { - background-color: ACCENT_HOVER; -} - -.modal-dialog .modal-dialog-linked-button:focus, .hotplug-notification-item:focus, .notification-banner .notification-button:focus { - animation-duration: 100ms; - box-shadow: inset 0 0 0 1px TEXT-DISABLED-COLOR !important; } - .modal-dialog .modal-dialog-linked-button:focus:hover, .hotplug-notification-item:focus:hover, .notification-banner .notification-button:focus:hover, .modal-dialog .modal-dialog-linked-button:focus:active, .hotplug-notification-item:focus:active, .notification-banner .notification-button:focus:active { - box-shadow: inset 0 0 0 1px TEXT-SECONDARY-COLOR !important; } - -.modal-dialog .modal-dialog-linked-button:insensitive, .hotplug-notification-item:insensitive, .notification-banner .notification-button:insensitive { - color: TEXT-SECONDARY-COLOR; - background-color: ACCENT_HOVER; -} - -.prompt-dialog-password-entry { - background-color: SECTION-COLOR; -} - -.nm-dialog-scroll-view{ - border: 1px solid BORDER-SHADOW; -} -.nm-dialog-item:selected{ - box-shadow: inset 0 0 0 1px BORDER-SHADOW; -} - - - -/* screenshot ui */ -.screenshot-ui-panel { - border-radius: 22px; - background-color: BACKGROUND-COLOR; - border: 0; /* ubuntu fix */ - box-shadow: inset 0 0 0 1px BORDER-MENU-SHADOW; - color: TEXT-PRIMARY-COLOR; -} - -.screenshot-ui-show-pointer-button, .screenshot-ui-type-button { - border-radius: 15px; - transition-duration: 100ms; -} - -.screenshot-ui-show-pointer-button:checked, .screenshot-ui-type-button:checked, -.screenshot-ui-show-pointer-button:checked:hover, .screenshot-ui-type-button:checked:hover, -.screenshot-ui-show-pointer-button:checked:focus, .screenshot-ui-type-button:checked:focus { - background-color: ACCENT-DISABLED_HOVER; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; - color: TEXT-PRIMARY-COLOR; -} - -.screenshot-ui-show-pointer-button:hover, .screenshot-ui-type-button:hover, -.screenshot-ui-show-pointer-button:focus, .screenshot-ui-type-button:focus { - background: ACCENT-DISABLED-COLOR; - color: TEXT-PRIMARY-COLOR; -} - -.screenshot-ui-show-pointer-button:insensitive, .screenshot-ui-type-button:insensitive { - color: TEXT-DISABLED-COLOR; -} - -.screenshot-ui-show-pointer-button:hover, .screenshot-ui-type-button:hover, -.screenshot-ui-show-pointer-button:active, .screenshot-ui-type-button:active { - box-shadow: inset 0 0 0 1px BORDER-SHADOW; -} - -.screenshot-ui-window-selector { - background-color: SECTION-COLOR; -} - -.screenshot-ui-window-selector-window:hover .screenshot-ui-window-selector-window-border { - border-color: ACCENT-COLOR; -} - -.screenshot-ui-window-selector-window:checked .screenshot-ui-window-selector-window-border { - border-color: ACCENT-COLOR; - background-color: ACCENT-OPACITY-COLOR; -} - -.screenshot-ui-window-selector-window:checked .screenshot-ui-window-selector-check { - color: TEXT-PRIMARY-COLOR; - background-color: ACCENT-COLOR; -} - -.screenshot-ui-capture-button { - width: 36px; - height: 36px; - border-radius: 99px; - border: 4px ACCENT-SECONDARY-COLOR; - padding: 4px; } - .screenshot-ui-capture-button .screenshot-ui-capture-button-circle { - background-color: ACCENT-SECONDARY-COLOR; - transition-duration: 100ms; - border-radius: 99px; } - .screenshot-ui-capture-button .screenshot-ui-capture-button-circle:hover, .screenshot-ui-capture-button .screenshot-ui-capture-button-circle:focus { - background-color: ACCENT-SECONDARY_HOVER; } - .screenshot-ui-capture-button:hover .screenshot-ui-capture-button-circle, .screenshot-ui-capture-button:focus .screenshot-ui-capture-button-circle { - background-color: ACCENT-SECONDARY_HOVER; } - .screenshot-ui-capture-button:cast .screenshot-ui-capture-button-circle { - background-color: #c01c28; } - .screenshot-ui-capture-button:cast:hover .screenshot-ui-capture-button-circle, .screenshot-ui-capture-button:cast:focus .screenshot-ui-capture-button-circle { - background-color: #d61f2d; } - .screenshot-ui-capture-button:cast:active .screenshot-ui-capture-button-circle { background-color: #a11722;} - -.screenshot-ui-shot-cast-container { - background-color: ACCENT-DISABLED-COLOR; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; -} - -.screenshot-ui-shot-cast-button { - background-color: transparent; - transition-duration: 100ms; -} - -.screenshot-ui-shot-cast-button:hover, .screenshot-ui-shot-cast-button:focus, .screenshot-ui-shot-cast-button:active { - background-color: ACCENT-DISABLED_HOVER; -} - -.screenshot-ui-shot-cast-button:checked { - background-color: ACCENT-SECONDARY-COLOR; - color: TEXT-INVERTED-COLOR; -} - -.screenshot-ui-tooltip { - color: TEXT-PRIMARY-COLOR; - background-color: BACKGROUND-COLOR; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; - border-radius: 10px; - padding: 6px 12px; - text-align: center; - -y-offset: 24px; -} - - -/* Tiled window previews */ -.tile-preview { - background-color: ACCENT-OPACITY-COLOR; - border: 1px solid ACCENT-COLOR; -} - -.window-close, .screenshot-ui-close-button { - background-color: CLOSE-BUTTON-COLOR; - color: TEXT-PRIMARY-COLOR; - border: 1px solid BORDER-SHADOW; - box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2); - transition-duration: 100ms; -} - -.window-close:hover, .screenshot-ui-close-button:hover { - background-color: CLOSE-BUTTON_HOVER; -} - - -/* Looking Glass | R.I.P. custom colors & light mode */ -#LookingGlassDialog { - border-radius: 14px; - margin: 5px; - background-color: #191919; - border: 1px solid rgba(255, 255, 255, 0.06); - box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.2); -} - -#LookingGlassDialog .notebook-tab, #LookingGlassDialog > #Toolbar .lg-toolbar-button { border-radius: 9px; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.03); } - -#LookingGlassDialog > #Toolbar .lg-toolbar-button, #LookingGlassDialog .notebook-tab:selected { background-color: rgba(255, 255, 255, 0.08); } -#LookingGlassDialog > #Toolbar .lg-toolbar-button:hover { background-color: rgba(255, 255, 255, 0.13); } - -.lg-dialog StEntry { - background-color: rgba(48, 48, 48, 0.6); - color: white; - border-color: rgba(255, 255, 255, 0.2); - min-height: 16px; - selection-background-color: ACCENT-COLOR; - selected-color: #fff; } - -.lg-extension { - border-radius: 12px; -} - -.lg-debug-flag-button .toggle-switch { - margin: 5px; - border-radius: 10px; - height: 26px; - padding: 0; } - - -/* Aylur's widgets */ -.quick-settings.tweaked .media, -.quick-settings.tweaked .message, -.popup-menu-content .message, -.quick-settings.tweaked .quick-container { - background-color: SECTION-COLOR; - border-radius: 16px; - border: none; -} - -.quick-settings.tweaked .quick-container .quick-slider { margin: 2.5px 0 2.5px 0; } -.quick-settings.tweaked .quick-container .quick-slider:first-child { margin: 0 0 2.5px 0; } -.quick-settings.tweaked .quick-container .quick-slider:last-child { margin: 2.5px 0 0 0; } -.quick-settings.tweaked .quick-container .quick-slider:first-child:last-child { margin: 0; } - -.quick-settings.tweaked .media { font-weight: 500; } - -.quick-settings.adjusted .quick-toggle .quick-toggle-arrow:ltr { border-radius: 0 36px 36px 0; } -.quick-settings.adjusted .quick-toggle .quick-toggle-arrow:rtl { border-radius: 36px 0 0 36px; } - -.usage-level StIcon{ width: 1.29em; } \ No newline at end of file diff --git a/install.py b/install.py index d34064a..e4a0529 100644 --- a/install.py +++ b/install.py @@ -84,6 +84,19 @@ def apply_theme_to_file(hue, destination, theme_mode, apply_file, sat=None): file.write(edit_file) +def generate_file(): + gnome_shell = open("./gnome-shell/gnome-shell.css", "w") + + for file in os.listdir("./css/"): + gnome_shell.write(open('./css/'+ file).read() + '\n') + + gnome_shell.close() + + +def write_to_file(file, edit_file): + open(edit_file, 'a').write('\n' + open(file).read()) + + def apply_theme(hue, destination, theme_mode, sat=None): """ Apply theme to all files listed in "apply-theme-files" (colors.json) @@ -111,6 +124,7 @@ def install_color(hue, name, theme_mode, sat=None): try: for mode in theme_mode: copy_files("./gnome-shell", destination_return(name, mode)) + apply_theme(hue, destination_return(name, mode), mode, sat=sat) except Exception as err: @@ -118,6 +132,7 @@ def install_color(hue, name, theme_mode, sat=None): else: print("Done.") + os.remove("./gnome-shell/gnome-shell.css") def remove_files(): @@ -201,6 +216,12 @@ def main(): metavar='(0 - 360)') custom_args.add_argument('--name', nargs='?', help='theme name (optional)') + # Add arguments for panel tweaks + panel_args = parser.add_argument_group('Panel tweaks') + panel_args.add_argument('--def_panel_size', action='store_true', help='set default panel size') + panel_args.add_argument('--no_pill', action='store_true', help='remove panel button background') + panel_args.add_argument('--panel_text', action='store_true', help='custom panel HEXA text color') + # Add arguments for optional theme tweaks color_tweaks = parser.add_argument_group('Optional theme tweaks') color_tweaks.add_argument('--mode', choices=['light', 'dark'], help='select a specific theme mode to install') @@ -211,6 +232,15 @@ def main(): mode = [args.mode] if args.mode else ['light', 'dark'] + generate_file() + + if args.def_panel_size: + write_to_file("./tweaks/panel/def-size.css", "./gnome-shell/gnome-shell.css") + + if args.no_pill: + write_to_file("./tweaks/panel/no-pill.css", "./gnome-shell/gnome-shell.css") + + # Process the arguments and perform the installation accordingly if args.remove: remove_files() @@ -242,6 +272,6 @@ def main(): if __name__ == "__main__": - colors = json.load(open("colors.json")) # used as database for replacing colors, files which must be generated + colors = json.load(open("colors.json")) # used as database for replacing colors main() diff --git a/tweaks/panel/def-size.css b/tweaks/panel/def-size.css new file mode 100644 index 0000000..0397173 --- /dev/null +++ b/tweaks/panel/def-size.css @@ -0,0 +1,10 @@ +/* default panel size */ +#panel{ + height: 2.2em; + font-size: 15px; +} +.panel-button, +.clock, +.clock-display StIcon { + border-radius: 99px; +} \ No newline at end of file diff --git a/tweaks/panel/no-pill.css b/tweaks/panel/no-pill.css new file mode 100644 index 0000000..9e538d5 --- /dev/null +++ b/tweaks/panel/no-pill.css @@ -0,0 +1,14 @@ +.panel-button, +.clock, +.clock-display StIcon { + background-color: transparent; + box-shadow: none; +} +.panel-button:hover, +.panel-button:hover .clock, +.panel-button:active, +.panel-button:overview, /* activites */ +.panel-button:active .clock { + background-color: ACCENT-DISABLED_HOVER; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; +} \ No newline at end of file From 9ea0fce771098cdaf092ceb674c07cb127142a93 Mon Sep 17 00:00:00 2001 From: Vladyslav Hroshev Date: Mon, 20 Mar 2023 18:53:15 +0200 Subject: [PATCH 4/8] Reduce buttons margin in the panel --- tweaks/panel/def-size.css | 1 + 1 file changed, 1 insertion(+) diff --git a/tweaks/panel/def-size.css b/tweaks/panel/def-size.css index 0397173..ceddd9b 100644 --- a/tweaks/panel/def-size.css +++ b/tweaks/panel/def-size.css @@ -7,4 +7,5 @@ .clock, .clock-display StIcon { border-radius: 99px; + border: 3px solid transparent; } \ No newline at end of file From e24425450cda29fac2f799ffa2378a10c1a65e31 Mon Sep 17 00:00:00 2001 From: Vladyslav Hroshev Date: Mon, 20 Mar 2023 18:53:37 +0200 Subject: [PATCH 5/8] Panel custom text color --- install.py | 41 +++++++++++++++++++++++++++++++---------- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/install.py b/install.py index e4a0529..e5ec768 100644 --- a/install.py +++ b/install.py @@ -51,7 +51,7 @@ def copy_files(source, destination): os.system(f"cp -aT {source} {destination}") -def apply_theme_to_file(hue, destination, theme_mode, apply_file, sat=None): +def apply_colors(hue, destination, theme_mode, apply_file, sat=None): """ Install accent colors from colors.json to different file :param hue @@ -107,7 +107,7 @@ def apply_theme(hue, destination, theme_mode, sat=None): """ for apply_file in os.listdir("./gnome-shell/"): - apply_theme_to_file(hue, destination, theme_mode, apply_file, sat=sat) + apply_colors(hue, destination, theme_mode, apply_file, sat=sat) def install_color(hue, name, theme_mode, sat=None): @@ -132,7 +132,6 @@ def install_color(hue, name, theme_mode, sat=None): else: print("Done.") - os.remove("./gnome-shell/gnome-shell.css") def remove_files(): @@ -215,12 +214,12 @@ def main(): custom_args.add_argument('--hue', type=int, choices=range(0, 361), help='generate theme from Hue prompt', metavar='(0 - 360)') custom_args.add_argument('--name', nargs='?', help='theme name (optional)') - + # Add arguments for panel tweaks panel_args = parser.add_argument_group('Panel tweaks') - panel_args.add_argument('--def_panel_size', action='store_true', help='set default panel size') - panel_args.add_argument('--no_pill', action='store_true', help='remove panel button background') - panel_args.add_argument('--panel_text', action='store_true', help='custom panel HEXA text color') + panel_args.add_argument('--panel_default_size', action='store_true', help='set default panel size') + panel_args.add_argument('--panel_no_pill', action='store_true', help='remove panel button background') + panel_args.add_argument('--panel_text_color', type=str, nargs='?', help='custom panel HEXA text color') # Add arguments for optional theme tweaks color_tweaks = parser.add_argument_group('Optional theme tweaks') @@ -234,12 +233,32 @@ def main(): generate_file() - if args.def_panel_size: + + if args.panel_default_size: write_to_file("./tweaks/panel/def-size.css", "./gnome-shell/gnome-shell.css") - if args.no_pill: + if args.panel_no_pill: write_to_file("./tweaks/panel/no-pill.css", "./gnome-shell/gnome-shell.css") - + + if args.panel_text_color and len(args.panel_text_color) in range(6, 10): + try: + args.panel_text_color = args.panel_text_color.lstrip('#') + "ff" + int(args.panel_text_color[:], 16) + + except ValueError: + print(f'Error: Invalid HEXA color code: {args.panel_text_color}') + + else: + print(f'Panel HEXA color code: {args.panel_text_color}') + + open('./gnome-shell/gnome-shell.css', 'a')\ + .write(".panel-button,\ + .clock,\ + .clock-display StIcon {\ + color: rgba(" + + ', '.join(str(int(args.panel_text_color[i:i+2], 16)) for i in (0, 2, 4)) + + ', ' + str(int(args.panel_text_color[6:8], 16) / 255) + ");\ + }") # Process the arguments and perform the installation accordingly if args.remove: @@ -275,3 +294,5 @@ if __name__ == "__main__": colors = json.load(open("colors.json")) # used as database for replacing colors main() + + os.remove("./gnome-shell/gnome-shell.css") \ No newline at end of file From 656958244a102aea858eeaf7df29f60b7e871dda Mon Sep 17 00:00:00 2001 From: Vladyslav Hroshev Date: Mon, 20 Mar 2023 21:28:31 +0200 Subject: [PATCH 6/8] Optimize code --- css/gnome.css | 107 +++++++++++++++++++ css/panel.css | 105 ------------------- install.py | 283 ++++++++++++++++++++++++++------------------------ 3 files changed, 256 insertions(+), 239 deletions(-) delete mode 100644 css/panel.css diff --git a/css/gnome.css b/css/gnome.css index 44b0091..9e6c8e3 100644 --- a/css/gnome.css +++ b/css/gnome.css @@ -12,6 +12,113 @@ stage { box-shadow: 0 0 2px 2px ACCENT-OPACITY-COLOR; } +/* Panel */ +#panel { + background-color: BACKGROUND-COLOR; + height: 38px; + font-size: 14px; +} + +#panel:overview { + background-color: transparent; +} + +#panel .screencast-indicator, +#panel .remote-access-indicator { + color: #cd9309; +} + +#panel .panel-button.screen-recording-indicator { + background: #c01c28; +} + +#panel .panel-button.screen-sharing-indicator { + background: #cd9309; +} + +#panel .panel-button.screen-recording-indicator:hover { + background: rgba(192, 28, 40, 0.9); +} + +#panel .panel-button.screen-sharing-indicator:hover { + background: rgba(205, 147, 9, 0.9); +} + +.panel-button, +.clock, +.clock-display StIcon { + color: TEXT-PRIMARY-COLOR; + border-radius: 14px; + border: 4px solid transparent; + background-color: ACCENT-DISABLED-COLOR; + box-shadow: inset 0 0 0 1px BORDER-SHADOW; +} + +.clock-display StIcon { + padding: 8px; + margin: 0; +} + +#panel .power-status.panel-status-indicators-box StIcon { + font-size: 14px; +} + +.panel-button:hover, +.panel-button:hover .clock, +.panel-button:active, +.panel-button:overview, +/* activites */ +.panel-button:active .clock { + background-color: ACCENT-DISABLED_HOVER; +} + +#panel .power-status.panel-status-indicators-box { + font-size: 12px; +} + +/* date-menu-mod */ +.clock-display { + background-color: transparent !important; + box-shadow: none !important; + border: none !important; +} + +.clock { + margin: 0 !important; +} + +/* clock fix by Aylur's widgets */ +#panel .panel-button.clock-display { + -natural-hpadding: 0; + -minimum-hpadding: 0; +} + +.datemenu-calendar-column { + padding-left: 0; + padding-right: 0; +} + +/* if notifications are hidden, make the column centered */ +.datemenu-user { + padding: 30px; +} + +.datemenu-user>StButton { + width: 160px; + height: 160px; + padding: 2px; + border-radius: 99px; + margin-bottom: 12px; +} + +.datemenu-user>StButton>StWidget { + border-radius: 99px; +} + +.datemenu-levels { + spacing: 8px; +} + /* POPOVERS */ .popup-menu-content, diff --git a/css/panel.css b/css/panel.css deleted file mode 100644 index 5436a1c..0000000 --- a/css/panel.css +++ /dev/null @@ -1,105 +0,0 @@ -#panel { - background-color: BACKGROUND-COLOR; - height: 38px; - font-size: 14px; -} - -#panel:overview { - background-color: transparent; -} - -#panel .screencast-indicator, -#panel .remote-access-indicator { - color: #cd9309; -} - -#panel .panel-button.screen-recording-indicator { - background: #c01c28; -} - -#panel .panel-button.screen-sharing-indicator { - background: #cd9309; -} - -#panel .panel-button.screen-recording-indicator:hover { - background: rgba(192, 28, 40, 0.9); -} - -#panel .panel-button.screen-sharing-indicator:hover { - background: rgba(205, 147, 9, 0.9); -} - -.panel-button, -.clock, -.clock-display StIcon { - color: TEXT-PRIMARY-COLOR; - border-radius: 14px; - border: 4px solid transparent; - background-color: ACCENT-DISABLED-COLOR; - box-shadow: inset 0 0 0 1px BORDER-SHADOW; -} - -.clock-display StIcon { - padding: 8px; - margin: 0; -} - -#panel .power-status.panel-status-indicators-box StIcon { - font-size: 14px; -} - -.panel-button:hover, -.panel-button:hover .clock, -.panel-button:active, -.panel-button:overview, -/* activites */ -.panel-button:active .clock { - background-color: ACCENT-DISABLED_HOVER; -} - -#panel .power-status.panel-status-indicators-box { - font-size: 12px; -} - -/* date-menu-mod */ -.clock-display { - background-color: transparent !important; - box-shadow: none !important; - border: none !important; -} - -.clock { - margin: 0 !important; -} - -/* clock fix by Aylur's widgets */ -#panel .panel-button.clock-display { - -natural-hpadding: 0; - -minimum-hpadding: 0; -} - -.datemenu-calendar-column { - padding-left: 0; - padding-right: 0; -} - -/* if notifications are hidden, make the column centered */ -.datemenu-user { - padding: 30px; -} - -.datemenu-user>StButton { - width: 160px; - height: 160px; - padding: 2px; - border-radius: 99px; - margin-bottom: 12px; -} - -.datemenu-user>StButton>StWidget { - border-radius: 99px; -} - -.datemenu-levels { - spacing: 8px; -} \ No newline at end of file diff --git a/install.py b/install.py index e5ec768..1ed1ce1 100644 --- a/install.py +++ b/install.py @@ -22,118 +22,25 @@ import argparse import textwrap -def destination_return(path_name, theme_mode): +def generate_file(folder, final_file): """ - Copied/modified gnome-shell theme location - :param path_name: color name - :param theme_mode: theme name (light or dark) - :return: copied files' folder location + Combines all files in a folder into a single file + :param folder: source folder + :param final_file: location where file will be created """ - return f"~/.themes/Marble-{path_name}-{theme_mode}/gnome-shell" + opened_file = open(final_file, "w") + + for file in os.listdir(folder): + opened_file.write(open(folder + file).read() + '\n') + + opened_file.close() -def copy_files(source, destination): - """ - Copy files from the source to another directory - :param source: where files will be copied - :param destination: where files will be pasted - """ - - destinationDirs = destination.split("/") - loopCreateDirs = f"{destinationDirs[0]}/" - - # create necessary folders - for i in range(1, len(destinationDirs)): - loopCreateDirs += f"{destinationDirs[i]}/" - os.system(f"mkdir -p {loopCreateDirs}") - - os.system(f"cp -aT {source} {destination}") - - -def apply_colors(hue, destination, theme_mode, apply_file, sat=None): - """ - Install accent colors from colors.json to different file - :param hue - :param destination: file directory - :param theme_mode: theme name (light or dark) - :param apply_file: file name - :param sat: color saturation (optional) - """ - - with open(os.path.expanduser(f"{destination}/{apply_file}"), "r") as file: - edit_file = file.read() - - # colorsys works in range(0, 1) - h = hue / 360 - for element in colors["elements"]: - # convert to range(0, 1) - lightness = int(colors["elements"][element][theme_mode]["l"]) / 100 - saturation = int(colors["elements"][element][theme_mode]["s"]) / 100 if sat is None else int( - colors["elements"][element][theme_mode]["s"]) * (sat / 100) / 100 - alpha = colors["elements"][element][theme_mode]["a"] - - # convert hsl to rgb and multiple every item - red, green, blue = [int(item * 256) for item in colorsys.hls_to_rgb(h, lightness, saturation)] - - replace_keyword = colors["elements"][element]["replace"] - - edit_file = edit_file.replace(replace_keyword, f"rgba({red}, {green}, {blue}, {alpha})") - - with open(os.path.expanduser(f"{destination}/{apply_file}"), "w") as file: - file.write(edit_file) - - -def generate_file(): - gnome_shell = open("./gnome-shell/gnome-shell.css", "w") - - for file in os.listdir("./css/"): - gnome_shell.write(open('./css/'+ file).read() + '\n') - - gnome_shell.close() - - -def write_to_file(file, edit_file): +def concatenate_files(file, edit_file): open(edit_file, 'a').write('\n' + open(file).read()) -def apply_theme(hue, destination, theme_mode, sat=None): - """ - Apply theme to all files listed in "apply-theme-files" (colors.json) - :param hue - :param destination: file directory - :param theme_mode: theme name (light or dark) - :param sat: color saturation (optional) - """ - - for apply_file in os.listdir("./gnome-shell/"): - apply_colors(hue, destination, theme_mode, apply_file, sat=sat) - - -def install_color(hue, name, theme_mode, sat=None): - """ - Copy files and generate theme with different accent color - :param hue - :param name: theme name - :param theme_mode: light or dark mode - :param sat: color saturation (optional) - """ - - print(f"Creating {name} {', '.join(theme_mode)} theme...", end=" ") - - try: - for mode in theme_mode: - copy_files("./gnome-shell", destination_return(name, mode)) - - apply_theme(hue, destination_return(name, mode), mode, sat=sat) - - except Exception as err: - print("\nError: " + str(err)) - - else: - print("Done.") - - def remove_files(): # Define the paths of the folders to be deleted paths = ["~/.themes", "~/.local/share/themes"] @@ -181,6 +88,126 @@ def remove_files(): print(f"The path {path} does not exist.") +def destination_return(path_name, theme_mode): + """ + Copied/modified gnome-shell theme location + :param path_name: color name + :param theme_mode: theme name (light or dark) + :return: copied files' folder location + """ + + return f"~/.themes/Marble-{path_name}-{theme_mode}/gnome-shell" + + +def copy_files(source, destination): + """ + Copy files from the source to another directory + :param source: where files will be copied + :param destination: where files will be pasted + """ + + destination_dirs = destination.split("/") + loop_create_dirs = f"{destination_dirs[0]}/" + + # create necessary folders + for i in range(1, len(destination_dirs)): + loop_create_dirs += f"{destination_dirs[i]}/" + os.system(f"mkdir -p {loop_create_dirs}") + + os.system(f"cp -aT {source} {destination}") + + +def apply_colors(hue, destination, theme_mode, apply_file, sat=None): + """ + Install accent colors from colors.json to different file + :param hue + :param destination: file directory + :param theme_mode: theme name (light or dark) + :param apply_file: file name + :param sat: color saturation (optional) + """ + + with open(os.path.expanduser(f"{destination}/{apply_file}"), "r") as file: + edit_file = file.read() + + # colorsys works in range(0, 1) + h = hue / 360 + for element in colors["elements"]: + # convert to range(0, 1) + lightness = int(colors["elements"][element][theme_mode]["l"]) / 100 + saturation = int(colors["elements"][element][theme_mode]["s"]) / 100 if sat is None else int( + colors["elements"][element][theme_mode]["s"]) * (sat / 100) / 100 + alpha = colors["elements"][element][theme_mode]["a"] + + # convert hsl to rgb and multiple every item + red, green, blue = [int(item * 256) for item in colorsys.hls_to_rgb(h, lightness, saturation)] + + replace_keyword = colors["elements"][element]["replace"] + + edit_file = edit_file.replace(replace_keyword, f"rgba({red}, {green}, {blue}, {alpha})") + + with open(os.path.expanduser(f"{destination}/{apply_file}"), "w") as file: + file.write(edit_file) + + +def apply_theme(hue, destination, theme_mode, sat=None): + """ + Apply theme to all files listed in "apply-theme-files" (colors.json) + :param hue + :param destination: file directory + :param theme_mode: theme name (light or dark) + :param sat: color saturation (optional) + """ + + for apply_file in os.listdir("./gnome-shell/"): + apply_colors(hue, destination, theme_mode, apply_file, sat=sat) + + +def install_color(hue, name, theme_mode, sat=None): + """ + Copy files and generate theme with different accent color + :param hue + :param name: theme name + :param theme_mode: light or dark mode + :param sat: color saturation (optional) + """ + + print(f"Creating {name} {', '.join(theme_mode)} theme...", end=" ") + + try: + for mode in theme_mode: + copy_files("./gnome-shell", destination_return(name, mode)) + + apply_theme(hue, destination_return(name, mode), mode, sat=sat) + + except Exception as err: + print("\nError: " + str(err)) + + else: + print("Done.") + + +def hex_to_rgba(hex_color): + """ + Convert hex(a) to rgba + :param hex_color: input value + """ + + try: + if len(hex_color) in range(6, 10): + hex_color = hex_color.lstrip('#') + "ff" + # is convertable + int(hex_color[:], 16) + else: + raise ValueError + + except ValueError: + raise ValueError(f'Error: Invalid HEX color code: {hex_color}') + + else: + return int(hex_color[0:2], 16), int(hex_color[2:4], 16), int(hex_color[4:6], 16), int(hex_color[6:8], 16) / 255 + + def main(): parser = argparse.ArgumentParser(prog="python install.py", formatter_class=argparse.RawDescriptionHelpFormatter, @@ -214,12 +241,6 @@ def main(): custom_args.add_argument('--hue', type=int, choices=range(0, 361), help='generate theme from Hue prompt', metavar='(0 - 360)') custom_args.add_argument('--name', nargs='?', help='theme name (optional)') - - # Add arguments for panel tweaks - panel_args = parser.add_argument_group('Panel tweaks') - panel_args.add_argument('--panel_default_size', action='store_true', help='set default panel size') - panel_args.add_argument('--panel_no_pill', action='store_true', help='remove panel button background') - panel_args.add_argument('--panel_text_color', type=str, nargs='?', help='custom panel HEXA text color') # Add arguments for optional theme tweaks color_tweaks = parser.add_argument_group('Optional theme tweaks') @@ -227,38 +248,31 @@ def main(): color_tweaks.add_argument('--sat', type=int, choices=range(0, 251), help='custom color saturation (<100%% - reduce, >100%% - increase)', metavar='(0 - 250)%') + # Add arguments for panel tweaks + panel_args = parser.add_argument_group('Panel tweaks') + panel_args.add_argument('-Pds', '--panel_default_size', action='store_true', help='set default panel size') + panel_args.add_argument('-Pnp', '--panel_no_pill', action='store_true', help='remove panel button background') + panel_args.add_argument('-Ptc', '--panel_text_color', type=str, nargs='?', help='custom panel HEX(A) text color') + args = parser.parse_args() mode = [args.mode] if args.mode else ['light', 'dark'] - generate_file() - + generate_file("./css/", gnome_shell_css) if args.panel_default_size: - write_to_file("./tweaks/panel/def-size.css", "./gnome-shell/gnome-shell.css") + concatenate_files("./tweaks/panel/def-size.css", gnome_shell_css) if args.panel_no_pill: - write_to_file("./tweaks/panel/no-pill.css", "./gnome-shell/gnome-shell.css") + concatenate_files("./tweaks/panel/no-pill.css", gnome_shell_css) - if args.panel_text_color and len(args.panel_text_color) in range(6, 10): - try: - args.panel_text_color = args.panel_text_color.lstrip('#') + "ff" - int(args.panel_text_color[:], 16) - - except ValueError: - print(f'Error: Invalid HEXA color code: {args.panel_text_color}') - - else: - print(f'Panel HEXA color code: {args.panel_text_color}') - - open('./gnome-shell/gnome-shell.css', 'a')\ - .write(".panel-button,\ - .clock,\ - .clock-display StIcon {\ - color: rgba(" + - ', '.join(str(int(args.panel_text_color[i:i+2], 16)) for i in (0, 2, 4)) + - ', ' + str(int(args.panel_text_color[6:8], 16) / 255) + ");\ - }") + if args.panel_text_color: + open('./gnome-shell/gnome-shell.css', 'a') \ + .write(".panel-button,\ + .clock,\ + .clock-display StIcon {\ + color: rgba(" + ', '.join(map(str, hex_to_rgba(args.panel_text_color))) + ");\ + }") # Process the arguments and perform the installation accordingly if args.remove: @@ -291,8 +305,9 @@ def main(): if __name__ == "__main__": + gnome_shell_css = "./gnome-shell/gnome-shell.css" colors = json.load(open("colors.json")) # used as database for replacing colors main() - os.remove("./gnome-shell/gnome-shell.css") \ No newline at end of file + os.remove("./gnome-shell/gnome-shell.css") From 737775ca9b87e463f8967c51514e86b4c2240f9e Mon Sep 17 00:00:00 2001 From: Vladyslav Hroshev Date: Mon, 20 Mar 2023 21:53:40 +0200 Subject: [PATCH 7/8] Update README.md --- README.md | 13 +++++++++++-- readme-images/tweaks/panel-default-size.png | Bin 0 -> 23385 bytes readme-images/tweaks/panel-no-pill.png | Bin 0 -> 23515 bytes 3 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 readme-images/tweaks/panel-default-size.png create mode 100644 readme-images/tweaks/panel-no-pill.png diff --git a/README.md b/README.md index 84bfd94..00f894a 100644 --- a/README.md +++ b/README.md @@ -35,13 +35,13 @@ Icon theme: https://github.com/vinceliuice/Colloid-icon-theme ![Dash look](./readme-images/dash.png?raw=true "Dash look") ## Requirements -- GNOME 43, 44. I do not guarantee correct functionality on other versions. +- GNOME 43, 44. I don't guarantee correct functionality on other versions. - [User Themes](https://extensions.gnome.org/extension/19/user-themes/ "User Themes") extension. - [GNOME Tweaks](https://gitlab.gnome.org/GNOME/gnome-tweaks "GNOME Tweaks"). - Python 3.2+. ## Installation -1. Open terminal. +1. Open the terminal. 2. Clone git and change directory: ```shell git clone https://github.com/imarkoff/Marble-shell-theme.git && cd Marble-shell-theme @@ -82,6 +82,15 @@ You can install several themes in one string: `python install.py --red --green - | --mode= | light / dark | light / dark theme only | | --sat= | (0 - 250)% | custom color saturation (<100% - reduce, >100% - increase) | +#### Panel tweaks +![Panel default size](./readme-images/tweaks/panel-default-size.png "Panel default size") +![Panel without buttons background](./readme-images/tweaks/panel-no-pill.png "Panel without buttons background") +| Option | Secondary option | Description | +|----------------------------|------------------|--------------------------------| +| -Pds, --panel_default_size | | set default panel size | +| -Pnp, --panel_no_pill | | remove panel button background | +| -Ptc, --panel_text_color | #abcdef | custom panel HEX(A) text color | + #### Examples | Command | Description | |------------------------------------------------|----------------------------------------------------------------------| diff --git a/readme-images/tweaks/panel-default-size.png b/readme-images/tweaks/panel-default-size.png new file mode 100644 index 0000000000000000000000000000000000000000..62ec1f7f688902601c8c38fbd3f0ed85498b1bab GIT binary patch literal 23385 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ࠎwWF-GzP%Ifu91p_YWB{K5* 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 literal 0 HcmV?d00001 From 8f9d1dd2d3de10e0c13781a0305cb250a0f2f396 Mon Sep 17 00:00:00 2001 From: Vladyslav Hroshev Date: Mon, 20 Mar 2023 22:00:45 +0200 Subject: [PATCH 8/8] Update README.md --- README.md | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 00f894a..847a413 100644 --- a/README.md +++ b/README.md @@ -59,28 +59,28 @@ python install.py -h #### Install default color You can install several themes in one string: `python install.py --red --green --blue` -| Option | Theme mode (optional) | Description | -|---------------|-----------------------|----------------------------------------------------------| -| -A, --all | | Install all available accent colors. Light & dark mode. | -| --red | | red theme only | -| --pink | | pink theme only | -| --purple | | purple theme only | -| --blue | | blue theme only | -| --green | | green theme only | -| --yellow | | yellow theme only | -| --gray | | gray theme only | +| Option | Description | +|-----------|--------------------------------------------------------| +| -A, --all | Install all available accent colors, light & dark mode | +| --red | red theme only | +| --pink | pink theme only | +| --purple | purple theme only | +| --blue | blue theme only | +| --green | green theme only | +| --yellow | yellow theme only | +| --gray | gray theme only | #### Install custom color -| Option | Hue degree | Secondary option (optional) | Description | -|--------|------------|-----------------------------|------------------------------------------| -| --hue | (0 - 360) | | Generate theme from Hue prompt [0 - 360] | -| | | --name=NAME | Custom theme name | +| Option | Secondary option (optional) | Description | +|--------|-----------------------------|------------------------------------------| +| --hue | (0 - 360) | Generate theme from Hue prompt [0 - 360] | +| --name | --name=NAME | Custom theme name | #### Optional theme tweaks -| Option | Secondary option | Description | -|---------|------------------|------------------------------------------------------------| -| --mode= | light / dark | light / dark theme only | -| --sat= | (0 - 250)% | custom color saturation (<100% - reduce, >100% - increase) | +| Option | Secondary option | Description | +|--------|------------------|------------------------------------------------------------| +| --mode | light / dark | light / dark theme only | +| --sat | (0 - 250)% | custom color saturation (<100% - reduce, >100% - increase) | #### Panel tweaks ![Panel default size](./readme-images/tweaks/panel-default-size.png "Panel default size")