Compare commits

...

57 Commits
flake ... trunk

Author SHA1 Message Date
7b938dea3a Add nim_lk support 2023-10-05 10:57:45 +01:00
dea9ca08c3 Add nixexprs 2023-09-30 13:40:20 +01:00
9599b31871 More submodules 2023-09-30 13:40:03 +01:00
64e8e4308a Update submodules 2023-09-12 10:09:28 +02:00
0f43f0c108 Commit config 2023-09-12 10:07:00 +02:00
5e71c18063 Add well_of_text submodule 2023-09-12 10:06:00 +02:00
09e0a1dd79 Add icalendar_actor 2023-08-25 20:16:00 +01:00
08c9d27426 Update modules 2023-08-23 09:37:16 +01:00
20ef1f4a82 Update repos 2023-07-21 10:34:29 +01:00
51a5f06b6e Commit current config 2023-07-21 10:34:29 +01:00
32d9d60335 More submodules 2023-06-20 09:19:47 +01:00
793132a7d8 Add xapian_actor submodule 2023-06-10 14:48:22 +01:00
2c68238382 Update nix_actor 2023-06-10 11:55:42 +01:00
022aa84ee0 Better build system 2023-06-07 18:16:07 +01:00
0e60b941cf Publish nix_actor 2023-05-30 13:54:08 +01:00
e4b5ea54be Add substituter to Sigil 2023-05-20 18:30:09 +01:00
a8bc4f0087 Fix decode problems with Preserves-nim 2023-05-20 18:28:40 +01:00
0fb81c76d7 Start sway with the syndicate-server 2023-05-18 18:32:03 +01:00
9952c5ef43 Update syndicate-protocols 2023-05-18 13:15:00 +01:00
dcd822e6ec Track Syndicate server configuration 2023-05-18 13:15:00 +01:00
46bbee6090 Remove libnl, not going to be used 2023-05-17 22:06:46 +01:00
663eff6012 Update syndicate_utils 2023-05-16 18:44:33 +01:00
57b92d942b Add syndicate-sh submodule 2023-05-16 11:05:25 +01:00
ab90cef378 Move nimsvg to submodule 2023-05-15 18:40:52 +01:00
1ce31a63db Update submodules to use unauthenticated URLs 2023-05-15 17:59:52 +01:00
e8823d2395 Add noiseprotocol submodule 2023-05-15 17:57:43 +01:00
238bcee2d6 Manage Nim compiler bootstrap 2023-05-15 17:54:31 +01:00
1b0667d3c7 Use runActor proc 2023-05-07 09:25:07 +01:00
c2ca9bc4e9 Move CBOR Tupfile into repo 2023-05-06 16:33:34 +01:00
94374e2f6f fixup assert_built 2023-05-06 16:17:32 +01:00
dc69c6db93 Fix Syndicate async stdin for good 2023-05-06 16:05:45 +01:00
dd32c10a30 Add !assert_built macro
Assert completed builds so that the Syndicate server can restart
daemons.
2023-05-06 15:52:46 +01:00
e3d8d36ba9 Fixed a bug with stuck futures in syndicate-nim 2023-05-05 18:17:10 +01:00
7467098ab1 Preserves and Syndicate updates 2023-05-03 20:51:52 +01:00
a13e575c59 Add Sigil repos 2023-04-30 10:25:55 +01:00
f6f06b70a7 Explicit Nim library path passing 2023-04-12 15:42:21 -05:00
5f6a5cac84 Repo shuffle 2023-04-05 15:15:28 -05:00
63375f8de5 Update submodules 2023-04-01 10:54:15 -05:00
c3f99cecf9 Update modules and rules, Syndicate patterns are broke 2023-03-23 12:51:56 -05:00
aac5489ec8 Submodule updates 2023-03-12 19:43:55 -05:00
cf04153faf Update modules 2023-03-01 21:37:31 -06:00
eb6159a4c8 Add guix submodule 2023-02-19 21:47:10 -06:00
18541ec41f Eriscmd update 2023-02-10 14:29:54 -06:00
6b1f42a928 Update submodules 2023-01-26 12:58:56 -06:00
0d3a11dafa Fix git-annex-backend-ERIS 2023-01-25 15:36:00 -06:00
0b1fbbcf57 No base45 2023-01-25 15:28:54 -06:00
405fd37780 Fix CBOR submodule 2023-01-25 15:27:31 -06:00
c9a4ba0237 Merge remote-tracking branch 'zuni/trunk' into trunk 2023-01-25 14:15:34 -06:00
7a6875e245 Add configparser submodule 2023-01-25 14:08:29 -06:00
7c14e81d0c Move CoAP remote 2023-01-25 14:05:15 -06:00
ffa91672cf Update submodule 2023-01-25 13:03:42 -06:00
8200d8933d Build cbordiag 2023-01-19 23:38:39 -06:00
aedfd8929d Update eris-go 2023-01-19 23:36:49 -06:00
4883a665dc Update eris-go and eris-nim 2023-01-19 21:23:32 -06:00
d0343f9b8e Update eris-go and eris-nim 2023-01-19 20:23:20 -06:00
a6e077532f Add freedesktop_org submodule 2023-01-19 20:19:37 -06:00
47a4873daa Move flakes out of this branch 2023-01-18 23:18:03 -06:00
117 changed files with 993 additions and 253 deletions

3
.envrc
View File

@ -1,3 +1,2 @@
use flake work
export NIX_PATH=$PWD/nixexprs
PATH_add bin
PATH_add nim/bin

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.direnv

194
.gitmodules vendored
View File

