コード例 #1
0
ファイル: use_zfs.py プロジェクト: intfrr/gbi
    def __init__(self, button3):
        self.button3 = button3
        self.box1 = Gtk.VBox(False, 0)
        self.box1.show()
        box2 = Gtk.HBox(False, 0)
        self.box1.pack_start(box2, True, True, 0)
        box2.show()
        # Title
        Title = Gtk.Label(
            "<b><span size='xx-large'>ZFS Configuration</span></b>")
        Title.set_use_markup(True)
        # Chose disk
        sw = Gtk.ScrolledWindow(hexpand=True, vexpand=True)
        sw.set_shadow_type(Gtk.ShadowType.ETCHED_IN)
        sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
        store = Gtk.TreeStore(str, str, str, 'gboolean')
        for disk in zfs_disk_query():
            dsk = disk.partition(':')[0].rstrip()
            dsk_name = disk.partition(':')[2].rstrip()
            dsk_size = zfs_disk_size_query(dsk).rstrip()
            store.append(None, [dsk, dsk_size, dsk_name, False])
        treeView = Gtk.TreeView(store)
        treeView.set_model(store)
        treeView.set_rules_hint(True)
        self.check_cell = Gtk.CellRendererToggle()
        self.check_cell.set_property('activatable', True)
        self.check_cell.connect('toggled', self.col1_toggled_cb, store)
        cell = Gtk.CellRendererText()
        column = Gtk.TreeViewColumn(None, cell, text=0)
        column_header = Gtk.Label('Disk')
        column_header.set_use_markup(True)
        column_header.show()
        column.set_widget(column_header)
        column.set_sort_column_id(0)
        cell2 = Gtk.CellRendererText()
        column2 = Gtk.TreeViewColumn(None, cell2, text=0)
        column_header2 = Gtk.Label('Size(MB)')
        column_header2.set_use_markup(True)
        column_header2.show()
        column2.set_widget(column_header2)
        cell3 = Gtk.CellRendererText()
        column3 = Gtk.TreeViewColumn(None, cell3, text=0)
        column_header3 = Gtk.Label('Name')
        column_header3.set_use_markup(True)
        column_header3.show()
        column3.set_widget(column_header3)
        column1 = Gtk.TreeViewColumn("Check", self.check_cell)
        column1.add_attribute(self.check_cell, "active", 3)
        column.set_attributes(cell, text=0)
        column2.set_attributes(cell2, text=1)
        column3.set_attributes(cell3, text=2)
        treeView.append_column(column1)
        treeView.append_column(column)
        treeView.append_column(column2)
        treeView.append_column(column3)
        tree_selection = treeView.get_selection()
        tree_selection.set_mode(Gtk.SelectionMode.SINGLE)
        sw.add(treeView)
        sw.show()
        self.mirrorTips = Gtk.Label('Please select one drive')
        self.mirrorTips.set_justify(Gtk.Justification.LEFT)
        self.mirrorTips.set_alignment(0.01, 0.5)
        # Mirro, raidz and strip
        self.mirror = 'none'
        mirror_label = Gtk.Label('<b>Pool Type</b>')
        mirror_label.set_use_markup(True)
        mirror_box = Gtk.ComboBoxText()
        mirror_box.append_text("none")
        mirror_box.append_text("mirror")
        mirror_box.append_text("raidz1")
        mirror_box.append_text("raidz2")
        mirror_box.append_text("raidz3")
        mirror_box.append_text("strip")
        mirror_box.connect('changed', self.mirror_selection)
        mirror_box.set_active(0)

        # Pool Name
        self.zpool = False
        pool_check = Gtk.CheckButton('Pool Name')
        pool_check.connect("toggled", self.on_check_poll)
        self.pool = Gtk.Entry()
        self.pool.set_text('zroot')
        self.pool.set_sensitive(False)
        # Creating MBR or GPT drive
        label = Gtk.Label('<b>Partition Scheme</b>')
        label.set_use_markup(True)
        # Adding a combo box to selecting MBR or GPT sheme.
        self.scheme = 'GPT'
        shemebox = Gtk.ComboBoxText()
        shemebox.append_text("GPT")
        shemebox.append_text("MBR")
        shemebox.connect('changed', self.sheme_selection)
        shemebox.set_active(0)
        # Force 4k Sectors
        self.zfs_four_k = "False"
        check = Gtk.CheckButton("Force ZFS 4k block size")
        check.connect("toggled", self.on_check)
        # Swap Size
        ram = Popen(memory,
                    shell=True,
                    stdin=PIPE,
                    stdout=PIPE,
                    stderr=STDOUT,
                    close_fds=True)
        mem = ram.stdout.read()
        swap = int(mem.partition(':')[2].strip()) / (1024 * 1024)
        swp_size_label = Gtk.Label('<b>Swap Size(MB)</b>')
        swp_size_label.set_use_markup(True)
        self.swap_entry = Gtk.Entry()
        self.swap_entry.set_text(str(swap))
        self.swap_entry.connect('changed', self.digit_only)
        # Swap encription
        self.swap_encrypt = False
        self.swap_encrypt_check = Gtk.CheckButton("Encrypt Swap")
        self.swap_encrypt_check.connect("toggled", self.on_check_swap_encrypt)
        # Swap mirror
        self.swap_mirror = False
        swap_mirror_check = Gtk.CheckButton("Mirror Swap")
        swap_mirror_check.connect("toggled", self.on_check_swap_mirror)
        # GELI Disk encription
        self.disk_encript = False
        encrypt_check = Gtk.CheckButton("Encrypt Disk")
        encrypt_check.connect("toggled", self.on_check_encrypt)
        # password
        self.passwd_label = Gtk.Label("Password")
        self.password = Gtk.Entry()
        self.password.set_sensitive(False)
        self.password.set_visibility(False)
        self.password.connect("changed", self.passwdstrength)
        self.strenght_label = Gtk.Label()
        self.strenght_label.set_alignment(0.1, 0.5)
        self.vpasswd_label = Gtk.Label("Verify it")
        self.repassword = Gtk.Entry()
        self.repassword.set_sensitive(False)
        self.repassword.set_visibility(False)
        self.repassword.connect("changed", self.passwdVerification)
        # set image for password matching
        self.img = Gtk.Image()
        self.img.set_alignment(0.2, 0.5)
        #table = Gtk.Table(12, 12, True)
        grid = Gtk.Grid()
        grid.set_row_spacing(10)
        # grid.set_column_homogeneous(True)
        # grid.set_row_homogeneous(True)
        grid.attach(Title, 1, 0, 8, 2)
        grid.attach(mirror_label, 1, 2, 1, 1)
        grid.attach(mirror_box, 2, 2, 1, 1)
        grid.attach(label, 6, 2, 2, 1)
        grid.attach(shemebox, 8, 2, 1, 1)
        grid.attach(self.mirrorTips, 1, 3, 8, 1)
        grid.attach(sw, 1, 4, 8, 3)
        grid.attach(pool_check, 5, 8, 2, 1)
        grid.attach(self.pool, 7, 8, 2, 1)
        grid.attach(check, 1, 8, 3, 1)
        grid.attach(swp_size_label, 5, 9, 2, 1)
        grid.attach(self.swap_entry, 7, 9, 2, 1)
        #grid.attach(self.swap_encrypt_check, 9, 15, 11, 12)
        #grid.attach(swap_mirror_check, 9, 15, 11, 12)
        grid.attach(encrypt_check, 1, 9, 2, 1)
        grid.attach(self.passwd_label, 1, 10, 1, 1)
        grid.attach(self.password, 2, 10, 2, 1)
        grid.attach(self.strenght_label, 4, 10, 2, 1)
        grid.attach(self.vpasswd_label, 1, 11, 1, 1)
        grid.attach(self.repassword, 2, 11, 2, 1)
        grid.attach(self.img, 4, 11, 2, 1)
        box2.pack_start(grid, True, True, 10)
        return
