This commit is contained in:
Tao Tien 2025-06-22 21:49:42 -07:00
parent 4c27a575a3
commit 703c40aa3c
5 changed files with 443 additions and 435 deletions

View file

@ -6,11 +6,6 @@
mountConfig = {Options = "noauto,noatime,async,users,rw,x-systemd.automount,credentials=${config.age.secrets.uwuraid.path},gid=users,file_mode=0770,dir_mode=0770";}; mountConfig = {Options = "noauto,noatime,async,users,rw,x-systemd.automount,credentials=${config.age.secrets.uwuraid.path},gid=users,file_mode=0770,dir_mode=0770";};
}; };
in [ in [
(opts
// {
what = "//100.97.47.81/anime";
where = "/mnt/uwuraid/anime";
})
(opts (opts
// { // {
what = "//100.97.47.81/backup"; what = "//100.97.47.81/backup";
@ -56,7 +51,6 @@
}; };
}; };
in [ in [
(opts // {where = "/mnt/uwuraid/anime";})
(opts // {where = "/mnt/uwuraid/backup";}) (opts // {where = "/mnt/uwuraid/backup";})
(opts // {where = "/mnt/uwuraid/everything";}) (opts // {where = "/mnt/uwuraid/everything";})
(opts // {where = "/mnt/uwuraid/downloads";}) (opts // {where = "/mnt/uwuraid/downloads";})

View file

@ -1,197 +1,198 @@
{ {
inputs, inputs,
lib, lib,
pkgs, pkgs,
modulesPath, modulesPath,
... ...
}: { }: {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# inputs.helix.packages.${pkgs.system}.default # inputs.helix.packages.${pkgs.system}.default
# screen # screen
bat bat
bottom bottom
cifs-utils cifs-utils
du-dust du-dust
dumbpipe dumbpipe
exfatprogs exfatprogs
fastfetch fastfetch
ffmpeg ffmpeg
firefox firefox
git git
helix helix
inputs.agenix.packages.${pkgs.system}.default inputs.agenix.packages.${pkgs.system}.default
inputs.zen-browser.packages."${system}".default inputs.zen-browser.packages."${system}".default
jujutsu jujutsu
mesa mesa
mpv mpv
ouch ouch
pueue pueue
ripgrep ripgrep
# rustdesk # rustdesk
sendme sendme
skim skim
tree tree
wezterm wezterm
wget wget
zstd zstd
];
programs.partition-manager.enable = lib.mkDefault true;
# programs.nh = {
# enable = true;
# };
programs.firefox.enable = true;
programs.firefox.policies = {
DisablePocket = true;
PasswordManagerEnabled = false;
NoDefaultBookmarks = false;
};
programs.firefox.preferences = {
"media.ffmpeg.vaapi.enabled" = true;
"widget.use-xdg-desktop-portal.file-picker" = 1;
"widget.use-xdg-desktop-portal.location" = 1;
"widget.use-xdg-desktop-portal.mime-handler" = 1;
"widget.use-xdg-desktop-portal.open-uri" = 1;
"widget.use-xdg-desktop-portal.settings" = 1;
"accessibility.browsewithcaret_shortcut.enabled" = false;
"browser.bookmarks.restore_default_bookmarks" = false;
};
services.flatpak.enable = true;
hardware.graphics.enable = true;
# hardware.opengl = {
# enable = true;
# extraPackaged = with pkgs; [
# libvdpau-va-gl
# ];
# };
services.xserver.enable = lib.mkDefault true;
services.xserver.excludePackages = [pkgs.xterm];
services.xserver.xkb.layout = "us";
systemd.services.display-manager.restartIfChanged = false;
services.displayManager.sddm.enable = lib.mkDefault true;
services.displayManager.sddm.wayland.enable = true;
services.desktopManager.plasma6.enable = lib.mkDefault true;
environment.plasma6.excludePackages = with pkgs; [
kdePackages.elisa
kdePackages.konsole
kdePackages.gwenview
kdePackages.kate
xterm
];
services.openssh.enable = true;
users.users.root.openssh.authorizedKeys.keys = [
];
programs.ssh.startAgent = true;
services.gnome.gcr-ssh-agent.enable = false;
services.printing.enable = lib.mkDefault true;
services.printing.drivers = with pkgs; lib.mkDefault [gutenprint gutenprintBin];
services.avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
networking.networkmanager.enable = true;
networking.networkmanager.wifi.backend = "iwd";
services.tailscale.enable = true;
services.resolved.enable = true;
networking.wireless.iwd = {
enable = true;
settings.IPv6.Enabled = true;
settings.Settings.AutoConnect = true;
};
services.smartd.enable = true;
# services.btrfs.autoScrub.enable = lib.mkDefault true;
# hardware.pulseaudio.enable = lib.mkDefault false;
security.rtkit.enable = true;
services.pipewire = {
enable = lib.mkDefault true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
wireplumber.enable = lib.mkDefault true;
};
security.sudo-rs.enable = true;
security.sudo.enable = false;
i18n.inputMethod = {
enable = lib.mkDefault true;
type = "fcitx5";
fcitx5.addons = with pkgs; [
fcitx5-gtk
fcitx5-mozc
fcitx5-rime
]; ];
}; programs.partition-manager.enable = lib.mkDefault true;
environment.variables = { # programs.nh = {
EDITOR = "hx"; # enable = true;
VISUAL = "hx"; # };
PAGER = "bat";
SKIM_DEFAULT_COMMAND = "rg --files";
};
environment.sessionVariables = {
EDITOR = "hx";
VISUAL = "hx";
PAGER = "bat";
SKIM_DEFAULT_COMMAND = "rg --files";
};
time.timeZone = lib.mkDefault "US/Pacific"; programs.firefox.enable = true;
# services.automatic-timezoned.enable = lib.mkDefault true; programs.firefox.policies = {
# i18n.defaultLocale = "en_US.UTF-8"; DisablePocket = true;
# i18n.extraLocaleSettings = { PasswordManagerEnabled = false;
# LC_CTYPE = "en_US.UTF-8"; NoDefaultBookmarks = false;
# LC_MESSAGES = "en_US.UTF-8"; };
# LC_ALL = "en_US.UTF-8"; programs.firefox.preferences = {
# }; "media.ffmpeg.vaapi.enabled" = true;
systemd.extraConfig = '' "widget.use-xdg-desktop-portal.file-picker" = 1;
DefaultTimeoutStopSec=15s "widget.use-xdg-desktop-portal.location" = 1;
''; "widget.use-xdg-desktop-portal.mime-handler" = 1;
"widget.use-xdg-desktop-portal.open-uri" = 1;
"widget.use-xdg-desktop-portal.settings" = 1;
zramSwap = { "accessibility.browsewithcaret_shortcut.enabled" = false;
enable = true; "browser.bookmarks.restore_default_bookmarks" = false;
algorithm = "zstd"; };
};
boot.loader.systemd-boot.enable = lib.mkDefault true; services.flatpak.enable = true;
boot.loader.efi.canTouchEfiVariables = lib.mkDefault true;
boot.loader.timeout = lib.mkForce 1;
# boot.supportedFilesystems = ["ntfs" "btrfs"];
hardware.enableAllFirmware = true;
hardware.bluetooth.enable = lib.mkDefault true;
# hardware.bluetooth.settings.General.Experimental = true;
imports = [(modulesPath + "/installer/scan/not-detected.nix")]; hardware.graphics.enable = true;
# hardware.opengl = {
nix.settings = { # enable = true;
experimental-features = "nix-command flakes"; # extraPackaged = with pkgs; [
auto-optimise-store = true; # libvdpau-va-gl
# adding logged in users allows for passwordless root # ];
# trusted-users = ["root"]; # };
system-features = [ services.xserver.enable = lib.mkDefault true;
"benchmark" services.xserver.excludePackages = [pkgs.xterm];
"big-parallel" services.xserver.xkb.layout = "us";
"gccarch-znver3" systemd.services.display-manager.restartIfChanged = false;
"gccarch-znver4" services.displayManager.sddm.enable = lib.mkDefault true;
"kvm" services.displayManager.sddm.wayland.enable = true;
"nixos-test" services.desktopManager.plasma6.enable = lib.mkDefault true;
environment.plasma6.excludePackages = with pkgs; [
kdePackages.elisa
kdePackages.konsole
kdePackages.gwenview
kdePackages.kate
kdePackages.xwaylandvideobridge
xterm
]; ];
};
nixpkgs.config = {allowUnfree = true;};
nix.nixPath = ["nixpkgs=${pkgs.path}"];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; services.openssh.enable = true;
system.stateVersion = lib.mkDefault "23.05"; users.users.root.openssh.authorizedKeys.keys = [
];
programs.ssh.startAgent = true;
services.gnome.gcr-ssh-agent.enable = false;
services.printing.enable = lib.mkDefault true;
services.printing.drivers = with pkgs; lib.mkDefault [gutenprint gutenprintBin];
services.avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
networking.networkmanager.enable = true;
networking.networkmanager.wifi.backend = "iwd";
services.tailscale.enable = true;
services.resolved.enable = true;
networking.wireless.iwd = {
enable = true;
settings.IPv6.Enabled = true;
settings.Settings.AutoConnect = true;
};
services.smartd.enable = true;
# services.btrfs.autoScrub.enable = lib.mkDefault true;
# hardware.pulseaudio.enable = lib.mkDefault false;
security.rtkit.enable = true;
services.pipewire = {
enable = lib.mkDefault true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
wireplumber.enable = lib.mkDefault true;
};
security.sudo-rs.enable = true;
security.sudo.enable = false;
i18n.inputMethod = {
enable = lib.mkDefault true;
type = "fcitx5";
fcitx5.addons = with pkgs; [
fcitx5-gtk
fcitx5-mozc
fcitx5-rime
];
};
environment.variables = {
EDITOR = "hx";
VISUAL = "hx";
PAGER = "bat";
SKIM_DEFAULT_COMMAND = "rg --files";
};
environment.sessionVariables = {
EDITOR = "hx";
VISUAL = "hx";
PAGER = "bat";
SKIM_DEFAULT_COMMAND = "rg --files";
};
time.timeZone = lib.mkDefault "US/Pacific";
# services.automatic-timezoned.enable = lib.mkDefault true;
# i18n.defaultLocale = "en_US.UTF-8";
# i18n.extraLocaleSettings = {
# LC_CTYPE = "en_US.UTF-8";
# LC_MESSAGES = "en_US.UTF-8";
# LC_ALL = "en_US.UTF-8";
# };
systemd.extraConfig = ''
DefaultTimeoutStopSec=15s
'';
zramSwap = {
enable = true;
algorithm = "zstd";
};
boot.loader.systemd-boot.enable = lib.mkDefault true;
boot.loader.efi.canTouchEfiVariables = lib.mkDefault true;
boot.loader.timeout = lib.mkForce 1;
# boot.supportedFilesystems = ["ntfs" "btrfs"];
hardware.enableAllFirmware = true;
hardware.bluetooth.enable = lib.mkDefault true;
# hardware.bluetooth.settings.General.Experimental = true;
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
nix.settings = {
experimental-features = "nix-command flakes";
auto-optimise-store = true;
# adding logged in users allows for passwordless root
# trusted-users = ["root"];
system-features = [
"benchmark"
"big-parallel"
"gccarch-znver3"
"gccarch-znver4"
"kvm"
"nixos-test"
];
};
nixpkgs.config = {allowUnfree = true;};
nix.nixPath = ["nixpkgs=${pkgs.path}"];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
system.stateVersion = lib.mkDefault "23.05";
} }

View file

@ -1,269 +1,269 @@
{ {
config, config,
pkgs, pkgs,
inputs, inputs,
lib, lib,
... ...
}: let }: let
cargoFile = builtins.readFile ./cargo.toml; cargoFile = builtins.readFile ./cargo.toml;
cargoConfig = builtins.replaceStrings ["/path/to/sccache" "/path/to/mold"] ["${pkgs.sccache}/bin/sccache" "${pkgs.mold}/bin/mold}"] cargoFile; cargoConfig = builtins.replaceStrings ["/path/to/sccache" "/path/to/mold"] ["${pkgs.sccache}/bin/sccache" "${pkgs.mold}/bin/mold}"] cargoFile;
age.secrets.syncthing-NOcomputer.file = ../secrets/syncthing-NOcomputer.age; age.secrets.syncthing-NOcomputer.file = ../secrets/syncthing-NOcomputer.age;
age.secrets.syncthing-NOlaptop.file = ../secrets/syncthing-NOlaptop.age; age.secrets.syncthing-NOlaptop.file = ../secrets/syncthing-NOlaptop.age;
age.secrets.syncthing-uwuraid.file = ../secrets/syncthing-uwuraid.age; age.secrets.syncthing-uwuraid.file = ../secrets/syncthing-uwuraid.age;
in { in {
imports = [ imports = [
./boxxy.nix ./boxxy.nix
(import ./helix.nix {inherit pkgs inputs;}) (import ./helix.nix {inherit pkgs inputs;})
# ./plasma.nix # ./plasma.nix
# ./firefox.nix # ./firefox.nix
]; ];
# home.sessionPath = [ # home.sessionPath = [
# "/home/tao/.cargo/bin" # "/home/tao/.cargo/bin"
# ]; # ];
home.file.".cargo/config.toml".text = cargoConfig; home.file.".cargo/config.toml".text = cargoConfig;
home.file.".config/autostart" = { home.file.".config/autostart" = {
source = ./autostart; source = ./autostart;
recursive = true; recursive = true;
};
home.file.".config/direnv/lib/".source = ./direnv;
home.file.".config/direnv/lib/".recursive = true;
programs = {
bacon = {
enable = true;
settings.jobs.default = {
command = [
"cargo"
"clippy"
"--"
"-A"
"clippy::bool_to_int_with_if"
"-A"
"clippy::collapsible_else_if"
"-A"
"clippy::collapsible_if"
"-A"
"clippy::derive_partial_eq_without_eq"
"-A"
"clippy::get_first"
"-A"
"clippy::if_same_then_else"
"-A"
"clippy::len_without_is_empty"
"-A"
"clippy::map_entry"
"-A"
"clippy::while_let_on_iterator"
];
need_stdout = false;
};
}; };
home.file.".config/direnv/lib/".source = ./direnv;
home.file.".config/direnv/lib/".recursive = true;
bat = { programs = {
enable = true; bacon = {
config = { enable = true;
theme = "gruvbox-dark"; settings.jobs.default = {
}; command = [
}; "cargo"
"clippy"
bottom = { "--"
enable = true; "-A"
settings = { "clippy::bool_to_int_with_if"
color = "gruvbox"; "-A"
flags = { "clippy::collapsible_else_if"
battery = "-A"
# if lib.strings.hasPrefix "NOlaptop" (builtins.readFile /etc/hostname) "clippy::collapsible_if"
# then true "-A"
# else false; "clippy::derive_partial_eq_without_eq"
true; "-A"
hide_time = true; "clippy::get_first"
enable_gpu = true; "-A"
"clippy::if_same_then_else"
"-A"
"clippy::len_without_is_empty"
"-A"
"clippy::map_entry"
"-A"
"clippy::while_let_on_iterator"
];
need_stdout = false;
};
}; };
};
};
direnv = { bat = {
enable = true; enable = true;
enableNushellIntegration = true; config = {
nix-direnv.enable = true; theme = "gruvbox-dark";
}; };
};
jujutsu = { bottom = {
enable = true; enable = true;
settings = { settings = {
user = { color = "gruvbox";
name = "Tao Tien"; flags = {
email = "29749622+taotien@users.noreply.github.com"; battery =
# if lib.strings.hasPrefix "NOlaptop" (builtins.readFile /etc/hostname)
# then true
# else false;
true;
hide_time = true;
enable_gpu = true;
};
};
}; };
ui = {
default-command = "log";
};
};
# package = inputs.jujutsu.packages.${pkgs.system}.default;
};
git = { direnv = {
enable = true; enable = true;
userName = "Tao Tien"; enableNushellIntegration = true;
userEmail = "29749622+taotien@users.noreply.github.com"; nix-direnv.enable = true;
# extraConfig = { };
# };
ignores = [
"/target"
".direnv"
];
};
nushell = { jujutsu = {
enable = true; enable = true;
configFile.source = ./nushell/config.nu; settings = {
envFile.source = ./nushell/env.nu; user = {
# extraConfig = builtins.readFile ./nushell/stuff.nu; name = "Tao Tien";
extraConfig = lib.concatStrings (map builtins.readFile (map (x: ./nushell/extras/. + x) (map (x: "/" + x) (builtins.attrNames (builtins.readDir ./nushell/extras))))); email = "29749622+taotien@users.noreply.github.com";
}; };
ui = {
default-command = "log";
};
};
# package = inputs.jujutsu.packages.${pkgs.system}.default;
};
ssh = { git = {
enable = true; enable = true;
addKeysToAgent = "yes"; userName = "Tao Tien";
compression = true; userEmail = "29749622+taotien@users.noreply.github.com";
matchBlocks = { # extraConfig = {
"stargate" = { # };
hostname = "stargate.cs.usfca.edu"; ignores = [
user = "tltien"; "/target"
forwardAgent = true; ".direnv"
identityFile = "/home/tao/.ssh/id_ed25519"; ];
}; };
"griffin" = {
hostname = "griffin.cs.usfca.edu"; nushell = {
user = "tltien"; enable = true;
forwardAgent = true; configFile.source = ./nushell/config.nu;
identityFile = "/home/tao/.ssh/id_ed25519"; envFile.source = ./nushell/env.nu;
# proxyCommand = "ssh griffin.cs.usfca.edu"; # extraConfig = builtins.readFile ./nushell/stuff.nu;
extraConfig = lib.concatStrings (map builtins.readFile (map (x: ./nushell/extras/. + x) (map (x: "/" + x) (builtins.attrNames (builtins.readDir ./nushell/extras)))));
}; };
"github" = {
hostname = "github.com"; ssh = {
forwardAgent = true; enable = true;
identityFile = "/home/tao/.ssh/id_ed25519"; addKeysToAgent = "yes";
compression = true;
matchBlocks = {
"stargate" = {
hostname = "stargate.cs.usfca.edu";
user = "tltien";
forwardAgent = true;
identityFile = "/home/tao/.ssh/id_ed25519";
};
"griffin" = {
hostname = "griffin.cs.usfca.edu";
user = "tltien";
forwardAgent = true;
identityFile = "/home/tao/.ssh/id_ed25519";
# proxyCommand = "ssh griffin.cs.usfca.edu";
};
"github" = {
hostname = "github.com";
forwardAgent = true;
identityFile = "/home/tao/.ssh/id_ed25519";
};
# "uwuraid" = {
# hostname = "uwuraid";
# user = "root";
# # extraOptions = ["-t" "cd /mnt/user; exet \$SHELL -l"];
# # requesttty = true;
# # identityFile = "/home/tao/.ssh/id_ed25519";
# proxyCommand = "ssh -t root@uwuraid cd /mnt/user; exec \\$SHELL -l";
# };
};
}; };
# "uwuraid" = {
# hostname = "uwuraid"; starship = {
# user = "root"; enable = true;
# # extraOptions = ["-t" "cd /mnt/user; exet \$SHELL -l"]; enableNushellIntegration = true;
# # requesttty = true; settings = builtins.fromTOML (builtins.readFile ./starship.toml);
# # identityFile = "/home/tao/.ssh/id_ed25519"; };
# proxyCommand = "ssh -t root@uwuraid cd /mnt/user; exec \\$SHELL -l";
# taskwarrior = {
# enable = true;
# package = pkgs.taskwarrior3;
# dataLocation = "/home/tao/sync";
# }; # };
};
};
starship = { wezterm = {
enable = true; enable = true;
enableNushellIntegration = true; extraConfig = builtins.readFile ./wezterm.lua;
settings = builtins.fromTOML (builtins.readFile ./starship.toml);
};
# taskwarrior = {
# enable = true;
# package = pkgs.taskwarrior3;
# dataLocation = "/home/tao/sync";
# };
wezterm = {
enable = true;
extraConfig = builtins.readFile ./wezterm.lua;
};
zathura = {
enable = true;
options = {
selection-clipboard = "clipboard";
};
};
zellij = {
enable = true;
settings = {};
};
zoxide = {
enable = true;
enableNushellIntegration = true;
};
};
services = {
pueue = {
enable = true;
settings = {};
};
};
services.syncthing = {
enable = true;
# user = "tao";
# dataDir = "/home/tao/sync";
# configDir = "/home/tao/.config/syncthing";
overrideDevices = true;
overrideFolders = true;
# openDefaultPorts = true;
settings = {
devices = {
# we do a lil anti-patterns https://github.com/ryantm/agenix?tab=readme-ov-file#builtinsreadfile-anti-pattern
# bootstrap by commenting out devices first and rebuild switch impurely
"nocomputer".id = builtins.readFile config.age.secrets.syncthing-NOcomputer.path;
"nolaptop".id = builtins.readFile config.age.secrets.syncthing-NOlaptop.path;
"uwuraid".id = builtins.readFile config.age.secrets.syncthing-uwuraid.path;
};
folders = let
devs = [
"nocomputer"
"nolaptop"
"uwuraid"
];
in {
# "documents" = {
# path = "/home/tao/documents";
# devices = devs;
# };
"pictures" = {
path = "/home/tao/pictures";
devices = devs;
}; };
"projects" = {
path = "/home/tao/projects"; zathura = {
devices = devs; enable = true;
options = {
selection-clipboard = "clipboard";
};
}; };
"school" = {
path = "/home/tao/school"; zellij = {
devices = devs; enable = true;
settings = {};
}; };
"sync" = {
path = "/home/tao/sync"; zoxide = {
devices = devs; enable = true;
enableNushellIntegration = true;
}; };
# "work" = {
# path = "/home/tao/work";
# devices = devs;
# };
};
}; };
};
xdg.userDirs = { services = {
desktop = "desktop"; pueue = {
documents = "documents"; enable = true;
download = "downloads"; settings = {};
music = "music"; };
pictures = "pictures"; };
templates = "templates";
videos = "videos";
publicShare = null;
createDirectories = true;
enable = true;
};
home.username = "tao"; services.syncthing = {
home.homeDirectory = "/home/tao"; enable = true;
home.stateVersion = "23.11"; # user = "tao";
# dataDir = "/home/tao/sync";
# configDir = "/home/tao/.config/syncthing";
overrideDevices = true;
overrideFolders = true;
# openDefaultPorts = true;
settings = {
devices = {
# we do a lil anti-patterns https://github.com/ryantm/agenix?tab=readme-ov-file#builtinsreadfile-anti-pattern
# bootstrap by commenting out devices first and rebuild switch impurely
"nocomputer".id = builtins.readFile config.age.secrets.syncthing-NOcomputer.path;
"nolaptop".id = builtins.readFile config.age.secrets.syncthing-NOlaptop.path;
"uwuraid".id = builtins.readFile config.age.secrets.syncthing-uwuraid.path;
};
folders = let
devs = [
"nocomputer"
"nolaptop"
"uwuraid"
];
in {
# "documents" = {
# path = "/home/tao/documents";
# devices = devs;
# };
"pictures" = {
path = "/home/tao/pictures";
devices = devs;
};
"projects" = {
path = "/home/tao/projects";
devices = devs;
};
"school" = {
path = "/home/tao/school";
devices = devs;
};
"sync" = {
path = "/home/tao/sync";
devices = devs;
};
# "work" = {
# path = "/home/tao/work";
# devices = devs;
# };
};
};
};
xdg.userDirs = {
desktop = "desktop";
documents = "documents";
download = "downloads";
music = "music";
pictures = "pictures";
templates = "templates";
videos = "videos";
publicShare = null;
createDirectories = true;
enable = true;
};
home.username = "tao";
home.homeDirectory = "/home/tao";
home.stateVersion = "23.11";
} }

View file

@ -189,7 +189,9 @@
{ {
name = "nix"; name = "nix";
auto-format = true; auto-format = true;
formatter = {command = "alejandra";}; formatter = {
command = "alejandra";
};
} }
{ {
name = "toml"; name = "toml";

View file

@ -47,6 +47,8 @@ def jm --wrapped [-r: string = "@", ...rest] {
} }
alias la = ls -a alias la = ls -a
alias ll = ls -l
alias lal = ls -la
alias ccp = cp -prv alias ccp = cp -prv
alias mvp = mv-full -pv alias mvp = mv-full -pv
@ -58,3 +60,12 @@ def --env c [path: path = "~"] {
def l --wrapped [path: path = ".", ...rest] { def l --wrapped [path: path = ".", ...rest] {
ls ...$rest $path | sort-by type name -i -n ls ...$rest $path | sort-by type name -i -n
} }
alias list-automounts = systemctl list-units --type=automount
def remount [] {
let reload = list-automounts | detect columns -n | get column0 | input list --multi
for mount in $reload {
systemctl resart $mount
}
}