Project Setup | vasak-desktop
Project Setup - Vasak Desktop#
Complete guide to setting up your Vasak Desktop development environment.
Prerequisites#
System Requirements#
- OS: Linux (Fedora, Ubuntu, Debian, Arch, etc.)
- RAM: 4GB minimum (8GB recommended)
- Storage: 5GB of free space
- Internet: A connection to download dependencies
It is extremely important to complete the
developer dependency installation
, because from here on the dependencies are specific to vasak-desktop
System Dependencies for [vasak-desktop]#
Fedora and derivatives#
1
2
3
4
5
6
| sudo dnf groupinstall "Development Tools"
sudo dnf install gtk3-devel glib2-devel cairo-devel dbus-devel libxkbcommon-devel
sudo dnf install libwayland-devel libxcb-devel
# For Wayland development
sudo dnf install wayland-devel wayland-protocols-devel
|
Debian and derivatives#
1
2
3
4
5
| sudo apt install libgtk-3-dev libglib2.0-dev libcairo-dev libdbus-1-dev libxkbcommon-dev
sudo apt install libwayland-dev libxcb-xfixes0-dev libxcb-shape0-dev
# For Wayland development
sudo apt install wayland-protocols libwayland-dev
|
Arch and derivatives#
1
2
| sudo pacman -S gtk3 glib2 cairo dbus libxkbcommon
sudo pacman -S wayland wayland-protocols libxcb
|
Clone the Repository#
1
2
3
4
5
6
| # Clone the repository
git clone https://github.com/Vasak-OS/vasak-desktop.git
cd vasak-desktop
# Create a branch for your work
git checkout -b feature/my-feature
|
Install the Dependencies#
Frontend (JavaScript/TypeScript)#
Backend (Rust)#
Rust dependencies are handled automatically by Cargo.
1
2
3
4
5
| # Check that they download correctly
cargo check
# Download and index the dependencies
cargo build --release # (this takes a while the first time)
|
Initial Structure#
After cloning you should have:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| vasak-desktop/
├── src/ # Frontend (Vue.js)
│ ├── components/ # Vue components
│ ├── views/ # Views/pages
│ ├── App.vue # Root component
│ └── main.ts # Entry point
│
├── src-tauri/ # Backend (Rust)
│ ├── src/ # Rust code
│ │ ├── lib.rs # Backend modules
│ │ ├── main.rs # Entry point
│ │ ├── commands/ # IPC commands
│ │ └── ... # Other modules
│ └── Cargo.toml # Rust dependencies
│
├── package.json # Frontend dependencies
├── tsconfig.json # TypeScript configuration
├── vite.config.ts # Vite configuration
└── tauri.conf.json # Tauri configuration
|
If you want to understand more, read the
folder system
article, where each of these places is explained in depth, so it is easier to find what you are looking for.
Check That Everything Is Correct#
1
2
3
4
| # Verify that everything builds correctly
bun run tauri build
# If it finishes without errors, you are ready to go!
|
If you run into problems, check our
Troubleshooting
page before
reporting bugs
.