Linux remote control
Control and Command
Turn your Android device into a handy remote control for your Linux machine.
Using an Android device to access and control remote Linux machines is hardly a new idea, and plenty of apps on Google Play can be used to manage Linux machines via SSH or VNC. Instead of using your Android device as a regular SSH client, however, you can turn it into a versatile remote control for your Linux machine. Several packages are available to help you with that, including Linux Remote Control, Remote Control for Linux, and Remote Launcher.
Linux Remote Control
Linux Remote Control (LRC)  is a lightweight solution that consists of two components: a Node.js-based server that runs on the host Linux machine and a web interface optimized for running on mobile devices like Android smartphones and tablets. LRC is easy to deploy and features a polished user-friendly interface, which makes it a perfect tool for less technical users (Figure 1). LRC is distributed as a
.deb package, and it should run on all Ubuntu Linux derivatives.
To install LRC, grab the latest
lrc.deb package from the project's website and install it by running the
sudo dpkg -i /path/to/lrc.deb
command. If you get an error message saying that the xbacklight package is missing, install the package using the
sudo apt-get install xbacklight
command. If you want to use LRC to control music and video players, you have to install the Rhythmbox and Totem Movie Player applications. This can be done by running:
sudo apt-get install rhythmbox totem
Next, move the
lrc-client folder in the
/opt directory to your mobile device. The easiest way to do this is to connect the mobile device to the machine with LRC and then copy the
/opt/lrc-client directory to the desired location on the mobile device. Once you've done that, run the LRC server on the Linux machine using one of these commands:
node /opt/lrc-server/lrc.js nodejs /opt/lrc-server/lrc.js
On your mobile device, open
index.html in directory
lrc-client in a browser. The first thing you need to do is to add a new server account. Press the Add Server button, give the new account a descriptive name, and enter the IP address of the Linux machine running the LRC server. Save the account and tap on the created entry to switch to the dashboard. From here, you access the available interfaces.
The Music interface allows you to control the Rhythmbox music player (Figure 2). From here, you control all key functions such as play and pause a track, go to next or previous track, and adjust volume. The interface also conveniently displays the basic info of the currently playing track. The Video interface provides the same functionality for video playback.
Besides controlling music and video, LRC can handle other tasks, too. The Controls interface can be used to perform basic system actions like shut down and reboot, lock and unlock the desktop, adjust screen brightness, and take a screenshot (Figure 3). You can also use the Send custom command field to enter a command and execute it on the Linux machine by pressing the Send command button.
The Slideshow interface turns your mobile device into a presentation remote control (Figure 4). The Back and Forward buttons emulate the left and right arrow keys, so you can use the interface with practically any presentation software that can be controlled using these keys. If you use a presentation application like LibreOffice Impress, you can also use the dedicated buttons in the interface to start and stop the presentation.
The Mouse button lets you switch to the Touchpad interface, which effectively transforms your mobile device into a remote touchpad. This feature can come in particularly handy when you need to control the desktop during the presentation. From the Touchpad interface, you can control the cursor by dragging your finger on the designated area of the screen, and you can use the dedicated buttons to emulate right and left mouse button clicks. When you are done, you can switch back to the Slideshow interface using the appropriate button.
LRC has a lot going for it. It's easy to deploy, and it uses a polished and functional web-based client interface (i.e., there is no need for a separate Android client app). Because LRC allows you to create multiple accounts, you can use the web interface to connect and control different Linux machines.
Remote Control for Linux
Similar to LRC, Remote Control for Linux (RCL)  is based on the client-server model, but it implements it in a slightly different way. RCL features a native Android app that lets you control a remote Linux machine via a Python-based server script. The server part requires no installation, so you can easily deploy it on any Linux distribution with Python 2.x. To do this, clone the pyRemoteControl GitHub repository  using the
git clone https://github.com/raaapha/pyRemoteControl.git command.
In the terminal, switch to the resulting
pyRemoteControl directory, and make the
PyRemoteControl.py script executable using the
chmod +x PyRemoteControl.py command. Launch the server with the
./PyRemoteControl.py command. Next, install the Remote Control for Linux app from the Google Play store. If you prefer to try the app before buying the paid version, you might want to opt for Remote Control Lite for Linux . Launch the app, enter the IP address of the Linux machine running the PyRemoteControl server and press Connect.
Although the RCL app looks decidedly bare-bones compared with RCL's web-based slick interface, it does the job. The app's functionality is accessed in four screens. The Presentation screen allows you to control presentations (Figure 5). It does so by emulating left and right arrow keys, so it should work with any presentation system that supports these keys. Because the Presentation screen doesn't offer any other buttons, you need to launch and stop presentations manually.
Similar to the Touchpad section in LRC, the Mouse screen in RCL lets you control the cursor and emulate mouse button clicks. RCL also features the Keyboard screen, which gives you a virtual keyboard for text input on the remote Linux machine (Figure 6). Although using the Android device as a keyboard is not the most convenient way to enter text, this functionality can come in handy during presentations. Finally, the Media screen provides a no-frills interface for controlling media playback (Figure 7). It includes the usual assortment of buttons for adjusting volume, playing and pausing tracks, and moving to previous and next tracks.
Although RCL lacks the polish and features of LRC, it has one important advantage: The Python-based server can be easily deployed on practically any Linux distribution. So, if you are not using Ubuntu or its derivatives, and you are looking for a hassle-free solution for controlling your machine remotely, RCL can be a sensible choice.
As the name indicates, Remote Launcher  is not a remote control solution per se. It's a combination of an Android app and a Java-based server that allows you to launch applications and execute commands on a remote Linux machine. So, although Remote Launcher can't be used to command media players, run presentations, and control the cursor, it can be useful for performing simple tasks like launching applications and rebooting the machine.
To deploy Remote Launcher on the target Linux machine, install a Java Runtime Environment (JRE) on it first. Next, grab the latest version of the server component from the project's website and unpack the downloaded archive. In the terminal, switch to the resulting directory and run the
./install.sh command as root. You can then launch the server using the
Alternatively, you can run the server without installing it by running the
./remote-launcher-server command from the unpacked directory. This command starts the server with the graphical interface; however, if the target Linux machine doesn't have a graphical desktop, you can use the
remote-launcher-server -d command to start the server in text mode.
During the first run, you'll be prompted to specify a password. Once the server is up and running, you have to add launchers to it. In the Remote Launcher Server window, choose Edit | Configure launchers and press the Add launcher button. Give the new launcher a name and a brief description and then enter the path to the application's executable in the Path field. For example, a launcher for the VLC media player should look something like Figure 8. You can also use the supplied templates as starting points for creating your own launchers. Choose the desired template drop-down list and edit at will.
With the Remote Launcher server configured and running, install the Remote Launcher app  (or its free version ) on your Android device. Launch the app, press the Add server button, and fill out the required fields. Save the configured connection, and press the Connect button to connect to the Remote Launcher server. You should then see a list of launchers. To start a specific application on the remote machine, tap on the desired launcher (Figure 9). If you opted for the paid version of Remote Launcher, you can also use the app to edit existing launchers and create new ones (Figure 10).
Buy this article as PDF
New release targets Linux professionals.
The Fedora project adds Wayland and Gnome 3.22
CeBIT 2017: Open Source Forum Call for Papers
Long-time Linux antagonist joins the revolution.
Major bug affects Debian/Ubuntu distributions.
Canonical releases the minimal edition for embedded devices, Internet of Things, and cloud deployments.
The new release features improvements across the board, from performance to security.
Two out of three of the new members are women.
More than 5,000 people attended the event.
Linux Magazine will include the best of both magazines.