Skip to content

Commit

Permalink
⬆️ 0.1.0 version increment (#24)
Browse files Browse the repository at this point in the history
Increments package version and updates README to prepare for 0.1.0
release.
  • Loading branch information
haydenmc authored Jul 23, 2024
1 parent f86e742 commit e4289f0
Show file tree
Hide file tree
Showing 3 changed files with 196 additions and 1 deletion.
195 changes: 195 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,201 @@ UI framework or bundled browser.

[![Screenshot of FlashCom with some example commands](design/Screenshot.png)](design/Screenshot.png)

# Usage

Download the [latest release from GitHub](https://github.com/haydenmc/FlashCom/releases/latest),
or [install from the Windows Store](https://apps.microsoft.com/detail/9P46ZB80RWL8).

After launching FlashCom it will appear in your system tray as a pink lightning bolt.

![Screenshot of FlashCom tray icon](design/TrayIcon.png)

**FlashCom can then be invoked by pressing Win+Space.**

# Settings

To customize the command tree, right click the tray icon and select "Settings,"
then edit the `settings.json` shown.

`settings.json` is used to customize the command tree shown in FlashCom along
with other settings.

For the packaged app, `settings.json` is located in `%LOCALAPPDATA%\Packages\164HaydenMcAfee.FlashCom_nqvw84mb3bsjc\LocalState`.

For the unpackaged app, `settings.json` is located in `%LOCALAPPDATA%\FlashCom`.

## Commands

The `"commands"` field defines the set of commands shown in FlashCom:

```json
{
"commands": [
{
"name": "Calculator",
"key": "C",
"type": "shellExecute",
"executeFile": "calc.exe",
"executeParameters": ""
},
{
"name": "Notepad",
"key": "N",
"type": "shellExecute",
"executeFile": "notepad.exe",
"executeParameters": ""
}
]
}
```

A command can be one of several types. The `"type"` field will determine what
happens when the command is executed.

A command can also serve as a container or folder for other commands. These
commands don't have a `"type"` field, but instead have a `"children"` field:

```json
{
"commands": [
{
"name": "Tools",
"key": "T",
"children": [
{
"name": "Calculator",
"key": "C",
"type": "shellExecute",
"executeFile": "calc.exe",
"executeParameters": ""
},
{
"name": "Notepad",
"key": "N",
"type": "shellExecute",
"executeFile": "notepad.exe",
"executeParameters": ""
}
]
}
]
}
```

### ShellExecute Commands

These commands simply run the given executable file with the provided
parameters.

```json
{
"commands": [
{
"name": "Calculator",
"key": "C",
"type": "shellExecute",
"executeFile": "calc.exe",
"executeParameters": ""
},
{
"name": "Spotify Web",
"key": "S",
"type": "shellExecute",
"executeFile": "msedge.exe",
"executeParameters": "--app=\"https://open.spotify.com\""
},
{
"name": "Absolute Path",
"key": "A",
"type": "shellExecute",
"executeFile": "C:\\Windows\\explorer.exe",
"executeParameters": ""
}
]
}
```

### URI Commands

These commands launch the given URI using the default protocol handler.
In addition to launching websites, you can also use these commands to launch
applications that use protocol activation.

```json
{
"commands": [
{
"name": "Steam Library",
"key": "S",
"type": "uri",
"uri": "steam://open/games"
},
{
"name": "Obsidian",
"key": "B",
"type": "uri",
"uri": "obsidian://open?vault=Personal"
},
{
"name": "Hacker News",
"key": "A",
"type": "uri",
"uri": "https://news.ycombinator.com"
}
]
}
```

### AUMID Commands

Packaged apps on Windows can be activated using an "application user model id"
or AUMID.

An AUMID is a string consisting of a "Package Family Name" followed by `!` and
the application ID you wish to launch. For example, the Clock app on Windows can
be launched with the AUMID `Microsoft.WindowsAlarms_8wekyb3d8bbwe!App`.

An easy way to find the AUMID for an installed app is to use the
[`Get-AppPackage`](https://learn.microsoft.com/en-us/powershell/module/appx/get-appxpackage)
PowerShell command to find the package family name and installation location,
then look at the `AppxManifest.xml` in the installation location to determine
the Application ID you wish to launch.

```json
{
"commands": [
{
"name": "Alarms + Clock",
"key": "A",
"type": "aumid",
"aumid": "Microsoft.WindowsAlarms_8wekyb3d8bbwe!App"
},
{
"name": "foobar2000",
"key": "F",
"type": "aumid",
"aumid": "Resolute.foobar2000modern_cg7j1awqsza28!foobar2000"
}
]
}
```

# Troubleshooting

If FlashCom refuses to start, you may have an error in your `settings.json`.
Read the above and ensure your file conforms to the guidance.

If `settings.json` is deleted FlashCom will generate a default `settings.json`
that is known to work.

FlashCom stores log files alongside `settings.json` in these locations:
- **Packaged App:** `%LOCALAPPDATA%\Packages\164HaydenMcAfee.FlashCom_nqvw84mb3bsjc\LocalState\FlashCom.log`
- **Unpackaged:** `%LOCALAPPDATA%\FlashCom\FlashCom.log`

If you're still running into problems please file an issue and attach your
`FlashCom.log` file (note that the log file may contain information present in
your `settings.json`).

# Third Party Libraries

## [nlohmann/json](https://github.com/nlohmann/json)
Expand Down
Binary file added design/TrayIcon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion src/Packaging/Package.appxmanifest
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<Identity
Name="164HaydenMcAfee.FlashCom"
Publisher="CN=5061D826-8E2A-4755-932E-A6DD607C027B"
Version="0.0.1.0" />
Version="0.1.0.0" />

<Properties>
<DisplayName>FlashCom</DisplayName>
Expand Down

0 comments on commit e4289f0

Please sign in to comment.