add cerulean compatability

This commit is contained in:
Emile Clark-Boman 2026-02-08 23:41:05 +10:00
parent e961180371
commit a2192c9341
23 changed files with 239 additions and 688 deletions

200
flake.lock generated
View file

@ -1,29 +1,48 @@
{
"nodes": {
"colmena": {
"cerulean": {
"inputs": {
"flake-compat": "flake-compat",
"flake-utils": "flake-utils",
"nix-github-actions": "nix-github-actions",
"deploy-rs": "deploy-rs",
"mix": "mix",
"nib": "nib",
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-unstable": [
"nixpkgs-unstable"
],
"stable": [
"nixpkgs"
"systems": [
"systems"
]
},
"locked": {
"lastModified": 1734374287,
"narHash": "sha256-rINodqeUuezuCWOnpJgrH7u9vJ86fYT+Dj8Mu8T/IBc=",
"owner": "zhaofengli",
"repo": "colmena",
"rev": "47b6414d800c8471e98ca072bc0835345741a56a",
"lastModified": 1770552327,
"narHash": "sha256-cVVPdC650MRP4tMSB9EcECUpc0U4HWSZzoQnpEHH0uE=",
"path": "/home/me/agribit/nexus/Cerulean",
"type": "path"
},
"original": {
"path": "/home/me/agribit/nexus/Cerulean",
"type": "path"
}
},
"deploy-rs": {
"inputs": {
"flake-compat": "flake-compat",
"nixpkgs": "nixpkgs",
"utils": "utils"
},
"locked": {
"lastModified": 1766051518,
"narHash": "sha256-znKOwPXQnt3o7lDb3hdf19oDo0BLP4MfBOYiWkEHoik=",
"owner": "serokell",
"repo": "deploy-rs",
"rev": "d5eff7f948535b9c723d60cd8239f8f11ddc90fa",
"type": "github"
},
"original": {
"owner": "zhaofengli",
"repo": "colmena",
"rev": "47b6414d800c8471e98ca072bc0835345741a56a",
"owner": "serokell",
"repo": "deploy-rs",
"type": "github"
}
},
@ -56,11 +75,11 @@
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1650374568,
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
"lastModified": 1733328505,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"type": "github"
},
"original": {
@ -101,25 +120,6 @@
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": [
"systems"
]
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"id": "flake-utils",
"type": "indirect"
}
},
"grub2-themes": {
"inputs": {
"nixpkgs": [
@ -140,6 +140,48 @@
"type": "github"
}
},
"mix": {
"inputs": {
"nib": [
"cerulean",
"nib"
]
},
"locked": {
"lastModified": 1768525804,
"narHash": "sha256-jlpNb7Utqfdq2HESAB1mtddWHOsxKlTjPiLFRLd35r8=",
"owner": "emilelcb",
"repo": "mix",
"rev": "617d8915a6518a3d4e375b87c50ae34d9daee6c6",
"type": "github"
},
"original": {
"owner": "emilelcb",
"repo": "mix",
"type": "github"
}
},
"nib": {
"inputs": {
"systems": [
"cerulean",
"systems"
]
},
"locked": {
"lastModified": 1768472076,
"narHash": "sha256-bdVRCDy6oJx/CZiyxkke783FgtBW//wDuOAITUsQcNc=",
"owner": "emilelcb",
"repo": "nib",
"rev": "42ac66dfc180a13af1cc8850397db66ec5556991",
"type": "github"
},
"original": {
"owner": "emilelcb",
"repo": "nib",
"type": "github"
}
},
"nix-flatpak": {
"locked": {
"lastModified": 1767983141,
@ -156,27 +198,6 @@
"type": "github"
}
},
"nix-github-actions": {
"inputs": {
"nixpkgs": [
"colmena",
"nixpkgs"
]
},
"locked": {
"lastModified": 1729742964,
"narHash": "sha256-B4mzTcQ0FZHdpeWcpDYPERtyjJd/NIuaQ9+BV1h+MpA=",
"owner": "nix-community",
"repo": "nix-github-actions",
"rev": "e04df33f62cdcf93d73e9a04142464753a16db67",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-github-actions",
"type": "github"
}
},
"nixcord": {
"inputs": {
"flake-compat": "flake-compat_2",
@ -201,16 +222,16 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1770536720,
"narHash": "sha256-pbmbaQUuoG+v37b91lqcNcz05YUvVif7iWjIx9lF8R4=",
"lastModified": 1743014863,
"narHash": "sha256-jAIUqsiN2r3hCuHji80U7NNEafpIMBXiwKlSrjWMlpg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3c64ab24b22579c833895b6030c9563837e41a70",
"rev": "bd3bac8bfb542dbde7ffffb6987a1a1f9d41699f",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-25.05",
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
@ -246,16 +267,32 @@
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1770536720,
"narHash": "sha256-pbmbaQUuoG+v37b91lqcNcz05YUvVif7iWjIx9lF8R4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3c64ab24b22579c833895b6030c9563837e41a70",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"colmena": "colmena",
"cerulean": "cerulean",
"dobutterfliescry-net": "dobutterfliescry-net",
"grub2-themes": "grub2-themes",
"nix-flatpak": "nix-flatpak",
"nixcord": "nixcord",
"nixpkgs": "nixpkgs",
"nixpkgs": "nixpkgs_2",
"nixpkgs-unstable": "nixpkgs-unstable",
"systems": "systems"
"systems": "systems_2"
}
},
"systems": {
@ -272,6 +309,39 @@
"repo": "default",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
}
},
"root": "root",

