ilyamiro/serpantinum

QML

A shell for wayland compositors

desktop-environmenthyprlandniriqtqt6quickshellshellswaywayland
스타 성장
스타
6.7k
포크
272
주간 성장
+206
이슈
115
2k4k6k
25년 12월26년 3월26년 6월26년 9월
README
Serpantinum

Previews

Preview 1 Preview 2
Preview 3 Preview 4

Installation

[!IMPORTANT] Migrating from v1: All previous configuration will be backed up and unused. Configuration of compositor settings such as monitors, keybinds, and autostart is now up to you, as the project migrated from being dotfiles to being a shell.

Arch Linux and its derivatives

For Arch-based distributions (including systemd, OpenRC, and other init systems), run the automated installation script.:

bash -c "$(curl -fsSL https://raw.githubusercontent.com/ilyamiro/serpantinum/master/install/install.sh)"

[!NOTE] To update, when or if you recieve a notification about the new version being available, just run the script again and choose "update"


NixOS

Serpantinum provides flake outputs, a NixOS module for system dependencies, and a Home Manager module for user configuration and service management.

1. Add Flake Input

Add Serpantinum to your flake.nix:

{
  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
    serpantinum.url = "github:ilyamiro/serpantinum";
  };

  outputs = { self, nixpkgs, serpantinum, ... }: {
    nixosConfigurations.nixos = nixpkgs.lib.nixosSystem {
      system = "x86_64-linux";
      specialArgs = { inherit serpantinum; };
      modules = [
        ./configuration.nix
        serpantinum.nixosModules.default
      ];
    };
  };
}

2. configuration.nix

Enable the NixOS module to configure system prerequisites:

{
  programs.serpantinum.enable = true;
}

If you prefer installing the package directly without the system module:

{ pkgs, serpantinum, ... }:

{
  environment.systemPackages = [
    serpantinum.packages.${pkgs.stdenv.hostPlatform.system}.default
  ];
}

3. Home Manager Configuration

{ serpantinum, ... }:

{
  imports = [
    serpantinum.homeManagerModules.default
  ];

  programs.serpantinum = {
    enable = true;
    systemd.enable = true;

    settings = {
      wallpaperDir = "/home/username/Pictures/Wallpapers";

      general = {
        language = "en";
        weatherUnit = "metric";
        weatherInterval = 30;
      };

      bar = {
        position = "top";
        style = "solid";
        width = 40;
        workspaceCount = 10;
        modules = {
          left = [ "workspaces" ];
          center = [ "time" ];
          right = [ "tray" [ "kb" "wifi" "bt" "vol" "bat" ] ];
        };
      };

      theme = {
        fontFamily = "Adwaita Mono";
        borderRadius = 12;
        matugen = true;
      };

      notifications = {
        dnd = false;
        position = "top right";
        sound = true;
      };
    };
  };
}

4. Updating

Update the flake lockfile and rebuild your system:

nix flake update serpantinum
sudo nixos-rebuild switch --flake .

Note: The automatic installer handles compositor integration on standard distributions. On NixOS / Home Manager, you must manually integrate compositor configs. Sample configs, autostart entries, and keybindings for supported window managers and compositors are available in the compositors directory.

Required autostart

Remember to add clipboard listeners and required services to your compositor's autostart configuration for the clipboard and the equalizer to work properly.

Example on Hyprland:

hl.on("hyprland.start", function()
  hl.exec_cmd("wl-paste --type text --watch cliphist store")
  hl.exec_cmd("wl-paste --type image --watch cliphist store")
  hl.exec_cmd("systemctl --user enable --now easyeffects")
end)

Running

To run the shell, launch serpantinumd start


Credits

  • Special thanks to Darkall44/Qylock for providing a gorgeous material SDDM theme!

License

Copyright (C) 2026 Illia Miroshnichenko

This project is licensed under the GNU Affero General Public License version 3, or (at your option) any later version. See the LICENSE.md file for the full license text.

관련 저장소
HeyPuter/puter

🌐 The Internet Computer! Free, Open-Source, and Self-Hostable.

TypeScriptnpmappGNU Affero General Public License v3.0desktopdesktop-environment
puter.com
43.4k4.1k
SerenityOS/serenity

The Serenity Operating System 🐞

C++BSD 2-Clause "Simplified" Licenseoperating-systemc-plus-plus
serenityos.org
33.8k3.6k
luong-komorebi/Awesome-Linux-Software

🐧 A list of awesome Linux softwares

HTMLawesomelinux-desktopdesktop-environment
luong-komorebi.github.io/Awesome-Linux-Software/
25.6k2.3k
DustinBrett/daedalOS

Desktop environment in the browser

JavaScriptnpmappMIT Licenseosjavascript
dustinbrett.com
13k1.2k
adi1090x/polybar-themes

A huge collection of polybar themes with different styles, colors and variants.

ShellawesomeGNU General Public License v3.0polybarpolybar-themes
6.2k423
inputsh/awesome-linux

:penguin: A list of awesome projects and resources that make Linux even more awesome. :penguin:

awesomeDo What The F*ck You Want To Public Licenseawesome-listawesome
5.1k423
raexera/yoru

A custom Linux environment built on AwesomeWM

LuaGNU General Public License v3.0dotfilesawesomewm
3.6k199
cairoshell/cairoshell

Cairo is a customizable, intuitive desktop environment for Windows.

C#appApache License 2.0desktop-environmentwindows-desktop
cairodesktop.com
3.4k271
directvt/vtm

Text-based desktop environment

C++cliMIT Licensemultiplexerterminal
3.4k78
mayukh4/linux-android

Turn an old Android phone into a GPU-accelerated Linux desktop (XFCE4 / KDE Plasma / LXQt / MATE) or a Home Assistant smart home server — using Termux. No root, no PC, no cloud.

ShellcliMIT Licenseadrenoandroid
youtu.be/tYm2rQpkOcg
3.1k230
skift-org/skift

🥑 A modern delightful operating system (mirror)

C++GNU Lesser General Public License v3.0osdevkernel
codeberg.org/skift/os
3k150
BarutSRB/OmniWM

Free, open-source tiling window manager for Apple Silicon Macs, with Niri-style scrolling containers and Hyprland-style Dwindle BSP.

SwiftGNU General Public License v2.0aerospacedesktop-environment
omniwm.app
2.8k113