@ -1,23 +1,14 @@
[submodule "syndicate/preserves-nim"]
path = preserves-nim
url = git.syndicate-lang.org:ehmry/preserves-nim.git
[submodule "syndicate/preserves"]
path = preserves
url = https://git.syndicate-lang.org/syndicate-lang/preserves.git
[submodule "coap"]
path = coap
url = git@codeberg.org:eris/nim-coap.git
[submodule "syndicate/protocols"]
path = syndicate/protocols
url = https://git.syndicate-lang.org/syndicate-lang/syndicate-protocols.git
[submodule "syndicate/syndicate-protocols"]
path = syndicate-protocols
url = https://git.syndicate-lang.org/syndicate-lang/syndicate-protocols.git
url = https://codeberg.org/eris/coap-nim.git
[submodule "nim"]
path = nim
url = https://github.com/nim-lang/nim.git
url = https://github.com/ehmry/nim.git
[submodule "npeg"]
path = npeg
path = nimble/npeg
url = https://github.com/zevv/npeg.git
[submodule "getdns"]
path = getdns
@ -40,12 +31,183 @@
[submodule "eris-nim"]
path = eris-nim
url = https://codeberg.org/eris/nim-eris.git
[submodule "eris-flake"]
path = eris-flake
url = https://codeberg.org/eris/nix-eris
[submodule "watch-firmware"]
path = watch-firmware
url = https://github.com/joeycastillo/Sensor-Watch
[submodule "eris-meta"]
path = eris-meta
url = git@codeberg.org:eris/meta.git
url = https://codeberg.org/eris/meta.git
[submodule "freedesktop_org"]
path = freedesktop_org
url = https://git.sr.ht/~ehmry/freedesktop_org
[submodule "configparser"]
path = configparser
url = https://github.com/ehmry/nim-configparser.git
[submodule "cbor"]
path = cbor
url = https://git.sr.ht/~ehmry/nim_cbor
[submodule "preserves-nim"]
path = preserves-nim
url = https://git.syndicate-lang.org/ehmry/preserves-nim.git
[submodule "syndicate-nim"]
path = syndicate-nim
url = https://git.syndicate-lang.org/ehmry/syndicate-nim.git
[submodule "syndicate-protocols"]
path = syndicate-protocols
url = https://git.syndicate-lang.org/syndicate-lang/syndicate-protocols.git
[submodule "xdg_open_ng"]
path = syn-open
url = https://git.syndicate-lang.org/ehmry/xdg_open_ng.git
[submodule "syndicate_utils"]
path = syndicate_utils
url = https://git.syndicate-lang.org/ehmry/syndicate_utils.git
[submodule "zua"]
path = zua
url = https://git.sr.ht/~ehmry/zua
[submodule "svui"]
path = svui
url = https://git.sr.ht/~ehmry/svui
[submodule "nimsvg"]
path = nimsvg
url = https://github.com/bluenote10/NimSvg.git
[submodule "bumpy"]
path = bumpy
url = https://github.com/treeform/bumpy.git
[submodule "nimsha2"]
path = nimble/nimsha2
url = https://github.com/jangko/nimSHA2.git
[submodule "nimble/vmath"]
path = nimble/vmath
url = https://github.com/treeform/vmath.git
[submodule "nimble/base32"]
path = nimble/base32
url = https://github.com/rgv151/base32.nim
[submodule "nimble/illwill"]
path = nimble/illwill
url = //github.com/johnnovak/illwill.git
[submodule "pixie"]
path = pixie
url = https://github.com/ehmry/pixie.git
[submodule "chroma"]
path = chroma
url = https://github.com/treeform/chroma.git
[submodule "nimsimd"]
path = nimsimd
url = https://github.com/guzba/nimsimd.git
[submodule "vmath"]
path = vmath
url = https://github.com/treeform/vmath.git
[submodule "zippy"]
path = zippy
url = https://github.com/treeform/zippy.git
[submodule "crunchy"]
path = crunchy
url = https://github.com/guzba/crunchy.git
[submodule "libnotify_actor"]
path = libnotify_actor
url = https://git.syndicate-lang.org/ehmry/libnotify_actor.git
[submodule "sigil"]
path = sigil
url = https://git.sr.ht/~ehmry/sigil
[submodule "genode-nim"]
path = genode-nim
url = https://git.sr.ht/~ehmry/nim_genode
[submodule "syndicate-genode"]
path = syndicate-genode
url = https://git.syndicate-lang.org/ehmry/syndicate-genode.git
[submodule "syndicate_genode"]
path = syndicate_genode
url = https://git.syndicate-lang.org/ehmry/syndicate-genode.git
[submodule "acpi_actor"]
path = acpi_actor
url = https://git.syndicate-lang.org/ehmry/acpi_actor.git
[submodule "yggdrasilctl_actor"]
path = yggdrasilctl_actor
url = https://git.syndicate-lang.org/ehmry/yggdrasilctl-nim.git
[submodule "hashlib"]
path = hashlib
url = https://github.com/khchen/hashlib
[submodule "noiseprotocol"]
path = noiseprotocol
url = https://git.sr.ht/~ehmry/noiseprotocol
[submodule "syndicate-sh"]
path = syndicate-sh
url = https://git.syndicate-lang.org/syndicate-lang/syndicate-sh.git
[submodule "fontconfig_actor"]
path = fontconfig_actor
url = https://git.syndicate-lang.org/ehmry/fontconfig_actor.git
[submodule "sqlite_actor"]
path = sqlite_actor
url = https://git.syndicate-lang.org/ehmry/sqlite_actor.git
[submodule "nix_actor"]
path = nix_actor
url = https://git.syndicate-lang.org/ehmry/nix_actor.git
[submodule "new_terminal"]
path = new_terminal
url = https://git.sr.ht/~ehmry/new_terminal
[submodule "xapian"]
path = xapian_actor
url = https://git.sr.ht/~ehmry/xapian-nim
[submodule "dhall-nim"]
path = dhall-nim
url = https://git.sr.ht/~ehmry/dhall-nim
[submodule "syndicate-flake"]
path = syndicate-flake
url = https://git.syndicate-lang.org/ehmry/syndicate-flake.git
[submodule "nimble/bigints"]
path = nimble/bigints
url = https://github.com/nim-lang/bigints.git
[submodule "nimble/nimAES"]
path = nimble/nimAES
url = https://github.com/jangko/nimAES.git
[submodule "eristekt"]
path = eristekt
url = https://codeberg.org/eris/eristekt
[submodule "nimble/websock"]
path = nimble/websock
url = https://github.com/status-im/nim-websock.git
[submodule "nimble/ws"]
path = nimble/ws
url = https://github.com/treeform/ws.git
[submodule "syndicate_actor_tox"]
path = syndicate_actor_tox
url = git@git.syndicate-lang.org:ehmry/syndicate_actor_tox.git
[submodule "eer"]
path = eer
url = https://codeberg.org/eris/eer.git
[submodule "nimble/npeg"]
path = nimble/npeg
url = https://github.com/zevv/npeg.git
[submodule "nimble/cps"]
path = nimble/cps
url = https://github.com/nim-works/cps.git
[submodule "nimble/cpstest"]
path = nimble/cpstest
url = https://github.com/zevv/cpstest.git
[submodule "nimble/eventqueue"]
path = nimble/eventqueue
url = https://github.com/disruptek/eventqueue.git
[submodule "icalendar_actor"]
path = icalendar_actor
url = https://git.syndicate-lang.org/ehmry/icalendar_actor.git
[submodule "nimble/nim-sys"]
path = nimble/nim-sys
url = https://github.com/alaviss/nim-sys.git
[submodule "immutulator"]
path = immutulator
url = https://git.syndicate-lang.org/ehmry/video_immutulator.git
[submodule "well_of_text"]
path = well_of_text
url = https://git.sr.ht/~ehmry/well_of_text
[submodule "chacha20"]
path = chacha20
url = https://git.sr.ht/~ehmry/chacha20
[submodule "websocket_actor"]
path = websocket_actor
url = https://git.syndicate-lang.org/ehmry/websocket_actor.git
[submodule "nimble/nimble"]
path = nimble/nimble
url = https://github.com/nim-lang/nimble.git
[submodule "hottext"]
path = hottext
url = https://git.sr.ht/~ehmry/hottext

View File

