232 lines
6.5 KiB
Nix
232 lines
6.5 KiB
Nix
{
|
|
description = "Home Manager configuration of Joe Frikker";
|
|
|
|
inputs = {
|
|
# Specify the source of Home Manager and Nixpkgs.
|
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
|
|
|
home-manager = {
|
|
url = "github:nix-community/home-manager/master";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
# kube = {
|
|
# url = "https://gitea.home-frikker.dedyn.io/jfrikker/kube/archive/1.0.1.tar.gz";
|
|
# inputs.nixpkgs.follows = "nixpkgs";
|
|
# };
|
|
|
|
nix-index-database = {
|
|
url = "github:nix-community/nix-index-database";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
rycee = {
|
|
url = "sourcehut:~rycee/nur-expressions";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
outputs =
|
|
{
|
|
nixpkgs,
|
|
home-manager,
|
|
nix-index-database,
|
|
rycee,
|
|
...
|
|
}:
|
|
let
|
|
pkgs-for-system = (
|
|
system:
|
|
import nixpkgs {
|
|
inherit system;
|
|
config.allowUnfree = true;
|
|
}
|
|
);
|
|
modules-for-system =
|
|
pkgs:
|
|
pkgs.stdenv.mkDerivation {
|
|
name = "home-manager-modules";
|
|
src = pkgs.lib.fileset.toSource {
|
|
root = ./.;
|
|
fileset = pkgs.lib.fileset.unions [
|
|
./home.org
|
|
];
|
|
};
|
|
|
|
buildPhase = ''
|
|
runHook preBuild
|
|
${pkgs.emacs}/bin/emacs --batch --eval "(require 'org)" --eval '(org-babel-tangle-file "home.org")'
|
|
runHook postBuild
|
|
'';
|
|
installPhase = ''
|
|
runHook preInstall
|
|
cp -R target $out
|
|
runHook postInstall
|
|
'';
|
|
};
|
|
in
|
|
{
|
|
homeConfigurations.redbook =
|
|
let
|
|
pkgs = pkgs-for-system "aarch64-darwin";
|
|
modules = modules-for-system pkgs;
|
|
in
|
|
home-manager.lib.homeManagerConfiguration {
|
|
inherit pkgs;
|
|
|
|
modules = [
|
|
nix-index-database.homeModules.default
|
|
rycee.hmModules.emacs-init
|
|
"${modules}"
|
|
]
|
|
++ [
|
|
{
|
|
home.stateVersion = "22.05";
|
|
home.username = "jfrikker";
|
|
home.homeDirectory = "/Users/jfrikker";
|
|
home.packages = [ pkgs.pinentry_mac ];
|
|
jfrikker.enable = true;
|
|
jfrikker.desktop.enable = true;
|
|
jfrikker.redbook.enable = true;
|
|
}
|
|
];
|
|
};
|
|
homeConfigurations.home =
|
|
let
|
|
pkgs = pkgs-for-system "x86_64-linux";
|
|
modules = modules-for-system pkgs;
|
|
in
|
|
home-manager.lib.homeManagerConfiguration {
|
|
inherit pkgs;
|
|
|
|
modules = [
|
|
nix-index-database.homeModules.default
|
|
rycee.hmModules.emacs-init
|
|
"${modules}"
|
|
]
|
|
++ [
|
|
{
|
|
home.stateVersion = "22.05";
|
|
home.username = "jfrikker";
|
|
home.homeDirectory = "/home/jfrikker";
|
|
jfrikker.enable = true;
|
|
}
|
|
];
|
|
};
|
|
homeConfigurations.home-laptop =
|
|
let
|
|
pkgs = pkgs-for-system "x86_64-linux";
|
|
modules = modules-for-system pkgs;
|
|
in
|
|
home-manager.lib.homeManagerConfiguration {
|
|
inherit pkgs;
|
|
|
|
modules = [
|
|
nix-index-database.homeModules.default
|
|
rycee.hmModules.emacs-init
|
|
"${modules}"
|
|
]
|
|
++ [
|
|
{
|
|
home.stateVersion = "22.05";
|
|
home.username = "jfrikker";
|
|
home.homeDirectory = "/home/jfrikker";
|
|
# home.packages = [ pkgs.pinentry ];
|
|
jfrikker.enable = true;
|
|
jfrikker.desktop.enable = true;
|
|
|
|
programs.ghostty = {
|
|
enable = true;
|
|
settings = {
|
|
font-family = "Iosevka Term Extended";
|
|
font-size = 10;
|
|
};
|
|
};
|
|
|
|
programs.foot = {
|
|
enable = true;
|
|
settings = {
|
|
main = {
|
|
font = "Iosevka Term:size=10:width=expanded";
|
|
};
|
|
};
|
|
};
|
|
|
|
home.pointerCursor = {
|
|
enable = true;
|
|
package = pkgs.vanilla-dmz;
|
|
name = "Vanilla-DMZ";
|
|
sway.enable = true;
|
|
gtk.enable = true;
|
|
};
|
|
|
|
wayland.windowManager.sway = {
|
|
enable = true;
|
|
config.modifier = "Mod4";
|
|
# config.terminal = "${pkgs.ghostty}/bin/ghostty";
|
|
config.input = {
|
|
"1452:628:bcm5974" = {
|
|
scroll_factor = "0.4";
|
|
};
|
|
};
|
|
};
|
|
|
|
programs.emacs.package = pkgs.emacs-pgtk;
|
|
}
|
|
];
|
|
|
|
# extraSpecialArgs = { kube = kube.packages.x86_64-linux.default; };
|
|
};
|
|
homeConfigurations.msi-laptop =
|
|
let pkgs = import nixpkgs { system = "x86_64-linux"; config.allowUnfree = true; };
|
|
modules = modules-for-system pkgs;
|
|
in home-manager.lib.homeManagerConfiguration {
|
|
inherit pkgs;
|
|
|
|
modules =
|
|
[
|
|
nix-index-database.homeModules.default
|
|
rycee.hmModules.emacs-init
|
|
"${modules}"
|
|
] ++
|
|
[{
|
|
home.stateVersion = "22.05";
|
|
home.username = "jfrikker";
|
|
home.homeDirectory = "/home/jfrikker";
|
|
jfrikker.enable = true;
|
|
jfrikker.desktop.enable = true;
|
|
|
|
home.packages = [ pkgs.protonmail-desktop pkgs.proton-vpn ];
|
|
|
|
programs.ghostty = {
|
|
enable = true;
|
|
settings = {
|
|
font-family = "Iosevka Term Extended";
|
|
font-size = 10;
|
|
};
|
|
};
|
|
|
|
programs.foot = {
|
|
enable = true;
|
|
settings = {
|
|
main = {
|
|
font = "Iosevka Term:size=10:width=expanded";
|
|
};
|
|
};
|
|
};
|
|
|
|
home.pointerCursor = {
|
|
enable = true;
|
|
package = pkgs.vanilla-dmz;
|
|
name = "Vanilla-DMZ";
|
|
sway.enable = true;
|
|
gtk.enable = true;
|
|
};
|
|
|
|
programs.emacs.package = pkgs.emacs-pgtk;
|
|
}];
|
|
};
|
|
packages.x86_64-linux.default = modules-for-system nixpkgs.legacyPackages.x86_64-linux;
|
|
packages.aarch64-darwin.default = modules-for-system nixpkgs.legacyPackages.aarch64-darwin;
|
|
};
|
|
}
|