===== armor_display_profile — lines 7-29 ===== 7 def armor_display_profile(): 8 forced = os.environ.get( 9 "ARMOR_DISPLAY_PROFILE", 10 "", 11 ).strip().lower() 12 13 if forced in ["pi", "laptop"]: 14 return forced 15 16 host = socket.gethostname() 17 arch = ( 18 os.uname().machine 19 if hasattr(os, "uname") 20 else "" 21 ) 22 23 if host == "armor-core": 24 return "pi" 25 26 if arch == "x86_64": 27 return "laptop" 28 29 return "pi" ===== __init__ — lines 147-217 ===== 147 def __init__(self): 148 super().__init__() 149 150 self.setWindowTitle( 151 get_window_title() 152 ) 153 154 if ARMOR_DISPLAY_PROFILE == "laptop": 155 self.setWindowTitle( 156 "ARMOR OS - Laptop Command Station" 157 ) 158 159 self.setWindowFlag( 160 Qt.FramelessWindowHint, 161 True, 162 ) 163 164 self.stack = ArmorStationStack(self) 165 166 if ARMOR_DISPLAY_PROFILE == "laptop": 167 home_page = LaptopDashboard( 168 self.stack 169 ) 170 else: 171 home_page = Dashboard( 172 self.stack 173 ) 174 175 self.shire_page = ShirePage( 176 self.stack 177 ) 178 179 pages = [ 180 home_page, 181 self.shire_page, 182 ForgePage(self.stack), 183 ArchivePage(self.stack), 184 AtlasPage(self.stack), 185 MediaPage(self.stack), 186 SystemPage(self.stack), 187 AgentsPage(self.stack), 188 TasksPage(self.stack), 189 SettingsPage(self.stack), 190 SentinelPage(self.stack), 191 EducationPage(self.stack), 192 ] 193 194 for page in pages: 195 self.stack.addWidget(page) 196 197 layout = QVBoxLayout(self) 198 layout.setContentsMargins(0, 0, 0, 0) 199 layout.setSpacing(0) 200 201 self.prompt_bar = None 202 203 if ARMOR_DISPLAY_PROFILE == "laptop": 204 self.prompt_bar = GlobalPromptBar( 205 self.stack, 206 self.shire_page, 207 self, 208 ) 209 210 layout.addWidget( 211 self.prompt_bar 212 ) 213 214 layout.addWidget( 215 self.stack, 216 1, 217 ) ===== main — lines 220-233 ===== 220 def main(): 221 app = QApplication(sys.argv) 222 223 app.setStyleSheet(""" 224 QMainWindow, QWidget, QStackedWidget { 225 background-color: #000000; 226 color: #e8fff2; 227 } 228 """) 229 230 window = ArmorOS() 231 window.showFullScreen() 232 233 return app.exec_()