Interactive graphical desktop environment for LiveG OS.
Licensed by the LiveG Open-Source Licence.
Documentation for gShell can be found on LiveG Docs. Releases for LiveG OS can be found in the LiveG OS repository.
gShell relies on git submodules to make use of various LiveG-developed libraries when a device is offline. To clone the gShell repository, use:
git clone https://github.com/LiveGTech/gShell --recurse-submodules
It is important that when you pull the repo to update libraries, you use:
git pull --recurse-submodules
When you don't need to update the libraries, you can omit the --recurse-submodules
argument. However, it is recommended that you update the libraries locally to ensure compatibility with the latest version of gShell.
Before running gShell, you will need to install its dependencies:
sudo apt install make gcc g++
# Run these if you don't have Node.js installed:
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install 20.5.1
# To run `gshell-xephyr` (optional):
sudo apt install libx11-dev xserver-xephyr
./buildclibs
Install gShell and its dependencies using npm:
npm install
Run gShell on the local machine (in a simulated environment on non-LiveG OS systems), alongside any added arguments:
# On LiveG OS:
./gshell --real
# On Linux:
./gshell
# On other platforms:
npm run gshell
Here's a list of arguments that can be supplied to gShell:
--no-touch-emulation
: Do not emulate a touchscreen as the touch input device. This is useful if the device that is running already has a touchscreen (emulation is not enabled when using the--real
argument).--device-desc-location
: Set the location of the device description file to be used to the path specified.--device-type
: Override the device description file'stype
value with the value specified.--allow-host-control
: Allow gShell to configure the host system's hardware configuration (such as Wi-Fi connections).--allow-xorg-window-management
: Allow gShell to act as an Xorg compositing window manager.--enable-a11y-switch
: Force the Switch Navigation accessibility feature to be enabled.--im-emulation
: Emulate gShell being used as if it were booted on installation media.
To build gShell, first install the dependencies:
sudo apt install libx11-dev gcc-aarch64-linux-gnu g++-aarch64-linux-gnu gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
Then run the builder:
npm run dist
The built AppImage files will be available in the dist
folder.
gShell includes C libraries that are used internally for low-level access to the system. An example is libgslai
, which is the library for gShell Linux app integration, and whose source can be found at src/csrc/libgslai.c
.
The C libraries are automatically compiled for each platform when running npm run dist
.
To force a rebuild of the C libraries by running:
./buildclibs --force