๐ฅ๏ธ System Core
- Gentoo Linux - Operating System
- Portage - Package Manager
- Hyprland - Window Manager
- SDDM - Display Manager
- Waybar - Status Bar
- Mako - Notifications-
- Rofi - Application Launcher
- Zathura - Document Viewer
- Swww - Efficient wallpaper daemon for Wayland
- Lf - TUI File Manager
- Ranger - CLI VIM-inspired filemanager
- Yazi - TUI File Managmer ๐ฆ
- Timewarrior - Time Tracking
- Taskwarrior - Task Manager
- Taskwarrior TUI - TUI for taskwarrior
- Taskopen - Notes and open urls with taskwarrior
- Dooit TUI todo manager
- Obsidian - Markdown Notes
โ๏ธ Terminal Core
- Tmux - Terminal multiplexer
- TPM - Tmux Plugin Manager
- Foot - Terminal emulator
- Fish - Command line shell
- Fisher - Plugin manager for Fish
- Starship - Cross-shell prompt that displays information
- tmux-plugins/tmux-sensible A set of sensible defaults for Tmux
- tmux-plugins/tmux-continuum Automatic saving and restoring of Tmux sessions
- tmux-resurrect Restore Tmux environment after exiting
- jaclu/tmux-menus Simple Tmux menus for easy access
- sainnhe/tmux-fzf Fuzzy finder for Tmux
- wfxr/tmux-fzf-url Fuzzy search URLs in Tmux
- roy2220/easyjump.tmux Easy navigation in Tmux
- fcsonline/tmux-thumbs Thumbnail previews of files in Tmux
- tmux-plugins/tmux-yank Yanking text in Tmux
- jorgebucaran/fisher - Plugin manager for Fish.
- jethrokuan/z - Directory jumping tool
- patrickf1/fzf.fish - Command-line fuzzy finder
- jorgebucaran/spark.fish - Create and manage temporary files easily
- jorgebucaran/fishtape - Test runner for Fish shell scripts
- meaningful-ooo/sponge - Soak up standard input and write it to a file
- franciscolourenco/done - Managing background jobs
- jorgebucaran/autopair.fish - Automatically closes parentheses and quotes
- gazorby/fish-abbreviation-tips - Provides tips
- edc/bass - Bash commands in Fish shell
- jorgebucaran/nvm.fish - Version manager for Node.js
- nickeb96/puffer-fish - Collection of Fish shell functions and scripts
๐ ๏ธ CLI Productivity
- TUI Trove - Command line mastery
- Aider - AI assistant CLI
- Tgpt - AI assistant CLI without needing API keys
- YAI - AI assistant CLI OpenAI API
- Elia - CLI Chat with ChatGPT, Claude, Llama 3, Phi 3, Mistral, Gemma and more.
- Ollama - CLI utilize and run different LLMs offline on local machines
- Ollama Docker - Docker image for Ollama
- Hugging Face - Hugging Face API wrapper
- Cody - Sourcegraph API wrapper
- Dall-E - OpenAI API wrapper
- OpenAI - OpenAI API wrapper
- Aria2 - Advanced download manager
- Bat - Syntax-highlighted output viewer
- Bandwhich - Network usage analyzer
- Btop - System monitor
- Bpytop - System monitor
- Buku - Bookmark manager
- Cheat.sh - CLI cheat sheet
- Duf - Disk usage analyzer
- Eza - Modern file lister
- Fd - Fast and user-friendly alternative to 'find'
- Fdupes - Duplicate detector
- Fzf - Fuzzy finder
- Glances - System monitoring suite
- Gping - Graphical ping
- Hyperfine - Command benchmarker
- Procs - Process viewer
- Procps - Command monitor
- Peco - Interactive command selector
- Ripgrep - Ultra-fast searcher
- Ripgrep-all - Search in all files: PDFs, E-Books, Office documents, zip, tar.gz, etc.
- Rclone - Manage cloud storage
- Rsync - File synchronization
- Thefuck - Command corrector
- Tree - Directory visualizer
- Trash-cli - Trash manager
- W3M - Modern web browser
- Surfraw - Web search engine
- Browsh - CLI web browser
- Neomutt - Eymail client
- Newsboat - RSS / ATOM news reader
- Ncdu - Disk analyzer
- Speedtest-cli - Speed tester
- Dog - DNS lookup tool
- Xclip - Clipboard manager
- Wl-clip - Clipboard manager for Wayland
- Jq - JSON processor
- Sd - Text transformer
- Zoxide - Directory jumper
- Dra - CLI for download release assets from GitHub
- Hl - Log viewer and processor
- Bluetui - TUI for Bluetooth devices
- Kmon - Kernel Manager and Activity Monitor
- Spotify TUI - TUI for Spotify
- Projectable - TUI project manager
- Oxker - CLI for managing Docker images ๐ฆ
- Pocker - Docker TUI
- AdGuardian-Term - TUI real-time traffic monitoring Adguard๐ฆ
- Atuin - TUI shell history
- Ratatui - TUI for crates.io
- Flawz - TUI browsing security vulnerabilities (CVEs)
- Gallery-dl - CLI image downloader
- Youtube-dl - CLI video downloader
- yt-dlp - CLI audio/video downloader
- Wg-cmd - TUI for managing WireGuard configuration files ๐ฆ
- Vscli - CLI/TUI that simplifies launching VSCode projects ๐ฆ
- Tgt - TUI for Telegram written in Rust ๐ฆ
- Scli - TUI for Signal written in Rust ๐ฆ
- Planor TUI client for cloud services (AWS, Vultr, Heroku, Render.com, Fleek, ...)
๐ ๏ธ Development Environment
- Neovim - Code Editor
- Bob - Neovim Version Manager
- VSCodium - GUI Editor
- lazydocker - Docker TUI
- Ctop - Container statistics
- Httpie - Modern HTTP clien
- Curlie Curl wrapper that adds the ease of use of httpie
- Kdash - K8s dashboard
- Scc - Code counter
- Ctags - Source code indexing
- Diff-so-fancy - Enhanced diff viewer
- Entr - File change monitor
- Git - Version Control Foundation
- Hub - GitHub Integration
- GitHub CLI - Official GitHub Workflow
- Gitnr - CLI utility to create .gitignore files
- LazyGit - Interactive TUI
- GitUI - Blazing Fast Rust TUI
- Tig - Text-based Interface
- Git LFS - Large File Management
- Git Flow - Advanced Branching
- Git Crypt - File Encryption
- Delta - Beautiful Diffs
- Git Cliff - Changelog Generation
- Git Cola - Modern Qt GUI
- Gitg - GTK Interface
- QGit - Lightweight Qt UI
- GHQ - Repository Organization
- Fugitive - Vim Git Integration
- Git Fuzzy - Fuzzy Finder
- Act3 - GitHub Actions CLI v3
๐ก๏ธ Security Arsenal
- Bcrypt - Military-grade file encryption with Blowfish algorithm
- GPG - Industry-standard encryption
- GPG TUI - TUI for GPG
- Git-Crypt - Transparent git encryption
- Pass - GPG-encrypted password vault
- Clamav - Enterprise-class antivirus and malware detection
- Lynis - Advanced system security auditing and hardening
- Openssl - Industry-standard cryptographic toolkit
- Rkhunter - Professional rootkit detection and system verification
- Veracrypt - Real-time disk encryption with plausible deniability
- Standard Notes - Encrypted synced notes
- Signal - Link to encrypted mobile messenger
- Ledger Live - Crypto hardware wallet manager
- Exiftool - Metadata manipulator
- app-admin/pass Manage and generate passwords.
- app-admin/pass-audit::guru: Audit your password repository.
- app-admin/pass-otp: Manage and generate one-time passwords (OTP).
- app-admin/pass-update::guru: Update your passwords.
- www-plugins/browserpass: Browser extension for managing passwords.
- www-plugins/passff-host: Firefox add-on for password management.
- app-admin/gopass: Go implementation of pass.
- app-admin/qtpass: Qt GUI for pass.
- gui-apps/tessen::guru: Interactive menu to autotype and copy pass data.
- kde-misc/plasma-pass: Plasma applet to access passwords from pass.
๐ก๏ธ Web Intelligence
- Dog - DNS lookup tool
- Scrcpy - Display and control Andrdroid devices
- Bettercap - Network, scanning and moniroting
- Nmap - Port scanning
- Wrk - HTTP benchmarking
- Burp-suite - Web security testing
- Metasploit - Pen testing framework
- Owasp-zap - Web app security scanner
- Wireshark - Network analyzer + packet capture
๐จ Creative Studio Suite
- Audacity - Professional audio workstation with multi-track editing
- Blender - Industry-standard 3D creation suite
- Cura - Advanced 3D print preparation
- DarkTable - Professional RAW photo workflow
- GIMP - Complete image manipulation studio
- Inkscape - Vector graphics powerhouse
- Kdenlive - Professional video editing suite
- HandBrake - Universal video transcoder
- OBS Studio - Professional streaming platform
- Shotcut - Full-featured video editor
- Dia - Technical diagram creator
- Synfig Studio - Production-ready 2D animation
- Ttygif - Generate GIF from terminal
๐ File Management
- Yazi - TUI File Manager ๐ฆ
- Awesome Yazi - Collection plagins for Yazi
๐ฆ Previewers
epub.yazi - Plugin for Yazi to preview epub file.
git clone https://github.com/DreamMaoMao/epub.yazi.git $HOME/.config/yazi/plugins/epub.yazi
[plugin]
prepend_previewers = [
{ name = "*.epub", run = "epub" },
]
prepend_preloaders= [
{ name = "*.epub", run = "epub" },
]
exifaudio.yazi - Preview audio metadata and cover using exiftool.
ya pack -a Sonico98/exifaudio
eza-preview.yazi - Preview audio metadata and cover using exiftool.
ya pack -a sharklasers996/eza-preview
hexyl.yazi - Using hexyl as the fallback previewer for files.
ya pack -a Reledia/hexyl
lsar.yazi - Previewing archive contents with lsar.
ya pack -a yazi-rs/plugins:lsar
mdcat.yazi - Preview markdown files using mdcat.
ya pack -a GrzegorzKozub/mdcat
mediainfo.yazi - Preview files using 'ffmpegthumbnailer' and 'mediainfo'
ya pack -a Ape/mediainfo
miller.yazi - Preview CSV files (and other supported formats) using miller.
ya pack -a Reledia/miller
nbpreview.yazi - Preview jupyter notebooks (\*.ipynb) files using nbpreview.
ya pack -a AnirudhG07/nbpreview
rich-preview.yazi - Preview Markdown, JSON, CSV, etc. using rich-cli.
ya pack -a AnirudhG07/rich-preview
torrent-preview.yazi - Preview "\*.torrent" files using transmission-cli.
ya pack -a kirasok/torrent-preview
video-ffmpeg.yazi - Preview video files using ffmpeg directly instead of ffmpegthumbnailer.
ya pack -a Tyarel8/video-ffmpeg
๐ฆ Jumping
easyjump.yazi - Jump to files with a press of one or two keys for Yazi.
# Linux
git clone https://gitee.com/DreamMaoMao/easyjump.yazi.git ~/.config/yazi/plugins/easyjump.yazi
# Windows, with Powershell
if (!(Test-Path $env:APPDATA\yazi\config\plugins\)) {mkdir $env:APPDATA\yazi\config\plugins\}
git clone https://gitee.com/DreamMaoMao/easyjump.yazi.git $env:APPDATA\yazi\config\plugins\easyjump.yazi
fg.yazi - A Yazi plugin that supports file searching with an fzf preview.
# Linux
git clone https://github.com/DreamMaoMao/fg.yazi.git ~/.config/yazi/plugins/fg.yazi
first-non-directory.yazi - Allows easy jumping to the first file ignoring directories.
ya pack -a lpanebr/yazi-plugins:first-non-directory
jump-to-char.yazi - Vim-like `f`, jump to the next file whose name starts with ``.
ya pack -a yazi-rs/plugins:jump-to-char
relative-motions.yazi - A Yazi plugin based on vim motions.
ya pack -a dedukun/relative-motions
searchjump.yazi - A Yazi plugin which the behavior consistent with flash.nvim in Neovim, allow search str to generate lable to jump.support chinese pinyin search,regular expression search.
# Linux
git clone https://gitee.com/DreamMaoMao/searchjump.yazi.git ~/.config/yazi/plugins/searchjump.yazi
# Windows, with Powershell
if (!(Test-Path $env:APPDATA\yazi\config\plugins\)) {mkdir $env:APPDATA\yazi\config\plugins\}
git clone https://gitee.com/DreamMaoMao/searchjump.yazi.git $env:APPDATA\yazi\config\plugins\searchjump.yazi
๐ฆ Bookmarks
DreamMaoMao/bookmarks.yazi - A Yazi plugin that Supports persistent bookmark management.No bookmarks are lost after you close yazi.
# Linux/macOS
git clone https://gitee.com/DreamMaoMao/bookmarks.yazi.git ~/.config/yazi/plugins/bookmarks.yazi
# Windows
git clone https://gitee.com/DreamMaoMao/bookmarks.yazi.git $env:APPDATA\yazi\config\plugins\bookmarks.yazi
dedukun/bookmarks.yazi - A Yazi plugin that adds the basic functionality of Vi-like marks.
ya pack -a dedukun/bookmarks
projects.yazi - A Yazi plugin that adds the functionality to save and load projects.
ya pack -a MasouShizuka/projects
๐ฆ File Actions
archive.yazi - Compress selected or hovered files and directories to an archive. It currently supports various archive formats.
ya pack -a KKV9/archive
archivemount.yazi - Mounting and unmounting archives in yazi using archivemount.
ya pack -a AnirudhG07/archivemount
chmod.yazi - Execute `chmod` on the selected files to change their mode.
ya pack -a yazi-rs/plugins:chmod
diff.yazi - Diff the selected file with the hovered file, create a living patch, and copy it to the clipboard.
ya pack -a yazi-rs/plugins:diff
file-actions.yazi - A Yazi plugin that allows users to perform actions on selected files using custom scripts.
ya pack -a BBOOXX/file-actions
fuse-archive.yazi - Transparently mount and unmount archives in read-only mode while navigating in Yazi.
ya pack -a dawsers/fuse-archive
lazygit.yazi - Manage Git directories with lazygit through a quick shortcut.
ya pack -a Lil-Dank/lazygit
mkdir.yazi - Create directories without typing a trailing slash.
ya pack -a Sonico98/mkdir
reflink.yazi - Create reflinks to files.
ya pack -a Ape/reflink
rsync.yazi - Simple rsyncing locally and remotely.
ya pack -a GianniBYoung/rsync
what-size.yazi - Calculate the total size of the current selection or of the current working directory.
ya pack -a pirafrank/what-size
whide.yazi - Hide/unhide files in Windows.
ya pack -a Tyarel8/whide
๐ฆ Filter Enhancements
smart-filter.yazi - Makes filters smarter: continuous filtering, automatically enter unique directory, open file on submitting.
ya pack -a yazi-rs/plugins:smart-filter
bypass.yazi - Yazi plugin for skipping directories with only a single sub-directory.
ya pack -a Rolv-Apneseth/bypass
fast-enter.yazi - Auto-decompress archives and enter them, or enter the deepest directory until it's not the only subdirectory.
ya pack -a ourongxing/fast-enter
augment-command.yazi - Enhances a few Yazi commands with better handling of the choice between selected items and the hovered item. It also auto-extracts archives and includes features like bidirectional skipping of directories with a single sub-directory, along with plugins from the tips page such as `smart-enter`, `smart-paste`, `parent-arrow`, and more.
ya pack -a hankertrix/augment-command
copy-file-contents.yazi - A simple plugin to copy the contents of a file to the clipboard directly from yazi.
ya pack -a AnirudhG07/plugins-yazi:copy-file-contents
sudo.yazi - Call `sudo` in yazi.
ya pack -a TD-Sky/sudo
system-clipboard.yazi - Cross-platform system clipboard support for yazi.
ya pack -a orhnk/system-clipboard
win-clipboard.yazi - Yazi plugin for copy file to clipboard,support linux and windows.
# Linux
git clone https://gitee.com/DreamMaoMao/clipboard.yazi.git ~/.config/yazi/plugins/clipboard.yazi
# Windows
git clone https://gitee.com/DreamMaoMao/clipboard.yazi.git $env:APPDATA\yazi\config\plugins\clipboard.yazi
current-size.yazi - Get current path size in header bar for yazi plugin/
git clone https://gitee.com/DreamMaoMao/current-size.yazi.git ~/.config/yazi/plugins/current-size.yazi
dual-pane.yazi - Dual pane navigation like Total Commander.
ya pack -a dawsers/dual-pane
full-border.yazi - Add a full border to Yazi to make it look fancier.
ya pack -a yazi-rs/plugins:full-border
hide-preview.yazi - Switch the preview pane between hidden and shown.
ya pack -a yazi-rs/plugins:hide-preview
mactag.yazi - Bring macOS's awesome tagging feature to Yazi! The plugin it's only available for macOS just like the name says.
ya pack -a yazi-rs/plugins:mactag
max-preview.yazi - Maximize or restore the preview pane.
ya pack -a yazi-rs/plugins:max-preview
no-status.yazi - Remove the status bar.
ya pack -a yazi-rs/plugins:no-status
omp.yazi - oh-my-posh prompt plugin for Yazi.
ya pack -a saumyajyoti/omp
open-with-cmd.yazi - Open files using a prompted command.
ya pack -a Ape/open-with-cmd
simple-status.yazi - Minimalistic status line with useful file attribute information.
ya pack -a Ape/simple-status
starship.yazi - Starship prompt plugin for Yazi.
ya pack -a Rolv-Apneseth/starship
toggle-view.yazi - Toggle on/off parent, current, or preview independently.
ya pack -a dawsers/toggle-view
yatline.yazi - Plugin for customizing both header-line and status-line.
ya pack -a imsi32/yatline
yaziline.yazi - Simple lualine-like status line.
ya pack -a llanosrocas/yaziline
DreamMaoMao/git.yazi - git extension and message prompt plugin for Yazi.
# For Linux
git clone https://gitee.com/DreamMaoMao/git.yazi.git ~/.config/yazi/plugins/git.yazi
# For Windows
git clone https://gitee.com/DreamMaoMao/git.yazi $env:APPDATA\yazi\config\plugins\git.yazi
yazi-rs/git.yazi - Show the status of Git file changes as linemode in the file list.
ya pack -a yazi-rs/plugins:git
githead.yazi - git status header inspired by powerlevel10k.
ya pack -a llanosrocas/githead
allmytoes.yazi - Preview freedesktop-compatible thumbnails using allmytoes.
ya pack -a Sonico98/allmytoes
๐ฆ Fetchers
DreamMaoMao/mime-ext.yazi - A Yazi plugin that quickly get mimetype to improved theme rendering speed.
# Linux/macOS
git clone https://gitee.com/DreamMaoMao/mime-ext.yazi.git ~/.config/yazi/plugins/mime-ext.yazi
[plugin]
fetchers = [
{ id = "mime-ext", name = "*", run = "mime-ext", prio = "high" },
]
yazi-rs/mime-ext.yazi - A common file type MIME-type library specifically designed for Yazi.
ya pack -a yazi-rs/plugins:mime-ext
[plugin]
fetchers = [
{ id = "mime",if = "!mime", name = "*", run = "mime-ext", prio = "high" },
]
mime-preview.yazi - Enables the preview folder on the right pane of yazi to render theme colors. very quickly with almost no performance loss.
# Linux
git clone https://gitee.com/DreamMaoMao/mime-preview.yazi.git ~/.config/yazi/plugins/mime-preview.yazi
# qAdd this to ~/.config/yazi/init.lua
require("mime-preview"):setup()
๐ฆ Neovim
mikavilpas/yazi.nvim - A fork of DreamMaoMao/yazi.nvim with a bunch of additional features.
-- Using lazy.nvim
return {
"mikavilpas/yazi.nvim",
event = "VeryLazy",
keys = {
{ "<leader>-", "<cmd>Yazi<cr>", desc = "Open yazi at the current file" },
{ "<leader>cw", "<cmd>Yazi cwd<cr>", desc = "Open the file manager in nvim's working directory" },
{ "<c-up>", "<cmd>Yazi toggle<cr>", desc = "Resume the last yazi session" },
},
opts = {
-- Options for opening Yazi
open_for_directories = false, -- Open Yazi instead of netrw (default: false)
open_multiple_tabs = false, -- Open visible splits as Yazi tabs (default: false)
highlight_hovered_buffers_in_same_directory = true, -- Highlight buffers in the same directory
-- Floating window settings
floating_window_scaling_factor = 0.9, -- Window scaling factor
yazi_floating_window_winblend = 0, -- Transparency (0-100)
yazi_floating_window_border = "rounded", -- Border type for the floating window
-- Log settings
log_level = vim.log.levels.OFF, -- Logging level
-- Custom actions for file opening
open_file_function = function(chosen_file, config, state) end,
-- Custom keymaps while Yazi is focused
keymaps = {
show_help = "<f1>",
open_file_in_vertical_split = "<c-v>",
open_file_in_horizontal_split = "<c-x>",
open_file_in_tab = "<c-t>",
grep_in_directory = "<c-s>",
replace_in_directory = "<c-g>",
cycle_open_buffers = "<tab>",
copy_relative_path_to_selected_files = "<c-y>",
send_to_quickfix_list = "<c-q>",
change_working_directory = "<c-\\>",
},
-- Hooks for custom actions
hooks = {
yazi_opened = function(preselected_path, yazi_buffer_id, config) end,
yazi_closed_successfully = function(chosen_file, config, state) end,
yazi_opened_multiple_files = function(chosen_files, config, state) end,
},
-- Clipboard settings
clipboard_register = "*", -- Register for copying text
-- Integration with other plugins
integrations = {
grep_in_directory = function(directory)
-- Default: uses telescope if available
end,
grep_in_selected_files = function(selected_files) end,
replace_in_directory = function(directory) end,
replace_in_selected_files = function(selected_files) end,
resolve_relative_path_application = "", -- Path resolver (realpath)
},
},
}
- For more information, check the repository.
tfm.nvim - Neovim plugin for terminal file manager integration.
-- Using lazy.nvim
{
"rolv-apneseth/tfm.nvim",
config = function()
-- Set keymap so you can open the default terminal file manager (yazi)
vim.api.nvim_set_keymap("n", "<leader>e", "", {
noremap = true,
callback = require("tfm").open,
})
end,
}
-- For more information, check the repository.
yazi.vim - Vim plugin for Yazi.
Plug 'chriszarate/yazi.vim'
๐ฆ Shell plugins
command.yazi - Display a prompt for executing yazi commands.
# For Unix platforms
git clone https://github.com/KKV9/command.yazi.git ~/.config/yazi/plugins/command.yazi
## For Windows
git clone https://github.com/KKV9/command.yazi.git %AppData%\yazi\config\plugins\command.yazi
# Or with yazi plugin manager
ya pack -a KKV9/command
custom-shell.yazi - Set your custom-shell as your default yazi Shell.
ya pack -a AnirudhG07/custom-shell
# For linux and MacOS
git clone https://github.com/AnirudhG07/custom-shell.yazi.git ~/.config/yazi/plugins/custom-shell.yazi
yazi-prompt.sh - Display an indicator in your prompt when running inside a yazi subshell.
ya pack -a Sonico98/yazi-prompt
๐ฆ Utilities
icons-brew.yazi - Make a hot `theme.toml` for your Yazi icons with your favorite color palette.
ya pack -a lpnh/icons-brew
๐ฆ Flavors
catppuccin-frappe.yazi - Add flavor to yazi with Catppuccin Frappe theme.
ya pack -a yazi-rs/flavors:catppuccin-mocha
catppuccin-latte.yazi - Add flavor to yazi with Catppuccin Latte theme.
ya pack -a yazi-rs/flavors:catppuccin-latte
catppuccin-macchiato.yazi - Add flavor to yazi with Catppuccin Macchiato theme.
ya pack -a yazi-rs/flavors:catppuccin-macchiato
catppuccin-mocha.yazi - Add flavor to yazi with Catppuccin Mocha theme.
ya pack -a yazi-rs/flavors:catppuccin-mocha
kanagawa.yazi - Kanagawa flavors for Yazi.
ya pack -a dangooddd/kanagawa
onedark.yazi - One Dark flavor for Yazi.
ya pack -a BennyOe/onedark
tokyo-night.yazi - Tokyo Night flavor for Yazi.
ya pack -a BennyOe/tokyo-night
๐ฆ Themes
Catppuccin - Capuccino-inspired theme for Yazi.
Manual Installation Required.
Crystal - Crystal theme for Yazi.
Manual Installation Required.
Gruvbox Dark - Gruvbox Dark theme for Yazi.
Manual Installation Required.
Flexoki - Flexoki theme for Yazi.
Manual Installation Required.
LS_COLORS - Adds over 300 different colors for filetypes (converted from the LS_COLORS collection using lsColorsToToml)
Manual Installation Required.
Rosรฉ Pine - Rosรฉ Pine theme for Yazi.
Manual Installation Required.
๐ต Media
- MPV - Modern media player
- MPD - Music player
- VLC - Media player
- Cmus - Music browser / player
- Calibre - E-Book reader
- Spotify - Propietary music streaming
- Spotify + Spicetify - Music streaming with spicetify-themes
- Transmission - Torrent client
- Pandoc - Universal file converter
Dotfiles are your digital DNA - configuration files, that begin with a dot (.) and shape your cyber-reality. Theyโre the essence of customization, typically residing in $HOME/.config, following the XDG Base Directory spec like a digital street map. They define how your system breathes, thinks, and executes. In the neon-lit world of Unix, everything is a file, and your dotfiles are the source code of your digital existence.
# https://wiki.archlinux.org/title/XDG_Base_Directory
# https://wiki.archlinux.org/title/XDG_user_directories
# Check all XDG variables set on your system
user $ env | grep ^XDG
# $HOME/.config/fish/config.fish
# XDG Base Directory Specification Variables
set -x XDG_CONFIG_HOME $HOME/.config # User-specific configuration files
set -x XDG_CACHE_HOME $HOME/.cache # User-specific non-essential data files
set -x XDG_DATA_HOME $HOME/.local/share # User-specific data files
set -x XDG_STATE_HOME $HOME/.local/state # User-specific state files
set -x XDG_RUNTIME_DIR (mktemp -d "/tmp/(id -u)-runtime-dir.XXX") # User-specific runtime files and other file objects (like sockets)
# XDG Custom Directories
set -x XDG_BIN_DIR "$HOME/.local/bin" # User-specific directory for executable files
set -x XDG_PROJECTS_DIR "$HOME/projects" # User-specific directory for projects
set -x XDG_DOTFILES_DIR "$HOME/dotfiles" # User-specific directory for dotfiles (configuration files)
# XDG User Directories
set -x XDG_DOWNLOAD_DIR $HOME/downloads # Default downloads directory
set -x XDG_DOCUMENTS_DIR $HOME/documents # Default documents directory
set -x XDG_DESKTOP_DIR $HOME/desktop # Default desktop directory
set -x XDG_PICTURES_DIR $HOME/pictures # Default pictures directory
set -x XDG_MUSIC_DIR $HOME/music # Default music directory
set -x XDG_VIDEOS_DIR $HOME/videos # Default videos directory
set -x XDG_TEMPLATES_DIR $HOME/templates # Default templates directory
# Note: By default, XDG folder names are capitalized, but I prefer using lowercase.
- XDG Spec โ Clean directory structure
- Modular Config โ Compartmentalized power
- Version Control โ Timeline management
- Symlink Deploy โ Dynamic file matrix
- Encrypted Secrets โ Secured data vault
- Shell Optimization โ Custom aliases, functions
- Key Bindings โ Neural interface shortcuts
- Color Schemes โ Visual matrix calibration
- Plugin Systems โ Modular power extensions
- Script Automation โ System self-optimization
- Process Management โ Resource allocation
- Memory Tuning โ RAM optimization
- I/O Scheduling โ Data flow control
- Network Stack โ Connection enhancement
- Storage Pipeline โ Fast data access
- Service Management โ Systemd optimization
- Boot Sequence โ Fast initialization
- Cache Strategy โ Quick data retrieval
- Kernel Parameters โ Core system tuning
- Package Selection โ Minimal footprint
Is a strategy for organizing and maintaining configuration files (dotfiles) across different systems. Here are the key approaches:
Symlinking: Create symbolic links from a central repository of configuration files to their respective locations in your home directory. This allows easy updates and synchronization, as changes in the repository reflect in linked locations.
Git Bare Repository: Use a bare Git repository to store dotfiles without a working directory. This enables you to push changes to the repository and manage your configurations through Git commands, benefiting from version control features.
Manual Management with Scripts: Write scripts to manually copy or move dotfiles to their appropriate locations. This method offers complete control but may require more effort to maintain.
These methods streamline the management of configurations, making setups consistent and changes easy to track.
- Dotbot - Zero-dependency dotfile installer
- GNU Stow - GNU Stow is a symlink farm manager
- Chezmoi - Manage your dotfiles across multiple diverse machines
- YADM - Advanced dotfile manager with encryption
- VCSH - Multi-repository management system
- Git Bare Repo Guide - Modern approach to dotfile management
- Atlassian Tutorial - Professional dotfile workflow
- HN Discussion - Community insights and best practices
# Git Bare Repository Setup
# Initialize specific git directory
user $ git init --bare $HOME/hyprdots-gentoo
# Optimize git tracking
user $ dot config --local status.showUntrackedFiles no
#~/.config/fish/config.fish
# Managing dotfiles with a specific git directory and working tree
abbr -a dot 'git --git-dir=$HOME/hyprdots-gentoo --work-tree=$HOME'
# Use 'dotc <message>' to commit changes to dotfiles with the specified message
abbr -a dotc 'dot commit -m'
# Automatically stage files that have been modified and deleted
abbr -a dota 'dot commit -a -m'
# Signs the commit with GPG.
abbr -a dote 'dot commit -S -s -m'
# Use 'dotp' to push changes to the 'main' branch on the 'origin' remote
abbr -a dotp 'dot push -u origin main'
# Deploy initial configuration
user $ dot add file1 file2 file3 ...
user $ dotc "Initial commit: Fix issue with user authentication"
user $ dotp
- Chromium - Web Browser
- Ungoogled-Chromium - Zero Google dependencies
- Firefox - Web Browser
- LibreWolf - Primary goals of privacy, security and user freedom.
- Tor - Onion Routing
# ...
# ๐ ๏ธ Git Installation Guide
# Git credentials
# Not in the repository, to prevent people from accidentally committing under my name
# GIT_AUTHOR_NAME="Mathias Bynens"
# GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"
# git config --global user.name "$GIT_AUTHOR_NAME"
# GIT_AUTHOR_EMAIL="[email protected]"
# GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"
# git config --global user.email "$GIT_AUTHOR_EMAIL"
# Configure Git USE flags
root $ echo 'dev-vcs/git blksha1 curl gpg iconv nls pcre perl safe-directory webdav doc highlight keyring selinux test tk' >> /etc/portage/package.use/git
# Core Git installation
root $ emerge --sync
root $ emerge --ask dev-vcs/git dev-vcs/hub github-cli
# Add community packages
root $ emerge --ask app-eselect/eselect-repository
root $ eselect repository enable guru
root $ emaint sync -r guru
root $ emerge --sync
# Core utilities
root $ emerge --ask dev-vcs/tig dev-vcs/lazygit dev-vcs/gitui
# Extended functionality
root $ emerge --ask dev-vcs/git-flow dev-vcs/git-lfs dev-vcs/git-crypt dev-util/git-delta
# Additional tools
root $ go install github.com/x-motemen/ghq@latest
root $ cargo install --git https://github.com/orhun/git-cliff
# Git Fuzzy setup
user $ git clone https://github.com/bigH/git-fuzzy.git
user $ echo "set -x PATH (pwd)\"/git-fuzzy/bin:\$PATH\"" >> ~/.config/fish/config.fish
# LFS initialization
user $ git lfs install --skip-repo
Your system is now a high-performance cyber-deck, ready to hack the matrix! ๐งจ