Code Monkey home page Code Monkey logo

lauhdutin's Introduction

Lauhdutin

A Rainmeter skin for aggregating games from different platforms and launching them. Supports Steam, GOG Galaxy, Blizzard Battle.net, and regular Windows shortcuts. Games are presented as a scrollable list that can be filtered and sorted in multiple ways. There are a variety of settings that allow you to customize the appearance of the skin (e.g. orientation, number of slots, dimensions of slots, animations). This skin can also be used as a general purpose launcher since it supports regular Windows shortcuts.

example

Contents

Requirements

Installing

  • Install Rainmeter, if you do not already have it.
  • Download a release.
  • Extract the contents of the release archive to \Rainmeter\Skins\Lauhdutin.
  • Load Settings.ini, adjust the various settings (e.g. path to Steam) to your liking, click the Save button, and finally click the Close button.
  • Load Main.ini, which should now detect games based on your settings.

Updating

2.x.x to 3.x.x

If you are using the previous major version (2.x.x) of Lauhdutin, then you may be able to migrate your settings and/or games to the new major version (3.x.x). Settings and games from version 2.7.1 should be possible to migrate with a minimal amount of issues though some may arise from e.g. changes in the folder structure.

Copy games.json and settings.json from the @Resources folder of the old version of Lauhdutin and paste them in the @Resources folder of the new version of Lauhdutin. Load Main.ini.

3.x.x to 3.y.y

The various files that store e.g. settings or games now include a version number that is used to implement the migration of files between versions, which should allow for major changes in the structures of such files without loss of data.

Features

Supported platforms

Steam

Support includes:

  • Acquire a list of installed games and games that are not currently installed, but for which a license has been purchased.
  • Acquire a list of games that have been added to Steam as a 'non-Steam game'.
  • Launch games via the Steam client.
  • Install Steam games that are not currently installed.
  • Automatically copy custom grid images assigned in Steam as banners.
  • Automatically download banners for Steam games that were found.
  • Integrate the total amount of hours played and last played timestamp, which are tracked for each game by Steam into Lauhdutin's corresponding system.

Parsing the Steam community profile for information (e.g. hours played) requires that the Game details setting in your Steam profile's privacy settings is set to Public.

GOG Galaxy

Support includes:

  • Acquire a list of games installed via GOG Galaxy.
  • Launch games directly via the game's executable or via the GOG Galaxy client.
  • Automatically download banners for games that were found.

NOTE: GOG Galaxy support requires the command-line tool sqlite3.exe, which can be downloaded here as part of the sqlite-tools-win*.zip archive. The executable must be placed in Lauhdutin's @Resources folder.

Blizzard Battle.net

Support includes:

  • Acquire a list of games installed via Blizzard Battle.net.
  • Launch games via the Blizzard Battle.net client.

Blizzard Battle.net support does not currently include support for classic games (e.g. Diablo II, Warcraft III).

Windows shortcuts and other platforms

Windows shortcuts (.lnk and .url files) can be added to the \@Resources\Shortcuts folder. This folder can also be opened via the context menu in the main config or via the settings page for Windows shortcuts.

Additional platforms might be supported in the future, if possible. In the mean time it is possible to add games, which were not installed via the supported platforms described above, by placing shortcuts for them in \@Resources\Shortcuts. If the shortcuts are placed in a subfolder, then the name of the subfolder will then be used as an override for the name of the games' platform, which can be used e.g. for filtering purposes. For example if shortcuts are placed in \@Resources\Shortcuts\Origin, then Origin will be used as the name of those games' platform and a platform-based filter will be created for that group of games.

Context menu actions

Settings

Show the settings window. If a setting is modified, then the main skin will be refreshed automatically. Any changes that affect the layout of the main skin in any way will also trigger the main skin to be refreshed after the skin has been rebuilt according to the new settings.

Open shortcuts folder

Open the folder where Windows shortcuts and their banners should be placed.

Execute stopping bangs

Stop monitoring the game and execute bangs, if they are enabled and any bangs are defined. This can be used if the skin fails to detect that a game is no longer running or if the game was never started.

Start/stop hiding/unhiding/removing games

These context actions change what left-clicking on a game does. This can be used to hide/unhide/remove multiple games quickly without having to go through the Game window (see Games) for each individual game.

Banners

Banners for Windows shortcuts can be added to the same folder as the shortcuts and must have the same name as the corresponding shortcut (e.g. Spelunky.jpg if the shortcut is called Spelunky.lnk).

Custom banners for other platforms can be placed in \Rainmeter\Skins\Lauhdutin\@Resources\cache\<platform name here>. If there is no existing banner to replace, then the name to use for the banner will depend on the platform. The expected name and supported file formats can be found by inspecting the game in question via the Game window (see Games) and hovering the mouse over the section where the banner is usually shown. Clicking on the banner section opens either the banner or the folder where the banner should be.

If the skin fails to download a banner for a game from a platform that supports automatic downloading of banners, then a file with the extension .failedToDownload can be found where the banner should be. Removing this file will cause the skin to make another attempt to download the banner the next time that the skin is refreshed.

