From 58e551abb23ef795baa060f86fc45ba76ca9b474 Mon Sep 17 00:00:00 2001 From: roxwize Date: Thu, 5 Jun 2025 22:29:06 -0400 Subject: [PATCH] ~ --- .editorconfig | 5 +- configs/timeshift.json | 55 +- configs/twm | 57 +- nixos/flake.lock | 765 +++++++++--------- nixos/flake.nix | 90 +-- nixos/hosts/ioides/configuration.nix | 70 +- .../modules/docker/pihole/docker-compose.nix | 145 ++-- nixos/overlays.nix | 17 +- nixos/pkgs/chibicc-uxn/default.nix | 37 +- nixos/pkgs/overlay.nix | 9 +- nixos/pkgs/playit-agent/default.nix | 31 +- nixos/pkgs/vasm-psi-x/default.nix | 1 + nixos/pkgs/vlink/default.nix | 1 + nixos/pkgs/ynodesktop/default.nix | 143 ++-- 14 files changed, 686 insertions(+), 740 deletions(-) diff --git a/.editorconfig b/.editorconfig index c88727b..a0ac26d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -8,4 +8,7 @@ indent_style = tab indent_size = 4 [*.{yml, yaml}] -indent_style = space # stupid cocksucking motherfucking piece of shit +# stupid cocksucking motherfucking piece of shit +indent_style = space +indent_size = 1 + diff --git a/configs/timeshift.json b/configs/timeshift.json index d0052d9..1056d28 100644 --- a/configs/timeshift.json +++ b/configs/timeshift.json @@ -1,28 +1,29 @@ { - "backup_device_uuid" : "fbbcc72f-34af-425c-9151-ef8919a6ae07", - "parent_device_uuid" : "", - "do_first_run" : "false", - "btrfs_mode" : "false", - "include_btrfs_home_for_backup" : "false", - "include_btrfs_home_for_restore" : "false", - "stop_cron_emails" : "true", - "schedule_monthly" : "false", - "schedule_weekly" : "false", - "schedule_daily" : "false", - "schedule_hourly" : "false", - "schedule_boot" : "false", - "count_monthly" : "2", - "count_weekly" : "3", - "count_daily" : "5", - "count_hourly" : "6", - "count_boot" : "5", - "date_format" : "%Y-%m-%d %H:%M:%S", - "exclude" : [ - "/var/empty/**", - "/**", - "+ /home/rae/**", - "+ /opt/apps/**", - "/root/**" - ], - "exclude-apps" : [] -} \ No newline at end of file + "backup_device_uuid" : "fbbcc72f-34af-425c-9151-ef8919a6ae07", + "parent_device_uuid" : "", + "do_first_run" : "false", + "btrfs_mode" : "false", + "include_btrfs_home_for_backup" : "false", + "include_btrfs_home_for_restore" : "false", + "stop_cron_emails" : "true", + "schedule_monthly" : "false", + "schedule_weekly" : "false", + "schedule_daily" : "false", + "schedule_hourly" : "false", + "schedule_boot" : "false", + "count_monthly" : "2", + "count_weekly" : "3", + "count_daily" : "5", + "count_hourly" : "6", + "count_boot" : "5", + "date_format" : "%Y-%m-%d %H:%M:%S", + "exclude" : [ + "/var/empty/**", + "/**", + "+ /home/rae/**", + "+ /opt/apps/**", + "/root/**" + ], + "exclude-apps" : [] +} + diff --git a/configs/twm b/configs/twm index 1f96d6b..f4a6220 100644 --- a/configs/twm +++ b/configs/twm @@ -19,18 +19,18 @@ LeftTitleButton "wmenu.xbm" = f.nop RightTitleButton "minimize.xbm" = f.iconify RightTitleButton "close.xbm" = f.delete Color { - BorderColor "#0d8778" - DefaultBackground "#0d8778" - DefaultForeground "#ffffff" - TitleBackground "#0d8778" - TitleForeground "#ffffff" - MenuTitleBackground "#b52f62" - MenuTitleForeground "#ffffff" - MenuBackground "#b52f62" - MenuForeground "#ffffff" - MenuBorderColor "#b52f62" - IconManagerBackground "#b52f62" - IconManagerForeground "#ffffff" + BorderColor "#0d8778" + DefaultBackground "#0d8778" + DefaultForeground "#ffffff" + TitleBackground "#0d8778" + TitleForeground "#ffffff" + MenuTitleBackground "#b52f62" + MenuTitleForeground "#ffffff" + MenuBackground "#b52f62" + MenuForeground "#ffffff" + MenuBorderColor "#b52f62" + IconManagerBackground "#b52f62" + IconManagerForeground "#ffffff" } # window actions Button1 = : root : f.menu "TwmWindows" @@ -41,23 +41,24 @@ Function "raise-lower-move" { f.move f.raiselower } # menus menu "System" { - "System" f.title - "Icon manager" f.showiconmgr - "Restart twm" f.restart - "Take screenshot" !"flameshot gui&" - "" f.nop - "Applications" f.menu "Applications" - "Processes" !"kitty btop&" - "" f.nop - "Shutdown" !"shutdown now&" - "Restart" !"reboot&" + "System" f.title + "Icon manager" f.showiconmgr + "Restart twm" f.restart + "Take screenshot" !"flameshot gui&" + "" f.nop + "Applications" f.menu "Applications" + "Processes" !"kitty btop&" + "" f.nop + "Shutdown" !"shutdown now&" + "Restart" !"reboot&" } menu "Applications" { - "Applications" f.title - "Dolphin" !"dolphin&" - "Konsole" !"konsole&" - "Firefox" !"firefox&" - "Kate" !"kate&" - "VSCodium" !"codium&" + "Applications" f.title + "Dolphin" !"dolphin&" + "Konsole" !"konsole&" + "Firefox" !"firefox&" + "Kate" !"kate&" + "VSCodium" !"codium&" } + diff --git a/nixos/flake.lock b/nixos/flake.lock index 830b12d..ea5c0f1 100644 --- a/nixos/flake.lock +++ b/nixos/flake.lock @@ -1,384 +1,385 @@ { - "nodes": { - "fenix": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ], - "rust-analyzer-src": "rust-analyzer-src" - }, - "locked": { - "lastModified": 1734590149, - "narHash": "sha256-NcfLaETnNMPHTlu7/oTrihCjTL6G2DIe6lHZ68o2n8w=", - "owner": "nix-community", - "repo": "fenix", - "rev": "81afc33397436c678482a1560bbc810cc3504dbc", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "fenix", - "type": "github" - } - }, - "flake-parts": { - "inputs": { - "nixpkgs-lib": [ - "nur", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1733312601, - "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "home-manager": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1734366194, - "narHash": "sha256-vykpJ1xsdkv0j8WOVXrRFHUAdp9NXHpxdnn1F4pYgSw=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "80b0fdf483c5d1cb75aaad909bd390d48673857f", - "type": "github" - }, - "original": { - "owner": "nix-community", - "ref": "release-24.11", - "repo": "home-manager", - "type": "github" - } - }, - "libcamera-src": { - "flake": false, - "locked": { - "lastModified": 1725630279, - "narHash": "sha256-KH30jmHfxXq4j2CL7kv18DYECJRp9ECuWNPnqPZajPA=", - "owner": "raspberrypi", - "repo": "libcamera", - "rev": "69a894c4adad524d3063dd027f5c4774485cf9db", - "type": "github" - }, - "original": { - "owner": "raspberrypi", - "repo": "libcamera", - "rev": "69a894c4adad524d3063dd027f5c4774485cf9db", - "type": "github" - } - }, - "libpisp-src": { - "flake": false, - "locked": { - "lastModified": 1724944683, - "narHash": "sha256-Fo2UJmQHS855YSSKKmGrsQnJzXog1cdpkIOO72yYAM4=", - "owner": "raspberrypi", - "repo": "libpisp", - "rev": "28196ed6edcfeda88d23cc5f213d51aa6fa17bb3", - "type": "github" - }, - "original": { - "owner": "raspberrypi", - "ref": "v1.0.7", - "repo": "libpisp", - "type": "github" - } - }, - "nix-flatpak": { - "locked": { - "lastModified": 1734128415, - "narHash": "sha256-HLwdVNxpuTsLlM3tCkpbQU6yCehdgf3kOS1G2SDlkzY=", - "owner": "gmodena", - "repo": "nix-flatpak", - "rev": "8bdc2540da516006d07b04019eb57ae0781a04b3", - "type": "github" - }, - "original": { - "owner": "gmodena", - "ref": "latest", - "repo": "nix-flatpak", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1734323986, - "narHash": "sha256-m/lh6hYMIWDYHCAsn81CDAiXoT3gmxXI9J987W5tZrE=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "394571358ce82dff7411395829aa6a3aad45b907", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-24.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-unstable": { - "locked": { - "lastModified": 1735471104, - "narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "88195a94f390381c6afcdaa933c2f6ff93959cb4", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_2": { - "locked": { - "lastModified": 1736061677, - "narHash": "sha256-DjkQPnkAfd7eB522PwnkGhOMuT9QVCZspDpJJYyOj60=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "cbd8ec4de4469333c82ff40d057350c30e9f7d36", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-24.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nur": { - "inputs": { - "flake-parts": "flake-parts", - "nixpkgs": [ - "nixpkgs" - ], - "treefmt-nix": "treefmt-nix" - }, - "locked": { - "lastModified": 1734554871, - "narHash": "sha256-adKmMR20KSMrSQLAq3HbI1Y8DpgB2Fs4Nyiq9OpI/E4=", - "owner": "nix-community", - "repo": "NUR", - "rev": "52adbe40112836626fb9ed51e14d217e8b2f81c1", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "NUR", - "type": "github" - } - }, - "raspberry-pi-nix": { - "inputs": { - "libcamera-src": "libcamera-src", - "libpisp-src": "libpisp-src", - "nixpkgs": "nixpkgs_2", - "rpi-bluez-firmware-src": "rpi-bluez-firmware-src", - "rpi-firmware-nonfree-src": "rpi-firmware-nonfree-src", - "rpi-firmware-src": "rpi-firmware-src", - "rpi-linux-6_12_17-src": "rpi-linux-6_12_17-src", - "rpi-linux-6_6_78-src": "rpi-linux-6_6_78-src", - "rpi-linux-stable-src": "rpi-linux-stable-src", - "rpicam-apps-src": "rpicam-apps-src" - }, - "locked": { - "lastModified": 1740928520, - "narHash": "sha256-NL5qZi0iEEvQK9kMF6r48FOk5WMdQExCqodRH3kEr0g=", - "owner": "nix-community", - "repo": "raspberry-pi-nix", - "rev": "3bfda6add79c55f9bf143fac928f54484d450e87", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "raspberry-pi-nix", - "type": "github" - } - }, - "root": { - "inputs": { - "fenix": "fenix", - "home-manager": "home-manager", - "nix-flatpak": "nix-flatpak", - "nixpkgs": "nixpkgs", - "nixpkgs-unstable": "nixpkgs-unstable", - "nur": "nur", - "raspberry-pi-nix": "raspberry-pi-nix" - } - }, - "rpi-bluez-firmware-src": { - "flake": false, - "locked": { - "lastModified": 1708969706, - "narHash": "sha256-KakKnOBeWxh0exu44beZ7cbr5ni4RA9vkWYb9sGMb8Q=", - "owner": "RPi-Distro", - "repo": "bluez-firmware", - "rev": "78d6a07730e2d20c035899521ab67726dc028e1c", - "type": "github" - }, - "original": { - "owner": "RPi-Distro", - "ref": "bookworm", - "repo": "bluez-firmware", - "type": "github" - } - }, - "rpi-firmware-nonfree-src": { - "flake": false, - "locked": { - "lastModified": 1723266537, - "narHash": "sha256-T7eTKXqY9cxEMdab8Snda4CEOrEihy5uOhA6Fy+Mhnw=", - "owner": "RPi-Distro", - "repo": "firmware-nonfree", - "rev": "4b356e134e8333d073bd3802d767a825adec3807", - "type": "github" - }, - "original": { - "owner": "RPi-Distro", - "ref": "bookworm", - "repo": "firmware-nonfree", - "type": "github" - } - }, - "rpi-firmware-src": { - "flake": false, - "locked": { - "lastModified": 1728405098, - "narHash": "sha256-4gnK0KbqFnjBmWia9Jt2gveVWftmHrprpwBqYVqE/k0=", - "owner": "raspberrypi", - "repo": "firmware", - "rev": "7bbb5f80d20a2335066a8781459c9f33e5eebc64", - "type": "github" - }, - "original": { - "owner": "raspberrypi", - "ref": "1.20241008", - "repo": "firmware", - "type": "github" - } - }, - "rpi-linux-6_12_17-src": { - "flake": false, - "locked": { - "lastModified": 1740765145, - "narHash": "sha256-hoCsGc4+RC/2LmxDtswLBL5ZhWlw4vSiL4Vkl39r2MU=", - "owner": "raspberrypi", - "repo": "linux", - "rev": "5985ce32e511f4e8279a841a1b06a8c7d972b386", - "type": "github" - }, - "original": { - "owner": "raspberrypi", - "ref": "rpi-6.12.y", - "repo": "linux", - "type": "github" - } - }, - "rpi-linux-6_6_78-src": { - "flake": false, - "locked": { - "lastModified": 1740503700, - "narHash": "sha256-Y8+ot4Yi3UKwlZK3ap15rZZ16VZDvmeFkD46+6Ku7bE=", - "owner": "raspberrypi", - "repo": "linux", - "rev": "2e071057fded90e789c0101498e45a1778be93fe", - "type": "github" - }, - "original": { - "owner": "raspberrypi", - "ref": "rpi-6.6.y", - "repo": "linux", - "type": "github" - } - }, - "rpi-linux-stable-src": { - "flake": false, - "locked": { - "lastModified": 1728403745, - "narHash": "sha256-phCxkuO+jUGZkfzSrBq6yErQeO2Td+inIGHxctXbD5U=", - "owner": "raspberrypi", - "repo": "linux", - "rev": "5aeecea9f4a45248bcf564dec924965e066a7bfd", - "type": "github" - }, - "original": { - "owner": "raspberrypi", - "ref": "stable_20241008", - "repo": "linux", - "type": "github" - } - }, - "rpicam-apps-src": { - "flake": false, - "locked": { - "lastModified": 1727515047, - "narHash": "sha256-qCYGrcibOeGztxf+sd44lD6VAOGoUNwRqZDdAmcTa/U=", - "owner": "raspberrypi", - "repo": "rpicam-apps", - "rev": "a8ccf9f3cd9df49875dfb834a2b490d41d226031", - "type": "github" - }, - "original": { - "owner": "raspberrypi", - "ref": "v1.5.2", - "repo": "rpicam-apps", - "type": "github" - } - }, - "rust-analyzer-src": { - "flake": false, - "locked": { - "lastModified": 1734531725, - "narHash": "sha256-IGe/elaXn5XXA62RIL9OuLMq1vgrUCm+bYPqYCZJ7Ug=", - "owner": "rust-lang", - "repo": "rust-analyzer", - "rev": "27fac08c82210837a2ac84fa5e39eee6993f1605", - "type": "github" - }, - "original": { - "owner": "rust-lang", - "ref": "nightly", - "repo": "rust-analyzer", - "type": "github" - } - }, - "treefmt-nix": { - "inputs": { - "nixpkgs": [ - "nur", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1733222881, - "narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "49717b5af6f80172275d47a418c9719a31a78b53", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - } - }, - "root": "root", - "version": 7 + "nodes": { + "fenix": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "rust-analyzer-src": "rust-analyzer-src" + }, + "locked": { + "lastModified": 1734590149, + "narHash": "sha256-NcfLaETnNMPHTlu7/oTrihCjTL6G2DIe6lHZ68o2n8w=", + "owner": "nix-community", + "repo": "fenix", + "rev": "81afc33397436c678482a1560bbc810cc3504dbc", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "fenix", + "type": "github" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "nur", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1734366194, + "narHash": "sha256-vykpJ1xsdkv0j8WOVXrRFHUAdp9NXHpxdnn1F4pYgSw=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "80b0fdf483c5d1cb75aaad909bd390d48673857f", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-24.11", + "repo": "home-manager", + "type": "github" + } + }, + "libcamera-src": { + "flake": false, + "locked": { + "lastModified": 1725630279, + "narHash": "sha256-KH30jmHfxXq4j2CL7kv18DYECJRp9ECuWNPnqPZajPA=", + "owner": "raspberrypi", + "repo": "libcamera", + "rev": "69a894c4adad524d3063dd027f5c4774485cf9db", + "type": "github" + }, + "original": { + "owner": "raspberrypi", + "repo": "libcamera", + "rev": "69a894c4adad524d3063dd027f5c4774485cf9db", + "type": "github" + } + }, + "libpisp-src": { + "flake": false, + "locked": { + "lastModified": 1724944683, + "narHash": "sha256-Fo2UJmQHS855YSSKKmGrsQnJzXog1cdpkIOO72yYAM4=", + "owner": "raspberrypi", + "repo": "libpisp", + "rev": "28196ed6edcfeda88d23cc5f213d51aa6fa17bb3", + "type": "github" + }, + "original": { + "owner": "raspberrypi", + "ref": "v1.0.7", + "repo": "libpisp", + "type": "github" + } + }, + "nix-flatpak": { + "locked": { + "lastModified": 1734128415, + "narHash": "sha256-HLwdVNxpuTsLlM3tCkpbQU6yCehdgf3kOS1G2SDlkzY=", + "owner": "gmodena", + "repo": "nix-flatpak", + "rev": "8bdc2540da516006d07b04019eb57ae0781a04b3", + "type": "github" + }, + "original": { + "owner": "gmodena", + "ref": "latest", + "repo": "nix-flatpak", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1734323986, + "narHash": "sha256-m/lh6hYMIWDYHCAsn81CDAiXoT3gmxXI9J987W5tZrE=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "394571358ce82dff7411395829aa6a3aad45b907", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-24.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-unstable": { + "locked": { + "lastModified": 1735471104, + "narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "88195a94f390381c6afcdaa933c2f6ff93959cb4", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1736061677, + "narHash": "sha256-DjkQPnkAfd7eB522PwnkGhOMuT9QVCZspDpJJYyOj60=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "cbd8ec4de4469333c82ff40d057350c30e9f7d36", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nur": { + "inputs": { + "flake-parts": "flake-parts", + "nixpkgs": [ + "nixpkgs" + ], + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1734554871, + "narHash": "sha256-adKmMR20KSMrSQLAq3HbI1Y8DpgB2Fs4Nyiq9OpI/E4=", + "owner": "nix-community", + "repo": "NUR", + "rev": "52adbe40112836626fb9ed51e14d217e8b2f81c1", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, + "raspberry-pi-nix": { + "inputs": { + "libcamera-src": "libcamera-src", + "libpisp-src": "libpisp-src", + "nixpkgs": "nixpkgs_2", + "rpi-bluez-firmware-src": "rpi-bluez-firmware-src", + "rpi-firmware-nonfree-src": "rpi-firmware-nonfree-src", + "rpi-firmware-src": "rpi-firmware-src", + "rpi-linux-6_12_17-src": "rpi-linux-6_12_17-src", + "rpi-linux-6_6_78-src": "rpi-linux-6_6_78-src", + "rpi-linux-stable-src": "rpi-linux-stable-src", + "rpicam-apps-src": "rpicam-apps-src" + }, + "locked": { + "lastModified": 1740928520, + "narHash": "sha256-NL5qZi0iEEvQK9kMF6r48FOk5WMdQExCqodRH3kEr0g=", + "owner": "nix-community", + "repo": "raspberry-pi-nix", + "rev": "3bfda6add79c55f9bf143fac928f54484d450e87", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "raspberry-pi-nix", + "type": "github" + } + }, + "root": { + "inputs": { + "fenix": "fenix", + "home-manager": "home-manager", + "nix-flatpak": "nix-flatpak", + "nixpkgs": "nixpkgs", + "nixpkgs-unstable": "nixpkgs-unstable", + "nur": "nur", + "raspberry-pi-nix": "raspberry-pi-nix" + } + }, + "rpi-bluez-firmware-src": { + "flake": false, + "locked": { + "lastModified": 1708969706, + "narHash": "sha256-KakKnOBeWxh0exu44beZ7cbr5ni4RA9vkWYb9sGMb8Q=", + "owner": "RPi-Distro", + "repo": "bluez-firmware", + "rev": "78d6a07730e2d20c035899521ab67726dc028e1c", + "type": "github" + }, + "original": { + "owner": "RPi-Distro", + "ref": "bookworm", + "repo": "bluez-firmware", + "type": "github" + } + }, + "rpi-firmware-nonfree-src": { + "flake": false, + "locked": { + "lastModified": 1723266537, + "narHash": "sha256-T7eTKXqY9cxEMdab8Snda4CEOrEihy5uOhA6Fy+Mhnw=", + "owner": "RPi-Distro", + "repo": "firmware-nonfree", + "rev": "4b356e134e8333d073bd3802d767a825adec3807", + "type": "github" + }, + "original": { + "owner": "RPi-Distro", + "ref": "bookworm", + "repo": "firmware-nonfree", + "type": "github" + } + }, + "rpi-firmware-src": { + "flake": false, + "locked": { + "lastModified": 1728405098, + "narHash": "sha256-4gnK0KbqFnjBmWia9Jt2gveVWftmHrprpwBqYVqE/k0=", + "owner": "raspberrypi", + "repo": "firmware", + "rev": "7bbb5f80d20a2335066a8781459c9f33e5eebc64", + "type": "github" + }, + "original": { + "owner": "raspberrypi", + "ref": "1.20241008", + "repo": "firmware", + "type": "github" + } + }, + "rpi-linux-6_12_17-src": { + "flake": false, + "locked": { + "lastModified": 1740765145, + "narHash": "sha256-hoCsGc4+RC/2LmxDtswLBL5ZhWlw4vSiL4Vkl39r2MU=", + "owner": "raspberrypi", + "repo": "linux", + "rev": "5985ce32e511f4e8279a841a1b06a8c7d972b386", + "type": "github" + }, + "original": { + "owner": "raspberrypi", + "ref": "rpi-6.12.y", + "repo": "linux", + "type": "github" + } + }, + "rpi-linux-6_6_78-src": { + "flake": false, + "locked": { + "lastModified": 1740503700, + "narHash": "sha256-Y8+ot4Yi3UKwlZK3ap15rZZ16VZDvmeFkD46+6Ku7bE=", + "owner": "raspberrypi", + "repo": "linux", + "rev": "2e071057fded90e789c0101498e45a1778be93fe", + "type": "github" + }, + "original": { + "owner": "raspberrypi", + "ref": "rpi-6.6.y", + "repo": "linux", + "type": "github" + } + }, + "rpi-linux-stable-src": { + "flake": false, + "locked": { + "lastModified": 1728403745, + "narHash": "sha256-phCxkuO+jUGZkfzSrBq6yErQeO2Td+inIGHxctXbD5U=", + "owner": "raspberrypi", + "repo": "linux", + "rev": "5aeecea9f4a45248bcf564dec924965e066a7bfd", + "type": "github" + }, + "original": { + "owner": "raspberrypi", + "ref": "stable_20241008", + "repo": "linux", + "type": "github" + } + }, + "rpicam-apps-src": { + "flake": false, + "locked": { + "lastModified": 1727515047, + "narHash": "sha256-qCYGrcibOeGztxf+sd44lD6VAOGoUNwRqZDdAmcTa/U=", + "owner": "raspberrypi", + "repo": "rpicam-apps", + "rev": "a8ccf9f3cd9df49875dfb834a2b490d41d226031", + "type": "github" + }, + "original": { + "owner": "raspberrypi", + "ref": "v1.5.2", + "repo": "rpicam-apps", + "type": "github" + } + }, + "rust-analyzer-src": { + "flake": false, + "locked": { + "lastModified": 1734531725, + "narHash": "sha256-IGe/elaXn5XXA62RIL9OuLMq1vgrUCm+bYPqYCZJ7Ug=", + "owner": "rust-lang", + "repo": "rust-analyzer", + "rev": "27fac08c82210837a2ac84fa5e39eee6993f1605", + "type": "github" + }, + "original": { + "owner": "rust-lang", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "nur", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733222881, + "narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "49717b5af6f80172275d47a418c9719a31a78b53", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + } + }, + "root": "root", + "version": 7 } + diff --git a/nixos/flake.nix b/nixos/flake.nix index 5450ff1..9d18fe3 100644 --- a/nixos/flake.nix +++ b/nixos/flake.nix @@ -1,50 +1,50 @@ { - description = "rae's nixOS config flake"; + description = "rae's nixOS config flake"; - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; - nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; - nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest"; - home-manager = { - url = "github:nix-community/home-manager/release-24.11"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - # Nix User Repository - nur = { - url = "github:nix-community/NUR"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - # Rust toolchains - fenix = { - url = "github:nix-community/fenix"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - # Raspberry Pi support - raspberry-pi-nix.url = "github:nix-community/raspberry-pi-nix"; - }; + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; + nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; + nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest"; + home-manager = { + url = "github:nix-community/home-manager/release-24.11"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + # Nix User Repository + nur = { + url = "github:nix-community/NUR"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + # Rust toolchains + fenix = { + url = "github:nix-community/fenix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + # Raspberry Pi support + raspberry-pi-nix.url = "github:nix-community/raspberry-pi-nix"; + }; - outputs = { self, nixpkgs, home-manager, nix-flatpak, ... }@inputs: { - nixosConfigurations = - let - mkSystem = hostname: arch: with nixpkgs; { - name = hostname; - value = lib.nixosSystem { - system = "${arch}-linux"; - specialArgs = { inherit inputs; hostname = hostname; }; - modules = [ ./hosts/${hostname}/configuration.nix ]; - }; - }; - in builtins.listToAttrs [ - (mkSystem "ioides" "x86_64") # main pc - (mkSystem "near" "aarch64") # raspberry pi 5 home server - ]; + outputs = { self, nixpkgs, home-manager, nix-flatpak, ... }@inputs: { + nixosConfigurations = let + mkSystem = hostname: arch: with nixpkgs; { + name = hostname; + value = lib.nixosSystem { + system = "${arch}-linux"; + specialArgs = { inherit inputs; hostname = hostname; }; + modules = [ ./hosts/${hostname}/configuration.nix ]; + }; + }; + in builtins.listToAttrs [ + (mkSystem "ioides" "x86_64") # main pc + (mkSystem "near" "aarch64") # raspberry pi 5 home server + ]; - homeConfigurations.rae = home-manager.lib.homeManagerConfiguration { - pkgs = nixpkgs.legacyPackages.x86_64-linux; - extraSpecialArgs = { inherit inputs; }; - modules = [ - ./home - ]; - }; - }; + homeConfigurations.rae = home-manager.lib.homeManagerConfiguration { + pkgs = nixpkgs.legacyPackages.x86_64-linux; + extraSpecialArgs = { inherit inputs; }; + modules = [ + ./home + ]; + }; + }; } + diff --git a/nixos/hosts/ioides/configuration.nix b/nixos/hosts/ioides/configuration.nix index 37319c9..257b236 100644 --- a/nixos/hosts/ioides/configuration.nix +++ b/nixos/hosts/ioides/configuration.nix @@ -38,32 +38,6 @@ }; }; }; -# TODO: when you get home -# + try to make a configuration for your desktop host specifically maybe -# r5e.system = { -# graphics = { -# display.x11 = { -# enable = true; -# windowManagers = { -# twm.enable = true; -# openbox.enable = true; -# }; -# displayManager.autologin = { -# enable = true; -# session = "none+openbox"; -# }; -# }; -# }; -# -# hardwareAcceleration = { -# enable = true; -# intel = { -# videoPlayback.enable = true; -# qsv.enable = true; -# }; -# nvidia.enable = true; -# }; -# }; boot = { binfmt.emulatedSystems = [ "aarch64-linux" ]; @@ -112,24 +86,6 @@ enable = true; powerOnBoot = true; }; -# graphics = { -# enable = true; -# extraPackages = with pkgs; [ -# intel-media-sdk -# ]; -# }; -# nvidia = { -# modesetting.enable = true; -# powerManagement = { -# enable = false; -# finegrained = false; -# }; -# open = false; -# nvidiaSettings = true; -# package = config.boot.kernelPackages.nvidiaPackages.stable; -# # temp -# package = config.boot.kernelPackages.nvidiaPackages.legacy_390; -# }; opentabletdriver.enable = true; }; @@ -175,31 +131,6 @@ }; services = { - # Xorg -# xserver = { -# enable = true; -# xkb.layout = "us"; - #?TODO maybe put all nvidia settings into its own module (i.e. r5e.hardware.nvidia.enable) + x11 with xdg config -# videoDrivers = [ "nvidia" ]; -# windowManager = { -# cwm.enable = true; -# openbox.enable = true; -# twm.enable = true; -# }; -# }; -# displayManager = { -# sddm = { -# enable = true; -# settings = { -# Autologin = { -# User = "rae"; -# Session = "none+openbox"; -# }; -# }; -# theme = "catppuccin-mocha"; -# }; -# }; - # Touchpad support libinput.enable = true; # Sound @@ -287,3 +218,4 @@ system.stateVersion = "24.11"; } + diff --git a/nixos/modules/docker/pihole/docker-compose.nix b/nixos/modules/docker/pihole/docker-compose.nix index b467602..294d21b 100644 --- a/nixos/modules/docker/pihole/docker-compose.nix +++ b/nixos/modules/docker/pihole/docker-compose.nix @@ -2,79 +2,80 @@ { pkgs, lib, ... }: { - # Runtime - virtualisation.docker = { - enable = true; - autoPrune.enable = true; - }; - virtualisation.oci-containers.backend = "docker"; +# Runtime + virtualisation.docker = { + enable = true; + autoPrune.enable = true; + }; + virtualisation.oci-containers.backend = "docker"; - # Containers - virtualisation.oci-containers.containers."pihole" = { - image = "pihole/pihole:latest"; - environment = { - "FTLCONF_dns_listeningMode" = "all"; - }; - volumes = [ - "/etc/pihole:/etc/pihole:rw" - ]; - ports = [ - "53:53/tcp" - "53:53/udp" - "80:80/tcp" - "443:443/tcp" - ]; - log-driver = "journald"; - extraOptions = [ - "--cap-add=NET_ADMIN" - "--cap-add=SYS_NICE" - "--network-alias=pihole" - "--network=pihole_default" - ]; - }; - systemd.services."docker-pihole" = { - serviceConfig = { - Restart = lib.mkOverride 90 "always"; - RestartMaxDelaySec = lib.mkOverride 90 "1m"; - RestartSec = lib.mkOverride 90 "100ms"; - RestartSteps = lib.mkOverride 90 9; - }; - after = [ - "docker-network-pihole_default.service" - ]; - requires = [ - "docker-network-pihole_default.service" - ]; - partOf = [ - "docker-compose-pihole-root.target" - ]; - wantedBy = [ - "docker-compose-pihole-root.target" - ]; - }; +# Containers + virtualisation.oci-containers.containers."pihole" = { + image = "pihole/pihole:latest"; + environment = { + "FTLCONF_dns_listeningMode" = "all"; + }; + volumes = [ + "/etc/pihole:/etc/pihole:rw" + ]; + ports = [ + "53:53/tcp" + "53:53/udp" + "80:80/tcp" + "443:443/tcp" + ]; + log-driver = "journald"; + extraOptions = [ + "--cap-add=NET_ADMIN" + "--cap-add=SYS_NICE" + "--network-alias=pihole" + "--network=pihole_default" + ]; + }; + systemd.services."docker-pihole" = { + serviceConfig = { + Restart = lib.mkOverride 90 "always"; + RestartMaxDelaySec = lib.mkOverride 90 "1m"; + RestartSec = lib.mkOverride 90 "100ms"; + RestartSteps = lib.mkOverride 90 9; + }; + after = [ + "docker-network-pihole_default.service" + ]; + requires = [ + "docker-network-pihole_default.service" + ]; + partOf = [ + "docker-compose-pihole-root.target" + ]; + wantedBy = [ + "docker-compose-pihole-root.target" + ]; + }; - # Networks - systemd.services."docker-network-pihole_default" = { - path = [ pkgs.docker ]; - serviceConfig = { - Type = "oneshot"; - RemainAfterExit = true; - ExecStop = "docker network rm -f pihole_default"; - }; - script = '' - docker network inspect pihole_default || docker network create pihole_default - ''; - partOf = [ "docker-compose-pihole-root.target" ]; - wantedBy = [ "docker-compose-pihole-root.target" ]; - }; +# Networks + systemd.services."docker-network-pihole_default" = { + path = [ pkgs.docker ]; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + ExecStop = "docker network rm -f pihole_default"; + }; + script = '' + docker network inspect pihole_default || docker network create pihole_default + ''; + partOf = [ "docker-compose-pihole-root.target" ]; + wantedBy = [ "docker-compose-pihole-root.target" ]; + }; - # Root service - # When started, this will automatically create all resources and start - # the containers. When stopped, this will teardown all resources. - systemd.targets."docker-compose-pihole-root" = { - unitConfig = { - Description = "Root target generated by compose2nix."; - }; - wantedBy = [ "multi-user.target" ]; - }; +# Root service +# When started, this will automatically create all resources and start +# the containers. When stopped, this will teardown all resources. + systemd.targets."docker-compose-pihole-root" = { + unitConfig = { + Description = "Root target generated by compose2nix."; + }; + wantedBy = [ "multi-user.target" ]; + }; } + diff --git a/nixos/overlays.nix b/nixos/overlays.nix index d5e32c6..72d6ecb 100644 --- a/nixos/overlays.nix +++ b/nixos/overlays.nix @@ -1,10 +1,11 @@ { nur, fenix, nixpkgs-unstable, ... }: [ - nur.overlays.default - fenix.overlays.default - (import ./pkgs/overlay.nix {}) - (final: prev: { - unstable = import nixpkgs-unstable { - system = prev.system; - }; - }) + nur.overlays.default + fenix.overlays.default + (import ./pkgs/overlay.nix {}) + (final: prev: { + unstable = import nixpkgs-unstable { + system = prev.system; + }; + }) ] + diff --git a/nixos/pkgs/chibicc-uxn/default.nix b/nixos/pkgs/chibicc-uxn/default.nix index d977562..c523240 100644 --- a/nixos/pkgs/chibicc-uxn/default.nix +++ b/nixos/pkgs/chibicc-uxn/default.nix @@ -1,23 +1,24 @@ { lib, stdenv, fetchFromGitHub }: stdenv.mkDerivation { - pname = "chibicc-uxn"; - version = "1.0.0"; + pname = "chibicc-uxn"; + version = "1.0.0"; - src = fetchFromGitHub { - owner = "lynn"; - repo = "chibicc"; - rev = "0a590db363fb8d69b80fc70d9dfb7e655aafe656"; - sha256 = "1jf18dh9ns0q79q8ql5yiw7l3zswyy0qjlz089xr3kw4zpqaqfmn"; - }; + src = fetchFromGitHub { + owner = "lynn"; + repo = "chibicc"; + rev = "0a590db363fb8d69b80fc70d9dfb7e655aafe656"; + sha256 = "1jf18dh9ns0q79q8ql5yiw7l3zswyy0qjlz089xr3kw4zpqaqfmn"; + }; - installPhase = '' - mkdir -p $out/bin - cp chibicc $out/bin - ''; + installPhase = '' + mkdir -p $out/bin + cp chibicc $out/bin + ''; - meta = with lib; { - description = "A small C compiler... for uxn"; - homepage = "https://github.com/lynn/chibicc"; - license = licenses.mit; - platforms = platforms.unix; - }; + meta = with lib; { + description = "A small C compiler... for uxn"; + homepage = "https://github.com/lynn/chibicc"; + license = licenses.mit; + platforms = platforms.unix; + }; } + diff --git a/nixos/pkgs/overlay.nix b/nixos/pkgs/overlay.nix index 4b292fe..aa64919 100644 --- a/nixos/pkgs/overlay.nix +++ b/nixos/pkgs/overlay.nix @@ -1,6 +1,7 @@ { ... }: final: prev: with final; { - chibicc-uxn = callPackage ./chibicc-uxn {}; - playit-agent = callPackage ./playit-agent {}; - wxwabbitemu = callPackage ./wxwabbitemu {}; - ynodesktop = callPackage ./ynodesktop {}; + chibicc-uxn = callPackage ./chibicc-uxn {}; + playit-agent = callPackage ./playit-agent {}; + wxwabbitemu = callPackage ./wxwabbitemu {}; + ynodesktop = callPackage ./ynodesktop {}; } + diff --git a/nixos/pkgs/playit-agent/default.nix b/nixos/pkgs/playit-agent/default.nix index 364fca9..098c37d 100644 --- a/nixos/pkgs/playit-agent/default.nix +++ b/nixos/pkgs/playit-agent/default.nix @@ -1,20 +1,21 @@ { rustPlatform, fetchFromGitHub, lib }: rustPlatform.buildRustPackage rec { - pname = "playit-agent"; - version = "0.15.26"; + pname = "playit-agent"; + version = "0.15.26"; - src = fetchFromGitHub { - owner = "playit-cloud"; - repo = "playit-agent"; - rev = "v" + version; - sha256 = "12wc8am3zamjlkn61ajjw8kdvdrn9plvjnhskx56yspz9v9sys6f"; - }; + src = fetchFromGitHub { + owner = "playit-cloud"; + repo = "playit-agent"; + rev = "v" + version; + sha256 = "12wc8am3zamjlkn61ajjw8kdvdrn9plvjnhskx56yspz9v9sys6f"; + }; - cargoHash = "sha256-JRsmZ5D/awsIjExGTDkzYkun6oeIpL1FkZJKzZf/XF0="; - doCheck = false; # uses network tests and it also takes SO FUCKING LONG oh my god + cargoHash = "sha256-JRsmZ5D/awsIjExGTDkzYkun6oeIpL1FkZJKzZf/XF0="; + doCheck = false; # uses network tests and it also takes SO FUCKING LONG oh my god - meta = with lib; { - description = "The playit program"; - homepage = "https://playit.gg/"; - license = licenses.bsd2; - }; + meta = with lib; { + description = "The playit program"; + homepage = "https://playit.gg/"; + license = licenses.bsd2; + }; } + diff --git a/nixos/pkgs/vasm-psi-x/default.nix b/nixos/pkgs/vasm-psi-x/default.nix index 1fe6ef8..a19aa22 100644 --- a/nixos/pkgs/vasm-psi-x/default.nix +++ b/nixos/pkgs/vasm-psi-x/default.nix @@ -23,3 +23,4 @@ stdenv.mkDerivation rec { license = licenses.free; }; } + diff --git a/nixos/pkgs/vlink/default.nix b/nixos/pkgs/vlink/default.nix index a129366..19829e1 100644 --- a/nixos/pkgs/vlink/default.nix +++ b/nixos/pkgs/vlink/default.nix @@ -8,3 +8,4 @@ stdenv.mkDerivation { description = "A portable linker for multiple file formats"; }; } + diff --git a/nixos/pkgs/ynodesktop/default.nix b/nixos/pkgs/ynodesktop/default.nix index 8113b42..54008a6 100644 --- a/nixos/pkgs/ynodesktop/default.nix +++ b/nixos/pkgs/ynodesktop/default.nix @@ -1,86 +1,87 @@ { - lib, - stdenv, - fetchFromGitHub, - fetchYarnDeps, - yarnConfigHook, - yarnBuildHook, - yarnInstallHook, - imagemagick, - makeWrapper, - nodejs, - copyDesktopItems, - electron, - makeDesktopItem + lib, + stdenv, + fetchFromGitHub, + fetchYarnDeps, + yarnConfigHook, + yarnBuildHook, + yarnInstallHook, + imagemagick, + makeWrapper, + nodejs, + copyDesktopItems, + electron, + makeDesktopItem }: stdenv.mkDerivation rec { - pname = "ynodesktop"; - version = "1.2.3"; + pname = "ynodesktop"; + version = "1.2.3"; - src = fetchFromGitHub { - owner = "affectioned"; - repo = pname; - rev = version; - sha256 = "1zr84mbc5p27f6ks4z2rkgg9cifzimf478f42bmz4yp44vrhaj1a"; - }; + src = fetchFromGitHub { + owner = "affectioned"; + repo = pname; + rev = version; + sha256 = "1zr84mbc5p27f6ks4z2rkgg9cifzimf478f42bmz4yp44vrhaj1a"; + }; - yarnOfflineCache = fetchYarnDeps { - yarnLock = "${src}/yarn.lock"; - hash = "sha256-EHoSypJWFC2k0ES6ZQxxrumBLx9H3E9YTniWf0V5nWc="; - }; + yarnOfflineCache = fetchYarnDeps { + yarnLock = "${src}/yarn.lock"; + hash = "sha256-EHoSypJWFC2k0ES6ZQxxrumBLx9H3E9YTniWf0V5nWc="; + }; - env.ELECTRON_SKIP_BINARY_DOWNLOAD = 1; + env.ELECTRON_SKIP_BINARY_DOWNLOAD = 1; - nativeBuildInputs = [ - yarnConfigHook - yarnBuildHook - yarnInstallHook - imagemagick - makeWrapper - nodejs - copyDesktopItems - ]; + nativeBuildInputs = [ + yarnConfigHook + yarnBuildHook + yarnInstallHook + imagemagick + makeWrapper + nodejs + copyDesktopItems + ]; - yarnBuildScript = "electron-builder"; - yarnBuildFlags = [ - "--dir" - "-c.electronDist=${electron.dist}" - "-c.electronVersion=${electron.version}" - ]; + yarnBuildScript = "electron-builder"; + yarnBuildFlags = [ + "--dir" + "-c.electronDist=${electron.dist}" + "-c.electronVersion=${electron.version}" + ]; - # TODO: also export the other icons from the .ico (i dont think theyre scaled properly though) - installPhase = '' - runHook preInstall + # TODO: also export the other icons from the .ico (i dont think theyre scaled properly though) + installPhase = '' + runHook preInstall - mkdir -p $out/share/icons/hicolor/256x256/apps - magick "assets/logo.ico[5]" "$out/share/icons/hicolor/256x256/apps/ynodesktop.png" + mkdir -p $out/share/icons/hicolor/256x256/apps + magick "assets/logo.ico[5]" "$out/share/icons/hicolor/256x256/apps/ynodesktop.png" - mkdir -p $out/share/ynodesktop - cp -r dist/*-unpacked/{locales,resources{,.pak}} $out/share/ynodesktop + mkdir -p $out/share/ynodesktop + cp -r dist/*-unpacked/{locales,resources{,.pak}} $out/share/ynodesktop - makeWrapper "${electron}/bin/electron" $out/bin/ynodesktop \ - --add-flags $out/share/ynodesktop/resources/app.asar \ - --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \ - --inherit-argv0 + makeWrapper "${electron}/bin/electron" $out/bin/ynodesktop \ + --add-flags $out/share/ynodesktop/resources/app.asar \ + --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \ + --inherit-argv0 - runHook postInstall - ''; + runHook postInstall + ''; - desktopItems = [ - (makeDesktopItem { - name = pname; - desktopName = "YNOdesktop"; - genericName = "Desktop client for Yume Nikki Online"; - comment = "Play Yume Nikki Online"; - exec = "ynodesktop"; - icon = "ynodesktop"; - categories = [ "Game" ]; - }) - ]; + desktopItems = [ + (makeDesktopItem { + name = pname; + desktopName = "YNOdesktop"; + genericName = "Desktop client for Yume Nikki Online"; + comment = "Play Yume Nikki Online"; + exec = "ynodesktop"; + icon = "ynodesktop"; + categories = [ "Game" ]; + }) + ]; - meta = with lib; { - description = "A desktop client for Yume Nikki Online with Discord Rich Presence"; - homepage = "https://github.com/affectioned/ynodesktop"; - license = licenses.mit; - platforms = platforms.linux; - }; + meta = with lib; { + description = "A desktop client for Yume Nikki Online with Discord Rich Presence"; + homepage = "https://github.com/affectioned/ynodesktop"; + license = licenses.mit; + platforms = platforms.linux; + }; } +