Compare commits

..

15 Commits

Author SHA1 Message Date
a7d3111d3e
nixos/workflows/a-happy-gnome: add Valent to applications list
Some checks failed
Check flake outputs / check-outputs (push) Has been cancelled
Publish every Git push to master to FlakeHub / flakehub-publish (push) Has been cancelled
Build personalized bootstrap ISO / build-iso (x86_64-linux) (push) Has been cancelled
Build project site / build (push) Has been cancelled
Build devcontainers / build-devcontainers (push) Has been cancelled
Cache outputs / build-custom-packages (push) Has been cancelled
Build project site / deploy (push) Has been cancelled
Update flake inputs / update (push) Has been cancelled
Update Firefox addons / update-firefox-addons (push) Has been cancelled
2025-04-03 11:51:07 +08:00
8de6cbe359
users/foo-dogsquared: add Nix garbage collection 2025-04-03 11:49:34 +08:00
0c7fb4aa90
users/foo-dogsquared/setups/research: add Software Heritage tools 2025-04-03 11:49:34 +08:00
c5835bc8a0
users/foo-dogsquared/setups/development: add more applications 2025-04-03 11:49:34 +08:00
3ae1781736
pkgs/distant: remove
Available from upstream nixpkgs unstable branch and it's only used
outside of this project anyways.
2025-04-03 11:49:34 +08:00
6f659999d1
pkgs/tic-80-unstable: init at unstable-2025-03-27
Also updated it since there's another package of the same name with the
latest stable release.
2025-04-03 11:49:34 +08:00
58c393dc1a
nixos/programs/gnome-session: update module 2025-04-03 11:49:34 +08:00
ba9e3c3066
lib: init formats subset 2025-04-03 11:49:34 +08:00
ffafbe1b94
nixos/workflows/a-happy-gnome: update desktop settings 2025-04-03 11:49:34 +08:00
d8bec326cc
pkgs/swh/swh-fuse: 1.0.6 -> 1.1.0 2025-04-03 11:49:34 +08:00
de335fe21c
pkgs/swh/swh-web-client: 0.6.0 -> 0.9.0 2025-04-03 11:49:34 +08:00
e27308dea9
pkgs/swh/swh-model: 6.7.0 -> 7.1.0 2025-04-03 11:49:34 +08:00
9c76f03186
pkgs/swh/swh-auth: 0.7.2 -> 0.10.0 2025-04-03 11:49:34 +08:00
3e8c0852e1
pkgs/swh/swh-core: 2.24.0 -> 4.0.0 2025-04-03 11:49:34 +08:00
72e09c0345
ci: remove magic-nix-cache action 2025-04-03 11:49:25 +08:00
20 changed files with 135 additions and 91 deletions

View File

@ -10,10 +10,6 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@v16
- uses: DeterminateSystems/magic-nix-cache-action@v9
with:
extra-conf: |
keep-going = true
- name: Build
run: |
nix build -f ./devcontainers --print-out-paths --no-link > build_paths

View File

@ -10,10 +10,6 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@v16
- uses: DeterminateSystems/magic-nix-cache-action@v9
with:
extra-conf: |
keep-going = true
- name: Prepare push to binary cache
uses: cachix/cachix-action@v15
if: ${{ github.ref == 'refs/heads/master' }}

View File

@ -15,7 +15,6 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@v16
- uses: DeterminateSystems/magic-nix-cache-action@v9
- name: Build ISO
run: |
nix build .#images.${{ matrix.arch }}.bootstrap-install-iso --out-link build-iso-result

View File

@ -10,7 +10,6 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@v16
- uses: DeterminateSystems/magic-nix-cache-action@v9
- env:
NIXPKGS_ALLOW_UNFREE: "1"
run: nix build .#devPackages.x86_64-linux.website

View File

@ -101,6 +101,13 @@ in {
};
};
# GARBAGE DAY!
nix.gc = {
automatic = true;
frequency = "weekly";
randomizedDelaySec = "5m";
};
# Set the profile picture. Most of the desktop environments should support
# this.
home.file.".face".source = ./files/logo.png;

View File

@ -142,14 +142,18 @@ in {
home.packages = with pkgs;
[
d-spy # Some GNOME dev probably developed this.
bustle # Hustle and...
];
})
(lib.mkIf cfg.creative-coding.enable {
home.packages = with pkgs; [
decker
uxn
supercollider-with-plugins
processing
(puredata-with-plugins (with pkgs; [ zexy ]))
tic-80-unstable
];
})
]);

View File

