{"id":13537487,"url":"https://github.com/owl4ce/dotfiles","last_synced_at":"2025-05-15T20:07:13.322Z","repository":{"id":37803811,"uuid":"253780475","full_name":"owl4ce/dotfiles","owner":"owl4ce","description":":cherry_blossom: Aesthetic OpenboxWM Environment","archived":false,"fork":false,"pushed_at":"2022-09-29T22:43:46.000Z","size":2987,"stargazers_count":2006,"open_issues_count":0,"forks_count":148,"subscribers_count":41,"default_branch":"ng","last_synced_at":"2024-10-29T17:27:29.116Z","etag":null,"topics":["dotfiles","dunst","fonts","gimp","gtk","icons","inkscape","linux","mpd","mpv","ncmpcpp","neofetch","openbox","performance","picom","rofi","shell","tint2","urxvt","zsh"],"latest_commit_sha":null,"homepage":"https://owl4ce.deviantart.com","language":"CSS","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/owl4ce.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":"owl4ce","tidelift":null,"community_bridge":null,"liberapay":"owl4ce","issuehunt":null,"otechie":null,"custom":null}},"created_at":"2020-04-07T12:03:32.000Z","updated_at":"2024-10-29T07:49:11.000Z","dependencies_parsed_at":"2023-01-17T17:01:36.850Z","dependency_job_id":null,"html_url":"https://github.com/owl4ce/dotfiles","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owl4ce%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owl4ce%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owl4ce%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/owl4ce%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/owl4ce","download_url":"https://codeload.github.com/owl4ce/dotfiles/tar.gz/refs/heads/ng","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254414499,"owners_count":22067272,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dotfiles","dunst","fonts","gimp","gtk","icons","inkscape","linux","mpd","mpv","ncmpcpp","neofetch","openbox","performance","picom","rofi","shell","tint2","urxvt","zsh"],"created_at":"2024-08-01T09:00:59.561Z","updated_at":"2025-05-15T20:07:08.199Z","avatar_url":"https://github.com/owl4ce.png","language":"CSS","readme":"\u003cdiv align=\"justify\"\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n```ocaml\nNEVER SKIP / IGNORE / AVOID README\n```\n\n```css\n      __/)   ‌‌‌‌‬‬‬‍ ‌‌‌‌‌‬‌‌   ‌‌‌‌‌﻿‌‬ ‌‌‌‌‌﻿‌‌‌‌‌‌‌﻿‌‬        ‌‌‌‌‌﻿‌‬_      ‌‌‌‌‌‬‌‌_       ‌‌‌‌‍‬﻿﻿  ‌‌‌‌‍﻿‍﻿ \n   .‌‌‌‌‍‬﻿‌-(_‌‌‌‌‌﻿‍‌_(=:   |   ‌‌‌‌‍‬‌﻿   ‌‌‌‌‍‬‍‍   ‌‌‌‌‌‬‌‌ | | o  | |     ‌‌‌‌‌﻿﻿‌    \n‌‌‌‌‍‬‌‍|\\ |    \\) ‌‌‌‌‍‬﻿‌ _‌‌‌‌‍﻿‍‌_| ‌‌‌‌‍‬‍‍  __ ‌‌‌‌‍﻿‌‬_|‌‌‌‌‍‬﻿‬_ | |‌‌‌‌‍‬‌‍    |‌‌‌‌‍﻿‍‌ |  _ ‌‌‌‌‍‬‍‍  , ‌‌‌‌‌‬﻿‍ \n‌‌‌‌‍﻿‌﻿\\‌‌‌‌‍‬‍‍ ||       / ‌‌‌‌‌﻿‍﻿ ‌‌‌‌‍‬‍‍|  /  \\_|  |/‌‌‌‌‍‬﻿‬  |  |/  |/  / \\‌‌‌‌‍‌‌‌‌‌‌‌‍﻿‌‌_\n \\||     ‌‌‌‌‍‬﻿‍  \\_/|_/\\__/ |_‌‌‌‌‌‬﻿‬/‌‌‌‌‍‬﻿‍|__/|_‌‌‌‌‍‬‍‍/|__/‌‌‌‌‌﻿﻿‬|__/ \\/ \n  \\|                     |\\                 \n   |  6F 77 6C 34 63 65  |/  with aesthetics\n```\n\n\u003c/div\u003e\n\n\u003cpre align=\"center\"\u003e\n\u003ca href=\"#seedling--setup\"\u003eSETUP\u003c/a\u003e • \u003ca href=\"#four_leaf_clover--key-bindings\"\u003eKEYBINDS\u003c/a\u003e • \u003ca href=\"https://deviantart.com/owl4ce/art/Sakura-Saber-872360153\"\u003eGALLERY\u003c/a\u003e • \u003ca href=\"#herb--guides\"\u003eGUIDES\u003c/a\u003e\n\u003c/pre\u003e\n\n\u003ch1\u003e\n  \u003ca href=\"#--------\"\u003e\n    \u003cimg alt=\"\" align=\"right\" src=\"https://badges.pufler.dev/visits/owl4ce/dotfiles?style=flat-square\u0026label=\u0026color=000000\u0026logo=github\u0026logoColor=white\u0026labelColor=000000\"/\u003e\n  \u003c/a\u003e\n\u003c/h1\u003e\n\n### :octocat: ‎ \u003csup\u003e\u003csub\u003e\u003csamp\u003eHI THERE! THANKS FOR DROPPING BY!\u003c/samp\u003e\u003c/sub\u003e\u003c/sup\u003e\n\n\u003ca href=\"#octocat--hi-there-thanks-for-dropping-by\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" alt=\"\" align=\"right\" width=\"400px\" srcset=\"https://i.imgur.com/7pWg4vR.jpg\"/\u003e\n    \u003cimg alt=\"\" align=\"right\" width=\"400px\" src=\"https://i.imgur.com/VMiaVX3.jpg\"/\u003e\n  \u003c/picture\u003e\n\u003c/a\u003e\n\nYou might be here looking for (Linux) rice reference or to (full?) replicate my personal\nconfiguration of my favorite Openbox Window Manager and several apps as well. :snowman:\n\nMost were written from scratch. Some details:\n\n- **Window Manager** :bento: [Openbox](http://openbox.org/wiki/Main_Page) dual themes!\n- **Openbox Menu** :cyclone: [obmenu-generator](https://github.com/trizen/obmenu-generator) for life!\n- **Panel** :blossom: [Tint2](https://gitlab.com/o9000/tint2) with material design and glyphs!\n- **Application Launcher** :rocket: [Rofi](https://github.com/davatorium/rofi) which blazing fast!\n- **Desktop Notification** :herb: [Dunst](https://github.com/dunst-project/dunst) which minimalist!\n- **Terminal Emulator** :leaves: [URxvt](http://software.schmorp.de/pkg/rxvt-unicode.html) which lightest!\n- **Shell** :shell: [Zsh](https://zsh.org) with [oh-my-zsh](https://github.com/ohmyzsh/ohmyzsh) framework!\n- **Compositor** :shaved_ice: [Picom](https://github.com/yshui/picom) for perfection topping!\n- **File Manager** :flower_playing_cards: [Thunar](https://docs.xfce.org/xfce/thunar/start) customized side-pane!\n- **Media Player** :city_sunset: [mpv](https://mpv.io) with modern OSC!\n- **Music Player** :milky_way: [Ncmpcpp](https://github.com/ncmpcpp/ncmpcpp) with album-art!\n- **GUI (Basic) IDE** :space_invader: [Geany](https://geany.org) for the win!\n\n\u003ch1\u003e\n  \u003ca href=\"#---------1\"\u003e\n    \u003cimg alt=\"\" align=\"right\" src=\"https://img.shields.io/github/commit-activity/m/owl4ce/dotfiles/ng?style=flat-square\u0026label=\u0026color=000000\u0026logo=gitbook\u0026logoColor=white\u0026labelColor=000000\"/\u003e\n  \u003c/a\u003e\n\u003c/h1\u003e\n\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n```ocaml\nCLICK OR TAP ❲☰❳ TO SHOW TABLE-OF-CONTENTS\n```\n\n\u003c/div\u003e\n\n\u003cp align=\"right\"\u003e\n  [\u003ca href=\"https://gitlab.com/owl4ce/dotfiles\"\u003emirror\u003c/a\u003e]\n\u003c/p\u003e\n\n## :fallen_leaf: ‎ \u003csamp\u003eCHANGELOGS\u003c/samp\u003e\n\n\u003ctable align=\"right\"\u003e\n  \u003ctr\u003e\n    \u003cth align=\"center\"\u003e\n      \u003csup\u003e\u003csub\u003e:warning:\u003c/sub\u003e\u003c/sup\u003e\n    \u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003ca href=\"https://github.com/owl4ce/dotfiles/discussions/172\"\u003e\n        \u003csup\u003e\u003csub\u003e\u003csamp\u003ePURELY CONFIGURED AT 1366x768 WITH 96 DPI\u003c/samp\u003e\u003c/sub\u003e\u003c/sup\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n      \u003ca href=\"https://wiki.gentoo.org/wiki/Benefits_of_Gentoo\"\u003e\n        \u003csup\u003e\u003csub\u003e\u003csamp\u003ePowered by Gentoo/Linux x86_64\u003c/samp\u003e\u003c/sub\u003e\u003c/sup\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003e From the previous major versions (0-3.x).\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eInnovations\u003c/b\u003e\u003c/summary\u003e\n\n- **Functionality**\n  - [Live reloader](./.config/openbox/joyful-desktop/terminal-set.sh#L66-L123) for rxvt-unicode color scheme\n- **Git repository**\n  - [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md)\n  - [CONTRIBUTING.md](./CONTRIBUTING.md)\n  - [README.md](./README.md)\n  - [REPOLOGY.md](./REPOLOGY.md)\n  - [SECURITY.md](./SECURITY.md)\n- **User interface**\n  - Rofi [main menu](./.config/rofi/scripts/rofi-main.sh) and panel (or control)\n    [extensions menu](./.config/rofi/scripts/rofi-exts.sh)\n  - Rofi [action menu](./.config/rofi/themes/action.rasi) for openbox\n    [button](./.config/openbox/joyful-desktop/ob-button-set.sh#L16-L24) and X\n    [wallpaper](./.config/openbox/joyful-desktop/wallpaper-set.sh#L16-L24) selectors,\n    as well as dunst [context-menu](./.config/dunst/mechanical.artistic.dunstrc#L40)\n  - Better tint2 [horizontal panels](./.config/tint2) for Artistic Mode and the tooltips\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eRenovations\u003c/b\u003e\u003c/summary\u003e\n\n- **GTK theme and icon updates and fixes**\n  - [Papirus-Custom](https://github.com/owl4ce/dotfiles/releases/download/ng/Papirus-Custom_JfD.tar.xz) and\n    [Papirus-Dark-Custom](https://github.com/owl4ce/dotfiles/releases/download/ng/Papirus-Dark-Custom_JfD.tar.xz)\n    patches\n    - 16x16\n      - apps\n        - diodon.svg\n      - devices\n        - drive-harddisk.svg\n        - drive-removable-media-usb.svg\n        - phone.svg\n      - places\n        - folder.svg\n        - folder-documents.svg 🡲 folder.svg\n        - folder-download.svg 🡲 folder.svg\n        - folder-music.svg 🡲 folder.svg\n        - folder-network.svg\n        - folder-pictures.svg 🡲 folder.svg\n        - folder-video.svg 🡲 folder.svg\n    - 48x48\n      - status\n        - battery-ac-adapter.svg\n        - battery-caution-charging.svg\n        - battery-caution.svg\n        - battery-empty-charging.svg\n        - battery-empty.svg\n        - battery-full-charged.svg\n        - battery-full-charging.svg\n        - battery-full.svg\n        - battery-good-charging.svg\n        - battery-good.svg\n        - battery-low-charging.svg\n        - battery-low.svg\n        - battery-missing.svg\n        - bluetooth-active.svg\n        - bluetooth-disabled.svg\n        - bluetooth.svg\n        - dialog-error.svg\n        - dialog-information.svg\n        - dialog-question.svg\n        - dialog-warning.svg\n        - network-error.svg\n        - network-offline.svg\n        - network-wired-disconnected.svg\n        - network-wireless-encrypted.svg\n        - nm-signal-100.svg\n        - nm-signal-25.svg\n        - nm-signal-50.svg\n        - nm-signal-75.svg\n        - notification-audio-volume-high.svg\n        - notification-audio-volume-low.svg\n        - notification-audio-volume-medium.svg\n        - notification-audio-volume-muted.svg\n        - notification-battery-low.svg\n        - notification-device-eject.svg\n        - notification-display-brightness-full.svg\n        - notification-display-brightness-high.svg\n        - notification-display-brightness-low.svg\n        - notification-display-brightness-medium.svg\n        - notification-display-brightness-off.svg\n        - notification-network-ethernet-connected.svg\n        - notification-network-wireless-disconnected.svg\n        - notification-network-wireless.svg\n- **Reconfigure program configurations**\n- **Restructure git directory layouts**\n- **Rewrite shell-scripts completely**\n  - Use POSIX-compliant sh for portability\n  - Harden algorithm as possible for safety\n  - Use built-in shell features for high-performance\n  - Optimize algorithm to reduce overheads\n  - Bug fixes across ecosystem environments\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eRemovals\u003c/b\u003e\u003c/summary\u003e\n\n- **Mostly deprecated configs and BLOBs such as images**\n\n\u003c/details\u003e\n\n*..., and is still being improved.*\n\n## :seedling: ‎ \u003csamp\u003eSETUP\u003c/samp\u003e\n\nEverything done manually step-by-step. Let's learn. [中文教程](https://www.maredevi.fun/2022/09/29/)\n\n### :blossom: ‎ \u003csamp\u003eINSTALLATION (\u003ca href=\"./REPOLOGY.md\"\u003eDEPENDENCIES\u003c/a\u003e)\u003c/samp\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e1. Debian-based Linux distributions\u003c/b\u003e\u003c/summary\u003e\n\n[Debian SID](https://wiki.debian.org/DebianUnstable) or [Devuan (ceres?)](https://devuan.org/os/releases) recommended.\n\n**Didn't know how to install packages?**\n\n```sh\n💲 sudo apt install atom1 atom2 ... atomN\n```\n\n---\n\n**X.Org server and {it's,core} utilities. This is essentials.**\n\n```sh\nxserver-xorg-core x11-xserver-utils psmisc\n```\n\nContents of [1](https://packages.debian.org/sid/xserver-xorg-core),\n[2](https://packages.debian.org/sid/x11-xserver-utils),\n[3](https://packages.debian.org/sid/psmisc).\n\n[Here for python (3) if not already installed](https://wiki.debian.org/Python).\n\n---\n\n**Now, the UI kits and functionality. This is required.**\n\nURxvt is highly recommended terminal emulator by default. Picom is optional, but recommended.\n\n```sh\ndunst nitrogen openbox rofi rxvt-unicode tint2 picom libgtk3-perl #obmenu-generator\n```\n\nContents of [1](https://packages.debian.org/sid/dunst),\n[2](https://packages.debian.org/sid/nitrogen),\n[3](https://packages.debian.org/sid/openbox),\n[4](https://packages.debian.org/sid/rofi),\n[5](https://packages.debian.org/sid/rxvt-unicode),\n[6](https://packages.debian.org/sid/tint2),\n[7](https://packages.debian.org/sid/picom),\n[8](https://packages.debian.org/sid/libgtk3-perl).\n\n[Here to install obmenu-generator](https://software.opensuse.org/download.html?project=home%3AHead_on_a_Stick%3Aobmenu-generator\u0026package=obmenu-generator).\n\n---\n\n**Audio-server and audio stuff.**\n\nI personally use pulseaudio, mpd and ncmpcpp are recommended as they are integrated by default.\n\n```sh\npulseaudio mpd mpc ncmpcpp\n```\n\nContents of [1](https://packages.debian.org/sid/pulseaudio),\n[2](https://packages.debian.org/sid/mpd),\n[3](https://packages.debian.org/sid/mpc),\n[4](https://packages.debian.org/sid/ncmpcpp).\n\nMPRIS-enabled media players are also integrated, such as [spotify](https://wiki.debian.org/spotify).\n\n---\n\n**Extended utilities. Required, but just as necessary.**\n\nAll of the below if not installed, certain functionality will display a message when needed, some will not.\n\n```sh\nalsa-utils brightnessctl imagemagick scrot w3m-img wireless-tools xclip xsettingsd xss-lock\n```\n\nContents of [1](https://packages.debian.org/sid/alsa-utils),\n[2](https://packages.debian.org/sid/brightnessctl),\n[3](https://packages.debian.org/sid/imagemagick),\n[4](https://packages.debian.org/sid/scrot),\n[5](https://packages.debian.org/sid/w3m-img),\n[6](https://packages.debian.org/sid/wireless-tools),\n[7](https://packages.debian.org/sid/xclip),\n[8](https://packages.debian.org/sid/xsettingsd),\n[9](https://packages.debian.org/sid/xss-lock).\n\nChoose your own polkit authentication-agent. [lxpolkit](https://packages.debian.org/sid/lxpolkit)?\n\n---\n\n**Additionals for completion of desktop compositions.**\n\nJust like mpd and ncmpcpp, configurations are included as [EXTRA_JOYFUL](./EXTRA_JOYFUL), some are integrated.\n\n```sh\nthunar thunar-archive-plugin thunar-volman ffmpegthumbnailer tumbler\n```\n\nContents of [1](https://packages.debian.org/sid/thunar),\n[2](https://packages.debian.org/sid/thunar-archive-plugin),\n[3](https://packages.debian.org/sid/thunar-volman),\n[4](https://packages.debian.org/sid/ffmpegthumbnailer),\n[5](https://packages.debian.org/sid/tumbler).\n\nGsimplecal was used to display calendar pop-ups from the tint2 panel, and pavucontrol to control pulseaudio-sinks.\n\n```sh\ngeany geany-plugins gimp gsimplecal inkscape mpv parcellite pavucontrol viewnior xfce4-power-manager\n```\n\nContents of [1](https://packages.debian.org/sid/geany),\n[2](https://packages.debian.org/sid/geany-plugins),\n[3](https://packages.debian.org/sid/gimp),\n[4](https://packages.debian.org/sid/gsimplecal),\n[5](https://packages.debian.org/sid/inkscape),\n[6](https://packages.debian.org/sid/mpv),\n[7](https://packages.debian.org/sid/parcellite),\n[8](https://packages.debian.org/sid/pavucontrol),\n[9](https://packages.debian.org/sid/viewnior),\n[10](https://packages.debian.org/sid/xfce4-power-manager).\n\nI personally don't use neofetch anymore and use system-information via rofi, it's already scripted.\n\n```sh\nhtop nano #neofetch\n```\n\nContents of [1](https://packages.debian.org/sid/htop),\n[2](https://packages.debian.org/sid/nano),\n[3](https://packages.debian.org/sid/neofetch).\n\n[Here for improved nanorc with syntax-highlighting](https://github.com/scopatz/nanorc).\n\nI personally use NetworkManager (and IWD as wireless back-end) with nm-applet,\n[here it is](https://wiki.debian.org/NetworkManager).\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e1. Arch-based Linux distributions\u003c/b\u003e\u003c/summary\u003e\n\n[Arch Linux](https://archlinux.org) and [Artix Linux](https://artixlinux.org) recommended.\n\n**Didn't know how to install packages?**\n\n```sh\n💲 sudo pacman -S atom1 atom2 ... atomN\n```\n\n---\n\n**X.Org server and {it's,core} utilities. This is essentials.**\n\n```sh\nxorg-server xorg-xrandr xorg-xrdb psmisc\n```\n\nContents of [1](https://archlinux.org/packages/extra/x86_64/xorg-server),\n[2](https://archlinux.org/packages/extra/x86_64/xorg-xrandr),\n[3](https://archlinux.org/packages/extra/x86_64/xorg-xrdb),\n[4](https://archlinux.org/packages/core/x86_64/psmisc).\n\n[Here for python (3) if not already installed](https://wiki.archlinux.org/title/python).\n\n---\n\n**Now, the UI kits and functionality. This is required.**\n\nURxvt is highly recommended terminal emulator by default. Picom is optional, but recommended.\n\n\u003e **AUR**  \n\u003e `rxvt-unicode-truecolor-wide-glyphs`  \n\u003e `obmenu-generator`\n\n```sh\ndunst nitrogen openbox rofi rxvt-unicode-truecolor-wide-glyphs tint2 picom obmenu-generator perl-gtk3\n```\n\nContents of [1](https://archlinux.org/packages/community/x86_64/dunst),\n[2](https://archlinux.org/packages/extra/x86_64/nitrogen),\n[3](https://archlinux.org/packages/community/x86_64/openbox),\n[4](https://archlinux.org/packages/community/x86_64/rofi),\n[5](https://aur.archlinux.org/packages/rxvt-unicode-truecolor-wide-glyphs),\n[6](https://archlinux.org/packages/community/x86_64/tint2),\n[7](https://archlinux.org/packages/community/x86_64/picom),\n[8](https://aur.archlinux.org/packages/obmenu-generator),\n[9](https://archlinux.org/packages/community/any/perl-gtk3).\n\n---\n\n**Audio-server and audio stuff.**\n\nI personally use pulseaudio, mpd and ncmpcpp are recommended as they are integrated by default.\n\n```sh\npulseaudio pulseaudio-alsa mpd mpc ncmpcpp\n```\n\nContents of [1](https://archlinux.org/packages/extra/x86_64/pulseaudio),\n[2](https://archlinux.org/packages/extra/x86_64/pulseaudio-alsa),\n[3](https://archlinux.org/packages/extra/x86_64/mpd),\n[4](https://archlinux.org/packages/extra/x86_64/mpc),\n[5](https://archlinux.org/packages/community/x86_64/ncmpcpp).\n\nMPRIS-enabled media players are also integrated, such as [spotify](https://wiki.archlinux.org/title/spotify).\n\n---\n\n**Extended utilities. Required, but just as necessary.**\n\nAll of the below if not installed, certain functionality will display a message when needed, some will not.\n\n```sh\nalsa-utils brightnessctl imagemagick scrot w3m wireless_tools xclip xsettingsd xss-lock\n```\n\nContents of [1](https://archlinux.org/packages/extra/x86_64/alsa-utils),\n[2](https://archlinux.org/packages/community/x86_64/brightnessctl),\n[3](https://archlinux.org/packages/extra/x86_64/imagemagick),\n[4](https://archlinux.org/packages/community/x86_64/scrot),\n[5](https://archlinux.org/packages/extra/x86_64/w3m),\n[6](https://archlinux.org/packages/core/x86_64/wireless_tools),\n[7](https://archlinux.org/packages/extra/x86_64/xclip),\n[8](https://archlinux.org/packages/community/x86_64/xsettingsd),\n[9](https://archlinux.org/packages/community/x86_64/xss-lock).\n\nChoose your own polkit authentication-agent.\n[polkit-gnome](https://archlinux.org/packages/community/x86_64/polkit-gnome)?\n\n---\n\n**Additionals for completion of desktop compositions.**\n\nJust like mpd and ncmpcpp, configurations are included as [EXTRA_JOYFUL](./EXTRA_JOYFUL), some are integrated.\n\n```sh\nthunar thunar-archive-plugin thunar-volman ffmpegthumbnailer tumbler\n```\n\nContents of [1](https://archlinux.org/packages/extra/x86_64/thunar),\n[2](https://archlinux.org/packages/extra/x86_64/thunar-archive-plugin),\n[3](https://archlinux.org/packages/extra/x86_64/thunar-volman),\n[4](https://archlinux.org/packages/extra/x86_64/ffmpegthumbnailer),\n[5](https://archlinux.org/packages/extra/x86_64/tumbler).\n\nGsimplecal was used to display calendar pop-ups from the tint2 panel, and pavucontrol to control pulseaudio-sinks.\n\n```sh\ngeany geany-plugins gimp gsimplecal inkscape mpv parcellite pavucontrol viewnior xfce4-power-manager\n```\n\nContents of [1](https://archlinux.org/packages/community/x86_64/geany),\n[2](https://archlinux.org/packages/community/x86_64/geany-plugins),\n[3](https://archlinux.org/packages/extra/x86_64/gimp),\n[4](https://archlinux.org/packages/community/x86_64/gsimplecal),\n[5](https://archlinux.org/packages/extra/x86_64/inkscape),\n[6](https://archlinux.org/packages/community/x86_64/mpv),\n[7](https://archlinux.org/packages/community/x86_64/parcellite),\n[8](https://archlinux.org/packages/extra/x86_64/pavucontrol),\n[9](https://archlinux.org/packages/community/x86_64/viewnior),\n[10](https://archlinux.org/packages/extra/x86_64/xfce4-power-manager).\n\nI personally don't use neofetch anymore and use system-information via rofi, it's already scripted.\n\n```sh\nhtop nano #neofetch\n```\n\nContents of [1](https://archlinux.org/packages/extra/x86_64/htop),\n[2](https://archlinux.org/packages/core/x86_64/nano),\n[3](https://archlinux.org/packages/community/any/neofetch).\n\n[Here for improved nanorc with syntax-highlighting](https://github.com/scopatz/nanorc).\n\nI personally use NetworkManager (and IWD as wireless back-end) with nm-applet,\n[here it is](https://wiki.archlinux.org/title/NetworkManager#Front-ends).\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e1. Gentoo source-based Linux distributions\u003c/b\u003e\u003c/summary\u003e\n\n[Gentoo Linux](https://gentoo.org) extremely recommended. Expert!\n\n**Didn't know how to install packages?**\n\n```sh\n💲 doas emerge -av atom1 atom2 ... atomN\n```\n\n\u003e Note that some packages require accepting [arch~ keywords](https://wiki.gentoo.org/wiki/ACCEPT_KEYWORDS).\n\u003e It's highly recommended.\n\n\u003e See also USE flags, it's complicated to explain.\n\u003e [You may want to see mine](https://github.com/owl4ce/hmg/tree/main/etc/portage).\n\n---\n\n**X.Org server and it's utilities. This is essentials.**\n\n```sh\nx11-base/xorg-server x11-apps/xrandr\n```\n\nContents of [1](https://packages.gentoo.org/packages/x11-base/xorg-server),\n[2](https://packages.gentoo.org/packages/x11-apps/xrandr).\n\n---\n\n**Now, the UI kits and functionality. This is required.**\n\nURxvt is highly recommended terminal emulator by default. Picom is optional, but recommended.\n\n\u003e My own [Lilium portage overlay](https://github.com/owl4ce/lilium) contains enhancements.  \n\u003e `x11-terms/rxvt-unicode::lilium`\n\n\u003e For pixel-perfect, subtract 1px in [`~/.Xresources`](./.Xresources#L9) and [`~/.joyfuld`](./.joyfuld#L161-L162).\n\n```sh\nx11-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\n```\n\nContents of [1](https://packages.gentoo.org/packages/x11-misc/dunst),\n[2](https://packages.gentoo.org/packages/x11-misc/nitrogen),\n[3](https://packages.gentoo.org/packages/x11-wm/openbox),\n[4](https://packages.gentoo.org/packages/x11-misc/rofi),\n[5](https://github.com/owl4ce/lilium/tree/main/x11-terms/rxvt-unicode),\n[6](https://packages.gentoo.org/packages/x11-misc/tint2),\n[7](https://packages.gentoo.org/packages/x11-misc/picom),\n[8](https://packages.gentoo.org/packages/x11-misc/obmenu-generator),\n[9](https://packages.gentoo.org/packages/dev-perl/Gtk3).\n\n---\n\n**Audio-server and audio stuff.**\n\nI personally use pulseaudio, mpd and ncmpcpp are recommended as they are integrated by default.\n\n```sh\nmedia-sound/pulseaudio media-sound/mpd media-sound/mpc media-sound/ncmpcpp\n```\n\nContents of [1](https://packages.gentoo.org/packages/media-sound/pulseaudio),\n[2](https://packages.gentoo.org/packages/media-sound/mpd),\n[3](https://packages.gentoo.org/packages/media-sound/mpc),\n[4](https://packages.gentoo.org/packages/media-sound/ncmpcpp).\n\nMPRIS-enabled media players are also integrated, such as [spotify](https://wiki.gentoo.org/wiki/Spotify).\n\n---\n\n**Extended utilities. Required, but just as necessary.**\n\nAll of the below if not installed, certain functionality will display a message when needed, some will not.\n\n\u003e I personally don't use [GURU portage overlay](https://wiki.gentoo.org/wiki/Project:GURU)\n\u003e and build manually instead.  \n\u003e `app-misc/brightnessctl::guru`\n\n```sh\napp-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\n```\n\nContents of [1](https://gitweb.gentoo.org/repo/proj/guru.git/tree/app-misc/brightnessctl),\n[2](https://packages.gentoo.org/packages/media-gfx/imagemagick),\n[3](https://packages.gentoo.org/packages/media-gfx/scrot),\n[4](https://packages.gentoo.org/packages/www-client/w3m),\n[5](https://packages.gentoo.org/packages/net-wireless/wireless-tools),\n[6](https://packages.gentoo.org/packages/x11-misc/xclip),\n[7](https://packages.gentoo.org/packages/x11-misc/xsettingsd),\n[8](https://packages.gentoo.org/packages/x11-misc/xss-lock).\n\nChoose your own polkit authentication-agent.\n[polkit-gnome](https://packages.gentoo.org/packages/gnome-extra/polkit-gnome)?\n\n---\n\n**Additionals for completion of desktop compositions.**\n\nJust like mpd and ncmpcpp, configurations are included as [EXTRA_JOYFUL](./EXTRA_JOYFUL), some are integrated.\n\n```sh\nxfce-base/thunar xfce-extra/thunar-archive-plugin xfce-extra/thunar-volman media-video/ffmpegthumbnailer xfce-extra/tumbler\n```\n\nContents of [1](https://packages.gentoo.org/packages/xfce-base/thunar),\n[2](https://packages.gentoo.org/packages/xfce-extra/thunar-archive-plugin),\n[3](https://packages.gentoo.org/packages/xfce-extra/thunar-volman),\n[4](https://packages.gentoo.org/packages/media-video/ffmpegthumbnailer),\n[5](https://packages.gentoo.org/packages/xfce-extra/tumbler).\n\nGsimplecal was used to display calendar pop-ups from the tint2 panel, and pavucontrol to control pulseaudio-sinks.\n\n\u003e I personally don't use [Miramir's portage overlay](https://github.com/miramir/miramir-layman)\n\u003e and build manually instead.  \n\u003e `x11-misc/gsimplecal::miramir`\n\n```sh\ndev-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\n```\n\nContents of [1](https://packages.gentoo.org/packages/dev-util/geany),\n[2](https://packages.gentoo.org/packages/dev-util/geany-plugins),\n[3](https://packages.gentoo.org/packages/media-gfx/gimp),\n[4](https://github.com/miramir/miramir-layman/tree/master/x11-misc/gsimplecal),\n[5](https://packages.gentoo.org/packages/media-gfx/inkscape),\n[6](https://packages.gentoo.org/packages/media-video/mpv),\n[7](https://packages.gentoo.org/packages/x11-misc/parcellite),\n[8](https://packages.gentoo.org/packages/media-sound/pavucontrol),\n[9](https://packages.gentoo.org/packages/media-gfx/viewnior),\n[10](https://packages.gentoo.org/packages/xfce-extra/xfce4-power-manager).\n\nI personally don't use neofetch anymore and use system-information via rofi, it's already scripted.\n\n```sh\nsys-process/htop #app-misc/neofetch\n```\n\nContents of [1](https://packages.gentoo.org/packages/sys-process/htop),\n[2](https://packages.gentoo.org/packages/app-misc/neofetch).\n\n[Here for improved nanorc with syntax-highlighting](https://github.com/scopatz/nanorc).\n\nI personally use NetworkManager (and IWD as wireless back-end) with nm-applet,\n[here it is](https://wiki.gentoo.org/wiki/NetworkManager#GTK_GUIs).\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e1. Another independent Linux distributions\u003c/b\u003e\u003c/summary\u003e\n\nNeed [contributors](#deciduous_tree--contributing) to encapsulate dependencies.\n\n\u003cpre align=\"center\"\u003e\nThe Linux philosophy is ‘Laugh in the face of danger’.\nOops. Wrong One. ‘Do it yourself’.\n\n- Linus Torvalds\n\u003c/pre\u003e\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e1. Berkeley Software Distribution (BSD) variants\u003c/b\u003e\u003c/summary\u003e\n\nThe [BSD variants](https://en.wikipedia.org/wiki/Comparison_of_BSD_operating_systems)\nhaven't been tested at all, probably some of the extensions are [GNU](https://gnu.org)'s\nand [Linux-specific](https://refspecs.linuxfoundation.org/lsb.shtml).\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e2. Additionally Z shell with oh-my-zsh plugins\u003c/b\u003e\u003c/summary\u003e\n\nEnsure you have installed zsh with system package manager as per distribution.\n\n```sh\n💲 sh -c \"$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)\"\n```\n\n```sh\n💲 sudo chsh -s $(command -v zsh)\n```\n\n```sh\n💲 git clone --depth 1 https://github.com/zdharma-continuum/fast-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/fast-syntax-highlighting\n```\n\n```sh\n💲 git clone --depth 1 https://github.com/zsh-users/zsh-autosuggestions.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions\n```\n\n```sh\n💲 git clone --depth 1 https://github.com/zsh-users/zsh-completions.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-completions\n```\n\n\u003c/details\u003e\n\n### :hibiscus: ‎ \u003csamp\u003eINSTALLATION (PREREQUISITES)\u003c/samp\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e1. Fonts\u003c/b\u003e\u003c/summary\u003e\n\n| Typefaces                                                                                                                 | License                                                                         | The path of extracted files from the archive        |\n|:--------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------|:----------------------------------------------------|\n| [GNOME Cantarell](https://download-fallback.gnome.org/sources/cantarell-fonts/0.303/cantarell-fonts-0.303.1.tar.xz)       | [OFL-1.1](https://gitlab.gnome.org/GNOME/cantarell-fonts/-/blob/master/COPYING) | `cantarell-fonts-0.303.1/prebuilt/Cantarell-VF.otf` |\n| [Google Comfortaa Regular](https://raw.githubusercontent.com/googlefonts/comfortaa/main/fonts/OTF/Comfortaa-Regular.otf)  | [OFL-1.1](https://github.com/googlefonts/comfortaa/blob/main/OFL.txt)                                                                 |\n| [Google Comfortaa Bold](https://raw.githubusercontent.com/googlefonts/comfortaa/main/fonts/OTF/Comfortaa-Bold.otf)        | [OFL-1.1](https://github.com/googlefonts/comfortaa/blob/main/OFL.txt)                                                                 |\n| [Feather IcoMoon](https://github.com/owl4ce/dotfiles/releases/download/ng/Feather.ttf)                                    | [MIT](https://github.com/feathericons/feather/blob/master/LICENSE) ([FAQ](https://icomoon.io/#faq/license))                           |\n| [Material IcoMoon](https://github.com/owl4ce/dotfiles/releases/download/ng/Material.ttf)                                  | [Apache-2.0](https://github.com/Templarian/MaterialDesign/blob/master/LICENSE)                                                        |\n| [Iosevka Nerd Font ... Mono](https://github.com/owl4ce/dotfiles/releases/download/ng/Iosevka.Nerd.Font.Complete.Mono.ttf) | [LICENSE](https://github.com/ryanoasis/nerd-fonts/blob/master/LICENSE)                                                                |\n| [M+ 1mn Nerd Font Complete](https://github.com/owl4ce/dotfiles/releases/download/ng/M+.1mn.Nerd.Font.Complete.ttf)        | [LICENSE](https://github.com/ryanoasis/nerd-fonts/blob/master/LICENSE)                                                                |\n| [M+ 1mn Nerd Font ... Mono](https://github.com/owl4ce/dotfiles/releases/download/ng/M+.1mn.Nerd.Font.Complete.Mono.ttf)   | [LICENSE](https://github.com/ryanoasis/nerd-fonts/blob/master/LICENSE)                                                                |\n| [GNU Unifont](https://unifoundry.com/pub/unifont/unifont-14.0.02/font-builds/unifont-14.0.02.ttf)                         | [LICENSE](https://unifoundry.com/LICENSE.txt)                                                                                         |\n\n**Wget** all the above fonts (and extract if archived). Then, put them as instructed into the `~/.fonts` directory.\n\n```bash\n💲 mkdir -pv ~/.fonts/{Cantarell,Comfortaa,IcoMoon-Custom,Nerd-Patched,Unifont}\n```\n\n---\n\n```bash\n💲 wget --no-hsts -cNP ~/.fonts/Comfortaa/ https://raw.githubusercontent.com/googlefonts/comfortaa/main/fonts/OTF/Comfortaa-{Bold,Regular}.otf\n```\n\n```bash\n💲 wget --no-hsts -cNP ~/.fonts/IcoMoon-Custom/ https://github.com/owl4ce/dotfiles/releases/download/ng/{Feather,Material}.ttf\n```\n\n```sh\n💲 wget --no-hsts -cNP ~/.fonts/Nerd-Patched/ https://github.com/owl4ce/dotfiles/releases/download/ng/M+.1mn.Nerd.Font.Complete.ttf\n```\n\n```bash\n💲 wget --no-hsts -cNP ~/.fonts/Nerd-Patched/ https://github.com/owl4ce/dotfiles/releases/download/ng/{M+.1mn,Iosevka}.Nerd.Font.Complete.Mono.ttf\n```\n\n```sh\n💲 wget --no-hsts -cNP ~/.fonts/Unifont/ https://unifoundry.com/pub/unifont/unifont-14.0.02/font-builds/unifont-14.0.02.ttf\n```\n\n```sh\n💲 wget --no-hsts -cN https://download-fallback.gnome.org/sources/cantarell-fonts/0.303/cantarell-fonts-0.303.1.tar.xz\n```\n\n---\n\n```sh\n💲 tar -xvf cantarell*.tar.xz --strip-components 2 --wildcards -C ~/.fonts/Cantarell/ \\*/\\*/Cantarell-VF.otf\n```\n\nAdditionally, install the noto ([emoji takes precedence](https://github.com/owl4ce/dotfiles/issues/176)) fonts for\nbroad support. [Debian](https://packages.debian.org/search?suite=sid\u0026arch=amd64\u0026searchon=names\u0026keywords=fonts%20noto).\n[Arch](https://archlinux.org/packages/?q=fonts+noto). [Gentoo](https://packages.gentoo.org/packages/search?q=fonts+noto).\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e2. Icons\u003c/b\u003e\u003c/summary\u003e\n\n| Icons                                                                                                     | License                                                                                     | Usability                   |\n|:----------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------|:----------------------------|\n| [Gladient](https://github.com/owl4ce/dotfiles/releases/download/ng/Gladient_JfD.tar.xz)                   | PROPIETARY ([?](https://play.google.com/store/apps/details?id=com.maxghani.gladient))       | Openbox desktop (root-)menu |\n| [Papirus-Custom](https://github.com/owl4ce/dotfiles/releases/download/ng/Papirus-Custom.tar.xz)           | [GPL-3.0](https://github.com/PapirusDevelopmentTeam/papirus-icon-theme/blob/master/LICENSE) | Universal                   |\n| [Papirus-Dark-Custom](https://github.com/owl4ce/dotfiles/releases/download/ng/Papirus-Dark-Custom.tar.xz) | [GPL-3.0](https://github.com/PapirusDevelopmentTeam/papirus-icon-theme/blob/master/LICENSE) | Universal                   |\n\n**Wget** all the above icons (and extract if archived). Then, put them into the `~/.icons` directory.\n\n```sh\n💲 mkdir -pv ~/.icons\n```\n\n---\n\n```bash\n💲 wget --no-hsts -cN https://github.com/owl4ce/dotfiles/releases/download/ng/{Gladient_JfD,Papirus{,-Dark}-Custom}.tar.xz\n```\n\n---\n\n```sh\n💲 tar -xf Gladient_JfD.tar.xz -C ~/.icons/\n```\n\n```sh\n💲 tar -xf Papirus-Custom.tar.xz -C ~/.icons/\n```\n\n```sh\n💲 tar -xf Papirus-Dark-Custom.tar.xz -C ~/.icons/\n```\n\n---\n\n```sh\n💲 sudo ln -vs ~/.icons/Papirus-Custom /usr/share/icons/\n```\n\n```sh\n💲 sudo ln -vs ~/.icons/Papirus-Dark-Custom /usr/share/icons/\n```\n\n**Why do I need to link icons to [/usr](https://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html)?**  \nIt's [required by dunst program](https://github.com/owl4ce/dotfiles/commit/bdcadc5c1d869a073c5038bce4ef26d0340275a3)\nto display the notification icon sent by the program.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e3. Wallpapers\u003c/b\u003e\u003c/summary\u003e\n\n| Wallpapers                                                                                                 | License                                                              | The path where it will be put |\n|:-----------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------|:------------------------------|\n| [batik-1_4K](https://github.com/owl4ce/dotfiles/releases/download/ng/batik-1_4K.jpg)                       | [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0) | `~/.wallpapers/mechanical`    |\n| [okita-souji_FHD](https://github.com/owl4ce/dotfiles/releases/download/ng/okita-souji_FHD.jpg)             | [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0) | `~/.wallpapers/mechanical`    |\n| [cherry-blossoms_FHD](https://github.com/owl4ce/dotfiles/releases/download/ng/cherry-blossoms_FHD.jpg)     | [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0) | `~/.wallpapers/eyecandy`      |\n| [floral-artistic-2_FHD](https://github.com/owl4ce/dotfiles/releases/download/ng/floral-artistic-2_FHD.jpg) | [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0) | `~/.wallpapers/eyecandy`      |\n\n\u003e **DISCLAIMER!!!**  \n\u003e I don't own the artworks (because I couldn't find the link to the originals),\n\u003e so if you the owner of the artworks with proof and want me to remove it\n\u003e [please let me know](./CODE_OF_CONDUCT.md#enforcement).\n\u003e - [桜セイバー沖田総司](https://pixiv.net/en/artworks/59740059)\n\u003e - [桜](https://pixiv.net/en/artworks/80518034)\n\u003e - [沖田総司](https://pixiv.net/en/artworks/62996457)\n\n**Wget** all the above wallpapers and put them as instructed into the `~/.wallpapers` directory.\n\n```bash\n💲 mkdir -pv ~/.wallpapers/{mechanical,eyecandy}\n```\n\n---\n\n```bash\n💲 wget --no-hsts -cNP ~/.wallpapers/mechanical/ https://github.com/owl4ce/dotfiles/releases/download/ng/{batik-1_4K,okita-souji_FHD}.jpg\n```\n\n```bash\n💲 wget --no-hsts -cNP ~/.wallpapers/eyecandy/ https://github.com/owl4ce/dotfiles/releases/download/ng/{cherry-blossoms,floral-artistic-2}_FHD.jpg\n```\n\nOld wallpapers [can be found here](https://github.com/owl4ce/depfiles/tree/3.2/.wallpaper).\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e4. Extensions (URxvt)\u003c/b\u003e\u003c/summary\u003e\n\n| Extensions                                                                                   | License                                                                           | Usability         |\n|:---------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------|:------------------|\n| [resize-font](https://raw.githubusercontent.com/simmel/urxvt-resize-font/master/resize-font) | [ISC](https://github.com/simmel/urxvt-resize-font/blob/master/resize-font#L2-L15) | Font resizer      |\n| [tabbedex](https://raw.githubusercontent.com/mina86/urxvt-tabbedex/master/tabbedex)          | [GPL-3.0](https://github.com/mina86/urxvt-tabbedex/blob/master/LICENSE)           | Tab functionality |\n\n**cURL** all the above perl-scripts and put them into the `~/.urxvt/ext` directory.\n\n```sh\n💲 mkdir -pv ~/.urxvt/ext\n```\n\n---\n\n```sh\n💲 (cd ~/.urxvt/ext/; curl -LO https://raw.githubusercontent.com/simmel/urxvt-resize-font/master/resize-font)\n```\n\n```sh\n💲 (cd ~/.urxvt/ext/; curl -LO https://raw.githubusercontent.com/mina86/urxvt-tabbedex/master/tabbedex)\n```\n\n\u003c/details\u003e\n\n### :cherry_blossom: ‎ \u003csamp\u003eINSTALLATION (DOTFILES)\u003c/samp\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e1. Synchronize minimal .files\u003c/b\u003e\u003c/summary\u003e\n\nYou can clone or [download as archive](https://github.com/owl4ce/dotfiles/releases/tag/ng).\nThen, put all the .files in the dotfiles directory into the user's home directory. Assume you\nclone it in the `~/Documents` directory. I recommend to synchronize with rsync program.\n\n```sh\n💲 cd ~/Documents/\n```\n\n\u003e This repository auto-mirrored to https://gitlab.com/owl4ce/dotfiles.git.\n\n```sh\n💲 git clone --depth 1 --recurse-submodules https://github.com/owl4ce/dotfiles.git\n```\n\n```sh\n💲 rsync -avxHAXP --exclude-from=- dotfiles/. ~/ \u003c\u003c \"EXCLUDE\"\n.git*\nLICENSE\n*.md\nEXTRA_JOYFUL\nEXCLUDE\n```\n\n\u003e Ensure the rsync command must be correct as above. The following is for completion of desktop compositions.\n\n```sh\n💲 rsync -avxHAXP --exclude-from=- dotfiles/EXTRA_JOYFUL/. ~/ \u003c\u003c \"EXCLUDE\"\n.git*\nneofetch\nEXCLUDE\n```\n\n\u003e - **cp** is for duplicating stuff and by default only ensures files have unique full pathnames.\n\u003e - **rsync** is for synchronizing stuff and uses size and timestamp of files to decide if they should be replaced.\n\n\u003e | Options                   | Description                                         |\n\u003e |:--------------------------|:----------------------------------------------------|\n\u003e | `-a`, `--archive`         | archive mode; equals `-rlptgoD` (no `-H`,`-A`,`-X`) |\n\u003e | `-v`, `--verbose`         | increase verbosity                                  |\n\u003e | `-x`, `--one-file-system` | don't cross filesystem boundaries                   |\n\u003e | `-H`, `--hard-links`      | preserve hard links                                 |\n\u003e | `-A`, `--acls`            | preserve ACLs (implies `--perms`)                   |\n\u003e | `-X`, `--xattrs`          | preserve extended attributes                        |\n\u003e | `-P`                      | show progress during transfer                       |\n\u003e | `--exclude-from=-`        | read exclude patterns from FILE (stdin)             |\n\nI recommend not deleting the dotfiles directory after cloning to make [upgrading easier](#sunflower--sync-for-updates).\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e2. Regenerate the font caches\u003c/b\u003e\u003c/summary\u003e\n\nThis ensures all existing caches are cleaned and regenerated for all installed fonts.\n\n```sh\n💲 fc-cache -rv\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e3. The step you're waiting for\u003c/b\u003e\u003c/summary\u003e\n\nThe final step is to login to the openbox-session, basically login from your display manager\nsuch as lightdm, gdm, etc. If you're using [`~/.xinitrc`](https://wiki.archlinux.org/title/Xinit)\nwithout a display manager, simply add the following one-liner command at the end.\n\n**Systemd-based Linux distributions**\n\n```sh\nexec openbox-session\n```\n\n**[Init-freedom](https://devuan.org/os/init-freedom) Linux distributions**\n\n```sh\nexec dbus-launch --exit-with-x11 openbox-session\n```\n\nThen you can proceed to [guides](#herb--guides). Explore!\n\n\u003c/details\u003e\n\n### :sunflower: ‎ \u003csamp\u003eSYNC FOR UPDATES\u003c/samp\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eClick or tap to extend\u003c/b\u003e\u003c/summary\u003e\n\nSince I recommend using rsync from the beginning, the easiest way is to list the files (via shell\n[heredocs](https://tldp.org/LDP/abs/html/here-docs.html)) that won't be updated to avoid replacing\npersonal files with .files. First, update the local repository with the remote git repository.\n\n\u003e Remember where you cloned the repository. We assumed that it was in the `~/Documents` directory.\n\n```sh\n💲 cd ~/Documents/\n```\n\n```sh\n💲 (cd dotfiles/; git pull --depth 1 --recurse-submodules --rebase)\n```\n\n```sh\n💲 rsync -avxHAXP --exclude-from=- dotfiles/. ~/ \u003c\u003c \"EXCLUDE\"\n.git*\nLICENSE\n*.md\n*.joy\nsettings.ini\nmpd.state\nautostart.sh\nenvironment\ntray\neyecandy.rasi\nmechanical.rasi\nshared.rasi\nEXTRA_JOYFUL\n.gtkrc-2.0\n.joyfuld\n.Xresources\nEXCLUDE\n```\n\n\u003e Use the find program to check the pattern. It's called [globbing](https://en.wikipedia.org/wiki/Glob_(programming)).\n\u003e ```sh\n\u003e 💲 find dotfiles/ -iname 'PATTERN'\n\u003e ```\n\n\u003c/details\u003e\n\n## :herb: ‎ \u003csamp\u003eGUIDES\u003c/samp\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eJoyful Desktop environment variables\u003c/b\u003e\u003c/summary\u003e\n\n[`~/.joyfuld`](./.joyfuld)\n\nManage all your settings there. I hope all the comments there are easy to understand. ^^\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eTouchpad tap-to-click (\u003ca href=\"https://wiki.archlinux.org/title/Libinput#Tapping_button_re-mapping\"\u003elibinput\u003c/a\u003e)\u003c/b\u003e\u003c/summary\u003e\n\n`/etc/X11/xorg.conf.d/30-touchpad.conf`\n\n```cfg\nSection \"InputClass\"\n    Identifier \"touchpad\"\n    Driver \"libinput\"\n    MatchIsTouchpad \"on\"\n    Option \"Tapping\" \"on\"\n    Option \"TappingButtonMap\" \"lmr\"\nEndSection\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eOpenbox autostart\u003c/b\u003e\u003c/summary\u003e\n\n[`~/.config/openbox/autostart.sh`](./.config/openbox/autostart.sh)\n\nThe unix-shell syntax, POSIX-compliant is highly recommended. Don't change the default, possibly broken.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eUser's tray programs\u003c/b\u003e\u003c/summary\u003e\n\n[`~/.config/openbox/tray`](./.config/openbox/tray)\n\nSingle program (and if any, with arguments) for each line. It will be restarted after switching modes.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eUser's environment variables\u003c/b\u003e\u003c/summary\u003e\n\n[`~/.config/openbox/environment`](./.config/openbox/environment)\n\nUse `export` to set user's environment variables universally. Don't add any other syntax.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eUser's preferred applications\u003c/b\u003e\u003c/summary\u003e\n\n[`~/.scripts/db.apps.joy`](./.scripts/db.apps.joy)\n\n| Parameters       | Available                                                                 | Description        |\n|:-----------------|:--------------------------------------------------------------------------|:-------------------|\n| *terminal*       | `urxvt` [`urxvtc`](./.config/openbox/autostart.sh#L17)                    | Terminal Emulator  |\n| *music_player*   | `mpd` [`MPRIS`](https://wiki.archlinux.org/title/MPRIS#Supported_clients) | Music/Media Player |\n| *file_manager*   | *anything*                                                                | File Manager       |\n| *session_locker* | *anything*                                                                | Session Locker     |\n\nTerminal emulator and file manager are used universally,\nboth for keybindings and context menus. The terminal emulator is actually freedom-of-choice,\nbut it's [not integrated](./.config/openbox/joyful-desktop/terminal-set.sh#L25-L132), it displays a\nnotification message. The music player [can be switched](./.scripts/music-controller.sh#L73-L84) without\nmodifying the configuration manually, via music control button on tint2 panel, just hover it. The session\nlocker was [used by xss-lock program](./.config/openbox/joyful-desktop/xss-lock-tsl.sh#L26-L36) (which\n[enabled in autostart](./.config/openbox/autostart.sh#L32)), triggered by systemd events and\n[DPMS](https://wiki.archlinux.org/title/Display_Power_Management_Signaling).\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eNcmpcpp and the album-art image cover\u003c/b\u003e\u003c/summary\u003e\n\nUpdate the mpd database first, via mpc or by pressing \u003ckbd\u003eU\u003c/kbd\u003e in ncmpcpp.\n\n```sh\n💲 mpc -p 7777 update\n```\n\nPut an image file that [matches BRE](./.config/ncmpcpp/scripts/album-art.sh#L79)\n`(album|cover|folder|artwork|front).*[.](jpe?g|png|gif|bmp)` into the directory containing\nalbum tracks. The directory is in the `~/Music` [by default](./.config/mpd/mpd.conf#L10).\nThe recommended image size is 500px at ratio of 1:1 or more. So, assume you have `~/Music/YOUR_ALBUM`\ndirectory with lots of tracks, you should put the image file to use as album-art\n(related to tracks) there. [This is for URxvt only](./.joyfuld#L144-L162).\n\nAlso, I use [ALSA driver in the MPD](./.config/mpd/mpd.conf#L27-L38) to get\n[bit-perfect playback](https://mpd.readthedocs.io/en/stable/user.html#bit-perfect-playback).\nIt's [disabled by default](./.config/mpd/mpd.state#L2-L3), you need to switch it.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eFile manager side-pane and XDG user directories\u003c/b\u003e\u003c/summary\u003e\n\nIf you just installed thunar without XFCE, you may get side-pane without\n[XDG directories](https://wiki.archlinux.org/title/XDG_user_directories) such as Documents,\nDownloads, etc. After you created those directories, open thunar and select or block those directories.\nThen right click and click **Send To** 🡲 **Side Pane**. [It's basically plain configuration file](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/using_the_desktop_environment_in_rhel_8/managing-bookmarks-in-gnome_using-the-desktop-environment-in-rhel-8#bookmarks-in-gnome_managing-bookmarks-in-gnome).\nThe following command generates those directories.\n\n```sh\n💲 xdg-user-dirs-update\n```\n\nIf you want to get 100% thunar looks similar to my screenshot, ensure to copy my\n[thunar configuration](./EXTRA_JOYFUL/.config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml)\n(before opening for the first time). Then hide Computer, Desktop, Recent,\nor whatever you want by right clicking **Places** on thunar side-pane. By default,\nmy thunar side-pane configuration uses simple 16px icons. [Suggested by Papirus Development\nTeam](https://github.com/PapirusDevelopmentTeam/papirus-icon-theme#manual-fixes).\n\n\u003c/details\u003e\n\n### :tanabata_tree: ‎ \u003csamp\u003eADDITIONALS\u003c/samp\u003e\n\n- [Capitaine Cursors Theme](https://pling.com/p/1148692)\n- [Do Live Calculations in Rofi!](https://github.com/svenstaro/rofi-calc)\n- [Telegram Desktop Nord Theme](https://t.me/addtheme/nord_colors)\n- [Recommended Modern Unix Utilities](https://github.com/ibraheemdev/modern-unix)\n- [Chrome-based Hardware Acceleration](https://linuxuprising.com/2021/01/how-to-enable-hardware-accelerated.html)\n- [Automatic Tiling for EWMH-compliant WMs](https://github.com/blrsn/zentile)\n\n## :four_leaf_clover: ‎ \u003csamp\u003eKEY BINDINGS\u003c/samp\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eOpenbox (\u003ca href=\"./.config/openbox/rc.xml#L175-L827\"\u003erc.xml\u003c/a\u003e)\u003c/b\u003e\u003c/summary\u003e\n\n| Key                                                                                                                                                         | Action                                            |\n|:------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------|\n|                                                                                                                                                             |                                                   |\n| **Window Management and more**                                                                                                                              |                                                   |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003e⯇\u003c/kbd\u003e                                                                                                                            | Move window focus to left-side                    |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003e⯈\u003c/kbd\u003e                                                                                                                            | Move window focus to right-side                   |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003e⯅\u003c/kbd\u003e                                                                                                                            | Move window focus to up-side                      |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003e⯆\u003c/kbd\u003e                                                                                                                            | Move window focus to down-side                    |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003eshift\u003c/kbd\u003e + \u003ckbd\u003e⯇\u003c/kbd\u003e                                                                                                         | Move focused window to left-side                  |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003eshift\u003c/kbd\u003e + \u003ckbd\u003e⯈\u003c/kbd\u003e                                                                                                         | Move focused window to right-side                 |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003eshift\u003c/kbd\u003e + \u003ckbd\u003e⯅\u003c/kbd\u003e                                                                                                         | Move focused window to up-side                    |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003eshift\u003c/kbd\u003e + \u003ckbd\u003e⯆\u003c/kbd\u003e                                                                                                         | Move focused window to down-side                  |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003e1\u003c/kbd\u003e / \u003ckbd\u003e2\u003c/kbd\u003e / \u003ckbd\u003e3\u003c/kbd\u003e / \u003ckbd\u003e4\u003c/kbd\u003e / \u003ckbd\u003e5\u003c/kbd\u003e / \u003ckbd\u003e6\u003c/kbd\u003e / \u003ckbd\u003e7\u003c/kbd\u003e / \u003ckbd\u003e8\u003c/kbd\u003e                    | Move to N desktop/workspace                       |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003eshift\u003c/kbd\u003e + \u003ckbd\u003e1\u003c/kbd\u003e / \u003ckbd\u003e2\u003c/kbd\u003e / \u003ckbd\u003e3\u003c/kbd\u003e / \u003ckbd\u003e4\u003c/kbd\u003e / \u003ckbd\u003e5\u003c/kbd\u003e / \u003ckbd\u003e6\u003c/kbd\u003e / \u003ckbd\u003e7\u003c/kbd\u003e / \u003ckbd\u003e8\u003c/kbd\u003e | Move focused window to N desktop/workspace        |\n| \u003ckbd\u003ealt\u003c/kbd\u003e + \u003ckbd\u003eㅤㅤㅤㅤ\u003c/kbd\u003e                                                                                                                         | Show (client-)menu of focused window              |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003eC\u003c/kbd\u003e                                                                                                                             | Close/kill focused window                         |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003eD\u003c/kbd\u003e                                                                                                                             | Toggle show desktop                               |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003eF\u003c/kbd\u003e                                                                                                                             | Toggle fullscreen for focused window              |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003eㅤㅤㅤㅤ\u003c/kbd\u003e                                                                                                                       | Show desktop (root-)menu                          |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003eT\u003c/kbd\u003e                                                                                                                             | Toggle decorations of focused window              |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003eX\u003c/kbd\u003e                                                                                                                             | Toggle maximize for focused window                |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003eZ\u003c/kbd\u003e                                                                                                                             | Toggle iconify (or minimize) for focused window   |\n| \u003ckbd\u003ealt\u003c/kbd\u003e + \u003ckbd\u003etab\u003c/kbd\u003e                                                                                                                             | Switch active window to next window               |\n| \u003ckbd\u003ealt\u003c/kbd\u003e + \u003ckbd\u003eshift\u003c/kbd\u003e + \u003ckbd\u003etab\u003c/kbd\u003e                                                                                                          | Switch active window to previous window           |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003eesc\u003c/kbd\u003e                                                                                                                           | Open rofi extensions menu                         |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003eprt sc\u003c/kbd\u003e                                                                                                                        | Open rofi screenshots menu                        |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003eR\u003c/kbd\u003e                                                                                                                             | Open rofi main menu                               |\n| \u003ckbd\u003eprt sc\u003c/kbd\u003e                                                                                                                                           | Screenshot                                        |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003eprt sc\u003c/kbd\u003e                                                                                                                         | Countdown screenshot                              |\n| \u003ckbd\u003eshift\u003c/kbd\u003e + \u003ckbd\u003eprt sc\u003c/kbd\u003e                                                                                                                        | Selection screenshot                              |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003eesc\u003c/kbd\u003e                                                                                                                            | Pop-up notification history                       |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003eenter\u003c/kbd\u003e                                                                                                                          | Open current notification context-menu            |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003eㅤㅤㅤㅤ\u003c/kbd\u003e                                                                                                                        | Close current notification                        |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003eshift\u003c/kbd\u003e + \u003ckbd\u003eㅤㅤㅤㅤ\u003c/kbd\u003e                                                                                                     | Close all notifications                           |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003eE\u003c/kbd\u003e                                                                                                                             | Open user's preferred file manager                |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003eL\u003c/kbd\u003e                                                                                                                             | Lock current session with user's preferred locker |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003eenter\u003c/kbd\u003e                                                                                                                         | Open user's preferred terminal emulator           |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003eshift\u003c/kbd\u003e + \u003ckbd\u003eenter\u003c/kbd\u003e                                                                                                      | Reverse terminal emulator background-foreground   |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003eshift\u003c/kbd\u003e + \u003ckbd\u003eR\u003c/kbd\u003e                                                                                                          | Restart UI                                        |\n|                                                                                                                                                             |                                                   |\n| **Brightness Control**                                                                                                                                      |                                                   |\n| \u003ckbd\u003e🔆+\u003c/kbd\u003e                                                                                                                                              | Increase brightness by N%                         |\n| \u003ckbd\u003e🔆-\u003c/kbd\u003e                                                                                                                                              | Decrease brightness by N%                         |\n|                                                                                                                                                             |                                                   |\n| **Audio-volume Control**                                                                                                                                    |                                                   |\n| \u003ckbd\u003e🔊+\u003c/kbd\u003e                                                                                                                                              | Increase audio-volume by N%                       |\n| \u003ckbd\u003e🔊-\u003c/kbd\u003e                                                                                                                                              | Decrease audio-volume by N%                       |\n| \u003ckbd\u003e🔇\u003c/kbd\u003e                                                                                                                                               | Toggle mute                                       |\n|                                                                                                                                                             |                                                   |\n| **Media Control**                                                                                                                                           |                                                   |\n| \u003ckbd\u003e⏮\u003c/kbd\u003e                                                                                                                                               | Previous track                                    |\n| \u003ckbd\u003e⏭\u003c/kbd\u003e                                                                                                                                               | Next track                                        |\n| \u003ckbd\u003e⏹\u003c/kbd\u003e                                                                                                                                               | Stop playing music                                |\n| \u003ckbd\u003e⏯\u003c/kbd\u003e                                                                                                                                               | Toggle play/pause                                 |\n|                                                                                                                                                             |                                                   |\n| **Combo Keyboard and Pointing Device**                                                                                                                      |                                                   |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003e`left click`\u003c/kbd\u003e (hold)                                                                                                           | Move focused window freely                        |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003e`right click`\u003c/kbd\u003e (hold)                                                                                                          | Resize focused window freely                      |\n| \u003ckbd\u003esuper\u003c/kbd\u003e + \u003ckbd\u003e`scroll up`\u003c/kbd\u003e / \u003ckbd\u003e`scroll down`\u003c/kbd\u003e                                                                                        | Move desktop/workspace to previous or next        |\n|                                                                                                                                                             |                                                   |\n| **Cursor on Desktop**                                                                                                                                       |                                                   |\n| \u003ckbd\u003e`middle click`\u003c/kbd\u003e                                                                                                                                   | Show desktop/workspace lists                      |\n| \u003ckbd\u003e`right click`\u003c/kbd\u003e                                                                                                                                    | Show desktop (root-)menu                          |\n| \u003ckbd\u003e`scroll up`\u003c/kbd\u003e / \u003ckbd\u003e`scroll down`\u003c/kbd\u003e                                                                                                           | Move desktop/workspace to previous or next        |\n|                                                                                                                                                             |                                                   |\n| **Cursor on Window Titlebar**                                                                                                                               |                                                   |\n| \u003ckbd\u003e`left click`\u003c/kbd\u003e (or simply hover)                                                                                                                   | Focus and raise window                            |\n| \u003ckbd\u003e`middle click`\u003c/kbd\u003e                                                                                                                                   | Switch active window to previous or next window   |\n| \u003ckbd\u003e`right click`\u003c/kbd\u003e                                                                                                                                    | Show (client-)menu of focused window              |\n| \u003ckbd\u003e`scroll up`\u003c/kbd\u003e / \u003ckbd\u003e`scroll down`\u003c/kbd\u003e                                                                                                           | Roll up or down focused window                    |\n\n\u003e **LEGEND**  \n\u003e [\u003ckbd\u003esuper\u003c/kbd\u003e](https://en.wikipedia.org/wiki/Super_key_(keyboard_button))\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eParcellite (\u003ca href=\"./EXTRA_JOYFUL/.config/parcellite/parcelliterc#L38-L41\"\u003eparcelliterc\u003c/a\u003e)\u003c/b\u003e\u003c/summary\u003e\n\n| Key                                             | Action                       |\n|:------------------------------------------------|:-----------------------------|\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003ealt\u003c/kbd\u003e + \u003ckbd\u003eP\u003c/kbd\u003e | Show menu                    |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003ealt\u003c/kbd\u003e + \u003ckbd\u003eH\u003c/kbd\u003e | Show history menu            |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003ealt\u003c/kbd\u003e + \u003ckbd\u003eX\u003c/kbd\u003e | Show persistent history menu |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003ealt\u003c/kbd\u003e + \u003ckbd\u003eA\u003c/kbd\u003e | Show action menu             |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eURxvt (\u003ca href=\"./.Xresources\"\u003e.Xresources\u003c/a\u003e)\u003c/b\u003e\u003c/summary\u003e\n\n| Key                                                          | Action                             |\n|:-------------------------------------------------------------|:-----------------------------------|\n|                                                              |                                    |\n| **Built-in**                                                 |                                    |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003eshift\u003c/kbd\u003e + \u003ckbd\u003eL\u003c/kbd\u003e            | Clear scrollback buffer cleanly    |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003eshift\u003c/kbd\u003e + \u003ckbd\u003eC\u003c/kbd\u003e            | Copy selection to clipboard        |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003eshift\u003c/kbd\u003e + \u003ckbd\u003eV\u003c/kbd\u003e            | Paste clipboard                    |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003e⯅\u003c/kbd\u003e                              | Scroll up by line                  |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003e⯆\u003c/kbd\u003e                              | Scroll down by line                |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003ehome\u003c/kbd\u003e                            | Scroll up to top                   |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003eend\u003c/kbd\u003e                             | Scroll down to bottom              |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003e`right click`\u003c/kbd\u003e (hold)            | Show context-menu                  |\n|                                                              |                                    |\n| **URL Selection (matcher)**                                  |                                    |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003eshift\u003c/kbd\u003e + \u003ckbd\u003eU\u003c/kbd\u003e            | Activate URL selection             |\n| \u003ckbd\u003e⯇\u003c/kbd\u003e / \u003ckbd\u003e⯅\u003c/kbd\u003e / \u003ckbd\u003e⯈\u003c/kbd\u003e / \u003ckbd\u003e⯆\u003c/kbd\u003e | Navigate URL selection             |\n| \u003ckbd\u003eenter\u003c/kbd\u003e / \u003ckbd\u003e`left click`\u003c/kbd\u003e                   | Open selected URL                  |\n| \u003ckbd\u003eesc\u003c/kbd\u003e                                               | Deactivate URL selection           |\n|                                                              |                                    |\n| **Font Resizer**                                             |                                    |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003e+\u003c/kbd\u003e                               | Increase font size by Npx          |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003e-\u003c/kbd\u003e                               | Decrease font size by Npx          |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003e=\u003c/kbd\u003e                               | Reset font size to default         |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003e?\u003c/kbd\u003e                               | Show font information              |\n|                                                              |                                    |\n| **Tabbed Extended**                                          |                                    |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003eshift\u003c/kbd\u003e + \u003ckbd\u003eT\u003c/kbd\u003e            | New tab                            |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003eshift\u003c/kbd\u003e + \u003ckbd\u003eR\u003c/kbd\u003e            | Rename current tab                 |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003eshift\u003c/kbd\u003e + \u003ckbd\u003eW\u003c/kbd\u003e            | Close/kill current tab             |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003epg up\u003c/kbd\u003e                           | Jump to next tab                   |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003epg dn\u003c/kbd\u003e                           | Jump to previous tab               |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003eshift\u003c/kbd\u003e + \u003ckbd\u003epg up\u003c/kbd\u003e        | Move current tab to next order     |\n| \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003eshift\u003c/kbd\u003e + \u003ckbd\u003epg dn\u003c/kbd\u003e        | Move current tab to previous order |\n\n\u003e **SHELL**  \n\u003e Most shells use the readline([3](https://www.man7.org/linux/man-pages/man3/readline.3.html#EDITING_COMMANDS)) library.\n\u003e In addition, provided by shell plugins.\n\u003e ```sh\n\u003e 💲 man 3 readline | less +/EDITING\\ COMMANDS\n\u003e ```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eDunst (\u003ca href=\"./.config/dunst/mechanical.artistic.dunstrc#L44-L46\"\u003edunstrc\u003c/a\u003e)\u003c/b\u003e\u003c/summary\u003e\n\n| Key                       | Action                          |\n|:--------------------------|:--------------------------------|\n| \u003ckbd\u003e`left click`\u003c/kbd\u003e   | Close current notification      |\n| \u003ckbd\u003e`middle click`\u003c/kbd\u003e | Open notifications context-menu |\n| \u003ckbd\u003e`right click`\u003c/kbd\u003e  | Close all notifications         |\n\n\u003c/details\u003e\n\n[Anime4K shaders](https://github.com/bloc97/Anime4K/blob/master/GLSL_Instructions.md)\nvia [mpv](https://mpv.io/manual/master/#interactive-control) with\n[custom key](./EXTRA_JOYFUL/.config/mpv/input.conf). [Ncmpcpp](https://pkgbuild.com/~jelle/ncmpcpp).\n[Thunar](https://docs.xfce.org/xfce/thunar/faq#how_do_i_assign_different_keyboard_shortcuts)\nwith [custom action key](./EXTRA_JOYFUL/.config/Thunar/accels.scm).\n\n## :maple_leaf: ‎ \u003csamp\u003eTHE PHILOSOPHY\u003c/samp\u003e\n\nAesthetics doesn't only look at the beauty of the results. There's beauty, in a sense, users are expected to feel\nlike they are part of how this was crafted. Emotion and satisfaction, relatively. Ideally, the author's idea is to\nuse this as a minimal \"replacement\" for bloated and complicated desktop environment. Pragmatically, what are the\n\"benefits\" in our daily life, especially for low-end devices. Realistically, be \"grateful\" to accept the existence\nof lightweight and non-proprietary software, and use it (instead of using pirated software).\n\nStarted [passively since 2018](https://github.com/owl4ce/dotfiles/wiki/My-Linux-Ricing-Journey).\nThen continued self-taught research months after COVID-19 pandemic, manically. It was still only one,\nmanually changing styles from one to another. Until finally, combining multiple styles into multiple modes.\nThe author named it **Joyful** (IPA: `/ˈdʒɔɪfəl/`) **Desktop**. The name isn't random, it was inspired by a music\ncomposed by [KODOMOi](https://kodomoi.com) along with the author's expression of wishing for love and happiness.\n\nThere are two modes with two themes totaling four, illogically representing the number in `/owl·4·ce/`, the\nauthor's nickname. Although both are functional, the Artistic Mode is expressed as a decorative aesthetic value,\nwhereas Interactive Mode is aimed for those who want the practical details of statistics. Initially, the dark\ntheme (Fleon) was predominantly blue, and the light theme (Sweetly) was red, expressing a mixture of violet\nbecause they tends to be blue. However, over time since the release of version 3.2, they tends to be red with\n[Cherry Blossom](https://en.wikipedia.org/wiki/Cherry_blossom). Blue expresses the author's seeking peace or\nserenity, violet represents light-hearted and ambition, and red is aggressive action that reflects passion.\n\nTwo themes are based on and aimed at the mood swings of users. Initially since the first release until\n[version 2](https://deviantart.com/owl4ce/art/Joyful-Desktop-v2-858107208), darkness was inspired by\n[Dystopia](https://en.wikipedia.org/wiki/Dystopia) (while the author listened to\n[The Astonishing](https://en.wikipedia.org/wiki/The_Astonishing) by\n[Dream Theater](https://en.wikipedia.org/wiki/Dream_Theater)),\na reflection of unhappiness and suffering. In contrast, natural scenery, a reflection of inner satisfaction.\nNow since the pre-release [version 4](https://github.com/owl4ce/dotfiles/releases/tag/ng) has adopted the same\ntheme and [color scheme](./EXTRA_JOYFUL/.config/inkscape/palettes/Joyful-Desktop.gpl) from the previous release.\n\n\u003cpre align=\"center\"\u003e\n\u003ca href=\"#maple_leaf--the-philosophy\"\u003e\n\u003cimg alt=\"\" align=\"center\" width=\"96%\" src=\"https://api.star-history.com/svg?repos=owl4ce/dotfiles\u0026type=Date\"/\u003e\n\u003c/a\u003e\n\u003c/pre\u003e\n\n## :tulip: ‎ \u003csamp\u003eTIP JAR\u003c/samp\u003e\n\nIf you enjoyed it and would like to show your appreciation, you may want to tip me here.\n\nIt's never required, but always wholeheartedly appreciated.\n\nThanks from the bottom of my heart! ‎ :heartpulse:\n\n[![](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/V7V05ZACS)\n[![](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/owl4ce/donate)\n\n## :bouquet: ‎ \u003csamp\u003eACKNOWLEDGEMENTS\u003c/samp\u003e\n\n|           |   | Inspiration and Resources                                   |                                                                                                                                                              |            |\n|:---------:|:-:|:------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------:|\n|           | 1 | [Elena](https://github.com/elenapan)                        |                                                                                                                                                              |            |\n|           | 2 | [Adhi Pambudi](https://github.com/addy-dclxvi)              |                                                                                                                                                              |            |\n|           | 3 | [Fikri Omar](https://github.com/fikriomar16)                |                                                                                                                                                              |            |\n|           | 4 | [Rizqi Nur Assyaufi](https://github.com/bandithijo)         |                                                                                                                                                              |            |\n|           | 5 | [Muktazam Hasbi Ashidiqi](https://github.com/reorr)         |                                                                                                                                                              |            |\n|           | 6 | [Galih Wisnuaji](https://github.com/nekonako)               |                                                                                                                                                              |            |\n|           | 7 | [Ghani Rafif](https://github.com/ekickx)                    |                                                                                                                                                              |            |\n|           | 8 | [Dylan Araps](https://github.com/dylanaraps)                |                                                                                                                                                              |            |\n|           | 9 | [Niivu](https://github.com/niivu)                           |                                                                                                                                                              |            |\n|           |   |                                                             |                                                                                                                                                              |            |\n| **Group** |   | **Contributors**                                            | **Contributions**                                                                                                                                            | **Status** |\n| Unlisted  | 1 | [Ekaunt](https://github.com/ekaunt)                         | [Better rofi prompt-menu](https://github.com/owl4ce/dotfiles/pull/2).                                                                                        | Obsolete   |\n| Unlisted  | 2 | [HopeBaron](https://github.com/HopeBaron)                   | [Termite configuration](https://github.com/owl4ce/dotfiles/pull/4).                                                                                          | Obsolete   |\n| Unlisted  | 3 | [Justin Faber](https://github.com/vredesbyyrd)              | [Rofi matched-lines indicator](https://github.com/owl4ce/dotfiles/issues/33#issuecomment-753399179).                                                         | Merged     |\n| Unlisted  | 4 | [Vcyzteen](https://github.com/vcyzteen)                     | [URxvt copy-paste with eval](https://github.com/owl4ce/dotfiles/pull/67/files#diff-76ca8b85960fd14348e9caa3ebabe00c3cf21593a94036f4ba3305c262809a34R59-R60). | Merged     |\n| Verified  | * | [![](https://contrib.rocks/image?repo=owl4ce/dotfiles)](https://github.com/owl4ce/dotfiles/graphs/contributors)                                                                                                                         |\n|           |   |                                                             |                                                                                                                                                              |            |\n| **Based** |   | **Community**                                               | **Membership Status**                                                                                                                                        |            |\n|:indonesia:| 1 | [Linuxer Desktop Art](https://facebook.com/groups/linuxart) | Self-destruct in 1443 H.                                                                                                                                     |            |\n|:indonesia:| 2 | [@dotfiles_id](https://t.me/dotfiles_id)                    | I quit in the same year.                                                                                                                                     |            |\n|:world_map:| 3 | [r/unixp*rn](https://reddit.com/r/unixporn)                 | Inactive for a long time.                                                                                                                                    |            |\n|:world_map:| 4 | [DeviantArt](https://deviantart.com)                        | Inactive for a long time.                                                                                                                                    |            |\n\n## :deciduous_tree: ‎ \u003csamp\u003eCONTRIBUTING\u003c/samp\u003e\n\n[Read here](./CONTRIBUTING.md).\n\n## :jack_o_lantern: ‎ \u003csamp\u003eSECURITY POLICY\u003c/samp\u003e\n\n[Read here](./SECURITY.md).\n\n\u003ch1\u003e\u003c/h1\u003e\n\n\u003cpre align=\"center\"\u003e\n\u003ca href=\"#readme\"\u003eBACK TO TOP\u003c/a\u003e\n\u003c/pre\u003e\n\n\u003c/div\u003e\n","funding_links":["https://ko-fi.com/owl4ce","https://liberapay.com/owl4ce","https://ko-fi.com/V7V05ZACS","https://liberapay.com/owl4ce/donate"],"categories":["CSS"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fowl4ce%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fowl4ce%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fowl4ce%2Fdotfiles/lists"}