Git Product home page Git Product logo

bolt's Introduction

Table of Contents

Bolt

A third-party launcher for your favourite MMO

Contact

Bolt, as well as the other Linux community projects, is being discussed at 7orm's Discord server. If you want to talk about development or need help getting set up, that's the place to go.

Installing

For Linux/Steamdeck users, Bolt is available on the following package managers:

  • flatpak: com.adamcake.Bolt
  • AUR: bolt-launcher

Others should see the "releases" section on the right.

Building

If you just want to get Bolt installed then you don't need to build it from source! See the "Installing" section.

But if you do want to build from source, the first thing you should know is that Bolt is based on Chromium Embedded Framework (CEF), so to build it, you'll first need either to build or download a binary distribution of CEF.

Clone this repository with submodules:

  • git clone --recurse-submodules https://github.com/Adamcake/Bolt.git

If you accidentally cloned without submodules (no modules directory), you can checkout submodules like so:

  • git submodule update --init --recursive

Place your entire CEF binary distribution folder inside the cef directory with the name "dist", or create a symbolic link with the same effect.

If building on Linux, the following are required:

  • X11 development libraries (libX11-devel or libx11-dev on most package managers)
  • xcb development libraries (libxcb-devel or libxcb1-dev on most package managers)
  • libarchive development libraries (libarchive-devel or libarchive-dev on most package managers)
  • LuaJIT development libraries (luajit-devel or luajit-dev on most package managers) (OPTIONAL - only needed if you want to build the plugin library)

OPTIONAL: build the frontend. Bolt's html frontend is already committed to this repo in app/dist, so building it yourself isn't necessary. If you want to build it from source anyway then see app/README.md for full details on how this build system works, but here's the short version:

  • cd app/
  • npm install -g bun (needs root access on Linux)
  • bun install
  • bun run build
  • cd ..

Now you can start building. Open a command window or terminal in the root directory of this repository, then follow the build instructions for your platform.

Linux

  • cmake -S . -B build -D CMAKE_BUILD_TYPE=Release
    • note: you'll need to specify either -D BOLT_LUAJIT_INCLUDE_DIR=/usr/include/luajit-2.1 OR -D BOLT_SKIP_LIBRARIES=1 depending on whether you want to build the plugin library
    • note: build types "Debug" and "Release" are supported
    • note: if you have Ninja installed, specify -G Ninja for much faster builds
    • note: specify CC and CXX env variables at this stage to direct cmake to the C and C++ compilers you want it to use
  • cmake --build build
  • cmake --install build --prefix build
    • note: the last line creates a staging build in the build directory, this needs to be done between changing and running the program every time
    • note: if a --prefix is not specified, Bolt will be installed to /usr/local, requiring root privileges

After that, the helper script ./build/bolt.sh can be used to launch Bolt from its staging location.

Windows

Windows builds have only been tested using Visual Studio 2022 (a.k.a. Visual Studio 17) in Release mode, per recommendations by chromium/cef. Other configurations may work but have not been tested.

  • optional: if you want to build the plugin library, start by cloning LuaJIT and build it by running msvcbuild.bat.
  • cmake -S . -B build -G "Visual Studio 17" -D CMAKE_BUILD_TYPE=Release
    • note: specify -D BOLT_CEF_INSTALLDIR=[your filepath] to specify the install location when running the final command. Must be an absolute path. The default is C:\bolt-launcher\.
    • note: depending on whether you want the plugin library, you need to specify either -D BOLT_LUAJIT_DIR=path/to/luajit/src/, where the path is the location of lua51.dll and the various lua headers, or -D BOLT_SKIP_LIBRARIES=1
    • note: use -A Win32 for 32-bit targets
  • cmake --build build --config Release
  • cmake --install build/

Run bolt.exe from the install location.

Mac

Not yet supported

Maintenance

When doing the initial cmake setup step, the following options exist which you may find useful. These are to be used for local development only.

  • -D BOLT_HTML_DIR=/some/directory: the location of the launcher's internal webpage content, $PWD/app/dist by default (note: must be an ABSOLUTE path)
  • -D BOLT_DEV_SHOW_DEVTOOLS=1: enables chromium developer tools for the launcher
  • -D BOLT_DEV_LAUNCHER_DIRECTORY=1: instead of embedding the contents of BOLT_HTML_DIR into the output executable, the files will be served from disk at runtime; on supported platforms the launcher will automatically reload the page when those files are changed

Troubleshooting

  • LuaJIT
    • When building, you may run into an error with 'luajit'. website
    • You can either install it by following the instructions on their website (or just via your package manager), or specify -D BOLT_SKIP_LIBRARIES=1 when building.
    • Keep in mind LuaJIT is based on Lua 5.1. If you have a Lua version later than that installed and Bolt is picking it up, the build will fail.
  • libcrypto.so.1.1
    • This comes from openssl1.1, which is reaching deprecation but is still widely used.
    • Install it with your package manager; it is usually called openssl1.1-devel or something similar.
  • JDK17
    • When attempting to launch, you may see an error about 'jdk17' in the console.
    • This can be solved by installing a couple packages with your package manager.
      Something similar to java-17-openjdk & java-17-openjdk-devel.
  • JAVA_HOME
    • Another launch issue you may see in the console.
    • This is solved by setting the JAVA_HOME environment variable.
    • This is usually located in /usr/lib/jvm, so, it might look like this:
      export JAVA_HOME="/usr/lib/jvm/java-17-openjdk-17.0.9.0.9-3.fc39.x86_64"

Contributing

There's not much to say here except that I have fairly high standards, so don't give me code that's messy or unfinished. Use a development environment that supports editorconfig before starting work. If committing to the frontend UI then see app/README.md, especially the Linting & Formatting section, for some UI-specific guidelines. Follow the general etiquette of git, i.e. commit messages 50 characters maximum, all changes in a commit must be relevant to the commit, and all commits in a PR must be relevant to the PR.

Credit

Icons - Kia
Flatpak integration - @nmlynch94
Most of the UI - @smithcol11

Disclaimer

Bolt is an unofficial third-party project and is not in any way affiliated with any of the games or companies it interacts with. Said games and companies are not responsible for any problems with Bolt nor any damage caused by using Bolt.

Bolt is NOT a game client. It simply downloads and runs unmodified game clients. Bolt has absolutely no ability to modify or automate gameplay.

bolt's People

Contributors

adamcake avatar agwhitaker93 avatar jertzukka avatar kmcgurty avatar smithcol11 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  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

bolt's Issues

Problems building and launching RS3 on NixOS?

Using Flatpak on NixOs I manage to get the Bolt launcher running. RuneLite works well, but the rs3 doesn't:

  • it either crashes during 'loading application resources'
  • or it starts up but only has a black screen.