@ -90,6 +90,13 @@ in {
}";
text = "Local sync server";
};
programs.python.modules = ps: with pkgs.swh; [
swh-core
swh-fuse
swh-model
swh-web-client
];
}
(lib.mkIf userCfg.programs.shell.enable {

View File

@ -15,6 +15,10 @@ in pkgs.lib.makeExtensible (self:
math = callLib ./math.nix;
xdg = callLib ./xdg.nix;
# Just like from its inspiration, this contains Nix-representable data
# formats and won't have any attributes exported at the top-level.
formats = callLib ./formats.nix;
# For future references, these are the only attributes that are going to be
# exported as part of nixpkgs overlay.
fetchers = callLib ./fetchers;

21
lib/formats.nix Normal file
View File

@ -0,0 +1,21 @@
{ lib, pkgs, self }:
{
# The gnome-session config files uses one from GLib. See the following link
# at <https://docs.gtk.org/glib/struct.KeyFile.html> for details about the
# keyfile formatting and possibly the Desktop Entry specification at
# <https://freedesktop.org/wiki/Specifications/desktop-entry-spec>.
glibKeyfile = {}: {
type = with lib.types;
let
valueType = oneOf [ bool float int str (listOf valueType) ] // {
description =
"GLib keyfile atom (bool, int, float, string, or a list of the previous atoms)";
};
in attrsOf (attrsOf valueType);
generate = name: value:
pkgs.callPackage
({ lib, writeText }: writeText name (lib.generators.toDconfINI value));
};
}

View File

@ -20,6 +20,9 @@ clock-format = '24h'
[org/gnome/desktop/privacy]
disable-microphone = false
max-age = 30
remove-old-temp-files = true
remove-old-trash-files = true
[org/gnome/shell]
disable-user-extensions = false

View File

@ -36,6 +36,7 @@ in {
paperwm
runcat
windownavigator
valent
];
example = lib.literalExpression ''
with pkgs.gnomeExtensions; [
@ -72,11 +73,12 @@ in {
shortwave # Yer' humble internet radio.
tangram # Your social media manager, probably.
ymuse # Simple MPD client.
valent # ...ines 'tis season to share... phone data or something.
gnome-backgrounds # Default backgrounds.
gnome-menus # It is required for custom menus in extensions.
#gnome-extension-manager # The cooler GNOME extensions app.
gnome-extension-manager # The cooler GNOME extensions app.
gnome-search-provider-recoll # This is here for some reason.
# Nautilus extensions

View File

@ -23,7 +23,7 @@ let
generate = name: value:
pkgs.callPackage
({ writeText }: writeText name (lib.generators.toDconfINI value));
({ writeText, lib }: writeText name (lib.generators.toDconfINI value)) { };
};
# The bulk of the work. Pretty much the main purpose of this module.
@ -111,8 +111,8 @@ in {
options.programs.gnome-session = {
package = lib.mkOption {
type = lib.types.package;
default = pkgs.gnome.gnome-session;
defaultText = "pkgs.gnome.gnome-session";
default = pkgs.gnome-session;
defaultText = "pkgs.gnome-session";
description = ''
The package containing gnome-session binary and systemd units. This
module will use the `gnome-session` executable for the generated

View File

@ -20,7 +20,6 @@ in lib.makeScope pkgs.newScope (self: {
fastn = callPackage ./fastn { };
flatsync = callPackage ./flatsync { };
freerct = callPackage ./freerct.nix { };
distant = callPackage ./distant.nix { };
gnome-search-provider-recoll =
callPackage ./gnome-search-provider-recoll.nix { };
#graphite-design-tool = callPackage ./graphite-design-tool { };
@ -50,7 +49,7 @@ in lib.makeScope pkgs.newScope (self: {
#purrdata = callPackage ./purr-data { };
speki = callPackage ./speki { };
sqlc-gen-from-template = callPackage ./sqlc-gen-from-template { };
tic-80 = callPackage ./tic-80 { };
tic-80-unstable = callPackage ./tic-80 { };
smile = callPackage ./smile { };
sessiond = callPackage ./sessiond { };
uwsm = callPackage ./uwsm { };

View File

@ -1,30 +0,0 @@
{ stdenv, lib, rustPlatform, fetchFromGitHub, pkg-config, openssl }:
rustPlatform.buildRustPackage rec {
version = "0.20.0";
pname = "distant";
src = fetchFromGitHub {
owner = "chipsenkbeil";
repo = "distant";
rev = "v${version}";
hash = "sha256-DcnleJUAeYg3GSLZljC3gO9ihiFz04dzT/ddMnypr48=";
};
cargoHash = "sha256-7MNNdm4b9u5YNX04nBtKcrw+phUlpzIXo0tJVfcgb40=";
# Too many tests failing for now so we'll have to disable them. Much of the
# failed tests require a home directory and network access.
doCheck = false;
# We'll just tell to use the system's openssl to build openssl-sys.
env.OPENSSL_NO_VENDOR = 1;
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ];
meta = with lib; {
description = "Remotely edit files and run programs";
homepage = "https://github.com/chipsenkbeil/distant";
license = lib.licenses.mit;
maintainers = with maintainers; [ foo-dogsquared ];
};
}

View File

@ -4,33 +4,32 @@ with python3Packages;
buildPythonPackage rec {
pname = "swh-auth";
version = "0.7.2";
version = "0.10.0";
pyproject = true;
src = fetchPypi {
inherit version;
pname = "swh.auth";
sha256 = "sha256-f0++AuyJggoc19kPA/7UChbFjF/EoR+FztF00r5csLo=";
pname = "swh_auth";
hash = "sha256-J/5oFm0QSPNeEDKIYHEzSXWA/6uSOj9eu3LXYUTZjC0=";
};
# Tests require network access.
doCheck = false;
propagatedBuildInputs = [
django
djangorestframework
sentry-sdk
click
pyyaml
(python-keycloak.overrideAttrs (final: prev: rec {
version = "3.3.0";
src = pkgs.fetchPypi {
inherit version;
pname = "python_keycloak";
hash = "sha256-zIaBJvU1qk8yDcnqsk5GrzgcE7zIjZsHAbBCk+p1zSQ=";
};
propagatedBuildInputs = prev.propagatedBuildInputs
++ [ setuptools deprecation ];
}))
python-keycloak
# Requirements for Django
django
djangorestframework
sentry-sdk_2
# Requirements for Starlette
starlette
httpx
aiocache
swh-core
];

View File

@ -3,12 +3,13 @@
with python3Packages;
buildPythonPackage rec {
pname = "swh-core";
version = "2.24.0";
version = "4.0.0";
pyproject = true;
src = fetchPypi {
inherit version;
pname = "swh.core";
sha256 = "sha256-62xFSPxW/XvK5v1i4RA7Iwrr4V5nfxrs+PGHHC56trQ=";
pname = "swh_core";
hash = "sha256-da0Kx/pyHybW8oSIyH0/UqivGkSsvnQe7OoVY2p0glA=";
};
# Tests require network access.
@ -19,7 +20,7 @@ buildPythonPackage rec {
deprecated
pyyaml
python-magic
sentry-sdk
sentry-sdk_2
# swh.core.db
psycopg2
@ -36,6 +37,7 @@ buildPythonPackage rec {
flask
iso8601
msgpack
backports-entry-points-selectable
setuptools-scm
];

View File

@ -3,12 +3,13 @@
with python3Packages;
buildPythonPackage rec {
pname = "swh-fuse";
version = "1.0.6";
version = "1.1.0";
pyproject = true;
src = fetchPypi {
inherit version;
pname = "swh.fuse";
sha256 = "sha256-b1k4XJxaSGrdqQnKnu6EAaZoEVkdZqjt0vd6k+q+H3k=";
hash = "sha256-pkTZiUm+Sun+7gBNWXJUHUXTmEIz5tjvfGcU4cUL9Xg=";
};
doCheck = false;

View File

@ -3,18 +3,17 @@
with python3Packages;
buildPythonPackage rec {
pname = "swh-model";
version = "6.7.0";
version = "7.1.0";
pyproject = true;
src = fetchPypi {
inherit version;
pname = "swh.model";
sha256 = "sha256-88xlN/vGXMG858+0A1Wb4EIYC9btRTopY7Ryvw/huDo=";
pname = "swh_model";
hash = "sha256-MdyhpKm4UzIFVMhIlAT75OMUmfDcOFZzk/dJIZASwmE=";
};
doCheck = false;
propagatedBuildInputs = [
click
dulwich
deprecated
typing-extensions
hypothesis
@ -22,8 +21,14 @@ buildPythonPackage rec {
python-dateutil
attrs
attrs-strict
aiohttp
pytz
swh-core
# requirements for CLI
click
dulwich
];
meta = with lib; {

View File

@ -3,12 +3,13 @@
with python3Packages;
buildPythonPackage rec {
pname = "swh-web-client";
version = "0.6.0";
version = "0.9.0";
pyproject = true;
src = fetchPypi {
inherit version;
pname = "swh.web.client";
sha256 = "sha256-o1FcJh3nmGXWZABRQQUj3qgDPaHXwfazaBv8f3LENpk=";
pname = "swh_web_client";
hash = "sha256-nBFbWJ7qLGtnxy2iryWfsi4n4XuxVddqBdtzPFtUQ5w=";
};
doCheck = false;

View File

@ -1,63 +1,92 @@
# Build the TIC-80 virtual computer console with the PRO version. The
# developers are kind enough to make it easy to compile it if you know
# how.
{ stdenv, lib, SDL2, SDL2_sound, alsa-lib, cmake, fetchFromGitHub, freeglut, git
, gtk3, dbus, libGLU, libX11, libglvnd, libsamplerate, mesa, pkg-config, sndio
, zlib
{ stdenv, lib, giflib, SDL2, SDL2_sound, sdl2-compat, alsa-lib, argparse, curl
, cmake, fetchFromGitHub, freeglut, git, gtk3, dbus, libGLU, libX11, libglvnd
, libsamplerate, mesa, pkg-config, sndio, zlib, lua54Packages
, pulseaudioSupport ? stdenv.isLinux, libpulseaudio
, waylandSupport ? true, wayland, libxkbcommon, libdecor
, jsSupport ? true, quickjs
, waylandSupport ? true, wayland, wayland-scanner, libxkbcommon, libdecor
, esoundSupport ? true, espeak
, jackSupport ? true, jack2
# Ruby support requires compiling mruby so we'll skip it for now.
, rubySupport ? false, ruby, rake
# As of 2025-03-26, it is basically required to have a very specific version of
# mruby so no...
, rubySupport ? false, mruby
, pythonSupport ? true, python3
, pythonSupport ? true
, janetSupport ? true, janet
# This doesn't have the appropriate system library as of nixpkgs 2025-03-26, btw.
, wasmSupport ? true, wasm
, withPro ? true }:
# TODO: Fix the timestamp in the help section.
stdenv.mkDerivation rec {
pname = "tic-80";
version = "unstable-2023-07-18";
version = "unstable-2025-03-27";
src = fetchFromGitHub {
owner = "nesbox";
repo = "TIC-80";
rev = "68b94ee596e1ac218b8b9685fd0485c7ee8d2f18";
hash = "sha256-S3LYuRRFMZYl6dENrV21bowzo7smm+zSHXt77/83oL0=";
rev = "5aa6c536607a5512ce1913acf3be7be8784fd8db";
hash = "sha256-oPubH/dPGDK/ZPY6NjycytAYY4PD2H9MbJg7jGBz3aI=";
fetchSubmodules = true;
};
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [
argparse
alsa-lib
curl
freeglut
gtk3
giflib
libsamplerate
libGLU
libglvnd
lua54Packages.lua
mesa
git
sdl2-compat
SDL2
SDL2_sound
zlib
sndio
] ++ lib.optional pulseaudioSupport libpulseaudio
++ lib.optional jackSupport jack2 ++ lib.optional esoundSupport espeak
++ lib.optionals rubySupport [ ruby rake ]
++ lib.optional pythonSupport python3
] ++ lib.optionals pulseaudioSupport [ libpulseaudio ]
++ lib.optionals jackSupport [ jack2 ]
++ lib.optionals jsSupport [ quickjs ]
++ lib.optionals esoundSupport [ espeak ]
++ lib.optionals rubySupport [ mruby ]
++ lib.optionals janetSupport [ janet ]
++ lib.optionals wasmSupport [ wasm ]
++ lib.optionals (stdenv.isLinux && waylandSupport) [
wayland
wayland-scanner
libxkbcommon
libdecor
];
cmakeFlags = lib.optional withPro "-DBUILD_PRO=ON";
cmakeFlags =
# Just leave the tinier libraries alone for this.
[
"-DPREFER_SYSTEM_LIBRARIES=ON"
"-DBUILD_WITH_FENNEL=ON"
"-DBUILD_WITH_MOON=ON"
"-DBUILD_WITH_SCHEME=ON"
] ++ lib.optionals withPro [ "-DBUILD_PRO=ON" ]
++ lib.optionals jsSupport [ "-DBUILD_WITH_JS=ON" ]
++ lib.optionals rubySupport [ "-DBUILD_WITH_RUBY=ON" ]
++ lib.optionals pythonSupport [ "-DBUILD_WITH_PYTHON=ON" ]
++ lib.optionals wasmSupport [ "-DBUILD_WITH_WASM=ON" ]
++ lib.optionals janetSupport [ "-DBUILD_WITH_JANET=ON" ];
# Export all of the TIC-80-related utilities.
outputs = [ "out" "dev" ];