133 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			133 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env python3
 | |
| import sys
 | |
| from PyQt5.QtWidgets import QApplication, QMainWindow, QTabWidget, QWidget, QGridLayout, QLabel, QShortcut
 | |
| from PyQt5.QtGui import QKeySequence
 | |
| 
 | |
| class TabbedWindow(QMainWindow):
 | |
|     def __init__(self):
 | |
|         super().__init__()
 | |
| 
 | |
|         # Set the main window title and size
 | |
|         self.setWindowTitle("Display Hotkeys")
 | |
|         self.resize(300, 300)
 | |
| 
 | |
|         # Create a tab widget
 | |
|         self.tab_widget = QTabWidget()
 | |
|         self.setCentralWidget(self.tab_widget)
 | |
| 
 | |
|         # Create the first tab
 | |
|         self.tab1 = QWidget()
 | |
|         self.tab_widget.addTab(self.tab1, "Hot Keys")
 | |
| 
 | |
|         # Create a vertical layout for the first tab
 | |
|         layout1 = QGridLayout()
 | |
|         layout1.setHorizontalSpacing(30)
 | |
|         layout1.setVerticalSpacing(10)
 | |
| 
 | |
|         with open('/home/roland/.config/qtile/hotkeys.txt', 'r') as file:
 | |
|             lines = file.readlines()
 | |
|         length = len(lines)
 | |
| 
 | |
|         # Add the numbers 1-100 to the layout
 | |
|         column = 0
 | |
|         row = 0
 | |
|         switch = False
 | |
|         even_odd = 0
 | |
|         for i in range(length):
 | |
|             #print(lines[i])
 | |
|             if lines[i] == "0000\n":
 | |
|                 column += 1
 | |
|                 row = 0
 | |
|                 continue
 | |
|             if lines[i] == "Super + 1: Switch to group 1\n":
 | |
|                 switch = True
 | |
|                 even_odd = i % 2
 | |
|             if switch and even_odd == 0:
 | |
|                 if i % 2 == 0:
 | |
|                     label = QLabel(lines[i].strip())
 | |
|                     layout1.addWidget(label, row, column)
 | |
|                     column += 1
 | |
|                     # layout1.addWidget(QLabel('  '), row, column)
 | |
|                     # column += 1
 | |
|                     continue
 | |
|                 else:
 | |
|                     label = QLabel(lines[i].strip())
 | |
|                     layout1.addWidget(label, row, column)
 | |
|                     row += 1
 | |
|                     column -= 1
 | |
|                     continue
 | |
|             elif switch and even_odd == 1:
 | |
|                 if i % 2 == 1:
 | |
|                     label = QLabel(lines[i].strip())
 | |
|                     layout1.addWidget(label, row, column)
 | |
|                     column += 1
 | |
|                     # layout1.addWidget(QLabel('  '), row, column)
 | |
|                     # column += 1
 | |
|                     continue
 | |
|                 else:
 | |
|                     label = QLabel(lines[i].strip())
 | |
|                     layout1.addWidget(label, row, column)
 | |
|                     row += 1
 | |
|                     column -= 1
 | |
|                     continue
 | |
|             else:
 | |
|                 label = QLabel(lines[i].strip())
 | |
|                 layout1.addWidget(label, row, column)
 | |
|                 row += 1
 | |
| 
 | |
|         # Set the layout for the first tab
 | |
|         self.tab1.setLayout(layout1)
 | |
| 
 | |
|         # Create the second tab
 | |
|         self.tab2 = QWidget()
 | |
|         self.tab_widget.addTab(self.tab2, "Key Chords")
 | |
| 
 | |
|         # Create a vertical layout for the second tab
 | |
|         layout2 = QGridLayout()
 | |
|         layout2.setHorizontalSpacing(10)
 | |
|         layout2.setVerticalSpacing(10)
 | |
|         
 | |
|         with open('/home/roland/.config/qtile/keychords.txt', 'r') as file:
 | |
|             lines = file.readlines()
 | |
|         length = len(lines)
 | |
| 
 | |
|         # Add the numbers 101-200 to the layout
 | |
|         column = 0
 | |
|         row = 0
 | |
|         for i in range(length):
 | |
|             #print(lines[i])
 | |
|             if lines[i] == "0000\n":
 | |
|                 column += 1
 | |
|                 row = 0
 | |
|                 continue
 | |
|             row += 1
 | |
|             label = QLabel(lines[i].rstrip())
 | |
|             layout2.addWidget(label, row, column)
 | |
| 
 | |
|         # Set the layout for the second tab
 | |
|         self.tab2.setLayout(layout2)
 | |
| 
 | |
|         # Assign hotkeys to open each tab
 | |
|         self.hotkey1 = QShortcut(QKeySequence("Alt+1"), self)
 | |
|         self.hotkey1.activated.connect(lambda: self.tab_widget.setCurrentWidget(self.tab1))
 | |
| 
 | |
|         self.hotkey2 = QShortcut(QKeySequence("Alt+2"), self)
 | |
|         self.hotkey2.activated.connect(lambda: self.tab_widget.setCurrentWidget(self.tab2))
 | |
| 
 | |
|         # Assign a hotkey to toggle between the tabs
 | |
|         self.toggle_key = QShortcut(QKeySequence("Alt+n"), self)
 | |
|         self.toggle_key.activated.connect(self.toggle_tabs)
 | |
| 
 | |
|     def toggle_tabs(self):
 | |
|         current_index = self.tab_widget.currentIndex()
 | |
|         num_tabs = self.tab_widget.count()
 | |
|         next_index = (current_index + 1) % num_tabs
 | |
|         self.tab_widget.setCurrentIndex(next_index)
 | |
| 
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     app = QApplication(sys.argv)
 | |
|     window = TabbedWindow()
 | |
|     window.show()
 | |
|     sys.exit(app.exec_())
 |