Compare commits

...

25 Commits

Author SHA1 Message Date
dependabot[bot]
d1a00f9794
build(deps): bump cachix/cachix-action from 15 to 16
Bumps [cachix/cachix-action](https://github.com/cachix/cachix-action) from 15 to 16.
- [Release notes](https://github.com/cachix/cachix-action/releases)
- [Commits](https://github.com/cachix/cachix-action/compare/v15...v16)

---
updated-dependencies:
- dependency-name: cachix/cachix-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-03 03:52:14 +00:00
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
foo-dogsquared
c6d6215b5a pkgs/firefox-addons: update as of 2025-03-31
Some checks failed
Build devcontainers / build-devcontainers (push) Has been cancelled
Cache outputs / build-custom-packages (push) Has been cancelled
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 project site / deploy (push) Has been cancelled
2025-03-31 01:28:48 +00:00
foo-dogsquared
ea53730389 pkgs/firefox-addons: update as of 2025-03-24
Some checks failed
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
Check flake outputs / check-outputs (push) Has been cancelled
Publish every Git push to master to FlakeHub / flakehub-publish (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-03-24 01:26:09 +00:00
f62ca9bdc8
users/foo-dogsquared: add XDG autostart entries and update several setups config
Some checks failed
Build devcontainers / build-devcontainers (push) Waiting to run
Cache outputs / build-custom-packages (push) Waiting to run
Check flake outputs / check-outputs (push) Waiting to run
Publish every Git push to master to FlakeHub / flakehub-publish (push) Waiting to run
Build personalized bootstrap ISO / build-iso (x86_64-linux) (push) Waiting to run
Build project site / build (push) Waiting to run
Build project site / deploy (push) Blocked by required conditions
Update Firefox addons / update-firefox-addons (push) Has been cancelled
2025-03-22 16:48:05 +08:00
51f2b966de
home-manager/suites/editors: update VS Code profile settings 2025-03-22 10:34:56 +08:00
ed45b34b50
flake.lock: update inputs
Flake lock file updates:

• Updated input 'emacs-overlay':
    'github:nix-community/emacs-overlay/efab809432104b6f93d3903aa47e6fbbe2939038?narHash=sha256-TV7AJaiF%2B9MLEkUbbX85EjplOpeEXXQhm2/14AVl%2BSM%3D' (2025-03-14)
  → 'github:nix-community/emacs-overlay/808ae0382b035600bc8829918bfe5ea1fa63dab4?narHash=sha256-xszUn7/EjXpq43LO9Qgn7je%2B2Z8qOfpYDGLoEjo25No%3D' (2025-03-21)
• Updated input 'emacs-overlay/nixpkgs-stable':
    'github:NixOS/nixpkgs/cdd2ef009676ac92b715ff26630164bb88fec4e0?narHash=sha256-prZ0M8vE/ghRGGZcflvxCu40ObKaB%2Bikn74/xQoNrGQ%3D' (2025-03-13)
  → 'github:NixOS/nixpkgs/b75693fb46bfaf09e662d09ec076c5a162efa9f6?narHash=sha256-GheQGRNYAhHsvPxWVOhAmg9lZKkis22UPbEHlmZMthg%3D' (2025-03-19)
• Updated input 'helix-editor':
    'github:helix-editor/helix/44bddf51b76eab8b4096448e52a33964a52f7d2e?narHash=sha256-qcfEVfhCXSzIz57PFR4AtILp%2BX0BaiF1zx3omKkxOrI%3D' (2025-03-13)
  → 'github:helix-editor/helix/1dee64f7ec304c607afeb7da8db305e6de1d064c?narHash=sha256-q135kPFx%2BBFfeAn838QfYo0pIJNYK0UFYdNa77EQMuM%3D' (2025-03-21)
• Updated input 'home-manager-unstable':
    'github:nix-community/home-manager/30cce6848a5aa41ceb5fb33185b84868cc3e9bef?narHash=sha256-Vu4DIZvgfWMzhUyxbHUrJaQb5232S5vuwxQ2sBcBVHk%3D' (2025-03-14)
  → 'github:nix-community/home-manager/da0181819479ddc034a3db9a77ed21ea3bcc0668?narHash=sha256-vQQTIl4%2Bslrcu7ftVKNBql9ngBdY0dcYGujdT7zIVp0%3D' (2025-03-20)
• Updated input 'neovim-nightly-overlay':
    'github:nix-community/neovim-nightly-overlay/6b175fb7c9d12ff039dc3e7f944256522658581d?narHash=sha256-CIKnxI//A8J3N0cUXQ8HMqwpo/1igU89H8eIOrlrNts%3D' (2025-03-14)
  → 'github:nix-community/neovim-nightly-overlay/e20681475b223c163d83c811a7fc4edf28b32c98?narHash=sha256-1CQvUAtfVQtbn2n3UhxeEz9WF0WPc/bhMQknDPgpySM%3D' (2025-03-21)
• Updated input 'neovim-nightly-overlay/git-hooks':
    'github:cachix/git-hooks.nix/b5a62751225b2f62ff3147d0a334055ebadcd5cc?narHash=sha256-srpAbmJapkaqGRE3ytf3bj4XshspVR5964OX5LfjDWc%3D' (2025-03-07)
  → 'github:cachix/git-hooks.nix/ea26a82dda75bee6783baca6894040c8e6599728?narHash=sha256-QmF0proyjXI9YyZO9GZmc7/uEu5KVwCtcdLsKSoxPAI%3D' (2025-03-18)
• Updated input 'neovim-nightly-overlay/hercules-ci-effects':
    'github:hercules-ci/hercules-ci-effects/06519cec8fb32d219006da6eacd255504a9996af?narHash=sha256-0CjCfbq0yHWexOrpO06e2WU1r5JAqR6ffy1zgM3NksI%3D' (2025-02-15)
  → 'github:hercules-ci/hercules-ci-effects/524637ef84c177661690b924bf64a1ce18072a2c?narHash=sha256-I6fG1zrfdLFcp/imGZElig0BJO3YU0QEXLgvwWoOpJ8%3D' (2025-03-15)
• Updated input 'neovim-nightly-overlay/hercules-ci-effects/flake-parts':
    'github:hercules-ci/flake-parts/32ea77a06711b758da0ad9bd6a844c5740a87abd?narHash=sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm%2BzmZ7vxbJdo%3D' (2025-02-01)
  → 'github:hercules-ci/flake-parts/f4330d22f1c5d2ba72d3d22df5597d123fdb60a9?narHash=sha256-%2Bu2UunDA4Cl5Fci3m7S643HzKmIDAe%2BfiXrLqYsR2fs%3D' (2025-03-07)
• Updated input 'neovim-nightly-overlay/neovim-src':
    'github:neovim/neovim/4f6196e91d23f17e6b25ea7356d5bbc5b87d95b6?narHash=sha256-T8iwRFgFGQyENPRm/RIIpjDxP%2BGDIwTlYuFcY1LexQ8%3D' (2025-03-13)
  → 'github:neovim/neovim/175c09bd660d0cea62288e74cea925a9b15bee55?narHash=sha256-MLlU8s/lVKHfYcl9g8Q4nOl3BVWc627fVII58qtL9d8%3D' (2025-03-19)
• Updated input 'neovim-nightly-overlay/treefmt-nix':
    'github:numtide/treefmt-nix/3d0579f5cc93436052d94b73925b48973a104204?narHash=sha256-mL1szCeIsjh6Khn3nH2cYtwO5YXG6gBiTw1A30iGeDU%3D' (2025-02-17)
  → 'github:numtide/treefmt-nix/adc195eef5da3606891cedf80c0d9ce2d3190808?narHash=sha256-XRE8hL4vKIQyVMDXykFh4ceo3KSpuJF3ts8GKwh5bIU%3D' (2025-03-19)
• Updated input 'nix-index-database':
    'github:nix-community/nix-index-database/66537fb185462ba9b07f4e6f2d54894a1b2d04ab?narHash=sha256-koZtlJRqi0/MD/AKd0KrXLA2NuBOVzlIyAJprjzpxZE%3D' (2025-03-10)
  → 'github:nix-community/nix-index-database/2cfb4e1ca32f59dd2811d7a6dd5d4d1225f0955c?narHash=sha256-pDNzMoR6m1ZSJToZQ6XDTLVSdzIzmFl1b8Pc3f7iV6Y%3D' (2025-03-17)
• Updated input 'nixos-generators':
    'github:nix-community/nixos-generators/507911df8c35939050ae324caccc7cf4ffb76565?narHash=sha256-Co2kAD2SZalOm%2B5zoxmzEVZNvZ17TyafuFsD46BwSdY%3D' (2025-03-02)
  → 'github:nix-community/nixos-generators/83900d5154d840dfae1e0367c5290f59b9dccf03?narHash=sha256-pLRjj0jTL1TloB0ptEwVF51IJJX8a17dSxg%2BgqiWb30%3D' (2025-03-17)
• Updated input 'nixos-hardware':
    'github:NixOS/nixos-hardware/e1f12151258b12c567f456d8248e4694e9390613?narHash=sha256-f0BVt1/cvA0DQ/q3rB%2BHY4g4tKksd03ZkzI4xehC2Ew%3D' (2025-03-12)
  → 'github:NixOS/nixos-hardware/daaae13dff0ecc692509a1332ff9003d9952d7a9?narHash=sha256-VFMgJkp/COvkt5dnkZB4D2szVdmF6DGm5ZdVvTUy61c%3D' (2025-03-19)
• Updated input 'nixos-unstable':
    'github:NixOS/nixpkgs/6607cf789e541e7873d40d3a8f7815ea92204f32?narHash=sha256-cPfs8qMccim2RBgtKGF%2Bx9IBCduRvd/N5F4nYpU0TVE%3D' (2025-03-13)
  → 'github:NixOS/nixpkgs/a84ebe20c6bc2ecbcfb000a50776219f48d134cc?narHash=sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ%3D' (2025-03-19)
• Updated input 'nixos-unstable-small':
    'github:NixOS/nixpkgs/01f44b8389188522fba255168c70eda093867746?narHash=sha256-NBj9G0yQ7FVqC8Pi61%2BD6Jv2EfJ9TRpHI301fgVzQn0%3D' (2025-03-13)
  → 'github:NixOS/nixpkgs/b64ec1944ea40d9f3920f938e17ed39a9978c6c7?narHash=sha256-lfOAAaX68Ed7R6Iy2nbFAkGj6B8kHBp3nqZhgZjxR5c%3D' (2025-03-20)
• Updated input 'nixos-wsl':
    'github:nix-community/NixOS-WSL/5d76001e33ee19644a598ad80e7318ab0957b122?narHash=sha256-odXRdNZGdXg1LmwlAeWL85kgy/FVHsgKlDwrvbR2BsU%3D' (2025-03-13)
  → 'github:nix-community/NixOS-WSL/96d7df91cce0d7cd30d1958fe1aefcb5f9bfced7?narHash=sha256-m7I/2UaGEFOI%2BCy0RoADBi10NZt1WD5N3q2jUwPprE4%3D' (2025-03-20)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/573c650e8a14b2faa0041645ab18aed7e60f0c9a?narHash=sha256-4thdbnP6dlbdq%2BqZWTsm4ffAwoS8Tiq1YResB%2BRP6WE%3D' (2025-03-13)
  → 'github:NixOS/nixpkgs/2a725d40de138714db4872dc7405d86457aa17ad?narHash=sha256-WWNNjCSzQCtATpCFEijm81NNG1xqlLMVbIzXAiZysbs%3D' (2025-03-19)
• Updated input 'nixvim-unstable':
    'github:nix-community/nixvim/3a3abf11700f76738d8ad9d15054ceaf182d2974?narHash=sha256-G1YTksB0CnVhpU1gEmvO3ugPS5CAmUpm5UtTIUIPnEI%3D' (2025-03-11)
  → 'github:nix-community/nixvim/d44b33a1ea1a3e584a8c93164dbe0ba2ad4f3a13?narHash=sha256-vXpu7G4aupNCPlv8kAo7Y/jocfSUwglkvNx5cR0XjBo%3D' (2025-03-20)
• Updated input 'nixvim-unstable/flake-parts':
    'github:hercules-ci/flake-parts/32ea77a06711b758da0ad9bd6a844c5740a87abd?narHash=sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm%2BzmZ7vxbJdo%3D' (2025-02-01)
  → 'github:hercules-ci/flake-parts/f4330d22f1c5d2ba72d3d22df5597d123fdb60a9?narHash=sha256-%2Bu2UunDA4Cl5Fci3m7S643HzKmIDAe%2BfiXrLqYsR2fs%3D' (2025-03-07)
• Updated input 'nixvim-unstable/nuschtosSearch':
    'github:NuschtOS/search/86e2038290859006e05ca7201425ea5b5de4aecb?narHash=sha256-4DaDrQDAIxlWhTjH6h/%2BxfG05jt3qDZrZE/7zDLQaS4%3D' (2025-02-02)
  → 'github:NuschtOS/search/2974bc5fa3441a319fba943f3ca41f7dcd1a1467?narHash=sha256-sScfYKtxp3CYv5fJcHQDvQjqBL%2BtPNQqS9yf9Putd%2Bs%3D' (2025-03-13)
• Updated input 'nur':
    'github:nix-community/NUR/9ec063aa0dc0c12433705221947e3316a8991ba3?narHash=sha256-NfObVoPh3ltaz/C9Nj8NaZ6YadtfoVnBGltWl6f%2BBQs%3D' (2025-03-14)
  → 'github:nix-community/NUR/6b5c2c6a13c89b965ed2d123b70e3e792667ed89?narHash=sha256-CZIrtAOiweXQexbHh070ddb/1HbH0ymWb7CwkVqzJRo%3D' (2025-03-21)
• Updated input 'nur/nixpkgs':
    'github:nixos/nixpkgs/6607cf789e541e7873d40d3a8f7815ea92204f32?narHash=sha256-cPfs8qMccim2RBgtKGF%2Bx9IBCduRvd/N5F4nYpU0TVE%3D' (2025-03-13)
  → 'github:nixos/nixpkgs/a84ebe20c6bc2ecbcfb000a50776219f48d134cc?narHash=sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ%3D' (2025-03-19)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/d016ce0365b87d848a57c12ffcfdc71da7a2b55f?narHash=sha256-ynOgXAyToeE1UdLNfrUn/hL7MN0OpIS2BtNdLjpjPf0%3D' (2025-03-13)
  → 'github:Mic92/sops-nix/1770be8ad89e41f1ed5a60ce628dd10877cb3609?narHash=sha256-r0aq70/3bmfjTP%2BJZs4%2BXV5SgmCtk1BLU4CQPWGtA7o%3D' (2025-03-19)
• Updated input 'wrapper-manager-fds':
    'github:foo-dogsquared/nix-module-wrapper-manager-fds/209c9c58b7d1084f0fcadf63d56564e5e91139e1?narHash=sha256-A1yAH8DQA3Knon7uvLjXGaMKXJQc56x0hcrSRXSfwbY%3D' (2025-03-03)
  → 'github:foo-dogsquared/nix-module-wrapper-manager-fds/f8bbdc93a239f0f28d8cbe73ce03810952fdad04?narHash=sha256-AJhEE9IQGy%2Be%2B2M0sgcXkUyK6jzgzb9gfNXTpr08rUA%3D' (2025-03-18)
2025-03-21 12:07:50 +08:00
874a915b7f
ci: update devcontainer job 2025-03-20 10:01:15 +08:00
48949336ff
lib: init XDG-specific subset
This is arguably more suitable for certain environment but Nix ecosystem
is already largely Unix-adjacent anyways.
2025-03-20 08:55:05 +08:00
eb4352f925
devcontainers: add tag
It's for ease of updating containers in CI.
2025-03-19 13:58:56 +08:00
ebc6ead5e3
pkgs/pop-launcher-plugin-jetbrains: 2022-08-07 -> 2024-04-04 2025-03-17 08:28:18 +08:00
35 changed files with 370 additions and 238 deletions

View File

@ -10,13 +10,9 @@ 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 --impure --print-out-paths --no-link > build_paths
nix build -f ./devcontainers --print-out-paths --no-link > build_paths
env:
NIXPKGS_ALLOW_UNFREE: "1"
- name: Deploy devcontainers to GitHub registry
@ -26,5 +22,5 @@ jobs:
for image_archive in $(< build_paths); do
CONTAINER_TAG=$(echo $image_archive | awk 'match($0, /docker-image-(\S+).tar.gz/, arr) {print arr[1]}')
skopeo copy \
"docker-archive:${image_archive}" "docker://ghcr.io/${{ github.repository }}:${CONTAINER_TAG}"
"docker-archive:${image_archive}" "docker://ghcr.io/${{ github.repository }}"
done

View File

@ -10,12 +10,8 @@ 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
uses: cachix/cachix-action@v16
if: ${{ github.ref == 'refs/heads/master' }}
with:
name: foo-dogsquared

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;
@ -113,6 +120,9 @@ in {
xdg.userDirs.extraConfig.XDG_PROJECTS_DIR =
"${config.home.homeDirectory}/Projects";
# Only enable autostart inside of NixOS systems.
xdg.autostart.enable = attrs ? nixosConfig;
# Set nixpkgs config both outside and inside of home-manager.
nixpkgs.config = import ./config/nixpkgs/config.nix;
xdg.configFile."nixpkgs/config.nix".source = ./config/nixpkgs/config.nix;

View File

@ -1,7 +1,8 @@
# WHOA! Even browsers with extensions can be declarative!
{ config, lib, pkgs, ... }@attrs:
{ config, lib, pkgs, foodogsquaredLib, ... }@attrs:
let
inherit (foodogsquaredLib.xdg) getXdgDesktop;
userCfg = config.users.foo-dogsquared;
cfg = userCfg.programs.browsers;
@ -95,7 +96,7 @@ in {
{
isDefault = true;
extensions = with pkgs.nur.repos.rycee.firefox-addons;
extensions.packages = with pkgs.nur.repos.rycee.firefox-addons;
[
aw-watcher-web
bitwarden
@ -206,9 +207,9 @@ in {
definedAliases = [ "@np" ];
};
"Bing".metaData.hidden = true;
"Duckduckgo".metaData.hidden = true;
"Google".metaData.alias = "@g";
"bing".metaData.hidden = true;
"duckduckgo".metaData.hidden = true;
"google".metaData.alias = "@g";
};
};
}
@ -263,6 +264,9 @@ in {
];
};
xdg.autostart.entries =
lib.singleton (getXdgDesktop config.programs.firefox.package "firefox");
# Configuring Bleachbit for Firefox cleaning.
services.bleachbit.cleaners = [
"firefox.backup"
@ -306,7 +310,7 @@ in {
[{ id = "egpjdkipkomnmjhjmdamaniclmdlobbo"; }];
};
in lib.foldl' enableSupportedBrowser { } supportedBrowsers // {
programs.firefox.profiles.personal.extensions =
programs.firefox.profiles.personal.extensions.packages =
with pkgs.nur.repos.rycee.firefox-addons;
[ firenvim ];
}))

View File

@ -17,7 +17,6 @@ in {
query
polars
formats
highlight
];
extraConfig = ''
$env.config = $env.config | merge deep --strategy=append {

View File

@ -1,6 +1,8 @@
{ config, lib, pkgs, ... }@attrs:
{ config, lib, pkgs, foodogsquaredLib, ... }@attrs:
let
inherit (foodogsquaredLib.xdg) getXdgDesktop;
userCfg = config.users.foo-dogsquared;
cfg = userCfg.programs.terminal-emulator;
@ -10,6 +12,31 @@ let
'';
hasNixosModuleEnable = attrs.nixosConfig.programs.wezterm.enable or false;
weztermUserDefaultDesktop = pkgs.makeDesktopItem {
name = "org.wezfurlong.wezterm";
desktopName = "WezTerm (user)";
comment = "Wez's Terminal Emulator";
keywords = [ "shell" "prompt" "command" "commandline" "cmd" ];
icon = "org.wezfurlong.wezterm";
startupWMClass = "org.wezfurlong.wezterm";
tryExec = "wezterm";
exec = "wezterm";
type = "Application";
categories = [ "System" "TerminalEmulator" "Utility" ];
};
weztermTypicalDesktop = pkgs.makeDesktopItem {
name = "wezterm-start";
desktopName = "WezTerm";
comment = "Wez's Terminal Emulator";
keywords = [ "shell" "prompt" "command" "commandline" "cmd" ];
icon = "org.wezfurlong.wezterm";
startupWMClass = "org.wezfurlong.wezterm";
tryExec = "wezterm";
exec = "wezterm start --cwd .";
type = "Application";
categories = [ "System" "TerminalEmulator" "Utility" ];
};
in {
options.users.foo-dogsquared.programs.terminal-emulator.enable =
lib.mkEnableOption "foo-dogsquared's terminal emulator setup";
@ -20,31 +47,10 @@ in {
# the user has them.
home.packages = let
inherit (pkgs) wezterm hiPrio;
weztermUserDefaultDesktop = pkgs.makeDesktopItem {
name = "org.wezfurlong.wezterm";
desktopName = "WezTerm (user)";
comment = "Wez's Terminal Emulator";
keywords = [ "shell" "prompt" "command" "commandline" "cmd" ];
icon = "org.wezfurlong.wezterm";
startupWMClass = "org.wezfurlong.wezterm";
tryExec = "wezterm";
exec = "wezterm";
type = "Application";
categories = [ "System" "TerminalEmulator" "Utility" ];
};
weztermTypicalDesktop = pkgs.makeDesktopItem {
name = "wezterm-start";
desktopName = "WezTerm";
comment = "Wez's Terminal Emulator";
keywords = [ "shell" "prompt" "command" "commandline" "cmd" ];
icon = "org.wezfurlong.wezterm";
startupWMClass = "org.wezfurlong.wezterm";
tryExec = "wezterm";
exec = "wezterm start --cwd .";
type = "Application";
categories = [ "System" "TerminalEmulator" "Utility" ];
};
in [ wezterm (hiPrio weztermUserDefaultDesktop) weztermTypicalDesktop ];
xdg.autostart.entries =
lib.singleton (getXdgDesktop weztermUserDefaultDesktop "org.wezfurlong.wezterm");
}
(lib.mkIf (!hasNixosModuleEnable) {

View File

@ -9,7 +9,7 @@ in {
config = lib.mkIf cfg.enable {
suites.editors.vscode.enable = true;
programs.vscode = {
programs.vscode.profiles.default = {
extensions = with pkgs.vscode-extensions;
[
# Additional language support.

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

@ -120,6 +120,9 @@ in {
(lib.mkIf cfg.spotify.enable {
home.packages = with pkgs; [ spotify ];
xdg.autostart.entries =
lib.singleton (foodogsquaredLib.xdg.getXdgDesktop pkgs.spotify "spotify");
sops.secrets."spotify_env" = foodogsquaredLib.sops-nix.getAsOneSecret ./secrets.bin;
state.ports.spotifyd.value =

View File

@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ config, lib, pkgs, foodogsquaredLib, ... }:
let
userCfg = config.users.foo-dogsquared;
@ -80,6 +80,9 @@ in {
"application/vnd.anki" = [ "anki.desktop" ];
};
xdg.autostart.entries =
lib.singleton (foodogsquaredLib.xdg.getXdgDesktop pkgs.zotero "zotero");
users.foo-dogsquared.programs.custom-homepage.sections.services.links =
lib.singleton {
url = "http://localhost:${
@ -87,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

@ -1,6 +1,7 @@
{ dockerTools, foodogsquaredLib, nodejs, bun, pnpm }:
foodogsquaredLib.buildDockerImage {
foodogsquaredLib.buildDockerImage rec {
name = "js-backend";
tag = name;
contents = [ nodejs bun pnpm ];
}

View File

@ -2,5 +2,6 @@
foodogsquaredLib.buildDockerImage {
name = "ruby-on-rails";
tag = "ror-${ruby.version}";
contents = [ ruby bundix mruby rails-new ];
}

View File

@ -1,7 +1,8 @@
{ dockerTools, foodogsquaredLib, rustc, cargo, rust-bindgen, rust-analyzer
, nodejs }:
foodogsquaredLib.buildDockerImage {
foodogsquaredLib.buildDockerImage rec {
name = "rust-backend";
tag = name;
contents = [ cargo rust-bindgen rust-analyzer rustc nodejs ];
}

144
flake.lock generated
View File

@ -71,11 +71,11 @@
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1741921426,
"narHash": "sha256-TV7AJaiF+9MLEkUbbX85EjplOpeEXXQhm2/14AVl+SM=",
"lastModified": 1742523104,
"narHash": "sha256-xszUn7/EjXpq43LO9Qgn7je+2Z8qOfpYDGLoEjo25No=",
"owner": "nix-community",
"repo": "emacs-overlay",
"rev": "efab809432104b6f93d3903aa47e6fbbe2939038",
"rev": "808ae0382b035600bc8829918bfe5ea1fa63dab4",
"type": "github"
},
"original": {
@ -240,11 +240,11 @@
]
},
"locked": {
"lastModified": 1738453229,
"narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=",
"lastModified": 1741352980,
"narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd",
"rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9",
"type": "github"
},
"original": {
@ -281,11 +281,11 @@
]
},
"locked": {
"lastModified": 1738453229,
"narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=",
"lastModified": 1741352980,
"narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd",
"rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9",
"type": "github"
},
"original": {
@ -379,11 +379,11 @@
]
},
"locked": {
"lastModified": 1741379162,
"narHash": "sha256-srpAbmJapkaqGRE3ytf3bj4XshspVR5964OX5LfjDWc=",
"lastModified": 1742300892,
"narHash": "sha256-QmF0proyjXI9YyZO9GZmc7/uEu5KVwCtcdLsKSoxPAI=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "b5a62751225b2f62ff3147d0a334055ebadcd5cc",
"rev": "ea26a82dda75bee6783baca6894040c8e6599728",
"type": "github"
},
"original": {
@ -468,11 +468,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1741884213,
"narHash": "sha256-qcfEVfhCXSzIz57PFR4AtILp+X0BaiF1zx3omKkxOrI=",
"lastModified": 1742522723,
"narHash": "sha256-q135kPFx+BFfeAn838QfYo0pIJNYK0UFYdNa77EQMuM=",
"owner": "helix-editor",
"repo": "helix",
"rev": "44bddf51b76eab8b4096448e52a33964a52f7d2e",
"rev": "1dee64f7ec304c607afeb7da8db305e6de1d064c",
"type": "github"
},
"original": {
@ -490,11 +490,11 @@
]
},
"locked": {
"lastModified": 1739595404,
"narHash": "sha256-0CjCfbq0yHWexOrpO06e2WU1r5JAqR6ffy1zgM3NksI=",
"lastModified": 1742014779,
"narHash": "sha256-I6fG1zrfdLFcp/imGZElig0BJO3YU0QEXLgvwWoOpJ8=",
"owner": "hercules-ci",
"repo": "hercules-ci-effects",
"rev": "06519cec8fb32d219006da6eacd255504a9996af",
"rev": "524637ef84c177661690b924bf64a1ce18072a2c",
"type": "github"
},
"original": {
@ -531,11 +531,11 @@
]
},
"locked": {
"lastModified": 1741914680,
"narHash": "sha256-Vu4DIZvgfWMzhUyxbHUrJaQb5232S5vuwxQ2sBcBVHk=",
"lastModified": 1742508854,
"narHash": "sha256-vQQTIl4+slrcu7ftVKNBql9ngBdY0dcYGujdT7zIVp0=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "30cce6848a5aa41ceb5fb33185b84868cc3e9bef",
"rev": "da0181819479ddc034a3db9a77ed21ea3bcc0668",
"type": "github"
},
"original": {
@ -585,11 +585,11 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1741911010,
"narHash": "sha256-CIKnxI//A8J3N0cUXQ8HMqwpo/1igU89H8eIOrlrNts=",
"lastModified": 1742522630,
"narHash": "sha256-1CQvUAtfVQtbn2n3UhxeEz9WF0WPc/bhMQknDPgpySM=",
"owner": "nix-community",
"repo": "neovim-nightly-overlay",
"rev": "6b175fb7c9d12ff039dc3e7f944256522658581d",
"rev": "e20681475b223c163d83c811a7fc4edf28b32c98",
"type": "github"
},
"original": {
@ -601,11 +601,11 @@
"neovim-src": {
"flake": false,
"locked": {
"lastModified": 1741907753,
"narHash": "sha256-T8iwRFgFGQyENPRm/RIIpjDxP+GDIwTlYuFcY1LexQ8=",
"lastModified": 1742426477,
"narHash": "sha256-MLlU8s/lVKHfYcl9g8Q4nOl3BVWc627fVII58qtL9d8=",
"owner": "neovim",
"repo": "neovim",
"rev": "4f6196e91d23f17e6b25ea7356d5bbc5b87d95b6",
"rev": "175c09bd660d0cea62288e74cea925a9b15bee55",
"type": "github"
},
"original": {
@ -642,11 +642,11 @@
]
},
"locked": {
"lastModified": 1741619381,
"narHash": "sha256-koZtlJRqi0/MD/AKd0KrXLA2NuBOVzlIyAJprjzpxZE=",
"lastModified": 1742174123,
"narHash": "sha256-pDNzMoR6m1ZSJToZQ6XDTLVSdzIzmFl1b8Pc3f7iV6Y=",
"owner": "nix-community",
"repo": "nix-index-database",
"rev": "66537fb185462ba9b07f4e6f2d54894a1b2d04ab",
"rev": "2cfb4e1ca32f59dd2811d7a6dd5d4d1225f0955c",
"type": "github"
},
"original": {
@ -678,11 +678,11 @@
]
},
"locked": {
"lastModified": 1740947705,
"narHash": "sha256-Co2kAD2SZalOm+5zoxmzEVZNvZ17TyafuFsD46BwSdY=",
"lastModified": 1742217219,
"narHash": "sha256-pLRjj0jTL1TloB0ptEwVF51IJJX8a17dSxg+gqiWb30=",
"owner": "nix-community",
"repo": "nixos-generators",
"rev": "507911df8c35939050ae324caccc7cf4ffb76565",
"rev": "83900d5154d840dfae1e0367c5290f59b9dccf03",
"type": "github"
},
"original": {
@ -693,11 +693,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1741792691,
"narHash": "sha256-f0BVt1/cvA0DQ/q3rB+HY4g4tKksd03ZkzI4xehC2Ew=",
"lastModified": 1742376361,
"narHash": "sha256-VFMgJkp/COvkt5dnkZB4D2szVdmF6DGm5ZdVvTUy61c=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "e1f12151258b12c567f456d8248e4694e9390613",
"rev": "daaae13dff0ecc692509a1332ff9003d9952d7a9",
"type": "github"
},
"original": {
@ -724,11 +724,11 @@
},
"nixos-unstable": {
"locked": {
"lastModified": 1741851582,
"narHash": "sha256-cPfs8qMccim2RBgtKGF+x9IBCduRvd/N5F4nYpU0TVE=",
"lastModified": 1742422364,
"narHash": "sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6607cf789e541e7873d40d3a8f7815ea92204f32",
"rev": "a84ebe20c6bc2ecbcfb000a50776219f48d134cc",
"type": "github"
},
"original": {
@ -740,11 +740,11 @@
},
"nixos-unstable-small": {
"locked": {
"lastModified": 1741874442,
"narHash": "sha256-NBj9G0yQ7FVqC8Pi61+D6Jv2EfJ9TRpHI301fgVzQn0=",
"lastModified": 1742450798,
"narHash": "sha256-lfOAAaX68Ed7R6Iy2nbFAkGj6B8kHBp3nqZhgZjxR5c=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "01f44b8389188522fba255168c70eda093867746",
"rev": "b64ec1944ea40d9f3920f938e17ed39a9978c6c7",
"type": "github"
},
"original": {
@ -762,11 +762,11 @@
]
},
"locked": {
"lastModified": 1741870048,
"narHash": "sha256-odXRdNZGdXg1LmwlAeWL85kgy/FVHsgKlDwrvbR2BsU=",
"lastModified": 1742481215,
"narHash": "sha256-m7I/2UaGEFOI+Cy0RoADBi10NZt1WD5N3q2jUwPprE4=",
"owner": "nix-community",
"repo": "NixOS-WSL",
"rev": "5d76001e33ee19644a598ad80e7318ab0957b122",
"rev": "96d7df91cce0d7cd30d1958fe1aefcb5f9bfced7",
"type": "github"
},
"original": {
@ -777,11 +777,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1741851582,
"narHash": "sha256-cPfs8qMccim2RBgtKGF+x9IBCduRvd/N5F4nYpU0TVE=",
"lastModified": 1742422364,
"narHash": "sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "6607cf789e541e7873d40d3a8f7815ea92204f32",
"rev": "a84ebe20c6bc2ecbcfb000a50776219f48d134cc",
"type": "github"
},
"original": {
@ -808,11 +808,11 @@
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1741862977,
"narHash": "sha256-prZ0M8vE/ghRGGZcflvxCu40ObKaB+ikn74/xQoNrGQ=",
"lastModified": 1742388435,
"narHash": "sha256-GheQGRNYAhHsvPxWVOhAmg9lZKkis22UPbEHlmZMthg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "cdd2ef009676ac92b715ff26630164bb88fec4e0",
"rev": "b75693fb46bfaf09e662d09ec076c5a162efa9f6",
"type": "github"
},
"original": {
@ -824,11 +824,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1741865919,
"narHash": "sha256-4thdbnP6dlbdq+qZWTsm4ffAwoS8Tiq1YResB+RP6WE=",
"lastModified": 1742395137,
"narHash": "sha256-WWNNjCSzQCtATpCFEijm81NNG1xqlLMVbIzXAiZysbs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "573c650e8a14b2faa0041645ab18aed7e60f0c9a",
"rev": "2a725d40de138714db4872dc7405d86457aa17ad",
"type": "github"
},
"original": {
@ -877,11 +877,11 @@
"nuschtosSearch": "nuschtosSearch"
},
"locked": {
"lastModified": 1741709061,
"narHash": "sha256-G1YTksB0CnVhpU1gEmvO3ugPS5CAmUpm5UtTIUIPnEI=",
"lastModified": 1742488644,
"narHash": "sha256-vXpu7G4aupNCPlv8kAo7Y/jocfSUwglkvNx5cR0XjBo=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "3a3abf11700f76738d8ad9d15054ceaf182d2974",
"rev": "d44b33a1ea1a3e584a8c93164dbe0ba2ad4f3a13",
"type": "github"
},
"original": {
@ -897,11 +897,11 @@
"treefmt-nix": "treefmt-nix_3"
},
"locked": {
"lastModified": 1741924094,
"narHash": "sha256-NfObVoPh3ltaz/C9Nj8NaZ6YadtfoVnBGltWl6f+BQs=",
"lastModified": 1742529237,
"narHash": "sha256-CZIrtAOiweXQexbHh070ddb/1HbH0ymWb7CwkVqzJRo=",
"owner": "nix-community",
"repo": "NUR",
"rev": "9ec063aa0dc0c12433705221947e3316a8991ba3",
"rev": "6b5c2c6a13c89b965ed2d123b70e3e792667ed89",
"type": "github"
},
"original": {
@ -920,11 +920,11 @@
]
},
"locked": {
"lastModified": 1738508923,
"narHash": "sha256-4DaDrQDAIxlWhTjH6h/+xfG05jt3qDZrZE/7zDLQaS4=",
"lastModified": 1741886583,
"narHash": "sha256-sScfYKtxp3CYv5fJcHQDvQjqBL+tPNQqS9yf9Putd+s=",
"owner": "NuschtOS",
"repo": "search",
"rev": "86e2038290859006e05ca7201425ea5b5de4aecb",
"rev": "2974bc5fa3441a319fba943f3ca41f7dcd1a1467",
"type": "github"
},
"original": {
@ -997,11 +997,11 @@
]
},
"locked": {
"lastModified": 1741861888,
"narHash": "sha256-ynOgXAyToeE1UdLNfrUn/hL7MN0OpIS2BtNdLjpjPf0=",
"lastModified": 1742406979,
"narHash": "sha256-r0aq70/3bmfjTP+JZs4+XV5SgmCtk1BLU4CQPWGtA7o=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "d016ce0365b87d848a57c12ffcfdc71da7a2b55f",
"rev": "1770be8ad89e41f1ed5a60ce628dd10877cb3609",
"type": "github"
},
"original": {
@ -1078,11 +1078,11 @@
]
},
"locked": {
"lastModified": 1739829690,
"narHash": "sha256-mL1szCeIsjh6Khn3nH2cYtwO5YXG6gBiTw1A30iGeDU=",
"lastModified": 1742370146,
"narHash": "sha256-XRE8hL4vKIQyVMDXykFh4ceo3KSpuJF3ts8GKwh5bIU=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "3d0579f5cc93436052d94b73925b48973a104204",
"rev": "adc195eef5da3606891cedf80c0d9ce2d3190808",
"type": "github"
},
"original": {
@ -1153,11 +1153,11 @@
},
"wrapper-manager-fds": {
"locked": {
"lastModified": 1740994401,
"narHash": "sha256-A1yAH8DQA3Knon7uvLjXGaMKXJQc56x0hcrSRXSfwbY=",
"lastModified": 1742274317,
"narHash": "sha256-AJhEE9IQGy+e+2M0sgcXkUyK6jzgzb9gfNXTpr08rUA=",
"owner": "foo-dogsquared",
"repo": "nix-module-wrapper-manager-fds",
"rev": "209c9c58b7d1084f0fcadf63d56564e5e91139e1",
"rev": "f8bbdc93a239f0f28d8cbe73ce03810952fdad04",
"type": "github"
},
"original": {

View File

@ -13,6 +13,11 @@ in pkgs.lib.makeExtensible (self:
trivial = callLib ./trivial.nix;
data = callLib ./data.nix;
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.
@ -43,6 +48,7 @@ in pkgs.lib.makeExtensible (self:
inherit (self.trivial) countAttrs filterAttrs';
inherit (self.data) importYAML renderTeraTemplate renderMustacheTemplate;
inherit (self.fetchers) fetchInternetArchive fetchUgeeDriver;
inherit (self.xdg) getXdgDesktop;
} // lib.optionalAttrs (builtins ? fetchTree) {
flake = callLib ./flake.nix;

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));
};
}

31
lib/xdg.nix Normal file
View File

@ -0,0 +1,31 @@
{ pkgs, lib, self }:
rec {
/**
Naively get the absolute path of a `.desktop` file given a derivation and a
name.
# Arguments
drv
: The derivation.
name
: The name of the `.desktop` file (without the `.desktop` extension).
# Type
```
getXdgDesktop :: Derivation -> String -> Path
```
# Example
```nix
getXdgDesktop pkgs.wezterm "org.wezfurlong.wezterm"
=> /nix/store/$HASH-wezterm-org.wezterm.wezterm.desktop
```
*/
getXdgDesktop = drv: name:
"${drv}/share/applications/${name}.desktop";
}

View File

@ -38,41 +38,44 @@ in {
(lib.mkIf cfg.vscode.enable {
programs.vscode = {
enable = true;
extensions = with pkgs.vscode-extensions; [
# All the niceties for developmenties.
ms-vscode-remote.vscode-remote-extensionpack
ms-vsliveshare.vsliveshare
tailscale.vscode-tailscale
# The other niceties.
vscode-icons-team.vscode-icons
];
# Yay! Thank you!
mutableExtensionsDir = true;
userSettings = {
# Editor configurations.
"editor.fontFamily" = "monospace";
"editor.fontSize" = 16;
"editor.cursorStyle" = "block";
"editor.minimap.renderCharacters" = false;
"workbench.iconTheme" = "vscode-icons";
"window.autoDetectColorScheme" = true;
"accessibility.dimUnfocused.enable" = true;
"accessibility.dimUnfocused.opacity" = 0.35;
profiles.default = {
userSettings = {
# Editor configurations.
"editor.fontFamily" = "monospace";
"editor.fontSize" = 16;
"editor.cursorStyle" = "block";
"editor.minimap.renderCharacters" = false;
"workbench.iconTheme" = "vscode-icons";
"window.autoDetectColorScheme" = true;
"accessibility.dimUnfocused.enable" = true;
"accessibility.dimUnfocused.opacity" = 0.35;
# Putting some conveniences.
"files.autoSave" = "off";
"update.showReleaseNotes" = false;
"extensions.autoUpdate" = "onlyEnabledExtensions";
"github.copilot.enable"."*" = false;
# Putting some conveniences.
"files.autoSave" = "off";
"update.showReleaseNotes" = false;
"extensions.autoUpdate" = "onlyEnabledExtensions";
"github.copilot.enable"."*" = false;
# Extensions settings.
"direnv.restart.automatic" = true;
"gitlens.showWhatsNewAfterUpgrade" = false;
"gitlens.showWelcomeOnInstall" = false;
"gitlens.plusFeatures.enabled" = false;
# Extensions settings.
"direnv.restart.automatic" = true;
"gitlens.showWhatsNewAfterUpgrade" = false;
"gitlens.showWelcomeOnInstall" = false;
"gitlens.plusFeatures.enabled" = false;
};
extensions = with pkgs.vscode-extensions; [
# All the niceties for developmenties.
ms-vscode-remote.vscode-remote-extensionpack
ms-vsliveshare.vsliveshare
tailscale.vscode-tailscale
# The other niceties.
vscode-icons-team.vscode-icons
];
};
};

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

@ -2,10 +2,10 @@
{
"cookies-txt" = buildFirefoxXpiAddon {
pname = "cookies-txt";
version = "0.7";
version = "0.8";
addonId = "{12cf650b-1822-40aa-bff0-996df6948878}";
url = "https://addons.mozilla.org/firefox/downloads/file/4368538/cookies_txt-0.7.xpi";
sha256 = "04ff7cf1fbebdba3c112fbd4d4ea83f90a08d8a267e63d44cca210659080930e";
url = "https://addons.mozilla.org/firefox/downloads/file/4451023/cookies_txt-0.8.xpi";
sha256 = "0cfa85e4f1defc0f0e72c4b7a26372d7890d52780e555b868ef4a3759d7bc3ec";
meta = with lib;
{
description = "Exports all cookies to a Netscape HTTP Cookie File, as used by curl, wget, and youtube-dl, among others.";
@ -204,6 +204,21 @@
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";

View File

@ -2,16 +2,17 @@
rustPlatform.buildRustPackage rec {
pname = "pop-launcher-plugin-jetbrains";
version = "2022-08-07";
version = "2024-04-04";
src = fetchFromGitHub {
owner = "oknozor";
repo = "pop-launcher-jetbrains-plugin";
rev = "9883ee1361c2de0bdd8ba4438a8e854303cdece6";
sha256 = "sha256-yvkKZTulgDqr2k9M1rEEHc52IDcqMw9UA3xe/HOLD9M";
rev = "18a3d3d32c5760ad2086380a47f684c7b12b5d68";
hash = "sha256-lBv1jwekbod3H1ANzAEKAHDNHdRb3LD2PM1LXiLErv8=";
};
cargoSha256 = "sha256-WuqRU+dkRVGQL+fb3utcuS4HZRTGkBtcnri7lqO9rZk=";
cargoHash = "sha256-d54PlaKZaDhQ6PI/J1+IOMqgC/h5XUuEkULLbSTIcUw=";
useFetchCargoVendor = true;
postInstall = ''
install -Dm644 plugin.ron -t "$out/share/pop-launcher/plugins/jetbrains"

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" ];

View File

@ -27,6 +27,7 @@ in {
trivial = callLib ./trivial.nix;
data = callLib ./data;
math = callLib ./math.nix;
xdg = callLib ./xdg.nix;
# Environment-specific subset.
home-manager = callLib ./home-manager.nix;

14
tests/lib/xdg.nix Normal file
View File

@ -0,0 +1,14 @@
{ pkgs, lib, self }:
lib.runTests {
testGetXdgDesktop = {
expr = self.xdg.getXdgDesktop pkgs.wezterm "org.wezfurlong.wezterm";
expected = "${pkgs.wezterm}/share/applications/org.wezfurlong.wezterm.desktop";
};
# This should be a naive function so it should just naively get things.
testGetXdgDesktop2 = {
expr = self.xdg.getXdgDesktop pkgs.hello "non-existing-desktop";
expected = "${pkgs.hello}/share/applications/non-existing-desktop.desktop";
};
}