Partition screen

This commit is contained in:
2026-02-01 21:00:44 +01:00
parent 17eac3de50
commit 62e1276881
3 changed files with 344 additions and 66 deletions

View File

@@ -1,5 +1,6 @@
import json
import subprocess
from functools import partial
import gi
@@ -12,6 +13,8 @@ class StoragePage(Adw.Bin):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.selected_disk = None
# Main Layout
clamp = Adw.Clamp()
clamp.set_maximum_size(600)
@@ -54,7 +57,7 @@ class StoragePage(Adw.Bin):
self.disk_rows = []
self.first_radio = None
for name, dev, icon in disks:
for i, (name, dev, icon) in enumerate(disks):
row = Adw.ActionRow()
row.set_title(name)
row.set_subtitle(f"/dev/{dev}")
@@ -64,17 +67,29 @@ class StoragePage(Adw.Bin):
if not self.first_radio:
radio = Gtk.CheckButton()
self.first_radio = radio
# Default selection
self.selected_disk = dev
else:
radio = Gtk.CheckButton()
radio.set_group(self.first_radio)
radio.set_valign(Gtk.Align.CENTER)
# Connect signal to update selection
radio.connect("toggled", self.on_disk_toggled, dev)
row.add_suffix(radio)
row.set_activatable_widget(radio)
self.disk_group.add(row)
self.disk_rows.append(row)
def on_disk_toggled(self, button, device_name):
if button.get_active():
self.selected_disk = device_name
def get_selected_disk(self):
return self.selected_disk
def get_disks(self):
try:
# lsblk -J -o NAME,SIZE,MODEL,TYPE,TRAN