summaryrefslogblamecommitdiff
path: root/os/common/configuration.nix
blob: 57d40c46986bba7b31f13bf78c838f96f297e9e8 (plain) (tree)
1
2
3
4
5
6
7
8
9
                               
                                    
    

                                  
                                     
    
             
                     

                             
 
                      
                               
    
 
                                


                                 




                                





                                                                                                  
          
                                              
                                              
    
 

                        
                       
                                 

    
                               
                             
                            


                            
 

                                                                             
 
{ config, pkgs, lib, ... }: let
  host = config.networking.hostName;
in {
  disabledModules = [
    "services/networking/pppd.nix"
    "services/mail/stalwart-mail.nix"
  ];
  imports = [
    ./modules/nix.nix
    ./modules/user.nix
    ./modules/environment.nix

    ./modules/pppd.nix
    ./modules/stalwart-mail.nix
  ];

  system.stateVersion = "24.11";
  time.timeZone = "Asia/Kolkata";
  networking.useDHCP = false;

  swapDevices = lib.mkDefault [{
    device = "/swapfile";
    size = 2048; # 2GB
  }];

  services.udev.extraRules = let
    cmd = "${pkgs.systemd}/bin/systemctl hibernate";
  in ''
    SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", ATTR{capacity}=="[0-5]", RUN+="${cmd}"
  '';

  sops = {
    defaultSopsFile = ../${host}/secrets.yaml;
    age.keyFile = "/var/secrets/${host}.sops";
  };

  boot = {
    tmp.useTmpfs = true;
    loader.timeout = 1;
    initrd.systemd.enable = true;
  };

  programs.bash.promptInit = ''
    if [ "$UID" -ne 0 ]; then
        PROMPT_COLOR="1;32m"
    else
        PROMPT_COLOR="1;31m"
    fi

    PS1="\[\033[$PROMPT_COLOR\][\[\e]0;\u@\h: \w\a\]\u@\h:\w]\\$\[\033[0m\] "
  '';
}