Open bayazidbh opened 2 years ago
Yeah, Endless OS, GNOME OS, and such is kinda tricky to handle. Have you managed to install it manually, anyway?
@vinceliuice Yeah, I did that after looking around at the cloned git folder. Extracted WhiteSur-dark-solid-3-38. Though I wasn't sure if I installed it correctly as some things didn't look right and it didn't get applied to Settings and Nautilus.
@rivanfebrian123 In the end I just temporarily created a Toolbox container to run the script, before deleting it after that. At the same time, I also installed gnome-tweaks via the Toolbox before that, as well as manually installed user-themes extension (and gsconnect while I'm at it) which required a restart to get it picked up by the flatpak Gnome Extensions app. It was only after I did that, that I installed the theme. Works fine from my testing on Endless OS but definitely a hassle.
I think the installation instruction could at least be updated to account for read-only systems like Endless, Silverblue, and, soon, SteamOS (though at least that one has a Dev Mode unlock and Silverblue/Kinoite has rpm-ostree to install things). And ideally, we could get a proper flathub / flathub-beta release for both the GTK theme and the Qt theme (though apparently recently Kvantum was released for Flatpak as well? Not sure how that one works yet).
Well, to be honest, I have no proper knowledge about containerized OS like Endless. Can you teach me how to install this theme on Endless (and the other containerized OSes), so me or @vinceliuice can implement the installer for you?
@rivanfebrian123 well at first I tried to follow this guide after unzipping the gnome3.38 dark-solid folder to .themes, but it didn't work right - the settings app, for example, remained the default theme.
In the end, just to make sure that all the themes and tweaks are placed correctly, I had to use Toolbox:
$ toolbox create
$ toolbox enter {container-name}
$ ./WhiteSur-gtk-theme/install.sh
After which it requires a full update of the container image used to create the toolbox container. But after that, the themes seems fine.
As the fail message said above, the problem was that Endless don't have sassc
libglib2.0-dev-bin
libxml2-utils
as well as dialog
pre-installed. The script tried to apt install
it anyways but it naturally fails because the system's root is read-only. Once it fails, it just exits with the above message.
If we don't want to make user of the theme have to install a toolbox container (which requires downloading a 500MB container image), then I would say that if the script detect it fails installing dependencies, it'll default to using standard tools like unzip
, mv
or cp
, cat
or tee
, and gsettings
.
Some app don't use the theme, it's not because it install fails, maybe it's a flatpak/snap app
I know about that - and for the most part, flatpak theming is fine if I copy-paste the gtk-3.0 (and sometimes gtk-2.0 or gtk-4.0) folders to their ~/.var/app/
config folders. So it was actually easier to figure out how to make it work with Flatpak apps since I know what to do.
The Settings I'm pretty sure is a system app. And it does work fine with non-Flatpak apps I install it using a toolbox container. It's not a problem of the theme not working, it's just that the installer looks for packages that aren't there, and naturally can't be installed because system is read-only, then it just exits. So that leaves manually copying everything, or using toolbox.
I haven't tested with putting the theme in ~/.config
though, since most guides says to put themes in ~/.themes
which from my understanding seems what gsettings
read for themes (and gnome-tweaks-tool? which also isn't installed, and not available as flatpak). Not sure how to do all the other tweaks from command line, which is why I just gave up and used toolbox.
If the system is read-only, then I also don't know how to do with that
/home
is writeable, as does several other folders like /var/
for flatpak. The installer managed to delete the theme just fine. It just cannot proceed to install the theme because apt
couldn't install the dependencies wanted.
Here is me running the installer script again after a successful install using toolbox:
fenglengshun@endless:~$ ./WhiteSur-gtk-theme/install.sh
[1;33mRemoving the old 'WhiteSur' themes...
[0m
[1;36mInstalling 'WhiteSur' themes in '/sysroot/home/bayazidbh/.themes'...[0m
[1;36m--->>> GTK | GNOME Shell | Cinnamon | Metacity | XFWM | Plank <<<---[0m
[1;36mColor variants : dark;light[0m
[1;36mTheme variants : default[0m
[1;36mOpacity variants : normal;solid[0m
[1;36mAlt variants : normal[0m
[1;36mIcon variant : standard[0m
[1;36mNautilus variant : stable[0m
[1;33mDEPS: 'glib2.0', 'sassc', and 'xmllint' are required for theme installation.[0m
[1;36mDEPS: Checking your internet connection...[0m
[1;33mExecuting 'apt update -y...' as root[0m
[1;35m Authentication is required[0m [1;32m(Please input your password):[0m
Hit:1 https://deb.debian.org/debian bullseye InRelease
Get:2 https://security.debian.org bullseye-security InRelease [44.1 kB]
Get:3 https://deb.debian.org/debian bullseye-updates InRelease [39.4 kB]
Get:4 https://deb.endlessos.org/debian eos4.0 InRelease [12.4 kB]
Get:5 https://deb.endlessos.org/debian eos4.0/endless Sources [20.5 kB]
Get:6 https://deb.endlessos.org/debian eos4.0/endless amd64 Packages [68.3 kB]
Fetched 185 kB in 1s (128 kB/s)
Reading package lists...
Building dependency tree...
Reading state information...
17 packages can be upgraded. Run 'apt list --upgradable' to see them.
[1;33mExecuting 'apt install -y sassc libglib2.0-dev...' as root[0m
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
libsass1
The following NEW packages will be installed:
libglib2.0-dev-bin libsass1 libxml2-utils sassc
0 upgraded, 4 newly installed, 0 to remove and 17 not upgraded.
Need to get 0 B/1,003 kB of archives.
After this operation, 4,052 kB of additional disk space will be used.
dpkg: error: unable to access the dpkg database directory /var/lib/dpkg: Read-only file system
[1;33m
APT: Your repo lists might be broken[0m
[1;36mAPT: Full-cleaning your repo lists and try again...
[0m
[1;33mExecuting 'apt clean -y...' as root[0m
[1;33mExecuting 'rm -rf /var/lib/apt/lists...' as root[0m
[1;33mExecuting 'apt update -y...' as root[0m
Get:1 https://deb.debian.org/debian bullseye InRelease [116 kB]
Get:2 https://deb.endlessos.org/debian eos4.0 InRelease [12.4 kB]
Get:3 https://security.debian.org bullseye-security InRelease [44.1 kB]
Get:4 https://deb.debian.org/debian bullseye-updates InRelease [39.4 kB]
Get:5 https://security.debian.org bullseye-security/main Sources [68.7 kB]
Get:6 https://security.debian.org bullseye-security/main amd64 Packages [97.5 kB]
Get:7 https://security.debian.org bullseye-security/main Translation-en [60.5 kB]
Get:8 https://deb.debian.org/debian bullseye/main Sources [8,617 kB]
Get:9 https://deb.endlessos.org/debian eos4.0/core Sources [34.1 kB]
Get:10 https://deb.endlessos.org/debian eos4.0/endless Sources [20.5 kB]
Get:11 https://deb.endlessos.org/debian eos4.0/core amd64 Packages [132 kB]
Get:12 https://deb.endlessos.org/debian eos4.0/endless amd64 Packages [68.3 kB]
Get:13 https://deb.debian.org/debian bullseye/non-free Sources [80.5 kB]
Get:14 https://deb.debian.org/debian bullseye/contrib Sources [43.0 kB]
Get:15 https://deb.debian.org/debian bullseye/main amd64 Packages [8,180 kB]
Get:16 https://deb.debian.org/debian bullseye/main Translation-en [6,241 kB]
Get:17 https://deb.debian.org/debian bullseye/contrib amd64 Packages [50.5 kB]
Get:18 https://deb.debian.org/debian bullseye/contrib Translation-en [46.9 kB]
Get:19 https://deb.debian.org/debian bullseye/non-free amd64 Packages [93.8 kB]
Get:20 https://deb.debian.org/debian bullseye/non-free Translation-en [91.5 kB]
Get:21 https://deb.debian.org/debian bullseye-updates/main Sources [1,868 B]
Get:22 https://deb.debian.org/debian bullseye-updates/main amd64 Packages [2,592 B]
Get:23 https://deb.debian.org/debian bullseye-updates/main Translation-en [2,343 B]
Fetched 24.1 MB in 8s (3,179 kB/s)
Reading package lists...
Building dependency tree...
Reading state information...
17 packages can be upgraded. Run 'apt list --upgradable' to see them.
[1;33mExecuting 'apt install -y sassc libglib2.0-dev...' as root[0m
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
libsass1
The following NEW packages will be installed:
libglib2.0-dev-bin libsass1 libxml2-utils sassc
0 upgraded, 4 newly installed, 0 to remove and 17 not upgraded.
Need to get 1,003 kB of archives.
After this operation, 4,052 kB of additional disk space will be used.
Get:1 https://deb.debian.org/debian bullseye/main amd64 libglib2.0-dev-bin amd64 2.66.8-1 [179 kB]
Get:2 https://deb.debian.org/debian bullseye/main amd64 libsass1 amd64 3.6.4+20201122-1 [705 kB]
Get:3 https://deb.debian.org/debian bullseye/main amd64 libxml2-utils amd64 2.9.10+dfsg-6.7 [109 kB]
Get:4 https://deb.debian.org/debian bullseye/main amd64 sassc amd64 3.6.1+20201027-1 [10.5 kB]
Fetched 1,003 kB in 0s (3,509 kB/s)
dpkg: error: unable to access the dpkg database directory /var/lib/dpkg: Read-only file system
[H[2J[3J [1;31m
Oops! Operation failed...
[0m
[1;31m=========== ERROR LOG ===========[0m
[1;31m >>>
[1;31m >>> WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
[1;31m >>>
[1;31m >>>
[1;31m >>> WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
[1;31m >>>
[1;31m >>> W: Not using locking for read only lock file /var/lib/dpkg/lock-frontend
[1;31m >>> W: Not using locking for read only lock file /var/lib/dpkg/lock
[1;31m >>> E: Sub-process /usr/bin/dpkg returned an error code (2)
[1;31m >>>
[1;31m >>> WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
[1;31m >>>
[1;31m >>>
[1;31m >>> WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
[1;31m >>>
[1;31m >>>
[1;31m >>> WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
[1;31m >>>
[1;31m >>> W: Not using locking for read only lock file /var/lib/dpkg/lock-frontend
[1;31m >>> W: Not using locking for read only lock file /var/lib/dpkg/lock
[1;31m >>> E: Sub-process /usr/bin/dpkg returned an error code (2)
[1;31m
=========== ERROR INFO ==========[0m
[1;31mFOUND :[0m
[1;31m >>> install.sh[0m
[1;31m >>> lib-core.sh[0m
[1;31m >>> lib-install.sh[0m
[1;31mSNIPPET:
>>> apt install -y sassc libglib2.0-dev-bin libxml2-utils[0m
[1;31mTRACE :[0m
[1;31m >>> signal_error[0m
[1;31m >>> prepare_install_apt_packages[0m
[1;31m >>> install_theme_deps[0m
[1;31m >>> install_themes[0m
[1;31m >>> main[0m
[1;31m
=========== SYSTEM INFO =========[0m
[1;31mDISTRO : ubuntu debian;endless;211122-034749;4.0.0[0m
[1;31mSUDO : no[0m
[1;31mGNOME : old[0m
[1;31mREPO : 2021-11-30T15:50:07+0700
[0m
[1;36mHINT: Try install depends to fix this: sudo apt install sassc libglib2.0-dev-bin libxml2-utils
[0m
[1;36mHINT: You can google or report to us the info above
[0m
[1;36mhttps://github.com/vinceliuice/WhiteSur-gtk-theme/issues
[0m
[?12l[?25h
bayazidbh@endless:~$ toolbox create
Image required to create toolbox container.
Download registry.fedoraproject.org/f32/fedora-toolbox:32 (500MB)? [y/N]: y
Created container: fedora-toolbox-32
Enter with: toolbox enter
bayazidbh@endless:~$ toolbox enter fedora-toolbox-32
bayazidbh@toolbox:~$ ./WhiteSur-gtk-theme/install.sh -c dark -o normal
Removing the old 'WhiteSur' themes...
Installing 'WhiteSur' themes in '/sysroot/home/bayazidbh/.themes'...
--->>> GTK | GNOME Shell | Cinnamon | Metacity | XFWM | Plank <<<---
Color variants : dark
Theme variants : default
Opacity variants : normal
Alt variants : normal
Icon variant : standard
Nautilus variant : stable
DEPS: 'glib2.0', 'sassc', and 'xmllint' are required for theme installation.
DEPS: Checking your internet connection...
Executing 'dnf install -y sassc glib2-devel li...' as root
Authentication is required (Please input your password):
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
Fedora 32 openh264 (From Cisco) - x86_64 1.6 kB/s | 2.5 kB 00:01
Fedora Modular 32 - x86_64 1.7 MB/s | 4.9 MB 00:02
Fedora Modular 32 - x86_64 - Updates 126 kB/s | 4.6 MB 00:37
Fedora 32 - x86_64 - Updates 786 kB/s | 30 MB 00:39
Fedora 32 - x86_64 1.2 MB/s | 71 MB 01:00
Package libxml2-2.9.10-8.fc32.x86_64 is already installed.
Dependencies resolved.
============================================================================================================================================
Package Architecture Version Repository Size
============================================================================================================================================
Installing:
glib2-devel x86_64 2.64.6-1.fc32 updates 460 k
sassc x86_64 3.6.1-3.fc32 fedora 18 k
Upgrading:
pcre2 x86_64 10.36-4.fc32 updates 233 k
pcre2-syntax noarch 10.36-4.fc32 updates 142 k
Installing dependencies:
libblkid-devel x86_64 2.35.2-1.fc32 updates 16 k
libffi-devel x86_64 3.1-24.fc32 fedora 24 k
libmount-devel x86_64 2.35.2-1.fc32 updates 18 k
libsass x86_64 3.6.3-2.fc32 fedora 808 k
libselinux-devel x86_64 3.0-5.fc32 updates 115 k
libsepol-devel x86_64 3.0-4.fc32 updates 40 k
pcre-cpp x86_64 8.44-2.fc32 updates 27 k
pcre-devel x86_64 8.44-2.fc32 updates 471 k
pcre-utf16 x86_64 8.44-2.fc32 updates 185 k
pcre-utf32 x86_64 8.44-2.fc32 updates 175 k
pcre2-devel x86_64 10.36-4.fc32 updates 476 k
pcre2-utf16 x86_64 10.36-4.fc32 updates 212 k
pcre2-utf32 x86_64 10.36-4.fc32 updates 199 k
zlib-devel x86_64 1.2.11-21.fc32 fedora 45 k
Transaction Summary
============================================================================================================================================
Install 16 Packages
Upgrade 2 Packages
Total download size: 3.6 M
Downloading Packages:
(1/18): libmount-devel-2.35.2-1.fc32.x86_64.rpm 53 kB/s | 18 kB 00:00
(2/18): libblkid-devel-2.35.2-1.fc32.x86_64.rpm 47 kB/s | 16 kB 00:00
(3/18): libselinux-devel-3.0-5.fc32.x86_64.rpm 1.6 MB/s | 115 kB 00:00
(4/18): libsepol-devel-3.0-4.fc32.x86_64.rpm 586 kB/s | 40 kB 00:00
(5/18): glib2-devel-2.64.6-1.fc32.x86_64.rpm 927 kB/s | 460 kB 00:00
(6/18): pcre-cpp-8.44-2.fc32.x86_64.rpm 301 kB/s | 27 kB 00:00
(7/18): pcre-devel-8.44-2.fc32.x86_64.rpm 2.9 MB/s | 471 kB 00:00
(8/18): pcre-utf32-8.44-2.fc32.x86_64.rpm 860 kB/s | 175 kB 00:00
(9/18): pcre-utf16-8.44-2.fc32.x86_64.rpm 873 kB/s | 185 kB 00:00
(10/18): pcre2-devel-10.36-4.fc32.x86_64.rpm 2.4 MB/s | 476 kB 00:00
(11/18): pcre2-utf16-10.36-4.fc32.x86_64.rpm 1.8 MB/s | 212 kB 00:00
(12/18): pcre2-utf32-10.36-4.fc32.x86_64.rpm 1.7 MB/s | 199 kB 00:00
(13/18): libffi-devel-3.1-24.fc32.x86_64.rpm 402 kB/s | 24 kB 00:00
(14/18): zlib-devel-1.2.11-21.fc32.x86_64.rpm 752 kB/s | 45 kB 00:00
(15/18): sassc-3.6.1-3.fc32.x86_64.rpm 227 kB/s | 18 kB 00:00
(16/18): pcre2-syntax-10.36-4.fc32.noarch.rpm 1.3 MB/s | 142 kB 00:00
(17/18): pcre2-10.36-4.fc32.x86_64.rpm 1.5 MB/s | 233 kB 00:00
(18/18): libsass-3.6.3-2.fc32.x86_64.rpm 3.3 MB/s | 808 kB 00:00
--------------------------------------------------------------------------------------------------------------------------------------------
Total 1.2 MB/s | 3.6 MB 00:02
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Upgrading : pcre2-syntax-10.36-4.fc32.noarch 1/20
Installing : pcre2-utf16-10.36-4.fc32.x86_64 2/20
Installing : pcre2-utf32-10.36-4.fc32.x86_64 3/20
Upgrading : pcre2-10.36-4.fc32.x86_64 4/20
Installing : pcre2-devel-10.36-4.fc32.x86_64 5/20
Installing : zlib-devel-1.2.11-21.fc32.x86_64 6/20
Installing : libsass-3.6.3-2.fc32.x86_64 7/20
Installing : libffi-devel-3.1-24.fc32.x86_64 8/20
Installing : pcre-utf32-8.44-2.fc32.x86_64 9/20
Installing : pcre-utf16-8.44-2.fc32.x86_64 10/20
Installing : pcre-cpp-8.44-2.fc32.x86_64 11/20
Installing : pcre-devel-8.44-2.fc32.x86_64 12/20
Installing : libsepol-devel-3.0-4.fc32.x86_64 13/20
Installing : libselinux-devel-3.0-5.fc32.x86_64 14/20
Installing : libblkid-devel-2.35.2-1.fc32.x86_64 15/20
Installing : libmount-devel-2.35.2-1.fc32.x86_64 16/20
Installing : glib2-devel-2.64.6-1.fc32.x86_64 17/20
Installing : sassc-3.6.1-3.fc32.x86_64 18/20
Cleanup : pcre2-10.36-1.fc32.x86_64 19/20
Cleanup : pcre2-syntax-10.36-1.fc32.noarch 20/20
Running scriptlet: pcre2-syntax-10.36-1.fc32.noarch 20/20
Verifying : glib2-devel-2.64.6-1.fc32.x86_64 1/20
Verifying : libblkid-devel-2.35.2-1.fc32.x86_64 2/20
Verifying : libmount-devel-2.35.2-1.fc32.x86_64 3/20
Verifying : libselinux-devel-3.0-5.fc32.x86_64 4/20
Verifying : libsepol-devel-3.0-4.fc32.x86_64 5/20
Verifying : pcre-cpp-8.44-2.fc32.x86_64 6/20
Verifying : pcre-devel-8.44-2.fc32.x86_64 7/20
Verifying : pcre-utf16-8.44-2.fc32.x86_64 8/20
Verifying : pcre-utf32-8.44-2.fc32.x86_64 9/20
Verifying : pcre2-devel-10.36-4.fc32.x86_64 10/20
Verifying : pcre2-utf16-10.36-4.fc32.x86_64 11/20
Verifying : pcre2-utf32-10.36-4.fc32.x86_64 12/20
Verifying : libffi-devel-3.1-24.fc32.x86_64 13/20
Verifying : libsass-3.6.3-2.fc32.x86_64 14/20
Verifying : sassc-3.6.1-3.fc32.x86_64 15/20
Verifying : zlib-devel-1.2.11-21.fc32.x86_64 16/20
Verifying : pcre2-10.36-4.fc32.x86_64 17/20
Verifying : pcre2-10.36-1.fc32.x86_64 18/20
Verifying : pcre2-syntax-10.36-4.fc32.noarch 19/20
Verifying : pcre2-syntax-10.36-1.fc32.noarch 20/20
Upgraded:
pcre2-10.36-4.fc32.x86_64 pcre2-syntax-10.36-4.fc32.noarch
Installed:
glib2-devel-2.64.6-1.fc32.x86_64 libblkid-devel-2.35.2-1.fc32.x86_64 libffi-devel-3.1-24.fc32.x86_64 libmount-devel-2.35.2-1.fc32.x86_64
libsass-3.6.3-2.fc32.x86_64 libselinux-devel-3.0-5.fc32.x86_64 libsepol-devel-3.0-4.fc32.x86_64 pcre-cpp-8.44-2.fc32.x86_64
pcre-devel-8.44-2.fc32.x86_64 pcre-utf16-8.44-2.fc32.x86_64 pcre-utf32-8.44-2.fc32.x86_64 pcre2-devel-10.36-4.fc32.x86_64
pcre2-utf16-10.36-4.fc32.x86_64 pcre2-utf32-10.36-4.fc32.x86_64 sassc-3.6.1-3.fc32.x86_64 zlib-devel-1.2.11-21.fc32.x86_64
Complete!
••••
Done!
Run './WhiteSur-gtk-theme/install.sh --help' to explore more customization features!
(the theme works just fine even after deleting the toolbox and rebooting)
My take on it is that, in case it fails installing, it should have a failback mode using standard utils. A manual install seems to be possible if you know where to put things in and what commands to use.
Or, as a stop-gap, if the package install fails, say something like "You might be running on a read-only system! Please install using toolbox!" or something like that. It isn't ideal, because installing 500MB container just for a theme is absurd, but at least something to let users know of an alternative.
I personally think it's just a matter of time before we see an official immutable remix officially from Ubuntu (if there isn't one already), and overall it's just on the rise in general, so I think it's a scenario that should be covered. But this isn't my project - so I'll leave the decision to you.
Thanks for your feedback!
Currently testing with Endless OS. I got an error due to inability to install dependencies. I'll include the log below, but would it be possible to either use a simpler script or create a simple nested ".themes" and ".icons" .zip so that we could simple just extract it at $HOME ? I've manually copy-pasted things to .themes and .icons, though I'm not sure if I'm using the right folders, but for the most part it works with
gsettings set org.gnome.desktop.interface gtk-theme WhiteSur-dark-solid
and set icon-theme.I would rather not waste bandwidth and disk space just to use Toolbox to install the themes, and I'm not sure if that'll even work in the first place.