implement color-scheme option

main
mirkobrombin 2 years ago
parent f2aa57a25b
commit 8b20b7d754

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<schemalist gettext-domain="vanilla-first-setup"> <schemalist gettext-domain="vanilla-first-setup">
<schema id="io.github.vanilla-os.FirstSetup" path="/pm/mirko/FirstSetup/"> <schema id="io.github.vanilla-os.FirstSetup" path="/io/github/vanilla-os/FirstSetup/">
</schema> </schema>
</schemalist> </schemalist>

@ -1,24 +1,24 @@
3f84a85bd8dcb22475ca07a2d69063ac usr/bin/vanilla-first-setup 3f84a85bd8dcb22475ca07a2d69063ac usr/bin/vanilla-first-setup
e53214a91cfee2c537138e64d0d2357e usr/bin/vanilla-first-setup-processor e53214a91cfee2c537138e64d0d2357e usr/bin/vanilla-first-setup-processor
f62ae2de8dd39b794fa94951db288612 usr/share/appdata/pm.mirko.FirstSetup.appdata.xml f62ae2de8dd39b794fa94951db288612 usr/share/appdata/io.github.vanilla-os.FirstSetup.appdata.xml
572c7ac7342d5e999af8cf5fc99fc7ba usr/share/applications/pm.mirko.FirstSetup.desktop 572c7ac7342d5e999af8cf5fc99fc7ba usr/share/applications/io.github.vanilla-os.FirstSetup.desktop
632c1335ca45192e9b887308023c156c usr/share/doc/vanilla-first-setup/changelog.gz 632c1335ca45192e9b887308023c156c usr/share/doc/vanilla-first-setup/changelog.gz
62ed186d7529beecf72bcf7c48b53a76 usr/share/doc/vanilla-first-setup/copyright 62ed186d7529beecf72bcf7c48b53a76 usr/share/doc/vanilla-first-setup/copyright
3ff815595db45e9dcd137d06f9d8718c usr/share/glib-2.0/schemas/pm.mirko.FirstSetup.gschema.xml 3ff815595db45e9dcd137d06f9d8718c usr/share/glib-2.0/schemas/io.github.vanilla-os.FirstSetup.gschema.xml
a3cd0585c74138a988a7225dd57fc171 usr/share/icons/hicolor/scalable/apps/pm.mirko.FirstSetup.svg a3cd0585c74138a988a7225dd57fc171 usr/share/icons/hicolor/scalable/apps/io.github.vanilla-os.FirstSetup.svg
a3cd0585c74138a988a7225dd57fc171 usr/share/icons/hicolor/symbolic/apps/pm.mirko.FirstSetup-symbolic.svg a3cd0585c74138a988a7225dd57fc171 usr/share/icons/hicolor/symbolic/apps/io.github.vanilla-os.FirstSetup-symbolic.svg
75fdbd9173045311c140056e34292035 usr/share/pm.mirko.FirstSetup/vanilla-first-setup.gresource 75fdbd9173045311c140056e34292035 usr/share/io.github.vanilla-os.FirstSetup/vanilla-first-setup.gresource
d41d8cd98f00b204e9800998ecf8427e usr/share/pm.mirko.FirstSetup/vanilla_first_setup/__init__.py d41d8cd98f00b204e9800998ecf8427e usr/share/io.github.vanilla-os.FirstSetup/vanilla_first_setup/__init__.py
cacabd792fe13148f625e90b1d63e343 usr/share/pm.mirko.FirstSetup/vanilla_first_setup/main.py cacabd792fe13148f625e90b1d63e343 usr/share/io.github.vanilla-os.FirstSetup/vanilla_first_setup/main.py
d41d8cd98f00b204e9800998ecf8427e usr/share/pm.mirko.FirstSetup/vanilla_first_setup/models/__init__.py d41d8cd98f00b204e9800998ecf8427e usr/share/io.github.vanilla-os.FirstSetup/vanilla_first_setup/models/__init__.py
655cc3575fd9547bcc28605a40adecb4 usr/share/pm.mirko.FirstSetup/vanilla_first_setup/models/config.py 655cc3575fd9547bcc28605a40adecb4 usr/share/io.github.vanilla-os.FirstSetup/vanilla_first_setup/models/config.py
19a9c8ef77a0b94b9bd9da204bf619be usr/share/pm.mirko.FirstSetup/vanilla_first_setup/models/preset.py 19a9c8ef77a0b94b9bd9da204bf619be usr/share/io.github.vanilla-os.FirstSetup/vanilla_first_setup/models/preset.py
d41d8cd98f00b204e9800998ecf8427e usr/share/pm.mirko.FirstSetup/vanilla_first_setup/utils/__init__.py d41d8cd98f00b204e9800998ecf8427e usr/share/io.github.vanilla-os.FirstSetup/vanilla_first_setup/utils/__init__.py
24bb5bd4e6d6262c1b454b3656ab24e0 usr/share/pm.mirko.FirstSetup/vanilla_first_setup/utils/apt.py 24bb5bd4e6d6262c1b454b3656ab24e0 usr/share/io.github.vanilla-os.FirstSetup/vanilla_first_setup/utils/apt.py
4d805e042731d213eb5139530d8aa638 usr/share/pm.mirko.FirstSetup/vanilla_first_setup/utils/checks.py 4d805e042731d213eb5139530d8aa638 usr/share/io.github.vanilla-os.FirstSetup/vanilla_first_setup/utils/checks.py
7823cbc7898533c975d6a44bc5805480 usr/share/pm.mirko.FirstSetup/vanilla_first_setup/utils/configurator.py 7823cbc7898533c975d6a44bc5805480 usr/share/io.github.vanilla-os.FirstSetup/vanilla_first_setup/utils/configurator.py
d757da1b73916417336840cc67295681 usr/share/pm.mirko.FirstSetup/vanilla_first_setup/utils/flatpak.py d757da1b73916417336840cc67295681 usr/share/io.github.vanilla-os.FirstSetup/vanilla_first_setup/utils/flatpak.py
f2595187532f527875795277675234a5 usr/share/pm.mirko.FirstSetup/vanilla_first_setup/utils/processor.py f2595187532f527875795277675234a5 usr/share/io.github.vanilla-os.FirstSetup/vanilla_first_setup/utils/processor.py
0ebff648510796f3d38e84739469f97e usr/share/pm.mirko.FirstSetup/vanilla_first_setup/utils/run_async.py 0ebff648510796f3d38e84739469f97e usr/share/io.github.vanilla-os.FirstSetup/vanilla_first_setup/utils/run_async.py
ebbd22d7a8847f604900387b8c9d86a2 usr/share/pm.mirko.FirstSetup/vanilla_first_setup/utils/snap.py ebbd22d7a8847f604900387b8c9d86a2 usr/share/io.github.vanilla-os.FirstSetup/vanilla_first_setup/utils/snap.py
f07c8b3e157f197d2cefd0a89862b3c1 usr/share/pm.mirko.FirstSetup/vanilla_first_setup/window.py f07c8b3e157f197d2cefd0a89862b3c1 usr/share/io.github.vanilla-os.FirstSetup/vanilla_first_setup/window.py

