Project

General

Profile

Setup-example » History » Revision 4

Revision 3 (mfxbe, 06/07/2024 08:45 PM) → Revision 4/5 (mfxbe, 06/09/2024 04:55 PM)

# Example set up 

 This page shows the software and steps needed to set up a desktop environment using *Fairynight *Fairytale Computing* software. While this is only one of many ways to set it up, it is currently the only setup where everything is at least somewhat tested. 

 # Requirements 

 You will need a running base Linux system (basically, a system that boots up and lets you log in to a tty) with not too old software to be set up and ready to go. This could be Debian Sid or Archlinux, for example. **This example is using Debian sid as base,** if you use an other system you might need to change commands. 

 Before running some of the build the commands you might need to install build dependencies (``git, libgtk4, make, ...``) as well. 

 # Steps 

 ## 1. Install wayfire 

 [Wayfire](https://wayfire.org/) is used as the Wayland compositor. 

 ``` 
 $ sudo apt install wayfire 
 ``` 

 If you later have problems starting Wayfire, I recommend installing Sway as well, as it pulls in more dependencies that may be missing. 

 ## 2. Install more dependencies 

 To render the desktop, you need a wallpaper utility. The most powerful solution here is [swww](https://github.com/LGFae/swww), which is unfortunately not in the repositories and is quite complicated to compile on Debian.     
 A easy way would be to download the swww binaries from the *Chaotic-AUR* [here](https://builds.garudalinux.org/repos/chaotic-aur/x86_64/) unpack the file and just copy the binaries to the right place.     
 If you do not like to do all that, just install swaybg instead: 

 ``` 
 $ sudo apt install swaybg 
 ``` 

 More useful software, not all of this packages are absolutely needed 

 ``` 
 $ sudo apt install grim slurp wlr-rand foot swaylock swayidle mako wlsunset light 
 ``` 

 ## 4. Build and install ToplevelIt 

 It's a small library for waylands foreign-toplevel-protocol ([Github link](https://github.com/mfxbe/ToplevelIt)).  

 ``` 
 $ git clone https://github.com/mfxbe/ToplevelIt 
 $ make wlscan 
 $ make 
 $ sudo make install 
 ``` 


 ## 4. Build and "install" Alice 

 Alice is the desktop shell providing dock, panel and more. 

 ``` 
 $ git clone https://dyndns.mfxbe.de/other/fcw/gitLinks/alice.git 
 $ make 
 ``` 

 The Makefile currently does not provide an install option. You can ether copy the files from the ``build`` directory to right position yourself or (later) just call the Alice binary from there. It should just work. 

 ## 5. Configure wayfire 

 Below you can find an example for the Wayfire configuration which should be placed in ``~/.config/wayfire.ini``. More information are available in the [Wayfire wiki](https://github.com/WayfireWM/wayfire/wiki/Configuration). 


 ``` 
 [input] 
 xkb_layout = de 
 tablet_motion_mode=relative 


 [core] 
 plugins = \ 
   alpha \ 
   blur \ 
   autostart \ 
   command \ 
   decoration \ 
   expo \ 
   fast-switcher \ 
   foreign-toplevel \ 
   grid \ 
   gtk-shell \ 
   idle \ 
   ipc \ 
   ipc-rules \ 
   invert \ 
   move \ 
   oswitch \ 
   place \ 
   resize \ 
   switcher \ 
   vswitch \ 
   wm-actions \ 
   zoom 

 close_top_view = <super> KEY_Q | <alt> KEY_F4 
 vwidth = 2 
 vheight = 2 
 preferred_decoration_mode = client 

 [move] 
 activate = <super> BTN_LEFT 
 [resize] 
 activate = <super> BTN_RIGHT 
 [zoom] 
 modifier = <super> 
 [alpha] 
 modifier = <super> <alt> 
 [wrot] 
 activate = <super> <ctrl> BTN_RIGHT 

 # Startup commands ───────────────────────────────────────────────────────────── 

 [autostart] 
 0_environment = dbus-update-activation-environment --systemd WAYLAND_DISPLAY DISPLAY XAUTHORITY XDG_CURRENT_DESKTOP=Wayfire 

 lock_on_start = swaylock -i ~/bg.png && ~/Alice/build/bin/alice 
 lock_on_timeout = swayidle -w timeout 600 'systemctl suspend' before-sleep 'swaylock -i ~/bg.png' 

 background-daemon = swww-daemon 
 background-setter = sleep 1 && swww img ~/bg.png 


 autostart_wf_shell = false 
 notifications = mako 


 gamma = wlsunset -l 55.5 -L 5.5 

 portal = /usr/libexec/xdg-desktop-portal 


 [command] 
 binding_alicemenu = <super> 
 command_alicemenu = gdbus call --session --dest=eu.feritale.Alice    -o /eu/feritale/Alice -m org.gtk.Actions.Activate "open-menu" [''] {} 


 binding_terminal = <super> KEY_ENTER 
 command_terminal = foot 

 binding_lock = <super> <shift> KEY_ESC 
 command_lock = systemctl suspend 

 binding_logout = <super> KEY_ESC 
 command_logout = wlogout 

 binding_screenshot = KEY_PRINT 
 command_screenshot = grim $(date '+%F_%T').webp 
 binding_screenshot_interactive = <shift> KEY_PRINT 
 command_screenshot_interactive = slurp | grim -g - $(date '+%F_%T').webp 

 repeatable_binding_volume_up = KEY_VOLUMEUP 
 command_volume_up = amixer set Master 5%+ 
 repeatable_binding_volume_down = KEY_VOLUMEDOWN 
 command_volume_down = amixer set Master 5%- 
 binding_mute = KEY_MUTE 
 command_mute = amixer set Master toggle 

 repeatable_binding_light_up = KEY_BRIGHTNESSUP 
 command_light_up = light -A 5 
 repeatable_binding_light_down = KEY_BRIGHTNESSDOWN 
 command_light_down = light -U 5 


 [grid] 
 slot_bl = <super> KEY_KP1 
 slot_b = <super> KEY_KP2 
 slot_br = <super> KEY_KP3 
 slot_l = <super> KEY_LEFT | <super> KEY_KP4 
 slot_c = <super> KEY_UP | <super> KEY_KP5 
 slot_r = <super> KEY_RIGHT | <super> KEY_KP6 
 slot_tl = <super> KEY_KP7 
 slot_t = <super> KEY_KP8 
 slot_tr = <super> KEY_KP9 
 restore = <super> KEY_DOWN | <super> KEY_KP0 

 [fast-switcher] 
 activate = <alt> KEY_TAB 

 [vswitch] 
 binding_left = <ctrl> <super> KEY_LEFT 
 binding_down = <ctrl> <super> KEY_DOWN 
 binding_up = <ctrl> <super> KEY_UP 
 binding_right = <ctrl> <super> KEY_RIGHT 
 with_win_left = <ctrl> <super> <shift> KEY_LEFT 
 with_win_down = <ctrl> <super> <shift> KEY_DOWN 
 with_win_up = <ctrl> <super> <shift> KEY_UP 
 with_win_right = <ctrl> <super> <shift> KEY_RIGHT 


 [expo] 
 toggle = <super> KEY_A 
 select_workspace_1 = KEY_1 
 select_workspace_2 = KEY_2 
 select_workspace_3 = KEY_3 
 select_workspace_4 = KEY_4 
 select_workspace_5 = KEY_5 
 select_workspace_6 = KEY_6 
 select_workspace_7 = KEY_7 
 select_workspace_8 = KEY_8 
 select_workspace_9 = KEY_9 

 [decoration] 
 active_color = 0.0,0.0,0.0,1.0 
 inactive_color = 0.66,0.66,0.66,1.0 

 [oswitch] 
 next_output = <super> KEY_O 
 next_output_with_win = <super> <shift> KEY_O 

 [blur] 
 blur_by_default=role is "UNMANAGED" | role is "DESKTOP_ENVIRONMENT" 
 method=gaussian 
 gaussian_offset=1 
 gaussian_iterations=1 

 ``` 

 It's important to at least enable the following plugins: ``foreign-toplevel, ipc, ipc-rules`` 

 ## 6. Autologin and start the environment 

 A convenient way to start the environment at boot is to autologin into tty and automatically start Wayfire and swaylock (already done in the ini). Note that this only allows one user on the system. 

 To enable auto login create a file the following way: 

 ``` 
 $ sudo nano /etc/systemd/system/getty@tty1.service.d/autologin.conf 
 ``` 

 And put in as content (``username`` must be your user): 
 ``` 
 [Service] 
 ExecStart= 
 ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin username %I $TERM 
 ``` 
  To start Wayfire automatically when you log in, add the following to the end of ``~/.profile``: 
 ``` 
 if [ -z "$WAYLAND_DISPLAY" ] && [ "$XDG_VTNR" -eq 1 ]; then 
   exec wayfire 
 fi 
 ``` 

 

 ## 7. Install other Fairytale Computing software 

 Now you can install other applications. For example project:loreley to browse the internet. 

 

 ## 8. Done 
 You've done it. Congratulations.
Legal notice and privacy policy