Go to file
TEC 443552f217
Rename PkgExt to PkgUtils to avoid name conflicts
It's a weird bug, but I'm just going to work around it for now so I can
develop other packages that have a "PkgExt" extension without needing to
run Julia with --startup-file=no.
2024-06-03 15:27:19 +08:00
ext Rename PkgExt to PkgUtils to avoid name conflicts 2024-06-03 15:27:19 +08:00
src Rename PkgExt to PkgUtils to avoid name conflicts 2024-06-03 15:27:19 +08:00
.gitignore Initial commit 2023-09-09 12:16:53 +08:00
Project.toml Rename PkgExt to PkgUtils to avoid name conflicts 2024-06-03 15:27:19 +08:00
README.org Initial commit 2023-09-09 12:16:53 +08:00



This is my personal Julia configuration. It has grown far beyond my wildest imagination.


julia --startup-file=no -e 'using Pkg; Pkg.add(url="https://git.tecosaur.net/tec/Setup.jl.git"); using Setup; Setup.install()'



Instead of loading packages whose functionality might be needed at some point, load them on-demand. Lazy loading for the win!

The following packages are currently supported:

  • The standard library (Base64, CRC32c, Dates, Distributions, Downloads, LinearAlgebra, Markdown, Mmap, Pkg, Printf, REPL, Random, SHA, Serialisation, Statistics, StatsBase, TOML, Tar, Test, Threads, UUIDs)
  • BaseDirs
  • BenchmarkTools
  • CSV
  • Cthulhu
  • DataFrames
  • DataToolkit
  • Debugger
  • Distributions
  • JET
  • JSON3
  • Org
  • WhyNotEqual

Function/Structure inspection

Get a sense of a function or structure with the about function/macro.

Environment tweaks

Shorter activation

Add a as a shorthand for activate

Easier temp environments

Add -t as a shorthand for --temp, with the activate change this means opening a temporary environment is now a bit quicker:

pkg> a -t

instead of

pkg> activate --temp

Environment stack

Load and unload named environments with the new pkg> (un)stack set of commands.

Command puns

For more easily running ~Cmd~s, we now have the following syntactic puns.

~ `cmd`   # read to string
! `cmd`   # print output
!~ `cmd`  # read and print output
`a` | `b` # pipe commands

Package configuration

Thanks to package extensions, it's fairly straightforward to bundle per-package customisation code. Currently this covers the following:

  • Setting the Makie theme based on the terminal colours when loading CairoMakie
  • Pushing the Gadfly display
  • Changing the HDF5 icons
  • Loading ImageShow when JpegTurbo, Netpbm, PNGFiles, QOI, or TiffImages are loaded
  • Load an appropriate OhMyREPL theme on startup
  • Add pretty colour show methods for Color types