# Installation and Launching

### Installing

#### Arch

```
yay -S walker

// for example
yay -S elephant elephant-desktopapplications
```

Will install a basic OOTB Walker+Elephant setup.

#### Fedora

```
sudo dnf copr enable errornointernet/walker
sudo dnf install walker
sudo dnf install elephant
```

#### openSuse Tumbleweed

```
# Dependencies
sudo zypper install git cargo gtk4-devel gtk4-layer-shell-devel libpoppler-glib-devel protobuf-devel cairo-devel go make

# Walker
git clone https://github.com/abenz1267/walker.git ~/Downloads/walker
cd ~/Downloads/walker
sudo make install

# Elephant
git clone https://github.com/abenz1267/elephant ~/Downloads/elephant
cd ~/Downloads/elephant
sudo make install

# Provider desktopapplications
cd ~/Downloads/elephant/internal/providers/desktopapplications
sudo make install

# Provider menus
cd ~/Downloads/elephant/internal/providers/menus
sudo make install

# Provider files
cd ~/Downloads/elephant/internal/providers/files
sudo make install
```

### Launching

Elephant has to be running in order for Walker to function.

Starting Elephant is best done as a user-service: you can use `elephant service enable` to generate a systemd user-level service. It will install and enable it, but won't start it. `systemctl --user start elephant.service` in order to start it without rebooting.\
\
When Elephant is running, you can simply launch Walker with `walker`! Done.

### Optimizing startup time

Since Walker is based on GTK4, it is by nature slow to startup. A lot of things have to be done each time you open it ⇒ slow.\
\
This can be optimized, by keeping a Walker instance running with `walker --gapplication-service`\
\
This way everything required in order to launch Walker (parsing config, setting up UI etc) is only done once.\
\
Furthermore, you can make Walker popup via a socket call, f.e. `nc -U /run/user/1000/walker/walker.sock` . This is further improve the time till Walker appears on your screen, by avoiding any GTK4 cmdline parsing. So this can be used as a faster alternative to simply calling `walker`.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://benz.gitbook.io/walker/installation-and-launching.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