@ -1,17 +1,31 @@
.gitignore
export NIX_PATH
export XDG_CACHE_HOME
DIRENV = direnv exec .
BIN_DIR = $(TUP_CWD)/bin
SYNDICATE_PROTOCOL = $(TUP_CWD)/syndicate-nim/<protocol>
NIM_BACKEND = compile
!nim = |> ^o nim compile %B^ $(DIRENV) nim $(NIM_BACKEND) --hints:off -o:%o %f |> %B
!nim_run = |> ^o nim run %B^ $(DIRENV) nim c $(NIM_PATH) --hints:off -o:%o -r %f |> %B.run
!nim_bin = |> ^o nim bin %B^ $(DIRENV) nim c $(NIM_PATH) --hints:off -o:%o %f |> $(BIN_DIR)/%B | $(BIN_DIR)/<%B>
NIM = $(TUP_CWD)/nim/bin/nim
NIM_GROUPS = $(TUP_CWD)/<nim>
NIM_FLAGS = --noNimblePath
!nim = | $(NIM_GROUPS) |> ^o nim compile %f^ $(DIRENV) $(NIM) compile $(NIM_FLAGS) $(NIM_FLAGS_%B) -o:%o %f |> %B
!nim_run = | $(NIM_GROUPS) |> ^o nim run %f^ $(DIRENV) $(NIM) compile $(NIM_FLAGS) $(NIM_FLAGS_%B) -o:%o -r %f |> %B.run
!nim_bin = | $(NIM_GROUPS) |> ^o nim bin %f^ $(DIRENV) $(NIM) compile $(NIM_FLAGS) $(NIM_FLAGS_%B) -o:%o %f |> $(BIN_DIR)/%B
!nim_check = | $(NIM_GROUPS) |> ^ nim doc %f^ $(DIRENV) $(NIM) doc $(NIM_FLAGS) $(NIM_FLAGS_%B) -o:%o %f |> %B.html
!symlink = |> ln -s %f %o |>
!preserves_schema_nim = | $(BIN_DIR)/<preserves_schema_nim> |> ^o generate nim module %B^ $(BIN_DIR)/preserves_schema_nim %f |> %B.nim
!preserves_schemac = | $(BIN_DIR)/<schemac> |> ^o^ $(BIN_DIR)/schemac |>
SYNDICATE_CONFIG_DIR = $(TUP_CWD)/config
!assert_built = |> ^ <built %b …>^ echo "<built %b \"`realpath %f`\" \"`b2sum -l 32 %f | { read sum rest ; echo $sum; }`\">" > %o |> $(SYNDICATE_CONFIG_DIR)/built/%b.pr
!nim_check = | $(NIM_GROUPS) |> ^ nim doc %f^ $(DIRENV) $(NIM) doc $(NIM_FLAGS) $(NIM_FLAGS_%B) -o:%o %f |> %B.html
!nim_lk = | $(BIN_DIR)/<nim_lk> |> ^o nim_lk^ $(BIN_DIR)/nim_lk > %o |> lock.json
NIXEXPRS_DIR = $(TUP_CWD)/nixexprs
!nim_cfg = |> ^o nix build nim.cfg^ nix build --file $(NIXEXPRS_DIR)/configure.nix --argstr lockPath `pwd`/%f --out-link %o |> nim.cfg

1
acpi_actor Submodule

@ -0,0 +1 @@
Subproject commit 104c822cd0c848eed5b99bb1518d5c2379341eee

View File

@ -1,2 +0,0 @@
include_rules
: | $(BIN_DIR)/<msg> |> cp msg %o |> $(BIN_DIR)/beep

1
bumpy Submodule

@ -0,0 +1 @@
Subproject commit cf13b445238c25981dddccca96187920cb6e0047

1
cbor Submodule

@ -0,0 +1 @@
Subproject commit 05198e72c16df559ceb6af7e891219ef092ea875

1
chacha20 Submodule

@ -0,0 +1 @@
Subproject commit daab0e469df94c1d62ebad07989b9562f7d5bf80

1
chroma Submodule

@ -0,0 +1 @@
Subproject commit 64eab23fde36e365479e02b860521b944c84a4a6

2
coap

@ -1 +1 @@
Subproject commit bec05d6046cd029b979a6549d864e92916ebaea8
Subproject commit 6fab185184675be523eeaa77ceefd48d45556605

1
config/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
sway-env.pr

30
config/beeps.pr Normal file
View File

@ -0,0 +1,30 @@
? <mpv ?mpvSpace> [
$config ? <socketspace ?beepSpace> $beepSpace [
$beepSpace ?? <beep 0> [
$mpvSpace ! <play-file "/home/emery/star-trek-audio/elite-force/button1.flac"> ]
$beepSpace ?? <beep 1> [
$mpvSpace ! <play-file "/home/emery/star-trek-audio/elite-force/button5.flac"> ]
$beepSpace ?? <beep private-message> [
$mpvSpace ! <play-file "/home/emery/star-trek-audio/www.trekcore.com/audio/computer/computerbeep_19.mp3"> ]
$beepSpace ?? <beep highlight> [
$mpvSpace ! <play-file "/home/emery/star-trek-audio/www.trekcore.com/audio/computer/computerbeep_9.mp3"> ]
$config ? <machine-dataspace ?machine> $machine [
?? <uevent "power_supply" _ change {POWER_SUPPLY_ONLINE: 1} _> [
$mpvSpace ! <play-file "/home/emery/star-trek-audio/www.trekcore.com/audio/computer/computerbeep_1.mp3">
]
?? <uevent "power_supply" _ change {POWER_SUPPLY_ONLINE: 0} _> [
$mpvSpace ! <play-file "/home/emery/star-trek-audio/www.trekcore.com/audio/computer/alert24.mp3">
]
?? <power-supply-capacity-level "Low"> [$mpvSpace ! <play-file "/home/emery/star-trek-audio/www.trekcore.com/audio/computer/alert24.mp3"> ]
?? <power-supply-capacity-level "Critical"> [$mpvSpace ! <play-file "/home/emery/star-trek-audio/www.trekcore.com/audio/computer/alert24.mp3"> ]
]
]
]

1
config/built/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
*.pr

1
config/configdirs.pr Normal file
View File

@ -0,0 +1 @@
<require-service <config-watcher "/run/user/1000/syndicate" $.>>

19
config/daemons/acme.pr Normal file
View File

@ -0,0 +1,19 @@
<require-service <gui acme>>
; <depends-on <daemon acme> <service-state <daemon fontsrv> ready>>
; <depends-on <daemon acme> <service-state <milestone wayland> ready>>
; <depends-on <daemon acme> <service-state <daemon plumber> ready>>
; <require-service <daemon plumber>>
; "-f" "/mnt/font/FiraSans-Regular/12a/font" "-F" "/mnt/font/FiraCode-Light/10a/font"
<gui acme {
argv: ["/etc/profiles/per-user/emery/bin/9" "acme" "-f" "/mnt/font/FiraSans-Regular/12a/font" "-F" "/mnt/font/FiraCode-Light/10a/font" ]
protocol: none}>
<_gui fontsrv {
argv: "/etc/profiles/per-user/emery/bin/9 fontsrv"
protocol: none}>
<daemon plumber {
argv: "/etc/profiles/per-user/emery/bin/9 plumber -f"
protocol: none}>

View File

@ -0,0 +1,23 @@
? <machine-dataspace ?machine> [
; <require-service <daemon acpi_actor>>
? <built acpi_actor ?path ?sum> [
<daemon acpi_actor {
argv: [$path]
protocol: application/syndicate
env: {
BUILD_SUM: $sum
}
}>
]
? <service-object <daemon acpi_actor> ?cap> [
$cap { machine: $machine }
]
$machine ?? <acpi_event ?class ?bus ?type ?data> [
$log ! <log "-" { acpi_event: <acpi_event $class $bus $type $data > }>
]
]

View File

@ -0,0 +1,4 @@
<require-service <daemon swaybg>>
<gui swaybg {
argv: ["swaybg" "-m" "tile" "-i" "/home/emery/tiles/background.png" ]
}>

View File

@ -0,0 +1,22 @@
? <typespace ?typespace> [
<require-service <daemon fontconfig_actor>>
? <built fontconfig_actor ?path ?sum> [
<daemon fontconfig_actor {
argv: [$path]
protocol: application/syndicate
env: {
BUILD_HASH: $sum
}
}>
]
? <service-object <daemon fontconfig_actor> ?cap> [
$cap { dataspace: $typespace }
]
$typespace ? <fontconfig {size: 8.0, spacing: proportional} ?properties> [
$log ! <log "-" { line: <fontconfig $properties> }>
]
]

6
config/daemons/foot.pr Normal file
View File

@ -0,0 +1,6 @@
<require-service <gui foot>>
<gui foot {
argv: ["/run/current-system/sw/bin/foot" "--server" "--log-no-syslog" ]
protocol: none
}>

View File

@ -0,0 +1,16 @@
; <require-service <daemon jabber_actor>>
? <built jabber_actor ?path ?sum> [
<daemon jabber_actor {
argv: [ $path ]
protocol: application/syndicate
env: { BUILD_HASH: $sum }
}>
let ?client-dataspace = dataspace
? <service-object <daemon jabber_actor> ?cap> [
$cap <xmpp-client "foo@spam.works" "bar" $client-dataspace>
]
]

View File

@ -0,0 +1,29 @@
? <built libnotify_actor ?path ?sum> [
? { argv: ["sway-env-magic-cookie"]
env: {
"DBUS_SESSION_BUS_ADDRESS" : ?DBUS_SESSION_BUS_ADDRESS
"DESKTOP_STARTUP_ID" : ?DESKTOP_STARTUP_ID
"DISPLAY": ?DISPLAY
"SWAYSOCK" : ?SWAYSOCK
"WAYLAND_DISPLAY" : ?WAYLAND_DISPLAY
"XDG_SEAT" : ?XDG_SEAT
"XDG_SESSION_TYPE" : ?XDG_SESSION_TYPE
}
}
[
<daemon libnotify_actor {
argv: ["dbus-launch" $path]
protocol: application/syndicate
env: {
"BUILD_SUM": $sum
"DBUS_SESSION_BUS_ADDRESS" : $DBUS_SESSION_BUS_ADDRESS
"DESKTOP_STARTUP_ID": $DESKTOP_STARTUP_ID
"DISPLAY": $DISPLAY
"SWAYSOCK" : $SWAYSOCK
"WAYLAND_DISPLAY" : $WAYLAND_DISPLAY
"XDG_SEAT" : $XDG_SEAT
"XDG_SESSION_TYPE" : $XDG_SESSION_TYPE
}
}>
]
]

58
config/daemons/mpv.pr Normal file
View File

