|
|
To install Anonymine on Windows, you can either:
|
|
|
- use the automatic Cygwin installer
|
|
|
- install CPython or PyPy and a suitable curses library manually
|
|
|
|
|
|
|
|
|
## Comparison table
|
|
|
|
|
|
Option | Installation | Launcher | UI performance | Initialization speed | Compatibility
|
|
|
--------------------------------------------------------------------------------------------
|
|
|
Cygwin | Should be fine | Fancy | Good | Up to N | 7 or newer required, 10 recommended, 64-bit recommended, NO ARM
|
|
|
CPython | Medium | DIY | Good | 1 | XP or newer required, available for ARM
|
|
|
PyPy 2.7 | DIY | DIY | May be poor | Up to 3*N | Windows 10 or newer required, 64-bit x86 only
|
|
|
PyPy 3.x | DIY | DIY | May be poor | 3 | Windows 10 or newer required, 64-bit x86 only
|
|
|
|
|
|
Where N is the number of threads your CPU has.
|
|
|
|
|
|
|
|
|
|
|
|
## Cygwin
|
|
|
|
|
|
Cygwin is a Linux/unix compatibility layer for Windows
|
|
|
|
|
|
### Installation
|
|
|
|
|
|
This will require about 1 GB of disk space and take some time.
|
|
|
|
|
|
Download https://gitlab.com/oskog97/anonymine-windows/-/archive/master/anonymine-windows-master.zip
|
|
|
and extract it to somewhere safe(*), eg "Documents". Enter the directory and
|
|
|
start the `Install-as-normal-user.bat` batch script.
|
|
|
|
|
|
(*) The extracted directory will be needed later if you ever desire to update
|
|
|
or uninstall Anonymine, but is otherwise not needed for Anonymine.
|
|
|
|
|
|
### Launcher
|
|
|
|
|
|
The installer can install shortcuts on the desktop or in the start menu.
|
|
|
|
|
|
### UI performance
|
|
|
|
|
|
Anonymine will run in Cygwin's mintty terminal emulator, it doesn't lag
|
|
|
but you sometimes have to hit enter after ctrl-C.
|
|
|
|
|
|
### Initialization speed
|
|
|
|
|
|
Multiprocessing works because Cygwin implements fork(). It uses CPython
|
|
|
because PyPy is not available in Cygwin's repository.
|
|
|
|
|
|
### Compatibility
|
|
|
|
|
|
Windows 10 is recommended. 64-bit is heavily recommended.
|
|
|
ARM is not supported.
|
|
|
|
|
|
|
|
|
|
|
|
## CPython
|
|
|
|
|
|
Anonymine can run natively on Windows as long as a curses library is provided,
|
|
|
for CPython you can use "windows-curses".
|
|
|
|
|
|
### Installation
|
|
|
|
|
|
1. Download Python from https://www.python.org/ then launch the installer and
|
|
|
make sure to select "Add Python x.y to PATH".
|
|
|
|
|
|
2. Open up a command prompt and run the following commands:
|
|
|
```
|
|
|
pip install --upgrade pip
|
|
|
pip install windows-curses
|
|
|
|
|
|
```
|
|
|
|
|
|
3. Download https://gitlab.com/oskog97/anonymine/-/archive/master/anonymine-master.zip
|
|
|
and extract to wherever you like
|
|
|
|
|
|
4. Double click `anonymine.py`
|
|
|
|
|
|
### Launcher
|
|
|
|
|
|
If you want a shortcut, you'll have to make it yourself.
|
|
|
Note that the working directory must be the one that you extracted.
|
|
|
|
|
|
### UI performance
|
|
|
|
|
|
Anonymine will run in Windows' console host window, it doens't lag, but when
|
|
|
in curses mode ctrl-C does not work during initialization.
|
|
|
|
|
|
### Initialization speed
|
|
|
|
|
|
Multiprocessing does not work.
|
|
|
|
|
|
### Compatibility
|
|
|
|
|
|
Older releases of Python can work on as old as Windows XP.
|
|
|
Python 2.7 with windows-curses has been tested on ReactOS (~NT 5.2).
|
|
|
|
|
|
ARM64 has pre-releases at https://www.python.org/downloads/windows/
|
|
|
|
|
|
|
|
|
|
|
|
## PyPy
|
|
|
|
|
|
"windows-curses" does not work on PyPy, but I made a replacement that barely
|
|
|
works. On PyPy 2.7, multiprocessing works for some weird reason, but only on
|
|
|
PyPy 2.7.
|
|
|
|
|
|
### Installation
|
|
|
|
|
|
1. Download and extract PyPy (preferrably PyPy 2.7) from
|
|
|
https://www.pypy.org/download.html
|
|
|
|
|
|
2. Add the `bin` directory to your `%PATH%`. (Or make Windows open `.py` files
|
|
|
with PyPy.) If you install both PyPy 2.7 and PyPy 3.x, PyPy 2.7 should come
|
|
|
first in `%PATH%`.
|
|
|
|
|
|
3. Download https://gitlab.com/oskog97/anonymine/-/archive/master/anonymine-master.zip
|
|
|
and extract to wherever you like
|
|
|
|
|
|
4. Download https://gitlab.com/oskog97/poop/-/raw/main/curses.py and save as
|
|
|
`curses.py` in the extracted directory.
|
|
|
|
|
|
5. You need to enable VT100 support in Windows console host.
|
|
|
Run this from an Admin Powershell:
|
|
|
```powershell
|
|
|
Set-ItemProperty HKCU:\Console VirtualTerminalLevel -Type DWORD 1
|
|
|
```
|
|
|
It doesn't change the already running conhost. Start a new cmd window.
|
|
|
|
|
|
### Launcher
|
|
|
|
|
|
If you want a shortcut, you'll have to make it yourself.
|
|
|
Note that the working directory must be the one that you extracted.
|
|
|
|
|
|
You can set the environment variables `ROWS` and `COLS` to your liking, see
|
|
|
the next section for details.
|
|
|
|
|
|
### UI performance
|
|
|
|
|
|
Pööp curses does no optimization, it sends the entire screen in a rather
|
|
|
inefficient manner to the terminal for every update. Windows' console host
|
|
|
is rather slow, but the default size of 80x24 is fine.
|
|
|
|
|
|
Render time is probably proportional to the area of the screen. Try setting
|
|
|
`ROWS` and `COLS` lower if performance is poor.
|
|
|
|
|
|
Minimums to avoid scrolling:
|
|
|
- ROWS = height + 3
|
|
|
- COLS = 2 * width + 5
|
|
|
|
|
|
Example:
|
|
|
```batch
|
|
|
set ROWS=23
|
|
|
set COLS=45
|
|
|
pypy anonymine.py
|
|
|
```
|
|
|
|
|
|
Pööp curses is built specifically for Anonymine, and for the default
|
|
|
configuration. Modification to `curses.py` may be required if you desire
|
|
|
to change something in `cursescfg`.
|
|
|
|
|
|
### Initialization speed
|
|
|
|
|
|
PyPy is approximately 3 times faster than CPython for running Anonymine.
|
|
|
|
|
|
On PyPy 2.7 multiprocessing works, allowing Anonymine to utilize all
|
|
|
CPU threads. This only works on PyPy 2.7 on native Windows, and on Cygwin.
|
|
|
|
|
|
### Compatibility
|
|
|
|
|
|
Windows 10 or newer is strictly required. x86-64 is currently the only
|
|
|
precompiled version of PyPy for Windows. Not sure if it works at all on
|
|
|
Windows on ARM. |