MCPcopy Create free account
hub / github.com/PierreGode/Ragnar / PagerDisplay

Class PagerDisplay

pager/pager_display.py:149–1327  ·  view source on GitHub ↗

Multi-screen pager dashboard for Ragnar.

Source from the content-addressed store, hash-verified

147
148
149class PagerDisplay:
150 """Multi-screen pager dashboard for Ragnar."""
151
152 def __init__(self, shared_data):
153 self.shared_data = shared_data
154 self.config = self.shared_data.config
155 self.shared_data.ragnarstatustext2 = "Awakening..."
156 self.commentaire_ia = Commentaireia()
157 self.semaphore = threading.Semaphore(10)
158
159 # Initialize pagerctl
160 try:
161 logger.info("Initializing pagerctl display...")
162 self.pager = Pager()
163 self.pager.init()
164 self.pager.set_rotation(270) # Landscape 480x222
165
166 self.width = self.pager.width # 222
167 self.height = self.pager.height # 480
168 logger.info(f"Pager display initialized: {self.width}x{self.height}")
169
170 self.shared_data.width = self.width
171 self.shared_data.height = self.height
172 except Exception as e:
173 logger.error(f"Error initializing pagerctl: {e}")
174 raise
175
176 # Colors
177 self.BLACK = self.pager.BLACK
178 self.WHITE = self.pager.WHITE
179 self.GRAY = self.pager.rgb(128, 128, 128)
180 self.DARK_GRAY = self.pager.rgb(64, 64, 64)
181 self.LIGHT_GRAY = self.pager.rgb(200, 200, 200)
182 self.GREEN = self.pager.rgb(0, 200, 0)
183 self.RED = self.pager.rgb(220, 0, 0)
184 self.YELLOW = self.pager.rgb(220, 200, 0)
185 self.CYAN = self.pager.rgb(0, 180, 220)
186 self.BLUE = self.pager.rgb(50, 100, 220)
187 self.ORANGE = self.pager.rgb(220, 140, 0)
188 self.PURPLE = self.pager.rgb(160, 80, 220)
189 self.DARK_BG = self.pager.rgb(20, 20, 30)
190 self.CARD_BG = self.pager.rgb(35, 35, 50)
191 self.HEADER_BG = self.pager.rgb(15, 15, 25)
192
193 # Fonts
194 self.font_arial = self.shared_data.font_arial_path
195 self.font_viking = self.shared_data.font_viking_path
196
197 # Screen state
198 self.current_screen = SCREEN_DASHBOARD
199 self.scroll_offset = 0
200 self.dialog_showing = False
201 self._handoff_launcher_path = None
202
203 # Settings screen state: per-screen selected index and scroll position
204 self._settings_selected = {s: 0 for s in SETTINGS_SCREENS}
205 self._settings_scroll = {s: 0 for s in SETTINGS_SCREENS}
206

Callers 2

PagerRagnar.pyFile · 0.90
pager_display.pyFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected