home · contact · privacy
Fix color changes breaking ncurses usage on some terminals.
authorChristian Heller <c.heller@plomlompom.de>
Sat, 26 Dec 2020 21:02:53 +0000 (22:02 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Sat, 26 Dec 2020 21:02:53 +0000 (22:02 +0100)
rogue_chat_curses.py

index 9d2ab3befde074db274e23349703dba0f5691b07..d6d8242e23b4a6c5a41dfc63be02ded75e8081d9 100755 (executable)
@@ -809,8 +809,9 @@ class TUI:
         self.restore_input_values()
 
     def set_default_colors(self):
         self.restore_input_values()
 
     def set_default_colors(self):
-        curses.init_color(1, 1000, 1000, 1000)
-        curses.init_color(2, 0, 0, 0)
+        if curses.can_change_color():
+            curses.init_color(7, 1000, 1000, 1000)
+            curses.init_color(0, 0, 0, 0)
         self.do_refresh = True
 
     def set_random_colors(self):
         self.do_refresh = True
 
     def set_random_colors(self):
@@ -819,8 +820,9 @@ class TUI:
             import random
             return int(offset + random.random()*375)
 
             import random
             return int(offset + random.random()*375)
 
-        curses.init_color(1, rand(625), rand(625), rand(625))
-        curses.init_color(2, rand(0), rand(0), rand(0))
+        if curses.can_change_color():
+            curses.init_color(7, rand(625), rand(625), rand(625))
+            curses.init_color(0, rand(0), rand(0), rand(0))
         self.do_refresh = True
 
     def get_info(self):
         self.do_refresh = True
 
     def get_info(self):
@@ -1240,10 +1242,14 @@ class TUI:
             'dance': 'DANCE',
         }
 
             'dance': 'DANCE',
         }
 
-        curses.curs_set(False)  # hide cursor
+        curses.curs_set(0)  # hide cursor
         curses.start_color()
         self.set_default_colors()
         curses.start_color()
         self.set_default_colors()
-        curses.init_pair(1, 1, 2)
+        curses.init_pair(1, 7, 0)
+        if not curses.can_change_color():
+            self.log_msg('@ unfortunately, your terminal does not seem to '
+                         'support re-definition of colors; you might miss out '
+                         'on some color effects')
         stdscr.timeout(10)
         reset_screen_size()
         self.explorer = YX(0, 0)
         stdscr.timeout(10)
         reset_screen_size()
         self.explorer = YX(0, 0)