99 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
ToDos in Priority order:
 | 
						|
 | 
						|
- Settings (make it configureable)
 | 
						|
- restructure loops to listen for events
 | 
						|
  inputloop -> does block with an select
 | 
						|
  commands -> a new thread should spawned from inputloop
 | 
						|
  updatescreen -> maybe we could watch it with inotify vsca should support polling
 | 
						|
  https://github.com/seb-m/pyinotify/wiki/Tutorial
 | 
						|
 | 
						|
import pyinotify
 | 
						|
import glob
 | 
						|
class Identity(pyinotify.ProcessEvent):
 | 
						|
    def process_default(self, event):
 | 
						|
        p = event.pathname
 | 
						|
        print(p)
 | 
						|
 | 
						|
wm = pyinotify.WatchManager()
 | 
						|
 | 
						|
notifier = pyinotify.Notifier(wm, default_proc_fun=Identity(), timeout=5)
 | 
						|
wm.add_watch('/sys/devices/virtual/tty/tty0/active', pyinotify.IN_CLOSE_WRITE)
 | 
						|
for file in list(glob.glob('/dev/vcsa[0-64]')):
 | 
						|
    wm.add_watch(file, pyinotify.IN_CLOSE_WRITE)
 | 
						|
    print(file)
 | 
						|
 | 
						|
try:
 | 
						|
    while 1:
 | 
						|
        notifier.process_events()
 | 
						|
        if notifier.check_events( timeout=1000):
 | 
						|
            notifier.read_events()
 | 
						|
            print('events')
 | 
						|
        else:
 | 
						|
            print('timeout')
 | 
						|
except KeyboardInterrupt:
 | 
						|
    notifier.stop()
 | 
						|
    print('fin')
 | 
						|
 | 
						|
  https://www.infoq.com/articles/inotify-linux-file-system-event-monitoring
 | 
						|
  https://github.com/seb-m/pyinotify/wiki/Tutorial
 | 
						|
  http://www.saltycrane.com/blog/2010/04/monitoring-filesystem-python-and-pyinotify/
 | 
						|
  
 | 
						|
- beeps (sound Icons)
 | 
						|
- implement commands  (next_[line,word,char], prev_[line,word,char], and others
 | 
						|
- implement braille
 | 
						|
http://mielke.cc/brltty/doc/Manual-BrlAPI/English/BrlAPI.html
 | 
						|
https://git.gnome.org/browse/orca/tree/src/orca/braille.py
 | 
						|
 | 
						|
- autostart systemd
 | 
						|
- implement speechdriver generic (say)
 | 
						|
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sect-Managing_Services_with_systemd-Unit_Files.html
 | 
						|
 | 
						|
- translateable
 | 
						|
 | 
						|
- improve differ speed
 | 
						|
 | 
						|
-------------DONE--------------------------------
 | 
						|
-- move from VCS to VCSA and parese the Attributes
 | 
						|
http://linux.die.net/man/4/vcsa
 | 
						|
http://man.cx/vcsa(4)/de
 | 
						|
http://manpages.org/display-vcsa/7
 | 
						|
https://en.wikipedia.org/wiki/Virtual_console
 | 
						|
every second byte is a attribute others are text. fast way: c[::2],c[1::2]
 | 
						|
http://manpages.ubuntu.com/manpages/precise/de/man4/vcs.4.html
 | 
						|
https://docs.python.org/3/library/fcntl.html
 | 
						|
http://rodrigorivas.serveblog.net/en/imagenes-desde-vt-con-vcsa/
 | 
						|
good doku:
 | 
						|
http://angband.oook.cz/d/eyangband-052/src/main-vcs.c
 | 
						|
http://manpages.ubuntu.com/manpages/trusty/man1/screader.1.html
 | 
						|
 | 
						|
- implement speechdriver espeak
 | 
						|
https://github.com/relsi/python-espeak
 | 
						|
 | 
						|
- detect collumns in TTYs automaticaly. 
 | 
						|
it seems we have this info in vcsa
 | 
						|
 | 
						|
- get current cursor
 | 
						|
- shortcut handling
 | 
						|
https://docs.python.org/2/library/termios.html
 | 
						|
http://stackoverflow.com/questions/287757/pythons-configparser-unique-keys-per-section
 | 
						|
0=down, 1=press, 2=hold
 | 
						|
2KEY_SHIFT, 1KEY_A = say_current_line_cursor
 | 
						|
- implement command structure
 | 
						|
- implement speechdriver speechd
 | 
						|
https://git.gnome.org/browse/orca/tree/src/orca/speech.py
 | 
						|
https://git.gnome.org/browse/orca/tree/src/orca/speechdispatcherfactory.py
 | 
						|
http://devel.freebsoft.org/doc/speechd/speech-dispatcher.html#Client-Programming
 | 
						|
 | 
						|
- autodetect current TTY maybe with (PAM or a sys folder)
 | 
						|
cat /sys/devices/virtual/tty/tty0/active 
 | 
						|
http://serverfault.com/questions/306854/how-to-find-out-the-currently-active-linux-virtual-terminal-while-connected-via
 | 
						|
 | 
						|
- debugging
 | 
						|
- threading ReadContent, ReadShortcuts, executeCommands, listenNewTTYsForListen, controllThread (main)
 | 
						|
- autoload plugins while starting
 | 
						|
 | 
						|
- Input 
 | 
						|
http://python-evdev.readthedocs.io/en/latest/tutorial.html
 | 
						|
http://stackoverflow.com/questions/12384772/how-can-i-capture-mouseevents-and-keyevents-using-python-in-background-on-linux
 | 
						|
maybe TTY in RAW MODE
 |