help git is being scary

pull/6/head
axtloss 2 years ago
parent 02830ec1e2
commit a06f1211d2

@ -1,5 +1,5 @@
{ {
"app-id" : "al.getcyrst.jadegui", "app-id" : "al.getcryst.jadegui",
"runtime" : "org.gnome.Platform", "runtime" : "org.gnome.Platform",
"runtime-version" : "master", "runtime-version" : "master",
"sdk" : "org.gnome.Sdk", "sdk" : "org.gnome.Sdk",

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<id>al.getcryst.jadegui.desktop</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0-or-later</project_license>
<description>
<p>No description</p>
</description>
</component>

@ -0,0 +1,11 @@
[Desktop Entry]
Name=jade_gui
Exec=jade_gui
Icon=al.getcryst.jadegui
Terminal=false
Type=Application
Categories=GTK;
StartupNotify=true

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<schemalist gettext-domain="jade_gui">
<schema id="al.getcryst.jadegui" path="/al/getcryst/jadegui/">
</schema>
</schemalist>

@ -0,0 +1,130 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
width="33.750061mm"
height="33.750061mm"
viewBox="0 0 33.750061 33.750061"
version="1.1"
id="svg974">
<defs
id="defs968">
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath18689">
<rect
clip-path="none"
transform="rotate(45)"
ry="32.000008"
rx="32.000008"
y="123.9986"
x="486.03726"
height="362.94299"
width="362.94299"
id="rect18691"
style="display:inline;opacity:1;vector-effect:none;fill:#4a86cf;fill-opacity:1;stroke:none;stroke-width:26.0669;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
</clipPath>
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath18689-3">
<rect
clip-path="none"
transform="rotate(45)"
ry="32.000008"
rx="32.000008"
y="123.9986"
x="486.03726"
height="362.94299"
width="362.94299"
id="rect18691-6"
style="display:inline;opacity:1;vector-effect:none;fill:#4a86cf;fill-opacity:1;stroke:none;stroke-width:26.0669;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
</clipPath>
</defs>
<metadata
id="metadata971">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
transform="translate(-61.819823,-103.94395)">
<g
transform="matrix(0.26367235,0,0,0.26367235,61.819823,-529.39703)"
style="display:inline;stroke-width:0.25;enable-background:new"
id="g1836">
<title
id="title1838">application-x-executable</title>
<g
transform="matrix(0.25,0,0,0.25,0,2295)"
id="g18818"
style="stroke-width:0.25">
<g
style="stroke-width:0.269963"
transform="matrix(0.92605186,0,0,0.92605186,18.930729,50.876335)"
id="g18590">
<g
style="stroke-width:0.269963"
id="g18681"
clip-path="url(#clipPath18689-3)">
<rect
style="opacity:1;vector-effect:none;fill:#3584e4;fill-opacity:1;stroke:none;stroke-width:8.22095;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
id="rect18571"
width="424"
height="424"
x="458.33722"
y="90.641701"
rx="10.092117"
ry="10.092117"
transform="matrix(0.60528171,0.60528171,-0.60528171,0.60528171,33.440632,99.073632)"
clip-path="none" />
<circle
style="opacity:1;vector-effect:none;fill:#f66151;fill-opacity:1;stroke:none;stroke-width:7.03712;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
id="path18706"
cx="0"
cy="0"
r="0"
transform="translate(0,-212)" />
<circle
style="opacity:1;vector-effect:none;fill:#f66151;fill-opacity:1;stroke:none;stroke-width:7.03712;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
id="path18708"
cx="0"
cy="0"
r="0"
transform="translate(0,-212)" />
<path
style="display:inline;opacity:1;vector-effect:none;fill:#98c1f1;fill-opacity:1;stroke:none;stroke-width:7.03712;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
d="m 408.91993,561.9183 -9.8861,29.82892 a 172.97099,172.97099 0 0 0 -1.42693,-0.0713 172.97099,172.97099 0 0 0 -23.92891,1.85189 l -13.80082,-28.50125 a 203.29325,203.29325 0 0 0 -29.40085,7.97217 l 2.28619,31.40474 a 172.97099,172.97099 0 0 0 -22.73152,11.31923 l -23.71796,-21.103 a 203.29325,203.29325 0 0 0 -24.05918,18.6741 l 14.09863,28.07319 a 172.97099,172.97099 0 0 0 -16.63608,19.21074 l -30.05845,-10.44758 a 203.29325,203.29325 0 0 0 -15.01683,26.48807 l 23.73035,20.50738 a 172.97099,172.97099 0 0 0 -7.98456,24.14293 l -31.73044,1.84879 a 203.29325,203.29325 0 0 0 -3.77825,30.21664 l 29.82892,9.8861 a 172.97099,172.97099 0 0 0 -0.0713,1.42693 172.97099,172.97099 0 0 0 1.85188,23.92889 l -28.50125,13.80084 a 203.29325,203.29325 0 0 0 7.97215,29.40084 l 31.40475,-2.28619 a 172.97099,172.97099 0 0 0 11.31922,22.73152 l -21.10296,23.71797 a 203.29325,203.29325 0 0 0 18.67409,24.05918 l 28.07319,-14.09863 a 172.97099,172.97099 0 0 0 19.21074,16.63606 l -10.44758,30.05847 a 203.29325,203.29325 0 0 0 26.48806,15.01683 l 20.50739,-23.73036 a 172.97099,172.97099 0 0 0 24.14293,7.98457 l 1.8488,31.73043 a 203.29325,203.29325 0 0 0 30.21666,3.77826 l 9.8861,-29.82892 a 172.97099,172.97099 0 0 0 1.42693,0.0713 172.97099,172.97099 0 0 0 23.9289,-1.85188 l 13.80084,28.50125 a 203.29325,203.29325 0 0 0 29.40084,-7.97217 l -2.2862,-31.40474 a 172.97099,172.97099 0 0 0 22.73153,-11.31922 l 23.71796,21.10297 A 203.29325,203.29325 0 0 0 532.96,916.00016 l -14.09864,-28.07319 a 172.97099,172.97099 0 0 0 16.63607,-19.21073 l 30.05846,10.44757 a 203.29325,203.29325 0 0 0 15.01683,-26.48807 l -23.73036,-20.50738 a 172.97099,172.97099 0 0 0 7.98457,-24.14293 l 31.73044,-1.84879 a 203.29325,203.29325 0 0 0 3.77825,-30.21667 l -29.82892,-9.8861 a 172.97099,172.97099 0 0 0 0.0713,-1.42692 172.97099,172.97099 0 0 0 -1.85189,-23.9289 l 28.50124,-13.80084 a 203.29325,203.29325 0 0 0 -7.97215,-29.40084 l -31.40474,2.2862 a 172.97099,172.97099 0 0 0 -11.31923,-22.73153 l 21.10297,-23.71797 a 203.29325,203.29325 0 0 0 -18.67409,-24.05918 l -28.07319,14.09863 a 172.97099,172.97099 0 0 0 -19.21074,-16.63606 l 10.44757,-30.05847 A 203.29325,203.29325 0 0 0 485.6357,581.68117 l -20.50738,23.73035 a 172.97099,172.97099 0 0 0 -24.14293,-7.98455 l -1.84879,-31.73044 a 203.29325,203.29325 0 0 0 -30.21667,-3.77826 z M 397.6069,637.72208 A 126.92605,126.92605 0 0 1 524.5318,764.64699 126.92605,126.92605 0 0 1 397.6069,891.57189 126.92605,126.92605 0 0 1 270.682,764.64699 126.92605,126.92605 0 0 1 397.6069,637.72208 Z"
id="path18717-4" />
<path
id="path18758"
d="m 51.748325,401.28402 -9.8861,29.82892 c -0.475543,-0.0257 -0.951191,-0.0495 -1.42693,-0.0713 -8.00956,0.0625 -16.005106,0.6813 -23.92891,1.85189 L 2.7055639,404.39228 c -9.9858697,1.91835 -19.8137359,4.58322 -29.4008489,7.97217 l 2.28619,31.40474 c -7.844275,3.21103 -15.441918,6.9943 -22.73152,11.31923 l -23.71796,-21.103 c -8.475372,5.61437 -16.517661,11.85658 -24.05918,18.6741 l 14.09863,28.07319 c -6.008901,5.98701 -11.569263,12.40791 -16.636077,19.21074 l -30.058438,-10.44758 c -5.66072,8.44155 -10.68041,17.29574 -15.01683,26.48807 l 23.73035,20.50738 c -3.25027,7.84084 -5.919,15.91028 -7.98456,24.14293 l -31.73044,1.84879 c -2.01308,9.96359 -3.27604,20.06413 -3.77825,30.21664 l 29.82892,9.8861 c -0.0257,0.47554 -0.0495,0.95119 -0.0713,1.42693 0.0625,8.00955 0.68129,16.00509 1.85188,23.92889 l -28.50125,13.80084 c 1.91835,9.98587 4.58321,19.81373 7.97215,29.40084 l 31.40475,-2.28619 c 3.21102,7.84427 6.99429,15.44192 11.31922,22.73152 l -21.10296,23.71797 c 5.61437,8.47537 11.85658,16.51766 18.67409,24.05918 l 28.073175,-14.09863 c 5.987006,6.00889 12.407911,11.56925 19.21074,16.63606 l -10.44758,30.05847 c 8.441549,5.66072 17.295731,10.68041 26.48806,15.01683 l 20.50739,-23.73036 c 7.840839,3.25027 15.910282,5.91901 24.142929,7.98457 l 1.8488,31.73043 c 9.9635962,2.01309 20.064147,3.27605 30.216661,3.77826 l 9.8861,-29.82892 c 0.475543,0.0257 0.951191,0.0495 1.42693,0.0713 8.009557,-0.0625 16.005099,-0.68129 23.9289,-1.85188 l 13.80084,28.50125 c 9.985867,-1.91835 19.813731,-4.58322 29.400855,-7.97217 l -2.2862,-31.40474 c 7.84428,-3.21102 15.44192,-6.99429 22.73153,-11.31922 l 23.71796,21.10297 c 8.47538,-5.61437 16.51767,-11.85658 24.05919,-18.6741 l -14.09864,-28.07319 c 6.0089,-5.987 11.56926,-12.4079 16.63607,-19.21073 l 30.05846,10.44757 c 5.66072,-8.44155 10.68041,-17.29574 15.01683,-26.48807 l -23.73036,-20.50738 c 3.25027,-7.84084 5.91901,-15.91028 7.98457,-24.14293 l 31.73044,-1.84879 c 2.01308,-9.9636 3.27604,-20.06415 3.77825,-30.21667 l -29.82892,-9.8861 c 0.0257,-0.47554 0.0495,-0.95118 0.0713,-1.42692 -0.0625,-8.00956 -0.6813,-16.0051 -1.85189,-23.9289 l 28.50124,-13.80084 c -1.91835,-9.98587 -4.58321,-19.81373 -7.97215,-29.40084 l -31.40474,2.2862 c -3.21103,-7.84428 -6.9943,-15.44192 -11.31923,-22.73153 l 21.10297,-23.71797 c -5.61437,-8.47537 -11.85658,-16.51766 -18.67409,-24.05918 l -28.07319,14.09863 c -5.98701,-6.00889 -12.40791,-11.56925 -19.21074,-16.63606 l 10.44757,-30.05847 c -8.44155,-5.66072 -17.29572,-10.6804 -26.48805,-15.01682 l -20.50738,23.73035 c -7.84085,-3.25027 -15.910298,-5.91899 -24.142945,-7.98455 l -1.84879,-31.73044 c -9.9636,-2.01309 -20.064152,-3.27605 -30.21667,-3.77826 z"
style="display:inline;opacity:1;vector-effect:none;fill:#1a5fb4;fill-opacity:1;stroke:none;stroke-width:7.03712;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
</g>
</g>
<path
style="display:inline;opacity:0.534;vector-effect:none;fill:#1a5fb4;fill-opacity:1;stroke:none;stroke-width:1.62918;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new"
clip-path="none"
d="m 8.4765625,2676 c -1.1711695,2.8866 -0.5827763,6.3078 1.7656255,8.6562 l 48.101562,48.1016 c 3.133898,3.1339 8.178602,3.1339 11.3125,0 l 48.10156,-48.1016 c 2.3484,-2.3484 2.9368,-5.7696 1.76563,-8.6562 -0.39174,0.9655 -0.98013,1.8708 -1.76563,2.6562 l -48.10156,48.1016 c -3.133898,3.1339 -8.178602,3.1339 -11.3125,0 L 10.242188,2678.6562 C 9.4566904,2677.8708 8.8682972,2676.9655 8.4765625,2676 Z"
transform="matrix(4,0,0,4,0,-10028)"
id="rect18571-6" />
</g>
<rect
y="2402"
x="-1.5000001e-06"
height="128"
width="128"
id="rect9125-7-2"
style="display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;enable-background:new" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g color="#000" fill="#2e3436"><path d="M7.188 2.281c-.094.056-.192.125-.29.19L5.566 3.803a1.684 1.684 0 11-2.17 2.17L2.332 7.037c.506-.069 1.017-.136 1.2.026.242.214.139 1.031.155 1.656.213.088.427.171.657.219.04.008.085-.007.125 0 .337-.525.683-1.288 1-1.344.322-.057.905.562 1.406.937a3.67 3.67 0 00.656-.468c-.195-.595-.594-1.369-.437-1.657.158-.29 1.019-.37 1.625-.531.028-.183.062-.371.062-.562 0-.075-.027-.146-.031-.22-.587-.217-1.435-.385-1.562-.687-.128-.302.34-1.021.593-1.593a3.722 3.722 0 00-.593-.532zm3.875 3.25c-.165.475-.305 1.086-.47 1.563-.43.047-.84.14-1.218.312-.38-.322-.787-.773-1.156-1.093a5.562 5.562 0 00-.688.468c.177.46.453 1.001.625 1.469-.298.309-.531.67-.719 1.063-.494 0-1.102-.084-1.593-.094a5.68 5.68 0 00-.219.812c.435.24 1.006.468 1.438.72-.006.093-.032.185-.032.28 0 .333.049.66.125.97-.382.304-.898.63-1.28.937.015.044.04.083.058.127l.613.613c.417-.1.868-.223 1.266-.303.248.343.532.626.875.875-.027.135-.068.283-.104.428.174-.063.34-.155.482-.297l1.432-1.432a1.994 1.994 0 01.533-3.918c.919 0 1.684.623 1.918 1.467l1.338-1.338c.06-.06.11-.124.156-.191-.035-.062-.06-.13-.1-.188.096-.152.205-.31.315-.47.017-.348-.1-.7-.37-.971l-.177-.176c-.28.192-.561.387-.83.555-.345-.233-.746-.383-1.156-.5-.077-.507-.107-1.132-.187-1.625a5.44 5.44 0 00-.875-.063zm-9.247.608c-.087.068-.173.138-.254.205l.014.035z" style="marker:none" overflow="visible"/><path d="M8.707.293a1 1 0 00-1.415 0l-6.999 7a1 1 0 000 1.413l7 7.001a1 1 0 001.415 0l7-7a1 1 0 000-1.413zm-.708 2.121l5.587 5.587L8 13.586 2.414 7.999z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal;marker:none" font-weight="400" font-family="sans-serif" overflow="visible"/></g></svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

@ -1,4 +1,4 @@
application_id = 'al.getcyrst.jadegui' application_id = 'al.getcryst.jadegui'
scalable_dir = join_paths('hicolor', 'scalable', 'apps') scalable_dir = join_paths('hicolor', 'scalable', 'apps')
install_data( install_data(

@ -1,6 +1,6 @@
desktop_file = i18n.merge_file( desktop_file = i18n.merge_file(
input: 'al.getcyrst.jadegui.desktop.in', input: 'al.getcryst.jadegui.desktop.in',
output: 'al.getcyrst.jadegui.desktop', output: 'al.getcryst.jadegui.desktop',
type: 'desktop', type: 'desktop',
po_dir: '../po', po_dir: '../po',
install: true, install: true,
@ -15,8 +15,8 @@ if desktop_utils.found()
endif endif
appstream_file = i18n.merge_file( appstream_file = i18n.merge_file(
input: 'al.getcyrst.jadegui.appdata.xml.in', input: 'al.getcryst.jadegui.appdata.xml.in',
output: 'al.getcyrst.jadegui.appdata.xml', output: 'al.getcryst.jadegui.appdata.xml',
po_dir: '../po', po_dir: '../po',
install: true, install: true,
install_dir: join_paths(get_option('datadir'), 'appdata') install_dir: join_paths(get_option('datadir'), 'appdata')
@ -29,7 +29,7 @@ if appstream_util.found()
) )
endif endif
install_data('al.getcyrst.jadegui.gschema.xml', install_data('al.getcryst.jadegui.gschema.xml',
install_dir: join_paths(get_option('datadir'), 'glib-2.0/schemas') install_dir: join_paths(get_option('datadir'), 'glib-2.0/schemas')
) )

@ -1,6 +1,6 @@
data/al.getcyrst.jadegui.desktop.in data/al.getcryst.jadegui.desktop.in
data/al.getcyrst.jadegui.appdata.xml.in data/al.getcryst.jadegui.appdata.xml.in
data/al.getcyrst.jadegui.gschema.xml data/al.getcryst.jadegui.gschema.xml
src/window.ui src/window.ui
src/main.py src/main.py

@ -0,0 +1,44 @@
# desktop_screen.py
#
# Copyright 2022 user
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from gi.repository import Gtk, Adw
from gettext import gettext as _
@Gtk.Template(resource_path='/al/getcryst/jadegui/pages/desktop_screen.ui')
class DesktopScreen(Adw.Bin):
__gtype_name__ = 'DesktopScreen'
list_desktops = Gtk.Template.Child()
def __init__(self, window, main_carousel, next_page, application, **kwargs):
super().__init__(**kwargs)
self.window = window
self.carousel = main_carousel
self.next_page = next_page
self.list_desktops.connect("row-selected", self.selected_timezone)
def selected_timezone(self, widget, row):
if row is not None:
print(row.get_title())
row.select_button.set_active(True)
else:
print("row is none!!")

@ -21,7 +21,7 @@
from gi.repository import Gtk, Adw from gi.repository import Gtk, Adw
from gettext import gettext as _ from gettext import gettext as _
@Gtk.Template(resource_path='/al/getcyrst/jadegui/pages/keyboard_screen.ui') @Gtk.Template(resource_path='/al/getcryst/jadegui/pages/keyboard_screen.ui')
class KeyboardScreen(Adw.Bin): class KeyboardScreen(Adw.Bin):
__gtype_name__ = 'KeyboardScreen' __gtype_name__ = 'KeyboardScreen'

@ -6,5 +6,6 @@ jade_gui_sources = [
'keyboard_screen.py', 'keyboard_screen.py',
'timezone_screen.py', 'timezone_screen.py',
'user_screen.py', 'user_screen.py',
'desktop_screen.py',
] ]
install_data(jade_gui_sources, install_dir: functionsdir) install_data(jade_gui_sources, install_dir: functionsdir)

@ -21,7 +21,7 @@
from gi.repository import Gtk, Adw from gi.repository import Gtk, Adw
from gettext import gettext as _ from gettext import gettext as _
@Gtk.Template(resource_path='/al/getcyrst/jadegui/pages/timezone_screen.ui') @Gtk.Template(resource_path='/al/getcryst/jadegui/pages/timezone_screen.ui')
class TimezoneScreen(Adw.Bin): class TimezoneScreen(Adw.Bin):
__gtype_name__ = 'TimezoneScreen' __gtype_name__ = 'TimezoneScreen'

@ -22,7 +22,7 @@ from gi.repository import Gtk, Adw
from gettext import gettext as _ from gettext import gettext as _
import re import re
@Gtk.Template(resource_path='/al/getcyrst/jadegui/pages/user_screen.ui') @Gtk.Template(resource_path='/al/getcryst/jadegui/pages/user_screen.ui')
class UserScreen(Adw.Bin): class UserScreen(Adw.Bin):
__gtype_name__ = "UserScreen" __gtype_name__ = "UserScreen"
@ -31,12 +31,13 @@ class UserScreen(Adw.Bin):
password_confirmation = Gtk.Template.Child() password_confirmation = Gtk.Template.Child()
enable_sudo_switch = Gtk.Template.Child() enable_sudo_switch = Gtk.Template.Child()
enable_root_switch = Gtk.Template.Child() enable_root_switch = Gtk.Template.Child()
next_page = Gtk.Template.Child() next_page_button = Gtk.Template.Child()
def __init__(self, window, main_carousel, next_page, application, **kwargs): def __init__(self, window, main_carousel, next_page, application, **kwargs):
super().__init__(**kwargs) super().__init__(**kwargs)
self.window = window self.window = window
self.carousel = main_carousel self.carousel = main_carousel
self.next_page = next_page
self.sudo_enabled = True self.sudo_enabled = True
self.root_enabled = True self.root_enabled = True
self.enable_root_switch.set_active(self.root_enabled) self.enable_root_switch.set_active(self.root_enabled)
@ -46,6 +47,7 @@ class UserScreen(Adw.Bin):
self.enable_sudo_switch.connect('state-set', self.enable_sudo) self.enable_sudo_switch.connect('state-set', self.enable_sudo)
self.password_entry.connect('changed', self.verify_password) self.password_entry.connect('changed', self.verify_password)
self.password_confirmation.connect('changed', self.verify_password) self.password_confirmation.connect('changed', self.verify_password)
self.next_page_button.connect('clicked', self.carousel_next)
def username_passes_regex(self, widget): def username_passes_regex(self, widget):
input = self.username_entry.get_text() input = self.username_entry.get_text()
@ -86,8 +88,10 @@ class UserScreen(Adw.Bin):
def verify_password(self, widget): def verify_password(self, widget):
if self.password_entry.get_text() == self.password_confirmation.get_text(): if self.password_entry.get_text() == self.password_confirmation.get_text():
self.next_page.set_sensitive(True) self.next_page.set_sensitive(True)
self.password_confirmation.add_css_class('error') self.password_confirmation.remove_css_class('error')
elif self.password_entry.get_text() != self.password_confirmation.get_text(): elif self.password_entry.get_text() != self.password_confirmation.get_text():
self.next_page.set_sensitive(False) self.next_page.set_sensitive(False)
self.password_confirmation.remove_css_class('error') self.password_confirmation.add_css_class('error')
def carousel_next(self, widget):
self.carousel.scroll_to(self.next_page, True)

@ -1,13 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<gresources> <gresources>
<gresource prefix="/al/getcyrst/jadegui"> <gresource prefix="/al/getcryst/jadegui">
<file>window.ui</file> <file>window.ui</file>
<file>widgets/timezone.ui</file> <file>widgets/timezone.ui</file>
<file>widgets/layout.ui</file> <file>widgets/layout.ui</file>
<file>widgets/variant.ui</file> <file>widgets/variant.ui</file>
<file>widgets/desktop.ui</file>
<file>pages/keyboard_screen.ui</file> <file>pages/keyboard_screen.ui</file>
<file>pages/timezone_screen.ui</file> <file>pages/timezone_screen.ui</file>
<file>pages/user_screen.ui</file> <file>pages/user_screen.ui</file>
<file>pages/desktop_screen.ui</file>
<file>gtk/help-overlay.ui</file> <file>gtk/help-overlay.ui</file>
<file>crystal-logo-minimal.png</file> <file>crystal-logo-minimal.png</file>
</gresource> </gresource>

@ -32,7 +32,7 @@ class Jade_guiApplication(Adw.Application):
def __init__(self): def __init__(self):
super().__init__(application_id='al.getcyrst.jadegui', super().__init__(application_id='al.getcryst.jadegui',
flags=Gio.ApplicationFlags.FLAGS_NONE) flags=Gio.ApplicationFlags.FLAGS_NONE)
self.create_action('quit', self.quit, ['<primary>q']) self.create_action('quit', self.quit, ['<primary>q'])
self.create_action('about', self.on_about_action) self.create_action('about', self.on_about_action)

@ -9,9 +9,11 @@ blueprints = custom_target('blueprints',
'widgets/timezone.blp', 'widgets/timezone.blp',
'widgets/layout.blp', 'widgets/layout.blp',
'widgets/variant.blp', 'widgets/variant.blp',
'widgets/desktop.blp',
'pages/keyboard_screen.blp', 'pages/keyboard_screen.blp',
'pages/timezone_screen.blp', 'pages/timezone_screen.blp',
'pages/user_screen.blp', 'pages/user_screen.blp',
'pages/desktop_screen.blp',
), ),
output: '.', output: '.',
command: [find_program('blueprint-compiler'), 'batch-compile', '@OUTPUT@', '@CURRENT_SOURCE_DIR@', '@INPUT@'], command: [find_program('blueprint-compiler'), 'batch-compile', '@OUTPUT@', '@CURRENT_SOURCE_DIR@', '@INPUT@'],

@ -0,0 +1,36 @@
using Gtk 4.0;
using Adw 1;
template DesktopScreen : Adw.Bin {
vexpand: true;
hexpand: true;
Gtk.Box {
vexpand: true;
hexpand: true;
Adw.StatusPage {
title: "Select a desktop";
description: "You can install more desktops later";
Adw.PreferencesPage {
Adw. PreferencesGroup {
Gtk.ListBox list_desktops {
hexpand: true;
vexpand: true;
styles ["boxed-list"]
}
}
}
}
Gtk.Overlay {
[overlay]
Gtk.Button next_page {
margin-end: 20;
margin-bottom: 20;
label: "Next";
halign: end;
valign: end;
tooltip-text: "Move to next page";
styles ["suggested-action"]
}
}
}
}

@ -5,17 +5,6 @@ template UserScreen : Adw.Bin {
hexpand: true; hexpand: true;
vexpand: true; vexpand: true;
Gtk.Overlay {
Gtk.Button next_page {
margin-end: 20;
margin-bottom: 20;
label: "Next";
halign: end;
valign: end;
tooltip-text: "Move to next page";
styles ["suggested-action"]
}
}
Gtk.Box { Gtk.Box {
vexpand: true; vexpand: true;
@ -59,5 +48,17 @@ template UserScreen : Adw.Bin {
} }
} }
} }
Gtk.Overlay {
[overlay]
Gtk.Button next_page_button {
margin-end: 20;
margin-bottom: 20;
label: "Next";
halign: end;
valign: end;
tooltip-text: "Move to next page";
styles ["suggested-action"]
}
}
} }
} }

