3 Commits

Author SHA1 Message Date
f6ba21e4d8 -repl-flakes, fix:homeConfiguration module 2024-11-25 09:48:26 +01:00
6c720bdac6 video13 2024-10-10 14:52:28 +02:00
6139657197 video12 2024-10-05 06:46:12 +02:00
9 changed files with 123 additions and 8 deletions

View File

@ -53,6 +53,7 @@
packages = packages =
forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system}); forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system});
overlays = import ./overlays {inherit inputs;}; overlays = import ./overlays {inherit inputs;};
homeManagerModules = import ./modules/home-manager;
nixosConfigurations = { nixosConfigurations = {
m3-kratos-vm = nixpkgs.lib.nixosSystem { m3-kratos-vm = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs outputs;}; specialArgs = {inherit inputs outputs;};
@ -67,7 +68,7 @@
"m3tam3re@m3-kratos-vm" = home-manager.lib.homeManagerConfiguration { "m3tam3re@m3-kratos-vm" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages."x86_64-linux"; pkgs = nixpkgs.legacyPackages."x86_64-linux";
extraSpecialArgs = {inherit inputs outputs;}; extraSpecialArgs = {inherit inputs outputs;};
modules = [./home/m3tam3re/m3tam3re.nix]; modules = [./home/m3tam3re/m3-kratos.nix];
}; };
}; };
}; };

View File

@ -1,4 +1,11 @@
{ config, lib, outputs, pkgs, ... }: { {
config,
lib,
outputs,
pkgs,
...
}: {
imports = builtins.attrValues outputs.homeManagerModules;
nixpkgs = { nixpkgs = {
# You can add overlays here # You can add overlays here
overlays = [ overlays = [
@ -29,7 +36,7 @@
nix = { nix = {
package = lib.mkDefault pkgs.nix; package = lib.mkDefault pkgs.nix;
settings = { settings = {
experimental-features = [ "nix-command" "flakes" "repl-flake" ]; experimental-features = ["nix-command" "flakes"];
warn-dirty = false; warn-dirty = false;
}; };
}; };

View File

@ -22,6 +22,7 @@
home.packages = with pkgs; [ home.packages = with pkgs; [
coreutils coreutils
fd fd
gcc
htop htop
httpie httpie
jq jq

View File

@ -80,4 +80,27 @@
# Let Home Manager install and manage itself. # Let Home Manager install and manage itself.
programs.home-manager.enable = true; programs.home-manager.enable = true;
programs.zellij-ps = {
enable = true;
projectFolders = [
"${config.home.homeDirectory}/.config"
"${config.home.homeDirectory}"
];
layout = ''
layout {
pane size=1 borderless=true {
plugin location="zellij:tab-bar"
}
pane size="70%" command="nvim"
pane split_direction="vertical" {
pane
pane command="unimatrix"
}
pane size=1 borderless=true {
plugin location="zellij:status-bar"
}
}
'';
};
} }

View File

@ -0,0 +1,3 @@
{
zellij-ps = import ./zellij-ps.nix;
}

View File

@ -0,0 +1,44 @@
{
config,
lib,
pkgs,
...
}:
with lib; let
cfg = config.programs.zellij-ps;
in {
options = {
programs.zellij-ps = {
enable = mkEnableOption "Zellij Project Selector";
projectFolders = lib.mkOption {
type = lib.types.listOf lib.types.path;
description = "List of project folders for zellij-ps.";
default = ["${config.home.homeDirectory}/projects"];
};
layout = lib.mkOption {
type = lib.types.str;
description = "Layout for zellij";
default = ''
layout {
pane size=1 borderless=true {
plugin location="zellij:tab-bar"
}
pane
pane split_direction="vertical" {
pane
pane command="htop"
}
pane size=2 borderless=true {
plugin location="zellij:status-bar"
}
}
'';
};
};
};
config = mkIf cfg.enable {
home.packages = [pkgs.zellij-ps];
home.sessionVariables.PROJECT_FOLDERS = lib.concatStringsSep ":" cfg.projectFolders;
home.file.".config/zellij/layouts/zellij-ps.kdl".text = cfg.layout;
};
}

View File

@ -1,5 +1,4 @@
{ pkgs, ... }: {pkgs, ...}: {
{
# Define your custom packages here # Define your custom packages here
# my-package = pkgs.callPackage ./my-package {}; zellij-ps = pkgs.callPackage ./zellij-ps {};
} }

View File

@ -1,2 +0,0 @@
# Your custom nix-package
# ...

View File

@ -0,0 +1,39 @@
{
lib,
fish,
fd,
fzf,
makeWrapper,
zellij,
fetchFromGitea,
stdenv,
}:
stdenv.mkDerivation {
pname = "zellij-ps";
version = "0.1.0";
src = fetchFromGitea {
domain = "code.m3tam3re.com";
owner = "m3tam3re";
repo = "helper-scripts";
rev = "08a3217b83391c1110545c1ee3161eecd5dbe5e9";
sha256 = "1sc4i58mwcg3qsq0wwl5rvk08ykbxc497bq7mrxiirndsarskby7";
};
buildInputs = [];
nativeBuildInputs = [makeWrapper];
installPhase = ''
mkdir -p $out/bin
cp zellij-ps.fish $out/bin/zellij-ps
wrapProgram $out/bin/zellij-ps \
--prefix PATH : ${lib.makeBinPath [fish fd fzf zellij]}
'';
meta = with lib; {
description = "A small project script for zellij";
homepage = "https://code.m3tam3re.com/m3tam3re/helper-scripts";
license = licenses.mit;
maintainers = with maintainers; [m3tam3re];
platforms = platforms.unix;
};
}