From b75523da9c668e6bcb0889deb54debfb64cc18fe Mon Sep 17 00:00:00 2001 From: Vince Date: Wed, 29 Mar 2023 14:48:35 +0800 Subject: [PATCH] Fixed #832 --- shell/lib-core.sh | 4 +- shell/lib-install.sh | 2 +- .../shell-44-0/gnome-shell-Dark.scss | 8 + .../shell-44-0/gnome-shell-Light.scss | 8 + src/sass/gnome-shell/_common.scss | 50 ++++ src/sass/gnome-shell/_widgets-42-0.scss | 2 +- src/sass/gnome-shell/_widgets-44-0.scss | 45 ++++ .../_quick-settings.scss | 0 .../widgets-44-0/_quick-settings.scss | 217 ++++++++++++++++++ src/sass/gtk/_common-4.0.scss | 4 +- 10 files changed, 335 insertions(+), 5 deletions(-) create mode 100644 src/main/gnome-shell/shell-44-0/gnome-shell-Dark.scss create mode 100644 src/main/gnome-shell/shell-44-0/gnome-shell-Light.scss create mode 100644 src/sass/gnome-shell/_widgets-44-0.scss rename src/sass/gnome-shell/{common => widgets-42-0}/_quick-settings.scss (100%) create mode 100644 src/sass/gnome-shell/widgets-44-0/_quick-settings.scss diff --git a/shell/lib-core.sh b/shell/lib-core.sh index 7080b50..5ffd5df 100755 --- a/shell/lib-core.sh +++ b/shell/lib-core.sh @@ -26,7 +26,9 @@ MY_HOME=$(getent passwd "${MY_USERNAME}" | cut -d: -f6) if command -v gnome-shell &> /dev/null; then SHELL_VERSION="$(gnome-shell --version | cut -d ' ' -f 3 | cut -d . -f -1)" - if [[ "${SHELL_VERSION:-}" -ge "42" ]]; then + if [[ "${SHELL_VERSION:-}" -ge "44" ]]; then + GNOME_VERSION="44-0" + elif [[ "${SHELL_VERSION:-}" -ge "42" ]]; then GNOME_VERSION="42-0" elif [[ "${SHELL_VERSION:-}" -ge "40" ]]; then GNOME_VERSION="40-0" diff --git a/shell/lib-install.sh b/shell/lib-install.sh index 9c056ca..f68a9e6 100755 --- a/shell/lib-install.sh +++ b/shell/lib-install.sh @@ -382,7 +382,7 @@ install_shelly() { fi if [[ "${GNOME_VERSION}" == 'none' ]]; then - local GNOME_VERSION='42-0' + local GNOME_VERSION='44-0' fi mkdir -p "${TARGET_DIR}" diff --git a/src/main/gnome-shell/shell-44-0/gnome-shell-Dark.scss b/src/main/gnome-shell/shell-44-0/gnome-shell-Dark.scss new file mode 100644 index 0000000..1ce17c5 --- /dev/null +++ b/src/main/gnome-shell/shell-44-0/gnome-shell-Dark.scss @@ -0,0 +1,8 @@ +$variant: 'dark'; + +@import '../../../sass/variables'; +@import '../../../sass/colors'; +@import '../../../sass/gnome-shell/drawing'; +@import '../../../sass/gnome-shell/common'; +@import '../../../sass/gnome-shell/widgets-44-0'; +@import '../../../sass/gnome-shell/extensions-40-0'; diff --git a/src/main/gnome-shell/shell-44-0/gnome-shell-Light.scss b/src/main/gnome-shell/shell-44-0/gnome-shell-Light.scss new file mode 100644 index 0000000..2aed7cc --- /dev/null +++ b/src/main/gnome-shell/shell-44-0/gnome-shell-Light.scss @@ -0,0 +1,8 @@ +$variant: 'light'; + +@import '../../../sass/variables'; +@import '../../../sass/colors'; +@import '../../../sass/gnome-shell/drawing'; +@import '../../../sass/gnome-shell/common'; +@import '../../../sass/gnome-shell/widgets-44-0'; +@import '../../../sass/gnome-shell/extensions-40-0'; diff --git a/src/sass/gnome-shell/_common.scss b/src/sass/gnome-shell/_common.scss index 9532bcd..59b7fe5 100644 --- a/src/sass/gnome-shell/_common.scss +++ b/src/sass/gnome-shell/_common.scss @@ -28,3 +28,53 @@ $cakeisalie: "This stylesheet is generated, DO NOT EDIT"; // @include font(body-1); // color: $fg_color; // } + +/* General Typography */ + +%large_title { + font-weight: 300; + @include fontsize(24); +} + +%title_1 { + font-weight: 800; + @include fontsize(20); +} + +%title_2 { + font-weight: 800; + @include fontsize(15); +} + +%title_3 { + font-weight: 700; + @include fontsize(15); +} + +%title_4 { + font-weight: 700; + @include fontsize(13); +} + +%heading { + font-weight: 700; + @include fontsize(11); +} + +%caption_heading { + font-weight: 700; + @include fontsize(9); +} + +%caption { + font-weight: 400; + @include fontsize(9); +} + +%smaller { + font-weight: 400; + @include fontsize(8); +} + +%monospace {font-family: monospace;} +%numeric { font-feature-settings: "tnum";} diff --git a/src/sass/gnome-shell/_widgets-42-0.scss b/src/sass/gnome-shell/_widgets-42-0.scss index b521fec..7076138 100644 --- a/src/sass/gnome-shell/_widgets-42-0.scss +++ b/src/sass/gnome-shell/_widgets-42-0.scss @@ -21,7 +21,6 @@ @import 'common/overview'; @import 'common/panel'; @import 'common/popovers'; -@import 'common/quick-settings'; @import 'common/screen-shield'; @import 'common/scrollbars'; @import 'common/search-entry'; @@ -38,6 +37,7 @@ @import 'widgets-42-0/osd'; @import 'widgets-40-0/panel'; @import 'widgets-42-0/popovers'; +@import 'widgets-42-0/quick-settings'; @import 'widgets-40-0/screen-shield'; @import 'widgets-42-0/screenshot'; @import 'widgets-40-0/search-entry'; diff --git a/src/sass/gnome-shell/_widgets-44-0.scss b/src/sass/gnome-shell/_widgets-44-0.scss new file mode 100644 index 0000000..7f72453 --- /dev/null +++ b/src/sass/gnome-shell/_widgets-44-0.scss @@ -0,0 +1,45 @@ +@import 'common/a11y'; +@import 'common/app-grid'; +@import 'common/base'; +@import 'common/buttons'; +@import 'common/calendar'; +@import 'common/check-box'; +@import 'common/corner-ripple'; +@import 'common/dash'; +@import 'common/dialogs'; +@import 'common/entries'; +@import 'common/hotplug'; +@import 'common/ibus-popup'; +@import 'common/keyboard'; +@import 'common/login-dialog'; +@import 'common/looking-glass'; +@import 'common/message-list'; +@import 'common/misc'; +@import 'common/network-dialog'; +@import 'common/notifications'; +@import 'common/osd'; +@import 'common/overview'; +@import 'common/panel'; +@import 'common/popovers'; +@import 'common/screen-shield'; +@import 'common/scrollbars'; +@import 'common/search-entry'; +@import 'common/search-results'; +@import 'common/slider'; +@import 'common/switcher-popup'; +@import 'common/switches'; +@import 'common/tiled-previews'; +@import 'common/workspace-switcher'; +@import 'widgets-42-0/app-grid'; +@import 'widgets-40-0/dash'; +@import 'widgets-40-0/misc'; +@import 'widgets-40-0/overview'; +@import 'widgets-42-0/osd'; +@import 'widgets-40-0/panel'; +@import 'widgets-42-0/popovers'; +@import 'widgets-44-0/quick-settings'; +@import 'widgets-40-0/screen-shield'; +@import 'widgets-42-0/screenshot'; +@import 'widgets-40-0/search-entry'; +@import 'widgets-40-0/window-picker'; +@import 'widgets-40-0/workspace-thumbnails'; diff --git a/src/sass/gnome-shell/common/_quick-settings.scss b/src/sass/gnome-shell/widgets-42-0/_quick-settings.scss similarity index 100% rename from src/sass/gnome-shell/common/_quick-settings.scss rename to src/sass/gnome-shell/widgets-42-0/_quick-settings.scss diff --git a/src/sass/gnome-shell/widgets-44-0/_quick-settings.scss b/src/sass/gnome-shell/widgets-44-0/_quick-settings.scss new file mode 100644 index 0000000..604a7a8 --- /dev/null +++ b/src/sass/gnome-shell/widgets-44-0/_quick-settings.scss @@ -0,0 +1,217 @@ +.quick-settings { + padding: $base_padding * 3; + border-radius: $modal_radius * 2.25; + + .icon-button, .button { + padding: $base_padding * 1.75; + + StIcon { icon-size: $base_icon_size !important; } + } +} + +.quick-settings-grid { + spacing-rows: 12px; + spacing-columns: 12px; +} + +.quick-toggle, .quick-menu-toggle { + border-radius: $circular_radius; + min-width: 13em; + max-width: 13em; + min-height: 42px; + border:none; +} + +.quick-toggle { + background-color: $fill_color; + + &:checked { + background-color: $selected_bg_color; + color: $selected_fg_color; + } + + & > StBoxLayout { spacing: $base_padding * 1.5; } + + /* Move padding into the box; this is to allow menu arrows + to extend to the border */ + &.button { padding: 0; } + & > StBoxLayout { padding: 0 $base_padding * 2; } + &:ltr > StBoxLayout { padding-left: $base_padding * 2.5; } + &:rtl > StBoxLayout { padding-right: $base_padding * 2.5; } + + .quick-toggle-title { font-weight: bold; } + + & StBoxLayout > .quick-toggle-subtitle { + font-weight: normal; + font-size: 12px; + } + + .quick-toggle-icon { icon-size: $base_icon_size !important; } +} + +.quick-menu-toggle { + & .quick-toggle { + min-width: auto; + max-width: auto; + + &:ltr { border-radius: $circular_radius 0 0 $circular_radius; } + &:ltr > StBoxLayout { padding-right: $base_padding * 1.5; } + &:rtl { border-radius: 0 $circular_radius $circular_radius 0; } + &:rtr > StBoxLayout { padding-left: $base_padding * 1.5; } + + &:ltr:last-child { border-radius: $circular_radius; } + &:rtl:last-child { border-radius: $circular_radius; } + } + + & .quick-toggle-arrow { + padding: $base_padding $base_padding * 1.75; + border: none; + background-color: $divider_color; + + &:checked { + background-color: $selected_bg_color; + color: $selected_fg_color; + } + + &:ltr { + border-radius: 0 $circular_radius $circular_radius 0; + border-left-width: 0; + } + + &:rtl { + border-radius: $circular_radius 0 0 $circular_radius; + border-right-width: 0; + } + } +} + +.quick-slider { + & > StBoxLayout { spacing: $base_padding; } + + .icon-button { padding: $base_padding; } + + .slider-bin { + &:focus { @include button(focus); } + min-height: 16px; // slider size + padding: $base_padding; + border-radius: $circular_radius; + } +} + +.quick-toggle-menu { + background-color: $menu_bg !important; + color: $text_color !important; + border-radius: $base_border_radius * 3; + padding: $base_padding * 3; + margin: $base_padding * 2 $base_padding * 6 0; + + .popup-menu-item { + border-radius: $circular_radius !important; + min-height: 20px; + + &:focus, &:hover, &.selected { + color: $text_color !important; + background-color: $divider_color !important; + } + + > StIcon { -st-icon-style: symbolic; } + } + + & .header { + spacing-rows: 0.5 * $base_padding; + spacing-columns: $base_padding * 2; + padding-bottom: 2 * $base_padding; + + & .icon { + icon-size: $base_icon_size * 1.5; // a non-standard symbolic size but ok + border-radius: $circular_radius; + padding: 1.5 * $base_padding; + background-color: transparentize($fg_color, 0.8); + + &.active { + background-color: $selected_bg_color; + color: $selected_fg_color; + } + } + + & .title { + @extend %title_3; + } + + & .subtitle { + @extend %caption_heading; + } + } +} + +.quick-settings-system-item { + & > StBoxLayout { spacing: 2 * $base_padding; } + + .icon-button { + background-color: $fill_color; + color: $text_color; + border-radius: $circular_radius; + min-height: $menuitem_size !important; + min-width: $menuitem_size !important; + // padding: $container_padding; + + &:hover { @include button(flat-hover); } + &:active { @include button(flat-active); } + + > StIcon { + -st-icon-style: symbolic; + icon-size: $base_icon_size; + } + } + + & .power-item { + min-height: 0; + min-width: 0; + + &:insensitive { + @include button(normal); + background-color: transparent; + } + } +} + +.nm-network-item { + .wireless-secure-icon { icon-size: 0.5 * $base_icon_size; } +} + +.bt-device-item { + .popup-menu-icon { -st-icon-style: symbolic; } +} + +.bt-menu-placeholder.popup-menu-item { + @extend %title_4; + text-align: center; + + padding: 2em 4em; +} + +.device-subtitle { color: transparentize($fg_color, 0.5); } + +// background apps + +.background-apps-quick-toggle { + min-height: 40px; + background-color: transparent; + + & StIcon { icon-size: $base_icon_size !important; } +} + +.background-app-item { + & .title { @extend %heading; } + & .subtitle { @extend %caption; } + & .popup-menu-icon { + icon-size: $base_icon_size * 2 !important; + -st-icon-style: regular !important; + } + & .close-button { + @extend .icon-button; + padding: $base_padding; + } + + &.popup-inactive-menu-item { color: $fg_color; } +} diff --git a/src/sass/gtk/_common-4.0.scss b/src/sass/gtk/_common-4.0.scss index 69794e8..95aec57 100644 --- a/src/sass/gtk/_common-4.0.scss +++ b/src/sass/gtk/_common-4.0.scss @@ -2478,7 +2478,7 @@ popover { > contents { padding: $container_padding; - border-radius: $wm_radius; + border-radius: $mn_radius; list, .view, @@ -2632,7 +2632,7 @@ popover.menu { min-height: $menuitem_size - $container_padding; min-width: $large_size * 2; padding: $container_padding / 3 $container_padding; - border-radius: $mn_radius - $container_padding / 2; + border-radius: $bt_radius; transition: none; color: $text_color;