1.4.1 - unclutter backspace
This commit is contained in:
		
							parent
							
								
									21eef90307
								
							
						
					
					
						commit
						9254692511
					
				
					 5 changed files with 25 additions and 7 deletions
				
			
		| 
						 | 
				
			
			@ -37,6 +37,10 @@ You can use another similar projects set of words as well, for example to create
 | 
			
		|||
 | 
			
		||||
To exit you can either finish test, use `KeyboardInterrupt` (CTRL+C) or tap **tab** then **enter**. After you finish test, there will be summary printed, use enter to exit from it.
 | 
			
		||||
 | 
			
		||||
# When backspace does wierd shiet
 | 
			
		||||
 | 
			
		||||
Some terminal emulators send different values for key presses of backspace and ctrl+backspace. To fix it, simply add `b` flag to `python3 -m fasttyper`.
 | 
			
		||||
 | 
			
		||||
## Example scripts
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,7 +19,7 @@ import argparse
 | 
			
		|||
import json
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def initialize(configmap, rbuffer):
 | 
			
		||||
def initialize(configmap, rbuffer, backspace_debug):
 | 
			
		||||
    config = Config(configmap)
 | 
			
		||||
 | 
			
		||||
    reference_buffer = Buffer(rbuffer)
 | 
			
		||||
| 
						 | 
				
			
			@ -32,7 +32,7 @@ def initialize(configmap, rbuffer):
 | 
			
		|||
    reference_text = ReferenceText(config, text_box)
 | 
			
		||||
    stats_component = StatsComponent(config)
 | 
			
		||||
 | 
			
		||||
    listener = Listener()
 | 
			
		||||
    listener = Listener(backspace_debug)
 | 
			
		||||
    application = Application(listener, user_buffer, reference_buffer, config)
 | 
			
		||||
 | 
			
		||||
    interface = Interface(
 | 
			
		||||
| 
						 | 
				
			
			@ -67,6 +67,13 @@ def main():
 | 
			
		|||
        help="configuration file",
 | 
			
		||||
        default="~/.config/fasttyper/config.json",
 | 
			
		||||
    )
 | 
			
		||||
    parser.add_argument(
 | 
			
		||||
        "--unclutter-backspace",
 | 
			
		||||
        "-b",
 | 
			
		||||
        action="store_true",
 | 
			
		||||
        help="unclutter backspace, when it raises ctrl+backspace instead",
 | 
			
		||||
        default=False,
 | 
			
		||||
    )
 | 
			
		||||
    args = parser.parse_args()
 | 
			
		||||
 | 
			
		||||
    if is_tty:
 | 
			
		||||
| 
						 | 
				
			
			@ -86,7 +93,7 @@ def main():
 | 
			
		|||
    except FileNotFoundError:
 | 
			
		||||
        configmap = {}
 | 
			
		||||
 | 
			
		||||
    initialize(configmap, rbuffer)
 | 
			
		||||
    initialize(configmap, rbuffer, args.unclutter_backspace)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,8 +12,9 @@ class Action(enum.Enum):
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
class Listener:
 | 
			
		||||
    def __init__(self):
 | 
			
		||||
    def __init__(self, backspace_debug=False):
 | 
			
		||||
        self.tabbed = False
 | 
			
		||||
        self.backspace_debug = backspace_debug
 | 
			
		||||
 | 
			
		||||
    def handle_key(self, key):
 | 
			
		||||
        action = Action.invalid
 | 
			
		||||
| 
						 | 
				
			
			@ -22,12 +23,18 @@ class Listener:
 | 
			
		|||
            self.tabbed = True
 | 
			
		||||
        elif key == "\n" and self.tabbed:
 | 
			
		||||
            raise StoppingSignal(silent=True)
 | 
			
		||||
        elif self.backspace_debug and key == chr(8):
 | 
			
		||||
            action = Action.del_word
 | 
			
		||||
            self.tabbed = False
 | 
			
		||||
        elif key == 263 and self.backspace_debug:
 | 
			
		||||
            action = Action.del_char
 | 
			
		||||
            self.tabbed = False
 | 
			
		||||
        elif key == 263:
 | 
			
		||||
            action = Action.del_word
 | 
			
		||||
            self.tabbed = False
 | 
			
		||||
        elif isinstance(key, int):
 | 
			
		||||
            self.tabbed = False
 | 
			
		||||
        elif key == chr(127):
 | 
			
		||||
        elif key in chr(127):
 | 
			
		||||
            action = Action.del_char
 | 
			
		||||
            self.tabbed = False
 | 
			
		||||
        elif key == " ":
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
[bumpversion]
 | 
			
		||||
current_version = 1.4.0
 | 
			
		||||
current_version = 1.4.1
 | 
			
		||||
 | 
			
		||||
[wheel]
 | 
			
		||||
universal = 1
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								setup.py
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								setup.py
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -5,7 +5,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
 | 
			
		|||
 | 
			
		||||
setup(
 | 
			
		||||
    name="fasttyper",
 | 
			
		||||
    version="1.4.0",
 | 
			
		||||
    version="1.4.1",
 | 
			
		||||
    author="Piotr Domanski",
 | 
			
		||||
    author_email="pi.domanski@gmail.com",
 | 
			
		||||
    description="Minimalistic typing exercise",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue