mirror of
https://github.com/foo-dogsquared/nixos-config.git
synced 2025-04-25 00:19:12 +00:00
Compare commits
26 Commits
a97b9f8ffb
...
29fec6cdb6
Author | SHA1 | Date | |
---|---|---|---|
![]() |
29fec6cdb6 | ||
17d11bd8ae | |||
e04471a15c | |||
a5aeb823f3 | |||
2c066787ef | |||
6216164512 | |||
fbd5bf0a88 | |||
4e3eb7e6b7 | |||
b60d801b62 | |||
c09faac74f | |||
6fd69b1005 | |||
cb93a8b1b1 | |||
9d2a73e949 | |||
abd09c55f5 | |||
2336f1fd40 | |||
603fbeec3f | |||
fdfebf6389 | |||
93ef34b094 | |||
8fd6acecd3 | |||
c769471d65 | |||
247faec155 | |||
2e78edbd60 | |||
57b8882cb9 | |||
75bb6cac42 | |||
5ff1a1326d | |||
6588f916f3 |
@ -45,6 +45,10 @@
|
||||
autoRollback = true;
|
||||
magicRollback = true;
|
||||
};
|
||||
wrapper-manager = {
|
||||
branch = "wrapper-manager-fds";
|
||||
packages.archive-setup = { };
|
||||
};
|
||||
};
|
||||
|
||||
# The typical user in server environments.
|
||||
|
@ -30,5 +30,9 @@
|
||||
path = ../../templates/local-ruby-nix;
|
||||
description = "Local Ruby app development with ruby-nix";
|
||||
};
|
||||
fds-private-config = {
|
||||
path = ../../templates/fds-private-config;
|
||||
description = "Basic template for private Nix environment configuration that uses this flake";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -39,6 +39,7 @@ links = [
|
||||
{ url = "https://github.com", text = "GitHub" },
|
||||
{ url = "https://sourcegraph.com/search", text = "SourceGraph" },
|
||||
{ url = "https://archive.softwareheritage.org", text = "Software Heritage" },
|
||||
{ url = "https://codesearch.debian.net", text = "Debian Codesearch" },
|
||||
|
||||
{ subsection = true, text = "Cloud platforms" },
|
||||
{ url = "https://vscode.dev", text = "Online Visual Studio Code" },
|
||||
|
@ -43,6 +43,9 @@ in {
|
||||
# home-manager environment will not write to the XDG config directory.
|
||||
(lib.mkIf (config.programs.neovim.enable) {
|
||||
xdg.configFile.nvim.source = getDotfiles "nvim";
|
||||
xdg.configFile.neovide.source = getDotfiles "neovide";
|
||||
|
||||
home.packages = with pkgs; [ neovide ];
|
||||
|
||||
programs.neovim.extraPackages = with pkgs; [
|
||||
luarocks
|
||||
@ -60,5 +63,9 @@ in {
|
||||
home.file."${config.xdg.dataHome}/nushell/vendor/autoload".source =
|
||||
getDotfiles "nu/autoload";
|
||||
})
|
||||
|
||||
(lib.mkIf config.programs.helix.enable {
|
||||
xdg.configFile.helix.source = getDotfiles "helix";
|
||||
})
|
||||
]);
|
||||
}
|
||||
|
@ -63,34 +63,31 @@ in {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
|
||||
package = with pkgs;
|
||||
wrapFirefox firefox-unwrapped {
|
||||
nativeMessagingHosts = with pkgs;
|
||||
[ bukubrow tridactyl-native ]
|
||||
++ lib.optional config.programs.mpv.enable pkgs.ff2mpv;
|
||||
nativeMessagingHosts = with pkgs;
|
||||
[ bukubrow tridactyl-native ]
|
||||
++ lib.optional config.programs.mpv.enable pkgs.ff2mpv;
|
||||
|
||||
extraPolicies = {
|
||||
AppAutoUpdate = false;
|
||||
DisableAppUpdate = true;
|
||||
DisableMasterPasswordCreation = true;
|
||||
DisablePocket = true;
|
||||
DisableSetDesktopBackground = true;
|
||||
DontCheckDefaultBrowser = true;
|
||||
EnableTrackingProtection = true;
|
||||
FirefoxHome = {
|
||||
Highlights = false;
|
||||
Pocket = false;
|
||||
Snippets = false;
|
||||
SponsporedPocket = false;
|
||||
SponsporedTopSites = false;
|
||||
};
|
||||
NoDefaultBookmarks = true;
|
||||
OfferToSaveLoginsDefault = false;
|
||||
PasswordManagerEnabled = false;
|
||||
SanitizeOnShutdown = { FormData = true; };
|
||||
UseSystemPrintDialog = true;
|
||||
};
|
||||
policies = {
|
||||
AppAutoUpdate = false;
|
||||
DisableAppUpdate = true;
|
||||
DisableMasterPasswordCreation = true;
|
||||
DisablePocket = true;
|
||||
DisableSetDesktopBackground = true;
|
||||
DontCheckDefaultBrowser = true;
|
||||
EnableTrackingProtection = true;
|
||||
FirefoxHome = {
|
||||
Highlights = false;
|
||||
Pocket = false;
|
||||
Snippets = false;
|
||||
SponsporedPocket = false;
|
||||
SponsporedTopSites = false;
|
||||
};
|
||||
NoDefaultBookmarks = true;
|
||||
OfferToSaveLoginsDefault = false;
|
||||
PasswordManagerEnabled = false;
|
||||
SanitizeOnShutdown = { FormData = true; };
|
||||
UseSystemPrintDialog = true;
|
||||
};
|
||||
|
||||
profiles.personal = lib.mkMerge [
|
||||
{
|
||||
@ -165,10 +162,10 @@ in {
|
||||
search = {
|
||||
default = "Brave";
|
||||
force = true;
|
||||
order = [ "Brave" "Nix Packages" "Google" ];
|
||||
order = [ "Brave" "Nix Packages" "google" ];
|
||||
engines = {
|
||||
"Brave" = {
|
||||
urls = [{
|
||||
urls = lib.singleton {
|
||||
template = "https://search.brave.com/search";
|
||||
params = [
|
||||
{
|
||||
@ -180,7 +177,7 @@ in {
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}];
|
||||
};
|
||||
|
||||
icon =
|
||||
"${config.programs.brave.package}/share/icons/hicolor/64x64/apps/brave-browser.png";
|
||||
@ -188,7 +185,7 @@ in {
|
||||
};
|
||||
|
||||
"Nix Packages" = {
|
||||
urls = [{
|
||||
urls = lib.singleton {
|
||||
template = "https://search.nixos.org/packages";
|
||||
params = [
|
||||
{
|
||||
@ -200,7 +197,7 @@ in {
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}];
|
||||
};
|
||||
|
||||
icon =
|
||||
"${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ config, lib, ... }:
|
||||
{ config, lib, ... }@attrs:
|
||||
|
||||
let
|
||||
inherit (config.xdg) userDirs;
|
||||
@ -8,39 +8,214 @@ in {
|
||||
options.users.foo-dogsquared.programs.dconf.enable =
|
||||
lib.mkEnableOption "dconf configuration";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
dconf.settings = {
|
||||
# My GNOME Shell and programs configuration.
|
||||
"org/gnome/shell" = {
|
||||
favorite-apps = lib.optional userCfg.programs.browsers.firefox.enable
|
||||
"firefox.desktop"
|
||||
++ lib.optional userCfg.setups.desktop.enable "thunderbird.desktop"
|
||||
++ lib.optional userCfg.setups.development.enable
|
||||
"org.wezfurlong.wezterm.desktop"
|
||||
++ lib.optional userCfg.programs.doom-emacs.enable "emacs.desktop"
|
||||
++ lib.optional userCfg.programs.vs-code.enable "code.desktop";
|
||||
};
|
||||
config = lib.mkIf cfg.enable (lib.mkMerge [
|
||||
{
|
||||
dconf.settings = {
|
||||
# My GNOME Shell and programs configuration.
|
||||
"org/gnome/shell" = {
|
||||
favorite-apps = lib.optional userCfg.programs.browsers.firefox.enable
|
||||
"firefox.desktop"
|
||||
++ lib.optional userCfg.setups.desktop.enable "thunderbird.desktop"
|
||||
++ lib.optional userCfg.setups.development.enable
|
||||
"org.wezfurlong.wezterm.desktop"
|
||||
++ lib.optional userCfg.programs.doom-emacs.enable "emacs.desktop"
|
||||
++ lib.optional userCfg.programs.vs-code.enable "code.desktop";
|
||||
};
|
||||
|
||||
"org/gnome/calculator" = {
|
||||
button-mode = "basic";
|
||||
show-thousands = true;
|
||||
base = 10;
|
||||
word-size = 64;
|
||||
};
|
||||
"org/gnome/calculator" = {
|
||||
button-mode = "basic";
|
||||
show-thousands = true;
|
||||
base = 10;
|
||||
word-size = 64;
|
||||
};
|
||||
|
||||
"org/freedesktop/tracker/miner/files" = {
|
||||
index-recursive-directories = [
|
||||
# We could also use the values from home-manager but just to make GNOME Settings happy.
|
||||
"&DESKTOP"
|
||||
"&DOCUMENTS"
|
||||
"&MUSIC"
|
||||
"&PICTURES"
|
||||
"&VIDEOS"
|
||||
"&PUBLIC_SHARE"
|
||||
"org/freedesktop/tracker/miner/files" = {
|
||||
index-recursive-directories = [
|
||||
# We could also use the values from home-manager but just to make GNOME Settings happy.
|
||||
"&DESKTOP"
|
||||
"&DOCUMENTS"
|
||||
"&MUSIC"
|
||||
"&PICTURES"
|
||||
"&VIDEOS"
|
||||
"&PUBLIC_SHARE"
|
||||
|
||||
userDirs.extraConfig.XDG_PROJECTS_DIR
|
||||
];
|
||||
userDirs.extraConfig.XDG_PROJECTS_DIR
|
||||
];
|
||||
};
|
||||
|
||||
"org/gnome/epiphany".homepage-url = lib.mkIf userCfg.programs.custom-homepage.enable "file://${config.xdg.dataHome}/foodogsquared/homepage/index.html";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
# For everything else, pls refer to the "A happy GNOME" workflow module to
|
||||
# know what workspaces has been set.
|
||||
#
|
||||
# Also, this config block comes with the following assumptions:
|
||||
#
|
||||
# * ALL workspaces has been configured with an index.
|
||||
# * The preset workspace option for the workflow module has been enabled
|
||||
# and exclusively configured around that.
|
||||
# * The default list of applications from the workflow module.
|
||||
(lib.mkIf (lib.elem "a-happy-gnome" attrs.nixosConfig.workflows.enable or []) {
|
||||
dconf.settings = {
|
||||
"org/gnome/shell/extensions/paperwm" = {
|
||||
winprops =
|
||||
let
|
||||
inherit (attrs.nixosConfig.workflows.workflows.a-happy-gnome.paperwm) workspaces;
|
||||
|
||||
# A small convenience to make memorizing the index of a workspace
|
||||
# not a thing.
|
||||
wmIndexOf = name: workspaces.${name}.index.value;
|
||||
|
||||
# Another small convenience for making matches with Epiphany-made PWAs.
|
||||
mkEpiphanyWebAppMatch = attr: attr // {
|
||||
wm_class = "/org.gnome.Epiphany.WebApp_[A-Za-z0-9]+/";
|
||||
};
|
||||
|
||||
winpropRules =
|
||||
lib.optionals userCfg.setups.development.enable [
|
||||
{
|
||||
wm_class = "org.wezfurlong.wezterm";
|
||||
preferredWidth = "100%";
|
||||
spaceIndex = wmIndexOf "dev";
|
||||
}
|
||||
|
||||
# All Epiphany-created web apps with DevDocs.
|
||||
(mkEpiphanyWebAppMatch {
|
||||
title = "/.*DevDocs.*/";
|
||||
spaceIndex = wmIndexOf "dev";
|
||||
})
|
||||
|
||||
(mkEpiphanyWebAppMatch {
|
||||
title = "/.*GNOME DevDocs.*/";
|
||||
spaceIndex = wmIndexOf "dev";
|
||||
})
|
||||
]
|
||||
++ lib.optionals userCfg.setups.development.creative-coding.enable [
|
||||
{
|
||||
wm_class = "Processing";
|
||||
spaceIndex = wmIndexOf "creative";
|
||||
}
|
||||
|
||||
{
|
||||
wm_class = "scide";
|
||||
title = "SuperCollider IDE";
|
||||
spaceIndex = wmIndexOf "creative";
|
||||
}
|
||||
|
||||
{
|
||||
wm_class = "Pure Data";
|
||||
spaceIndex = wmIndexOf "creative";
|
||||
}
|
||||
|
||||
{
|
||||
wm_class = "Sonic Pi";
|
||||
spaceIndex = wmIndexOf "creative";
|
||||
}
|
||||
]
|
||||
++ lib.optionals userCfg.programs.doom-emacs.enable [{
|
||||
wm_class = "Emacs";
|
||||
spaceIndex = wmIndexOf "research";
|
||||
}]
|
||||
++ lib.optionals userCfg.setups.research.enable [
|
||||
{
|
||||
wm_class = "Zotero";
|
||||
spaceIndex = wmIndexOf "research";
|
||||
}
|
||||
|
||||
{
|
||||
wm_class = "Kiwix";
|
||||
spaceIndex = wmIndexOf "research";
|
||||
}
|
||||
]
|
||||
++ lib.optionals config.suites.desktop.audio.enable [
|
||||
{
|
||||
wm_class = "Audacity";
|
||||
spaceIndex = wmIndexOf "creative";
|
||||
}
|
||||
|
||||
{
|
||||
wm_class = "zrythm";
|
||||
spaceIndex = wmIndexOf "creative";
|
||||
}
|
||||
|
||||
{
|
||||
wm_class = "Musescore4";
|
||||
spaceIndex = wmIndexOf "creative";
|
||||
}
|
||||
]
|
||||
++ lib.optionals config.suites.desktop.audio.pipewire.enable [
|
||||
{
|
||||
wm_class = "org.pipewire.Helvum";
|
||||
spaceIndex = wmIndexOf "creative";
|
||||
}
|
||||
|
||||
{
|
||||
wm_class = "Carla2";
|
||||
spaceIndex = wmIndexOf "creative";
|
||||
}
|
||||
]
|
||||
++ lib.optionals config.suites.desktop.graphics.enable [
|
||||
{
|
||||
wm_class = "org.inkscape.Inkscape";
|
||||
spaceIndex = wmIndexOf "creative";
|
||||
}
|
||||
|
||||
{
|
||||
wm_class = "GIMP";
|
||||
spaceIndex = wmIndexOf "creative";
|
||||
}
|
||||
|
||||
{
|
||||
wm_class = "krita";
|
||||
spaceIndex = wmIndexOf "creative";
|
||||
}
|
||||
|
||||
{
|
||||
wm_class = "Pureref";
|
||||
spaceIndex = wmIndexOf "creative";
|
||||
}
|
||||
|
||||
{
|
||||
wm_class = "io.github.lainsce.Emulsion";
|
||||
spaceIndex = wmIndexOf "creative";
|
||||
}
|
||||
|
||||
(mkEpiphanyWebAppMatch {
|
||||
title = "Penpot";
|
||||
spaceIndex = wmIndexOf "creative";
|
||||
})
|
||||
]
|
||||
++ lib.optionals userCfg.programs.email.thunderbird.enable [{
|
||||
wm_class = "thunderbird";
|
||||
preferredWidth = "100%";
|
||||
spaceIndex = wmIndexOf "work";
|
||||
}]
|
||||
++ lib.optionals userCfg.programs.vs-code.enable [{
|
||||
wm_class = "Code";
|
||||
preferredWidth = "100%";
|
||||
spaceIndex = wmIndexOf "dev";
|
||||
}]
|
||||
++ lib.optionals userCfg.programs.browsers.firefox.enable [{
|
||||
wm_class = "firefox";
|
||||
spaceIndex = wmIndexOf "media";
|
||||
}]
|
||||
++ lib.optionals userCfg.programs.browsers.brave.enable [{
|
||||
wm_class = "Brave";
|
||||
spaceIndex = wmIndexOf "media";
|
||||
}]
|
||||
++ lib.optionals userCfg.programs.browsers.google-chrome.enable [{
|
||||
wm_class = "Google-chrome";
|
||||
spaceIndex = wmIndexOf "media";
|
||||
}]
|
||||
++ lib.optionals userCfg.setups.music.spotify.enable [{
|
||||
wm_class = "Spotify";
|
||||
spaceIndex = wmIndexOf "media";
|
||||
}];
|
||||
in
|
||||
lib.map lib.strings.toJSON winpropRules;
|
||||
};
|
||||
};
|
||||
})
|
||||
]);
|
||||
}
|
||||
|
@ -62,7 +62,7 @@ in {
|
||||
|
||||
programs.python = {
|
||||
enable = true;
|
||||
package = pkgs.python3;
|
||||
package = pkgs.python313;
|
||||
modules = ps: with ps; [ jupyter ];
|
||||
};
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
let userConfig = hmConfig.users.foo-dogsquared;
|
||||
in {
|
||||
extraPlugins = builtins.map (path:
|
||||
extraPlugins = lib.map (path:
|
||||
pkgs.runCommand "vim-plugin-bare" { } ''
|
||||
mkdir -p "$out"
|
||||
cp -r ${path}/* "$out"
|
||||
|
@ -96,6 +96,9 @@ in {
|
||||
# Testing out your web app #532.
|
||||
dbeaver-bin
|
||||
];
|
||||
|
||||
# Text editors galore.
|
||||
programs.helix.enable = true;
|
||||
}
|
||||
|
||||
(lib.mkIf (!config.programs.nixvim.enable or false) {
|
||||
|
@ -25,7 +25,7 @@ in {
|
||||
];
|
||||
|
||||
wrapper-manager.packages.music-setup = {
|
||||
wrappers.yt-dlp-audio = {
|
||||
wrappers.yt-dlp-music = {
|
||||
arg0 = lib.getExe' pkgs.yt-dlp "yt-dlp";
|
||||
prependArgs = [ "--config-location" ../../../config/yt-dlp/audio.conf ];
|
||||
};
|
||||
|
@ -27,13 +27,13 @@ let
|
||||
inherit name;
|
||||
inherit (value) subscriptions extraArgs;
|
||||
}) db);
|
||||
jobsList = builtins.map (category:
|
||||
jobsList = lib.map (category:
|
||||
let jobExtraArgs = lib.attrByPath [ "data" "extraArgs" ] [ ] category;
|
||||
in {
|
||||
name = category.data.name;
|
||||
value = {
|
||||
extraArgs = extraArgs ++ jobExtraArgs;
|
||||
urls = builtins.map (subscription: subscription.url)
|
||||
urls = lib.map (subscription: subscription.url)
|
||||
category.data.subscriptions;
|
||||
startAt =
|
||||
lib.elemAt days (lib.mod category.index (lib.length days));
|
||||
|
@ -103,7 +103,7 @@ in {
|
||||
};
|
||||
applySystemdAttr = secretPaths:
|
||||
lib.listToAttrs
|
||||
(builtins.map (path: lib.nameValuePair path systemdNetworkFileAttrs))
|
||||
(lib.map (path: lib.nameValuePair path systemdNetworkFileAttrs))
|
||||
secretPaths;
|
||||
in applySystemdAttr [
|
||||
"wireguard/private-key"
|
||||
|
@ -16,7 +16,7 @@ let
|
||||
mode = "repokey-blake2";
|
||||
};
|
||||
extraCreateArgs = lib.concatStringsSep " "
|
||||
(builtins.map (patternFile: "--patterns-from ${patternFile}") patterns);
|
||||
(lib.map (patternFile: "--patterns-from ${patternFile}") patterns);
|
||||
extraInitArgs = "--make-parent-dirs";
|
||||
|
||||
# We're emptying them since we're specifying them all through the patterns file.
|
||||
|
@ -92,13 +92,13 @@ in {
|
||||
inherit name;
|
||||
inherit (value) subscriptions extraArgs;
|
||||
}) db);
|
||||
jobsList = builtins.map (category:
|
||||
jobsList = lib.map (category:
|
||||
let jobExtraArgs = lib.attrByPath [ "data" "extraArgs" ] [ ] category;
|
||||
in {
|
||||
name = category.data.name;
|
||||
value = {
|
||||
extraArgs = extraArgs ++ jobExtraArgs;
|
||||
urls = builtins.map (subscription: subscription.url)
|
||||
urls = lib.map (subscription: subscription.url)
|
||||
category.data.subscriptions;
|
||||
startAt =
|
||||
lib.elemAt days (lib.mod category.index (lib.length days));
|
||||
|
@ -22,10 +22,10 @@ let
|
||||
};
|
||||
extraCreateArgs = let
|
||||
args = lib.flatten [
|
||||
(builtins.map
|
||||
(lib.map
|
||||
(patternFile: "--patterns-from ${lib.escapeShellArg patternFile}")
|
||||
patternFiles)
|
||||
(builtins.map (pattern: "--pattern ${lib.escapeShellArg pattern}")
|
||||
(lib.map (pattern: "--pattern ${lib.escapeShellArg pattern}")
|
||||
patterns)
|
||||
];
|
||||
in lib.concatStringsSep " " args;
|
||||
|
@ -88,7 +88,7 @@ in {
|
||||
# A set of bindings to be used for each jump direction.
|
||||
bindings:
|
||||
let
|
||||
mappings = builtins.map (motion:
|
||||
mappings = lib.map (motion:
|
||||
let
|
||||
inherit (motion) region jumpDirection variant;
|
||||
jumpDirection' = lib.strings.toLower jumpDirection;
|
||||
@ -164,7 +164,7 @@ in {
|
||||
binding:
|
||||
|
||||
let
|
||||
mappingsList = builtins.map (variant:
|
||||
mappingsList = lib.map (variant:
|
||||
let prefixMap' = prefixMap.${variant};
|
||||
in lib.nameValuePair "${prefixMap'.key}${binding}" {
|
||||
query = "@${query}.${variant}";
|
||||
@ -200,7 +200,7 @@ in {
|
||||
|
||||
mkQueryMappings = acc: query: bindings:
|
||||
let
|
||||
mappings = builtins.map (motion:
|
||||
mappings = lib.map (motion:
|
||||
let
|
||||
inherit (motion) jumpDirection variant;
|
||||
jumpDirection' = lib.strings.toLower jumpDirection;
|
||||
|
@ -65,7 +65,7 @@ in {
|
||||
|
||||
mkEnableServerConfig = server:
|
||||
lib.nameValuePair server { enable = true; };
|
||||
in lib.listToAttrs (builtins.map mkEnableServerConfig servers);
|
||||
in lib.listToAttrs (lib.map mkEnableServerConfig servers);
|
||||
}
|
||||
|
||||
{
|
||||
|
@ -15,4 +15,4 @@
|
||||
|
||||
# Add some metadata into sidecar files or something.
|
||||
--write-info-json
|
||||
--write-descriptions
|
||||
--write-description
|
||||
|
@ -63,7 +63,7 @@ let
|
||||
sha256 = hash;
|
||||
};
|
||||
in if version == 3 then
|
||||
builtins.mapAttrs (_: mkSource) data.pins
|
||||
lib.mapAttrs (_: mkSource) data.pins
|
||||
else
|
||||
throw "Unsupported format version ${
|
||||
toString version
|
||||
|
164
flake.lock
generated
164
flake.lock
generated
@ -50,11 +50,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1741786315,
|
||||
"narHash": "sha256-VT65AE2syHVj6v/DGB496bqBnu1PXrrzwlw07/Zpllc=",
|
||||
"lastModified": 1744145203,
|
||||
"narHash": "sha256-I2oILRiJ6G+BOSjY+0dGrTPe080L3pbKpc+gCV3Nmyk=",
|
||||
"owner": "nix-community",
|
||||
"repo": "disko",
|
||||
"rev": "0d8c6ad4a43906d14abd5c60e0ffe7b587b213de",
|
||||
"rev": "76c0a6dba345490508f36c1aa3c7ba5b6b460989",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -71,11 +71,11 @@
|
||||
"nixpkgs-stable": "nixpkgs-stable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742523104,
|
||||
"narHash": "sha256-xszUn7/EjXpq43LO9Qgn7je+2Z8qOfpYDGLoEjo25No=",
|
||||
"lastModified": 1744683403,
|
||||
"narHash": "sha256-ZphiIohrkf7bG5eKzQHhZqrpyiygbqdBrId6UgAHWOY=",
|
||||
"owner": "nix-community",
|
||||
"repo": "emacs-overlay",
|
||||
"rev": "808ae0382b035600bc8829918bfe5ea1fa63dab4",
|
||||
"rev": "d601c3de7e1932384a43585408a398ddccf3e1c6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -197,11 +197,11 @@
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1741352980,
|
||||
"narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=",
|
||||
"lastModified": 1743550720,
|
||||
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9",
|
||||
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -218,11 +218,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1741352980,
|
||||
"narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=",
|
||||
"lastModified": 1743550720,
|
||||
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9",
|
||||
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -281,11 +281,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1741352980,
|
||||
"narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=",
|
||||
"lastModified": 1743550720,
|
||||
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9",
|
||||
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -379,11 +379,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742300892,
|
||||
"narHash": "sha256-QmF0proyjXI9YyZO9GZmc7/uEu5KVwCtcdLsKSoxPAI=",
|
||||
"lastModified": 1742649964,
|
||||
"narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "ea26a82dda75bee6783baca6894040c8e6599728",
|
||||
"rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -468,11 +468,11 @@
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742522723,
|
||||
"narHash": "sha256-q135kPFx+BFfeAn838QfYo0pIJNYK0UFYdNa77EQMuM=",
|
||||
"lastModified": 1744385517,
|
||||
"narHash": "sha256-pqiSmtbquoBM3cVHELcXHl8CLT8moXVkwbtc5xd5Br0=",
|
||||
"owner": "helix-editor",
|
||||
"repo": "helix",
|
||||
"rev": "1dee64f7ec304c607afeb7da8db305e6de1d064c",
|
||||
"rev": "340934db92aea902a61b9f79b9e6f4bd15111044",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -490,11 +490,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742014779,
|
||||
"narHash": "sha256-I6fG1zrfdLFcp/imGZElig0BJO3YU0QEXLgvwWoOpJ8=",
|
||||
"lastModified": 1744624138,
|
||||
"narHash": "sha256-PWcxJN2MoWCGC73KI93di2njqrashftWJ6w/fWTvdCM=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "hercules-ci-effects",
|
||||
"rev": "524637ef84c177661690b924bf64a1ce18072a2c",
|
||||
"rev": "6eaa505af87705041ef2cf5534f5fc8fe88e94c2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -531,11 +531,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742508854,
|
||||
"narHash": "sha256-vQQTIl4+slrcu7ftVKNBql9ngBdY0dcYGujdT7zIVp0=",
|
||||
"lastModified": 1744663884,
|
||||
"narHash": "sha256-a6QGaZMDM1miK8VWzAITsEPOdmLk+xTPyJSTjVs3WhI=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "da0181819479ddc034a3db9a77ed21ea3bcc0668",
|
||||
"rev": "d5cdf55bd9f19a3debd55b6cb5d38f7831426265",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -585,11 +585,11 @@
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742522630,
|
||||
"narHash": "sha256-1CQvUAtfVQtbn2n3UhxeEz9WF0WPc/bhMQknDPgpySM=",
|
||||
"lastModified": 1744675686,
|
||||
"narHash": "sha256-633XUO9ScY38cZUpgwLo5FylImxDYZvErh54CAfQSsc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "neovim-nightly-overlay",
|
||||
"rev": "e20681475b223c163d83c811a7fc4edf28b32c98",
|
||||
"rev": "0d7c64d83bf26019292db406f1bfc62fb5f2bc3f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -601,11 +601,11 @@
|
||||
"neovim-src": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1742426477,
|
||||
"narHash": "sha256-MLlU8s/lVKHfYcl9g8Q4nOl3BVWc627fVII58qtL9d8=",
|
||||
"lastModified": 1744629547,
|
||||
"narHash": "sha256-N/1NGAhjLg68kJJpdcccMbOkHZy0YY0HKnhs6TDDWU0=",
|
||||
"owner": "neovim",
|
||||
"repo": "neovim",
|
||||
"rev": "175c09bd660d0cea62288e74cea925a9b15bee55",
|
||||
"rev": "3341ab07764e9cda95e89880da579ea3ebb7f9b7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -642,11 +642,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742174123,
|
||||
"narHash": "sha256-pDNzMoR6m1ZSJToZQ6XDTLVSdzIzmFl1b8Pc3f7iV6Y=",
|
||||
"lastModified": 1744518957,
|
||||
"narHash": "sha256-RLBSWQfTL0v+7uyskC5kP6slLK1jvIuhaAh8QvB75m4=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-index-database",
|
||||
"rev": "2cfb4e1ca32f59dd2811d7a6dd5d4d1225f0955c",
|
||||
"rev": "4fc9ea78c962904f4ea11046f3db37c62e8a02fd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -678,11 +678,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742217219,
|
||||
"narHash": "sha256-pLRjj0jTL1TloB0ptEwVF51IJJX8a17dSxg+gqiWb30=",
|
||||
"lastModified": 1742568034,
|
||||
"narHash": "sha256-QaMEhcnscfF2MqB7flZr+sLJMMYZPnvqO4NYf9B4G38=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixos-generators",
|
||||
"rev": "83900d5154d840dfae1e0367c5290f59b9dccf03",
|
||||
"rev": "42ee229088490e3777ed7d1162cb9e9d8c3dbb11",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -693,11 +693,11 @@
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"locked": {
|
||||
"lastModified": 1742376361,
|
||||
"narHash": "sha256-VFMgJkp/COvkt5dnkZB4D2szVdmF6DGm5ZdVvTUy61c=",
|
||||
"lastModified": 1744633460,
|
||||
"narHash": "sha256-fbWE4Xpw6eH0Q6in+ymNuDwTkqmFmtxcQEmtRuKDTTk=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "daaae13dff0ecc692509a1332ff9003d9952d7a9",
|
||||
"rev": "9a049b4a421076d27fee3eec664a18b2066824cb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -708,27 +708,27 @@
|
||||
},
|
||||
"nixos-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1735563628,
|
||||
"narHash": "sha256-OnSAY7XDSx7CtDoqNh8jwVwh4xNL/2HaJxGjryLWzX8=",
|
||||
"lastModified": 1744440957,
|
||||
"narHash": "sha256-FHlSkNqFmPxPJvy+6fNLaNeWnF1lZSgqVCl/eWaJRc4=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b134951a4c9f3c995fd7be05f3243f8ecd65d798",
|
||||
"rev": "26d499fc9f1d567283d5d56fcf367edd815dba1d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-24.05",
|
||||
"ref": "nixos-24.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1742422364,
|
||||
"narHash": "sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ=",
|
||||
"lastModified": 1744463964,
|
||||
"narHash": "sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR+Xhw3kr/3Xd0GPTM=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a84ebe20c6bc2ecbcfb000a50776219f48d134cc",
|
||||
"rev": "2631b0b7abcea6e640ce31cd78ea58910d31e650",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -740,11 +740,11 @@
|
||||
},
|
||||
"nixos-unstable-small": {
|
||||
"locked": {
|
||||
"lastModified": 1742450798,
|
||||
"narHash": "sha256-lfOAAaX68Ed7R6Iy2nbFAkGj6B8kHBp3nqZhgZjxR5c=",
|
||||
"lastModified": 1744646643,
|
||||
"narHash": "sha256-gswCvHOZvcHtY/5fIWYlz/VxMAIUQ6XFRZB/rxlH3OA=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b64ec1944ea40d9f3920f938e17ed39a9978c6c7",
|
||||
"rev": "a6165272f0074877f7c0c45fe6eba86d1e18e80d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -762,11 +762,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742481215,
|
||||
"narHash": "sha256-m7I/2UaGEFOI+Cy0RoADBi10NZt1WD5N3q2jUwPprE4=",
|
||||
"lastModified": 1744290088,
|
||||
"narHash": "sha256-/X9XVEl0EiyisNbF5srrxXRSVoRqdwExuqyspYqqEjQ=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NixOS-WSL",
|
||||
"rev": "96d7df91cce0d7cd30d1958fe1aefcb5f9bfced7",
|
||||
"rev": "60b4904a1390ac4c89e93d95f6ed928975e525ed",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -777,11 +777,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1742422364,
|
||||
"narHash": "sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ=",
|
||||
"lastModified": 1744463964,
|
||||
"narHash": "sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR+Xhw3kr/3Xd0GPTM=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a84ebe20c6bc2ecbcfb000a50776219f48d134cc",
|
||||
"rev": "2631b0b7abcea6e640ce31cd78ea58910d31e650",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -793,11 +793,11 @@
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1740877520,
|
||||
"narHash": "sha256-oiwv/ZK/2FhGxrCkQkB83i7GnWXPPLzoqFHpDD3uYpk=",
|
||||
"lastModified": 1743296961,
|
||||
"narHash": "sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "147dee35aab2193b174e4c0868bd80ead5ce755c",
|
||||
"rev": "e4822aea2a6d1cdd36653c134cacfd64c97ff4fa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -808,11 +808,11 @@
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1742388435,
|
||||
"narHash": "sha256-GheQGRNYAhHsvPxWVOhAmg9lZKkis22UPbEHlmZMthg=",
|
||||
"lastModified": 1744440957,
|
||||
"narHash": "sha256-FHlSkNqFmPxPJvy+6fNLaNeWnF1lZSgqVCl/eWaJRc4=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b75693fb46bfaf09e662d09ec076c5a162efa9f6",
|
||||
"rev": "26d499fc9f1d567283d5d56fcf367edd815dba1d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -824,11 +824,11 @@
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1742395137,
|
||||
"narHash": "sha256-WWNNjCSzQCtATpCFEijm81NNG1xqlLMVbIzXAiZysbs=",
|
||||
"lastModified": 1744536153,
|
||||
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "2a725d40de138714db4872dc7405d86457aa17ad",
|
||||
"rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -877,11 +877,11 @@
|
||||
"nuschtosSearch": "nuschtosSearch"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742488644,
|
||||
"narHash": "sha256-vXpu7G4aupNCPlv8kAo7Y/jocfSUwglkvNx5cR0XjBo=",
|
||||
"lastModified": 1744669903,
|
||||
"narHash": "sha256-gtfLmGx/N+BzIck9sGLIfzETxocYjVKo4gmSeH6zfaY=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"rev": "d44b33a1ea1a3e584a8c93164dbe0ba2ad4f3a13",
|
||||
"rev": "ee9655637cbf898415e09c399bc504180e246d42",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -897,11 +897,11 @@
|
||||
"treefmt-nix": "treefmt-nix_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742529237,
|
||||
"narHash": "sha256-CZIrtAOiweXQexbHh070ddb/1HbH0ymWb7CwkVqzJRo=",
|
||||
"lastModified": 1744687817,
|
||||
"narHash": "sha256-HilYogQo2HBCXHfhAr/J96BN2QgbxkHebH+IYt/tZ98=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "6b5c2c6a13c89b965ed2d123b70e3e792667ed89",
|
||||
"rev": "2fbf8d8ecbec6578df27f45ae6f726190433aa2b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -920,11 +920,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1741886583,
|
||||
"narHash": "sha256-sScfYKtxp3CYv5fJcHQDvQjqBL+tPNQqS9yf9Putd+s=",
|
||||
"lastModified": 1743683223,
|
||||
"narHash": "sha256-LdXtHFvhEC3S64dphap1pkkzwjErbW65eH1VRerCUT0=",
|
||||
"owner": "NuschtOS",
|
||||
"repo": "search",
|
||||
"rev": "2974bc5fa3441a319fba943f3ca41f7dcd1a1467",
|
||||
"rev": "56a49ffef2908dad1e9a8adef1f18802bc760962",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -997,11 +997,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742406979,
|
||||
"narHash": "sha256-r0aq70/3bmfjTP+JZs4+XV5SgmCtk1BLU4CQPWGtA7o=",
|
||||
"lastModified": 1744669848,
|
||||
"narHash": "sha256-pXyanHLUzLNd3MX9vsWG+6Z2hTU8niyphWstYEP3/GU=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "1770be8ad89e41f1ed5a60ce628dd10877cb3609",
|
||||
"rev": "61154300d945f0b147b30d24ddcafa159148026a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -1078,11 +1078,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742370146,
|
||||
"narHash": "sha256-XRE8hL4vKIQyVMDXykFh4ceo3KSpuJF3ts8GKwh5bIU=",
|
||||
"lastModified": 1743748085,
|
||||
"narHash": "sha256-uhjnlaVTWo5iD3LXics1rp9gaKgDRQj6660+gbUU3cE=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "adc195eef5da3606891cedf80c0d9ce2d3190808",
|
||||
"rev": "815e4121d6a5d504c0f96e5be2dd7f871e4fd99d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -23,7 +23,7 @@
|
||||
|
||||
# ...except we allow other configurations to use other nixpkgs branch so
|
||||
# that may not matter anyways.
|
||||
nixos-stable.url = "github:NixOS/nixpkgs/nixos-24.05";
|
||||
nixos-stable.url = "github:NixOS/nixpkgs/nixos-24.11";
|
||||
nixos-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
nixos-unstable-small.url = "github:NixOS/nixpkgs/nixos-unstable-small";
|
||||
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||
|
@ -45,7 +45,10 @@ in pkgs.lib.makeExtensible (self:
|
||||
inherit (self.builders)
|
||||
makeXDGMimeAssociationList makeXDGPortalConfiguration makeXDGDesktopEntry
|
||||
buildHugoSite buildFDSEnv buildDconfDb buildDockerImage;
|
||||
inherit (self.trivial) countAttrs filterAttrs';
|
||||
inherit (self.trivial)
|
||||
countAttrs filterAttrs' bitsToBytes SIPrefixExponent
|
||||
metricPrefixMultiplier binaryPrefixExponent binaryPrefixMultiplier
|
||||
parseBytesSizeIntoInt unitsToInt;
|
||||
inherit (self.data) importYAML renderTeraTemplate renderMustacheTemplate;
|
||||
inherit (self.fetchers) fetchInternetArchive fetchUgeeDriver;
|
||||
inherit (self.xdg) getXdgDesktop;
|
||||
|
@ -53,7 +53,7 @@ in {
|
||||
|
||||
config = lib.mkIf (config.diskoConfigs != [ ]) (let
|
||||
diskoConfigs =
|
||||
builtins.map (name: "${partsConfig.setups.configDir}/disko/${name}")
|
||||
lib.map (name: "${partsConfig.setups.configDir}/disko/${name}")
|
||||
config.diskoConfigs;
|
||||
in {
|
||||
modules = lib.singleton {
|
||||
|
@ -283,6 +283,11 @@ in {
|
||||
# setups are already done so...
|
||||
home-manager.useUserPackages = lib.mkDefault true;
|
||||
home-manager.useGlobalPkgs = lib.mkDefault true;
|
||||
|
||||
# !!! Welp, this is basically incomplete since we also have
|
||||
# to consider user-specific specialArgs which is not set.
|
||||
home-manager.extraSpecialArgs =
|
||||
partsConfig.setups.home-manager.sharedSpecialArgs;
|
||||
})
|
||||
|
||||
(lib.mkIf hasHomeManagerUsers ({ lib, pkgs, ... }: {
|
||||
@ -358,7 +363,7 @@ in {
|
||||
# A quick data structure we can pass through multiple build pipelines.
|
||||
pureHomeManagerConfigs = let
|
||||
generatePureConfigs = username: metadata:
|
||||
lib.listToAttrs (builtins.map (system:
|
||||
lib.listToAttrs (lib.map (system:
|
||||
let
|
||||
nixpkgs = inputs.${metadata.nixpkgs.branch};
|
||||
|
||||
|
@ -283,7 +283,7 @@ in {
|
||||
cfg.configs;
|
||||
|
||||
generatePureConfigs = hostname: metadata:
|
||||
lib.listToAttrs (builtins.map (system:
|
||||
lib.listToAttrs (lib.map (system:
|
||||
let
|
||||
nixpkgs = inputs.${metadata.nixpkgs.branch};
|
||||
|
||||
@ -344,7 +344,7 @@ in {
|
||||
extraModules = cfg.sharedModules ++ metadata.modules;
|
||||
});
|
||||
|
||||
images = builtins.map buildImage metadata.formats;
|
||||
images = lib.map buildImage metadata.formats;
|
||||
in lib.listToAttrs images;
|
||||
in lib.concatMapAttrs generateImages validImages;
|
||||
};
|
||||
|
@ -254,7 +254,7 @@ in {
|
||||
modules = cfg.sharedModules ++ cfg.standaloneConfigModules
|
||||
++ metadata.modules ++ [{ package = neovimPackage; }];
|
||||
});
|
||||
nixvimConfigs = builtins.map mkNixvimConfig' metadata.components;
|
||||
nixvimConfigs = lib.map mkNixvimConfig' metadata.components;
|
||||
in lib.listToAttrs nixvimConfigs;
|
||||
in lib.concatMapAttrs generateNixvimConfigs validConfigs;
|
||||
in {
|
||||
|
@ -4,21 +4,11 @@ let
|
||||
partsConfig = config;
|
||||
cfg = config.setups.wrapper-manager;
|
||||
|
||||
mkWrapperManagerPackage = { pkgs, src, modules ? [ ], specialArgs ? { }, }:
|
||||
let wrapperManagerEntrypoint = import src { };
|
||||
in wrapperManagerEntrypoint.lib.build { inherit pkgs modules specialArgs; };
|
||||
mkWrapperManagerPackage = { pkgs, wrapperManagerBranch ? "wrapper-manager-fds", modules ? [ ], specialArgs ? { }, }:
|
||||
inputs.${wrapperManagerBranch}.lib.build { inherit pkgs modules specialArgs; };
|
||||
|
||||
wrapperManagerIntegrationModule = { name, config, lib, ... }: {
|
||||
options.wrapper-manager = {
|
||||
src = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
default = ../../../subprojects/wrapper-manager-fds;
|
||||
description = ''
|
||||
The path of the wrapper-manager-fds to be used to properly initialize
|
||||
to the environment.
|
||||
'';
|
||||
};
|
||||
|
||||
additionalModules = lib.mkOption {
|
||||
type = with lib.types; listOf deferredModule;
|
||||
default = [ ];
|
||||
@ -28,6 +18,15 @@ let
|
||||
'';
|
||||
};
|
||||
|
||||
branch = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "wrapper-manager-fds";
|
||||
example = "wrapper-manager-fds-stable";
|
||||
description = ''
|
||||
Name of the flake input containing the wrapper-manager-fds dependency.
|
||||
'';
|
||||
};
|
||||
|
||||
packages = lib.mkOption {
|
||||
type = with lib.types;
|
||||
attrsOf (submodule {
|
||||
@ -137,7 +136,15 @@ in {
|
||||
({ config, lib, ... }: {
|
||||
config = lib.mkIf (config.wrapper-manager.packages != { }) {
|
||||
modules =
|
||||
[ (import config.wrapper-manager.src { }).nixosModules.default ];
|
||||
[
|
||||
inputs.${config.wrapper-manager.branch}.nixosModules.default
|
||||
|
||||
{
|
||||
# Welp, it's not complete since each package will not its
|
||||
# package-specific specialArgs.
|
||||
wrapper-manager.extraSpecialArgs = cfg.sharedSpecialArgs;
|
||||
}
|
||||
];
|
||||
};
|
||||
})
|
||||
]);
|
||||
@ -150,7 +157,15 @@ in {
|
||||
({ config, lib, ... }: {
|
||||
config = lib.mkIf (config.wrapper-manager.packages != { }) {
|
||||
modules =
|
||||
[ (import config.wrapper-manager.src { }).homeModules.default ];
|
||||
[
|
||||
inputs.${config.wrapper-manager.branch}.homeModules.default
|
||||
|
||||
{
|
||||
# Welp, it's not complete since each package will not its
|
||||
# package-specific specialArgs.
|
||||
wrapper-manager.extraSpecialArgs = cfg.sharedSpecialArgs;
|
||||
}
|
||||
];
|
||||
};
|
||||
})
|
||||
]);
|
||||
@ -181,7 +196,7 @@ in {
|
||||
in mkWrapperManagerPackage {
|
||||
inherit pkgs;
|
||||
inherit (metadata) specialArgs;
|
||||
inherit (metadata.wrapper-manager) src;
|
||||
wrapperManagerBranch = metadata.wrapper-manager.branch;
|
||||
modules = cfg.sharedModules ++ cfg.standaloneModules
|
||||
++ metadata.modules;
|
||||
}) validWrapperManagerConfigs;
|
||||
|
@ -6,7 +6,6 @@
|
||||
./programs/borgmatic.nix
|
||||
./programs/diceware.nix
|
||||
./programs/nushell.nix
|
||||
./programs/sesh.nix
|
||||
./programs/python.nix
|
||||
./services/archivebox.nix
|
||||
./services/borgbackup.nix
|
||||
|
@ -7,7 +7,7 @@ let
|
||||
# `$out/share/pop-launcher`.
|
||||
pluginsDir = pkgs.symlinkJoin {
|
||||
name = "pop-launcher-plugins-system";
|
||||
paths = builtins.map (p: "${p}/share/pop-launcher") cfg.plugins;
|
||||
paths = lib.map (p: "${p}/share/pop-launcher") cfg.plugins;
|
||||
};
|
||||
in {
|
||||
options.programs.pop-launcher = {
|
||||
|
@ -1,62 +0,0 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.programs.sesh;
|
||||
|
||||
settingsFormat = pkgs.formats.toml { };
|
||||
in
|
||||
{
|
||||
# TODO: Add tmux integrations.
|
||||
options.programs.sesh = {
|
||||
enable = lib.mkEnableOption "sesh, a smart session manager";
|
||||
|
||||
package = lib.mkPackageOption pkgs "sesh" { };
|
||||
|
||||
settings = lib.mkOption {
|
||||
type = settingsFormat.type;
|
||||
default = { };
|
||||
description = ''
|
||||
Program settings to be generated at
|
||||
{file}`$XDG_CONFIG_HOME/sesh/sesh.toml`.
|
||||
'';
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
default_session = {
|
||||
startup_command = "nvim -c ':Telescope find_files'";
|
||||
preview_command = "eza --all --git --icons --color=always {}";
|
||||
};
|
||||
|
||||
session = [
|
||||
{
|
||||
name = "Downloads";
|
||||
path = config.xdg.userDirs.downloads;
|
||||
startup_command = "ls";
|
||||
}
|
||||
|
||||
{
|
||||
name = "tmux config";
|
||||
path = "~/c/dotfiles/tmux_config";
|
||||
startup_command = "nvim tmux.conf";
|
||||
preview_command = "bat --color=always ~/c/dotfiles/.config/tmux/tmux.conf";
|
||||
}
|
||||
];
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable (lib.mkMerge [
|
||||
{
|
||||
warnings = lib.optionals (!config.programs.zoxide.enable || !config.programs.fzf.enable) ''
|
||||
You haven't enabled Zoxide nor fzf which is recommended to use alongside sesh.
|
||||
'';
|
||||
|
||||
home.packages = [ cfg.package ];
|
||||
}
|
||||
|
||||
(lib.mkIf (cfg.settings != { }) {
|
||||
xdg.configFile."sesh/sesh.toml".source =
|
||||
settingsFormat.generate "sesh-user-settings" cfg.settings;
|
||||
})
|
||||
]);
|
||||
}
|
@ -11,3 +11,8 @@ show-hidden = true
|
||||
|
||||
[re/sonny/Junction]
|
||||
show-app-names = true
|
||||
|
||||
[org/gnome/epiphany/web]
|
||||
remember-passwords = true
|
||||
enable-user-css = true
|
||||
enable-user-js = true
|
||||
|
@ -29,6 +29,7 @@ clock-menu-position = 1
|
||||
notification-banner-position = 2
|
||||
ripple-box = false
|
||||
window-demands-attention-focus = true
|
||||
invert-calendar-column-items = true
|
||||
workspace-wrap-around = false
|
||||
|
||||
# The lovely tool if you're a mouse handler.
|
||||
@ -85,18 +86,21 @@ folder-order-position = 'start'
|
||||
cycle-height-steps = [0.38195, 0.5, 0.61804, 0.75]
|
||||
cycle-width-steps = [0.38195, 0.5, 0.61804, 0.75]
|
||||
disable-topbar-styling = true
|
||||
edge-preview-click-enable = false
|
||||
horizontal-margin = 0
|
||||
override-hot-corner = false
|
||||
restore-workspaces-only-on-primary = true
|
||||
show-focus-mode-icon = false
|
||||
show-window-position-bar = false
|
||||
show-workspace-indicator = false
|
||||
show-workspace-indicator = true
|
||||
show-open-position-icon = false
|
||||
use-default-background = true
|
||||
vertical-margin = 0
|
||||
vertical-margin-bottom = 0
|
||||
window-gap = 10
|
||||
|
||||
# The shortcuts are closely tied to my shell keybindings to make it easier to follow.
|
||||
# The shortcuts are closely tied to my shell keybindings to make it easier to
|
||||
# follow.
|
||||
[org/gnome/shell/extensions/paperwm/keybindings]
|
||||
new-window = ['<Super>Return']
|
||||
close-window = ['<Super>q', '<Alt>F4']
|
||||
|
@ -8,7 +8,41 @@ let
|
||||
[
|
||||
# The application menu.
|
||||
junction
|
||||
|
||||
# The application launcher for your one-handed keyboard handling (the
|
||||
# other is in the mouse, if you're thinking something else).
|
||||
kando
|
||||
(makeDesktopItem {
|
||||
name = "kando";
|
||||
desktopName = "Kando";
|
||||
destination = "/etc/xdg/autostart";
|
||||
exec = "${lib.getExe kando} --gapplication-service";
|
||||
icon = "kando";
|
||||
genericName = "Pie Menu";
|
||||
})
|
||||
|
||||
# Valent...ines 'tis season to share... phone data or something.
|
||||
valent
|
||||
];
|
||||
|
||||
# All of the shell extensions plus their required extensions.
|
||||
shellExtensions' = cfg.shellExtensions ++ (with pkgs.gnomeExtensions; [
|
||||
valent
|
||||
kando-integration
|
||||
paperwm
|
||||
]);
|
||||
|
||||
workspaceSubmodule = { name, ... }: {
|
||||
freeformType = with lib.types; attrsOf anything;
|
||||
options = {
|
||||
name = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = name;
|
||||
description = "The formal name of the workspace.";
|
||||
example = "Software development";
|
||||
};
|
||||
};
|
||||
};
|
||||
in {
|
||||
options.workflows.enable =
|
||||
lib.mkOption { type = with lib.types; listOf (enum [ workflowName ]); };
|
||||
@ -17,9 +51,9 @@ in {
|
||||
shellExtensions = lib.mkOption {
|
||||
type = with lib.types; listOf package;
|
||||
description = ''
|
||||
A list of GNOME Shell extensions to be included. Take note the package
|
||||
should contain `passthru.extensionUuid` to be used for enabling the
|
||||
extensions.
|
||||
A list of extra GNOME Shell extensions to be included. Take note the
|
||||
package should contain `passthru.extensionUuid` to be used for enabling
|
||||
the extensions.
|
||||
'';
|
||||
default = with pkgs.gnomeExtensions; [
|
||||
alphabetical-app-grid
|
||||
@ -28,15 +62,11 @@ in {
|
||||
burn-my-windows
|
||||
caffeine
|
||||
fly-pie
|
||||
gsconnect
|
||||
just-perfection
|
||||
kando-integration
|
||||
kimpanel
|
||||
light-style
|
||||
paperwm
|
||||
runcat
|
||||
windownavigator
|
||||
valent
|
||||
];
|
||||
example = lib.literalExpression ''
|
||||
with pkgs.gnomeExtensions; [
|
||||
@ -64,16 +94,17 @@ in {
|
||||
gnome-frog # Graphical OCR with Tesseract that I always wanted.
|
||||
gnome-solanum # Cute little matodor timers.
|
||||
dconf-editor # A saner version of Windows registry.
|
||||
kando
|
||||
gnome-boxes # Virtual machines, son.
|
||||
mission-center # It is your duty to monitor your system.
|
||||
polari # Your gateway to one of the most hidden and cobweb-ridden parts of the internet. ;)
|
||||
gradience # Make it rain!
|
||||
handbrake # Take a break from those custom ffmpeg conversion scripts.
|
||||
shortwave # Yer' humble internet radio.
|
||||
symbolic-preview # Them symbols... it's important.
|
||||
gtranslator # It's not a Google translator app, I'll tell you that.
|
||||
tangram # Your social media manager, probably.
|
||||
ymuse # Simple MPD client.
|
||||
valent # ...ines 'tis season to share... phone data or something.
|
||||
ymuse # I muse with a simple MPD client.
|
||||
gnome-secrets # Feel the secureness, O Keeper of Secrets.
|
||||
|
||||
gnome-backgrounds # Default backgrounds.
|
||||
|
||||
@ -85,6 +116,7 @@ in {
|
||||
nautilus-annotations
|
||||
nautilus-open-any-terminal
|
||||
|
||||
# Extra background images.
|
||||
fedora-backgrounds.f38
|
||||
fedora-backgrounds.f37
|
||||
];
|
||||
@ -111,7 +143,7 @@ in {
|
||||
"app.drey.Dialect"
|
||||
"com.belmoussaoui.Authenticator"
|
||||
];
|
||||
apply = builtins.map (x: "${x}.desktop");
|
||||
apply = lib.map (x: "${x}.desktop");
|
||||
};
|
||||
|
||||
disableNotifications = lib.mkOption {
|
||||
@ -131,6 +163,69 @@ in {
|
||||
"thunderbird"
|
||||
];
|
||||
};
|
||||
|
||||
paperwm = {
|
||||
workspaces = lib.mkOption {
|
||||
type = with lib.types; attrsOf (submodule workspaceSubmodule);
|
||||
default = { };
|
||||
description = ''
|
||||
A set of workspaces and their properties for PaperWM.
|
||||
'';
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
media = {
|
||||
name = "Media";
|
||||
index = lib.gvariant.mkInt32 0;
|
||||
color = "rgb(98,160,234)";
|
||||
};
|
||||
|
||||
dev = {
|
||||
name = "Software dev't";
|
||||
index = lib.gvariant.mkInt32 1;
|
||||
color = "#99c1f1";
|
||||
};
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
enablePresetWorkspaces = lib.mkEnableOption "preset workspace options for PaperWM" // {
|
||||
default = true;
|
||||
};
|
||||
|
||||
enableStaticWorkspace = lib.mkEnableOption "static workspaces configuration for PaperWM";
|
||||
|
||||
winprops = lib.mkOption {
|
||||
type = let
|
||||
inherit (lib.types) listOf;
|
||||
settingsFormat = pkgs.formats.json { };
|
||||
in with lib.types; listOf (settingsFormat.type);
|
||||
description = ''
|
||||
A list of default winprops settings for PaperWM.
|
||||
'';
|
||||
default = [ ];
|
||||
example = lib.literalExpression ''
|
||||
[
|
||||
{
|
||||
wm_class = "Firefox";
|
||||
preferredWidth = "100%";
|
||||
spaceIndex = 0;
|
||||
}
|
||||
|
||||
{
|
||||
wm_class = "org.wezfurlong.wezterm";
|
||||
preferredWidth = "100%";
|
||||
spaceIndex = 1;
|
||||
}
|
||||
|
||||
{
|
||||
wm_class = "Spotify";
|
||||
title = "Spotify Premium";
|
||||
spaceIndex = 0;
|
||||
}
|
||||
]
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf (lib.elem workflowName config.workflows.enable) {
|
||||
@ -140,6 +235,39 @@ in {
|
||||
desktopManager.gnome.enable = true;
|
||||
};
|
||||
|
||||
workflows.workflows.a-happy-gnome.paperwm.workspaces =
|
||||
lib.mkIf cfg.paperwm.enablePresetWorkspaces {
|
||||
media = {
|
||||
name = "Media";
|
||||
index = lib.gvariant.mkInt32 0;
|
||||
color = "#99c1f1"; # GNOME Blue 1
|
||||
};
|
||||
|
||||
research = {
|
||||
name = "Research";
|
||||
index = lib.gvariant.mkInt32 1;
|
||||
color = "#613583"; # GNOME Purple 5
|
||||
};
|
||||
|
||||
creative = {
|
||||
name = "Creative work";
|
||||
index = lib.gvariant.mkInt32 2;
|
||||
color = "#f8e45c"; # GNOME Yellow 2
|
||||
};
|
||||
|
||||
dev = {
|
||||
name = "Software dev't";
|
||||
index = lib.gvariant.mkInt32 3;
|
||||
color = "#1c71d8"; # GNOME Blue 4
|
||||
};
|
||||
|
||||
work = {
|
||||
name = "Work";
|
||||
index = lib.gvariant.mkInt32 4;
|
||||
color = "#ff7800"; # GNOME Orange 3
|
||||
};
|
||||
};
|
||||
|
||||
# All GNOME-related additional options.
|
||||
services.gnome = {
|
||||
core-os-services.enable = true;
|
||||
@ -153,12 +281,6 @@ in {
|
||||
# It makes Nix store directory read/write so no...
|
||||
services.packagekit.enable = false;
|
||||
|
||||
# Since we're using KDE Connect, we'll have to use gsconnect.
|
||||
programs.kdeconnect = {
|
||||
enable = true;
|
||||
package = pkgs.gnomeExtensions.gsconnect;
|
||||
};
|
||||
|
||||
# Bring all of the dconf keyfiles in there.
|
||||
programs.dconf = {
|
||||
enable = true;
|
||||
@ -176,14 +298,14 @@ in {
|
||||
};
|
||||
"org/gnome/shell" = {
|
||||
enabled-extensions =
|
||||
builtins.map (p: p.extensionUuid) cfg.shellExtensions;
|
||||
lib.map (p: p.extensionUuid) shellExtensions';
|
||||
};
|
||||
}
|
||||
|
||||
# Disable all of the messenger's notification (only the annoying
|
||||
# ones).
|
||||
(lib.pipe cfg.disableNotifications [
|
||||
(builtins.map (app:
|
||||
(lib.map (app:
|
||||
lib.nameValuePair
|
||||
"org/gnome/desktop/notifications/application/${app}" {
|
||||
show-banners = false;
|
||||
@ -191,10 +313,40 @@ in {
|
||||
|
||||
lib.listToAttrs
|
||||
])
|
||||
|
||||
(lib.mkIf (cfg.paperwm.winprops != [ ]) {
|
||||
"org/gnome/shell/extensions/paperwm".winprops =
|
||||
lib.map lib.strings.toJSON cfg.winprops;
|
||||
})
|
||||
|
||||
(lib.mkIf (cfg.paperwm.workspaces != { }) (
|
||||
let
|
||||
mkWorkspaceConfig = name: value:
|
||||
lib.nameValuePair "org/gnome/shell/extensions/paperwm/workspaces/${name}" value;
|
||||
|
||||
workspaces = lib.attrNames cfg.paperwm.workspaces;
|
||||
in
|
||||
{
|
||||
"org/gnome/shell/extensions/paperwm/workspaces".list = workspaces;
|
||||
}
|
||||
// lib.mapAttrs' mkWorkspaceConfig cfg.paperwm.workspaces
|
||||
))
|
||||
|
||||
(lib.mkIf cfg.paperwm.enableStaticWorkspace {
|
||||
"org/gnome/mutter/dynamic-workspaces" = false;
|
||||
|
||||
"org/gnome/desktop/wm/preferences/num-workspaces" =
|
||||
let
|
||||
workspaces = lib.attrNames cfg.paperwm.workspaces;
|
||||
in
|
||||
lib.gvariant.mkInt32 (lib.length workspaces);
|
||||
})
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
xdg.autostart.enable = true;
|
||||
|
||||
xdg.mime = {
|
||||
enable = true;
|
||||
desktops.gnome.defaultApplications = {
|
||||
@ -210,7 +362,7 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = requiredApps ++ cfg.shellExtensions
|
||||
environment.systemPackages = requiredApps ++ shellExtensions'
|
||||
++ cfg.extraApps;
|
||||
};
|
||||
}
|
||||
|
@ -158,7 +158,7 @@ in {
|
||||
requiredComponents =
|
||||
let
|
||||
gsdComponents =
|
||||
builtins.map
|
||||
lib.map
|
||||
(gsdc: "org.gnome.SettingsDaemon.''${gsdc}")
|
||||
[
|
||||
"A11ySettings"
|
||||
@ -175,7 +175,7 @@ in {
|
||||
|
||||
systemd.targetUnit = {
|
||||
requires = [ "org.gnome.Shell.target" ];
|
||||
wants = builtins.map (c: "''${c}.target") (lib.lists.remove "org.gnome.Shell" sessionCfg.requiredComponents);
|
||||
wants = lib.map (c: "''${c}.target") (lib.lists.remove "org.gnome.Shell" sessionCfg.requiredComponents);
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -67,7 +67,7 @@ in {
|
||||
default = [ config.fullName ];
|
||||
defaultText = "[ <session>.fullName ]";
|
||||
apply = names:
|
||||
builtins.map (name:
|
||||
lib.map (name:
|
||||
if (lib.elem name validDesktopNames) || (lib.hasPrefix "X-" name) then
|
||||
name
|
||||
else
|
||||
@ -222,7 +222,7 @@ in {
|
||||
systemd.targetUnit = {
|
||||
overrideStrategy = lib.mkForce "asDropin";
|
||||
wants = lib.mkDefault
|
||||
(builtins.map (c: "${c}.target") config.requiredComponents);
|
||||
(lib.map (c: "${c}.target") config.requiredComponents);
|
||||
};
|
||||
|
||||
settings."GNOME Session" = {
|
||||
|
@ -7,7 +7,7 @@ let
|
||||
# `$out/share/pop-launcher`.
|
||||
pluginsDir = pkgs.symlinkJoin {
|
||||
name = "pop-launcher-plugins-system";
|
||||
paths = builtins.map (p: "${p}/share/pop-launcher") cfg.plugins;
|
||||
paths = lib.map (p: "${p}/share/pop-launcher") cfg.plugins;
|
||||
};
|
||||
in {
|
||||
options.programs.pop-launcher = {
|
||||
|
@ -70,7 +70,7 @@ in {
|
||||
default = [ config.fullName ];
|
||||
defaultText = "[ <session>.fullName ]";
|
||||
apply = names:
|
||||
builtins.map (name:
|
||||
lib.map (name:
|
||||
if (lib.elem name validDesktopNames) || (lib.hasPrefix "X-" name) then
|
||||
name
|
||||
else
|
||||
|
@ -110,8 +110,8 @@ in {
|
||||
config.extraArgs = let inherit (config) policies;
|
||||
in lib.optionals (policies.level != null)
|
||||
[ "--${policies.level}=${name}" ]
|
||||
++ builtins.map (rule: "--call=${name}=${rule}") policies.call
|
||||
++ builtins.map (rule: "--broadcast=${name}=${rule}") policies.broadcast;
|
||||
++ lib.map (rule: "--call=${name}=${rule}") policies.call
|
||||
++ lib.map (rule: "--broadcast=${name}=${rule}") policies.broadcast;
|
||||
};
|
||||
|
||||
bubblewrapModule = { config, lib, pkgs, name, ... }:
|
||||
|
@ -235,13 +235,13 @@ in {
|
||||
(lib.mkIf (submoduleCfg.sharedNixPaths != [ ]) {
|
||||
wraparound.bubblewrap.extraArgs =
|
||||
let closurePaths = getClosurePaths submoduleCfg.sharedNixPaths;
|
||||
in builtins.map (p: "--ro-bind ${p} ${p}") closurePaths;
|
||||
in lib.map (p: "--ro-bind ${p} ${p}") closurePaths;
|
||||
})
|
||||
|
||||
(lib.mkIf submoduleCfg.dbus.enable {
|
||||
wraparound.bubblewrap.dbus.filter.bwrapArgs =
|
||||
let closurePaths = getClosurePaths submoduleCfg.sharedNixPaths;
|
||||
in builtins.map (p: "--ro-bind ${p} ${p}") closurePaths;
|
||||
in lib.map (p: "--ro-bind ${p} ${p}") closurePaths;
|
||||
})
|
||||
]);
|
||||
};
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "fastn";
|
||||
version = "0.4.99";
|
||||
version = "0.4.100";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fastn-stack";
|
||||
repo = finalAttrs.pname;
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-oomlLE0lha1b9N7CvQKsvlvcLZ8+f5aWjTWqzzgBDUk=";
|
||||
hash = "sha256-4tON3VXFUs8gSRKmWk9eOwuP43DhMzchnve5ZpVpSbg=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-6WXhxHDqlPJLBgG2VkEQgMV58s6MiAAhQkLQOPBtqpo=";
|
||||
cargoHash = "sha256-HfzWaE5/j5IGz+n3EsQh8iYhKWZV1d40UKKMy2yY6D4=";
|
||||
cargoBuildFeatures = [ "edition2024" ];
|
||||
useFetchCargoVendor = true;
|
||||
|
||||
|
@ -3,6 +3,8 @@
|
||||
with pkgs; {
|
||||
cloud = callPackage ./cloud.nix { };
|
||||
creatives = callPackage ./creatives.nix { };
|
||||
dotnet_8 = callPackage ./dotnet.nix { dotnet-sdk = dotnet-sdk_8; dotnet-runtime = dotnet-runtime_8; };
|
||||
dotnet_9 = callPackage ./dotnet.nix { dotnet-sdk = dotnet-sdk_9; dotnet-runtime = dotnet-runtime_9; };
|
||||
flatpak = callPackage ./flatpak.nix { };
|
||||
gnu = callPackage ./gnu.nix { };
|
||||
gnome = callPackage ./gnome.nix { };
|
||||
|
10
shells/dotnet.nix
Normal file
10
shells/dotnet.nix
Normal file
@ -0,0 +1,10 @@
|
||||
{ lib, dotnet-runtime, dotnet-sdk, mkShell }:
|
||||
|
||||
mkShell {
|
||||
packages = [
|
||||
dotnet-runtime
|
||||
dotnet-sdk
|
||||
];
|
||||
|
||||
inputsFrom = [ dotnet-sdk ];
|
||||
}
|
13
templates/fds-private-config/configs/flake-parts/default.nix
Normal file
13
templates/fds-private-config/configs/flake-parts/default.nix
Normal file
@ -0,0 +1,13 @@
|
||||
{ lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
# Add all of the environment configurations here or split them up into
|
||||
# individual modules, whichever you prefer.
|
||||
setups.nixos.configs = { };
|
||||
|
||||
setups.home-manager.configs = { };
|
||||
|
||||
setups.wrapper-manager.configs = { };
|
||||
|
||||
setups.nixvim.configs = { };
|
||||
}
|
43
templates/fds-private-config/flake.nix
Normal file
43
templates/fds-private-config/flake.nix
Normal file
@ -0,0 +1,43 @@
|
||||
{
|
||||
description = "foodogsquared's private repo";
|
||||
|
||||
nixConfig = {
|
||||
extra-substituters =
|
||||
"https://nix-community.cachix.org https://foo-dogsquared.cachix.org";
|
||||
extra-trusted-public-keys =
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs= foo-dogsquared.cachix.org-1:/2fmqn/gLGvCs5EDeQmqwtus02TUmGy0ZlAEXqRE70E=";
|
||||
commit-lockfile-summary = "flake.lock: update inputs";
|
||||
};
|
||||
|
||||
inputs = {
|
||||
nixpkgs.follows = "nixpkgs-unstable";
|
||||
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-24.11";
|
||||
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||
|
||||
home-manager.follows = "home-manager-unstable";
|
||||
home-manager-stable.url = "github:nix-community/home-manager/release-24.05";
|
||||
home-manager-stable.inputs.nixpkgs.follows = "nixpkgs";
|
||||
home-manager-unstable.url = "github:nix-community/home-manager";
|
||||
home-manager-unstable.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
# My custom modules.
|
||||
fds-modules.url = "github:foo-dogsquared/nixos-config";
|
||||
|
||||
# Make a default.nix compatible stuff. Take note, we're giving this a
|
||||
# unique suffix since there are other flake inputs that uses the same flake
|
||||
# and we want our `default.nix` to refer to our version.
|
||||
flake-compat-fds.url =
|
||||
"https://flakehub.com/f/edolstra/flake-compat/1.tar.gz";
|
||||
};
|
||||
|
||||
outputs = inputs:
|
||||
inputs.flake-parts.lib.mkFlake { inherit inputs; } {
|
||||
systems = [ "x86_64-linux" "aarch64-linux" ];
|
||||
|
||||
imports = [
|
||||
inputs.fds-modules.flakeModules.default
|
||||
inputs.fds-modules.flakeModules.baseSetupsConfig
|
||||
./configs/flake-parts
|
||||
];
|
||||
};
|
||||
};
|
Loading…
Reference in New Issue
Block a user