Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles
This commit is contained in:
@@ -73,7 +73,7 @@ def get_ongoing_or_next_event(url, username, password):
|
||||
return next_event_dict
|
||||
|
||||
except Exception as e:
|
||||
print(f"Error accessing {url}: {e}")
|
||||
print(f"Error accessing {url}: {str(e)[:30]}...")
|
||||
return None
|
||||
|
||||
def is_expired(event_dict: dict):
|
||||
@@ -120,7 +120,7 @@ if __name__ == "__main__":
|
||||
else:
|
||||
time_string = "in " + hour_string + "and " + minu_string
|
||||
|
||||
print(f"{event_dict['event_name']} {action_string} {time_string}")
|
||||
print(f"\'{event_dict['event_name']}\' {action_string} {time_string}")
|
||||
'')
|
||||
];
|
||||
}
|
||||
|
||||
@@ -425,8 +425,8 @@
|
||||
"theme.bar.menus.menu.notifications.label" = accent.base;
|
||||
"theme.bar.menus.menu.notifications.no_notifications_label" = accent.base;
|
||||
"theme.bar.menus.menu.notifications.pager.background" = background;
|
||||
"theme.bar.menus.menu.notifications.pager.button" = accent.dark;
|
||||
"theme.bar.menus.menu.notifications.pager.label" = accent.base;
|
||||
"theme.bar.menus.menu.notifications.pager.button" = accent.base;
|
||||
"theme.bar.menus.menu.notifications.pager.label" = accent.bright;
|
||||
"theme.bar.menus.menu.notifications.scrollbar.color" = accent.base;
|
||||
"theme.bar.menus.menu.notifications.switch.disabled" = accent.base;
|
||||
"theme.bar.menus.menu.notifications.switch_divider" = accent.base;
|
||||
@@ -492,12 +492,12 @@
|
||||
"theme.notification.actions.background" = background;
|
||||
"theme.notification.actions.text" = foreground;
|
||||
"theme.notification.background" = background;
|
||||
"theme.notification.border" = accent.base;
|
||||
"theme.notification.border" = border;
|
||||
"theme.notification.close_button.background" = accent.dark;
|
||||
"theme.notification.close_button.label" = accent.base;
|
||||
"theme.notification.label" = accent.base;
|
||||
"theme.notification.label" = accent.bright;
|
||||
"theme.notification.labelicon" = accent.base;
|
||||
"theme.notification.opacity" = 1.0;
|
||||
"theme.notification.opacity" = 100;
|
||||
"theme.notification.text" = foreground;
|
||||
"theme.notification.time" = accent.base;
|
||||
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
{ ... }:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs.bash = {
|
||||
programs.bash = let
|
||||
init = /* bash */ ''
|
||||
source $HOME/.nix-profile/etc/profile.d/hm-session-vars.sh
|
||||
'';
|
||||
in {
|
||||
enable = true;
|
||||
shellAliases = {
|
||||
ll = "ls -l";
|
||||
@@ -15,5 +19,10 @@
|
||||
"checkjobs"
|
||||
];
|
||||
enableCompletion = false;
|
||||
};
|
||||
|
||||
} // pkgs.lib.mkIf (pkgs.version != "24.05") {
|
||||
shellInit = init;
|
||||
} // pkgs.lib.mkIf (pkgs.version != "25.05") {
|
||||
profileExtra = init;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -33,20 +33,13 @@
|
||||
read-only = true;
|
||||
type = "ics";
|
||||
}
|
||||
{
|
||||
name = "LEC";
|
||||
url = "https://${domain}/lec.ics";
|
||||
color = "#A87000";
|
||||
read-only = true;
|
||||
type = "ics";
|
||||
}
|
||||
{
|
||||
name = "LR";
|
||||
url = "https://${domain}/lr.ics";
|
||||
color = "#005040";
|
||||
read-only = true;
|
||||
type = "ics";
|
||||
}
|
||||
# {
|
||||
# name = "LEC";
|
||||
# url = "https://${domain}/lec.ics";
|
||||
# color = "#A87000";
|
||||
# read-only = true;
|
||||
# type = "ics";
|
||||
# }
|
||||
{
|
||||
name = "Feiertage Hessen";
|
||||
url = "https://ics.tools/Feiertage/hessen.ics";
|
||||
@@ -54,13 +47,6 @@
|
||||
read-only = true;
|
||||
type = "ics";
|
||||
}
|
||||
# {
|
||||
# name = "Handball Männer";
|
||||
# url = "http://i.cal.to/ical/108/dhb/handball-nationalmannschaft/c687e97f.bc7c3eb6-11a0e356.ics";
|
||||
# color = "#880023";
|
||||
# read-only = true;
|
||||
# type = "ics";
|
||||
# }
|
||||
];
|
||||
default_set = {
|
||||
# name =
|
||||
|
||||
@@ -25,6 +25,8 @@
|
||||
</div>
|
||||
</div>
|
||||
'';
|
||||
rgb = rice.lib.hex-to-rgb-comma-string;
|
||||
s = builtins.toString;
|
||||
in /* html */ ''
|
||||
<!DOCTYPE html>
|
||||
<head>
|
||||
@@ -38,27 +40,26 @@
|
||||
padding: 0px;
|
||||
}
|
||||
html {
|
||||
background: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency});
|
||||
padding: auto;
|
||||
background: transparent;
|
||||
}
|
||||
body {
|
||||
font-family: ${rice.font.base.name};
|
||||
color: ${foreground};
|
||||
width: fit-content;
|
||||
margin: 10px auto 10px auto;
|
||||
background: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency});
|
||||
border: ${builtins.toString rice.border-width}px solid ${border};
|
||||
border-radius: ${builtins.toString rice.rounding}px;
|
||||
padding: ${builtins.toString rice.gap-size}px;
|
||||
background: rgba(${rgb background},${s rice.transparency});
|
||||
border: ${s rice.border-width}px solid ${border};
|
||||
border-radius: ${s rice.rounding}px;
|
||||
padding: ${s rice.gap-size}px;
|
||||
}
|
||||
h1 {
|
||||
margin: ${builtins.toString rice.gap-size}px;
|
||||
margin: ${s rice.gap-size}px;
|
||||
}
|
||||
.color-container {
|
||||
font-family: ${rice.font.code.name};
|
||||
display: flex;
|
||||
gap: ${builtins.toString rice.gap-size}px;
|
||||
margin: ${builtins.toString rice.gap-size}px;
|
||||
gap: ${s rice.gap-size}px;
|
||||
margin: ${s rice.gap-size}px;
|
||||
}
|
||||
.color-box {
|
||||
width: 200px;
|
||||
@@ -66,7 +67,7 @@
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
border-radius: ${builtins.toString rice.rounding}px;
|
||||
border-radius: ${s rice.rounding}px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
fish
|
||||
any-nix-shell
|
||||
|
||||
(writeShellScriptBin "nxfetch" /* bash */ ''
|
||||
@@ -26,11 +25,11 @@
|
||||
$(echo -e "$logo" | sed -n 4p): ''${XDG_CURRENT_DESKTOP^}
|
||||
$(echo -e "$logo" | sed -n 5p): ''${TERM^}
|
||||
$(echo -e "$logo" | sed -n 6p): $(bash --version | head --lines 1 | cut -f -4 -d' ' | sed -E 's-(.*?), version (.*?)\(.*-\1 \2-g')
|
||||
$(echo -e "$logo" | sed -n 7p): fish $(fish --version | rev | cut -f 1 -d' ' | rev | sed 's/./\U&/')
|
||||
$(echo -e "$logo" | sed -n 7p): fish $(fish --version | rev | cut -f 1 -d' ' | rev | sed 's/./\&/')
|
||||
$(echo -e "$logo" | sed -n 8p): ''$(uname -r | sed -E 's=(.+-.+-.+-.+)-.+=\1=g')
|
||||
$(echo -e "$logo" | sed -n 9p): $($EDITOR --version | head -n 1 | sed -E 's-(.+?) \(.*-\1-g' | sed 's/./\U&/')
|
||||
$(echo -e "$logo" | sed -n 9p): $($EDITOR --version | head -n 1 | sed -E 's-(.+?) \(.*-\1-g' | awk '{print toupper(substr($0,1,1)) substr($0,2)}')
|
||||
$(echo -e "$logo" | sed -n 10p): $(yazi --version | sed -E 's-(.*?) \(.*-\1-g')
|
||||
$(echo -e "$logo" | sed -n 11p): $(starship --version | head -n 1 | sed 's/./\U&/')
|
||||
$(echo -e "$logo" | sed -n 11p): $(starship --version | head -n 1 | awk '{print toupper(substr($0,1,1)) substr($0,2)}')
|
||||
"
|
||||
echo -e "$msg"
|
||||
'')
|
||||
@@ -40,6 +39,7 @@
|
||||
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
package = pkgs.fish;
|
||||
shellAliases = let
|
||||
base-eza = "eza --icons --git --smart-group --group-directories-first";
|
||||
in {
|
||||
@@ -87,6 +87,7 @@
|
||||
d = "docker";
|
||||
dcmp = "docker compose";
|
||||
stui = "sudo systemctl-tui";
|
||||
wlc = "wl-copy";
|
||||
# nxsent = ''sent -c \${rice.color.foreground} -b \${rice.color.background}'';
|
||||
|
||||
# ya = "yazi"; # function
|
||||
@@ -114,7 +115,7 @@
|
||||
'';
|
||||
nx_backup = let
|
||||
destination = if hyper.host == "NxNORTH" then "${hyper.home}/shared/" else "${hyper.home}/backups/";
|
||||
in pkgs.lib.mkIf (hyper.host != "NxACE" && hyper.host != "NxDCS") ''
|
||||
in pkgs.lib.mkIf (hyper.host == "NxXPS" || hyper.host == "NxNORTH") ''
|
||||
set RPATH (curl -s https://${hyper.domain}/latest-backup)
|
||||
rsync -avz --info=progress2 -e "ssh -p ${builtins.toString secrets.ssh.port}" ${hyper.user}@ssh.${hyper.domain}:"$RPATH" ${destination}
|
||||
'';
|
||||
|
||||
@@ -1,20 +1,19 @@
|
||||
{ pkgs, ... }@all: with all;
|
||||
lib.mkIf (hyper.host == "NxNORTH")
|
||||
{
|
||||
{ pkgs, ... }@all: with all; {
|
||||
home = {
|
||||
packages = (with pkgs.unstable; [
|
||||
protonup
|
||||
mangohud
|
||||
|
||||
prismlauncher
|
||||
|
||||
# heroic
|
||||
|
||||
packages = (with pkgs; [
|
||||
unstable.protonup-ng
|
||||
unstable.mangohud
|
||||
]) ++ (if hyper.host == "NxNORTH" then (with pkgs; [
|
||||
unstable.prismlauncher
|
||||
heroic
|
||||
# mindustry-wayland
|
||||
]) ++ [ pkgs.heroic ];
|
||||
sessionVariables = {
|
||||
STEAM_EXTRA_COMPAT_TOOLS_PATHS = "\${HOME}/.steam/root/compatibilitytools.d";
|
||||
};
|
||||
]) else if hyper.host == "NxXPS" then (with pkgs; [
|
||||
heroic
|
||||
]) else if hyper.host == "NxACE" then (with pkgs; [
|
||||
heroic
|
||||
]) else []);
|
||||
|
||||
sessionVariables.STEAM_EXTRA_COMPAT_TOOLS_PATHS = "\${HOME}/.steam/root/compatibilitytools.d";
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -39,10 +39,6 @@
|
||||
enableFishIntegration = true;
|
||||
defaultCacheTtlSsh = min2sec 60;
|
||||
defaultCacheTtl = min2sec 30;
|
||||
pinentry = {
|
||||
package = pkgs.pinentry;
|
||||
program = "pinentry";
|
||||
};
|
||||
extraConfig = ''
|
||||
allow-loopback-pinentry
|
||||
'';
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
{ pkgs, ... }@all: with all; {
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
# nixfmt-classic # nix formater
|
||||
@@ -205,18 +204,18 @@
|
||||
language = [
|
||||
{
|
||||
name = "nix";
|
||||
language-servers = [
|
||||
"nixd"
|
||||
# "llm"
|
||||
];
|
||||
language-servers = [ "nixd" ];
|
||||
}
|
||||
{
|
||||
name = "latex";
|
||||
language-servers = [ "texlab" "language-tool" ];
|
||||
}
|
||||
{
|
||||
name = "typst";
|
||||
language-servers = [ "language-tool" "tinymist" ];
|
||||
}
|
||||
{
|
||||
name = "markdown";
|
||||
# language-servers = [ "marksman" "style-check" "language-tool" ];
|
||||
language-servers = [ "language-tool" "marksman" ];
|
||||
file-types = [ "md" "MD" ];
|
||||
scope = "text.<name>";
|
||||
@@ -436,8 +435,8 @@
|
||||
fg = black.bright;
|
||||
};
|
||||
"ui.virtual.inlay-hint" = {
|
||||
fg = background;
|
||||
bg = tertiary.dark;
|
||||
fg = subtle.base;
|
||||
bg = subtle.dark;
|
||||
};
|
||||
"ui.virtual.ruler" = {
|
||||
bg = background;
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
monitors = {
|
||||
xps = {
|
||||
main = { name = "eDP-1"; resolution = "1920x1200"; position = "1920x1080"; scale = "1.0"; };
|
||||
# main = { name = "eDP-1"; resolution = "1920x1080"; position = "1920x1080"; scale = "1.0"; };
|
||||
second = { name = "desc:Sony SONY TV 0x01010101"; resolution = "1920x1080"; position = "1920x0"; scale = "1.0"; };
|
||||
third = { name = "DP-6"; resolution = "1920x1080"; position = "0x0"; scale = "1.0"; };
|
||||
};
|
||||
@@ -41,7 +42,7 @@ in {
|
||||
# inputs.hyprland-plugins.packages.${pkgs.system}.hyprexpo
|
||||
# inputs.hyprfocus.packages.${pkgs.system}.hyprfocus
|
||||
# inputs.hycov.packages.${pkgs.system}.hycov
|
||||
pkgs.hyprlandPlugins.hyprspace
|
||||
# pkgs.hyprlandPlugins.hyprspace
|
||||
# inputs.hyprspace.packages.${pkgs.system}.Hyprspace
|
||||
];
|
||||
|
||||
@@ -51,6 +52,7 @@ in {
|
||||
"${main.name}, ${main.resolution}, ${main.position}, ${main.scale}"
|
||||
"${second.name}, ${second.resolution}, ${second.position}, ${second.scale}"
|
||||
"${third.name}, ${third.resolution}, ${third.position}, ${third.scale}"
|
||||
" ,preferred, auto, 1, mirror, eDP-1"
|
||||
]) else (if hyper.host == "NxNORTH" then (with monitors.north; [
|
||||
"${main.name}, ${main.resolution}, ${main.position}, ${main.scale}"
|
||||
"${left.name}, ${left.resolution}, ${left.position}, ${left.scale}"
|
||||
@@ -161,8 +163,8 @@ in {
|
||||
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = "10";
|
||||
passes = "2";
|
||||
size = "2";
|
||||
passes = "4";
|
||||
xray = false;
|
||||
vibrancy = 0.5;
|
||||
ignore_opacity = true;
|
||||
@@ -213,7 +215,7 @@ in {
|
||||
exec-once = [
|
||||
"waybar"
|
||||
"swww-daemon"
|
||||
"hyprland-autoname-workspaces"
|
||||
# "hyprland-autoname-workspaces"
|
||||
"/usr/lib/polkit-kde-authentication-agent-1 "
|
||||
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
||||
"syncthing -no-browser"
|
||||
@@ -224,7 +226,7 @@ in {
|
||||
];
|
||||
|
||||
windowrulev2 = [
|
||||
"bordercolor rgba(${rice.lib.nohash rice.color.magenta.bright}ff), pinned:1"
|
||||
"bordercolor rgba(${rice.lib.nohash rice.color.special.bright}ff), pinned:1"
|
||||
|
||||
"bordersize 0, floating:0, onworkspace:w[tv1]"
|
||||
"rounding 0, floating:0, onworkspace:w[tv1]"
|
||||
@@ -263,7 +265,6 @@ in {
|
||||
# "opacity ${transparency}, class:^(obsidian)$"
|
||||
"opacity ${transparency}, class:^(VSCodium)$"
|
||||
"opacity ${transparency}, title:^(wlogout)$"
|
||||
|
||||
"opaque, title:^(GNU Image Manipulation Program)$"
|
||||
"opaque, fullscreen:1"
|
||||
|
||||
@@ -277,6 +278,7 @@ in {
|
||||
"dimaround, title:^(terminal-file-picker)$"
|
||||
"center, title:^(terminal-file-picker)$"
|
||||
"size 80% 80%, title:^(terminal-file-picker)$"
|
||||
"size: 30% 30%, initialTitle:^(Select Calendar)$"
|
||||
];
|
||||
|
||||
|
||||
@@ -354,7 +356,7 @@ in {
|
||||
## ROW 2:
|
||||
|
||||
# "SUPER, TAB, hycov:toggleoverview"
|
||||
"SUPER, TAB, overview:toggle"
|
||||
# "SUPER, TAB, overview:toggle"
|
||||
# "SUPER, TAB, hyprexpo:expo, toggle"
|
||||
"ALT, TAB, focuscurrentorlast"
|
||||
# "SUPER, TAB, exec, hyprswitch --daemon"
|
||||
@@ -372,7 +374,7 @@ in {
|
||||
"SUPER, I, exec, ${terminal-exec}'hx ~/nix-dots/ && fish'"
|
||||
"SUPER SHIFT, I, exec, ${terminal-exec}'nh home switch || read'"
|
||||
"SUPER CTRL, I, exec, ${terminal-exec}'nh os switch || read'"
|
||||
"SUPER, O, exec, obsidian "
|
||||
# "SUPER, O, exec, obsidian "
|
||||
"SUPER, P, pin "
|
||||
# "SUPER, Ü,"
|
||||
# "SUPER, +,"
|
||||
@@ -408,7 +410,7 @@ in {
|
||||
"SUPER, C, exec, chatterino"
|
||||
"SUPER SHIFT, C, exec, hyprpicker -n -a"
|
||||
"SUPER, V, togglefloating, "
|
||||
"SUPER, B, exec, bitwarden"
|
||||
# "SUPER, B, exec, bitwarden"
|
||||
"SUPER, N, togglesplit"
|
||||
# "SUPER, M, exec, /home/nx2/scripts/meme-full-screen/meme-full-screen.sh "
|
||||
# "SUPER, comma, exec, /home/nx2/scripts/change-language.sh"
|
||||
@@ -601,7 +603,9 @@ in {
|
||||
submap = screenshot
|
||||
${action_simple { key = "W"; cmd = ''exec,hyprshot -m window''; }}
|
||||
${action_simple { key = "M"; cmd = ''exec,hyprshot -m output''; }}
|
||||
${action_simple { key = "S"; cmd = ''exec,hyprshot -m output''; }}
|
||||
${action_simple { key = "R"; cmd = ''exec,hyprshot -m region''; }}
|
||||
${action_simple { key = "A"; cmd = ''exec,hyprshot -m region''; }}
|
||||
bind = , Escape, execr, submap_indicator unset
|
||||
bind = , Escape, submap, reset
|
||||
submap = reset
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ config, pkgs, ... }@all: with all;
|
||||
{
|
||||
{ config, pkgs, ... }@all: with all; {
|
||||
home.packages = with pkgs; [ libnotify ];
|
||||
services.mako = with rice; {
|
||||
enable = if config.programs.hyprpanel.enable then false else true;
|
||||
|
||||
@@ -1,29 +1,29 @@
|
||||
{ pkgs, ... }@all: with all; {
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
opencode
|
||||
unstable.opencode
|
||||
];
|
||||
file.".config/opencode/opencode.json".text = let
|
||||
model = "qwen2.5-coder:7b";
|
||||
in builtins.toJSON {
|
||||
"$schema" = "https://opencode.ai/config.json";
|
||||
model = "ollama/${model}";
|
||||
theme = "matrix";
|
||||
provider = {
|
||||
ollama = {
|
||||
name = "Ollama (local)";
|
||||
npm = "@ai-sdk/openai-compatible";
|
||||
options = {
|
||||
baseURL = "http://localhost:11434/v1";
|
||||
};
|
||||
models = {
|
||||
"${model}" = {
|
||||
tools = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
# file.".config/opencode/opencode.json".text = let
|
||||
# model = "qwen2.5-coder:7b";
|
||||
# in builtins.toJSON {
|
||||
# "$schema" = "https://opencode.ai/config.json";
|
||||
# model = "ollama/${model}";
|
||||
# theme = "matrix";
|
||||
# provider = {
|
||||
# ollama = {
|
||||
# name = "Ollama (local)";
|
||||
# npm = "@ai-sdk/openai-compatible";
|
||||
# options = {
|
||||
# baseURL = "http://localhost:11434/v1";
|
||||
# };
|
||||
# models = {
|
||||
# "${model}" = {
|
||||
# tools = true;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -13,5 +13,6 @@
|
||||
wev
|
||||
wl-clipboard
|
||||
xclip
|
||||
wlr-randr
|
||||
];
|
||||
}
|
||||
|
||||
@@ -11,8 +11,11 @@
|
||||
xfce.thunar
|
||||
] ++ (if (hyper.host != "NxACE") then [
|
||||
signal-desktop
|
||||
unstable.code-cursor-fhs
|
||||
latest.antigravity
|
||||
obsidian
|
||||
zoom-us
|
||||
inkscape
|
||||
audacity
|
||||
] else []);
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
home.packages = with pkgs; [
|
||||
bat
|
||||
cmake
|
||||
cmatrix
|
||||
dig
|
||||
du-dust
|
||||
dysk
|
||||
@@ -33,6 +34,7 @@
|
||||
systemctl-tui
|
||||
tldr
|
||||
w3m
|
||||
which
|
||||
yt-dlp
|
||||
];
|
||||
}
|
||||
|
||||
12
home-modules/programming.nix
Normal file
12
home-modules/programming.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{ ... }: {
|
||||
imports = [
|
||||
./programming/c.nix
|
||||
./programming/gleam.nix
|
||||
./programming/glsl.nix
|
||||
./programming/go.nix
|
||||
./programming/java.nix
|
||||
./programming/js.nix
|
||||
./programming/python.nix
|
||||
./programming/rust.nix
|
||||
];
|
||||
}
|
||||
@@ -1,8 +1,7 @@
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
go
|
||||
];
|
||||
{ pkgs, ... }@all: with all; {
|
||||
programs.go = {
|
||||
enable = true;
|
||||
package = pkgs.go;
|
||||
goPath = "${config.xdg.dataHome}/go";
|
||||
};
|
||||
}
|
||||
|
||||
11
home-modules/programming/rust.nix
Normal file
11
home-modules/programming/rust.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{ pkgs, ... }@all: with all; {
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
cargo
|
||||
clippy
|
||||
rustc
|
||||
rustfmt
|
||||
rust-analyzer
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,114 +1,46 @@
|
||||
{ pkgs, ... }@all: with all;
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
rofi-wayland
|
||||
];
|
||||
home.file = let
|
||||
trdr = "${rice.lib.float-to-drune rice.transparency}";
|
||||
in with rice.color; {
|
||||
".config/rofi/config.rasi".text = ''
|
||||
configuration {
|
||||
show-icons: false;
|
||||
display-drun: "";
|
||||
disable-history: false;
|
||||
drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>] [<span weight='light' size='small'><i>({exec})</i></span>]";
|
||||
}
|
||||
|
||||
* {
|
||||
font: "${rice.font.code.name} 12";
|
||||
foreground: ${foreground};
|
||||
background-color: ${background}${trdr};
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
spacing: 0px;
|
||||
border-width: 0px;
|
||||
}
|
||||
|
||||
#window {
|
||||
background-color: ${background}${trdr};
|
||||
border: ${builtins.toString rice.border-width}px;
|
||||
border-radius: ${builtins.toString rice.rounding};
|
||||
border-color: ${border};
|
||||
}
|
||||
#mainbox {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
#message {
|
||||
border: 0px;
|
||||
}
|
||||
#textbox {
|
||||
text-color: ${foreground};
|
||||
}
|
||||
#listview {
|
||||
fixed-height: 0;
|
||||
border: 0px;
|
||||
spacing: 0px ;
|
||||
scrollbar: false;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#element {
|
||||
border: 0;
|
||||
padding: 0px;
|
||||
border-radius: ${if rice.rounding > 0 then "2" else "0"}px;
|
||||
}
|
||||
|
||||
#element.normal.normal { background-color: ${background}${trdr}; text-color: ${accent.base}; }
|
||||
#element.selected.normal { background-color: ${tertiary.base}${trdr}; text-color: ${background}; }
|
||||
#element.alternate.normal { background-color: ${background}${trdr}; text-color: ${secondary.base}; }
|
||||
|
||||
|
||||
#scrollbar {
|
||||
width: ${builtins.toString rice.border-width}px ;
|
||||
border: 0;
|
||||
handle-width: 8px ;
|
||||
padding: 0;
|
||||
}
|
||||
#sidebar {
|
||||
border: ${builtins.toString rice.border-width}px dash;
|
||||
}
|
||||
#button.selected {
|
||||
text-color: ${foreground};
|
||||
}
|
||||
#inputbar {
|
||||
spacing: 0;
|
||||
text-color: ${background};
|
||||
background-color: ${accent.base}${trdr};
|
||||
padding: 0;
|
||||
margine-bottom: 2px;
|
||||
children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
|
||||
}
|
||||
#prompt {
|
||||
spacing: 0;
|
||||
background-color: transparent;
|
||||
text-color: ${foreground};
|
||||
}
|
||||
#textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: ">";
|
||||
margin: 0px 0.3em 0em 0em ;
|
||||
text-color: ${background};
|
||||
background-color: transparent;
|
||||
}
|
||||
#case-indicator {
|
||||
spacing: 0;
|
||||
text-color: ${foreground};
|
||||
background-color: transparent;
|
||||
}
|
||||
#entry {
|
||||
spacing: 0;
|
||||
text-color: ${background};
|
||||
background-color: transparent;
|
||||
placeholder: "";
|
||||
}
|
||||
|
||||
element-text, element-icon {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
'';
|
||||
{ pkgs, ... }@all: with all; {
|
||||
home = {
|
||||
packages = with pkgs; [ rofi-wayland ];
|
||||
file = let # the home-manager module sucks
|
||||
trdr = "${rice.lib.float-to-drune rice.transparency}";
|
||||
ts = builtins.toString;
|
||||
in with rice.color; {
|
||||
".config/rofi/config.rasi".text = ''
|
||||
configuration {
|
||||
show-icons: false;
|
||||
display-drun: "";
|
||||
disable-history: false;
|
||||
}
|
||||
* {
|
||||
font: "${rice.font.code.name} 12";
|
||||
foreground: ${foreground};
|
||||
text-color: ${foreground};
|
||||
background-color: transparent;
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
spacing: 0px;
|
||||
border-width: 0px;
|
||||
}
|
||||
window {
|
||||
background-color: ${background}${trdr};
|
||||
border: ${ts rice.border-width}px;
|
||||
border-radius: ${ts rice.rounding}px;
|
||||
border-color: ${ts rice.color.border};
|
||||
}
|
||||
listview { scrollbar: false; }
|
||||
element { border-radius: ${ts rice.rounding}px; }
|
||||
element.normal.normal { background-color: ${accent.darker}; text-color: ${accent.base}; }
|
||||
element.selected.normal { background-color: ${accent.base}; text-color: ${accent.bright}; }
|
||||
element.alternate.normal { background-color: ${secondary.darker}; text-color: ${secondary.base}; }
|
||||
inputbar { children: [ prompt,textbox-prompt-colon,entry,case-indicator ]; }
|
||||
prompt { }
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: ">";
|
||||
}
|
||||
case-indicator { }
|
||||
entry { placeholder: ""; }
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -8,18 +8,18 @@
|
||||
nxace = name: {
|
||||
host = name;
|
||||
hostname = "ssh.${hyper.domain}";
|
||||
user = hyper.user;
|
||||
user = "nx2";
|
||||
port = 50022;
|
||||
identityFile = "${hyper.home}/vault/ssh/nxace-nx2-${hyper.host}";
|
||||
};
|
||||
in {
|
||||
"*" = {
|
||||
identityFile = [
|
||||
"${hyper.home}/vault/ssh/nxgit-nx2-${hyper.host}"
|
||||
"${hyper.home}/vault/ssh/github-noggynoggy-${hyper.host}"
|
||||
(pkgs.lib.mkIf (hyper.host == "NxDCS") "${hyper.home}/vault/ssh/dcsgit-lkurzweg-${hyper.host}")
|
||||
];
|
||||
};
|
||||
"*".identityFile = [
|
||||
"${hyper.home}/vault/ssh/nxgit-nx2-${hyper.host}"
|
||||
"${hyper.home}/vault/ssh/github-noggynoggy-${hyper.host}"
|
||||
"${hyper.home}/vault/ssh/tg-dm-informatik-tuda"
|
||||
(pkgs.lib.mkIf (hyper.host == "NxDCS") "${hyper.home}/vault/ssh/dcsgit-lkurzweg-${hyper.host}")
|
||||
];
|
||||
"github.com".identityFile = [ "${hyper.home}/vault/ssh/github-noggynoggy-${hyper.host}" ];
|
||||
"nxace" = nxace "nxace";
|
||||
"nxacel" = (nxace "nxacel") // { hostname = "10.0.1.1"; };
|
||||
"nxrpli" = (nxace "nxrpil") // { hostname = "10.0.1.31"; port = 22; };
|
||||
|
||||
@@ -1,39 +1,17 @@
|
||||
{ pkgs, ... }@all: with all; let
|
||||
tfc = pkgs.xdg-desktop-portal-termfilechooser;
|
||||
nox-var = (pkgs.version != "24.05");
|
||||
tfc = pkgs.unstable.xdg-desktop-portal-termfilechooser;
|
||||
in {
|
||||
home.packages = [
|
||||
pkgs.unar
|
||||
tfc
|
||||
];
|
||||
|
||||
programs.yazi = {
|
||||
enable = true;
|
||||
# package = pkgs.yazi;
|
||||
package = inputs.yazi.packages.${hyper.system}.default;
|
||||
enableFishIntegration = true;
|
||||
shellWrapperName = "ya";
|
||||
initLua = /* lua */ ''
|
||||
require("zoxide"):setup {
|
||||
update_db = true,
|
||||
}
|
||||
Status:children_add(function()
|
||||
local h = cx.active.current.hovered
|
||||
if not h or ya.target_family() ~= "unix" then
|
||||
return ""
|
||||
end
|
||||
|
||||
return ui.Line {
|
||||
ui.Span(ya.user_name(h.cha.uid) or tostring(h.cha.uid)):fg("magenta"),
|
||||
":",
|
||||
ui.Span(ya.group_name(h.cha.gid) or tostring(h.cha.gid)):fg("magenta"),
|
||||
" ",
|
||||
}
|
||||
end, 500, Status.RIGHT)
|
||||
'';
|
||||
plugins = with pkgs; {
|
||||
inherit glow git;
|
||||
};
|
||||
# initLua = /* lua */ '' '';
|
||||
# initLua = /* lua */ '' ''; # down
|
||||
keymap = {
|
||||
mgr.keymap = [
|
||||
{ on = "<Esc>"; run = "escape"; desc = "Exit visual mode, clear selected, or cancel search"; }
|
||||
@@ -52,24 +30,24 @@ in {
|
||||
{ on = "<C-f>"; run = "arrow 100%"; desc = "Move cursor down one page"; }
|
||||
{ on = "<PageUp>"; run = "arrow -100%"; desc = "Move cursor up one page"; }
|
||||
{ on = "<PageDown>"; run = "arrow 100%"; desc = "Move cursor down one page"; }
|
||||
{ on = [ "g" "g" ]; run = "arrow top"; desc = "Move cursor to the top"; }
|
||||
{ on = [ "g" "e" ]; run = "arrow bot"; desc = "Move cursor to the end"; }
|
||||
{ on = [ "g" "h" ]; run = "cd ~"; desc = "Go to the home directory"; }
|
||||
{ on = [ "g" "n" ]; run = "cd ~/nix-dots"; desc = "Go to the Nix-Dotfiles directory"; }
|
||||
(pkgs.lib.mkIf (hyper.host == "NxACE") { on = [ "g" "s" ]; run = "cd /var/lib/hugo/nx2site"; desc = "Go to the Hugo Nx2.Site directory"; })
|
||||
{ on = [ "g" "n" ]; run = "cd /nix/store"; desc = "Go to the Nix-Store"; }
|
||||
{ on = [ "g" "c" ]; run = "cd ~/.config"; desc = "Go to the config directory"; }
|
||||
{ on = [ "g" "l" ]; run = "cd ~/.locale"; desc = "Go to the .locale directory"; }
|
||||
{ on = [ "g" "C" ]; run = "cd ~/.cache"; desc = "Go to the .cache directory"; }
|
||||
{ on = [ "g" "m" ]; run = "cd ~/media"; desc = "Go to the media (udiskie mount) directory"; }
|
||||
{ on = [ "g" "v" ]; run = "cd ~/Videos"; desc = "Go to the Videos directory"; }
|
||||
{ on = [ "g" "t" ]; run = "cd /tmp"; desc = "Go to the /tmp directory"; }
|
||||
{ on = [ "g" "d" ]; run = "cd ~/Downloads"; desc = "Go to the downloads directory"; }
|
||||
{ on = [ "g" "c" ]; run = "cd ~/.config"; desc = "Go to the config directory"; }
|
||||
{ on = [ "g" "D" ]; run = "cd ~/Documents"; desc = "Go to the Documents directory"; }
|
||||
{ on = [ "g" "r" ]; run = "cd /"; desc = "Go to the root (/) directory"; }
|
||||
{ on = [ "g" "d" ]; run = "cd ~/Downloads"; desc = "Go to the downloads directory"; }
|
||||
{ on = [ "g" "e" ]; run = "arrow bot"; desc = "Move cursor to the end"; }
|
||||
{ on = [ "g" "g" ]; run = "arrow top"; desc = "Move cursor to the top"; }
|
||||
{ on = [ "g" "h" ]; run = "cd ~"; desc = "Go to the home directory"; }
|
||||
{ on = [ "g" "l" ]; run = "cd ~/.locale"; desc = "Go to the .locale directory"; }
|
||||
{ on = [ "g" "m" ]; run = "cd ~/media"; desc = "Go to the media (udiskie mount) directory"; }
|
||||
{ on = [ "g" "n" ]; run = "cd ~/nix-dots"; desc = "Go to the Nix-Dotfiles directory"; }
|
||||
{ on = [ "g" "N" ]; run = "cd /nix/store"; desc = "Go to the Nix-Store"; }
|
||||
{ on = [ "g" "p" ]; run = "cd ~/projects"; desc = "Go to the projects directory"; }
|
||||
{ on = [ "g" "r" ]; run = "cd /"; desc = "Go to the root (/) directory"; }
|
||||
{ on = [ "g" "/" ]; run = "cd /"; desc = "Go to the root (/) directory"; }
|
||||
{ on = [ "g" "t" ]; run = "cd /tmp"; desc = "Go to the /tmp directory"; }
|
||||
{ on = [ "g" "v" ]; run = "cd ~/Videos"; desc = "Go to the Videos directory"; }
|
||||
{ on = [ "g" "<Space>" ]; run = "cd --interactive"; desc = "Go to a directory interactively"; }
|
||||
(pkgs.lib.mkIf (hyper.host == "NxACE") { on = [ "g" "s" ]; run = "cd /var/lib/hugo/nx2site"; desc = "Go to the Hugo Nx2.Site directory"; })
|
||||
# Navigation
|
||||
{ on = "h"; run = "leave"; desc = "Go back to the parent directory"; }
|
||||
{ on = "l"; run = "enter"; desc = "Enter the child directory"; }
|
||||
@@ -92,8 +70,7 @@ in {
|
||||
{ on = "O"; run = "open --interactive"; desc = "Open selected files interactively"; }
|
||||
{ on = "<Enter>"; run = "open"; desc = "Open selected files"; }
|
||||
{ on = "<S-Enter>"; run = "open --interactive"; desc = "Open selected files interactively"; }
|
||||
{ on = "y"; run = [ ''shell -- for path in "$@"; do echo "file://$path"; done | wl-copy -t text/uri-list''
|
||||
"yank" ]; desc = "Yank selected files (copy)"; }
|
||||
{ on = "y"; run = [ ''shell -- for path in "$@"; do echo "file://$path"; done | wl-copy -t text/uri-list'' "yank" ]; desc = "Yank selected files (copy)"; }
|
||||
{ on = "y"; run = "yank"; desc = "Yank selected files (copy)"; }
|
||||
{ on = "x"; run = "yank --cut"; desc = "Yank selected files (cut)"; }
|
||||
{ on = "p"; run = "paste"; desc = "Paste yanked "; }
|
||||
@@ -180,6 +157,7 @@ in {
|
||||
{ on = "{"; run = "tab_swap -1"; desc = "Swap current tab with previous tab"; }
|
||||
{ on = "{"; run = "tab_swap -1"; desc = "Swap current tab wittab"; }
|
||||
{ on = "}"; run = "tab_swap 1"; desc = "Swap current tab with next tab"; }
|
||||
{ on = "<Tab>"; run = "spot"; desc = "Show Spot View"; }
|
||||
# Tasks
|
||||
{ on = "w"; run = "tasks:show"; desc = "Show Task View"; }
|
||||
];
|
||||
@@ -190,8 +168,8 @@ in {
|
||||
{ on = "<Esc>"; run = "close"; desc = "Close Task View"; }
|
||||
{ on = "c"; run = "cancel"; desc = "Cancel Task"; }
|
||||
{ on = "i"; run = "inspect"; desc = "Inspect Task"; }
|
||||
{ on = "j"; run = "arrow -1"; desc = "Up in list"; }
|
||||
{ on = "k"; run = "arrow 1"; desc = "Down in list"; }
|
||||
{ on = "k"; run = "arrow -1"; desc = "Up in list"; }
|
||||
{ on = "j"; run = "arrow 1"; desc = "Down in list"; }
|
||||
{ on = "u"; run = "arrow -5"; desc = "Up in list (fast)"; }
|
||||
{ on = "d"; run = "arrow 5"; desc = "Down in list (fast)"; }
|
||||
];
|
||||
@@ -201,6 +179,19 @@ in {
|
||||
{ on = "?"; run = "help"; desc = "Open help"; }
|
||||
{ on = "<F1>"; run = "help"; desc = "Open help"; }
|
||||
];
|
||||
spot.keymap = [
|
||||
# Spot
|
||||
{ on = "<Tab>"; run = "close"; desc = "Close Spot View"; }
|
||||
{ on = "q"; run = "close"; desc = "Close Spot View"; }
|
||||
{ on = "<Esc>"; run = "close"; desc = "Close Spot View"; }
|
||||
{ on = "k"; run = "arrow -1"; desc = "Up in list"; }
|
||||
{ on = "j"; run = "arrow 1"; desc = "Down in list"; }
|
||||
{ on = "u"; run = "arrow -5"; desc = "Up in list (fast)"; }
|
||||
{ on = "d"; run = "arrow 5"; desc = "Down in list (fast)"; }
|
||||
{ on = [ "g" "g" ]; run = "arrow top"; desc = "Move cursor to the top"; }
|
||||
{ on = [ "g" "e" ]; run = "arrow bot"; desc = "Move cursor to the end"; }
|
||||
{ on = "c"; run = "copy cell"; desc = "Copy Selected Cell"; }
|
||||
];
|
||||
};
|
||||
settings = {
|
||||
mgr = {
|
||||
@@ -215,74 +206,76 @@ in {
|
||||
};
|
||||
opener = {
|
||||
"edit" = [
|
||||
{ run = ''hx "$@"''; desc = "helix"; block = true; }
|
||||
{ run = ''codium "$@"''; desc = "code"; orphan = true; }
|
||||
{ run = ''hx "$0" "$@"''; desc = "Helix"; block = true; }
|
||||
{ run = ''codium "$0" "$@"''; desc = "VS Code"; orphan = true; }
|
||||
{ run = ''antigravity "$0" "$0"''; desc = "Antigravity"; orphan = true; }
|
||||
{ run = ''cat "$0" "$@" | wl-copy''; desc = "Copy Contents"; }
|
||||
];
|
||||
"play" = [
|
||||
{ run = ''mpv "$@"''; desc = "mpv"; orphan = true; }
|
||||
{ run = ''mpv --vf=negate "$@"''; desc = "mpv inverted"; orphan = true; }
|
||||
{ run = ''mediainfo "$1"; echo "Press enter to exit"; read''; block = true; desc = "Show mediainfo"; }
|
||||
{ run = ''mpv "$0" "$@"''; desc = "mpv"; orphan = true; }
|
||||
{ run = ''mpv --vf=negate "$0" "$@"''; desc = "mpv inverted"; orphan = true; }
|
||||
{ run = ''mediainfo "$0"; echo "Press enter to return to yazi"; read''; block = true; desc = "Show mediainfo"; }
|
||||
];
|
||||
"archive" = [
|
||||
{ run = ''unar "$1"''; desc = "Extract here"; }
|
||||
{ run = ''tar -x "$1"''; desc = "tar -x"; }
|
||||
{ run = ''unzip "$1"''; desc = "unzip"; }
|
||||
{ run = ''unar "$0" "$@"''; desc = "Extract here"; }
|
||||
{ run = ''tar -x "$0" "$@"''; desc = "tar -x"; }
|
||||
{ run = ''unzip "$0" "$@"''; desc = "unzip"; }
|
||||
];
|
||||
"image" = [
|
||||
{ run = ''imv "$@"''; desc = "imv"; orphan = true; }
|
||||
{ run = ''gimp "$@"''; desc = "gimp"; orphan = true; }
|
||||
{ run = ''imv "$0" "$@"''; desc = "imv"; orphan = true; }
|
||||
{ run = ''gimp "$0" "$@"''; desc = "gimp"; orphan = true; }
|
||||
{ run = ''swww img --transition-type wipe --transition-angle 60 --transition-step 120 --transition-fps 120 "$@"''; desc = "swww wallpaper"; }
|
||||
{ run = ''exiftool "$@"; echo "Press enter to exit"; read''; desc = "View Exif Data"; }
|
||||
{ run = ''for f in "$@"; do magick "$f" -auto-orient "''${f%.*}.pdf"; done''; desc = "Convert to PDF"; }
|
||||
{ run = ''exiftool "$0"; echo "Press enter to return to yazi"; read''; desc = "View Exif Data"; }
|
||||
{ run = ''for f in "$0"; do magick "$f" -auto-orient "''${f%.*}.pdf"; done''; desc = "Convert to PDF"; }
|
||||
];
|
||||
"svg" = [
|
||||
{ run = ''inkscape "$@"''; desc = "inkscape"; orphan = true; }
|
||||
{ run = ''firefox "$@"''; desc = "firefox"; orphan = true; }
|
||||
{ run = ''inkscape "$0" "$@"''; desc = "inkscape"; orphan = true; }
|
||||
{ run = ''firefox "$0" "$@"''; desc = "firefox"; orphan = true; }
|
||||
];
|
||||
"font" = [
|
||||
{ run = ''fontpreview "$@"''; desc = "fontpreview"; orphan = true; }
|
||||
{ run = ''fontforge "$@"''; desc = "fortforge"; orphan = true; }
|
||||
{ run = ''fontpreview "$0" "$@"''; desc = "fontpreview"; orphan = true; }
|
||||
{ run = ''fontforge "$0" "$@"''; desc = "fortforge"; orphan = true; }
|
||||
];
|
||||
"document" = [
|
||||
{ run = ''zathura "$@"''; desc = "zathura"; orphan = true; }
|
||||
{ run = ''xournal "$@"''; desc = "xournal"; orphan = true; }
|
||||
{ run = ''firefox "$@"''; desc = "firefox"; orphan = true; }
|
||||
{ run = ''nxgs flip "$@"''; desc = "nxgs flip"; }
|
||||
{ run = ''nxgs rotate "$@"''; desc = "nxgs rotate"; }
|
||||
{ run = ''nxgs interactive-merge "$@"''; block = true; desc = "nxgs merge"; }
|
||||
{ run = ''zathura "$0" "$@"''; desc = "zathura"; orphan = true; }
|
||||
{ run = ''xournal "$0" "$@"''; desc = "xournal"; orphan = true; }
|
||||
{ run = ''firefox "$0" "$@"''; desc = "firefox"; orphan = true; }
|
||||
{ run = ''nxgs flip "$0" "$@"''; desc = "nxgs flip"; }
|
||||
{ run = ''nxgs rotate "$0" "$@"''; desc = "nxgs rotate"; }
|
||||
{ run = ''nxgs interactive-merge "$0" "$@"''; block = true; desc = "nxgs merge"; }
|
||||
];
|
||||
"browser" = [
|
||||
{ run = ''firefox "$@"''; desc = "firefox"; orphan = true; }
|
||||
{ run = ''zen "$@"''; desc = "zen"; orphan = true; }
|
||||
{ run = ''chromium --enable-features=UseOzonePlatform --ozone-platform=wayland "$@"''; desc = "chromium"; orphan = true; }
|
||||
{ run = ''w3m "$@"''; desc = "w3m"; }
|
||||
{ run = ''lynx "$@"''; desc = "lynx"; }
|
||||
{ run = ''firefox "$0" "$@"''; desc = "firefox"; orphan = true; }
|
||||
{ run = ''chromium --enable-features=UseOzonePlatform --ozone-platform=wayland "$0" "$@"''; desc = "chromium"; orphan = true; }
|
||||
{ run = ''w3m "$0" "$@"''; desc = "w3m"; }
|
||||
{ run = ''lynx "$0" "$@"''; desc = "lynx"; }
|
||||
];
|
||||
"office" = [
|
||||
{ run = ''libreoffice "$@"''; desc = "libreoffice"; orphan = true; }
|
||||
{ run = ''libreoffice --view "$@"''; desc = "libreoffice read-only"; orphan = true; }
|
||||
{ run = ''libreoffice "$0" "$@"''; desc = "libreoffice"; orphan = true; }
|
||||
{ run = ''libreoffice --view "$0" "$@"''; desc = "libreoffice read-only"; orphan = true; }
|
||||
];
|
||||
"shell" = [
|
||||
{ run = ''bash -c "$@"''; desc = "bash -c"; }
|
||||
{ run = ''fish -c "$@"''; desc = "fish -c"; }
|
||||
{ run = ''sh -c "$@"''; desc = "sh -c"; }
|
||||
{ run = ''bash -c "$0"; echo "Press enter to return to yazi"; read''; desc = "bash -c"; }
|
||||
{ run = ''fish -c "$0"; echo "Press enter to return to yazi"; read''; desc = "fish -c"; }
|
||||
{ run = ''sh -c "$0"; echo "Press enter to return to yazi"; read''; desc = "sh -c"; }
|
||||
];
|
||||
"python" = [
|
||||
{ run = ''python "$@"''; desc = "python"; }
|
||||
{ run = ''python "$@"; echo "Press enter to return to yazi"; read''; desc = "python"; block = true; }
|
||||
];
|
||||
"directory" = [
|
||||
{ run = ''lazygit "$@"''; desc = "python"; }
|
||||
{ run = ''lazygit "$0"''; desc = "lazygit"; }
|
||||
];
|
||||
};
|
||||
open.rules = [
|
||||
{ mime = "text/html"; use = [ "edit" "browser" ]; }
|
||||
{ mime = "text/htm"; use = [ "edit" "browser" ]; }
|
||||
{ mime = "text/x-python"; use = "python"; }
|
||||
{ mime = "text/x-script.python"; use = [ "edit" "python" ]; }
|
||||
{ mime = "text/script.python"; use = [ "edit" "python" ]; }
|
||||
{ mime = "text/*"; use = "edit"; }
|
||||
{ mime = "text"; use = "edit"; }
|
||||
|
||||
{ mine = "inode/x-empty"; use = "edit"; }
|
||||
{ mine = "inode/directory"; use = "edit"; }
|
||||
{ mine = "inode/x-empty"; use = "directory"; }
|
||||
{ mine = "inode/directory"; use = "directory"; }
|
||||
|
||||
{ mime = "image/*"; use = "image"; }
|
||||
{ mime = "image/svg"; use = [ "image" "edit" ]; }
|
||||
@@ -333,8 +326,6 @@ in {
|
||||
tabs = {
|
||||
active = { fg = secondary.dark; bg = secondary.base; };
|
||||
inactive = { fg = secondary.base; bg = secondary.dark; };
|
||||
# sep_inner =
|
||||
# sep_outer =
|
||||
};
|
||||
status = {
|
||||
separator_open = " "; #"";
|
||||
@@ -403,15 +394,39 @@ in {
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
} // (if nox-var then {
|
||||
shellWrapperName = "ya";
|
||||
initLua = /* lua */ ''
|
||||
require("zoxide"):setup {
|
||||
update_db = true,
|
||||
}
|
||||
Status:children_add(function()
|
||||
local h = cx.active.current.hovered
|
||||
if not h or ya.target_family() ~= "unix" then
|
||||
return ""
|
||||
end
|
||||
|
||||
return ui.Line {
|
||||
ui.Span(ya.user_name(h.cha.uid) or tostring(h.cha.uid)):fg("magenta"),
|
||||
":",
|
||||
ui.Span(ya.group_name(h.cha.gid) or tostring(h.cha.gid)):fg("magenta"),
|
||||
" ",
|
||||
}
|
||||
end, 500, Status.RIGHT)
|
||||
'';
|
||||
plugins = with pkgs; {
|
||||
inherit glow git;
|
||||
};
|
||||
} else {});
|
||||
|
||||
xdg = {
|
||||
configFile."xdg-desktop-portal-termfilechooser/config" = {
|
||||
force = true;
|
||||
text = ''
|
||||
[filechooser]
|
||||
cmd=${tfc}/share/xdg-desktop-portal-termfilechooser/yazi-wrapper.sh
|
||||
env=TERMCMD=ghostty --title="terminal-file-picker -e"
|
||||
default_dir=$HOME
|
||||
env=TERMCMD=ghostty --title="terminal-file-picker -e"
|
||||
open_mode=suggested
|
||||
save_mode=last
|
||||
'';
|
||||
|
||||
Reference in New Issue
Block a user