-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Questions & Suggestions #2
Comments
Hey DirtDiglett! Sorry for not answering earlier and just adding tags but I had to leave for university and didn't have enough time to give you a detailed answer. First of, thanks for all your input - that's exactly what I wanted. Secondly, I suck at UI and UX design and I know that so any input on this topic is more than just wanted - it's needed. I'll try to address every point in your comment and state my opinion on it. Let's start with the easiest one which I more or less addressed already: UI. If you can come up with anything, then please feel free to send me any kind of suggestion. I always hated UI design and went with the "works, so meh" way of designing user interfaces.
This one actually was in the works already but I stopped working on it because the restructuring will take some time so I went ahead and implemented some other features first. But I'll have to restructure the code anyway since it's a pure mess so I'll look into this again. The feature itself isn't too hard to implement anyway.
Awesome idea. We'd need to come up with a exact way of doing this, though. Do the config lines get added to the config file or do they replace other lines? But I think this is just some minor problem with this idea, I'll definitely look into this.
Actually that's not correct. The skins.xml isn't compiled into the assembly, it's just a normal file. The "Refresh list" button in the top right corner will be able to download a newer version of this file from this GitHub repository as soon as I set it to public and I remove the
From what I've heard, the built-in .NET JSON (de-) serializer … isn't the best and I didn't want to include any external library to keep this project as small as possible but I'll look into the built-in JSON stuff since that's easier to use and maintain than XML.
The implementation itself should be pretty easy (since you can find the installed version in some of the manifest files in the Thanks again for all your input, it's more than helpful. |
This is an idea, thrown together with some laziness to boot (Ordering of skins was just in the order I grabbed the names for example. I'd expect it to be ordered by last update descending). I also need to work on adding other things such as including steam groups, a 'report an issue' button that loads to the git issue tracker for the skin or a contact the dev otherwise, etc.
I think this is a discussion that should be had by all the popular skin devs to create a sort of pseudo standard. But from my own experience there's two main ways to handle it and both have their place:
Both would need to be supported I'd think. And perhaps if all the skin devs can agree on a standard we could do something like standardizing how we organize color variables and then a user could customize colors.
JSON would be more appropriate in my opinion, esspecially if it's being sourced externally.
I've had to have a real think on this one, and there's a few solutions that could be explored. From a program perspective it would be possible to 'know' an update breaks functionality if in a diff of the version there is a new control added to a file that exists in the skin. IE: if I specify that pressure works on version X of Steam, and then version Y of Steam comes out with a new control in steamrootdialog.layout, then it's a guarantee the skin will be broken. I am sure i've seen a git repo or something before that follows the diffs between steam client versions, but I'm struggling to find it again. Alternatively, it could be done by manually checking when new versions come out, then in the manifest mark it as out of date. |
First of all, thanks for the design concept. I'll definitely look into this the next few days.
Sure thing, we'd just need to find a place to discuss this. I'm not sure if GitHub is the right place for that, maybe we should use some more-instant way of communicating like IRC or Steam group chat.
You're probably looking for SteamDatabase/SteamTracking And I had a closer look at it. The program wouldn't only need to track the steamrootdialog.layout but the whole layout directory. Looking at the phone reminder bar for example shows that they might just add new files without modifying the steamrootdialog.layout file. But that shouldn't be too hard to track either thanks to the repository/the modification dates of the individual files. |
You're right, I was using steamrootdialog as an example though. You would only need to monitor whatever layout files that exist in the skin though. For example, if I didn't modify |
I just split the whole issue into multiple smaller issues so they're easier to overview. I hope I didn't forget any of them. If I did miss any, feel free to just add them. |
Hey Ditti4,
Great project, I'm hyper excited for this, but I have some questions and some suggestions.
Handling Skins updates, etc.
I had a look through and the way you're handling skins information and updating is quite interesting. That XML file is a local copy, but that means to add skins to this list or adjust URLs and such would require a redownload of the program right? If that's the case I think it really should be replaced with a remote manifest that can be updated and have the clients periodically check for that.
Perhaps we could change it up so that the onus of the information is on the skin providers, something like having a manifest that just contains URLs to each skin's individual info.json that the author of the skin maintains (and maybe fallback to the current method if there isn't one). I'd have no problem with including a json file in my skin and I am sure Inhibitor would happily do it to Air, not sure on Metro though.
This would open the way for more features such as compatability checking, a skin developer includes what Steam version it was built for, and then as versions come out and break the skin the program can show users.
Something like:
info.json
Configuration
Something that would be amazing would be if we could setup a method of configuring skins through the app. There's two main ways that skin devs provide customization currently: File Overrides and config.ini includes. Supporting both would be marvellous. I've included a brief idea for how this could be implemented in an info.json
Visible Progress
Right now when installing skins and such there is little to alert the user to what is happening. Perhaps include an indecisive progress wheel or bar with a bit of a status so it doesn't look frozen. "Downloading Skin: 50%..." or "Downloading Skin: 100kb/5MB" and things like "Installing required fonts..."
GUI
Right now it's very basic, which I understand as it's all WIP. But if I were to throw together a mockup would you be willing to take a look and see if you can do it? I think the GUI needs more information than just a short description, it needs a way to preview a skin before installing (JSON Above includes that). A way to see changes between releases, etc.
The text was updated successfully, but these errors were encountered: