make highlighted mode work in driver

This commit is contained in:
chrys 2016-11-01 21:55:08 +01:00
parent 965c850ca2
commit 0221ba358f
7 changed files with 20 additions and 18 deletions

View File

@ -21,6 +21,7 @@ ReadWrite permission
- brltty, python-brlapi [using braille] # (not implemented yet)
- gstreamer [soundicons via gstreamer] # not working yet
- python-pyenchant [spell check functionality]
- aspell-<language> [your languagedata for spellchecker, english support "aspell-en"]
- python-daemonize [use fenrir as background service on Unix like systems]
# installation

View File

@ -77,8 +77,8 @@ autodetectSuspendingScreen=True
[keyboard]
driver=evdev
# filter input devices AUTO, ALL or a DEVICE NAME
device=AUTO
# filter input devices NOMICE, ALL or a DEVICE NAME
device=ALL
# gives fenrir exclusive access to the keyboard and let consume keystrokes. just disable on problems.
grabDevices=True
ignoreShortcuts=False

View File

@ -77,8 +77,8 @@ autodetectSuspendingScreen=True
[keyboard]
driver=evdev
# filter input devices AUTO, ALL or a DEVICE NAME
device=AUTO
# filter input devices NOMICE, ALL or a DEVICE NAME
device=ALL
# gives fenrir exclusive access to the keyboard and let consume keystrokes. just disable on problems.
grabDevices=True
ignoreShortcuts=False

View File

@ -34,8 +34,8 @@ autodetectSuspendingScreen=False
[keyboard]
driver=evdev
# filter input devices AUTO, ALL or a DEVICE NAME
device=AUTO
# filter input devices NOMICE, ALL or a DEVICE NAME
device=ALL
grabDevices=True
ignoreShortcuts=False
keyboardLayout=desktop

View File

@ -75,7 +75,7 @@ class driver():
if self.env['runtime']['settingsManager'].getSetting('keyboard', 'device').upper() == 'ALL':
self.iDevices = {dev.fd: dev for dev in self.iDevices if 1 in dev.capabilities()}
self.ledDevices = {dev.fd: dev for dev in self.ledDevices if 1 in dev.capabilities() and 17 in dev.capabilities()}
elif self.env['runtime']['settingsManager'].getSetting('keyboard', 'device').upper() == 'AUTO':
elif self.env['runtime']['settingsManager'].getSetting('keyboard', 'device').upper() == 'NOMICE':
self.iDevices = {dev.fd: dev for dev in self.iDevices if 1 in dev.capabilities() and not 3 in dev.capabilities() and not 2 in dev.capabilities()}
self.ledDevices = {dev.fd: dev for dev in self.ledDevices if 1 in dev.capabilities() and 17 in dev.capabilities() and not 3 in dev.capabilities() and not 2 in dev.capabilities()}
else:

View File

@ -5,7 +5,7 @@
# By Chrys, Storm Dragon, and contributers.
import difflib
import re
import re, time
import subprocess
from core import debug
from utils import screen_utils
@ -20,6 +20,7 @@ class driver():
def getCurrScreen(self):
self.env['screenData']['oldTTY'] = self.env['screenData']['newTTY']
try:
time.sleep(0.1)
currScreenFile = open('/sys/devices/virtual/tty/tty0/active','r')
self.env['screenData']['newTTY'] = str(currScreenFile.read()[3:-1])
currScreenFile.close()
@ -149,8 +150,7 @@ class driver():
self.env['screenData']['newNegativeDelta'] = ''.join(x[2:] for x in diffList if x[0] == '-')
# track highlighted
#print(self.env['screenData']['oldContentAttrib'] , self.env['screenData']['newContentAttrib'])
if self.env['screenData']['oldContentAttrib'] != self.env['screenData']['newContentAttrib']:
self.env['screenData']['newAttribDelta'], currCursor = screen_utils.trackHighlights(self.env['screenData']['oldContentAttrib'], self.env['screenData']['newContentAttrib'], self.env['screenData']['newContentText'], self.env['screenData']['columns'])
#print('drin',self.env['screenData']['newAttribDelta'])
print('drin',self.env['screenData']['newAttribDelta'])

View File

@ -24,14 +24,14 @@ def trackHighlights(oldAttr, newAttr, text, lenght):
return result, currCursor
if len(newAttr) == 0:
return result, currCursor
textLines = insertNewlines(text,lenght)
textLines = textLines.split('\n')
if len(oldAttr) != len(newAttr):
return result, currCursor
old = splitEvery(oldAttr,lenght)
new = splitEvery(newAttr,lenght)
if len(old) != len(new):
return result, currCursor
if len(text) != len(new):
return result, currCursor
new = splitEvery(newAttr,lenght)
textLines = text.split('\n')
if len(textLines) != len(new):
return result, currCursor
try:
background = Counter(newAttr).most_common(1)
background = background[0][0]
@ -39,10 +39,11 @@ def trackHighlights(oldAttr, newAttr, text, lenght):
background = chr(7)
for line in range(len(new)):
if old[line] != new[line]:
for column in range(len(new)):
for column in range(len(new[line])):
if old[line][column] != new[line][column]:
if new[line][column] != background:
if not currCursor:
currCursor = {}
currCursor['x'] = column
currCursor['y'] = line
result += textLines[line][column]