Compare commits

...

1 Commits

Author SHA1 Message Date
jolheiser b08df470b6
feat: omp->nix
Signed-off-by: jolheiser <git@jolheiser.com>
2024-10-22 22:47:17 -05:00
2 changed files with 145 additions and 98 deletions

View File

@ -1,8 +1,150 @@
{ pkgs, ... }:
let
script = pkgs.writeShellApplication {
name = "jj-prompt";
runtimeInputs = [ pkgs.jj ];
text =
let
bookmarkMax = 10;
tagMax = 10;
descriptionMax = 24;
in
''
jj log -r@ -n1 --ignore-working-copy --no-graph --color always -T '
separate(" ",
bookmarks.map(|x| if(
x.name().substr(0, ${builtins.toString bookmarkMax}).starts_with(x.name()),
x.name().substr(0, ${builtins.toString bookmarkMax}),
x.name().substr(0, ${builtins.toString (bookmarkMax - 1)}) ++ "")
).join(" "),
tags.map(|x| if(
x.name().substr(0, ${builtins.toString tagMax}).starts_with(x.name()),
x.name().substr(0, ${builtins.toString tagMax}),
x.name().substr(0, ${builtins.toString (tagMax - 1)}) ++ "")
).join(" "),
surround("\"","\"",
if(
description.first_line().substr(0, ${builtins.toString descriptionMax}).starts_with(description.first_line()),
description.first_line().substr(0, ${builtins.toString descriptionMax}),
description.first_line().substr(0, ${builtins.toString (descriptionMax - 1)}) ++ ""
)
),
change_id.shortest(),
commit_id.shortest(),
if(empty, "(empty)"),
if(conflict, "(conflict)"),
if(divergent, "(divergent)"),
if(hidden, "(hidden)"),
)
'
'';
};
in
{ {
programs.oh-my-posh = { programs.oh-my-posh = {
enable = true; enable = true;
settings = builtins.fromJSON ( settings = {
builtins.unsafeDiscardStringContext (builtins.readFile ./ohmyposh/config.json) "$schema" = "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json";
); blocks = [
{
alignment = "left";
segments = [
{
background = "p:lavender";
foreground = "p:black";
leading_diamond = "ue0b6";
properties = {
display_host = false;
};
style = "diamond";
template = " {{ if .SSHSession }}U000f0318 {{ end }}{{ if .Env.IN_NIX_SHELL }}U000f1105 {{ end }}{{ .UserName }}@{{ .HostName }} ";
trailing_diamond = "ue0b0";
type = "session";
}
{
background = "p:orange";
foreground = "p:black";
powerline_symbol = "ue0b0";
properties = {
home_icon = "~";
style = "folder";
};
style = "powerline";
template = " ue613 {{ path .Path .Location }} ";
type = "path";
}
{
background = "p:green";
background_templates = [
"{{ if or (.Working.Changed) (.Staging.Changed) }}p:yellow{{ end }}"
"{{ if and (gt .Ahead 0) (gt .Behind 0) }}p:red{{ end }}"
"{{ if gt .Ahead 0 }}#49416D{{ end }}"
"{{ if gt .Behind 0 }}#7A306C{{ end }}"
];
foreground = "p:black";
foreground_templates = [
"{{ if or (.Working.Changed) (.Staging.Changed) }}p:black{{ end }}"
"{{ if and (gt .Ahead 0) (gt .Behind 0) }}p:white{{ end }}"
"{{ if gt .Ahead 0 }}p:white{{ end }}"
];
powerline_symbol = "ue0b0";
properties = {
branch_max_length = 25;
fetch_status = true;
fetch_upstream_icon = true;
git_icon = "ue702";
github_icon = "uf408";
upstream_icons = {
"codeberg.org" = "ue2a6";
"git.jojodev.com" = "U000f0d9e";
"gitea.com" = "U000f0d9e";
};
};
style = "powerline";
template = "{{ if not (glob \".jj\")}} {{ if .UpstreamURL }}{{ url .UpstreamIcon .UpstreamURL }} {{ end }}{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }} uf044 {{ .Working.String }}{{ end }}{{ if .Staging.Changed }} uf046 {{ .Staging.String }}{{ end }} {{ end }}";
type = "git";
}
{
background = "p:green";
foreground = "p:black";
powerline_symbol = "ue0b0";
properties = {
inherit script;
};
style = "powerline";
template = "{{ if (glob \".jj\")}} {{ .Output }} {{ end }}";
type = "command";
}
{
background = "p:blue";
background_templates = [ "{{ if gt .Code 0 }}p:red{{ end }}" ];
foreground = "p:black";
leading_diamond = "<transparent,background>ue0b0</>";
properties = {
always_enabled = true;
};
style = "diamond";
template = " {{ if gt .Code 0 }}uf00d{{ else }}uf00c{{ end }} ";
trailing_diamond = "ue0b4";
type = "exit";
}
];
type = "prompt";
}
];
console_title_template = "{{ .Folder }}";
final_space = true;
palette = {
black = "#1E1E1E";
blue = "#89B4FA";
green = "#A6E3A1";
lavender = "#B4BEFE";
orange = "#FAB387";
red = "#F38BA8";
white = "#CDD6F4";
yellow = "#F9E2AF";
};
version = 2;
};
}; };
} }

