From 34ae9af8fdab54cfaf5affb8611c056c5c692819 Mon Sep 17 00:00:00 2001 From: Tej Pochiraju Date: Fri, 2 Apr 2021 10:14:04 +0530 Subject: [PATCH] Compile to single binary with nuitka --- .gitignore | 5 +++++ README.md | 13 ++++++++++--- icon.png | Bin 0 -> 476 bytes keyboard_shortcut.png | Bin 0 -> 22779 bytes requirements.txt | 4 +++- 5 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 icon.png create mode 100644 keyboard_shortcut.png diff --git a/.gitignore b/.gitignore index b6e4761..d1cda3e 100644 --- a/.gitignore +++ b/.gitignore @@ -127,3 +127,8 @@ dmypy.json # Pyre type checker .pyre/ + +# nuitka artifacts +*.build +*.dist +*.bin \ No newline at end of file diff --git a/README.md b/README.md index ec62fdc..da824d6 100644 --- a/README.md +++ b/README.md @@ -9,16 +9,23 @@ Inspired by: - Create and activate a [Python3 virtual environment](https://stackoverflow.com/a/19848770/) - Install dependencies with `pip install -r requirements.txt` -- Run `python ctrlc.py` +- ~~Run `python ctrlc.py`~~ +- Compile with `python -m nuitka --onefile --linux-onefile-icon icon.png ctrlc.py` +- Move binary to your bin folder, e.g. `$HOME/bin` +- Run `ctrlc.bin` + - To speed things up, bind this to a keyboard shortcut in your window manager (see screenshot below for XFCE)! - Paste with `ctrl+v`! +![Keyboard Shortcut](keyboard_shortcut.png) + ## Important! - Needs a clipboard manager. e.g. xsel or xclip on GNU/Linux +- `nuitka` needs `chrpath` to be installed on your system, e.g. `sudo pacman -S chrpath` ## TODO -- [ ] Create flow to trigger via keyboard shortcut. -- [ ] Package to a distributable binary. +- [x] Create flow to trigger via keyboard shortcut. +- [x] Package to a distributable binary. ## References diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1d01bef9f480d6e29e7d06cc266b427f5d4c9638 GIT binary patch literal 476 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrU|j6!;uumf=k1+?zR`{%Z5Q{8 zOn2Z6_OjxTeKO5~{et7A#+M9MT-*+uPxE=%bMD)9_Fv|-ir$^y literal 0 HcmV?d00001 diff --git a/keyboard_shortcut.png b/keyboard_shortcut.png new file mode 100644 index 0000000000000000000000000000000000000000..9ff738199e9e0bf0bd2f6471e64fd9995dc3529a GIT binary patch literal 22779 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 literal 0 HcmV?d00001 diff --git a/requirements.txt b/requirements.txt index 93a8c47..eff46a9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,5 @@ beautifulsoup4 requests -pyperclip \ No newline at end of file +pyperclip +nuitka +scons \ No newline at end of file