I would like to debug this, but cannot find any crash logs whatsoever. Is this not a thing? Or are they somewhere stored through Bolt?
Thanks!

No audio in runelite client

When launching Runelite through the Bolt launcher, my client doesn't have audio. Standalone, runelite does at least have audio on the login screen (the music), but when launched via Bolt there is not even an audio stream listen in Pulseaudio. I do have the pulseaudio-alsa package installed. Let me know where I can find useful logs for y'all to help solve this issue. I'm running Arch Linux, and it is updated as of today.

Attached is a txt file of the logs output in a shell running bolt from start until the launcher is opened. It looks like the symlink Pulse errors might be a good place to start.

Thanks for your help!
boltLaunchLogs2024-01-24.txt

arRPC doesn't function when using Runelite via Bolt

I'm using a Linux distro - KDE - and use Armcord for my Discord alternative.

It makes use of an arRPC server to display Rich Presence info.

You can find more details here on how it works:

https://github.com/ArmCord/ArmCord

https://github.com/OpenAsar/arrpc

https://github.com/OpenAsar/arrpc/blob/main/examples/bridge_mod.js

With the arRPC server running and using the bridge_mod script, running the Runelite flatpak and/or jar by itself (without bolt) has Runelite show up in my Discord status as expected.

However, when launching it via Bolt, the status doesn't show.

It should be noted that I symlinked my old Runelite installation to where Bolt expects to find the .runelite folder in ~/.var/app/com.adamcake.Bolt/data/bolt-launcher/, but this shouldn't affect anything as that's just user settings.

I tried both using the bolt-included runelite jar, and setting the custom jar location from my previous installation.

Do I need to set something via flatseal for Bolt or otherwise to get this to work properly? Thanks

Stuck on "Loading application resources"

Today when I went to launch the game, it would run but I was unable to do anything in game. I initially thought this was related to some login issue, but those have since be resolved and I was still experiencing the issue. I have since tried reinstalling, but now the game gets stuck at "Loading application resources"
OS: Debian 12
DE: KDE Plasma 5.27.5
Game: RS3
If I run the launcher and game using flatpak run com.adamcake.Bolt I get the following output:

[0525/121957.218430:ERROR:zygote_host_impl_linux.cc(218)] Failed to get Widevine CDM folder for sandbox forwarding
[0525/121957.414526:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
Gtk-Message: 12:19:57.432: Failed to load module "xapp-gtk3-module"
[0525/121957.497204:WARNING:chrome_browser_cloud_management_controller.cc(87)] Could not create policy manager as CBCM is not enabled.
[B] OnContextInitialized
[B] Browser::Window popup constructor, this=93829655209520
[B] OnWindowCreated 0 this=93829655209520
[0525/121957.515624:ERROR:object_proxy.cc(590)] Failed to call method: org.kde.KWallet.isEnabled: object_path= /modules/kwalletd5: org.freedesktop.DBus.Error.ServiceUnknown: org.freedesktop.DBus.Error.ServiceUnknown
[0525/121957.515665:ERROR:kwallet_dbus.cc(107)] Error contacting kwalletd5 (isEnabled)
[0525/121957.515913:ERROR:object_proxy.cc(590)] Failed to call method: org.kde.KLauncher.start_service_by_desktop_name: object_path= /KLauncher: org.freedesktop.DBus.Error.ServiceUnknown: org.freedesktop.DBus.Error.ServiceUnknown
[0525/121957.515936:ERROR:kwallet_dbus.cc(79)] Error contacting klauncher to start kwalletd5
[0525/121957.515946:WARNING:key_storage_linux.cc(219)] OSCrypt tried KWallet but couldn't initialise.
[0525/121957.516157:ERROR:object_proxy.cc(590)] Failed to call method: org.kde.KWallet.close: object_path= /modules/kwalletd5: org.freedesktop.DBus.Error.ServiceUnknown: org.freedesktop.DBus.Error.ServiceUnknown
[0525/121957.516171:ERROR:kwallet_dbus.cc(459)] Error contacting kwalletd5 (close)
[B] OnAfterCreated for browser 1
[B] OnBrowserCreated this=93829655209520 1
[R] OnBrowserCreated for browser 1
[0525/121957.584591:WARNING:sandbox_linux.cc(401)] InitializeSandbox() called with multiple threads in process gpu-process.
[R] OnLoadEnd for browser 1
[0525/121957.669149:ERROR:ev_root_ca_metadata.cc(161)] Failed to decode OID: 0
[B] Successfully spawned game process with pid 102
Gtk-Message: 12:20:03.647: Failed to load module "atk-bridge"

Any ideas?

Legacy Java Client

Is it possible to have the legacy java client added to the launcher as a launch option alongside RuneLite/HDOS?

Reason for obfuscating values as Base64 in CEF configuration?

In src/browser/app.cxx / Browser::App::Execute, the configuration values are encoded with Base64 and then decoded on the JS side. Why are they obfuscated in this manner, and not specified directly as plaintext?

The configuration values are important to look at when auditing this software before use, as they are involved in the login process. Having an extra step to manually decode them to inspect them might cause concern.

Apologies for creating a new issue for this, it seems the best way to ask this question in a way that also will provide the answer to anyone else who might have the same question.

AUR package?

Hi, are there any plans for an AUR package for Arch users? Thanks!

Build Error

Here is what I am running, and here is the error I get.

$ cmake --version
cmake version 3.21.4

CMake suite maintained and supported by Kitware (kitware.com/cmake).
$ cmake -S . -B build -D CMAKE_BUILD_TYPE=Debug
$ cmake --build build
/home/user/workspace/Bolt/src/browser/app.cxx: In member function ‘virtual void Browser::App::OnUncaughtException(CefRefPtr<CefBrowser>, CefRefPtr<CefFrame>, CefRefPtr<CefV8Context>, CefRefPtr<CefV8Exception>, CefRefPtr<CefV8StackTrace>)’:
/home/user/workspace/Bolt/src/browser/app.cxx:62:134: error: no matching function for call to ‘std::basic_string_view<char>::basic_string_view(__gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >, __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >)’
   62 |  const std::string_view source_view_trimmed(source_line.begin() + first_non_whitespace, source_line.begin() + last_non_whitespace + 1);
      |                                                                                                                                      ^
In file included from /usr/include/c++/9/bits/basic_string.h:48,
                 from /usr/include/c++/9/string:55,
                 from /usr/include/c++/9/stdexcept:39,
                 from /usr/include/c++/9/array:39,
                 from /usr/include/c++/9/tuple:39,
                 from /usr/include/c++/9/bits/unique_ptr.h:37,
                 from /usr/include/c++/9/memory:80,
                 from /home/user/workspace/Bolt/cef/dist/include/internal/cef_ptr.h:34,
                 from /home/user/workspace/Bolt/cef/dist/include/cef_base.h:39,
                 from /home/user/workspace/Bolt/cef/dist/include/cef_app.h:41,
                 from /home/user/workspace/Bolt/src/browser/app.hxx:4,
                 from /home/user/workspace/Bolt/src/browser/app.cxx:1:
/usr/include/c++/9/string_view:129:7: note: candidate: ‘constexpr std::basic_string_view<_CharT, _Traits>::basic_string_view(const _CharT*, std::basic_string_view<_CharT, _Traits>::size_type) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_string_view<_CharT, _Traits>::size_type = long unsigned int]’
  129 |       basic_string_view(const _CharT* __str, size_type __len) noexcept
      |       ^~~~~~~~~~~~~~~~~