View File

@ -1,95 +0,0 @@
{
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
"blocks": [
{
"alignment": "left",
"segments": [
{
"background": "p:lavender",
"foreground": "p:black",
"leading_diamond": "\ue0b6",
"properties": {
"display_host": false
},
"style": "diamond",
"template": " {{ if .SSHSession }}\udb80\udf18 {{ end }}{{ if .Env.IN_NIX_SHELL }}\udb84\udd05 {{ end }}{{ .UserName }}@{{ .HostName }} ",
"trailing_diamond": "\ue0b0",
"type": "session"
},
{
"background": "p:orange",
"foreground": "p:black",
"powerline_symbol": "\ue0b0",
"properties": {
"home_icon": "~",
"style": "folder"
},
"style": "powerline",
"template": " \ue613 {{ path .Path .Location }} ",
"type": "path"
},
{
"background": "p:green",
"background_templates": [
"{{ if or (.Working.Changed) (.Staging.Changed) }}p:yellow{{ end }}",
"{{ if and (gt .Ahead 0) (gt .Behind 0) }}p:red{{ end }}",
"{{ if gt .Ahead 0 }}#49416D{{ end }}",
"{{ if gt .Behind 0 }}#7A306C{{ end }}"
],
"foreground": "p:black",
"foreground_templates": [
"{{ if or (.Working.Changed) (.Staging.Changed) }}p:black{{ end }}",
"{{ if and (gt .Ahead 0) (gt .Behind 0) }}p:white{{ end }}",
"{{ if gt .Ahead 0 }}p:white{{ end }}"
],
"powerline_symbol": "\ue0b0",
"properties": {
"branch_max_length": 25,
"fetch_status": true,
"fetch_upstream_icon": true,
"github_icon": "\uf408",
"git_icon": "\ue702",
"upstream_icons": {
"gitea.com": "\udb83\udd9e",
"git.jojodev.com": "\udb83\udd9e",
"codeberg.org": "\ue2a6"
}
},
"style": "powerline",
"template": "{{ if not (glob \".jj\")}} {{ if .UpstreamURL }}{{ url .UpstreamIcon .UpstreamURL }} {{ end }}{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }} \uf044 {{ .Working.String }}{{ end }}{{ if .Staging.Changed }} \uf046 {{ .Staging.String }}{{ end }} {{ end }}",
"type": "git"
},
{
"background": "p:blue",
"background_templates": [
"{{ if gt .Code 0 }}p:red{{ end }}"
],
"foreground": "p:black",
"leading_diamond": "<transparent,background>\ue0b0</>",
"properties": {
"always_enabled": true
},
"style": "diamond",
"template": " {{ if gt .Code 0 }}\uf00d{{ else }}\uf00c{{ end }} ",
"trailing_diamond": "\ue0b4",
"type": "exit"
}
],
"type": "prompt"
}
],
"console_title_template": "{{ .Folder }}",
"final_space": true,
"palette": {
"black": "#1E1E1E",
"blue": "#89B4FA",
"green": "#A6E3A1",
"orange": "#FAB387",
"red": "#F38BA8",
"white": "#CDD6F4",
"yellow": "#F9E2AF",
"lavender": "#B4BEFE"
},
"version": 2
}