nixos/common.nix
2026-03-28 12:19:20 +00:00

116 lines
3.6 KiB
Nix

# Common.nix
{ config, pkgs, lib, ... }:
let
home-manager = builtins.fetchTarball {
url = "https://github.com/nix-community/home-manager/archive/master.tar.gz";
};
in
{
imports = [
(import "${home-manager}/nixos")
# Hosts #
./hosts/FredOS-Gaming.nix
./hosts/FredOS-Macbook.nix
./hosts/FredOS-Mediaserver.nix
# Generic settings #
./settings/gnome.nix
./settings/locale.nix
./settings/audio.nix
./settings/users.nix
./apps/fastfetch.nix
./apps/flatpaks.nix
# Services #
./services/server-permissions.nix
#./services/game-servers.nix
./services/qbittorrent-nox.nix
./services/nginx.nix
./services/go2rtc.nix
./services/sonarr.nix
./services/radarr.nix
./services/prowlarr.nix
./services/jellyfin.nix
./services/bazarr.nix
./services/cloudflare-ddns.nix
./services/omnisearch.nix
];
### Make build time quicker
documentation.nixos.enable = false;
# Home Manager #
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.fred = import ./home-manager/fred.nix;
#############################################################################
# Make boot time quicker
boot.loader.timeout = 5;
boot.loader.systemd-boot.configurationLimit = 5;
systemd.services.NetworkManager-wait-online.enable = false;
systemd.services.systemd-udev-settle.enable = false;
systemd.services.firewall = {
wantedBy = lib.mkForce [ ];
after = [ "multi-user.target" ];
};
boot.initrd.systemd.enable = true;
boot.initrd.verbose = false;
#############################################################################
# Use latest kernel
boot.kernelPackages = pkgs.linuxPackages_latest;
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
# Enable network-manager
networking.networkmanager.enable = true;
networking.nameservers = [ "1.1.1.1" "9.9.9.9" ];
#networking.nftables.enable = true;
# Shell aliases
environment.shellAliases = {
update = "sudo nixos-rebuild switch --flake github:ediblerope/nixos-config --refresh --no-write-lock-file";
#update = ''
# CHANNEL=$(sudo nix-channel --list | grep "^nixos " | awk '{print $2}')
# if [[ "$CHANNEL" != *"nixos-unstable"* ]]; then
# echo "Switching to nixos-unstable channel..."
# sudo nix-channel --add https://nixos.org/channels/nixos-unstable nixos
# sudo nix-channel --update
# fi
#
# # Add nix-flatpak channel if not present
# if ! sudo nix-channel --list | grep -q "nix-flatpak"; then
# echo "Adding nix-flatpak channel..."
# sudo nix-channel --add https://github.com/gmodena/nix-flatpak/archive/main.tar.gz nix-flatpak
# fi
#
# sudo nix-channel --update
# echo "Cleaning Flatpak state cache..."
# sudo rm -f /nix/var/nix/gcroots/flatpak-state.json
# sudo nixos-rebuild switch --upgrade --option tarball-ttl 0
#
# # Manually reapply wallpaper settings
# dconf write /org/gnome/desktop/background/picture-uri "'file://''${HOME}/.local/share/backgrounds/wallpaper.png'"
# dconf write /org/gnome/desktop/background/picture-uri-dark "'file://''${HOME}/.local/share/backgrounds/wallpaper.png'"
# dconf write /org/gnome/desktop/background/picture-options "'zoom'"
#'';
clean = "sudo nix-collect-garbage -d";
ll = "ls -alh";
clear = "command clear && fastfetch --config /etc/fastfetch/config.jsonc";
reboot = "systemctl reboot";
};
# Add packages
environment.systemPackages = with pkgs; [
git
localsend
onlyoffice-desktopeditors
#adwaita-icon-theme
#mission-center
];
}