/usr/include/c++/9/string_view:129:39: note:   no known conversion for argument 1 from ‘__gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >’ to ‘const char*’
  129 |       basic_string_view(const _CharT* __str, size_type __len) noexcept
      |                         ~~~~~~~~~~~~~~^~~~~
/usr/include/c++/9/string_view:123:7: note: candidate: ‘constexpr std::basic_string_view<_CharT, _Traits>::basic_string_view(const _CharT*) [with _CharT = char; _Traits = std::char_traits<char>]’
  123 |       basic_string_view(const _CharT* __str) noexcept
      |       ^~~~~~~~~~~~~~~~~
/usr/include/c++/9/string_view:123:7: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/string_view:120:17: note: candidate: ‘constexpr std::basic_string_view<_CharT, _Traits>::basic_string_view(const std::basic_string_view<_CharT, _Traits>&) [with _CharT = char; _Traits = std::char_traits<char>]’
  120 |       constexpr basic_string_view(const basic_string_view&) noexcept = default;
      |                 ^~~~~~~~~~~~~~~~~
/usr/include/c++/9/string_view:120:17: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/9/string_view:116:7: note: candidate: ‘constexpr std::basic_string_view<_CharT, _Traits>::basic_string_view() [with _CharT = char; _Traits = std::char_traits<char>]’
  116 |       basic_string_view() noexcept
      |       ^~~~~~~~~~~~~~~~~
/usr/include/c++/9/string_view:116:7: note:   candidate expects 0 arguments, 2 provided
/home/user/workspace/Bolt/src/browser/app.cxx:69:30: error: invalid conversion from ‘std::basic_string_view<char>::const_pointer’ {aka ‘const char*’} to ‘std::basic_string_view<char>::size_type’ {aka ‘long unsigned int’} [-fpermissive]
   69 |   source_view_trimmed.data() + (do_trim_end ? exc_end_column + max_dist : source_view_trimmed.size())
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                              |
      |                              std::basic_string_view<char>::const_pointer {aka const char*}
In file included from /usr/include/c++/9/bits/basic_string.h:48,
                 from /usr/include/c++/9/string:55,
                 from /usr/include/c++/9/stdexcept:39,
                 from /usr/include/c++/9/array:39,
                 from /usr/include/c++/9/tuple:39,
                 from /usr/include/c++/9/bits/unique_ptr.h:37,
                 from /usr/include/c++/9/memory:80,
                 from /home/user/workspace/Bolt/cef/dist/include/internal/cef_ptr.h:34,
                 from /home/user/workspace/Bolt/cef/dist/include/cef_base.h:39,
                 from /home/user/workspace/Bolt/cef/dist/include/cef_app.h:41,
                 from /home/user/workspace/Bolt/src/browser/app.hxx:4,
                 from /home/user/workspace/Bolt/src/browser/app.cxx:1:
/usr/include/c++/9/string_view:129:56: note:   initializing argument 2 of ‘constexpr std::basic_string_view<_CharT, _Traits>::basic_string_view(const _CharT*, std::basic_string_view<_CharT, _Traits>::size_type) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_string_view<_CharT, _Traits>::size_type = long unsigned int]’
  129 |       basic_string_view(const _CharT* __str, size_type __len) noexcept
      |                                              ~~~~~~~~~~^~~~~
make[2]: *** [CMakeFiles/bolt.dir/build.make:137: CMakeFiles/bolt.dir/src/browser/app.cxx.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:188: CMakeFiles/bolt.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

Is this safe?

Is it safe to use the launcher?
Sorry for the question, but are my passwords safe?

Allow client arguments or add an option to dump authentication tokens

An important feature for the plugin development.
Currently there is no way to pass the --insecure-write-credentials argument to the client, which makes not possible to dump the credentials.properties file required for login without the Jagex Launcher.

Or at least I do not know how to do it right now.

Minor bug: unable to launch RuneLite on Fedora 39 after adding a new character on first launch

This happened when I did a specific sequence of actions on Fedora 39. I added a new character to my account while the launcher was open and I was logged in, then I closed and re-opened the launcher. When I tried to launch the RuneLite client on my new character, the following error was shown:

Error from https://api.github.com/repos/runelite/launcher/releases: 0:

I tried this on all the characters on my account, and the same error was thrown when attempting to launch RuneLite. HDOS didn't work either (though I didn't record the error message).

Re-launching the client seemed to fix this and RuneLite works now. Just figured I'd report it anyway.

How to customize RuneLite's launch options?

I'm using the Flatpak version of Bolt and works great, but I need to customize its launch options -- namely, passing --scale=2 because otherwise it is too small on my 4K screen, and I see no way of doing that in bolt.

Use native .runelite directory in flatpak?

Sorry if its a dumb question, but is it possible to have the flatpak version of RuneLite use the ~/.runelite instead of ~/.var/app/com.adamcake.Bolt/data/bolt-launcher/.runelite?

This is mainly for easier access to screenshots, so otherwise is it possible to symlink the screenshot folder out into something like ~/Pictures/RuneLite or something like that? I set up this symlink manually anyway, but not sure if it's possible in the flatpak setup natively.

Issues with GPU and HDOS plugin

Bolt worked perfectly for the first few months, all functionality was there.
For the past week I'm unable to enable the GPU or HD plugins, they instantly switch back to off.

Where is the logfile located?

Thanks for the help!

Audio is played via HDMI Instead of Default Audio Device on Arch Linux

bolt-launcer version 0.8.2-1 (from AUR)
OS: Arch linux 6.7.5
Motherboard: X570
GPU: GTX 1080 nvidia 545.29.06-4
Audio drivers: alsa pulseaudio pulseaudio-alsa

