support

About Support Team

This author has not yet filled in any details.
So far Support Team has created 33 blog entries.

You can now seamlessly copy and paste an image between Windows and Linux GUI apps with X410

2.7.0

X410 version 2.7.0 is submitted to Microsoft Store and should be available soon! Here are some of its highlights.

  • Just like plain text, you can now also share images (BMP/PNG) and HTML text between Windows and Linux GUI apps via clipboard.

    X410 natively recognizes and transfers raw image data in BMP and PNG formats. However, Windows and Linux automatically convert many image formats such as JPG to BMP format. Hence you should be able to freely copy and paste most images between the two OS's via X410.

    Please keep in mind that the clipboard sharing in X410 is utilizing network communication functions instead of system memories. So if your clipboard data is too big (ex. a high resolution BMP image) or your Linux app is running over a slow X11 forwarding, you may not be able to paste the data due to the delays and timeouts for synchronizing the two clipboards.

  • Keyboard layout files are updated to 'xkeyboard-config' version 2.27. You should no longer receive errors such as 'Error loading new keyboard description' while setting up your keyboard layout via 'setxkbmap'.
2020-03-12T15:02:54+00:00October 9, 2019|

Linux GUI apps in Hyper-V virtual machines can now be opened on Windows with X410 via VSOCK

2.6.0

X410 version 2.6.0 is now available in Microsoft Store! Here are some of its highlights.

  • X410 can now be used with Hyper-V Linux virtual machines for opening their GUI desktop via VSOCK (virtual socket).

    By using VSOCK, you don't need to worry about configuring firewall or IP address. As X410 seamlessly supports Windowed Apps mode and shared clipboard, you can also use Linux GUI apps side by side with Windows apps instead of confining them to a Hyper-V console. Moreover, your virtual machines will be using less system resources since you don't need to run XRDP or other GUI desktop separately for each Linux virtual machine.

    For an example of using this new feature, please read 'Using X410 with Hyper-V Linux Virtual Machines via VSOCK'.

  • X410 now accepts a command-line argument (:displaynumber) for designating a display number. You can concurrently run X410 for each display number and maintain separate settings. For example, if you want to start X410 for display number 1, you can use the following command from PowerShell or Windows Command Prompt:
    x410.exe :1
  • 'Shared Clipboard' options are added to the X410 tray icon context menu. You can use the new options to enable or disable transferring selected text between Windows and Linux GUI apps.
  • Improved shared clipboard data handling
  • Improved rendering speed in Floating Desktop mode
2020-03-12T15:01:38+00:00July 7, 2019|

X11 Forwarding over SSH

If you want to use Linux GUI apps in a remote server from your Windows 10 computer, you can use the X11 forwarding feature in SSH servers such as OpenSSH. In order to use this feature, you first need to check if your server can be connected via SSH clients and its X11 forwarding feature is enabled. You can then use any SSH client that also supports X11 forwarding.

You should be able to find the X11 forwarding option in most SSH clients. For example, our Token2Shell has this option as 'Enable X11 Forwarding' under its 'connection' settings. In an OpenSSH client, you can enable it with a '-X' or '-Y' command argument.

After logging into your server with X11 forwarding via an SSH client, just make sure X410 is running before launching Linux GUI apps in your server.

Please note that when you connect to your server with X11 forwarding, the server automatically sets the 'DISPLAY' environment variable. So if you modified your login script to manually set the 'DISPLAY' environment variable, you should remove it and use the automatically provided one.

Please also note that the X11 forwarding is suitable for redirecting individual apps instead of the whole Linux GUI desktop. Even though it's very possible to redirect a full Linux desktop environment with X11 forwarding, we recommend using different tools such as RDP or VNC for such purpose. Although you cannot use X410 with such protocols and need a new setup, they should be able to provide faster response time since they are designed and optimized for such usage scenarios.

2020-03-05T03:55:22+00:00April 5, 2019|

X410 now supports public access mode for directly connecting from any computer

