confix/nixos/cli.nix

137 lines
2.6 KiB
Nix

# CLI configuration.nix
{ config, lib, pkgs, inputs, user, ... }:
{
imports = [
./base.nix
];
environment = {
localBinInPath = true;
variables = {
#MAILRC="$XDG_CONFIG_HOME/mail/mailrc"
#allowing environmental variable is needed for a mosh connection
LC_CTYPE = "en_US.UTF-8";
};
};
services = {
samba = {
enable = true;
# You will still need to set up the user accounts to begin with:
# $ sudo smbpasswd -a yourusername
# This adds to the [global] section:
extraConfig = ''
browseable = yes
smb encrypt = required
'';
shares = {
homes = {
browseable = "no"; # note: each home will be browseable; the "homes" share will not.
"read only" = "no";
"guest ok" = "no";
};
};
};
# mDNS
# This part may be optional for your needs, but I find it makes browsing in Dolphin easier,
# and it makes connecting from a local Mac possible.
avahi = {
enable = true;
nssmdns4 = true;
publish = {
enable = true;
addresses = true;
domain = true;
hinfo = true;
userServices = true;
workstation = true;
};
extraServiceFiles = {
smb = ''
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h</name>
<service>
<type>_smb._tcp</type>
<port>445</port>
</service>
</service-group>
'';
};
};
};
sound.enable = true;
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
#jack.enable = true;
wireplumber.enable = true;
};
users.users.${user.name}.packages = with pkgs; [
bashmount
btfs
catgirl
cava
cifs-utils
cmus
curlie
dig
dogdns
dstat
dua
exiftool
ffmpeg
fq
fx
gitui
glow
gpg-tui
gping
gron
gum
hexyl
htmlq
hugo
iftop
imagemagick
ipcalc
ipfetch
iptraf-ng
jo
john
jq
killall
lynis
mdp
mediainfo
mosh
nb
nethogs
oed
pdfgrep
phetch
pinentry
profanity
recutils
senpai
shellcheck
sic
sipcalc
ssss
surfraw
tmux-xpanes
toot
unrar
unzip
up
ueberzugpp
yai
yank
yq-go
yt-dlp
];
}