mirror of
https://github.com/nmasur/dotfiles
synced 2025-08-23 17:14:41 +00:00
Compare commits
28 Commits
6a9d1c14a7
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
e64a9f14d0 | ||
|
e2e179c0e5 | ||
|
e975db7385 | ||
|
08ec8ce4b8 | ||
|
7388eed876 | ||
|
e53d9eb1a9 | ||
|
b956f9dd82 | ||
|
d7969cc8fc | ||
|
21d66d2be1 | ||
|
518848181a | ||
|
f9bf763f91 | ||
|
ca20fa0732 | ||
|
56d10c2765 | ||
|
3b6b4bd2e6 | ||
|
6f06b0a0c5 | ||
|
d3e69faf2f | ||
|
4755a27089 | ||
|
57303d61e9 | ||
|
b67c90dae0 | ||
|
2ff9254a0e | ||
|
59a8a6dc3f | ||
|
5943a6682e | ||
|
d38f767d03 | ||
|
ebd79aa348 | ||
|
f778bc58ac | ||
|
eb1c08f5da | ||
|
3e7afdc0b3 | ||
|
45aa5d01e5 |
48
flake.lock
generated
48
flake.lock
generated
@@ -22,11 +22,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751313918,
|
||||
"narHash": "sha256-HsJM3XLa43WpG+665aGEh8iS8AfEwOIQWk3Mke3e7nk=",
|
||||
"lastModified": 1755825449,
|
||||
"narHash": "sha256-XkiN4NM9Xdy59h69Pc+Vg4PxkSm9EWl6u7k6D5FZ5cM=",
|
||||
"owner": "lnl7",
|
||||
"repo": "nix-darwin",
|
||||
"rev": "e04a388232d9a6ba56967ce5b53a8a6f713cdfcf",
|
||||
"rev": "8df64f819698c1fee0c2969696f54a843b2231e8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -43,11 +43,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1753140376,
|
||||
"narHash": "sha256-7lrVrE0jSvZHrxEzvnfHFE/Wkk9DDqb+mYCodI5uuB8=",
|
||||
"lastModified": 1755519972,
|
||||
"narHash": "sha256-bU4nqi3IpsUZJeyS8Jk85ytlX61i4b0KCxXX9YcOgVc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "disko",
|
||||
"rev": "545aba02960caa78a31bd9a8709a0ad4b6320a5c",
|
||||
"rev": "4073ff2f481f9ef3501678ff479ed81402caae6d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -156,11 +156,11 @@
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1753376980,
|
||||
"narHash": "sha256-h7Say1U7r1ke3mfg3yvbzYnk3izmJ2g1zXzX5APNA8Q=",
|
||||
"lastModified": 1755869734,
|
||||
"narHash": "sha256-d9hwkPwlpbih4DVbsV0zrK5i2J6cRT7ifrDYK5LZQs8=",
|
||||
"owner": "helix-editor",
|
||||
"repo": "helix",
|
||||
"rev": "4281228da35b02b0dcca3b4772b93d48d79ce046",
|
||||
"rev": "22a3b10dd8ab907367ae1fe57d9703e22b30d391",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -176,11 +176,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1753470191,
|
||||
"narHash": "sha256-hOUWU5L62G9sm8NxdiLWlLIJZz9H52VuFiDllHdwmVA=",
|
||||
"lastModified": 1755914636,
|
||||
"narHash": "sha256-VJ+Gm6YsHlPfUCpmRQxvdiZW7H3YPSrdVOewQHAhZN8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "a1817d1c0e5eabe7dfdfe4caa46c94d9d8f3fdb6",
|
||||
"rev": "8b55a6ac58b678199e5bba701aaff69e2b3281c0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -222,11 +222,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752588843,
|
||||
"narHash": "sha256-T4vw0himO8ami5uR7cry+El9HlQkqNcy/UtIFwkcTMw=",
|
||||
"lastModified": 1755344765,
|
||||
"narHash": "sha256-k/Cvh/mzb5lSvilKdgwNBCyAyYmD8YPr1nc0sTSgwxI=",
|
||||
"owner": "gytis-ivaskevicius",
|
||||
"repo": "nix2vim",
|
||||
"rev": "94f136cece965e33aa4ccccb4ca1af04772851f4",
|
||||
"rev": "78467c8de07719f92397179844bf75cdf2e58b83",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -273,11 +273,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1753250450,
|
||||
"narHash": "sha256-i+CQV2rPmP8wHxj0aq4siYyohHwVlsh40kV89f3nw1s=",
|
||||
"lastModified": 1755615617,
|
||||
"narHash": "sha256-HMwfAJBdrr8wXAkbGhtcby1zGFvs+StOp19xNsbqdOg=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "fc02ee70efb805d3b2865908a13ddd4474557ecf",
|
||||
"rev": "20075955deac2583bb12f07151c2df830ef346b4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -327,11 +327,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1753502740,
|
||||
"narHash": "sha256-g6D9WfAHVq9D76D1t9FahCtuBq+MfTo4dChFde0XosI=",
|
||||
"lastModified": 1755918818,
|
||||
"narHash": "sha256-a7k/fml8k4CxIcVW26luwqVl3lsRMNXBRCyC8uSF0GA=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nur",
|
||||
"rev": "dd7b97b8d11ebe7c7513d6c58e13104441862896",
|
||||
"rev": "1a47d83c521c098debd6d1f2c2ae313a5bb729f9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -449,11 +449,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1753450337,
|
||||
"narHash": "sha256-l0QLEenVKuU6U2g1wI0zuf9IAm7QpisIbf8wAI6BUX4=",
|
||||
"lastModified": 1755261305,
|
||||
"narHash": "sha256-EOqCupB5X5WoGVHVcfOZcqy0SbKWNuY3kq+lj1wHdu8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NixOS-WSL",
|
||||
"rev": "a8dfcd2962f6e788759a75b36ca86b14aa44d8e5",
|
||||
"rev": "203a7b463f307c60026136dd1191d9001c43457f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@@ -33,9 +33,6 @@ rec {
|
||||
|
||||
system.stateVersion = "23.05";
|
||||
|
||||
# Overrides
|
||||
services.automatic-timezoned.enable = false;
|
||||
|
||||
# Not sure what's necessary but too afraid to remove anything
|
||||
boot.initrd.availableKernelModules = [
|
||||
"xhci_pci"
|
||||
|
@@ -74,6 +74,8 @@ in
|
||||
"svg.context-properties.content.enabled" = true; # Sidebery styling
|
||||
"browser.tabs.hoverPreview.enabled" = false; # Disable tab previews
|
||||
"browser.tabs.hoverPreview.showThumbnails" = false; # Disable tab previews
|
||||
"browser.gesture.swipe.left" = "cmd_scrollLeft"; # Disable swipe to go back
|
||||
"browser.gesture.swipe.right" = "cmd_scrollRight"; # Disable swipe to go forward
|
||||
};
|
||||
userChrome = ''
|
||||
:root {
|
||||
|
@@ -1,6 +1,5 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
@@ -66,6 +65,18 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
# Personal jj config
|
||||
programs.jujutsu.settings = {
|
||||
"--scope" = [
|
||||
{
|
||||
"--when".repositories = [ "~/dev/personal" ];
|
||||
user = {
|
||||
name = cfg.personal.name;
|
||||
email = cfg.personal.email;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
|
@@ -130,6 +130,7 @@ in
|
||||
|
||||
ignores = [
|
||||
"content/.obsidian/**"
|
||||
".direnv/**"
|
||||
];
|
||||
|
||||
settings = {
|
||||
@@ -146,6 +147,10 @@ in
|
||||
"keep_primary_selection"
|
||||
];
|
||||
|
||||
# Quit shortcuts
|
||||
space.q = ":quit-all";
|
||||
space.x = ":quit-all!";
|
||||
|
||||
# Enable and disable inlay hints
|
||||
space.H = ":toggle lsp.display-inlay-hints";
|
||||
|
||||
@@ -160,7 +165,7 @@ in
|
||||
space.l = [
|
||||
":write-all"
|
||||
":new"
|
||||
":insert-output ${lib.getExe pkgs.lazygit}"
|
||||
":insert-output ${lib.getExe pkgs.lazygit} > /dev/tty"
|
||||
":buffer-close!"
|
||||
":redraw"
|
||||
":reload-all"
|
||||
@@ -168,6 +173,9 @@ in
|
||||
":set mouse true"
|
||||
];
|
||||
|
||||
# Commandline git blame
|
||||
space.B = ":echo %sh{git log -n1 --date=short --pretty=format:'%%h %%ad %%s' $(git blame -L %{cursor_line},+1 \"%{buffer_name}\" | cut -d' ' -f1)}";
|
||||
|
||||
# Open yazi
|
||||
# https://github.com/sxyazi/yazi/pull/2461
|
||||
# Won't work until next Helix release
|
||||
@@ -195,13 +203,26 @@ in
|
||||
"paste_before"
|
||||
];
|
||||
|
||||
A-S-ret = [
|
||||
"open_above"
|
||||
"normal_mode"
|
||||
];
|
||||
A-ret = [
|
||||
"open_below"
|
||||
"normal_mode"
|
||||
];
|
||||
|
||||
};
|
||||
|
||||
keys.insert = {
|
||||
# Allows not continuing the comment
|
||||
"A-ret" = [
|
||||
"insert_newline"
|
||||
"delete_word_backward"
|
||||
"extend_to_line_bounds"
|
||||
"delete_selection"
|
||||
"insert_newline"
|
||||
"move_line_up"
|
||||
"insert_mode"
|
||||
];
|
||||
};
|
||||
|
||||
@@ -330,7 +351,7 @@ in
|
||||
bg = config.theme.colors.base00;
|
||||
};
|
||||
"ui.cursor" = {
|
||||
fg = config.theme.colors.base0A;
|
||||
fg = config.theme.colors.base04;
|
||||
modifiers = [ "reversed" ];
|
||||
};
|
||||
"ui.cursor.insert" = {
|
||||
@@ -342,11 +363,11 @@ in
|
||||
bg = config.theme.colors.base01;
|
||||
};
|
||||
"ui.cursor.match" = {
|
||||
fg = config.theme.colors.base0A;
|
||||
fg = config.theme.colors.base03;
|
||||
modifiers = [ "reversed" ];
|
||||
};
|
||||
"ui.cursor.select" = {
|
||||
fg = config.theme.colors.base0A;
|
||||
fg = config.theme.colors.base04;
|
||||
modifiers = [ "reversed" ];
|
||||
};
|
||||
"ui.gutter" = {
|
||||
|
@@ -1,5 +1,6 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
@@ -22,8 +23,18 @@ in
|
||||
name = config.programs.git.userName;
|
||||
email = config.programs.git.userEmail;
|
||||
};
|
||||
ui.paginate = "never";
|
||||
|
||||
# Automatically snapshot when files change
|
||||
fsmonitor.backend = "watchman";
|
||||
fsmonitor.watchman.register-snapshot-trigger = true;
|
||||
};
|
||||
};
|
||||
|
||||
home.packages = [
|
||||
# Required for the fsmonitor to auto-snapshot
|
||||
pkgs.watchman
|
||||
];
|
||||
|
||||
};
|
||||
}
|
||||
|
@@ -24,7 +24,7 @@ in
|
||||
# These are useful for triggering from zellij (rather than running directly in the shell)
|
||||
nmasur.presets.programs.nixpkgs.commands.rebuildNixos = pkgs.writeShellScriptBin "rebuild-darwin" ''
|
||||
git -C ${config.nmasur.presets.programs.dotfiles.path} add --intent-to-add --all
|
||||
darwin-rebuild switch --flake "${config.nmasur.presets.programs.dotfiles.path}#${config.nmasur.settings.host}"
|
||||
sudo darwin-rebuild switch --flake "${config.nmasur.presets.programs.dotfiles.path}#${config.nmasur.settings.host}"
|
||||
'';
|
||||
|
||||
programs.fish = {
|
||||
@@ -40,13 +40,13 @@ in
|
||||
rebuild-darwin = {
|
||||
body = ''
|
||||
git -C ${config.nmasur.presets.programs.dotfiles.path} add --intent-to-add --all
|
||||
echo "darwin-rebuild switch --flake ${config.nmasur.presets.programs.dotfiles.path}#lookingglass"
|
||||
echo "sudo darwin-rebuild switch --flake ${config.nmasur.presets.programs.dotfiles.path}#lookingglass"
|
||||
'';
|
||||
};
|
||||
rebuild-darwin-offline = {
|
||||
body = ''
|
||||
git -C ${config.nmasur.presets.programs.dotfiles.path} add --intent-to-add --all
|
||||
echo "darwin-rebuild switch --option substitute false --flake ${config.nmasur.presets.programs.dotfiles.path}#lookingglass"
|
||||
echo "sudo darwin-rebuild switch --option substitute false --flake ${config.nmasur.presets.programs.dotfiles.path}#lookingglass"
|
||||
'';
|
||||
};
|
||||
rebuild-home = lib.mkForce {
|
||||
|
@@ -35,6 +35,7 @@ in
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
home.packages = [
|
||||
pkgs.nh # Allows rebuilding with a cleaner TUI
|
||||
cfg.commands.rebuildHome
|
||||
cfg.commands.rebuildNixos
|
||||
];
|
||||
|
@@ -19,6 +19,7 @@ in
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
enableBashIntegration = true;
|
||||
enableTransience = true; # Replace previous prompts with custom string
|
||||
settings = {
|
||||
add_newline = false; # Don't print new line at the start of the prompt
|
||||
format = lib.concatStrings [
|
||||
@@ -80,6 +81,17 @@ in
|
||||
};
|
||||
};
|
||||
};
|
||||
programs.fish = {
|
||||
functions = {
|
||||
# Adjust the prompt in previous commands
|
||||
starship_transient_prompt_func = {
|
||||
body = "echo '$ '";
|
||||
};
|
||||
starship_transient_rprompt_func = {
|
||||
body = "echo ' '";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
|
@@ -7,6 +7,15 @@
|
||||
|
||||
let
|
||||
cfg = config.nmasur.presets.programs.zellij;
|
||||
|
||||
zellij-switch-to-last = pkgs.writeShellScriptBin "zellij-switch-to-last" ''
|
||||
TARGET_SESSION=$(cat ~/.local/state/zellij-last-session)
|
||||
if [ -z "$TARGET_SESSION" ]; then
|
||||
return 1
|
||||
fi
|
||||
echo "$ZELLIJ_SESSION_NAME" > ~/.local/state/zellij-last-session
|
||||
zellij pipe --plugin file:$(which zellij-switch.wasm) -- "--session $TARGET_SESSION"
|
||||
'';
|
||||
in
|
||||
|
||||
{
|
||||
@@ -31,6 +40,7 @@ in
|
||||
if test "$TARGET_DIR" = $(pwd)
|
||||
return 1
|
||||
end
|
||||
echo "$ZELLIJ_SESSION_NAME" > ~/.local/state/zellij-last-session
|
||||
zellij pipe --plugin file:$(which zellij-switch.wasm) -- "--cwd $TARGET_DIR --layout default --session $(basename $TARGET_DIR)"
|
||||
'';
|
||||
};
|
||||
@@ -69,13 +79,13 @@ in
|
||||
programs.zellij = {
|
||||
|
||||
enable = true;
|
||||
|
||||
# Auto start on shell init
|
||||
enableBashIntegration = true;
|
||||
enableFishIntegration = true;
|
||||
enableZshIntegration = true;
|
||||
|
||||
# Not yet available in unstable
|
||||
# attachExistingSession = true;
|
||||
# exitShellOnExit = true;
|
||||
attachExistingSession = true;
|
||||
exitShellOnExit = false;
|
||||
|
||||
settings = {
|
||||
default_mode = "locked";
|
||||
@@ -109,6 +119,14 @@ in
|
||||
};
|
||||
};
|
||||
shared = {
|
||||
"bind \"Alt Shift s\"" = {
|
||||
Run = {
|
||||
_args = [
|
||||
(lib.getExe zellij-switch-to-last)
|
||||
];
|
||||
close_on_exit = true;
|
||||
};
|
||||
};
|
||||
"bind \"Alt Shift p\"" = {
|
||||
Run = {
|
||||
_args = [
|
||||
@@ -167,6 +185,19 @@ in
|
||||
];
|
||||
};
|
||||
};
|
||||
"bind \"Alt Shift j\"" = {
|
||||
Run = {
|
||||
_args = [
|
||||
(lib.getExe pkgs.lazyjj)
|
||||
];
|
||||
close_on_exit = true;
|
||||
floating = true;
|
||||
x = "1%";
|
||||
y = "1%";
|
||||
width = "99%";
|
||||
height = "99%";
|
||||
};
|
||||
};
|
||||
"bind \"Super Shift ]\"" = {
|
||||
GoToNextTab = { };
|
||||
};
|
||||
@@ -190,11 +221,6 @@ in
|
||||
_args = [ "scroll" ];
|
||||
};
|
||||
};
|
||||
"bind \"Alt k\"" = lib.mkIf pkgs.stdenv.isLinux {
|
||||
SwitchToMode = {
|
||||
_args = [ "scroll" ];
|
||||
};
|
||||
};
|
||||
"bind \"Super Shift e\"" = lib.mkIf pkgs.stdenv.isDarwin {
|
||||
EditScrollback = { };
|
||||
SwitchToMode = {
|
||||
|
@@ -17,10 +17,7 @@ in
|
||||
|
||||
nmasur.presets.programs = {
|
||||
zed-editor.enable = lib.mkDefault true;
|
||||
ghostty.enable = lib.mkDefault true;
|
||||
helix.enable = lib.mkDefault true;
|
||||
zellij.enable = lib.mkDefault true;
|
||||
lazygit.enable = lib.mkDefault true;
|
||||
jujutsu.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
home.packages = [
|
||||
@@ -32,8 +29,6 @@ in
|
||||
pkgs.charm # Manage account and filesystem
|
||||
pkgs.pop # Send emails from a TUI
|
||||
|
||||
pkgs.yazi # TUI file explorer
|
||||
|
||||
];
|
||||
|
||||
programs.gh-dash.enable = lib.mkDefault true;
|
||||
|
@@ -28,14 +28,16 @@ in
|
||||
pkgs.nixfmt-rfc-style # Format Nix code
|
||||
pkgs.nmasur.jqr # FZF fq JSON tool
|
||||
pkgs.nmasur.osc # Clipboard over SSH
|
||||
# pkgs.nmasur.ren-find # Rename files
|
||||
# pkgs.nmasur.rep-grep # Replace text in files
|
||||
pkgs.nmasur.ren-find # Rename files
|
||||
pkgs.nmasur.rep-grep # Replace text in files
|
||||
pkgs.pandoc # Convert text documents
|
||||
pkgs.qrencode # Generate qr codes
|
||||
pkgs.spacer # Output lines in terminal
|
||||
pkgs.tealdeer # Cheatsheets
|
||||
pkgs.tree # Print tree in terminal
|
||||
pkgs.vimv-rs # Batch rename files
|
||||
pkgs.yazi # TUI file explorer
|
||||
|
||||
];
|
||||
|
||||
programs.fish.shellAliases = {
|
||||
@@ -58,8 +60,10 @@ in
|
||||
fd.enable = lib.mkDefault true;
|
||||
fish.enable = lib.mkDefault true;
|
||||
fzf.enable = lib.mkDefault true;
|
||||
ghostty.enable = lib.mkDefault true;
|
||||
git.enable = lib.mkDefault true;
|
||||
helix.enable = lib.mkDefault true;
|
||||
lazygit.enable = lib.mkDefault true;
|
||||
neovim.enable = lib.mkDefault true;
|
||||
nix-index.enable = lib.mkDefault true;
|
||||
nixpkgs.enable = lib.mkDefault true;
|
||||
@@ -68,6 +72,7 @@ in
|
||||
ripgrep.enable = lib.mkDefault true;
|
||||
weather.enable = lib.mkDefault true;
|
||||
yt-dlp.enable = lib.mkDefault true;
|
||||
zellij.enable = lib.mkDefault true;
|
||||
zoxide.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
|
@@ -67,7 +67,7 @@ in
|
||||
|
||||
# Tell Caddy to use Cloudflare DNS for ACME challenge validation
|
||||
services.caddy.package = pkgs.caddy.withPlugins {
|
||||
plugins = [ "github.com/caddy-dns/cloudflare@v0.2.1" ];
|
||||
plugins = [ "github.com/caddy-dns/cloudflare@8cbec3f04d5b4a768c52941a5468c4b71436509e" ]; # v0.2.1
|
||||
hash = "sha256-2D7dnG50CwtCho+U+iHmSj2w14zllQXPjmTHr6lJZ/A=";
|
||||
};
|
||||
nmasur.presets.services.caddy.tlsPolicies = [
|
||||
@@ -159,8 +159,9 @@ in
|
||||
requires = [ "cloudflare-api-secret.service" ];
|
||||
script =
|
||||
let
|
||||
args =
|
||||
[ "--cache-file /var/lib/cloudflare-dyndns/ip.cache" ]
|
||||
args = [
|
||||
"--cache-file /var/lib/cloudflare-dyndns/ip.cache"
|
||||
]
|
||||
++ (if config.services.cloudflare-dyndns.ipv4 then [ "-4" ] else [ "-no-4" ])
|
||||
++ (if config.services.cloudflare-dyndns.ipv6 then [ "-6" ] else [ "-no-6" ])
|
||||
++ lib.optional config.services.cloudflare-dyndns.deleteMissing "--delete-missing"
|
||||
|
@@ -24,6 +24,11 @@ in
|
||||
|
||||
# Enable automatic timezone updates based on location
|
||||
services.automatic-timezoned.enable = lib.mkDefault true;
|
||||
services.geoclue2 = {
|
||||
# see: https://github.com/NixOS/nixpkgs/issues/68489#issuecomment-1484030107
|
||||
enableDemoAgent = lib.mkForce true;
|
||||
geoProviderUrl = "https://beacondb.net/v1/geolocate";
|
||||
};
|
||||
|
||||
# Allow reading from Windows drives
|
||||
boot.supportedFilesystems = [ "ntfs" ];
|
||||
|
Reference in New Issue
Block a user