mirror of
https://github.com/foo-dogsquared/nixos-config.git
synced 2025-04-27 00:19:10 +00:00
Compare commits
2 Commits
a97b9f8ffb
...
db556a55a5
Author | SHA1 | Date | |
---|---|---|---|
![]() |
db556a55a5 | ||
![]() |
6a5c5c48d8 |
4
.github/workflows/build-devcontainers.yml
vendored
4
.github/workflows/build-devcontainers.yml
vendored
@ -10,6 +10,10 @@ 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,6 +10,10 @@ 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@v16
|
||||
if: ${{ github.ref == 'refs/heads/master' }}
|
||||
|
1
.github/workflows/iso.yml
vendored
1
.github/workflows/iso.yml
vendored
@ -15,6 +15,7 @@ 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,6 +10,7 @@ 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,13 +101,6 @@ 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,18 +142,14 @@ 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,13 +90,6 @@ 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,10 +15,6 @@ 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;
|
||||
|
@ -1,21 +0,0 @@
|
||||
{ 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,9 +20,6 @@ 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,7 +36,6 @@ in {
|
||||
paperwm
|
||||
runcat
|
||||
windownavigator
|
||||
valent
|
||||
];
|
||||
example = lib.literalExpression ''
|
||||
with pkgs.gnomeExtensions; [
|
||||
@ -73,12 +72,11 @@ 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, lib }: writeText name (lib.generators.toDconfINI value)) { };
|
||||
({ writeText }: 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-session;
|
||||
defaultText = "pkgs.gnome-session";
|
||||
default = pkgs.gnome.gnome-session;
|
||||
defaultText = "pkgs.gnome.gnome-session";
|
||||
description = ''
|
||||
The package containing gnome-session binary and systemd units. This
|
||||
module will use the `gnome-session` executable for the generated
|
||||
|
@ -20,6 +20,7 @@ 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 { };
|
||||
@ -49,7 +50,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-unstable = callPackage ./tic-80 { };
|
||||
tic-80 = callPackage ./tic-80 { };
|
||||
smile = callPackage ./smile { };
|
||||
sessiond = callPackage ./sessiond { };
|
||||
uwsm = callPackage ./uwsm { };
|
||||
|
30
pkgs/distant.nix
Normal file
30
pkgs/distant.nix
Normal file
@ -0,0 +1,30 @@
|
||||
{ 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 ];
|
||||
};
|
||||
}
|
@ -204,21 +204,6 @@
|
||||
platforms = platforms.all;
|
||||
};
|
||||
};
|
||||
"tineye-reverse-image-search" = buildFirefoxXpiAddon {
|
||||
pname = "tineye-reverse-image-search";
|
||||
version = "2.0.9";
|
||||
addonId = "tineye@ideeinc.com";
|
||||
url = "https://addons.mozilla.org/firefox/downloads/file/4452436/tineye_reverse_image_search-2.0.9.xpi";
|
||||
sha256 = "6693b267ca060df38112b3a7214932abfbd07424f7db235eba6e3752cbd5c297";
|
||||
meta = with lib;
|
||||
{
|
||||
homepage = "https://tineye.com/";
|
||||
description = "Click on any image on the web to search for it on TinEye. Recommended by Firefox! \r\nDiscover where an image came from, see how it is being used, check if modified versions exist or locate high resolution versions. Made with love by the TinEye team.";
|
||||
license = licenses.mit;
|
||||
mozPermissions = [ "menus" "storage" "scripting" "activeTab" ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
};
|
||||
"tor-control" = buildFirefoxXpiAddon {
|
||||
pname = "tor-control";
|
||||
version = "0.1.5";
|
||||
|
@ -4,32 +4,33 @@ with python3Packages;
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "swh-auth";
|
||||
version = "0.10.0";
|
||||
pyproject = true;
|
||||
version = "0.7.2";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit version;
|
||||
pname = "swh_auth";
|
||||
hash = "sha256-J/5oFm0QSPNeEDKIYHEzSXWA/6uSOj9eu3LXYUTZjC0=";
|
||||
pname = "swh.auth";
|
||||
sha256 = "sha256-f0++AuyJggoc19kPA/7UChbFjF/EoR+FztF00r5csLo=";
|
||||
};
|
||||
|
||||
# Tests require network access.
|
||||
doCheck = false;
|
||||
|
||||
propagatedBuildInputs = [
|
||||
click
|
||||
pyyaml
|
||||
python-keycloak
|
||||
|
||||
# Requirements for Django
|
||||
django
|
||||
djangorestframework
|
||||
sentry-sdk_2
|
||||
|
||||
# Requirements for Starlette
|
||||
starlette
|
||||
httpx
|
||||
aiocache
|
||||
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 ];
|
||||
}))
|
||||
|
||||
swh-core
|
||||
];
|
||||
|
@ -3,13 +3,12 @@
|
||||
with python3Packages;
|
||||
buildPythonPackage rec {
|
||||
pname = "swh-core";
|
||||
version = "4.0.0";
|
||||
pyproject = true;
|
||||
version = "2.24.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit version;
|
||||
pname = "swh_core";
|
||||
hash = "sha256-da0Kx/pyHybW8oSIyH0/UqivGkSsvnQe7OoVY2p0glA=";
|
||||
pname = "swh.core";
|
||||
sha256 = "sha256-62xFSPxW/XvK5v1i4RA7Iwrr4V5nfxrs+PGHHC56trQ=";
|
||||
};
|
||||
|
||||
# Tests require network access.
|
||||
@ -20,7 +19,7 @@ buildPythonPackage rec {
|
||||
deprecated
|
||||
pyyaml
|
||||
python-magic
|
||||
sentry-sdk_2
|
||||
sentry-sdk
|
||||
|
||||
# swh.core.db
|
||||
psycopg2
|
||||
@ -37,7 +36,6 @@ buildPythonPackage rec {
|
||||
flask
|
||||
iso8601
|
||||
msgpack
|
||||
backports-entry-points-selectable
|
||||
|
||||
setuptools-scm
|
||||
];
|
||||
|
@ -3,13 +3,12 @@
|
||||
with python3Packages;
|
||||
buildPythonPackage rec {
|
||||
pname = "swh-fuse";
|
||||
version = "1.1.0";
|
||||
pyproject = true;
|
||||
version = "1.0.6";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit version;
|
||||
pname = "swh.fuse";
|
||||
hash = "sha256-pkTZiUm+Sun+7gBNWXJUHUXTmEIz5tjvfGcU4cUL9Xg=";
|
||||
sha256 = "sha256-b1k4XJxaSGrdqQnKnu6EAaZoEVkdZqjt0vd6k+q+H3k=";
|
||||
};
|
||||
|
||||
doCheck = false;
|
||||
|
@ -3,17 +3,18 @@
|
||||
with python3Packages;
|
||||
buildPythonPackage rec {
|
||||
pname = "swh-model";
|
||||
version = "7.1.0";
|
||||
pyproject = true;
|
||||
version = "6.7.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit version;
|
||||
pname = "swh_model";
|
||||
hash = "sha256-MdyhpKm4UzIFVMhIlAT75OMUmfDcOFZzk/dJIZASwmE=";
|
||||
pname = "swh.model";
|
||||
sha256 = "sha256-88xlN/vGXMG858+0A1Wb4EIYC9btRTopY7Ryvw/huDo=";
|
||||
};
|
||||
|
||||
doCheck = false;
|
||||
propagatedBuildInputs = [
|
||||
click
|
||||
dulwich
|
||||
deprecated
|
||||
typing-extensions
|
||||
hypothesis
|
||||
@ -21,14 +22,8 @@ buildPythonPackage rec {
|
||||
python-dateutil
|
||||
attrs
|
||||
attrs-strict
|
||||
aiohttp
|
||||
pytz
|
||||
|
||||
swh-core
|
||||
|
||||
# requirements for CLI
|
||||
click
|
||||
dulwich
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
|
@ -3,13 +3,12 @@
|
||||
with python3Packages;
|
||||
buildPythonPackage rec {
|
||||
pname = "swh-web-client";
|
||||
version = "0.9.0";
|
||||
pyproject = true;
|
||||
version = "0.6.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit version;
|
||||
pname = "swh_web_client";
|
||||
hash = "sha256-nBFbWJ7qLGtnxy2iryWfsi4n4XuxVddqBdtzPFtUQ5w=";
|
||||
pname = "swh.web.client";
|
||||
sha256 = "sha256-o1FcJh3nmGXWZABRQQUj3qgDPaHXwfazaBv8f3LENpk=";
|
||||
};
|
||||
|
||||
doCheck = false;
|
||||
|
@ -1,92 +1,63 @@
|
||||
# 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, 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
|
||||
{ stdenv, lib, SDL2, SDL2_sound, alsa-lib, cmake, fetchFromGitHub, freeglut, git
|
||||
, gtk3, dbus, libGLU, libX11, libglvnd, libsamplerate, mesa, pkg-config, sndio
|
||||
, zlib
|
||||
|
||||
, pulseaudioSupport ? stdenv.isLinux, libpulseaudio
|
||||
|
||||
, jsSupport ? true, quickjs
|
||||
|
||||
, waylandSupport ? true, wayland, wayland-scanner, libxkbcommon, libdecor
|
||||
, waylandSupport ? true, wayland, libxkbcommon, libdecor
|
||||
|
||||
, esoundSupport ? true, espeak
|
||||
|
||||
, jackSupport ? true, jack2
|
||||
|
||||
# As of 2025-03-26, it is basically required to have a very specific version of
|
||||
# mruby so no...
|
||||
, rubySupport ? false, mruby
|
||||
# Ruby support requires compiling mruby so we'll skip it for now.
|
||||
, rubySupport ? false, ruby, rake
|
||||
|
||||
, pythonSupport ? true
|
||||
|
||||
, janetSupport ? true, janet
|
||||
|
||||
# This doesn't have the appropriate system library as of nixpkgs 2025-03-26, btw.
|
||||
, wasmSupport ? true, wasm
|
||||
, pythonSupport ? true, python3
|
||||
|
||||
, withPro ? true }:
|
||||
|
||||
# TODO: Fix the timestamp in the help section.
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "tic-80";
|
||||
version = "unstable-2025-03-27";
|
||||
version = "unstable-2023-07-18";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nesbox";
|
||||
repo = "TIC-80";
|
||||
rev = "5aa6c536607a5512ce1913acf3be7be8784fd8db";
|
||||
hash = "sha256-oPubH/dPGDK/ZPY6NjycytAYY4PD2H9MbJg7jGBz3aI=";
|
||||
rev = "68b94ee596e1ac218b8b9685fd0485c7ee8d2f18";
|
||||
hash = "sha256-S3LYuRRFMZYl6dENrV21bowzo7smm+zSHXt77/83oL0=";
|
||||
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.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.optional pulseaudioSupport libpulseaudio
|
||||
++ lib.optional jackSupport jack2 ++ lib.optional esoundSupport espeak
|
||||
++ lib.optionals rubySupport [ ruby rake ]
|
||||
++ lib.optional pythonSupport python3
|
||||
++ lib.optionals (stdenv.isLinux && waylandSupport) [
|
||||
wayland
|
||||
wayland-scanner
|
||||
libxkbcommon
|
||||
libdecor
|
||||
];
|
||||
|
||||
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" ];
|
||||
cmakeFlags = lib.optional withPro "-DBUILD_PRO=ON";
|
||||
|
||||
# Export all of the TIC-80-related utilities.
|
||||
outputs = [ "out" "dev" ];
|
||||
|
Loading…
Reference in New Issue
Block a user