@ -23,7 +23,7 @@ import locale
import gettext import gettext
VERSION = '0.0.1' VERSION = '0.0.1'
pkgdatadir = '/usr/share/pm.mirko.FirstSetup' pkgdatadir = '/usr/share/io.github.vanilla-os.FirstSetup'
localedir = '/usr/share/locale' localedir = '/usr/share/locale'
sys.path.insert(1, pkgdatadir) sys.path.insert(1, pkgdatadir)

@ -24,7 +24,7 @@ import gettext
import argparse import argparse
VERSION = '0.0.1' VERSION = '0.0.1'
pkgdatadir = '/usr/share/pm.mirko.FirstSetup' pkgdatadir = '/usr/share/io.github.vanilla-os.FirstSetup'
localedir = '/usr/share/locale' localedir = '/usr/share/locale'
sys.path.insert(1, pkgdatadir) sys.path.insert(1, pkgdatadir)

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<component type="desktop"> <component type="desktop">
<id>pm.mirko.FirstSetup.desktop</id> <id>io.github.vanilla-os.FirstSetup.desktop</id>
<metadata_license>CC0-1.0</metadata_license> <metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0-only</project_license> <project_license>GPL-3.0-only</project_license>
<name translatable="no">Vanilla OS First Setup</name> <name translatable="no">Vanilla OS First Setup</name>
@ -10,7 +10,7 @@
<p>No description</p> <p>No description</p>
</description> </description>
<screenshots/> <screenshots/>
<translation type="gettext">pm.mirko.FirstSetup</translation> <translation type="gettext">io.github.vanilla-os.FirstSetup</translation>
<content_rating type="oars-1.1"/> <content_rating type="oars-1.1"/>
<recommends> <recommends>
<control>pointing</control> <control>pointing</control>