Audio output works perfectly with official Runelite launcher although I can't login due to Jagex account requirement.
But whenever I use the bolt-launcher the audio is played in my monitor speakers via HDMI and the audio output doesn't show anywhere in Pavucontrol.
Even when everything is muted the Runelite audio plays on the monitor speakers when launched via bolt-launcher.

I have:
-Reinstalled all audio drivers
-Reset all audio driver related configurations
-In /etc/modprobe.d/blacklist.conf I added lines: blacklist snd_hda_codec_hdmi blacklist snd_hda_codec_nvhdmi
-In /etc/pulse/default.pa I added line: set-default-sink alsa_output.pci-0000_0b_00.4.analog-stereo
-Set default sink to card 1 "$ pacmd set-default-sink 1"
-Tried RuneLite JAR extracted from official appimage but this made no difference

I have 3 monitors: DVI-D, HDMI and one DP. Audio is always played from the HDMI monitor.
I have ran out of ideas what to do. Audio works perfectly fine with the official Runelite launcher.
I didn't find any audio device settings in bolt-launcher, Runelite or Runescape.

$ pactl info | grep "Default Sink"
Default Sink: alsa_output.pci-0000_0b_00.4.analog-stereo
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 3: Generic Digital [Generic Digital]
  Subdevices: 0/1

  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 0: ALC1220 Analog [ALC1220 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 1: ALC1220 Digital [ALC1220 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

$ aplay -L
aplayL.txt

Console log
bolt-launcher.log

I appreciate any help and I'm happy to provide more information as needed

HDOS/runelite not working (weird tzdb.dat location issue)

Attempting to launch HDOS from launcher version 0.9.0, nothing happens, causes this error: (from .local/share/bolt-launcher/hdos/launcher.log )
EDIT: runelite also has this issue
launcher gui says successful

running bolt from AUR on archlinux
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk/bin/java

console output:

[B] Successfully spawned game process with pid 231210
args = []
home = /home/redacted/.local/share/bolt-launcher/hdos
Exception in thread "main" java.lang.Error: java.io.FileNotFoundException: /home/redacted/.local/share/bolt-launcher/java-proxy/lib/tzdb.dat (Not a directory)
        at sun.util.calendar.ZoneInfoFile$1.run(ZoneInfoFile.java:261)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.util.calendar.ZoneInfoFile.<clinit>(ZoneInfoFile.java:251)
        at sun.util.calendar.ZoneInfo.getTimeZone(ZoneInfo.java:589)
        at java.util.TimeZone.getTimeZone(TimeZone.java:560)
        at java.util.TimeZone.setDefaultZone(TimeZone.java:666)
        at java.util.TimeZone.getDefaultRef(TimeZone.java:636)
        at java.util.TimeZone.getDefault(TimeZone.java:625)
        at java.text.SimpleDateFormat.initializeCalendar(SimpleDateFormat.java:657)
        at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:601)
        at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:580)
        at _a._a._a._i.<init>(_i.java:4)
        at _a._a._a._h.<clinit>(_h.java:11)
        at _a._a._a._g._z._a(_z.java:11)
        at _a._a._a._g._z.main(_z.java:1)
        at hdos.Launcher.main(Launcher.java:11)
Caused by: java.io.FileNotFoundException: /home/redacted/.local/share/bolt-launcher/java-proxy/lib/tzdb.dat (Not a directory)
        at java.io.FileInputStream.open0(Native Method)
        at java.io.FileInputStream.open(FileInputStream.java:195)
        at java.io.FileInputStream.<init>(FileInputStream.java:138)
        at sun.util.calendar.ZoneInfoFile$1.run(ZoneInfoFile.java:255)
        ... 15 more

going to .local/share/bolt-launcher/java-proxy/lib shows it's linked to /usr/lib/jvm/java-17-openjdk/bin/java/lib/ (which doesn't exist and can't exist because the java binary is already there...)

Request to update documentation to include fixes for known issues.

I am using Bolt on Arch Linux to play OSRS with RuneLite.

I have been troubleshooting an audio-related issue. This issue seems to be affecting some RuneLite Linux users. I found a solution to this issue mentioned here

I'm not very familiar with the inner workers on java relating to the --configure option that is mentioned in that solution. Although, I was able to confirm, that JVM options that are added via the java --configure option do not apply to instances of runelite that are started through the Bolt Launcher.

I suspect this is due to the fact the Bolt Launcher sets its own JAVA HOME, but unsure.

As I was able to confirm that adding those JVM options to the execution of the RuneLite.jar from outside of Bolt Launcher resolved the "no sound" issue for myself. As the JVM options applied via --configure did not apply to instances of RuneLite.jar that was launched through the Bolt Launcher, the temporary solution that I was able to implement is as follows.

  1. Execute java -jar RuneLite.jar --configure and add the following options to the JVM section:
-Djavax.sound.sampled.Clip=com.sun.media.sound.DirectAudioDeviceProvider
-Djavax.sound.sampled.Port=com.sun.media.sound.PortMixerProvider
-Djavax.sound.sampled.SourceDataLine=com.sun.media.sound.DirectAudioDeviceProvider
-Djavax.sound.sampled.TargetDataLine=com.sun.media.sound.DirectAudioDeviceProvider
  1. Unmute the login screen music and see if this fixes the "no sound" issue, if it does, then proceed to the next steps.
  2. execute archlinux-java get and make note of the java version from the output.
  3. (as root) cd /usr/lib/jvm/<JAVA_VERSION>/bin
  4. (as root) mv ./java ./java-real
  5. (as root) vim ./java and populate it with the following:
#!/bin/bash

echo "$*" | grep -i "\ runelite.jar"

arguments=$(echo "$*" | sed "s/net\.runelite\.client\.RuneLite//g")

if [ "$?" -eq 0 ]; then
        java-real $arguments -Djavax.sound.sampled.Clip=com.sun.media.sound.DirectAudioDeviceProvider -Djavax.sound.sampled.Port=com.sun.media.sound.PortMixerProvider -Djavax.sound.sampled.SourceDataLine=com.sun.media.sound.DirectAudioDeviceProvider -Djavax.sound.sampled.TargetDataLine=com.sun.media.sound.DirectAudioDeviceProvider net.runelite.client.RuneLite
else
        java-real $*
fi

7.(as root) chmod a+x ./java
8. attempt launching RuneLite through the Bolt Launcher.

Notes:
I recognize this solution isn't ideal for several reasons and should only function as a temporary "fix" until the downstream issue with alsa/java/runelite is resolved. Although its not an issue with Bolt Launcher itself, given the current working fix for this issue is a sub par solution, as you have to replace the java binary with a "helper" bash script that intercepts and modifies usage of the java command specifically when used for the RuneLite.jar. This can present issues as if java is updated, or you switch java versions, the solution will stop functioning, additionally, this solution may have an unidentified issue that leads to the execution of other java applications being affected.