@ -0,0 +1,12 @@
using Gtk 4.0;
using Adw 1;
template DesktopEntry : Adw.ActionRow {
title: "DesktopEntry";
Gtk.Box {
Gtk.CheckButton select_button {
use-underline: true;
}
}
}

@ -0,0 +1,34 @@
# desktop.py
#
# Copyright 2022 user
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from gi.repository import Gtk, GLib, Adw
from gettext import gettext as _
@Gtk.Template(resource_path='/al/getcryst/jadegui/widgets/desktop.ui')
class DesktopEntry(Adw.ActionRow):
__gtype_name__ = 'DesktopEntry'
select_button = Gtk.Template.Child()
def __init__(self, window, desktop, button_group, application, **kwargs):
super().__init__(**kwargs)
self.set_title(desktop)
self.select_button.set_group(button_group)

@ -20,7 +20,7 @@
from gi.repository import Gtk, GLib, Adw from gi.repository import Gtk, GLib, Adw
from gettext import gettext as _ from gettext import gettext as _
@Gtk.Template(resource_path='/al/getcyrst/jadegui/widgets/layout.ui') @Gtk.Template(resource_path='/al/getcryst/jadegui/widgets/layout.ui')
class KeyboardLayout(Adw.ActionRow): class KeyboardLayout(Adw.ActionRow):
__gtype_name__ = 'KeyboardLayout' __gtype_name__ = 'KeyboardLayout'