@ -1,7 +1,7 @@
[Desktop Entry] [Desktop Entry]
Name=Vanilla OS First Setup Name=Vanilla OS First Setup
Exec=vanilla-first-setup Exec=vanilla-first-setup
Icon=pm.mirko.FirstSetup Icon=io.github.vanilla-os.FirstSetup
Terminal=false Terminal=false
Type=Application Type=Application
Categories=GTK; Categories=GTK;

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<schemalist gettext-domain="vanilla-first-setup"> <schemalist gettext-domain="vanilla-first-setup">
<schema id="pm.mirko.FirstSetup" path="/pm/mirko/FirstSetup/"> <schema id="io.github.vanilla-os.FirstSetup" path="/io/github/vanilla-os/FirstSetup/">
</schema> </schema>
</schemalist> </schemalist>

@ -31,7 +31,7 @@ class FirstSetupApplication(Adw.Application):
"""The main application singleton class.""" """The main application singleton class."""
def __init__(self): def __init__(self):
super().__init__(application_id='pm.mirko.FirstSetup', super().__init__(application_id='io.github.vanilla-os.FirstSetup',
flags=Gio.ApplicationFlags.FLAGS_NONE) flags=Gio.ApplicationFlags.FLAGS_NONE)
self.create_action('quit', self.close, ['<primary>q']) self.create_action('quit', self.close, ['<primary>q'])

@ -22,7 +22,7 @@ from vanilla_first_setup.utils.processor import Processor
from vanilla_first_setup.utils.run_async import RunAsync from vanilla_first_setup.utils.run_async import RunAsync
@Gtk.Template(resource_path='/pm/mirko/FirstSetup/gtk/window.ui') @Gtk.Template(resource_path='/io/github/vanilla-os/FirstSetup/gtk/window.ui')
class FirstSetupWindow(Adw.ApplicationWindow): class FirstSetupWindow(Adw.ApplicationWindow):
__gtype_name__ = 'FirstSetupWindow' __gtype_name__ = 'FirstSetupWindow'

@ -17,7 +17,7 @@
from gi.repository import Gtk, Adw from gi.repository import Gtk, Adw
@Gtk.Template(resource_path='/pm/mirko/FirstSetup/gtk/dialog-prop-nvidia.ui') @Gtk.Template(resource_path='/io/github/vanilla-os/FirstSetup/gtk/dialog-prop-nvidia.ui')
class ProprietaryDriverDialog(Adw.Window): class ProprietaryDriverDialog(Adw.Window):
__gtype_name__ = 'ProprietaryDriverDialog' __gtype_name__ = 'ProprietaryDriverDialog'

