- Scheme 51.3%
- Shell 48.7%
| assets | ||
| overlay | ||
| screenshots | ||
| scripts | ||
| .gitmodules | ||
| LICENSE | ||
| README.org | ||
Cushion

An Alpine Overlay to set up an easy-to-use distro, which is low on memory consumption.
This project is NOT affiliated with the Alpine Linux project, use at your own risk.
The Cushion overlay is targeted at people looking to setup one or more laptops/workstations to be used in semi-public places, by people with no Linux experience, coming from a Windows background. It is ideal for people who quickly need to write a word document, or browse the web and print out a picture.
About the name
The name & logo are inspired by the Alpine plant wikipedia article. Cushion plants are alpine plants (according to the first article), which means that they can be found in alpine environments.
Cushion is an overlay for Alpine Linux, thus operating in an alpine environment.
The logo is a version of the official Alpine Linux Logo, with the smaller mountain removed, and the mountain oriented on the right moved below the biggest. The photo in the background is a cushion plant with the Gimp weave filter applied.
Screenshots
To reduce page-load-time, screenshots can be found here.
Default Applications
xfce4with a windows 10 theme & icon packlightdm, with a basic windows theme and guest autologin-
Office Suite
libreoffice-writerlibreoffice-drawlibreoffice-calclibreoffice-impress
firefox
Packaging
To manually package the overlay file, simply run the following command
tar -C overlay -czf cushion.apkovl.tar.gz .
Installation
Both sys and data installs are supported.
Because we rely on guest session,
all data created/modified in the home folder (when logged in),
won't persist after reboot or after logging out.
Additionally the guest users do not have root access,
this means that people accessing the system
should not be able to able to break anything.
Installation in sys mode
This mode is a traditional disk install. The following partitions will be created on the disk: /boot, / (filesystem root) and swap.
setup-diskhelp page
Better suited for devices with less than 4GiB of RAM,
however it is easier to setup than the data install,
so you probably want to use this mode.
Especially since it is the type of installation commonly found on computers.
Steps
To install the cushion overlay on a sys install,
simply run through the setup-alpine process,
as you would normally, reboot into your newly setup OS
and login as the root user.
Now you have to extract the overlay onto your system root:
# install git to clone the repo
apk add git
# clone this repo & the theme/icon submodules
git clone https://codeberg.org/comcloudway/cushion --depth 2
cd cushion
git checkout 10
# Package the overlay
tar -C overlay -czf cushion.apkovl.tar.gz .
# extract the overlay onto the root
tar -xvzf cushion.apkovl.tar.gz -C /
Alternatively, you could use the script in this repo, which does exactly the same:
curl https://codeberg.org/comcloudway/cushion/raw/tag/10/scripts/setup-sys.sh | sh -
But keep in mind, that running scripts over the network might be potentially dangerous.
After you finished extracting the overlay, reboot the system and the files should be installed automatically.
You should be greeted with a windows-like desktop.
The last step is changing the manager password,
see the Additional Configuration Section below for more.
Installation in data mode
This mode uses your disk(s) for data storage, not for the operating system. The system itself will run from tmpfs (RAM).
setup-diskhelp page
The system doesn't remember any changes made,
unless they were committed using the lbu Backup Utility.
Requirements
As pointed out by the quote above, the system runs from tmpfs (RAM).
From what I can tell,
Alpine Linux creates a tmpfs that is half the size of the system memory.
That means that when you have 4GiB of RAM,
your tmpfs will have a size of 2GiB.
As the system has to fit onto the tmpfs,
half of your RAM has to be able to fit the overlay (after installation).
As of writing the required memory size is 4GiB.
If you don't have 4GiB of RAM,
you might want to consider installing in sys mode.
Steps
Using an ISO
When using the official ISO (as you would, when setting up a Desktop PC),
you either have to perform a basic data installation
and copy the overlay file later.
Or you take the simpler route
and try to bound the overlay directly into the .iso,
before flashing the thumb drive:
One way of doing this is to install xorriso
and running the following command:
xorriso \
-indev input.iso \
-outdev output.iso \
-boot_image isolinux patch \
-add cushion.apkovl.tar.gz
Afterwards you have to flash the output.iso to your boot medium.
Make sure your system is connected to the network and power it on. The system should install itself automatically. If you don't want to download the packages every time, you might want to setup an apk cache.
Using a tar archive
When using a tar.gz to setup the computer
(for example, when using the Alpine Linux Raspberry Pi image),
you simply have to copy the overlay file onto the drive
where you extracted the tar.gz.
Make sure your system is connected to the network and power it on. The system should install itself automatically. If you don't want to download the packages every time, you might want to setup an apk cache.
Configuration
Network
The network configuration code has been taken from alpine-linux-headless-bootstrap.
Interfaces
By default all interfaces will be started using dhcp, if this does not suit you, you can provide a custom interfaces file.
Wifi
If you do not have an Ethernet connection, you have to setup wifi.
On sys installations,
you can simply use the setup-interfaces command,
which is part of setup-alpine.
But if you want to preconfigure wifi access on a data install,
you have to provide a wpa_supplicant.conf file.
Have a look at the Arch Wiki for a guide on
how to create a working wpa_supplicant.conf file.
Languages
By default, all languages found in the languages.yml will be installed,
but you can either replace the file in /etc/languages.yml,
or put a custom languages.yml in the same folder as the overlay
(when using the data mode) to overwrite the default list.
- if no languages are specified, you won't be able to login.
- if one language is specified, it will automatically be selected
- if multiple languages are specified, a language picker windows will be shown before guest login
Additional
To perform additional configuration,
you can log in as the manager user:
- Boot the system,
you'll be automatically logged in as
guest-XXXXXXuser - Log out (in the application menu)
- Log back in, selecting the Linux User /
manageraccount, the default password ismanager, but if you are using asysinstall, you should change it, because all files themanagercreates will persist after rebooting.
The manager user can configure standby time, or a default browser setup,
i.e. Ad Blockers.
After changing the files,
log out and you should see them take affect immediately.
When using the data install,
you have to use the lbu command to add and commit your changes
before logging out.
Keep in mind: Because the guest users home directory
(and configuration files) are derived from the manager,
every file you keep in the manager's home folder,
or your browser history will be accessible by the new guest accounts.
Resources
- B00merang-Artwork Windows 10 Icon Theme (No License (Maybe GPL), not distributed via this repository (inside a submodule))
- B00merang-Artwork Windows 10 Dark Icon Theme (No License (Maybe GPL), not distributed via this repository (inside a submodule))
- B00merang-Project Windows 10 Theme (licensed under GPL-3.0, not distributed via this repository (inside a submodule))
- B00merang-Project Windows 10 Dark Theme (licensed under GPL-3.0, not distributed via this repository (inside a submodule))
- Windows 10 Logo from Wikimedia Commons (Public domain) (Scaled down & color-inverted using Gimp)
- Windows 10 Wallpaper under CC BY 4.0 from archive.org uploaded by 123linux.com
- Country Flags (2013) by gosquared under MIT