complexlogic / flex-launcher Goto Github PK
View Code? Open in Web Editor NEWA customizable HTPC application launcher for Windows and Linux
Home Page: https://complexlogic.github.io/flex-launcher/
License: The Unlicense
A customizable HTPC application launcher for Windows and Linux
Home Page: https://complexlogic.github.io/flex-launcher/
License: The Unlicense
deleted
it works it launching firefox but in background .flex launcher goes right back as oppose to going back only when the app that is launched quits.
I have added Windows apps to the launcher (not an easy feat, Windows apps are...special). However, when closing some apps, say Disney+, flex-launcher returns to a black screen.
Environment:
OS: Windows 11 Home 23H2
Test Resource: Disney+ app installed from the Windows app store.
Steps to reproduce:
The Amazon Prime Video app (found in C:\program files\Applications\ actually uses a .exe file to launch, so that works fine. Netflix and Disney use some kind of special Windows App magic to launch the app, but Netflix allows you to run a batch file with the contents of "run netflix:" which can be loaded into flex-launcher, but the Disney app doesn't offer any such option.
Below is the debug output. The steps here was to launch Netflix using a bat file (described above), close it, then launch the Disney shortcut created using the above procedures. Immediately before the Key Escape entry is where the black screen is shown.
Loading menu 'Main'
Begin program loop
Gained keyboard focus
Key Return (#D) detected
Selected Entry:
Title: Netflix
Icon Path: C:\Users\jocko\OneDrive\Documents\flex-launcher-2.1-win64\CustomShortcuts\icons\netflix.png
Command: "C:\Users\jocko\OneDrive\Documents\flex-launcher-2.1-win64\customShortcuts\startNetflix.bat"
Lost keyboard focus
Application detected
Lost mouse focus
Gained keyboard focus
Application finished
Key Right (#4000004F) detected
Key Right (#4000004F) detected
Key Return (#D) detected
Selected Entry:
Title: Disney+
Icon Path: C:\Users\jocko\OneDrive\Documents\flex-launcher-2.1-win64\CustomShortcuts\icons\disney.png
Command: "C:\Users\jocko\OneDrive\Documents\flex-launcher-2.1-win64\customShortcuts\disney+ - shortcut.lnk"
Lost keyboard focus
Application detected
Lost mouse focus
Gained keyboard focus
Key Escape (#1B) detected
Quitting program
Hey there, I'm loving this launcher. I'm trying to set up a button to launch a browser, and the following command successfully launches Edge, but Flex-Launcher still maintains focus after the browser is launched. Any ideas why this this happening?
Entry1=Browser;.\assets\icons\system.png; "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Edge.lnk"
If a program takes longer to start, the flex launcher remains visible in the foreground. I have that, for example, with emulationstaion. Because i have a big rom collection it takes a moment to start.
Hi!
I just tested as #34 you suggested :fork C:\Game.exe - minimize -hide but it doesn't minimize or hide the console
Could you suggest other argument?
ThankS!
Is it possible to navigate from first icon to last icon by pressing left and vice verse by pressing right?
For example: when I open Flex, it will auto hightlight the first icon/app, let's say I have total 4 of them, to navigate to the 4th icon, i have to press right 3 times, so is it possible to add a feature to just press left once, I can navigate to 4th icon from 1st icon?
Thanks!
My gamepad in lsusb:
Bus 003 Device 005: ID 0925:1700 Lakeview Research PS/SS/N64 Joypad
This pad works fine in some games but wasn't being recognized by flex-launcher.
I did some debugging and discovered that SDL raises a SDL_JOYDEVICEADDED
event for this gamepad but NOT a SDL_CONTROLLERDEVICEADDED
event, so the current code never ends up calling connect_gamepad()
about it.
I may be able to hack a fix together for my own use case. But this should probably be fixed for a more general audience too.
I wanted to install and use this to act as an app launcher on a lite install of bullseye on my Raspberry Pi 4b 8gb.
When I try to launch it, i get the:
Could not initialize SDL wayland,x11 not available
So I tried the:
SDL_VIDEODRIVER=x11 flex-launcher
Which told me "x11 not available". I guess this is normal because that would be included on the desktop gui version of bullseye and not the lite version. And I did try this on a regular (non lite) bullseye install and it worked but I wanted to get it working on a lite install.
I searched around and thought I had found a possible way to install x11 by using this guide: https://dustinpfister.github.io/2020/03/27/linux-raspbian-lite-xserver-xorg/ but that didn't work.
I also tried just installing the top 3 packages from this site: https://raspberryconnect.com/raspbian-packages/67-raspbian-x11.
But its clear that I, being a linux/raspberry pi novice, have no idea what I'm doing.
How can I get X11 on a lite install of bullseye so I can make this work? Is it possible to just use a different video driver? Steamlink runs just fine with its GUI so whatever that is using must work for this launcher?
Please let me know, as I'd like to have a setup to launch just a few apps and I'd rather do it on the lite version to cut down on extra bloat, like a desktop environment that I don't need.
I'm on Ubuntu 22.10. I've added a script to send some CEC commands to /usr/lib/systemd/system-sleep/cec-control.sh
:
#!/usr/bin/env bash
if [ "${1}" == "pre" ]; then
/bin/echo "standby '0'" | /usr/bin/cec-client -s
fi
And I also have a hotkey set to :sleep
.
When I hit the hotkey, for some reason Flex Launcher crashes with a Segmentation Fault. The script itself runs just fine, and I don't see anything in the Flex Launcher logs. But if I comment out the script, Flex Launcher doesn't crash.
I'm not sure how best to debug more, but please let me know if there's any other information I can provide!
I just leave the default config.ini
, no changed.
I select System
-> Sleep
, but the launcher did not respond to this command.
My system is Win10 (Professional Version 21H2).
Could you tell me why?
(I am a Chinese. So Sorry for my bad English...)
On multimonitor setups where the app may open in a separate window or just non-fullscreen setups, it would be nice to have the launcher close after launching an application. Would you consider this as an option?
I'm using Flex Launcher to switch between different retro arcade/mame builds. If I launch a build and am away from the computer for a bit, the Xbox controller will go to sleep. When I come back, the controller reconnects fine to the wireless adapter, but as soon as I exit the app and go back into Flex Launcher, the connection is lost and the only way to get it back is to unplug and plug back in the adapter.
What a simple and elegant launcher. There are only two things it is missing for my purposes:
So I have a terminal launched from Flex Launcher for debugging and I kept getting errors from perl on launch about improper locale settings, namely LANG=en
I'm on Arch and it's a fresh install, en_US.UTF-8
>>> cat /etc/locale.conf
LANG=en_US.UTF-8
If I re-source that locale conf or just export LANG=en_US.UTF-8 the problem is resolved for that terminal session.
If I SSH into the machine or launch the terminal using rofi
, the LANG
environment variable is properly set to en_US.UTF-8
I'm not sure how this issue would present in other applications but figured this was an unintentional bug that should be reported
I was able to patch Flex Launcher to support 4k displays. And the images and text are now rendered in HiDPI. However When I launch an emulator, it gets rendered at a non-4K resolution. The child process for instance is 1080p but not 2x the pixel density.
While I have looking great within the Launcher, I don't have the same effect in stuff that is being launched.
Hi!
Is it possible to run only 1 instance of the launcher.exe?
For example: if launcher is already opened, double click on the exe, it will refocus on the existing launcher instead of opening the 2nd launcher exe
Thanks!
Document: "The path to the program executable that you want to launch"
I'm trying to launch a program minimized but I tried all kind of argument to no avail.
Could you provide the worked argument for your launcher that minimize or hide the executable window?
(Example: C:\Game.exe - minimize -hide?)
Thanks!
I started using Flex launcher and edited the config to have netflix and disney plus as the options and have pictures in the .\asset\icons folder for each. Both are png images, but they dont show in the launcher, only the names show. Disney plus icon is "download" and netflix is "downloadd"
Heres the code
[Main]
Entry1=Disney+;.\assets\icons\download.png;"C:\Users\Imlop\OneDrive\Desktop\Disney+.lnk"
Entry2=Netflix;.assets\icons\downloadd.png;"C:\Users\Imlop\OneDrive\Desktop\Netflix.lnk"
Entry3=System;.\assets\icons\system.png;:submenu System
I am building a gentoo based htpc and this is just what I was looking for, simple and powerfull.
Could you add a gentoo ebuild to it?
Many thanks
Over the last few days I've been working on getting Flex Launcher running on the Raspberry Pi. Below are my findings.
Hardware: Raspberry Pi 4 (4GB)
OS: Raspbian Buster
DM/DE: LightDM/LXDE
The version of CMake available is 1.16 so below the min required of 1.18. This is easily addressed by compiling CMake 1.22 from source:
get https://github.com/Kitware/CMake/releases/download/v3.22.1/cmake-3.22.1.tar.gz
tar xf cmake-3.22.1.tar.gz
cd cmake-3.22.1/
./bootstrap # Takes about 30 mins
make # Takes about 45 mins
sudo make install
After doing this, compilation completes as expected and Flex Launcher can be run.
The main issue observed with using this is two-fold:
Perhaps more of an implementation consideration than a bug, the minimisation of Flex Launcher will display the desktop due to the minimisation.
This can easily be worked around by commenting out line 960 and recompiling.
This issue is a bit more confusing and, through some trial and error, I think I've managed to narrow down something close to a fix and hopefully some information to make addressing this issue simpler.
After closing an external command from Flex Launcher launched with Flex Launcher an odd thing happens - the window minimizes (this is true even with the minimisation prevention mentioned earlier). It can be restored by clicking the minimised window in the system tray and pressing the left or right arrow keys (to trigger a screen redraw).
I started debugging the window flags (see diff below) to identify what was going wrong and tested various combinations of ShowWindow
, RestoreWindow
and MaximizeWindow
to try and restore the flags to the pre-launch state... Strangely, having all of these would get them close but the window would not reappear and would remain minimized.
Further investigation showed that some event polling may be needed (I'm unfamiliar with C++/SDL/GUI Development so do not understand the reasons behind this right now).
Adding in polling seemed to get the window to restore the flags and get closer to working as expected. Sometimes there is a flash of the desktop on external command closure before the launcher is restored. Other times it ends up in a similar state to having been restored-but-not-redrawn and an arrow press makes the launcher visible again.
I'm not quite sure how to address this but I hope it brings some clarity regarding my issues getting this to run on Raspberry Pi.
Below are the changes I made to get this close to working
diff --git a/src/launcher.c b/src/launcher.c
index 6d70fd8..50550aa 100755
--- a/src/launcher.c
+++ b/src/launcher.c
@@ -86,6 +86,7 @@ highlight_t *highlight = NULL; // Pointer containing highlight texture and coord
bool updates; // Bool to update the screen at the end of the main loop
geometry_t geo; // Struct containing screen geometry for the current page of buttons
bool quit = false;
+void show_flags(int flags);
// A function to initialize SDL
int init_sdl()
@@ -893,6 +894,25 @@ void validate_settings()
}
}
+// Translate Window Flags
+void show_flags(int flags) {
+ printf("FLAGS ENABLED: ( %d )\n", flags);
+ if(flags & SDL_WINDOW_FULLSCREEN) printf("SDL_WINDOW_FULLSCREEN\n");
+ if(flags & SDL_WINDOW_OPENGL) printf("SDL_WINDOW_OPENGL\n");
+ if(flags & SDL_WINDOW_SHOWN) printf("SDL_WINDOW_SHOWN\n");
+ if(flags & SDL_WINDOW_HIDDEN) printf("SDL_WINDOW_HIDDEN\n");
+ if(flags & SDL_WINDOW_BORDERLESS) printf("SDL_WINDOW_BORDERLESS\n");
+ if(flags & SDL_WINDOW_RESIZABLE) printf("SDL_WINDOW_RESIZABLE\n");
+ if(flags & SDL_WINDOW_MINIMIZED) printf("SDL_WINDOW_MINIMIZED\n");
+ if(flags & SDL_WINDOW_MAXIMIZED) printf("SDL_WINDOW_MAXIMIZED\n");
+ if(flags & SDL_WINDOW_INPUT_GRABBED) printf("SDL_WINDOW_INPUT_GRABBED\n");
+ if(flags & SDL_WINDOW_INPUT_FOCUS) printf("SDL_WINDOW_INPUT_FOCUS\n");
+ if(flags & SDL_WINDOW_MOUSE_FOCUS) printf("SDL_WINDOW_MOUSE_FOCUS\n");
+ if(flags & SDL_WINDOW_FULLSCREEN_DESKTOP) printf("SDL_WINDOW_FULLSCREEN_DESKTOP\n");
+ if(flags & SDL_WINDOW_FOREIGN) printf("SDL_WINDOW_FOREIGN\n");
+ printf("\n");
+}
+
// A function to execute the user's command
void execute_command(char *command)
{
@@ -957,14 +977,40 @@ void execute_command(char *command)
// Launch external application
else {
- SDL_HideWindow(window);
+ //printf("Before hide flags\n");
+ //show_flags(SDL_GetWindowFlags(window));
+ //SDL_HideWindow(window);
+ printf("Before command flags\n");
+ show_flags(SDL_GetWindowFlags(window));
#ifdef _WIN32
cmd = convert_cmd(cmd);
#endif
system(cmd);
+ SDL_Event events;
+ SDL_PollEvent(&events);
+ //printf("After command flags\n");
+ //show_flags(SDL_GetWindowFlags(window));
+
SDL_ShowWindow(window);
- SDL_Delay(50);
+ SDL_PollEvent(&events);
+ printf("After show flags\n");
+ show_flags(SDL_GetWindowFlags(window));
+
+ SDL_MaximizeWindow(window);
+ SDL_PollEvent(&events);
+ printf("After maximize flags\n");
+ show_flags(SDL_GetWindowFlags(window));
+
+ SDL_RestoreWindow(window);
+ SDL_PollEvent(&events);
+ printf("After restore flags\n");
+ show_flags(SDL_GetWindowFlags(window));
+
draw_screen();
+ SDL_PollEvent(&events);
+ printf("After draw flags\n");
+ show_flags(SDL_GetWindowFlags(window));
+
updates = false;
I'm on Ubuntu 22.04, I use Flex-Launcher as a frontend to run emulators and media players. I have a bluetooth connected 8BitDo Lite gamepad to control FL. I noticed this: if in the options I set OnLaunch to "None", the performance of the emulator frontend is reduced, it gets back to normal when I "kill" flex-launcher or if I set OnLaunch to "Hide". It seems it's related to the gamepad support because, with the gamepad turned off, everything runs normal.
Hello,
I am looking for solution for launching Kodi, Supertuxkarts and some other apps who do not require another graphics layer.
Can flex-launcher run without like Kodi with GBM ?
I can launch apps and they are running, but I think the launcher isn't releasing the screen to allow them to draw. So the launcher screen stays stuck on screen while they run. Is there any way to fix this without a desktop environment?
The apps I'm trying to use are Moonlight-qt and Steamlink. Neither of which require a desktop environment.
For now, I'm working around this by the menu items launch a script that closes flex-launcher, launches the app, and then re-runs flex-launcher when the app closes.
Love this project! It would be awesome if the background could be a video loop. Is there a patreon or anything to support the project?
Hi,
I'm running flex launcher on garuda linux with Xorg with an RX 7900 XTX and 5900X CPU.
I've run into an issue with a few games (specifically Blasphemous, Hollow Knight, and Ender Lilies) which won't launch from Steam when flex-launcher is running. They either won't run at all or hang forever just after launch. If Steam is launched without flex-launcher running, the games all work fine.
I was able to track down the problem to line 199 in launcher.c:
setenv("SDL_VIDEODRIVER", "wayland,x11", 0);
If I comment the line out or remove wayland, all the games launch fine.
I'm not sure what the underlying issue is. As I mentioned above, I'm using Xorg and don't even have wayland installed. If I run Ender Lilies from the command line without Steam, it launches fine without any changes to flex-launcher.
All the games use Vulkan, and I have seen some reports of long-standing bugs with Steam, Vulkan, and Wayland (such as this one, but the reports I've seen happen when people are actually using Wayland.
Perhaps the SDL_VIDEODRIVER environment variable shouldn't be passed on to launched programs?
Edit: A couple of more bits of info. Two of those games use the Unity engine, the other uses Unreal. Also, all of them work fine if I force Steam to run the windows version via Proton. It's only the linux-native versions that have this issue.
Thanks for creating this launcher, its exactly what I've been looking for :) .
I'm trying to get flex-launcher
to autostart on Ubuntu 21.04 and the app does start however I am unable to switch to the app, it doesn't respond to inputs and it remains at the top of the window stack preventing other programs from showing other than alt+tab
or hot corners.
I think its being started but the GNOME window manager or desktop environment is loaded afterwards. This issue seems similar to having to run feh
and conky
in the right order to get the expected background behaviour working but that's not what I'm trying to achieve here.
Is there something I need to add to the autostart .desktop
file to make flex-launcher
run in the foreground?
Background
I'm looking for an alternative OS for my HTPC so am considering a simple Ubuntu Server 21.04 install (needed for the libsdl2 version dependency that flex-launcher has that older Ubuntu releases lack) with xorg, flex-launcher and flatpak. Jellyfin and SteamLink are installed via Flatpak and launched via Flex Launcher. GNOME launches without a password and I want Flex Launcher to start and be ready to receive input.
Is there anyway you can add a feature to use :sleep, :restart, :shutdown like a normal command that will quit Onlaunch?
When I sleep using :sleep, after waking pc from sleep, app still shows up instead of quit but If I use a shortcut to a sleep command line, app quit!
I'm trying to control a HTPC using HASS.Agent, but I'm unable to get Enter
or :select
to work correctly and start the highlighted app. Up/Down/Left/Right/Back work correctly though.
I've tried sending Enter
and mapping a normal key s
to :select
using hotkeys, but have been unsuccessful.
As a side note sending Enter
does work in Kodi.
OS: Windows 10 64-Bit
I installed flex-launcher like written in the doc on my raspberry pi 4 8GB with raspberry Pi OS 64 bit.
But no matter what I do I cannot get it to launch.
I put the . desktop in
/.config/autostart
And when I try to launch it from the terminal I get:
Could not initialize SDL
wayland,x11 not available
The config file is in the recommended location.
Thanks for the help.
Kind regards
Philip
deleted
While this technically isn't an issue, I do believe it would really round out this app to have the option to add sounds for navigating, and launching apps.
Okay so I'm trying to increase the speed at which the program launches so that it goes immediately to flexlauncher without displaying the desktop for very long. Unfortunately as much as I've tried to lobotomize my startup process and delay tasks with Task Scheduler, I cannot persuade Flex Launcher to start sooner than five seconds.
EXCEPT when I change the windows shell from explorer.exe to Flex Launcher. Doing that causes some weirdness like icons not loading and also a lot of undesirable things behind the scenes. gpedit.msc > Administrative templates > System > Custom User Interface
My feature request is this: Add a config section to auto-run a :fork command whenever you enter a menu. This way, I can launch explorer.exe whenever flex-launcher has started up. It's silly, I know, but I must achieve HTPC perfection!
Hi folks,
I was hoping to get this tool running on my rpi4 (with raspberry pi os). Sadly, as soon as I try to start it, the following error message appears:
$ flex-launcher
Could not initialize SDL
wayland,x11 not available
This happens no matter if I try to start it from a console in the desktop mode on in a console tty. Using the desktop file works neither.
I hope someone can help. Thanks!
Hallo, thenk you for wery nice and usefull job. Im using flex-louncher on my HTPC amd64. But i trying to use it on RPI2 too. I could compile v2.1 on RPI2 without errors, but if i start on terminal, i becomme "flex-launcher" window with "a critical error occured. Check the log file for details" + button "ok" and in terminal i see "Could not initialize SDL / wayland,x11 not available". After i found a older v1.8 x32 deb file for RPI and installed. I can launch v1.8 from desktop menu and from terminal. I compilled v1.8 too and i can launch compilled v1.8. After tahet i try to compile v2.1 again, but i becomme same error. There is all that i have enabled in /boot/config.txt: dtparam=audio=on, camera_auto_detect=1, display_auto_detect=1, dtoverlay=vc4-fkms-v3d, max_framebuffers=2, disable_overscan=1, [cm4] otg_mode=1, [pi4] arm_boost=1. I tried compille v2.1 with dtoverlay=vc4-kms-v3d and with "#" disabled #dtoverlay=vc4-kms-v3d and #dtoverlay=vc4-fkms-v3d, but i have the same error if i run v2.1.
Second Question is: i wich to change clock month and weekday language. I think i could maybe manipilate some file to change days and months names befor i compile v1.8? Can you say me please what can i do
And one suggestion: if date on clock is enabled, could be useful that row with date design (font etc) could be manipilatet too. Best regards.
I'm loving this program, its exactly the solution I envisioned when I started searching. Well done!
I have a question about the screensaver - I'm trying to tune my htpc sleep behaviour.
The dim function is lovely and throws a really classy vibe when combined with the slideshow background, but I'm wondering if I can combine this with the windows screensaver and power saving functions.
Currently these are disabled while flex-launcher runs. I'd like to have these remain enabled if possible to prevent oled icon burn in. Unfortunately the TV's power saving features are non existant and I'm looking for a failsafe.
Google is not really bringing up a solution to enable screensaver and sleep functions in a full screen app, only disable them.
Are you aware of a way I can achieve this behaviour?
Just started using Flex-Launcher after finding so many input-key mappers what would work with Gnome's Desktop but then would over ride and interfere with the games that I am launching.
For my use case, I would like to show a grid on a each menu where the user can navigate with the game controller or keyboard and select the game or submenu to choose from. This way, They would not have scroll horizontally if the wanted the columns and rows instead.
Thank you for your time and consideration and where I can send a donation. Thanks!
Hi!
I ve been using your launcher for more than a year now and I'm loving every second of it!
I believe adding this will make it even better:
Add feature/option for always on top and steal focus back all the time when losing focus?
Looking forward to your reply
Many thanks!
SDL 2.0.22 introduced a new bug that affects Flex Launcher's ability to display its window after the application finishes. As a workaround, you can change the OnLaunch
setting to "None" or "Blank", or downgrade SDL. The issue has been reported upstream here.
This mostly impacts Linux users on rolling release distros. Windows users are unaffected by this issue.
Hi, this is excellent software. Thank you.
Would you be open to considering an option to allow rows on the layout for the app list to wrap below each other instead of a separate scroll window?
Curious if there will ever be a Fedora RPM package for this as it seems super useful, but I would have to set up distrobox to use it on a Fedora system which is a bunch of extra set up I would like to avoid (I plan to use this on 3 or 4 machines so setting up distrobox AND this on each one would take quite a while longer than otherwise needed).
If there aren't any plans for this, I can just use distrobox anyway.
I noticed that if I set SlideshowImageDuration to 600 it works fine, and the image changes every 10 minutes, but if I put larger values (I tested with 720 seconds) the slideshow changes images every 30 seconds.
whenever there is accidental usage of mouse pointer the PC remote or gamepad's enter button won't work in flex launcher
I'm running Flex Launcher on a media centre PC, set to autostart on boot of my linux distro (Zorin 17). Occasionally after quitting an application to go back to the Flex Launcher, I will be presented with a black screen. This seems to occur after running on an application for a few days before quitting to return to flex launcher. Connecting my Xbox controller and pressing all the buttons doesn't do anything; the only way I can fix it is by using my VNC viewer to log into the machine from my windows PC, and press any button on the keyboard to "wake up" the screen. Once I do that, I can use my controller.
My power settings have been set to never turn off the screen or auto suspend. The screensaver for flex works fine (in my settings, goes to 70% intensity).
Here are the settings I'm using:
[General]
DefaultMenu=Main
VSync=true
#FPSLimit=
OnLaunch=Blank
ResetOnBack=false
MouseSelect=false
InhibitOSScreensaver=true
#StartupCmd=
#QuitCmd=
[Background]
Mode=Color
Color=#101214
#Image=
#SlideshowDirectory=
#SlideshowImageDuration=30
#SlideshowTransitionTime=3
#ChromaKeyColor=#010101
Overlay=false
OverlayColor=#000000
OverlayOpacity=50%
[Layout]
MaxButtons=4
IconSize=256
IconSpacing=5%
VCenter=50%
[Titles]
Enabled=true
Font=/home/aidan/.config/flex-launcher/assets/fonts/OpenSans-Regular.ttf
FontSize=36
Color=#DDDDDD
Opacity=100%
Shadows=false
ShadowColor=#000000
OversizeMode=Shrink
Padding=20
[Highlight]
Enabled=true
FillColor=#FFFFFF
FillOpacity=7%
OutlineSize=0
OutlineColor=#0000FF
OutlineOpacity=100%
CornerRadius=30
VPadding=30
HPadding=30
[Scroll Indicators]
Enabled=true
FillColor=#EEEEEE
OutlineSize=0
OutlineColor=#555555
Opacity=100%
[Clock]
Enabled=true
ShowDate=true
Alignment=Left
Font=/home/aidan/.config/flex-launcher/assets/fonts/SourceSansPro-Regular.ttf
FontSize=40
FontColor=#999999
Shadows=false
ShadowColor=#555555
Margin=5%
Opacity=100%
TimeFormat=Auto
DateFormat=Auto
IncludeWeekday=true
[Screensaver]
Enabled=True
IdleTime=300
Intensity=70%
PauseSlideshow=true
[Hotkeys]
# Esc to quit
Hotkey1=#1B;:quit
[Gamepad]
Enabled=true
DeviceIndex=-1
#ControllerMappingsFile=
LStickX-=:left
LStickX+=:right
#LStickY-=
#LStickY+=
#RStickX-=
#RStickX+=
#RStickY-=
#RStickY+=
#LTrigger=
#RTrigger=
ButtonA=:select
ButtonB=:back
#ButtonX=
#ButtonY=
#ButtonBack=
#ButtonGuide=
#ButtonStart=
#ButtonLeftStick=
#ButtonRightStick=
#ButtonLeftShoulder=
#ButtonRightShoulder=
#ButtonDPadUp=
#ButtonDPadDown=
ButtonDPadLeft=:left
ButtonDPadRight=:right
# Menu configurations
[Main]
Entry1=Jellyfin;/home/aidan/storage/flex-launcher/jellyfin.png;/home/aidan/.local/share/flatpak/exports/share/applications/com.github.iwalton3.jellyfin-media-player.desktop
Entry2=Retroarch;/home/aidan/storage/flex-launcher/retroarch.png;/var/lib/flatpak/exports/share/applications/org.libretro.RetroArch.desktop
Entry3=SteamLink;/home/aidan/storage/flex-launcher/steamlink.png;/var/lib/flatpak/exports/share/applications/com.valvesoftware.SteamLink.desktop
Entry4=System;/home/aidan/.config/flex-launcher/assets/icons/system.png;:submenu System
[System]
Entry1=Shutdown;/home/aidan/.config/flex-launcher/assets/icons/system.png;:shutdown
Entry2=Restart;/home/aidan/.config/flex-launcher/assets/icons/restart.png;:restart
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.