@ -17,7 +17,7 @@
from gi.repository import Gtk, Adw from gi.repository import Gtk, Adw
@Gtk.Template(resource_path='/pm/mirko/FirstSetup/gtk/dialog-subsystem.ui') @Gtk.Template(resource_path='/io/github/vanilla-os/FirstSetup/gtk/dialog-subsystem.ui')
class SubSystemDialog(Adw.Window): class SubSystemDialog(Adw.Window):
__gtype_name__ = 'SubSystemDialog' __gtype_name__ = 'SubSystemDialog'

@ -40,7 +40,7 @@
<property name="valign">fill</property> <property name="valign">fill</property>
<property name="hexpand">true</property> <property name="hexpand">true</property>
<child> <child>
<object class="GtkButton" id="btn_start"> <object class="GtkButton" id="btn_go_theme">
<property name="label">Let's Start</property> <property name="label">Let's Start</property>
<property name="halign">center</property> <property name="halign">center</property>
<style> <style>
@ -52,6 +52,65 @@
</object> </object>
</child> </child>
<!-- Light/Dark -->
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="halign">fill</property>
<property name="valign">center</property>
<property name="hexpand">true</property>
<child>
<object class="GtkBox">
<property name="valign">center</property>
<property name="spacing">10</property>
<property name="halign">center</property>
<child>
<object class="GtkCheckButton" id="btn_light">
<property name="tooltip-text">Light</property>
<property name="halign">center</property>
<property name="active">True</property>
<style>
<class name="theme-selector" />
<class name="light" />
<class name="card" />
</style>
</object>
</child>
<child>
<object class="GtkCheckButton" id="btn_dark">
<property name="tooltip-text">Dark</property>
<property name="halign">center</property>
<style>
<class name="theme-selector" />
<class name="dark" />
<class name="card" />
</style>
</object>
</child>
</object>
</child>
<child>
<object class="AdwStatusPage">
<property name="title">Light or Dark?</property>
<property name="description">Choose your preferred theme.</property>
<property name="halign">fill</property>
<property name="valign">fill</property>
<property name="hexpand">true</property>
<child>
<object class="GtkButton" id="btn_go_package">
<property name="label">Next</property>
<property name="halign">center</property>
<style>
<class name="pill" />
<class name="suggested-action" />
</style>
</object>
</child>
</object>
</child>
</object>
</child>
<!-- Package Manager --> <!-- Package Manager -->
<child> <child>
<object class="AdwStatusPage"> <object class="AdwStatusPage">
@ -112,7 +171,7 @@
</object> </object>
</child> </child>
<child> <child>
<object class="GtkButton" id="btn_next"> <object class="GtkButton" id="btn_go_subsystem">
<property name="label">Next</property> <property name="label">Next</property>
<property name="halign">center</property> <property name="halign">center</property>
<style> <style>

@ -14,15 +14,16 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
from vanilla_first_setup.window import FirstSetupWindow
from gi.repository import Gtk, Gio, Adw
import sys
import gi import gi
import sys
import logging import logging
gi.require_version('Gtk', '4.0') gi.require_version('Gtk', '4.0')
gi.require_version('Adw', '1') gi.require_version('Adw', '1')
from gi.repository import Gtk, Gdk, Gio, Adw
from vanilla_first_setup.window import FirstSetupWindow
logging.basicConfig(level=logging.INFO) logging.basicConfig(level=logging.INFO)
@ -36,11 +37,65 @@ class FirstSetupApplication(Adw.Application):
self.create_action('quit', self.close, ['<primary>q']) self.create_action('quit', self.close, ['<primary>q'])
def do_activate(self): def do_activate(self):
"""Called when the application is activated. """
Called when the application is activated.
We raise the application's main window, creating it if We raise the application's main window, creating it if
necessary. necessary.
--
CSS inspired by: Sonny Piers <https://github.com/sonnyp>
""" """
css = """
.theme-selector {
border-radius: 100px;
margin: 8px;
border: 1px solid rgba(145, 145, 145, 0.1);
padding: 30px;
}
.theme-selector radio {
-gtk-icon-source: none;
border: none;
background: none;
box-shadow: none;
min-width: 12px;
min-height: 12px;
transform: translate(34px, 20px);
padding: 2px;
border-radius: 100px;
}
.theme-selector radio:checked {
-gtk-icon-source: -gtk-icontheme("object-select-symbolic");
background-color: @theme_selected_bg_color;
color: @theme_selected_fg_color;
}
.theme-selector:checked {
border-color: @theme_selected_bg_color;
border-width: 2px;
background-color: @theme_selected_bg_color;
}
.theme-selector.light {
background-color: #ffffff;
}
.theme-selector.dark {
background-color: #202020;
}
.theme-selector.light:checked {
background-color: #eeeeee;
}
.theme-selector.dark:checked {
background-color: #303030;
}
"""
provider = Gtk.CssProvider()
provider.load_from_data(css.encode())
Gtk.StyleContext.add_provider_for_display(
display=Gdk.Display.get_default(),
provider=provider,
priority=Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION
)
win = self.props.active_window win = self.props.active_window
if not win: if not win:
win = FirstSetupWindow(application=self) win = FirstSetupWindow(application=self)

