aboutsummaryrefslogtreecommitdiff
path: root/packages.nix
blob: 01da6465e65245b0410572853a6c2f53345d3395 (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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
{ pkgs, config, ... }:

let
  localPkgs = import ./packages/default.nix { pkgs = pkgs; };
  customPackages = [
    localPkgs.sensible-apps
    localPkgs.shotkey
    localPkgs.dwm
    localPkgs.dwmblocks
    localPkgs.st
    localPkgs.dmenu
    localPkgs.anypinentry
    localPkgs.bslock
  ];

  devPackages = with pkgs; [
    # Dev
    neovim
    silver-searcher
    ripgrep
    ctags
    fzf

    git
    yarn

    nodejs-15_x
    python3
    rustup
    ghc

    rnix-lsp
    ccls
    haskell-language-server
  ];

  apps = with pkgs; [
    # Browser
    qutebrowser
    firefox
    brave

    # Media
    mpv
    sxiv
    youtube-dl
    imagemagick
  ];

  utils = with pkgs; [
    w3m
    mtm
    lf
    libnotify
    dunst
    pass
    xcwd
    alsaUtils
    unzip
    curl
    jq
    lsd
    wget
    gotop
    killall
    inxi
    pciutils
    udiskie
    feh
    # picom
    ffmpeg-full
    # nm-applet

    # X stuff
    xorg.xinit
    xorg.xrandr
    xorg.xmodmap
    xorg.xbacklight
    xclip
  ];
in {

  # Overlays
  nixpkgs.overlays = [
    (import ./external/nvim/neovim.nix)
    (import ./external/qutebrowser/overlay.nix)
    (self: super: {
      pass = super.pass.override { dmenu = localPkgs.dmenu; };
    })
  ];

  # Packages
  environment.systemPackages = devPackages ++ customPackages ++ apps ++ utils;

  # Security wrappers
  security.wrappers = {
    bslock.source = "${localPkgs.bslock}/bin/bslock";
  };
}