2.4.0 / 2.5.0
  • Improved handling drag-and-drop and popup menu positions on HiDPI screens
  • Window stacking problems in Windowed Apps mode have been fixed
  • Now supports public access mode that can be used for directly connecting to X410 from local virtual machines or trusted remote computers. Since any app can connect to X410 in this mode, please use Windows Firewall to properly limit hosts that can access X410.
2020-03-12T15:00:39+00:00January 30, 2019|

Selecting a Keyboard Layout

When you launch X410, it automatically selects a keyboard layout that will be used for Linux GUI apps based on Windows settings. X410 currently doesn't have an option to change this initially selected keyboard layout while it's running. However, you can change it from Linux command-line or Linux desktop environment.

Please note that some languages (ex. Chinese/Japanese/Korean) require an input method editor (IME) in order to properly enter full characters. This post doesn't consider such IME's and only focuses on selecting a keyboard layout.

Desktop Mode

If you're running a full Linux desktop environment such as Xfce, it should already have its own keyboard settings section. For example, the following screenshot shows the keyboard settings in Xfce. You shouldn't have any problem setting up the keyboard via those options.

Please note that when selecting a keyboard combination for switching layouts, make sure it's not already used by other apps or Windows.

Windowed Apps Mode

If you launched X410 in Windowed Apps mode, you can use "setxkbmap" from Linux command-line.

setxkbmap [ args ] [ layout [ variant [ option ...  ] ] ]



If you're using a Debian based Linux distro such as Ubuntu and getting an error message about not finding the setxkbmap command, try installing "x11-xkb-utils" package. You also need to install "xkb-data" package for the actual keyboard layout data.

sudo apt install x11-xkb-utils xkb-data



To view a full list of available keyboard layouts and options, you can use the following command:

man xkeyboard-config



Examples

  • Query the current keyboard layout settings
    setxkbmap -query
    
    
    	
  • Changing the keyboard layout to DVORAK
    setxkbmap us -variant dvorak
    
    
    	
  • Toggling between two keyboard layouts: English (US) and Russian
    setxkbmap us,ru -option grp:ctrl_shift_toggle
    
    
    	

After finding suitable keyboard layout arguments for setxkbmap, you can add the command to your login script (ex. ~/.bashrc) or create a separate Windows batch file (*.bat) that launches X410 and executes the command.

C:\wsl\ubuntu1804_x410_dvorak.bat
REM ### Start X410 in Windowed Apps Mode 
start /B x410.exe /wm

REM ### Set the keyboard layout to English (US) DVORAK
ubuntu1804.exe run "DISPLAY=127.0.0.1:0.0 setxkbmap us -variant dvorak"




This batch file briefly opens a Command Prompt window. If you want to hide it, you can use the method described in "Running Xfce Desktop on Kali Linux" (Windows shortcut method) or "Creating a Windows Shortcut for Linux GUI Desktop" (Visual Basic script method).





2020-03-24T07:31:07+00:00January 24, 2019|

Get your sidekick for easily managing and launching Linux GUI apps (WSL)

INGREDIENTS

X410 supports Windowed Apps mode and it can be used to seamlessly intermix apps from Windows and Windows Subsystem for Linux (WSL). The following demonstrates a way to simplify managing Linux GUI apps and various UI settings with a minimal set of Xfce4 components.

PREPARATION

We'll be using Ubuntu 18.04 from Microsoft Store but you should also be able to achieve a similar result with any WSL distribution by following the steps described below.

After installing Ubuntu 18.04, execute the following command line first to have the installed Ubuntu binaries and data files up to date.

sudo apt update && sudo apt -y upgrade


STEP 1 Install Xfce4

There are numerous Linux GUI desktop environments, however, we're using Xfce4 for this article as it works well with WSL and its components can be individually launched.

Execute the following command to install Xfce4 desktop environment and its default terminal emulator.

sudo apt install xfce4 xfce4-terminal