Games

example

Games are presented in slots, which can be interacted with. Slots can have an overlay, which is shown when the mouse is hovered over the slot, to show context-sensitive information (e.g. if the game's platform is running, the action that will be taken when left-clicked).

  • Left-clicking a slot launches the game shown in the slot. Can be configured to require double-clicking.
  • Middle-clicking a slot shows details about the game in a separate window.

example

The window for game details (see above) can be used to view various details about the game. Platforms with a * next to them usually indicates a platform override as described in the Other platforms sub-section of the Supported platforms section. Non-Steam game shortcuts, which also use a platform override to indicate that the game itself is not actually a native Steam game and as such may have comparatively limited support, are the exception to this rule.

Some details can also be modified:

  • Toggle the visibility of the game.
  • Modify the process to monitor to determine whether or not a game is running. A blank string reverts to the default process. A * next to the process indicates that the value has been modified.
  • Keep notes.
  • Assign tags for filtering purposes. Some tags may have been assigned via the game's platform, which is indicated by a *, and cannot be altered via Lauhdutin.
  • Set the game to ignore global and platform-specific bangs.
  • Assign starting and/or stopping bangs.

Toolbar

example

The toolbar, which can be made visible by hovering the mouse over the top or bottom edge (configurable), has three buttons (left-to-right):

Search

example

The button on the left-hand side of the toolbar is for searching for games based on the title. Searching uses fuzzy matching, which means that you do not need to input the exact same title as the game you are looking for. Titles are instead compared to the input and given a score. Using just the initials of a game's title should be enough to place it at the top of the list of results in many cases (e.g. wtno for Wolfenstein: The New Order).

  • Left-clicking the button searches through all installed games.
  • Middle-clicking the button searches through the current list of games, which might be the result of applying various filters.
  • Right-clicking the button clears all filters and resets the list of games. It can also be used to instantly go to the beginning of the list of games.

Sort

example

The button in the middle of the toolbar controls the sorting mode.

  • Left-clicking this button brings up a window where you can select the sorting mode.
  • Middle-clicking the button is a shortcut for cycling through the different sorting modes.
  • Right-clicking the button reverses the order of the current list of games.

Filter

example

The list of games can be narrowed down by applying a filter. Filters can be applied by clicking on the filter button, which is on the right-hand side of the toolbar.

  • Left-clicking the button will apply the filter to all games.
  • Middle-clicking the button will apply the filter to the current list of games and can be used to further narrow down the list of games by applying multiple filters.
  • Right-clicking the button is a shortcut for clearing all filters.

A new window with a list of filters will show up and you can choose the filter to apply.

Games that are not currently installed or are set as hidden are not shown by default when filtering. Such games can be shown by applying a filter to show hidden or uninstalled games, and then those games can be filtered by applying filters via middle-clicking on the filter button.

Bangs

There are settings for executing bangs under specific circumstances. Multiple bangs can be executed by enclosing each bang in square brackets:

[!ActivateConfig "SomeConfigName"][!Log "Starting a game"]

Multiple bangs can also be written on multiple lines:

[!ActivateConfig "SomeConfigName"]
[!Log "Starting a game"]

This feature can be used to e.g. load and unload skins.

Currently supported events that can be used to trigger the execution of bangs:

  • Any game is started or stopped.
  • Any game from a specific platform is started or stopped.
  • A specific game is started or stopped.

The stopping bang can also be executed manually via the context menu, if the skin fails to automatically execute it when a game stops running or if a game fails to start at all.

Games can be exempted from executing global and platform-specific bangs via the game window (see Games).

Animations

Clicking a slot

One of these animations can be played when a slot is left-clicked:

  • Shift left
  • Shift up
  • Shift right
  • Shift down
  • Shrink

Click animations can be disabled completely.

Hovering over a slot

One of these animations can be played when the mouse cursor hovers over a slot:

  • Zoom in
  • Jiggle
  • Shake left and right
  • Shake up and down

Hover animations can be disabled completely.

Skin

The entire skin can be made to slide into and out of view when placed along an edge of a monitor. There is a setting that can be used to determine which direction the skin slides into and out of view. A 1 px wide/tall invisible sliver is placed along the corresponding edge of the skin when this feature is enabled and hovering the mouse cursor on this sliver makes the skin slide into view.

A delay can also be added to triggering the animation that reveals the skin. This should help minimize accidentally launching a game.

Skin animations can be disabled completely.

Localization

example

Example of a Finnish translation implemented with the included localization system.

This skin supports localization, though it is somewhat limited. The default language is English, but additional languages can be added by copying English.txt, which can be found in @Resources\Languages, and translating the strings. Translation files should be saved using the UTF-8 encoding. The name of the file is also the name of the language in the settings window. The first line of the file should be the version of the localization system:

version N

Subsequent lines consist of a key-value pair that is separated by a tab character.

The localization system makes use of Lua's string formatting capabilities to insert values from variables (e.g. game title, hours played).

Newlines must be escaped, i.e. \n, if a translation is supposed to span multiple lines.

Some characters might not be supported and will simply be omitted by the skin. The currently supported character sets should be enough for many languages that use the Latin alphabet. If you encounter issues with some characters, then please create an issue on the GitHub repo. Additional character sets can hopefully be supported in the future, but Unicode support seems to be limited due to the Lua 5.1 runtime environment.

Only the English translation file is included in each release archive. Additional translation files can be submitted afterwards. Updated translation files, or up-to-date translation files from a previous release, for additional languages will be added to the release as optional downloads.

Daily backups

The skin maintains a set of daily backups of \@Resources\games.json, which is where all of the information (e.g. last played, tags, notes) about the detected games are stored. The number of backups to keep can be adjusted, but once that number has been reached then the oldest backup is deleted in order to make room for a new backup. Deleting \@Resources\games.json while there is at least one backup will cause the skin to automatically fall back on the most recent backup. This feature will hopefully reduce issues arising from data corruption, misclicks, or letting someone else use your computer.

Reporting issues

If you encounter an issue while trying to use Lauhdutin, then please read through the readme in case there is an explanation on how to deal with the issue.

If the issue persists, then check through the repository's Issues section for open or closed issues that might be relevant and post there (or reference that issue when contacting outside of GitHub).

If there is no previously submitted issue that matches your issue, then submit an issue report based on this template (check the raw version for comments with more detailed steps).

Contributing

Fork this repository (preferrably the development-v3 branch), make your changes, and submit a pull request to the development-v3 branch with a summary of the changes you've made.

Try to keep the number of dependencies, which cannot be included with the skin or are not a part of a default Windows installation, to a minimum.

List of contributors

Graphical user interface changes

Try to keep draw calls to a minimum by for example:

  • Not overriding the skin-wide DefaultUpdateDivider=-1 option, if possible.
  • Executing the !Redraw bang only when necessary (e.g. update all meter options prior to a draw call instead of setting a few options, drawing, setting the rest of the options, and drawing again).

Adding support for a platform

There are a few rules that must be followed when adding support for additional platforms:

  • Sensitive account data must never be transmitted from the user's system.
  • All data that is retrieved and/or utilized by the skin must have been intentionally made publicly available by the platform's developers and/or stored locally in an unencrypted state.
  • Local data should be preferred over data that needs to be acquired over the internet.
  • Minimize internet usage by e.g. downloading a banner only if a local copy does not already exist.

Any deviations from the rules regarding adding platform support will most likely result in a rejected pull request.

Changelog

See Changelog.md for more information.

License

See License.md for more information.

This software makes use of:

  • json4lua by Craig Mason-Jones (MIT license)
  • digest.crc32 by David Manura (MIT license)
  • bit.numberlua by David Manura (MIT license)
  • Rainmeter helpers by Kapiainen (MIT license)

lauhdutin's People

Contributors

bancrash avatar kapiainen avatar kavex avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

lauhdutin's Issues

Exeption raised in the backend: [Win Error 5]

Im on the newest Version: Version 2.7.0 Beta 5

I have this Error:
unbenannt

Log:

Running on Python 3.6.1
Processing Windows shortcuts...
        Found shortcut 'Battlefield 1.lnk'
Traceback (most recent call last):
  File "D:\Documents\Rainmeter\Skins\Lauhdutin\@Resources\Backend\GetGames.py", line 89, in <module>
    windows_shortcuts_games = windows_shortcuts.get_games()
  File "D:\Documents\Rainmeter\Skins\Lauhdutin\@Resources\Backend\WindowsShortcuts.py", line 29, in get_games
    game_key, game_dict = self.process_shortcut(self.shortcuts_path, shortcut)
  File "D:\Documents\Rainmeter\Skins\Lauhdutin\@Resources\Backend\WindowsShortcuts.py", line 77, in process_shortcut
    output = subprocess.check_output(args)
  File "C:\Users\Linus\AppData\Local\Programs\Python\Python36\lib\subprocess.py", line 336, in check_output
    **kwargs).stdout
  File "C:\Users\Linus\AppData\Local\Programs\Python\Python36\lib\subprocess.py", line 403, in run
    with Popen(*popenargs, **kwargs) as process:
  File "C:\Users\Linus\AppData\Local\Programs\Python\Python36\lib\subprocess.py", line 707, in __init__
    restore_signals, start_new_session)
  File "C:\Users\Linus\AppData\Local\Programs\Python\Python36\lib\subprocess.py", line 990, in _execute_child
    startupinfo)
