Skip to content

๐Ÿงจ Optimized Gentoo Linux development environment featuring Hyprland, custom USE flags, and optimized toolchain

Notifications You must be signed in to change notification settings

zx0r/hyprdots-gentoo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

2 Commits
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Typing SVG

Screenshot nvim

๐Ÿš€ Tech Stack

๐Ÿ–ฅ๏ธ System Core
โš™๏ธ Terminal Core
๐Ÿ“ฆ Tools and Plugins
  • 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
๐Ÿ“ฆ Plugin List for Tmux
๐Ÿ“ฆ Plugins for Fish Shell
๐Ÿ› ๏ธ CLI Productivity
๐Ÿ“š AI Ecosystem
  • 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
๐Ÿ“ฆ CLI/TUI Ecosystem
  • 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
๐Ÿ—๏ธ Code Ecosystem
๐Ÿ”ง Git Ecosystem
๐Ÿ›ก๏ธ Security Arsenal
๐Ÿ” Encryption
  • 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
๐Ÿ”’ Password Management
  • 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
๐ŸŽจ 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
๐Ÿ“ฆ 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
glow.yazi - Preview markdown files using glow.
ya pack -a Reledia/glow
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
ouch.yazi - An archive previewer plugin for Yazi, using ouch.
ya pack -a ndtoan96/ouch
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
yamb.yazi - Yet another bookmarks plugin. It supports persistence, jumping by a key, and jumping by fzf.
ya pack -a h-hg/yamb
๐Ÿ“ฆ 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
ouch.yazi - An ouch plugin for Yazi, supporting preview and compression.
ya pack -a ndtoan96/ouch
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

Enter Enhancements

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

General command enhancements

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

UI enhancements

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

Git Utils

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

Preloader Images

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

๐Ÿ’ฎ DOTFILES

๐Ÿˆน What are Dotfiles?

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.

๐ŸŒ XDG Directory Matrix
# 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.
๐Ÿ”ง Customization Protocols
System Architecture
  • XDG Spec โ†’ Clean directory structure
  • Modular Config โ†’ Compartmentalized power
  • Version Control โ†’ Timeline management
  • Symlink Deploy โ†’ Dynamic file matrix
  • Encrypted Secrets โ†’ Secured data vault
Enhancement Vectors
  • 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
๐Ÿš€ Performance Matrix
Core Optimization
  • Process Management โ†’ Resource allocation
  • Memory Tuning โ†’ RAM optimization
  • I/O Scheduling โ†’ Data flow control
  • Network Stack โ†’ Connection enhancement
  • Storage Pipeline โ†’ Fast data access
System Augmentation
  • Service Management โ†’ Systemd optimization
  • Boot Sequence โ†’ Fast initialization
  • Cache Strategy โ†’ Quick data retrieval
  • Kernel Parameters โ†’ Core system tuning
  • Package Selection โ†’ Minimal footprint

๐ŸŒŸ Dotfile Management Resources

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.

๐Ÿ“š Tools for managing dotfiles
  • 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 Repository Setup
# 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
๐Ÿ”’ Security-and-Privacy
# ...

๐Ÿ’พ Installation

# ๐Ÿ› ๏ธ 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! ๐Ÿงจ

Typing SVG

About

๐Ÿงจ Optimized Gentoo Linux development environment featuring Hyprland, custom USE flags, and optimized toolchain

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published