mirror of
https://github.com/swaywm/sway.git
synced 2024-11-28 02:41:28 +00:00
Destroyed Debian installation guide (markdown)
parent
bdc4663e38
commit
ddbbc513ec
|
@ -1,106 +0,0 @@
|
||||||
## Disclaimers
|
|
||||||
|
|
||||||
**This guide is outdated and shouldn't be used.** Any attempt to use it will only result in build errors and frustration. Debian users: please update this guide for wlroots.
|
|
||||||
|
|
||||||
Note: these instructions are community-maintained, and are not supported by the `sway` project. They are known to work as of the last edit. It should also be noted that Debian is probably the least friendly mainstream distribution to install `sway` and many of it's affiliated applications on since it relies on building from source and non-stable repositories. You may wish to try it on another distribution first before embarking down this road.
|
|
||||||
|
|
||||||
This document will guide you through installing sway on Debian Buster (stable). Currently `swaywm` IS available in the `experimental` repositories, HOWEVER several dependencies are only available in `sid`. To get `sway` installed with minimal manual compilation, a couple of `experimental` repositories will be added, but to ensure stability, `sid` repositories will be avoided. The application itself and other dependencies are pulled from GitHub.
|
|
||||||
|
|
||||||
**Installing packages from source is NOT the Debian way of doing things, and could break the system!** That said, this is the most stable way of getting `sway` on Debian Buster at this time. [Read more here](https://wiki.debian.org/DontBreakDebian#Don.27t_.27make_install.27).
|
|
||||||
|
|
||||||
Please edit this page if you spot inaccuracies, errors, or information that is out-of-date.
|
|
||||||
|
|
||||||
## Installing `xwayland`
|
|
||||||
|
|
||||||
We'll first need to install `xwayland` and other dependencies in order to support the majority of non-wayland applications:
|
|
||||||
|
|
||||||
````
|
|
||||||
sudo apt-get install libgles2-mesa-dev libdrm2 libdrm-dev libegl1-mesa-dev xwayland
|
|
||||||
````
|
|
||||||
|
|
||||||
## Installing `wlc`
|
|
||||||
|
|
||||||
Next we'll install [Wlc](https://github.com/Cloudef/wlc) and its dependencies:
|
|
||||||
````
|
|
||||||
sudo apt-get install cmake build-essential libinput10 libinput-dev libxkbcommon0 libxkbcommon-dev libudev-dev libxcb-image0 libxcb-image0-dev libxcb-composite0 libxcb-composite0-dev libxcb-xkb1 libxcb-xkb-dev libgbm1 libgbm-dev libdbus-1-dev libsystemd-dev zlib1g-dev libpixman-1-dev libxcb-ewmh-dev wayland-protocols git
|
|
||||||
git clone https://github.com/Cloudef/wlc.git
|
|
||||||
cd wlc
|
|
||||||
git submodule update --init --recursive
|
|
||||||
mkdir target
|
|
||||||
cd target
|
|
||||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DSOURCE_WLPROTO=ON ..
|
|
||||||
make
|
|
||||||
sudo make install
|
|
||||||
````
|
|
||||||
|
|
||||||
## Installing `experimental` dependencies
|
|
||||||
|
|
||||||
The remaining dependencies for `sway` - `libjson-c-dev` and `libwlroots-dev` - are only available in the appropriate versions from the `experimental` repositories. So, we will need to add this (or your preferred mirror) to `/etc/apt/sources.list`:
|
|
||||||
|
|
||||||
````
|
|
||||||
deb http://ftp.debian.org/debian experimental main contrib non-free
|
|
||||||
````
|
|
||||||
|
|
||||||
Then run `apt-get update` and Install these dependencies with:
|
|
||||||
|
|
||||||
````
|
|
||||||
apt install -t experimental libjson-c-dev libwlroots-dev
|
|
||||||
````
|
|
||||||
|
|
||||||
## Installing `sway`
|
|
||||||
|
|
||||||
Finally, we can install `sway` itself.
|
|
||||||
|
|
||||||
Note: If `apt-get install` tries to use more bandwidth and space than you have available, you can try adding ` -o APT::Install-Recommends=0 -o APT::Install-Suggests=0` at the end of the first command, to skip downloading optional dependencies.
|
|
||||||
|
|
||||||
````
|
|
||||||
sudo apt-get install meson libelogind-dev libpcre3 libpcre3-dev libcairo2 libcairo2-dev libpango1.0-0 libpango1.0-dev asciidoc libjson-c3 libcap-dev xsltproc libpam0g-dev
|
|
||||||
git clone https://github.com/SirCmpwn/sway.git
|
|
||||||
cd sway/
|
|
||||||
git checkout 1.0
|
|
||||||
meson build
|
|
||||||
ninja -C build
|
|
||||||
sudo ninja -C build install
|
|
||||||
````
|
|
||||||
|
|
||||||
## Using `sway`
|
|
||||||
|
|
||||||
If you already have another desktop environment installed, you may be unable to boot to `sway` without messing with your display manager. To prevent your display manager from starting up on boot you can disable it via Systemd:
|
|
||||||
````
|
|
||||||
sudo systemctl disable gdm3.service
|
|
||||||
````
|
|
||||||
`gdm3` is used as an example here, your display manager may differ.
|
|
||||||
|
|
||||||
Alternatively, you may prefer to switch the target environment to use by default from `graphical.target` to `multi-user.target`. More information on how Systemd targets work is described in [this article](https://www.digitalocean.com/community/tutorials/systemd-essentials-working-with-services-units-and-the-journal).
|
|
||||||
|
|
||||||
The simple instructions are to first check to see that you are actually using `graphical.target` with the command `systemctl get-default`.
|
|
||||||
|
|
||||||
If you are, check to make sure that no critical services will be disabled when changing to `multi-user target`:
|
|
||||||
````
|
|
||||||
$ systemctl list-dependencies graphical.target
|
|
||||||
graphical.target
|
|
||||||
● ├─accounts-daemon.service
|
|
||||||
...
|
|
||||||
● └─multi-user.target
|
|
||||||
● ├─anacron.service
|
|
||||||
...
|
|
||||||
● ├─basic.target
|
|
||||||
● │ ├─-.mount
|
|
||||||
...
|
|
||||||
````
|
|
||||||
Only items that are children `multi-user.target` will remain active. If there are any essential services that are direct children of `graphical.target` or children of another target that depends on it, you can move their .service file from their appropriate `/lib/systemd/system/<target_name>.target.wants` to the `/lib/systemd/system/multi-user.wants` directory.
|
|
||||||
|
|
||||||
You can then change to use the multi-user target:
|
|
||||||
````
|
|
||||||
systemctl set-default multi-user.target
|
|
||||||
````
|
|
||||||
|
|
||||||
By changing to the multi-user.target, you will be prompted to log in at a tty. After logging in you can run `sway` to start up your new window manager. If you would like to have sway start automatically on a specific tty, you can configure your `.bash_profile` file to do so:
|
|
||||||
|
|
||||||
````
|
|
||||||
if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then
|
|
||||||
exec sway
|
|
||||||
fi
|
|
||||||
````
|
|
||||||
|
|
||||||
If you are on a single-user system and are used to having your account auto-login, you can configure `getty` to log you into the same tty that you have set to automatically execute sway. See the [Arch Wiki](https://wiki.archlinux.org/index.php/Getty#Automatic_login_to_virtual_console) on this topic. Note that this should only be done if you have some other layer of security such as a password-protected filesystem which is decrypted on boot.
|
|
Loading…
Reference in a new issue