[Date Prev][Date Next][Subject Prev][Subject Next][Date Index][Subject Index]

Notes on Linux Installation and Use



Here are some longish rambling notes about my experiences with installing XyScript on 6 different
Linux machines, ranging from ancient to modern, laptop to desktop.  I hope they may be of some use. 
TL;DR: Works great on every machine with a small amount of effort.

Experiences with installing XyScript on Linux systems
-----------------------------------------------------

Applicability
-------------

These notes pertain to my own systems, setups, and environments.  While much of this is probably
applicable to other Linux setups, some things won't be universal.  The notes reflect my own
experiences and observations.  There are likely errors, or easier and better ways to do things.  Use
at your own risk; there are no warranties of any nature.

I have multiple Linux systems on various desktops and laptops new and old.  All of them run the
Endeavour version of Arch Linux.  All of them primarly use the i3 tiling window manager but have an
alternate backup configuration with the xfce desktop.  Most of my setup and testing has been with
i3wm as that's what I use as a daily driver.  I only use xfce for special purposes on very
infrequent occasions; however, it can be a little more difficult to set up XyScript on a tiling
window manager.

Installation
------------

To install XyScript on any Linux version, download the archive from Carl's site.  Unzip it
somewhere.  I put it under /usr/local/share where the directory xyscript will be created (you may
need to use 'sudo' to do this).  Then (using /usr/local/share/xyscript as an example)

cd /usr/local/share/xyscript
sudo chmod 755 xyscript

and then you can run (or try to run) XyScript with

./xyscript

I now recommend that you do this:

sudo ln -s /usr/local/share/xyscript/xyscript /usr/local/bin/xyscript

assuming, of course that /usr/local/bin is in your command path (it very likely is).

Here's where the fun begins.  Depending on your particular setup, XyScript might run just fine.  If
it does, skip over the next section.  

Graphics Driver Problems
------------------------

If XyScript doesn't work out of the box, you probably got a message about video drivers.  (If you
got a different message, this document unfortunately won't help you.)

XyScript is written in Rust and uses WGPU to provide graphics output.  WGPU is compatible with a
limited set of rendering methods.  But let's make an important note here: I'm on X11, not Wayland,
so what I have to say might not apply if you're on Wayland.

Vulkan is the easiest to get working.  Try this first; install vulkan-intel and vulkan-tools.  On
Arch, if you have 'yay' installed:

yay -S vulkan-intel vulkan-tools

This will probably work unless you have a (much) older graphics system that doesn't support vulkan
in hardware.  (I have three of those.)  In such a case, all is not lost.  Uninstall vulkan-intel and
vulkan-tools, and then install vulkan-swrast.  On Arch with 'yay'

yay --remove vulkan-intel vulkan-tools
yay -S vulkan-swrast

and this worked on even my oldest clunker, a 2009 Acer with Intel Mobile 4 built-in graphics which
support nothing particularly modern.

If you're in a desktop environment such as xfce or others, you're done at this point.  If, like me,
you are using a tiling window manager like i3, read on.  There is more fun ahead.

Using a Tiling Window Manager
-----------------------------

The following applies to i3 only; adaptation to other tiling window managers should not be
difficult.

If you are fine with letting i3 manage everything, there is nothing further to do.  That's the
easiest course of action, so naturally I didn't choose it.  Since my main environment is Emacs, I
wanted XyScript to be a pop-up editor.  It takes a few things to make this happen.  I'll save you
the story of my trials and tribulations and cut to the chase.  I added the following to my i3 config
file.

for_window [class="xyscript"] resize set width 100pt
for_window [class="xyscript"] resize set height 120pt
for_window [class="xyscript"] floating enable
bindsym $mod+y exec --no-startup-id /usr/local/bin/xyscript

But hold the phone a moment; you'll need to adapt this.  You might want or need to use a different
key combo in the 'bindsym' line, and you almost certainly will want to change the width and height
depending on how your fonts and UI sizing are set.  I won't go into that here; you'd have to try out
different settings in your own environment.  But actually what I have above has worked well enough
across 6 very different systems.

I ran into a harder problem; when I used the mouse to click File - Open I got a file chooser that
was taller than my window height and was therefore unusable.  Further, it wouldn't resize with i3
resize commands.  There might have been a better way, but what I did was restart the system into the
xfce environment, start XyScript, bring up the file chooser, and resize it to be much smaller.  When
I went back to i3, it retained the smaller size.  Problem solved, at least for now; Other windows
may need a similar treatment, such as find/replace.

Tiling window managers can be tricky if you want something outside of the usual.  But all is working
well.

Some Very Random Observations
-----------------------------

1. XyScript is currently delivered as an enormous 100MB+ monolithic static binary.  I suggest you
install 'upx' and

sudo upx -9 /usr/local/share/xyscript/xyscript

which reduces it to about 39MB.  This adds a little startup time with decompression but saves some
time with disk access.  The overall difference is small unless you're running from an HDD, in which
case it's surely faster.

2. Despite the huge binary, XyScript startup is very fast, under 2 seconds on my old clunker laptop
and maybe a second on my fastest desktop.  My Emacs startup is around 15 seconds, but of course it's
fetching mail and calendars and other things.

3. XyScript passed some stress tests.  I tried opening 4,000 files at once (total 80+MB).  It worked
and was almost instantaneous.  However the tab list covered the entire screen and I couldn't
actually do anything (and the tab list doesn't scroll).  The moral: don't open 4,000 files at once. 
Stick to something you can comprehend, like five or ten.  I tried the same thing with Emacs and it
took almost 20 minutes although it did actually work, and likely could be speeded up.

I did try loading hundreds of megabytes and at some point I got a segfault.  Emacs will do the same
after a while as well.

4. XyScript integrates perfectly with the X11 clipboard.

5. Opening a file from the command line requires the full path of the file to open.  The stock
XyScript startup changes directory to the xyscript home (/usr/local/share/xyscript for me).  It has
to do this to find its startup files.

6. I use rsync to synchronize startup files between machines.  I added some startup code to use
'hostname' to distinguish among them and run machine specific startup code.

7. If you remap the caps lock key to ctrl, as I do, XyScript won't honor that, but it's easy enough
to change in one of the XyScript keyboard files.

Conclusion
----------

XyScript works very well on Linux systems and is an exceptionally valuable addition to anyone's
toolkit.  I am an Emacser of some 40 years standing and my home and professional workflows depend
heavily on Emacs, so I won't be making a full switch.  But I have already started to use XyScript to
write short-form fiction, and as a pop-up editor, and I know the uses will continue to grow.

My hope is that XyScript eventually makes it into the package managers of major Linux distributions.
 I then hope that it catches on, and various auxiliary packages start to get written for it.  The
potential is truly unlimited.  It would take a lot to equal the Emacs infrastructure but things can
happen a package at a time.

In conclusion I wish to once again thank Carl for his efforts in producing a free package that
leaves tons of commercial packages in the dust.

Contact
-------

I can be reached at bobnewell@xxxxxxxxxxxxx.  While I am not making a promise of support (or
anything else), and I have a busy life, I'd be pleased to have discussions about XyScript on Linux;
and of course corrections and suggestions for this little document are welcomed.

Bob Newell
Honolulu, Hawai`i
2026-08-09