PermissionError: [WinError 5] Zugriff verweigert

when I delete my own shortcuts, everything works..

Warcraft 3 and Frozen Throne path and executables

I download Warcraft 3 and Frozen Throne expansion from battle.net, but before start I must say that those games can't be installed nor launched with battle.net client, only via web to download and normal shortcut to execute them. I see in the official forum that 2 years ago Blizzard said that they will implement the option to do that, but today that not happened yet.

Default path for both (expansion will be installed in the path of the Warcraft 3) is: C:\Program Files (x86)\Warcraft III\

Executables are: Warcraft III.exe for normal game, and Frozen Throne.exe for the expansion (both in the root folder, so C:\Program Files (x86)\Warcraft III(game).exe ). However, when I launch the normal game or the expansion the executable that appears in the task manager is War3.exe, so I think that both executables are just shortcuts with .exe extension that sends a concrete command to War3.exe to execute one or other game.

I guess the better way is to add both like normal shortcuts, but just in case I'm wrong I let you here the information.

Skin cannot find games when user specifies different install folder for games.

Occurs when the Steam Application itself is installed in one location (i.e. Program Files) and the actual games (steamapps\common) are installed elsewhere, as can be specified in Steam settings.

Proposed fix: have user specify specifically the location of SteamApps\Common folder, not just the general Steam directory.