139
flake.nix
View file

@ -1,5 +1,5 @@
{
description = "Emile's Nix Dotfiles";
description = "im gonna cry again ;-;";
inputs = {
systems.url = "github:nix-systems/default";
@ -7,12 +7,18 @@
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
colmena = {
url = "github:zhaofengli/colmena/?rev=47b6414d800c8471e98ca072bc0835345741a56a";
home-manager = {
url = "github:nix-community/home-manager/release-25.05";
inputs.nixpkgs.follows = "nixpkgs";
};
cerulean = {
# url = "github:emilelcb/Cerulean";
url = "/home/me/agribit/nexus/Cerulean";
inputs = {
nixpkgs.follows = "nixpkgs-unstable";
stable.follows = "nixpkgs";
flake-utils.inputs.systems.follows = "systems";
systems.follows = "systems";
nixpkgs.follows = "nixpkgs";
nixpkgs-unstable.follows = "nixpkgs-unstable";
};
};
@ -38,84 +44,63 @@
};
outputs = {
self,
nixpkgs,
nixpkgs-unstable,
cerulean,
home-manager,
grub2-themes,
colmena,
...
} @ inputs: let
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
config = {
allowUnfree = false; # sanity check
};
}: let
groups = {
cryde = {}; # oh frick i cried again
server = {};
};
in
cerulean.mkNexus ./. {
nexus = {
inherit groups;
overlays = import ./overlays;
pkgs-unstable = import nixpkgs-unstable {
inherit system;
config = {
# allowUnfree = true; # TODO: bandaid solution... (for minecraft-server)
allowUnfree = false;
};
};
# TODO: come back to this its really cool
# this is just something I'm experimenting with
# ROOT = ./.;
specialArgs = {inherit inputs pkgs-unstable;};
in {
devShells."x86_64-linux".default = pkgs.mkShell {
shell = "${pkgs.bash}/bin/bash";
packages = with pkgs; [
# ./script/* dependencies
mkpasswd
];
};
nixosConfigurations = {
# i be on my puter fr
myputer = nixpkgs.lib.nixosSystem {
# nix passes these to every single module
inherit specialArgs;
modules = [
./hosts/myputer
grub2-themes.nixosModules.default
];
};
# my laptop 0w0
lolcathost = nixpkgs.lib.nixosSystem {
inherit specialArgs;
modules = [
./hosts/lolcathost
grub2-themes.nixosModules.default
];
};
};
# remote deployment to my servers!!
colmenaHive = colmena.lib.makeHive {
meta = {
nixpkgs = pkgs;
inherit specialArgs;
# set nixpkgs per server
nodeNixpkgs = {
hyrule = import nixpkgs {
nodes = {
# my laptop <3 :3
lolcathost = {
system = "x86_64-linux";
config.allowUnfree = false;
groups = [groups.cryde];
extraModules = [
home-manager.nixosModules.default
grub2-themes.nixosModules.default
];
};
# i be on my puter frfr
myputer = {
system = "x86_64-linux";
groups = [groups.cryde];
extraModules = [
home-manager.nixosModules.default
grub2-themes.nixosModules.default
];
};
# courtesy of aurora <3
butterfly = {
system = "x86_64-linux";
groups = [groups.server];
deploy.ssh.host = "dobutterfliescry.net";
};
# pls dont sue me im broke
hyrule = {
system = "x86_64-linux";
groups = [groups.server];
deploy.ssh.host = "hyrule.dobutterfliescry.net";
};
# call me a statistician the way she spreads in my sheets
matcha = {
system = "x86_64-linux";
groups = [groups.server];
deploy.ssh.host = "bedroom.dobutterfliescry.net";
};
};
};
# meine vps
hyrule = import ./hosts/hyrule;
};
};
}

View file

@ -4,7 +4,7 @@
lib,
config,
pkgs,
pkgs-unstable,
upkgs,
...
} @ args: {
imports = [
@ -16,12 +16,9 @@
../modules/bat.nix
../modules/editor/helix.nix
(import ../modules/editor/vscode.nix args)
../modules/firefox.nix
../modules/apps/thunderbird.nix
#../modules/wm/hypr/hypridle.nix
../modules/wm/hypr/hyprlock.nix
../modules/kanshi.nix
../modules/mako.nix

View file

@ -1,6 +1,6 @@
{
pkgs,
pkgs-unstable,
upkgs,
...
}: let
lsps = {
@ -43,7 +43,7 @@
};
ty = {
pkg = pkgs-unstable.ty;
pkg = upkgs.ty;
cmd = "ty";
};

View file

@ -1,7 +1,7 @@
{pkgs-unstable, ...}: {
{upkgs, ...}: {
programs.foot = {
enable = true;
package = pkgs-unstable.foot;
package = upkgs.foot;
server.enable = true;

View file

@ -1,6 +1,6 @@
{
pkgs,
pkgs-unstable,
upkgs,
...
}: let
home-manager = builtins.fetchTarball {
@ -40,17 +40,6 @@ in {
keyMap = "us";
};
# colmena deployment configuration
deployment = {
targetHost = "imbored.dev";
targetUser = "ae";
targetPort = 22;
sshOptions = [
"-A" # forward ssh-agent
];
buildOnTarget = false; # build locally then deploy
};
# super duper minimum grub2 config
boot.loader.grub = {
enable = true;

View file

@ -1,11 +1,11 @@
{
pkgs,
pkgs-unstable,
upkgs,
...
}: {
services.minecraft-server = {
enable = true;
package = pkgs-unstable.minecraft-server; # use latest version only!
package = upkgs.minecraft-server; # use latest version only!
declarative = true;
eula = true;

View file

@ -1,37 +1,20 @@
{
lib,
pkgs,
pkgs-unstable,
upkgs,
inputs,
config,
...
}: let
home-manager = builtins.fetchTarball {
url = "https://github.com/nix-community/home-manager/archive/release-25.05.tar.gz";
sha256 = "07pk5m6mxi666dclaxdwf7xrinifv01vvgxn49bjr8rsbh31syaq";
};
in {
}: {
imports = [
./hardware-configuration.nix
(import "${home-manager}/nixos")
../modules/bashistrans.nix
../modules/wm/hyprland.nix
# ../modules/wm/river.nix
../modules/wm/crywl.nix
../modules/steam.nix
../modules/obsidian.nix
../modules/angryoxide.nix
# ../modules/flipperzero.nix
# ../modules/chameleonultragui.nix
(import ../../overlays/default.nix {
inherit pkgs;
upkgs = pkgs-unstable;
})
];
nix.settings.experimental-features = [
@ -41,7 +24,6 @@ in {
];
nixpkgs.config.allowUnfreePredicate = let
vscext = pkgs.vscode-extensions;
whitelist = with pkgs;
map lib.getName [
discord
@ -53,18 +35,6 @@ in {
obsidian
gitkraken
vscode
vscext.ms-dotnettools.csharp
vscext.ms-dotnettools.csdevkit
vscext.github.copilot
vscext.github.copilot-chat
# XXX: DEBUG
# rider-override
# XXX: DEBUG
# jetbrains.rider
];
in
pkg: builtins.elem (lib.getName pkg) whitelist;
@ -237,7 +207,7 @@ in {
home-manager = {
users.me = import ../../homes/me;
extraSpecialArgs = {inherit inputs pkgs pkgs-unstable;};
extraSpecialArgs = {inherit inputs pkgs upkgs;};
sharedModules = [];
};
@ -258,7 +228,6 @@ in {
# ---- SYSTEM PACKAGES -----
environment.systemPackages = with pkgs; [
# User Environment
# crywl
swww
helvum
easyeffects
@ -297,7 +266,7 @@ in {
hexyl
# ASM
nasm
(callPackage ../packages/x86-manpages {})
# x86-manpages # WARNING: cerulean doesn't allow overlays bruh
# C Family
gcc
clang
@ -323,7 +292,7 @@ in {
nix-prefetch-git
nix-index
nix-unit
deploy-rs
deploy-rs.deploy-rs
# Python
python312 # I use 3.12 since it's in a pretty stable state now
@ -389,20 +358,13 @@ in {
# Games
prismlauncher # minecraft
pkgs-unstable.olympus # celeste
upkgs.olympus # celeste
discord
discordo
ekphos
# ekphos # WARNING: cerulean doesnt allow overlays yet
];
programs = {
crywl = {
enable = true;
xwayland.enable = false;
defaultSession = false;
useUnmodifiedDWL = false;
};
fish.enable = true;
nix-ld.enable = true;

View file

@ -1,5 +0,0 @@
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
(callPackage ../packages/angryoxide {})
];
}

View file

@ -1,6 +1,6 @@
{
pkgs,
pkgs-unstable,
upkgs,
dotnetVersions ? [8 9 10],
...
}: {
@ -10,7 +10,7 @@
environment.systemPackages = with pkgs; [
# Ensure latest stable Rider version (not necessarily stable on NixOS)
pkgs-unstable.jetbrains.rider
upkgs.jetbrains.rider
# NOTE: Blazor requires a Chromium-based browser
chromium

View file

@ -1,5 +0,0 @@
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
(callPackage ../packages/chameleonultragui {})
];
}

View file

@ -1,31 +0,0 @@
#### wishlist.nix
This is a simple Nix flake defining a service from which
wishlist can run automatically. This flake runs wishlist-0.15.1
and lacks configurability unfortunately. However this was an
intentional choice, allowing wishlist to read from the user's
`~/.ssh/config` file, which can be configured seperately using
the something akin to the follow home-manager snippet:
```nix
programs.ssh = {
enable = true;
addKeysToAgent = "yes"; # always add keys to ssh-agent
matchBlocks = {
hyrule = {
hostname = "imbored.dev";
user = "ae";
port = 22;
identityFile = "/home/me/.ssh/id_hyrule";
};
};
};
```
This decision was mostly selfish as it was easiest...
But it comes at the cost of not being able to set the
port wishlist listens on. So for now you're stuck with `2222`.
###### The Future!! (woooowwww)
Create an option for wishlist that is used to construct
the `config.yaml` file

View file

@ -1,93 +0,0 @@
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = {
self,
config,
nixpkgs,
lib,
flake-utils,
}: let
cfg = config.services.wishlist;
supportedSystems = ["x86_64-linux" "i686-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin"];
in {
# TODO: 1. add options (ie one to set whether the server should be enabled),
# 2. create a systemd service
# 3. create a main program
# 4. celibrate
# TODO: do I need to make this a home-manager option and set the yaml config?
# define what settings a user can change
options = {
services.wishlist = with lib; {
enable = mkEnableOption "wishlist";
port = mkOption {
type = types.port;
default = 2222;
description = "Port to listen on";
};
package = mkOption {
type = types.package;
default = self.packages.${nixpkgs.system}.default;
description = "Package to use";
};
};
};
# define a systemd service for wishlist ^_^
config = lib.mkIf cfg.enable {
systemd.services.wishlist = {
description = "Single entrypoint for multiple SSH endpoints";
wantedBy = ["multi-user.target"];
serviceConfig = {
DynamicUser = "yes";
ExecStart = "${cfg.package}/bin/wishlist serve";
Restart = "always";
RestartSec = "2s";
};
};
};
packages = flake-utils.lib.eachSystem supportedSystems (
system: let
version = "0.15.1";
#pkgs = nixpkgs.legacyPackages.${system};
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = false;
};
#lib = pkgs.lib;
in rec {
defaultPackage = self.packages.${system}.wishlist;
wishlist = pkgs.buildGoModule {
pname = "wishlist";
inherit version;
meta = with lib; {
description = "Single entrypoint for multiple SSH endpoints";
homepage = "https://github.com/charmbracelet/wishlist";
changelog = "https://github.com/charmbracelet/wishlist/releases/tag/v${version}";
license = licenses.mit;
maintainers = with maintainers; [caarlos0 penguwin];
mainProgram = "wishlist";
};
src = pkgs.fetchFromGitHub {
owner = "charmbracelet";
repo = "wishlist";
rev = "v${version}";
# rev = "d7f058e115a8b4a4131406d01dde84fb4a8e93c4";
hash = "53fojA+gdvpSVNjx6QncH16F8/x+lpY5SkNs7obW2XQ=";
};
vendorSha256 = "0x6rss3fwv2398wrd5kyzkrqaphzvh4ykwfqai9glxm01y6fhxz7";
};
}
);
};
}

View file

@ -1,99 +0,0 @@
# NOTE: Wishlist service fails on nix because of readonly file system
# and it can't find a config file for itself, it needs to write that
# itself I suppose :(
# So:
# 1. Get it to write that file, and
# 2. Allow it to inherit profiles from configured ssh
{
self,
config,
pkgs,
lib,
}: let
cfg = config.services.wishlist;
in {
options = {
services.wishlist = with lib; {
enable = mkEnableOption "wishlist";
name = mkOption {
type = types.str;
default =
};
port = mkOption {
type = types.port;
default = 2222;
description = "Port to listen on";
};
#configPath = mkOption {
# type = types.path;
# default = ;
# description = "Path to config file";
#};
package = mkOption {
type = types.package;
default = self.packages.${nixpkgs.system}.default;
description = "Package to use";
};
};
};
# define a systemd service for wishlist ^_^
config = lib.mkIf cfg.enable {
systemd.services.wishlist = {
description = "Single entrypoint for multiple SSH endpoints";
wantedBy = ["multi-user.target"];
serviceConfig = let
wishlistServiceConfig = pkgs.writeText "config.yaml" ''
hello world!
'';
in {
DynamicUser = "yes";
ExecStart = "${pkgs.wishlist}/bin/wishlist serve --config ${wishlistServiceConfig}";
Restart = "always";
RestartSec = "2s";
};
};
};
/*
packages = flake-utils.lib.eachSystem supportedSystems (
system: let
version = "0.15.1";
#pkgs = nixpkgs.legacyPackages.${system};
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = false;
};
#lib = pkgs.lib;
in rec {
defaultPackage = self.packages.${system}.wishlist;
wishlist = pkgs.buildGoModule {
pname = "wishlist";
inherit version;
meta = with lib; {
description = "Single entrypoint for multiple SSH endpoints";
homepage = "https://github.com/charmbracelet/wishlist";
changelog = "https://github.com/charmbracelet/wishlist/releases/tag/v${version}";
license = licenses.mit;
maintainers = with maintainers; [caarlos0 penguwin];
mainProgram = "wishlist";
};
src = pkgs.fetchFromGitHub {
owner = "charmbracelet";
repo = "wishlist";
rev = "v${version}";
# rev = "d7f058e115a8b4a4131406d01dde84fb4a8e93c4";
hash = "53fojA+gdvpSVNjx6QncH16F8/x+lpY5SkNs7obW2XQ=";
};
vendorSha256 = "0x6rss3fwv2398wrd5kyzkrqaphzvh4ykwfqai9glxm01y6fhxz7";
};
}
);
*/
}

View file

@ -1,6 +0,0 @@
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
# flipper zero desktop app
qflipper
];
}

View file

@ -1,7 +1,7 @@
{
lib,
pkgs,
pkgs-unstable,
upkgs,
...
}: let
dotnetVersions = [8 9 10];
@ -50,9 +50,9 @@ in {
# Mono
mono
# NOTE: nixpkgs-unstable uses .NET8 SDK
# NOTE: nixupkgs uses .NET8 SDK
# WARNING: nixpkgs-25.05 uses .NET6 SDK (now marked insecure)
pkgs-unstable.msbuild
upkgs.msbuild
# .NET Framework Tools/Services
omnisharp-roslyn

View file

@ -1,72 +0,0 @@
{
description = "Wishlist: Your SSH directory."
inputs = {
};
outputs = {
self
}: let
nixosModule = {
config,
lib,
pkgs,
...
}: {
options.services.wishlist = {
enable = lib.mkEnableOption "Your SSH directory.";
port = lib.mkOption {
type = lib.types.port;
default = 22;
description = "Port to listen on";
};
};
config = lib.mkIf config.services.wishlist.enable {
# configure the systemd service
systemd.services.wishlist = {
description = "Your SSH directory.";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
serviceConfig = {
ExecStart = "${self.packages.${pkgs.system}.default}/bin/wishlist";
Restart = "always";
Type = "simple";
DynamicUser = "yes";
};
# environment variables
environment = {
};
};
};
};
in
(flake-utils.lib.eachDefaultSystem (system: let
gopkg = go-nixpkgs.legacyPackages.${system};
in {
packages.default = gopkg.buildGoModule ############################
}))
buildGoModule rec { # is rec necessary?
pname = "wishlist";
version = "0.15.1"
src = fetchFromGithub {
owner = "charmbracelet";
repo = "wishlist";
rev = "v${version}";
hash = "0c9g1s8j9znzd1mw61d0klc6sqri0wx6hljibxdwzi3cabfy3ld6";
};
vendorSha256 = lib.fakeSha256;
meta = with lib; {
homepage = "https://github.com/charmbracelet/wishlist";
description = "Your SSH directory.";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ caarlos0 ];
};
};
}

View file

@ -1,22 +0,0 @@
{lib}: {
buildGoModule rec { # is rec necessary?
pname = "wishlist";
version = "0.15.1"
src = fetchFromGithub {
owner = "charmbracelet";
repo = "wishlist";
rev = "v${version}";
hash = "0c9g1s8j9znzd1mw61d0klc6sqri0wx6hljibxdwzi3cabfy3ld6";
};
vendorSha256 = lib.fakeSha256;
meta = with lib; {
homepage = "https://github.com/charmbracelet/wishlist";
description = "Your SSH directory.";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ caarlos0 ];
};
};
}

View file

@ -1,117 +0,0 @@
{
config,
lib,
pkgs,
...
}: let
cfg = config.programs.crywl;
in {
options.programs.crywl = with lib; {
enable = mkEnableOption "CryWL";
xwayland.enable = mkEnableOption "XWayland";
defaultSession = mkEnableOption "CryWL as the default login session";
# currently DWL 0.7 (also beware I'll barely ever update the original DWL refs)
useUnmodifiedDWL = mkOption {
type = types.bool;
default = false;
description = "Whether to use unmodified DWL source code (latest stable release)";
};
};
config = lib.mkIf cfg.enable (let
xwaylandEnabled = cfg.xwayland.enable;
defaultSession = cfg.defaultSession;
useUnmodifiedDWL = cfg.useUnmodifiedDWL;
in {
services.displayManager = {
sessionPackages = [
pkgs.crywl
];
defaultSession = lib.mkIf defaultSession "crywl";
};
environment.systemPackages = [
pkgs.crywl
];
nixpkgs.overlays = [
(final: prev: {
crywl = prev.dwl.overrideAttrs (oldAttrs: rec {
pname = "crywl";
version = "0.1-unstable";
src = let
dwl_0_70 = {
rev = "74e45c4014ae7048ecbb76eb6f54034b8b479480";
hash = "sha256-7SoCITrbMrlfL4Z4hVyPpjB9RrrjLXHP9C5t1DVXBBA=";
};
crywl_unstable = {
rev = "dc1260d3cfd14e8e5b243ec1d3d56e4b08c8c517";
hash = "sha256-61R+xBYMzeEn93gLofcj8Y3VbJqW6g7GzCTujpAco90=";
};
in
pkgs.fetchFromGitea ({
domain = "forge.imbored.dev";
owner = "emileclarkb";
repo = pname;
}
// (
if useUnmodifiedDWL
then dwl_0_70
else crywl_unstable
));
buildInputs = with pkgs;
[
libinput
xorg.libxcb
libxkbcommon
pixman
wayland
wayland-protocols
wlroots_0_19
]
++ lib.optionals xwaylandEnabled [
xorg.libX11
xorg.xcbutilwm
xwayland
];
makeFlags =
[
"PKG_CONFIG=${pkgs.stdenv.cc.targetPrefix}pkg-config"
"WAYLAND_SCANNER=wayland-scanner"
"PREFIX=$(out)"
"MANDIR=$(man)/share/man"
]
++ lib.optionals xwaylandEnabled [
''XWAYLAND="-DXWAYLAND"''
''XLIBS="xcb xcb-icccm.pc"''
];
# Ensure `crywl.desktop` entry is registered
passthru = {
providedSessions = [pname];
tests.version = pkgs.testers.testVersion {
package = oldAttrs.finalPackage;
# `dwl -v` emits its version string to stderr and returns 1
command = "crywl -v 2>&1; return 0";
};
};
meta = {
homepage = "https://forge.imbored.dev/emileclarkb/crywl";
description = "Personal fork of DWL";
license = lib.licenses.gpl3Only;
maintainers = [lib.maintainers.emileclarkb];
inherit (pkgs.wayland.meta) platforms;
mainProgram = "crywl";
};
});
})
];
});
}

View file

@ -1,5 +0,0 @@
{...}: {
programs = {
river.enable = true;
};
}

View file

@ -1,7 +1,7 @@
{
lib,
pkgs,
pkgs-unstable,
upkgs,
inputs,
config,
...
@ -230,7 +230,7 @@ in {
home-manager = {
users.me = import ../../homes/me;
extraSpecialArgs = {inherit inputs pkgs pkgs-unstable;};
extraSpecialArgs = {inherit inputs pkgs upkgs;};
sharedModules = [];
};
@ -379,7 +379,7 @@ in {
# Games
prismlauncher # minecraft
pkgs-unstable.olympus
upkgs.olympus
discord
];

View file

@ -1,10 +1,17 @@
{upkgs, ...}: {
nixpkgs.overlays = [
(self: super: {
ekphos = import ../packages/ekphos.nix {
inherit upkgs;
pkgs = super;
};
})
];
}
[
(self: super: {
angry-oxide = import ../packages/angryoxide {
pkgs = super;
inherit
(super)
lib
;
};
ekphos = import ../packages/ekphos {
pkgs = super;
};
x86-manpages = import ../packages/x86-manpages {
pkgs = super;
};
})
]

View file

@ -1,14 +1,10 @@
{
pkgs,
upkgs,
...
}: let
{pkgs, ...}: let
inherit
(pkgs)
lib
;
in
upkgs.rustPackages.rustPlatform.buildRustPackage {
pkgs.rustPackages.rustPlatform.buildRustPackage {
pname = "ekphos";
version = "v0.20.10";
src = pkgs.fetchFromGitHub {