When you install Xfce4 package, it also installs Xfce4 related components that are ineffective or causing unexpected behavior for WSL. You should simply remove the following packages:

sudo apt purge xfce4-power-manager xscreensaver gnome-screensaver light-locker



STEP 2 Launch X410 in Windowed Apps mode

X410 can also be launched in Windowed Apps mode using a command-line switch from a Windows Command Prompt.

x410.exe /wm





TEST DRIVING

STEP 3 Set DISPLAY environment variable

In order for Linux GUI apps and modules to render their output on X410, they need to know where X410 can be found. The DISPLAY environment variable is used for that purpose and it should be set to '127.0.0.1:0.0' if you're using default settings in X410. You can also get this information from the tooltip popup for X410 tray icon.

export DISPLAY=127.0.0.1:0.0


STEP 4 Start only core Xfce4 components

Xfce4 is comprised of many modules and when you launch "xfce4-session" or "startxfce4", it automatically loads them as needed. However, for our purpose, we only need two core components:

  • Settings Daemon (xfsettingsd)

    When you first launch this daemon, it loads all the settings you previously configured for Xfce4 (ex. UI themes, mouse pointer size, keyboard layout and etc.). It'll be running in background and when you make changes to the Xfce4 settings, they'll be automatically applied to the all running X-Window apps.

  • Panel (xfce4-panel)

    We'll be customizing this panel and use it for launching Linux GUI apps.

Execute the following command line to start the core Xfce4 components listed above.

xfsettingsd --sm-client-disable; xfce4-panel --sm-client-disable --disable-wm-check &





STEP 5 Adjust the layout and app shortcuts for Xfce4 panels

When you first launch xfce4-panel, it'll ask you if you want to create default panels. When you answer "Yes", two panels are created; one for listing currently running apps and the other for launching installed apps.

We deleted the first panel and moved the second one to the right side of the Windows desktop. We also made some changes to the shortcut buttons for the panel.

Please note that since we are not using xfce4-session, the "Log Out" menu won't work; you cannot close Xfce4 using a menu from the Xfce4 panel. When you want to terminate Xfce4, you can just shutdown X410 by using its "Exit" menu.

TIPS AND TRICKS

  • If you're using Tilix and want to set it as a default terminal emulator for Xfce, you need to assign it through [ Preferred Applications ] » "Utilities" » "Terminal Emulator" » "Other". When specifying its file path, don't forget to add the "-e" switch for executing a command that was passed as an argument (ex. htop):

    tilix -e "%s"
    
    
    
    
    
        
  • It seems you cannot launch applications that require root access rights (ex. Synaptic) via the xfce4-panel shortcuts. You can of course launch them in terminal command prompt using the "sudo" command.

CLEANING UP

STEP 6 Create a batch file for launching X410 and Xfce4 components

The following is a Windows batch file that launches X410 and Xfce4 components mentioned in the previous steps.

C:\wsl\xfce4-sidekick.bat
@echo off
start /B x410.exe /wm

ubuntu1804.exe run "if [ -z $(pidof xfce4-panel) ]; then export DISPLAY=127.0.0.1:0.0; cd ~; xfsettingsd --sm-client-disable; xfce4-panel --sm-client-disable --disable-wm-check; taskkill.exe /IM x410.exe; fi;"








STEP 7 Create a Windows shortcut

You can directly launch the batch file created in Step 5 and have your Linux GUI environment ready. However, you can use the following VBScript and a Windows shortcut to silently launch the batch file and hide it from the Windows Taskbar. Please note that the VBScript file should be in the same folder as the batch file.

C:\wsl\bat-launcher.vbs
If WScript.Arguments.Count <= 0 Then
    WScript.Quit
End If	

