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
|
#!/usr/bin/python3
import tkinter
from tkinter.constants import *
window = tkinter.Tk ()
window.wm_title ('X11 Colours')
canvas = tkinter.Canvas (window)
frame = tkinter.Frame (canvas)
scrollbar = tkinter.Scrollbar (window, command=canvas.yview)
canvas.configure (yscrollcommand=scrollbar.set)
scrollbar.pack(fill=Y, expand=1, side=RIGHT)
canvas.pack (fill=BOTH, expand=1, side=LEFT)
canvas.create_window ((0,0), window=frame, anchor=NW)
frame.bind ("<Configure>", lambda e: canvas.configure (scrollregion=canvas.bbox ('all')))
with open ("/etc/X11/rgb.txt") as txt:
colours = txt.readlines ()
for r,g,b,name in ((int(l[0]),int(l[1]),int(l[2]),l[3]) for l in (colour.rstrip ().split (maxsplit=3) for colour in colours[1:])):
# Each colour band should be weighted: Half red is not as bright as half green.
tkinter.Label (frame, text=f'{name} ({r+b+g})', bg=f'#{r:02x}{g:02x}{b:02x}',fg='black' if r+g+b > 381 else 'white').pack (fill=X, expand=1)
window.mainloop ()
|