All Projects → mokojm → townshell

mokojm / townshell

Licence: MIT license
For Townscaper, an application providing additional keyboard shortcuts, tools to manipulate .scape files, screen recording

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to townshell

Pasteex
📋 Paste As File 把剪贴板的内容直接粘贴为文件
Stars: ✭ 634 (+1485%)
Mutual labels:  screenshot, clipboard
Gnome Shell Screenshot
Gnome Shell extension for making and uploading screenshots
Stars: ✭ 163 (+307.5%)
Mutual labels:  screenshot, clipboard
Imgursniper
📷 A quick and easy Image, Screenshot and Screen recording sharing tool
Stars: ✭ 69 (+72.5%)
Mutual labels:  screenshot, clipboard
Sharex
ShareX is a free and open source program that lets you capture or record any area of your screen and share it with a single press of a key. It also allows uploading images, text or other types of files to many supported destinations you can choose from.
Stars: ✭ 18,143 (+45257.5%)
Mutual labels:  screenshot, screen-recorder
Inferno
🔥 Modern command line tool for malware creation on Windows
Stars: ✭ 105 (+162.5%)
Mutual labels:  screenshot, clipboard
nougat
Screenshot wrapper
Stars: ✭ 20 (-50%)
Mutual labels:  screenshot, clipboard
jest-puppe-shots
A Jest plugin for creating screenshots of React components with a little help of Puppeteer
Stars: ✭ 86 (+115%)
Mutual labels:  screenshot
ossFileTransferClient
이 프로젝트는 업무망과 인터넷망으로 분리된 망간자료전송 솔루션의 인터넷망용 클라이언트를 개발합니다.
Stars: ✭ 18 (-55%)
Mutual labels:  clipboard
Bulletproof-Arma-Launcher
Customisable mod installer and launcher for Arma 3 mods that takes care of *everything* for your community players! Why "bulletproof", you ask? Because "Idiotensicher" was mean :)
Stars: ✭ 21 (-47.5%)
Mutual labels:  kivy
canvasTools
Screenshot tool based on canvas
Stars: ✭ 69 (+72.5%)
Mutual labels:  screenshot
DeskViewer
A Java Project for screen sharing based on TCP protocol. Like TeamViewer
Stars: ✭ 23 (-42.5%)
Mutual labels:  screenshot
MagicWE2
[MagicWE2] Lag free asynchronous world editor for PMMP with plenty of options
Stars: ✭ 109 (+172.5%)
Mutual labels:  clipboard
Student-Portal
An app for students made as a part of a code jam
Stars: ✭ 54 (+35%)
Mutual labels:  kivy
browser-shots
A WordPress plugin for taking screenshots of websites using the block editor.
Stars: ✭ 17 (-57.5%)
Mutual labels:  screenshot
termux-arch
You can use setupTermuxArch.sh 📲 to install Arch Linux in Termux on Android and Chrome. This setup script will attempt to set Arch Linux up in your Termux environment.
Stars: ✭ 25 (-37.5%)
Mutual labels:  screenshot
mumemo
Mumemo is screenshot-driven note application.
Stars: ✭ 38 (-5%)
Mutual labels:  screenshot
JamTools
JamTools是一个跨平台的小工具集,包含了截屏、录屏、文字识别、各种格式转换、鼠标键盘动作录制播放、文件传输、聊天机器人等功能
Stars: ✭ 73 (+82.5%)
Mutual labels:  screenshot
browser-automation-api
Browser automation API for repetitive web-based tasks, with a friendly user interface. You can use it to scrape content or do many other things like capture a screenshot, generate pdf, extract content or execute custom Puppeteer, Playwright functions.
Stars: ✭ 24 (-40%)
Mutual labels:  screenshot
dokuwiki-plugin-syntaxhighlighter4
SyntaxHighlighter4 plugin for DokuWiki
Stars: ✭ 51 (+27.5%)
Mutual labels:  clipboard
react-use-hotkeys
React hook for creating simple keyboard shortcuts
Stars: ✭ 74 (+85%)
Mutual labels:  keyboard-shortcuts

TownShell

Download "TownShell.exe" here,

TownShell ico

Townshell v2.2 : "Write" feature added. "Flip" and "Load" screens added. "Merge" and "Level" have new options.

Youtube : Townshell_Youtube

TownShell_write_font

Wanna save some clicks on Townscaper, this small app will help you !

Get additional keyboard shortcuts to relax your fingers while building your town.

