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 }