With that in mind, below are the instructions for how to "undo" the changes.

(as root)

  1. cd /usr/lib/jvm/<JAVA VERSION>/bin
  2. mv ./java-real ./java
  3. chmod a+x ./java

and if you need to completely reinstall java, please refer to your distributions instructions for that matter.

RS3 Can't Launch on Archlinux

Arch btw

Ryzen 9 3900x
Rx 6900 xt

yay -S bolt-launcher
bolt

I was able to log in successfully. The first time I clicked download it downloaded and installed. It printed out Game launch status: 'OK' and has a bunch of bolt processes hanging (probably from chromium). A process named rs3linux is present but is looks like its hung up doing nothing.

[mkp@arch ~]$ bolt
[0419/021119.651473:WARNING:chrome_browser_cloud_management_controller.cc(87)] Could not create policy manager as CBCM is not enabled.
[0419/021119.653366:ERROR:object_proxy.cc(590)] Failed to call method: org.freedesktop.DBus.Properties.Get: object_path= /org/freedesktop/portal/desktop: org.freedesktop.DBus.Error.InvalidArgs: No such interface “org.freedesktop.portal.FileChooser”
[0419/021119.653409:WARNING:property.cc(144)] version: GetAndBlock: failed.
[0419/021119.653435:ERROR:select_file_dialog_linux_portal.cc(274)] Failed to read portal version property
[0419/021119.653483:WARNING:gtk_ui.cc(143)] Unexpected gtk-xft-rgba "rgba"
[B] OnContextInitialized
[B] Browser::Window popup constructor, this=111131796055424
[B] OnWindowCreated 0 this=111131796055424
[B] OnAfterCreated for browser 1
[B] OnBrowserCreated this=111131796055424 1
[0419/021119.759551:WARNING:sandbox_linux.cc(393)] InitializeSandbox() called with multiple threads in process gpu-process.
[R] OnBrowserCreated for browser 1
[R] OnLoadEnd for browser 1
[0419/021119.889887:ERROR:ev_root_ca_metadata.cc(161)] Failed to decode OID: 0
[B] Successfully spawned game process with pid 1301
/home/mkp/.local/share/bolt-launcher/rs3linux: error while loading shared libraries: libgdk-x11-2.0.so.0: cannot open shared object file: No such file or directory

/lib and /usr/lib (but not /usr/local/lib) has:

./libgdk_pixbuf-2.0.so.0
./libgdk-3.so.0.2409.32
./libgdk_pixbuf-2.0.so
./libgdk-3.so
./libgdk-3.so.0
./libgdk_pixbuf-2.0.so.0.4200.10

So it's understandable that rs3linux couldn't find libgdk-x11-2.0.so.0
Progress was made with yay -S libgtk2

Getting the issue with openssl 1.1 not being found.
Attempting to yay -S openssl-1.1

Okay its splash screening.
Signing in feels very loady, expected.
Logging in to play. [Loading - please wait.] ™️

My issue was resolved with,

yay -S libgtk2 openssl-1.1

Proposal

  • Add section for libgtk2 issue since this is a very vanilla install of x11 arch on cinnamon, if other can me too this
  • Add section promoting sdkman instead of using the aur jdk17, as its nicely packaged and contains actually modern releases while not stealing your JAVA_HOME and masking your /usr/bin/java
curl -s "https://get.sdkman.io" | bash
source \"~/.sdkman/bin/sdkman-init.sh\""
sdk install java 21.0.2-tem

# you can swap java versions easily via
# sdk use java 21.0.2-tem

# [mkp@arch lib]$ which java
# /home/mkp/.sdkman/candidates/java/21.0.2-tem/bin/java
# [mkp@arch lib]$ echo $JAVA_HOME
# /home/mkp/.sdkman/candidates/java/21.0.2-tem

Stuck at "loading application resources"

Heyo, I am running into an issue launching now but was able to get the bolt launcher to work for a while, but for whatever reason after I moved it stopped working. Not sure where I could get any more debug info but here is what I do have.

Stuck at around 20%ish on the "Loading application resources" part of launching. App is not responding at all, including close and settings button. Closing bolt and the terminal does not close the client at all, not sure if it should though. I have checked about every day with the updates but it does not seem to have resolved itself.

OS: Ubuntu 22.04
WM: i3wm
Game: Runescape 3
Output:

▶ flatpak run com.adamcake.Bolt
[1215/220114.821535:ERROR:zygote_host_impl_linux.cc(218)] Failed to get Widevine CDM folder for sandbox forwarding
[1215/220115.122967:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
[1215/220115.277989:WARNING:chrome_browser_cloud_management_controller.cc(87)] Could not create policy manager as CBCM is not enabled.
[B] OnContextInitialized
[B] Browser::Window popup constructor, this=93988777187760
[B] OnWindowCreated 0 this=93988777187760
[B] OnAfterCreated for browser 1
[B] OnBrowserCreated this=93988777187760 1
[R] OnBrowserCreated for browser 1
[R] OnLoadEnd for browser 1
[1215/220115.721263:ERROR:ev_root_ca_metadata.cc(161)] Failed to decode OID: 0
[B] Successfully spawned game process with pid 90
Gtk-Message: 22:01:25.739: Failed to load module "atk-bridge"

Client output:

Messages:
Game launch status: 'OK'
Latest client is already installed
Save-credentials status: OK
Successfully added login for <my account>

Runelite not opening on first install [AUR]

Hiya, I'm using Arch + Hyprland to play OSRS

I've noticed if you install bolt-launcher via the aur (not sure about flatpak version) on a fresh install of arch / never installed bolt-launcher or runelite and you run runelite via bolt for the first time it never starts the runelite client, even though it says it's downloaded runelite and the GUI says "Game launch status: 'OK'' however that isn't the case. To rectify this I've found I needed to install runelite via the aur and then I can run runelite via bolt. I've also tested removing runelite 'pacman -R runelite' and bolt will still launch runelite like you would expect (I assume through the downloaded version bolt does) but I'm not totally sure.

Problem running in wayland.

As the title says, the game is completely frozen. Is there any way to configure an environment variable so that the game runs normally? I tried changing the "data/bolt-launcher/Jagex/launcher/preferences.cfg" file but without any success.

Icon missing from window panel

The bolt launcher icon shows up with the applets on the right panel, but instead of there being an icon for the active window it's a thin transparent box. I can pin the bolt launcher to the panel and click that, but it still opens up under that thin box. Runelite will also open up as the thin box but has the regular icon when run without the bolt launcher.

I'm using Linux Mint 21.3. When I set the button label to "Window Title" it shows as full width with no icon, but I'd prefer to have icons only in the panel.

image

Game launch status: 'JAVA_HOME environment variable is required to run HDOS'

I've been using bolt just fine for months, installed from the AUR, but now I'm getting the following errors when trying to launch HDOS. I did a complete reinstall and it's still giving me the error.

Game launch status: 'JAVA_HOME environment variable is required to run HDOS'

Latest JAR is already installed

No sound using Runelite (Pulseaudio)

When launching Runelite I get no sound output, and when running Bolt from the terminal I see the following messages:

2023-12-27 00:26:22 CST [main] INFO  n.r.client.config.ConfigManager - Profile '$rsprofile' is up to date
Failed to create secure directory (/run/user/1000/bolt-runelite-ucFzrN/pulse): Too many levels of symbolic links
Failed to create secure directory (/run/user/1000/bolt-runelite-ucFzrN/pulse): Too many levels of symbolic links
Failed to create secure directory (/run/user/1000/bolt-runelite-ucFzrN/pulse): Too many levels of symbolic links
Failed to create secure directory (/run/user/1000/bolt-runelite-ucFzrN/pulse): Too many levels of symbolic links
Failed to create secure directory (/run/user/1000/bolt-runelite-ucFzrN/pulse): Too many levels of symbolic links
Failed to create secure directory (/run/user/1000/bolt-runelite-ucFzrN/pulse): Too many levels of symbolic links
Failed to create secure directory (/run/user/1000/bolt-runelite-ucFzrN/pulse): Too many levels of symbolic links
Failed to create secure directory (/run/user/1000/bolt-runelite-ucFzrN/pulse): Too many levels of symbolic links
Failed to create secure directory (/run/user/1000/bolt-runelite-ucFzrN/pulse): Too many levels of symbolic links
Failed to create secure directory (/run/user/1000/bolt-runelite-ucFzrN/pulse): Too many levels of symbolic links
Failed to create secure directory (/run/user/1000/bolt-runelite-ucFzrN/pulse): Too many levels of symbolic links
Failed to create secure directory (/run/user/1000/bolt-runelite-ucFzrN/pulse): Too many levels of symbolic links
Failed to create secure directory (/run/user/1000/bolt-runelite-ucFzrN/pulse): Too many levels of symbolic links
Failed to create secure directory (/run/user/1000/bolt-runelite-ucFzrN/pulse): Too many levels of symbolic links
Failed to create secure directory (/run/user/1000/bolt-runelite-ucFzrN/pulse): Too many levels of symbolic links
Failed to create secure directory (/run/user/1000/bolt-runelite-ucFzrN/pulse): Too many levels of symbolic links
Failed to create secure directory (/run/user/1000/bolt-runelite-ucFzrN/pulse): Too many levels of symbolic links
Failed to create secure directory (/run/user/1000/bolt-runelite-ucFzrN/pulse): Too many levels of symbolic links
Failed to create secure directory (/run/user/1000/bolt-runelite-ucFzrN/pulse): Too many levels of symbolic links
Failed to create secure directory (/run/user/1000/bolt-runelite-ucFzrN/pulse): Too many levels of symbolic links
Failed to create secure directory (/run/user/1000/bolt-runelite-ucFzrN/pulse): Too many levels of symbolic links
Failed to create secure directory (/run/user/1000/bolt-runelite-ucFzrN/pulse): Too many levels of symbolic links
2023-12-27 00:26:23 CST [main] INFO  n.r.c.plugins.kourendlibrary.Library - Library is now reset

Checking out the directory structure, it looks like this:

[username@BlackFox bolt-runelite-ucFzrN]$ ls -ln /run/user/1000/bolt-runelite-ucFzrN
total 0
lrwxrwxrwx 1 1000 1000 21 Dec 27 00:26 at-spi -> /run/user/1000/at-spi
lrwxrwxrwx 1 1000 1000 35 Dec 27 00:26 bolt-runelite-7GtAIl -> /run/user/1000/bolt-runelite-7GtAIl
lrwxrwxrwx 1 1000 1000 35 Dec 27 00:26 bolt-runelite-gqpzaR -> /run/user/1000/bolt-runelite-gqpzaR
lrwxrwxrwx 1 1000 1000 35 Dec 27 00:26 bolt-runelite-T6a7C7 -> /run/user/1000/bolt-runelite-T6a7C7
lrwxrwxrwx 1 1000 1000 35 Dec 27 00:26 bolt-runelite-ucFzrN -> /run/user/1000/bolt-runelite-ucFzrN
lrwxrwxrwx 1 1000 1000 18 Dec 27 00:26 bus -> /run/user/1000/bus
lrwxrwxrwx 1 1000 1000 25 Dec 27 00:26 ccache-tmp -> /run/user/1000/ccache-tmp
lrwxrwxrwx 1 1000 1000 21 Dec 27 00:26 dbus-1 -> /run/user/1000/dbus-1
lrwxrwxrwx 1 1000 1000 20 Dec 27 00:26 dconf -> /run/user/1000/dconf
lrwxrwxrwx 1 1000 1000 28 Dec 27 00:26 discord-ipc-0 -> /run/user/1000/discord-ipc-0
lrwxrwxrwx 1 1000 1000 28 Dec 27 00:26 discord-ipc-1 -> /run/user/1000/discord-ipc-1
lrwxrwxrwx 1 1000 1000 18 Dec 27 00:26 doc -> /run/user/1000/doc
lrwxrwxrwx 1 1000 1000 18 Dec 27 00:26 gcr -> /run/user/1000/gcr
lrwxrwxrwx 1 1000 1000 20 Dec 27 00:26 gnupg -> /run/user/1000/gnupg
lrwxrwxrwx 1 1000 1000 19 Dec 27 00:26 gvfs -> /run/user/1000/gvfs
lrwxrwxrwx 1 1000 1000 24 Dec 27 00:26 gvfs-burn -> /run/user/1000/gvfs-burn
lrwxrwxrwx 1 1000 1000 20 Dec 27 00:26 gvfsd -> /run/user/1000/gvfsd
lrwxrwxrwx 1 1000 1000 27 Dec 27 00:26 ICEauthority -> /run/user/1000/ICEauthority
lrwxrwxrwx 1 1000 1000 22 Dec 27 00:26 KeePass -> /run/user/1000/KeePass
lrwxrwxrwx 1 1000 1000 22 Dec 27 00:26 keyring -> /run/user/1000/keyring
lrwxrwxrwx 1 1000 1000 22 Dec 27 00:26 p11-kit -> /run/user/1000/p11-kit
lrwxrwxrwx 1 1000 1000 25 Dec 27 00:26 pipewire-0 -> /run/user/1000/pipewire-0
lrwxrwxrwx 1 1000 1000 30 Dec 27 00:26 pipewire-0.lock -> /run/user/1000/pipewire-0.lock
lrwxrwxrwx 1 1000 1000 33 Dec 27 00:26 pipewire-0-manager -> /run/user/1000/pipewire-0-manager
lrwxrwxrwx 1 1000 1000 38 Dec 27 00:26 pipewire-0-manager.lock -> /run/user/1000/pipewire-0-manager.lock
lrwxrwxrwx 1 1000 1000 20 Dec 27 00:26 pulse -> /run/user/1000/pulse
lrwxrwxrwx 1 1000 1000 22 Dec 27 00:26 systemd -> /run/user/1000/systemd
[username@BlackFox bolt-runelite-ucFzrN]$ ls -ln /run/user/1000
total 4
drwx------ 2 1000 1000  60 Dec 22 22:40 at-spi
drwx------ 2 1000 1000 520 Dec 27 00:20 bolt-runelite-7GtAIl
drwx------ 2 1000 1000 540 Dec 27 00:23 bolt-runelite-gqpzaR
drwx------ 2 1000 1000 560 Dec 27 00:24 bolt-runelite-T6a7C7
drwx------ 2 1000 1000 580 Dec 27 00:26 bolt-runelite-ucFzrN
srw-rw-rw- 1 1000 1000   0 Dec 22 22:40 bus
drwxr-xr-x 2 1000 1000  80 Dec 27 00:15 ccache-tmp
drwx------ 3 1000 1000  60 Dec 22 22:40 dbus-1
drwx------ 2 1000 1000  40 Dec 27 00:24 dconf
srwxr-xr-x 1 1000 1000   0 Dec 25 21:42 discord-ipc-0
srwxr-xr-x 1 1000 1000   0 Dec 23 16:45 discord-ipc-1
dr-x------ 2 1000 1000   0 Dec 31  1969 doc
drwx------ 2 1000 1000  60 Dec 22 22:40 gcr
drwx------ 2 1000 1000 160 Dec 22 22:40 gnupg
dr-x------ 2 1000 1000   0 Dec 22 22:40 gvfs
drwx------ 2 1000 1000  40 Dec 22 22:40 gvfs-burn
drwx------ 2 1000 1000  40 Dec 25 01:19 gvfsd
-rw------- 1 1000 1000 326 Dec 22 22:40 ICEauthority
drwxr-xr-x 2 1000 1000  80 Dec 22 22:40 KeePass
drwx------ 2 1000 1000  80 Dec 22 22:40 keyring
drwxr-xr-x 2 1000 1000  60 Dec 22 22:40 p11-kit
srw-rw-rw- 1 1000 1000   0 Dec 22 22:40 pipewire-0
-rw-r----- 1 1000 1000   0 Dec 22 22:40 pipewire-0.lock
srw-rw-rw- 1 1000 1000   0 Dec 22 22:40 pipewire-0-manager
-rw-r----- 1 1000 1000   0 Dec 22 22:40 pipewire-0-manager.lock
drwx------ 2 1000 1000 100 Dec 25 12:03 pulse
drwxr-xr-x 6 1000 1000 160 Dec 22 22:40 systemd

On a sidenote, it seems it doesn't clean up old symbolic links.

Fails to Build on Arch Linux via AUR installation due to missing fmt9 dependency

$ makepkg -si PKGBUILD
==> Making package: bolt-launcher 0.8.2-3 (Tue Apr 16 11:34:00 2024)
==> Checking runtime dependencies...
==> Installing missing dependencies...
error: target not found: fmt9
==> ERROR: 'pacman' failed to install missing dependencies.
==> Missing dependencies:
  -> fmt9
==> Checking buildtime dependencies...
==> ERROR: Could not resolve all dependencies.

Notification Settings Force not working

Ubuntu 22.04 LTS

On osrs, using runelite, activating in the pluging "RuneLite" -> "Notification Settings" -> "Request focus" -> "Force" is not forcing the window on top. RuneLite is taking the focus, but stays under other window.

It should bring the window on top of every other window.

CMake Error on Windows

I've tried following the README steps for a windows build but am receiving the following error when executing
cmake -S . -B build -G "Visual Studio 17"

-- Selecting Windows SDK version 10.0.22621.0 to target Windows 10.0.26100.
CMake Error at CMakeLists.txt:371 (target_include_directories):
  Cannot specify include directories for target "bolt-plugin" which is not
  built by this project.


CMake Error at CMakeLists.txt:372 (target_link_libraries):
  Cannot specify link libraries for target "bolt-plugin" which is not built
  by this project.


-- Configuring incomplete, errors occurred!```

Trouble with shimmed java, and a lack of feedback

I have to use different versions of java for work, so I use asdf-vm to help switch versions. I also use fish as my login shell, which might be complicating things.

If I don't have JAVA_HOME set, Runelite silently fails to launch, and I see unknown command: java. Perhaps you have to reshim?
Screenshot_20240221_010846

Which suggests Bolt is picking up the shimmed java that asdf provides from my PATH, but can't use it because it's not being initialized in the forked process Bolt starts. I don't have any experience with systems level development, but I'm guessing that's expected behaviour.

I didn't have JAVA_HOME set when I first installed Bolt, and it took me an embarrassingly long amount of time to figure out doing so would fix things. Similarly, having JAVA_HOME set to something invalid makes Bolt silently error.

All that to say, it would be nice if Bolt gave me some insight into why it's not launching Runelite, or even tell me it's failing to launch in the first place.

I'm happy to have a go at adding some error messages to the UI, if that's okay with you, but the last time I touched C++ was over a decade ago in university so it may take me a while

AUR package has problems with Arch default environment variables

I installed the AUR package and encountered a couple of issues:

  1. Runelite links such as login or the Discord button do not work, fixed by setting XDG_* envvars
  2. OSHD launch complains about JAVA_HOME

As far as I know by default none of these are set in Arch. JAVA_HOME used to be set, but it seems Arch just sets PATH with the archlinux-java script. The XDG variables are, as far as I know, supposed to have defaults when they are not set.

They are also mentioned in the Arch wiki, and after launching with ~ $ XDG_CONFIG_HOME=$HOME/.config XDG_CACHE_HOME=$HOME/.cache XDG_DATA_HOME=$HOME/.local/share XDG_STATE_HOME=$HOME/.local/state bolt Runelite links seem to function.

Are the XDG variables perhaps not being set by default? #21 is possibly about the same issue.

Tray Icon Not Appearing in Wayland

Hi, I run Arch with Hyprland and this is a minor annoyance but when I launch RuneLite via Bolt I tend to exit Bolt right after with my keyboard shortcut.

Unfortunately, there is no tray icon or "exit" button in Bolt, and the process stays running unless I kill it with pkill -9 bolt.

I'm not sure if there's supposed to be a tray icon that is not appearing in Hyprland, and that's the reason it stays running in the background, but it is a minor annoyance of mine. I don't like to keep the Bolt window open once I've launched RuneLite.

Would be great to have an "exit" button in Bolt that clean exits and/or fix the minimize to tray functionality (if that is indeed supposed to be a feature).

Can't get past the CloudFlare robot check

When logging in there's a "Are you a robot?" CloudFlare captcha. Whenever I click the verification button, it loads for a moment and then the button comes back as if I had not clicked it.

This text gets printed out by Bolt to the terminal whenever the CloudFlare check fails

[R] OnLoadEnd for browser 3
[0506/193100.452764:WARNING:browser_info.cc(309)] Returning a speculative frame for 64424509448 [15,8]
[R] OnBrowserCreated for browser 3
[0506/193100.505459:WARNING:browser_info.cc(309)] Returning a speculative frame for 64424509448 [15,8]
[0506/193100.505564:WARNING:browser_info.cc(309)] Returning a speculative frame for 64424509448 [15,8]
[0506/193100.505599:WARNING:browser_info.cc(309)] Returning a speculative frame for 64424509448 [15,8]
[0506/193100.505627:WARNING:browser_info.cc(309)] Returning a speculative frame for 64424509448 [15,8]

I built Bolt from source on Gentoo with the minimal and ungoogled CEF binary build

Invisible Window [Wayland/NVIDIA]

Hello,

I am using Arch Linux with Bolt installed from the AUR. I have recently updated my system and now whenever I launch Bolt the window is invisible. Below is a screenshot of the window and output from launching it in the terminal. It works fine on X so it might be some weird new NVIDIA bug on Wayland. Let me know if you need more info provided.

Kernel: 6.7.5-arch1-1
OS: Gnome 45.4
NVIDIA Driver: 545.29.06

$ bolt
[0222/103545.463725:WARNING:chrome_browser_cloud_management_controller.cc(87)] Could not create policy manager as CBCM is not enabled.
[B] OnContextInitialized
[B] Browser::Window popup constructor, this=106430610144080
[B] OnWindowCreated 0 this=106430610144080
[B] OnAfterCreated for browser 1
[B] OnBrowserCreated this=106430610144080 1
[R] OnBrowserCreated for browser 1
MESA-LOADER: failed to open nvidia-drm: /usr/lib/gbm/nvidia-drm_gbm.so: cannot open shared object file: Permission denied (search paths /usr/lib/gbm, suffix _gbm)
MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to open nvidia-drm: /usr/lib/dri/nvidia-drm_dri.so: cannot open shared object file: Permission denied (search paths /usr/lib/dri, suffix _dri)
MESA-LOADER: failed to open kms_swrast: /usr/lib/dri/kms_swrast_dri.so: cannot open shared object file: Permission denied (search paths /usr/lib/dri, suffix _dri)
MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so: cannot open shared object file: Permission denied (search paths /usr/lib/dri, suffix _dri)
[R] OnLoadEnd for browser 1
[0222/103545.659410:ERROR:ev_root_ca_metadata.cc(161)] Failed to decode OID: 0

Screenshot from 2024-02-22 10-36-30

Flatpak version crashes on Fedora with KDE and KWallet

Recently switched from gnome-keyring to KWallet and the launcher seems to crash with KWallet

flatpak run com.adamcake.Bolt
[0612/113252.667035:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
[0612/113252.692614:WARNING:chrome_browser_cloud_management_controller.cc(87)] Could not create policy manager as CBCM is not enabled.
[B] OnContextInitialized
[B] Browser::Window popup constructor, this=94093377103840
[B] OnWindowCreated 0 this=94093377103840
[0612/113252.698804:ERROR:object_proxy.cc(590)] Failed to call method: org.kde.KWallet.isEnabled: object_path= /modules/kwalletd6: org.freedesktop.DBus.Error.ServiceUnknown: org.freedesktop.DBus.Error.ServiceUnknown
[0612/113252.698832:ERROR:kwallet_dbus.cc(107)] Error contacting kwalletd6 (isEnabled)
[0612/113252.698922:ERROR:object_proxy.cc(590)] Failed to call method: org.kde.KLauncher.start_service_by_desktop_name: object_path= /KLauncher: org.freedesktop.DBus.Error.ServiceUnknown: org.freedesktop.DBus.Error.ServiceUnknown
[0612/113252.698929:ERROR:kwallet_dbus.cc(79)] Error contacting klauncher to start kwalletd6
[0612/113252.698933:WARNING:key_storage_linux.cc(219)] OSCrypt tried KWallet but couldn't initialise.
[0612/113252.698997:ERROR:object_proxy.cc(590)] Failed to call method: org.kde.KWallet.close: object_path= /modules/kwalletd6: org.freedesktop.DBus.Error.ServiceUnknown: org.freedesktop.DBus.Error.ServiceUnknown
[0612/113252.699002:ERROR:kwallet_dbus.cc(459)] Error contacting kwalletd6 (close)
[B] OnAfterCreated for browser 1
[B] OnBrowserCreated this=94093377103840 1
[R] OnBrowserCreated for browser 1
[0612/113252.744109:WARNING:sandbox_linux.cc(401)] InitializeSandbox() called with multiple threads in process gpu-process.
[R] OnLoadEnd for browser 1
[0612/113252.792131:ERROR:ev_root_ca_metadata.cc(161)] Failed to decode OID: 0
[0612/113255.015230:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 1 times!
[0612/113256.766576:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 2 times!

OS: Fedora Linux 40 x86_64
Kernel: Linux 6.8.11-300.fc40.x86_64
DE: KDE Plasma 6.0.5

Some way to quickly launch to a specific character? (Feature request/feature offer)

I'm interested in writing in a way to launch runelite through bolt without messing with the interface, just through command line arguments, for one click launching through a menu or something silly like a i3wm keybinding.

I've already written this into my one-python-file launcher, and i'd be interested in trying to write it right into Bolt, so I wanted to ask for some direction or feedback on how the original author would want this done (just calling an existing bolt binary with arguments, using some kind of inter-process communication with the bolt daemon, writing a new stand-alone program that can read the bolt config and do what it needs to do from there, or something else) or if this would even be possible in a satisfactory way.

CEF binaries are out of date

The CEF binaries listed at https://adamcake.com/cef (linked in the readme) are out of date, causing the Cloudflare robot check to fail. Spotify offers the most recent binaries here if you'd like to link to these instead.

Chrome 114 is from May 2023, the latest stable is version 126. Not sure of what version is packed with the flatpak app?

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.