mirror of
https://github.com/xinux-org/module-manager.git
synced 2026-02-16 00:29:47 +00:00
🗂️ | A gtk4/libadwaita application for configuring and managing Xinux modules on a Xinux system [maintainer=@orzklv]
- Rust 88.6%
- Meson 8%
- Nix 3.1%
- Shell 0.3%
| .github/workflows | ||
| build-aux | ||
| data | ||
| packages/xinux-module-manager | ||
| po | ||
| shells/xinux-module-manager | ||
| smm-helper | ||
| src | ||
| .envrc | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| default.nix | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| meson.build | ||
| meson_options.txt | ||
| README.md | ||
| rust-toolchain.toml | ||
Xinux Module Manager
A simple Xinux module manager application built with libadwaita, GTK4, and Relm4. The goal of this project is to provide a simple graphical tool for modifying and managing desktop NixOS configurations.
NixOS Flakes Installation
Copy ALL .yml files from xinux-org/modules into /etc/xinux-modules
├── /etc/xinux-modules
│ ├── efiboot/module.yml
│ └── xinux/module.yml
| # so on...
flake.nix
{
inputs = {
# other inputs
xinux-module-manager = {
url = "github:xinux-org/module-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-data = {
url = "github:xinux-org/nix-data";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = {
self,
nixpkgs,
flake-utils,
...
} @ inputs:
flake-utils.lib.eachDefaultSystem (system: let
pkgs = nixpkgs.legacyPackages.${system};
in {
# Nix script formatter
})
// {
# homeModules = import ./modules;
systems.modules.nixos = with inputs; [
nix-data.nixosModules.nix-data
xinux-modules.nixosModules.efiboot
xinux-modules.nixosModules.gnome
xinux-modules.nixosModules.kernel
xinux-modules.nixosModules.networking
xinux-modules.nixosModules.packagemanagers
xinux-modules.nixosModules.pipewire
xinux-modules.nixosModules.printing
xinux-modules.nixosModules.xinux
xinux-modules.nixosModules.metadata
];
};
}
# rest of flake.nix
configuration.nix
environment.systemPackages = with pkgs; [
inputs.xinux-module-manager.packages.${system}.xinux-module-manager
# rest of your packages
];
programs.nix-data = {
enable = true;
systemconfig = "/home/bahrom/workplace/bahrom04/nix-config/hosts/matax/configuration.nix";
flake = "/home/bahrom/workplace/bahrom04/nix-config/flake.nix";
flakearg = "matax";
};
NixOS Installation
Head of configuration.nix
if you are on unstable channel or any version after 22.11:
{ config, pkgs, lib, ... }:
let
xinux-module-manager = import (pkgs.fetchFromGitHub {
owner = "xinux-org";
repo = "module-manager";
sha256 = "sha256-/10428f0b93fd9c77284b0cd9b193a924c10bb7a4";
}) {};
in
Packages:
environment.systemPackages =
with pkgs; [
xinux-module-manager
# rest of your packages
];
You should be owner for your flake.nix or files
sudo git config --global --add safe.directory /path/your/config
or
# /home/YOUR_USER/.gitconfig
[user]
email = email@gmail.com
name = user
[filter "lfs"]
process = git-lfs filter-process
required = true
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
[safe]
directory = *
directory = /home/letrec/Desktop/Xinux/module-manager
directory = /home/letrec/nix-conf/flake.nix
For any other method of installation, when rebuilding you will be prompted to authenticate twice in a row
'nix profile' installation
nix profile install github:xinux-org/module-manager
'nix-env' Installation
git clone https://github.com/xinux-org/module-manager
nix-env -f xinux-module-manager -i xinux-module-manager
Single run on an flakes enabled system:
nix run github:xinux-org/module-manager
Single run on non-flakes enabled system:
nix --extra-experimental-features "nix-command flakes" run github:xinux-org/module-manager
Debugging
RUST_LOG=nixos_conf_editor=trace xinux-module-manager
Screenshots
Licenses
The icons in data/icons contains assets from the NixOS logo and are licensed under a CC-BY license.