summaryrefslogtreecommitdiff
path: root/systems/hermes/programs.nix
blob: 1a5825050e3e284f1d8af263c92d90050986e388 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
{inputs, pkgs, ...}: {
  imports = [
    ../../components/programs/git.nix
    ../../components/programs/fonts.nix
    ../../components/programs/games.nix

    inputs.home-manager.nixosModules.home-manager
  ];

  nixpkgs.config.allowUnfree = true;

  # Packages
  environment.systemPackages = with pkgs; [
    # CLI tools
    wget dig ascii file fastfetch eza btop dysk

    # Remote tools
    openssh rsync wireguard-tools kubectl

    # Coding
    tmux vim alacritty zed-editor claude-code
    nil nixd

    # External devices
    exfat ntfs3g android-tools

    # Internet
    librewolf thunderbird feather

    # Secret management
    keepassxc veracrypt

    # Media
    vlc ffmpeg yt-dlp
    gpu-screen-recorder gpu-screen-recorder-gtk

    # Home manager
    inputs.home-manager.packages.${stdenv.hostPlatform.system}.home-manager

    # Custom packages
    inputs.obdautodoctor-nix.packages.${stdenv.hostPlatform.system}.default
  ];

  # Nix linker
  programs.nix-ld.enable = true;

  # AppImages
  programs.appimage = {
    enable = true;
    binfmt = true;
  };

  # Virtualisation
  virtualisation = {
    docker.enable = true;
    libvirtd.enable = true;
    spiceUSBRedirection.enable = true;
  };

  users.extraGroups = {
    "docker".members = [ "leo" ];
    "libvirtd".members = [ "leo" ];
  };

  programs.virt-manager.enable = true;

  # Custom modules
  git.enable = true;
  fonts.enable = true;
  games.enable = true;
}