Skip to content

Releases: Petexy/LineXinBar

Alpha v0.9.3

Alpha v0.9.3 Pre-release
Pre-release

Choose a tag to compare

@Petexy Petexy released this 05 Oct 17:15
94b59f3

LineXinBar 0.9.3

Both lxb-compositor and lxb-desktop should always be installed together in order to make the shell work.
lxb-retroarch, lxb-rpcs3 and lxb-heroic are an optional packages and if you are not interested in emulation, nor Epic Games integration they do not need to be installed.

New features

RPCS3 Integration

RetroArch has no PlayStation 3 core, so PlayStation 3 games now have an optional package of their own, lxb-rpcs3, built on RPCS3. With it installed, a PlayStation 3 row stands in Games under RetroArch, with a column of its own. The whole guide is in docs/ps3.md.

  1. Setting up. The first press offers to install RPCS3's Flathub build into your own flatpaks (no password) and the PlayStation 3 system software from Sony's own update server. An RPCS3 already on the machine is used as it is.
  2. Where your games are. The ps3 folder inside RetroArch's ROM folder is used where there is one; otherwise the row asks for a folder, the way RetroArch's does. It can be changed under Settings > Games > PlayStation 3 > Games folder. Disc images, unpacked discs, .pkg packages and downloaded zips holding a package and its licence are all found, along with the games RPCS3 has installed.
  3. Installing packages. A package installs on its first press, its licence with it. A game and the updates downloaded beside it are one row, and one press installs the game and then its updates. A .pkg, or a zip holding one, pressed in Files offers to install as well. The package file is kept.
  4. Encrypted discs get their key on their first press, from Redump's published collection. A key is only kept once it has been checked against the disc itself.
  5. Like the console's own menu. Each game shows its own icon, and its backdrop fills the screen while it is chosen. Every picture comes out of the game itself and is kept in the shell's cache. After a moment on a game, its preview film plays on its card with its music behind it. That music plays even with Start music turned off; only the shell's volume and mute silence it.
  6. Playing. A game starts full screen behind the loading screen, and the guide's Close ends it. The controller in your hand is player 1, and the PS button is Select and Start together, since the guide button always returns to the shell. RPCS3's own questions no longer appear over a game: the Flathub build's "unofficial build" warning, its "Exit Game?", and its first-start welcome.
  7. A game's menu has Uninstall for a game RPCS3 installed (its saves, trophies and licence stay), and Clear cache wherever RPCS3 keeps compiled code and shaders for a game, which can take up gigabytes. Both ask first.
  8. Trophies are in the Trophies column from the start, laid out as Steam's achievements are: Unlocked, Locked, and Hidden at the bottom. Locked trophies are grey, and a hidden trophy's details show when it is pressed. Names are in your language where the game has it.
  9. Settings > Games > PlayStation 3 has Resolution (720p up to 4K), Aspect ratio, Video driver, Frame rate limit, Wait for the screen, Performance overlay, Console language, Trophy notices and Controller buttons. They are RPCS3's own settings, changed in RPCS3's own file, so they always agree with RPCS3's window. Console language follows the shell's language until you choose one. Controller buttons moves any PlayStation 3 button to another button on your pad, for every player.

PlayStation Portable games, as the handheld showed them

PSP games in RetroArch's column now use what they came with, not a cover and screenshot from libretro. The game's own icon (ICON0.PNG) is its card. After a moment on a game, its preview film (ICON1.PMF) plays on the card with its music (SND0.AT3) behind it, as PlayStation 3 games do. That music plays even with Start music turned off; only the shell's volume and mute silence it. The game's backdrop (PIC1.PNG) fills the screen while it is chosen, softened a little because it was drawn for the PSP's small screen, and the game opens on it. The pictures, film and music are read out of .iso, .cso and .pbp files, once per game. A .chd, or a game that has none of its own, keeps libretro's pictures. A cover or background you chose yourself still comes first, and a chosen cover stops the film, which would not fit it.

Power: dimming, sleep and the power button

