summaryrefslogtreecommitdiff
path: root/src/tui.py
blob: c73c3f2bd57a5d4612de27fd750bd926cd4c98ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import pytermgui as ptg



appearence_settings = {
        "window_gaps": False,
        "titlebars": False,
        "win_boarders": False,
        "inner_gap_sz": "6",
        "outter_gap_sz": "6",
        "win_boarders_width": "6",
        "i3-font": "default",
        "i3-font-size": "10"
        }

# callback functions
def set_window_gaps(state) -> None:
    appearence_settings['window_gaps'] = state


with ptg.WindowManager() as manager:
    #layout = ptg.Layout() 
    #layout.add_slot("Body Left", index=0)
    #layout.add_slot("Body Right", width=0.5, index=1)
    i3window = (
        ptg.Window(
                "[bold]i3 Configuration Settings",
                ptg.Label("[italic gray]gaps", parent_align=0),
                ptg.Splitter(
                    ptg.Label(
                        "Window gaps", 
                        parent_align=0
                        ), 
                    ptg.Checkbox(
                        parent_align=2, 
                        callback=set_window_gaps, 
                        checked=appearence_settings["window_gaps"]
                        )
                    ),
                ptg.InputField(prompt="Inner Gaps: ", value=appearence_settings["inner_gap_sz"]),
                ptg.InputField(prompt="Outer Gaps: ", value=appearence_settings["outter_gap_sz"]),
                ptg.Label(""),
                ptg.Label("[italic gray]Window Boarders", parent_align=0),
                ptg.Splitter(
                    ptg.Label(
                        "Titlebars", 
                        parent_align=0
                        ), 
                    ptg.Checkbox(
                        parent_align=2
                        )
                    ),
                ptg.Splitter(ptg.Label("Window Boarders", parent_align=0), ptg.Checkbox(parent_align=2)),
                ptg.InputField(prompt="Boarder Width: "),
                ptg.Label(""),
                ptg.Label("[italic gray]Font", parent_align=0),
                ptg.InputField(prompt="Font: ", value=appearence_settings["i3-font"]),
                ptg.InputField(prompt="Font Size: ", value=appearence_settings["i3-font-size"]),
                ptg.Button("Save Changes")
                  )
                       .set_title("[italic inverse !gradient(60)]i3 Configuration[/!]")
                       )         
    polybar_window = (
        ptg.Window(
                "[bold]Polybar Configuration Settings",
                ptg.Label("[italic gray]Font", parent_align=0),
                ptg.InputField(prompt="Font: ", value=appearence_settings["i3-font"]),
                ptg.InputField(prompt="Font Size: ", value=appearence_settings["i3-font-size"]),
                ptg.Label(""),
                ptg.Label("[italic gray]Modules", parent_align=0),
                ptg.InputField(prompt="Font: ", value=appearence_settings["i3-font"]),
                ptg.InputField(prompt="Font Size: ", value=appearence_settings["i3-font-size"]),

                ptg.Button("Save Changes")
                )
                  .set_title("[italic inverse !gradient(45)]Polybar Configuration"))    
    
    #layout.assign(polybar_window, index=0)
    #layout.assign(i3window, index=1)
    manager.add(i3window)
    manager.add(polybar_window)