@ -13,7 +13,7 @@ class Config:
appimage: bool, appimage: bool,
apport: bool, apport: bool,
distrobox: bool, distrobox: bool,
nvidia: bool nvidia: bool,
): ):
self.snap = snap self.snap = snap
self.flatpak = flatpak self.flatpak = flatpak
@ -27,7 +27,7 @@ class Config:
"snap", "flatpak", "appimage", "apport", "distrobox", "nvidia" "snap", "flatpak", "appimage", "apport", "distrobox", "nvidia"
] ]
vals = [ vals = [
self.snap, self.flatpak, self.appimage, self.apport, self.distrobox, self.nvidia self.snap, self.flatpak, self.appimage, self.apport, self.distrobox, self.nvidia, self.theme
] ]
return "|".join([f"{key}::{val}" for key, val in zip(keys, vals)]) return "|".join([f"{key}::{val}" for key, val in zip(keys, vals)])
@ -69,5 +69,5 @@ class Config:
appimage=get_bool(appimage), appimage=get_bool(appimage),
apport=get_bool(apport), apport=get_bool(apport),
distrobox=get_bool(distrobox), distrobox=get_bool(distrobox),
nvidia=get_bool(nvidia) nvidia=get_bool(nvidia),
) )

@ -3,6 +3,8 @@ import time
import logging import logging
import subprocess import subprocess
from gi.repository import Gio
from vanilla_first_setup.utils import checks from vanilla_first_setup.utils import checks
from vanilla_first_setup.utils.apt import Apt from vanilla_first_setup.utils.apt import Apt
from vanilla_first_setup.utils.flatpak import Flatpak from vanilla_first_setup.utils.flatpak import Flatpak
@ -111,7 +113,7 @@ class Configurator:
if self.fake: if self.fake:
return self.__fake("Fake: Nvidia enabled") return self.__fake("Fake: Nvidia enabled")
proc.subprocess.run(['sudo', 'ubuntu-drivers', 'install', '--recommended']) subprocess.run(['sudo', 'ubuntu-drivers', 'install', '--recommended'])
def __disable_on_startup(self): def __disable_on_startup(self):
if self.fake: if self.fake:

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<gresources> <gresources>
<gresource prefix="/pm/mirko/FirstSetup"> <gresource prefix="/io/github/vanilla-os/FirstSetup">
<file>gtk/window.ui</file> <file>gtk/window.ui</file>
<file>gtk/dialog-subsystem.ui</file> <file>gtk/dialog-subsystem.ui</file>
<file>gtk/dialog-prop-nvidia.ui</file> <file>gtk/dialog-prop-nvidia.ui</file>
</gresource> </gresource>
<gresource prefix="/pm/mirko/FirstSetup/icons/scalable/actions/"> <gresource prefix="/io/github/vanilla-os/FirstSetup/icons/scalable/actions/">
<file preprocess="xml-stripblanks">../data/icons/hicolor/symbolic/actions/vanilla-package-symbolic.svg</file> <file preprocess="xml-stripblanks">../data/icons/hicolor/symbolic/actions/vanilla-package-symbolic.svg</file>
<file preprocess="xml-stripblanks">../data/icons/hicolor/symbolic/actions/vanilla-container-terminal-symbolic.svg</file> <file preprocess="xml-stripblanks">../data/icons/hicolor/symbolic/actions/vanilla-container-terminal-symbolic.svg</file>
<file preprocess="xml-stripblanks">../data/icons/hicolor/symbolic/actions/vanilla-puzzle-piece-symbolic.svg</file> <file preprocess="xml-stripblanks">../data/icons/hicolor/symbolic/actions/vanilla-puzzle-piece-symbolic.svg</file>