The machine now rests the way a console does. Put it down, and a little later the screen dims; a little after that it goes dark; leave it long enough and it sleeps. Any key, the mouse, a touch or a button on a controller brings it back where it was. The new Settings > Power page sets it all. The whole guide is in docs/settings.md.

  1. The waits. Dim screen after 2 minutes, Turn off screen after 5, and Sleep after 15 minutes on battery and 1 hour plugged in. A machine without a battery has a single Sleep row. Each can be set from Never up to 3 hours. On a built-in panel, dimming lowers the backlight to a third; other displays are darkened. Turning off fades the display to black and switches it off. The applications on it are paused, and the first press only wakes the screen, without also pressing what the cursor is on.
  2. What keeps the machine awake. A program that asks for the screen to stay on keeps the screen lit and the machine awake: a film player, or a game in front. So do music or a film playing, a Steam or Epic download, files being copied, an update being installed, and anything that asked the system to stay awake. Programs in a Flatpak, such as RPCS3 from Flathub or the games Heroic starts, can now ask too.
  3. A sleep you ask for always happens. Sleep in the power menu, and the power button, put the machine to sleep whatever its programs are holding. A game can keep the machine awake while nobody touches it, but not once you have told it to sleep. The one exception is the system itself being busy, for example a firmware update or another account's work: then a note says the device can't sleep yet. An update being installed from Settings > Updates still holds every power action, as before.
  4. The power button. Choose what a press does: Sleep (the default), Hibernate (where the machine can), Turn off, Power menu or Do nothing. Holding it for a second always opens the power menu. A press while the screen is dark only wakes the screen, and the press that woke the machine is not counted again.
  5. Power mode and battery saver. Where the machine runs power-profiles-daemon, Power mode chooses Power saver, Balanced or Performance, and Battery saver switches to Power saver by itself at 20% battery and back when the charger goes in.
  6. The battery running out is announced at 10% and 5%. At 3% the machine goes to sleep 15 seconds later unless the charger goes in.
  7. These are the device's settings, not an account's. Every account shares them, and so does the login screen: with CEDM 0.9.3 it dims, goes dark and sleeps on the same waits. The power button does what the page says at the login screen and at a text console too. On most machines a press there used to switch the machine off. Changing these settings never asks for a password. The one exception is Battery percentage, below, which stays your own, and which the login screen follows for whichever account is selected.
  8. Battery percentage has moved here from Settings > Appearance, since it is a question about the battery. It is the last row of the page, and is there only on a machine with a battery. It still decides whether the charge is written out in figures beside the battery mark, in the start screen's corner and in the Home menu's header, and it is still off until you turn it on. Your choice from before is kept. Appearance is now Accent color and Theme. The CEDM 0.9.3 login screen shows the battery as well: the same mark in its top-right corner on a machine with a battery, and the figures beside it for whichever account is selected when that account has this on. Turning the row on or off now tells the login screen at once, as changing the accent does, so signing out straight afterwards finds it as you left it. That needs CEDM 0.9.3; an older login screen shows no battery.

Low-end hardware mode

