DrewNaylor / Retiled

An attempt at creating a "desktop" environment mainly for Linux phones and tablets that's similar in function to some parts of Microsoft's Windows Phone 8.x, primarily the Start screen, Search app, navigation bar, Action Center, and the status bar. Development is mainly being done using the PinePhone, so that'll be the main supported device.
https://codeberg.org/DrewNaylor/Retiled
Apache License 2.0
66 stars 3 forks source link

Is it possible to run just the launcher on a desktop? If so, how? #185

Open csdvrx opened 1 year ago

csdvrx commented 1 year ago

Hello

I love the looks and I would like to use parts of retiled as a launcher/start menu on a desktop running wayland (hyprland).

The main features I'm interested in are:

Thanks

DrewNaylor commented 1 year ago

Sorry, this reply is a bit long.

Running just the launcher is possible at the moment, and a quick way to do so without installation is to cd into RetiledStart/RetiledStart and running python main.py. This may change in the future as I'm planning on making it more of a thing for Plasma Mobile, but I also want to have it be usable outside Plasma Mobile. I recommend using the code from the main branch instead of the v0.1-DP1 release due to major problems that has gained over time, as well as the newer code just feeling better to use. There's an install script in ./Scripts (specifically, install-retiled.sh; may require a chmod +x) that'll put the Start and Search apps into /opt/Retiled, and it'll add .desktop files to run both in addition to placing scripts in /usr/bin so you can just run them from the terminal (these are retiledstart and retiledsearch, but those scripts CD into the specific directory for both programs, so that may cause issues if you need something to launch from your home directory). There's also an uninstall script (uninstall-retiled.sh) that undoes what the install script does, but it currently deletes the entire directory of /opt/Retiled instead of only removing what was placed there by the installer. Neither script has a prompt asking you if you want to continue; they just run and ask for a password to copy or delete files (might not even ask for a password if running either one is close enough due to sudo's caching).

Currently the RetiledStart portion doesn't directly support showing up like a launcher in, say, a corner, only a floating window, sorry. There may be a way to integrate it manually, though, including with a shortcut and something to force it to run, but it stays open when an app is launched at the moment (it would be relatively easy to have it autohide or close when an app is started, though, just haven't added that as an option). It also doesn't support LayerShell at all right now (due to using Python and qtlayershell not having a Python binding, but that can be solved by manually making bindings with Shiboken; would prefer to be using C++ as it's lighter, but I don't know enough yet and building C++ with CMake while making sure I have all the libraries set is confusing; my issue is probably using Windows), which may make things difficult to integrate.

The All Apps list does show up on the right side of the Tiles area, but that requires a drag from the right or a click on the "All Apps" button at the bottom of the tiles list.

Haven't thought about typing the first letter of an app's name, but that's a good idea alongside the section jumplist and All Apps list search features that are planned (because WP had those; the search button doesn't work yet and it's just there to complete the look despite the current lack of icons). Would it be a good idea for it to immediately jump to the All Apps list and start searching if a user types on the keyboard no matter if they're viewing the tiles or All Apps?

Tiles can be resized and unpinned by long-pressing (maybe right-clicking too? but I haven't tested that) on them to enter edit mode and using the buttons in the bottom-right and top-right corners, respectively. Moving tiles is more involved and right now requires manually editing the tile layout file in ~/.config/Retiled/RetiledStart/startlayout-modified.yaml (this file can be created by either pinning/unpinning a tile or by resizing a tile to a different size than it had before resizing (to save disk writes), then clicking that tile or another one to focus it, then clicking that tile again to leave edit mode (leaving edit mode is required to go back to the All Apps list, just like on Windows Phone). Pinning a tile automatically saves it to the layout file and creates it if necessary.) Once the file is created, you can open it in a text editor and cut-and-paste or drag each tile to where in the list you want. Each tile is represented by the - DotDesktopFilePath: (.desktop filename) line, and the TileWidth and TileHeight lines are the width and height of each tile, as expected. To make things easier, I'd just select from the end of the TileHeight line up to that tile's hyphen, then maybe make a new line where you want to move the tile to. This will be easier in the future and just be drag-and-drop as I'm planning to use the TilesGrid component I found on GitHub, but I'm a bit busy on other projects right now.

Not necessarily directly related to RetiledStart, but if you want an Accent color other than Cobalt (#0050ef), you can copy the config file from ./RetiledSettings/configs/themes.config into ~/.config/Retiled/RetiledSettings/configs/themes.config, then you can open it in a text editor and change the line where it says AccentColor=#0050ef to, for example if you want red, AccentColor=red; other hex color codes can be used as well, but they probably need to use the pound/sharp/hash symbol in front of them rather than the 0x notation; invalid colors just show up as either Cobalt or transparent (?), depending on where it's being displayed. Accent color changes don't apply immediately yet, so they require a restart of affected applications (in this case, basically just RetiledStart). I haven't added support for the light theme yet.

I hope this was clear enough and helped, at least a little.

DrewNaylor commented 1 year ago

I also just remembered that I need to mention that it only gets .desktop files from /usr/share/applications right now, as I haven't even started working on the code to use .desktop files from /home or Flatpaks.