Trying to add Blizzard games

Hi,

I hate to be a bother but I am trying to figure out how to add Blizzard/Origin games. They don't have an appid so I am a little lost. Is the appid used for the banner ?

I have added the below to Games.inc
The appid is the same as what I named the custom banner in the banners folder.

"1"
{
"path" "E:\Blizzard Games\Heroes of the Storm\Heroes of the Storm.exe"
"appid" "14704491514860404736"
"name" "Heroes of the storm"
"tags"
{
"0" "MOBA"
}
}

I would very much appreciate some direction.

About the bang exceptions you told me you might do

So you told me you might make a bang exceptions system, but could you also do the opposite?

For example, you can't open overwatch directly. You have to open the battle.net client first, and then click on Play

Could you make it so you can add different executables apart from the widget ones?

Thanks

No Steam games found?

Hi,

do you still support this skin?
If so: I can't get it to load any of my Steam games. :/
I set the user ID according to the "localconfig.vdf" file and the Steam folder is set to the path of Steam's exe (but without the "Steam.exe") but the only game it added automatically (I had to add a banner myself) was a non-Steam game that I added to my library a while ago. Apart from that it didn't find anything, the "Exceptions.inc" file is empty and there are no warnings, errors or debug messages in Rainmeter's logs when I reload your skin.

Rainmeter: Tested with both 3.3.2 final and 4.0 beta

Any suggestions what I could try to get it to work?
Could this possibly be an iusse with the locations? Rainmeter is installed on my system drive, Steam is installed on an extra HDD that also has a few games on it and there's another Steam library on a third HDD.

Edit:
Is there a way to have the sorting default to A-Z instead of "Last used"?

Suggestion

Real time search?
Like you don't have to press enter when you're searching, as soon as you type d everything with d should appear

Issues with animations

Hello again, I found that if Zoom In hover animation is enabled, when you hide a game the banner still appearing until you stop on hover it. With jiggle that doesn't happen, or with that option disabled.

Other issue, shake hover animation is not working I think, at least I don't see any change in the banner.

And finally, in Zoom in hover animation I don't know if this a bug or it works like it has to work, I don't see much problem with this but just in case it is a bug I share it. When you hover a banner with unused banners around, you can see the complete image:

image

image

(Suggestion) Launch one exe, monitoring other

Hello, with Warcraft 3 I see that obviously if the .exe launcher is different to the .exe that are on execution with the game open the skin can't obviously monitoring the play time.

I see this issue too with a game that first launch a launcher, and in that launcher you must click "Play game" to open the game, and after that the launcher closes and the game appears.

So I figure out that maybe could be implemented an option in Windows Shortcuts games to optionally add two paths instead of one, one will be the one that make the game launch, and the other will be the path to the .exe that must be monitorized to get the hours of play time. So for example the skin launchs Warcraft3.exe but monitorize if War3.exe is being executed or not. Or maybe better first one and then the other to avoid that [ProcessMonitor] gets a value of -1 and stops the monitorizing.

I don't know if it is easy or hard, or even impossible to implement this, but I let here this suggestion just in case you want to add it.

About bangs

I'm trying to make a simple hide and show when a game is open but is there a way to ignore a game? I have a folder shortcut and I don't want to hide Rainmeter with that. Just because even if I close the folder window the stopping bang won't load

Skin loads at start up quite long

Short description of the issue

The Skin is loading more than a minute when I start my PC / Rainmeter

VIDEO: click here

Lauhdutin version

Latest Version (2.7.0 Beta 5)

Rainmeter version

4.0.0 r2746 64-bit (Jan 1 2017)

Python version

Python 3.6 (installer)

Windows version

Windows 10 Pro 64-bit (build 14393)

Python stack traceback

Running on Python 3.6.1
Processing Windows shortcuts...
        Found shortcut 'Battlefield 1.lnk'
        Found shortcut 'Battlefield 4.lnk'
        Found shortcut 'Minecraft.lnk'
        Found shortcut 'STAR WARS Battlefront.lnk'
        Found shortcut 'Titanfall2.lnk'
Processing Battle.net games...
        Found game 'Hearthstone'
        Found game 'Heroes of the Storm'
        Found game 'Overwatch'
        Found game 'World of Warcraft'
        Found game 'Overwatch'