Settings > System > Low-end hardware mode makes the shell usable on a device that cannot keep up with it. It turns on by itself on a machine with no graphics chip (software rendering). On other machines, if the start screen runs below 20 frames a second for 20 seconds, a notice points to the setting once. In the mode, the wallpaper stands still and is drawn once, the Simple look is used, sparkles are off, a film wallpaper stays on its first frame, and the start screen, the Home menu and everything else the shell puts on the screen are drawn 10 times a second while nothing on them moves. While something moves (the highlight, the Home menu's cards, a panel opening, the on-screen keyboard, a notification, a loading screen) they are drawn at the display's own refresh rate, so they glide as smoothly as outside the mode, and what a button press changes is shown at the next refresh. A device that cannot keep up is drawn at half the refresh rate instead, evenly, and gets the full rate back once it shows it can. Measured on the start screen: graphics work went from 44 ms to 2 ms per second, and processor use from 4.3% to 0.75%. Applications built on lxb-toolkit 0.9.3 and the CEDM 0.9.3 login screen follow the same setting.

Using less power when nothing happens

  • The compositor no longer redraws an unchanged display at every refresh. After half a second with nothing new, it checks ten times a second.
  • The shell's own loop wakes much less often when no controller is in use, and ten times a second while the screens are dark. Hidden behind an application, the shell now uses 0.17% of the processor instead of 0.42%.
  • The shell...
Read more

Alpha v0.9.2

Alpha v0.9.2 Pre-release
Pre-release

Choose a tag to compare

@Petexy Petexy released this 28 Sep 18:48
27c877d

LineXinBar 0.9.2

Both lxb-compositor and lxb-desktop should always be installed together in order to make the shell work.
lxb-retroarch and lxb-heroic are an optional packages and if you are not interested in emulation, nor Epic Games integration they do not need to be installed.

A search of everything on the start screen, game discs played straight from the drive, and fixes to controllers and to how the shell works with Steam.

New

  • Search everything from the start screen. Start typing on the start screen, on a keyboard or on the on-screen keyboard, and the categories close up into one button marked Search, with what you type written beside it. Below it is everything on the bar that matches, narrowing with each letter: applications from every category, the Steam, Epic Games and RetroArch rows, every Steam and Epic game (the whole library, whatever its own search is set to), every ROM, the games on the Trophies shelf, and every page of Settings. Each result says where it lives. Your own music, films, photos and folders are left to their own searches.
  1. Enter, or Start on a controller, keeps what you typed and hides the field so you can go through the results. Escape, or B, cancels the search at any point and puts the bar back exactly where it was. Typing again, or opening the on-screen keyboard again, carries on from the kept phrase.
  2. An application, game or ROM starts straight from the results. A place, such as a Settings page, a shelf or the Steam row, takes you to where it lives and opens it there.
  3. Each display has its own search.
  • Play game discs from the drive. With the RetroArch integration installed, put a game disc into an optical drive and the game appears at the top of the RetroArch column, under its own name and on the same cover card as the games in your ROM folder. The cursor moves to it, so pressing A starts it. It plays straight from the disc; nothing is copied first. PlayStation and PlayStation 2, Sega Saturn, Sega CD, PC Engine CD, PC-FX, 3DO and Neo Geo CD discs are recognised. Music CDs, films and data discs are not shown.
  1. The cover is fetched before the game appears. Without an internet connection the game appears without it, and the cover is fetched as soon as the connection is back.
  2. A disc plays like a game from your ROM folder: the same emulator, the same offer to download one if it is missing, and the same question when a BIOS is needed. No ROM folder has to be chosen first.
  3. The game's menu has Eject, and taking the disc out removes the game from the bar. The cursor only moves to a disc that goes in while the start screen is showing and nothing is covering it.
  • Keys that changed on the start screen. Every letter there now starts a search, so W, A, S, D and H, J, K, L no longer move the bar and Y no longer opens the context menu there. Use the arrow keys, and F10, the Menu key or the right mouse button. Shift on its own still opens the friends list, when you let go of it without typing anything. In menus, panels and the guide these keys work as before.

Structural changes

  • GilRs, the library the shell reads controllers through, is now carried in the source tree as third_party/lxb-gilrs and third_party/lxb-gilrs-core (0.11.2 and 0.6.8 with one fix) instead of coming from crates.io. The fix is not in any GilRs release.
  • docs/controls.md now says what the guide-button rule costs. Every controller the shell holds appears twice to other programs: the original, which is silent, listed first, and the copy that works. A game that only uses the first controller it finds may need one picked by hand. RetroArch is still told which is which.
  • The RetroArch helper has a new command, lxb-retroarch disc, which reads a game disc and keeps it where RetroArch can open it for as long as it is in the drive. A PlayStation 2 DVD is handed to RetroArch as the drive itself. A CD becomes a cue sheet and raw image through FUSE, read from the drive as the game asks for it, because RetroArch's own disc reader needs a kernel module (sg) that is not loaded on every system. The RetroArch package now recommends fuse3 for this (optional on Arch). So far CD games have been tested only with a disc image, not with a real CD.
  • Neo Geo CD is now one of the consoles a ROM folder can hold (a folder named neogeocd or ngcd), with a mark of its own.
  • docs/shell.md has a new section on the search, docs/retroarch.md a new section on game discs, and docs/controls.md lists the keys that changed on the start screen.

Bug fixes

  • A controller could freeze in games every few minutes, for 30 seconds at a time, most often with Steam Input on and a game that uses rumble (#2). Rumble the shell played on the controller came back to it and was played again, endlessly, until Steam's own rumble requests were lost and Steam waited 30 seconds for each one. Only the controller's own buttons and sticks now reach the copy games read.
  • A controller turned off and on again, or one that went to sleep, could get no response from the shell until something else was plugged in (#5). Turning a controller off removes it and the shell's copy of it at the same moment, and GilRs missed the second. The fixed GilRs sees both.
  • Steam's window could take the place of a game's loading screen while the game's shaders were being processed (#5). A Steam game's loading screen now waits for the game's own window and is not ended by one of Steam's, unless you asked the shell to open Steam.
  • An Xbox controller connected over Bluetooth, or any other Bluetooth LE controller, was never held by the shell, so its guide button reached every application. It is now held like any other controller.
  • A controller that was plugged in or reconnected could be read by other programs for up to a quarter of a second before the shell took it. The shell now takes it as soon as it can be opened.
  • A game that sent rumble to a newly connected controller at the moment it appeared could freeze every controller for 30 seconds.
  • The button that brought you back from the Home menu to a game, Resume or the game's card, could also be pressed in the game. The game got its controls back while the button was still down and took it for its own press. The shell now releases the button for the game before handing it back, and the game doesn't see it until it's pressed again. This covers the Steam Controller 2 too, except in Steam games using Steam Input, which read that controller directly.
  • After a game such as Tekken 8 had run, Steam (Client), Open Steam or the next Steam game you pressed could sit on a loading screen for up to two minutes. The game writes a line into Steam's log that the shell read as Steam starting again, so it waited for Steam to sign in and then gave Steam its sign-in again, which Steam never answers. Steam now opens straight away.
  • A game with an update that Steam had scheduled for later could stay on "Downloading content" after the update had finished. Steam won't start such a game until its update is done. The loading screen now follows the update and presses Play again by itself, once, when it finishes.
  • With two displays, Steam (Client) pressed on one screen could open on the other, where a game was loading or running, while the screen it was pressed on waited a minute and then said Steam hadn't opened. Steam's window now opens on the screen you pressed on.
  • The Nix package could not be built. nix build and nix run stopped during the tests, and after them while installing the session file (#3, by tajo48). In Nix's build sandbox the tests now find the Wayland library and D-Bus, the portal's test starts its private D-Bus with a configuration of its own instead of the system's, and the session file is installed pointing at the shell's own path. The Arch, Debian and Fedora packages were not affected.

Alpha v0.9.1

Alpha v0.9.1 Pre-release
Pre-release

Choose a tag to compare

@Petexy Petexy released this 25 Sep 13:38
a03cb25

LineXinBar v0.9.1 Alpha

Both lxb-compositor and lxb-desktop should always be installed together in order to make the shell work.
lxb-retroarch and lxb-heroic are an optional packages and if you are not interested in emulation, nor Epic Games integration they do not need to be installed.

New

  • Epic Games, through Heroic Games Launcher, in the new optional lxb-heroic package.
    • An Epic Games row and column appear beside Steam's.
    • Sign in by scanning a QR code with your phone, or on this screen.
    • Install, update, verify, stop and uninstall games from the column, with the same search, sort orders and menus as the Steam column.
    • Epic achievements are in Trophies for every game you own.
    • Cloud saves, a compatibility tool per game, a resolution per game, and playing without a connection.
    • Settings > Games > Epic Games holds the settings. If Heroic is missing, the shell installs it.
    • Without the package, Heroic is an ordinary application.
  • Update LineXinBar in Settings > Updates. Where your distribution's repositories don't carry LineXinBar, CEDM, lxb-toolkit or the apps, they're updated from their GitHub releases. Packages are checked against GitHub's published SHA-256 and installed with your package manager; copies built from source are rebuilt from the new tag.
  • Settings > Storage lists every partition with its free space and a bar, plus the details of each drive.
  • Drives
    • Unmounted drives appear in Files and can be opened, unmounted or safely removed.
    • USB sticks mount when plugged in.
    • Mount at startup keeps an internal drive in the same place on every boot.
  • Steam storage
    • Settings > Games > Steam > Storage shows your libraries and the games in each.
    • Move a game, uninstall it, repair a folder, add a drive or remove a drive.
    • With more than one library, Install games to either asks where each game goes or always uses the library you pick.
  • Sparkles ride the wallpaper's current. Settings > Appearance > Theme > Particles turns them off.

Structural changes

  • The new optional package lxb-heroic depends on flatpak. lxb-compositor and lxb-desktop must still be installed together; lxb-retroarch and lxb-heroic are optional.
  • A new polkit action, org.linexinbar.drives.startup, handles Mount at startup, which writes an /etc/fstab line through UDisks. udisks2 is now recommended, and the NixOS module enables it.
  • The update helper speaks protocol 4. It now contacts api.github.com and github.com for release checks. Restart after updating so the shell and its helper match.
  • The wallpaper is now lxb-wallpaper-v6, and the login hand-over record carries particles. Update CEDM to 0.9.1 at the same time for a seamless hand-over from the login screen.
  • New documentation: docs/epic.md, the Epic Games guide, and docs/security-review.md, the pre-release security review. The review's fixes were already in 0.9.0.
  • The Fedora spec now needs dbus-daemon to build.
  • The Debian build checks every build dependency before it starts, and it builds into target/debian.

Bug fixes

  • On machines with several Steam libraries, every game went to Steam's default library without asking.
  • Applications on a display resting behind OLED protection kept running behind the black screen. They're now paused until the display wakes; music that is playing and the Steam client keep running.
  • An application coming back onto the bar, such as Steam after its Integration switch, showed a generic icon instead of its own.
  • Games started outside Steam through umu were taken for "Steam game 0", so the guide offered to "Close Steam_app_0". They're now named by their window title.
  • A button that can't be pressed now dims its label as well as its mark.
  • Package builds no longer stop without a word when rustup has no default toolchain.

Alpha v0.9.0

Alpha v0.9.0 Pre-release
Pre-release

Choose a tag to compare

@Petexy Petexy released this 23 Sep 09:28
b4a26f0

Both lxb-compositor and lxb-desktop should always be installed together in order to make the shell work.
lxb-retroarch is an optional package and if you are not interested in emulation, it does not need to be installed.