This is a personal dotfiles repository for NixOS, authored by Henrik Lissner (hlissner). It serves as a complete, declarative system configuration for multiple machines (laptops, desktops, and a HTPC) using Nix flakes. The repository defines the entire systemβfrom the bootloader and kernel parameters to the desktop environment (Hyprland), shell (zsh, tmux), development tools, and custom utilities. It is not a standalone application but a collection of configuration files, NixOS modules, and scripts that together form a highly opinionated, reproducible computing environment. The architecture is centered around a Nix flake (flake.nix) that imports modular NixOS modules organized by category (desktop, development, editors, shell, services, hardware profiles, themes, etc.). A custom CLI tool called 'hey' (written in Janet) provides a command hub for system management tasks like rebuilding, garbage collection, profile switching, and dotfile synchronization. The desktop environment is heavily customized with Hyprland (Wayland compositor), rofi launcher menus, matugen-based dynamic theming, and a suite of utility scripts for screenshots, screen recording, audio, and more. While the repository is not designed for reuse by others (it explicitly warns against being used as a community framework), several components demonstrate high craftsmanship and could be extracted with minimal modification. The Janet libraries under lib/hey/ provide a reusable command-line argument parser, an async rofi interaction library, and general utility functions. The Nix library (lib/nixos.nix) implements a flake builder pattern that could be adapted for other multi-host NixOS setups. The matugen templates and rofi themes are also potentially reusable as standalone theming assets.
This is a single-file Python application that provides a menu-driven interface (via dmenu, rofi, wofi, bemenu, etc.) for managing NetworkManager connections on Linux. It allows users to connect to WiFi, VPN, Wireguard, GSM, Bluetooth, Ethernet, and VLANs; enable/disable networking, WiFi, WWAN, and Bluetooth; delete connections; rescan WiFi; show WiFi passwords; and launch the connection editor. The script uses PyGObject to interact with NetworkManager over D-Bus, with asynchronous callbacks and a GLib main loop. Configuration is stored in an INI file, and the script supports multiple launchers with per-launcher flags for passphrase entry and highlighting. The code is well-structured, with clear separation of concerns (action creation, menu display, async callbacks), and includes workarounds for older library versions. It is a mature, actively maintained tool with a Nix flake for development and a GitHub release workflow.
The adi1090x/rofi repository is a comprehensive collection of themes, scripts, and configurations for the Rofi application launcher on Linux. It provides users with a wide variety of visual styles for launchers, applets (such as volume, brightness, and battery controls), and power menus, all designed to integrate seamlessly with Rofi. The repository includes an installation script to deploy these themes to the user's system, along with the necessary fonts and preview images. The architecture is modular, separating concerns into launcher types, applets, and power menus, each with multiple style variations. Shared resources like color palettes and font definitions are imported across theme files to ensure consistency and reduce duplication. The applet scripts utilize a shared bash library (`theme.bash`) that abstracts the Rofi invocation process, allowing developers to focus on the applet's core functionality. This demonstrates thoughtful design and reusability. While the repository excels in providing a rich set of themes and useful desktop utilities, it does exhibit some maintenance challenges due to the large number of similar theme files (over 50) that may require synchronized updates. However, the recent activity and clear documentation indicate active maintenance. The project primarily targets Rofi versions around 1.7.3-1.7.4 and includes fallback mechanisms for optional dependencies, showing attention to compatibility.
This repository is a comprehensive, modular dotfiles collection for a bspwm-based desktop environment on Arch Linux. It provides 18 distinct visual themes ('rices') that consistently apply color schemes, wallpapers, and style options across a wide range of applications including terminals (Alacritty, Kitty, Ghostty, ST), status bars (Polybar, Eww), launcher (Rofi), notifications (Dunst), compositor (Picom), browser (Firefox), editor (Neovim), media player (MPV), and many others. The core architecture is a modular theme application system: a central script (`Theme.sh`) sources per-theme color variables and then runs individual module scripts (e.g., `05-alacritty.sh`) that generate or overwrite application configuration files. An installer (`RiceInstaller`) sets up the entire environment, and a GUI editor (`RiceEditor`) allows runtime customization. The repository also includes numerous utility scripts for hardware detection, wallpaper selection, weather display, network management, and media control, many of which demonstrate good engineering practices like caching, parallel processing, and atomic file updates. While tightly coupled to Arch Linux and X11, the modular theming pattern and several standalone scripts are reusable in other contexts.
This repository contains a comprehensive set of Bash scripts to automate the installation and configuration of the Hyprland window manager on Arch Linux, along with associated desktop components (waybar, rofi, sddm, pipewire, fonts, GTK themes, etc.). The main entry point is `install.sh`, which presents an interactive whiptail-based menu to let users select desired features (NVIDIA setup, Bluetooth, Thunar, ZSH, dotfiles, etc.). It orchestrates over 30 modular sub-scripts in `install-scripts/` that handle package installation via pacman and AUR helpers, service enabling, configuration file copying (including the popular KooL Hyprland dotfiles from a separate repository), and system modifications. The codebase is well-structured for its purpose: it uses a centralized logging system, progress indicators, and a global functions library (`Global_functions.sh`) that encapsulates package installation and error handling. Additional utility scripts provide battery, disk, and temperature monitoring as optional systemd user services. The project is actively maintained with changelog updates and issue templates, though it is tightly coupled to the Arch Linux ecosystem and the KooL Hyprland dotfiles. It is not a reusable library but serves as a polished, user-friendly deployment tool for end-users.