Skip to content

Version 0.1 Developer Preview 2

Latest
Compare
Choose a tag to compare
@DrewNaylor DrewNaylor released this 20 May 19:02
· 219 commits to main since this release

Retiled Version 0.1 Developer Preview 2 Changelog

Released on 5/20/2023 (MM/DD/YYYY).

Note: if you wish, you can discuss this version here: #222

Two years and five months since the first release, I'm now ready to publish the second release. This version includes some major bug fixes that only showed up after the previous version was published (due to probably implementing things incorrectly and the behavior being fixed in Qt, but that lead to a regression in my code) and other annoyances that were in DP1. Here are some highlights:

  • Now you can leave edit mode by tapping on the blank area outside tiles
  • The wp-metro icon font I'm using for the arrow icon and the search button should now display properly
  • I've also integrated icon support
    • It's a little choppy when scrolling the All Apps list though, likely due to not caching the Icon value from .desktop files when loading the All Apps list items
    • Also for some reason the icons are now blurry on first loading if using HiDPI and I only noticed this after updating to Qt6.5 on my PinePhone, but resizing tiles manually and scrolling the All Apps list far enough around to refresh the images seems to fix it temporarily
    • I'm using pyxdg for this capability, so it'll have to be installed if you don't already have it; package names for it in some distros are in README.md and also in the Readme included with the Zip file package for this version of Retiled.
  • Added initial support for both tile backgrounds (like WP8.1, in the tiles) and standard backgrounds (behind tiles, like W10M added and most phone launchers have)
    • These currently have issues if using parallax scrolling, where the image starts disappearing if you have too many tiles, but you can turn off parallax via an accessibility option as described below
  • Several theme-related customization options set via a config file (./RetiledSettings/configs/themes.config, but it can be copied to ~/.config/Retiled/RetiledSettings/configs/themes.config to make editing easier)
    • Accent color
    • Icon theme if you don't want Breeze Dark
    • An option for which image to use as a wallpaper based on file path
    • Even options to alter the wallpaper overlay layer color so it can be stuff besides a 20% opacity black rectangle
  • Two accessibility options in its own config file (./RetiledSettings/configs/accessibility.config)
    • Whether to allow control tilting when pressed (by the way, I figured out how to do tilting for buttons and stuff, even though it doesn't yet follow the cursor except in one of the nine predefined directions [eight plus the middle])
      • More details on tilting support: #167
      • Even more, if a bit outdated, details on tilting support: #147
    • Whether to use parallax wallpaper scrolling
  • I've also switched to using the Inter Display font if it's installed (tested with v4.0 beta 8)
    • Another related change is that controls that previously set their font.letterSpacing no longer do so, as it doesn't look as bad as Open Sans at the default letter spacing.
  • This version deprecates setting raw tile width and height values in favor of integrating TilesGrid (my fork) in v0.1-DP3
    • We'll still load raw tile widths and heights for now, and you'll get a message on startup telling you about this with a way to convert your config file to the new format by manually forcing a save through entering edit mode then leaving it [this situation is handled specifically, but we won't allow force-saving if the config file has been converted to using TileSize with values of small, medium, and wide, with all other values defaulting to medium]).
  • The All Apps list has a scrollbar
    • It's imperfect, looks like it's way too far into the edge of the window, and stays visible for longer than I'd like, but at least it exists.
  • pyyaml has been removed from my distribution (of Retiled), so you'll have to install it yourself if it's not already installed. Names for its package in some distros are in README.md and also in the Readme included with the Zip file package for this version of Retiled.

There are several more changes than this, and I hope it's not too underwhelming for how long the wait was.

Please be sure to read the full changelog below as some highlights listed above are expanded upon.

Please be sure to read the Readme included in the package or online as it has important info, as well as the System Requirements.

Please note that this version doesn't yet support running as its own environment, so you'll have to run it in something else. Plasma Mobile is recommended, as both Retiled and Plasma use Qt. In fact, I'm planning on turning Retiled into mainly a Look-and-Feel package for Plasma Mobile so that it can take advantage of the features provided in Plasma Mobile but I'll be tweaking various UI elements to make it what I need.

If you are reading this in Notepad or another text editor, it displays best in Word Wrap view. Click on Format>Word Wrap on the top bar if using Notepad on Windows. Notepad++ users will find it under View>Word Wrap. Word Wrap is automatically done if viewing on GitHub, and should already be used in VS Code (if not, use View>Word Wrap), Kate, and KWrite.

The full changelog is available after the Hashes section. To make things easier, some items were at least partially copied from the highlights above.

Hashes

MD5 checksums/hashes are not used for Retiled as they are weaker than SHA-256. More details, though they're not as relevant to Retiled:

You can use sha256sum to confirm the hash of the files by running
"find . -type f -exec sha256sum {} ;" in the folder you extracted the archive to and comparing the output to my sums listed below. Be sure that you don't copy the quotes. This should work on non-Bash systems, like postmarketOS. I got this command from this Ask Ubuntu answer: https://askubuntu.com/a/486094 . HowToGeek has a nice article on checksums and stuff:
https://www.howtogeek.com/67241/htg-explains-what-are-md5-sha-1-hashes-and-how-do-i-check-them/ .

There are a lot of them, so you'll find the relevant ones in "sums-v0.1-DP2.txt" or online.

The checksum of that file is 092d2707d4e4f9ec49422ab76c682d191b31bb76f15f26d0be152e8224da765b

You can run a check on individual files by running "sha256sum -b (insert filename here)".

Added

  • Initial support for both tile backgrounds (like WP8.1, in the tiles) and standard backgrounds (behind tiles, like W10M added and most phone launchers have)
    • These currently have issues if using parallax scrolling, where the image starts disappearing if you have too many tiles, but you can turn off parallax via an accessibility option as described below
    • Please note that the tile background/wallpaper effect can be slow on some devices, but in my experience it seems fine on the PinePhone (memory usage may be not fine, though, but I haven't checked).
    • See also this pull request for more details, such as how to set a wallpaper in the config file: #193
    • Something I should mention is I think I fixed the issue where the image wouldn't stay in the tiles page. Yeah, I'm pretty sure I did.
  • Icon support
    • It's a little choppy and slow when scrolling the All Apps list though, likely due to not caching the Icon value from .desktop files when loading the All Apps list items
    • Also for some reason the icons are now blurry on first loading if using HiDPI and I only noticed this after updating to Qt6.5 on my PinePhone, but resizing tiles manually and scrolling the All Apps list far enough around to refresh the images seems to fix it temporarily
    • I'm using pyxdg for this capability, so it'll have to be installed if you don't already have it; package names for it in some distros are in README.md and also in the Readme included with the Zip file package for this version of Retiled.
  • Theme-related customization options set via a config file (./RetiledSettings/configs/themes.config, but it can be copied to ~/.config/Retiled/RetiledSettings/configs/themes.config to make editing easier)
    • Accent color
      • More details on accent color config file stuff: #140
    • Icon theme if you don't want Breeze Dark
    • An option for which image to use as a wallpaper based on file path
    • Even options to alter the wallpaper overlay layer color so it can be stuff besides a 20% opacity black rectangle
  • Accessibility options in its own config file (./RetiledSettings/configs/accessibility.config, but it can be copied to ~/.config/Retiled/RetiledSettings/configs/accessibility.config to make editing easier)
    • Whether to allow control tilting when pressed (by the way, I figured out how to do tilting for buttons and stuff, even though it doesn't yet follow the cursor except in one of the nine predefined directions [eight plus the middle])
      • More details on tilting support: #167
      • Even more, if a bit outdated, details on tilting support: #147
    • Whether to use parallax wallpaper scrolling
  • If you wish to load settings files yourself, RetiledStart should cover most of the settings available in the config files, and you can find the settingsReader.py library under ./RetiledSettings/libs/libRetiledSettings/settingsReader.py, which you can copy to and use in your app as long as your app is compatible with the MIT License.
  • Please note: any config file changes will require affected apps to be restarted for now.
  • The All Apps list has a scrollbar
    • It's imperfect, looks like it's way too far into the edge of the window, and stays visible for longer than I'd like, but at least it exists.
  • There's now an early Action Center app and an early Wayland compositor, but they're not close to being integrated and I'm thinking about just eventually making a custom Look-and-Feel package for Plasma Mobile (#182). Some of the work from these two components will be reused for the Plasma Mobile-integrated version.
    • The Action Center app only has a button for toggling the PinePhone (Pro)'s flashlight and a test button for switching an app's accent color at runtime.
    • You can run the compositor if you want to, but it full-screens any apps that are run in it so it's a bit of an issue to un-fullscreen them. Docs on how to run it: ./docs/running-the-compositor.md
      • Details on how the compositor works (first PR): #127
      • More details on how it works: #164
    • Even though these apps are in the release's zip file, they're not installed automatically with the install script as they're not really ready.
  • Accessible descriptions and names have been added to icon buttons (I didn't know the option existed).

Fixed

(note: some of these items listed here might not be directly relating to a filed issue so they will be phrased differently)

  • Pinning tiles when there are none/when there's less than a full-width row filled no longer results in all the tiles going in one column and requiring a manual resize before everything works correctly again.
    • A side-effect of this change is that the All Apps button is no longer aligned with the bottom-right corner of the right-most tile. Tried to fix it, but haven't figured out a solution yet.
  • The tiles are now horizontally centered when in portrait mode on at least the PinePhone, as well as other phones with the same horizontal width in portrait I would assume. This is a bit of a hack due to forcing the invisible item I'm using as a margin to be wider and isn't accurate to the WP emulator at 720p.
  • Now you can leave edit mode by tapping on the blank area outside tiles
    • Before you had to tap directly on the currently-active tile.
  • The wp-metro icon font I'm using for the arrow icon and the search button should now display properly
  • The About window's text in the search app now stays within the window's size and will reflow itself to fit the window instead of staying one width.
  • Closing the apps no longer puts a bunch of stuff in the terminal output, making debugging easier.
  • Only tiles that have more than 0 (zero) characters in their DotDesktopFilePath key's value will be added to the tiles page, to prevent breaking the config file. Zero-length entries will be removed upon saving.
  • There was an issue where I had to start specifying the encoding for .desktop files as UTF-8 when loading them in Python, so I'm doing that now.
  • The weird issue with the All Apps list that only appeared after v0.1-DP1 was released where it was way over to the side and down is now fixed. No idea what that was. Maybe a Qt update and I was doing it wrong?
  • I wasn't cleaning %c, %i, or %k before, but now I am since they're not implemented yet. Once they're implemented, I'll stop removing them from the exec key.
  • We don't need to clip the listview for the All Apps list anymore, which may improve performance once I optimize the icon functionality.
  • All Apps list items have their height set directly for performance reasons.
  • Escape now works to leave edit mode as expected and will be used by the back button eventually.
  • All Apps list context menu now generally stays onscreen even if it would be below the window, but if it's too small it gets squished in the top of the window. This can be a problem at specific scroll positions, so it's something that still needs to be fixed.

Changed

  • Tiles are now sized by TileSize in the config file instead of raw height and width values.
    • This is to prepare for integrating the TilesGrid project's code for proper tile layout.
    • You'll get a message on launching RetiledStart if you have any tiles still using raw width and height values stating that doing so is deprecated and will be removed in v0.1-DP3, but that we'll still load the tiles for now. Internally they'll be treated as if they're using TileSize.
    • You can switch to TileSize at any time by entering edit mode then leaving edit mode (long-pressing a tile then tapping it again), which in this case will force a save. Please do this sooner rather than later.
    • If a tile doesn't fit small (70x70), medium (150x150), or wide (310x150) tile sizes, it'll be resized to medium.
    • See also this pull request for more details: #202
  • Appbar and appbar drawer background color was changed to be accurate to the color used in WP's Phone app based on how it appears in the 8.1 emulator.
  • Default font has been changed to Inter Display instead of Open Sans.
    • This is mainly to allow switching Retiled components to the GPLv2 where necessary to create the Plasma Mobile Look-and-Feel package as mentioned above. Generally it shouldn't be necessary to change the license, but it will be required in a few places.
    • If you have Inter Display installed, it'll use it, or else Qt's default font that it picks up will be used.
    • I tested with Inter Display v4.0 beta 8.
    • A side-effect of this is that Open Sans is no longer distributed in my package.
    • Please see ./RetiledStyles/FontStyles.qml if you wish to change the fonts Retiled uses. For now this will be the way fonts are configured to make things simple, but eventually there will be a fonts config file.
      • There are some comments in this file that may help.
      • That file also has font sizes for various presets, and they can be changed if they're too small/large for you or your font.
  • Reduce the left margin for RetiledSearch's "about" page title text to 6 so it's the same as the Windows Phone 8 guidelines, or at least similar enough to also match up with the body text's left margin, which is set to 12 now (see https://learn.microsoft.com/en-us/archive/blogs/africaapps/uxui-guidelines-for-windows-phone-8)
  • Some files have had their licenses changed:
    • RetiledStyles files are now also available under the GPLv2+ in addition to the LGPLv3. This is to make it easier to make a Plasma Mobile Look-and-Feel package.
    • Library files specific to Retiled have been relicensed to the MIT License where possible to facilitate usage under the GPLv2+.
    • All Retiled-specific files or libraries that fall under the MIT License are specified in ./LICENSE_ForSpecifiedLibraries.MIT. They're listed in there for clarity.
  • We're using "".join(["/usr/share/applications/", DotDesktopFilePath]) instead of "/usr/share/applications/" + DotDesktopFilePath to prevent copying data where possible. Should reduce memory usage a little. This also applies to a few other places in a similar way.
  • Tiles now have a nice animation when they move around, mainly by being resized and not fitting into the area/fitting into a smaller area, but also when the window is resized.
  • Apparently the All Apps list item icon background rectangles weren't antialiased before, but now they are.
  • Buttons and other controls now have nice and smooth transitions instead of instantly going to their pressed state and stuff.
    • Tiles have a bit of an issue with this though, as sometimes they kinda "jump" to what it needs to be when un-pressing them. Maybe it needs to have a thing that says the animation has to complete? TODO: Figure that out.
    • One major issue with this that needs to be implemented is that un-pressing a pressable control will cause it to immediately play the returning animation instead of waiting. I tried to add a pause, but it caused jitters. This is very important for context menus and stuff.
  • Small tiles no longer show their text, only an icon.
    • I think it would be a good idea though to set the accessible name for tiles to their usual text, just so that there's always the name there. Not sure how to do it for live ones, though. Maybe Microsoft's documentation has stuff that app developers would need to know, and I can learn from that?
  • The install script now expects you to be in ./Scripts.
  • The "about" header on the search app's about page is much smaller now. This may or may not change again in the future.

Removed

Deprecated

  • Setting tile sizes via raw widths and heights are deprecated and will be removed in v0.1-DP3. Please see the text above in the "Changes" section for more details, including the replacement and how we'll move forward (setting them via TileSize in the config file so that it's easier for TilesGrid to use).