@ -0,0 +1,58 @@
let ?socketPath = "/run/user/1000/mpv.sock"
let ?mpvSpace = dataspace
<bind <ref { oid: "mpv" key: #x"" }> $mpvSpace #f>
$mpvSpace [
; announce the dataspace when the translator is connected
? <connected $socketPath> [
$config <mpv $mpvSpace>
]
; translate <play-file > to an MPV command
?? <play-file ?file> [
! <send { "command": ["loadfile" $file "append-play"] }>
]
; log anything that comes back from MPV
; ?? <recv ?js> [ $log ! <log "-" { mpv: $js }> ]
; clear the playlist on idle so it doesn't grow indefinitely
?? <recv {"event": "idle"}> [
! <send { "command": ["playlist-clear"] }>
]
]
; need the translator and the translator needs the daemon
<require-service <daemon mpv-translator>>
<depends-on <daemon mpv-translator> <service-state <daemon mpv-server> ready>>
? <service-object <daemon mpv-translator> ?cap> [
$cap {
dataspace: $mpvSpace
socket: $socketPath
}
]
; assert and retract the daemon as the daemon is built (this is a testing artifact)
? <built json_socket_translator ?path ?sum> [
<daemon mpv-translator {
argv: [$path]
protocol: application/syndicate
env: {BUILD_SUM: $sum}
}>
]
; start mpv regardless
<daemon mpv-server {
argv: [
"/run/current-system/sw/bin/mpv"
"--really-quiet"
"--idle=yes"
"--no-audio-display"
"--input-ipc-server=/run/user/1000/mpv.sock"
"--volume=75"
]
protocol: none
}>

View File

@ -0,0 +1,27 @@
? <machine-dataspace ?machine> [
$machine ? <Observe <rec rtt _>_> [
$config <require-service <daemon net_mapper>>
$config ? <service-object <daemon net_mapper> ?cap> [
$cap { dataspace: $machine }
]
]
]
? <socketspace ?socketspace> [
$socketspace ? <Observe <rec rtt _>_> [
$config <require-service <daemon net_mapper>>
$config ? <service-object <daemon net_mapper> ?cap> [
$cap { dataspace: $socketspace }
]
]
]
? <built net_mapper ?path ?sum> [
<daemon net_mapper {
argv: ["/home/emery/src/bin/net_mapper"]
protocol: application/syndicate
env: {
BUILD_SUM: $sum
}
}>
]

View File

@ -0,0 +1,9 @@
? <built nix_actor ?path ?sum> [
<daemon nix_actor {
argv: [$path]
protocol: application/syndicate
env: {
BUILD_SUM: $sum
}
}>
]

4
config/daemons/nncp.pr Normal file
View File

@ -0,0 +1,4 @@
<require-service <daemon nncp-caller>>
<require-service <daemon nncp-daemon>>
<daemon nncp-caller "nncp-caller -noprogress">
<daemon nncp-daemon "nncp-daemon -noprogress">

View File

@ -0,0 +1,9 @@
? <built sqlite_actor ?path ?sum> [
<daemon sqlite_actor {
argv: [ $path ]
protocol: application/syndicate
env: {
BUILD_HASH: $sum
}
}>
]

11
config/daemons/squeak.pr Normal file
View File

@ -0,0 +1,11 @@
<_gui squeak {
argv: [ "/home/emery/.nix-profile/bin/squeak" "/home/emery/squeak/Squeak6.0alpha-21540-64bit.image" ]
dir: "/home/emery/squeak"
protocol: application/syndicate
}>
? <service-object <daemon squeak> ?cap> [
$cap {
config: $config
}
]

View File

@ -0,0 +1 @@
exec "/home/emery/src/bin/preserve_process_environment sway-env-magic-cookie | preserves-tool convert > /home/emery/src/config/sway-env.pr"

7
config/daemons/sway.pr Normal file
View File

@ -0,0 +1,7 @@
<require-service <milestone wayland>>
<depends-on <milestone wayland> <service-state <daemon sway> ready>>
; TODO: configure Sway over JSON IPC?
<daemon sway {
argv: "/run/current-system/sw/bin/sway --config /home/emery/.config/sway/config 2>/tmp/sway.log"
protocol: none}>

View File

@ -0,0 +1,6 @@
<require-service <gui swayidle>>
<gui swayidle {
argv: [ "/home/emery/src/config/daemons/swayidle.sh" ]
protocol: none
}>

20
config/daemons/swayidle.sh Executable file
View File

@ -0,0 +1,20 @@
#!/usr/bin/env -S execlineb -P
redirfd -w 2 /dev/null
swayidle
"-w"
"timeout"
"120"
"swaymsg 'output * dpms off'"
"resume"
"swaymsg 'output * dpms on'"
"after-resume"
"/home/emery/lib/bin/camshot"
"after-resume"
"swaymsg 'output * dpms on'"
"before-sleep"
"mpd --kill"
"before-sleep"
"swaylock --daemonize --image /home/emery/tiles/background.png --scaling=tile"
"timeout"
"600"
"swaylock --daemonize --image /home/emery/tiles/background.png --scaling=tile"

34
config/daemons/syndev.pr Normal file
View File

@ -0,0 +1,34 @@
? <machine-dataspace ?machine> [
<require-service <daemon syndev>>
<require-service <daemon power_monitor>>
<depends-on <daemon power_monitor> <service-state <daemon syndev> ready>>
? <built syndev ?path ?sum> [
<daemon syndev {
argv: [$path]
protocol: application/syndicate
env: { BUILD_SUM: $sum }
}>
]
? <built power_monitor ?path ?sum> [
<daemon power_monitor {
argv: [$path]
protocol: application/syndicate
env: { BUILD_SUM: $sum }
}>
]
? <service-object <daemon syndev> ?cap> [
$cap { machine: $machine }
]
? <service-object <daemon power_monitor> ?cap> [
$cap { machine: $machine }
]
$machine ?? ?x [
$log ! <log "-" { machine-message: $x }>
]
]

View File

@ -0,0 +1 @@
../../syn-open/uri_runner.pr

4
config/daemons/waybar.pr Normal file
View File

@ -0,0 +1,4 @@
; <require-service <daemon waybar>>
<gui waybar {
argv: "/run/current-system/sw/bin/waybar"
}>

View File

@ -0,0 +1,9 @@
? <built xapian_actor ?path ?sum> [
<daemon xapian_actor {
argv: [ $path ]
protocol: application/syndicate
env: {
BUILD_HASH: $sum
}
}>
]

View File

@ -0,0 +1,20 @@
; <require-service <daemon yggdrasilctl>>
let ?ds = dataspace
$ds [
?? <recv ?js> [ $log ! <log "-" { yggdrasilctl: $js }> ]
]
? <built json_socket_translator ?path ?sum> [
<daemon yggdrasil_actor {
argv: [$path]
protocol: application/syndicate
}>
]
? <service-object <daemon yggdrasilctl> ?cap> [
$cap {
dataspace: $ds
socket: "/run/yggdrasil/yggdrasil.sock"
}
]

View File

@ -0,0 +1,2 @@
let ?exec-space = dataspace
<exec-space $exec-space>

View File

@ -0,0 +1,7 @@
let ?ds = dataspace
<machine-dataspace $ds>
$ds ? ?r [
$log ! <log "-" { line: "machine" |+++|: $r }>
?- $log ! <log "-" { line: "machine" |---|: $r }>
]

View File

@ -0,0 +1,2 @@
let ?ds = dataspace
<mail $ds>

4
config/dataspaces/mpv.pr Normal file
View File

@ -0,0 +1,4 @@
; dataspace is created in ../daemons/mpv.config-example.pr
? <mpv ?mpv> $mpv [
! <play-file "/srv/music/Various Artists - Windows 95/01 The Microsoft Sound.mp3">
]

3
config/dataspaces/nix.pr Normal file
View File

@ -0,0 +1,3 @@
let ?nixspace = dataspace
<nixspace $nixspace>
<bind <ref {oid: "nix" key: #x""}> $nixspace #f>

View File

@ -0,0 +1,2 @@
let ?ds = dataspace
<notifications $ds>

View File

@ -0,0 +1,3 @@
let ?ds = dataspace
<simplex $ds>
? <socketspace ?socketspace> [ $socketspace <simplex $ds> ]

2
config/dataspaces/tox.pr Normal file
View File

@ -0,0 +1,2 @@
let ?ds = dataspace
<tox $ds>

View File

@ -0,0 +1,2 @@
let ?typespace = dataspace
<typespace $typespace>

View File

@ -0,0 +1,6 @@
let ?socketspace = dataspace
<require-service <relay-listener <unix "/run/user/1000/dataspace"> $gatekeeper>>
<bind <ref { oid: "syndicate" key: #x"" }> $socketspace #f>
<socketspace $socketspace>

56
config/exec.pr Normal file
View File

@ -0,0 +1,56 @@
? <exec-space ?exec-space> [
; get the Sway environment and exec with it
? { argv: ["sway-env-magic-cookie"]
env: {
"DBUS_SESSION_BUS_ADDRESS" : ?DBUS_SESSION_BUS_ADDRESS
"DISPLAY": ?DISPLAY
"SWAYSOCK" : ?SWAYSOCK
"WAYLAND_DISPLAY" : ?WAYLAND_DISPLAY
"XDG_SEAT" : ?XDG_SEAT
"XDG_SESSION_TYPE" : ?XDG_SESSION_TYPE
} } [
; start GUI programs in the Sway environment
? <gui ?sym { argv: ?argv }> [
<run-service <daemon $sym>>
<daemon $sym {
argv: $argv,
env: {
"DBUS_SESSION_BUS_ADDRESS" : $DBUS_SESSION_BUS_ADDRESS
"DISPLAY": $DISPLAY
"SWAYSOCK" : $SWAYSOCK
"WAYLAND_DISPLAY" : $WAYLAND_DISPLAY
"XDG_SEAT" : $XDG_SEAT
"XDG_SESSION_TYPE" : $XDG_SESSION_TYPE
}
readyOnStart: #f,
}>
]
; execute programs in response to handlers
$exec-space ?? <exec ?argv> $config [
let ?id = timestamp
let ?facet = facet
let ?d = <uri_runner-exec $id $argv>
<run-service <daemon $d>>
<daemon $d {
argv: $argv,
env: {
"DBUS_SESSION_BUS_ADDRESS" : $DBUS_SESSION_BUS_ADDRESS
"DISPLAY": $DISPLAY
"SWAYSOCK" : $SWAYSOCK
"WAYLAND_DISPLAY" : $WAYLAND_DISPLAY
"XDG_SEAT" : $XDG_SEAT
"XDG_SESSION_TYPE" : $XDG_SESSION_TYPE
}
readyOnStart: #f,
restart: =never,
}>
? <service-state <daemon $d> complete> [$facet ! stop]
? <service-state <daemon $d> failed> [$facet ! stop]
]
]
]

View File

@ -0,0 +1,48 @@
<require-service <daemon uri_runner>>
; the <exec-space #!> dataspace starts programs when it receives exec messages
? <exec-space ?execspace> [
<action-handler "file://(.*.pdf)" $execspace
<exec ["/run/current-system/sw/bin/mupdf" "$1"]>>
<action-handler "file://(.*.png|.*.jpg|.*.jpeg|.*.qoi)" $execspace
<exec ["/run/current-system/sw/bin/imv" "$1"]>>
<action-handler "(magnet:?.*xt=urn:btih.*)" $execspace
<exec ["/run/current-system/sw/bin/transmission-gtk" "$1"]>>
<action-handler "(tg://.*)" $execspace
<exec ["/run/current-system/sw/bin/telegram-desktop" "$1"]>>
<action-handler "https://twitter.com/(.*)" $execspace
<exec ["/run/current-system/sw/bin/firefox" "--new-tab" "https://nitter.net/$1"]>>
<action-handler "(http://.*|https://.*)" $execspace
<exec ["/run/current-system/sw/bin/firefox" "$#"]>>
<action-handler "(file:///.*.html)" $execspace
<exec ["/home/emery/.nix-profile/bin/netsurf-gtk3" "$#"]>>
<action-handler "mailto:(.*)" $execspace
<exec ["/run/current-system/sw/bin/astroid" "--mailto" "mailto:$#"]>>
<action-handler "file://(.*\\.odt)" $execspace
<exec ["/home/emery/.nix-profile/bin/libreoffice" "$#"]>>
<action-handler "file://(.*\\.eris)" $execspace
<exec ["/home/emery/src/bin/erisopen" "$#"]>>
<action-handler "(.*mp4)" $execspace
<exec ["/run/current-system/sw/bin/mpv" "$#"]>>
<action-handler "(.*mkv)" $execspace
<exec ["/run/current-system/sw/bin/mpv" "$#"]>>
]
; when mpv is available send it commands directly
? <mpv ?mpv> [
<action-handler "(.*mp3)" $mpv <play-file "$1">>
<action-handler "(.*wav)" $mpv <play-file "$1">>
]

24
config/mail.pr Normal file
View File

@ -0,0 +1,24 @@
? <mail ?mail> $mail [
? <xapian ?uuid ?path> [
$log ! <log "-" { xapian: <xapian $uuid $path> }>
]
<query spam "spam" english>
? <match spam ?id ?weight ?rank > [
? <document $id ?data> [
$log ! <log "-" { spam: { docid: $id data: $data } }>
]
]
$config [
; <require-service <daemon xapian_actor>>
? <service-object <daemon xapian_actor> ?cap> [
$cap {
database: "/home/emery/mail/.notmuch/xapian"
dataspace: $mail
}
]
]
]

66
config/nix.pr Normal file
View File

@ -0,0 +1,66 @@
? <nixspace ?nixspace> $nixspace [
? <Observe <rec nixVersion _> _> [
$config <require-service <daemon nix_actor>>
]
? <Observe <rec eval _> _> [
$config <require-service <daemon nix_actor>>
]
? <Observe <rec eval _> _> [
$config <require-service <daemon nix_actor>>
]
? <Observe <rec instantiate _> _> [
$config <require-service <daemon nix_actor>>
]
? <Observe <rec realise _> _> [
$config <require-service <daemon nix_actor>>
]
;? <eval "let pkgs = import /nix/var/nix/profiles/per-user/root/channels/nixos/pkgs/top-level/impure.nix {}; in pkgs.hello.meta" {} ?result> [
; $log ! <log "-" { hello-meta: $result }>
;]
; ? <instantiate "let pkgs = import <nixpkgs> {}; in pkgs.hello" { } ?drv> [
; ? <realise $drv ?outputs> [
; $log ! <log "-" { "hello": $outputs }>
; ]
; ]
;? <eval "let pkgs = import /nix/var/nix/profiles/per-user/root/channels/nixos/pkgs/top-level/impure.nix {}; in pkgs.hello.meta" {} ?result> [
; $log ! <log "-" { hello-meta: $result }>
;]
; ? <missing ["/nix/store/p7fnjrbvmpwl192ir8p2ixfym68j7sgv-invidious-unstable-2023-05-08"] _ ?subs _ ?dlSize ?narSize> [
; $log ! <log "-" { invidious-unstable-2023-05-08: {
; substitutes: $subs
; downloadSize: $dlSize
; narSize: $narSize
; } }>
; ]
; ? <path-info "/nix/store/jhgh02lyizd1kyl71brvc01ygsmgi40a-tzdata-2023c"
; ?deriver ?narHash _ _ ?narSize _ ?sigs _> [
; $log ! <log "-" { tzdata-2023c: {
; deriver: $deriver
; narHash: $narHash
; narSize: $narSize
; sigs: $sigs
; } }>
; ]
$config [
? <service-object <daemon nix_actor> ?cap> [
$cap {
listen-socket: "/tmp/worker.socket"
daemon-socket: "/nix/var/nix/daemon-socket/socket"
dataspace: $nixspace
}
]
]
]

23
config/notifications.pr Normal file
View File

@ -0,0 +1,23 @@
<require-service <daemon libnotify_actor>>
? <notifications ?notifyspace> [
$config ? <service-object <daemon libnotify_actor> ?cap> [
$cap { dataspace: $notifyspace }
]
? <built _ ?path _> [
$notifyspace ! <notify $path {} >
]
? <socketspace ?socketspace> [
$socketspace ?? <msg ?summary> [
$notifyspace ! <notify $summary {} >
]
]
? <nixspace ?nixspace> [
$nixspace ? <nix-build _ ?output> [
$notifyspace ! <notify $output {} >
]
]
]

36
config/simplex.pr Normal file
View File

@ -0,0 +1,36 @@
? <simplex ?simplex> $simplex [
<query user-row "SELECT user_id, local_display_name FROM users">
<query contact-row "SELECT contact_id, user_id, local_display_name, is_user FROM contacts">
? <user-row ?user_id ?name> [
let ?user = dataspace
$user <user-id $user_id>
$user <local-display-name $name>
$simplex ? <contact-row ?contact_id $user_id ?local_display_name 0> [
let ?contact = dataspace
$contact <contact-id $contact_id>
$contact <local-display-name $local_display_name>
$user <contact $contact>
]
$simplex <user $user>
]
? ?any [$log ! <log "-" { simplex: $any }> ]
$config <require-service <daemon sqlite_actor>>
$config ? <service-object <daemon sqlite_actor> ?cap> [
$cap {
dataspace: $simplex
database: "/home/emery/.simplex/simplex_v1_chat.db"
}
]
? <socketspace ?socketspace> [
$config <require-service <daemon simplex_bot_actor>>
$config ? <service-object <daemon simplex_bot_actor> ?cap> [
$cap { dataspace: $socketspace url: "ws://127.0.0.1:5225/" }
]
]
]

36
config/status.pr Normal file
View File

@ -0,0 +1,36 @@
? <swaybarspace ?swaybarspace> [
? <machine-dataspace ?machine> [
$machine ?? <uevent "power_supply" _ change {POWER_SUPPLY_STATUS: ?STATUS POWER_SUPPLY_TECHNOLOGY: ?TECHNOLOGY} _> [
$swaybarspace <swaybar-status { "full_text": $STATUS }>
$swaybarspace <swaybar-status { "full_text": $TECHNOLOGY }>
]
]
$config ? { argv: ["sway-env-magic-cookie"]
env: {
"DESKTOP_STARTUP_ID": ?DESKTOP_STARTUP_ID
"XDG_ACTIVATION_TOKEN": ?XDG_ACTIVATION_TOKEN
} } [
$swaybarspace <swaybar-status {
"full_text": "Thu 30 May 2019 02:09:15",
"short_text": "02:09",
"color": "#ccccccff",
"background": "#111111ff",
"border": "#222222ff",
"border_top": 1,
"border_bottom": 1,
"border_left": 1,
"border_right": 1,
"min_width": 100,
"align": "center",
"name": "clock",
"instance": "edt",
"urgent": false,
"separator": true,
"separator_block_width": 5,
"markup": "none"
}>
]
]

1
configparser Submodule

@ -0,0 +1 @@
Subproject commit 695f1285d63f1954c25eb1f42798d90fa7bcbe14

1
crunchy Submodule

@ -0,0 +1 @@
Subproject commit 6dda0e3347e310ed883f9c0abee900cfc6c4a65a

1
dhall-nim Submodule

@ -0,0 +1 @@
Subproject commit 4fc64844885d574e47236262e32b8b0554c01fa9

1
eer Submodule

@ -0,0 +1 @@
Subproject commit 1c5f7ca08b201e023a8cb96e2ef99b4d6ab3366a

@ -1 +0,0 @@
Subproject commit c960373cd75826d98127629ff1be92c9ad473e22

@ -1 +1 @@
Subproject commit 4a7518beba1d20126eedd7b503a6945ad9a759cb
Subproject commit 71e5a5daafe9b5084f7e805f4270486742496f46

@ -1 +1 @@
Subproject commit 7aed5cc1ac3f99446fc930fa3166f04d4cd6f172
Subproject commit d955d58b3cd3ebce37ea69c01ec5371344b7a1a9

@ -1 +1 @@
Subproject commit 5b4bdfab0e31e4df5dac6a4c69d64e0acc1b07f7
Subproject commit e71d796cfb66aeced9ee3e76587d0a60e1ef2744

1
eristekt Submodule

@ -0,0 +1 @@
Subproject commit 52c654f5b7a09e4fcec9f0813cde081f5ab425d5

View File

@ -1,178 +0,0 @@
{
"nodes": {
"eris": {
"inputs": {
"nixpkgs": [
"ops",
"nixpkgs"
]
},
"locked": {
"lastModified": 1673553193,
"narHash": "sha256-fw8DQs+NrFfZTSlwWNGbEZ8rre69YOKAIsk1MqJIFgY=",
"ref": "refs/heads/trunk",
"rev": "008b29ca3b27e53e678b6c2f11da98d2755fe437",
"revCount": 48,
"type": "git",
"url": "https://codeberg.org/eris/nix-eris"
},
"original": {
"type": "git",
"url": "https://codeberg.org/eris/nix-eris"
}
},
"flake-utils": {
"locked": {
"lastModified": 1656928814,
"narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"gemini": {
"inputs": {
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1639155521,
"narHash": "sha256-Lh74QEjPIPZSZNvz1zPKEqEjSA6eIci0eDRoZJKIYeE=",
"owner": "nix-community",
"repo": "flake-gemini",
"rev": "2900f752c983974a03e66077f1e6522764486aed",
"type": "github"
},
"original": {
"id": "gemini",
"type": "indirect"
}
},
"nixos-hardware": {
"locked": {
"lastModified": 1673440569,
"narHash": "sha256-FQ5o0yI+MH9MgfseeGDsVIIpIqv3BCgq+0NzncuZ9Zo=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "88016c96c3c338aa801695cdd9f186820bcfe4d6",
"type": "github"
},
"original": {
"id": "nixos-hardware",
"type": "indirect"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1639153468,
"narHash": "sha256-AXlstb8jjYs8HKGTLOuSjIdFLyPQSI5aYPN34qUy+Rc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "cf8f41fe116c8e733c833acd4759d9261ecd6d1f",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "release-21.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1673450908,
"narHash": "sha256-b8em+kwrNtnB7gR8SyVf6WuTyQ+6tHS6dzt9D9wgKF0=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "6c8644fc37b6e141cbfa6c7dc8d98846c4ff0c2e",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"ops": {
"inputs": {
"eris": "eris",
"gemini": "gemini",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_2",
"syndicate": "syndicate"
},
"locked": {
"lastModified": 1673902012,
"narHash": "sha256-jbvQJgMqeB6q0mWi0RU9NYS7luoE8x8yY5XzQ2WY/Jk=",
"ref": "refs/heads/trunk",
"rev": "df23e65b3d67a19f11a1ee455845ddcc68c454d9",
"revCount": 673,
"type": "git",
"url": "git://[20a:c3d2:8cf8:f8e5:80fe:9194:3800:87e6]/ops"
},
"original": {
"id": "ops",
"type": "indirect"
}
},
"root": {
"inputs": {
"ops": "ops"
}
},
"rust": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"ops",
"syndicate",
"nixpkgs"
]
},
"locked": {
"lastModified": 1663038100,
"narHash": "sha256-DpqF/1FYpUo3Fm54oBaXzdqIG7BuRkHHFOgLM0uVVF0=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "dbd08f5b5469e1e24f00de45ddc73c26290a2bcb",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"syndicate": {
"inputs": {
"nixpkgs": [
"ops",
"nixpkgs"
],
"rust": "rust"
},
"locked": {
"lastModified": 1663517796,
"narHash": "sha256-9ay9RvgR2hh0ClQ8P6NkbJKIz4gmgcT/vZ7qXiK0Hik=",
"ref": "synit",
"rev": "3cf46ea6e18cd72c917a2431b716767481262409",
"revCount": 68,
"type": "git",
"url": "https://git.syndicate-lang.org/ehmry/syndicate-flake"
},
"original": {
"ref": "synit",
"type": "git",
"url": "https://git.syndicate-lang.org/ehmry/syndicate-flake"
}
}
},
"root": "root",
"version": 7
}

View File

@ -1,36 +0,0 @@
{
description = "Packages pin";
outputs = { self, ops }:
let
nixpkgs = ops;
inherit (ops.inputs.nixpkgs) lib;
in {
overlay = final: prev: {
tup = let
tup' = prev.tup.overrideAttrs
({ patches ? [ ], ... }: { patches = patches ++ [ ./tup.patch ]; });
in with final;
writeScriptBin "tup" ''
export PATH=${lib.makeBinPath [ coreutils direnv gitMinimal nix ]}
exec ${tup'}/bin/tup $@
'';
};
legacyPackages = lib.mapAttrs (_: { extend, ... }: extend self.overlay)
nixpkgs.legacyPackages;
packages =
lib.mapAttrs (_: pkgs: { inherit (pkgs) tup; }) self.legacyPackages;
devShells = lib.mapAttrs (_: pkgs:
with pkgs.extend self.overlay; {
default = mkShell { packages = [ ccacheWrapper gdb tup ]; };
nim = mkShell { packages = [ ccacheWrapper nim-unwrapped nodejs openssl solo5 ]; };
config = mkShell { packages = [ gnused ]; };
eris = mkShell { packages = [ getdns pkg-config solo5 tkrzw ]; };
getdns = mkShell { packages = [ getdns pkg-config ]; };
}) nixpkgs.legacyPackages;
};
}

1
fontconfig_actor Submodule

@ -0,0 +1 @@
Subproject commit 60515ad4088dce0bf58c6e0eb4238b4f1a8d2844

1
freedesktop_org Submodule

@ -0,0 +1 @@
Subproject commit 446760b2c35fb34f2c769f16f10f157a05fccf8a

1
genode-nim Submodule

@ -0,0 +1 @@
Subproject commit 2bc5075232aeb2f6df44f6960796729fcf4ebbd8

2
getdns

@ -1 +1 @@
Subproject commit 764366d3d113b4d78d72487874facaeb0aefa3c1
Subproject commit e4ae0992ed7c5540e6d498f3074d06c8f454a0b6

@ -1 +1 @@
Subproject commit 00c45f99959c0e44567cd46bbc4cce356962f6d7
Subproject commit bd0bcc4b0a5a9b2cecc84056af22b823bde9f002

1
hashlib Submodule

@ -0,0 +1 @@
Subproject commit 84e0247555e4488594975900401baaf5bbbfb531

1
hottext Submodule

@ -0,0 +1 @@
Subproject commit 4fd7e9a43458c8358e6c81ce3385732d42562168

1
icalendar_actor Submodule

@ -0,0 +1 @@
Subproject commit 2dde9d75ed743837c5314555da5e212766d825f4

1
immutulator Submodule

@ -0,0 +1 @@
Subproject commit ca3500cdad2085fa5dba1a0568b4e8f4cf089f95

1
libnotify_actor Submodule

@ -0,0 +1 @@
Subproject commit 5b7d241c62069501f9a8c72ba27e4fe446ca9c40

2
nim

@ -1 +1 @@
Subproject commit f1519259f85cbdf2d5ff617c6a5534fcd2ff6942
Subproject commit 9af1fba47127d2b55529b89681fa9c265a015246

6
nimble/Tupfile Normal file
View File

@ -0,0 +1,6 @@
!nix_build = |> ^o^ nix build -f ../nixexprs/nixpkgs --out-link %o |>
: |> !nix_build nim2Packages.illwill |> illwill ./<illwill>
: |> !nix_build nim2Packages.base32 |> base32 ./<base32>
: |> !nix_build nim2Packages.nimSHA2 |> nimsha2 ./<nimsha2>
: |> !nix_build nim2Packages.flatty |> flatty ./<flatty>
: |> !nix_build nim2Packages.sdl2 |> sdl2 ./<sdl2>

1
nimble/bigints Submodule

@ -0,0 +1 @@
Subproject commit 6d77ea78e8da1d870017303bc0cbd798f85bb506

1
nimble/cps Submodule

@ -0,0 +1 @@
Subproject commit 7f83a3d843d84e2597d83c07e0c06f128e667c80

1
nimble/cpstest Submodule

@ -0,0 +1 @@
Subproject commit 668f3415ee56795ad7af5c1063c22b40f286cde4

1
nimble/eventqueue Submodule

@ -0,0 +1 @@
Subproject commit 597d5e08e87521652c0469c273d4d21743d13404

1
nimble/nim-sys Submodule

@ -0,0 +1 @@
Subproject commit c632f88b3bb8b5225bc57048399911bb74567cec

1
nimble/nimAES Submodule

@ -0,0 +1 @@
Subproject commit b9d6d29cb44d4b6965ad4db04770bef2a35dd4b7

1
nimble/nimble Submodule

@ -0,0 +1 @@
Subproject commit a6c07bed8e0bf765350b1731e397c8951278281d

1
nimble/npeg Submodule

@ -0,0 +1 @@
Subproject commit b15a10e388b91b898c581dbbcb6a718d46b27d2f

1
nimble/websock Submodule

@ -0,0 +1 @@
Subproject commit 2c3ae3137f3c9cb48134285bd4a47186fa51f0e8

1
nimble/ws Submodule

@ -0,0 +1 @@
Subproject commit 5ac521b72d7d4860fb394e5e1f9f08cf480e9822

1
nimsimd Submodule

@ -0,0 +1 @@
Subproject commit 1d75f15c8bb8df9c1d4779072bbfc8a7e3e84c98

1
nimsvg Submodule

@ -0,0 +1 @@
Subproject commit 89e7b31a1937524451fdf57f3e851f293385e8ca

1
nix_actor Submodule

@ -0,0 +1 @@
Subproject commit 6b6187f508595ce4a8351f8cb56ccc987326e13a

10
nixexprs/configure.nix Normal file
View File

@ -0,0 +1,10 @@
{ pkgs ? import <nixpkgs> { }, lockPath }:
let inherit (pkgs) lib;
in lib.pipe lockPath [
builtins.readFile
builtins.fromJSON
(builtins.getAttr "depends")
(map ({ path, srcDir, ... }: ''path:"${path}/${srcDir}"''))
lib.strings.concatLines
(pkgs.writeText "nim.cfg")
]

View File

@ -0,0 +1,22 @@
{ overlays ? [ ] }:
let
nixpkgs = builtins.fetchTarball {
url =
"https://github.com/ehmry/nixpkgs/archive/f8d0c5ee347a73ee7fa52b1f66f576fda793dfc4.tar.gz";
};
in import nixpkgs {
overlays = [
(final: prev: {
ccacheWrapper = prev.ccacheWrapper.override {
extraConfig = ''
export CCACHE_DIR="/var/cache/ccache"
export CCACHE_UMASK=000
'';
};
nimPackages = prev.nimPackages.overrideScope' (final': prev': {
buildNimPackage =
prev'.buildNimPackage.override { stdenv = final.ccacheStdenv; };
});
})
] ++ overlays;
}

1
noiseprotocol Submodule

@ -0,0 +1 @@
Subproject commit 5ac106398c1ba4509a797ff924fa7246dbabe72a

1
npeg

@ -1 +0,0 @@
Subproject commit 8ed85bb6e395f625ffa3c10ec2b9abb2665d6db1

1
pixie Submodule

@ -0,0 +1 @@
Subproject commit 937208f2d3cdc354cf9b8e78709fe97ffa1e1333

@ -1 +1 @@
Subproject commit b88cccb884ef55cefce0807cd3b5dd267af99f25
Subproject commit 8dc51d70e731b166f590b1a630bd272b6f865479

@ -1 +1 @@
Subproject commit 66a653a77514f94fdb53aef807248b5e780c3a8a
Subproject commit 8b3b182ce791811ed6c3524e25adfc0a2a530b71

1
sigil Submodule

@ -0,0 +1 @@
Subproject commit 272a141fc16dcad3478fe6dd253344b80e76dfb2

1
sqlite_actor Submodule

@ -0,0 +1 @@
Subproject commit d54fcfb7864179427644c3c708d00d79ae6b68aa

1
svui Submodule

@ -0,0 +1 @@
Subproject commit e2e5cbd1d90e3a185d4e6cd34142e6019aaf7d96

Some files were not shown because too many files have changed in this diff Show More