Get access to useful tools to accelerate your building process. Change the height of many blocks at a time. Change the color of your whole structure with a few words.

Quickstart

Download "TownShell.exe" here,

Click 'TownShell.exe'

Since I do not have any certificates, Windows and firewalls might prevent you from opening the .exe. Just skip warning to enjoy TownShell features

Open "Townscaper", Click "New", Press "Space" few seconds,

Enjoy the fast click !

Click "Save to Clipboard", Tap "tab" to open "TownShell", Explore the functions

Back to "Townscaper" click "Load from Clipboard", Enjoy the time you've saved !

Explore this file for more features

Table of contents

  1. Installation
  2. Usage
  3. Details
  4. Future Releases

Installation

The easiest way to get started is by following the link here

For advanced users familiar with Python and Kivy, see Advanced installation

Usage

Startup screen

TownShell_startup

Keyboard shortcuts

Keyboard shortcuts are active by default once TownShell is started. It works only when Townscaper is the foreground window. Default shortcuts are as follows :

'Open TownShell' ==> 'tab'

'left_click' ==> 'space'

'right_click' ==> 'c'

'undo click' ==> 'v'

'redo click' ==> 'b'

'custom_left_click' ==> 'shift+space'

'custom_right_click' ==> 'shift+c'

'custom_undo' ==> 'shift+v'

'custom_redo' ==> 'shift+b'

'undo last command' ==> 'ctrl+alt+z'

'redo last command' ==> 'ctrl+alt+x'

For example, by default, keeping 'x' pressed will result in block creation every 0,05 seconds.

Custom shortcuts allow you to have one event done a precise number of times:

  1. Press one or several digits
  2. Use one of the custom shortcuts described above Note that if you press several digits, the time between the press needs to be less than one second. For example, if you press "1" then "2" quickly then you use 'custom_left_click' keyboard shortcut, it will result in 12 blocks getting created.

If you're not satisfied with these shortcuts see Shortcuts configuration

Level

TownShell_level_example

'level' command give you the ability to elevate your structure at any height (<255) with a bunch of options. To use it, click "Save to Clipboard" on the structure you want the height to change, press "²" to open TownShell and enter a command following the rules below. Then on Townscaper click "Load from Clipboard".

Note that your original file is not modified.

Paint

Paint_example

'paint' command give you the ability to change the color of many blocks at a time with a bunch of options. To use it, click "Save to Clipboard" on the structure you want the height to change, press "²" to open TownShell and enter a command following the rules below. Then on Townscaper click "Load from Clipboard".

Note that your original file is not modified.

Dig

Dig_example

Replicate

Replicate_example

Merge

Merge_example

Capture

TownShell_level_example

Best practices :

  • Since screen recording can be quite demanding on your computer ressources. Close as many application outside of Townshell and Townscaper to get the best quality.
  • After finishing the mouse move, Townshell will still need some time to finish rendering the video. It will be improved in the future but for now it will freeze Townshell window until it's done.
  • If you're not satisfied with the fps of your recording, you can put Townscaper on window mode and decrease the size of the window. It should boost fps.
  • Default encoding is set to run as fast as possible but the quality of the final record can be disappointing. In 'townshell.cfg' you can change 'preset' from 'ultrafast to the following values to get improve quality : ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow Note that it can increase CPU usage a lot and decrease FPS performances. You can also set 'bitrate' to improve quality, default value is 3000 (ko/s), the higher the bitrate, the bigger the output file.

Tips :

  • Before Recording use "Test" tp check the move match your expectations
  • If you want to record Townscaper with no move, set Distance to 0 and press 'Record'

Write

TownShell_write_screen TownShell_write_font

Many options are available using "Advanced" field, it follows JSON format, example : {"full": true, "alternate": "both"}

