Skip to content

Commit 94a7a27

Browse files
committed
Bump version to 2.2
1 parent 6ffeb5d commit 94a7a27

File tree

7 files changed

+35
-21
lines changed

7 files changed

+35
-21
lines changed

CHANGELOG

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
1-
Unreleased
1+
v2.2 (2024-11-24)
22
- Make application timeout configurable
3+
- Add WrapEntries feature
4+
- Various fixes, optimizations, and code quality improvements
5+
- Windows: Improve logic relating to handling of launched applications (focus issues, etc.)
6+
- Linux: Don't set SDL_VIDEODRIVER environment variable
37

48
v2.1 (2023-1-7)
59
- Added OnLaunch 'Quit' mode

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
cmake_minimum_required(VERSION 3.18)
33
project("Flex Launcher"
44
LANGUAGES C
5-
VERSION 2.1
5+
VERSION 2.2
66
DESCRIPTION "Customizable HTPC Application Launcher"
77
HOMEPAGE_URL "https://github.com/complexlogic/flex-launcher"
88
)

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,19 +55,19 @@ Binary packages are available on the [release page](https://github.com/complexlo
5555
#### APT-based x86-64 Distributions (Debian, Ubuntu, etc.)
5656
This package is compatible with Debian Bullseye and later, Ubuntu 21.04 and later.
5757
```bash
58-
wget https://github.com/complexlogic/flex-launcher/releases/download/v2.1/flex-launcher_2.1_amd64.deb
59-
sudo apt install ./flex-launcher_2.1_amd64.deb
58+
wget https://github.com/complexlogic/flex-launcher/releases/download/v2.2/flex-launcher_2.2_amd64.deb
59+
sudo apt install ./flex-launcher_2.2_amd64.deb
6060
```
6161
#### Pacman-based x86-64 Distributions (Arch, Manjaro, etc.)
6262
```bash
63-
wget https://github.com/complexlogic/flex-launcher/releases/download/v2.1/flex-launcher-2.1-1-x86_64.pkg.tar.zst
64-
sudo pacman -U flex-launcher-2.1-1-x86_64.pkg.tar.zst
63+
wget https://github.com/complexlogic/flex-launcher/releases/download/v2.2/flex-launcher-2.2-1-x86_64.pkg.tar.zst
64+
sudo pacman -U flex-launcher-2.2-1-x86_64.pkg.tar.zst
6565
```
6666
#### Raspberry Pi
6767
This package is compatible with Raspbian Bullseye and later, 64 bit only.
6868
```bash
69-
wget https://github.com/complexlogic/flex-launcher/releases/download/v2.1/flex-launcher_2.1_arm64.deb
70-
sudo apt install ./flex-launcher_2.1_arm64.deb
69+
wget https://github.com/complexlogic/flex-launcher/releases/download/v2.2/flex-launcher_2.2_arm64.deb
70+
sudo apt install ./flex-launcher_2.2_arm64.deb
7171
```
7272
#### Copying Assets to Home Directory
7373
The Linux packages install a default config file and assets to `/usr/share/flex-launcher`. It is strongly recommended to *not* edit this config file directly, as it will be overwritten if you upgrade to a later version of Flex Launcher. Instead, copy these files to your home directory and edit it there.

docs/_config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ description: A customizable HTPC application launcher and front-end interface
33
url: "" # the base hostname & protocol for your site, e.g. http://example.com
44
github_username: complexlogic
55
repository: complexlogic/flex-launcher
6-
launcher_version: 2.1
6+
launcher_version: 2.2
77

88
# Build settings
99
remote_theme: pages-themes/[email protected]

docs/configuration.md

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ title: Configuration
2424

2525
## Overview
2626
Flex Launcher uses an [INI file](https://en.wikipedia.org/wiki/INI_file) to configure settings and menus. The INI file consists of sections enclosed in square brackets, and in each section there are entries which consist of a key and a value. Example:
27-
```INI
27+
```ini
2828
[Section]
2929
Key1=value
3030
Key2=value
@@ -72,6 +72,11 @@ Default: true
7272
##### FPSLimit
7373
When `VSync` is set to false, this setting defines the maximum number of frames per second that Flex Launcher will render. The minimum is 10, and the maximum is the same as the refresh rate of your monitor.
7474

75+
##### ApplicationTimeout
76+
Defines the time in seconds that the launcher will wait for an application to launch. If the launcher does not lose the window focus before the timeout occurs, it assumes there was an error with the launched application.
77+
78+
Default: 15
79+
7580
##### OnLaunch
7681
Defines the action that Flex Launcher will take upon the launch of an application. Possible values: "None", "Blank", and "Quit"
7782
- None: Flex Launcher will maintain its window while waiting for the launched application to initialize.
@@ -80,6 +85,11 @@ Defines the action that Flex Launcher will take upon the launch of an applicatio
8085

8186
Default: Blank
8287

88+
##### WrapEntries
89+
Defines whether the highlight will wrap to the other side of the screen after reaching its leftmost or rightmost position. This setting is a boolean "true" or "false".
90+
91+
Default: false
92+
8393
##### ResetOnBack
8494
Defines whether Flex Launcher will remember the previous entry position when going back to a previous menu. If set to true, the highlight will be reset to the first entry in the menu when going back. This setting is a boolean "true" or "false".
8595

@@ -350,7 +360,7 @@ Default: 100%
350360
At least one menu must be defined in the configuration file, and the title must match the `DefaultMenu` setting value. The title of a menu is its section name. Any title may be used that is not reserved for another section, such as "Settings", "Gamepad", etc. The entries of the menu are implemented as key=value pairs. The name of the key will be ignored by the program, and is therefore arbtrary. However, it is recommended to pick something intutitive such as Entry1, Entry2, Entry3, etc. The entry information is contained in the value.
351361

352362
Each entry value contains 3 parts of information in order: the title, the icon image path, and the command to run when the button is clicked. These are delimited by semicolons:
353-
```
363+
```ini
354364
Entry=title;icon_path;command
355365
```
356366
The command is typically one of the following:
@@ -361,7 +371,7 @@ The command is typically one of the following:
361371
5. The path to an executable script, in the case that you want to perform multiple actions upon program launch.
362372

363373
A simple example menu titled `Media` is shown below:
364-
```
374+
```ini
365375
[Media]
366376
Entry1=Kodi;C:\Pictures\Icons\kodi.png;"C:\Program Shortcuts\kodi.lnk"
367377
Entry2=Netflix;C:\Pictures\Icons\netflix.png;"C:\Program Shortcuts\netflix.lnk"
@@ -528,13 +538,13 @@ Default: true
528538

529539
## Hotkeys
530540
Flex Launcher supports configurable hotkeys, which executes a command when a specified key is pressed. Each hotkey consists of a key=value pair, where the key is an arbitrary name, and the value contains the SDL keycode of the hotkey and the command to run when it is pressed, delimited by a semicolon:
531-
```
541+
```ini
532542
Hotkey=keycode;command
533543
```
534544
The keycode is a HEX prefixed with the # character. There are two ways to find a keycode for a given key. The first is to use the [lookup table provided by SDL](https://wiki.libsdl.org/SDLKeycodeLookup). The name of each key is in the right column of the table, and the corresponding HEX keycode is in the center column. The second is to run Flex Launcher in debug mode, press the key, then check the log. For each keystroke, the name of the key will be printed and the HEX value will be in parenthesis next to it.
535545

536546
Any key can be set as a hotkey, except keys that are reserved for the default controls: the left and right arrow keys, enter/return, and backspace. Hotkeys may be used to "speed dial" your favorite applications, or to add controls via [special commands](#special-commands). As an example configuration below, the first hotkey is mapped to F1 and will launch Kodi when it is pressed, and the second hotkey is mapped to F12 and will cause Flex Launcher to quit when it is pressed:
537-
```
547+
```ini
538548
[Hotkeys]
539549
Hotkey1=#4000003A;"C:\Program Shortcuts\kodi.lnk"
540550
Hotkey2=#40000045;:quit
@@ -546,7 +556,7 @@ The exit hotkey feature allows a user to quit the running application using a bu
546556
Only the function keys F1-F24 may be used as an exit hotkey, with the exception of F12 which is forbidden by Windows. Pressing an exit hotkey is functionally equivalent to using the Alt+F4 keyboard shortcut on the active window; it is not a forceful method, so the application is able to close cleanly. However, the application could also choose to ignore it, display a confirmation dialog, or not respond if it's hung.
547557

548558
The following example maps F10 as an exit hotkey:
549-
```
559+
```ini
550560
Hotkey=#40000043;:exit
551561
```
552562
Linux users that desire similar functionality should check the documentation of their desktop environment and/or window manager. Most support global hotkeys that can be configured to close the active window.

docs/setup.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Any icon that is not the same resolution as the `IconSize` setting in your confi
2626
inkscape --export-width=<width> --export-type=png /path/to/file.svg
2727
```
2828
You can easily write a script to rasterize all SVGs in a directory to PNG at a given resolution. Here is an example in Python:
29-
```Python
29+
```python
3030
import glob
3131
import subprocess
3232
WIDTH=300 # Width of the PNG in pixels
@@ -55,12 +55,12 @@ My recommended web browser for HTPC use is Chrome/Chromium. This browser has man
5555
There is currently no desktop application for YouTube. However, there is a TV-friendly web interface located at [youtube.com/tv](https://www.youtube.com/tv) that is intended for use by Smart TVs . Google recently blocked access to this interface for desktop web browsers, but the block can be easily circumvented by spoofing the user-agent string of a Smart TV. A list of valid Smart TV user-agent strings is easily found online by search engine. The following example menu entries will launch an app-like YouTube experience in a browser:
5656

5757
**Windows:**
58-
```
58+
```ini
5959
Entry=YouTube;C:\icons\youtube.png;"C:\Program Files\Google\Chrome\Application\chrome.exe" --start-fullscreen --user-agent="Mozilla/5.0 (Linux; Tizen 2.3; SmartHub; SMART-TV; SmartTV; U; Maple2012) AppleWebKit/538.1+ (KHTML, like Gecko) TV Safari/538.1+" youtube.com/tv
6060
```
6161

6262
**Linux:**
63-
```
63+
```ini
6464
Entry=YouTube;/path/to/icons/youtube.png;chromium --start-fullscreen --user-agent="Mozilla/5.0 (Linux; Tizen 2.3; SmartHub; SMART-TV; SmartTV; U; Maple2012) AppleWebKit/538.1+ (KHTML, like Gecko) TV Safari/538.1+" youtube.com/tv
6565
```
6666

@@ -75,12 +75,12 @@ The one caveat to this method is that the exit button in the menu doesn't work.
7575
Steam users may desire to launch their most frequently played games directly from Flex Launcher to avoid having to navigate through the Steam client UI first. Valve provides a [protocol](https://developer.valvesoftware.com/wiki/Steam_browser_protocol) to directly launch games, among other actions. To do so, pass `steam://run/<id>` as an argument to Steam, where `<id>` is replaced by the id of the game you want to watch. You can find the id of a game by searching [steamdb](https://steamdb.info/). For example, the id of Portal 2 is 620. You would structure your menu entry to launch Portal 2 like so:
7676

7777
**Windows:**
78-
```
78+
```ini
7979
Entry=Portal 2;C:\icons\portal_2.png;"C:\Program Files (x86)\Steam\steam.exe" steam://run/620
8080
```
8181

8282
**Linux:**
83-
```
83+
```ini
8484
Entry=Portal 2;/path/to/icons/portal_2.png;steam steam://run/620
8585
```
8686

docs/setup_windows.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ Reboot your HTPC for the change to take effect.
4545
It may be desirable to use the desktop interface occasionally, e.g. during maintenance or installation of new software. You can get your desktop back by running `explorer.exe`. This can be accomplished in a few ways.
4646

4747
Using the `QuitCmd` setting in your config file, you can automatically restore your desktop after you quit Flex Launcher:
48-
```INI
48+
```ini
4949
[General]
5050
...
5151
QuitCmd=:fork explorer.exe

0 commit comments

Comments
 (0)