Accessibility tool. It basically reads whatever you mark with your mouse cursor.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1.5 KiB


Wrap the file numbers returned by inside a file object using os.fdopen() and use them in a context manager with the with statement. That seems to have solved (some of?) the FIFO buffering problems mentioned in


Add the command line options -p (--primary) and -b (--clipboard). --clipboard for the ctrl-c kind of clipboard and --primary for the mouse selection kind of clipboard.


Turn it into a Python package by adding a and sticking the files into a module.


More Python script experimentations. I've started with a shell threeliner using ready made packages and I ended up reimplementing them badly. Something something UNIX philosophy.

There is now a ~/.clipboard-speaker/words-per-minute setting file for the Python version.

Switched (again) to FIFO so you can:

10. Marking text and press the keybinding that runs clipboard-speaker as
    usual. While clipboard-speaker is running and speaking, you can
20. Mark more text and press the keybindings for it to feed more text into
    clipboard-speaker's text buffer, and if you wish
30. GOTO 20.


Trying to remove the daemonize dependency, but I don't know how to kill the speak-ng child process of the shell script.

Also trying to write a clipboard-speaker Python script.


Shell scripts using daemonize, xsel, and speak-ng.