Processing Steam games...
                Failed to process 'sharedconfig.vdf'
                Failed to process 'localconfig.vdf'
        Found library 'C:/Program Files (x86)/Steam'
                Found game 'Starbound'
        Found library 'D:\Games'
                Found game 'Terraria'
                Found game 'Call of Duty: Black Ops II'
                Found game 'Call of Duty: Black Ops II - Multiplayer'
                Found game 'Castle Crashers'
                Found game 'Call of Duty: Black Ops II - Zombies'
                Found game 'Chivalry: Medieval Warfare'
                Found game 'Stanley Parable, The'
                Found game 'Euro Truck Simulator 2'
                Found game 'Worms Clan Wars'
                Found game 'BattleBlock Theater'
                Found game 'Assassin's Creed IV Black Flag'
                Found game 'Rocket League'
                Found game 'Cities: Skylines'
                Found game 'Grand Theft Auto V'
                Found game 'Tabletop Simulator'
                Found game 'Wolfenstein: The New Order German Edition'
                Found game 'Brawlhalla'
                Found game 'Call of Duty: Black Ops III'
                Found game 'Chaos Reborn'
                Found game 'Life Is Strange'
                Found game 'SteamVR Performance Test'
                Found game 'AdVenture Capitalist'
                Found game 'Portal Knights'
                Found game 'DARK SOULS III'
                Found game 'Ultimate Chicken Horse'
                Found game 'Garry's Mod'
                Found game 'Moonlight'
                Found game 'GRID 2'
                Found game 'Farming Simulator 17'
                Found game 'Portal 2'
                Found game 'Counter-Strike: Global Offensive'
        Found 32 games that are installed
Processing Steam shortcuts...
Processing GOG Galaxy games...
Generating master list of games...
Found 41 games...
Comparing new master list of games with old master list of games...
Downloading banners for 32 games from supported platforms...
        Failed to download banner at some point for 'Starbound - Unstable'
Writing master list of 64 games to disk...
Initializing frontend...
Execution time: 1 minutes 25.34 seconds

Submenu not working as expected

Hello, I am using the last beta, and when I tried to use any item of the submenu nothing happens.

In the rainmeter debuggin appears:

image

(Each error is for one different item of the submenu).

EDIT: I think I found the solution, it is just renaming _GetGames to Getgames. I will create a Pull request for if that the case, I tried right now and I think it works.

Exception raised in the backend: Invalid control character at: line 294 column 7 (char 7901)

So i finished my last setup yesterday and it was working perfectly, but after turning on the pc again it shows this error. First it didn't load, so I manually refershed it. Then it showed the message

http://i.imgur.com/9ZB86dr.jpg


E: Rebuilding/refreshing doesn't work neither. I'm using the Beta 6. Do I just reinstall?

E2: So I've reinstalled as if I were updating it, and now it's stuck at Processing

Opened main.ini, the line 294 just says

[FilterInput]
Measure=Plugin
Plugin=InputText
X=0
Y=50
W=#ToolbarWidth#
H=40
SolidColor=#SlotBackgroundColor#
FontColor=#SlotTextColor#
FontFace=Arial //Line 294
FontSize=20
StringAlign=Center
DefaultValue=
FocusDismiss=1
Command1=[!CommandMeasure "LauhdutinScript" "OnFinishedInputtingFilter('$UserInput$')"]
OnDismissAction=[!CommandMeasure "LauhdutinScript" "OnDismissFilterInput()"]

Maybe it's a problem with inputtext.dll? Arial is installed. Mmmm changed Arial to Calibri and still nothing

Let me reinstall ranmeter then. Hmmm I've installed 4.1 and still doesn't work


maybe it's from settings.ini?

It says

[SlotWidthStatus]
Meter=String //Line 294
MeterStyle=LayoutNumberStatusTemplate
LeftMouseUpAction=[!CommandMeasure "SlotWidthInput" "ExecuteBatch 1"]

Another filter suggestion

EDIT: Finally I learn how to make a pull requests and I write this there.

Hello, I make another filter. This filter with games:all will show games installed, not installed and hidden.

I put it in the line 324 of the GUI.lua from new-filter-tag:

	elseif StartsWith(asPattern, 'games:') then
		asPattern = asPattern:sub(7)
		if StartsWith(asPattern, 'a') then
			for i, game in ipairs(T_ALL_GAMES) do
				table.insert(tResult, game)
			end
			for i, game in ipairs(T_HIDDEN_GAMES) do
				table.insert(tResult, game)
			end
			for i, game in ipairs(T_NOT_INSTALLED_GAMES) do
				table.insert(tResult, game)
			end
		else
			return tResult, true
		end	

I'll probably have more suggestions like this, let me know if you want me to continue sharing them and then you choose if you want to add it to the code or not, or if I stop to doing this.

Bang that closes rainmeter when you click and opens it when you close the program?

I know I have to follow this guide but I don't get how to install them in the skin nor how to exactly do this

