Software preferences and settings.
- Install Config
- Base System
- Desktop Environment
- Window Manager
- Fonts
- Qt Wayland
- Statusbar
- Application Launcher
- Lock Screen
- Terminal Emulator
- Shell
- Policy Kit
- Clipboard Manager
- Multimedia Server
- Volume Control
- PipeWire Graph
- Brightness Control
- Wallpapers
- Notifications
- Screencasting
- Screen Recorder
- Screenshots
- Screenshot editor
- File Manager
- File Archiver
- Image Viewer
- Calendar
- Look and Feel
- Display Settings
- Screen mirror
- Screen magnifier
- General Tools
- Web Browser
- Audio Player
- Video Player
- Document Viewer
- Office Suite
- Calculator
- Audio Editor and Recorder
- Recording and Broadcasting
- Flashcards
- Video Editor
- Password Manager
- System Information Tool
- System's Hardware Information Tool
- File Transferring and Synchronization
- SSD and HDD Monitoring
- Directory Tree Listing
- Access and Manipulate Disks
- List Connected USB Devices
- Development tools
- Servers
- Gaming
- Howtos
In order to install this config, first clone this repo and execute the make-symbolic-links.sh script.
sh make-symbolic-links.shArch Linux
My base system consists in a basic arch linux installation that uses btrfs filesystem, network manager, vim and man pages.
- base
- base-devel
- linux-lts
- linux-firmware
- linux-headers
- btrfs-progs
- sudo
- intel-ucode
- amd-ucode
- networkmanager
- vim
- man-db
- man-pages
- texinfo
- xdg-user-dirs
- dosfstools
- ntfs-3g
- pacman-contrib
Check out the Arch Linux Installation for the full manual.
https://wiki.archlinux.org/title/NVIDIA
In case a Nvidia Graphic Card ins installed, the drivers must be installed, follow the arch linux wiki.
Sway
Sway (contracted from SirCmpwn's Wayland compositor [1]) is a compositor for Wayland designed to be fully compatible with i3.
The following is the list of fonts that I use.
Some Apps like KeePassXC and qpwgraph requires the qt-wayland packages to work properly.
Waybar
https://github.com/Alexays/Waybar
Highly customizable Wayland bar for Sway and Wlroots based compositors.
Wofi
https://hg.sr.ht/~scoopta/wofi
Wofi is a launcher/menu program for wlroots based wayland compositors such as sway.
Swaylock
https://github.com/swaywm/swaylock
swaylock is a screen locking utility for Wayland compositors.
Foot
https://codeberg.org/dnkl/foot
Foot is a fast, lightweight and minimalistic Wayland terminal emulator.
Zsh
Zsh is a powerful shell that operates as both an interactive shell and as a scripting language interpreter.
lxqt-policykit
https://github.com/lxqt/lxqt-policykit
Polkit is an application-level toolkit for defining and handling the policy that allows unprivileged processes to speak to privileged processes: It is a framework for centralizing the decision making process with respect to granting access to privileged operations for unprivileged applications.
Cliphist
https://github.com/sentriz/cliphist
Wayland clipboard manager with support for multimedia.
PipeWire
PipeWire is a project that aims to greatly improve handling of audio and video under Linux.
PulseAudio Volume Control
https://freedesktop.org/software/pulseaudio/pavucontrol/
PulseAudio Volume Control (pavucontrol) is a simple GTK based volume control tool ("mixer") for the PulseAudio sound server.
In order to use speakers and headphones in the same sound card the "Auto-Mute Mode" has to be disabled. Exec alsamixer, select the sound card and disable the Auto-Mute.
qpwgraph
https://gitlab.freedesktop.org/rncbc/qpwgraph
Qpwgraph is a graph manager dedicated to PipeWire, using the Qt C++ framework, based and pretty much like the same of QjackCtl.
brightnessctl
https://github.com/Hummer12007/brightnessctl
A program to read and control device brightness.
Wallpapers for background and lockscreen are expected to be localted in ~/.local/share/wallpapers/background.png and ~/.local/share/wallpapers/lockscreen.png respectively.
The recommended way to set the wallpapers is converting them using FFmpeg, for eample.
ffmpeg -i /path/to/my/background.jpg ~/.local/share/wallpapers/background.png
ffmpeg -i /path/to/my/lockscreen.png ~/.local/share/wallpapers/lockscreen.pngMako
https://github.com/emersion/mako
A lightweight notification daemon for Wayland. Works on Sway.
https://wiki.archlinux.org/title/Screen_capture#Wayland
https://wiki.archlinux.org/title/PipeWire#WebRTC_screen_sharing
The Screencasting in Wayland can be achieved by installing the following packages.
The Screencasting can be tested in the following page:
https://mozilla.github.io/webrtc-landing/gum_test.html
wf-recorder
https://github.com/ammen99/wf-recorder
wf-recorder is a utility program for screen recording of wlroots-based compositors (more specifically, those that support wlr-screencopy-v1 and xdg-output).
Record a simple video with audio.
wf-recorder --audio --file ~/Videos/test.mkvRecord a 60 fps video using libx265 for video and libopus for audio.
wf-recorder --audio --framerate 60 --codec libx265 -p preset=superfast -p crf=28 --audio-codec libopus --file ~/Videos/test_libx265.mkvRecord a 60 fps video using hardware accelerated hevc_nvenc for video and libopus for audio.
wf-recorder --audio --framerate 60 --codec hevc_nvenc -p preset=p4 --audio-codec libopus --file ~/Videos/test_hevc_nvenc.mkvList all FFmpeg encoders:
ffmpeg -encodersShow parameters of encoder:
ffmpeg -h encoder=libx265To show more information and examples search in the web, for example:
https://trac.ffmpeg.org/wiki/Encode/AV1
grim
https://gitlab.freedesktop.org/emersion/grim
Grab images from a Wayland compositor.
.config/screenshot/take_full_screenshot.sh
.config/screenshot/take_region_screenshot.sh
swappy
https://github.com/jtheoof/swappy
A Wayland native snapshot editing tool, inspired by Snappy on macOS.
PCManFM-Qt
https://github.com/lxqt/pcmanfm-qt
File manager and desktop icon manager (Qt port of PCManFM and libfm).
.config/pcmanfm-qt/default/settings.conf
LXQt Archiver
https://github.com/lxqt/lxqt-archiver
A simple & lightweight desktop-agnostic Qt file archiver.
LXImage-Qt
https://github.com/lxqt/lximage-qt
The image viewer and screenshot tool for lxqt.
.config/lximage-qt/settings.conf
thunderbird
https://www.thunderbird.net/en-US/
Thunderbird is an open source email, news, and chat client previously developed by the Mozilla Foundation.
GTK3 settings editor adapted to work in the wlroots environment.
.config/xsettingsd/xsettingsd.conf
nwg-displays
https://github.com/nwg-piotr/nwg-displays
Output management utility for sway and Hyprland.
wl-mirror
https://github.com/Ferdi265/wl-mirror
A simple Wayland output mirror client.
View the available outputs.
swaymsg -t get_outputsMirror the desired output.
wl-mirror DP-3You can also use the wl-present wrapper and select the output with the mouse.
wl-present mirrorIt's not possible yet on sway, see:
https://www.reddit.com/r/swaywm/comments/15v29nf/does_a_swaywlroots_magnifying_glass_tool_exists/
Firefox
https://www.mozilla.org/en-US/firefox/
Firefox is a popular open source graphical web browser from Mozilla.
Install the following Extensions:
In order to customize toolbar, right click tab bar, select customize toolbar and enable Title Bar. Go to General settings, first disable AI slop, then enable "Ask before closing multiple tabs", "Open previous windows and tabs", play DRM content, autoscrolling and disable link previews.
Now go to Home and set shortcuts to 2 rows, then go to Privacy Security, disable "Ask to save passwords" and "Save and autofill payment info".
Audacious
https://audacious-media-player.org/
Audacious is a free and advanced audio player. It is focused on audio quality and supports a wide variety of audio codecs, and is easily extensible through third-party plugins.
mpv
mpv is a media player based on MPlayer and the now unmaintained mplayer2.
With MPV you can play video devices like webcams and HDMI capturer.
List connected devices:
v4l2-ctl --list-devicesThe output will look like this:
UGREEN 15389: UGREEN 15389 (usb-0000:0c:00.3-1):
/dev/video2
/dev/video3
/dev/media1
HD Pro Webcam C920 (usb-0000:0c:00.3-2):
/dev/video0
/dev/video1
/dev/media0
Chose a device, for example /dev/video2, now list the input formats available.
v4l2-ctl --list-formats-ext -d /dev/video2The output is too long, It shows the available formats, resolutions and framerates, for example:
ioctl: VIDIOC_ENUM_FMT
Type: Video Capture
[0]: 'YUYV' (YUYV 4:2:2)
Size: Discrete 2560x1440
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Size: Discrete 1920x1080
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.100s (10.000 fps)
In this case I chose YUYV 4:2:2 1920x1080 60fps, so I run the next command. It's recommended to add the low-latency profile and untimed flag to get rid of possible lag.
mpv av://v4l2:/dev/video2 --profile=low-latency --untimed --demuxer-lavf-o=input_format=yuyv422,video_size=1920x1080,framerate=60zathura
https://pwmt.org/projects/zathura/
zathura is a customizable document viewer with vi-like keybindings. It provides a minimalistic and space-saving interface. Users interact with zathura primarily with the keyboard. Different file formats are supported through plugins.
LibreOffice
LibreOffice is a private, free and open source office suite.
In order to set the Icons for the dark theme go to: Tools / Options, in the floating menu select LibreOffice / View, in the Icon Theme select Breeze (Dark).
Qalculate
Qalculate! is a multi-purpose cross-platform desktop calculator.
Audacity
Audacity is an easy-to-use, multi-track audio editor and recorder for Windows, macOS, GNU/Linux and other operating systems.
OBS Studio
Open Broadcaster Software (OBS) is an open source cross-platform video recording and live-streaming application.
Anki
Anki is a flashcard program that helps you spend more time on challenging material, and less on what you already know.
Kdenlive
Kdenlive is a powerful free and open source cross-platform video editing program made by the KDE community.
KeePassXC
Let KeePassXC safely store your passwords and auto-fill them into your favorite apps, so you can forget all about them.
Fastfetch
https://github.com/fastfetch-cli/fastfetch
Fastfetch is a neofetch-like tool for fetching system information and displaying it in a visually appealing way.
Dmidecode
https://www.nongnu.org/dmidecode/
Dmidecode reports information about your system's hardware as described in your system BIOS according to the SMBIOS/DMI standard.
rsync
rsync is an open source utility that provides fast incremental file transfer.
Smartmontools
https://www.smartmontools.org/
Control and monitor S.M.A.R.T. enabled ATA and SCSI Hard Drives.
tree
https://gitlab.com/OldManProgrammer/unix-tree
A directory listing program displaying a depth indented list of files.
udisks
https://www.freedesktop.org/wiki/Software/udisks/
Daemon, tools and libraries to access and manipulate disks, storage devices and technologies.
usbutils
https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usbutils.git/
A collection of USB tools to query connected USB devices.
Neovim
Neovim is a fork of Vim aiming to improve the codebase, allowing for easier implementation of APIs, improved user experience and plugin implementation.
.config/nvim/ftplugin/java.lua
Tmux
https://github.com/tmux/tmux/wiki
tmux is a terminal multiplexer. It lets you switch easily between several programs in one terminal, detach them (they keep running in the background) and reattach them to a different terminal.
Visual Studio Code
https://code.visualstudio.com/
Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.
Install the following Extensions:
.config/Code - OSS/User/settings.json
.config/Code - OSS/User/keybindings.json
DBeaver
DBeaver Community is a free cross-platform database tool for developers, database administrators, analysts, and everyone working with data.
btop
https://github.com/aristocratos/btop
A monitor of resources.
htop
A cross-platform interactive process viewer.
curl
Command line tool and library for transferring data with URLs.
Git
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
jq
jq is a lightweight and flexible command-line JSON processor.
lsof
https://github.com/lsof-org/lsof
lsof is a command listing open files.
bind
A complete, highly portable implementation of the DNS protocol.
OpenSSL
OpenSSL is a software library for applications that provide secure communications over computer networks against eavesdropping, and identify the party at the other end. It is widely used by Internet servers, including the majority of HTTPS websites.
Java is a programming language originally developed by Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform.
- jdk25-openjdk
- openjdk25-doc
- openjdk25-src
- jdk21-openjdk
- openjdk21-doc
- openjdk21-src
- jdk8-openjdk
- openjdk8-doc
- openjdk8-src
- maven
Read the local documentation in: /usr/share/doc/java8-openjdk/api/index.html, /usr/share/doc/java21-openjdk/api/index.html and /usr/share/doc/java25-openjdk/api/index.html.
JavaScript often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS.
Go is an open source programming language supported by Google.
Go has some local documentation files, for example: /usr/share/doc/go/go_spec.html.
Run the following command to read Go's standard library documentation.
go doc -httpPython is an interpreted, interactive, object-oriented programming language.
Read the local documentation in /usr/share/doc/python/html/index.html.
Jellyfin
Jellyfin is a free and open-source multimedia application suite designed to organize, manage, and share digital media files to networked devices.
Enable and start the service.
systemctl enable jellyfin.service
systemctl start jellyfin.serviceSyncthing
Syncthing is a continuous file synchronization program.
Enable and start the service.
systemctl enable syncthing@myusername.service
systemctl start syncthing@myusername.serviceOpenSSH
https://www.openssh.com/portable.html
SSH protocol implementation for remote login, command execution and file transfer.
Enable and start the service.
systemctl enable sshd.service
systemctl start sshd.servicecaddy
Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS.
See Prepare machine for gaming
https://store.steampowered.com/about/
Steam is a popular game distribution platform by Valve.
Enable proton-ge, go to Steam > Settings > Compatibility and change the default compatibility tool.
In order to change proton environment variables, go to game properties and in the launch options set them, for example:
PROTON_USE_WINED3D=1 %command%
See the next link to see the list of the available proton environment variables.
https://github.com/GloriousEggroll/proton-ge-custom?tab=readme-ov-file#modification
Lutris is a video game preservation platform aiming to keep your video game collection up and running for the years to come.
Lutris has a bunch of optional dependencies for different purposes, the recommended ones are the next:
Some emulators need to be installed outside of lutris. The recommended way is downloading the appimages and move them to ~/.local/bin.
Create the directory.
mkdir -p ~/.local/binTo use the installed emulators, in lutris install them as a source and change the custom executable for the runner, for example: ~/.local/bin/Snes9x-1.63-x86_64.AppImage.
Set GE-Proton as the default wine version, go to the wine runner settings and change the Wine version.
In order the be able to run steam games, the steam client has to be installed, if a run can't be run, make sure steam is running in the background.
You must be logged in in the third party clients like Epic Games, Ubisoft Connect, Origin, etc. in the sources to be able to download and run the games.
Go to the howtos section.