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