コード例 #2
0
 def __init__(self, button3):
     self.button3 = button3
     self.box1 = Gtk.VBox(False, 0)
     self.box1.show()
     box2 = Gtk.HBox(False, 0)
     self.box1.pack_start(box2, True, True, 0)
     box2.show()
     # Title
     Title = Gtk.Label("<b><span size='xx-large'>UFS Full Disk Configuration</span></b>")
     Title.set_use_markup(True)
     # Chose disk
     sw = Gtk.ScrolledWindow(hexpand=True, vexpand=True)
     sw.set_shadow_type(Gtk.ShadowType.ETCHED_IN)
     sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
     store = Gtk.TreeStore(str, str, str,'gboolean')
     for disk in zfs_disk_query():
         dsk = disk.partition(':')[0].rstrip()
         dsk_name = disk.partition(':')[2].rstrip()
         dsk_size = zfs_disk_size_query(dsk).rstrip()
         store.append(None, [dsk, dsk_size, dsk_name, False])
     treeView = Gtk.TreeView(store)
     treeView.set_model(store)
     treeView.set_rules_hint(True)
     self.check_cell = Gtk.CellRendererToggle()
     self.check_cell.set_property('activatable', True)
     self.check_cell.connect('toggled', self.col1_toggled_cb, store)
     cell = Gtk.CellRendererText()
     column = Gtk.TreeViewColumn(None, cell, text=0)
     column_header = Gtk.Label('Disk')
     column_header.set_use_markup(True)
     column_header.show()
     column.set_widget(column_header)
     column.set_sort_column_id(0)
     cell2 = Gtk.CellRendererText()
     column2 = Gtk.TreeViewColumn(None, cell2, text=0)
     column_header2 = Gtk.Label('Size(MB)')
     column_header2.set_use_markup(True)
     column_header2.show()
     column2.set_widget(column_header2)
     cell3 = Gtk.CellRendererText()
     column3 = Gtk.TreeViewColumn(None, cell3, text=0)
     column_header3 = Gtk.Label('Name')
     column_header3.set_use_markup(True)
     column_header3.show()
     column3.set_widget(column_header3)
     column1 = Gtk.TreeViewColumn("Check", self.check_cell)
     column1.add_attribute(self.check_cell, "active", 3)
     column.set_attributes(cell, text=0)
     column2.set_attributes(cell2, text=1)
     column3.set_attributes(cell3, text=2)
     treeView.append_column(column1)
     treeView.append_column(column)
     treeView.append_column(column2)
     treeView.append_column(column3)
     tree_selection = treeView.get_selection()
     tree_selection.set_mode(Gtk.SelectionMode.SINGLE)
     sw.add(treeView)
     sw.show()
     self.mirrorTips = Gtk.Label('Please select one drive')
     self.mirrorTips.set_justify(Gtk.Justification.LEFT)
     self.mirrorTips.set_alignment(0.01, 0.5)
     self.mirror = False
     mirror_check = Gtk.CheckButton('Disk Mirror')
     mirror_check.connect("toggled", self.on_check_mirror)
     self.mirrorbl_box = Gtk.ComboBoxText()
     self.mirrorbl_box.append_text("load")
     self.mirrorbl_box.append_text("prefer")
     self.mirrorbl_box.append_text("round-robin")
     self.mirrorbl_box.append_text("split")
     self.mirrorbl_box.connect('changed', self.mirror_selection)
     self.mirrorbl_box.set_active(0)
     self.mirrorbl_box.set_sensitive(False)
     self.mirrorbl = 'load'
     # Creating MBR or GPT drive
     label = Gtk.Label('<b>Partition Scheme</b>')
     label.set_use_markup(True)
     # Adding a combo box to selecting MBR or GPT sheme.
     self.scheme = 'GPT'
     shemebox = Gtk.ComboBoxText()
     shemebox.append_text("GPT")
     shemebox.append_text("MBR")
     shemebox.connect('changed', self.sheme_selection)
     shemebox.set_active(0)
     # Swap Size
     ram = Popen(memory, shell=True, stdin=PIPE, stdout=PIPE, stderr=STDOUT,
     close_fds=True)
     mem = ram.stdout.read()
     swap = int(mem.partition(':')[2].strip()) / (1024 * 1024)
     swp_size_label = Gtk.Label('<b>Swap Size(MB)</b>')
     swp_size_label.set_use_markup(True)
     self.swap_entry = Gtk.Entry()
     self.swap_entry.set_text(str(swap))
     self.swap_entry.connect('changed', self.digit_only)
     # Swap encription
     self.swap_encrypt = False
     self.swap_encrypt_check = Gtk.CheckButton("Encrypt Swap")
     self.swap_encrypt_check.connect("toggled", self.on_check_swap_encrypt)
     # Swap mirror
     self.swap_mirror = False
     swap_mirror_check = Gtk.CheckButton("Mirror Swap")
     swap_mirror_check.connect("toggled", self.on_check_swap_mirror)
     # GELI Disk encription
     self.disk_encript = False
     encrypt_check = Gtk.CheckButton("Encrypt Disk")
     encrypt_check.connect("toggled", self.on_check_encrypt)
     encrypt_check.set_sensitive(True)
     # password
     self.passwd_label = Gtk.Label("Password")
     self.password = Gtk.Entry()
     self.password.set_sensitive(False)
     self.password.set_visibility(False)
     self.password.connect("changed", self.passwdstrength)
     self.strenght_label = Gtk.Label()
     self.strenght_label.set_alignment(0.1, 0.5)
     self.vpasswd_label = Gtk.Label("Verify it")
     self.repassword = Gtk.Entry()
     self.repassword.set_sensitive(False)
     self.repassword.set_visibility(False)
     self.repassword.connect("changed", self.passwdVerification)
     # set image for password matching
     fslabel = Gtk.Label("Mount point:")
     self.fstype = Gtk.ComboBoxText()
     self.fstype.append_text('UFS')
     self.fstype.append_text('UFS+S')
     self.fstype.append_text('UFS+J')
     self.fstype.append_text('UFS+SUJ')
     self.fstype.set_active(3)
     self.fstype.connect("changed", self.chosefs)
     self.fs = "UFS+SUJ"
     grid = Gtk.Grid()
     grid.set_row_spacing(10)
     # grid.set_column_homogeneous(True)
     # grid.set_row_homogeneous(True)
     grid.attach(Title, 0, 0, 9, 2)
     grid.attach(mirror_check, 0, 2, 1, 1)
     grid.attach(self.mirrorbl_box, 1, 2, 1, 1)
     grid.attach(label, 0, 9, 2, 1)
     grid.attach(shemebox, 2, 9, 1, 1)
     grid.attach(self.mirrorTips, 1, 3, 8, 1)
     grid.attach(sw, 0, 4, 9, 4)
     grid.attach(fslabel, 5, 9, 2, 1)
     grid.attach(self.fstype, 7, 9, 1, 1)
     grid.attach(swp_size_label, 5, 2, 2, 1)
     grid.attach(self.swap_entry, 7, 2, 1, 1)
     #grid.attach(self.swap_encrypt_check, 9, 15, 11, 12)
     #grid.attach(swap_mirror_check, 9, 15, 11, 12)
     #grid.attach(encrypt_check, 1, 9, 2, 1)
     #grid.attach(self.passwd_label, 1, 10, 1, 1)
     #grid.attach(self.password, 2, 10, 2, 1)
     #grid.attach(self.strenght_label, 4, 10, 2, 1)
     #grid.attach(self.vpasswd_label, 1, 11, 1, 1)
     #grid.attach(self.repassword, 2, 11, 2, 1)
     #grid.attach(self.img, 4, 11, 2, 1)
     box2.pack_start(grid, True, True, 10)
     return
