mirror of
https://github.com/imarkoff/Marble-shell-theme.git
synced 2025-09-18 09:17:54 -07:00
- Fixes #33, #19; - Show user-friendly message if glib2-devel is not installed; - Use tempfile for temp folder; - Little code improvements; - Tried to fix not passing test.
34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
import subprocess
|
|
|
|
def gnome_version() -> str | None:
|
|
"""
|
|
Get gnome-shell version
|
|
"""
|
|
|
|
try:
|
|
output = subprocess.check_output(['gnome-shell', '--version'], text=True).strip()
|
|
print(output)
|
|
return output.split(' ')[2]
|
|
except subprocess.CalledProcessError:
|
|
return None
|
|
|
|
def apply_gnome_theme(theme=None) -> bool:
|
|
"""
|
|
Apply gnome-shell theme
|
|
:param theme: theme name
|
|
"""
|
|
|
|
try:
|
|
if theme is None:
|
|
current_theme = subprocess.check_output(['dconf', 'read', '/org/gnome/shell/extensions/user-theme/name'], text=True).strip().strip("'")
|
|
if current_theme.startswith("Marble"):
|
|
theme = current_theme
|
|
else:
|
|
return False
|
|
|
|
subprocess.run(['dconf', 'reset', '/org/gnome/shell/extensions/user-theme/name'], check=True)
|
|
subprocess.run(['dconf', 'write', '/org/gnome/shell/extensions/user-theme/name', f"'{theme}'"], check=True)
|
|
print(f"Theme '{theme}' applied.")
|
|
except subprocess.CalledProcessError:
|
|
return False
|
|
return True |