Restructure flake.nix and add JHelioviewer package

This commit is contained in:
2024-07-06 16:50:32 -05:00
parent 4424978387
commit d8d07896fe
6 changed files with 319 additions and 232 deletions

55
flake.lock generated
View File

@@ -1,17 +1,5 @@
{ {
"nodes": { "nodes": {
"currentSystem": {
"locked": {
"lastModified": 1717805060,
"narHash": "sha256-jgZROz6KZg2bOy4PGGd/vzpmn7v22+C+2Ivwfk26OXo=",
"path": "/etc/nixos/hostname",
"type": "path"
},
"original": {
"path": "/etc/nixos/hostname",
"type": "path"
}
},
"flake-utils": { "flake-utils": {
"inputs": { "inputs": {
"systems": "systems" "systems": "systems"
@@ -37,11 +25,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1718530513, "lastModified": 1720042825,
"narHash": "sha256-BmO8d0r+BVlwWtMLQEYnwmngqdXIuyFzMwvmTcLMee8=", "narHash": "sha256-A0vrUB6x82/jvf17qPCpxaM+ulJnD8YZwH9Ci0BsAzE=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "a1fddf0967c33754271761d91a3d921772b30d0e", "rev": "e1391fb22e18a36f57e6999c7a9f966dc80ac073",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -58,11 +46,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1719180626, "lastModified": 1720045378,
"narHash": "sha256-vZAzm5KQpR6RGple1dzmSJw5kPivES2heCFM+ZWkt0I=", "narHash": "sha256-lmE7B+QXw7lWdBu5GQlUABSpzPk3YBb9VbV+IYK5djk=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "6b1f90a8ff92e81638ae6eb48cd62349c3e387bb", "rev": "0a30138c694ab3b048ac300794c2eb599dc40266",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -73,11 +61,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1718983919, "lastModified": 1719468428,
"narHash": "sha256-+1xgeIow4gJeiwo4ETvMRvWoircnvb0JOt7NS9kUhoM=", "narHash": "sha256-vN5xJAZ4UGREEglh3lfbbkIj+MPEYMuqewMn4atZFaQ=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "90338afd6177fc683a04d934199d693708c85a3b", "rev": "1e3deb3d8a86a870d925760db1a5adecc64d329d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -89,11 +77,11 @@
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1718835956, "lastModified": 1719956923,
"narHash": "sha256-wM9v2yIxClRYsGHut5vHICZTK7xdrUGfrLkXvSuv6s4=", "narHash": "sha256-nNJHJ9kfPdzYsCOlHOnbiiyKjZUW5sWbwx3cakg3/C4=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "dd457de7e08c6d06789b1f5b88fc9327f4d96309", "rev": "706eef542dec88cc0ed25b9075d3037564b2d164",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -105,11 +93,11 @@
}, },
"nixpkgs-stable_2": { "nixpkgs-stable_2": {
"locked": { "locked": {
"lastModified": 1719099622, "lastModified": 1719663039,
"narHash": "sha256-YzJECAxFt+U5LPYf/pCwW/e1iUd2PF21WITHY9B/BAs=", "narHash": "sha256-tXlrgAQygNIy49LDVFuPXlWD2zTQV9/F8pfoqwwPJyo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "5e8e3b89adbd0be63192f6e645e0a54080004924", "rev": "4a1e673523344f6ccc84b37f4413ad74ea19a119",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -121,11 +109,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1719075281, "lastModified": 1719848872,
"narHash": "sha256-CyyxvOwFf12I91PBWz43iGT1kjsf5oi6ax7CrvaMyAo=", "narHash": "sha256-H3+EC5cYuq+gQW8y0lSrrDZfH71LB4DAf+TDFyvwCNA=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "a71e967ef3694799d0c418c98332f7ff4cc5f6af", "rev": "00d80d13810dbfea8ab4ed1009b09100cca86ba8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -137,7 +125,6 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"currentSystem": "currentSystem",
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"home-manager-stable": "home-manager-stable", "home-manager-stable": "home-manager-stable",
"home-manager-unstable": "home-manager-unstable", "home-manager-unstable": "home-manager-unstable",
@@ -152,11 +139,11 @@
"nixpkgs-stable": "nixpkgs-stable_2" "nixpkgs-stable": "nixpkgs-stable_2"
}, },
"locked": { "locked": {
"lastModified": 1719111739, "lastModified": 1719873517,
"narHash": "sha256-kr2QzRrplzlCP87ddayCZQS+dhGW98kw2zy7+jUXtF4=", "narHash": "sha256-D1dxZmXf6M2h5lNE1m6orojuUawVPjogbGRsqSBX+1g=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "5e2e9421e9ed2b918be0a441c4535cfa45e04811", "rev": "a11224af8d824935f363928074b4717ca2e280db",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -2,8 +2,6 @@
description = "NixOS configuration"; description = "NixOS configuration";
inputs = { inputs = {
currentSystem.url = "path:/etc/nixos/hostname";
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.05"; nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.05";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
@@ -21,7 +19,6 @@
}; };
outputs = inputs@{ self outputs = inputs@{ self
, currentSystem
, nixpkgs-stable , nixpkgs-stable
, nixpkgs-unstable , nixpkgs-unstable
, home-manager-stable , home-manager-stable
@@ -29,17 +26,22 @@
, flake-utils , flake-utils
, sops-nix , sops-nix
, ... , ...
}: let }:
let
inherit (self) outputs; inherit (self) outputs;
inherit (currentSystem) hostname; lib = nixpkgs-stable.lib;
overlays = import ./overlays { inherit inputs; }; overlays = import ./overlays { inherit inputs; };
utils = import ./utils; utils = import ./utils;
configs."ankaa" = { configs = [
{
hostname = "ankaa";
system = "x86_64-linux"; system = "x86_64-linux";
common.nixpkgs = "unstable"; nixpkgs = nixpkgs-unstable;
home-manager = home-manager-unstable;
options = {
openssh = { openssh = {
enable = true; enable = true;
port = 2222; port = 2222;
@@ -79,7 +81,7 @@
desktop = true; desktop = true;
}; };
monitors = pkgs.lib.mkMerge [ monitors = lib.mkMerge [
(utils.mkMonitor { (utils.mkMonitor {
monitor = "DP-2"; monitor = "DP-2";
resolution = "3440x1440"; resolution = "3440x1440";
@@ -107,14 +109,15 @@
networking = { networking = {
wireguard.enable = true; wireguard.enable = true;
}; };
}; };
}
configs."alpheratz" = { {
hostname = "alpheratz";
system = "x86_64-linux"; system = "x86_64-linux";
common.nixpkgs = "unstable"; nixpkgs = nixpkgs-unstable;
home-manager = home-manager-unstable;
options = {
laptop = { laptop = {
powersave.enable = true; powersave.enable = true;
backlight.enable = true; backlight.enable = true;
@@ -149,11 +152,14 @@
wireguard.enable = true; wireguard.enable = true;
}; };
}; };
}
configs."diphda" = { {
hostname = "diphda";
system = "x86_64-linux"; system = "x86_64-linux";
common.nixpkgs = "stable"; nixpkgs = nixpkgs-stable;
home-manager = home-manager-stable;
options = {
openssh.enable = true; openssh.enable = true;
networking = { networking = {
@@ -162,26 +168,26 @@
}; };
}; };
}; };
}
];
currentConfig = configs."${hostname}"; in {
system = currentConfig.system; nixosConfigurations = builtins.listToAttrs (map (config:
let
nixpkgs = if currentConfig.common.nixpkgs == "unstable" then inherit (config) nixpkgs home-manager system hostname;
nixpkgs-unstable
else
nixpkgs-stable;
home-manager = if currentConfig.common.nixpkgs == "unstable" then
home-manager-unstable
else
home-manager-stable;
pkgs = import nixpkgs { pkgs = import nixpkgs {
inherit system; inherit system;
overlays = with overlays; [ gamescope ]; overlays = with overlays; [ gamescope ];
config.allowUnfree = true;
}; };
localPackages = pkgs.lib.genAttrs flake-utils.lib.defaultSystems (system: {
kickoff-dot-desktop = pkgs.callPackage ./pkgs/kickoff-dot-desktop.nix {};
gamescope-old = pkgs.callPackage ./pkgs/gamescope-old {};
gamescope-dbg = pkgs.callPackage ./pkgs/gamescope-dbg {};
jhelioviewer = pkgs.callPackage ./pkgs/jhelioviewer.nix {};
}
);
systemConfig = if builtins.pathExists (./. + "/hosts/${hostname}/system.nix") then systemConfig = if builtins.pathExists (./. + "/hosts/${hostname}/system.nix") then
(./. + "/hosts/${hostname}/system.nix") (./. + "/hosts/${hostname}/system.nix")
@@ -192,18 +198,18 @@
(./. + "/hosts/${hostname}/home.nix") (./. + "/hosts/${hostname}/home.nix")
else else
./hosts/default/home.nix; ./hosts/default/home.nix;
in
in { {
nixosConfigurations = { name = config.hostname;
"${hostname}" = nixpkgs.lib.nixosSystem { value = nixpkgs.lib.nixosSystem {
specialArgs = { specialArgs = {
inherit (outputs) localPackages; inherit localPackages;
inherit pkgs; inherit pkgs;
}; };
modules = [ modules = [
{ {
networking.hostName = hostname; networking.hostName = hostname;
simmer = currentConfig; simmer = config.options;
} }
systemConfig systemConfig
(./. + "/hosts/${hostname}/hardware-configuration.nix") (./. + "/hosts/${hostname}/hardware-configuration.nix")
@@ -216,20 +222,15 @@
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = { home-manager.extraSpecialArgs = {
inherit utils; inherit utils;
systemConfig = configs."${hostname}"; systemConfig = config.options;
}; };
home-manager.users.eesim = import homeConfig; home-manager.users.eesim = import homeConfig;
} }
]; ];
}; };
}; })
localPackages = pkgs.lib.genAttrs flake-utils.lib.defaultSystems (system: configs
{
kickoff-dot-desktop = pkgs.callPackage ./pkgs/kickoff-dot-desktop.nix {};
gamescope-old = pkgs.callPackage ./pkgs/gamescope-old {};
gamescope-dbg = pkgs.callPackage ./pkgs/gamescope-dbg {};
}
); );
}; };
} }

View File

@@ -6,6 +6,7 @@
lib, lib,
config, config,
pkgs, pkgs,
localPackages,
... ...
}: { }: {
@@ -30,6 +31,8 @@
secrets."wireguard/preshared" = {}; secrets."wireguard/preshared" = {};
}; };
environment.systemPackages = [ localPackages.x86_64-linux.jhelioviewer ];
# Use the systemd-boot EFI boot loader. # Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.systemd-boot.xbootldrMountPoint = "/boot"; boot.loader.systemd-boot.xbootldrMountPoint = "/boot";
@@ -51,7 +54,7 @@
listenPort = 51820; listenPort = 51820;
privateKeyFile = "/run/secrets/wireguard/private"; privateKeyFile = "/run/secrets/wireguard/private";
dns = [ "192.168.1.1" ]; dns = [ "192.168.1.1" ];
autostart = false; autostart = true;
peers = [ peers = [
{ {

View File

@@ -16,11 +16,30 @@ in
services.swayidle = { services.swayidle = {
enable = true; enable = true;
timeouts = [ timeouts = [
{ (mkIf gui.sway.desktop {
timeout = 600; timeout = 600;
command = "${pkgs.sway}/bin/swaymsg 'output * dpms off'"; command = "${pkgs.sway}/bin/swaymsg 'output * dpms off'";
resumeCommand = "${pkgs.sway}/bin/swaymsg 'output * dpms on'"; resumeCommand = "${pkgs.sway}/bin/swaymsg 'output * dpms on'";
} })
(mkIf (!gui.sway.desktop) {
timeout = 300;
command = "${pkgs.swaylock}/bin/swaylock -f -c 000000";
})
(mkIf (!gui.sway.desktop) {
timeout = 420;
command = "${pkgs.sway}/bin/swaymsg 'output * dpms off'";
resumeCommand = "${pkgs.sway}/bin/swaymsg 'output * dpms on'";
})
(mkIf (!gui.sway.desktop) {
timeout = 600;
command = "systemctl suspend";
})
];
events = [
(mkIf (!gui.sway.desktop) {
event = "before-sleep";
command = "${pkgs.swaylock}/bin/swaylock -f -c 000000";
})
]; ];
}; };

View File

@@ -33,6 +33,9 @@ in
services.gnome.gnome-keyring.enable = mkIf cfg.secrets true; services.gnome.gnome-keyring.enable = mkIf cfg.secrets true;
services.dbus.packages = mkIf cfg.secrets [ pkgs.gnome.seahorse ]; services.dbus.packages = mkIf cfg.secrets [ pkgs.gnome.seahorse ];
# Remove when nixpkgs issue 143365 is fixed
security.pam.services.swaylock = mkIf (!cfg.sway.desktop) {};
xdg.portal.config.common = [ "wlr" "gtk" ]; xdg.portal.config.common = [ "wlr" "gtk" ];
programs.thunar.enable = true; programs.thunar.enable = true;

74
pkgs/jhelioviewer.nix Normal file
View File

@@ -0,0 +1,74 @@
{ lib
, stdenv
, jdk
, jre
, ant
, jogl
, fetchFromGitHub
, makeDesktopItem
, copyDesktopItems
, stripJavaArchivesHook
, makeWrapper
, ...
}:
stdenv.mkDerivation {
name = "JHelioviewer";
src = fetchFromGitHub {
owner = "Helioviewer-Project";
repo = "JHelioviewer-SWHV";
rev = "537b60bbf4c40e46b98d7a1c0167f3c943e73cd2";
hash = "sha256-LBiywlXAgMifn6ov04CwEnfhSWskSzIy5Cs3NeL90Ts=";
};
nativeBuildInputs = [
jdk
ant
stripJavaArchivesHook
makeWrapper
copyDesktopItems
];
buildPhase = ''
runHook preBuild
ant
runHook postBuild
'';
desktopItems = [
(makeDesktopItem {
name = "jhelioviewer";
desktopName = "JHelioviewer";
exec = "jhelioviewer";
comment = "A visualization tool for solar physics data based on the JPEG 2000 image compression standard, and part of the open source ESA/NASA Helioviewer Project";
icon = "hvLogo";
})
];
installPhase = ''
runHook preInstall
mkdir -p $out/share/java/
mkdir -p $out/share/java/lib
install -Dm644 JHelioviewer.jar $out/share/java/
cp -r lib/* $out/share/java/lib/
rm $out/share/java/lib/jogl/*.jar
cp -v ${jogl}/share/java/jogl*.jar ${jogl}/share/java/glue*.jar $out/share/java/lib/jogl
mkdir $out/bin
makeWrapper ${jre}/bin/java $out/bin/jhelioviewer \
--add-flags "-cp $out/share/java/JHelioviewer.jar" \
--add-flags "--add-exports java.desktop/sun.awt=ALL-UNNAMED" \
--add-flags "--add-exports java.desktop/sun.swing=ALL-UNNAMED" \
--add-flags "org.helioviewer.jhv.JHelioviewer"
mkdir -p $out/share/icons
cp -v docs/hvLogo.png $out/share/icons/
runHook postInstall
'';
}