@ -6,5 +6,6 @@ jade_gui_sources = [
'timezone.py', 'timezone.py',
'layout.py', 'layout.py',
'variant.py', 'variant.py',
'desktop.py',
] ]
install_data(jade_gui_sources, install_dir: widgetsdir) install_data(jade_gui_sources, install_dir: widgetsdir)

@ -22,7 +22,7 @@ import pytz
from gi.repository import Gtk, GLib, Adw from gi.repository import Gtk, GLib, Adw
from gettext import gettext as _ from gettext import gettext as _
@Gtk.Template(resource_path='/al/getcyrst/jadegui/widgets/timezone.ui') @Gtk.Template(resource_path='/al/getcryst/jadegui/widgets/timezone.ui')
class TimezoneEntry(Adw.ActionRow): class TimezoneEntry(Adw.ActionRow):
__gtype_name__ = 'TimezoneEntry' __gtype_name__ = 'TimezoneEntry'

@ -20,7 +20,7 @@
from gi.repository import Gtk, GLib, Adw from gi.repository import Gtk, GLib, Adw
from gettext import gettext as _ from gettext import gettext as _
@Gtk.Template(resource_path='/al/getcyrst/jadegui/widgets/variant.ui') @Gtk.Template(resource_path='/al/getcryst/jadegui/widgets/variant.ui')
class KeyboardVariant(Adw.ActionRow): class KeyboardVariant(Adw.ActionRow):
__gtype_name__ = 'KeyboardVariant' __gtype_name__ = 'KeyboardVariant'