コード例 #3
0
ファイル: use_zfs.py プロジェクト: GhostBSD/gbi
    def __init__(self, button3):
        self.button3 = button3
        self.box1 = Gtk.VBox(False, 0)
        self.box1.show()
        box2 = Gtk.HBox(False, 0)
        self.box1.pack_start(box2, True, True, 0)
        box2.show()
        # Title
        Title = Gtk.Label("<b><span size='xx-large'>ZFS Configuration</span></b>")
        Title.set_use_markup(True)
        # Chose disk
        sw = Gtk.ScrolledWindow(hexpand=True, vexpand=True)
        sw.set_shadow_type(Gtk.ShadowType.ETCHED_IN)
        sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
        self.store = Gtk.TreeStore(str, str, str, 'gboolean')
        for disk in zfs_disk_query():
            dsk = disk.partition(':')[0].rstrip()
            dsk_name = disk.partition(':')[2].rstrip()
            dsk_size = zfs_disk_size_query(dsk).rstrip()
            self.store.append(None, [dsk, dsk_size, dsk_name, False])
        treeView = Gtk.TreeView(self.store)
        treeView.set_model(self.store)
        treeView.set_rules_hint(True)
        self.check_cell = Gtk.CellRendererToggle()
        self.check_cell.set_property('activatable', True)
        self.check_cell.connect('toggled', self.col1_toggled_cb, self.store)
        cell = Gtk.CellRendererText()
        column = Gtk.TreeViewColumn(None, cell, text=0)
        column_header = Gtk.Label('Disk')
        column_header.set_use_markup(True)
        column_header.show()
        column.set_widget(column_header)
        column.set_sort_column_id(0)
        cell2 = Gtk.CellRendererText()
        column2 = Gtk.TreeViewColumn(None, cell2, text=0)
        column_header2 = Gtk.Label('Size(MB)')
        column_header2.set_use_markup(True)
        column_header2.show()
        column2.set_widget(column_header2)
        cell3 = Gtk.CellRendererText()
        column3 = Gtk.TreeViewColumn(None, cell3, text=0)
        column_header3 = Gtk.Label('Name')
        column_header3.set_use_markup(True)
        column_header3.show()
        column3.set_widget(column_header3)
        column1 = Gtk.TreeViewColumn("Check", self.check_cell)
        column1.add_attribute(self.check_cell, "active", 3)
        column.set_attributes(cell, text=0)
        column2.set_attributes(cell2, text=1)
        column3.set_attributes(cell3, text=2)
        treeView.append_column(column1)
        treeView.append_column(column)
        treeView.append_column(column2)
        treeView.append_column(column3)
        tree_selection = treeView.get_selection()
        tree_selection.set_mode(Gtk.SelectionMode.SINGLE)
        sw.add(treeView)
        sw.show()
        self.mirrorTips = Gtk.Label('Please select one drive')
        self.mirrorTips.set_justify(Gtk.Justification.LEFT)
        self.mirrorTips.set_alignment(0.01, 0.5)
        # Mirro, raidz and stripe
        self.mirror = 'none'
        mirror_label = Gtk.Label('<b>Pool Type</b>')
        mirror_label.set_use_markup(True)
        mirror_box = Gtk.ComboBoxText()
        mirror_box.append_text("single disk")
        mirror_box.append_text("2 disk mirror")
        mirror_box.append_text("3 disk raidz1")
        mirror_box.append_text("4 disk raidz2")
        mirror_box.append_text("5 disk raidz3")
        mirror_box.append_text("2+ disk stripe")
        mirror_box.connect('changed', self.mirror_selection)
        mirror_box.set_active(0)

        # Pool Name
        self.zpool = False
        pool_check = Gtk.CheckButton('Pool Name')
        pool_check.connect("toggled", self.on_check_poll)
        self.pool = Gtk.Entry()
        self.pool.set_text('tank')
        self.pool.set_sensitive(False)
        # Creating MBR or GPT drive
        scheme_label = Gtk.Label('<b>Partition Scheme</b>')
        scheme_label.set_use_markup(True)
        # Adding a combo box to selecting MBR or GPT sheme.
        self.scheme = 'GPT'
        shemebox = Gtk.ComboBoxText()
        shemebox.append_text("GPT")
        shemebox.append_text("MBR")
        shemebox.connect('changed', self.sheme_selection)
        shemebox.set_active(0)
        if bios_or_uefi() == "UEFI":
            shemebox.set_sensitive(False)
        else:
            shemebox.set_sensitive(True)
        # Force 4k Sectors
        self.zfs_four_k = "True"
        zfs4kcheck = Gtk.CheckButton("Force ZFS 4k block size")
        zfs4kcheck.connect("toggled", self.on_check)
        zfs4kcheck.set_active(True)
        # Swap Size
        ram = Popen(memory, shell=True, stdin=PIPE, stdout=PIPE, stderr=STDOUT,
                    universal_newlines=True, close_fds=True)
        mem = ram.stdout.read()
        swap = 512
        swp_size_label = Gtk.Label('<b>Swap Size(MB)</b>')
        swp_size_label.set_use_markup(True)
        self.swap_entry = Gtk.Entry()
        self.swap_entry.set_text(str(swap))
        self.swap_entry.connect('changed', self.digit_only)
        # Swap encription
        self.swap_encrypt = False
        self.swap_encrypt_check = Gtk.CheckButton("Encrypt Swap")
        self.swap_encrypt_check.connect("toggled", self.on_check_swap_encrypt)
        # Swap mirror
        self.swap_mirror = False
        swap_mirror_check = Gtk.CheckButton("Mirror Swap")
        swap_mirror_check.connect("toggled", self.on_check_swap_mirror)
        # GELI Disk encription
        self.disk_encript = False
        encrypt_check = Gtk.CheckButton("Encrypt Disk")
        encrypt_check.connect("toggled", self.on_check_encrypt)
        encrypt_check.set_sensitive(True)
        # password
        self.passwd_label = Gtk.Label("Password")
        self.password = Gtk.Entry()
        self.password.set_sensitive(False)
        self.password.set_visibility(False)
        self.password.connect("changed", self.passwdstrength)
        self.strenght_label = Gtk.Label()
        self.strenght_label.set_alignment(0.1, 0.5)
        self.vpasswd_label = Gtk.Label("Verify it")
        self.repassword = Gtk.Entry()
        self.repassword.set_sensitive(False)
        self.repassword.set_visibility(False)
        self.repassword.connect("changed", self.passwdVerification)
        # set image for password matching
        self.img = Gtk.Image()
        self.img.set_alignment(0.2, 0.5)
        # table = Gtk.Table(12, 12, True)
        grid = Gtk.Grid()
        grid.set_row_spacing(10)
        # grid.set_column_homogeneous(True)
        # grid.set_row_homogeneous(True)
        grid.attach(Title, 1, 1, 10, 1)
        grid.attach(mirror_label, 1, 2, 1, 1)
        grid.attach(mirror_box, 2, 2, 1, 1)
        grid.attach(pool_check, 7, 2, 2, 1)
        grid.attach(self.pool, 9, 2, 2, 1)
        grid.attach(self.mirrorTips, 1, 3, 8, 1)
        grid.attach(zfs4kcheck, 9, 3, 2, 1)
        grid.attach(sw, 1, 4, 10, 3)
        grid.attach(scheme_label, 1, 9, 1, 1)
        grid.attach(shemebox, 2, 9, 1, 1)
        grid.attach(swp_size_label, 9, 9, 1, 1)
        grid.attach(self.swap_entry, 10, 9, 1, 1)
        # grid.attach(self.swap_encrypt_check, 9, 15, 11, 12)
        # grid.attach(swap_mirror_check, 9, 15, 11, 12)
        # grid.attach(encrypt_check, 2, 8, 2, 1)
        # grid.attach(self.passwd_label, 1, 9, 1, 1)
        # grid.attach(self.password, 2, 9, 2, 1)
        # grid.attach(self.strenght_label, 4, 9, 2, 1)
        # grid.attach(self.vpasswd_label, 1, 10, 1, 1)
        # grid.attach(self.repassword, 2, 10, 2, 1)
        # grid.attach(self.img, 4, 10, 2, 1)
        box2.pack_start(grid, True, True, 10)
        return
