.pictures | ||
bspwm/.config | ||
hyprland/.config | ||
menu/.config/rofi | ||
music | ||
script | ||
startx | ||
sway | ||
system/etc | ||
terminal | ||
web | ||
.gitignore | ||
header.adoc | ||
mixer | ||
packages.yaml | ||
README.adoc | ||
setup.sh |
Dotfiles
Distro: Void Linux
WM: BSPWM
DM: Xinit
Shell: Fish
Terminal: Kitty
Panel: Polybar (+ xfce-panel for global menu)
Compositor: Picom (branch with round corners and kawase blur)
Application Launcher: Rofi
File Manager: Vifm, Fzf, dolphin
Text Editor: Neovim
Image viewer: Imv
Video player: Mpv
Setup
The dotfiles are maintained with stow
.
The custom script setup.sh
read the list of packages present in ./packages.yaml
and automate the installation of necessary packages and services to be enabled.
Warning
|
Backup your dotfiles before running the script. |
This basic setup will get you BSPWM up and running with Kitty terminal and Neovim configuration.
$ ./setup.sh terminal
$ ./setup.sh bspwm
$ ./setup.sh menu
$ ./setup.sh music
Music
Album cover is generated with ~/.config/ncmpcpp/art.sh
, the cover pictured is searched and ffmpeg
is used to generate the thumbnail with round borders and cropped to 300px.
The cover is displayed using Kitty icat with ~/.config/ncmpcpp/kitty.sh
.
The alias music
used to open the music player make just use of background processes to have the cover preview and ncmpcpp on the same window.
abbr music 'mpc -q play; ~/.config/ncmpcpp/art.sh; sleep 1; ~/.config/ncmpcpp/kitty.sh &; ncmpcpp'
Browse files
Vifm
Vifm has image preview activated using the custom script ~/.config/vifm/scripts/preview
, can be previewed pictures, video files, music spectrograms, epub and pdfs.
-
Set wallpaper and update color scheme with kbd:[w]
-
Extract archives with kbd:[x]
Fzf
The terminal has integrated fzf support. A preview script is available at ~/.config/kitty/preview
-
Find files with kbd:[Ctrl + t]
-
Command history with kbd:[Ctrl + r]
Imv
Imv image viewer has been tuned to work with window swallowing and to be a very good manga reader.
-
Running the
manga
command defined at~/.config/fish/functions/manga.fish
will open recursively all files in the folder sorted by name. It will also open the last visited page for it is tracking reading progress. -
The window title is updated with
[<current-page>/<total-page>]: <folder-name>
status. -
Next page start at the top (initial_pan = 0 0)
-
Change scaling mode with kbd:[s]
-
Tag a picture with kbd:[m], tags are available under
~/tags
Note
|
Files stored in tags can be displayed with kbd:[Super + Shift + t ] |
How it works
Imv is run with window properties changed using this black magic spell.
alias imv 'imv -c "exec _wid=\$(xdo id);xprop -f WM_CLIENT_MACHINE 8s -set WM_CLIENT_MACHINE \$(hostname) -id \$_wid;xprop -f _NET_WM_PID 32c -set _NET_WM_PID \$imv_pid -id \$_wid;pidswallow -gt \$_wid"'
Reading progress is stored under ~/.cache/imv/
in the base64 hash of the directory path.
The imv config ~/.config/imv/config
has the following line that update the window title and store reading progress.
title_text = $(xdotool getactivewindow set_window --name "[ $imv_current_index / $imv_file_count ] : $(echo "${PWD##*/}")"; echo "$imv_current_index" > ~/.cache/imv/$(echo $PWD | base64 -w0) )
Launch application
Rofi is the application launcher and is called with kbd:[Super + Space].
Background color is updated with the theme using pywal
templates.
Install rofi with:
$ ./setup.sh menu
Read manga
Have rofi manage your manga with kbd:[Super + Shift + Space ]. The selected volume will be open with the manga
utility explained before.
To generate new entries execute this command defined at ~/.config/fish/functions/add_manga.fish
with the full path to the manga.
$ add_manga /path/to/manga
This utility works best with official releases bundled in .cbz
files.
Use this command to extract images from .cbz
releases.
find -type f -iname '*.cbz' | xargs -I% atool -x %
Note
|
The cover images are automatically generated with the first image of each volume and available in ~/.config/manga .
|
Note
|
Each entry is in fact a .desktop file found in ~/.local/share/applications .
|
Note
|
In this screenshot the entries were generated with add_manga ~/Books/Sleepy\ Princess\ in\ the\ Demon\ Castle\ \(Digital\)\ \(danke-Empire\)/ .
|
Qt theme and global menu
Qt applications use Kvantum with Inverse-dark theme.
Global menu is set with xfce4-panel
that was just moved on top of polybar.
Install qt applications with:
$ ./setup.sh qtapps