I'm guessing I'd have to use !Quit, but how do you open it again once you close the program? It's from Rainmeter, so if it's closed there's no way you can open it from rainmeter... right?

Thanks

Edit: Maybe it could be done with !Hide, but would the skin still consume RAM&CPU Usage?

[Ideas] My own changes

Hello again. I have made changes to the skin to adapt it to my own use. I know almost all of this changes are only useful to me, but maybe one of them could be useful to someone else, so I have thought to write here the list of changes I already made or have intention to make for if you think could be one of them useful and want to add them.

If this bother you, just close this issue and sorry about that!

Implemented:

-Just get hours from steam the first time, then respect the hours of the skin. This is implemented without any option, if added there must be an option to enable or disable it.

-Added HOURS_LAST_PLAY, ERASE_HOURS_TOTAL, FIRSTPLAYED, TIMESPLAYED, AVERAGE_PLAY_TIME, COMPLETED and PRICE. I want to implement UPDATE_HOURS_TOTAL too. The idea with all this info is to get an icon in the submenu that opens a popup that show all the info of the game (name, notes, etc) and the possibilty of editing that info (not implemented yet). On the other hand, the idea is also add other options to sort the games, for example by price (not implemented yet).

-Backups folder with backups of the games.json with a timestamp when is started the skin. The games.json have been corrupted several times because I edit info directly on the noteblock, so I made this solution to avoid lost all the info.

image

Right now I only implemented this, I have intention to implement too if I can and have time to do so:

-Add support for languages.
-Show the platform icon on the corner of the banner game without highlighting it (I am not sure if can be a problem with this because add platform images that have copyright...).
-Add a GUI to show all static filters, to click the filter directly. However there will be filters that still have to be used only with filter input, for example shortcuts filter.
-Add filters for PlatformOverride too, to can filter for example origin:played.

Right now this is all I think. Again sorry if this bother you.

Invalid Steam UserDataID and/or Steam path error

I have properly changed everything needed in the UserSettings.inc and restarted rainmeter multiple times both in and out of administrator mode to no avail.

I have even tried completely exiting out of steam ( no more steam processes running in background) and rainmeter, starting steam back up then rainmeter and i still get the same issue.

I will be attaching screen shots of the logs rainmeter in debug mode produces upon starting it up, and the UserSettings.inc file

e32c60b4dc14f64e3ad383b63a465afd
8ef6a39ced48ea80d5a74cae2e5c88d3

Show all games, both installed and not

Hello, I open a pull requests but I don't know how to do it and I think I open it wrongly, so better I open it here.

I try with adding this line to the 307 line of GUI.lua and when I put in the search "installed:all" it shows me both installed and not installed. I am not sure if it needs more parts to be modificated, but right now I think this way it works.

	elseif StartsWith(asPattern, 'a') then
		for i, game in ipairs(T_NOT_INSTALLED_GAMES) do
			table.insert(tResult, game)
		end
		for i, game in ipairs(T_ALL_GAMES) do
			table.insert(tResult, game)
		end

Load programs with bangs

So I wanted to know if it's possible to load different executables when you open a game

For example, I always use haste when I play overwatch, but I don't need it when I'm not playing, since it consumes resources.

is there a way to do this?

[QUESTION] How to delete updates of time?

Hello. I have many games in Steam that I have run on idle, so I have many extra hours that I want to erase. I want this skin only gets the time from Steam the first time the game is added, and then count the hours with the own counter of this skin, to be easy edited the info about the time. Is there is anyway to do that right now?

I tried with editing the time on games.json but the next time I update the skin it downloads again the correct time.
I'm using the last beta and the last release of phyton.

Thanks for the skin by the way, it is very complete!!

Certain non-steam games not launching.

Short description of the issue

-Certain non-steam games don't launch when I click them. Can't really track down why. I'm still able to launch the games with the older version (before major overhaul) and I haven't done anything to break the steam shortcut (ex. change name or file path of game).

-I'm also stuck with "Downloading..." text on first banner. Doesn't go away even after the banners download.

Lauhdutin version

Lauhdutin 2.3.0 (Same problem with 2.4.0)

Rainmeter version

Latest Stable 4.0

Python version

Python 3.5 Installer

Windows version

Windows 7

Error messages

ERRO (16:26:11.229) : !ShowMeterGroup: Skin "Steam" not found
ERRO (16:26:13.461) : !HideMeterGroup: Skin "Steam" not found

Steps to reproduce the issue

-Fresh install on lauhdutin 2.4.0
-Initial setup with GUI (steam folder, steam profile, banner size and count)
-After banners load up (and i add my non-steam ones) "Downloading..." stays on the first banner even after a "rebuild skin"
-I then test the banners and the official steam games work but not all non-steam games do.

Python stack traceback

screen

TODO list

  • Setting the Steam path does not always succeed in updating the list of accounts. (Unconfirmed status after measures to fix it have been taken) Settings config in 3.0.0
  • Create a repository for the Rainmeter helpers module and update readme to link to it.

