summaryrefslogtreecommitdiff
path: root/src/tui.py
blob: a5932935a76499deaabbb020117d9569f2f46d49 (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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
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"
        }

# initialize appearance settings dictionary
def initialize_appearence_settings():
    """
    Read in information from configuration files and update the
    apperaance settings dictionary to the appropiate settings based on the
    configuration currently set in the config file
    """
    pass


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

def tui_runner():
    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)

tui_runner()
print(appearence_settings)
a_pause = input("this is a pause that should run after the tui is closed > ")