From f1eb87fbe14ca1d9075011e4c12f4c6948ecde7a Mon Sep 17 00:00:00 2001 From: chrys Date: Fri, 23 Dec 2016 16:35:51 +0100 Subject: [PATCH] restructure management files --- TODOv1 | 214 --------------------------------------------------------- TODOv2 | 60 ---------------- 2 files changed, 274 deletions(-) delete mode 100644 TODOv1 delete mode 100644 TODOv2 diff --git a/TODOv1 b/TODOv1 deleted file mode 100644 index cec1c091..00000000 --- a/TODOv1 +++ /dev/null @@ -1,214 +0,0 @@ -ToDos in Priority order: - -Known Bugs: -- word echo triggers twice if there are two spaces after an word and you arrow over them -- spellcheck triggers twice if there are two spaces after an word and you arrow over them -Glitches -- For example, in screen, it just tells me bell in window, but doesn't tell me which one. (southernprince) -- alpine seems to have problems (southernprince) - --------------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 - -- 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 - -- Settings (make it configureable) -- improve differ speed -- lock mechanism for threads -- 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 COMMENT: sadly not possible, poll events not fired as expected - 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/ - -- add setting for ignore screens ( dont grab shortcuts from X or orca) -- soundIcons -- performance tuning -- add sound volume -- convert volume to percent in config -- convert pitch to percent in config -- convert rate to percent in config -- make screenUpdate rate configurable -- default soundIcon theme (soundfiles) -- debugging -- threading ReadContent, ReadShortcuts, executeCommands, listenNewTTYsForListen, controllThread (main) -- autoload plugins while starting -- implement sounddriver generic (use current sox and make it configurable) -- add setting for autodetect X -ps a -o tty,comm | grep -e Xorg | grep -v "grep -e Xorg" -- respect window mode in differ (getwindow code is already in place) -- parse punctuation setting file in conf/substitution - -- implement commands - curr_word - curr_char - next_word - next_char - prev_word - prev_char - enable_disable_speech #enable, disable speech - enable_disable_braile #enable, disable braile - enable_disable_sound #enable, disable sound - enable_disable_output #enable, disable speech, braile and sound - next_clipboard - prev_clipboard - first_clipboard - last_clipboard - curr_clipboard - paste_clipboard - define_window - remove_window - reset_review_on_screen_change - remove_clipboard_marks - copy_marked - set_mark (this could also used for area?) - read_clipboard_mark_text - curr_screen - curr_screen_before_cursor - curr_screen_after_cursor - cursor_position - indention - add_bookmark (per application) - remove_bookmark - present_bookmark - say_char_phonetic - spell_word_phonetic - "alpha", "bravo", "charlie", "delta", "echo", - "foxtrot", "golf", "hotel", "india", "juliet", - "kilo", "lima", "mike", "november", "oscar", - "papa", "quebec", "romeo", "sierra", "tango", - "uniform", "victor", "whisky", "x ray", - "yankee", "zulu" - next_char_phonetic - prev_char_phonetic - next_word_phonetic - prev_word_phonetic - toggle_highlighted_mode - -- implement onInput commands - read_line_if_cursor_change_vertical (needed if you arrow up and down, we want to announce the line) - read_char_if_cursur_change_horizontal (needed if you arrow left and right, we want to announce the char under the cursor) - echo_char (echos the last char on pressing space or return) - echo_word (echos the last word) - echo_deleted_char (echos deleted char on screen - read highlighted - -- implement onScreenChange commands - promoted text - clear_marks_on_screen_change - leve_review_mode_on_screen_change - window mode (define a area and just read that changes) - -- add screenManager - abstract screen driver -- pass environment instance in init and remove it from function calls - -- New Triggers - onAppChange - onAppProfileChange - onScreenChange - rename current onScreenChange to onScreenUpdate - -- rework inputManager - try to consume shortcuts - grab keyboard exclusive - release keyboard on error or quit - grab shortcuts with fenrir key - grab "singel key shortcuts" like numpad navigation for review - forwart nonshortcuts to system - make grabbing configuarble - possiblity to forewart shortcut [proxyshortcut] - possiblity to forewart shortcut (or use them as shortcut) [pressing twice while timeout] - cleanup inputManager - split input driver out of the handler - -- dictonary for special chars and string replacements -- punctuation -- beep on cursor to capital letters in cursor and review -- add pause handling - create pause - make it configurable when the pause the pause happens -- external scripting - load scripts from a folder as subprocess - create thread - load key definition of keybindings like SOPS did - -- add an daemonize mode -https://github.com/thesharp/daemonize -https://web.archive.org/web/20131017130434/http://www.jejik.com/articles/2007/02/a_simple_unix_linux_daemon_in_python/ - -- announce capslock -- anounce numlock -- anounce scroll -- add the debugging to core - -- autostart systemd -https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sect-Managing_Services_with_systemd-Unit_Files.html diff --git a/TODOv2 b/TODOv2 deleted file mode 100644 index bee4819b..00000000 --- a/TODOv2 +++ /dev/null @@ -1,60 +0,0 @@ -ToDo list for Fenrir Version 2.0 - -General: -- implement onScreenUpdate commands - read highlighted text mode -- translateable -- be more event based -- try to make it more asynchronus -- multpible threads - -- implement commands - attributes_curr_char - generic list command (convert clipboard management) - next item - pref item - curr item - first item - last item - -Braille Support: - output to braille device - virtual buffer area for scroll left/right if the line is to long for device - commands for scroll left/right - print cursor in review - print cursor in textmode - flush message after X seconds and show current line (review over text) - make flush configurable - leve review mode on typing (show current textline) - capture input from braile - make routing keys assignable in keyboard - tweak current commands and output - http://mielke.cc/brltty/doc/Manual-BrlAPI/English/BrlAPI.html - https://git.gnome.org/browse/orca/tree/src/orca/braille.py - https://wiki.gnome.org/Attic/LSR/ScratchPad/Braille/BrlAPI - -Driver: -- implement PTY Screen driver (to use gnome-terminal and other terminal emulators) -- ATK input driver (dont grab on graphical interface) -- BrlTTY driver - https://docs.python.org/3.2/library/pty.html -- implement speechdriver generic -- implement autodetection of plugged and removed input devices (python-pyudev) for evdev driver - http://askubuntu.com/questions/508236/how-can-i-run-code-whenever-a-usb-device-is-unplugged-without-requiring-root - -Settings: -- configuration should be overwriteable with parameter and alternative paths -- write settings -- menue for settings configuration #storm - -Application Profiles -- fenrir is not able to detect the current application inside of screen. - ps -e -H -o pid,pgrp,ppid,tty,cmd - http://stackoverflow.com/questions/24861351/how-to-detect-if-python-script-is-being-run-as-a-background-process/24862213 - fd = os.open("/dev/tty5", os.O_RDONLY ) - os.tcgetpgrp(fd) -- add perApplicationTrigger trigger - per application commands - per application onScreenChange - per application onInput -- per application shortcuts