101 lines
2.8 KiB
Nix
101 lines
2.8 KiB
Nix
# Fg42 - Emacs Editor for advance users
|
|
#
|
|
# Copyright (c) 2010-2024 Sameer Rahmani <lxsameer@gnu.org>
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, version 2.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
{
|
|
description = "FG42 - Emacs Editor for advance users";
|
|
|
|
inputs.nixpkgs.url = "github:NixOS/nixpkgs/442d407992384ed9c0e6d352de75b69079904e4e";
|
|
inputs.noether.url = "git+https://devheroes.codes/lxsameer/noether?ref=refs/tags/v0.1.11";
|
|
|
|
inputs.emacs-overlay.url = "github:nix-community/emacs-overlay/0f7f3b39157419f3035a2dad39fbaf8a4ba0448d";
|
|
inputs.flake-parts.url = "github:hercules-ci/flake-parts";
|
|
|
|
outputs = { self, nixpkgs, flake-parts, ... }@inputs: flake-parts.lib.mkFlake { inherit inputs; } {
|
|
systems = [
|
|
"aarch64-darwin"
|
|
"riscv64-linux"
|
|
"x86_64-linux"
|
|
];
|
|
|
|
flake = {
|
|
|
|
# The home-manager integration. The can use FG42 with home-manager by including
|
|
# this module.
|
|
hm-module = rec {
|
|
fg42 = import ./nix/hm;
|
|
default = fg42;
|
|
};
|
|
};
|
|
|
|
perSystem = { config, self', inputs', pkgs, system, ... }:
|
|
let
|
|
test-x = pkgs.writeShellApplication {
|
|
name = "test-x";
|
|
runtimeInputs = [ pkgs.xorg.xorgserver ];
|
|
|
|
text = ''
|
|
${pkgs.xorg.xorgserver.out}/bin/Xephyr -br -ac -noreset -screen 800x600 :1
|
|
'';
|
|
};
|
|
|
|
app = pkgs.callPackage ./nix/fg42 {
|
|
inherit nixpkgs;
|
|
extraPackages = {
|
|
noether = inputs.noether.outputs.packages.${system}.default;
|
|
};
|
|
};
|
|
|
|
fg42 = app.drv;
|
|
|
|
run-test-wm = pkgs.writeShellApplication {
|
|
name = "run-test-wm";
|
|
runtimeInputs = [ fg42 ];
|
|
|
|
text = ''
|
|
DISPLAY=:1 ${fg42}/bin/fg42-wm
|
|
'';
|
|
};
|
|
|
|
in
|
|
{
|
|
packages = app.emacsPkgs // {
|
|
default = fg42;
|
|
wm = fg42;
|
|
};
|
|
|
|
devShells.default = pkgs.mkShell {
|
|
nativeBuildInputs = [ fg42 pkgs.fish test-x run-test-wm ];
|
|
buildInputs = [ fg42 ];
|
|
};
|
|
|
|
apps.wm = {
|
|
type = "app";
|
|
program = "${run-test-wm}/bin/run-test-wm";
|
|
};
|
|
|
|
apps.x = {
|
|
type = "app";
|
|
program = "${test-x}/bin/test-x";
|
|
};
|
|
|
|
apps.default = {
|
|
type = "app";
|
|
program = "${fg42}/bin/fg42";
|
|
};
|
|
|
|
};
|
|
};
|
|
}
|