mirror of
https://github.com/foo-dogsquared/nixos-config.git
synced 2025-04-25 06:19:10 +00:00
Compare commits
15 Commits
c6d6215b5a
...
a7d3111d3e
Author | SHA1 | Date | |
---|---|---|---|
a7d3111d3e | |||
8de6cbe359 | |||
0c7fb4aa90 | |||
c5835bc8a0 | |||
3ae1781736 | |||
6f659999d1 | |||
58c393dc1a | |||
ba9e3c3066 | |||
ffafbe1b94 | |||
d8bec326cc | |||
de335fe21c | |||
e27308dea9 | |||
9c76f03186 | |||
3e8c0852e1 | |||
72e09c0345 |
4
.github/workflows/build-devcontainers.yml
vendored
4
.github/workflows/build-devcontainers.yml
vendored
@ -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
|
||||
|
4
.github/workflows/build.yml
vendored
4
.github/workflows/build.yml
vendored
@ -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' }}
|
||||
|
1
.github/workflows/iso.yml
vendored
1
.github/workflows/iso.yml
vendored
@ -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
|
||||
|
1
.github/workflows/site.yml
vendored
1
.github/workflows/site.yml
vendored
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
];
|
||||
})
|
||||
]);
|
||||
|
@ -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 {
|
||||
|
@ -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
21
lib/formats.nix
Normal 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));
|
||||
};
|
||||
}
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 { };
|
||||
|
@ -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 ];
|
||||
};
|
||||
}
|
@ -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
|
||||
];
|
||||
|
@ -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
|
||||
];
|
||||
|
@ -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;
|
||||
|
@ -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; {
|
||||
|
@ -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;
|
||||
|
@ -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" ];
|
||||
|
Loading…
Reference in New Issue
Block a user