@ -28,13 +28,16 @@ from vanilla_first_setup.dialogs.subsystem import SubSystemDialog
from vanilla_first_setup.dialogs.prop_drivers import ProprietaryDriverDialog from vanilla_first_setup.dialogs.prop_drivers import ProprietaryDriverDialog
@Gtk.Template(resource_path='/pm/mirko/FirstSetup/gtk/window.ui') @Gtk.Template(resource_path='/io/github/vanilla-os/FirstSetup/gtk/window.ui')
class FirstSetupWindow(Adw.ApplicationWindow): class FirstSetupWindow(Adw.ApplicationWindow):
__gtype_name__ = 'FirstSetupWindow' __gtype_name__ = 'FirstSetupWindow'
carousel = Gtk.Template.Child() carousel = Gtk.Template.Child()
btn_start = Gtk.Template.Child() btn_go_theme = Gtk.Template.Child()
btn_next = Gtk.Template.Child() btn_light = Gtk.Template.Child()
btn_dark = Gtk.Template.Child()
btn_go_package = Gtk.Template.Child()
btn_go_subsystem = Gtk.Template.Child()
btn_save = Gtk.Template.Child() btn_save = Gtk.Template.Child()
btn_reboot = Gtk.Template.Child() btn_reboot = Gtk.Template.Child()
btn_no_subsystem = Gtk.Template.Child() btn_no_subsystem = Gtk.Template.Child()
@ -50,13 +53,15 @@ class FirstSetupWindow(Adw.ApplicationWindow):
spinner = Gtk.Template.Child() spinner = Gtk.Template.Child()
status_welcome = Gtk.Template.Child() status_welcome = Gtk.Template.Child()
status_nvidia = Gtk.Template.Child() status_nvidia = Gtk.Template.Child()
page_welcome = -1 page_welcome = -1
page_configuration = 0 page_theme = 0
page_subsystem = 1 page_configuration = 1
page_nvidia_drivers = 2 page_subsystem = 2
page_extras = 3 page_nvidia_drivers = 3
page_progress = 4 page_extras = 4
page_done = 5 page_progress = 5
page_done = 6
def __init__(self, **kwargs): def __init__(self, **kwargs):
super().__init__(**kwargs) super().__init__(**kwargs)
@ -82,12 +87,19 @@ class FirstSetupWindow(Adw.ApplicationWindow):
self.switch_appimage.set_active(Preset.appimage) self.switch_appimage.set_active(Preset.appimage)
self.switch_apport.set_active(Preset.apport) self.switch_apport.set_active(Preset.apport)
self.btn_dark.set_group(self.btn_light)
def __connect_signals(self): def __connect_signals(self):
self.btn_start.connect('clicked', self.__on_btn_start_clicked) self.btn_go_theme.connect('clicked', self.__show_page, self.page_theme)
self.btn_next.connect('clicked', self.__on_btn_next_clicked) self.btn_go_package.connect('clicked', self.__show_page, self.page_configuration)
self.btn_go_subsystem.connect('clicked', self.__show_page, self.page_subsystem)
self.btn_save.connect('clicked', self.on_btn_save_clicked) self.btn_save.connect('clicked', self.on_btn_save_clicked)
self.btn_reboot.connect('clicked', self.on_btn_reboot_clicked) self.btn_reboot.connect('clicked', self.on_btn_reboot_clicked)
self.btn_light.connect('toggled', self.__set_theme, "light")
self.btn_dark.connect('toggled', self.__set_theme, "dark")
self.btn_no_subsystem.connect('clicked', self.on_btn_subsystem_clicked, False) self.btn_no_subsystem.connect('clicked', self.on_btn_subsystem_clicked, False)
self.btn_use_subsystem.connect('clicked', self.on_btn_subsystem_clicked, True) self.btn_use_subsystem.connect('clicked', self.on_btn_subsystem_clicked, True)
self.btn_info_subsystem.connect('clicked', self.__on_btn_info_subsystem_clicked) self.btn_info_subsystem.connect('clicked', self.__on_btn_info_subsystem_clicked)
@ -102,25 +114,26 @@ class FirstSetupWindow(Adw.ApplicationWindow):
self.switch_apport.connect( self.switch_apport.connect(
'state-set', self.__on_switch_apport_state_set) 'state-set', self.__on_switch_apport_state_set)
def __show_page(self, page: int): def __show_page(self, widget=None, page: int=-1):
_page = self.carousel.get_nth_page(page + 1) _page = self.carousel.get_nth_page(page + 1)
self.carousel.scroll_to(_page, True) self.carousel.scroll_to(_page, True)
def __on_btn_start_clicked(self, widget):
self.__show_page(self.page_configuration)
def __on_btn_next_clicked(self, widget):
self.__show_page(self.page_subsystem)
def on_btn_save_clicked(self, widget): def on_btn_save_clicked(self, widget):
def on_done(result, error=None): def on_done(result, error=None):
self.spinner.stop() self.spinner.stop()
self.__show_page(self.page_done) self.__show_page(page=self.page_done)
self.__show_page(self.page_progress) self.__show_page(page=self.page_progress)
self.spinner.start() self.spinner.start()
RunAsync(Processor(self.__config).run, on_done) RunAsync(Processor(self.__config).run, on_done)
def __set_theme(self, widget, theme: str):
self.__config.set_val('theme', theme)
pref = "prefer-dark" if theme == "dark" else "default"
gtk = "Adwaita-dark" if theme == "dark" else "Adwaita"
Gio.Settings.new("org.gnome.desktop.interface").set_string("color-scheme", pref)
Gio.Settings.new("org.gnome.desktop.interface").set_string("gtk-theme", gtk)
def __on_switch_snap_state_set(self, widget, state): def __on_switch_snap_state_set(self, widget, state):
self.__config.set_val('snap', state) self.__config.set_val('snap', state)
@ -139,14 +152,14 @@ class FirstSetupWindow(Adw.ApplicationWindow):
def on_btn_subsystem_clicked(self, widget, state): def on_btn_subsystem_clicked(self, widget, state):
self.__config.set_val('distrobox', state) self.__config.set_val('distrobox', state)
self.__show_page(self.page_nvidia_drivers if self.__has_nvidia else self.page_extras) self.__show_page(page=self.page_nvidia_drivers if self.__has_nvidia else self.page_extras)
def __on_btn_info_subsystem_clicked(self, widget): def __on_btn_info_subsystem_clicked(self, widget):
SubSystemDialog(self).show() SubSystemDialog(self).show()
def on_btn_prop_nvidia_clicked(self, widget, state): def on_btn_prop_nvidia_clicked(self, widget, state):
self.__config.set_val('nvidia', state) self.__config.set_val('nvidia', state)
self.__show_page(self.page_extras) self.__show_page(page=self.page_extras)
def __on_btn_info_prop_nvidia_clicked(self, widget): def __on_btn_info_prop_nvidia_clicked(self, widget):
ProprietaryDriverDialog(self).show() ProprietaryDriverDialog(self).show()

Loading…
Cancel
Save