bat = Left(WScript.ScriptFullName, InStrRev(WScript.ScriptFullName, "\")) & WScript.Arguments(0) & ".bat"
arg = ""

If WScript.Arguments.Count > 1 Then
    arg = WScript.Arguments(1)
End If

CreateObject("WScript.Shell").Run """" & bat & """ """ & arg & """", 0, False



You can then create a shortcut for the batch file created in Step 5 and set its "Target" as the following (The "Start in" option for the shortcut should also be pointing to the folder where the actual files are located):

wscript.exe bat-launcher.vbs xfce4-sidekick










Do you want to automatically launch the script when you log in? Just copy the shortcut to the Windows "Startup" folder!


Your Linux sidekick is now ready for some action!

TIPS AND TRICKS

  • X410 has DPI scaling options and when you enable one of them, X410 automatically scales Linux GUI apps according to the DPI settings of the monitor that they are displayed on. However, if you want the most crisp and sharp output as possible, you should consider setting the scaling option in X410 to "None" and upscaling the output from the actual Linux GUI apps.

    As of this writing, only Qt5 based apps support fractional scaling. For example, if you want to only launch GNU Octave at 150% scaling, you can use the following command:

    QT_SCALE_FACTOR=1.5 octave
    
    
        

    If you want all Qt5 based apps to be scaled at 150%, you can add the following command to your login script (ex. ~/.bashrc):

    export QT_SCALE_FACTOR=1.5
    
    
    
        

    For GDK based apps, only integers are accepted for a scaling factor:

    GDK_SCALE=2 gedit
    
    
        
  • Xfce4 is a GDK based app hence its settings for UI themes only affects GDK apps. If you want to install and change UI themes for Qt5 apps, you should install "qt5ct" package and add the following to your login script (ex. ~/.bashrc):

    export QT_QPA_PLATFORMTHEME=qt5ct
    
    
    
    
    
        

    When you want to change the UI theme for Qt5 based apps, you can execute the "qt5ct" from the command line or launch "Qt5 Settings" from the xfce4-panel shortcuts.

  • After changing your login scripts, you need to restart Xfce4; just exit X410 and then re-launch the startup shortcut created in Step 6.

  • Ubuntu repositories only seem to have the "Arc" GTK theme (arc-theme). If you're interested in using the "Adapta" GTK theme, you can use the following commands:

    sudo add-apt-repository -y ppa:tista/adapta && sudo apt update && sudo apt install adapta-gtk-theme
    
    
    
    
    
        
2020-06-02T00:06:56+00:00January 23, 2019|

X410 improves its HiDPI support for computers with multiple monitors

2.3.0
  • X410 no longer applies a HiDPI scale factor from the primary monitor; X410 now applies a normal DPI and automatically scales the output according to the HiDPI setting of the current monitor. If you're using multiple monitors with different DPI's, the new behavior should provide more visual consistency and better usage experience
  • Multi-level popup menus in Windowed Apps mode should now be correctly positioned
  • Desktop mode should now be correctly switched to its rendering mode even if a launched Linux GUI executable doesn't initially generate any output (ex. Openbox window manager)
2020-03-12T14:58:50+00:00December 21, 2018|

X410 makes X-Window apps more seamless in Windows 10

2.1.0 / 2.2.0
  • Running apps are now shown on X-Window taskbars and docks (ex. Xfce4 panel) in Windowed Apps mode
  • A desktop X-Window that covers the Windows desktop (ex. Xfce4 desktop) is now automatically hidden in Windowed Apps mode
  • Improved memory usage; X410 now even consumes less!
  • Fixed various unexpected crashes in Windowed Apps mode. If you do experience any crash or glitch while using your favorite Linux GUI apps with X410, please tell us. Such problems exist probably because we don’t know about them.
2020-03-12T14:47:31+00:00November 6, 2018|

X410 now consumes less memory and CPU cycles while still boosting its performance

2.0.0

The new version 2.0 has been submitted to Microsoft Store and should be available soon. The following summarizes the new features and improvements added in 2.0.

▬  Consumes less memory

When X410 is launched in 'Windowed Apps' mode it now only consumes less than 10MB. More memory will be used as you open more new X-Window GUI apps but the memory is returned when you close the apps.

This new memory management scheme and usage in X410 should provide more flexibility in seamlessly integrating Linux GUI apps with Windows native apps as the overhead for always running X410 is becoming negligible; it certainly now consumes less memory than your Web browser!

▬  Runs faster

We have improved and optimized how X410 renders graphic output from X-Window GUI apps. X-Window GUI apps should now be more responsive while using less CPU cycles. Just open Windows Task Manager and check how much CPU cycles an X-Window app uses in X410! Please note that the CPU cycles shown in Task Manager is for rendering the graphic output from the app; it's not showing the CPU cycles used by the app for its own computations and management.

▬  Direct3D is now used for Desktop mode

Desktop mode in X410 now uses Direct3D. DirectDraw 4 was used in the previous versions of X410. Although DirectDraw is still supported in Windows 10, it seemed good time to upgrade the engine. The new Direct3D based rendering engine doesn't give you significantly improved performance but it opens new possibilities for future versions of X410.

The lowest version of Direct3D that X410 uses is 11. If X410 cannot find any compatible video hardware, it automatically falls back to the Windows GDI.

In case you're curious about the version of DirectX that your X-Window server uses, try using "ListDLLs" from Microsoft. After launching your X-Window server in its desktop mode, run the ListDLLs program. If you find "ddraw.dll", it's based on DircetDraw. For Direct3D 11 or 12, you should be able to find "d3d11.dll" or "d3d12.dll" respectively.

▬  Acrylic is the new black

When you launch X410 in Desktop mode, it now shows a semi-transparent acrylic background. It has no functional purpose and it'll be removed as soon as you launch your GUI desktop environment. The new acrylic background just looked better!? 🙂

▬  Improved HiDPI support

X410 now accesses raw pixels for all connected monitors. It now also has built-in DPI scaling mode. If you're using a HiDPI monitor, we recommend scaling the output from the app itself as outlined in the following post:

Running X410 on HiDPI Screens
https://x410.dev/cookbook/running-x410-on-hidpi-screens/

However, if your X-Window app doesn't have a scaling option, the newly added "DPI Scaling" setting should be handy. X410 has two options for DPI scaling: 'Default' and 'High Quality'. The 'Default' option uses a linear image scaling algorithm that's fast but the output is blurry. The 'High Quality' option uses a cubic algorithm and generates less blurry output but requires more CPU cycles.

In Desktop mode, Direct3D handles the DPI scaling and you cannot change the scaling algorithm it uses.

  • DPI Scaling Mode: None (Recommended)

    The following sample screenshot is captured when the scaling is done from an actual app by setting the 'GDK_SCALE' environmental variable to 2 (200% Scaling); "export GDK_SCALE=2"

  • DPI Scaling Mode: Default

    X410 scales the output according to the Windows » Settings » Display » "Scale and layout" options. Please note that its blurriness cannot be completely avoided as the original output is in low resolution.

  • DPI Scaling Mode: High Quality

    Same as the "Default" scaling mode but uses a cubic scaling algorithm that produces less blurry output.

▬  Improved clipboard support

X410 currently only supports copying and pasting plain text. If you have a data format that you want to share via the clipboard among Windows and X-Window apps, please let us know. We'll be more than happy to look into it for possible inclusion in the future version.

▬  Improved window management

In Windowed Apps mode, X410 now properly recognizes full screen mode (F11), minimize and maximize button events. Other enhancements and fixes have been added to make X-Window apps run more seamlessly in Windows 10.

2020-03-12T14:46:32+00:00October 17, 2018|

Running Xfce Desktop on Kali Linux (WSL)

INGREDIENTS

You can create a Windows batch file for automatically starting a Linux GUI desktop in WSL (Windows Subsystem for Linux) along with X410. The following shows how this can be done and also demonstrates how you can pin that batch file to Windows Start or taskbar.

STEP 1 Install a Linux GUI desktop

There are various GUI desktops for Linux. In this example, we'll be installing Xfce4 on Kali Linux (WSL). Kali Linux already has a Xfce4 installation package (kali-desktop-xfce) prepared by Kali Linux team. Hence you simply need to execute the following commands from a Kali Linux WSL console to install Xfce4 desktop.

sudo apt update && sudo apt -y upgrade
sudo apt -y install kali-desktop-xfce



STEP 2 Create a batch file for Windows

Kali Linux.bat
start /B x410.exe /desktop
kali.exe run "if [ -z \"$(pidof xfce4-session)\" ]; then export DISPLAY=127.0.0.1:0.0; xfce4-session; pkill '(gpg|ssh)-agent'; fi;"





• x410.exe /desktop

x410.exe launches X410. When "/dektop" is passed as a command line argument, X410 is launched in "Desktop" mode. If X410 is already running in "Windowed Apps" mode, it'll be shutdown and started again in "Desktop" mode.

If you want to launch X410 in "Windowed Apps" mode, you should use the "/wm" command line argument. If you don't specify either argument, X410 will be in the same mode as the last time it was used.

• $(pidof xfce4-session)

"pidof xfce4-session" Linux command returns the process ID of running xfce4-session (Xfce4 Session Manager). Hence the if [ -z \"$(pidof xfce4-session)\" ]; then ensures executing the following commands (i.e., export DISPLAY=...) only when the Xfce desktop isn't already running.

Please also note that the "xfce4-session" doesn't have an '&'. If you append an '&' (i.e., xfce4-session&), it'll be pushed to background and the kali.exe will be terminated immediately. Such termination also terminates the GUI apps running in background as their parent Bash shell (= internally launched by the kali.exe) has exited.

Thus in order to prevent such terminations and keep the Xfce desktop running, you should not append an '&'.

• pkill '(gpg|ssh)-agent'

When xfce4-session is launched, it automatically tries to start ssh-agent and gpg-agent.

Those agents can still be running even after terminating the xfce4-session. In order to terminate the agents since they are no longer needed or used, pkill '(gpg|ssh)-agent'; is added.

If you want to stop xfce4-session from ever launching those agents, you can use the following commands:

xfconf-query -c xfce4-session -p /startup/ssh-agent/enabled -n -t bool -s false
xfconf-query -c xfce4-session -p /startup/gpg-agent/enabled -n -t bool -s false






When you close X410, xfce4-session also gets terminated along with the batch command window and WSL.


Automatically Closing X410 When You Logout

When you select the 'Logout' menu from Xfce desktop, it only terminates the Xfce; X410 will be remained open. If you want to automatically terminate X410 as well, you can use the 'taskkill' command. The 'taskkill' is a Windows command, but since we're in WSL, we can also use it from the Linux shell. So instead of adding it directly to the batch file, we can add it after the 'pkill' command:

Kali Linux.bat
start /B x410.exe /desktop
kali.exe run "if [ -z \"$(pidof xfce4-session)\" ]; then export DISPLAY=127.0.0.1:0.0; xfce4-session; pkill '(gpg|ssh)-agent'; taskkill.exe /IM x410.exe; fi;"




Hiding the Batch Command Window

You cannot completely hide the batch command window. However, you can minimize the window by creating a shortcut:


Pin a Batch file to Start and/or Taskbar

You cannot pin a batch file in Windows 10 (yet?). However, there is a workaround. Instead of creating a shortcut for the batch file, create a shortcut for the cmd.exe (Windows Command Prompt) and pass the batch file as its command line argument with '/C' (= carries out the command and terminates). For example, instead of "C:\Users\choung\Desktop\Kali Linux.bat", set the 'Target' as %windir%\system32\cmd.exe /C "C:\Users\choung\Desktop\Kali Linux.bat". Once the Target is changed, you can 'Pin to Start' or 'Pin to taskbar' from its right-click popup menu.

You can also use the method described in the following post for hiding the Console window and pinning the batch file:

2020-06-02T00:13:42+00:00August 6, 2018|
Go to Top