From 39fc4a91672ada25a7c1dd5fc14113399ed7adfa Mon Sep 17 00:00:00 2001 From: tkashkin Date: Sat, 9 Nov 2024 04:06:58 +0300 Subject: [PATCH] windowcontrols: generate styles at install time --- README.md | 19 ++- adwaita/css/_root/variables.css | 8 - adwaita/css/chat/chat.css | 2 +- adwaita/css/chat/messages.css | 24 ++- adwaita/css/chat/sidebar.css | 82 +++++++--- adwaita/css/dialogs/pagedsettings/rows.css | 26 ++- adwaita/css/dialogs/settings.css | 61 ++++--- adwaita/css/widgets/avatars.css | 2 - adwaita/css/widgets/dialogs.css | 2 +- adwaita/css/widgets/windowcontrols.css | 79 ++++++++++ adwaita/extras/windowcontrols/hide-close.css | 16 -- adwaita/extras/windowcontrols/left-all.css | 42 ----- adwaita/extras/windowcontrols/left.css | 24 --- adwaita/extras/windowcontrols/right-all.css | 19 --- .../adwaita.css} | 43 ++--- adwaita/windowcontrols/macos.css | 91 +++++++++++ adwaita/windowcontrols/windows.css | 86 ++++++++++ install.py | 149 +++++++++++++++--- theme.json | 67 ++++---- 19 files changed, 583 insertions(+), 259 deletions(-) create mode 100644 adwaita/css/widgets/windowcontrols.css delete mode 100644 adwaita/extras/windowcontrols/hide-close.css delete mode 100644 adwaita/extras/windowcontrols/left-all.css delete mode 100644 adwaita/extras/windowcontrols/left.css delete mode 100644 adwaita/extras/windowcontrols/right-all.css rename adwaita/{css/widgets/windows.css => windowcontrols/adwaita.css} (59%) create mode 100644 adwaita/windowcontrols/macos.css create mode 100644 adwaita/windowcontrols/windows.css diff --git a/README.md b/README.md index 98c89ab..a3cc65d 100644 --- a/README.md +++ b/README.md @@ -115,14 +115,17 @@ cd Adwaita-for-Steam #### Arguments -| Argument | Short | Required Values | Description | -|----------------|-------|------------------------------------|----------------------------------------------------| -| --color-theme | -c | [Colortheme](/adwaita/colorthemes) | Change color theme | -| --custom-css | | | Enable [custom css](/custom) | -| --extras | -e | [Extra](adwaita/extras) | Enable one or multiple theme extras | -| --list-options | -l | | List available themes and extras | -| --target | -t | normal / flatpak / [custom dir] | Choose target location for install (default: both) | -| --uninstall | -u | | Uninstall theme | +| Argument | Short | Required Values | Description | +|-------------------------|-------|-------------------------------------------------------|----------------------------------------------------| +| --help | -h | | Show help message | +| --list-options | -l | | List available themes and extras | +| --color-theme | -c | [Colortheme](/adwaita/colorthemes) | Change color theme | +| --windowcontrols-theme | | auto / adwaita / windows / macos | Change window control buttons style | +| --windowcontrols-layout | | auto / gnome / pantheon / windows / macos / \[custom] | Change window control buttons position and order | +| --custom-css | | | Enable [custom css](/custom) | +| --extras | -e | [Extra](adwaita/extras) | Enable one or multiple theme extras | +| --target | -t | normal / flatpak / \[custom dir] | Choose target location for install (default: both) | +| --uninstall | -u | | Uninstall theme | #### Example Usage diff --git a/adwaita/css/_root/variables.css b/adwaita/css/_root/variables.css index fbab83b..0f084d2 100644 --- a/adwaita/css/_root/variables.css +++ b/adwaita/css/_root/variables.css @@ -4,14 +4,6 @@ { --adw-base-transition-curve: cubic-bezier(0.25, 0.46, 0.45, 0.94); - /* Window controls button margin */ - --adw-windowcontrols-margin-left: 0px; - --adw-windowcontrols-margin-right: 40px; - - /* Window controls button margin for windows with close button only */ - --adw-windowcontrols-close-margin-left: 0px; - --adw-windowcontrols-close-margin-right: 40px; - --adw-gameicon-radius: 4px; --adw-gameicon-uninstalled-filter: grayscale(100%) opacity(50%); } diff --git a/adwaita/css/chat/chat.css b/adwaita/css/chat/chat.css index 4464f12..d5cac5d 100644 --- a/adwaita/css/chat/chat.css +++ b/adwaita/css/chat/chat.css @@ -118,7 +118,7 @@ html.client_chat_frame { position: absolute !important; top: 6px !important; - left: 6px !important; + left: calc(var(--adw-windowcontrols-margin-left) + 6px) !important; } svg diff --git a/adwaita/css/chat/messages.css b/adwaita/css/chat/messages.css index fca5592..0d8feaf 100644 --- a/adwaita/css/chat/messages.css +++ b/adwaita/css/chat/messages.css @@ -14,7 +14,7 @@ html.client_chat_frame div.chatTabSetContainer { - padding: 6px calc(var(--adw-windowcontrols-margin-right) + 6px) 6px calc(var(--adw-windowcontrols-margin-left) + 46px) !important; + padding: 6px var(--adw-windowcontrols-margin-right) 6px calc(var(--adw-windowcontrols-margin-left) + 40px) !important; margin: 0 !important; height: 34px !important; @@ -281,6 +281,28 @@ html.client_chat_frame } } } + + div._2ve8VIOIUS5rjAzmJvjVS- + { + position: absolute !important; + left: 0 !important; + right: 0 !important; + width: auto !important; + height: 2px !important; + top: unset !important; + bottom: 0 !important; + pointer-events: none !important; + background: none !important; + + div.jMumuBBbjOf_v5JU9RpmZ + { + position: unset !important; + width: 100px !important; + height: 2px !important; + margin: auto !important; + background: rgb(var(--adw-accent-rgb)) !important; + } + } } } } diff --git a/adwaita/css/chat/sidebar.css b/adwaita/css/chat/sidebar.css index fe4cb15..cc762c4 100644 --- a/adwaita/css/chat/sidebar.css +++ b/adwaita/css/chat/sidebar.css @@ -63,9 +63,16 @@ html.client_chat_frame display: grid !important; grid-template-columns: 1fr !important; align-items: center !important; - padding: 12px !important; + padding: 12px calc(var(--adw-windowcontrols-margin-right) + 80px) 12px calc(var(--adw-windowcontrols-margin-left) + 80px) !important; margin: 0 !important; background: inherit !important; + -webkit-mask-image: linear-gradient(to right, + rgba(0, 0, 0, 0) calc(var(--adw-windowcontrols-margin-left) + 80px), + rgba(0, 0, 0, 1) calc(var(--adw-windowcontrols-margin-left) + 86px), + rgba(0, 0, 0, 1) calc(100% - var(--adw-windowcontrols-margin-right) - 86px), + rgba(0, 0, 0, 0) calc(100% - var(--adw-windowcontrols-margin-right) - 80px), + rgba(0, 0, 0, 0) + ) !important; color: inherit !important; font-family: var(--adw-text-font) !important; font-size: var(--adw-text-header-size) !important; @@ -316,14 +323,15 @@ html.client_chat_frame bottom: 4px !important; right: 4px !important; background: rgb(var(--adw-accent-bg-rgb)) !important; + border-radius: var(--adw-button-pill-radius) !important; color: rgb(var(--adw-accent-fg-rgb)) !important; transform: none !important; font-family: var(--adw-text-font) !important; font-size: 10px !important; line-height: 10px !important; - font-weight: 800 !important; + font-weight: 500 !important; min-width: 10px !important; - letter-spacing: normal; + letter-spacing: normal !important; padding: 1px !important; } } @@ -586,7 +594,9 @@ html.client_chat_frame } } - div.playerNameQuickAccessContainer, div.clanName + div.playerNameQuickAccessContainer, + div.clanName, + div.ChatUnreadMessageIndicator { display: none !important; } @@ -665,7 +675,7 @@ html.client_chat_frame div.listContentContainer { display: flex !important; - flex-direction: column !important; + flex-direction: column !important; padding: 0 !important; overflow: visible !important; overflow-x: clip !important; @@ -684,7 +694,12 @@ html.client_chat_frame } } - div.groupName, div.friendCategoryContainer, div.gameGroup div.friendsContainer div.friend, div.ChatRoomListGroupItem, div.friendInviteContainer + div.groupName, + div.friendCategoryContainer, + div.gameGroup div.friendsContainer div.friend, + div.ChatRoomListGroupItem, + div.friendInviteContainer, + div.unreadFriend { padding: 0 6px !important; margin: 0 calc(6px - var(--adw-scrollbar-size)) 2px 6px !important; @@ -768,22 +783,6 @@ html.client_chat_frame height: fit-content !important; margin: 0 !important; padding: 0 !important; - - img.groupIcon - { - width: 20px !important; - height: 20px !important; - padding: 0 !important; - margin: 0 !important; - position: absolute !important; - right: 5px !important; - top: 2px !important; - border-radius: var(--adw-gameicon-radius) !important; - border: 1px rgba(var(--adw-user-ingame-rgb), var(--adw-thin-border-opacity)) solid !important; - overflow: hidden !important; - box-shadow: none !important; - transform: none !important; - } } div.SortByRecent @@ -800,6 +799,42 @@ html.client_chat_frame cursor: default !important; } + img.groupIcon, img.gameIcon + { + width: 20px !important; + height: 20px !important; + padding: 0 !important; + margin: 0 !important; + position: absolute !important; + right: 5px !important; + top: 2px !important; + border-radius: var(--adw-gameicon-radius) !important; + border: 1px rgba(var(--adw-user-ingame-rgb), var(--adw-thin-border-opacity)) solid !important; + overflow: hidden !important; + box-shadow: none !important; + transform: none !important; + } + + div.FriendMessageCount + { + position: unset !important; + right: 0 !important; + margin: 0 !important; + background: rgb(var(--adw-accent-bg-rgb)) !important; + border-radius: var(--adw-button-pill-radius) !important; + color: rgb(var(--adw-accent-fg-rgb)) !important; + box-shadow: none !important; + transform: none !important; + font-family: var(--adw-text-font) !important; + font-size: 14px !important; + line-height: 14px !important; + font-weight: 500 !important; + min-width: 14px !important; + height: 14px !important; + letter-spacing: normal !important; + padding: 2px !important; + } + &:hover div.ExpandPlusMinus, div.SortByRecent:hover { opacity: 1 !important; @@ -811,6 +846,7 @@ html.client_chat_frame padding: 0 !important; margin: 0 !important; height: 40px !important; + align-items: center !important; div.nibodjvvrm86uCfnnAn4g { @@ -1075,7 +1111,7 @@ html.client_chat_frame } } - div.cancelAddFriends + div.cancelAddFriends, div.unreadMessageViolator { display: none !important; } diff --git a/adwaita/css/dialogs/pagedsettings/rows.css b/adwaita/css/dialogs/pagedsettings/rows.css index eb0dc49..4ecae25 100644 --- a/adwaita/css/dialogs/pagedsettings/rows.css +++ b/adwaita/css/dialogs/pagedsettings/rows.css @@ -10,11 +10,16 @@ body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.SettingsDialogSubHeader, body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.DialogBodyText, body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div.DialogBodyText, body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.DialogBodyText, +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._1RCWDLVLFja1TdD1P53BMq, body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.DialogControlsSectionHeader, body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div.DialogControlsSectionHeader, body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.DialogControlsSectionHeader, +body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.DialogBody > div:first-child:not([class]), +body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div.DialogBody > div:first-child:not([class]), +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.DialogBody > div:first-child:not([class]), + body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.familysettings_FamilyNameRow_3K8Af, body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div._3K8Afwm4bvd9vSIzAz9siX, body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3K8Afwm4bvd9vSIzAz9siX, @@ -213,6 +218,14 @@ body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.DialogControlsSec body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div.DialogControlsSection + div.S-_LaQG5eEOM2HWZ-geJI, body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.DialogControlsSection + div.eKmEXJCm_lgme24Fp_HWt, +body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.DialogBody > div:first-child:not([class]) + div.gamepaddialog_Field_S-_La, +body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div.DialogBody > div:first-child:not([class]) + div.S-_LaQG5eEOM2HWZ-geJI, +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.DialogBody > div:first-child:not([class]) + div.eKmEXJCm_lgme24Fp_HWt, + +body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.SettingsDialogSubHeader + div:not([class]) + div.gamepaddialog_Field_S-_La, +body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div.SettingsDialogSubHeader + div:not([class]) + div.S-_LaQG5eEOM2HWZ-geJI, +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.SettingsDialogSubHeader + div:not([class]) + div.eKmEXJCm_lgme24Fp_HWt, + body.DesktopUI div.appproperties_AppProperties_1FyBL div.appproperties_Title_3zuIC + div.gamepaddialog_Field_S-_La, body.DesktopUI div._1FyBL6obxHQ2Z2CsaV2Gbz div._3zuICQ63IRympzZ6qgs-5O + div.S-_LaQG5eEOM2HWZ-geJI, body.DesktopUI div._1FyBL6obxHQ2Z2CsaV2Gbz div._3zuICQ63IRympzZ6qgs-5O + div.eKmEXJCm_lgme24Fp_HWt, @@ -500,7 +513,11 @@ body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt._3tB2lyT2Pf body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.gamepaddialog_Field_S-_La[class*="gamepaddialog_WithDescription_"]:not(:has(div[class*="gamepaddialog_FieldLabel_"])) div[class*="gamepaddialog_FieldDescription_"], body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div.S-_LaQG5eEOM2HWZ-geJI._3bMISJvxiSHPx1ol-0Aswn:not(:has(div._3b0U-QDD-uhFpw6xM716fw)) div._2OJfkxlD3X9p8Ygu1vR7Lr, -body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt._3tB2lyT2Pfvfv-jyuVgUOg:not(:has(div._3jMlJm4PQCA8SfNlUR99Fo)) div._1W1to_azoBRG95oNAFpf9Q +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt._3tB2lyT2Pfvfv-jyuVgUOg:not(:has(div._3jMlJm4PQCA8SfNlUR99Fo)) div._1W1to_azoBRG95oNAFpf9Q, + +body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.SettingsDialogSubHeader + div:not([class]), +body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div.SettingsDialogSubHeader + div:not([class]), +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.SettingsDialogSubHeader + div:not([class]) { color: rgba(var(--adw-card-fg-rgb), var(--adw-dim-label-opacity)) !important; font-size: var(--adw-text-subtitle-size) !important; @@ -510,6 +527,13 @@ body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt._3tB2lyT2Pf margin: 0 !important; } +body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.SettingsDialogSubHeader + div:not([class]), +body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div.SettingsDialogSubHeader + div:not([class]), +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.SettingsDialogSubHeader + div:not([class]) +{ + margin: -8px 0 8px 0 !important; +} + body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.gamepaddialog_Field_S-_La::after, body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div.S-_LaQG5eEOM2HWZ-geJI::after, body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt::after diff --git a/adwaita/css/dialogs/settings.css b/adwaita/css/dialogs/settings.css index cca41e4..149397c 100644 --- a/adwaita/css/dialogs/settings.css +++ b/adwaita/css/dialogs/settings.css @@ -64,7 +64,8 @@ body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.ingame div._1cB0qtF0paHWWyj1XNcnb /* Account buttons */ body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.gamepaddialog_Field_S-_La:has(button[class*="settings_SettingsDialogFatButton_"]), body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div.S-_LaQG5eEOM2HWZ-geJI:has(button.UqEiVDhZ47cn3vWxM7cR0), -body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt:has(button.UqEiVDhZ47cn3vWxM7cR0) +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt:has(button.UqEiVDhZ47cn3vWxM7cR0), +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt:has(button.JA6JIY08WWMEfWP-sZkZ2) { background: none !important; box-shadow: none !important; @@ -76,14 +77,16 @@ body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt:has(button. body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.gamepaddialog_Field_S-_La:has(button[class*="settings_SettingsDialogFatButton_"]) div[class*="gamepaddialog_FieldChildrenWithIcon_"], body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div.S-_LaQG5eEOM2HWZ-geJI:has(button.UqEiVDhZ47cn3vWxM7cR0) div._2ZQ9wHACVFqZcufK_WRGPM, -body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt:has(button.UqEiVDhZ47cn3vWxM7cR0) div._1aw7cA3mAZfWt8idAlVJWi +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt:has(button.UqEiVDhZ47cn3vWxM7cR0) div._1aw7cA3mAZfWt8idAlVJWi, +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt:has(button.JA6JIY08WWMEfWP-sZkZ2) div._1aw7cA3mAZfWt8idAlVJWi { position: initial !important; } body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.gamepaddialog_Field_S-_La:has(button[class*="settings_SettingsDialogFatButton_"]) div[class*="gamepaddialog_ControlsListOuterPanel_"], body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div.S-_LaQG5eEOM2HWZ-geJI:has(button.UqEiVDhZ47cn3vWxM7cR0) div._2Mvpu0Kldp2FgzYp0Tx-OP, -body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt:has(button.UqEiVDhZ47cn3vWxM7cR0) div._2XSsNSGcWjGZ6z3fvqaRd5 +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt:has(button.UqEiVDhZ47cn3vWxM7cR0) div._2XSsNSGcWjGZ6z3fvqaRd5, +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt:has(button.JA6JIY08WWMEfWP-sZkZ2) div._2XSsNSGcWjGZ6z3fvqaRd5 { padding: 0 !important; margin: 0 !important; @@ -94,7 +97,8 @@ body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt:has(button. body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.gamepaddialog_Field_S-_La:has(button[class*="settings_SettingsDialogFatButton_"]) div[class*="gamepaddialog_ControlsListOuterPanel_"] div[class*="gamepaddialog_ControlsListChild_"], body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div.S-_LaQG5eEOM2HWZ-geJI:has(button.UqEiVDhZ47cn3vWxM7cR0) div._2Mvpu0Kldp2FgzYp0Tx-OP div.XvRsoF63hkSPNVBr2XPVI, -body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt:has(button.UqEiVDhZ47cn3vWxM7cR0) div._2XSsNSGcWjGZ6z3fvqaRd5 div._2LQjjxR3ZOcEZU73abIsw- +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt:has(button.UqEiVDhZ47cn3vWxM7cR0) div._2XSsNSGcWjGZ6z3fvqaRd5 div._2LQjjxR3ZOcEZU73abIsw-, +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt:has(button.JA6JIY08WWMEfWP-sZkZ2) div._2XSsNSGcWjGZ6z3fvqaRd5 div._2LQjjxR3ZOcEZU73abIsw- { padding: 0 !important; margin: 0 !important; @@ -104,7 +108,8 @@ body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt:has(button. body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.gamepaddialog_Field_S-_La button[class*="settings_SettingsDialogFatButton_"], body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div.S-_LaQG5eEOM2HWZ-geJI button.UqEiVDhZ47cn3vWxM7cR0, -body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.UqEiVDhZ47cn3vWxM7cR0 +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.UqEiVDhZ47cn3vWxM7cR0, +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.JA6JIY08WWMEfWP-sZkZ2 { background: rgba(var(--adw-card-bg-rgb), var(--adw-card-opacity)) !important; color: rgb(var(--adw-card-fg-rgb)) !important; @@ -125,14 +130,16 @@ body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.UqEi body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.gamepaddialog_Field_S-_La button[class*="settings_SettingsDialogFatButton_"]:hover, body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div.S-_LaQG5eEOM2HWZ-geJI button.UqEiVDhZ47cn3vWxM7cR0:hover, -body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.UqEiVDhZ47cn3vWxM7cR0:hover +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.UqEiVDhZ47cn3vWxM7cR0:hover, +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.JA6JIY08WWMEfWP-sZkZ2:hover { background: rgba(var(--adw-card-bg-rgb), var(--adw-card-hover-opacity)) !important; } body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.gamepaddialog_Field_S-_La button[class*="settings_SettingsDialogFatButton_"]:active, body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div.S-_LaQG5eEOM2HWZ-geJI button.UqEiVDhZ47cn3vWxM7cR0:active, -body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.UqEiVDhZ47cn3vWxM7cR0:active +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.UqEiVDhZ47cn3vWxM7cR0:active, +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.JA6JIY08WWMEfWP-sZkZ2:active { background: rgba(var(--adw-card-bg-rgb), var(--adw-card-active-opacity)) !important; } @@ -140,10 +147,12 @@ body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.UqEi body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.gamepaddialog_Field_S-_La button[class*="settings_SettingsDialogFatButton_"] > svg, body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div.S-_LaQG5eEOM2HWZ-geJI button.UqEiVDhZ47cn3vWxM7cR0 > svg, body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.UqEiVDhZ47cn3vWxM7cR0 > svg, +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.JA6JIY08WWMEfWP-sZkZ2 > svg, body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.gamepaddialog_Field_S-_La button[class*="settings_SettingsDialogFatButton_"]::after, body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div.S-_LaQG5eEOM2HWZ-geJI button.UqEiVDhZ47cn3vWxM7cR0::after, -body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.UqEiVDhZ47cn3vWxM7cR0::after +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.UqEiVDhZ47cn3vWxM7cR0::after, +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.JA6JIY08WWMEfWP-sZkZ2::after { position: absolute !important; left: 16px !important; @@ -154,7 +163,8 @@ body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.UqEi body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.gamepaddialog_Field_S-_La button[class*="settings_SettingsDialogFatButton_"]::after, body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div.S-_LaQG5eEOM2HWZ-geJI button.UqEiVDhZ47cn3vWxM7cR0::after, -body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.UqEiVDhZ47cn3vWxM7cR0::after +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.UqEiVDhZ47cn3vWxM7cR0::after, +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.JA6JIY08WWMEfWP-sZkZ2::after { content: ""; left: auto !important; @@ -169,7 +179,8 @@ body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.UqEi body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.gamepaddialog_Field_S-_La button[class*="settings_SettingsDialogFatButton_"] div[class*="accountpanel_Label_"], body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div.S-_LaQG5eEOM2HWZ-geJI button.UqEiVDhZ47cn3vWxM7cR0 div._3wadwgMy2-9k8uOKh3iSdT, -body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.UqEiVDhZ47cn3vWxM7cR0 div._3wadwgMy2-9k8uOKh3iSdT +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.UqEiVDhZ47cn3vWxM7cR0 div._3wadwgMy2-9k8uOKh3iSdT, +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.JA6JIY08WWMEfWP-sZkZ2 div._3wadwgMy2-9k8uOKh3iSdT { color: rgb(var(--adw-card-fg-rgb)) !important; font-family: var(--adw-text-font) !important; @@ -181,7 +192,8 @@ body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.UqEi body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.gamepaddialog_Field_S-_La button[class*="settings_SettingsDialogFatButton_"] div[class*="accountpanel_Details_"], body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div.S-_LaQG5eEOM2HWZ-geJI button.UqEiVDhZ47cn3vWxM7cR0 div._3Wb9yDmYPUJksCr7HmaT9H, -body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.UqEiVDhZ47cn3vWxM7cR0 div._3Wb9yDmYPUJksCr7HmaT9H +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.UqEiVDhZ47cn3vWxM7cR0 div._3Wb9yDmYPUJksCr7HmaT9H, +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.JA6JIY08WWMEfWP-sZkZ2 div._3Wb9yDmYPUJksCr7HmaT9H { color: rgba(var(--adw-card-fg-rgb), var(--adw-dim-label-opacity)) !important; font-family: var(--adw-text-font) !important; @@ -194,7 +206,8 @@ body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.UqEi body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.gamepaddialog_Field_S-_La button[class*="settings_SettingsDialogFatButton_"] div[class*="accountpanel_Details_"] > span[class*="accountpanel_Highlight_"], body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div.S-_LaQG5eEOM2HWZ-geJI button.UqEiVDhZ47cn3vWxM7cR0 div._3Wb9yDmYPUJksCr7HmaT9H > span._35ztZulp_gETT1gOElpfvK, -body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.UqEiVDhZ47cn3vWxM7cR0 div._3Wb9yDmYPUJksCr7HmaT9H > span._35ztZulp_gETT1gOElpfvK +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.UqEiVDhZ47cn3vWxM7cR0 div._3Wb9yDmYPUJksCr7HmaT9H > span._35ztZulp_gETT1gOElpfvK, +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div.eKmEXJCm_lgme24Fp_HWt button.JA6JIY08WWMEfWP-sZkZ2 div._3Wb9yDmYPUJksCr7HmaT9H > span._35ztZulp_gETT1gOElpfvK { color: rgb(var(--adw-card-fg-rgb)) !important; font-family: var(--adw-text-font) !important; @@ -842,7 +855,8 @@ body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3Q8Vc4HcvrUZVLqnC1hTXT:has(span. /* Controller: layout row buttons */ body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.settings_BuiltInLayoutButtons_3KH4C, body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div._3KH4CAWiBX2hESrbRk4DBn, -body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3KH4CAWiBX2hESrbRk4DBn +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3KH4CAWiBX2hESrbRk4DBn, +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3FYSCKU0zMm_zbWS56SCVu { gap: 6px !important; min-width: auto !important; @@ -850,7 +864,8 @@ body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3KH4CAWiBX2hESrbRk4DBn body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.settings_BuiltInLayoutButtons_3KH4C button.DialogButton, body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div._3KH4CAWiBX2hESrbRk4DBn button.DialogButton, -body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3KH4CAWiBX2hESrbRk4DBn button.DialogButton +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3KH4CAWiBX2hESrbRk4DBn button.DialogButton, +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3FYSCKU0zMm_zbWS56SCVu button.DialogButton { cursor: default !important; border-radius: var(--adw-button-radius) !important; @@ -872,28 +887,32 @@ body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3KH4CAWiBX2hESrbRk4DBn button.Di body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.settings_BuiltInLayoutButtons_3KH4C button.DialogButton:hover, body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div._3KH4CAWiBX2hESrbRk4DBn button.DialogButton:hover, -body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3KH4CAWiBX2hESrbRk4DBn button.DialogButton:hover +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3KH4CAWiBX2hESrbRk4DBn button.DialogButton:hover, +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3FYSCKU0zMm_zbWS56SCVu button.DialogButton:hover { background: rgba(var(--adw-window-fg-rgb), var(--adw-hover-opacity)) !important; } body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.settings_BuiltInLayoutButtons_3KH4C button.DialogButton:active, body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div._3KH4CAWiBX2hESrbRk4DBn button.DialogButton:active, -body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3KH4CAWiBX2hESrbRk4DBn button.DialogButton:active +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3KH4CAWiBX2hESrbRk4DBn button.DialogButton:active, +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3FYSCKU0zMm_zbWS56SCVu button.DialogButton:active { background: rgba(var(--adw-window-fg-rgb), var(--adw-active-opacity)) !important; } body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.settings_BuiltInLayoutButtons_3KH4C button.DialogButton > svg, body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div._3KH4CAWiBX2hESrbRk4DBn button > svg, -body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3KH4CAWiBX2hESrbRk4DBn button > svg +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3KH4CAWiBX2hESrbRk4DBn button > svg, +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3FYSCKU0zMm_zbWS56SCVu button > svg { display: none !important; } body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.settings_BuiltInLayoutButtons_3KH4C button.DialogButton::after, body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div._3KH4CAWiBX2hESrbRk4DBn button.DialogButton::after, -body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3KH4CAWiBX2hESrbRk4DBn button.DialogButton::after +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3KH4CAWiBX2hESrbRk4DBn button.DialogButton::after, +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3FYSCKU0zMm_zbWS56SCVu button.DialogButton::after { background-color: rgb(var(--adw-window-fg-rgb)); content: ""; @@ -908,14 +927,16 @@ body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3KH4CAWiBX2hESrbRk4DBn button.Di body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.settings_BuiltInLayoutButtons_3KH4C button.DialogButton.settings_SettingsDialogButton_3epr8::after, body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div._3KH4CAWiBX2hESrbRk4DBn button.DialogButton._3epr8QYWw_FqFgMx38YEEm::after, -body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3KH4CAWiBX2hESrbRk4DBn button.DialogButton._3epr8QYWw_FqFgMx38YEEm::after +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3KH4CAWiBX2hESrbRk4DBn button.DialogButton._3epr8QYWw_FqFgMx38YEEm::after, +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3FYSCKU0zMm_zbWS56SCVu button.DialogButton._3epr8QYWw_FqFgMx38YEEm::after { -webkit-mask-image: var(--adw-icon-edit); } body.DesktopUI div.pagedsettings_PagedSettingsDialog_3I6h_ div.settings_BuiltInLayoutButtons_3KH4C button.DialogButton.settings_BuiltInLayoutButton_30Og7::after, body.DesktopUI div._3I6h_oySuLmmLY9TjIKT9s div._3KH4CAWiBX2hESrbRk4DBn button.DialogButton._30Og77vH37EtqaKCCDIAP9::after, -body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3KH4CAWiBX2hESrbRk4DBn button.DialogButton._30Og77vH37EtqaKCCDIAP9::after +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3KH4CAWiBX2hESrbRk4DBn button.DialogButton._30Og77vH37EtqaKCCDIAP9::after, +body.DesktopUI div._2sssIwe0duyIrFvat2oXzH div._3FYSCKU0zMm_zbWS56SCVu button.DialogButton._1S-PihOJGJBAP5oCKeB7jy::after { -webkit-mask-image: var(--adw-icon-more); } diff --git a/adwaita/css/widgets/avatars.css b/adwaita/css/widgets/avatars.css index 650b857..da4d84b 100644 --- a/adwaita/css/widgets/avatars.css +++ b/adwaita/css/widgets/avatars.css @@ -1,5 +1,3 @@ - - body.DesktopUI, html.client_chat_frame { diff --git a/adwaita/css/widgets/dialogs.css b/adwaita/css/widgets/dialogs.css index 2da7597..337672c 100644 --- a/adwaita/css/widgets/dialogs.css +++ b/adwaita/css/widgets/dialogs.css @@ -30,7 +30,7 @@ html.client_chat_frame div.window_resize_grip } /* Web dialogs */ -body.DesktopUI.ModalDialogBody .PopupFullWindow .title-area +body.DesktopUI.ModalDialogBody .PopupFullWindow:not(:has(._2sssIwe0duyIrFvat2oXzH)) .title-area { height: 36px !important; min-height: 36px !important; diff --git a/adwaita/css/widgets/windowcontrols.css b/adwaita/css/widgets/windowcontrols.css new file mode 100644 index 0000000..0842de7 --- /dev/null +++ b/adwaita/css/widgets/windowcontrols.css @@ -0,0 +1,79 @@ +:root +{ + --adw-windowcontrols-left-has-buttons: 0; + --adw-windowcontrols-left-buttons: 0; + --adw-windowcontrols-right-has-buttons: 1; + --adw-windowcontrols-right-buttons: 3; + + --adw-windowcontrols-button-width: 24px; + --adw-windowcontrols-button-height: 24px; + --adw-windowcontrols-button-gap: 0px; + --adw-windowcontrols-buttons-margin-outer: 0px; + --adw-windowcontrols-buttons-margin-inner: 0px; + + --adw-windowcontrols-margin-left: calc(var(--adw-windowcontrols-left-has-buttons) * ( + var(--adw-windowcontrols-buttons-margin-outer) + var(--adw-windowcontrols-buttons-margin-inner) + + var(--adw-windowcontrols-left-buttons) * var(--adw-windowcontrols-button-width) + + (var(--adw-windowcontrols-left-buttons) - 1) * var(--adw-windowcontrols-button-gap) + )); + --adw-windowcontrols-margin-right: calc(var(--adw-windowcontrols-right-has-buttons) * ( + var(--adw-windowcontrols-buttons-margin-outer) + var(--adw-windowcontrols-buttons-margin-inner) + + var(--adw-windowcontrols-right-buttons) * var(--adw-windowcontrols-button-width) + + (var(--adw-windowcontrols-right-buttons) - 1) * var(--adw-windowcontrols-button-gap) + )); +} + +body.DesktopUI, +html.client_chat_frame +{ + .title-area + { + height: 46px !important; + min-height: 46px !important; + bottom: unset !important; + cursor: default !important; + user-select: none !important; + + .title-bar-actions + { + display: flex !important; + margin: 0 !important; + gap: var(--adw-windowcontrols-button-gap) !important; + padding: 0 !important; + height: 100% !important; + max-height: unset !important; + align-items: center !important; + user-select: none !important; + + .title-area-icon + { + position: absolute !important; + top: calc((100% - var(--adw-windowcontrols-button-height)) / 2) !important; + bottom: calc((100% - var(--adw-windowcontrols-button-height)) / 2) !important; + width: var(--adw-windowcontrols-button-width) !important; + height: var(--adw-windowcontrols-button-height) !important; + padding: 0 !important; + margin: 0 !important; + box-sizing: border-box !important; + transition: var(--adw-button-transition) !important; + cursor: default !important; + z-index: 10 !important; + display: flex !important; + align-items: center !important; + align-content: center !important; + } + } + } + + div._3Z7VQ1IMk4E3HsHvrkLNgo div.qP17eBPXkfezFfexZ4hC3 + { + flex-basis: var(--adw-windowcontrols-margin-right) !important; + position: unset !important; + + .title-area + { + -webkit-app-region: unset !important; + pointer-events: none !important; + } + } +} diff --git a/adwaita/extras/windowcontrols/hide-close.css b/adwaita/extras/windowcontrols/hide-close.css deleted file mode 100644 index b14599a..0000000 --- a/adwaita/extras/windowcontrols/hide-close.css +++ /dev/null @@ -1,16 +0,0 @@ -/* Hide Window Close Button */ - -:root -{ - --adw-windowcontrols-margin-left: 0px; - --adw-windowcontrols-margin-right: 0px; - --adw-windowcontrols-close-margin-left: 0px; - --adw-windowcontrols-close-margin-right: 0px; -} - -body.DesktopUI .title-bar-actions .title-area-icon.closeButton, -body.DesktopUI .login_CloseButton_1mcCj, -body.DesktopUI ._1mcCj7vv9y3vsXrvF3Oadk -{ - display: none !important; -} diff --git a/adwaita/extras/windowcontrols/left-all.css b/adwaita/extras/windowcontrols/left-all.css deleted file mode 100644 index ad20b28..0000000 --- a/adwaita/extras/windowcontrols/left-all.css +++ /dev/null @@ -1,42 +0,0 @@ -/* Left Aligned Window Controls */ - -:root -{ - --adw-windowcontrols-margin-left: 114px; - --adw-windowcontrols-margin-right: 0px; - --adw-windowcontrols-close-margin-left: 40px; - --adw-windowcontrols-close-margin-right: 0px; -} - -body.DesktopUI .title-bar-actions.window-controls, -html.client_chat_frame .title-bar-actions.window-controls -{ - flex-direction: row !important; - order: -99 !important; -} - -body.DesktopUI div.steamdesktop_TopBar_3Z7VQ div.steamdesktop_WindowControls_qP17e, -body.DesktopUI div._3Z7VQ1IMk4E3HsHvrkLNgo div.qP17eBPXkfezFfexZ4hC3 -{ - flex-basis: var(--adw-windowcontrols-margin-left) !important; - margin-left: 10px !important; - order: -1 !important; -} - -body.DesktopUI .title-bar-actions .title-area-icon.minimizeButton, -body.DesktopUI .title-bar-actions .title-area-icon.maximizeButton, -body.DesktopUI .title-bar-actions .title-area-icon.restoreButton, -html.client_chat_frame .title-bar-actions .title-area-icon.minimizeButton, -html.client_chat_frame .title-bar-actions .title-area-icon.maximizeButton, -html.client_chat_frame .title-bar-actions .title-area-icon.restoreButton -{ - display: block !important; -} - -body.DesktopUI .title-bar-actions .title-area-icon.maximizeButton, -body.DesktopUI .title-bar-actions .title-area-icon.restoreButton, -html.client_chat_frame .title-bar-actions .title-area-icon.maximizeButton, -html.client_chat_frame .title-bar-actions .title-area-icon.restoreButton -{ - order: 3 !important; -} diff --git a/adwaita/extras/windowcontrols/left.css b/adwaita/extras/windowcontrols/left.css deleted file mode 100644 index 7eb5705..0000000 --- a/adwaita/extras/windowcontrols/left.css +++ /dev/null @@ -1,24 +0,0 @@ -/* Left Aligned Window Controls */ - -:root -{ - --adw-windowcontrols-margin-left: 40px; - --adw-windowcontrols-margin-right: 0px; - --adw-windowcontrols-close-margin-left: 40px; - --adw-windowcontrols-close-margin-right: 0px; -} - -body.DesktopUI .title-bar-actions.window-controls, -html.client_chat_frame .title-bar-actions.window-controls -{ - flex-direction: row !important; - order: -99 !important; -} - -body.DesktopUI div.steamdesktop_TopBar_3Z7VQ div.steamdesktop_WindowControls_qP17e, -body.DesktopUI div._3Z7VQ1IMk4E3HsHvrkLNgo div.qP17eBPXkfezFfexZ4hC3 -{ - flex-basis: var(--adw-windowcontrols-margin-left) !important; - margin-left: 10px !important; - order: -1 !important; -} diff --git a/adwaita/extras/windowcontrols/right-all.css b/adwaita/extras/windowcontrols/right-all.css deleted file mode 100644 index 1236c03..0000000 --- a/adwaita/extras/windowcontrols/right-all.css +++ /dev/null @@ -1,19 +0,0 @@ -/* Show Minimize and Maximize Button */ - -:root -{ - --adw-windowcontrols-margin-left: 0px; - --adw-windowcontrols-margin-right: 114px; - --adw-windowcontrols-close-margin-left: 0px; - --adw-windowcontrols-close-margin-right: 40px; -} - -body.DesktopUI .title-bar-actions .title-area-icon.minimizeButton, -body.DesktopUI .title-bar-actions .title-area-icon.maximizeButton, -body.DesktopUI .title-bar-actions .title-area-icon.restoreButton, -html.client_chat_frame .title-bar-actions .title-area-icon.minimizeButton, -html.client_chat_frame .title-bar-actions .title-area-icon.maximizeButton, -html.client_chat_frame .title-bar-actions .title-area-icon.restoreButton -{ - display: block !important; -} diff --git a/adwaita/css/widgets/windows.css b/adwaita/windowcontrols/adwaita.css similarity index 59% rename from adwaita/css/widgets/windows.css rename to adwaita/windowcontrols/adwaita.css index 0ad06d4..40fabb2 100644 --- a/adwaita/css/widgets/windows.css +++ b/adwaita/windowcontrols/adwaita.css @@ -1,34 +1,21 @@ +:root +{ + --adw-windowcontrols-button-width: 24px; + --adw-windowcontrols-button-height: 24px; + --adw-windowcontrols-button-gap: 13px; + --adw-windowcontrols-buttons-margin-outer: 12px; + --adw-windowcontrols-buttons-margin-inner: 6px; +} + body.DesktopUI, html.client_chat_frame { - .title-area - { - min-height: 46px !important; - cursor: default !important; - } - .title-bar-actions { - height: 36px !important; - max-height: 36px !important; - margin-top: 5px !important; - cursor: default !important; - - &.window-controls - { - margin-right: 10px !important; - } - .title-area-icon { - width: 24px !important; - height: 24px !important; - padding: 4px !important; - box-sizing: border-box !important; border-radius: 50% !important; - margin-left: 14px !important; background-color: rgba(var(--adw-window-fg-rgb), var(--adw-button-bg-opacity)) !important; - transition: var(--adw-button-transition) !important; &:hover { @@ -78,16 +65,4 @@ html.client_chat_frame } } } - - div._3Z7VQ1IMk4E3HsHvrkLNgo div.qP17eBPXkfezFfexZ4hC3 - { - flex-basis: var(--adw-windowcontrols-margin-right) !important; - } - - .title-bar-actions .title-area-icon.minimizeButton, - .title-bar-actions .title-area-icon.maximizeButton, - .title-bar-actions .title-area-icon.restoreButton - { - display: none !important; - } } diff --git a/adwaita/windowcontrols/macos.css b/adwaita/windowcontrols/macos.css new file mode 100644 index 0000000..5a95428 --- /dev/null +++ b/adwaita/windowcontrols/macos.css @@ -0,0 +1,91 @@ +:root +{ + --adw-windowcontrols-button-width: 12px; + --adw-windowcontrols-button-height: 12px; + --adw-windowcontrols-button-gap: 8px; + --adw-windowcontrols-buttons-margin-outer: 16px; + --adw-windowcontrols-buttons-margin-inner: 16px; + + /* Actual macOS icons extracted from /System/Library/CoreServices/SystemAppearance.bundle/Contents/Resources/Aqua.car - PNG only */ + --adw-icon-macos-window-close: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIKADAAQAAAABAAAAIAAAAACshmLzAAACtUlEQVRYCe2Wz2pUMRTGz51OO3ZTRIUq2BH8g9BV6UK0RfAtXPgGLly4cyVduXPRhW/gwrcQpCouSlcF8Q84I6igIt3UmU4nft+ZJGSS3M7cVu2iDdx7c3NzfudLbpJzRI7LUZ+BosoEfF5evL7bN7cKMdeMyDxs56x9G6BNI8WbiVrx/Pza+utxuWMJaC0v3pS+uWPE3D51+szJE9PTUp+aEpmcHPjZ2ZFetyu/t7fl54/vvwopnkmteNpcW38xSshIAa2lhbvGyL3Zs+euNmZmRCZqIhh+tpC225fO1pZ8+/rlbVHIavPlxpNsX9u4p4BPNxYeoN/D5sVLDWlgxOoYt70ECJCkdrrS+vihg9rKhVcbj6y/5FEqwI78cfPylYbU6zCMHGNahgqG64tWcev1pPX+XQef7pfNBOYzLfznnHYdeeycjmPnRITtqg032JJBlq6j1JVkBXDB8Z/rtLuRhw4yIN/k+jkR+HXKAtP3CSqJAG41rnZdcIQoKLCoUrX2ZJFJdmyeCOA+51bT1e68c1RVi7eBLXYOmWTHGK6uocJDhvtcfe/D7xCML5ZBJtnx92QG0H9eDxnX04/ENVR4BrZkkh1bJwLQYc6fcHHvg7wPTk13dHtSToD/+D8qOQFtwdn+18uA2Y65iQCcX5sMLL6EJ5xvHLMS2JJJdmyZCGBIZVTT81yP1Nik4jsZuMgkO7ZOBDCeM6Qyqg1U8LEPJd4GtmCRSfZIAUwmGM8ZUg88C3b0ZJGZS1SSGVCFSCYYzxlSVYWCcPOjiscRvLOPXmxDHQxlgRn08tWsAGYyYKxqPEdI9SJo5hx4hK2E7RRM5wzHyAnIKsuOsgJobuP3CuO5cFc4BwonH5XwohG/uTbYqC0SkrJcwJnwWVoONSVzqg41KXUi+PwXaXnIP64fzRn4A/jlMu8LgoxJAAAAAElFTkSuQmCC'); + --adw-icon-macos-window-close-hover: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIKADAAQAAAABAAAAIAAAAACshmLzAAADVUlEQVRYCe1Wv2sUURCevdyPXBNiFPyZEzUSSBUCBvUQxMY/IYW1hRYWdhYiabRLkUILmzQKAW200SYKGpUUIVUgaATvRKPoEYJy3l1y6/fN7lv3dt/eJYWkSIa73ce8nW++N2/ezBPZlZ0eAWcrAfhcHDm90XTPO+KOuiJDsO337csAWnTFmetKOS+PzM6/2yzupgiUiiPnpOlecsUd69u7r7c7n5d0NiuSyXh+Gg1Zr9flT7UqlZ8/Vh1xpiXlPCjMzr/qRKQjgdLZ4auuK9f2Hzg4mOvpEelKiWD5ViHaRlNqa2vybeXrkuPIZOHNwl3rt76yLYFPZ4Zv4LtbheMncpLDitUxHu0ICCCJWqtL6eNyDaPxo28X7vj+Yq9EAv7KJwoDJ3OSTsMw4hhhaREsNxAd4rG+LqUP72uYup4UCcQzLtxzhl1XHnVOx1HnhAjrlRsesCUGsTSP4q7ESoAJxz3XsPsrn3jyTG4/eipfKqsWGE/FuZsPH8vUDHLPkMDWKRYwbYYxAjxqzHZNOILgX0WGE7zy67fcez5jJcF5zlXrDVle+e758u2JRUxiR0nECPCc86hptnvLkDyO21hxVG3pIEoi7DyfzciVixdC2wQWODnEJHZHAiwyPOfqmyvw5dTAMSsJm/NDfb3GLMAhJrH/TXgjpneLwOeQFhmjDSUcSVCmZ+c01IwEhVExK291DjT/dBCT2GoQesQIYK4/qHChD80wSoJ6q3NjYN5e1TSl22gTTkEwbR8c7tujTu2zW9PGkhDmZUFtT5LonvM7W2LG7D3MclQfI4D6tcjGEkiowkWdM9vbnQ6z/8QiJrEDXH8QI8CWyq6m9RwWRmzOmXBJp8PYGRxiEjvQ+4MYAfZztlR2NY8FQozwmSJjS7goiakXr4PsVwxgEZPYHQnwMsF+zpZq2Bsjm3MzFybRjWKkwgjiTyxi2i4qoSAbKBFtRs3mfTSSQeHFgycYP5ZkVsV2wmjlaaPIeMAGbXnJSaUu2y4osS0gOD9E7k1qP0dLVTRgecAYhBIzIEMd/i3O2Y5xJyCWzTltrQQ44ffvcfZzrkKdqhPOQnyHwVt1IT1XTltcSJLuAsaE70TZ1iuZYbWtl1JDgu//cS0P4++Od2YE/gKR8dQuIjIyEQAAAABJRU5ErkJggg=='); + --adw-icon-macos-window-close-active: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIKADAAQAAAABAAAAIAAAAACshmLzAAADzElEQVRYCe2Wu2tUURDG5+7eTbIhWSMGNAbxlSCKjYXBQsHCP0AbU6SKIKiFvWCjIFYiWKggGCwsUlikt4hPJIIBlYiQ+EjQtTBrHuLmsXuv87vZWW/uvXlYiEUycPecPTPzfXPmPOaIrMtaz4DzNwno2dF6SMQ/6ovf4fuyT323VfzHHEeGHHEGRJz+7k9fXqwWd1UB9OxsOSK+dHm+dG5qbm7KZrNSU1MjbiYT8JTm52Vubk6KxaKMf/8+kXKkVxy53/0x/2SlQFYMoGf71nOe+Oe3tLTsaczlJJVOVzF9TQPi6PRNvHJZpqem5Fs+/z4lzo3uz19vmi6p/YOWoL27o+WCUlzdtXv35vqGBpg0ESKefrTRDwiCqdMMbcjlmgs/CseOb2ws9038fIouSZYMgJlD3tbeXutquj2dLYQmNnv7b1kwG9d1ZWNTk1sYLxw+0ZQr9E1OvzTbcJsK/7E+a07adea1aV3nMDnEwafGizJQGQeDcXzwBQOsYB+hjEhiAIrQxZpnamur5NeeDciVR8/ly/TPRZkwPEjRXXz4WHpeva4GAQZYYJptuI0FwFFjt7PhbKbF+ZJ8VfDx4ozcGhgM+mEQ+ujR/SqVZKQwEaiDDGkmwAJz4Rgv9owFoAk8ylFjtwOA1LlpObl/b9AvKkE0CCNHl9W1P9NxIAgeBzDAAhNsxsISC4BLhnOOWAD0D7Zukc6EIKLkZ5V8a6OemIoYBphg27i1rnWs1Yzt45IxsWXgP0EgvW/fiWWC/zbzMHlArGB2OsAEG/uwxAJQ5TZuOIiTJBoENqQ9TB71A6tya9rVXTWJLUFVs0ynNdcQkC5jsmpVUgBj3O2WuihSdM3R23KgSxKwwFQZi+pjAajtEIXFBGe76aPkpD1pY+KLT3gSYIJtuNbGA9CSSlVDjJh+Ejm7fanTgQ9iGGAulOuFcfuNBaAu/ZRUqpo5z5TKclsvmaTdDlA0iHuDb6qzBwMsMMHGPiyxAHhMUM8pqeH041S/zG63ICCsUzuEPhhggZn0ULFJBg72ExQjT+5oIVlUD7iSuRWR6CE1ILKVzbgBeUrJ52dn5cPIyPtUSk4nPVASy7HW71EtoR71nJKarjxC3LQ+MdiU+iHBDK2tjGew0THIy7rzR4aHZ3Xkcven/AN8opIYAEbUbx4T1HN9XGh5X5iVAVgg1jIeEGtrM4dc47h06nP+uvlF2yUDwJCXDI8JzURbxnWbuU5TmksI+CwD1f865nueTE1OytjoKE+yy8uRwwHGivJfH6Xh6P7FszyMv95fmxn4DVpiAtTsqqZdAAAAAElFTkSuQmCC'); + --adw-icon-macos-window-minimize: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIKADAAQAAAABAAAAIAAAAACshmLzAAACq0lEQVRYCe2Wv2tUQRDHZ9/deUmhKAoS0ByoKPgHBBvB/8LCNmksLOysxMrOwsImaS38LwQbyR8gKCpcDARBUbRIznf31vnO3WzGnXvcD9QrkoF3u7dv9jPf3ffezhAd21HfgTDLBuxutm4MKN6KRGtUhesU6KLMj/SJiviGYdsNCi8vbJSvp+VOJWBns3kzhnAnVnT7zNlzp5eXlqnVPkHUbA3j9Esqe79o/2Cfvn398j0U9CLE+Hx1o/9qkpCJAna2WnerAd07v7JybenkKaKiccjkrRCzFHY++PmDPu/tvWXXp6vr5bPDCb5np7q73a3mg1iFh51Ll9u8ZCIE1Mt58wBoepU96n780AtFfNRZ7z8e546xWgGy8oqedK5cbVOjSVSxtwTXZdcgAyNBLfga9Kn7/l2vKOh+3U7AzRmeObZdVl4TPLIOeyWIDPI/COa5YIAFZvIxnbEC8MLhmcu2ZyvXoIYh3T/GrQh+dGCBmc/BfycAnxrednnh9HkDyDZqpF/3k3xUBE8FC0yw83lOAL5zfGrytouA6YMr3IngzwFMsNVHWyeAw63hOxcbxlbf+doRA0ywc4gTgBNODhnjmVZkxiZ18znCxOmZmReA4xUn3N9YvQYDC0w9unWcWy/A3PwfXS8AiYXP9vojag5ZOJjABDszL4CzGhKLNRxus1o+R5jMzjlOAMfaRlYTmyNwHkB3Ekyw8/tOAPI5Uirx+SmTR0vJV5SD7P/kiw4WwSwwwbZ+6DsBKCaQz5FShwLYawYRLjgLAAvMcYWKEwBVKCaQz7nKGErEKoyIFATOI8NYGpc/fAN0ZoAFpvradqwAVDIoJpDPkVIFZEQAoAG1TVAbHOmYGVKY1FRHwNbaQgsSVbXQkiyJWGRRqiLQ/ouy3PKP+0dzB34DUjpPN7Al8kIAAAAASUVORK5CYII='); + --adw-icon-macos-window-minimize-hover: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIKADAAQAAAABAAAAIAAAAACshmLzAAAC9klEQVRYCe2Wv28TMRTHny+/2iERCKSqUmlUQFQwVxULKv8FAtZ2YWBgY0JMbAwMLO3KwH8RiQV1L1IqoEqDVCEVFTVDe3fJmfd9d74aO0eSSihD+6SLfc57H39tn/1MdGkXfQbUJBPwY7Nyf0D6oSZapUTdI0U3JF5TlwL9hWHbJVKthY3487jcsQTsb5YfaKWe6oQeXb12/crszCxValWiciXtpx9THEZ0cnpCR78Of6uAPiqtPyxu9D+NEjJSwP5W5VkyoOdz8/PLM/UGUVA6Y/JUiNkUdj7tHdPPg4M2u75bXI/fnwX4NTvU+7ezVX6pE/WqefNWjYdMhA7N43lzA2jmiUPqfP8WqkC/bq733wxzR1uhABl5Qm+bt+/UqFQmSthbOjfDLkAqRoIa8DPoU+frbhgE9KJoJuDmGdYc0y4jL+hcsw77ySHSyG8QzLFggAVm7mNVhgrAB4c1l2l3Rm46tRhS/avdFsFLBxaYbgzePQHYavja5YMz6w0gW1ZIvegn9zEiOBQsMMF24zwB2OfYavK1i4DxOzdwTwRvBzDBNj6m9ARwd6vY52Jp38b3fGXGABNsF8Kft2N8wskhkzVH0YD29o6p14scx3+/VqslWlpqUL3B25dNmDg9HfMF4HjFCZcpb7W6IsCJG+t1Z+eQHj+5m7LANEe3Fe0tgfWfVKMI2+B8FoaDkYH+DCCx9ON0C3L42toCtdtHI0HDHLAEYjiY4hgz0XX9fAGc1TixLFdw9LLV61VaWZkbawvacByItiFZIWPabah7S8Bx28hqYg4kbZzwN2OACbYb7QlAPkdKJT4/5UzPhuKOyAXZ77kvKhDALDDBtv1Q9wTgMoF8jpSaCmCvCUR4nbMAsMAcdlHxBEAVLhPI53zLSCViFJaIvBM4Z4a2vF1e+A/QmQEWmMbXLocKwE0Glwnkc6RUAVkiADAdmjKH2p0jHTNDLiYFtyNgC22qFxKjaqpXslzENC+lRgTK/3Ett/mX9Ys5A38AwndpOu8LlyYAAAAASUVORK5CYII='); + --adw-icon-macos-window-minimize-active: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIKADAAQAAAABAAAAIAAAAACshmLzAAADf0lEQVRYCe1Wv08UQRR++/OA4w4RjBRCAiEhoUZiocHCP0ArE6ywg8LeUhtLEwvopLKw5D+4RAsDtphQAMVZYAynHP7aW3bX973Zm+zt7rEHMbGAgb15Mzvv+755uzvvEV22ix4B4ywBWF+mW6FBd9lnPopolvvx2L9uGPSJ7U0zotrSGn2I5wu7ngQw8Z3IoEdhRA9HRgav9PUPUMl1yXYcITjxffJaLfrz+xcdHv74bhr01ojoDQt5V6SgUMD6Cq0EET0ZG7s6U6lUybQsokjBxh1pEDbCIKDj4yYdHDR2LINeLa3S6mkiGK17e71MT0OiF1NTN64PlAeJDJM49BSyApCnL+IwGaZJff39NFQtjza+Ne/dv0nBxkd6342lqwDsHOTT0xMl23aJw69owcot7tSAf9tRkHkWYls2DQ9X7MPG0e0H89TY2KItvThhmAlbm3jmCDvvvGRZTgc5COTiH0RDX/E8biI+EAxfYAALmJogYeQKwAuHZ+64JU0uRCCJSRMYYrbn+bZaE4sABrCAmfbBOCNAPjV+2/HCKVLZkvhiXNT0GnHjWHAPLHxBwE77ZwTgO8enhrddwGJ+DZxGyBljLf/LD2xgATM+Qzo8MgL47jy+cyCod71j/ZkHgsFYgsnYaQA7PcGKZ3HItJvXCml//yd/2yftqZ561zVpcrJM1aqiACaw084ZAbxgHCechJAHtdpXEZB27GW8vX1Ei4sTghWfmu2jW7vnPQJ9E0aLI3De5nnFvnkRqPPZPuM4JeFdWLhGOzvH59KAR4CGQ8rnfMGtjp9kywhAVuPEogVUKzbNzQ2rLyLpWWAzjj4dsRTJKs6YHZ55j2ATWQ3efLJ3LD7PQDAYRjA5XacxMgKQz5FSkdWwCyWEuzNo0btnH9jAkjTN2IUCUEwgnyOlKiCgKLdeROg14sb75x5YwMwrVDIRABWKCeRzv+XBUR6FEqN2pEkS25H7sjZew17wBQawgJlYrs1cAahkUEzs7X32gsDXIvTjgEiQJS/MARZz/Ady+AJDCpMu1VHXegD5G8UE8vnQUNnmJsAxQyc5mEHMikxcvC3f92h3t+6x+ezxGr2EtrzWVQAWo5JBMcGVzbRjG6MuH6emZXIKVUQg1KSwmS0KA2o2j6he/4KS7Plp5OCA9sKGYgL5/L8UpUl1Uiv847I8iX9pX8wI/AVy8XmFqmiQjAAAAABJRU5ErkJggg=='); + --adw-icon-macos-window-maximize: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIKADAAQAAAABAAAAIAAAAACshmLzAAADGklEQVRYCe1Wy4oTURCtfiQhqCGiMpmFC50RwQ8QFwrzE5qIf+DCvSvRzSwFF/6BOIH5iAFdiO4FYWYEs5gEMXGiEpLY3Z5T/aD7ducx4mMxU6Tpe29unTpV93ZViZzIcY+AdaQAbK3cwP4NseS6eNY1vC+qfiAdcYL3EshbzHek1XuzLO5yBF6u3hLLvwfQ5rmzF+rValXK5bKU3JLamf6cymQykdFoJF8Gn79isS2B/ULuHrxaRGQxga3GffHlQaOxerV2piaO4wg8DSWIBlYEg5fneTL8NpRu9+CD2PJMWt3n80jMJ9BeeSi+9ejypbVKpVwR8WGQv5iAgaw8iGhbMp6MZf/j3ljs4LE0e5vG1mQKd2YIPQ+szfW1K5WyW1bjGcOZCTDiKICchcd1XanX626/378pt0/3Zfv7uyJLdtGi8MwRdnpecnDO8Dyxx4E+0GQkkida5xLXoENdYhBLMbFsSjEBXDieeRx2BTQNm0gGkZgEMYgVXWJTC9fElPBTa/LCZTznPhpZJKk9MQnFwhckIXYGIU8A3zk/tdxtTwFnEIomGo1IAS9iERNbN8zteQJIMvzO5912E2TePDw+EcVkAjMkTwAZjkkmET37ZLb8IB0FaCkms6cheQJIr5rhlLqx+3enwFLMOHWncPIEUn/+i2GeAAoLc3uSWP4ECyQpxWTRMiRPAFWNhSURZrj5CTvZmhlQJ86OGComK6YheQIoqaxqNJrSN9SWnyoGsBQzLNcZ5TwB1HOWVFa1xPOjRiHtPcbEisr0TsY6JnkCYTPRZkllVctEgcCLJLVHdYGhWOwRChqVPAEaQDPBes6SmpDQKACdBlJGEj7xerQvNk4M7Q3YoBRIMQF2MmgmWM+nHr6IdCRMIoZh2oiNUzfsCdCYzOiOZvcDrN93Tnms57VazXVLbtb5hAgYqMXwZdElBw3JdCx7+7thQ9LqPS1wXpdmE+Df2z9es5kY9AfraDDOM53ajg17uBtRVJQHx3gYKc/35XB4KJ3OJ7ZkT3DuM43TBAO4WP5rU5qm9xfa8jT8yfh4RuAX4DFL7DINR2AAAAAASUVORK5CYII='); + --adw-icon-macos-window-maximize-hover: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIKADAAQAAAABAAAAIAAAAACshmLzAAADjElEQVRYCe1Wz2sTURCe3WwSmtYQUekPVNBWAoJ4Ew8qPXrxqK34H3jw7kn00qPgwf9AtNA/wGNFD6JXEQVboZU2VZrYai1Jurt+37zddbO7SVpBPLRDNrtv9r1vvpl9b2ZEDmS/R8DaUwCeDV/E/Emx5IK41lncT+h6X5Yl578XX95gPC/Ta693i7s7Ak9HL4vl3QLo1JHDxyoDAwNSKBQk7+TVTnunLa1WS7a3t2W98e07lLPi20/k5urLfkT6E3g2cls8uTMyMlotHypLLpcTeGrEDx6sAAY313Vl88em1GqrH8WWRzJde9yLRG8Cs8N3xbPunT41XiwWiiIeDPIXEkggKw8i2pY0W01Z/LzQFNu/L1NrM4mp0RDudBF67lszE+NnigWnoMY7DHcMgBFGAeQsXI7jSKVScer1+iW5PlSXuZ9vsyzZWUrhN0fY6Xk+h+8MzyN7fNALKxmJ6Ar0VFGHNVxLDGIpJtRJcZIKHWPDjQyPVTXsrjG+tbQuqy8+yM5WK3NJaawix6+eEztvgurjiFggQQzun9rXFW7i1KZMR8ActSluuLjnuzLuxDYorIWRUCycIDHYHQ6kCeCc86gld3tfz2k8EK/tBtahwOcgFjExmgymRLc0ASQZnvNeuz1cHYU9bnzHlS/P34VTTBRAQjGZwBKSJoAMxyQTSbjhIoV56GX810pDHTDWzXzFZPZMSJoA0qtmOP2AidnBsK/x5DJgKWaYumPv0wRiL7Me92w8CySmSxNAYWFujxJLbPJfG0eSUkwWrYSkCaCqsbBEwgyH356NMyWH2RGPismKmZA0AZRUVjUaja03SSZjt+uGS4DGh4oBLMU05Tr+GvUqLfMsqaxqJKEClDDDcewFR62bcWcQpyhkDwxiBWV6XvFif2kCppmYZUllVQtxdA3A+hofQuq9UjXT6QAwFIs9Qkajkl0L0Eygnk+WSqVqMV/UnM7cTmEkTl47b865aoI/8zryXIkHZVl7AwsNSoakI8BJ7GTQTLCet12ciHgkiKwX5tFodAV6qqjDGq41PQEaky7d0Z8EjjUdwvp9Y9BlPS+Xy46TdyJbOi8i0mnYoks5NCTtpiwsfjINyfTaww7s2KA7AU6a23rFZqJRb0ygwTjKdGrnbHiIvRFERXnwGRe9dj1PNjY3ZHl5iS3ZA3z3rsZpgsHqL/+1KY3T+wdteRz+4Hl/RuA3ExSh4DyNczUAAAAASUVORK5CYII='); + --adw-icon-macos-window-maximize-active: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIKADAAQAAAABAAAAIAAAAACshmLzAAADcUlEQVRYCe1WO28TQRCeezqOLSdAIBCJJrJA4gcgFAJKQUFDTZF/QEHBo6AECVFAQKLgH6SgoKcEBQUEFQ1ShKBIEBGPmNgEHD/Ox3zjXXuzd44dJESRjGTv3u3M980+br4l2rPdvgLOjhbgSvYUOdEMxc5JcugExXRU4h1a4f47cuLXFHvP6H711aC4gyVwfegMxfEsteji0IGx0eFslsIwQ0HgC0+j0aR6vUa/q1XaXPu+Ti49JseZp7ubC/0S6Z/A1cwlBrlcGD9yvFAokOd6XcxYdQ2UqBVRpVKhypfVJR59SHO1R92AZM9ASw7StfAGL/edw5PF8XwuzxNzeSHYT/90iH7m1nVcyvIKZQsjYxs/SufotBfRYvRCu9pt7wQwcyafKB7LhEFAcUuFSgY2jPnMy8GJ+L5HudF9/s+10jRN+SV6Gb0xvXQ/PQHZc7qNmfckx6xNM7aB91+S8DxejcKIv7FeKtJ08JYWm8tmCPrtU2S/5QOHPc+EYWfm1eUylZ6vUPSrYXvL89BEng6enyQncJmcs+MksGrAAFbl6+osOy7YwextGT41Pu04cLLXGGbAgch9kCs8vVX8LFiMScC2LJkAf+f41HDaBUMB9Z05yJXFDXVgOBbhwAKm1BDtpNpulB7gIoPvfBDrLLtJ3mzRt6cfE+GCiQJmWTIBrnAoMltML6vxcjvyzc8b3a1QMYKJ6mlZMgEur1LhUkh1bF9y7ahbxlKY7dKt33ObTMAYTOvumDwNxHiXTICFBbWdxSZhf03OWApzxQZNJsCqBmHZYgywY3JrAoIJxbQsmQBLKlTNNikyKaddDpztnPIsmJBry5IJsJ5DUqFqqKjtP25Q4ZTF6lPrRe7lgrYnAwADWCLTuCtY1kXVA7hMsJ5DUjvnQDJhBwbrS54PaP9ZPuxGjGDhjpByUUnXAr5MsJ7PDA/nunoAQC5rWIlDF4qJ77yTLCaiyFmZqVavt+8GLl9QUixdDaFaU34Leg5JhapJjdezEhIQGT8NbpA3mk1a/fC+xn636F7tiXYx2/QE4AH95ssE9BySCn0Hn7CCpMdPXquZC7kb36S5+gMJTfnrnQCccZPhywT0PPb9sTATkuu6XW520YQ6nyiOqFwu09qn5SWZ+TbkoGhPCr3t7L9eSs3E/sG13ITf6+/OFfgDke+Rdh5AD7YAAAAASUVORK5CYII='); + --adw-icon-macos-window-restore: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIKADAAQAAAABAAAAIAAAAACshmLzAAADGklEQVRYCe1Wy4oTURCtfiQhqCGiMpmFC50RwQ8QFwrzE5qIf+DCvSvRzSwFF/6BOIH5iAFdiO4FYWYEs5gEMXGiEpLY3Z5T/aD7ducx4mMxU6Tpe29unTpV93ZViZzIcY+AdaQAbK3cwP4NseS6eNY1vC+qfiAdcYL3EshbzHek1XuzLO5yBF6u3hLLvwfQ5rmzF+rValXK5bKU3JLamf6cymQykdFoJF8Gn79isS2B/ULuHrxaRGQxga3GffHlQaOxerV2piaO4wg8DSWIBlYEg5fneTL8NpRu9+CD2PJMWt3n80jMJ9BeeSi+9ejypbVKpVwR8WGQv5iAgaw8iGhbMp6MZf/j3ljs4LE0e5vG1mQKd2YIPQ+szfW1K5WyW1bjGcOZCTDiKICchcd1XanX626/378pt0/3Zfv7uyJLdtGi8MwRdnpecnDO8Dyxx4E+0GQkkida5xLXoENdYhBLMbFsSjEBXDieeRx2BTQNm0gGkZgEMYgVXWJTC9fElPBTa/LCZTznPhpZJKk9MQnFwhckIXYGIU8A3zk/tdxtTwFnEIomGo1IAS9iERNbN8zteQJIMvzO5912E2TePDw+EcVkAjMkTwAZjkkmET37ZLb8IB0FaCkms6cheQJIr5rhlLqx+3enwFLMOHWncPIEUn/+i2GeAAoLc3uSWP4ECyQpxWTRMiRPAFWNhSURZrj5CTvZmhlQJ86OGComK6YheQIoqaxqNJrSN9SWnyoGsBQzLNcZ5TwB1HOWVFa1xPOjRiHtPcbEisr0TsY6JnkCYTPRZkllVctEgcCLJLVHdYGhWOwRChqVPAEaQDPBes6SmpDQKACdBlJGEj7xerQvNk4M7Q3YoBRIMQF2MmgmWM+nHr6IdCRMIoZh2oiNUzfsCdCYzOiOZvcDrN93Tnms57VazXVLbtb5hAgYqMXwZdElBw3JdCx7+7thQ9LqPS1wXpdmE+Df2z9es5kY9AfraDDOM53ajg17uBtRVJQHx3gYKc/35XB4KJ3OJ7ZkT3DuM43TBAO4WP5rU5qm9xfa8jT8yfh4RuAX4DFL7DINR2AAAAAASUVORK5CYII='); + --adw-icon-macos-window-restore-hover: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIKADAAQAAAABAAAAIAAAAACshmLzAAADbUlEQVRYCe1WS09TURCe2962qWCDgYayQKT4SFwpRuJCEhb+BsH4D1y4d0VcuTRx4T8wQsKPwOjCQII7o4mAhgUY0tagSNrSXr9v7oPT+2jrgrjACeWex5xvvpnzmBH5L2c9AtZfBWBp9A7058SSGWlZ1/Ed1/WO7Eja+SiOrKG/Kgvf3/eL2x+B12OzYrUfAnR++EJxKJ/PSzablYydUTvN46Y0Gg05OjqSSm3/BwaXxUm9kge7b3sR6U1gqfRI2vK4VBq7VjhfkHQ6LfDUFcdrWB4MPq1WSw5+Hsje3u5nSckLWdh72Y0E0LrI8ugTcaxn5fLU6ODAIPBgoQ37+JFEZeOb5EtDLiH0LfxSIMMIFQqFkVqtdk/uD7Rk5fBdkpVU0oSo59bi5akruVwmB9ccNew7Xdn4KvtrWzAOq96gNkkOulzDtdK2FhUrwVA8Ae45wl6enMpl0tjnNozDjgoarvHtwHPdErXuKqku1nAtMYglxIyReAI4cNzzXBae+8Y9Awz7/hqMh4W29Yd/0PVJEINY3iEOr8K2hsW9avM8cIFxT0eNr8cYNzFIwhOfhGLhBomL7U/rN0oA95xXLXza+zLuQ/uRYB9tYhETvTkOmRIlgEeGp5gL1QNoVz4g7L08N1GNtmIASzH5gIUkSgAvHB8ZX4ID5w8YX/vciZ4x7DbNKGBEMfl6hsQO9XGZZVxfOFDv5rk9gMM1ezWyPHYAWIrpP92GUpSAMTl8c0KGb1zU7TCGO5qHO1XZffNJjn83Osa1g3erOFOWkVsT0TlvJLoFSCx828V/XhOXuhOJxjFdvD0pdIJYismkFZIoAWQ1JpZASAR/SRLrOZSLMzA+fSlYppjMmCGJEkBKZVaj0T6DEII0PMeMYgBLMd103aEfJYB8zpTKrBZ43iMKJqKGfdoNu47DOLG8NL1q6rIdJeAWE8tMqUhtnVHoshUEC4yzA1HvgaFYrBFiCpUoAa5EMcF8Xm/UT0hoFLgvRKZSp7h77nkOXd84MbQ2YIESI/EEWMmgmNja3qw3W7gRZiTCREAmOHBq9cRzriUGsZKqo+SCZOXXOouJarV6F8WFbWfsTuc9IlY6FZx2HaJLaUvqzbpsbn2BcecpQv88xnkdiglmSPWUS7LeBMjnnxalZkBOoSw34f+3z2YE/gAjEosn5Ni4nwAAAABJRU5ErkJggg=='); + --adw-icon-macos-window-restore-active: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIKADAAQAAAABAAAAIAAAAACshmLzAAADcklEQVRYCe1WzWoUQRCu+dmZbLJMVg0mK3iRoODJRAyiBjz4Dh58Aw8e/Dl41IsHiUIOvoEH30JRVBLQmxD8ObjCGjBrMoZsdjeTsb6e7t3e7tnNBhEPsWBmenq6vvqquqeqiP7LQY+As68A3CyeJye5TKkzRw6dppSOC32Hqjz+QE66RKn3nB413g6LOxyBOyPzlKbXaJeujhyZKI8WixQEIRUKvrDTbu9Qq9WkrUaDttd+rJNLz8hxntLD7Zd7EdmbwK3wOoPciCYrp6IoIs/1upipHGooyW5CcRxTvFpb4a+LtNB80lWwRxqa/ZFuB3c53A+mTkxPlsZK7JjLgeB18orfr1I4Veq8Y951XCpyhIrR+MTmz/oVuugl9Dp5lYMupvoTgOds/Nj0yTAoFCjdlRCCARGMry/XaPzslIHN4WAivu/RWPmQ/2utfoku+HV6kywbC8WrmzdJ2HMOO3seFnw/3/hSrcfzDo4kCMLQBQawJGZnmRrkE+ADhz0Pg8A2/o49h3FT1NZgXiMBDGCJQ2zq8LtNAL8an3YcOLHXGmAM4xz2gQIiEEkCGAKLMQnYhtgE+D/Hr4bTLjAk0FDGFbhGAurAAqbIIWqNfNoEOMngP9dFHTh9br9jgYkEZohNgDMckowSYTxvz3mBN1pQy+ynioL8IjCRPQ3JUpk+yelVZDgGGOS5N1agw/NZJtbVc8eMJTEtBZuAhhDNTFJ05mj3MGrf1LBRjan+okrJVltNdZ+cEspzFRqfNXNFd0neFlSR27nYDCV9jbN2+VyFohk2zlgSs2qC2gS4qqGw9MgAMrmewzh7jggqEZiomIbYBLikoqr9iWSed40DS2CiXBtiE+B6jpKKqubAc3HD09Ds8yqMz0rjrAt1YIkyjV7BEJsAmgmu5yipHaNDkjCNC1tMQGChR8hpVGwC0OJmAvW82WoRV9dMdBI50RB7rnkuYFgXGKI3QIOSIwq+91PWySx+//Kp2d7ZsUkIdL6BCF89B04SBXHoAoNXLfbrjvr3A6jf3EygnnNz4aO+Z47zHUbk5XgORfjP1Ts+Sc9rnz82yU3v0ULrMTjnSX8CWI1OhpuJzfX6dOr7E0EYkOu6ypYgNFIpCYOKU5ImtLGxQWvfvq7wgvuDjMNE5hRGg+SfNqU6sb/Qluvw/8cHMwK/ARzVdSiIVCdNAAAAAElFTkSuQmCC'); +} + +body.DesktopUI, +html.client_chat_frame +{ + .title-bar-actions + { + .title-area-icon + { + background: no-repeat center / 16px transparent !important; + + > div + { + display: none !important; + } + } + + .title-area-icon.closeButton + { + background-image: var(--adw-icon-macos-window-close) !important; + } + &:has(.title-area-icon:hover) .title-area-icon.closeButton + { + background-image: var(--adw-icon-macos-window-close-hover) !important; + } + &:has(.title-area-icon:hover) .title-area-icon.closeButton:active + { + background-image: var(--adw-icon-macos-window-close-active) !important; + } + + .title-area-icon.minimizeButton + { + background-image: var(--adw-icon-macos-window-minimize) !important; + } + &:has(.title-area-icon:hover) .title-area-icon.minimizeButton + { + background-image: var(--adw-icon-macos-window-minimize-hover) !important; + } + &:has(.title-area-icon:hover) .title-area-icon.minimizeButton:active + { + background-image: var(--adw-icon-macos-window-minimize-active) !important; + } + + .title-area-icon.maximizeButton + { + background-image: var(--adw-icon-macos-window-maximize) !important; + } + &:has(.title-area-icon:hover) .title-area-icon.maximizeButton + { + background-image: var(--adw-icon-macos-window-maximize-hover) !important; + } + &:has(.title-area-icon:hover) .title-area-icon.maximizeButton:active + { + background-image: var(--adw-icon-macos-window-maximize-active) !important; + } + + .title-area-icon.restoreButton + { + background-image: var(--adw-icon-macos-window-restore) !important; + } + &:has(.title-area-icon:hover) .title-area-icon.restoreButton + { + background-image: var(--adw-icon-macos-window-restore-hover) !important; + } + &:has(.title-area-icon:hover) .title-area-icon.restoreButton:active + { + background-image: var(--adw-icon-macos-window-restore-active) !important; + } + } +} diff --git a/adwaita/windowcontrols/windows.css b/adwaita/windowcontrols/windows.css new file mode 100644 index 0000000..6c402e0 --- /dev/null +++ b/adwaita/windowcontrols/windows.css @@ -0,0 +1,86 @@ +:root +{ + --adw-windowcontrols-button-width: 46px; + --adw-windowcontrols-button-height: 100%; + --adw-windowcontrols-button-gap: 0px; + --adw-windowcontrols-buttons-margin-outer: 0px; + --adw-windowcontrols-buttons-margin-inner: 6px; + + --adw-icon-windows-chrome-close: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTggOC43MDgwMUwzLjg1NDQ5IDEyLjg1MzVDMy43NTY4NCAxMi45NTEyIDMuNjM5NjUgMTMgMy41MDI5MyAxM0MzLjM1OTcgMTMgMy4yMzkyNiAxMi45NTI4IDMuMTQxNiAxMi44NTg0QzMuMDQ3MiAxMi43NjA3IDMgMTIuNjQwMyAzIDEyLjQ5NzFDMyAxMi4zNjA0IDMuMDQ4ODMgMTIuMjQzMiAzLjE0NjQ4IDEyLjE0NTVMNy4yOTE5OSA4TDMuMTQ2NDggMy44NTQ0OUMzLjA0ODgzIDMuNzU2ODQgMyAzLjYzODAyIDMgMy40OTgwNUMzIDMuNDI5NjkgMy4wMTMwMiAzLjM2NDU4IDMuMDM5MDYgMy4zMDI3M0MzLjA2NTEgMy4yNDA4OSAzLjEwMDkxIDMuMTg4OCAzLjE0NjQ4IDMuMTQ2NDhDMy4xOTIwNiAzLjEwMDkxIDMuMjQ1NzcgMy4wNjUxIDMuMzA3NjIgMy4wMzkwNkMzLjM2OTQ3IDMuMDEzMDIgMy40MzQ1NyAzIDMuNTAyOTMgM0MzLjYzOTY1IDMgMy43NTY4NCAzLjA0ODgzIDMuODU0NDkgMy4xNDY0OEw4IDcuMjkxOTlMMTIuMTQ1NSAzLjE0NjQ4QzEyLjI0MzIgMy4wNDg4MyAxMi4zNjIgMyAxMi41MDIgM0MxMi41NzAzIDMgMTIuNjMzOCAzLjAxMzAyIDEyLjY5MjQgMy4wMzkwNkMxMi43NTQyIDMuMDY1MSAxMi44MDc5IDMuMTAwOTEgMTIuODUzNSAzLjE0NjQ4QzEyLjg5OTEgMy4xOTIwNiAxMi45MzQ5IDMuMjQ1NzcgMTIuOTYwOSAzLjMwNzYyQzEyLjk4NyAzLjM2NjIxIDEzIDMuNDI5NjkgMTMgMy40OTgwNUMxMyAzLjYzODAyIDEyLjk1MTIgMy43NTY4NCAxMi44NTM1IDMuODU0NDlMOC43MDgwMSA4TDEyLjg1MzUgMTIuMTQ1NUMxMi45NTEyIDEyLjI0MzIgMTMgMTIuMzYwNCAxMyAxMi40OTcxQzEzIDEyLjU2NTQgMTIuOTg3IDEyLjYzMDUgMTIuOTYwOSAxMi42OTI0QzEyLjkzNDkgMTIuNzU0MiAxMi44OTkxIDEyLjgwNzkgMTIuODUzNSAxMi44NTM1QzEyLjgxMTIgMTIuODk5MSAxMi43NTkxIDEyLjkzNDkgMTIuNjk3MyAxMi45NjA5QzEyLjYzNTQgMTIuOTg3IDEyLjU3MDMgMTMgMTIuNTAyIDEzQzEyLjM2MiAxMyAxMi4yNDMyIDEyLjk1MTIgMTIuMTQ1NSAxMi44NTM1TDggOC43MDgwMVoiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPgo='); + --adw-icon-windows-chrome-maximize: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTQuNDc0NjEgMTNDNC4yNzkzIDEzIDQuMDkyMTIgMTIuOTYwOSAzLjkxMzA5IDEyLjg4MjhDMy43MzQwNSAxMi44MDE0IDMuNTc2MTcgMTIuNjk0IDMuNDM5NDUgMTIuNTYwNUMzLjMwNTk5IDEyLjQyMzggMy4xOTg1NyAxMi4yNjYgMy4xMTcxOSAxMi4wODY5QzMuMDM5MDYgMTEuOTA3OSAzIDExLjcyMDcgMyAxMS41MjU0VjQuNDc0NjFDMyA0LjI3OTMgMy4wMzkwNiA0LjA5MjEyIDMuMTE3MTkgMy45MTMwOUMzLjE5ODU3IDMuNzM0MDUgMy4zMDU5OSAzLjU3NzggMy40Mzk0NSAzLjQ0NDM0QzMuNTc2MTcgMy4zMDc2MiAzLjczNDA1IDMuMjAwMiAzLjkxMzA5IDMuMTIyMDdDNC4wOTIxMiAzLjA0MDY5IDQuMjc5MyAzIDQuNDc0NjEgM0gxMS41MjU0QzExLjcyMDcgMyAxMS45MDc5IDMuMDQwNjkgMTIuMDg2OSAzLjEyMjA3QzEyLjI2NiAzLjIwMDIgMTIuNDIyMiAzLjMwNzYyIDEyLjU1NTcgMy40NDQzNEMxMi42OTI0IDMuNTc3OCAxMi43OTk4IDMuNzM0MDUgMTIuODc3OSAzLjkxMzA5QzEyLjk1OTMgNC4wOTIxMiAxMyA0LjI3OTMgMTMgNC40NzQ2MVYxMS41MjU0QzEzIDExLjcyMDcgMTIuOTU5MyAxMS45MDc5IDEyLjg3NzkgMTIuMDg2OUMxMi43OTk4IDEyLjI2NiAxMi42OTI0IDEyLjQyMzggMTIuNTU1NyAxMi41NjA1QzEyLjQyMjIgMTIuNjk0IDEyLjI2NiAxMi44MDE0IDEyLjA4NjkgMTIuODgyOEMxMS45MDc5IDEyLjk2MDkgMTEuNzIwNyAxMyAxMS41MjU0IDEzSDQuNDc0NjFaTTExLjUwMSAxMS45OTlDMTEuNTY5MyAxMS45OTkgMTEuNjMyOCAxMS45ODYgMTEuNjkxNCAxMS45NkMxMS43NTMzIDExLjkzMzkgMTEuODA3IDExLjg5ODEgMTEuODUyNSAxMS44NTI1QzExLjg5ODEgMTEuODA3IDExLjkzMzkgMTEuNzU0OSAxMS45NiAxMS42OTYzQzExLjk4NiAxMS42MzQ0IDExLjk5OSAxMS41NjkzIDExLjk5OSAxMS41MDFWNC40OTkwMkMxMS45OTkgNC40MzA2NiAxMS45ODYgNC4zNjcxOSAxMS45NiA0LjMwODU5QzExLjkzMzkgNC4yNDY3NCAxMS44OTgxIDQuMTkzMDMgMTEuODUyNSA0LjE0NzQ2QzExLjgwNyA0LjEwMTg5IDExLjc1MzMgNC4wNjYwOCAxMS42OTE0IDQuMDQwMDRDMTEuNjMyOCA0LjAxNCAxMS41NjkzIDQuMDAwOTggMTEuNTAxIDQuMDAwOThINC40OTkwMkM0LjQzMDY2IDQuMDAwOTggNC4zNjU1NiA0LjAxNCA0LjMwMzcxIDQuMDQwMDRDNC4yNDUxMiA0LjA2NjA4IDQuMTkzMDMgNC4xMDE4OSA0LjE0NzQ2IDQuMTQ3NDZDNC4xMDE4OSA0LjE5MzAzIDQuMDY2MDggNC4yNDY3NCA0LjA0MDA0IDQuMzA4NTlDNC4wMTQgNC4zNjcxOSA0LjAwMDk4IDQuNDMwNjYgNC4wMDA5OCA0LjQ5OTAyVjExLjUwMUM0LjAwMDk4IDExLjU2OTMgNC4wMTQgMTEuNjM0NCA0LjA0MDA0IDExLjY5NjNDNC4wNjYwOCAxMS43NTQ5IDQuMTAxODkgMTEuODA3IDQuMTQ3NDYgMTEuODUyNUM0LjE5MzAzIDExLjg5ODEgNC4yNDUxMiAxMS45MzM5IDQuMzAzNzEgMTEuOTZDNC4zNjU1NiAxMS45ODYgNC40MzA2NiAxMS45OTkgNC40OTkwMiAxMS45OTlIMTEuNTAxWiIgZmlsbD0iYmxhY2siLz4KPC9zdmc+Cg=='); + --adw-icon-windows-chrome-minimize: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTMuNDk4MDUgOEMzLjQyOTY5IDggMy4zNjQ1OCA3Ljk4Njk4IDMuMzAyNzMgNy45NjA5NEMzLjI0NDE0IDcuOTM0OSAzLjE5MjA2IDcuODk5MDkgMy4xNDY0OCA3Ljg1MzUyQzMuMTAwOTEgNy44MDc5NCAzLjA2NTEgNy43NTU4NiAzLjAzOTA2IDcuNjk3MjdDMy4wMTMwMiA3LjYzNTQyIDMgNy41NzAzMSAzIDcuNTAxOTVDMyA3LjQzMzU5IDMuMDEzMDIgNy4zNzAxMiAzLjAzOTA2IDcuMzExNTJDMy4wNjUxIDcuMjQ5NjcgMy4xMDA5MSA3LjE5NTk2IDMuMTQ2NDggNy4xNTAzOUMzLjE5MjA2IDcuMTAxNTYgMy4yNDQxNCA3LjA2NDEzIDMuMzAyNzMgNy4wMzgwOUMzLjM2NDU4IDcuMDEyMDQgMy40Mjk2OSA2Ljk5OTAyIDMuNDk4MDUgNi45OTkwMkgxMi41MDJDMTIuNTcwMyA2Ljk5OTAyIDEyLjYzMzggNy4wMTIwNCAxMi42OTI0IDcuMDM4MDlDMTIuNzU0MiA3LjA2NDEzIDEyLjgwNzkgNy4xMDE1NiAxMi44NTM1IDcuMTUwMzlDMTIuODk5MSA3LjE5NTk2IDEyLjkzNDkgNy4yNDk2NyAxMi45NjA5IDcuMzExNTJDMTIuOTg3IDcuMzcwMTIgMTMgNy40MzM1OSAxMyA3LjUwMTk1QzEzIDcuNTcwMzEgMTIuOTg3IDcuNjM1NDIgMTIuOTYwOSA3LjY5NzI3QzEyLjkzNDkgNy43NTU4NiAxMi44OTkxIDcuODA3OTQgMTIuODUzNSA3Ljg1MzUyQzEyLjgwNzkgNy44OTkwOSAxMi43NTQyIDcuOTM0OSAxMi42OTI0IDcuOTYwOTRDMTIuNjMzOCA3Ljk4Njk4IDEyLjU3MDMgOCAxMi41MDIgOEgzLjQ5ODA1WiIgZmlsbD0iYmxhY2siLz4KPC9zdmc+Cg=='); + --adw-icon-windows-chrome-restore: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTExLjk5OSA1Ljk2Mzg3QzExLjk5OSA1LjY5MzY4IDExLjk0NTMgNS40Mzk3OCAxMS44Mzc5IDUuMjAyMTVDMTEuNzMwNSA0Ljk2MTI2IDExLjU4NCA0Ljc1MjkzIDExLjM5ODQgNC41NzcxNUMxMS4yMTYxIDQuMzk4MTEgMTEuMDAyOSA0LjI1ODE0IDEwLjc1ODggNC4xNTcyM0MxMC41MTc5IDQuMDUzMDYgMTAuMjY0IDQuMDAwOTggOS45OTcwNyA0LjAwMDk4SDUuMDg0OTZDNS4xMzcwNCAzLjg1MTI0IDUuMjEwMjkgMy43MTQ1MiA1LjMwNDY5IDMuNTkwODJDNS4zOTkwOSAzLjQ2NzEyIDUuNTA4MTQgMy4zNjEzMyA1LjYzMTg0IDMuMjczNDRDNS43NTU1MyAzLjE4NTU1IDUuODkwNjIgMy4xMTg4MiA2LjAzNzExIDMuMDczMjRDNi4xODY4NSAzLjAyNDQxIDYuMzQxNDcgMyA2LjUwMDk4IDNIOS45OTcwN0MxMC40MTA1IDMgMTAuNzk5NSAzLjA3OTc1IDExLjE2NDEgMy4yMzkyNkMxMS41Mjg2IDMuMzk1NTEgMTEuODQ2IDMuNjA4NzIgMTIuMTE2MiAzLjg3ODkxQzEyLjM4OTYgNC4xNDkwOSAxMi42MDQ1IDQuNDY2NDcgMTIuNzYwNyA0LjgzMTA1QzEyLjkyMDIgNS4xOTU2NCAxMyA1LjU4NDY0IDEzIDUuOTk4MDVWOS40OTkwMkMxMyA5LjY1ODUzIDEyLjk3NTYgOS44MTMxNSAxMi45MjY4IDkuOTYyODlDMTIuODgxMiAxMC4xMDk0IDEyLjgxNDUgMTAuMjQ0NSAxMi43MjY2IDEwLjM2ODJDMTIuNjM4NyAxMC40OTE5IDEyLjUzMjkgMTAuNjAwOSAxMi40MDkyIDEwLjY5NTNDMTIuMjg1NSAxMC43ODk3IDEyLjE0ODggMTAuODYzIDExLjk5OSAxMC45MTVWNS45NjM4N1pNNC40NzQ2MSAxM0M0LjI3OTMgMTMgNC4wOTIxMiAxMi45NjA5IDMuOTEzMDkgMTIuODgyOEMzLjczNDA1IDEyLjgwMTQgMy41NzYxNyAxMi42OTQgMy40Mzk0NSAxMi41NjA1QzMuMzA1OTkgMTIuNDIzOCAzLjE5ODU3IDEyLjI2NiAzLjExNzE5IDEyLjA4NjlDMy4wMzkwNiAxMS45MDc5IDMgMTEuNzIwNyAzIDExLjUyNTRWNi40NzY1NkMzIDYuMjc3OTkgMy4wMzkwNiA2LjA5MDgyIDMuMTE3MTkgNS45MTUwNEMzLjE5ODU3IDUuNzM2IDMuMzA1OTkgNS41Nzk3NSAzLjQzOTQ1IDUuNDQ2MjlDMy41NzYxNyA1LjMwOTU3IDMuNzMyNDIgNS4yMDIxNSAzLjkwODIgNS4xMjQwMkM0LjA4NzI0IDUuMDQyNjQgNC4yNzYwNCA1LjAwMTk1IDQuNDc0NjEgNS4wMDE5NUg5LjUyMzQ0QzkuNzIyMDEgNS4wMDE5NSA5LjkxMDgxIDUuMDQyNjQgMTAuMDg5OCA1LjEyNDAyQzEwLjI2ODkgNS4yMDIxNSAxMC40MjUxIDUuMzA3OTQgMTAuNTU4NiA1LjQ0MTQxQzEwLjY5MjEgNS41NzQ4NyAxMC43OTc5IDUuNzMxMTIgMTAuODc2IDUuOTEwMTZDMTAuOTU3NCA2LjA4OTE5IDEwLjk5OCA2LjI3Nzk5IDEwLjk5OCA2LjQ3NjU2VjExLjUyNTRDMTAuOTk4IDExLjcyNCAxMC45NTc0IDExLjkxMjggMTAuODc2IDEyLjA5MThDMTAuNzk3OSAxMi4yNjc2IDEwLjY5MDQgMTIuNDIzOCAxMC41NTM3IDEyLjU2MDVDMTAuNDIwMiAxMi42OTQgMTAuMjY0IDEyLjgwMTQgMTAuMDg1IDEyLjg4MjhDOS45MDkxOCAxMi45NjA5IDkuNzIyMDEgMTMgOS41MjM0NCAxM0g0LjQ3NDYxWk05LjQ5OTAyIDExLjk5OUM5LjU2NzM4IDExLjk5OSA5LjYzMDg2IDExLjk4NiA5LjY4OTQ1IDExLjk2QzkuNzUxMyAxMS45MzM5IDkuODA1MDEgMTEuODk4MSA5Ljg1MDU5IDExLjg1MjVDOS44OTk0MSAxMS44MDcgOS45MzY4NSAxMS43NTQ5IDkuOTYyODkgMTEuNjk2M0M5Ljk4ODkzIDExLjYzNDQgMTAuMDAyIDExLjU2OTMgMTAuMDAyIDExLjUwMVY2LjUwMDk4QzEwLjAwMiA2LjQzMjYyIDkuOTg4OTMgNi4zNjc1MSA5Ljk2Mjg5IDYuMzA1NjZDOS45MzY4NSA2LjI0MzgyIDkuOTAxMDQgNi4xOTAxIDkuODU1NDcgNi4xNDQ1M0M5LjgwOTkgNi4wOTg5NiA5Ljc1NjE4IDYuMDYzMTUgOS42OTQzNCA2LjAzNzExQzkuNjMyNDkgNi4wMTEwNyA5LjU2NzM4IDUuOTk4MDUgOS40OTkwMiA1Ljk5ODA1SDQuNDk5MDJDNC40MzA2NiA1Ljk5ODA1IDQuMzY1NTYgNi4wMTEwNyA0LjMwMzcxIDYuMDM3MTFDNC4yNDUxMiA2LjA2MzE1IDQuMTkzMDMgNi4xMDA1OSA0LjE0NzQ2IDYuMTQ5NDFDNC4xMDE4OSA2LjE5NDk5IDQuMDY2MDggNi4yNDg3IDQuMDQwMDQgNi4zMTA1NUM0LjAxNCA2LjM2OTE0IDQuMDAwOTggNi40MzI2MiA0LjAwMDk4IDYuNTAwOThWMTEuNTAxQzQuMDAwOTggMTEuNTY5MyA0LjAxNCAxMS42MzQ0IDQuMDQwMDQgMTEuNjk2M0M0LjA2NjA4IDExLjc1NDkgNC4xMDE4OSAxMS44MDcgNC4xNDc0NiAxMS44NTI1QzQuMTkzMDMgMTEuODk4MSA0LjI0NTEyIDExLjkzMzkgNC4zMDM3MSAxMS45NkM0LjM2NTU2IDExLjk4NiA0LjQzMDY2IDExLjk5OSA0LjQ5OTAyIDExLjk5OUg5LjQ5OTAyWiIgZmlsbD0iYmxhY2siLz4KPC9zdmc+Cg=='); +} + +body.DesktopUI, +html.client_chat_frame +{ + .title-bar-actions + { + .title-area-icon + { + min-height: 32px !important; + background-color: transparent !important; + + &:hover + { + background-color: rgba(var(--adw-window-fg-rgb), var(--adw-hover-opacity)) !important; + } + + &:active + { + background-color: rgba(var(--adw-window-fg-rgb), var(--adw-active-opacity)) !important; + } + + &.closeButton + { + &:hover + { + background-color: rgb(196, 43, 28, 1) !important; + } + + &:active + { + background-color: rgba(196, 43, 28, 0.9) !important; + } + } + + > div + { + display: none !important; + } + + &::before + { + background-color: rgb(var(--adw-window-fg-rgb)); + content: ""; + display: block; + width: 16px; + height: 16px; + -webkit-mask-repeat: no-repeat; + -webkit-mask-position: center; + -webkit-mask-size: 16px; + } + + &.closeButton::before + { + -webkit-mask-image: var(--adw-icon-windows-chrome-close); + } + + &.maximizeButton::before + { + -webkit-mask-image: var(--adw-icon-windows-chrome-maximize); + } + + &.minimizeButton::before + { + -webkit-mask-image: var(--adw-icon-windows-chrome-minimize); + } + + &.restoreButton::before + { + -webkit-mask-image: var(--adw-icon-windows-chrome-restore); + } + } + } +} diff --git a/install.py b/install.py index 2ede882..d1c71bf 100755 --- a/install.py +++ b/install.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +import subprocess from argparse import ArgumentParser from pathlib import Path from sys import platform @@ -46,6 +47,7 @@ TARGET_NORMAL = "~/.steam/steam" TARGET_FLATPAK = "~/.var/app/com.valvesoftware.Steam/.steam/steam" TARGET_WINDOWS = "C:\\Program Files (x86)\\Steam" +TARGET_MACOS = "~/Library/Application Support/Steam/Steam.AppBundle/Steam/Contents/MacOS" STEAM_LOOPBACK = "https://steamloopback.host" STEAM_LOOPBACK_ADWAITA = f"{STEAM_LOOPBACK}/{ADWAITA_DIR}" @@ -85,7 +87,7 @@ "css/widgets/lists.css", "css/widgets/popups.css", "css/widgets/scrollbars.css", - "css/widgets/windows.css", + "css/widgets/windowcontrols.css", "css/main/headerbar/buttons.css", "css/main/headerbar/headerbar.css", @@ -118,6 +120,20 @@ "css/dialogs/appproperties.css" ] +WINDOWCONTROLS_PRESETS = { + "gnome": ":close", + "adwaita": ":close", + "pantheon": "close:maximize", + "elementary": "close:maximize", + "windows": ":minimize,maximize,close", + "macos": "close,minimize,maximize:" +} + +WINDOWCONTROLS_SELECTORS = { + "minimize": "&.minimizeButton", + "maximize": "&.maximizeButton, &.restoreButton", + "close": "&.closeButton" +} # Utils def copy_dir(source: Path, target: Path): @@ -151,16 +167,68 @@ def find_extras() -> list[Path]: def format_import(prefix: str, string: str) -> str: return f"@import url(\"{prefix}/{string}\");\n" -def generate_libraryroot(target: Path, selected_extras: list[Path], selected_theme: str, custom_css: bool): +def generate_windowcontrols(layout: str) -> str: + (buttons_left, buttons_right) = [[b for b in s.split(',') if b in WINDOWCONTROLS_SELECTORS] for s in layout.split(':')] + windowcontrols = f""":root +{{ + --adw-windowcontrols-left-has-buttons: { 0 if len(buttons_left) == 0 else 1 }; + --adw-windowcontrols-left-buttons: { len(buttons_left) }; + --adw-windowcontrols-right-has-buttons: { 0 if len(buttons_right) == 0 else 1 }; + --adw-windowcontrols-right-buttons: { len(buttons_right) }; + --adw-windowcontrols-close-margin-left: calc({ 1 if "close" in buttons_left else 0 } * (var(--adw-windowcontrols-buttons-margin-outer) + var(--adw-windowcontrols-button-width) + var(--adw-windowcontrols-buttons-margin-inner))); + --adw-windowcontrols-close-margin-right: calc({ 1 if "close" in buttons_right else 0 } * (var(--adw-windowcontrols-buttons-margin-outer) + var(--adw-windowcontrols-button-width) + var(--adw-windowcontrols-buttons-margin-inner))); +}} + +body.DesktopUI, +html.client_chat_frame +{{ + .title-bar-actions .title-area-icon + {{ + visibility: hidden !important; +""" + + for i, b in enumerate(buttons_left): + windowcontrols += f""" + { WINDOWCONTROLS_SELECTORS[b] } + {{ + visibility: visible !important; + left: calc(var(--adw-windowcontrols-buttons-margin-outer) + {i} * var(--adw-windowcontrols-button-width) + {i} * var(--adw-windowcontrols-button-gap)) !important; + + html.client_chat_frame div.chat_main.singlewindow:not(:has(div.friendsListContainer.collapsed)) div.multiChatDialog & + {{ + visibility: hidden !important; + }} + }} +""" + + for i, b in enumerate(reversed(buttons_right)): + windowcontrols += f""" + { WINDOWCONTROLS_SELECTORS[b] } + {{ + visibility: visible !important; + right: calc(var(--adw-windowcontrols-buttons-margin-outer) + {i} * var(--adw-windowcontrols-button-width) + {i} * var(--adw-windowcontrols-button-gap)) !important; + + html.client_chat_frame div.chat_main.singlewindow div.friendsListContainer:not(.collapsed) & + {{ + visibility: hidden !important; + }} + }} +""" + windowcontrols += f""" + }} +}}""" + return windowcontrols + +def generate_libraryroot(target: Path, extras: list[Path], color_theme: str, windowcontrols_theme: str, windowcontrols_layout: str, custom_css: bool): content = "/* Main Files */\n" for f in LIBRARY_FILES: content += format_import(STEAM_LOOPBACK_ADWAITA, f) - if selected_extras: + if extras: print() content += "\n/* Extras */\n" - for extra in selected_extras: + for extra in extras: we = extra.removesuffix(".css") test = extrasdir / we if test.with_suffix(".css").exists(): @@ -170,13 +238,25 @@ def generate_libraryroot(target: Path, selected_extras: list[Path], selected_the print(f"{TEXT_PURPLE}{TEXT_INFO} Extra: {TEXT_BOLD}{we}{TEXT_RESET}{TEXT_PURPLE} not found!{TEXT_RESET}") print() - if selected_theme: - print(f"{TEXT_BLUE}{TEXT_ARROW} Applying color theme {TEXT_BOLD}{selected_theme}{TEXT_RESET}{TEXT_BLUE}...{TEXT_RESET}\n") - content += "\n/* ColorTheme */\n" - content += format_import(STEAM_LOOPBACK_ADWAITA, f"colorthemes/{selected_theme}/{selected_theme}.css") + if color_theme: + print(f"{TEXT_BLUE}{TEXT_ARROW} Applying color theme {TEXT_BOLD}{color_theme}{TEXT_RESET}{TEXT_BLUE}...{TEXT_RESET}") + content += "\n/* Color theme */\n" + content += format_import(STEAM_LOOPBACK_ADWAITA, f"colorthemes/{color_theme}/{color_theme}.css") + + if windowcontrols_theme: + print(f"{TEXT_BLUE}{TEXT_ARROW} Applying window controls theme {TEXT_BOLD}{windowcontrols_theme}{TEXT_RESET}{TEXT_BLUE}...{TEXT_RESET}") + content += "\n/* Window controls theme */\n" + content += format_import(STEAM_LOOPBACK_ADWAITA, f"windowcontrols/{windowcontrols_theme}.css") + + if windowcontrols_layout: + if ':' not in windowcontrols_layout: + windowcontrols_layout = ':' + windowcontrols_layout + print(f"{TEXT_BLUE}{TEXT_ARROW} Applying window controls layout {TEXT_BOLD}{windowcontrols_layout}{TEXT_RESET}{TEXT_BLUE}...{TEXT_RESET}") + content += f"\n/* Window controls layout - {windowcontrols_layout} */\n" + content += generate_windowcontrols(windowcontrols_layout) if custom_css: - print(f"{TEXT_BLUE}{TEXT_ARROW} Applying custom css...{TEXT_RESET}\n") + print(f"{TEXT_BLUE}{TEXT_ARROW} Applying custom css...{TEXT_RESET}") content += "\n/* Custom CSS */\n" content += format_import(STEAM_LOOPBACK_ADWAITA, f"custom/{CUSTOM_CSS}") @@ -260,7 +340,9 @@ def dev_reload(target: Path): raise SystemExit(f"{TEXT_RED}{TEXT_CROSS} Color Theme directory {TEXT_BOLD}{COLOR_THEME_DIR}{TEXT_RESET}{TEXT_RED} does not exist. Make sure you're running the installer from its root directory{TEXT_RESET}") parser = ArgumentParser(description = "Adwaita-for-Steam installer") - parser.add_argument("-c", "--color-theme", default = "adwaita", help = "Choose color theme") + parser.add_argument("-c", "--color-theme", default = "adwaita", type = str.lower, help = "Choose color theme") + parser.add_argument("--windowcontrols-theme", default = "auto", choices = ["auto", "adwaita", "windows", "macos"], type = str.lower, help = "Window button theme") + parser.add_argument("--windowcontrols-layout", default = "auto", type = str.lower, help = "Window button positions: 'auto', 'gnome'|'adwaita', 'pantheon'|'elementary', 'windows', 'macos', or GNOME button layout string") parser.add_argument("--custom-css", action = "store_true", help = "Enable Custom CSS") parser.add_argument("-d", "--dev", action = "store_true", help = "Dev Mode") parser.add_argument("-e", "--extras", nargs = "+", action = "extend", help = "Enable one or multiple theme extras") @@ -270,28 +352,53 @@ def dev_reload(target: Path): args = parser.parse_args() if args.target is None: - args.target = ["normal", "flatpak"] - - if is_windows: + if platform == "linux": + args.target = ["normal", "flatpak"] + elif platform == "win32": args.target = ["windows"] + elif platform == "darwin": + args.target = ["macos"] if args.list_options: list_options("color themes", find_color_themes(), ".css", colorthemedir, "color-theme") list_options("extras", find_extras(), ".css", extrasdir, "extras") exit(0) - selected_theme = None if args.color_theme: - if args.color_theme == "adwaita": - selected_theme = None + args.color_theme = None else: - t = args.color_theme.removesuffix(".css") - selected_theme = t - test = colorthemedir / t / t + args.color_theme = args.color_theme.removesuffix(".css") + test = colorthemedir / args.color_theme / args.color_theme if not test.with_suffix(".css").exists(): raise SystemExit(f"{TEXT_RED}{TEXT_CROSS} {TEXT_BOLD}{test}{TEXT_RESET}{TEXT_RED} theme not found.{TEXT_RESET}") + if args.windowcontrols_theme == "auto": + if platform == "linux": + args.windowcontrols_theme = "adwaita" + elif platform == "win32": + args.windowcontrols_theme = "windows" + elif platform == "darwin": + args.windowcontrols_theme = "macos" + + if args.windowcontrols_layout == "auto": + if platform == "linux": + try: + args.windowcontrols_layout = subprocess.run( + args = ["gsettings", "get", "org.gnome.desktop.wm.preferences", "button-layout"], + check = True, + capture_output = True, + text = True + ).stdout.strip().strip("'") + except: + args.windowcontrols_layout = WINDOWCONTROLS_PRESETS["gnome"] + elif platform == "win32": + args.windowcontrols_layout = WINDOWCONTROLS_PRESETS["windows"] + elif platform == "darwin": + args.windowcontrols_layout = WINDOWCONTROLS_PRESETS["macos"] + elif args.windowcontrols_layout in WINDOWCONTROLS_PRESETS: + args.windowcontrols_layout = WINDOWCONTROLS_PRESETS[args.windowcontrols_layout] + with TemporaryDirectory() as tmpdir: tmp = Path(tmpdir) @@ -302,7 +409,7 @@ def dev_reload(target: Path): print(f"{TEXT_BLUE}{TEXT_ARROW} Creating stage directory {TEXT_BOLD}{sourcedir}{TEXT_RESET}") - generate_libraryroot(libraryroot, args.extras, selected_theme, args.custom_css) + generate_libraryroot(libraryroot, args.extras, args.color_theme, args.windowcontrols_theme, args.windowcontrols_layout, args.custom_css) targets = set() @@ -318,6 +425,8 @@ def dev_reload(target: Path): targets.add(Path(reg_path).resolve()) except: targets.add(Path(TARGET_WINDOWS).resolve()) + elif t == "macos": + targets.add(Path(TARGET_MACOS).expanduser().resolve()) else: targets.add(Path(t).expanduser().resolve()) diff --git a/theme.json b/theme.json index 980b489..6cbeacb 100644 --- a/theme.json +++ b/theme.json @@ -1,7 +1,7 @@ { "name": "Adwaita for Steam", "author": "tk", - "version": "v2.9", + "version": "v3.0", "manifest_version": 8, "description": "A skin to make Steam look more like a native GNOME app", "target": "Desktop", @@ -16,16 +16,15 @@ "adwaita/css/_root/text.css": ["all"], "adwaita/css/_root/variables.css": ["all"], - "adwaita/css/widgets/avatars.css": ["all"], - "adwaita/css/widgets/buttons.css": ["all"], - "adwaita/css/widgets/cards.css": ["all"], - "adwaita/css/widgets/checkboxes.css": ["all"], - "adwaita/css/widgets/dialogs.css": ["all"], - "adwaita/css/widgets/entries.css": ["all"], - "adwaita/css/widgets/lists.css": ["all"], - "adwaita/css/widgets/popups.css": ["all"], - "adwaita/css/widgets/scrollbars.css": ["all"], - "adwaita/css/widgets/windows.css": ["all"], + "adwaita/css/chat/chat.css": ["all"], + "adwaita/css/chat/messages.css": ["all"], + "adwaita/css/chat/sidebar.css": ["all"], + + "adwaita/css/dialogs/pagedsettings/dialog.css": ["all"], + "adwaita/css/dialogs/pagedsettings/rows.css": ["all"], + "adwaita/css/dialogs/appproperties.css": ["all"], + "adwaita/css/dialogs/login.css": ["all"], + "adwaita/css/dialogs/settings.css": ["all"], "adwaita/css/main/headerbar/buttons.css": ["all"], "adwaita/css/main/headerbar/headerbar.css": ["all"], @@ -46,16 +45,16 @@ "adwaita/css/main/library/library.css": ["all"], - "adwaita/css/chat/chat.css": ["all"], - "adwaita/css/chat/messages.css": ["all"], - "adwaita/css/chat/sidebar.css": ["all"], - - "adwaita/css/dialogs/pagedsettings/dialog.css": ["all"], - "adwaita/css/dialogs/pagedsettings/rows.css": ["all"], - - "adwaita/css/dialogs/login.css": ["all"], - "adwaita/css/dialogs/settings.css": ["all"], - "adwaita/css/dialogs/appproperties.css": ["all"] + "adwaita/css/widgets/avatars.css": ["all"], + "adwaita/css/widgets/buttons.css": ["all"], + "adwaita/css/widgets/cards.css": ["all"], + "adwaita/css/widgets/checkboxes.css": ["all"], + "adwaita/css/widgets/dialogs.css": ["all"], + "adwaita/css/widgets/entries.css": ["all"], + "adwaita/css/widgets/lists.css": ["all"], + "adwaita/css/widgets/popups.css": ["all"], + "adwaita/css/widgets/scrollbars.css": ["all"], + "adwaita/css/widgets/windowcontrols.css": ["all"] }, "patches": { "Color Theme": { @@ -82,6 +81,14 @@ "yaru": { "adwaita/colorthemes/yaru/yaru.css": ["all"] } } }, + "Window Controls Theme": { + "type": "dropdown", + "values": { + "adwaita": { "adwaita/windowcontrols/adwaita.css": ["all"] }, + "macos": { "adwaita/windowcontrols/macos.css": ["all"] }, + "windows": { "adwaita/windowcontrols/windows.css": ["all"] } + } + }, "Rounded Corners": { "type": "checkbox", "values": { @@ -121,24 +128,6 @@ } } }, - "Window Controls": { - "type": "dropdown", - "values": { - "Default": {}, - "Hide Close": { - "adwaita/extras/windowcontrols/hide-close.css": ["all"] - }, - "Left All": { - "adwaita/extras/windowcontrols/left-all.css": ["all"] - }, - "Left": { - "adwaita/extras/windowcontrols/left.css": ["all"] - }, - "Right All": { - "adwaita/extras/windowcontrols/right-all.css": ["all"] - } - } - }, "Enable Custom CSS": { "type": "checkbox", "values": {