diff --git a/config-files-laptop/foot/foot.ini b/config-files-laptop/foot/foot.ini new file mode 100755 index 0000000..ba3971d --- /dev/null +++ b/config-files-laptop/foot/foot.ini @@ -0,0 +1,5 @@ +font=monospace:size=10 +initial-window-size-pixels=1000x600 +[colors] +background=000000 +alpha=0.5 diff --git a/config-files-laptop/kanshi/config b/config-files-laptop/kanshi/config new file mode 100755 index 0000000..5091806 --- /dev/null +++ b/config-files-laptop/kanshi/config @@ -0,0 +1,3 @@ +profile{ + output eDP-1 position 0,0 +} diff --git a/config-files-laptop/mako/config b/config-files-laptop/mako/config new file mode 100755 index 0000000..b9a95b0 --- /dev/null +++ b/config-files-laptop/mako/config @@ -0,0 +1,9 @@ +font=Roboto 8 +background-color=#1515157F +border-size=6 +border-radius=20 +border-color=#1515157F +progress-color=#3949A0FF +icons=1 +icon-path=/usr/share/icons/Papirus-Dark +default-timeout=6000 diff --git a/config-files-laptop/waybar/config b/config-files-laptop/waybar/config new file mode 100755 index 0000000..4a1b213 --- /dev/null +++ b/config-files-laptop/waybar/config @@ -0,0 +1,53 @@ +[ + { + "layer": "top", + "output": "eDP-1", + "position": "top", + "modules-left": ["wlr/taskbar"], + "modules-center": ["clock"], + "modules-right": ["battery","tray","custom/search","custom/poweroff"], + "fixed-center": true, + "spacing": 20, + "custom/poweroff": + { + "tooltip": false, + "format": "", + "on-click": "wlogout" + }, + "custom/search": + { + "tooltip": false, + "format": "", + "on-click": "wofi --show drun" + }, + "clock": + { + "interval": 60, + "format": "{:%a %H:%M %d-%m-%y}", + "tooltip": false + }, + "battery": + { + "bat": "BAT0", + "interval": 60, + "format": "{icon} {capacity}%", + "format-icons": ["","","","",""] + }, + "tray": + { + "icon-size": 16, + "spacing": 20 + }, + "wlr/taskbar": + { + "format": "{icon}", + "icon-size": 16, + "tooltip-format": "{title}", + "on-click": "activate", + "on-click-middle": "close", + "ignore-list": [ + "wlogout" + ] + } + } +] diff --git a/config-files-laptop/waybar/style.css b/config-files-laptop/waybar/style.css new file mode 100755 index 0000000..f2e5413 --- /dev/null +++ b/config-files-laptop/waybar/style.css @@ -0,0 +1,45 @@ +* +{ + border: 0; + border-radius: 0; + font-family: "FontAwesome"; + font-size: 16px; + min-height: 0; + padding-top: 0px; + padding-bottom: 1px; +} + +window#waybar +{ + background: rgba(0, 0, 0, 1); + border-bottom: 0px solid rgba(0, 0, 0, 1); + color: white; +} + +tooltip +{ + background: rgba(0, 0, 0, 0.5); + border: 1px solid rgba(0, 0, 0, 0.5); + border-radius: 10; +} + +tooltip label +{ + color: white; +} + +#custom-poweroff +{ + padding-right: 20px; +} + +#taskbar +{ + padding-left: 20px; +} + +#taskbar button +{ + padding-left: 15px; + padding-right: 0px; +} diff --git a/config-files-laptop/wayfire/wayfire.ini b/config-files-laptop/wayfire/wayfire.ini new file mode 100755 index 0000000..548e710 --- /dev/null +++ b/config-files-laptop/wayfire/wayfire.ini @@ -0,0 +1,350 @@ +[alpha] +min_value = 0.100000 +modifier = + +[animate] +close_animation = fade +duration = 400 +enabled_for = all +fade_duration = 400 +fade_enabled_for = none +fire_duration = 300 +fire_enabled_for = none +fire_particle_size = 16.000000 +fire_particles = 2000 +open_animation = fade +startup_duration = 600 +zoom_duration = 500 +zoom_enabled_for = none + +[autostart] +audio = pipewire +audio_notify = sleep 5; dbus-launch pa-notify -t 2 +automount = udiskie -As +autostart_wf_shell = false +background = wf-background +bar = waybar +element = dbus-launch element-desktop --hidden --enable-features=UseOzonePlatform --ozone-platform=wayland +idle = swayidle -w timeout 230 gtklock before-sleep gtklock +network = sleep 5; nm-applet --indicator +notifications = mako +outputs = kanshi + +[blur] +blur_by_default = type is "toplevel" +bokeh_degrade = 1 +bokeh_iterations = 15 +bokeh_offset = 5.000000 +box_degrade = 1 +box_iterations = 2 +box_offset = 1.000000 +gaussian_degrade = 1 +gaussian_iterations = 2 +gaussian_offset = 1.000000 +kawase_degrade = 8 +kawase_iterations = 2 +kawase_offset = 2.000000 +method = gaussian +saturation = 1.000000 +toggle = none + +[command] +binding_filer = KEY_F +binding_firefox = KEY_B +binding_gamma = KEY_G +binding_kanshi = KEY_K +binding_launcher = KEY_S +binding_matrix = KEY_E +binding_mute = KEY_MUTE +binding_screenshot = KEY_SYSRQ +binding_screenshot_interactive = KEY_SYSRQ +binding_terminal = KEY_T +binding_volumedown = KEY_VOLUMEDOWN +binding_volumeup = KEY_VOLUMEUP +binding_vscode = KEY_V +binding_waybar = KEY_W +binding_wlogout = KEY_P +command_filer = Thunar +command_firefox = firefox +command_gamma = wlsunset -l 52.0 -L 5.9 -t 3000 +command_kanshi = kanshi +command_launcher = wofi --show drun +command_matrix = dbus-launch element-desktop --enable-features=UseOzonePlatform --ozone-platform=wayland +command_mute = pamixer -t +command_screenshot = grim $(date '+%F_%T').png +command_screenshot_interactive = slurp | grim -g - $(date '+%F_%T').png +command_terminal = foot +command_volumedown = pamixer -d 5 -u +command_volumeup = pamixer -i 5 -u +command_vscode = ~/packages/vscode/code +command_waybar = pkill -9 waybar; waybar +command_wlogout = wlogout + +[core] +background_color = \#000000FF +close_top_view = KEY_Q | KEY_F4 +focus_button_with_modifiers = false +focus_buttons = BTN_LEFT | BTN_MIDDLE | BTN_RIGHT +focus_buttons_passthrough = true +max_render_time = -1 +plugins = alpha animate autostart command cube expo fast-switcher grid idle invert move oswitch place resize switcher vswitch window-rules wobbly wrot zoom blur +preferred_decoration_mode = server +vheight = 3 +vwidth = 3 +xwayland = true + +[cube] +activate = BTN_LEFT +background = \#00000000 +background_mode = simple +cubemap_image = +deform = 0 +initial_animation = 350 +light = true +rotate_left = none +rotate_right = none +skydome_mirror = true +skydome_texture = +speed_spin_horiz = 0.020000 +speed_spin_vert = 0.020000 +speed_zoom = 0.070000 +zoom = 0.100000 + +[decoration] +active_color = \#000000FF +border_size = 0 +button_order = +font = Roboto +ignore_views = none +inactive_color = \#000000FF +title_height = 0 + +[expo] +background = \#00000000 +duration = 300 +offset = 10 +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 +toggle = + +[extra-gestures] +close_fingers = 20 +move_delay = 500 +move_fingers = 3 + +[fast-switcher] +activate = KEY_TAB +activate_backward = KEY_TAB +inactive_alpha = 0.700000 + +[fisheye] +radius = 450.000000 +toggle = KEY_F +zoom = 7.000000 + +[grid] +duration = 300 +restore = KEY_DOWN | KEY_KP0 +slot_b = KEY_KP2 +slot_bl = KEY_KP1 +slot_br = KEY_KP3 +slot_c = KEY_UP | KEY_KP5 +slot_l = KEY_LEFT | KEY_KP4 +slot_r = KEY_RIGHT | KEY_KP6 +slot_t = KEY_KP8 +slot_tl = KEY_KP7 +slot_tr = KEY_KP9 +type = crossfade + +[idle] +cube_max_zoom = 1.500000 +cube_rotate_speed = 1.000000 +cube_zoom_speed = 1000 +disable_on_fullscreen = true +dpms_timeout = 240 +screensaver_timeout = 180 +toggle = none + +[input] +click_method = default +cursor_size = 24 +cursor_theme = default +disable_touchpad_while_mouse = false +disable_touchpad_while_typing = false +gesture_sensitivity = 1.000000 +kb_capslock_default_state = false +kb_numlock_default_state = false +kb_repeat_delay = 400 +kb_repeat_rate = 40 +left_handed_mode = false +middle_emulation = false +modifier_binding_timeout = 400 +mouse_accel_profile = default +mouse_cursor_speed = 0.000000 +mouse_scroll_speed = 1.000000 +natural_scroll = false +scroll_method = default +tap_to_click = true +touchpad_accel_profile = default +touchpad_cursor_speed = 0.000000 +touchpad_scroll_speed = 1.000000 +xkb_layout = eu +xkb_model = +xkb_options = +xkb_rules = evdev +xkb_variant = + +[input-device] +output = + +[invert] +preserve_hue = false +toggle = KEY_I + +[move] +activate = BTN_LEFT +enable_snap = false +enable_snap_off = true +join_views = false +quarter_snap_threshold = 50 +snap_off_threshold = 10 +snap_threshold = 10 +workspace_switch_after = -1 + +[oswitch] +next_output = KEY_O +next_output_with_win = KEY_O + +[output] +mode = auto +position = auto +scale = 1.000000 +transform = normal + +[place] +mode = center + +[preserve-output] +last_output_focus_timeout = 1000000 + +[resize] +activate = BTN_RIGHT + +[scale] +allow_zoom = false +background = 0.0 0.0 0.0 0.0 +bg_color = \#1A1A1AE6 +duration = 750 +inactive_alpha = 0.750000 +interact = false +middle_click_close = false +spacing = 50 +text_color = \#CCCCCCFF +title_font_size = 16 +title_overlay = all +title_position = center +toggle = KEY_P +toggle_all = + +[scale-title-filter] +bg_color = \#00000080 +case_sensitive = false +font_size = 30 +overlay = true +share_filter = false +text_color = \#CCCCCCCC + +[simple-tile] +button_move = BTN_LEFT +button_resize = BTN_RIGHT +inner_gap_size = 5 +keep_fullscreen_on_adjacent = true +key_focus_above = KEY_K +key_focus_below = KEY_J +key_focus_left = KEY_H +key_focus_right = KEY_L +key_toggle = KEY_T +outer_horiz_gap_size = 0 +outer_vert_gap_size = 0 +tile_by_default = all + +[switcher] +next_view = KEY_TAB +prev_view = KEY_TAB +speed = 500 +view_thumbnail_scale = 1.000000 + +[vswipe] +background = \#1A1A1AFF +delta_threshold = 24.000000 +duration = 180 +enable_free_movement = false +enable_horizontal = true +enable_smooth_transition = false +enable_vertical = true +fingers = 4 +gap = 32.000000 +speed_cap = 0.050000 +speed_factor = 256.000000 +threshold = 0.350000 + +[vswitch] +background = \#00000000 +binding_down = KEY_DOWN +binding_left = KEY_LEFT +binding_right = KEY_RIGHT +binding_up = KEY_UP +binding_win_down = KEY_DOWN +binding_win_left = KEY_LEFT +binding_win_right = KEY_RIGHT +binding_win_up = KEY_UP +duration = 300 +gap = 20 +with_win_down = KEY_DOWN +with_win_left = KEY_LEFT +with_win_right = KEY_RIGHT +with_win_up = KEY_UP +wraparound = false + +[window-rules] + +[wm-actions] +minimize = none +send_to_back = none +toggle_always_on_top = none +toggle_fullscreen = none +toggle_maximize = none +toggle_showdesktop = none +toggle_sticky = none + +[wobbly] +friction = 5.000000 +grid_resolution = 6 +spring_k = 8.000000 + +[workarounds] +all_dialogs_modal = true +app_id_mode = stock +dynamic_repaint_delay = false + +[wrot] +activate = BTN_RIGHT +activate-3d = BTN_RIGHT +invert = false +reset = KEY_R +reset-one = KEY_R +reset_radius = 25.000000 +sensitivity = 24 + +[zoom] +modifier = +smoothing_duration = 300 +speed = 0.010000 + diff --git a/config-files-laptop/wofi/config b/config-files-laptop/wofi/config new file mode 100755 index 0000000..1409332 --- /dev/null +++ b/config-files-laptop/wofi/config @@ -0,0 +1,8 @@ +mode=drun +location=2 +yoffset=0 +prompt= +width=800 +height=400 +allow_images=true +allow_markup=true diff --git a/config-files-laptop/wofi/style.css b/config-files-laptop/wofi/style.css new file mode 100755 index 0000000..d1c0926 --- /dev/null +++ b/config-files-laptop/wofi/style.css @@ -0,0 +1,52 @@ +* +{ + font-family: "Roboto"; + font-size: 16px; + font-weight: 400; +} + +#window +{ + margin: 0px; + border: none; + border-color: rgba(0, 0, 0, 0.5); + border-radius: 16; + background-color: rgba(0, 0, 0, 0.5); + color: #dfe2e1; +} + +#input +{ + margin: 25px; + background-color: 191724; + color: rgb(255, 255, 255); + border-radius: 10px; + border: none; +} + +#scroll +{ + margin-bottom: 25px; +} + +#entry +{ + margin: 0px 25px; +} + +#entry:selected +{ + border-radius: 10px; + border: none; + outline: none; +} + +#entry > box +{ + margin-left: 15px; +} + +#entry image +{ + padding-right: 10px; +} diff --git a/void-desktop-install.md b/void-desktop-install.md index 1fa28d7..1ce47eb 100644 --- a/void-desktop-install.md +++ b/void-desktop-install.md @@ -1,6 +1,6 @@ -# A Void Linux desktop install (Unfinished) +# A Void Linux install (Unfinished) -This install is based on the [EFI boot stub](https://mth.st/blog/void-efistub/) blog entry of [Matthias Totschnig](https://mth.st/), the [Void Handbook](https://docs.voidlinux.org/about/index.html) and the Void Linux man pages. This guide focuses on a Void Linux x86-64 glibc/musl install. In this install gummiboot is used as bootloader and the root partition will be encrypted. +This install is based on the [EFI boot stub](https://mth.st/blog/void-efistub/) blog entry of [Matthias Totschnig](https://mth.st/), the [Void Handbook](https://docs.voidlinux.org/about/index.html) and the Void Linux man pages. This guide focuses on a Void Linux x86_64 glibc/musl install on uefi. In this install gummiboot is used as bootloader and the root partition will be encrypted. ## Provisioning @@ -10,7 +10,7 @@ It should look something like this: | Number of partition | Size | Type | |:-----:|:-----:|:-----: | -| 1 | 1 to 2 GB | EFI System | +| 1 | 1 to 2 GB or more | EFI System | | 2 | Rest of the drive | Linux filesystem | Then to create the filesystem of the efi partition. @@ -27,9 +27,11 @@ And the encrypted filesystem of the root partition. # mkfs.ext4 -L root /dev/mapper/root ``` +Other filesystems can also be used but `ext4` is the standard for most linux distobutions. + ## Installation -The encrypted partition and the efi partition have to be mounted to the main system. +To install the Void Linux distribution on the system, the encrypted partition and the efi partition have to be mounted to the main system. ``` # mount /dev/mapper/root /mnt @@ -152,7 +154,7 @@ The `uuid` is needed again and can be obtained by: Now edit `/boot/loader/void-options.conf` and insert: ``` -rw rd.luks.name==root root=/dev/mapper/root quiet splash apparmor=1 security=apparmor +rw rd.luks.name==root root=/dev/mapper/root quiet splash apparmor=1 security=apparmor loglevel=1 ``` To obtain a boot menu. A timeout may be added to `/boot/loader/loader.conf`. @@ -161,31 +163,18 @@ To obtain a boot menu. A timeout may be added to `/boot/loader/loader.conf`. timeout 4 ``` -Then to configure the locales: - -* For glibc: edit `/etc/default/libc-locales` and uncomment. +If running `glibc` the locales have to be configured, to configure the locales edit `/etc/default/libc-locales` and uncomment. ``` en_US.UTF-8 UTF-8 ``` -* For musl: +And reconfigure the locales. ``` + # xbps-reconfigure -f glibc-locales ``` -Then reconfigure the locales. - -* For glibc: - -``` -# xbps-reconfigure -f glibc-locales -``` - -* For musl: - -``` -``` To obtain better security, `apparmor` will be set to enforce. By editing `/etc/default/apparmor` and inserting: @@ -202,7 +191,7 @@ To set the internal network edit `/etc/hosts` and insert. Finally reconfigure Linux. ``` -# xbps-reconfigure -f linux{version} +# xbps-reconfigure -f linux ``` Exit the chroot. @@ -223,4 +212,449 @@ And reboot. # shutdown -r now ``` -## Post install \ No newline at end of file +## Post install + +In the post install section the installation and configuration of certain applications are elaborated. With the use of the config-files in this repository. + +To obtain these config-files the void-desktop repository may be cloned with the `git` command. + +``` +$ git clone https://git.bijl.us/luc/void-desktop.git +``` + +### Network + +NetworkManager will be used as Network daemon due to its versatility. The package was already installed with the installation, thereby it only needs to be symlinked to `/var/service` to function. + +``` +# ln -s /etc/sv/NetworkManager /var/service +``` + +NetworkManager needs the `dbus` daemon to function, in general most other applications that will be discussed in the Post install section need `dbus`. To symlink `dbus` to `/var/service`: + +``` +# ln -s /etc/sv/dbus /var/service +``` + +Then, NetworkManager may be configured to enhance the security of the system. This is especially useful for laptops etc. To do this edit `/etc/NetworkManager/NetworkManager.conf`. + +``` +[device-mac-randomization] +wifi.scan-rand-mac-address=yes +[connection-mac-randomization] +ethernet.cloned-mac-address=random +wifi.cloned-mac-address=random +``` + +### Users + +A user should be added to improve security of the system. + +``` +# useradd +``` + +The user may be added to certain groups, to give it some rights. + +``` +# usermod -aG wheel,audio,video,kvm,tty,input,storage(,bluetooth,_seatd) +``` + +The package `sudo` that is present in the `base-system` package will be removed. Since, it is bloatware. To persist this. That is sudo will not be installed ever again on the system. Edit `/etc/xbps.d/xbps.conf` and insert: + + +``` +ignorepkg=sudo +``` + +Then remove `sudo`. + +``` +# xbps-remove -y sudo +``` + +The `sudo` package will be replaced by `opendoas`. To install it: + +``` +# xbps-install -Sy opendoas +``` + +Symlink it to `/bin/sudo` so that applications which require root can still be granted by the user. + +``` +# ln -s /bin/doas /bin/sudo +``` + +And edit `/etc/doas.conf` to give users in the `wheel` group access to the `doas` command. + +``` +permit persist :wheel as root +``` + +To finalize this section, the `.bashrc` and `.bash_profile` configuration files will be copied to the home space of the user. + +``` +$ cp void-desktop/config-files/bash/.bashrc .bashrc +$ cp void-desktop/config-files/bash/.bash_profile .bash_profile +``` + +### Linux-lts + +It might be desirable to install an LTS kernel for better stability. This can be done by: + +``` +# xbps-install -Sy linux-lts linux-lts-headers +``` + +To uninstall the non-lts kernel, ignore the package through `/etc/xbps.d/xbps.conf` by adding: + +``` +ignorepkg=linux +``` + +And then removing the `linux` meta package and its dependecies: + +``` +# xbps-remove -Ry linux +``` + +### Localtime + +A "Network Time Protocol Daemon" (nptd for short) can sync the system clock with internet standard time servers. The `chrony` daemon is used as ntpd. Install it by: + +``` +# xbps-install -Sy chrony +``` + +Then to active its service: + +``` +ln -s /etc/sv/chronyd /var/service +``` + +To configure the timezone to your own edit the `/etc/rc.conf` file and set these lines: + +``` +HARDWARECLOCK="localtime" +TIMEZONE=("Europe/Amsterdam") +``` + +### Using Swap + +Swap can be utilised by the system to free up space in RAM. For most use cases it is recommend to create a swapfile that is one and a half times the size of your RAM. + +To create a swapfile of 8 GB use: + +``` +# dd if=/dev/zero of=/swapfile bs=8M count=1024 status=progress +``` + +To create a different size of swapfile, change the `count=` amount to a desirable size. + +Then to actually add the swap space to your system issue these commands: + +``` +# chmod 600 /swapfile +# mkswap /swapfile +# swapon /swapfile +``` + +To mount the swap to the system at boot, add the swapfile to your `/etc/fstab`: + +``` +/swapfile none swap defaults 0 0 +``` + +And do not forget to reconfigure the kernel after updating`/etc/fstab`: + +``` +# xbps-reconfigure -f linux +``` + +### Network filesystems + +Network filesystems may be used for enhanced workflow between multiple devices and persistance of storage. + +#### Samba + +Samba is such a Network filesystem protocol that may be used between different platforms. To use it install. + +``` +# xbps-install -Sy cifs-utils +``` + +Next, a credentials file will be created that is, `$HOME/.smbpasswd`. Edit the file and insert: + +``` +username= +password= +domain= +``` + +Concerning security considerations, the permissions may be enhanced. + +``` +# chmod 600 $HOME/.smbpasswd +``` + +Then edit `/etc/fstab` and insert: + +``` +/// $HOME/ cifs credentials=$HOME/.smbpasswd,_netdev,uid= 0 0 +``` + +Finally mount the network filesystem. + +``` +# mount -a +``` + +### Logging + +Logging may be benificial to spot certain misbehaviours or errors in the system. The `socklog-void` package will be used as logging daemon. + +``` +# xbps-install -Sy socklog-void +# ln -s /etc/sv/socklog-unix /var/service/ +# ln -s /etc/sv/nanoklogd /var/service/ +``` + +To read the logs use: + +``` +# svlogtail +``` + +Or go to `/var/log/socklog`. + +### Repositories + +To install the official Void Linux 32-bit and nonfree repositories simply install their respective packages: + +* For glibc + +``` +# xbps-install -Sy void-repo-multilib void-repo-nonfree void-repo-multilib-nonfree +``` + +* For musl + +``` +# xbps-install -Sy void-repo-nonfree +``` + +And update the repositories: + +``` +# xbps-install -S +``` + +There is also our unnofficial extra repository for some additional packages and some packages which are needed for the graphical installation. To use those add them to `/etc/xbps.d/00-repository-ample.conf`, + +* For glibc: + +``` +repository=https://git.bijl.us/lnco/xbps-ample/raw/branch/main/current +repository=https://git.bijl.us/lnco/xbps-ample/raw/branch/main/current/nonfree +``` + +* For musl + +``` +repository=https://git.bijl.us/lnco/xbps-ample/raw/branch/main/current/musl +``` + +And refresh the repositories: + +``` +# xbps-install -S +``` + +### Firmware and drivers + +#### GPU drivers + +It is necessary for a graphical enviroment to install GPU drivers. To install the drivers for your GPU use one of the following commands: + +* For Intel + +``` +# xbps-install -Sy linux-firmware-intel mesa mesa-dri vulkan-loader mesa-vulkan-intel intel-video-accel +``` + +* For AMD + +``` +# xbps-install -Sy linux-firmware-amd vulkan-loader mesa-vulkan-radeon amdvlk xf86-video-amdgpu mesa-vaapi mesa-vdpau mesa-dri +``` + +* For Nvidia (*glibc only*) + +``` +# xbps-install -Sy nvidia nvidia-opencl +``` + +##### 32-bit drivers + +(Only applicable to glibc as Void Linux musl only supports 64-bit) + +To run 32-bit applications like some videogames it will also be necessary to install the 32-bit drivers: + +* For Intel + +``` +# xbps-install -Sy mesa-32bit mesa-dri-32bit mesa-vulkan-intel-32bit vulkan-loader-32bit +``` + +* For AMD + +``` +# xbps-install -Sy vulkan-loader-32bit amdvlk-32bit mesa-32bit mesa-dri-32bit +``` + +* For Nvidia + +``` +# xbps-install -Sy nvidia-libs-32bit +``` + +#### CPU firmware + +To keep the firmware of your CPU up to date it is necessary to install the correct microcode: + +* For Intel + +(The Intel microcode requires that you are using the nonfree repository) + +``` +# xbps-install -Sy intel-ucode +``` + +And regenerate the initramfs: + +``` +# xbps-reconfigure -f linux +``` + + + +* For AMD + +``` +# xbps-install -Sy linux-firmware-amd +``` + +### Secure-boot + +#### Linux Windows dual boot + +``` +# xbps-install -Sy sbctl +# sbctl create-keys +# sbctl enroll-keys --microsoft +# sbctl sign -s /boot/EFI/Boot/BOOTX64.EFI +# sbctl sign -s /boot/EFI/gummiboot/gummibootx64.efi +# sbctl sign -s /boot/vmlinuz- +# sbctl verify +``` + +### Laptop-management + +``` +# xbps-install -Sy tlp tlpui +``` + +``` +# ln -s /etc/sv/tlp /var/service +# ln -s /etc/sv/acpid /var/service +``` + +Edit `/etc/tlp.d/00-template.conf` + +``` +CPU_ENERGY_PERF_POLICY_ON_AC=performance +CPU_ENERGY_PERF_POLICY_ON_BAT=power +``` + +## Graphical session + +### Session manager + +To use a graphical enviroment it is necessary to start a seat and session manager. For a minimal install it is recommended to use `seatd`, `dumb_runtime_dir` and `polkit`. To install those run: + +``` +# xbps-install -Sy seatd dumb_runtime_dir polkit +``` + +Then to enable them: + +``` +# ln -s /etc/sv/seatd /var/service +# ln -s /etc/sv/polkitd /var/service +``` + +And for `dumb_runtime_dir` to function, configure `/etc/pam.d/system-login` by uncommenting: + +``` +session optional pam_dumb_runtime_dir.so +``` + +For some sane polkit rules add these lines to `/etc/polkit-1/rules.d/00-polkit.rules`: + +``` +polkit.addRule(function(action, subject) +{ + if (action.id == "org.freedesktop.policykit.exec" && action.lookup("program") == "/bin/shutdown" && subject.isInGroup("wheel")) + return polkit.Result.YES; +}); + +polkit.addRule(function(action, subject) +{ + if (action.id == "org.freedesktop.policykit.exec" && action.lookup("program") == "/bin/zzz" && subject.isInGroup("wheel")) + return polkit.Result.YES; +}); + +polkit.addRule(function(action, subject) +{ + if (action.id.startsWith("org.freedesktop.udisks2.") && subject.isInGroup("storage")) + return polkit.Result.YES; +}); +``` + +Or for the more lazy under us copy `void-desktop/config-files/polkit/00-polkit.rules` to `/etc/polkit-1/rules.d/`. + +``` +# cp -r void-desktop/config-files/polkit/00-polkit.rules /etc/polkit-1/rules.d/ +``` + +### Login manager + +To make it easier to log into the system, set up a login manager. For a minimal and wayland-compatible login manager use `greetd` with `gtkgreet`. Install them with: + +``` +# xbps-install -Sy greetd gtkgreet +``` + + + +### Window manager + +There are many different window managers and desktop enviroments which can provide a decent experience. Wayfire is a functional, relativily lightweight and good looking wayland window manager and will be used for this install. + +### Audio + +### Essential applications + +### Auto-mounting + +### Printing + +### Bluetooth + +## Misc + +### Virt-manager + +### Wine + +### Steam \ No newline at end of file