Skip to content

Commit

Permalink
Added README
Browse files Browse the repository at this point in the history
  • Loading branch information
peterder72 committed May 11, 2024
1 parent d96267b commit b88a4d3
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 0 deletions.
5 changes: 5 additions & 0 deletions PowerShortcuts.sln
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PowerShortcuts.Host", "Powe
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PowerShortcuts.Installer", "PowerShortcuts.Installer\PowerShortcuts.Installer.csproj", "{BC9DB016-7533-4F45-86D9-0D2BC01A2CB8}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Files", "Solution Files", "{1BA47782-CD56-4AA3-B50F-B8267558F86D}"
ProjectSection(SolutionItems) = preProject
README.md = README.md
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down
52 changes: 52 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# PowerShortcuts

[![continuous](https://github.com/peterder72/PowerShortcuts/actions/workflows/continuous.yml/badge.svg)](https://github.com/peterder72/PowerShortcuts/actions/workflows/continuous.yml)

A simple Windows program to add shortcuts that are criminally missing from Windows.
Shortcuts heavily inspired by [dwm](https://dwm.suckless.org/).

Currently only tested on my machine (Windows 11 23H2),
may not (and probably will not) work on other versions due to the undocumented nature of the Virtual Desktop API.

## Current Features

- **No admin privileges** required!
- **Tray icon** for easy access
- Shortcuts for **lightning fast Virtual Desktop** operations.
- Alt+\<digit> to switch to desktop \<digit>
- Alt+Shift+\<digit> to move window in focus to desktop \<digit>

## Technical features

- Written in **.NET 8.0**
- Uses pre-compiled [VirtualDesktopAccessor](https://github.com/Ciantic/VirtualDesktopAccessor) binary for Virtual Desktop operations
- Uses [nuke](https://github.com/nuke-build/nuke) for build automation
- Undocumented Virtual Desktop switching COM API inspired by [pyvda](https://github.com/mrob95/pyvda)
- Has a **simple installer**
- Adds a shortcut to the Start Menu
- Adds itself to **autostart**

# Installation

1. Download the latest .msi installer release from the [releases page](https://github.com/peterder72/PowerShortcuts/releases)
2. Install the software by running the installer
3. The software will **NOT** start automatically after installation (for now), so you can start it from the Start Menu

## Why not AutoHotKey?

Too non-verbose and too much of a hassle to write custom logic with DLL interop.
I will need more complex functionality to be invoked by the shortcuts in the future, so AHK scripting will not do

## Why not pyvda?

Python in painfully slow (~1s to switch desktop), especially with AHK.
Also, distribution and environment setup is a nightmare in Python.

There's great support for COM and dll interop in .NET, and just by rewriting some of the pyvda code in C#
I was able to achieve a significant speedup in all operations.

## Future plans

- Pinning windows to all desktops
- Plugin support for custom shortcut loading
- Support for other Windows versions

0 comments on commit b88a4d3

Please sign in to comment.