コード例 #4
0
 def __init__(self, button3):
     self.button3 = button3
     self.box1 = Gtk.VBox(False, 0)
     self.box1.show()
     box2 = Gtk.HBox(False, 0)
     self.box1.pack_start(box2, True, True, 0)
     box2.show()
     # Title
     Title = Gtk.Label(
         "<b><span size='xx-large'>UFS Full Disk Configuration</span></b>")
     Title.set_use_markup(True)
     # Chose disk
     sw = Gtk.ScrolledWindow(hexpand=True, vexpand=True)
     sw.set_shadow_type(Gtk.ShadowType.ETCHED_IN)
     sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
     store = Gtk.TreeStore(str, str, str, 'gboolean')
     for disk in zfs_disk_query():
         dsk = disk.partition(':')[0].rstrip()
         dsk_name = disk.partition(':')[2].rstrip()
         dsk_size = zfs_disk_size_query(dsk).rstrip()
         store.append(None, [dsk, dsk_size, dsk_name, False])
     treeView = Gtk.TreeView(store)
     treeView.set_model(store)
     treeView.set_rules_hint(True)
     self.check_cell = Gtk.CellRendererToggle()
     self.check_cell.set_property('activatable', True)
     self.check_cell.connect('toggled', self.col1_toggled_cb, store)
     cell = Gtk.CellRendererText()
     column = Gtk.TreeViewColumn(None, cell, text=0)
     column_header = Gtk.Label('Disk')
     column_header.set_use_markup(True)
     column_header.show()
     column.set_widget(column_header)
     column.set_sort_column_id(0)
     cell2 = Gtk.CellRendererText()
     column2 = Gtk.TreeViewColumn(None, cell2, text=0)
     column_header2 = Gtk.Label('Size(MB)')
     column_header2.set_use_markup(True)
     column_header2.show()
     column2.set_widget(column_header2)
     cell3 = Gtk.CellRendererText()
     column3 = Gtk.TreeViewColumn(None, cell3, text=0)
     column_header3 = Gtk.Label('Name')
     column_header3.set_use_markup(True)
     column_header3.show()
     column3.set_widget(column_header3)
     column1 = Gtk.TreeViewColumn("Check", self.check_cell)
     column1.add_attribute(self.check_cell, "active", 3)
     column.set_attributes(cell, text=0)
     column2.set_attributes(cell2, text=1)
     column3.set_attributes(cell3, text=2)
     treeView.append_column(column1)
     treeView.append_column(column)
     treeView.append_column(column2)
     treeView.append_column(column3)
     tree_selection = treeView.get_selection()
     tree_selection.set_mode(Gtk.SelectionMode.SINGLE)
     sw.add(treeView)
     sw.show()
     self.mirrorTips = Gtk.Label('Please select one drive')
     self.mirrorTips.set_justify(Gtk.Justification.LEFT)
     self.mirrorTips.set_alignment(0.01, 0.5)
     self.mirror = False
     mirror_check = Gtk.CheckButton('Disk Mirror')
     mirror_check.connect("toggled", self.on_check_mirror)
     self.mirrorbl_box = Gtk.ComboBoxText()
     self.mirrorbl_box.append_text("load")
     self.mirrorbl_box.append_text("prefer")
     self.mirrorbl_box.append_text("round-robin")
     self.mirrorbl_box.append_text("split")
     self.mirrorbl_box.connect('changed', self.mirror_selection)
     self.mirrorbl_box.set_active(0)
     self.mirrorbl_box.set_sensitive(False)
     self.mirrorbl = 'load'
     # Creating MBR or GPT drive
     label = Gtk.Label('<b>Partition Scheme</b>')
     label.set_use_markup(True)
     # Adding a combo box to selecting MBR or GPT sheme.
     self.scheme = 'GPT'
     shemebox = Gtk.ComboBoxText()
     shemebox.append_text("GPT")
     shemebox.append_text("MBR")
     shemebox.connect('changed', self.sheme_selection)
     shemebox.set_active(0)
     if bios_or_uefi() == "UEFI":
         shemebox.set_sensitive(False)
     else:
         shemebox.set_sensitive(True)
     # Swap Size
     ram = Popen(memory,
                 shell=True,
                 stdin=PIPE,
                 stdout=PIPE,
                 stderr=STDOUT,
                 universal_newlines=True,
                 close_fds=True)
     mem = ram.stdout.read()
     swap = 2048
     swp_size_label = Gtk.Label('<b>Swap Size(MB)</b>')
     swp_size_label.set_use_markup(True)
     self.swap_entry = Gtk.Entry()
     self.swap_entry.set_text(str(swap))
     self.swap_entry.connect('changed', self.digit_only)
     # Swap encription
     self.swap_encrypt = False
     self.swap_encrypt_check = Gtk.CheckButton("Encrypt Swap")
     self.swap_encrypt_check.connect("toggled", self.on_check_swap_encrypt)
     # Swap mirror
     self.swap_mirror = False
     swap_mirror_check = Gtk.CheckButton("Mirror Swap")
     swap_mirror_check.connect("toggled", self.on_check_swap_mirror)
     # GELI Disk encription
     self.disk_encript = False
     encrypt_check = Gtk.CheckButton("Encrypt Disk")
     encrypt_check.connect("toggled", self.on_check_encrypt)
     encrypt_check.set_sensitive(True)
     # password
     self.passwd_label = Gtk.Label("Password")
     self.password = Gtk.Entry()
     self.password.set_sensitive(False)
     self.password.set_visibility(False)
     self.password.connect("changed", self.passwdstrength)
     self.strenght_label = Gtk.Label()
     self.strenght_label.set_alignment(0.1, 0.5)
     self.vpasswd_label = Gtk.Label("Verify it")
     self.repassword = Gtk.Entry()
     self.repassword.set_sensitive(False)
     self.repassword.set_visibility(False)
     self.repassword.connect("changed", self.passwdVerification)
     # set image for password matching
     fslabel = Gtk.Label("File System:")
     self.fstype = Gtk.ComboBoxText()
     self.fstype.append_text('UFS')
     self.fstype.append_text('UFS+S')
     self.fstype.append_text('UFS+J')
     self.fstype.append_text('UFS+SUJ')
     self.fstype.set_active(3)
     self.fstype.connect("changed", self.chosefs)
     self.fs = "UFS+SUJ"
     grid = Gtk.Grid()
     grid.set_row_spacing(10)
     # grid.set_column_homogeneous(True)
     # grid.set_row_homogeneous(True)
     grid.attach(Title, 0, 0, 9, 2)
     grid.attach(mirror_check, 0, 2, 1, 1)
     grid.attach(self.mirrorbl_box, 1, 2, 1, 1)
     grid.attach(label, 0, 9, 2, 1)
     grid.attach(shemebox, 2, 9, 1, 1)
     grid.attach(self.mirrorTips, 1, 3, 8, 1)
     grid.attach(sw, 0, 4, 9, 4)
     grid.attach(fslabel, 5, 9, 2, 1)
     grid.attach(self.fstype, 7, 9, 1, 1)
     grid.attach(swp_size_label, 5, 2, 2, 1)
     grid.attach(self.swap_entry, 7, 2, 1, 1)
     # grid.attach(self.swap_encrypt_check, 9, 15, 11, 12)
     # grid.attach(swap_mirror_check, 9, 15, 11, 12)
     # grid.attach(encrypt_check, 1, 9, 2, 1)
     # grid.attach(self.passwd_label, 1, 10, 1, 1)
     # grid.attach(self.password, 2, 10, 2, 1)
     # grid.attach(self.strenght_label, 4, 10, 2, 1)
     # grid.attach(self.vpasswd_label, 1, 11, 1, 1)
     # grid.attach(self.repassword, 2, 11, 2, 1)
     # grid.attach(self.img, 4, 11, 2, 1)
     box2.pack_start(grid, True, True, 10)
     return