Skip to content

owl4ce/dotfiles

NEVERSKIP/IGNORE/AVOIDREADME
__/) ‬‬‬‍ ‬ ‬ ‬ ‬__‍‬ ‍‍
.‍‬-(_‍_(=:| ‍‬ ‍‬‍‍ ‬ | |o| | 
‍‬‍|\ | \) ‍‬_‍‍_| ‍‬‍‍__‍‬_|‍‬‬_| |‍‬‍ |‍‍ |_‍‬‍‍,‬‍
‍\‍‬‍‍ ||/‍ ‍‬‍‍|/\_| |/‍‬‬ | |/|//\‍‍_
\|| ‍‬‍ \_/|_/\__/|_‬‬/‍‬‍|__/|_‍‬‍‍/|__/‬|__/\/
\| |\
| 6F77 6C34 63 65 |/withaesthetics
SETUPKEYBINDSGALLERYGUIDES

:octocat:HI THERE! THANKS FOR DROPPING BY!

You might be here looking for (Linux) rice reference or to (full?) replicate my personal configuration of my favorite Openbox Window Manager and several apps as well. ⛄

Most were written from scratch. Some details:

  • Window Manager🍱Openboxdual themes!
  • Openbox Menu🌀obmenu-generatorfor life!
  • Panel🌼Tint2with material design and glyphs!
  • Application Launcher🚀Rofiwhich blazing fast!
  • Desktop Notification🌿Dunstwhich minimalist!
  • Terminal Emulator🍃URxvtwhich lightest!
  • Shell🐚Zshwithoh-my-zshframework!
  • Compositor🍧Picomfor perfection topping!
  • File Manager🎴Thunarcustomized side-pane!
  • Media Player🌆mpvwith modern OSC!
  • Music Player🌌Ncmpcppwith album-art!
  • GUI (Basic) IDE👾Geanyfor the win!

CLICKORTAP❲☰❳TOSHOWTABLE-OF-CONTENTS

[mirror]

🍂 ‎CHANGELOGS

⚠️
PURELY CONFIGURED AT 1366x768 WITH 96 DPI
Powered by Gentoo/Linux x86_64

From the previous major versions (0-3.x).

Innovations
Renovations
  • GTK theme and icon updates and fixes
    • Papirus-Customand Papirus-Dark-Custom patches
      • 16x16
        • apps
          • diodon.svg
        • devices
          • drive-harddisk.svg
          • drive-removable-media-usb.svg
          • phone.svg
        • places
          • folder.svg
          • folder-documents.svg 🡲 folder.svg
          • folder-download.svg 🡲 folder.svg
          • folder-music.svg 🡲 folder.svg
          • folder-network.svg
          • folder-pictures.svg 🡲 folder.svg
          • folder-video.svg 🡲 folder.svg
      • 48x48
        • status
          • battery-ac-adapter.svg
          • battery-caution-charging.svg
          • battery-caution.svg
          • battery-empty-charging.svg
          • battery-empty.svg
          • battery-full-charged.svg
          • battery-full-charging.svg
          • battery-full.svg
          • battery-good-charging.svg
          • battery-good.svg
          • battery-low-charging.svg
          • battery-low.svg
          • battery-missing.svg
          • bluetooth-active.svg
          • bluetooth-disabled.svg
          • bluetooth.svg
          • dialog-error.svg
          • dialog-information.svg
          • dialog-question.svg
          • dialog-warning.svg
          • network-error.svg
          • network-offline.svg
          • network-wired-disconnected.svg
          • network-wireless-encrypted.svg
          • nm-signal-100.svg
          • nm-signal-25.svg
          • nm-signal-50.svg
          • nm-signal-75.svg
          • notification-audio-volume-high.svg
          • notification-audio-volume-low.svg
          • notification-audio-volume-medium.svg
          • notification-audio-volume-muted.svg
          • notification-battery-low.svg
          • notification-device-eject.svg
          • notification-display-brightness-full.svg
          • notification-display-brightness-high.svg
          • notification-display-brightness-low.svg
          • notification-display-brightness-medium.svg
          • notification-display-brightness-off.svg
          • notification-network-ethernet-connected.svg
          • notification-network-wireless-disconnected.svg
          • notification-network-wireless.svg
  • Reconfigure program configurations
  • Restructure git directory layouts
  • Rewrite shell-scripts completely
    • Use POSIX-compliant sh for portability
    • Harden algorithm as possible for safety
    • Use built-in shell features for high-performance
    • Optimize algorithm to reduce overheads
    • Bug fixes across ecosystem environments
Removals
  • Mostly deprecated configs and BLOBs such as images

..., and is still being improved.

🌱 ‎SETUP

Everything done manually step-by-step. Let's learn.Tiếng Trung giáo trình

🌼 ‎INSTALLATION (DEPENDENCIES)

1. Debian-based Linux distributions

Debian SIDorDevuan (ceres?)recommended.

Didn't know how to install packages?

💲 sudo apt install atom1 atom2... atomN

X.Org server and {it's,core} utilities. This is essentials.

xserver-xorg-core x11-xserver-utils psmisc

Contents of1, 2, 3.

Here for Python (3) if not already installed.


Now, the UI kits and functionality. This is required.

URxvt is highly recommended terminal emulator by default. Picom is optional, but recommended.

dunst nitrogen openbox rofi rxvt-unicode tint2 picom libgtk3-perl#obmenu-generator

Contents of1, 2, 3, 4, 5, 6, 7, 8.

Here to install obmenu-generator.


Audio-server and audio stuff.

I personally use pulseaudio, mpd and ncmpcpp are recommended as they are integrated by default.

pulseaudio mpd mpc ncmpcpp

Contents of1, 2, 3, 4.

MPRIS-enabled media players are also integrated, such asspotify.


Extended utilities. Required, but just as necessary.

All of the below if not installed, certain functionality will display a message when needed, some will not.

alsa-utils brightnessctl imagemagick scrot w3m-img wireless-tools xclip xsettingsd xss-lock

Contents of1, 2, 3, 4, 5, 6, 7, 8, 9.

Choose your own polkit authentication-agent.lxpolkit?


Additionals for completion of desktop compositions.

Just like mpd and ncmpcpp, configurations are included asEXTRA_JOYFUL,some are integrated.

thunar thunar-archive-plugin thunar-volman ffmpegthumbnailer tumbler

Contents of1, 2, 3, 4, 5.

Gsimplecal was used to display calendar pop-ups from the tint2 panel, and pavucontrol to control pulseaudio-sinks.

geany geany-plugins gimp gsimplecal inkscape mpv parcellite pavucontrol viewnior xfce4-power-manager

Contents of1, 2, 3, 4, 5, 6, 7, 8, 9, 10.

I personally don't use neofetch anymore and use system-information via rofi, it's already scripted.

htop nano#neofetch

Contents of1, 2, 3.

Here for improved nanorc with syntax-highlighting.

I personally use NetworkManager (and IWD as wireless back-end) with nm-applet, here it is.

1. Arch-based Linux distributions

Arch LinuxandArtix Linuxrecommended.

Didn't know how to install packages?

💲 sudo pacman -S atom1 atom2... atomN

X.Org server and {it's,core} utilities. This is essentials.

xorg-server xorg-xrandr xorg-xrdb psmisc

Contents of1, 2, 3, 4.

Here for Python (3) if not already installed.


Now, the UI kits and functionality. This is required.

URxvt is highly recommended terminal emulator by default. Picom is optional, but recommended.

AUR
rxvt-unicode-truecolor-wide-glyphs
obmenu-generator

dunst nitrogen openbox rofi rxvt-unicode-truecolor-wide-glyphs tint2 picom obmenu-generator perl-gtk3

Contents of1, 2, 3, 4, 5, 6, 7, 8, 9.


Audio-server and audio stuff.

I personally use pulseaudio, mpd and ncmpcpp are recommended as they are integrated by default.

pulseaudio pulseaudio-alsa mpd mpc ncmpcpp

Contents of1, 2, 3, 4, 5.

MPRIS-enabled media players are also integrated, such asspotify.


Extended utilities. Required, but just as necessary.

All of the below if not installed, certain functionality will display a message when needed, some will not.

alsa-utils brightnessctl imagemagick scrot w3m wireless_tools xclip xsettingsd xss-lock

Contents of1, 2, 3, 4, 5, 6, 7, 8, 9.

Choose your own polkit authentication-agent. polkit-gnome?


Additionals for completion of desktop compositions.

Just like mpd and ncmpcpp, configurations are included asEXTRA_JOYFUL,some are integrated.

thunar thunar-archive-plugin thunar-volman ffmpegthumbnailer tumbler

Contents of1, 2, 3, 4, 5.

Gsimplecal was used to display calendar pop-ups from the tint2 panel, and pavucontrol to control pulseaudio-sinks.

geany geany-plugins gimp gsimplecal inkscape mpv parcellite pavucontrol viewnior xfce4-power-manager

Contents of1, 2, 3, 4, 5, 6, 7, 8, 9, 10.

I personally don't use neofetch anymore and use system-information via rofi, it's already scripted.

htop nano#neofetch

Contents of1, 2, 3.

Here for improved nanorc with syntax-highlighting.

I personally use NetworkManager (and IWD as wireless back-end) with nm-applet, here it is.

1. Gentoo source-based Linux distributions

Gentoo Linuxextremely recommended. Expert!

Didn't know how to install packages?

💲 doas emerge -av atom1 atom2... atomN

Note that some packages require acceptingarch~ keywords. It's highly recommended.

See also USE flags, it's complicated to explain. You may want to see mine.


X.Org server and it's utilities. This is essentials.

x11-base/xorg-server x11-apps/xrandr

Contents of1, 2.


Now, the UI kits and functionality. This is required.

URxvt is highly recommended terminal emulator by default. Picom is optional, but recommended.

My ownLilium portage overlaycontains enhancements.
x11-terms/rxvt-unicode::lilium

For pixel-perfect, subtract 1px in~/.Xresourcesand~/.joyfuld.

x11-misc/dunst x11-misc/nitrogen x11-wm/openbox x11-misc/rofi x11-terms/rxvt-unicode::lilium x11-misc/tint2\=x11-misc/picom-9999 x11-misc/obmenu-generator dev-perl/Gtk3

Contents of1, 2, 3, 4, 5, 6, 7, 8, 9.


Audio-server and audio stuff.

I personally use pulseaudio, mpd and ncmpcpp are recommended as they are integrated by default.

media-sound/pulseaudio media-sound/mpd media-sound/mpc media-sound/ncmpcpp

Contents of1, 2, 3, 4.

MPRIS-enabled media players are also integrated, such asspotify.


Extended utilities. Required, but just as necessary.

All of the below if not installed, certain functionality will display a message when needed, some will not.

I personally don't useGURU portage overlay and build manually instead.
app-misc/brightnessctl::guru

app-misc/brightnessctl::guru media-gfx/imagemagick media-gfx/scrot www-client/w3m net-wireless/wireless-tools x11-misc/xclip x11-misc/xsettingsd x11-misc/xss-lock

Contents of1, 2, 3, 4, 5, 6, 7, 8.

Choose your own polkit authentication-agent. polkit-gnome?


Additionals for completion of desktop compositions.

Just like mpd and ncmpcpp, configurations are included asEXTRA_JOYFUL,some are integrated.

xfce-base/thunar xfce-extra/thunar-archive-plugin xfce-extra/thunar-volman media-video/ffmpegthumbnailer xfce-extra/tumbler

Contents of1, 2, 3, 4, 5.

Gsimplecal was used to display calendar pop-ups from the tint2 panel, and pavucontrol to control pulseaudio-sinks.

I personally don't useMiramir's portage overlay and build manually instead.
x11-misc/gsimplecal::miramir

dev-util/geany dev-util/geany-plugins media-gfx/gimp x11-misc/gsimplecal::miramir media-gfx/inkscape media-video/mpv x11-misc/parcellite media-sound/pavucontrol media-gfx/viewnior xfce-extra/xfce4-power-manager

Contents of1, 2, 3, 4, 5, 6, 7, 8, 9, 10.

I personally don't use neofetch anymore and use system-information via rofi, it's already scripted.

sys-process/htop#app-misc/neofetch

Contents of1, 2.

Here for improved nanorc with syntax-highlighting.

I personally use NetworkManager (and IWD as wireless back-end) with nm-applet, here it is.

1. Another independent Linux distributions

Needcontributorsto encapsulate dependencies.

The Linux philosophy is ‘Laugh in the face of danger’.
Oops. Wrong One. ‘Do it yourself’.

- Linus Torvalds
1. Berkeley Software Distribution (BSD) variants

TheBSD variants haven't been tested at all, probably some of the extensions areGNU's andLinux-specific.

2. Additionally Z shell with oh-my-zsh plugins

Ensure you have installed zsh with system package manager as per distribution.

💲 sh -c"$(curl -fsSL https://raw.githubusercontent /ohmyzsh/ohmyzsh/master/tools/install.sh)"
💲 sudo chsh -s$(command -v zsh)
💲 git clone --depth 1 https://github /zdharma-continuum/fast-syntax-highlighting.git${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/fast-syntax-highlighting
💲 git clone --depth 1 https://github /zsh-users/zsh-autosuggestions.git${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
💲 git clone --depth 1 https://github /zsh-users/zsh-completions.git${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-completions

🌺 ‎INSTALLATION (PREREQUISITES)

1. Fonts
Typefaces License The path of extracted files from the archive
GNOME Cantarell OFL-1.1 cantarell-fonts-0.303.1/prebuilt/Cantarell-VF.otf
Google Comfortaa Regular OFL-1.1
Google Comfortaa Bold OFL-1.1
Feather IcoMoon MIT(FAQ)
Material IcoMoon Apache-2.0
Iosevka Nerd Font... Mono LICENSE
M+ 1mn Nerd Font Complete LICENSE
M+ 1mn Nerd Font... Mono LICENSE
GNU Unifont LICENSE

Wgetall the above fonts (and extract if archived). Then, put them as instructed into the~/.fontsdirectory.

💲 mkdir -pv~/.fonts/{Cantarell,Comfortaa,IcoMoon-Custom,Nerd-Patched,Unifont}

💲 wget --no-hsts -cNP~/.fonts/Comfortaa/ https://raw.githubusercontent /googlefonts/comfortaa/main/fonts/OTF/Comfortaa-{Bold,Regular}.otf
💲 wget --no-hsts -cNP~/.fonts/IcoMoon-Custom/ https://github /owl4ce/dotfiles/releases/download/ng/{Feather,Material}.ttf
💲 wget --no-hsts -cNP~/.fonts/Nerd-Patched/ https://github /owl4ce/dotfiles/releases/download/ng/M+.1mn.Nerd.Font.Complete.ttf
💲 wget --no-hsts -cNP~/.fonts/Nerd-Patched/ https://github /owl4ce/dotfiles/releases/download/ng/{M+.1mn,Iosevka}.Nerd.Font.Complete.Mono.ttf
💲 wget --no-hsts -cNP~/.fonts/Unifont/ https://unifoundry /pub/unifont/unifont-14.0.02/font-builds/unifont-14.0.02.ttf
💲 wget --no-hsts -cN https://download-fallback.gnome.org/sources/cantarell-fonts/0.303/cantarell-fonts-0.303.1.tar.xz

💲 tar -xvf cantarell*.tar.xz --strip-components 2 --wildcards -C~/.fonts/Cantarell/\*/\*/Cantarell-VF.otf

Additionally, install the noto (emoji takes precedence) fonts for broad support.Debian. Arch.Gentoo.

2. Icons
Icons License Usability
Gladient PROPIETARY (?) Openbox desktop (root-)menu
Papirus-Custom GPL-3.0 Universal
Papirus-Dark-Custom GPL-3.0 Universal

Wgetall the above icons (and extract if archived). Then, put them into the~/.iconsdirectory.

💲 mkdir -pv~/.icons

💲 wget --no-hsts -cN https://github /owl4ce/dotfiles/releases/download/ng/{Gladient_JfD,Papirus{,-Dark}-Custom}.tar.xz

💲 tar -xf Gladient_JfD.tar.xz -C~/.icons/
💲 tar -xf Papirus-Custom.tar.xz -C~/.icons/
💲 tar -xf Papirus-Dark-Custom.tar.xz -C~/.icons/

💲 sudo ln -vs~/.icons/Papirus-Custom /usr/share/icons/
💲 sudo ln -vs~/.icons/Papirus-Dark-Custom /usr/share/icons/

Why do I need to link icons to/usr?
It'srequired by dunst program to display the notification icon sent by the program.

3. Wallpapers
Wallpapers License The path where it will be put
batik-1_4K CC BY-NC-SA 4.0 ~/.wallpapers/mechanical
okita-souji_FHD CC BY-NC-SA 4.0 ~/.wallpapers/mechanical
cherry-blossoms_FHD CC BY-NC-SA 4.0 ~/.wallpapers/eyecandy
floral-artistic-2_FHD CC BY-NC-SA 4.0 ~/.wallpapers/eyecandy

DISCLAIMER!!!
I don't own the artworks (because I couldn't find the link to the originals), so if you the owner of the artworks with proof and want me to remove it please let me know.

Wgetall the above wallpapers and put them as instructed into the~/.wallpapersdirectory.

💲 mkdir -pv~/.wallpapers/{mechanical,eyecandy}

💲 wget --no-hsts -cNP~/.wallpapers/mechanical/ https://github /owl4ce/dotfiles/releases/download/ng/{batik-1_4K,okita-souji_FHD}.jpg
💲 wget --no-hsts -cNP~/.wallpapers/eyecandy/ https://github /owl4ce/dotfiles/releases/download/ng/{cherry-blossoms,floral-artistic-2}_FHD.jpg

Old wallpaperscan be found here.

4. Extensions (URxvt)
Extensions License Usability
resize-font ISC Font resizer
tabbedex GPL-3.0 Tab functionality

cURLall the above perl-scripts and put them into the~/.urxvt/extdirectory.

💲 mkdir -pv~/.urxvt/ext

💲 (cd~/.urxvt/ext/;curl -LO https://raw.githubusercontent /simmel/urxvt-resize-font/master/resize-font)
💲 (cd~/.urxvt/ext/;curl -LO https://raw.githubusercontent /mina86/urxvt-tabbedex/master/tabbedex)

🌸 ‎INSTALLATION (DOTFILES)

1. Synchronize minimal.files

You can clone ordownload as archive. Then, put all the.files in the dotfiles directory into the user's home directory. Assume you clone it in the~/Documentsdirectory. I recommend to synchronize with rsync program.

💲cd~/Documents/

This repository auto-mirrored tohttps://gitlab /owl4ce/dotfiles.git.

💲 git clone --depth 1 --recurse-submodules https://github /owl4ce/dotfiles.git
💲 rsync -avxHAXP --exclude-from=- dotfiles/.~/<<"EXCLUDE"
.git*
LICENSE
*.md
EXTRA_JOYFUL
EXCLUDE

Ensure the rsync command must be correct as above. The following is for completion of desktop compositions.

💲 rsync -avxHAXP --exclude-from=- dotfiles/EXTRA_JOYFUL/.~/<<"EXCLUDE"
.git*
neofetch
EXCLUDE
  • cpis for duplicating stuff and by default only ensures files have unique full pathnames.
  • rsyncis for synchronizing stuff and uses size and timestamp of files to decide if they should be replaced.
Options Description
-a,--archive archive mode; equals-rlptgoD(no-H,-A,-X)
-v,--verbose increase verbosity
-x,--one-file-system don't cross filesystem boundaries
-H,--hard-links preserve hard links
-A,--acls preserve ACLs (implies--perms)
-X,--xattrs preserve extended attributes
-P show progress during transfer
--exclude-from=- read exclude patterns from FILE (stdin)

I recommend not deleting the dotfiles directory after cloning to makeupgrading easier.

2. Regenerate the font caches

This ensures all existing caches are cleaned and regenerated for all installed fonts.

💲 fc-cache -rv
3. The step you're waiting for

The final step is to login to the openbox-session, basically login from your display manager such as lightdm, gdm, etc. If you're using~/.xinitrc without a display manager, simply add the following one-liner command at the end.

Systemd-based Linux distributions

execopenbox-session

Init-freedomLinux distributions

execdbus-launch --exit-with-x11 openbox-session

Then you can proceed toguides.Explore!

🌻 ‎SYNC FOR UPDATES

Click or tap to extend

Since I recommend using rsync from the beginning, the easiest way is to list the files (via shell heredocs) that won't be updated to avoid replacing personal files with.files. First, update the local repository with the remote git repository.

Remember where you cloned the repository. We assumed that it was in the~/Documentsdirectory.

💲cd~/Documents/
💲 (cd dotfiles/;git pull --depth 1 --recurse-submodules --rebase)
💲 rsync -avxHAXP --exclude-from=- dotfiles/.~/<<"EXCLUDE"
.git*
LICENSE
*.md
*.joy
settings.ini
mpd.state
autostart.sh
environment
tray
eyecandy.rasi
mechanical.rasi
shared.rasi
EXTRA_JOYFUL
.gtkrc-2.0
.joyfuld
.Xresources
EXCLUDE

Use the find program to check the pattern. It's calledglobbing.

💲 find dotfiles/ -iname'PATTERN'

🌿 ‎GUIDES

Joyful Desktop environment variables

~/.joyfuld

Manage all your settings there. I hope all the comments there are easy to understand. ^^

Touchpad tap-to-click (libinput)

/etc/X11/xorg.conf.d/30-touchpad.conf

Section "InputClass"
Identifier "touchpad"
Driver "libinput"
MatchIsTouchpad "on"
Option "Tapping" "on"
Option "TappingButtonMap" "lmr"
EndSection
Openbox autostart

~/.config/openbox/autostart.sh

The unix-shell syntax, POSIX-compliant is highly recommended. Don't change the default, possibly broken.

User's tray programs

~/.config/openbox/tray

Single program (and if any, with arguments) for each line. It will be restarted after switching modes.

User's environment variables

~/.config/openbox/environment

Useexportto set user's environment variables universally. Don't add any other syntax.

User's preferred applications

~/.scripts/db.apps.joy

Parameters Available Description
terminal urxvturxvtc Terminal Emulator
music_player mpdMPRIS Music/Media Player
file_manager anything File Manager
session_locker anything Session Locker

Terminal emulator and file manager are used universally, both for keybindings and context menus. The terminal emulator is actually freedom-of-choice, but it'snot integrated,it displays a notification message. The music playercan be switchedwithout modifying the configuration manually, via music control button on tint2 panel, just hover it. The session locker wasused by xss-lock program(which enabled in autostart), triggered by systemd events and DPMS.

Ncmpcpp and the album-art image cover

Update the mpd database first, via mpc or by pressingUin ncmpcpp.

💲 mpc -p 7777 update

Put an image file thatmatches BRE (album|cover|folder|artwork|front).*[.](jpe?g|png|gif|bmp)into the directory containing album tracks. The directory is in the~/Musicby default. The recommended image size is 500px at ratio of 1:1 or more. So, assume you have~/Music/YOUR_ALBUM directory with lots of tracks, you should put the image file to use as album-art (related to tracks) there.This is for URxvt only.

Also, I useALSA driver in the MPDto get bit-perfect playback. It'sdisabled by default,you need to switch it.

File manager side-pane and XDG user directories

If you just installed thunar without XFCE, you may get side-pane without XDG directoriessuch as Documents, Downloads, etc. After you created those directories, open thunar and select or block those directories. Then right click and clickSend To🡲Side Pane.It's basically plain configuration file. The following command generates those directories.

💲 xdg-user-dirs-update

If you want to get 100% thunar looks similar to my screenshot, ensure to copy my thunar configuration (before opening for the first time). Then hide Computer, Desktop, Recent, or whatever you want by right clickingPlaceson thunar side-pane. By default, my thunar side-pane configuration uses simple 16px icons.Suggested by Papirus Development Team.

🎋 ‎ADDITIONALS

🍀 ‎KEY BINDINGS

Openbox (rc.xml)
Key Action
Window Management and more
super+ Move window focus to left-side
super+ Move window focus to right-side
super+ Move window focus to up-side
super+ Move window focus to down-side
super+shift+ Move focused window to left-side
super+shift+ Move focused window to right-side
super+shift+ Move focused window to up-side
super+shift+ Move focused window to down-side
super+1/2/3/4/5/6/7/8 Move to N desktop/workspace
super+shift+1/2/3/4/5/6/7/8 Move focused window to N desktop/workspace
alt+ㅤㅤㅤㅤ Show (client-)menu of focused window
super+C Close/kill focused window
super+D Toggle show desktop
super+F Toggle fullscreen for focused window
super+ㅤㅤㅤㅤ Show desktop (root-)menu
super+T Toggle decorations of focused window
super+X Toggle maximize for focused window
super+Z Toggle iconify (or minimize) for focused window
alt+tab Switch active window to next window
alt+shift+tab Switch active window to previous window
super+esc Open rofi extensions menu
super+prt sc Open rofi screenshots menu
super+R Open rofi main menu
prt sc Screenshot
ctrl+prt sc Countdown screenshot
shift+prt sc Selection screenshot
ctrl+esc Pop-up notification history
ctrl+enter Open current notification context-menu
ctrl+ㅤㅤㅤㅤ Close current notification
ctrl+shift+ㅤㅤㅤㅤ Close all notifications
super+E Open user's preferred file manager
super+L Lock current session with user's preferred locker
super+enter Open user's preferred terminal emulator
super+shift+enter Reverse terminal emulator background-foreground
super+shift+R Restart UI
Brightness Control
🔆+ Increase brightness by N%
🔆- Decrease brightness by N%
Audio-volume Control
🔊+ Increase audio-volume by N%
🔊- Decrease audio-volume by N%
🔇 Toggle mute
Media Control
Previous track
Next track
Stop playing music
Toggle play/pause
Combo Keyboard and Pointing Device
super+left click(hold) Move focused window freely
super+right click(hold) Resize focused window freely
super+scroll up/scroll down Move desktop/workspace to previous or next
Cursor on Desktop
middle click Show desktop/workspace lists
right click Show desktop (root-)menu
scroll up/scroll down Move desktop/workspace to previous or next
Cursor on Window Titlebar
left click(or simply hover) Focus and raise window
middle click Switch active window to previous or next window
right click Show (client-)menu of focused window
scroll up/scroll down Roll up or down focused window

LEGEND
super

Parcellite (parcelliterc)
Key Action
ctrl+alt+P Show menu
ctrl+alt+H Show history menu
ctrl+alt+X Show persistent history menu
ctrl+alt+A Show action menu
URxvt (.Xresources)
Key Action
Built-in
ctrl+shift+L Clear scrollback buffer cleanly
ctrl+shift+C Copy selection to clipboard
ctrl+shift+V Paste clipboard
ctrl+ Scroll up by line
ctrl+ Scroll down by line
ctrl+home Scroll up to top
ctrl+end Scroll down to bottom
ctrl+right click(hold) Show context-menu
URL Selection (matcher)
ctrl+shift+U Activate URL selection
/// Navigate URL selection
enter/left click Open selected URL
esc Deactivate URL selection
Font Resizer
ctrl++ Increase font size by Npx
ctrl+- Decrease font size by Npx
ctrl+= Reset font size to default
ctrl+? Show font information
Tabbed Extended
ctrl+shift+T New tab
ctrl+shift+R Rename current tab
ctrl+shift+W Close/kill current tab
ctrl+pg up Jump to next tab
ctrl+pg dn Jump to previous tab
ctrl+shift+pg up Move current tab to next order
ctrl+shift+pg dn Move current tab to previous order

SHELL
Most shells use the readline(3) library. In addition, provided by shell plugins.

💲 man 3 readline|less +/EDITING\COMMANDS
Dunst (dunstrc)
Key Action
left click Close current notification
middle click Open notifications context-menu
right click Close all notifications

Anime4K shaders viampvwith custom key.Ncmpcpp. Thunar withcustom action key.

🍁 ‎THE PHILOSOPHY

Aesthetics doesn't only look at the beauty of the results. There's beauty, in a sense, users are expected to feel like they are part of how this was crafted. Emotion and satisfaction, relatively. Ideally, the author's idea is to use this as a minimal "replacement" for bloated and complicated desktop environment. Pragmatically, what are the "benefits" in our daily life, especially for low-end devices. Realistically, be "grateful" to accept the existence of lightweight and non-proprietary software, and use it (instead of using pirated software).

Startedpassively since 2018. Then continued self-taught research months after COVID-19 pandemic, manically. It was still only one, manually changing styles from one to another. Until finally, combining multiple styles into multiple modes. The author named itJoyful(IPA:/ˈdʒɔɪfəl/)Desktop.The name isn't random, it was inspired by a music composed byKODOMOialong with the author's expression of wishing for love and happiness.

There are two modes with two themes totaling four, illogically representing the number in/owl·4·ce/,the author's nickname. Although both are functional, the Artistic Mode is expressed as a decorative aesthetic value, whereas Interactive Mode is aimed for those who want the practical details of statistics. Initially, the dark theme (Fleon) was predominantly blue, and the light theme (Sweetly) was red, expressing a mixture of violet because they tends to be blue. However, over time since the release of version 3.2, they tends to be red with Cherry Blossom.Blue expresses the author's seeking peace or serenity, violet represents light-hearted and ambition, and red is aggressive action that reflects passion.

Two themes are based on and aimed at the mood swings of users. Initially since the first release until version 2,darkness was inspired by Dystopia(while the author listened to The Astonishingby Dream Theater), a reflection of unhappiness and suffering. In contrast, natural scenery, a reflection of inner satisfaction. Now since the pre-releaseversion 4has adopted the same theme andcolor schemefrom the previous release.




🌷 ‎TIP JAR

If you enjoyed it and would like to show your appreciation, you may want to tip me here.

It's never required, but always wholeheartedly appreciated.

Thanks from the bottom of my heart! ‎ 💗

💐 ‎ACKNOWLEDGEMENTS

Inspiration and Resources
1 Elena
2 Adhi Pambudi
3 Fikri Omar
4 Rizqi Nur Assyaufi
5 Muktazam Hasbi Ashidiqi
6 Galih Wisnuaji
7 Ghani Rafif
8 Dylan Araps
9 Niivu
Group Contributors Contributions Status
Unlisted 1 Ekaunt Better rofi prompt-menu. Obsolete
Unlisted 2 HopeBaron Termite configuration. Obsolete
Unlisted 3 Justin Faber Rofi matched-lines indicator. Merged
Unlisted 4 Vcyzteen URxvt copy-paste with eval. Merged
Verified *
Based Community Membership Status
🇮🇩 1 Linuxer Desktop Art Self-destruct in 1443 H.
🇮🇩 2 @dotfiles_id I quit in the same year.
🗺️ 3 r/unixp*rn Inactive for a long time.
🗺️ 4 DeviantArt Inactive for a long time.

🌳 ‎CONTRIBUTING

Read here.

🎃 ‎SECURITY POLICY

Read here.

BACK TO TOP