Advertisement
Guest User

python dvorak/qwerty converter

a guest
Dec 27th, 2018
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.83 KB | None | 0 0
  1. #!/usr/bin/env python3
  2. import sys
  3.  
  4. def main(charsets):
  5.     source_layout = sys.argv[1]
  6.     passwd = sys.argv[2]
  7.  
  8.     if not source_layout in charsets:
  9.         print("Charset {} not found".format(source_layout))
  10.         print("Available charsets:", *charsets.keys())
  11.     if checkpass(passwd, charsets) == 0:
  12.         for charset in charsets:
  13.             if charset == source_layout: continue
  14.             charsetpass = ''
  15.             for char in passwd:
  16.                 charsetpass = charsetpass + charsets[source_layout][charsets[charset].index(char)]
  17.             print("keyboard: {}\tsystem: {}\ttext: {}".format(source_layout, charset, charsetpass))
  18.  
  19.  
  20. dvorak =            ''' `1234567890[]',.pyfgcrl/=aoeuidhtns-\<;qjkxbmwvz~!@#$%^&*(){}"<>PYFGCRL?+AOEUIDHTNS_|>:QJKXBMWVZ''' # linux dvorak..
  21. dvorak_windows =    ''' `1234567890[]',.pyfgcrl/=aoeuidhtns-\\\\;qjkxbmwvz~!@#$%^&*(){}"<>PYFGCRL?+AOEUIDHTNS_||:QJKXBMWVZ''' # windows dvorak..
  22. qwertz =            ''' ^1234567890ß´qwertzuiopü+asdfghjklöä#<yxcvbnm,.-°!"§$%&/()=?`QWERTZUIOPÜ*ASDFGHJKLÖÄ'>YXCVBNM;:_'''
  23. qwerty =            ''' `1234567890-=qwertyuiop[]asdfghjkl;'\\\\zxcvbnm,./~!@#$%^&*()_+QWERTYUIOP{}ASDFGHJKL:"||ZXCVBNM<>?'''
  24.  
  25. charsets = {
  26.     'dvorak':dvorak,
  27.     'qwerty':qwerty,
  28.     'qwertz':qwertz,
  29.     'dvorak_windows':dvorak_windows
  30. }
  31.  
  32.  
  33.  
  34. def checkpass(passwd, charsets):
  35.     clear = True
  36.     for c in passwd:
  37.         for charset in charsets:
  38.             if c not in charsets[charset]:
  39.                 print("Character {} not properly convertable to charset {}".format(c, charset))
  40.                 clear = False
  41.     if not clear:
  42.         return -1
  43.     return 0
  44.  
  45. def usage():
  46.     print("Usage: {} typing_layout text".format(sys.argv[0]))
  47.  
  48. if __name__ == '__main__':
  49.     if not len(sys.argv) == 3:
  50.         usage()
  51.     else:
  52.         main(charsets)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement