feat(nix): add LocalSend (file transfer), nixpkgs-fmt (formatter for .nix)

This commit is contained in:
spy4x 2024-03-10 18:29:35 +08:00
parent 7b833b9955
commit 23c3f79964

View File

@ -9,7 +9,8 @@ let
in in
{ {
imports = imports =
[ # Include the results of the hardware scan. [
# Include the results of the hardware scan.
./hardware-configuration.nix ./hardware-configuration.nix
] ++ lib.optional (builtins.pathExists sshConfigPath) sshConfigPath; ] ++ lib.optional (builtins.pathExists sshConfigPath) sshConfigPath;
@ -20,6 +21,15 @@ in
networking.hostName = "spy4x-pc"; networking.hostName = "spy4x-pc";
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
networking = {
firewall = {
enable = true;
allowedTCPPorts = [
80 # Web server to debug apps from mobile
53317 # LocalSend
];
};
};
# Allow install "unfree" apps, like Google Chrome or WebStorm # Allow install "unfree" apps, like Google Chrome or WebStorm
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
@ -81,31 +91,33 @@ in
packages = with pkgs; [ packages = with pkgs; [
# Shell tools # Shell tools
git git
gnumake # Source for "make" command gnumake # Source for "make" command
htop # System monitor viewer htop # System monitor viewer
unzip unzip
killall # Kill processes by name instead of PID killall # Kill processes by name instead of PID
ncdu # Disk space usage stats, per folder, nested ncdu # Disk space usage stats, per folder, nested
libwebp # Convert images into .webp format libwebp # Convert images into .webp format
wl-clipboard # Wayland's clipboard copy/paste cli tools wl-clipboard # Wayland's clipboard copy/paste cli tools
tree tree
nixpkgs-fmt # Formatter for .nix files. Like Prettier.
# Work # Work
nodejs_21 nodejs_21
nodePackages.pnpm nodePackages.pnpm
vscode-fhs # Wrapped variant of vscode which launches in a FHS compatible environment. Should allow for easy usage of extensions without nix-specific modifications. vscode-fhs # Wrapped variant of vscode which launches in a FHS compatible environment. Should allow for easy usage of extensions without nix-specific modifications.
jetbrains.webstorm jetbrains.webstorm
upwork upwork
slack slack
ffmpeg # for Roley project ffmpeg # for Roley project
awscli awscli
# Other # Other
google-chrome google-chrome
bitwarden # Password manager client bitwarden # Password manager client
vlc vlc
obs-studio # Video recorder and stream software obs-studio # Video recorder and stream software
solaar # Logitech devices GUI. Strictly use with sudo, otherwise it doesn't see devices. solaar # Logitech devices GUI. Strictly use with sudo, otherwise it doesn't see devices.
localsend # Share files/text/data with other devices in local network without internet. OSS alternative to AirDrop.
]; ];
}; };
programs.steam.enable = true; # Install Steam for games management programs.steam.enable = true; # Install Steam for games management
@ -125,4 +137,4 @@ in
systemd.services."autovt@tty1".enable = false; systemd.services."autovt@tty1".enable = false;
system.stateVersion = "23.11"; system.stateVersion = "23.11";
} }