├── .gitignore ├── hardware ├── README.md └── xps.nix ├── pkgs ├── cal-wallpaper │ ├── source.png │ └── default.nix ├── neo4j.nix ├── nix-zsh-completions.nix ├── cilium.nix ├── julia │ ├── generate_sysimage.jl │ ├── startup.jl │ ├── fetchgit │ │ ├── builder.sh │ │ ├── default.nix │ │ └── nix-prefetch-git │ ├── Project.toml │ ├── gr.nix │ ├── transcript.jl │ ├── default.nix │ ├── common.nix │ ├── trace.jl │ └── Manifest.toml ├── xsecurelock.nix ├── git.nix ├── direnv.nix ├── dunst │ ├── default.nix │ └── dunstrc.ini ├── rofi.nix ├── lemonbar-xft │ ├── default.nix │ └── status.py ├── signal-desktop.nix ├── alacritty.nix ├── mx-puppet-discord │ └── default.nix ├── foliate.nix ├── zsh │ ├── prompt.sh │ └── default.nix └── vscode.nix ├── README.md ├── theme.nix ├── flake.nix ├── profile.nix ├── flake.lock ├── i3-config.nix └── configuration.nix /.gitignore: -------------------------------------------------------------------------------- 1 | result 2 | secrets 3 | -------------------------------------------------------------------------------- /hardware/README.md: -------------------------------------------------------------------------------- 1 | This is for files generates by `nixos-generate-config`, generally related to filesystems. -------------------------------------------------------------------------------- /pkgs/cal-wallpaper/source.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aaronjanse/dotfiles/HEAD/pkgs/cal-wallpaper/source.png -------------------------------------------------------------------------------- /pkgs/cal-wallpaper/default.nix: -------------------------------------------------------------------------------- 1 | { runCommand, imagemagick, theme }: 2 | 3 | runCommand "call-wallpaper.png" { } '' 4 | ${imagemagick}/bin/convert ${./source.png} -fuzz 16% -fill "${theme.background}" -opaque "#181920" $out 5 | '' 6 | -------------------------------------------------------------------------------- /pkgs/neo4j.nix: -------------------------------------------------------------------------------- 1 | { neo4j }: 2 | neo4j.overrideAttrs (attrs: { 3 | installPhase = attrs.installPhase + '' 4 | patchShebangs $out/share/neo4j/bin/neo4j-admin 5 | # user will be asked to change password on first login 6 | $out/bin/neo4j-admin set-initial-password neo4j 7 | ''; 8 | }) -------------------------------------------------------------------------------- /pkgs/nix-zsh-completions.nix: -------------------------------------------------------------------------------- 1 | { nix-zsh-completions, fetchFromGitHub }: 2 | 3 | nix-zsh-completions.overrideAttrs (attrs: { 4 | src = fetchFromGitHub { 5 | owner = "ma27"; 6 | repo = "nix-zsh-completions"; 7 | rev = "939c48c182e9d018eaea902b1ee9d00a415dba86"; 8 | sha256 = "sha256-3HVYez/wt7EP8+TlhTppm968Wl8x5dXuGU0P+8xNDpo="; 9 | }; 10 | }) 11 | -------------------------------------------------------------------------------- /pkgs/cilium.nix: -------------------------------------------------------------------------------- 1 | { lib, fetchFromGitHub, buildGoModule }: 2 | buildGoModule rec { 3 | pname = "cilium"; 4 | version = "1.9.1"; 5 | vendorSha256 = null; 6 | doCheck = false; 7 | src = fetchFromGitHub { 8 | owner = "cilium"; 9 | repo = "cilium"; 10 | rev = "v${version}"; 11 | sha256 = "sha256-SpGxzwXwOgWrA8hFvBmq2Zrwa+aem7BMzHuYvV6ei+c="; 12 | }; 13 | } 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | This is a collection of my dotfiles, written in Nix. 2 | 3 | ### Profiles 4 | 5 | I use `nix profile` to manage which packages I have installed. More specifically, I install the `buildEnv` packages in [profile.nix](./profile.nix). To try out the small set of tools I share across my laptop and servers, run: 6 | 7 | ``` 8 | nix shell github:aaronjanse/dotfiles#profiles.common 9 | ``` 10 | -------------------------------------------------------------------------------- /pkgs/julia/generate_sysimage.jl: -------------------------------------------------------------------------------- 1 | using Pkg 2 | 3 | Pkg.activate(".") 4 | 5 | using PackageCompiler 6 | 7 | import Pluto, REPL, PEG, Plots, UnicodePlots, REPLComboShell 8 | import InteractiveUtils 9 | 10 | create_sysimage([ 11 | :Pluto, :REPL, :PEG, :Plots, :UnicodePlots, :REPLComboShell, 12 | :InteractiveUtils 13 | ], sysimage_path=ARGS[2], precompile_statements_file=ARGS[1], 14 | ) 15 | -------------------------------------------------------------------------------- /pkgs/julia/startup.jl: -------------------------------------------------------------------------------- 1 | using REPLComboShell 2 | 3 | atreplinit() do repl 4 | REPLComboShell.setup_repl(repl, "ajanse") 5 | 6 | delete!(ENV, "JULIA_BINDIR") 7 | delete!(ENV, "JULIA_LOAD_PATH") 8 | delete!(ENV, "JULIA_DEPOT_PATH") 9 | end 10 | 11 | using InteractiveUtils 12 | ENV["EDITOR"] = "kak" 13 | InteractiveUtils.define_editor("kak", wait = true) do cmd, path, line 14 | `$cmd +$line $path` 15 | end 16 | 17 | -------------------------------------------------------------------------------- /pkgs/xsecurelock.nix: -------------------------------------------------------------------------------- 1 | { xsecurelock, symlinkJoin, makeWrapper }: 2 | symlinkJoin 3 | { 4 | name = "xsecurelock-custom"; 5 | paths = [ 6 | xsecurelock 7 | ]; 8 | buildInputs = [ makeWrapper ]; 9 | 10 | # https://github.com/google/xsecurelock/issues/97 11 | postBuild = '' 12 | wrapProgram $out/bin/xsecurelock \ 13 | --set XSECURELOCK_PASSWORD_PROMPT time_hex \ 14 | --add-flags "--backend glx" 15 | ''; 16 | } 17 | -------------------------------------------------------------------------------- /pkgs/git.nix: -------------------------------------------------------------------------------- 1 | { gitFull, symlinkJoin, makeWrapper }: 2 | 3 | symlinkJoin { 4 | name = "git-custom"; 5 | paths = [ gitFull ]; 6 | buildInputs = [ makeWrapper ]; 7 | postBuild = '' 8 | wrapProgram $out/bin/git \ 9 | --set-default GIT_AUTHOR_NAME 'Aaron Janse' \ 10 | --set-default GIT_AUTHOR_EMAIL 'aaron@ajanse.me' \ 11 | --set-default GIT_COMMITTER_NAME 'Aaron Janse' \ 12 | --set-default GIT_COMMITTER_EMAIL 'aaron@ajanse.me' 13 | ''; 14 | } 15 | -------------------------------------------------------------------------------- /pkgs/direnv.nix: -------------------------------------------------------------------------------- 1 | { direnv, nix-direnv, symlinkJoin, writeText, makeWrapper }: 2 | 3 | let config = writeText "alacritty.yaml" '' 4 | source ${nix-direnv}/share/nix-direnv/direnvrc 5 | ''; in 6 | symlinkJoin 7 | { 8 | name = "direnv-custom"; 9 | paths = [ direnv ]; 10 | buildInputs = [ makeWrapper ]; 11 | postBuild = '' 12 | mkdir $out/direnv 13 | cp ${config} $out/direnv/direnvrc 14 | wrapProgram $out/bin/direnv \ 15 | --set XDG_CONFIG_HOME $out \ 16 | --set DIRENV_LOG_FORMAT "$(printf "\033[1;30m %%s\033[0m")" 17 | ''; 18 | } 19 | -------------------------------------------------------------------------------- /pkgs/julia/fetchgit/builder.sh: -------------------------------------------------------------------------------- 1 | # tested so far with: 2 | # - no revision specified and remote has a HEAD which is used 3 | # - revision specified and remote has a HEAD 4 | # - revision specified and remote without HEAD 5 | source $stdenv/setup 6 | 7 | header "exporting $url (rev $rev) into $out" 8 | 9 | $SHELL $fetcher --builder --url "$url" --out "$out" --rev "$rev" \ 10 | ${leaveDotGit:+--leave-dotGit} \ 11 | ${deepClone:+--deepClone} \ 12 | ${fetchSubmodules:+--fetch-submodules} \ 13 | ${branchName:+--branch-name "$branchName"} 14 | 15 | runHook postFetch 16 | stopNest 17 | -------------------------------------------------------------------------------- /pkgs/dunst/default.nix: -------------------------------------------------------------------------------- 1 | { dunst, symlinkJoin, makeWrapper, fetchFromGitHub }: 2 | symlinkJoin 3 | { 4 | name = "dunst-custom"; 5 | paths = [ 6 | (dunst.overrideAttrs (attrs: { 7 | src = fetchFromGitHub { 8 | repo = "dunst"; 9 | owner = "dunst-project"; 10 | rev = "0e6997b6fcb9bb89c961597123945bc0075445c9"; 11 | hash = "sha256-SNGrxcQhDflvaN9GWzyA46bVJHpmAWF83ew8zgFxStI="; 12 | }; 13 | })) 14 | ]; 15 | buildInputs = [ makeWrapper ]; 16 | postBuild = '' 17 | wrapProgram $out/bin/dunst --add-flags "-config ${./dunstrc.ini}" 18 | ''; 19 | } 20 | -------------------------------------------------------------------------------- /pkgs/rofi.nix: -------------------------------------------------------------------------------- 1 | { rofi, writeText, theme }: 2 | 3 | rofi.override { 4 | # see https://manpages.ubuntu.com/manpages/bionic/man5/rofi-theme.5.html 5 | theme = writeText "rofi-theme" '' 6 | * { 7 | background-color: ${theme.background}; 8 | color: #fafbfc; 9 | font: "Roboto Mono 24"; 10 | } 11 | window { 12 | lines: 20; 13 | width: 800px; 14 | padding: 25px; 15 | border: 2px; 16 | border-color: #ffffff; 17 | } 18 | listview { 19 | lines: 15; 20 | } 21 | #element.selected.normal { 22 | color: #bd93f9; 23 | } 24 | #prompt { 25 | enabled: false; 26 | } 27 | ''; 28 | } 29 | -------------------------------------------------------------------------------- /pkgs/lemonbar-xft/default.nix: -------------------------------------------------------------------------------- 1 | { lemonbar-xft, runCommand, python36, fetchFromGitHub, alsaUtils, mullvad-vpn, playerctl, theme }: 2 | 3 | runCommand "lemonbar-custom" 4 | { 5 | LEMONBAR = lemonbar-xft.overrideAttrs (attrs: { 6 | src = fetchFromGitHub { 7 | owner = "freundTech"; 8 | repo = "bar"; 9 | rev = "2cc9282bdb24458c0954c3f311031116ee305eec"; 10 | hash = "sha256-KGntGag5ASm5LOHzyEr8HroVaItK1dIZP8H7FhM5wl8="; 11 | }; 12 | }); 13 | PYTHON = python36.withPackages (ps: with ps; [ psutil i3ipc ]); 14 | } '' 15 | mkdir -p $out/bin 16 | cat > $out/bin/lemonbar << EOF 17 | export PATH=${alsaUtils}/bin:${mullvad-vpn}/bin:${playerctl}/bin:\$PATH 18 | $PYTHON/bin/python3 -u ${./status.py} | $LEMONBAR/bin/lemonbar \ 19 | -f "Overpass Mono:pixelsize=25;0" -f "Font Awesome 5 Free:pixelsize=25;0" \ 20 | -f "Font Awesome 5 Free:style=Solid:pixelsize=25;0" -f "Font Awesome 5 Brands:pixelsize=25;0" \ 21 | -f "Source Code Pro:pixelsize=25;0" -u 4 -g x60 -B "${theme.background}" 22 | EOF 23 | chmod +x $out/bin/lemonbar 24 | '' 25 | -------------------------------------------------------------------------------- /theme.nix: -------------------------------------------------------------------------------- 1 | rec { 2 | # text color 3 | foreground = "#f8f8f2"; 4 | # darker background for wallpaper, terminal, etc 5 | background = "#1d1f23"; 6 | # background for primary editing areas in text editors etc 7 | backgroundSecondary = "#21252b"; 8 | 9 | normal = { 10 | black = "#555555"; 11 | blue = "#bd93f9"; 12 | cyan = "#8be9fd"; 13 | green = "#50fa7b"; 14 | magenta = "#ff79c6"; 15 | red = "#ff5555"; 16 | white = "#f8f8f2"; 17 | yellow = "#f1fa8c"; 18 | }; 19 | bright = { 20 | black = "#555555"; 21 | blue = "#bd93f9"; 22 | cyan = "#8be9fd"; 23 | green = "#50fa7b"; 24 | magenta = "#ff79c6"; 25 | red = "#ff5555"; 26 | white = "#ffffff"; 27 | yellow = "#f1fa8c"; 28 | }; 29 | 30 | colors16 = map (builtins.replaceStrings [ "#" ] [ "" ]) [ 31 | background 32 | normal.red 33 | normal.green 34 | normal.yellow 35 | normal.blue 36 | normal.magenta 37 | normal.cyan 38 | normal.white 39 | backgroundSecondary 40 | bright.red 41 | bright.green 42 | bright.yellow 43 | bright.blue 44 | bright.magenta 45 | bright.cyan 46 | bright.white 47 | ]; 48 | } 49 | -------------------------------------------------------------------------------- /pkgs/julia/Project.toml: -------------------------------------------------------------------------------- 1 | [deps] 2 | ConstraintSolver = "e0e52ebd-5523-408d-9ca3-7641f1cd1405" 3 | Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" 4 | HypothesisTests = "09f84164-cd44-5f33-b23f-e6b0d136a0d5" 5 | InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240" 6 | Latexify = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" 7 | Optim = "429524aa-4258-5aef-a3af-852621145aeb" 8 | PEG = "12d937ae-5f68-53be-93c9-3a6f997a20a8" 9 | PackageCompiler = "9b87118b-4619-50d2-8e1e-99f35a4d4d9d" 10 | Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" 11 | Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" 12 | Pluto = "c3e4b0f8-55cb-11ea-2926-15256bba5781" 13 | Primes = "27ebfcd6-29c5-5fa9-bf4b-fb8fc14df3ae" 14 | REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" 15 | REPLComboShell = "7999ad71-703a-42c8-bff7-678f9adb94f9" 16 | ReplMaker = "b873ce64-0db9-51f5-a568-4457d8e49576" 17 | StatsPlots = "f3b207a7-027a-5e70-b257-86293d7955fd" 18 | StringParserPEG = "b0c8ea40-1aeb-11ea-0927-b51424bf2dfe" 19 | SymbolicUtils = "d1185830-fcd6-423d-90d6-eec64667417b" 20 | Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" 21 | UnicodePlots = "b8865327-cd53-5732-bb35-84acbb429228" 22 | Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" 23 | -------------------------------------------------------------------------------- /pkgs/julia/gr.nix: -------------------------------------------------------------------------------- 1 | { stdenv, lib, qt5, libGL, xorg, fetchurl }: 2 | 3 | let 4 | mainDependencies = [ 5 | qt5.qtbase 6 | qt5.qtsvg 7 | stdenv.cc.cc.lib 8 | libGL 9 | xorg.libXt 10 | xorg.libX11 11 | xorg.libXrender 12 | xorg.libXext 13 | ]; 14 | in 15 | stdenv.mkDerivation { 16 | name = "GR.jl"; 17 | version = "4.3.10"; 18 | 19 | src = fetchurl { 20 | url = "https://gr-framework.org/downloads/gr-0.53.0-Debian-x86_64.tar.gz"; 21 | hash = "sha256-sMQslobOR6FIhnPF3V8rb9X7BKz5R7X45vFfTsg91to="; 22 | }; 23 | 24 | dontConfigure = true; 25 | dontBuild = true; 26 | 27 | nativeBuildInputs = [ qt5.wrapQtAppsHook ]; 28 | 29 | installPhase = '' 30 | mkdir -p $out 31 | cp -r ./* $out 32 | ''; 33 | 34 | preFixup = 35 | let 36 | libPath = lib.makeLibraryPath (mainDependencies ++ [ 37 | xorg.libxcb 38 | ]); 39 | in 40 | '' 41 | patchelf \ 42 | --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ 43 | --set-rpath "${libPath}" \ 44 | $out/bin/gksqt 45 | ''; 46 | 47 | propagatedBuildInputs = mainDependencies ++ [ 48 | xorg.libxcb 49 | xorg.xcbproto 50 | xorg.xcbutil 51 | ]; 52 | } 53 | -------------------------------------------------------------------------------- /pkgs/dunst/dunstrc.ini: -------------------------------------------------------------------------------- 1 | [global] 2 | alignment = left 3 | font = Roboto Mono 8 4 | indicate_hidden = yes 5 | format = %a: %s\n%b 6 | icon_position = left 7 | sticky_history = yes 8 | geometry = 500x150-20+20 9 | word_wrap = yes 10 | padding = 25 11 | horizontal_padding = 25 12 | notification_height = 150 13 | max_icon_size = 100 14 | frame_width = 2 15 | frame_color = "#f8f8f8" 16 | corner_radius = 15 17 | transparency = 5 18 | 19 | [urgency_low] 20 | # IMPORTANT: colors have to be defined in quotation marks. 21 | # Otherwise the "#" and following would be interpreted as a comment. 22 | background = "#21252b" 23 | foreground = "#888888" 24 | timeout = 10 25 | # Icon for notifications with low urgency, uncomment to enable 26 | #icon = /path/to/icon 27 | 28 | [urgency_normal] 29 | background = "#21252b" 30 | foreground = "#ffffff" 31 | timeout = 10 32 | # Icon for notifications with normal urgency, uncomment to enable 33 | #icon = /path/to/icon 34 | 35 | [urgency_critical] 36 | background = "#21252b" 37 | foreground = "#ffffff" 38 | frame_color = "#ff0000" 39 | timeout = 0 40 | # Icon for notifications with critical urgency, uncomment to enable 41 | #icon = /path/to/icon 42 | 43 | -------------------------------------------------------------------------------- /pkgs/signal-desktop.nix: -------------------------------------------------------------------------------- 1 | { signal-desktop, theme }: 2 | 3 | signal-desktop.overrideAttrs (oldAttrs: { 4 | preFixup = oldAttrs.preFixup + '' 5 | cp $out/lib/Signal/resources/app.asar $out/lib/Signal/resources/app.asar.bak 6 | cat $out/lib/Signal/resources/app.asar.bak \ 7 | | sed 's/background-color: #f6f6f6;/background-color: ${theme.background};/g' \ 8 | | sed 's/#1b1b1b;/${theme.foreground};/g' \ 9 | | sed 's/#5e5e5e;/${theme.foreground};/g' \ 10 | | sed 's/-color: #ffffff;/-color: ${theme.backgroundSecondary};/g' \ 11 | | sed 's/background: #ffffff;/background: ${theme.backgroundSecondary};/g' \ 12 | | sed 's/#dedede;/#44475a;/g' \ 13 | | sed 's/#e9e9e9;/#44475a;/g' \ 14 | | sed 's/1px solid #ffffff;/1px solid ${theme.backgroundSecondary};/g' \ 15 | | sed 's/#f6f6f6;/${theme.background};/g' \ 16 | | sed 's/#b9b9b9;/#44475a;/g' \ 17 | | sed 's/2px solid #ffffff;/2px solid ${theme.backgroundSecondary};/g' \ 18 | | sed 's/setMenuBarVisibility(visibility);/setMenuBarVisibility(false );/g' \ 19 | | sed 's/setFullScreen(true)/setFullScreen(0==1)/g' \ 20 | > $out/lib/Signal/resources/app.asar 21 | rm $out/lib/Signal/resources/app.asar.bak 22 | ''; 23 | }) 24 | -------------------------------------------------------------------------------- /pkgs/alacritty.nix: -------------------------------------------------------------------------------- 1 | { alacritty, symlinkJoin, writeText, makeWrapper, theme }: 2 | 3 | let config = writeText "alacritty.yaml" (builtins.toJSON { 4 | colors = { 5 | bright = { 6 | black = "#555555"; 7 | blue = "#bd93f9"; 8 | cyan = "#8be9fd"; 9 | green = "#50fa7b"; 10 | magenta = "#ff79c6"; 11 | red = "#ff5555"; 12 | white = "#ffffff"; 13 | yellow = "#f1fa8c"; 14 | }; 15 | normal = { 16 | black = "#555555"; 17 | blue = "#bd93f9"; 18 | cyan = "#8be9fd"; 19 | green = "#50fa7b"; 20 | magenta = "#ff79c6"; 21 | red = "#ff5555"; 22 | white = "#f8f8f2"; 23 | yellow = "#f1fa8c"; 24 | }; 25 | primary = { 26 | background = theme.background; 27 | foreground = "#f8f8f2"; 28 | }; 29 | }; 30 | env.TERM = "xterm-256color"; 31 | font = { 32 | normal.family = "JuliaMono"; 33 | size = 9; 34 | }; 35 | }); in 36 | symlinkJoin 37 | { 38 | name = "alacritty-custom"; 39 | paths = [ 40 | alacritty 41 | ]; 42 | buildInputs = [ makeWrapper ]; 43 | postBuild = '' 44 | mkdir $out/etc 45 | cp ${config} $out/etc/alacritty.yml 46 | wrapProgram $out/bin/alacritty --add-flags "--config-file=$out/etc/alacritty.yml" 47 | ''; 48 | } 49 | -------------------------------------------------------------------------------- /hardware/xps.nix: -------------------------------------------------------------------------------- 1 | { config, lib, pkgs, ... }: 2 | 3 | { 4 | boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; 5 | boot.initrd.kernelModules = [ ]; 6 | boot.kernelModules = [ "kvm-intel" ]; 7 | boot.extraModulePackages = [ ]; 8 | 9 | networking.hostId = "188c5100"; 10 | 11 | fileSystems."/" = { 12 | device = "zzroot/root"; 13 | fsType = "zfs"; 14 | }; 15 | 16 | fileSystems."/nix" = { 17 | device = "zzroot/nix"; 18 | fsType = "zfs"; 19 | }; 20 | 21 | fileSystems."/home" = { 22 | device = "zzroot/home"; 23 | fsType = "zfs"; 24 | }; 25 | 26 | fileSystems."/safe" = { 27 | neededForBoot = true; 28 | device = "zzroot/persist"; 29 | fsType = "zfs"; 30 | }; 31 | 32 | fileSystems."/mnt/code" = { 33 | device = "zzroot/code"; 34 | fsType = "zfs"; 35 | }; 36 | 37 | fileSystems."/annex" = { 38 | neededForBoot = true; 39 | device = "zzroot/annex"; 40 | fsType = "zfs"; 41 | }; 42 | 43 | fileSystems."/home/private" = { 44 | fsType = "tmpfs"; 45 | }; 46 | 47 | fileSystems."/boot" = { 48 | device = "/dev/disk/by-uuid/1752-74D2"; 49 | fsType = "vfat"; 50 | }; 51 | 52 | swapDevices = [ ]; 53 | 54 | nix.maxJobs = lib.mkDefault 12; 55 | powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; 56 | 57 | } 58 | -------------------------------------------------------------------------------- /pkgs/mx-puppet-discord/default.nix: -------------------------------------------------------------------------------- 1 | # This file has been generated by node2nix 1.8.0. Do not edit! 2 | 3 | { stdenv, lib, pkgs, fetchFromGitHub, nodejs, nodePackages, pkg-config, cairo, pango, libpng, libjpeg, giflib, librsvg, makeWrapper, callPackage }: 4 | 5 | let 6 | nodeEnv = import ./node-env.nix { 7 | inherit (pkgs) stdenv python2 utillinux runCommand writeTextFile; 8 | inherit nodejs; 9 | libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; 10 | }; 11 | in 12 | 13 | # { stdenv, pkgs, fetchFromGitHub, nodejs, nodePackages, pkg-config, cairo, pango, libpng, libjpeg, giflib, librsvg, makeWrapper, callPackage }: 14 | 15 | let 16 | src = fetchFromGitHub { 17 | owner = "matrix-discord"; 18 | repo = "mx-puppet-discord"; 19 | rev = "a3b493da2fc4cdf2fe485b93eefc6ec514c12aac"; 20 | sha256 = "sha256-uU8x+wLhfjbTwyDaTBdJQkcRj4d9LQcQvlmAB0oh82M="; 21 | }; 22 | 23 | nodeComposition = callPackage ./node-packages.nix { inherit nodeEnv; }; 24 | 25 | package = nodeComposition.shell.override { 26 | inherit src; 27 | 28 | buildInputs = [ cairo pango libpng libjpeg giflib librsvg ]; 29 | nativeBuildInputs = [ nodePackages.node-pre-gyp nodePackages.node-gyp pkg-config ]; 30 | }; 31 | in 32 | stdenv.mkDerivation rec { 33 | pname = "mx-puppet-discord"; 34 | version = "2020-11-14"; 35 | inherit src; 36 | 37 | buildInputs = [ nodejs makeWrapper ]; 38 | 39 | inherit (package) nodeDependencies; 40 | 41 | buildPhase = '' 42 | ln -s $nodeDependencies/lib/node_modules 43 | npm run-script build 44 | sed -i '1i #!${nodejs}/bin/node\n' build/index.js 45 | ''; 46 | 47 | installPhase = '' 48 | cp -r . $out 49 | mkdir -p $out/bin 50 | chmod a+x $out/build/index.js 51 | makeWrapper $out/build/index.js $out/bin/${pname} 52 | ''; 53 | 54 | meta = with lib; { 55 | platforms = platforms.linux; 56 | }; 57 | } 58 | -------------------------------------------------------------------------------- /pkgs/foliate.nix: -------------------------------------------------------------------------------- 1 | { stdenv 2 | , lib 3 | , fetchFromGitHub 4 | , meson 5 | , ninja 6 | , gettext 7 | , pkgconfig 8 | , python3 9 | , wrapGAppsHook 10 | , gobject-introspection 11 | , gjs 12 | , gtk3 13 | , gsettings-desktop-schemas 14 | , webkitgtk 15 | , glib 16 | , desktop-file-utils 17 | , hicolor-icon-theme 18 | , libarchive 19 | , dict 20 | }: 21 | 22 | stdenv.mkDerivation rec { 23 | pname = "foliate"; 24 | version = "2.5.0"; 25 | 26 | src = fetchFromGitHub { 27 | owner = "johnfactotum"; 28 | repo = pname; 29 | rev = version; 30 | sha256 = "sha256-udRSsTBiIL0178jR9q0XuwJ6hzK/0wcbpHioM5sGDHM="; 31 | }; 32 | 33 | nativeBuildInputs = [ 34 | meson 35 | ninja 36 | pkgconfig 37 | gettext 38 | python3 39 | desktop-file-utils 40 | wrapGAppsHook 41 | hicolor-icon-theme 42 | ]; 43 | 44 | buildInputs = [ 45 | glib 46 | gtk3 47 | gjs 48 | webkitgtk 49 | gsettings-desktop-schemas 50 | gobject-introspection 51 | libarchive 52 | # TODO: Add once packaged, unclear how language packages best handled 53 | # hyphen 54 | dict # dictd for offline dictionary support 55 | ]; 56 | 57 | doCheck = true; 58 | 59 | postPatch = '' 60 | chmod +x build-aux/meson/postinstall.py 61 | patchShebangs build-aux/meson/postinstall.py 62 | ''; 63 | 64 | dontWrapGApps = true; 65 | 66 | # Fixes https://github.com/NixOS/nixpkgs/issues/31168 67 | postFixup = '' 68 | sed -e $'2iimports.package._findEffectiveEntryPointName = () => \'com.github.johnfactotum.Foliate\' ' \ 69 | -i $out/bin/com.github.johnfactotum.Foliate 70 | wrapGApp $out/bin/com.github.johnfactotum.Foliate 71 | ''; 72 | 73 | meta = with lib; { 74 | description = "Simple and modern GTK eBook reader"; 75 | homepage = "https://johnfactotum.github.io/foliate/"; 76 | license = licenses.gpl3Plus; 77 | maintainers = with maintainers; [ dtzWill ]; 78 | }; 79 | } 80 | -------------------------------------------------------------------------------- /pkgs/zsh/prompt.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # if [ -z "$HISTFILE" ]; then 4 | # echo -n '%{%F{red}%}' # red 5 | # echo -n "tmp " 6 | # echo -n '%{%f%}' 7 | # fi 8 | 9 | # echo -n '%{%F{yellow}%}' # yellow 10 | # dirs | sed 's/\/\(.\)[^\/]*/\/\1/g' | sed s'/.$//' | xargs echo -n ; echo -n $(basename "`pwd`") 11 | # echo -n '%{%f%}' 12 | 13 | # echo -n " " 14 | 15 | # branch=$(git rev-parse --abbrev-ref HEAD 2>/dev/null) 16 | # if [ "$branch" ]; then 17 | # echo -n '%{%F{magenta}%}' 18 | # echo -n "$branch " 19 | # echo -n '%{%f%}' 20 | # fi 21 | 22 | # NIXSHELL=$(echo $PATH | tr ':' '\n' | grep '/nix/store' | sed 's#^/nix/store/[a-z0-9]\+-##' | sed 's#-[^-]\+$##' | xargs) 23 | 24 | # if [ "$NIXSHELL" ]; then 25 | # echo -n '%{%F{cyan}%}' # cyan 26 | # #echo -n "$NIXSHELL " 27 | # echo -n "nix " 28 | # echo -n '%{%f%}' 29 | # fi 30 | 31 | # if [[ "$USER" == "root" ]]; then 32 | # echo -n "#" 33 | # elif [[ "$USER" == "private" ]]; then 34 | # echo -n "@" 35 | # else 36 | # echo -n "λ" 37 | # fi 38 | 39 | # echo -n " " 40 | 41 | #!/usr/bin/env bash 42 | 43 | # if [ -z "$HISTFILE" ]; then 44 | # echo -n '%{%F{red}%}' # red 45 | # echo -n "tmp " 46 | # echo -n '%{%f%}' 47 | # fi 48 | 49 | 50 | if [[ "$PWD" == "$HOME" ]]; then 51 | echo -n '%F{magenta}janse>%f %{\e[?25h%}' 52 | # stty sane 53 | else 54 | echo -n '%F{magenta}' # yellow 55 | dirs | sed 's/\/\(.\)[^\/]*/\/\1/g' | sed s'/.$//' | xargs echo -n ; echo -n $(basename "`pwd`") 56 | 57 | # echo -n " " 58 | 59 | # echo -n '%{%F{cyan}%}' # cyan 60 | branch=$(git rev-parse --abbrev-ref HEAD 2>/dev/null) 61 | if [ "$branch" ]; then 62 | echo -n " %F{cyan}$branch" 63 | # echo -n '%{%f%}' 64 | fi 65 | 66 | NIXSHELL=$(echo $PATH | tr ':' '\n' | grep '/nix/store') 67 | 68 | if [ "$NIXSHELL" ]; then 69 | echo -n ' %F{cyan}nix%f' 70 | fi 71 | 72 | echo -n "%F{magenta}" 73 | 74 | if [[ "$USER" == "root" ]]; then 75 | echo -n "#" 76 | else 77 | echo -n ">" 78 | fi 79 | 80 | echo -n '%f %{\e[?25h%}' 81 | fi 82 | -------------------------------------------------------------------------------- /flake.nix: -------------------------------------------------------------------------------- 1 | { 2 | inputs = { 3 | nixpkgs.url = "github:nixos/nixpkgs/nixos-21.05"; 4 | nixops.url = "github:nixos/nixops"; 5 | zbak.url = "github:aaronjanse/zbak"; 6 | }; 7 | 8 | outputs = { self, nixpkgs, ... } @ args: { 9 | nixosConfigurations.xps-ajanse = nixpkgs.lib.nixosSystem { 10 | inherit (self.packages.x86_64-linux) pkgs; 11 | system = "x86_64-linux"; 12 | modules = [ 13 | ./configuration.nix 14 | ./hardware/xps.nix 15 | ]; 16 | }; 17 | 18 | packages = nixpkgs.lib.genAttrs nixpkgs.lib.platforms.all (system: 19 | let 20 | pkgs = import nixpkgs { inherit system; config.allowUnfree = true; }; 21 | theme = import ./theme.nix; 22 | in 23 | { 24 | pkgs = pkgs // removeAttrs self.packages.${system} [ "profiles" "pkgs" ]; 25 | 26 | profiles = import ./profile.nix { 27 | inherit (self.packages.${system}) pkgs; 28 | }; 29 | 30 | nixops = args.nixops.defaultPackage.${system}; 31 | zbak = args.zbak.defaultPackage.${system}; 32 | 33 | alacritty = pkgs.callPackage ./pkgs/alacritty.nix { inherit theme; }; 34 | cal-wallpaper = pkgs.callPackage ./pkgs/cal-wallpaper { inherit theme; }; 35 | cilium = pkgs.callPackage ./pkgs/cilium.nix { }; 36 | direnv = pkgs.callPackage ./pkgs/direnv.nix { }; 37 | dunst = pkgs.callPackage ./pkgs/dunst { }; 38 | foliate = pkgs.libsForQt5.callPackage ./pkgs/foliate.nix { }; 39 | git = pkgs.callPackage ./pkgs/git.nix { }; 40 | julia = pkgs.callPackage ./pkgs/julia { }; 41 | lemonbar-xft = pkgs.callPackage ./pkgs/lemonbar-xft { inherit theme; }; 42 | mx-puppet-discord = pkgs.callPackage ./pkgs/mx-puppet-discord { }; 43 | neo4j = pkgs.callPackage ./pkgs/neo4j.nix { }; 44 | nix-zsh-completions = pkgs.callPackage ./pkgs/nix-zsh-completions.nix { }; 45 | rofi = pkgs.callPackage ./pkgs/rofi.nix { inherit theme; }; 46 | signal-desktop = pkgs.callPackage ./pkgs/signal-desktop.nix { inherit theme; }; 47 | vscode = pkgs.callPackage ./pkgs/vscode.nix { }; 48 | weylus = pkgs.callPackage ./pkgs/weylus.nix { }; 49 | xsecurelock = pkgs.callPackage ./pkgs/xsecurelock.nix { }; 50 | zsh = pkgs.callPackage ./pkgs/zsh { 51 | inherit theme; 52 | inherit (self.packages.${system}) nix-zsh-completions direnv; 53 | }; 54 | } 55 | ); 56 | }; 57 | } 58 | -------------------------------------------------------------------------------- /pkgs/zsh/default.nix: -------------------------------------------------------------------------------- 1 | { zsh, zsh-autosuggestions, zsh-syntax-highlighting, nix-zsh-completions, fzf, gnupg, direnv, symlinkJoin, writeText, makeWrapper, theme }: 2 | 3 | let config = writeText ".zshrc" '' 4 | fpath+=(${nix-zsh-completions}/share/zsh/site-functions) 5 | for p in ''${(z)NIX_PROFILES}; do 6 | fpath+=($p/share/zsh/site-functions $p/share/zsh/$ZSH_VERSION/functions $p/share/zsh/vendor-completions) 7 | done 8 | 9 | autoload -U compinit && compinit 10 | 11 | source ${nix-zsh-completions}/share/zsh/plugins/nix/nix-zsh-completions.plugin.zsh 12 | source ${zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh 13 | source ${zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh 14 | source ${fzf}/share/fzf/key-bindings.zsh 15 | 16 | eval "$(${direnv}/bin/direnv hook zsh | sed 's/\/nix\/store.\+\/direnv/${ 17 | builtins.replaceStrings [ "/" ] [ "\\/" ] "${direnv}" 18 | }\/bin\/direnv/')" 19 | 20 | setopt HIST_IGNORE_DUPS 21 | setopt HIST_IGNORE_SPACE 22 | setopt EXTENDED_HISTORY 23 | setopt INC_APPEND_HISTORY 24 | 25 | export HISTSIZE="10000000" 26 | export SAVEHIST="10000000" 27 | export HISTFILE="$HOME/.zsh_history" 28 | mkdir -p "$(dirname "$HISTFILE")" 29 | 30 | export REPO_DIR=/home/ajanse/sp21-s367 31 | export SNAPS_DIR=/home/ajanse/snaps-sp21-s367 32 | export GOPATH=$HOME/.go 33 | 34 | bindkey '\e[1;2A' history-beginning-search-backward 35 | bindkey '\e[1;2B' history-beginning-search-forward 36 | bindkey '\e[1;2C' forward-word 37 | 38 | if [[ "$USER" != "private" ]]; then 39 | GPG_TTY="$(tty)" 40 | export GPG_TTY 41 | ${gnupg}/bin/gpg-connect-agent updatestartuptty /bye > /dev/null 42 | fi 43 | 44 | function wish() { 45 | if [ -z "$1" ]; then 46 | echo -ne '\e[2m' 47 | cat ~/.wish 48 | echo -ne '\e[m' 49 | else 50 | echo "$@" >> ~/.wish 51 | fi 52 | } 53 | 54 | if [ "$TERM" = "linux" ]; then 55 | ${builtins.concatStringsSep "\n" (builtins.genList 56 | (i: "echo -en '\\e]P${builtins.toString i}${builtins.elemAt theme.colors16 i}'") 10)} 57 | clear 58 | fi 59 | 60 | precmd () { PS1=$(zsh ${./prompt.sh}) } 61 | ''; in 62 | symlinkJoin 63 | { 64 | name = "zsh-custom"; 65 | paths = [ 66 | zsh 67 | ]; 68 | buildInputs = [ makeWrapper ]; 69 | postBuild = '' 70 | cp ${config} $out/etc/.zshrc 71 | wrapProgram $out/bin/zsh --set ZDOTDIR $out/etc 72 | ''; 73 | passthru = { 74 | shellPath = "/bin/zsh"; 75 | }; 76 | } 77 | -------------------------------------------------------------------------------- /pkgs/julia/transcript.jl: -------------------------------------------------------------------------------- 1 | # from Julia standard library 2 | 3 | 4 | function open_fake_pty() 5 | O_RDWR = Base.Filesystem.JL_O_RDWR 6 | O_NOCTTY = Base.Filesystem.JL_O_NOCTTY 7 | 8 | fdm = ccall(:posix_openpt, Cint, (Cint,), O_RDWR | O_NOCTTY) 9 | rc = ccall(:grantpt, Cint, (Cint,), fdm) 10 | rc = ccall(:unlockpt, Cint, (Cint,), fdm) 11 | 12 | fds = ccall(:open, Cint, (Ptr{UInt8}, Cint), 13 | ccall(:ptsname, Ptr{UInt8}, (Cint,), fdm), O_RDWR | O_NOCTTY) 14 | 15 | pts = RawFD(fds) 16 | ptm = Base.TTY(RawFD(fdm)) 17 | return pts, ptm 18 | end 19 | function with_fake_pty(f) 20 | pts, ptm = open_fake_pty() 21 | try 22 | f(pts, ptm) 23 | finally 24 | close(ptm) 25 | end 26 | nothing 27 | end 28 | 29 | CTRL_C = '\x03' 30 | UP_ARROW = "\e[A" 31 | DOWN_ARROW = "\e[B" 32 | repl_script = """ 33 | 1+1 34 | ls | wc -l 35 | $UP_ARROW$DOWN_ARROW$CTRL_C 36 | ls \t\t$CTRL_C 37 | """ 38 | 39 | pts, ptm = open_fake_pty() 40 | blackhole = "/dev/null" 41 | if true 42 | cmdargs = ```--color=yes 43 | -e 'import REPL; REPL.Terminals.is_precompiling[] = true' 44 | ``` 45 | else 46 | cmdargs = `-e nothing` 47 | end 48 | 49 | p = run(```julia -O0 --trace-compile=trace.jl 50 | --cpu-target=native --startup-file=yes --color=yes 51 | -e 'import REPL; REPL.Terminals.is_precompiling[] = true' 52 | -i```, 53 | pts, pts, pts; wait=false) 54 | debug_output = devnull # or stdout 55 | Base.close_stdio(pts) 56 | # Prepare a background process to copy output from process until `pts` is closed 57 | output_copy = Base.BufferStream() 58 | tee = @async try 59 | while !eof(ptm) 60 | l = readavailable(ptm) 61 | write(debug_output, l) 62 | write(output_copy, l) 63 | end 64 | catch ex 65 | if !(ex isa Base.IOError && ex.code == Base.UV_EIO) 66 | rethrow() # ignore EIO on ptm after pts dies 67 | end 68 | finally 69 | close(output_copy) 70 | close(ptm) 71 | end 72 | # wait for the definitive prompt before start writing to the TTY 73 | readuntil(output_copy, ">") 74 | sleep(0.1) 75 | readavailable(output_copy) 76 | # Input our script 77 | if true 78 | precompile_lines = split(repl_script::String, '\n'; keepempty=false) 79 | local curr 80 | for l in precompile_lines 81 | sleep(0.5) 82 | bytesavailable(output_copy) > 0 && readavailable(output_copy) 83 | write(ptm, l, "\n") 84 | readuntil(output_copy, "\n") 85 | readuntil(output_copy, "\n") 86 | readuntil(output_copy, "> ") 87 | end 88 | println() 89 | end 90 | write(ptm, "exit()\n") 91 | wait(tee) 92 | success(p) || Base.pipeline_error(p) 93 | close(ptm) 94 | -------------------------------------------------------------------------------- /pkgs/julia/fetchgit/default.nix: -------------------------------------------------------------------------------- 1 | {stdenvNoCC, git, cacert}: let 2 | urlToName = url: rev: let 3 | inherit (stdenvNoCC.lib) removeSuffix splitString last; 4 | base = last (splitString ":" (baseNameOf (removeSuffix "/" url))); 5 | 6 | matched = builtins.match "(.*).git" base; 7 | 8 | short = builtins.substring 0 7 rev; 9 | 10 | appendShort = if (builtins.match "[a-f0-9]*" rev) != null 11 | then "-${short}" 12 | else ""; 13 | in "${if matched == null then base else builtins.head matched}${appendShort}"; 14 | in 15 | { url, rev ? "HEAD", md5 ? "", sha256 ? "", leaveDotGit ? deepClone 16 | , fetchSubmodules ? true, deepClone ? false 17 | , branchName ? null 18 | , name ? urlToName url rev 19 | , # Shell code executed after the file has been fetched 20 | # successfully. This can do things like check or transform the file. 21 | postFetch ? "" 22 | , preferLocalBuild ? true 23 | }: 24 | 25 | /* NOTE: 26 | fetchgit has one problem: git fetch only works for refs. 27 | This is because fetching arbitrary (maybe dangling) commits may be a security risk 28 | and checking whether a commit belongs to a ref is expensive. This may 29 | change in the future when some caching is added to git (?) 30 | Usually refs are either tags (refs/tags/*) or branches (refs/heads/*) 31 | Cloning branches will make the hash check fail when there is an update. 32 | But not all patches we want can be accessed by tags. 33 | 34 | The workaround is getting the last n commits so that it's likely that they 35 | still contain the hash we want. 36 | 37 | for now : increase depth iteratively (TODO) 38 | 39 | real fix: ask git folks to add a 40 | git fetch $HASH contained in $BRANCH 41 | facility because checking that $HASH is contained in $BRANCH is less 42 | expensive than fetching --depth $N. 43 | Even if git folks implemented this feature soon it may take years until 44 | server admins start using the new version? 45 | */ 46 | 47 | assert deepClone -> leaveDotGit; 48 | 49 | if md5 != "" then 50 | throw "fetchgit does not support md5 anymore, please use sha256" 51 | else 52 | stdenvNoCC.mkDerivation { 53 | inherit name; 54 | builder = ./builder.sh; 55 | fetcher = ./nix-prefetch-git; # This must be a string to ensure it's called with bash. 56 | nativeBuildInputs = [git]; 57 | 58 | outputHashAlgo = "sha256"; 59 | outputHashMode = "recursive"; 60 | outputHash = sha256; 61 | 62 | inherit url rev leaveDotGit fetchSubmodules deepClone branchName postFetch; 63 | 64 | GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt"; 65 | 66 | impureEnvVars = stdenvNoCC.lib.fetchers.proxyImpureEnvVars ++ [ 67 | "GIT_PROXY_COMMAND" "SOCKS_SERVER" 68 | ]; 69 | 70 | inherit preferLocalBuild; 71 | } 72 | -------------------------------------------------------------------------------- /pkgs/vscode.nix: -------------------------------------------------------------------------------- 1 | { lib, jupyter, vscode, vscode-extensions, vscode-with-extensions, vscode-utils, texlive, symlinkJoin, makeWrapper }: 2 | symlinkJoin { 3 | name = "vscode-custom"; 4 | postBuild = '' 5 | ln -s $out/bin/code-insiders $out/bin/code 6 | ''; 7 | paths = [ 8 | texlive.combined.scheme-full 9 | (vscode-with-extensions.override { 10 | vscode = (vscode.override { isInsiders = true; }).overrideAttrs (_: rec { 11 | pname = "vscode-insiders"; 12 | version = "nightly"; 13 | src = builtins.fetchurl { 14 | name = "VSCode_latest_linux-x64.tar.gz"; 15 | url = "https://az764295.vo.msecnd.net/insider/9ecd3fc3022e8c154aff868f74bd5d77f7d4a2ea/code-insider-x64-1614078105.tar.gz"; 16 | sha256 = "1qn84qc1cvprrhhgpaj7nkrsixs11k9n9xvkljai6x9plq2w91my"; 17 | }; 18 | }); 19 | vscodeExtensions = with vscode-extensions; [ 20 | ms-vscode.cpptools 21 | matklad.rust-analyzer 22 | jnoortheen.nix-ide 23 | # (vscode-utils.buildVscodeMarketplaceExtension { 24 | # mktplcRef = { 25 | # name = "jupyter"; 26 | # publisher = "ms-toolsai"; 27 | # version = "2021.3.593162453"; 28 | # sha256 = "sha256-giM71SBy7+dv8lBkClVG+m1aY371TsRCc2Qc+RZwUR0="; 29 | # }; 30 | # buildInputs = [ jupyter ]; 31 | # meta = { 32 | # license = lib.licenses.unfree; 33 | # }; 34 | # }) 35 | dbaeumer.vscode-eslint 36 | ms-python.vscode-pylance 37 | james-yu.latex-workshop 38 | ms-python.python 39 | ms-vsliveshare.vsliveshare 40 | ] ++ vscode-utils.extensionsFromVscodeMarketplace 41 | [ 42 | { 43 | name = "coq"; 44 | publisher = "ruoz"; 45 | version = "0.3.2"; 46 | sha256 = "sha256-UBlczlSwNvQo9dSpSdNFtqC6gHnchHQCODP2EUfe9zI="; 47 | } 48 | { 49 | name = "nim"; 50 | publisher = "kosz78"; 51 | version = "0.6.6"; 52 | sha256 = "sha256-sNW6Lvfyep8Hvas6cSufuRmol3q4mCyX8c/K78y8Nug="; 53 | } 54 | { 55 | name = "vsc-conceal"; 56 | publisher = "brboer"; 57 | version = "0.2.3"; 58 | sha256 = "sha256-K3cNyUrCrakstnZ846TwJLipJx0WCNFxEyYSOdjaW00="; 59 | } 60 | { 61 | name = "Go"; 62 | publisher = "golang"; 63 | version = "0.18.1"; 64 | sha256 = "sha256-b2Wa3TULQQnBm1/xnDCB9SZjE+Wxz5wBttjDEtf8qlE="; 65 | } 66 | { 67 | name = "svelte-vscode"; 68 | publisher = "svelte"; 69 | version = "104.9.0"; 70 | sha256 = "sha256-uC5nWMMmdANZx95CN73MY1BYJmkkOKAos2DOsQDJuS8="; 71 | } 72 | { 73 | name = "vscode-direnv"; 74 | publisher = "rubymaniac"; 75 | version = "0.0.2"; 76 | sha256 = "sha256-TVvjKdKXeExpnyUh+fDPl+eSdlQzh7lt8xSfw1YgtL4="; 77 | } 78 | { 79 | # One Dark Pro 80 | name = "Material-theme"; 81 | publisher = "zhuangtongfa"; 82 | version = "3.9.12"; 83 | sha256 = "sha256-D1CpuaCZf1kkpc+le2J/prPrOXhqDwtphVk4ejtM8AQ="; 84 | } 85 | { 86 | name = "better-toml"; 87 | publisher = "bungcip"; 88 | version = "0.3.2"; 89 | sha256 = "08lhzhrn6p0xwi0hcyp6lj9bvpfj87vr99klzsiy8ji7621dzql3"; 90 | } 91 | { 92 | name = "vscode-scheme"; 93 | publisher = "sjhuangx"; 94 | version = "0.4.0"; 95 | sha256 = "sha256-BN+C64YQ2hUw5QMiKvC7PHz3II5lEVVy0Shtt6t3ch8="; 96 | } 97 | { 98 | name = "rainbow-brackets"; 99 | publisher = "2gua"; 100 | version = "0.0.6"; 101 | sha256 = "sha256-TVBvF/5KQVvWX1uHwZDlmvwGjOO5/lXbgVzB26U8rNQ="; 102 | } 103 | ]; 104 | }) 105 | ]; 106 | } 107 | -------------------------------------------------------------------------------- /pkgs/lemonbar-xft/status.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | 4 | from threading import Timer 5 | import i3ipc 6 | import json 7 | import os 8 | import psutil 9 | import subprocess 10 | import time 11 | import urllib.request 12 | 13 | timer = None 14 | 15 | statsIntervalSec = 5 16 | counter = 0 17 | 18 | workspaceStatus = "         " #           19 | batteryStatus = "" # full, charging, discharging 20 | batteryCharge = 1.0 # out of 1.0 21 | 22 | centerStats = '' 23 | rightStats = '' 24 | song = '' 25 | 26 | 27 | def render(): 28 | statusText = workspaceStatus 29 | if batteryStatus != "full": 30 | secondaryColor = "ffb86c" if batteryStatus == "discharging" else "8be9fd" 31 | batteryWidth = round(batteryCharge * len(workspaceStatus)) 32 | statusText = "%{U#f8f8f8}%{+o}" + statusText[:batteryWidth] \ 33 | + "%{U#" + secondaryColor + "}" \ 34 | + statusText[batteryWidth:] + "%{-o}" \ 35 | + " {0:.0%}".format(batteryCharge) 36 | 37 | if song is not None: 38 | statusText += f" %{{F#42b983}}{song}%{{F-}}" 39 | 40 | print(' '+statusText+'%{c}'+centerStats+'%{r}'+rightStats+' ') 41 | 42 | 43 | i3 = i3ipc.Connection() 44 | 45 | def updateWorkspaceStatus(): 46 | global workspaceStatus 47 | 48 | activeWorkspaces = [] 49 | focusedWorkspace = -1 50 | for j in i3.get_workspaces(): 51 | activeWorkspaces.append(j.num) 52 | if j.focused: 53 | focusedWorkspace = j.num 54 | statusText = "" 55 | for i in range(1, 11): 56 | if i == focusedWorkspace: 57 | statusText += " " 58 | elif i in activeWorkspaces: 59 | statusText += " " 60 | else: 61 | statusText += " " 62 | workspaceStatus = statusText.strip() 63 | 64 | # Subscribe to events 65 | def handleWorkspaceUpdate(self, e): 66 | updateWorkspaceStatus() 67 | render() 68 | 69 | def get_song(): 70 | try: 71 | out = subprocess.check_output(['playerctl', 'status'], stderr=open(os.devnull, 'wb')).decode() 72 | if not out.lower().startswith("playing"): 73 | return None 74 | return subprocess.check_output(['playerctl', 'metadata', 'title'], stderr=open(os.devnull, 'wb')).decode().strip() 75 | except: 76 | return None 77 | 78 | def is_muted(): 79 | out = subprocess.check_output(['amixer', 'cset', 'numid=3'], stderr=open(os.devnull, 'wb')).decode() 80 | return 'values=0,0' in out 81 | 82 | def using_vpn(): 83 | try: 84 | out = subprocess.check_output(['mullvad', 'status'], stderr=open(os.devnull, 'wb')).decode() 85 | return out.startswith('Tunnel status: Connected to WireGuard') 86 | except: 87 | return False 88 | 89 | def updateStats(): 90 | global batteryStatus, batteryCharge, centerStats, rightStats, timer, counter, song 91 | 92 | counter += 1 93 | 94 | song = get_song() 95 | 96 | with open("/sys/class/power_supply/BAT0/status", 'r') as f: 97 | batteryStatus = f.readlines()[0].lower().strip() 98 | 99 | if batteryStatus != "full": 100 | with open("/sys/class/power_supply/BAT0/charge_full", 'r') as f: 101 | chargeFull = int(f.readlines()[0].strip()) 102 | with open("/sys/class/power_supply/BAT0/charge_now", 'r') as f: 103 | chargeNow = int(f.readlines()[0].strip()) 104 | 105 | batteryCharge = chargeNow / chargeFull 106 | 107 | cpu = round(sum(psutil.cpu_percent(percpu=True))/2) # two vCPUs per CPU 108 | try: 109 | temps = psutil.sensors_temperatures()['coretemp'] 110 | except: 111 | temps = [0] 112 | temp = round(max([t.current for t in temps])) 113 | ram = psutil.virtual_memory().used/1000/1000/1000 114 | 115 | centerStats = '{:3}% {:2}° {:2.2f} GB'.format(cpu, temp, ram) 116 | 117 | rightStats = '' 118 | if not is_muted(): 119 | rightStats += ' 🎶' 120 | if using_vpn(): 121 | rightStats += ' 🔒' 122 | rightStats += ' {}'.format(time.strftime('%Y-%m-%d %H:%M')) 123 | 124 | timer = Timer(statsIntervalSec, updateStats) 125 | timer.start() 126 | render() 127 | 128 | updateWorkspaceStatus() 129 | updateStats() 130 | 131 | i3.on('workspace::focus', handleWorkspaceUpdate) 132 | 133 | try: 134 | i3.main() 135 | except KeyboardInterrupt: 136 | timer.cancel() 137 | -------------------------------------------------------------------------------- /pkgs/julia/default.nix: -------------------------------------------------------------------------------- 1 | { pkgs }: 2 | 3 | with pkgs; 4 | 5 | 6 | let 7 | # The base Julia version 8 | baseJulia = pkgs.julia; 9 | 10 | # Extra libraries for Julia's LD_LIBRARY_PATH. 11 | # Recent Julia packages that use Artifacts.toml to specify their dependencies 12 | # shouldn't need this. 13 | # But if a package implicitly depends on some library being present at runtime, you can 14 | # add it here. 15 | extraLibs = [ ]; 16 | 17 | # Wrapped Julia with libraries and environment variables. 18 | # Note: setting The PYTHON environment variable is recommended to prevent packages 19 | # from trying to obtain their own with Conda. 20 | juliaWrapped = runCommand "julia-wrapped" { buildInputs = [ makeWrapper ]; } '' 21 | mkdir -p $out/bin 22 | makeWrapper ${baseJulia}/bin/julia $out/bin/julia \ 23 | --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath extraLibs}" \ 24 | --set PYTHON ${python3}/bin/python \ 25 | --set GRDIR ${pkgs.callPackage ./gr.nix { }} 26 | ''; 27 | 28 | juliaWithDepot = callPackage ./common.nix { 29 | julia = juliaWrapped; 30 | 31 | # Run Pkg.precompile() to precompile all packages? 32 | precompile = false; 33 | 34 | # Extra arguments to makeWrapper when creating the final Julia wrapper. 35 | # By default, it will just put the new depot at the end of JULIA_DEPOT_PATH. 36 | # You can add additional flags here. 37 | makeWrapperArgs = ""; 38 | 39 | # Extra buildInputs for building the Julia depot. Useful if your packages have 40 | # additional build-time dependencies not managed through the Artifacts.toml system. 41 | # Defaults to extraLibs, but can be configured independently. 42 | extraBuildInputs = extraLibs; 43 | }; 44 | 45 | juliaSysimage = runCommand "julia-sysimage.so" { buildInputs = [ gcc fish ]; } '' 46 | cp ${./Manifest.toml} Manifest.toml 47 | cp ${./Project.toml} Project.toml 48 | export JULIA_DEPOT_PATH=$TMP/jl 49 | mkdir -p $JULIA_DEPOT_PATH/config 50 | cp ${./startup.jl} $JULIA_DEPOT_PATH/config/startup.jl 51 | PROJECT=$(mktemp -d) 52 | cp ${./Project.toml} $PROJECT/Project.toml 53 | cp ${./Manifest.toml} $PROJECT/Manifest.toml 54 | export JULIA_LOAD_PATH="@:@#.#:@stdenv:$PROJECT" 55 | export PATH=${juliaWithDepot}/bin:$PATH 56 | export HOME=$(mktemp -d) 57 | julia ${./transcript.jl} --startup-file=no 58 | cat ${./trace.jl} >> trace.jl 59 | ${juliaWithDepot}/bin/julia ${./generate_sysimage.jl} trace.jl $out 60 | ''; 61 | 62 | custom-python38 = python38.withPackages (ps: with ps; [ 63 | black 64 | flake8 65 | autopep8 66 | pep8 67 | pyls-mypy 68 | mypy 69 | setuptools 70 | sympy 71 | virtualenv 72 | ]); 73 | in 74 | pkgs.symlinkJoin { 75 | name = "julia-custom"; 76 | paths = [ 77 | pkgs.julia 78 | ]; 79 | buildInputs = [ makeWrapper ]; 80 | postBuild = '' 81 | rm $out/bin/julia 82 | mkdir -p $out/etc/julia 83 | rm $out/etc/julia/startup.jl 84 | cp ${./startup.jl} $out/etc/julia/startup.jl 85 | makeWrapper ${juliaWithDepot}/bin/julia $out/bin/julia \ 86 | --add-flags "-J${juliaSysimage}" \ 87 | --prefix JULIA_DEPOT_PATH : \~/.julia \ 88 | --set JULIA_LOAD_PATH "@:@#.#:@stdenv:${./.}" \ 89 | --add-flags "--banner=no" \ 90 | --set PYTHONPATH ${custom-python38}/lib/python3.8/site-packages \ 91 | --set PYTHON ${custom-python38}/bin/python \ 92 | --prefix PATH : "${pkgs.kakoune}/bin:${pkgs.fish}/bin" 93 | 94 | cat > $out/bin/julish << EOF 95 | #!/bin/sh 96 | has_param() { 97 | local term="\$1" 98 | shift 99 | for arg; do 100 | if [[ \$arg == "\$term" ]]; then 101 | return 0 102 | fi 103 | done 104 | return 1 105 | } 106 | 107 | if has_param '-c' "\$@"; then 108 | bash "\$@" 109 | else 110 | JULIA_BINDIR="$out/bin" $out/bin/julia "\$@" --banner=no 111 | fi 112 | EOF 113 | chmod +x $out/bin/julish 114 | ''; 115 | 116 | passthru = { 117 | shellPath = "/bin/julish"; 118 | }; 119 | } 120 | -------------------------------------------------------------------------------- /profile.nix: -------------------------------------------------------------------------------- 1 | # I use this file to manage which packages I have installed. To start using this file, I do: 2 | # $ nix profile install github:aaronjanse/dotfiles#profiles.common 3 | # Then, to update my local packages based on changes made here: 4 | # $ nix porfile upgrade 0 5 | 6 | { pkgs }: 7 | 8 | rec { 9 | # Installed everywhere 10 | common = pkgs.buildEnv { 11 | name = "ajanse-env-common"; 12 | paths = with pkgs; [ 13 | bat 14 | binutils 15 | cloc 16 | coreutils 17 | curl 18 | du-dust 19 | exa 20 | fd 21 | fzf 22 | git 23 | iptables 24 | jq 25 | procs 26 | (python3.withPackages 27 | (ps: 28 | with ps; [ 29 | autopep8 30 | black 31 | flake8 32 | ipykernel 33 | ipython 34 | ipywidgets 35 | jupyter 36 | matplotlib 37 | mypy 38 | numpy 39 | pep8 40 | pyls-mypy 41 | requests 42 | scipy 43 | setuptools 44 | virtualenv 45 | ])) 46 | ripgrep 47 | tcpdump 48 | tree 49 | unzip 50 | vim 51 | wget 52 | zip 53 | zsh 54 | ]; 55 | extraOutputsToInstall = [ "man" "doc" ]; 56 | }; 57 | 58 | # Installed on personal systems with a GUI 59 | gui = pkgs.buildEnv 60 | { 61 | name = "ajanse-env-common"; 62 | # Include all package in `common` above 63 | paths = [ common ] ++ (with pkgs; [ 64 | _1password 65 | _1password-gui 66 | age 67 | alacritty 68 | aria2 69 | autorandr 70 | binutils 71 | blueman 72 | bubblewrap 73 | cachix 74 | chromium 75 | cmake 76 | cmatrix 77 | codeql 78 | coq 79 | cowsay 80 | cryfs 81 | cryptsetup 82 | dbeaver 83 | dgraph 84 | dig 85 | direnv 86 | discord 87 | docker 88 | docker-compose 89 | element-desktop 90 | elementary-planner 91 | elvish 92 | feh 93 | ffmpeg-full 94 | firefox-beta-bin 95 | fish 96 | flameshot 97 | foliate 98 | gcc 99 | git-annex 100 | git-annex-remote-rclone 101 | git-remote-gcrypt 102 | gitAndTools.gh 103 | gnome3.gnome-boxes 104 | gnome3.gnome-screenshot 105 | gnome3.gnome-todo 106 | gnome3.nautilus 107 | gnumake 108 | go 109 | gocryptfs 110 | gopls 111 | graphviz 112 | hexyl 113 | htop 114 | imagemagick 115 | inetutils 116 | inkscape 117 | inotify-tools 118 | ipfs 119 | ipfs-cluster 120 | kakoune 121 | khard 122 | kitty 123 | krita 124 | libreoffice 125 | libuuid.dev 126 | litecli 127 | lolcat 128 | matrix-synapse 129 | maven3 130 | mbuffer 131 | morph 132 | mosh 133 | mullvad-vpn 134 | multimc 135 | nheko 136 | nim 137 | nix-direnv 138 | nixops 139 | nixpkgs-fmt 140 | nodejs 141 | nodePackages.insect 142 | nodePackages.typescript 143 | okular 144 | pandoc 145 | pinentry-gtk2 146 | pkgconfig 147 | pstree 148 | python-language-server 149 | quaternion 150 | rakudo 151 | rclone 152 | redis 153 | restic 154 | rustup 155 | signal-desktop 156 | smartmontools 157 | spotify 158 | sqlite 159 | sqlitebrowser 160 | sshfs 161 | tailscale 162 | taskwarrior 163 | tldr 164 | tomb 165 | toot 166 | tor 167 | toybox 168 | ulauncher 169 | vdirsyncer 170 | vscode 171 | w3m 172 | weechat 173 | wireguard 174 | xclip 175 | xwiimote 176 | yaml2json 177 | yarn 178 | youtube-dl 179 | zbak 180 | zola 181 | zoom-us 182 | ]); 183 | extraOutputsToInstall = [ "man" "doc" ]; 184 | }; 185 | } 186 | -------------------------------------------------------------------------------- /flake.lock: -------------------------------------------------------------------------------- 1 | { 2 | "nodes": { 3 | "flake-utils": { 4 | "locked": { 5 | "lastModified": 1623875721, 6 | "narHash": "sha256-A8BU7bjS5GirpAUv4QA+QnJ4CceLHkcXdRp4xITDB0s=", 7 | "owner": "numtide", 8 | "repo": "flake-utils", 9 | "rev": "f7e004a55b120c02ecb6219596820fcd32ca8772", 10 | "type": "github" 11 | }, 12 | "original": { 13 | "owner": "numtide", 14 | "repo": "flake-utils", 15 | "type": "github" 16 | } 17 | }, 18 | "flake-utils_2": { 19 | "locked": { 20 | "lastModified": 1623875721, 21 | "narHash": "sha256-A8BU7bjS5GirpAUv4QA+QnJ4CceLHkcXdRp4xITDB0s=", 22 | "owner": "numtide", 23 | "repo": "flake-utils", 24 | "rev": "f7e004a55b120c02ecb6219596820fcd32ca8772", 25 | "type": "github" 26 | }, 27 | "original": { 28 | "owner": "numtide", 29 | "repo": "flake-utils", 30 | "type": "github" 31 | } 32 | }, 33 | "nixops": { 34 | "inputs": { 35 | "nixpkgs": "nixpkgs", 36 | "utils": "utils" 37 | }, 38 | "locked": { 39 | "lastModified": 1614711931, 40 | "narHash": "sha256-In+aL5PrOWCjEMDBv+Yv93epJijt24NfGY6Vdy/aIVo=", 41 | "owner": "nixos", 42 | "repo": "nixops", 43 | "rev": "45256745cef246dabe1ae8a7d109988f190cd7ef", 44 | "type": "github" 45 | }, 46 | "original": { 47 | "owner": "nixos", 48 | "repo": "nixops", 49 | "type": "github" 50 | } 51 | }, 52 | "nixpkgs": { 53 | "locked": { 54 | "lastModified": 1612282043, 55 | "narHash": "sha256-MzoN8nI1eydYHuWBAXBcw9Na0XndZHa/VjoxZRWSX68=", 56 | "owner": "NixOS", 57 | "repo": "nixpkgs", 58 | "rev": "fab6fcdceb2560a4ab943830a2b1632458c7a6ff", 59 | "type": "github" 60 | }, 61 | "original": { 62 | "owner": "NixOS", 63 | "ref": "nixos-unstable", 64 | "repo": "nixpkgs", 65 | "type": "github" 66 | } 67 | }, 68 | "nixpkgs_2": { 69 | "locked": { 70 | "lastModified": 1624656607, 71 | "narHash": "sha256-jWVM6RP8WdRV1l0Z36hA/y6kl9BmasYVa9TpKkjRMLI=", 72 | "owner": "nixos", 73 | "repo": "nixpkgs", 74 | "rev": "b72bde7c4a1f9c9bf1a161f0c267186ce3c6483c", 75 | "type": "github" 76 | }, 77 | "original": { 78 | "owner": "nixos", 79 | "ref": "nixos-21.05", 80 | "repo": "nixpkgs", 81 | "type": "github" 82 | } 83 | }, 84 | "nixpkgs_3": { 85 | "locked": { 86 | "lastModified": 1608536340, 87 | "narHash": "sha256-+fUjCLY4KZEyhLU5tmr6qEed3NsqTrc8Pujv+wxNwHs=", 88 | "owner": "nixos", 89 | "repo": "nixpkgs", 90 | "rev": "832ae4311a44ddfee300d54e17268f448b8ea8ea", 91 | "type": "github" 92 | }, 93 | "original": { 94 | "owner": "nixos", 95 | "repo": "nixpkgs", 96 | "rev": "832ae4311a44ddfee300d54e17268f448b8ea8ea", 97 | "type": "github" 98 | } 99 | }, 100 | "root": { 101 | "inputs": { 102 | "flake-utils": "flake-utils", 103 | "nixops": "nixops", 104 | "nixpkgs": "nixpkgs_2", 105 | "zbak": "zbak" 106 | } 107 | }, 108 | "utils": { 109 | "locked": { 110 | "lastModified": 1610051610, 111 | "narHash": "sha256-U9rPz/usA1/Aohhk7Cmc2gBrEEKRzcW4nwPWMPwja4Y=", 112 | "owner": "numtide", 113 | "repo": "flake-utils", 114 | "rev": "3982c9903e93927c2164caa727cd3f6a0e6d14cc", 115 | "type": "github" 116 | }, 117 | "original": { 118 | "owner": "numtide", 119 | "repo": "flake-utils", 120 | "type": "github" 121 | } 122 | }, 123 | "zbak": { 124 | "inputs": { 125 | "flake-utils": "flake-utils_2", 126 | "nixpkgs": "nixpkgs_3" 127 | }, 128 | "locked": { 129 | "lastModified": 1624751526, 130 | "narHash": "sha256-XP+MN6G+hCwRjkeuP27ns2+6itKEux2Qe4irgJIphJk=", 131 | "owner": "aaronjanse", 132 | "repo": "zbak", 133 | "rev": "28598cab6e50e6c11bd4e5ae2a3fc5daed30aa90", 134 | "type": "github" 135 | }, 136 | "original": { 137 | "owner": "aaronjanse", 138 | "repo": "zbak", 139 | "type": "github" 140 | } 141 | } 142 | }, 143 | "root": "root", 144 | "version": 7 145 | } 146 | -------------------------------------------------------------------------------- /i3-config.nix: -------------------------------------------------------------------------------- 1 | nixpkgs: 2 | 3 | let 4 | workspaceIndicies = [ 1 2 3 4 5 6 7 8 9 10 ]; 5 | mappings = mod: '' 6 | ${nixpkgs.lib.concatMapStrings 7 | (i: "bindsym ${mod}+${ 8 | builtins.toString (nixpkgs.lib.mod i 10) 9 | } workspace ${builtins.toString i}\n") 10 | workspaceIndicies} 11 | ${nixpkgs.lib.concatMapStrings 12 | (i: "bindsym ${mod}+Shift+${ 13 | builtins.toString (nixpkgs.lib.mod i 10) 14 | } move container to workspace ${builtins.toString i}\n") 15 | workspaceIndicies} 16 | 17 | bindsym ${mod}+Shift+q kill 18 | 19 | bindsym ${mod}+Up focus up 20 | bindsym ${mod}+Down focus down 21 | bindsym ${mod}+Left focus left 22 | bindsym ${mod}+Right focus right 23 | 24 | bindsym ${mod}+i focus up 25 | bindsym ${mod}+k focus down 26 | bindsym ${mod}+j focus left 27 | bindsym ${mod}+l focus right 28 | 29 | bindsym ${mod}+Shift+Up move up 30 | bindsym ${mod}+Shift+Down move down 31 | bindsym ${mod}+Shift+Left move left 32 | bindsym ${mod}+Shift+Right move right 33 | 34 | bindsym ${mod}+Shift+I move up 35 | bindsym ${mod}+Shift+K move down 36 | bindsym ${mod}+Shift+J move left 37 | bindsym ${mod}+Shift+L move right 38 | 39 | bindsym ${mod}+bracketleft focus left 40 | bindsym ${mod}+bracketright focus right 41 | bindsym ${mod}+Shift+bracketleft move left 42 | bindsym ${mod}+Shift+bracketright move right 43 | 44 | bindsym ${mod}+Return exec ${nixpkgs.alacritty}/bin/alacritty 45 | 46 | bindsym ${mod}+Shift+X exec ${nixpkgs.writeScript "clear-clipboard.sh" '' 47 | echo -n "" | xclip -selection "clipboard" 48 | ''} 49 | 50 | bindsym ${mod}+d exec ${nixpkgs.rofi}/bin/rofi -show run 51 | bindsym ${mod}+Shift+d exec ${nixpkgs.rofi}/bin/rofi -modi 'drun' -show drun 52 | 53 | bindsym ${mod}+slash exec ${nixpkgs.flameshot}/bin/flameshot gui 54 | bindsym ${mod}+period exec ${nixpkgs.rofimoji}/bin/rofimoji 55 | 56 | bindsym ${mod}+equal workspace next 57 | bindsym ${mod}+minus workspace prev 58 | bindsym ${mod}+Tab workspace back_and_forth 59 | 60 | bindsym ${mod}+Shift+r restart 61 | 62 | bindsym ${mod}+n gaps inner all set 0 63 | bindsym ${mod}+g gaps inner all set 10 64 | 65 | bindsym ${mod}+r mode resizeAlt 66 | 67 | bindsym ${mod}+Shift+space floating toggle 68 | bindsym ${mod}+f fullscreen toggle 69 | bindsym ${mod}+s layout stacking 70 | bindsym ${mod}+w layout tabbed 71 | bindsym ${mod}+e layout toggle split 72 | bindsym ${mod}+u split v 73 | bindsym ${mod}+y split h 74 | ''; 75 | 76 | resizing = '' 77 | bindsym Down resize grow height 10 px or 10 ppt 78 | bindsym Left resize shrink width 10 px or 10 ppt 79 | bindsym Right resize grow width 10 px or 10 ppt 80 | bindsym Up resize shrink height 10 px or 10 ppt 81 | ''; 82 | in 83 | nixpkgs.writeText "i3-config" '' 84 | font pango:Roboto Mono 8 85 | floating_modifier Mod1 86 | new_window pixel 1 87 | new_float pixel 2 88 | hide_edge_borders none 89 | force_focus_wrapping no 90 | focus_follows_mouse yes 91 | focus_on_window_activation smart 92 | mouse_warping output 93 | workspace_layout default 94 | workspace_auto_back_and_forth no 95 | 96 | client.focused #61afef #000000 #ffffff #61afef #61afef 97 | client.focused_inactive #333333 #5f676a #ffffff #484e50 #5f676a 98 | client.unfocused #f8f8f2 #000000 #ffffff #f8f8f2 #f8f8f2 99 | client.urgent #2f343a #900000 #ffffff #900000 #900000 100 | client.placeholder #000000 #0c0c0c #ffffff #000000 #0c0c0c 101 | client.background #ffffff 102 | 103 | for_window [class="Nautilus"] floating enable 104 | for_window [title="Gnuplot"] floating enable 105 | for_window [class="tk"] floating enable 106 | for_window [class="gksqt"] floating enable 107 | for_window [class="zoom" instance="zoom"] floating enable 108 | for_window [window_role="pop-up"] floating enable 109 | 110 | # bindsym Shift+F1 exec light -S 0 111 | # bindsym F1 exec ${nixpkgs.light}/bin/light -U 5 112 | # bindsym F2 exec ${nixpkgs.light}/bin/light -A 5 113 | 114 | bindsym XF86AudioNext exec ${nixpkgs.playerctl}/bin/playerctl next 115 | bindsym XF86AudioPause exec ${nixpkgs.playerctl}/bin/playerctl pause 116 | bindsym XF86AudioPrev exec ${nixpkgs.playerctl}/bin/playerctl previous 117 | bindsym XF86AudioRaiseVolume exec amixer set Master 5%+ 118 | bindsym XF86AudioLowerVolume exec amixer set Master 5%- 119 | bindsym XF86AudioMute exec amixer set Master 0% 120 | bindsym XF86MonBrightnessDown exec ${nixpkgs.light}/bin/light -U 5 121 | bindsym XF86MonBrightnessUp exec ${nixpkgs.light}/bin/light -A 5 122 | 123 | 124 | bindsym Mod4+Shift+M mode defaultWin 125 | mode "defaultWin" { 126 | bindsym Mod1+Shift+M mode default 127 | ${mappings "Mod4"} 128 | } 129 | 130 | ${mappings "Mod1"} 131 | 132 | mode "resizeAlt" { 133 | ${resizing} 134 | bindsym Escape mode default 135 | bindsym Return mode default 136 | } 137 | 138 | mode "resizeWin" { 139 | ${resizing} 140 | bindsym Escape mode defaultWin 141 | bindsym Return mode defaultWin 142 | } 143 | 144 | smart_gaps on 145 | smart_borders on 146 | '' 147 | -------------------------------------------------------------------------------- /pkgs/julia/common.nix: -------------------------------------------------------------------------------- 1 | { 2 | callPackage, 3 | curl, 4 | fetchurl, 5 | git, 6 | stdenvNoCC, 7 | cacert, 8 | jq, 9 | julia, 10 | lib, 11 | python3, 12 | runCommand, 13 | stdenv, 14 | writeText, 15 | makeWrapper, 16 | 17 | # Arguments 18 | makeWrapperArgs ? "", 19 | precompile ? true, 20 | extraBuildInputs ? [] 21 | }: 22 | 23 | let 24 | # We need to use a specially modified fetchgit that understands tree hashes, until 25 | # https://github.com/NixOS/nixpkgs/pull/104714 lands 26 | fetchgit = callPackage ./fetchgit {}; 27 | 28 | packages = callPackage ./packages.nix {}; 29 | 30 | ### Repoify packages 31 | # This step is needed because leaveDotGit is not reproducible 32 | # https://github.com/NixOS/nixpkgs/issues/8567 33 | repoified = map (item: if item.src == null then item else item // { src = repoify item.name item.treehash item.src; }) packages.closure; 34 | repoify = name: treehash: src: 35 | runCommand ''${name}-repoified'' {buildInputs = [git];} '' 36 | mkdir -p $out 37 | cp -r ${src}/. $out 38 | cd $out 39 | git init 40 | git add . -f 41 | git config user.email "julia2nix@localhost" 42 | git config user.name "julia2nix" 43 | git commit -m "Dummy commit" 44 | 45 | if [[ -n "${treehash}" ]]; then 46 | if [[ $(git cat-file -t ${treehash}) != "tree" ]]; then 47 | echo "Couldn't find desired tree object for ${name} in repoify (${treehash})" 48 | exit 1 49 | fi 50 | fi 51 | ''; 52 | repoifiedReplaceInManifest = lib.filter (x: x.replaceUrlInManifest != null) repoified; 53 | 54 | ### Manifest.toml (processed) 55 | manifestToml = runCommand "Manifest.toml" { buildInputs = [jq]; } '' 56 | cp ${./Manifest.toml} ./Manifest.toml 57 | 58 | echo ${writeText "packages.json" (lib.generators.toJSON {} repoifiedReplaceInManifest)} 59 | cat ${writeText "packages.json" (lib.generators.toJSON {} repoifiedReplaceInManifest)} | jq -r '.[]|[.name, .replaceUrlInManifest, .src] | @tsv' | 60 | while IFS=$'\t' read -r name replaceUrlInManifest src; do 61 | sed -i "s|$replaceUrlInManifest|file://$src|g" ./Manifest.toml 62 | done 63 | 64 | cp ./Manifest.toml $out 65 | ''; 66 | 67 | ### Overrides.toml 68 | fetchArtifact = x: stdenv.mkDerivation { 69 | name = x.name; 70 | src = fetchurl { url = x.url; sha256 = x.sha256; }; 71 | sourceRoot = "."; 72 | dontConfigure = true; 73 | dontBuild = true; 74 | installPhase = "cp -r . $out"; 75 | dontFixup = true; 76 | }; 77 | artifactOverrides = lib.zipAttrsWith (name: values: fetchArtifact (lib.head (lib.head values))) ( 78 | map (item: item.artifacts) packages.closure 79 | ); 80 | overridesToml = runCommand "Overrides.toml" { buildInputs = [jq]; } '' 81 | echo '${lib.generators.toJSON {} artifactOverrides}' | jq -r '. | to_entries | map ((.key + " = \"" + .value + "\"")) | .[]' > $out 82 | ''; 83 | 84 | ### Processed registry 85 | generalRegistrySrc = repoify "julia-general" "" (fetchgit { 86 | url = packages.registryUrl; 87 | rev = packages.registryRev; 88 | sha256 = packages.registrySha256; 89 | branchName = "master"; 90 | }); 91 | registry = runCommand "julia-registry" { buildInputs = [(python3.withPackages (ps: [ps.toml])) jq git]; } '' 92 | git clone ${generalRegistrySrc}/. $out 93 | cd $out 94 | 95 | cat ${writeText "packages.json" (lib.generators.toJSON {} repoified)} | jq -r '.[]|[.name, .path, .src] | @tsv' | 96 | while IFS=$'\t' read -r name path src; do 97 | # echo "Processing: $name, $path, $src" 98 | if [[ "$path" != "null" ]]; then 99 | python -c "import toml; \ 100 | packageTomlPath = '$path/Package.toml'; \ 101 | contents = toml.load(packageTomlPath); \ 102 | contents['repo'] = 'file://$src'; \ 103 | f = open(packageTomlPath, 'w'); \ 104 | f.write(toml.dumps(contents)); \ 105 | " 106 | fi 107 | done 108 | 109 | export HOME=$(pwd) 110 | git config --global user.email "julia-to-nix-depot@email.com" 111 | git config --global user.name "julia-to-nix-depot script" 112 | git add . 113 | git commit -m "Switch to local package repos" 114 | ''; 115 | 116 | depot = runCommand "julia-depot" { 117 | buildInputs = [git curl julia] ++ extraBuildInputs; 118 | inherit registry precompile; 119 | } '' 120 | export HOME=$(pwd) 121 | 122 | echo "Using registry $registry" 123 | echo "Using Julia ${julia}/bin/julia" 124 | 125 | cp ${manifestToml} ./Manifest.toml 126 | cp ${./Project.toml} ./Project.toml 127 | 128 | mkdir -p $out/artifacts 129 | cp ${overridesToml} $out/artifacts/Overrides.toml 130 | 131 | export JULIA_DEPOT_PATH=$out 132 | julia -e ' \ 133 | using Pkg 134 | Pkg.Registry.add(RegistrySpec(path="${registry}")) 135 | 136 | Pkg.activate(".") 137 | Pkg.instantiate() 138 | 139 | # Remove the registry to save space 140 | Pkg.Registry.rm("General") 141 | ' 142 | 143 | if [[ -n "$precompile" ]]; then 144 | julia -e ' \ 145 | using Pkg 146 | Pkg.activate(".") 147 | Pkg.precompile() 148 | ' 149 | fi 150 | ''; 151 | 152 | in 153 | 154 | runCommand "julia-env" { 155 | inherit julia depot makeWrapperArgs; 156 | buildInputs = [makeWrapper]; 157 | } '' 158 | mkdir -p $out/bin 159 | makeWrapper $julia/bin/julia $out/bin/julia --suffix JULIA_DEPOT_PATH : "$depot" $makeWrapperArgs 160 | '' 161 | -------------------------------------------------------------------------------- /configuration.nix: -------------------------------------------------------------------------------- 1 | { config, lib, pkgs, options, ... }: 2 | 3 | let 4 | theme = import ./theme.nix; 5 | secrets = import "${fetchGit { 6 | url = "ssh://git@github.com/aaronjanse/secrets.git"; 7 | rev = "16fe9eb16fb4e32d5b2b3e5d4d5cbc3ac8e0ae32"; 8 | }}" 9 | { inherit pkgs; }; 10 | in 11 | { 12 | /* Nix preferences */ 13 | 14 | nix = { 15 | package = pkgs.nixUnstable; 16 | extraOptions = '' 17 | experimental-features = nix-command flakes ca-references 18 | builders-use-substitutes = true 19 | ''; 20 | distributedBuilds = true; 21 | }; 22 | 23 | nix.trustedUsers = [ "ajanse" ]; 24 | 25 | /* XPS 13 hardware */ 26 | 27 | boot.kernelParams = [ "mem_sleep_default=deep" ]; 28 | boot.supportedFilesystems = [ "zfs" ]; 29 | boot.zfs.requestEncryptionCredentials = [ "zzroot" ]; 30 | hardware.enableRedistributableFirmware = true; 31 | powerManagement.powertop.enable = true; 32 | 33 | # Disable sleep 34 | # # systemd.targets.sleep.enable = false; 35 | # # systemd.targets.suspend.enable = false; 36 | # # systemd.targets.hibernate.enable = false; 37 | # # systemd.targets.hybrid-sleep.enable = false; 38 | 39 | boot.extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ]; 40 | hardware.opengl = { 41 | enable = true; 42 | extraPackages = with pkgs; [ 43 | intel-media-driver # LIBVA_DRIVER_NAME=iHD 44 | vaapiIntel # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium) 45 | vaapiVdpau 46 | libvdpau-va-gl 47 | ]; 48 | driSupport32Bit = true; 49 | }; 50 | environment.systemPackages = with pkgs; [ 51 | nixFlakes 52 | git 53 | vaapiIntel 54 | vaapi-intel-hybrid 55 | libva-full 56 | libva-utils 57 | intel-media-driver 58 | v4l-utils 59 | gnome3.adwaita-icon-theme 60 | vanilla-dmz 61 | ]; 62 | 63 | # services.neo4j = { 64 | # enable = true; 65 | # bolt.tlsLevel = "DISABLED"; 66 | # https.enable = false; 67 | # extraServerConfig = '' 68 | # apoc.export.file.enabled=true 69 | # ''; 70 | # }; 71 | 72 | services.postgresql = { 73 | enable = true; 74 | ensureUsers = [ ]; 75 | initialScript = secrets.postgresqlInit; 76 | }; 77 | 78 | /* Boot */ 79 | 80 | boot.loader = { 81 | systemd-boot.enable = true; 82 | efi.canTouchEfiVariables = false; 83 | grub.enable = false; 84 | }; 85 | 86 | boot.loader.grub.copyKernels = true; 87 | 88 | # boot.kernelPatches = let hashes = [ 89 | # "sha256-ffrN0y5Us/VJ1v6JObfkSVD4PCm23wueI0JXjoRcOao=" 90 | # "sha256-mh9MgRtLp4+sXjM6GHkAkyyvp5DP3yTxl+d/kJ3+KJQ=" 91 | # "sha256-1Jy1uv9x1c06/auY1aHN0SuyOsbIF1IcaK8/PuGmX8Q=" 92 | # "sha256-QE3NfIg60RxV528AbpNAcxIdToplRNm5DgMNPn6AjHQ=" 93 | # "sha256-zyL1g2oNiTzYfS5qUOehduGfzFfi2WIVLCQMg+XGBwE=" 94 | # "sha256-f79tof0O5HBFwLbddR9FOqqLsqGsHqMZM45uYZNcoec=" 95 | # "sha256-JD0bi4sjsI9qRpHXxcPlGpiiwXMu2oPm/HJU8iQI1ag=" 96 | # "sha256-V+AGk7FGNiidd22ektlGCvSh3Wo2bRrUWp6qgGmsKPI=" 97 | # ]; in builtins.genList (i: { 98 | # name = "fuse_passthrough ${toString (i+1)}/8"; 99 | # patch = pkgs.fetchpatch { 100 | # url = "https://lore.kernel.org/lkml/20210125153057.3623715-${toString (i+2)}-balsini@android.com/raw"; 101 | # sha256 = builtins.elemAt hashes i; 102 | # }; 103 | # }) 8; 104 | 105 | /* Maintenance */ 106 | 107 | time.timeZone = "America/Los_Angeles"; 108 | 109 | services.journald.extraConfig = "MaxRetentionSec=1week"; 110 | boot.cleanTmpDir = true; 111 | boot.tmpOnTmpfs = true; 112 | 113 | systemd = { 114 | timers.zbak-snap = { 115 | wantedBy = [ "timers.target" ]; 116 | partOf = [ "zbak-snap.service" ]; 117 | timerConfig.OnCalendar = "*:0/15"; 118 | }; 119 | services.zbak-snap = { 120 | serviceConfig.Type = "oneshot"; 121 | path = [ pkgs.zbak ]; 122 | script = '' 123 | zbak snap zzroot/code --keep 7d24h4f 124 | ''; 125 | }; 126 | 127 | # timers.zbak-send = { 128 | # wantedBy = [ "timers.target" ]; 129 | # partOf = [ "zbak-send.service" ]; 130 | # timerConfig.OnCalendar = "*:10,40"; 131 | # }; 132 | # services.zbak-send = { 133 | # serviceConfig.Type = "oneshot"; 134 | # path = [ pkgs.zbak ]; 135 | # script = '' 136 | # [ $(cat /sys/class/power_supply/BAT0/status) = "Full" ] && \ 137 | # zbak send --name ssd500gb \ 138 | # --from zzroot/code \ 139 | # --to root@100.112.12.44:rpool/code \ 140 | # --keep 6m4w7d 141 | # ''; 142 | # }; 143 | }; 144 | 145 | /* Security */ 146 | 147 | services.openssh.enable = true; 148 | 149 | services.gnome.gnome-keyring.enable = true; 150 | 151 | programs.adb.enable = true; 152 | 153 | security.sudo = { 154 | enable = true; 155 | wheelNeedsPassword = true; 156 | }; 157 | users.mutableUsers = true; 158 | users.users.ajanse = { 159 | isNormalUser = true; 160 | uid = 1000; 161 | group = "users"; 162 | extraGroups = [ 163 | "wheel" 164 | "lp" # for bluetooth 165 | "video" 166 | "audio" 167 | "vboxusers" 168 | "adbusers" 169 | "libvirtd" 170 | "kvm" 171 | "adbusers" 172 | "docker" 173 | "bluetooth" 174 | ]; 175 | createHome = true; 176 | home = "/home/ajanse"; 177 | openssh.authorizedKeys.keys = [ 178 | "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILBA0RNuRdCTQgK15gzpqMBHH9XBbkvE2z7orygz67jv" # Phone 179 | ]; 180 | }; 181 | 182 | users.users.enclave = { 183 | isNormalUser = true; 184 | uid = 1001; 185 | group = "users"; 186 | extraGroups = [ "wheel" ]; 187 | createHome = true; 188 | home = "/home/enclave"; 189 | }; 190 | 191 | /* Shell */ 192 | 193 | users.defaultUserShell = pkgs.fish; 194 | environment.pathsToLink = [ "/share/zsh" "/share/fish" ]; 195 | environment.variables.MOZ_X11_EGL = "1"; 196 | environment.variables.EDITOR = "${pkgs.kakoune}/bin/kak"; 197 | environment.etc."fish/config.fish".text = '' 198 | set REPO_DIR $HOME/school/sp21-s367 199 | set SNAPS_DIR $HOME/school/snaps-sp21-s367 200 | set GOPATH $HOME/.go 201 | 202 | alias enter="sudo ip netns exec wguard su - enclave" 203 | alias ls=exa 204 | ''; 205 | 206 | /* Networking */ 207 | 208 | networking = { 209 | hostName = "xps-ajanse"; 210 | networkmanager.enable = true; 211 | nameservers = pkgs.lib.mkForce [ "193.138.218.74" ]; # mullvad 212 | iproute2.enable = true; 213 | firewall = { 214 | enable = true; 215 | allowedTCPPorts = [ 80 ]; 216 | allowedUDPPorts = [ 51820 41641 ]; 217 | trustedInterfaces = [ "wg0" ]; 218 | }; 219 | hosts = { 220 | "192.168.1.249" = [ "BRW707781875760.local" ]; 221 | "172.31.98.1" = [ "aruba.odyssys.net" ]; 222 | "127.0.0.1" = [ "localhost.dev" "local.metaculus.com" ]; 223 | }; 224 | }; 225 | 226 | services.tailscale.enable = true; 227 | 228 | services.rpcbind.enable = true; 229 | services.nfs.server.enable = true; 230 | 231 | networking.wireguard.enable = true; 232 | networking.wireguard.interfaces.wg0 = secrets.wireguard; 233 | 234 | /* Sound */ 235 | 236 | sound.enable = true; 237 | hardware.pulseaudio = { 238 | enable = true; 239 | daemon.config = { flat-volumes = "no"; }; 240 | }; 241 | 242 | /* Bluetooth */ 243 | 244 | hardware.bluetooth.enable = true; 245 | services.blueman.enable = true; 246 | programs.dconf.enable = true; 247 | services.dbus.packages = [ pkgs.blueman pkgs.foliate ]; 248 | hardware.pulseaudio = { 249 | extraModules = [ pkgs.pulseaudio-modules-bt ]; 250 | package = pkgs.pulseaudioFull; 251 | }; 252 | 253 | services.pcscd.enable = true; 254 | services.udev.packages = [ 255 | pkgs.yubikey-personalization 256 | pkgs.libu2f-host 257 | pkgs.android-udev-rules 258 | ]; 259 | 260 | # systemd.user.sockets.gpg-agent-ssh = { 261 | # wantedBy = [ "sockets.target" ]; 262 | # listenStreams = [ "%t/gnupg/S.gpg-agent.ssh" ]; 263 | # socketConfig = { 264 | # FileDescriptorName = "ssh"; 265 | # Service = "gpg-agent.service"; 266 | # SocketMode = "0600"; 267 | # DirectoryMode = "0700"; 268 | # }; 269 | # }; 270 | 271 | # environment.shellInit = '' 272 | # export GPG_TTY="$(tty)" 273 | # ${pkgs.gnupg}/bin/gpg-connect-agent /bye 274 | # export SSH_AUTH_SOCK="/run/user/$UID/gnupg/S.gpg-agent.ssh" 275 | # ''; 276 | 277 | # services.yubikey-agent.enable = true; 278 | 279 | programs = { 280 | ssh.startAgent = false; 281 | gnupg.agent.enable = true; 282 | gnupg.agent.enableSSHSupport = true; 283 | gnupg.agent.pinentryFlavor = "gtk2"; 284 | }; 285 | 286 | /* User Interface */ 287 | 288 | services.xserver = { 289 | enable = true; 290 | displayManager.gdm = { 291 | enable = true; 292 | wayland = true; 293 | }; 294 | desktopManager.gnome.enable = true; 295 | }; 296 | 297 | programs.light.enable = true; 298 | 299 | /* HiDPI */ 300 | 301 | console = { 302 | earlySetup = true; 303 | font = "sun12x22"; 304 | colors = theme.colors16; 305 | }; 306 | services.xserver.dpi = 192; 307 | services.xserver.displayManager.sessionCommands = '' 308 | ${pkgs.xorg.xrdb}/bin/xrdb -merge <&2 "syntax: nix-prefetch-git [options] [URL [REVISION [EXPECTED-HASH]]] 39 | 40 | Options: 41 | --out path Path where the output would be stored. 42 | --url url Any url understood by 'git clone'. 43 | --rev ref Any sha1 or references (such as refs/heads/master) 44 | --hash h Expected hash. 45 | --branch-name Branch name to check out into 46 | --deepClone Clone the entire repository. 47 | --no-deepClone Make a shallow clone of just the required ref. 48 | --leave-dotGit Keep the .git directories. 49 | --fetch-submodules Fetch submodules. 50 | --builder Clone as fetchgit does, but url, rev, and out option are mandatory. 51 | --quiet Only print the final json summary. 52 | " 53 | exit 1 54 | } 55 | 56 | # some git commands print to stdout, which would contaminate our JSON output 57 | clean_git(){ 58 | git "$@" >&2 59 | } 60 | 61 | argi=0 62 | argfun="" 63 | for arg; do 64 | if test -z "$argfun"; then 65 | case $arg in 66 | --out) argfun=set_out;; 67 | --url) argfun=set_url;; 68 | --rev) argfun=set_rev;; 69 | --hash) argfun=set_hashType;; 70 | --branch-name) argfun=set_branchName;; 71 | --deepClone) deepClone=true;; 72 | --quiet) QUIET=true;; 73 | --no-deepClone) deepClone=;; 74 | --leave-dotGit) leaveDotGit=true;; 75 | --fetch-submodules) fetchSubmodules=true;; 76 | --builder) builder=true;; 77 | -h|--help) usage; exit;; 78 | *) 79 | : $((++argi)) 80 | case $argi in 81 | 1) url=$arg;; 82 | 2) rev=$arg;; 83 | 3) expHash=$arg;; 84 | *) exit 1;; 85 | esac 86 | ;; 87 | esac 88 | else 89 | case $argfun in 90 | set_*) 91 | var=${argfun#set_} 92 | eval $var=$arg 93 | ;; 94 | esac 95 | argfun="" 96 | fi 97 | done 98 | 99 | if test -z "$url"; then 100 | usage 101 | fi 102 | 103 | 104 | init_remote(){ 105 | local url=$1 106 | clean_git init 107 | clean_git remote add origin "$url" 108 | ( [ -n "$http_proxy" ] && clean_git config http.proxy "$http_proxy" ) || true 109 | } 110 | 111 | # Return the reference of an hash if it exists on the remote repository. 112 | ref_from_hash(){ 113 | local hash=$1 114 | git ls-remote origin | sed -n "\,$hash\t, { s,\(.*\)\t\(.*\),\2,; p; q}" 115 | } 116 | 117 | # Return the hash of a reference if it exists on the remote repository. 118 | hash_from_ref(){ 119 | local ref=$1 120 | git ls-remote origin | sed -n "\,\t$ref, { s,\(.*\)\t\(.*\),\1,; p; q}" 121 | } 122 | 123 | # Returns a name based on the url and reference 124 | # 125 | # This function needs to be in sync with nix's fetchgit implementation 126 | # of urlToName() to re-use the same nix store paths. 127 | url_to_name(){ 128 | local url=$1 129 | local ref=$2 130 | local base 131 | base=$(basename "$url" .git | cut -d: -f2) 132 | 133 | if [[ $ref =~ ^[a-z0-9]+$ ]]; then 134 | echo "$base-${ref:0:7}" 135 | else 136 | echo "$base" 137 | fi 138 | } 139 | 140 | # Fetch everything and checkout the right sha1 141 | checkout_hash(){ 142 | local hash="$1" 143 | local ref="$2" 144 | 145 | if test -z "$hash"; then 146 | hash=$(hash_from_ref "$ref") 147 | fi 148 | 149 | clean_git fetch -t ${builder:+--progress} origin || return 1 150 | 151 | local object_type=$(git cat-file -t "$hash") 152 | if [[ "$object_type" == "commit" ]]; then 153 | clean_git checkout -b "$branchName" "$hash" || return 1 154 | elif [[ "$object_type" == "tree" ]]; then 155 | clean_git config user.email "nix-prefetch-git@localhost" 156 | clean_git config user.name "nix-prefetch-git" 157 | commit_id=$(git commit-tree "$hash" -m "Commit created from tree hash $hash") 158 | clean_git checkout -b "$branchName" "$commit_id" || return 1 159 | else 160 | echo "Unrecognized git object type: $object_type" 161 | return 1 162 | fi 163 | } 164 | 165 | # Fetch only a branch/tag and checkout it. 166 | checkout_ref(){ 167 | local hash="$1" 168 | local ref="$2" 169 | 170 | if [[ -n "$deepClone" ]]; then 171 | # The caller explicitly asked for a deep clone. Deep clones 172 | # allow "git describe" and similar tools to work. See 173 | # https://marc.info/?l=nix-dev&m=139641582514772 174 | # for a discussion. 175 | return 1 176 | fi 177 | 178 | if test -z "$ref"; then 179 | ref=$(ref_from_hash "$hash") 180 | fi 181 | 182 | if test -n "$ref"; then 183 | # --depth option is ignored on http repository. 184 | clean_git fetch ${builder:+--progress} --depth 1 origin +"$ref" || return 1 185 | clean_git checkout -b "$branchName" FETCH_HEAD || return 1 186 | else 187 | return 1 188 | fi 189 | } 190 | 191 | # Update submodules 192 | init_submodules(){ 193 | # Add urls into .git/config file 194 | clean_git submodule init 195 | 196 | # list submodule directories and their hashes 197 | git submodule status | 198 | while read -r l; do 199 | local hash 200 | local dir 201 | local name 202 | local url 203 | 204 | # checkout each submodule 205 | hash=$(echo "$l" | awk '{print $1}' | tr -d '-') 206 | dir=$(echo "$l" | sed -n 's/^.[0-9a-f]\+ \(.*[^)]*\)\( (.*)\)\?$/\1/p') 207 | name=$( 208 | git config -f .gitmodules --get-regexp submodule\..*\.path | 209 | sed -n "s,^\(.*\)\.path $dir\$,\\1,p") 210 | url=$(git config --get "${name}.url") 211 | 212 | clone "$dir" "$url" "$hash" "" 213 | done 214 | } 215 | 216 | clone(){ 217 | local top=$PWD 218 | local dir="$1" 219 | local url="$2" 220 | local hash="$3" 221 | local ref="$4" 222 | 223 | cd "$dir" 224 | 225 | # Initialize the repository. 226 | init_remote "$url" 227 | 228 | # Download data from the repository. 229 | checkout_ref "$hash" "$ref" || 230 | checkout_hash "$hash" "$ref" || ( 231 | echo 1>&2 "Unable to checkout $hash$ref from $url." 232 | exit 1 233 | ) 234 | 235 | # Checkout linked sources. 236 | if test -n "$fetchSubmodules"; then 237 | init_submodules 238 | fi 239 | 240 | if [ -z "$builder" ] && [ -f .topdeps ]; then 241 | if tg help &>/dev/null; then 242 | echo "populating TopGit branches..." 243 | tg remote --populate origin 244 | else 245 | echo "WARNING: would populate TopGit branches but TopGit is not available" >&2 246 | echo "WARNING: install TopGit to fix the problem" >&2 247 | fi 248 | fi 249 | 250 | cd "$top" 251 | } 252 | 253 | # Remove all remote branches, remove tags not reachable from HEAD, do a full 254 | # repack and then garbage collect unreferenced objects. 255 | make_deterministic_repo(){ 256 | local repo="$1" 257 | 258 | # run in sub-shell to not touch current working directory 259 | ( 260 | cd "$repo" 261 | # Remove files that contain timestamps or otherwise have non-deterministic 262 | # properties. 263 | rm -rf .git/logs/ .git/hooks/ .git/index .git/FETCH_HEAD .git/ORIG_HEAD \ 264 | .git/refs/remotes/origin/HEAD .git/config 265 | 266 | # Remove all remote branches. 267 | git branch -r | while read -r branch; do 268 | clean_git branch -rD "$branch" 269 | done 270 | 271 | # Remove tags not reachable from HEAD. If we're exactly on a tag, don't 272 | # delete it. 273 | maybe_tag=$(git tag --points-at HEAD) 274 | git tag --contains HEAD | while read -r tag; do 275 | if [ "$tag" != "$maybe_tag" ]; then 276 | clean_git tag -d "$tag" 277 | fi 278 | done 279 | 280 | # Do a full repack. Must run single-threaded, or else we lose determinism. 281 | clean_git config pack.threads 1 282 | clean_git repack -A -d -f 283 | rm -f .git/config 284 | 285 | # Garbage collect unreferenced objects. 286 | # Note: --keep-largest-pack prevents non-deterministic ordering of packs 287 | # listed in .git/objects/info/packs by only using a single pack 288 | clean_git gc --prune=all --keep-largest-pack 289 | ) 290 | } 291 | 292 | 293 | clone_user_rev() { 294 | local dir="$1" 295 | local url="$2" 296 | local rev="${3:-HEAD}" 297 | 298 | # Perform the checkout. 299 | case "$rev" in 300 | HEAD|refs/*) 301 | clone "$dir" "$url" "" "$rev" 1>&2;; 302 | *) 303 | if test -z "$(echo "$rev" | tr -d 0123456789abcdef)"; then 304 | clone "$dir" "$url" "$rev" "" 1>&2 305 | else 306 | # if revision is not hexadecimal it might be a tag 307 | clone "$dir" "$url" "" "refs/tags/$rev" 1>&2 308 | fi;; 309 | esac 310 | 311 | pushd "$dir" >/dev/null 312 | fullRev=$( (git rev-parse "$rev" 2>/dev/null || git rev-parse "refs/heads/$branchName") | tail -n1) 313 | humanReadableRev=$(git describe "$fullRev" 2> /dev/null || git describe --tags "$fullRev" 2> /dev/null || echo -- none --) 314 | commitDate=$(git show -1 --no-patch --pretty=%ci "$fullRev") 315 | commitDateStrict8601=$(git show -1 --no-patch --pretty=%cI "$fullRev") 316 | popd >/dev/null 317 | 318 | # Allow doing additional processing before .git removal 319 | eval "$NIX_PREFETCH_GIT_CHECKOUT_HOOK" 320 | if test -z "$leaveDotGit"; then 321 | echo "removing \`.git'..." >&2 322 | find "$dir" -name .git -print0 | xargs -0 rm -rf 323 | else 324 | find "$dir" -name .git | while read -r gitdir; do 325 | make_deterministic_repo "$(readlink -f "$gitdir/..")" 326 | done 327 | fi 328 | } 329 | 330 | exit_handlers=() 331 | 332 | run_exit_handlers() { 333 | exit_status=$? 334 | for handler in "${exit_handlers[@]}"; do 335 | eval "$handler $exit_status" 336 | done 337 | } 338 | 339 | trap run_exit_handlers EXIT 340 | 341 | quiet_exit_handler() { 342 | exec 2>&3 3>&- 343 | if [ $1 -ne 0 ]; then 344 | cat "$errfile" >&2 345 | fi 346 | rm -f "$errfile" 347 | } 348 | 349 | quiet_mode() { 350 | errfile="$(mktemp "${TMPDIR:-/tmp}/git-checkout-err-XXXXXXXX")" 351 | exit_handlers+=(quiet_exit_handler) 352 | exec 3>&2 2>"$errfile" 353 | } 354 | 355 | json_escape() { 356 | local s="$1" 357 | s="${s//\\/\\\\}" # \ 358 | s="${s//\"/\\\"}" # " 359 | s="${s//^H/\\\b}" # \b (backspace) 360 | s="${s//^L/\\\f}" # \f (form feed) 361 | s="${s// 362 | /\\\n}" # \n (newline) 363 | s="${s//^M/\\\r}" # \r (carriage return) 364 | s="${s// /\\t}" # \t (tab) 365 | echo "$s" 366 | } 367 | 368 | print_results() { 369 | hash="$1" 370 | if ! test -n "$QUIET"; then 371 | echo "" >&2 372 | echo "git revision is $fullRev" >&2 373 | if test -n "$finalPath"; then 374 | echo "path is $finalPath" >&2 375 | fi 376 | echo "git human-readable version is $humanReadableRev" >&2 377 | echo "Commit date is $commitDate" >&2 378 | if test -n "$hash"; then 379 | echo "hash is $hash" >&2 380 | fi 381 | fi 382 | if test -n "$hash"; then 383 | cat < /dev/null; then 424 | finalPath= 425 | fi 426 | hash=$expHash 427 | fi 428 | 429 | # If we don't know the hash or a path with that hash doesn't exist, 430 | # download the file and add it to the store. 431 | if test -z "$finalPath"; then 432 | 433 | tmpPath="$(mktemp -d "${TMPDIR:-/tmp}/git-checkout-tmp-XXXXXXXX")" 434 | exit_handlers+=(remove_tmpPath) 435 | 436 | tmpFile="$tmpPath/$(url_to_name "$url" "$rev")" 437 | mkdir -p "$tmpFile" 438 | 439 | # Perform the checkout. 440 | clone_user_rev "$tmpFile" "$url" "$rev" 441 | 442 | # Compute the hash. 443 | hash=$(nix-hash --type $hashType --base32 "$tmpFile") 444 | 445 | # Add the downloaded file to the Nix store. 446 | finalPath=$(nix-store --add-fixed --recursive "$hashType" "$tmpFile") 447 | 448 | if test -n "$expHash" -a "$expHash" != "$hash"; then 449 | echo "hash mismatch for URL \`$url'. Got \`$hash'; expected \`$expHash'." >&2 450 | exit 1 451 | fi 452 | fi 453 | 454 | print_results "$hash" 455 | 456 | if test -n "$PRINT_PATH"; then 457 | echo "$finalPath" 458 | fi 459 | fi 460 | -------------------------------------------------------------------------------- /pkgs/julia/trace.jl: -------------------------------------------------------------------------------- 1 | precompile(Tuple{typeof(Base.setindex!), Base.Dict{Base.SHA1, Union{Base.SHA1, String}}, String, Base.SHA1}) 2 | precompile(Tuple{Type{Base.Pair{A, B} where B where A}, Pkg.BinaryPlatforms.FreeBSD, Base.Dict{String, Any}}) 3 | precompile(Tuple{typeof(Base.setindex!), Base.Dict{Pkg.BinaryPlatforms.Platform, Base.Dict{String, Any}}, Base.Dict{String, Any}, Pkg.BinaryPlatforms.FreeBSD}) 4 | precompile(Tuple{typeof(Libdl.dlopen), String, UInt32}) 5 | precompile(Tuple{typeof(JLLWrappers.get_julia_libpaths)}) 6 | precompile(Tuple{typeof(Base.Threads.resize_nthreads!), Array{URIs.RegexAndMatchData, 1}, URIs.RegexAndMatchData}) 7 | precompile(Tuple{typeof(Base.Threads.resize_nthreads!), Array{HTTP.Parsers.RegexAndMatchData, 1}, HTTP.Parsers.RegexAndMatchData}) 8 | precompile(Tuple{typeof(Base.Threads.resize_nthreads!), Array{Base.Dict{String, Base.Set{HTTP.Cookies.Cookie}}, 1}, Base.Dict{String, Base.Set{HTTP.Cookies.Cookie}}}) 9 | precompile(Tuple{typeof(Base.Threads.resize_nthreads!), Array{Base.Dict{Sockets.IPAddr, HTTP.Servers.RateLimit}, 1}, Base.Dict{Sockets.IPAddr, HTTP.Servers.RateLimit}}) 10 | precompile(Tuple{typeof(Base.Experimental.register_error_hint), Function, Type{T} where T}) 11 | precompile(Tuple{typeof(Base.Threads.resize_nthreads!), Array{Base.MPFR.BigFloat, 1}, Base.MPFR.BigFloat}) 12 | precompile(Tuple{typeof(Base.Threads.resize_nthreads!), Array{Base.GMP.BigInt, 1}, Base.GMP.BigInt}) 13 | precompile(Tuple{typeof(Base.setindex!), Base.Dict{Symbol, PlotThemes.PlotTheme}, PlotThemes.PlotTheme, Symbol}) 14 | precompile(Tuple{typeof(Base.get!), Type{Array{Function, 1}}, Base.Dict{Base.PkgId, Array{Function, 1}}, Base.PkgId}) 15 | precompile(Tuple{typeof(Base.push!), Array{Function, 1}, Function}) 16 | precompile(Tuple{typeof(Base.merge), NamedTuple{(), Tuple{}}, Base.Dict{Symbol, Any}}) 17 | precompile(Tuple{typeof(Base.foreach), Function, Array{Base.Dict{Symbol, Any}, 1}, Array{Base.Dict{Symbol, Any}, 1}}) 18 | precompile(Tuple{typeof(Base.setindex!), Base.Dict{Symbol, Any}, Nothing, Symbol}) 19 | precompile(Tuple{typeof(Base.setindex!), Base.Dict{Symbol, Any}, Tuple{Int64, Int64}, Symbol}) 20 | precompile(Tuple{typeof(Base.setindex!), Base.Dict{Symbol, Any}, ColorTypes.RGB{FixedPointNumbers.Normed{UInt8, 8}}, Symbol}) 21 | precompile(Tuple{typeof(Base.setindex!), Base.Dict{Symbol, Any}, Float64, Symbol}) 22 | precompile(Tuple{typeof(Base.setindex!), Base.Dict{Symbol, Any}, Array{Any, 1}, Symbol}) 23 | precompile(Tuple{typeof(Base.setindex!), Base.Dict{Symbol, Any}, Measures.Length{:mm, Float64}, Symbol}) 24 | precompile(Tuple{typeof(Plots.treats_y_as_x), Symbol}) 25 | precompile(Tuple{typeof(Base.in), Symbol, Tuple{Symbol, Symbol, Symbol}}) 26 | precompile(Tuple{typeof(Base.atreplinit), Function}) 27 | precompile(Tuple{typeof(REPL.Terminals.hascolor), REPL.Terminals.TTYTerminal}) 28 | precompile(Tuple{Type{REPL.REPLHistoryProvider}, Any}) 29 | precompile(Tuple{Type{REPL.REPLHistoryProvider}, Any, Any, Any, Any, Any, Any, Any, Any, Any}) 30 | precompile(Tuple{typeof(REPL.run_repl), REPL.AbstractREPL, Any}) 31 | precompile(Tuple{typeof(Base.:(==)), REPL.REPLDisplay{R} where R<:REPL.AbstractREPL, REPL.REPLDisplay{R} where R<:REPL.AbstractREPL}) 32 | precompile(Tuple{Type{REPL.LineEdit.PromptState}, REPL.Terminals.AbstractTerminal, REPL.LineEdit.Prompt, Base.GenericIOBuffer{Array{UInt8, 1}}, Symbol, Array{Base.GenericIOBuffer{Array{UInt8, 1}}, 1}, Int64, REPL.LineEdit.InputAreaState, Int64, Base.AbstractLock, Float64, Float64}) 33 | precompile(Tuple{typeof(REPL.LineEdit.init_state), Any, REPL.LineEdit.HistoryPrompt}) 34 | precompile(Tuple{typeof(REPL.LineEdit.init_state), Any, REPL.LineEdit.PrefixHistoryPrompt}) 35 | precompile(Tuple{typeof(Base.cconvert), Type{Ptr{Nothing}}, Ptr{Nothing}}) 36 | precompile(Tuple{typeof(REPL.LineEdit.refresh_multi_line), REPL.Terminals.UnixTerminal, Any}) 37 | precompile(Tuple{typeof(REPL.LineEdit.prompt_string), AbstractString}) 38 | precompile(Tuple{typeof(REPL.LineEdit.refresh_multi_line), REPL.LineEdit.ModeState}) 39 | precompile(Tuple{typeof(REPL.LineEdit.state), REPL.LineEdit.MIState, Any}) 40 | precompile(Tuple{typeof(Base.pipeline), Base.Cmd}) 41 | precompile(Tuple{typeof(Base.pipeline), Base.TTY, Base.Cmd, Base.TTY}) 42 | precompile(Tuple{typeof(Base.convert), Type{IO}, Base.PipeEndpoint}) 43 | precompile(Tuple{typeof(Base.getproperty), Base.Process, Symbol}) 44 | precompile(Tuple{typeof(REPL.LineEdit.edit_abort), Any, Bool}) 45 | precompile(Tuple{typeof(Base.push!), Array{Function, 1}, Function}) 46 | precompile(Tuple{Plots.var"#271#304"}) 47 | precompile(Tuple{Main.var"#1#2", REPL.LineEditREPL}) 48 | precompile(Tuple{REPL.var"##setup_interface#61", Bool, Any, typeof(REPL.setup_interface), REPL.LineEditREPL}) 49 | precompile(Tuple{Type{REPL.REPLHistoryProvider}, Any, Any, Any, Any, Any, Any, Any, Any, Any}) 50 | precompile(Tuple{Type{Base.Pair{Char, REPLComboShell.var"#52#72"{REPL.LineEdit.PrefixHistoryPrompt}}}, Any, Any}) 51 | precompile(Tuple{Type{Base.Pair{Char, REPLComboShell.var"#53#73"{REPL.LineEdit.Prompt}}}, Any, Any}) 52 | precompile(Tuple{Type{Base.Pair{Char, REPLComboShell.var"#55#75"{REPL.LineEdit.Prompt}}}, Any, Any}) 53 | precompile(Tuple{Plots.var"#247#280", REPL.LineEditREPL}) 54 | precompile(Tuple{typeof(REPL.run_repl), REPL.AbstractREPL, Any}) 55 | precompile(Tuple{typeof(Base.:(==)), REPL.REPLDisplay{R} where R<:REPL.AbstractREPL, REPL.REPLDisplay{R} where R<:REPL.AbstractREPL}) 56 | precompile(Tuple{Type{REPL.LineEdit.PromptState}, REPL.Terminals.AbstractTerminal, REPL.LineEdit.Prompt, Base.GenericIOBuffer{Array{UInt8, 1}}, Symbol, Array{Base.GenericIOBuffer{Array{UInt8, 1}}, 1}, Int64, REPL.LineEdit.InputAreaState, Int64, Base.AbstractLock, Float64, Float64}) 57 | precompile(Tuple{typeof(REPL.LineEdit.refresh_multi_line), REPL.Terminals.UnixTerminal, Any}) 58 | precompile(Tuple{REPL.LineEdit.var"#22#23"{REPL.LineEdit.var"#113#166", String}, Any, Any}) 59 | precompile(Tuple{REPL.LineEdit.var"#113#166", Any, Any, Vararg{Any, N} where N}) 60 | precompile(Tuple{REPL.LineEdit.var"##edit_abort#108", Any, typeof(REPL.LineEdit.edit_abort), Any, Bool}) 61 | precompile(Tuple{REPL.var"#63#72"{Base.IOStream}, Any}) 62 | precompile(Tuple{Core.var"#Type##kw", NamedTuple{(:libc, :compiler_abi), Tuple{Nothing, Pkg.BinaryPlatforms.CompilerABI}}, Type{Pkg.BinaryPlatforms.FreeBSD}, Symbol}) 63 | precompile(Tuple{Pkg.Artifacts.var"#parse_mapping#5"{String}, String, String}) 64 | 65 | precompile(Tuple{typeof(Base.push!), Array{Function, 1}, Function}) 66 | precompile(Tuple{typeof(Base.atreplinit), Function}) 67 | precompile(Tuple{typeof(Base.CoreLogging.with_logger), Function, Logging.ConsoleLogger}) 68 | precompile(Tuple{InteractiveUtils.var"#define_editor##kw", NamedTuple{(:wait,), Tuple{Bool}}, typeof(InteractiveUtils.define_editor), Function, String}) 69 | precompile(Tuple{Main.var"#1#2", REPL.LineEditREPL}) 70 | precompile(Tuple{Type{REPL.REPLHistoryProvider}, Any, Any, Any, Any, Any, Any, Any, Any, Any}) 71 | precompile(Tuple{Type{Base.Pair{Char, REPLComboShell.var"#81#103"{REPL.LineEdit.PrefixHistoryPrompt}}}, Any, Any}) 72 | precompile(Tuple{Type{Base.Pair{Char, REPLComboShell.var"#82#104"{REPL.LineEdit.Prompt}}}, Any, Any}) 73 | precompile(Tuple{Type{Base.Pair{Char, REPLComboShell.var"#84#106"{REPL.LineEdit.Prompt}}}, Any, Any}) 74 | precompile(Tuple{Type{Base.Dict{Any, Any}}, Base.Pair{Char, REPLComboShell.var"#80#102"}, Vararg{Base.Pair{A, B} where B where A, N} where N}) 75 | precompile(Tuple{Type{Base.Dict{Any, Any}}, Base.Pair{Char, REPLComboShell.var"#89#111"{REPL.LineEdit.Prompt}}, Vararg{Base.Pair{A, B} where B where A, N} where N}) 76 | precompile(Tuple{typeof(Base.convert), Type{Base.Dict{Char, Any}}, Base.Dict{Char, Any}}) 77 | precompile(Tuple{Type{Base.Dict{Any, Any}}, Base.Pair{Char, REPLComboShell.var"#92#114"{REPL.LineEdit.Prompt}}, Vararg{Base.Pair{A, B} where B where A, N} where N}) 78 | precompile(Tuple{typeof(Base.convert), Type{Function}, REPLComboShell.var"#95#117"{REPL.LineEditREPL, REPL.LineEdit.Prompt}}) 79 | precompile(Tuple{typeof(REPL.run_repl), REPL.AbstractREPL, Any}) 80 | precompile(Tuple{typeof(Base.:(==)), REPL.REPLDisplay{R} where R<:REPL.AbstractREPL, REPL.REPLDisplay{R} where R<:REPL.AbstractREPL}) 81 | precompile(Tuple{Type{REPL.LineEdit.PromptState}, REPL.Terminals.AbstractTerminal, REPL.LineEdit.Prompt, Base.GenericIOBuffer{Array{UInt8, 1}}, Symbol, Array{Base.GenericIOBuffer{Array{UInt8, 1}}, 1}, Int64, REPL.LineEdit.InputAreaState, Int64, Base.AbstractLock, Float64, Float64}) 82 | precompile(Tuple{typeof(REPL.LineEdit.init_state), Any, REPL.LineEdit.HistoryPrompt}) 83 | precompile(Tuple{typeof(REPL.LineEdit.init_state), Any, REPL.LineEdit.PrefixHistoryPrompt}) 84 | precompile(Tuple{typeof(REPL.LineEdit.refresh_multi_line), REPL.Terminals.UnixTerminal, Any}) 85 | precompile(Tuple{typeof(REPL.LineEdit.prompt_string), AbstractString}) 86 | precompile(Tuple{REPL.LineEdit.var"#22#23"{REPL.LineEdit.var"#133#186", String}, Any, Any}) 87 | precompile(Tuple{REPL.LineEdit.var"#22#23"{REPL.LineEdit.var"#110#163", String}, Any, Any}) 88 | precompile(Tuple{typeof(REPL.LineEdit.refresh_multi_line), REPL.LineEdit.ModeState}) 89 | precompile(Tuple{typeof(REPL.LineEdit.state), REPL.LineEdit.MIState, Any}) 90 | precompile(Tuple{REPL.var"#do_respond#54"{Bool, Bool, REPLComboShell.var"#parse_to_expr#100"{REPL.LineEdit.Prompt, REPLComboShell.var"#set_prompt#98"{String}}, REPL.LineEditREPL, REPL.LineEdit.Prompt}, Any, Any, Any}) 91 | precompile(Tuple{REPLComboShell.var"#parse_to_expr#100"{REPL.LineEdit.Prompt, REPLComboShell.var"#set_prompt#98"{String}}, String}) 92 | precompile(Tuple{typeof(Base.copyto!), Array{Function, 1}, Tuple{REPLComboShell.var"#5#15", REPLComboShell.var"#8#18"}}) 93 | precompile(Tuple{REPLComboShell.var"#5#15", Base.SubString{String}, Base.Dict{Tuple{Symbol, Int64}, Union{Nothing, Tuple{Any, Base.SubString{T} where T<:AbstractString}}}}) 94 | precompile(Tuple{REPLComboShell.var"#7#17", Base.SubString{String}, Base.Dict{Tuple{Symbol, Int64}, Union{Nothing, Tuple{Any, Base.SubString{T} where T<:AbstractString}}}}) 95 | precompile(Tuple{REPLComboShell.var"#37#43", Base.SubString{String}, Base.Dict{Tuple{Symbol, Int64}, Union{Nothing, Tuple{Any, Base.SubString{T} where T<:AbstractString}}}}) 96 | precompile(Tuple{REPLComboShell.var"#47#52", Base.SubString{String}, Base.Dict{Tuple{Symbol, Int64}, Union{Nothing, Tuple{Any, Base.SubString{T} where T<:AbstractString}}}}) 97 | precompile(Tuple{typeof(Base.setindex!), Base.Dict{Tuple{Symbol, Int64}, Union{Nothing, Tuple{Any, Base.SubString{T} where T<:AbstractString}}}, Tuple{Base.SubString{String}, Base.SubString{String}}, Tuple{Symbol, Int64}}) 98 | precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Base.SubString{String}, Base.SubString{String}}, Int64}) 99 | precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Base.SubString{String}, Base.SubString{String}}, Int64, Int64}) 100 | precompile(Tuple{REPLComboShell.var"#48#53", Base.SubString{String}, Base.Dict{Tuple{Symbol, Int64}, Union{Nothing, Tuple{Any, Base.SubString{T} where T<:AbstractString}}}}) 101 | precompile(Tuple{typeof(Base.copyto!), Array{Function, 1}, Tuple{PEG.var"#1#2"{String}, PEG.var"#3#5"{Symbol, Base.Regex}, PEG.var"#1#2"{String}}}) 102 | precompile(Tuple{PEG.var"#1#2"{String}, Base.SubString{String}, Base.Dict{Tuple{Symbol, Int64}, Union{Nothing, Tuple{Any, Base.SubString{T} where T<:AbstractString}}}}) 103 | precompile(Tuple{REPLComboShell.var"#49#54", Base.SubString{String}, Base.Dict{Tuple{Symbol, Int64}, Union{Nothing, Tuple{Any, Base.SubString{T} where T<:AbstractString}}}}) 104 | precompile(Tuple{typeof(Base.setindex!), Array{Union{Nothing, Tuple{Any, Base.SubString{T} where T<:AbstractString}}, 1}, Tuple{Base.SubString{String}, Base.SubString{String}}, Int64}) 105 | precompile(Tuple{typeof(Base.setindex!), Base.Dict{Tuple{Symbol, Int64}, Union{Nothing, Tuple{Any, Base.SubString{T} where T<:AbstractString}}}, Tuple{Array{Any, 1}, Base.SubString{String}}, Tuple{Symbol, Int64}}) 106 | precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Array{Any, 1}, Base.SubString{String}}, Int64}) 107 | precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Array{Any, 1}, Base.SubString{String}}, Int64, Int64}) 108 | precompile(Tuple{REPLComboShell.var"#38#44", Array{Any, 1}}) 109 | precompile(Tuple{typeof(Base.iterate), Base.SubString{String}}) 110 | precompile(Tuple{typeof(Base.iterate), Base.SubString{String}, Int64}) 111 | precompile(Tuple{typeof(Base.arg_gen), Char, Char}) 112 | precompile(Tuple{typeof(Base.setindex!), Base.Dict{Tuple{Symbol, Int64}, Union{Nothing, Tuple{Any, Base.SubString{T} where T<:AbstractString}}}, Tuple{Base.Cmd, Base.SubString{String}}, Tuple{Symbol, Int64}}) 113 | precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Base.Cmd, Base.SubString{String}}, Int64}) 114 | precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Base.Cmd, Base.SubString{String}}, Int64, Int64}) 115 | precompile(Tuple{REPLComboShell.var"#8#18", Base.SubString{String}, Base.Dict{Tuple{Symbol, Int64}, Union{Nothing, Tuple{Any, Base.SubString{T} where T<:AbstractString}}}}) 116 | precompile(Tuple{REPLComboShell.var"#10#20", Base.SubString{String}, Base.Dict{Tuple{Symbol, Int64}, Union{Nothing, Tuple{Any, Base.SubString{T} where T<:AbstractString}}}}) 117 | precompile(Tuple{typeof(Base.copyto!), Array{Function, 1}, Tuple{PEG.var"#3#5"{Symbol, Base.Regex}, REPLComboShell.var"#25#31"}}) 118 | precompile(Tuple{PEG.var"#3#5"{Symbol, Base.Regex}, Base.SubString{String}, Base.Dict{Tuple{Symbol, Int64}, Union{Nothing, Tuple{Any, Base.SubString{T} where T<:AbstractString}}}}) 119 | precompile(Tuple{typeof(REPLComboShell.process_pipeline), Array{Any, 1}}) 120 | precompile(Tuple{typeof(Base.empty), Array{Any, 1}, Type{Base.Cmd}}) 121 | precompile(Tuple{typeof(Base.push!), Array{Base.Cmd, 1}, Base.Cmd}) 122 | precompile(Tuple{typeof(Base.grow_to!), Array{Base.Cmd, 1}, Base.Iterators.Flatten{Array{Any, 1}}, Tuple{Int64, Array{Any, 1}, Int64}}) 123 | precompile(Tuple{typeof(Base.:(!=)), Base.SubString{String}, String}) 124 | precompile(Tuple{typeof(Base.open), Function, Base.CmdRedirect, String}) 125 | precompile(Tuple{Base.var"##open#595", Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, typeof(Base.open), REPLComboShell.var"#79#101", Base.CmdRedirect, String}) 126 | precompile(Tuple{REPLComboShell.var"#79#101", Base.Process}) 127 | precompile(Tuple{typeof(Base.put!), Base.Channel{Any}, Tuple{Nothing, Int64}}) 128 | precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Nothing, Int64}, Int64}) 129 | precompile(Tuple{typeof(Base.indexed_iterate), Tuple{Nothing, Int64}, Int64, Int64}) 130 | precompile(Tuple{REPL.LineEdit.var"#22#23"{REPL.LineEdit.var"#109#162", String}, Any, Any}) 131 | precompile(Tuple{typeof(REPL.LineEdit.complete_line), REPLComboShell.JulishCompletionProvider, REPL.LineEdit.PromptState}) 132 | precompile(Tuple{Base.var"#shell_escape##kw", NamedTuple{(:special,), Tuple{String}}, typeof(Base.shell_escape), String, String, Vararg{String, N} where N}) 133 | precompile(Tuple{Base.var"##shell_escape#372", String, typeof(Base.shell_escape), String, Vararg{String, N} where N}) 134 | precompile(Tuple{typeof(Base.sprint), Function, String, Vararg{String, N} where N}) 135 | precompile(Tuple{Base.var"##sprint#355", Nothing, Int64, typeof(Base.sprint), Function, String, Vararg{String, N} where N}) 136 | precompile(Tuple{Base.var"#373#374"{String}, Base.GenericIOBuffer{Array{UInt8, 1}}, String, Vararg{String, N} where N}) 137 | precompile(Tuple{Base.var"#print_shell_escaped##kw", NamedTuple{(:special,), Tuple{String}}, typeof(Base.print_shell_escaped), Base.GenericIOBuffer{Array{UInt8, 1}}, String, String, Vararg{String, N} where N}) 138 | precompile(Tuple{Base.var"##print_shell_escaped#370", String, typeof(Base.print_shell_escaped), Base.GenericIOBuffer{Array{UInt8, 1}}, String, String, Vararg{String, N} where N}) 139 | precompile(Tuple{typeof(Base.print), Base.GenericIOBuffer{Array{UInt8, 1}}, Char, String, Vararg{Any, N} where N}) 140 | precompile(Tuple{Base.var"#592#593"{Base.Process}}) 141 | precompile(Tuple{REPL.LineEdit.var"#22#23"{REPLComboShell.var"#86#108"{REPL.LineEdit.Prompt}, String}, Any, Any}) 142 | precompile(Tuple{REPLComboShell.var"#86#108"{REPL.LineEdit.Prompt}, REPL.LineEdit.MIState, Nothing, Vararg{Any, N} where N}) 143 | precompile(Tuple{typeof(REPL.LineEdit.deactivate), REPL.LineEdit.TextInterface, REPL.LineEdit.ModeState, Any, REPL.Terminals.TextTerminal}) 144 | precompile(Tuple{typeof(REPL.LineEdit.refresh_multi_line), REPL.Terminals.TerminalBuffer, REPL.LineEdit.ModeState}) 145 | precompile(Tuple{REPL.LineEdit.var"#22#23"{REPL.LineEdit.var"#113#166", String}, Any, Any}) 146 | precompile(Tuple{typeof(REPL.LineEdit.edit_abort), Any, Bool}) 147 | precompile(Tuple{REPL.var"#63#72"{Base.IOStream}, Any}) 148 | -------------------------------------------------------------------------------- /pkgs/julia/Manifest.toml: -------------------------------------------------------------------------------- 1 | # This file is machine-generated - editing it directly is not advised 2 | 3 | [[AbstractAlgebra]] 4 | deps = ["InteractiveUtils", "LinearAlgebra", "Markdown", "Random", "RandomExtensions", "SparseArrays", "Test"] 5 | git-tree-sha1 = "0633f6981ad1f6fc01c26daef94a5241c6632e86" 6 | uuid = "c3fe647b-3220-5bb0-a1ea-a7954cac585d" 7 | version = "0.13.6" 8 | 9 | [[AbstractFFTs]] 10 | deps = ["LinearAlgebra"] 11 | git-tree-sha1 = "485ee0867925449198280d4af84bdb46a2a404d0" 12 | uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" 13 | version = "1.0.1" 14 | 15 | [[AbstractTrees]] 16 | git-tree-sha1 = "03e0550477d86222521d254b741d470ba17ea0b5" 17 | uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" 18 | version = "0.3.4" 19 | 20 | [[Adapt]] 21 | deps = ["LinearAlgebra"] 22 | git-tree-sha1 = "ffcfa2d345aaee0ef3d8346a073d5dd03c983ebe" 23 | uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" 24 | version = "3.2.0" 25 | 26 | [[ArnoldiMethod]] 27 | deps = ["LinearAlgebra", "Random", "StaticArrays"] 28 | git-tree-sha1 = "f87e559f87a45bece9c9ed97458d3afe98b1ebb9" 29 | uuid = "ec485272-7323-5ecc-a04f-4719b315124d" 30 | version = "0.1.0" 31 | 32 | [[Arpack]] 33 | deps = ["Arpack_jll", "Libdl", "LinearAlgebra"] 34 | git-tree-sha1 = "2ff92b71ba1747c5fdd541f8fc87736d82f40ec9" 35 | uuid = "7d9fca2a-8960-54d3-9f78-7d1dccf2cb97" 36 | version = "0.4.0" 37 | 38 | [[Arpack_jll]] 39 | deps = ["Libdl", "OpenBLAS_jll", "Pkg"] 40 | git-tree-sha1 = "e214a9b9bd1b4e1b4f15b22c0994862b66af7ff7" 41 | uuid = "68821587-b530-5797-8361-c406ea357684" 42 | version = "3.5.0+3" 43 | 44 | [[ArrayInterface]] 45 | deps = ["IfElse", "LinearAlgebra", "Requires", "SparseArrays", "Static"] 46 | git-tree-sha1 = "ce17bad65d0842b34a15fffc8879a9f68f08a67f" 47 | uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" 48 | version = "3.1.6" 49 | 50 | [[Artifacts]] 51 | deps = ["Pkg"] 52 | git-tree-sha1 = "c30985d8821e0cd73870b17b0ed0ce6dc44cb744" 53 | uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" 54 | version = "1.3.0" 55 | 56 | [[AxisAlgorithms]] 57 | deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"] 58 | git-tree-sha1 = "a4d07a1c313392a77042855df46c5f534076fab9" 59 | uuid = "13072b0f-2c55-5437-9ae7-d433b7a33950" 60 | version = "1.0.0" 61 | 62 | [[Base64]] 63 | uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" 64 | 65 | [[BenchmarkTools]] 66 | deps = ["JSON", "Logging", "Printf", "Statistics", "UUIDs"] 67 | git-tree-sha1 = "9e62e66db34540a0c919d72172cc2f642ac71260" 68 | uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" 69 | version = "0.5.0" 70 | 71 | [[Bzip2_jll]] 72 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 73 | git-tree-sha1 = "c3598e525718abcc440f69cc6d5f60dda0a1b61e" 74 | uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" 75 | version = "1.0.6+5" 76 | 77 | [[Cairo_jll]] 78 | deps = ["Artifacts", "Bzip2_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] 79 | git-tree-sha1 = "e2f47f6d8337369411569fd45ae5753ca10394c6" 80 | uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" 81 | version = "1.16.0+6" 82 | 83 | [[Calculus]] 84 | deps = ["LinearAlgebra"] 85 | git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad" 86 | uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" 87 | version = "0.5.1" 88 | 89 | [[ChainRulesCore]] 90 | deps = ["Compat", "LinearAlgebra", "SparseArrays"] 91 | git-tree-sha1 = "de4f08843c332d355852721adb1592bce7924da3" 92 | uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" 93 | version = "0.9.29" 94 | 95 | [[Clustering]] 96 | deps = ["Distances", "LinearAlgebra", "NearestNeighbors", "Printf", "SparseArrays", "Statistics", "StatsBase"] 97 | git-tree-sha1 = "75479b7df4167267d75294d14b58244695beb2ac" 98 | uuid = "aaaa29a8-35af-508c-8bc3-b662a17a0fe5" 99 | version = "0.14.2" 100 | 101 | [[CodecBzip2]] 102 | deps = ["Bzip2_jll", "Libdl", "TranscodingStreams"] 103 | git-tree-sha1 = "2e62a725210ce3c3c2e1a3080190e7ca491f18d7" 104 | uuid = "523fee87-0ab8-5b00-afb7-3ecf72e48cfd" 105 | version = "0.7.2" 106 | 107 | [[CodecZlib]] 108 | deps = ["TranscodingStreams", "Zlib_jll"] 109 | git-tree-sha1 = "ded953804d019afa9a3f98981d99b33e3db7b6da" 110 | uuid = "944b1d66-785c-5afd-91f1-9de20f533193" 111 | version = "0.7.0" 112 | 113 | [[ColorSchemes]] 114 | deps = ["ColorTypes", "Colors", "FixedPointNumbers", "Random", "StaticArrays"] 115 | git-tree-sha1 = "3141757b5832ee7a0386db87997ee5a23ff20f4d" 116 | uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" 117 | version = "3.10.2" 118 | 119 | [[ColorTypes]] 120 | deps = ["FixedPointNumbers", "Random"] 121 | git-tree-sha1 = "32a2b8af383f11cbb65803883837a149d10dfe8a" 122 | uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" 123 | version = "0.10.12" 124 | 125 | [[Colors]] 126 | deps = ["ColorTypes", "FixedPointNumbers", "InteractiveUtils", "Reexport"] 127 | git-tree-sha1 = "ac5f2213e56ed8a34a3dd2f681f4df1166b34929" 128 | uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" 129 | version = "0.12.6" 130 | 131 | [[Combinatorics]] 132 | git-tree-sha1 = "08c8b6831dc00bfea825826be0bc8336fc369860" 133 | uuid = "861a8166-3701-5b0c-9a16-15d98fcdc6aa" 134 | version = "1.0.2" 135 | 136 | [[CommonSolve]] 137 | git-tree-sha1 = "68a0743f578349ada8bc911a5cbd5a2ef6ed6d1f" 138 | uuid = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" 139 | version = "0.2.0" 140 | 141 | [[CommonSubexpressions]] 142 | deps = ["MacroTools", "Test"] 143 | git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" 144 | uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" 145 | version = "0.3.0" 146 | 147 | [[Compat]] 148 | deps = ["Base64", "Dates", "DelimitedFiles", "Distributed", "InteractiveUtils", "LibGit2", "Libdl", "LinearAlgebra", "Markdown", "Mmap", "Pkg", "Printf", "REPL", "Random", "SHA", "Serialization", "SharedArrays", "Sockets", "SparseArrays", "Statistics", "Test", "UUIDs", "Unicode"] 149 | git-tree-sha1 = "919c7f3151e79ff196add81d7f4e45d91bbf420b" 150 | uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" 151 | version = "3.25.0" 152 | 153 | [[CompilerSupportLibraries_jll]] 154 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 155 | git-tree-sha1 = "8e695f735fca77e9708e795eda62afdb869cbb70" 156 | uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" 157 | version = "0.3.4+0" 158 | 159 | [[ConstraintSolver]] 160 | deps = ["DataStructures", "Formatting", "JSON", "JuMP", "LightGraphs", "MathOptInterface", "MatrixNetworks", "Random", "Statistics", "StatsBase", "StatsFuns"] 161 | git-tree-sha1 = "791df3ff19cfe8cf17e31447a7ebe1b75df50e15" 162 | uuid = "e0e52ebd-5523-408d-9ca3-7641f1cd1405" 163 | version = "0.6.5" 164 | 165 | [[ConstructionBase]] 166 | deps = ["LinearAlgebra"] 167 | git-tree-sha1 = "48920211c95a6da1914a06c44ec94be70e84ffff" 168 | uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" 169 | version = "1.1.0" 170 | 171 | [[Contour]] 172 | deps = ["StaticArrays"] 173 | git-tree-sha1 = "9f02045d934dc030edad45944ea80dbd1f0ebea7" 174 | uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" 175 | version = "0.5.7" 176 | 177 | [[Crayons]] 178 | git-tree-sha1 = "3f71217b538d7aaee0b69ab47d9b7724ca8afa0d" 179 | uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" 180 | version = "4.0.4" 181 | 182 | [[DataAPI]] 183 | git-tree-sha1 = "dfb3b7e89e395be1e25c2ad6d7690dc29cc53b1d" 184 | uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" 185 | version = "1.6.0" 186 | 187 | [[DataStructures]] 188 | deps = ["Compat", "InteractiveUtils", "OrderedCollections"] 189 | git-tree-sha1 = "4437b64df1e0adccc3e5d1adbc3ac741095e4677" 190 | uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" 191 | version = "0.18.9" 192 | 193 | [[DataValueInterfaces]] 194 | git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" 195 | uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" 196 | version = "1.0.0" 197 | 198 | [[DataValues]] 199 | deps = ["DataValueInterfaces", "Dates"] 200 | git-tree-sha1 = "d88a19299eba280a6d062e135a43f00323ae70bf" 201 | uuid = "e7dc6d0d-1eca-5fa6-8ad6-5aecde8b7ea5" 202 | version = "0.4.13" 203 | 204 | [[Dates]] 205 | deps = ["Printf"] 206 | uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" 207 | 208 | [[DelimitedFiles]] 209 | deps = ["Mmap"] 210 | uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" 211 | 212 | [[DiffResults]] 213 | deps = ["StaticArrays"] 214 | git-tree-sha1 = "c18e98cba888c6c25d1c3b048e4b3380ca956805" 215 | uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" 216 | version = "1.0.3" 217 | 218 | [[DiffRules]] 219 | deps = ["NaNMath", "Random", "SpecialFunctions"] 220 | git-tree-sha1 = "214c3fcac57755cfda163d91c58893a8723f93e9" 221 | uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" 222 | version = "1.0.2" 223 | 224 | [[Distances]] 225 | deps = ["LinearAlgebra", "Statistics"] 226 | git-tree-sha1 = "366715149014943abd71aa647a07a43314158b2d" 227 | uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" 228 | version = "0.10.2" 229 | 230 | [[Distributed]] 231 | deps = ["Random", "Serialization", "Sockets"] 232 | uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" 233 | 234 | [[Distributions]] 235 | deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SparseArrays", "SpecialFunctions", "Statistics", "StatsBase", "StatsFuns"] 236 | git-tree-sha1 = "e64debe8cd174cc52d7dd617ebc5492c6f8b698c" 237 | uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" 238 | version = "0.24.15" 239 | 240 | [[DocStringExtensions]] 241 | deps = ["LibGit2", "Markdown", "Pkg", "Test"] 242 | git-tree-sha1 = "9d4f64f79012636741cf01133158a54b24924c32" 243 | uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" 244 | version = "0.8.4" 245 | 246 | [[EarCut_jll]] 247 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 248 | git-tree-sha1 = "92d8f9f208637e8d2d28c664051a00569c01493d" 249 | uuid = "5ae413db-bbd1-5e63-b57d-d24a61df00f5" 250 | version = "2.1.5+1" 251 | 252 | [[Expat_jll]] 253 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 254 | git-tree-sha1 = "1402e52fcda25064f51c77a9655ce8680b76acf0" 255 | uuid = "2e619515-83b5-522b-bb60-26c02a35a201" 256 | version = "2.2.7+6" 257 | 258 | [[ExprTools]] 259 | git-tree-sha1 = "10407a39b87f29d47ebaca8edbc75d7c302ff93e" 260 | uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" 261 | version = "0.1.3" 262 | 263 | [[FFMPEG]] 264 | deps = ["FFMPEG_jll", "x264_jll"] 265 | git-tree-sha1 = "9a73ffdc375be61b0e4516d83d880b265366fe1f" 266 | uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" 267 | version = "0.4.0" 268 | 269 | [[FFMPEG_jll]] 270 | deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "LibVPX_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "Pkg", "Zlib_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] 271 | git-tree-sha1 = "3cc57ad0a213808473eafef4845a74766242e05f" 272 | uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" 273 | version = "4.3.1+4" 274 | 275 | [[FFTW]] 276 | deps = ["AbstractFFTs", "FFTW_jll", "IntelOpenMP_jll", "Libdl", "LinearAlgebra", "MKL_jll", "Reexport"] 277 | git-tree-sha1 = "1b48dbde42f307e48685fa9213d8b9f8c0d87594" 278 | uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" 279 | version = "1.3.2" 280 | 281 | [[FFTW_jll]] 282 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 283 | git-tree-sha1 = "5a0d4b6a22a34d17d53543bd124f4b08ed78e8b0" 284 | uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" 285 | version = "3.3.9+7" 286 | 287 | [[FillArrays]] 288 | deps = ["LinearAlgebra", "Random", "SparseArrays"] 289 | git-tree-sha1 = "31939159aeb8ffad1d4d8ee44d07f8558273120a" 290 | uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" 291 | version = "0.11.7" 292 | 293 | [[FiniteDiff]] 294 | deps = ["ArrayInterface", "LinearAlgebra", "Requires", "SparseArrays", "StaticArrays"] 295 | git-tree-sha1 = "f6f80c8f934efd49a286bb5315360be66956dfc4" 296 | uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" 297 | version = "2.8.0" 298 | 299 | [[FixedPointNumbers]] 300 | deps = ["Statistics"] 301 | git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" 302 | uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" 303 | version = "0.8.4" 304 | 305 | [[Fontconfig_jll]] 306 | deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] 307 | git-tree-sha1 = "35895cf184ceaab11fd778b4590144034a167a2f" 308 | uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" 309 | version = "2.13.1+14" 310 | 311 | [[Formatting]] 312 | deps = ["Printf"] 313 | git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8" 314 | uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" 315 | version = "0.4.2" 316 | 317 | [[ForwardDiff]] 318 | deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "NaNMath", "Random", "SpecialFunctions", "StaticArrays"] 319 | git-tree-sha1 = "c68fb7481b71519d313114dca639b35262ff105f" 320 | uuid = "f6369f11-7733-5829-9624-2563aa707210" 321 | version = "0.10.17" 322 | 323 | [[FreeType2_jll]] 324 | deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] 325 | git-tree-sha1 = "cbd58c9deb1d304f5a245a0b7eb841a2560cfec6" 326 | uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" 327 | version = "2.10.1+5" 328 | 329 | [[FriBidi_jll]] 330 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 331 | git-tree-sha1 = "0d20aed5b14dd4c9a2453c1b601d08e1149679cc" 332 | uuid = "559328eb-81f9-559d-9380-de523a88c83c" 333 | version = "1.0.5+6" 334 | 335 | [[Future]] 336 | deps = ["Random"] 337 | uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" 338 | 339 | [[FuzzyCompletions]] 340 | deps = ["REPL"] 341 | git-tree-sha1 = "9cde086faa37f32794be3d2df393ff064d43cd66" 342 | uuid = "fb4132e2-a121-4a70-b8a1-d5b831dcdcc2" 343 | version = "0.4.1" 344 | 345 | [[GLFW_jll]] 346 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Pkg", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll"] 347 | git-tree-sha1 = "bd1dbf065d7a4a0bdf7e74dd26cf932dda22b929" 348 | uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" 349 | version = "3.3.3+0" 350 | 351 | [[GR]] 352 | deps = ["Base64", "DelimitedFiles", "GR_jll", "HTTP", "JSON", "LinearAlgebra", "Pkg", "Printf", "Random", "Serialization", "Sockets", "Test", "UUIDs"] 353 | git-tree-sha1 = "12d971c928b7ecf19b748a2c7df6a365690dbf2c" 354 | uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" 355 | version = "0.55.0" 356 | 357 | [[GR_jll]] 358 | deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Pkg", "Qt_jll", "Zlib_jll", "libpng_jll"] 359 | git-tree-sha1 = "8aee6fa096b0cbdb05e71750c978b96a08c78951" 360 | uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" 361 | version = "0.53.0+0" 362 | 363 | [[GeometryBasics]] 364 | deps = ["EarCut_jll", "IterTools", "LinearAlgebra", "StaticArrays", "StructArrays", "Tables"] 365 | git-tree-sha1 = "c7f81b22b6c255861be4007a16bfdeb60e1c7f9b" 366 | uuid = "5c1252a2-5f33-56bf-86c9-59e7332b4326" 367 | version = "0.3.11" 368 | 369 | [[Gettext_jll]] 370 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] 371 | git-tree-sha1 = "8c14294a079216000a0bdca5ec5a447f073ddc9d" 372 | uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" 373 | version = "0.20.1+7" 374 | 375 | [[Glib_jll]] 376 | deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE_jll", "Pkg", "Zlib_jll"] 377 | git-tree-sha1 = "04690cc5008b38ecbdfede949220bc7d9ba26397" 378 | uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" 379 | version = "2.59.0+4" 380 | 381 | [[Grisu]] 382 | git-tree-sha1 = "03d381f65183cb2d0af8b3425fde97263ce9a995" 383 | uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" 384 | version = "1.0.0" 385 | 386 | [[HTTP]] 387 | deps = ["Base64", "Dates", "IniFile", "MbedTLS", "NetworkOptions", "Sockets", "URIs"] 388 | git-tree-sha1 = "c9f380c76d8aaa1fa7ea9cf97bddbc0d5b15adc2" 389 | uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" 390 | version = "0.9.5" 391 | 392 | [[HypothesisTests]] 393 | deps = ["Combinatorics", "Distributions", "LinearAlgebra", "Random", "Rmath", "Roots", "Statistics", "StatsBase"] 394 | git-tree-sha1 = "552892528991c3e17eb60e623f1ac94c0663eb7d" 395 | uuid = "09f84164-cd44-5f33-b23f-e6b0d136a0d5" 396 | version = "0.10.2" 397 | 398 | [[IfElse]] 399 | git-tree-sha1 = "28e837ff3e7a6c3cdb252ce49fb412c8eb3caeef" 400 | uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" 401 | version = "0.1.0" 402 | 403 | [[Inflate]] 404 | git-tree-sha1 = "f5fc07d4e706b84f72d54eedcc1c13d92fb0871c" 405 | uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" 406 | version = "0.1.2" 407 | 408 | [[IniFile]] 409 | deps = ["Test"] 410 | git-tree-sha1 = "098e4d2c533924c921f9f9847274f2ad89e018b8" 411 | uuid = "83e8ac13-25f8-5344-8a64-a9f2b223428f" 412 | version = "0.5.0" 413 | 414 | [[IntelOpenMP_jll]] 415 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 416 | git-tree-sha1 = "d979e54b71da82f3a65b62553da4fc3d18c9004c" 417 | uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" 418 | version = "2018.0.3+2" 419 | 420 | [[InteractiveUtils]] 421 | deps = ["Markdown"] 422 | uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" 423 | 424 | [[Interpolations]] 425 | deps = ["AxisAlgorithms", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"] 426 | git-tree-sha1 = "eb1dd6d5b2275faaaa18533e0fc5f9171cec25fa" 427 | uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" 428 | version = "0.13.1" 429 | 430 | [[IterTools]] 431 | git-tree-sha1 = "05110a2ab1fc5f932622ffea2a003221f4782c18" 432 | uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" 433 | version = "1.3.0" 434 | 435 | [[IteratorInterfaceExtensions]] 436 | git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" 437 | uuid = "82899510-4779-5014-852e-03e436cf321d" 438 | version = "1.0.0" 439 | 440 | [[JLLWrappers]] 441 | git-tree-sha1 = "a431f5f2ca3f4feef3bd7a5e94b8b8d4f2f647a0" 442 | uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" 443 | version = "1.2.0" 444 | 445 | [[JSON]] 446 | deps = ["Dates", "Mmap", "Parsers", "Unicode"] 447 | git-tree-sha1 = "81690084b6198a2e1da36fcfda16eeca9f9f24e4" 448 | uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" 449 | version = "0.21.1" 450 | 451 | [[JSONSchema]] 452 | deps = ["HTTP", "JSON", "ZipFile"] 453 | git-tree-sha1 = "b84ab8139afde82c7c65ba2b792fe12e01dd7307" 454 | uuid = "7d188eb4-7ad8-530c-ae41-71a32a6d4692" 455 | version = "0.3.3" 456 | 457 | [[JpegTurbo_jll]] 458 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 459 | git-tree-sha1 = "9aff0587d9603ea0de2c6f6300d9f9492bbefbd3" 460 | uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" 461 | version = "2.0.1+3" 462 | 463 | [[JuMP]] 464 | deps = ["Calculus", "DataStructures", "ForwardDiff", "JSON", "LinearAlgebra", "MathOptInterface", "MutableArithmetics", "NaNMath", "Random", "SparseArrays", "SpecialFunctions", "Statistics"] 465 | git-tree-sha1 = "e952f49e2242fa21edcf27bbd6c67041685bee5d" 466 | uuid = "4076af6c-e467-56ae-b986-b466b2749572" 467 | version = "0.21.6" 468 | 469 | [[KahanSummation]] 470 | deps = ["Test"] 471 | git-tree-sha1 = "1f01068b28d3ad83d4d1212a0ce8d7ecacb33482" 472 | uuid = "8e2b3108-d4c1-50be-a7a2-16352aec75c3" 473 | version = "0.1.0" 474 | 475 | [[KernelDensity]] 476 | deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"] 477 | git-tree-sha1 = "09aeec87bdc9c1fa70d0b508dfa94a21acd280d9" 478 | uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b" 479 | version = "0.6.2" 480 | 481 | [[LAME_jll]] 482 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 483 | git-tree-sha1 = "df381151e871f41ee86cee4f5f6fd598b8a68826" 484 | uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" 485 | version = "3.100.0+3" 486 | 487 | [[LZO_jll]] 488 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 489 | git-tree-sha1 = "f128cd6cd05ffd6d3df0523ed99b90ff6f9b349a" 490 | uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" 491 | version = "2.10.0+3" 492 | 493 | [[LaTeXStrings]] 494 | git-tree-sha1 = "c7f1c695e06c01b95a67f0cd1d34994f3e7db104" 495 | uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" 496 | version = "1.2.1" 497 | 498 | [[LabelledArrays]] 499 | deps = ["ArrayInterface", "LinearAlgebra", "MacroTools", "StaticArrays"] 500 | git-tree-sha1 = "5e288800819c323de5897fa6d5a002bdad54baf7" 501 | uuid = "2ee39098-c373-598a-b85f-a56591580800" 502 | version = "1.5.0" 503 | 504 | [[Latexify]] 505 | deps = ["Formatting", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "Printf", "Requires"] 506 | git-tree-sha1 = "a2484a6e0a48c694c41f69397657b6753e218923" 507 | uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" 508 | version = "0.14.9" 509 | 510 | [[LazyArtifacts]] 511 | deps = ["Pkg"] 512 | git-tree-sha1 = "4bb5499a1fc437342ea9ab7e319ede5a457c0968" 513 | uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" 514 | version = "1.3.0" 515 | 516 | [[LibGit2]] 517 | deps = ["Printf"] 518 | uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" 519 | 520 | [[LibVPX_jll]] 521 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 522 | git-tree-sha1 = "85fcc80c3052be96619affa2fe2e6d2da3908e11" 523 | uuid = "dd192d2f-8180-539f-9fb4-cc70b1dcf69a" 524 | version = "1.9.0+1" 525 | 526 | [[Libdl]] 527 | uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" 528 | 529 | [[Libffi_jll]] 530 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 531 | git-tree-sha1 = "a2cd088a88c0d37eef7d209fd3d8712febce0d90" 532 | uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" 533 | version = "3.2.1+4" 534 | 535 | [[Libgcrypt_jll]] 536 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll", "Pkg"] 537 | git-tree-sha1 = "b391a18ab1170a2e568f9fb8d83bc7c780cb9999" 538 | uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" 539 | version = "1.8.5+4" 540 | 541 | [[Libglvnd_jll]] 542 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_libXext_jll"] 543 | git-tree-sha1 = "7739f837d6447403596a75d19ed01fd08d6f56bf" 544 | uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" 545 | version = "1.3.0+3" 546 | 547 | [[Libgpg_error_jll]] 548 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 549 | git-tree-sha1 = "ec7f2e8ad5c9fa99fc773376cdbc86d9a5a23cb7" 550 | uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" 551 | version = "1.36.0+3" 552 | 553 | [[Libiconv_jll]] 554 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 555 | git-tree-sha1 = "8e924324b2e9275a51407a4e06deb3455b1e359f" 556 | uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" 557 | version = "1.16.0+7" 558 | 559 | [[Libmount_jll]] 560 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 561 | git-tree-sha1 = "51ad0c01c94c1ce48d5cad629425035ad030bfd5" 562 | uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" 563 | version = "2.34.0+3" 564 | 565 | [[Libtiff_jll]] 566 | deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Pkg", "Zlib_jll", "Zstd_jll"] 567 | git-tree-sha1 = "291dd857901f94d683973cdf679984cdf73b56d0" 568 | uuid = "89763e89-9b03-5906-acba-b20f662cd828" 569 | version = "4.1.0+2" 570 | 571 | [[Libuuid_jll]] 572 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 573 | git-tree-sha1 = "f879ae9edbaa2c74c922e8b85bb83cc84ea1450b" 574 | uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" 575 | version = "2.34.0+7" 576 | 577 | [[LightGraphs]] 578 | deps = ["ArnoldiMethod", "DataStructures", "Distributed", "Inflate", "LinearAlgebra", "Random", "SharedArrays", "SimpleTraits", "SparseArrays", "Statistics"] 579 | git-tree-sha1 = "432428df5f360964040ed60418dd5601ecd240b6" 580 | uuid = "093fc24a-ae57-5d10-9952-331d41423f4d" 581 | version = "1.3.5" 582 | 583 | [[LineSearches]] 584 | deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf"] 585 | git-tree-sha1 = "f27132e551e959b3667d8c93eae90973225032dd" 586 | uuid = "d3d80556-e9d4-5f37-9878-2ab0fcc64255" 587 | version = "7.1.1" 588 | 589 | [[LinearAlgebra]] 590 | deps = ["Libdl"] 591 | uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" 592 | 593 | [[Logging]] 594 | uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" 595 | 596 | [[MKL_jll]] 597 | deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] 598 | git-tree-sha1 = "c253236b0ed414624b083e6b72bfe891fbd2c7af" 599 | uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" 600 | version = "2021.1.1+1" 601 | 602 | [[MacroTools]] 603 | deps = ["Markdown", "Random"] 604 | git-tree-sha1 = "6a8a2a625ab0dea913aba95c11370589e0239ff0" 605 | uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" 606 | version = "0.5.6" 607 | 608 | [[Markdown]] 609 | deps = ["Base64"] 610 | uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" 611 | 612 | [[MathOptInterface]] 613 | deps = ["BenchmarkTools", "CodecBzip2", "CodecZlib", "JSON", "JSONSchema", "LinearAlgebra", "MutableArithmetics", "OrderedCollections", "SparseArrays", "Test", "Unicode"] 614 | git-tree-sha1 = "606efe4246da5407d7505265a1ead72467528996" 615 | uuid = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" 616 | version = "0.9.20" 617 | 618 | [[MatrixNetworks]] 619 | deps = ["Arpack", "DataStructures", "DelimitedFiles", "IterTools", "KahanSummation", "LinearAlgebra", "Printf", "Random", "SparseArrays", "Statistics"] 620 | git-tree-sha1 = "f6794d987d426bab570aabb2d03e2f40ca4fc438" 621 | uuid = "4f449596-a032-5618-b826-5a251cb6dc11" 622 | version = "1.0.2" 623 | 624 | [[MbedTLS]] 625 | deps = ["Dates", "MbedTLS_jll", "Random", "Sockets"] 626 | git-tree-sha1 = "1c38e51c3d08ef2278062ebceade0e46cefc96fe" 627 | uuid = "739be429-bea8-5141-9913-cc70e7f3736d" 628 | version = "1.0.3" 629 | 630 | [[MbedTLS_jll]] 631 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 632 | git-tree-sha1 = "0eef589dd1c26a3ac9d753fe1a8bcad63f956fa6" 633 | uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" 634 | version = "2.16.8+1" 635 | 636 | [[Measures]] 637 | git-tree-sha1 = "e498ddeee6f9fdb4551ce855a46f54dbd900245f" 638 | uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" 639 | version = "0.3.1" 640 | 641 | [[Missings]] 642 | deps = ["DataAPI"] 643 | git-tree-sha1 = "f8c673ccc215eb50fcadb285f522420e29e69e1c" 644 | uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" 645 | version = "0.4.5" 646 | 647 | [[Mmap]] 648 | uuid = "a63ad114-7e13-5084-954f-fe012c677804" 649 | 650 | [[MsgPack]] 651 | deps = ["Serialization"] 652 | git-tree-sha1 = "a8cbf066b54d793b9a48c5daa5d586cf2b5bd43d" 653 | uuid = "99f44e22-a591-53d1-9472-aa23ef4bd671" 654 | version = "1.1.0" 655 | 656 | [[MultivariateStats]] 657 | deps = ["Arpack", "LinearAlgebra", "SparseArrays", "Statistics", "StatsBase"] 658 | git-tree-sha1 = "8d958ff1854b166003238fe191ec34b9d592860a" 659 | uuid = "6f286f6a-111f-5878-ab1e-185364afe411" 660 | version = "0.8.0" 661 | 662 | [[MutableArithmetics]] 663 | deps = ["LinearAlgebra", "SparseArrays", "Test"] 664 | git-tree-sha1 = "6b6bb8f550dc38310afd4a0af0786dc3222459e2" 665 | uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" 666 | version = "0.2.14" 667 | 668 | [[NLSolversBase]] 669 | deps = ["DiffResults", "Distributed", "FiniteDiff", "ForwardDiff"] 670 | git-tree-sha1 = "50608f411a1e178e0129eab4110bd56efd08816f" 671 | uuid = "d41bc354-129a-5804-8e4c-c37616107c6c" 672 | version = "7.8.0" 673 | 674 | [[NaNMath]] 675 | git-tree-sha1 = "bfe47e760d60b82b66b61d2d44128b62e3a369fb" 676 | uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" 677 | version = "0.3.5" 678 | 679 | [[NearestNeighbors]] 680 | deps = ["Distances", "StaticArrays"] 681 | git-tree-sha1 = "9afd724797039125e8e2cc362098f01dab60bc3a" 682 | uuid = "b8a86587-4115-5ab1-83bc-aa920d37bbce" 683 | version = "0.4.8" 684 | 685 | [[NetworkOptions]] 686 | git-tree-sha1 = "ed3157f48a05543cce9b241e1f2815f7e843d96e" 687 | uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" 688 | version = "1.2.0" 689 | 690 | [[Observables]] 691 | git-tree-sha1 = "3469ef96607a6b9a1e89e54e6f23401073ed3126" 692 | uuid = "510215fc-4207-5dde-b226-833fc4488ee2" 693 | version = "0.3.3" 694 | 695 | [[OffsetArrays]] 696 | deps = ["Adapt"] 697 | git-tree-sha1 = "b3dfef5f2be7d7eb0e782ba9146a5271ee426e90" 698 | uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" 699 | version = "1.6.2" 700 | 701 | [[Ogg_jll]] 702 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 703 | git-tree-sha1 = "a42c0f138b9ebe8b58eba2271c5053773bde52d0" 704 | uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" 705 | version = "1.3.4+2" 706 | 707 | [[OpenBLAS_jll]] 708 | deps = ["CompilerSupportLibraries_jll", "Libdl", "Pkg"] 709 | git-tree-sha1 = "0c922fd9634e358622e333fc58de61f05a048492" 710 | uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" 711 | version = "0.3.9+5" 712 | 713 | [[OpenSSL_jll]] 714 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 715 | git-tree-sha1 = "71bbbc616a1d710879f5a1021bcba65ffba6ce58" 716 | uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" 717 | version = "1.1.1+6" 718 | 719 | [[OpenSpecFun_jll]] 720 | deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] 721 | git-tree-sha1 = "9db77584158d0ab52307f8c04f8e7c08ca76b5b3" 722 | uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" 723 | version = "0.5.3+4" 724 | 725 | [[Optim]] 726 | deps = ["Compat", "FillArrays", "LineSearches", "LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "PositiveFactorizations", "Printf", "SparseArrays", "StatsBase"] 727 | git-tree-sha1 = "3286df38aba45acf7445f3acd87b7b57b7c7feb7" 728 | uuid = "429524aa-4258-5aef-a3af-852621145aeb" 729 | version = "1.2.4" 730 | 731 | [[Opus_jll]] 732 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 733 | git-tree-sha1 = "f9d57f4126c39565e05a2b0264df99f497fc6f37" 734 | uuid = "91d4177d-7536-5919-b921-800302f37372" 735 | version = "1.3.1+3" 736 | 737 | [[OrderedCollections]] 738 | git-tree-sha1 = "4fa2ba51070ec13fcc7517db714445b4ab986bdf" 739 | uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" 740 | version = "1.4.0" 741 | 742 | [[PCRE_jll]] 743 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 744 | git-tree-sha1 = "1b556ad51dceefdbf30e86ffa8f528b73c7df2bb" 745 | uuid = "2f80f16e-611a-54ab-bc61-aa92de5b98fc" 746 | version = "8.42.0+4" 747 | 748 | [[PDMats]] 749 | deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] 750 | git-tree-sha1 = "f82a0e71f222199de8e9eb9a09977bd0767d52a0" 751 | uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" 752 | version = "0.11.0" 753 | 754 | [[PEG]] 755 | deps = ["Test"] 756 | git-tree-sha1 = "c62b3f15184a24960131cf7e1b63dfbc6beb8040" 757 | uuid = "12d937ae-5f68-53be-93c9-3a6f997a20a8" 758 | version = "1.0.0" 759 | 760 | [[PackageCompiler]] 761 | deps = ["Libdl", "Pkg", "UUIDs"] 762 | git-tree-sha1 = "d448727c4b86be81b225b738c88d30334fda6779" 763 | uuid = "9b87118b-4619-50d2-8e1e-99f35a4d4d9d" 764 | version = "1.2.5" 765 | 766 | [[Parameters]] 767 | deps = ["OrderedCollections", "UnPack"] 768 | git-tree-sha1 = "2276ac65f1e236e0a6ea70baff3f62ad4c625345" 769 | uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a" 770 | version = "0.12.2" 771 | 772 | [[Parsers]] 773 | deps = ["Dates"] 774 | git-tree-sha1 = "c8abc88faa3f7a3950832ac5d6e690881590d6dc" 775 | uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" 776 | version = "1.1.0" 777 | 778 | [[Pixman_jll]] 779 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 780 | git-tree-sha1 = "6a20a83c1ae86416f0a5de605eaea08a552844a3" 781 | uuid = "30392449-352a-5448-841d-b1acce4e97dc" 782 | version = "0.40.0+0" 783 | 784 | [[Pkg]] 785 | deps = ["Dates", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"] 786 | uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" 787 | 788 | [[PlotThemes]] 789 | deps = ["PlotUtils", "Requires", "Statistics"] 790 | git-tree-sha1 = "a3a964ce9dc7898193536002a6dd892b1b5a6f1d" 791 | uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" 792 | version = "2.0.1" 793 | 794 | [[PlotUtils]] 795 | deps = ["ColorSchemes", "Colors", "Dates", "Printf", "Random", "Reexport", "Statistics"] 796 | git-tree-sha1 = "ae9a295ac761f64d8c2ec7f9f24d21eb4ffba34d" 797 | uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" 798 | version = "1.0.10" 799 | 800 | [[Plots]] 801 | deps = ["Base64", "Contour", "Dates", "FFMPEG", "FixedPointNumbers", "GR", "GeometryBasics", "JSON", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "PlotThemes", "PlotUtils", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs"] 802 | git-tree-sha1 = "142dd04f5060c04de91cc10ca76dffb291a02426" 803 | uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" 804 | version = "1.10.6" 805 | 806 | [[Pluto]] 807 | deps = ["Base64", "Dates", "Distributed", "FuzzyCompletions", "HTTP", "InteractiveUtils", "Logging", "Markdown", "MsgPack", "Pkg", "REPL", "Sockets", "Tables", "UUIDs"] 808 | git-tree-sha1 = "63f2a51822bc5f402d6f1175f1ed751102f9c39a" 809 | uuid = "c3e4b0f8-55cb-11ea-2926-15256bba5781" 810 | version = "0.12.21" 811 | 812 | [[PositiveFactorizations]] 813 | deps = ["LinearAlgebra"] 814 | git-tree-sha1 = "17275485f373e6673f7e7f97051f703ed5b15b20" 815 | uuid = "85a6dd25-e78a-55b7-8502-1745935b8125" 816 | version = "0.2.4" 817 | 818 | [[Primes]] 819 | git-tree-sha1 = "afccf037da52fa596223e5a0e331ff752e0e845c" 820 | uuid = "27ebfcd6-29c5-5fa9-bf4b-fb8fc14df3ae" 821 | version = "0.5.0" 822 | 823 | [[Printf]] 824 | deps = ["Unicode"] 825 | uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" 826 | 827 | [[Qt_jll]] 828 | deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "xkbcommon_jll"] 829 | git-tree-sha1 = "588b799506f0b956a7e6e18f767dfa03cf333f26" 830 | uuid = "ede63266-ebff-546c-83e0-1c6fb6d0efc8" 831 | version = "5.15.2+2" 832 | 833 | [[QuadGK]] 834 | deps = ["DataStructures", "LinearAlgebra"] 835 | git-tree-sha1 = "12fbe86da16df6679be7521dfb39fbc861e1dc7b" 836 | uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" 837 | version = "2.4.1" 838 | 839 | [[REPL]] 840 | deps = ["InteractiveUtils", "Markdown", "Sockets"] 841 | uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" 842 | 843 | [[REPLComboShell]] 844 | deps = ["PEG", "REPL"] 845 | git-tree-sha1 = "5ae9cd16cff13e8fc6c9c153c2420297a6758977" 846 | repo-rev = "master" 847 | repo-url = "https://github.com/aaronjanse/REPLComboShell.jl" 848 | uuid = "7999ad71-703a-42c8-bff7-678f9adb94f9" 849 | version = "0.3.0" 850 | 851 | [[Random]] 852 | deps = ["Serialization"] 853 | uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" 854 | 855 | [[RandomExtensions]] 856 | deps = ["Random", "SparseArrays"] 857 | git-tree-sha1 = "062986376ce6d394b23d5d90f01d81426113a3c9" 858 | uuid = "fb686558-2515-59ef-acaa-46db3789a887" 859 | version = "0.4.3" 860 | 861 | [[Ratios]] 862 | git-tree-sha1 = "37d210f612d70f3f7d57d488cb3b6eff56ad4e41" 863 | uuid = "c84ed2f1-dad5-54f0-aa8e-dbefe2724439" 864 | version = "0.4.0" 865 | 866 | [[RecipesBase]] 867 | git-tree-sha1 = "b3fb709f3c97bfc6e948be68beeecb55a0b340ae" 868 | uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" 869 | version = "1.1.1" 870 | 871 | [[RecipesPipeline]] 872 | deps = ["Dates", "NaNMath", "PlotUtils", "RecipesBase"] 873 | git-tree-sha1 = "c4d54a78e287de7ec73bbc928ce5eb3c60f80b24" 874 | uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" 875 | version = "0.3.1" 876 | 877 | [[RecursiveArrayTools]] 878 | deps = ["ArrayInterface", "LinearAlgebra", "RecipesBase", "Requires", "StaticArrays", "Statistics", "ZygoteRules"] 879 | git-tree-sha1 = "271a36e18c8806332b7bd0f57e50fcff0d428b11" 880 | uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" 881 | version = "2.11.0" 882 | 883 | [[Reexport]] 884 | git-tree-sha1 = "57d8440b0c7d98fc4f889e478e80f268d534c9d5" 885 | uuid = "189a3867-3050-52da-a836-e630ba90ab69" 886 | version = "1.0.0" 887 | 888 | [[ReplMaker]] 889 | deps = ["REPL", "Unicode"] 890 | git-tree-sha1 = "18bf7b1b917fb7c0eca7e273c3f97ab3e7e717c2" 891 | uuid = "b873ce64-0db9-51f5-a568-4457d8e49576" 892 | version = "0.2.4" 893 | 894 | [[Requires]] 895 | deps = ["UUIDs"] 896 | git-tree-sha1 = "4036a3bd08ac7e968e27c203d45f5fff15020621" 897 | uuid = "ae029012-a4dd-5104-9daa-d747884805df" 898 | version = "1.1.3" 899 | 900 | [[Rmath]] 901 | deps = ["Random", "Rmath_jll"] 902 | git-tree-sha1 = "86c5647b565873641538d8f812c04e4c9dbeb370" 903 | uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" 904 | version = "0.6.1" 905 | 906 | [[Rmath_jll]] 907 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 908 | git-tree-sha1 = "1b7bf41258f6c5c9c31df8c1ba34c1fc88674957" 909 | uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" 910 | version = "0.2.2+2" 911 | 912 | [[Roots]] 913 | deps = ["Printf"] 914 | git-tree-sha1 = "369e25546984dff5df351bc056fccc30de615080" 915 | uuid = "f2b01f46-fcfa-551c-844a-d8ac1e96c665" 916 | version = "1.0.8" 917 | 918 | [[RuntimeGeneratedFunctions]] 919 | deps = ["ExprTools", "SHA", "Serialization"] 920 | git-tree-sha1 = "e02f14dfe3a8d3b8fc92ca80c1882bfdbc015e07" 921 | uuid = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47" 922 | version = "0.5.1" 923 | 924 | [[SHA]] 925 | uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" 926 | 927 | [[SciMLBase]] 928 | deps = ["ArrayInterface", "CommonSolve", "Distributed", "DocStringExtensions", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "RecipesBase", "RecursiveArrayTools", "StaticArrays", "Statistics", "Tables", "TreeViews"] 929 | git-tree-sha1 = "b85634c97d8b2df8f85d3ce7f7b78d794efea704" 930 | uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" 931 | version = "1.8.4" 932 | 933 | [[Scratch]] 934 | deps = ["Dates"] 935 | git-tree-sha1 = "ad4b278adb62d185bbcb6864dc24959ab0627bf6" 936 | uuid = "6c6a2e73-6563-6170-7368-637461726353" 937 | version = "1.0.3" 938 | 939 | [[SentinelArrays]] 940 | deps = ["Dates", "Random"] 941 | git-tree-sha1 = "6ccde405cf0759eba835eb613130723cb8f10ff9" 942 | uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" 943 | version = "1.2.16" 944 | 945 | [[Serialization]] 946 | uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" 947 | 948 | [[Setfield]] 949 | deps = ["ConstructionBase", "Future", "MacroTools", "Requires"] 950 | git-tree-sha1 = "d5640fc570fb1b6c54512f0bd3853866bd298b3e" 951 | uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" 952 | version = "0.7.0" 953 | 954 | [[SharedArrays]] 955 | deps = ["Distributed", "Mmap", "Random", "Serialization"] 956 | uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" 957 | 958 | [[Showoff]] 959 | deps = ["Dates", "Grisu"] 960 | git-tree-sha1 = "ee010d8f103468309b8afac4abb9be2e18ff1182" 961 | uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" 962 | version = "0.3.2" 963 | 964 | [[SimpleTraits]] 965 | deps = ["InteractiveUtils", "MacroTools"] 966 | git-tree-sha1 = "daf7aec3fe3acb2131388f93a4c409b8c7f62226" 967 | uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" 968 | version = "0.9.3" 969 | 970 | [[Sockets]] 971 | uuid = "6462fe0b-24de-5631-8697-dd941f90decc" 972 | 973 | [[SortingAlgorithms]] 974 | deps = ["DataStructures", "Random", "Test"] 975 | git-tree-sha1 = "03f5898c9959f8115e30bc7226ada7d0df554ddd" 976 | uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" 977 | version = "0.3.1" 978 | 979 | [[SparseArrays]] 980 | deps = ["LinearAlgebra", "Random"] 981 | uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" 982 | 983 | [[SpecialFunctions]] 984 | deps = ["ChainRulesCore", "OpenSpecFun_jll"] 985 | git-tree-sha1 = "5919936c0e92cff40e57d0ddf0ceb667d42e5902" 986 | uuid = "276daf66-3868-5448-9aa4-cd146d93841b" 987 | version = "1.3.0" 988 | 989 | [[Static]] 990 | deps = ["IfElse"] 991 | git-tree-sha1 = "ddec5466a1d2d7e58adf9a427ba69763661aacf6" 992 | uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" 993 | version = "0.2.4" 994 | 995 | [[StaticArrays]] 996 | deps = ["LinearAlgebra", "Random", "Statistics"] 997 | git-tree-sha1 = "9da72ed50e94dbff92036da395275ed114e04d49" 998 | uuid = "90137ffa-7385-5640-81b9-e52037218182" 999 | version = "1.0.1" 1000 | 1001 | [[Statistics]] 1002 | deps = ["LinearAlgebra", "SparseArrays"] 1003 | uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" 1004 | 1005 | [[StatsBase]] 1006 | deps = ["DataAPI", "DataStructures", "LinearAlgebra", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics"] 1007 | git-tree-sha1 = "a83fa3021ac4c5a918582ec4721bc0cf70b495a9" 1008 | uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" 1009 | version = "0.33.4" 1010 | 1011 | [[StatsFuns]] 1012 | deps = ["Rmath", "SpecialFunctions"] 1013 | git-tree-sha1 = "3b9f665c70712af3264b61c27a7e1d62055dafd1" 1014 | uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" 1015 | version = "0.9.6" 1016 | 1017 | [[StatsPlots]] 1018 | deps = ["Clustering", "DataStructures", "DataValues", "Distributions", "Interpolations", "KernelDensity", "LinearAlgebra", "MultivariateStats", "Observables", "Plots", "RecipesBase", "RecipesPipeline", "Reexport", "StatsBase", "TableOperations", "Tables", "Widgets"] 1019 | git-tree-sha1 = "7c88f73b759ae16a4a1af8bda7a9563471a7baf5" 1020 | uuid = "f3b207a7-027a-5e70-b257-86293d7955fd" 1021 | version = "0.14.19" 1022 | 1023 | [[StringParserPEG]] 1024 | deps = ["InteractiveUtils", "Test"] 1025 | git-tree-sha1 = "c29fb76a8890fdd9e8a63b188c23ab65b9e8fb4c" 1026 | uuid = "b0c8ea40-1aeb-11ea-0927-b51424bf2dfe" 1027 | version = "1.1.0" 1028 | 1029 | [[StructArrays]] 1030 | deps = ["Adapt", "DataAPI", "Tables"] 1031 | git-tree-sha1 = "26ea43b4be7e919a2390c3c0f824e7eb4fc19a0a" 1032 | uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" 1033 | version = "0.5.0" 1034 | 1035 | [[SuiteSparse]] 1036 | deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] 1037 | uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" 1038 | 1039 | [[SymbolicUtils]] 1040 | deps = ["AbstractAlgebra", "AbstractTrees", "Combinatorics", "ConstructionBase", "DataStructures", "IfElse", "LabelledArrays", "NaNMath", "Setfield", "SparseArrays", "SpecialFunctions", "StaticArrays", "TimerOutputs"] 1041 | git-tree-sha1 = "7176e06fb4ad726e828c72642000a2076808ea58" 1042 | uuid = "d1185830-fcd6-423d-90d6-eec64667417b" 1043 | version = "0.9.1" 1044 | 1045 | [[Symbolics]] 1046 | deps = ["AbstractAlgebra", "DiffRules", "Distributions", "DocStringExtensions", "IfElse", "Latexify", "Libdl", "LinearAlgebra", "MacroTools", "NaNMath", "RecipesBase", "Reexport", "RuntimeGeneratedFunctions", "SciMLBase", "SparseArrays", "SpecialFunctions", "SymbolicUtils", "TreeViews"] 1047 | git-tree-sha1 = "1de64578fe84c4bf621f0ae3ae821e34d3ee0e92" 1048 | uuid = "0c5d862f-8b57-4792-8d23-62f2024744c7" 1049 | version = "0.1.4" 1050 | 1051 | [[TableOperations]] 1052 | deps = ["SentinelArrays", "Tables", "Test"] 1053 | git-tree-sha1 = "a7cf690d0ac3f5b53dd09b5d613540b230233647" 1054 | uuid = "ab02a1b2-a7df-11e8-156e-fb1833f50b87" 1055 | version = "1.0.0" 1056 | 1057 | [[TableTraits]] 1058 | deps = ["IteratorInterfaceExtensions"] 1059 | git-tree-sha1 = "b1ad568ba658d8cbb3b892ed5380a6f3e781a81e" 1060 | uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" 1061 | version = "1.0.0" 1062 | 1063 | [[Tables]] 1064 | deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "TableTraits", "Test"] 1065 | git-tree-sha1 = "a9ff3dfec713c6677af435d6a6d65f9744feef67" 1066 | uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" 1067 | version = "1.4.1" 1068 | 1069 | [[Test]] 1070 | deps = ["Distributed", "InteractiveUtils", "Logging", "Random"] 1071 | uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" 1072 | 1073 | [[TimerOutputs]] 1074 | deps = ["Printf"] 1075 | git-tree-sha1 = "32cdbe6cd2d214c25a0b88f985c9e0092877c236" 1076 | uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" 1077 | version = "0.5.8" 1078 | 1079 | [[TranscodingStreams]] 1080 | deps = ["Random", "Test"] 1081 | git-tree-sha1 = "7c53c35547de1c5b9d46a4797cf6d8253807108c" 1082 | uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" 1083 | version = "0.9.5" 1084 | 1085 | [[TreeViews]] 1086 | deps = ["Test"] 1087 | git-tree-sha1 = "8d0d7a3fe2f30d6a7f833a5f19f7c7a5b396eae6" 1088 | uuid = "a2a6695c-b41b-5b7d-aed9-dbfdeacea5d7" 1089 | version = "0.3.0" 1090 | 1091 | [[URIs]] 1092 | git-tree-sha1 = "7855809b88d7b16e9b029afd17880930626f54a2" 1093 | uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" 1094 | version = "1.2.0" 1095 | 1096 | [[UUIDs]] 1097 | deps = ["Random", "SHA"] 1098 | uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" 1099 | 1100 | [[UnPack]] 1101 | git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b" 1102 | uuid = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" 1103 | version = "1.0.2" 1104 | 1105 | [[Unicode]] 1106 | uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" 1107 | 1108 | [[UnicodePlots]] 1109 | deps = ["Crayons", "Dates", "SparseArrays", "StatsBase"] 1110 | git-tree-sha1 = "1a63e6eea76b291378ff9f95801f8b6d96213208" 1111 | uuid = "b8865327-cd53-5732-bb35-84acbb429228" 1112 | version = "1.3.0" 1113 | 1114 | [[Unitful]] 1115 | deps = ["ConstructionBase", "LinearAlgebra", "Random"] 1116 | git-tree-sha1 = "fdfbea79b5b9a305bf226eb4730321f603281290" 1117 | uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" 1118 | version = "1.6.0" 1119 | 1120 | [[Wayland_jll]] 1121 | deps = ["Artifacts", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] 1122 | git-tree-sha1 = "dc643a9b774da1c2781413fd7b6dcd2c56bb8056" 1123 | uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" 1124 | version = "1.17.0+4" 1125 | 1126 | [[Wayland_protocols_jll]] 1127 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Wayland_jll"] 1128 | git-tree-sha1 = "2839f1c1296940218e35df0bbb220f2a79686670" 1129 | uuid = "2381bf8a-dfd0-557d-9999-79630e7b1b91" 1130 | version = "1.18.0+4" 1131 | 1132 | [[Widgets]] 1133 | deps = ["Colors", "Dates", "Observables", "OrderedCollections"] 1134 | git-tree-sha1 = "fc0feda91b3fef7fe6948ee09bb628f882b49ca4" 1135 | uuid = "cc8bc4a8-27d6-5769-a93b-9d913e69aa62" 1136 | version = "0.6.2" 1137 | 1138 | [[WoodburyMatrices]] 1139 | deps = ["LinearAlgebra", "SparseArrays"] 1140 | git-tree-sha1 = "59e2ad8fd1591ea019a5259bd012d7aee15f995c" 1141 | uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6" 1142 | version = "0.5.3" 1143 | 1144 | [[XML2_jll]] 1145 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "Zlib_jll"] 1146 | git-tree-sha1 = "be0db24f70aae7e2b89f2f3092e93b8606d659a6" 1147 | uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" 1148 | version = "2.9.10+3" 1149 | 1150 | [[XSLT_jll]] 1151 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Pkg", "XML2_jll"] 1152 | git-tree-sha1 = "2b3eac39df218762d2d005702d601cd44c997497" 1153 | uuid = "aed1982a-8fda-507f-9586-7b0439959a61" 1154 | version = "1.1.33+4" 1155 | 1156 | [[Xorg_libX11_jll]] 1157 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] 1158 | git-tree-sha1 = "5be649d550f3f4b95308bf0183b82e2582876527" 1159 | uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" 1160 | version = "1.6.9+4" 1161 | 1162 | [[Xorg_libXau_jll]] 1163 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1164 | git-tree-sha1 = "4e490d5c960c314f33885790ed410ff3a94ce67e" 1165 | uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" 1166 | version = "1.0.9+4" 1167 | 1168 | [[Xorg_libXcursor_jll]] 1169 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXfixes_jll", "Xorg_libXrender_jll"] 1170 | git-tree-sha1 = "12e0eb3bc634fa2080c1c37fccf56f7c22989afd" 1171 | uuid = "935fb764-8cf2-53bf-bb30-45bb1f8bf724" 1172 | version = "1.2.0+4" 1173 | 1174 | [[Xorg_libXdmcp_jll]] 1175 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1176 | git-tree-sha1 = "4fe47bd2247248125c428978740e18a681372dd4" 1177 | uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" 1178 | version = "1.1.3+4" 1179 | 1180 | [[Xorg_libXext_jll]] 1181 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] 1182 | git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3" 1183 | uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" 1184 | version = "1.3.4+4" 1185 | 1186 | [[Xorg_libXfixes_jll]] 1187 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] 1188 | git-tree-sha1 = "0e0dc7431e7a0587559f9294aeec269471c991a4" 1189 | uuid = "d091e8ba-531a-589c-9de9-94069b037ed8" 1190 | version = "5.0.3+4" 1191 | 1192 | [[Xorg_libXi_jll]] 1193 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXfixes_jll"] 1194 | git-tree-sha1 = "89b52bc2160aadc84d707093930ef0bffa641246" 1195 | uuid = "a51aa0fd-4e3c-5386-b890-e753decda492" 1196 | version = "1.7.10+4" 1197 | 1198 | [[Xorg_libXinerama_jll]] 1199 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll"] 1200 | git-tree-sha1 = "26be8b1c342929259317d8b9f7b53bf2bb73b123" 1201 | uuid = "d1454406-59df-5ea1-beac-c340f2130bc3" 1202 | version = "1.1.4+4" 1203 | 1204 | [[Xorg_libXrandr_jll]] 1205 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll"] 1206 | git-tree-sha1 = "34cea83cb726fb58f325887bf0612c6b3fb17631" 1207 | uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" 1208 | version = "1.5.2+4" 1209 | 1210 | [[Xorg_libXrender_jll]] 1211 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] 1212 | git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" 1213 | uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" 1214 | version = "0.9.10+4" 1215 | 1216 | [[Xorg_libpthread_stubs_jll]] 1217 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1218 | git-tree-sha1 = "6783737e45d3c59a4a4c4091f5f88cdcf0908cbb" 1219 | uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" 1220 | version = "0.1.0+3" 1221 | 1222 | [[Xorg_libxcb_jll]] 1223 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] 1224 | git-tree-sha1 = "daf17f441228e7a3833846cd048892861cff16d6" 1225 | uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" 1226 | version = "1.13.0+3" 1227 | 1228 | [[Xorg_libxkbfile_jll]] 1229 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] 1230 | git-tree-sha1 = "926af861744212db0eb001d9e40b5d16292080b2" 1231 | uuid = "cc61e674-0454-545c-8b26-ed2c68acab7a" 1232 | version = "1.1.0+4" 1233 | 1234 | [[Xorg_xcb_util_image_jll]] 1235 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] 1236 | git-tree-sha1 = "0fab0a40349ba1cba2c1da699243396ff8e94b97" 1237 | uuid = "12413925-8142-5f55-bb0e-6d7ca50bb09b" 1238 | version = "0.4.0+1" 1239 | 1240 | [[Xorg_xcb_util_jll]] 1241 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll"] 1242 | git-tree-sha1 = "e7fd7b2881fa2eaa72717420894d3938177862d1" 1243 | uuid = "2def613f-5ad1-5310-b15b-b15d46f528f5" 1244 | version = "0.4.0+1" 1245 | 1246 | [[Xorg_xcb_util_keysyms_jll]] 1247 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] 1248 | git-tree-sha1 = "d1151e2c45a544f32441a567d1690e701ec89b00" 1249 | uuid = "975044d2-76e6-5fbe-bf08-97ce7c6574c7" 1250 | version = "0.4.0+1" 1251 | 1252 | [[Xorg_xcb_util_renderutil_jll]] 1253 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] 1254 | git-tree-sha1 = "dfd7a8f38d4613b6a575253b3174dd991ca6183e" 1255 | uuid = "0d47668e-0667-5a69-a72c-f761630bfb7e" 1256 | version = "0.3.9+1" 1257 | 1258 | [[Xorg_xcb_util_wm_jll]] 1259 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] 1260 | git-tree-sha1 = "e78d10aab01a4a154142c5006ed44fd9e8e31b67" 1261 | uuid = "c22f9ab0-d5fe-5066-847c-f4bb1cd4e361" 1262 | version = "0.4.1+1" 1263 | 1264 | [[Xorg_xkbcomp_jll]] 1265 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxkbfile_jll"] 1266 | git-tree-sha1 = "4bcbf660f6c2e714f87e960a171b119d06ee163b" 1267 | uuid = "35661453-b289-5fab-8a00-3d9160c6a3a4" 1268 | version = "1.4.2+4" 1269 | 1270 | [[Xorg_xkeyboard_config_jll]] 1271 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xkbcomp_jll"] 1272 | git-tree-sha1 = "5c8424f8a67c3f2209646d4425f3d415fee5931d" 1273 | uuid = "33bec58e-1273-512f-9401-5d533626f822" 1274 | version = "2.27.0+4" 1275 | 1276 | [[Xorg_xtrans_jll]] 1277 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1278 | git-tree-sha1 = "79c31e7844f6ecf779705fbc12146eb190b7d845" 1279 | uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" 1280 | version = "1.4.0+3" 1281 | 1282 | [[ZipFile]] 1283 | deps = ["Libdl", "Printf", "Zlib_jll"] 1284 | git-tree-sha1 = "c3a5637e27e914a7a445b8d0ad063d701931e9f7" 1285 | uuid = "a5390f91-8eb1-5f08-bee0-b1d1ffed6cea" 1286 | version = "0.9.3" 1287 | 1288 | [[Zlib_jll]] 1289 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1290 | git-tree-sha1 = "320228915c8debb12cb434c59057290f0834dbf6" 1291 | uuid = "83775a58-1f1d-513f-b197-d71354ab007a" 1292 | version = "1.2.11+18" 1293 | 1294 | [[Zstd_jll]] 1295 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1296 | git-tree-sha1 = "2c1332c54931e83f8f94d310fa447fd743e8d600" 1297 | uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" 1298 | version = "1.4.8+0" 1299 | 1300 | [[ZygoteRules]] 1301 | deps = ["MacroTools"] 1302 | git-tree-sha1 = "9e7a1e8ca60b742e508a315c17eef5211e7fbfd7" 1303 | uuid = "700de1a5-db45-46bc-99cf-38207098b444" 1304 | version = "0.2.1" 1305 | 1306 | [[libass_jll]] 1307 | deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] 1308 | git-tree-sha1 = "acc685bcf777b2202a904cdcb49ad34c2fa1880c" 1309 | uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" 1310 | version = "0.14.0+4" 1311 | 1312 | [[libfdk_aac_jll]] 1313 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1314 | git-tree-sha1 = "7a5780a0d9c6864184b3a2eeeb833a0c871f00ab" 1315 | uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" 1316 | version = "0.1.6+4" 1317 | 1318 | [[libpng_jll]] 1319 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] 1320 | git-tree-sha1 = "6abbc424248097d69c0c87ba50fcb0753f93e0ee" 1321 | uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" 1322 | version = "1.6.37+6" 1323 | 1324 | [[libvorbis_jll]] 1325 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] 1326 | git-tree-sha1 = "fa14ac25af7a4b8a7f61b287a124df7aab601bcd" 1327 | uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" 1328 | version = "1.3.6+6" 1329 | 1330 | [[x264_jll]] 1331 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1332 | git-tree-sha1 = "d713c1ce4deac133e3334ee12f4adff07f81778f" 1333 | uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" 1334 | version = "2020.7.14+2" 1335 | 1336 | [[x265_jll]] 1337 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] 1338 | git-tree-sha1 = "487da2f8f2f0c8ee0e83f39d13037d6bbf0a45ab" 1339 | uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" 1340 | version = "3.0.0+3" 1341 | 1342 | [[xkbcommon_jll]] 1343 | deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Wayland_jll", "Wayland_protocols_jll", "Xorg_libxcb_jll", "Xorg_xkeyboard_config_jll"] 1344 | git-tree-sha1 = "ece2350174195bb31de1a63bea3a41ae1aa593b6" 1345 | uuid = "d8fb68d0-12a3-5cfd-a85a-d49703b185fd" 1346 | version = "0.9.1+5" 1347 | --------------------------------------------------------------------------------