From 7c3b925255aca4dc7010a2446b4b4c493b01ea8b Mon Sep 17 00:00:00 2001 From: Vladyslav Hroshev Date: Sun, 28 May 2023 10:00:52 +0300 Subject: [PATCH] #8 Tweaks: Ability to change Show Apps icon to MacOS Launchpad icon --- README.md | 17 +++++++++++++ install.py | 25 +++++++++++++++---- readme-images/tweaks/dash-with-launchpad.png | Bin 0 -> 30610 bytes tweaks/launchpad/launchpad.css | 5 ++++ tweaks/launchpad/launchpad.png | Bin 0 -> 3241 bytes 5 files changed, 42 insertions(+), 5 deletions(-) create mode 100644 readme-images/tweaks/dash-with-launchpad.png create mode 100644 tweaks/launchpad/launchpad.css create mode 100644 tweaks/launchpad/launchpad.png diff --git a/README.md b/README.md index 02950e2..94630a5 100644 --- a/README.md +++ b/README.md @@ -87,14 +87,31 @@ You can install several themes in one string: `python install.py --red --green - | --sat | (0 - 250) | custom color saturation (<100% - reduce, >100% - increase) | #### Panel tweaks + +**Panel default size** + ![Panel default size](./readme-images/tweaks/panel-default-size.png "Panel default size") + +**Panel without button background** + ![Panel without buttons background](./readme-images/tweaks/panel-no-pill.png "Panel without buttons background") + | Option | Secondary option | Description | |----------------------------|------------------|--------------------------------| | -Pds, --panel_default_size | | set default panel size | | -Pnp, --panel_no_pill | | remove panel button background | | -Ptc, --panel_text_color | #abcdef | custom panel HEX(A) text color | +#### Overview tweaks + +**Launchpad icon** + +![Dash with launchpad icon](./readme-images/tweaks/dash-with-launchpad.png "Dash with launchpad icon") + +| Command | Description | +|-------------|-----------------------------------------------| +| --launchpad | Change Show Apps icon to MacOS Launchpad icon | + #### Examples | Command | Description | |------------------------------------------------|----------------------------------------------------------------------| diff --git a/install.py b/install.py index 7dce388..19aed4e 100644 --- a/install.py +++ b/install.py @@ -127,6 +127,9 @@ def apply_colors(hue, destination, theme_mode, apply_file, sat=None): :param sat: color saturation (optional) """ + if (not apply_file.lower().endswith(('.css', '.svg'))): + return + with open(os.path.expanduser(f"{destination}/{apply_file}"), "r") as file: edit_file = file.read() @@ -222,10 +225,10 @@ def main(): custom grayblue accent color, 50% of stock saturation, dark mode ''')) - # Add default arguments + # Default arguments parser.add_argument('-r', '--remove', action='store_true', help='remove all "Marble" themes') - # Add arguments for default accent colors + # Default accent colors default_args = parser.add_argument_group('Install default theme') default_args.add_argument('-a', '--all', action='store_true', help='all available accent colors') default_args.add_argument('--red', action='store_true', help='red theme only') @@ -236,23 +239,27 @@ def main(): default_args.add_argument('--yellow', action='store_true', help='yellow theme only') default_args.add_argument('--gray', action='store_true', help='gray theme only') - # Add arguments for custom accent colors + # Custom accent colors custom_args = parser.add_argument_group('Install custom color theme') custom_args.add_argument('--hue', type=int, choices=range(0, 361), help='generate theme from Hue prompt', metavar='(0 - 360)') custom_args.add_argument('--name', nargs='?', help='theme name (optional)') - # Add arguments for optional theme tweaks + # Optional theme tweaks color_tweaks = parser.add_argument_group('Optional theme tweaks') color_tweaks.add_argument('--mode', choices=['light', 'dark'], help='select a specific theme mode to install') color_tweaks.add_argument('--sat', type=int, choices=range(0, 251), help='custom color saturation (<100%% - reduce, >100%% - increase)', metavar='(0 - 250)%') - # Add arguments for panel tweaks + # Panel tweaks panel_args = parser.add_argument_group('Panel tweaks') panel_args.add_argument('-Pds', '--panel_default_size', action='store_true', help='set default panel size') panel_args.add_argument('-Pnp', '--panel_no_pill', action='store_true', help='remove panel button background') panel_args.add_argument('-Ptc', '--panel_text_color', type=str, nargs='?', help='custom panel HEX(A) text color') + + # Overview tweaks + overview_args = parser.add_argument_group('Overview tweaks') + overview_args.add_argument('--launchpad', action='store_true', help='change Show Apps icon to MacOS Launchpad icon') args = parser.parse_args() @@ -260,6 +267,7 @@ def main(): generate_file("./css/", gnome_shell_css) + # panel tweaks if args.panel_default_size: concatenate_files("./tweaks/panel/def-size.css", gnome_shell_css) @@ -274,6 +282,11 @@ def main(): color: rgba(" + ', '.join(map(str, hex_to_rgba(args.panel_text_color))) + ");\ }") + # dock tweaks + if args.launchpad: + concatenate_files("./tweaks/launchpad/launchpad.css", gnome_shell_css) + os.system("cp ./tweaks/launchpad/launchpad.png ./gnome-shell/") + # Process the arguments and perform the installation accordingly if args.remove: remove_files() @@ -311,3 +324,5 @@ if __name__ == "__main__": main() os.remove(gnome_shell_css) + if os.path.exists("./gnome-shell/launchpad.png"): + os.remove("./gnome-shell/launchpad.png") diff --git a/readme-images/tweaks/dash-with-launchpad.png b/readme-images/tweaks/dash-with-launchpad.png new file mode 100644 index 0000000000000000000000000000000000000000..7d71d06df668b60ffe990862923675c4f871361c GIT binary patch literal 30610 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%0Ai5JS)`oKgTOwjtfI9u;= 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 bc>?|qlIv=Ii0@s$00000NkvXXu0mjfQ1bmU literal 0 HcmV?d00001