Version 3.1.0 - In alpha testing phase

  • Update the settings config regarding what triggers a rebuild of slots.inc. Can apparently fail to trigger a rebuild when changing settings that would require the SkinEnabler meter to exist.

Ideas for new features:

Beyond version 3.1.0

  • Major refactor to make the code easier to maintain and more modular.
    • Currently being developed on a local branch.
  • Wishlist config
    • Modified version of the main launcher.
    • Support for variants of the sub-configs (search, sort, filter, etc.) without a lot of code duplication.
    • Ties that occur when sorting should ultimately be resolved by sorting based on the title or the price, whichever is not the main sorting criterion.
    • Check if a wishlisted game exists among the launcher's games regardless of platform. Display a warning to let the user know when this is the case and hovering over the game's slot.

Minor issues

Two minor issues I found in the last beta 4:

-When I start unhiding games in the previous versions the skin go automatically to hidden games. In this version that doesn't happen. I am not sure if it is the way to work, but just in case I let here. Also, If I have hidden:true filter active and I start hidden games, it doesn't go to games unhidden neither.

-A minor visual issue. When I set the default size width and height the slots are not aligned for a little bit:

image

It isn't anything important in any case.

Nothing showing up

Hey, I don't know if you're still updating this but okay..

I just downloaded the latest version and nothing is showing up, no error messages, nothing. I already looked through the code myself but i couldn't find anything. The rainmeter log says "Script: Lauhdutin.lua:391: attempt to index field '?' (a nil value)", i've already tried to print some of the variables used there and they seem to print the info just fine.

thanks,

Breaking rainmeter

When I add this skin to rainmeter and launch the program fails to run correctly seemingly caught in some loop using roughly 30% of the cpu constantly. Sorry I don't have any more useful info.

Another filter suggestion (Part 3)

EDIT: Finally I learn how to make a pull requests and I write this there.

Well, another filter. EDITED: Now, With this, with played:true will show all the games, hidden, installed or not that been played (hours > 0), and with played:false will show all the games that not been played (hours=0).

	elseif StartsWith(asPattern, 'played:') then
			asPattern = asPattern:sub(8)
			if StartsWith(asPattern, 't') then
				for i, game in ipairs(T_ALL_GAMES) do
					if game["hourstotal"] > 0 then
					table.insert(tResult, game)
					end
				end
				for i, game in ipairs(T_NOT_INSTALLED_GAMES) do
					if game["hourstotal"] > 0 then
					table.insert(tResult, game)
					end
				end
				for i, game in ipairs(T_HIDDEN_GAMES) do
					if game["hourstotal"] > 0 then
					table.insert(tResult, game)
					end
				end
			elseif StartsWith(asPattern, 'f') then	
				for i, game in ipairs(T_ALL_GAMES) do
					if game["hourstotal"] == 0 then
					table.insert(tResult, game)
					end
				end
				for i, game in ipairs(T_NOT_INSTALLED_GAMES) do
					if game["hourstotal"] == 0 then
					table.insert(tResult, game)
					end
				end
				for i, game in ipairs(T_HIDDEN_GAMES) do
					if game["hourstotal"] == 0 then
					table.insert(tResult, game)
					end
				end
                else
			return tResult, true
		end	

This could be appended to my previous issue. So, the final will be:

		elseif StartsWith(asPattern, 'games:') then
		asPattern = asPattern:sub(7)
		if StartsWith(asPattern, 'a') then
			for i, game in ipairs(T_ALL_GAMES) do
				table.insert(tResult, game)
			end
			for i, game in ipairs(T_HIDDEN_GAMES) do
				table.insert(tResult, game)
			end
			for i, game in ipairs(T_NOT_INSTALLED_GAMES) do
				table.insert(tResult, game)
			end
	else
		return tResult, true
	end	
elseif StartsWith(asPattern, 'played:') then
		asPattern = asPattern:sub(8)
		if StartsWith(asPattern, 't') then
			for i, game in ipairs(T_ALL_GAMES) do
				if game["hourstotal"] > 0 then
				table.insert(tResult, game)
				end
			end
			for i, game in ipairs(T_NOT_INSTALLED_GAMES) do
				if game["hourstotal"] > 0 then
				table.insert(tResult, game)
				end
			end
			for i, game in ipairs(T_HIDDEN_GAMES) do
				if game["hourstotal"] > 0 then
				table.insert(tResult, game)
				end
			end
		elseif StartsWith(asPattern, 'f') then	
			for i, game in ipairs(T_ALL_GAMES) do
				if game["hourstotal"] == 0 then
				table.insert(tResult, game)
				end
			end
			for i, game in ipairs(T_NOT_INSTALLED_GAMES) do
				if game["hourstotal"] == 0 then
				table.insert(tResult, game)
				end
			end
			for i, game in ipairs(T_HIDDEN_GAMES) do
				if game["hourstotal"] == 0 then
				table.insert(tResult, game)
				end
			end
            else
		return tResult, true
	end	

I put it in the line 324 of the GUI.lua from new-filter-tag.