Here are the available options (case sensitive) :

  • full: (true or false) // Defines if the full length of wallpath should be used or not, default to "false", should be used only when background is set too
  • alternate: ("text", "background", "both") // Colors will be used alternatively. Should be used with at least two colors in "Colors" or "Background" to be effective. (need improvement)
  • mode: ("1l1c", "1w1c", "1li1c") // "1l1c" = "1-letter-1-color", "1w1c" = "1-word-1-color", "1li1c" = "1-line-1-color" it changes how colors are given to blocks. Can't be used with "dict_colors", can be used with "alternate" (need improvement)
  • crown: (positive integer) // use the background colors to draw a crown around letters
  • dict_colors: (ex: {"dict_colors": {"a": 1, "n": 0}}) associate colors and letters
  • INTERLINE: (positive integer) // amount of blocks between lines of blocks
  • SPACE_LEN: (positive integer) // amount of blocks to represent "spaces"
  • LINE_LENGTH: (positive integer) // max amount of blocks in one line, by default it's the amount of corners in the path
  • INTERLETTER: (positive integer) // amount of blocks between letters
  • INTERWORD: (positive integer) // amount of blocks between words (not sure how it's different from SPACE_LEN...anyway)
  • start: (positive integer) // Defines the corner position where the text will start, if the end is reached, corners before the given "start" position are used. Default is 0. It can be useful for circular path to choose the position of the text
  • template: (true or false) // If true, the template used to define the path will be thrown back instead of the text

The following ones can be used and would override values of the GUI.

  • color:
  • plain:
  • background:
  • reverse:
  • font:
  • wordwrap:
  • align:
  • wallpath:

Tip : If you do not input any text you might get a surprise after clicking "Save to Clipboard" and loading the build in Townscaper ;-)

Flip

TownShell_flip_screen

Load

TownShell_flip_screen

A lot of templates are available for you start building on them.

Details

Advanced installation

TownShell is written in Python qnd Kivy language. If you do not have Python installed on your computer, you can download it and install it from here If you do not have Kivy, you can download it and install it from here

Use 'pip' to install the required librairies

pip install keyboard mouse pyperclip mss ffmpeg pyfiglet

ffmpeg needs to be installed on your computer to use 'Capture' : https://www.ffmpeg.org/download.html

(If you're wondering why there is pyfiglet in the list well it's linked with the next feature coming, hey, hey tell me if you guess what it is and thank you for reading so much of what I wrote)

Then download the master branch on Git then run "main.py" to start using TownShell.

Shortcuts configuration

At any time, you can see the active shortcuts on Main screen. If you're not satisfied with the shortcuts provided by default, you can modify them by opening 'townshell.cfg' file.

  1. Use your native notepad application to open it
  2. Modify the lines related to the keyboard shortcuts to personify your TownShell. Note that 'pause' is the interval between to automatic clicks in seconds.
  3. Save the file, then either restart TownShell or switch Keyboard shortcuts button.

Warning ! Beware that Townscaper use already a few keyboard shortcuts, so it's recommended not to use these ones. See: https://www.yekbot.com/townscaper-controls-useful-shortcuts-for-fast-building/

Concepts

In Townscaper saved files, each position on the grid of Townscaper is called a 'corner'. On each 'corner' you can have one or more blocks. A block is called a 'voxel'. Therefore, every Townscaper building is an assembly of corners of voxels. If you wish to read more about how Townscaper saved files are made, you can go to the following website : https://medium.com/@chrisluv/getting-hacky-with-townscaper-5a31cf7f4c6a

From clipboard to customizable dictionaries

Townscaper provides us strings through "Save to clipboard" that will be called "clip" in TownShell program. These clips contain all the information describing a given structure, allowing Townscaper's users to share their creations.

alvaro-cuesta made a very good script that converts clips to dictionary of corners and voxels using Javascript. Since TownShell is written in Python, the core part of townsclipper code has been translated and adjusted.

Configuration file

'townshell.cfg' is the configuration file of TownShell.

Keyboard shortcuts are stored inside.

Logging

In 'townshell.cfg', 'loglevel' setting determine the level of log that will be saved in 'town.log'. By default it's "INFO". It can be useful to set it to "DEBUG" when a bug is encountered and needs to be shared.

'town.log' contains only the log information related to the running TownShell. If you're looking for older log information, it's in 'town_old.log'

Kivy log files are also stored in 'log' repository

Write templates

In "townshell.cfg", the property "write_templates" allows you to have your own templates for drawing in "Path" in GUI. You can fill it with file paths or directories. example : "write_templates": ["C:\Users\someone\something.txt", "C:\Users\someone\"]. File paths need to be .txt files

To sort corners, Townshell will use the maximum height of voxels on that corners. Here is an example : TownShell_write_screen

Future releases

Here are a few stuffs I'd like to add, implementation is not guaranteed :

  • "Capture" : make it more intuitive, add "Register Move"

Contributing

I'm not very experienced at programming or using github, so any help on making this project easier to understand will be appreciated. Do not hesitate to report bugs.

Copyright © 2020, Álvaro Cuesta. //=> Copyright (c) 2020 Álvaro Cuesta

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].