@ -11,7 +11,7 @@ template JadeGuiWindow : Gtk.ApplicationWindow {
Adw.HeaderBar header_bar { Adw.HeaderBar header_bar {
title-widget: Gtk.Box { title-widget: Gtk.Box {
Gtk.Image { Gtk.Image {
resource: "/al/getcyrst/jadegui/crystal-logo-minimal.png"; resource: "/al/getcryst/jadegui/crystal-logo-minimal.png";
} }
Gtk.Label { Gtk.Label {
margin-start: 2; margin-start: 2;
@ -47,7 +47,7 @@ template JadeGuiWindow : Gtk.ApplicationWindow {
hexpand: true; hexpand: true;
Gtk.Image crystal-logo { Gtk.Image crystal-logo {
resource: "/al/getcyrst/jadegui/crystal-logo-minimal.png"; resource: "/al/getcryst/jadegui/crystal-logo-minimal.png";
pixel-size: 200; pixel-size: 200;
margin-bottom: 25; margin-bottom: 25;
} }

@ -22,11 +22,13 @@ from gi.repository import Gdk
from .widgets.timezone import TimezoneEntry from .widgets.timezone import TimezoneEntry
from .widgets.layout import KeyboardLayout from .widgets.layout import KeyboardLayout
from .widgets.variant import KeyboardVariant from .widgets.variant import KeyboardVariant
from .widgets.desktop import DesktopEntry
from .functions.keyboard_screen import KeyboardScreen from .functions.keyboard_screen import KeyboardScreen
from .functions.timezone_screen import TimezoneScreen from .functions.timezone_screen import TimezoneScreen
from .functions.user_screen import UserScreen from .functions.user_screen import UserScreen
from .functions.desktop_screen import DesktopScreen
@Gtk.Template(resource_path='/al/getcyrst/jadegui/window.ui') @Gtk.Template(resource_path='/al/getcryst/jadegui/window.ui')
class JadeGuiWindow(Gtk.ApplicationWindow): class JadeGuiWindow(Gtk.ApplicationWindow):
__gtype_name__ = 'JadeGuiWindow' __gtype_name__ = 'JadeGuiWindow'
@ -42,12 +44,14 @@ class JadeGuiWindow(Gtk.ApplicationWindow):
def __init__(self, **kwargs): def __init__(self, **kwargs):
super().__init__(**kwargs) super().__init__(**kwargs)
self.user_screen = UserScreen(window=self, main_carousel=self.carousel, next_page=None, **kwargs) self.desktop_screen = DesktopScreen(window=self, main_carousel=self.carousel, next_page=None, **kwargs)
self.user_screen = UserScreen(window=self, main_carousel=self.carousel, next_page=self.desktop_screen, **kwargs)
self.keyboard_screen = KeyboardScreen(window=self, main_carousel=self.carousel, next_page=self.user_screen, **kwargs) self.keyboard_screen = KeyboardScreen(window=self, main_carousel=self.carousel, next_page=self.user_screen, **kwargs)
self.timezone_screen = TimezoneScreen(window=self, main_carousel=self.carousel, next_page=self.keyboard_screen, **kwargs) self.timezone_screen = TimezoneScreen(window=self, main_carousel=self.carousel, next_page=self.keyboard_screen, **kwargs)
self.carousel.append(self.timezone_screen) self.carousel.append(self.timezone_screen)
self.carousel.append(self.keyboard_screen) self.carousel.append(self.keyboard_screen)
self.carousel.append(self.user_screen) self.carousel.append(self.user_screen)
self.carousel.append(self.desktop_screen)
### Widgets for first page (welcome screen) ### Widgets for first page (welcome screen)
self.quit_button.connect("clicked", self.confirmQuit) self.quit_button.connect("clicked", self.confirmQuit)
self.next_button.connect("clicked", self.nextPage) self.next_button.connect("clicked", self.nextPage)
@ -80,6 +84,16 @@ class JadeGuiWindow(Gtk.ApplicationWindow):
self.keyboard_screen.list_keyboard_variants.append(variant_test_three) self.keyboard_screen.list_keyboard_variants.append(variant_test_three)
### --------- ### ---------
### Test desktops
desktop_test = DesktopEntry(window=self, desktop="GNOME", button_group=None, **kwargs)
desktop_test_two = DesktopEntry(window=self, desktop="Onyx", button_group=desktop_test.select_button, **kwargs)
desktop_test_three = DesktopEntry(window=self, desktop="KDE", button_group=desktop_test.select_button, **kwargs)
desktop_test.select_button.set_active(True)
self.desktop_screen.list_desktops.append(desktop_test)
self.desktop_screen.list_desktops.append(desktop_test_two)
self.desktop_screen.list_desktops.append(desktop_test_three)
### ---------
# TODO: offload functions to seperate files/classes # TODO: offload functions to seperate files/classes
def nextPage(self, idk): def nextPage(self, idk):
@ -116,6 +130,6 @@ class AboutDialog(Gtk.AboutDialog):
self.props.version = "0.1.0" self.props.version = "0.1.0"
self.props.authors = ['user'] self.props.authors = ['user']
self.props.copyright = '2022 user' self.props.copyright = '2022 user'
self.props.logo_icon_name = 'al.getcyrst.jadegui' self.props.logo_icon_name = 'al.getcryst.jadegui'
self.props.modal = True self.props.modal = True
self.set_transient_for(parent) self.set_transient_for(parent)

@ -12,7 +12,7 @@
<object class="GtkBox"> <object class="GtkBox">
<child> <child>
<object class="GtkImage"> <object class="GtkImage">
<property name="resource">/al/getcyrst/jadegui/crystal-logo-minimal.png</property> <property name="resource">/al/getcryst/jadegui/crystal-logo-minimal.png</property>
</object> </object>
</child> </child>
<child> <child>
@ -57,7 +57,7 @@
<property name="hexpand">true</property> <property name="hexpand">true</property>
<child> <child>
<object class="GtkImage" id="crystal-logo"> <object class="GtkImage" id="crystal-logo">
<property name="resource">/al/getcyrst/jadegui/crystal-logo-minimal.png</property> <property name="resource">/al/getcryst/jadegui/crystal-logo-minimal.png</property>
<property name="pixel-size">200</property> <property name="pixel-size">200</property>
<property name="margin-bottom">25</property> <property name="margin-bottom">25</property>
</object> </object>

Loading…
Cancel
Save