Skin doesn't display games

Hello!

My skin has a No games to display message, although the previous version I used displayed all my games correctly.

Lauhdutin version 2.6.0

Rainmeter version 4.0.0

Python version 3.6.0

Windows 10, 64-bit

Python stack traceback:

Running on Python 3.6.0
Processing Windows shortcuts...
Processing Battle.net games...
Processing Steam games...
Failed to process 'sharedconfig.vdf'
Failed to process 'localconfig.vdf'
Found library 'C:Program Files (x86)Steam'
Found 0 games that are installed
Processing Steam shortcuts...
Generating master list of games...
Found 0 games...
Comparing new master list of games with old master list of games...
Downloading banners for 0 games from supported platforms...
Writing master list of 0 games to disk...
Initializing frontend...
Execution time: 0 minutes 0.23 seconds

I checked and I have both the sharedconfig.vdf and localconfig.vdf files in my Steam\userdata\SteamID folder. My Steam Library is on another disk, though it wasn't a problem before. I did a completely fresh instalation of the skin, following the instructions provided in the Readme.

Last alpha's scrolling is more laggy

Previous version:
https://www.youtube.com/watch?v=gYwD8X5nXS8&feature=youtu.be (see only the scrolling, the visualizer lag was fixed)

New version 2.7.0.3 (and .1)
https://youtu.be/gub3Qx4En-k (the scrolling lag is back and is way less smooth)

I posted this issue #31 because it was laggy in a previous version. You fixed it and it worked perfectly, but looks like it's back. Also the scrolling itself feels less smooth. I'm doing the same movement, it gets stuck at the beginning and lags

Disable not Steam running?

It's a nice feature but i find it annoying and maybe too colorful for what actually means nothing, since by clicking it automatically loads the client.

Can you make it so we can disable this option? Thanks!

BattleNet shortcut opens only Launcher

When I click on a BattleNet shortcut (in my case Overwatch), only the BattleNet Launcher will be started.
Then I have to click on the Start Game Button to Start it.
Is it possible to fix that? And do you also have this Bug?

(Suggestion) Add more rows

Hello again. I like so much the new feature that hiddes the skin in the screen, and I think that could be awesome have the option of adding more rows, like a grid. Now that the skin could be hidden I think would be interesting to have all the screen filled with games and hide it when you launch a game or simply don't want to see the grid.

Run a script when you click a game

It might sound weird but it'd be really useful when you're using Rainmeter Auto Closer. Everytime you'd click a game, like GTA (which is fullscreen, so you dont have to have rainmeter open), rainmeter would close. And when you close GTA, rainmeter would start again. It's really helpful for shitty pcs or to get a little more power. My set-up is using 70MB. it's not much but it helps.

Or maybe you could even do another Rainmeter Auto Closer by yourself, but that's a lot of work

And you would be able to disable/enable all of them from settings, and then individually just like the hide game feature

what do you think?

https://www.reddit.com/r/Rainmeter/comments/5e3y7s/rainmeter_closer_while_gaming/

How do you scroll the ticker?

Maybe it's a stupid question, but how does the ticker work? Is it manual scroll or should it work with mouse over left/right or top/bottom?

Steam games do not show up with v2.2.0 beta

Installed v2.2.0 beta1.
Steam games do not show up after this.
image
Furthermore, only the first 3 games of the Windows shortcuts show up, not the last two. File naming is correct (both banner and shortcut).

How do shortcuts work?

I cannot get some of my games shortcuts to work.

Three games that reside on a secondary hdd under the folder "Games" work.

Two games that reside under "Program files (x86)" do not work. The shortcuts I've made are directly to the .exe files and not an internet shortcut pointing to an URL. Just like the three games that work... Also directly to the .exe files.

What could be the issue here? It worked with v2.1.0.

About my last filter

Hello, about my last contribution please note that now Steam:true is not supported anymore because I think is duplicated with steam:installed, but If you don't think that way I can add it too.

Rainmeter doesn't do anything

When I select this skin from rainmeter it stops responding to user interactions (I.E I can't even right click and get the options there) and rainmeter stays around ~26% usage on my CPU. If I restart rainmeter with the skin active none of the other skins seem to load either and the process still idles at the same percentage. I have customize the skin to the needed changes. I'm using version 1.3.0 as well as version 3.3 of rainmeter (running as admin).

How to add a new category for games.

Hello again. I tried to create a new category for Origin and uPlay games, with functioning similar as Windows Shortcuts, to set up a filter to show only Origin or uPlay games. But I can't get it to work, I edited enums.py, GetGames.py, GUI.lua and created an "OriginShortcuts.py" but when I start again the skin it get stucks in "Initializing backend". The idea is to create folders separated to Origin and uPlay and get the shortcuts from there, to leave Windows Shortcuts for windows ordinary games.

I am not sure if I am overlooking some file or it's not possible to add new categories right now.

Anything special with 3.0?

Do you have anything special for the jump? Or wil you just keep going with 2.10?

Just wanted to know :)

Cheers!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.