1
0
Fork 0
mirror of https://github.com/nix-community/home-manager.git synced 2025-03-31 04:04:32 +00:00
This commit is contained in:
Kyure_A 2025-03-30 09:32:46 -05:00 committed by GitHub
commit 4cc08004b7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 124 additions and 0 deletions

View file

@ -672,6 +672,12 @@
github = "zorrobert";
githubId = 118135271;
};
Kyure-A = {
name = "Kyure_A";
email = "k@kyre.moe";
github = "Kyure-A";
githubId = 49436968;
};
joygnu = {
name = "joygnu";
email = "contact@joygnu.org";

View file

@ -239,6 +239,7 @@ let
./programs/senpai.nix
./programs/sesh.nix
./programs/sftpman.nix
./programs/sheldon.nix
./programs/sioyek.nix
./programs/skim.nix
./programs/sm64ex.nix

View file

@ -0,0 +1,82 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.programs.sheldon;
tomlFormat = pkgs.formats.toml { };
sheldonCmd = "${config.home.profileDirectory}/bin/sheldon";
in {
meta.maintainers = with maintainers; [ Kyure-A mainrs ];
options.programs.sheldon = {
enable = mkEnableOption "sheldon";
package = mkOption {
type = types.package;
default = pkgs.sheldon;
defaultText = literalExpression "pkgs.sheldon";
description = "The package to use for the sheldon binary.";
};
settings = mkOption {
inherit (tomlFormat) type;
default = { };
description = "";
example = literalExpression "";
};
enableZshCompletions = mkEnableOption "Zsh completions" // {
default = true;
};
enableBashCompletions = mkEnableOption "Bash completions" // {
default = true;
};
enableFishCompletions = mkEnableOption "Fish completions" // {
default = true;
};
};
config = mkIf cfg.enable {
home.packages = [ cfg.package ];
xdg.configFile."sheldon/plugins.toml" = mkIf (cfg.settings != { }) {
source = tomlFormat.generate "sheldon-config" cfg.settings;
};
programs.bash.initExtra = ''
${optionalString (cfg.settings != { }) ''
eval "$(sheldon source)"
''}
${optionalString cfg.enableBashCompletions ''
if [[ $TERM != "dumb" ]]; then
eval "$(${sheldonCmd} completions --shell=bash)"
fi
''}
'';
programs.zsh.initExtra = ''
${optionalString (cfg.settings != { }) ''
eval "$(sheldon source)"
''}
${optionalString cfg.enableZshCompletions ''
if [[ $TERM != "dumb" ]]; then
eval "$(${sheldonCmd} completions --shell=zsh)"
fi
''}
'';
programs.fish.interactiveShellInit = ''
${optionalString (cfg.settings != { }) ''
eval "$(sheldon source)"
''}
${optionalString cfg.enableFishCompletions ''
if test "$TERM" != "dumb"
eval "$(${sheldonCmd} completions --shell=fish)"
end
''}
'';
};
}

View file

@ -388,6 +388,7 @@ in import nmtSrc {
./modules/programs/senpai
./modules/programs/sesh
./modules/programs/sftpman
./modules/programs/sheldon
./modules/programs/sioyek
./modules/programs/sm64ex
./modules/programs/spotify-player

View file

@ -0,0 +1,27 @@
{
config = {
programs.sheldon = {
enable = true;
settings = {
shell = "zsh";
plugins = {
zsh-syntax-highlighting = {
github = "zsh-users/zsh-syntax-highlighting";
apply = [ "defer" ];
};
};
templates = {
defer = ''
{{ hooks | get: "pre" | nl }}{% for file in files %}zsh-defer source "{{ file }}"
{% endfor %}{{ hooks | get: "post" | nl }}'';
};
};
};
};
test.stubs.sheldon = { };
nmt.script = "assertFileContent home-files/.config/sheldon/plugins.toml ${
./plugins.toml
}";
}

View file

@ -0,0 +1,7 @@
shell = "zsh"
[plugins.zsh-syntax-highlighting]
apply = ["defer"]
github = "zsh-users/zsh-syntax-highlighting"
[templates]
defer = "{{ hooks | get: \"pre\" | nl }}{% for file in files %}zsh-defer source \"{{ file }}\"\n{% endfor %}{{ hooks | get: \"post\" | nl }}"