Compare commits
10 commits
2d1925d0c5
...
67fa717ca2
Author | SHA1 | Date | |
---|---|---|---|
67fa717ca2 | |||
3e711ad998 | |||
cf42ef54d8 | |||
f25ca7a488 | |||
a04fca65d8 | |||
e34e0cae22 | |||
418fc173e6 | |||
1ace6186cf | |||
b012eb8a6a | |||
2388205a24 |
25 changed files with 215 additions and 374 deletions
desktop
flake.lockflake.nixhome
hosts
overlays.nixoverlays
pkgs
scripts
services
system
|
@ -1,10 +1,8 @@
|
|||
{ inputs, lib, ... }:
|
||||
{ pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
imports = [ inputs.nixos-cosmic.nixosModules.default ];
|
||||
services.desktopManager.cosmic.enable = true;
|
||||
|
||||
# TODO at the moment COSMIC cannot be used alongside Gnome
|
||||
# https://github.com/lilyinstarlight/nixos-cosmic/issues/17
|
||||
specialisation = {
|
||||
cosmic.configuration = {
|
||||
services.xserver.displayManager.gdm.enable = lib.mkForce false;
|
||||
|
|
95
flake.lock
generated
95
flake.lock
generated
|
@ -155,22 +155,6 @@
|
|||
}
|
||||
},
|
||||
"flake-compat_3": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1746162366,
|
||||
"narHash": "sha256-5SSSZ/oQkwfcAz/o/6TlejlVGqeK08wyREBQ5qFFPhM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f158086a2ecdbb138cd0429410e44994f1b7e4b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_4": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
|
@ -294,16 +278,16 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1747331121,
|
||||
"narHash": "sha256-3MmiUN/jOHBHQUnjqzg6qKArc17j2OS6jisEppDY4g8=",
|
||||
"lastModified": 1747556831,
|
||||
"narHash": "sha256-Qb84nbYFFk0DzFeqVoHltS2RodAYY5/HZQKE8WnBDsc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "1eec32f0efe3b830927989767a9e6ece0d82d608",
|
||||
"rev": "d0bbd221482c2713cccb80220f3c9d16a6e20a33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-24.11",
|
||||
"ref": "release-25.05",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
|
@ -346,29 +330,6 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-cosmic": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_3",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": "nixpkgs-stable",
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1747566515,
|
||||
"narHash": "sha256-mBT3EypUn1HZ5iRGDmZQPtVNYxQxnkIsasggSCndYjw=",
|
||||
"owner": "lilyinstarlight",
|
||||
"repo": "nixos-cosmic",
|
||||
"rev": "93f3add95306179d15f8a6b1cfc87bfdc1702a33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "lilyinstarlight",
|
||||
"repo": "nixos-cosmic",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"locked": {
|
||||
"lastModified": 1747129300,
|
||||
|
@ -386,32 +347,16 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1747335874,
|
||||
"narHash": "sha256-IKKIXTSYJMmUtE+Kav5Rob8SgLPnfnq4Qu8LyT4gdqQ=",
|
||||
"lastModified": 1747428706,
|
||||
"narHash": "sha256-XVds9FkRrY59xRNNq14FNsFGqDiexXX/mlHcX4hPyyk=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "ba8b70ee098bc5654c459d6a95dfc498b91ff858",
|
||||
"rev": "2e1496bf8652ff4af4e4d4737277f71e4a4f5cb2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-24.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1747335874,
|
||||
"narHash": "sha256-IKKIXTSYJMmUtE+Kav5Rob8SgLPnfnq4Qu8LyT4gdqQ=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "ba8b70ee098bc5654c459d6a95dfc498b91ff858",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-24.11",
|
||||
"ref": "nixos-25.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
|
@ -472,7 +417,7 @@
|
|||
},
|
||||
"pre-commit-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_4",
|
||||
"flake-compat": "flake-compat_3",
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
|
@ -502,7 +447,6 @@
|
|||
"flake-utils": "flake-utils",
|
||||
"home-manager": "home-manager_2",
|
||||
"matrix-appservices": "matrix-appservices",
|
||||
"nixos-cosmic": "nixos-cosmic",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
|
@ -511,27 +455,6 @@
|
|||
"pre-commit-hooks": "pre-commit-hooks"
|
||||
}
|
||||
},
|
||||
"rust-overlay": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixos-cosmic",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1747535902,
|
||||
"narHash": "sha256-rKWBtLcqQeu8PpfKIBn1ORXS2udSH/MwnQFwfSpFOLg=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "b7a99615d26b82c39b73ccc9026545c3f3403b71",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
|
|
30
flake.nix
30
flake.nix
|
@ -4,18 +4,16 @@ rec {
|
|||
nixConfig = {
|
||||
extra-substituters = [
|
||||
"https://nix-community.cachix.org"
|
||||
"https://cosmic.cachix.org/"
|
||||
"https://felschr.cachix.org"
|
||||
];
|
||||
extra-trusted-public-keys = [
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
"cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE="
|
||||
"felschr.cachix.org-1:raomy5XA2tsVkBoG6wo70ARIn+V24IXhWaSe3QZo12A="
|
||||
];
|
||||
};
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
|
||||
|
||||
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
|
||||
|
@ -29,7 +27,7 @@ rec {
|
|||
flake-utils.url = "github:numtide/flake-utils";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-24.11";
|
||||
url = "github:nix-community/home-manager/release-25.05";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
|
@ -69,11 +67,6 @@ rec {
|
|||
flake = false;
|
||||
};
|
||||
|
||||
nixos-cosmic = {
|
||||
url = "github:lilyinstarlight/nixos-cosmic";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
openwrt-imagebuilder = {
|
||||
url = "github:astro/nix-openwrt-imagebuilder";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
@ -82,12 +75,7 @@ rec {
|
|||
};
|
||||
|
||||
outputs =
|
||||
{
|
||||
self,
|
||||
nixpkgs,
|
||||
nixpkgs-unstable,
|
||||
...
|
||||
}@inputs:
|
||||
inputs:
|
||||
inputs.flake-parts.lib.mkFlake { inherit inputs; } {
|
||||
systems = [
|
||||
"x86_64-linux"
|
||||
|
@ -98,7 +86,7 @@ rec {
|
|||
./lib/flake-module.nix
|
||||
./hosts/flake-module.nix
|
||||
./home/flake-module.nix
|
||||
./overlays.nix
|
||||
./overlays/flake-module.nix
|
||||
];
|
||||
flake = {
|
||||
inherit nixConfig;
|
||||
|
@ -117,11 +105,6 @@ rec {
|
|||
...
|
||||
}:
|
||||
{
|
||||
_module.args.pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
|
||||
devShells.default = pkgs.mkShell { inherit (config.checks.pre-commit) shellHook; };
|
||||
|
||||
checks = {
|
||||
|
@ -129,7 +112,10 @@ rec {
|
|||
src = ./.;
|
||||
hooks = {
|
||||
nixfmt-rfc-style.enable = true;
|
||||
shellcheck.enable = true;
|
||||
shellcheck = {
|
||||
enable = true;
|
||||
excludes = [ ".envrc" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -65,15 +65,16 @@ in
|
|||
private = {
|
||||
id = 0;
|
||||
extraConfig = sharedExtraConfig;
|
||||
extensions = commonExtensions;
|
||||
extensions.packages = commonExtensions;
|
||||
};
|
||||
work = {
|
||||
id = 1;
|
||||
extraConfig = sharedExtraConfig;
|
||||
extensions =
|
||||
extensions.packages =
|
||||
commonExtensions
|
||||
++ (with firefox-addons; [
|
||||
bitwarden
|
||||
# dashlane
|
||||
# bitwarden
|
||||
react-devtools
|
||||
reduxdevtools
|
||||
]);
|
||||
|
|
|
@ -50,124 +50,145 @@ let
|
|||
commonSearch = {
|
||||
force = true;
|
||||
# TODO defaults don't work
|
||||
default = "Qwant";
|
||||
privateDefault = "Qwant";
|
||||
default = "qwant";
|
||||
privateDefault = "qwant";
|
||||
order = [
|
||||
"Qwant"
|
||||
"Ecosia"
|
||||
"DuckDuckGo"
|
||||
"Startpage"
|
||||
"qwant"
|
||||
"ecosia"
|
||||
"ddg"
|
||||
"startpage"
|
||||
"kagi"
|
||||
];
|
||||
engines = {
|
||||
# builtin
|
||||
"Startpage".metaData.alias = "@s";
|
||||
"DuckDuckGo".metaData.alias = "@d";
|
||||
startpage.metaData.alias = "@s";
|
||||
ddg.metaData.alias = "@d";
|
||||
|
||||
# extra
|
||||
"Qwant" = {
|
||||
qwant = {
|
||||
name = "Qwant";
|
||||
urls = [ { template = "https://www.qwant.com/?q={searchTerms}"; } ];
|
||||
iconURL = "https://www.qwant.com/favicon.ico";
|
||||
iconMapObj."16" = "https://www.qwant.com/favicon.ico";
|
||||
definedAliases = [ "@q" ];
|
||||
};
|
||||
"Ecosia" = {
|
||||
ecosia = {
|
||||
name = "Ecosia";
|
||||
urls = [ { template = "https://www.ecosia.org/search?q={searchTerms}"; } ];
|
||||
iconURL = "https://www.ecosia.org/favicon.ico";
|
||||
iconMapObj."16" = "https://www.ecosia.org/favicon.ico";
|
||||
definedAliases = [ "@e" ];
|
||||
};
|
||||
"kagi" = {
|
||||
kagi = {
|
||||
name = "Kagi";
|
||||
urls = [ { template = "https://kagi.com/search?q={searchTerms}"; } ];
|
||||
iconURL = "https://kagi.com/favicon.ico";
|
||||
iconMapObj."16" = "https://kagi.com/favicon.ico";
|
||||
definedAliases = [ "@k" ];
|
||||
};
|
||||
"GitHub" = {
|
||||
github = {
|
||||
name = "GitHub";
|
||||
urls = [ { template = "https://github.com/search?q={searchTerms}"; } ];
|
||||
iconURL = "https://github.com/favicon.ico";
|
||||
iconMapObj."16" = "https://github.com/favicon.ico";
|
||||
definedAliases = [ "@gh" ];
|
||||
};
|
||||
"GitLab" = {
|
||||
gitlab = {
|
||||
name = "GitLab";
|
||||
urls = [ { template = "https://gitlab.com/search?search={searchTerms}"; } ];
|
||||
iconURL = "https://gitlab.com/favicon.ico";
|
||||
iconMapObj."16" = "https://gitlab.com/favicon.ico";
|
||||
definedAliases = [ "@gl" ];
|
||||
};
|
||||
"Codeberg" = {
|
||||
codeberg = {
|
||||
name = "Codeberg";
|
||||
urls = [ { template = "https://codeberg.org/explore/repos?q={searchTerms}"; } ];
|
||||
iconURL = "https://codeberg.org/favicon.ico";
|
||||
iconMapObj."16" = "https://codeberg.org/favicon.ico";
|
||||
definedAliases = [ "@cb" ];
|
||||
};
|
||||
"Nix Packages" = {
|
||||
nix-packages = {
|
||||
name = "Nix Packages";
|
||||
urls = [ { template = "https://search.nixos.org/packages?query={searchTerms}"; } ];
|
||||
icon = "''${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = [ "@np" ];
|
||||
};
|
||||
"NixOS Options" = {
|
||||
nixos-options = {
|
||||
name = "NixOS Options";
|
||||
urls = [ { template = "https://search.nixos.org/options?query={searchTerms}"; } ];
|
||||
icon = "''${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = [ "@no" ];
|
||||
};
|
||||
"Nix Flakes: Packages" = {
|
||||
nix-flakes-packages = {
|
||||
name = "Nix Flakes: Packages";
|
||||
urls = [ { template = "https://search.nixos.org/flakes?type=packages&query={searchTerms}"; } ];
|
||||
icon = "''${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = [ "@nfp" ];
|
||||
};
|
||||
"Nix Flakes: Options" = {
|
||||
nix-flakes-options = {
|
||||
name = "Nix Flakes: Options";
|
||||
urls = [ { template = "https://search.nixos.org/flakes?type=options&query={searchTerms}"; } ];
|
||||
icon = "''${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = [ "@nfo" ];
|
||||
};
|
||||
"NixOS Wiki" = {
|
||||
nixos-wiki = {
|
||||
name = "NixOS Wiki";
|
||||
urls = [ { template = "https://wiki.nixos.org/w/index.php?search={searchTerms}"; } ];
|
||||
icon = "''${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = [ "@nw" ];
|
||||
};
|
||||
"Crates.io" = {
|
||||
crates-io = {
|
||||
name = "Crates.io";
|
||||
urls = [ { template = "https://crates.io/search?q={searchTerms}"; } ];
|
||||
iconURL = "https://crates.io/favicon.ico";
|
||||
iconMapObj."16" = "https://crates.io/favicon.ico";
|
||||
definedAliases = [ "@rc" ];
|
||||
};
|
||||
"Docs.rs" = {
|
||||
docs-rs = {
|
||||
name = "Docs.rs";
|
||||
urls = [ { template = "https://docs.rs/releases/search?query={searchTerms}"; } ];
|
||||
iconURL = "https://docs.rs/favicon.ico";
|
||||
iconMapObj."16" = "https://docs.rs/favicon.ico";
|
||||
definedAliases = [ "@rd" ];
|
||||
};
|
||||
"Rust Book" = {
|
||||
rust-book = {
|
||||
name = "Rust Book";
|
||||
urls = [ { template = "https://doc.rust-lang.org/book/?search={searchTerms}"; } ];
|
||||
iconURL = "https://doc.rust-lang.org/book/favicon.svg";
|
||||
iconMapObj."16" = "https://doc.rust-lang.org/book/favicon.svg";
|
||||
definedAliases = [ "@rb" ];
|
||||
};
|
||||
"Rust std" = {
|
||||
rust-std = {
|
||||
name = "Rust std";
|
||||
urls = [ { template = "https://doc.rust-lang.org/stable/std/?search={searchTerms}"; } ];
|
||||
iconURL = "https://www.rust-lang.org/static/images/favicon.svg";
|
||||
iconMapObj."16" = "https://www.rust-lang.org/static/images/favicon.svg";
|
||||
definedAliases = [ "@rs" ];
|
||||
};
|
||||
"npm" = {
|
||||
npm = {
|
||||
name = "npm";
|
||||
urls = [ { template = "https://www.npmjs.com/search?q={searchTerms}"; } ];
|
||||
iconURL = "https://static-production.npmjs.com/da3ab40fb0861d15c83854c29f5f2962.png";
|
||||
iconMapObj."16" = "https://static-production.npmjs.com/da3ab40fb0861d15c83854c29f5f2962.png";
|
||||
definedAliases = [ "@npm" ];
|
||||
};
|
||||
"PyPI" = {
|
||||
pypi = {
|
||||
name = "PyPI";
|
||||
urls = [ { template = "https://pypi.org/search/?q={searchTerms}"; } ];
|
||||
iconURL = "https://pypi.org/favicon.ico";
|
||||
iconMapObj."16" = "https://pypi.org/favicon.ico";
|
||||
definedAliases = [ "@pypi" ];
|
||||
};
|
||||
"Stack Overflow" = {
|
||||
stack-overflow = {
|
||||
name = "Stack Overflow";
|
||||
urls = [ { template = "https://stackoverflow.com/search?q={searchTerms}"; } ];
|
||||
iconURL = "https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico";
|
||||
iconMapObj."16" = "https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico";
|
||||
definedAliases = [ "@so" ];
|
||||
};
|
||||
"Wikipedia" = {
|
||||
wikipedia = {
|
||||
name = "Wikipedia";
|
||||
urls = [ { template = "https://en.wikipedia.org/wiki/{searchTerms}"; } ];
|
||||
iconURL = "https://en.wikipedia.org/favicon.ico";
|
||||
iconMapObj."16" = "https://en.wikipedia.org/favicon.ico";
|
||||
definedAliases = [ "@w" ];
|
||||
};
|
||||
"Wolfram Alpha" = {
|
||||
wolfram-alpha = {
|
||||
name = "Wolfram Alpha";
|
||||
urls = [ { template = "https://www.wolframalpha.com/input?i={searchTerms}"; } ];
|
||||
iconURL = "https://www.wolframalpha.com/_next/static/images/favicon_1zbE9hjk.ico";
|
||||
iconMapObj."16" = "https://www.wolframalpha.com/_next/static/images/favicon_1zbE9hjk.ico";
|
||||
definedAliases = [ "@wa" ];
|
||||
};
|
||||
"Reddit" = {
|
||||
reddit = {
|
||||
name = "Reddit";
|
||||
urls = [ { template = "https://www.reddit.com/search/?q={searchTerms}"; } ];
|
||||
iconURL = "https://www.reddit.com/favicon.ico";
|
||||
iconMapObj."16" = "https://www.reddit.com/favicon.ico";
|
||||
definedAliases = [ "@r" ];
|
||||
};
|
||||
};
|
||||
|
@ -191,13 +212,12 @@ in
|
|||
id = 0;
|
||||
settings = commonSettings;
|
||||
search = commonSearch;
|
||||
extensions = commonExtensions;
|
||||
extensions.packages = commonExtensions;
|
||||
};
|
||||
work = {
|
||||
id = 1;
|
||||
settings = commonSettings;
|
||||
search = commonSearch;
|
||||
extensions =
|
||||
extensions.packages =
|
||||
commonExtensions
|
||||
++ (with firefox-addons; [
|
||||
bitwarden
|
||||
|
|
|
@ -26,7 +26,7 @@ let
|
|||
pdf = [ "re.sonny.Junction.desktop" ] ++ browsers;
|
||||
ebook = [ "com.github.johnfactotum.Foliate.desktop" ];
|
||||
magnet = [ "transmission-gtk.desktop" ];
|
||||
signal = [ "signal-desktop.desktop" ];
|
||||
signal = [ "signal.desktop" ];
|
||||
};
|
||||
|
||||
mimeMap = {
|
||||
|
@ -89,7 +89,7 @@ let
|
|||
pdf = [ "application/pdf" ];
|
||||
ebook = [ "application/epub+zip" ];
|
||||
magnet = [ "x-scheme-handler/magnet" ];
|
||||
signal = [ "signal-desktop.desktop" ];
|
||||
signal = [ "signal.desktop" ];
|
||||
};
|
||||
|
||||
associations =
|
||||
|
|
|
@ -26,9 +26,9 @@
|
|||
sshKeys = [ "3C48489F3B0FBB44E72180D4B1D7541C201C9987" ];
|
||||
defaultCacheTtl = 600;
|
||||
defaultCacheTtlSsh = 600;
|
||||
pinentryPackage = pkgs.pinentry-curses;
|
||||
pinentry.package = pkgs.pinentry-curses;
|
||||
};
|
||||
programs.zsh.initExtra = ''
|
||||
programs.zsh.initContent = ''
|
||||
export SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/gnupg/S.gpg-agent.ssh
|
||||
'';
|
||||
|
||||
|
@ -38,11 +38,5 @@
|
|||
|
||||
programs.git.defaultProfile = "private";
|
||||
|
||||
xdg.configFile."nixpkgs/config.nix".text = ''
|
||||
{
|
||||
allowUnfree = true;
|
||||
}
|
||||
'';
|
||||
|
||||
home.stateVersion = "24.11";
|
||||
home.stateVersion = "25.05";
|
||||
}
|
||||
|
|
|
@ -28,9 +28,9 @@ with pkgs;
|
|||
sshKeys = [ "8A6213DCDAF86BD3A63549FCFDF71B2C92DAE02C" ];
|
||||
defaultCacheTtl = 600;
|
||||
defaultCacheTtlSsh = 600;
|
||||
pinentryPackage = pkgs.pinentry-gnome3;
|
||||
pinentry.package = pkgs.pinentry-gnome3;
|
||||
};
|
||||
programs.zsh.initExtra = ''
|
||||
programs.zsh.initContent = ''
|
||||
export SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/gnupg/S.gpg-agent.ssh
|
||||
'';
|
||||
|
||||
|
@ -40,12 +40,6 @@ with pkgs;
|
|||
defaultProfile = "work";
|
||||
};
|
||||
|
||||
xdg.configFile."nixpkgs/config.nix".text = ''
|
||||
{
|
||||
allowUnfree = true;
|
||||
}
|
||||
'';
|
||||
|
||||
home.packages = with pkgs; [
|
||||
fh
|
||||
|
||||
|
@ -75,5 +69,5 @@ with pkgs;
|
|||
emblem
|
||||
];
|
||||
|
||||
home.stateVersion = "24.11";
|
||||
home.stateVersion = "25.05";
|
||||
}
|
||||
|
|
|
@ -28,9 +28,9 @@
|
|||
];
|
||||
defaultCacheTtl = 600;
|
||||
defaultCacheTtlSsh = 600;
|
||||
pinentryPackage = pkgs.pinentry-gnome3;
|
||||
pinentry.package = pkgs.pinentry-gnome3;
|
||||
};
|
||||
programs.zsh.initExtra = ''
|
||||
programs.zsh.initContent = ''
|
||||
export SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/gnupg/S.gpg-agent.ssh
|
||||
'';
|
||||
|
||||
|
@ -38,12 +38,6 @@
|
|||
|
||||
programs.git.defaultProfile = "private";
|
||||
|
||||
xdg.configFile."nixpkgs/config.nix".text = ''
|
||||
{
|
||||
allowUnfree = true;
|
||||
}
|
||||
'';
|
||||
|
||||
home.packages = with pkgs; [
|
||||
# system
|
||||
gparted
|
||||
|
@ -56,9 +50,6 @@
|
|||
tabbed
|
||||
curtail
|
||||
|
||||
# work
|
||||
teams-for-linux
|
||||
|
||||
# dev & admin
|
||||
pods
|
||||
# gaphor
|
||||
|
@ -82,11 +73,10 @@
|
|||
raider
|
||||
gnome-obfuscate
|
||||
yubikey-manager
|
||||
yubikey-manager-qt
|
||||
# yubioath-flutter # TODO conflicts with fluffychat
|
||||
yubioath-flutter
|
||||
magic-wormhole-rs
|
||||
warp
|
||||
# onionshare-gui
|
||||
localsend
|
||||
onionshare-gui
|
||||
transmission_4-gtk
|
||||
unstable.qbittorrent
|
||||
fragments
|
||||
|
@ -100,5 +90,5 @@
|
|||
emblem
|
||||
];
|
||||
|
||||
home.stateVersion = "24.11";
|
||||
home.stateVersion = "25.05";
|
||||
}
|
||||
|
|
|
@ -1,24 +1,38 @@
|
|||
{
|
||||
self,
|
||||
inputs,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
createHomeConfig =
|
||||
name: args:
|
||||
inputs.home-manager.lib.homeManagerConfiguration (
|
||||
{
|
||||
inherit pkgs;
|
||||
extraSpecialArgs = { inherit inputs; };
|
||||
}
|
||||
// args
|
||||
);
|
||||
mkHomeConfiguration =
|
||||
{
|
||||
user,
|
||||
system,
|
||||
modules,
|
||||
}:
|
||||
inputs.home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = self.pkgsFor system;
|
||||
extraSpecialArgs = { inherit inputs; };
|
||||
|
||||
modules =
|
||||
(with self.homeModules; [ nixpkgs ])
|
||||
++ [
|
||||
{
|
||||
home.username = user;
|
||||
home.homeDirectory = "/home/${user}";
|
||||
}
|
||||
]
|
||||
++ modules;
|
||||
};
|
||||
in
|
||||
{
|
||||
imports = [ inputs.home-manager.flakeModules.home-manager ];
|
||||
|
||||
flake = {
|
||||
homeModules = {
|
||||
nixpkgs = import ./modules/nixpkgs.nix;
|
||||
git = import ./modules/git.nix;
|
||||
firefox = import ./modules/firefox/firefox.nix;
|
||||
tor-browser = import ./modules/firefox/tor-browser.nix;
|
||||
|
@ -30,26 +44,31 @@ in
|
|||
felschr-work = import ./felschr-work.nix;
|
||||
};
|
||||
homeConfigurations = {
|
||||
felschr = createHomeConfig {
|
||||
felschr = mkHomeConfiguration {
|
||||
user = "felschr";
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
self.homeModules.git
|
||||
self.homeModules.felschr
|
||||
];
|
||||
};
|
||||
felschr-server = createHomeConfig {
|
||||
felschr-server = mkHomeConfiguration {
|
||||
user = "felschr";
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
self.homeModules.git
|
||||
self.homeModules.felschr-server
|
||||
];
|
||||
};
|
||||
felschr-work = createHomeConfig {
|
||||
felschr-work = mkHomeConfiguration {
|
||||
user = "felschr";
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
self.homeModules.git
|
||||
self.homeModules.felschr-work
|
||||
];
|
||||
};
|
||||
};
|
||||
# HINT alias for deprecated output
|
||||
homeManagerModules = self.homeModules;
|
||||
homeManagerModules = lib.warn "`homeManagerModules` is deprecated. Use `homeModules` instead." self.homeModules;
|
||||
};
|
||||
}
|
||||
|
|
11
home/modules/nixpkgs.nix
Normal file
11
home/modules/nixpkgs.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
_:
|
||||
|
||||
{
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
xdg.configFile."nixpkgs/config.nix".text = ''
|
||||
{
|
||||
allowUnfree = true;
|
||||
}
|
||||
'';
|
||||
}
|
|
@ -4,6 +4,7 @@
|
|||
programs.zellij.enable = true;
|
||||
programs.zellij.package = pkgs.unstable.zellij;
|
||||
programs.zellij.enableZshIntegration = true;
|
||||
programs.zellij.exitShellOnExit = true;
|
||||
programs.zellij.settings = {
|
||||
default_layout = "compact"; # or default
|
||||
default_mode = "normal";
|
||||
|
@ -17,8 +18,4 @@
|
|||
strider.path = "strider";
|
||||
};
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
ZELLIJ_AUTO_EXIT = "true";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -29,7 +29,7 @@ in
|
|||
file = "share/zsh-history-substring-search/zsh-history-substring-search.zsh";
|
||||
}
|
||||
];
|
||||
initExtra = ''
|
||||
initContent = ''
|
||||
export KEYTIMEOUT=1
|
||||
|
||||
ZSH_AUTOSUGGEST_USE_ASYNC=1
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
home.packages = with pkgs; [
|
||||
signal-desktop
|
||||
(makeAutostartItem {
|
||||
name = "signal-desktop";
|
||||
name = "signal";
|
||||
package = signal-desktop;
|
||||
prependExtraArgs = [ "--start-in-tray" ];
|
||||
})
|
||||
|
|
|
@ -22,8 +22,6 @@
|
|||
../../services/open-webui.nix
|
||||
];
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
boot.loader.systemd-boot.memtest86.enable = true;
|
||||
|
||||
# running binaries for other architectures
|
||||
|
|
|
@ -50,8 +50,6 @@ in
|
|||
age.secrets.cloudflare.file = ../../secrets/cloudflare.age;
|
||||
age.secrets.hostKey.file = ../../secrets/home-server/hostKey.age;
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
networking.domain = "home.felschr.com";
|
||||
|
||||
networking.firewall.allowedTCPPorts = [
|
||||
|
|
14
overlays.nix
14
overlays.nix
|
@ -1,14 +0,0 @@
|
|||
{ inputs, ... }:
|
||||
|
||||
{
|
||||
flake = {
|
||||
overlays.default = final: prev: {
|
||||
unstable = import inputs.nixpkgs-unstable {
|
||||
inherit (prev) system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
inherit (inputs.self.packages.${prev.system}) deconz brlaser;
|
||||
vimPlugins = prev.vimPlugins // final.callPackage ./pkgs/vim-plugins { inherit inputs; };
|
||||
};
|
||||
};
|
||||
}
|
27
overlays/flake-module.nix
Normal file
27
overlays/flake-module.nix
Normal file
|
@ -0,0 +1,27 @@
|
|||
{ self, inputs, ... }:
|
||||
|
||||
{
|
||||
flake = {
|
||||
overlays.default = final: prev: {
|
||||
unstable = import inputs.nixpkgs-unstable {
|
||||
inherit (prev) system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
inherit (inputs.self.packages.${prev.system}) deconz;
|
||||
vimPlugins = prev.vimPlugins // final.callPackage ../pkgs/vim-plugins { inherit inputs; };
|
||||
};
|
||||
pkgsFor =
|
||||
system:
|
||||
import inputs.nixpkgs {
|
||||
inherit system;
|
||||
overlays = [ self.overlays.default ];
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
};
|
||||
|
||||
perSystem =
|
||||
{ system, ... }:
|
||||
{
|
||||
_module.args.pkgs = self.pkgsFor system;
|
||||
};
|
||||
}
|
|
@ -1,119 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
cmake,
|
||||
zlib,
|
||||
cups,
|
||||
...
|
||||
}:
|
||||
|
||||
# maintained fork of brlaser with newer drivers (including Brother HL-L2370DN)
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "brlaser";
|
||||
version = "6.2.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Owl-Maintain";
|
||||
repo = "brlaser";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-+W84s3Nulj0kz2h1WE7/QGysVylKkN/xNqcNvrQz6D8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [
|
||||
zlib
|
||||
cups
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCUPS_SERVER_BIN=lib/cups"
|
||||
"-DCUPS_DATA_DIR=share/cups"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A CUPS driver for Brother laser printers";
|
||||
longDescription = ''
|
||||
While most Brother printers can use standard printer languages like PCL or PostScript, some models do not. If you have a monochrome Brother laser printer (or multi-function device) and the other open-source drivers are not working, brlaser might be able to help. Additionally, there have been reports of some non-Brother printers working with this driver.
|
||||
|
||||
The following printers have been reported to work with this driver:
|
||||
|
||||
Brother DCP-1510 series
|
||||
Brother DCP-1600 series
|
||||
Brother DCP-1610W series
|
||||
Brother DCP-7020
|
||||
Brother DCP-7030
|
||||
Brother DCP-7040
|
||||
Brother DCP-7055
|
||||
Brother DCP-7055W
|
||||
Brother DCP-7060D
|
||||
Brother DCP-7065DN
|
||||
Brother DCP-7070DW
|
||||
Brother DCP-7080
|
||||
Brother DCP-7080D
|
||||
Brother DCP-8065DN
|
||||
Brother DCP-L2500D series
|
||||
Brother DCP-L2510D series
|
||||
Brother DCP-L2520D series
|
||||
Brother DCP-L2520DW series
|
||||
Brother DCP-L2537DW
|
||||
Brother DCP-L2540DW series
|
||||
Brother DCP-L2550DW series
|
||||
Brother FAX-2820
|
||||
Brother FAX-2840
|
||||
Brother HL-1110 series
|
||||
Brother HL-1200 series
|
||||
Brother HL-2030 series
|
||||
Brother HL-2130 series
|
||||
Brother HL-2140 series
|
||||
Brother HL-2220 series
|
||||
Brother HL-2230 series
|
||||
Brother HL-2240D series
|
||||
Brother HL-2250DN series
|
||||
Brother HL-2260
|
||||
Brother HL-2270DW series
|
||||
Brother HL-2280DW
|
||||
Brother HL-5030 series
|
||||
Brother HL-5040 series
|
||||
Brother HL-L2300D series
|
||||
Brother HL-L2305 series
|
||||
Brother HL-L2310D series
|
||||
Brother HL-L2320D series
|
||||
Brother HL-L2335D series
|
||||
Brother HL-L2340D series
|
||||
Brother HL-L2350DW series
|
||||
Brother HL-L2360D series
|
||||
Brother HL-L2370DN series
|
||||
Brother HL-L2375DW series
|
||||
Brother HL-L2380DW series
|
||||
Brother HL-L2390DW
|
||||
Brother HL-L5000D series
|
||||
Brother MFC-1810 series
|
||||
Brother MFC-1910W series
|
||||
Brother MFC-7240
|
||||
Brother MFC-7320
|
||||
Brother MFC-7340
|
||||
Brother MFC-7360N
|
||||
Brother MFC-7365DN
|
||||
Brother MFC-7420
|
||||
Brother MFC-7440N
|
||||
Brother MFC-7460DN
|
||||
Brother MFC-7860DW
|
||||
Brother MFC-8710DW
|
||||
Brother MFC-8860DN
|
||||
Brother MFC-9160
|
||||
Brother MFC-L2700DN series
|
||||
Brother MFC-L2700DW series
|
||||
Brother MFC-L2710DN series
|
||||
Brother MFC-L2710DW series
|
||||
Brother MFC-L2750DW series
|
||||
Fuji Xerox DocuPrint P265 dw
|
||||
Lenovo LJ2650DN
|
||||
'';
|
||||
homepage = "https://github.com/Owl-Maintain/brlaser";
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ felschr ];
|
||||
changelog = "https://github.com/Owl-Maintain/brlaser/releases/tag/${finalAttrs.src.rStijnDWev}";
|
||||
};
|
||||
})
|
|
@ -4,7 +4,6 @@
|
|||
{ self', pkgs, ... }:
|
||||
{
|
||||
packages = {
|
||||
brlaser = pkgs.callPackage ./brlaser { };
|
||||
deconz = pkgs.qt5.callPackage ./deconz { };
|
||||
};
|
||||
|
||||
|
|
|
@ -1,21 +1,39 @@
|
|||
#! /usr/bin/env nix-shell
|
||||
#! nix-shell -i bash -p bash gnupg
|
||||
#! /usr/bin/env bash
|
||||
# shellcheck shell=bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
EMAIL=$0
|
||||
read -rp 'enter email address: ' email
|
||||
|
||||
# create master key
|
||||
gpg2 --quick-gen-key "Felix Schröter <$EMAIL>" ed25519 sign 1y
|
||||
echo "$email"
|
||||
|
||||
# create main key
|
||||
gpg2 --quick-gen-key "Felix Schröter <$email>" ed25519 sign 1y || true
|
||||
|
||||
keyid=$(gpg2 --list-keys --with-colons "$email" | grep "^pub:" | cut -d: -f5)
|
||||
fpr=$(gpg2 --list-keys --with-colons "$email" | grep "^fpr:" | cut -d: -f10)
|
||||
|
||||
# create subkeys
|
||||
gpg2 --quick-add-key KEYID cv25519 encr 1y
|
||||
gpg2 --quick-add-key KEYID ed25519 auth 1y
|
||||
gpg2 --quick-add-key KEYID ed25519 sign 1y
|
||||
gpg2 --quick-add-key "$fpr" cv25519 encr 1y
|
||||
gpg2 --quick-add-key "$fpr" ed25519 auth 1y
|
||||
gpg2 --quick-add-key "$fpr" ed25519 sign 1y
|
||||
|
||||
# for signing git commits use the sign subkey
|
||||
# and add the public sign subkey to GitHub/GitLab
|
||||
echo "created keys:"
|
||||
gpg2 --list-keys --with-subkey-fingerprint "$keyid"
|
||||
|
||||
# show info
|
||||
gpg2 --list-keys --with-subkey-fingerprint
|
||||
sign=$(gpg2 --list-keys --with-colons "$email" | grep "::s::" -A 1)
|
||||
sign_keyid=$(echo "$sign" | grep "^sub:" | cut -d: -f5)
|
||||
|
||||
auth=$(gpg2 --list-keys --with-colons "$email" | grep "::a::" -A 1)
|
||||
auth_keyid=$(echo "$auth" | grep "^sub:" | cut -d: -f5)
|
||||
|
||||
pub_sign=$(gpg2 --armor --export "$sign_keyid!")
|
||||
pub_ssh=$(gpg2 --export-ssh-key "$auth_keyid")
|
||||
|
||||
echo "public PGP key with signing subkey:"
|
||||
echo "$pub_sign"
|
||||
echo ""
|
||||
|
||||
echo "public SSH key for authenticating with git forges:"
|
||||
echo "$pub_ssh"
|
||||
echo ""
|
||||
|
|
|
@ -100,8 +100,7 @@ in
|
|||
settings = {
|
||||
theme = "dark";
|
||||
server = {
|
||||
host = "::1";
|
||||
inherit port;
|
||||
address = "tcp://[::1]:${toString port}";
|
||||
};
|
||||
default_2fa_method = "webauthn";
|
||||
default_redirection_url = "https://${domain}";
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
noto-fonts-extra
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-emoji
|
||||
(nerdfonts.override { fonts = [ "NerdFontsSymbolsOnly" ]; })
|
||||
nerd-fonts.symbols-only
|
||||
fira-code
|
||||
];
|
||||
fonts.fontconfig.defaultFonts = {
|
||||
|
|
|
@ -4,6 +4,8 @@ let
|
|||
inherit (inputs.self.outputs) nixConfig;
|
||||
in
|
||||
{
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
dates = "04:00";
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
}:
|
||||
|
||||
{
|
||||
hardware.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pulseaudio.enable = false;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue