summaryrefslogtreecommitdiff
path: root/python-keyboard.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-keyboard.spec')
-rw-r--r--python-keyboard.spec220
1 files changed, 220 insertions, 0 deletions
diff --git a/python-keyboard.spec b/python-keyboard.spec
new file mode 100644
index 0000000..2df719a
--- /dev/null
+++ b/python-keyboard.spec
@@ -0,0 +1,220 @@
+%global _empty_manifest_terminate_build 0
+Name: python-keyboard
+Version: 0.13.5
+Release: 1
+Summary: Hook and simulate keyboard events on Windows and Linux
+License: MIT
+URL: https://github.com/boppreh/keyboard
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/79/75/c969f2258e908c39aadfc57d1cb78247dc49e6d36371bb3a48c194640c01/keyboard-0.13.5.zip
+BuildArch: noarch
+
+Requires: python3-pyobjc
+
+%description
+Take full control of your keyboard with this small Python library. Hook global events, register hotkeys, simulate key presses and much more.
+## Features
+- **Global event hook** on all keyboards (captures keys regardless of focus).
+- **Listen** and **send** keyboard events.
+- Works with **Windows** and **Linux** (requires sudo), with experimental **OS X** support (thanks @glitchassassin!).
+- **Pure Python**, no C modules to be compiled.
+- **Zero dependencies**. Trivial to install and deploy, just copy the files.
+- **Python 2 and 3**.
+- Complex hotkey support (e.g. `ctrl+shift+m, ctrl+space`) with controllable timeout.
+- Includes **high level API** (e.g. [record](#keyboard.record) and [play](#keyboard.play), [add_abbreviation](#keyboard.add_abbreviation)).
+- Maps keys as they actually are in your layout, with **full internationalization support** (e.g. `Ctrl+ç`).
+- Events automatically captured in separate thread, doesn't block main program.
+- Tested and documented.
+- Doesn't break accented dead keys (I'm looking at you, pyHook).
+- Mouse support available via project [mouse](https://github.com/boppreh/mouse) (`pip install mouse`).
+## Usage
+Install the [PyPI package](https://pypi.python.org/pypi/keyboard/):
+ pip install keyboard
+or clone the repository (no installation required, source files are sufficient):
+ git clone https://github.com/boppreh/keyboard
+or [download and extract the zip](https://github.com/boppreh/keyboard/archive/master.zip) into your project folder.
+Then check the [API docs below](https://github.com/boppreh/keyboard#api) to see what features are available.
+## Example
+```py
+import keyboard
+keyboard.press_and_release('shift+s, space')
+keyboard.write('The quick brown fox jumps over the lazy dog.')
+keyboard.add_hotkey('ctrl+shift+a', print, args=('triggered', 'hotkey'))
+# Press PAGE UP then PAGE DOWN to type "foobar".
+keyboard.add_hotkey('page up, page down', lambda: keyboard.write('foobar'))
+# Blocks until you press esc.
+keyboard.wait('esc')
+# Record events until 'esc' is pressed.
+recorded = keyboard.record(until='esc')
+# Then replay back at three times the speed.
+keyboard.play(recorded, speed_factor=3)
+# Type @@ then press space to replace with abbreviation.
+keyboard.add_abbreviation('@@', 'my.long.email@example.com')
+# Block forever, like `while True`.
+keyboard.wait()
+```
+## Known limitations:
+- Events generated under Windows don't report device id (`event.device == None`). [#21](https://github.com/boppreh/keyboard/issues/21)
+- Media keys on Linux may appear nameless (scan-code only) or not at all. [#20](https://github.com/boppreh/keyboard/issues/20)
+- Key suppression/blocking only available on Windows. [#22](https://github.com/boppreh/keyboard/issues/22)
+- To avoid depending on X, the Linux parts reads raw device files (`/dev/input/input*`)
+but this requires root.
+- Other applications, such as some games, may register hooks that swallow all
+key events. In this case `keyboard` will be unable to report events.
+- This program makes no attempt to hide itself, so don't use it for keyloggers or online gaming bots. Be responsible.
+
+%package -n python3-keyboard
+Summary: Hook and simulate keyboard events on Windows and Linux
+Provides: python-keyboard
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-keyboard
+Take full control of your keyboard with this small Python library. Hook global events, register hotkeys, simulate key presses and much more.
+## Features
+- **Global event hook** on all keyboards (captures keys regardless of focus).
+- **Listen** and **send** keyboard events.
+- Works with **Windows** and **Linux** (requires sudo), with experimental **OS X** support (thanks @glitchassassin!).
+- **Pure Python**, no C modules to be compiled.
+- **Zero dependencies**. Trivial to install and deploy, just copy the files.
+- **Python 2 and 3**.
+- Complex hotkey support (e.g. `ctrl+shift+m, ctrl+space`) with controllable timeout.
+- Includes **high level API** (e.g. [record](#keyboard.record) and [play](#keyboard.play), [add_abbreviation](#keyboard.add_abbreviation)).
+- Maps keys as they actually are in your layout, with **full internationalization support** (e.g. `Ctrl+ç`).
+- Events automatically captured in separate thread, doesn't block main program.
+- Tested and documented.
+- Doesn't break accented dead keys (I'm looking at you, pyHook).
+- Mouse support available via project [mouse](https://github.com/boppreh/mouse) (`pip install mouse`).
+## Usage
+Install the [PyPI package](https://pypi.python.org/pypi/keyboard/):
+ pip install keyboard
+or clone the repository (no installation required, source files are sufficient):
+ git clone https://github.com/boppreh/keyboard
+or [download and extract the zip](https://github.com/boppreh/keyboard/archive/master.zip) into your project folder.
+Then check the [API docs below](https://github.com/boppreh/keyboard#api) to see what features are available.
+## Example
+```py
+import keyboard
+keyboard.press_and_release('shift+s, space')
+keyboard.write('The quick brown fox jumps over the lazy dog.')
+keyboard.add_hotkey('ctrl+shift+a', print, args=('triggered', 'hotkey'))
+# Press PAGE UP then PAGE DOWN to type "foobar".
+keyboard.add_hotkey('page up, page down', lambda: keyboard.write('foobar'))
+# Blocks until you press esc.
+keyboard.wait('esc')
+# Record events until 'esc' is pressed.
+recorded = keyboard.record(until='esc')
+# Then replay back at three times the speed.
+keyboard.play(recorded, speed_factor=3)
+# Type @@ then press space to replace with abbreviation.
+keyboard.add_abbreviation('@@', 'my.long.email@example.com')
+# Block forever, like `while True`.
+keyboard.wait()
+```
+## Known limitations:
+- Events generated under Windows don't report device id (`event.device == None`). [#21](https://github.com/boppreh/keyboard/issues/21)
+- Media keys on Linux may appear nameless (scan-code only) or not at all. [#20](https://github.com/boppreh/keyboard/issues/20)
+- Key suppression/blocking only available on Windows. [#22](https://github.com/boppreh/keyboard/issues/22)
+- To avoid depending on X, the Linux parts reads raw device files (`/dev/input/input*`)
+but this requires root.
+- Other applications, such as some games, may register hooks that swallow all
+key events. In this case `keyboard` will be unable to report events.
+- This program makes no attempt to hide itself, so don't use it for keyloggers or online gaming bots. Be responsible.
+
+%package help
+Summary: Development documents and examples for keyboard
+Provides: python3-keyboard-doc
+%description help
+Take full control of your keyboard with this small Python library. Hook global events, register hotkeys, simulate key presses and much more.
+## Features
+- **Global event hook** on all keyboards (captures keys regardless of focus).
+- **Listen** and **send** keyboard events.
+- Works with **Windows** and **Linux** (requires sudo), with experimental **OS X** support (thanks @glitchassassin!).
+- **Pure Python**, no C modules to be compiled.
+- **Zero dependencies**. Trivial to install and deploy, just copy the files.
+- **Python 2 and 3**.
+- Complex hotkey support (e.g. `ctrl+shift+m, ctrl+space`) with controllable timeout.
+- Includes **high level API** (e.g. [record](#keyboard.record) and [play](#keyboard.play), [add_abbreviation](#keyboard.add_abbreviation)).
+- Maps keys as they actually are in your layout, with **full internationalization support** (e.g. `Ctrl+ç`).
+- Events automatically captured in separate thread, doesn't block main program.
+- Tested and documented.
+- Doesn't break accented dead keys (I'm looking at you, pyHook).
+- Mouse support available via project [mouse](https://github.com/boppreh/mouse) (`pip install mouse`).
+## Usage
+Install the [PyPI package](https://pypi.python.org/pypi/keyboard/):
+ pip install keyboard
+or clone the repository (no installation required, source files are sufficient):
+ git clone https://github.com/boppreh/keyboard
+or [download and extract the zip](https://github.com/boppreh/keyboard/archive/master.zip) into your project folder.
+Then check the [API docs below](https://github.com/boppreh/keyboard#api) to see what features are available.
+## Example
+```py
+import keyboard
+keyboard.press_and_release('shift+s, space')
+keyboard.write('The quick brown fox jumps over the lazy dog.')
+keyboard.add_hotkey('ctrl+shift+a', print, args=('triggered', 'hotkey'))
+# Press PAGE UP then PAGE DOWN to type "foobar".
+keyboard.add_hotkey('page up, page down', lambda: keyboard.write('foobar'))
+# Blocks until you press esc.
+keyboard.wait('esc')
+# Record events until 'esc' is pressed.
+recorded = keyboard.record(until='esc')
+# Then replay back at three times the speed.
+keyboard.play(recorded, speed_factor=3)
+# Type @@ then press space to replace with abbreviation.
+keyboard.add_abbreviation('@@', 'my.long.email@example.com')
+# Block forever, like `while True`.
+keyboard.wait()
+```
+## Known limitations:
+- Events generated under Windows don't report device id (`event.device == None`). [#21](https://github.com/boppreh/keyboard/issues/21)
+- Media keys on Linux may appear nameless (scan-code only) or not at all. [#20](https://github.com/boppreh/keyboard/issues/20)
+- Key suppression/blocking only available on Windows. [#22](https://github.com/boppreh/keyboard/issues/22)
+- To avoid depending on X, the Linux parts reads raw device files (`/dev/input/input*`)
+but this requires root.
+- Other applications, such as some games, may register hooks that swallow all
+key events. In this case `keyboard` will be unable to report events.
+- This program makes no attempt to hide itself, so don't use it for keyloggers or online gaming bots. Be responsible.
+
+%prep
+%autosetup -n keyboard-0.13.5
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-keyboard -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Mon Apr 10 2023 Python_Bot <Python_Bot@openeuler.org> - 0.13.5-1
+- Package Spec generated