A generic greeter daemon
0

Configure Feed

Select the types of activity you want to include in your feed.

classic nix

r0chd (May 1, 2026, 5:04 PM +0200) 17d3ec2e 0579ad1e

+172 -57
+1 -1
.envrc
··· 1 - use flake 1 + use nix -A shell
+38
default.nix
··· 1 + { 2 + rust-overlay ? import (import ./nix/flake-parse.nix "rust-overlay"), 3 + pkgs ? import (import ./nix/flake-parse.nix "nixpkgs") { 4 + system = builtins.currentSystem; 5 + overlays = [ rust-overlay ]; 6 + }, 7 + }: 8 + let 9 + rustToolchain = pkgs.rust-bin.stable.latest.default.override { 10 + extensions = [ 11 + "rust-analyzer" 12 + "rust-src" 13 + "llvm-tools" 14 + ]; 15 + }; 16 + in 17 + { 18 + shell = import ./nix/shell.nix { 19 + inherit pkgs rustToolchain; 20 + }; 21 + 22 + nixosModules = rec { 23 + moxgreetd = import ./nix/nixos.nix; 24 + default = moxgreetd; 25 + }; 26 + 27 + formatter = import ./nix/formatter.nix { inherit pkgs rustToolchain; }; 28 + 29 + packages = rec { 30 + moxgreetd = pkgs.callPackage ./nix/package.nix { 31 + rustPlatform = pkgs.makeRustPlatform { 32 + cargo = rustToolchain; 33 + rustc = rustToolchain; 34 + }; 35 + }; 36 + default = moxgreetd; 37 + }; 38 + }
+8 -27
flake.lock
··· 2 2 "nodes": { 3 3 "nixpkgs": { 4 4 "locked": { 5 - "lastModified": 1774106199, 6 - "narHash": "sha256-US5Tda2sKmjrg2lNHQL3jRQ6p96cgfWh3J1QBliQ8Ws=", 5 + "lastModified": 1777268161, 6 + "narHash": "sha256-bxrdOn8SCOv8tN4JbTF/TXq7kjo9ag4M+C8yzzIRYbE=", 7 7 "owner": "NixOS", 8 8 "repo": "nixpkgs", 9 - "rev": "6c9a78c09ff4d6c21d0319114873508a6ec01655", 9 + "rev": "1c3fe55ad329cbcb28471bb30f05c9827f724c76", 10 10 "type": "github" 11 11 }, 12 12 "original": { ··· 18 18 }, 19 19 "root": { 20 20 "inputs": { 21 - "tooling": "tooling" 21 + "nixpkgs": "nixpkgs", 22 + "rust-overlay": "rust-overlay" 22 23 } 23 24 }, 24 25 "rust-overlay": { 25 26 "inputs": { 26 27 "nixpkgs": [ 27 - "tooling", 28 28 "nixpkgs" 29 29 ] 30 30 }, 31 31 "locked": { 32 - "lastModified": 1774408260, 33 - "narHash": "sha256-Jn9d9r85dmf3gTMnSRt6t+DP2nQ5uJns/MMXg2FpzfM=", 32 + "lastModified": 1777605393, 33 + "narHash": "sha256-Hjp0VOOHgHcTrX23iVvnfAudPcuCmfkfpQNFwv2v/ks=", 34 34 "owner": "oxalica", 35 35 "repo": "rust-overlay", 36 - "rev": "d6471ee5a8f470251e6e5b83a20a182eb6c46c9b", 36 + "rev": "ff88db34cfa486fc4964a6991cab1678d82eee8c", 37 37 "type": "github" 38 38 }, 39 39 "original": { 40 40 "owner": "oxalica", 41 41 "repo": "rust-overlay", 42 42 "type": "github" 43 - } 44 - }, 45 - "tooling": { 46 - "inputs": { 47 - "nixpkgs": "nixpkgs", 48 - "rust-overlay": "rust-overlay" 49 - }, 50 - "locked": { 51 - "lastModified": 1774429401, 52 - "narHash": "sha256-llgaDTFqZQvNuzl0WzdCSCEYQ1LnViq3LORymXjJceg=", 53 - "ref": "refs/heads/master", 54 - "rev": "35541c02cf481460da88d5d4df2ccd33167e8368", 55 - "revCount": 12, 56 - "type": "git", 57 - "url": "https://git.r0chd.pl/mox-desktop/tooling.git" 58 - }, 59 - "original": { 60 - "type": "git", 61 - "url": "https://git.r0chd.pl/mox-desktop/tooling.git" 62 43 } 63 44 } 64 45 },
+77 -27
flake.nix
··· 1 1 { 2 - inputs.tooling.url = "git+https://git.r0chd.pl/mox-desktop/tooling.git"; 2 + inputs = { 3 + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; 4 + rust-overlay = { 5 + url = "github:oxalica/rust-overlay"; 6 + inputs.nixpkgs.follows = "nixpkgs"; 7 + }; 8 + }; 3 9 4 10 outputs = 5 - { self, tooling, ... }: 6 - tooling.lib.mkMoxFlake { 7 - devShells = tooling.lib.forAllSystems (pkgs: { 8 - default = pkgs.mkShell ( 9 - pkgs.lib.fix (finalAttrs: { 10 - buildInputs = builtins.attrValues { 11 - inherit (pkgs) 12 - rustToolchain 13 - rust-analyzer-unwrapped 14 - nixd 15 - linux-pam 16 - ; 17 - }; 18 - LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath finalAttrs.buildInputs; 19 - RUST_SRC_PATH = "${pkgs.rustToolchain}/lib/rustlib/src/rust/library"; 20 - }) 21 - ); 22 - }); 11 + { 12 + self, 13 + nixpkgs, 14 + rust-overlay, 15 + ... 16 + }: 17 + let 18 + systems = [ 19 + "x86_64-linux" 20 + "aarch64-linux" 21 + ]; 23 22 24 - packages = tooling.lib.forAllSystems (pkgs: { 25 - moxgreetd = pkgs.callPackage ./nix/package.nix { 26 - rustPlatform = pkgs.makeRustPlatform { 27 - cargo = pkgs.rustToolchain; 28 - rustc = pkgs.rustToolchain; 23 + forAllSystems = 24 + f: 25 + nixpkgs.lib.genAttrs systems ( 26 + system: 27 + f ( 28 + import nixpkgs { 29 + inherit system; 30 + overlays = [ rust-overlay.overlays.default ]; 31 + } 32 + ) 33 + ); 34 + in 35 + { 36 + packages = forAllSystems ( 37 + pkgs: 38 + let 39 + rustToolchain = pkgs.rust-bin.stable.latest.default.override { 40 + extensions = [ 41 + "rust-analyzer" 42 + "rust-src" 43 + "llvm-tools" 44 + ]; 29 45 }; 30 - }; 31 - default = self.packages.${pkgs.stdenv.hostPlatform.system}.moxgreetd; 32 - }); 46 + in 47 + { 48 + moxgreetd = pkgs.callPackage ./nix/package.nix { 49 + rustPlatform = pkgs.makeRustPlatform { 50 + cargo = rustToolchain; 51 + rustc = rustToolchain; 52 + }; 53 + }; 54 + default = self.packages.${pkgs.stdenv.hostPlatform.system}.moxgreetd; 55 + } 56 + ); 33 57 34 58 nixosModules = { 35 59 moxgreetd = import ./nix/nixos.nix; 36 60 default = self.nixosModules.moxgreetd; 37 61 }; 62 + 63 + devShells = forAllSystems (pkgs: { 64 + default = 65 + let 66 + rustToolchain = pkgs.rust-bin.stable.latest.default.override { 67 + extensions = [ 68 + "rust-analyzer" 69 + "rust-src" 70 + ]; 71 + }; 72 + in 73 + import ./nix/shell.nix { inherit pkgs rustToolchain; }; 74 + }); 75 + 76 + formatter = forAllSystems ( 77 + pkgs: 78 + let 79 + rustToolchain = pkgs.rust-bin.stable.latest.default.override { 80 + extensions = [ 81 + "rust-analyzer" 82 + "rust-src" 83 + ]; 84 + }; 85 + in 86 + import ./nix/formatter.nix { inherit pkgs rustToolchain; } 87 + ); 38 88 }; 39 89 }
+1 -2
moxgreetd/src/main.rs
··· 11 11 use nix::fcntl; 12 12 use nix::sys::mman; 13 13 use session::worker; 14 - use std::os::unix::io; 15 14 use std::os::unix::io::FromRawFd; 16 - use std::os::unix::net; 15 + use std::os::unix::{io, net}; 17 16 use std::path; 18 17 use tokio::task; 19 18
+12
nix/flake-parse.nix
··· 1 + inputName: 2 + let 3 + lock = builtins.fromJSON (builtins.readFile ../flake.lock); 4 + namedNode = lock.nodes.${lock.nodes.root.inputs.${inputName}}.locked; 5 + githubTarball = fetchTarball { 6 + url = 7 + namedNode.url 8 + or "https://github.com/${namedNode.owner}/${namedNode.repo}/archive/${namedNode.rev}.tar.gz"; 9 + sha256 = namedNode.narHash; 10 + }; 11 + in 12 + githubTarball
+17
nix/formatter.nix
··· 1 + { pkgs, rustToolchain }: 2 + pkgs.writeShellApplication { 3 + name = "nix3-fmt-wrapper"; 4 + runtimeInputs = builtins.attrValues { 5 + inherit (pkgs) 6 + nixfmt 7 + taplo 8 + fd 9 + ; 10 + inherit rustToolchain; 11 + }; 12 + text = '' 13 + fd "$@" -t f -e nix -x nixfmt -q '{}' 14 + fd "$@" -t f -e toml -x taplo format '{}' 15 + cargo fmt 16 + ''; 17 + }
+18
nix/shell.nix
··· 1 + { pkgs, rustToolchain }: 2 + pkgs.mkShell ( 3 + pkgs.lib.fix (finalAttrs: { 4 + name = "moxgreetd-devshell"; 5 + packages = builtins.attrValues { 6 + inherit 7 + rustToolchain 8 + ; 9 + inherit (pkgs) 10 + rust-analyzer-unwrapped 11 + nixd 12 + linux-pam 13 + ; 14 + }; 15 + 16 + RUST_SRC_PATH = "${rustToolchain}/lib/rustlib/src/rust/library"; 17 + }) 18 + )