citadel

My dotfiles, scripts and nix configs
git clone git://jb55.com/citadel
Log | Files | Refs | README | LICENSE

config.nix (9382B)


      1 { pkgs }:
      2 let #monstercatPkgs = import <monstercatpkgs> { inherit pkgs; };
      3     #haskellOverrides = import ./haskell-overrides { inherit monstercatPkgs; };
      4     jb55pkgs = import <jb55pkgs> { inherit pkgs; };
      5     callPackage = pkgs.callPackage;
      6     doJailbreak = pkgs.haskell.lib.doJailbreak;
      7     dontCheck = pkgs.haskell.lib.dontCheck;
      8     regularFiles = builtins.filterSource (f: type: type == "symlink"
      9                                                 || type == "directory"
     10                                                 || type == "regular");
     11 in {
     12   allowUnfree = true;
     13   allowUnfreeRedistributable = true;
     14   android_sdk.accept_license = true;
     15   allowBroken = false;
     16   checkMeta = true;
     17   zathura.useMupdf = true;
     18   cudaSupport = false;
     19   rocmSupport = false;
     20   #android_sdk.accept_license = true;
     21 
     22   packageOverrides = super: rec {
     23     qutebrowser = super.qutebrowser.override {
     24       enableWideVine = true;
     25     };
     26 
     27     #qemu = super.qemu.override {
     28     #  smbdSupport = true;
     29     #};
     30 
     31 /*
     32     mpv = pkgs.wrapMpv pkgs.mpv-unwrapped {
     33       scripts = [ pkgs.mpvScripts.mpris ];
     34     };
     35     */
     36 
     37     # /run/current-system/sw/bin/ls $HOME/.emacs.d/elpa | sed 's/-[[:digit:]].*//g;s/\+$/-plus/g' | sort -u
     38     #emacs = super.emacsHead;
     39     nur = import (builtins.fetchTarball {
     40       url = "https://github.com/nix-community/NUR/archive/cff4dfbe6d6f4ab14560234fcf2d73332ee3ecc1.tar.gz";
     41       sha256 = "01yxz6w820vryirrwkmsnxkmvp35dncjp1n8fdfsq4n0r28nw31a";
     42     }) {
     43       inherit pkgs;
     44     };
     45 
     46     msmtp = pkgs.lib.overrideDerivation super.msmtp (attrs: {
     47       patches = [
     48         (super.fetchurl {
     49           url = "https://jb55.com/s/msmtpq-custom-conn-test.patch";
     50           sha256 = "4d342ea9e757fe5f3fd939479c4b619dcc9630ba9d0bdacf5ccfec9b5b67b861";
     51         })
     52       ];
     53     });
     54 
     55     neomutt = pkgs.lib.overrideDerivation super.neomutt (attrs: {
     56       postConfigure = ''
     57         sed -i '/HAVE_CURS_SET 1/d' config.h
     58       '';
     59     });
     60 
     61     #weechat = super.weechat.override {configure = {availablePlugins, ...}: {
     62     #    scripts = with super.weechatScripts; [ wee-slack weechat-matrix ];
     63     #  };
     64     #};
     65 
     66     #dunst = pkgs.lib.overrideDerivation super.dunst (attrs: {
     67     #  src = pkgs.fetchFromGitHub {
     68     #    owner = "jb55";
     69     #    repo  = "dunst";
     70     #    rev   = "138edff170e4e4a2bf6891bd634c4ec215d4b7ef";
     71     #    sha256 = "1pf3v4mrcd0cfhvm9fk9nwvgj5dy6qlbs0mhlcyx26cbqxd62brp";
     72     #  };
     73     #});
     74 
     75     #lastpass-cli = super.lastpass-cli.override { guiSupport = true; };
     76 
     77     wine = super.wineWowPackages.staging;
     78 
     79     #phonectl = super.python3Packages.callPackage (import (super.fetchFromGitHub {
     80     #  owner  = "jb55";
     81     #  repo   = "phonectl";
     82     #  sha256 = "0wqpwg32qa1rzpw7881r6q2zklxlq1y4qgyyy742pihfh99rkcmj";
     83     #  rev    = "de0f37a20d16a32a73f9267860302357b2df0c20";
     84     #})) {};
     85 
     86     #htop = pkgs.lib.overrideDerivation super.htop (attrs: {
     87     #  patches =
     88     #    [ (super.fetchurl
     89     #      { url = "https://jb55.com/s/htop-vim.patch";
     90     #        sha256 = "3d72aa07d28d7988e91e8e4bc68d66804a4faeb40b93c7a695c97f7d04a55195";
     91     #      })
     92     #      (super.fetchurl
     93     #      { url = "https://jb55.com/s/0001-Improving-Command-display-sort.patch";
     94     #        sha256 = "2207dccce7f9de0c3c6f56d846d7e547c96f63c8a4659ef46ef90c3bd9a013d1";
     95     #      })
     96     #    ];
     97     #});
     98 
     99     ds4ctl = super.callPackage ./scripts/ds4ctl { };
    100 
    101     haskellEnvHoogle = haskellEnvFun {
    102       name = "haskellEnvHoogle";
    103       #compiler = "ghc821";
    104       withHoogle = true;
    105     };
    106 
    107     haskellEnv = haskellEnvFun {
    108       name = "haskellEnv";
    109       #compiler = "ghc821";
    110       withHoogle = false;
    111     };
    112 
    113     haskell-tools = super.buildEnv {
    114       name = "haskell-tools";
    115       paths = haskellTools super.haskellPackages;
    116     };
    117 
    118     jb55-tools-env = pkgs.buildEnv {
    119       name = "jb55-tools";
    120       paths = with jb55pkgs; [
    121         csv-delim
    122         csv-scripts
    123         dbopen
    124         extname
    125         mandown
    126         snap
    127         sharefile
    128         samp
    129       ];
    130     };
    131 
    132     jvm-tools-env = pkgs.buildEnv {
    133       name = "jvm-tools";
    134       paths = with pkgs; [
    135         gradle
    136         maven
    137         oraclejdk
    138       ];
    139     };
    140 
    141     gaming-env = pkgs.buildEnv {
    142       name = "gaming";
    143       paths = with pkgs; [
    144         steam
    145       ];
    146     };
    147 
    148     file-tools = pkgs.buildEnv {
    149       name = "file-tools";
    150       paths = with pkgs; [
    151         ripgrep
    152         ranger
    153       ];
    154     };
    155 
    156     network-tools = pkgs.buildEnv {
    157       name = "network-tools";
    158       paths = with pkgs; with xorg; [
    159         nmap
    160         dnsutils
    161         whois
    162         nethogs
    163       ];
    164     };
    165 
    166     system-tools = pkgs.buildEnv {
    167       name = "system-tools";
    168       paths = with pkgs; with xorg; [
    169         xbacklight
    170         acpi
    171         psmisc
    172       ];
    173     };
    174 
    175     desktop-tools = pkgs.buildEnv {
    176       name = "desktop-tools";
    177       paths = with pkgs; with xorg; [
    178         twmn
    179         libnotify
    180       ];
    181     };
    182 
    183     syntax-tools = pkgs.buildEnv {
    184       name = "syntax-tools";
    185       paths = with pkgs; [
    186         shellcheck
    187       ];
    188     };
    189 
    190     mail-tools = pkgs.buildEnv {
    191       name = "mail-tools";
    192       paths = with pkgs; [
    193         notmuch
    194         msmtp
    195         muchsync
    196         isync
    197       ];
    198     };
    199 
    200     photo-env = pkgs.buildEnv {
    201       name = "photo-tools";
    202       paths = with pkgs; [
    203         gimp
    204         darktable
    205         rawtherapee
    206         ufraw
    207         dcraw
    208       ];
    209     };
    210 
    211     git-tools = pkgs.buildEnv {
    212       name = "git-tools";
    213       paths = with pkgs; [
    214         diffstat
    215         diffutils
    216         gist
    217         git-series
    218         gitAndTools.git-extras
    219         gitAndTools.git-absorb
    220         gitAndTools.delta
    221         gitAndTools.gitFull
    222         github-release
    223         patch
    224         patchutils
    225       ];
    226     };
    227 
    228     haskellEnvFun = { withHoogle ? false, compiler ? null, name }:
    229       let hp = if compiler != null
    230                  then super.haskell.packages.${compiler}
    231                  else super.haskellPackages;
    232 
    233           ghcWith = if withHoogle
    234                       then hp.ghcWithHoogle
    235                       else hp.ghcWithPackages;
    236 
    237       in super.buildEnv {
    238         name = name;
    239         paths = [(ghcWith myHaskellPackages)];
    240       };
    241 
    242     haskellTools = hp: with hp; [
    243       alex
    244       cabal-install
    245       cabal2nix
    246       #stack2nix
    247       hpack
    248       ghc-core
    249       happy
    250       (dontCheck hasktags)
    251       hindent
    252       hlint
    253       structured-haskell-mode
    254       haskell-ci
    255     ];
    256 
    257     myHaskellPackages = hp: with hp; [
    258       Boolean
    259       Decimal
    260       HTTP
    261       HUnit
    262       MissingH
    263       QuickCheck
    264       SafeSemaphore
    265       aeson
    266       aeson-qq
    267       async
    268       attoparsec
    269       base32string
    270       base58-bytestring
    271       bifunctors
    272       unliftio
    273       blaze-builder
    274       blaze-builder-conduit
    275       blaze-html
    276       blaze-markup
    277       cased
    278       cassava
    279       cereal
    280       colour
    281       comonad
    282       comonad-transformers
    283       directory
    284       dlist
    285       dlist-instances
    286       doctest
    287       either
    288       elm-export
    289       elm-export-persistent
    290       exceptions
    291       filepath
    292       fingertree
    293       foldl
    294       formatting
    295       free
    296       generics-sop
    297       hamlet
    298       hashable
    299       hashids
    300       here
    301       heroku
    302       hedgehog
    303       hspec
    304       hspec-expectations
    305       html
    306       http-client
    307       http-date
    308       http-types
    309       inline-c
    310       io-memoize
    311       io-storage
    312       keys
    313       language-c
    314       language-javascript
    315       lens
    316       lens-action
    317       lens-aeson
    318       lens-datetime
    319       lens-family
    320       lens-family-core
    321       lifted-async
    322       lifted-base
    323       linear
    324       list-extras
    325       logict
    326       mbox
    327       mime-mail
    328       mime-types
    329       mmorph
    330       monad-control
    331       monad-coroutine
    332       monad-loops
    333       monad-par
    334       monad-par-extras
    335       monad-stm
    336       monadloc
    337       neat-interpolation
    338       network
    339       newtype
    340       numbers
    341       options
    342       optparse-applicative
    343       optparse-generic
    344       pandoc
    345       parsec
    346       megaparsec
    347       parsers
    348       pcg-random
    349       persistent
    350       persistent-postgresql
    351       persistent-template
    352       posix-paths
    353       postgresql-simple
    354       pretty-show
    355       probability
    356       profunctors
    357       pwstore-fast
    358       quickcheck-instances
    359       random
    360       reducers
    361       reflection
    362       regex-applicative
    363       regex-base
    364       regex-compat
    365       regex-posix
    366       relational-record
    367       resourcet
    368       retry
    369       rex
    370       s3-signer
    371       safe
    372       scotty
    373       sqlite-simple
    374       lucid
    375       semigroupoids
    376       semigroups
    377       shake
    378       shakespeare
    379       shqq
    380       simple-reflect
    381       split
    382       spoon
    383       stache
    384       stm
    385       stm-chans
    386       store
    387       stache
    388       streaming
    389       smtp-mail
    390       streaming-bytestring
    391       streaming-wai
    392       strict
    393       stringsearch
    394       strptime
    395       syb
    396       system-fileio
    397       system-filepath
    398       tagged
    399       taggy
    400       taggy-lens
    401       tar
    402       tardis
    403       tasty
    404       tasty-hspec
    405       tasty-hunit
    406       tasty-quickcheck
    407       tasty-smallcheck
    408       temporary
    409       test-framework
    410       test-framework-hunit
    411       text
    412       text-regex-replace
    413       thyme
    414       time
    415       time-units
    416       transformers
    417       transformers-base
    418       turtle
    419       unagi-chan
    420       uniplate
    421       unix-compat
    422       unordered-containers
    423       uuid
    424       vector
    425       void
    426       wai
    427       wai-middleware-static
    428       wai-extra
    429       warp
    430       wreq
    431       xhtml
    432       xml-lens
    433       yaml
    434       zippers
    435       zlib
    436     ];
    437   };
    438 }