foot, vintage fonts, scope operator
This commit is contained in:
parent
8d77e96d89
commit
5575604452
46 changed files with 803 additions and 702 deletions
|
@ -1,25 +1,26 @@
|
|||
{
|
||||
pkgs,
|
||||
getPkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
environment.systemPackages = builtins.attrValues {
|
||||
environment.systemPackages = getPkgs {
|
||||
inherit (pkgs)
|
||||
curl
|
||||
eza
|
||||
git
|
||||
;
|
||||
};
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
btop
|
||||
bat
|
||||
ripgrep
|
||||
fd
|
||||
lazygit
|
||||
zoxide
|
||||
zellij
|
||||
ouch
|
||||
;
|
||||
};
|
||||
home.packages = getPkgs {
|
||||
inherit (pkgs)
|
||||
lazygit
|
||||
zoxide
|
||||
zellij
|
||||
;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ pkgs, ... }:
|
||||
{ pkgs, getPkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = builtins.attrValues {
|
||||
environment.systemPackages = getPkgs {
|
||||
inherit (pkgs)
|
||||
man-pages
|
||||
man-pages-posix
|
||||
|
|
|
@ -2,253 +2,252 @@
|
|||
inputs,
|
||||
pkgs,
|
||||
config,
|
||||
scope,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (config) rice;
|
||||
pal = rice.palette.hex;
|
||||
in
|
||||
{
|
||||
hm.programs.helix = {
|
||||
enable = true;
|
||||
package = inputs.helix.packages.${pkgs.system}.helix;
|
||||
themes = with pal; {
|
||||
nix-rice = {
|
||||
"attribute" = bright.cyan;
|
||||
"keyword" = {
|
||||
fg = normal.red;
|
||||
};
|
||||
"keyword.directive" = normal.red;
|
||||
"namespace" = bright.cyan;
|
||||
"punctuation" = bright.yellow;
|
||||
"punctuation.delimiter" = bright.yellow;
|
||||
"operator" = bright.magenta;
|
||||
"special" = normal.magenta;
|
||||
"variable.other.member" = bright.blue;
|
||||
"variable" = util.fg;
|
||||
"variable.builtin" = bright.yellow;
|
||||
"variable.parameter" = bright.white;
|
||||
"type" = normal.yellow;
|
||||
"type.builtin" = normal.yellow;
|
||||
"constructor" = {
|
||||
fg = bright.magenta;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"function" = {
|
||||
fg = normal.green;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"function.macro" = bright.cyan;
|
||||
"function.builtin" = normal.yellow;
|
||||
"tag" = normal.red;
|
||||
"comment" = {
|
||||
fg = normal.magenta;
|
||||
modifiers = [ "italic" ];
|
||||
};
|
||||
"constant" = {
|
||||
fg = bright.magenta;
|
||||
};
|
||||
"constant.builtin" = {
|
||||
fg = bright.magenta;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"string" = normal.green;
|
||||
"constant.numeric" = bright.magenta;
|
||||
"constant.character.escape" = {
|
||||
fg = bright.white;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"label" = bright.cyan;
|
||||
"module" = bright.cyan;
|
||||
"diff.plus" = bright.green;
|
||||
"diff.delta" = bright.yellow;
|
||||
"diff.minus" = bright.red;
|
||||
"warning" = bright.yellow;
|
||||
"error" = bright.red;
|
||||
"info" = bright.cyan;
|
||||
"hint" = bright.blue;
|
||||
"ui.background" = {
|
||||
inherit (util) bg;
|
||||
};
|
||||
"ui.linenr" = {
|
||||
fg = normal.cyan;
|
||||
};
|
||||
"ui.linenr.selected" = {
|
||||
fg = normal.yellow;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"ui.cursorline" = {
|
||||
bg = normal.black;
|
||||
};
|
||||
"ui.statusline" = {
|
||||
inherit (util) fg;
|
||||
bg = bright.black;
|
||||
};
|
||||
"ui.statusline.normal" = {
|
||||
inherit (util) fg;
|
||||
bg = bright.black;
|
||||
};
|
||||
"ui.statusline.insert" = {
|
||||
inherit (util) fg;
|
||||
bg = normal.blue;
|
||||
};
|
||||
"ui.statusline.select" = {
|
||||
inherit (util) fg;
|
||||
bg = bright.yellow;
|
||||
};
|
||||
"ui.statusline.inactive" = {
|
||||
fg = normal.white;
|
||||
bg = normal.black;
|
||||
};
|
||||
"ui.popup" = {
|
||||
bg = normal.black;
|
||||
};
|
||||
"ui.window" = {
|
||||
bg = normal.black;
|
||||
};
|
||||
"ui.help" = {
|
||||
bg = normal.black;
|
||||
inherit (util) fg;
|
||||
};
|
||||
"ui.text" = {
|
||||
inherit (util) fg;
|
||||
};
|
||||
"ui.text.focus" = {
|
||||
inherit (util) fg;
|
||||
};
|
||||
"ui.selection" = {
|
||||
# modifiers = ["reversed"];
|
||||
bg = bright.yellow;
|
||||
};
|
||||
"ui.selection.primary" = {
|
||||
modifiers = [ "reversed" ];
|
||||
};
|
||||
# "ui.selection.primary" = { bg = bright.cyan; };
|
||||
"ui.cursor.primary" = {
|
||||
bg = normal.white;
|
||||
fg = normal.black;
|
||||
};
|
||||
"ui.cursor.match" = {
|
||||
bg = bright.cyan;
|
||||
};
|
||||
"ui.menu" = {
|
||||
inherit (util) fg;
|
||||
bg = bright.black;
|
||||
};
|
||||
"ui.menu.selected" = {
|
||||
fg = bright.black;
|
||||
bg = bright.blue;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"ui.virtual.whitespace" = bright.black;
|
||||
"ui.virtual.ruler" = {
|
||||
bg = normal.black;
|
||||
};
|
||||
"ui.virtual.inlay-hint" = {
|
||||
fg = normal.magenta;
|
||||
};
|
||||
"diagnostic.warning" = {
|
||||
underline = {
|
||||
color = bright.yellow;
|
||||
style = "curl";
|
||||
};
|
||||
};
|
||||
"diagnostic.error" = {
|
||||
underline = {
|
||||
color = bright.red;
|
||||
style = "curl";
|
||||
};
|
||||
};
|
||||
"diagnostic.info" = {
|
||||
underline = {
|
||||
color = bright.cyan;
|
||||
style = "curl";
|
||||
};
|
||||
};
|
||||
"diagnostic.hint" = {
|
||||
underline = {
|
||||
color = bright.blue;
|
||||
style = "curl";
|
||||
};
|
||||
};
|
||||
"markup.heading" = bright.cyan;
|
||||
"markup.bold" = {
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"markup.italic" = {
|
||||
modifiers = [ "italic" ];
|
||||
};
|
||||
"markup.strikethrough" = {
|
||||
modifiers = [ "crossed_out" ];
|
||||
};
|
||||
"markup.link.url" = {
|
||||
fg = bright.green;
|
||||
modifiers = [ "underlined" ];
|
||||
};
|
||||
"markup.link.text" = bright.red;
|
||||
"markup.raw" = bright.red;
|
||||
scope "hm.programs.helix" {
|
||||
enable = true;
|
||||
package = inputs.helix.packages.${pkgs.system}.helix;
|
||||
themes = with pal; {
|
||||
nix-rice = {
|
||||
"attribute" = bright.cyan;
|
||||
"keyword" = {
|
||||
fg = normal.red;
|
||||
};
|
||||
};
|
||||
|
||||
# theme = "nix-rice"
|
||||
|
||||
settings = {
|
||||
theme = "nix-rice";
|
||||
editor = {
|
||||
bufferline = "multiple";
|
||||
cursorline = true;
|
||||
true-color = true;
|
||||
cursor-shape = {
|
||||
insert = "bar";
|
||||
normal = "block";
|
||||
select = "underline";
|
||||
};
|
||||
statusline.left = [
|
||||
"mode"
|
||||
"spinner"
|
||||
"version-control"
|
||||
"file-name"
|
||||
"file-modification-indicator"
|
||||
];
|
||||
lsp.display-messages = true;
|
||||
"keyword.directive" = normal.red;
|
||||
"namespace" = bright.cyan;
|
||||
"punctuation" = bright.yellow;
|
||||
"punctuation.delimiter" = bright.yellow;
|
||||
"operator" = bright.magenta;
|
||||
"special" = normal.magenta;
|
||||
"variable.other.member" = bright.blue;
|
||||
"variable" = util.fg;
|
||||
"variable.builtin" = bright.yellow;
|
||||
"variable.parameter" = bright.white;
|
||||
"type" = normal.yellow;
|
||||
"type.builtin" = normal.yellow;
|
||||
"constructor" = {
|
||||
fg = bright.magenta;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"function" = {
|
||||
fg = normal.green;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"function.macro" = bright.cyan;
|
||||
"function.builtin" = normal.yellow;
|
||||
"tag" = normal.red;
|
||||
"comment" = {
|
||||
fg = normal.magenta;
|
||||
modifiers = [ "italic" ];
|
||||
};
|
||||
"constant" = {
|
||||
fg = bright.magenta;
|
||||
};
|
||||
"constant.builtin" = {
|
||||
fg = bright.magenta;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"string" = normal.green;
|
||||
"constant.numeric" = bright.magenta;
|
||||
"constant.character.escape" = {
|
||||
fg = bright.white;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"label" = bright.cyan;
|
||||
"module" = bright.cyan;
|
||||
"diff.plus" = bright.green;
|
||||
"diff.delta" = bright.yellow;
|
||||
"diff.minus" = bright.red;
|
||||
"warning" = bright.yellow;
|
||||
"error" = bright.red;
|
||||
"info" = bright.cyan;
|
||||
"hint" = bright.blue;
|
||||
"ui.background" = {
|
||||
inherit (util) bg;
|
||||
};
|
||||
"ui.linenr" = {
|
||||
fg = normal.cyan;
|
||||
};
|
||||
"ui.linenr.selected" = {
|
||||
fg = normal.yellow;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"ui.cursorline" = {
|
||||
bg = normal.black;
|
||||
};
|
||||
"ui.statusline" = {
|
||||
inherit (util) fg;
|
||||
bg = bright.black;
|
||||
};
|
||||
"ui.statusline.normal" = {
|
||||
inherit (util) fg;
|
||||
bg = bright.black;
|
||||
};
|
||||
"ui.statusline.insert" = {
|
||||
inherit (util) fg;
|
||||
bg = normal.blue;
|
||||
};
|
||||
"ui.statusline.select" = {
|
||||
inherit (util) fg;
|
||||
bg = bright.yellow;
|
||||
};
|
||||
"ui.statusline.inactive" = {
|
||||
fg = normal.white;
|
||||
bg = normal.black;
|
||||
};
|
||||
"ui.popup" = {
|
||||
bg = normal.black;
|
||||
};
|
||||
"ui.window" = {
|
||||
bg = normal.black;
|
||||
};
|
||||
"ui.help" = {
|
||||
bg = normal.black;
|
||||
inherit (util) fg;
|
||||
};
|
||||
"ui.text" = {
|
||||
inherit (util) fg;
|
||||
};
|
||||
"ui.text.focus" = {
|
||||
inherit (util) fg;
|
||||
};
|
||||
"ui.selection" = {
|
||||
# modifiers = ["reversed"];
|
||||
bg = bright.yellow;
|
||||
};
|
||||
"ui.selection.primary" = {
|
||||
modifiers = [ "reversed" ];
|
||||
};
|
||||
# "ui.selection.primary" = { bg = bright.cyan; };
|
||||
"ui.cursor.primary" = {
|
||||
bg = normal.white;
|
||||
fg = normal.black;
|
||||
};
|
||||
"ui.cursor.match" = {
|
||||
bg = bright.cyan;
|
||||
};
|
||||
"ui.menu" = {
|
||||
inherit (util) fg;
|
||||
bg = bright.black;
|
||||
};
|
||||
"ui.menu.selected" = {
|
||||
fg = bright.black;
|
||||
bg = bright.blue;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"ui.virtual.whitespace" = bright.black;
|
||||
"ui.virtual.ruler" = {
|
||||
bg = normal.black;
|
||||
};
|
||||
"ui.virtual.inlay-hint" = {
|
||||
fg = normal.magenta;
|
||||
};
|
||||
"diagnostic.warning" = {
|
||||
underline = {
|
||||
color = bright.yellow;
|
||||
style = "curl";
|
||||
};
|
||||
};
|
||||
"diagnostic.error" = {
|
||||
underline = {
|
||||
color = bright.red;
|
||||
style = "curl";
|
||||
};
|
||||
};
|
||||
"diagnostic.info" = {
|
||||
underline = {
|
||||
color = bright.cyan;
|
||||
style = "curl";
|
||||
};
|
||||
};
|
||||
"diagnostic.hint" = {
|
||||
underline = {
|
||||
color = bright.blue;
|
||||
style = "curl";
|
||||
};
|
||||
};
|
||||
"markup.heading" = bright.cyan;
|
||||
"markup.bold" = {
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"markup.italic" = {
|
||||
modifiers = [ "italic" ];
|
||||
};
|
||||
"markup.strikethrough" = {
|
||||
modifiers = [ "crossed_out" ];
|
||||
};
|
||||
"markup.link.url" = {
|
||||
fg = bright.green;
|
||||
modifiers = [ "underlined" ];
|
||||
};
|
||||
"markup.link.text" = bright.red;
|
||||
"markup.raw" = bright.red;
|
||||
};
|
||||
};
|
||||
|
||||
languages = {
|
||||
language = [
|
||||
{
|
||||
name = "rust";
|
||||
language-servers = [ "rust-analyzer" ];
|
||||
}
|
||||
{
|
||||
name = "nix";
|
||||
language-servers = [ "nil" ];
|
||||
file-types = [ "nix" ];
|
||||
auto-format = true;
|
||||
formatter = {
|
||||
command = "nixfmt";
|
||||
};
|
||||
}
|
||||
# theme = "nix-rice"
|
||||
|
||||
settings = {
|
||||
theme = "nix-rice";
|
||||
editor = {
|
||||
bufferline = "multiple";
|
||||
cursorline = true;
|
||||
true-color = true;
|
||||
cursor-shape = {
|
||||
insert = "bar";
|
||||
normal = "block";
|
||||
select = "underline";
|
||||
};
|
||||
statusline.left = [
|
||||
"mode"
|
||||
"spinner"
|
||||
"version-control"
|
||||
"file-name"
|
||||
"file-modification-indicator"
|
||||
];
|
||||
lsp.display-messages = true;
|
||||
};
|
||||
};
|
||||
|
||||
language-server = {
|
||||
qmlls = {
|
||||
command = "qmlls";
|
||||
args = [ "-E" ];
|
||||
languages = {
|
||||
language = [
|
||||
{
|
||||
name = "rust";
|
||||
language-servers = [ "rust-analyzer" ];
|
||||
}
|
||||
{
|
||||
name = "nix";
|
||||
language-servers = [ "nil" ];
|
||||
file-types = [ "nix" ];
|
||||
auto-format = true;
|
||||
formatter = {
|
||||
command = "nixfmt";
|
||||
};
|
||||
}
|
||||
];
|
||||
|
||||
nil = {
|
||||
command = "nil";
|
||||
};
|
||||
language-server = {
|
||||
qmlls = {
|
||||
command = "qmlls";
|
||||
args = [ "-E" ];
|
||||
};
|
||||
|
||||
rust-analyzer = {
|
||||
config = {
|
||||
cargo.buildScripts.enable = true;
|
||||
procMacro.enable = true;
|
||||
check.command = "clippy";
|
||||
};
|
||||
nil = {
|
||||
command = "nil";
|
||||
};
|
||||
|
||||
rust-analyzer = {
|
||||
config = {
|
||||
cargo.buildScripts.enable = true;
|
||||
procMacro.enable = true;
|
||||
check.command = "clippy";
|
||||
};
|
||||
}; # language-server
|
||||
}; # languages
|
||||
}; # helix config
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,4 +1 @@
|
|||
{ lib, ... }:
|
||||
{
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
}
|
||||
{ lib, scope, ... }: scope "networking.useDHCP" <| lib.mkDefault true
|
||||
|
|
|
@ -1,10 +1,13 @@
|
|||
{ inputs, lib, ... }:
|
||||
{
|
||||
nixpkgs = {
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
allowUnfreePredicate = _: true;
|
||||
};
|
||||
inputs,
|
||||
lib,
|
||||
scope,
|
||||
...
|
||||
}:
|
||||
scope "nixpkgs" {
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
allowUnfreePredicate = _: true;
|
||||
};
|
||||
nixpkgs.flake.source = lib.mkForce inputs.nixpkgs;
|
||||
flake.source = lib.mkForce inputs.nixpkgs;
|
||||
}
|
||||
|
|
|
@ -1,23 +1,24 @@
|
|||
{
|
||||
scope,
|
||||
...
|
||||
}:
|
||||
{
|
||||
nix.settings = {
|
||||
substituters = [
|
||||
"https://cache.nixos.org"
|
||||
"https://nix-community.cachix.org"
|
||||
"https://helix.cachix.org"
|
||||
"https://walker-git.cachix.org"
|
||||
"https://anmonteiro.nix-cache.workers.dev"
|
||||
"https://cache.atagen.co"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
"helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs="
|
||||
"walker-git.cachix.org-1:vmC0ocfPWh0S/vRAQGtChuiZBTAe4wiKDeyyXM0/7pM="
|
||||
"ocaml.nix-cache.com-1:/xI2h2+56rwFfKyyFVbkJSeGqSIYMC/Je+7XXqGKDIY="
|
||||
"cache.atagen.co:SOUkNQxuu/eQ7FcI8nlUe7FpV27e7YjQlDQdn8HTUnw="
|
||||
];
|
||||
};
|
||||
scope "nix.settings" {
|
||||
substituters = [
|
||||
"https://cache.nixos.org"
|
||||
"https://nix-community.cachix.org"
|
||||
"https://helix.cachix.org"
|
||||
"https://walker-git.cachix.org"
|
||||
"https://anmonteiro.nix-cache.workers.dev"
|
||||
"https://cache.atagen.co"
|
||||
"https://cache.privatevoid.net"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
"helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs="
|
||||
"walker-git.cachix.org-1:vmC0ocfPWh0S/vRAQGtChuiZBTAe4wiKDeyyXM0/7pM="
|
||||
"ocaml.nix-cache.com-1:/xI2h2+56rwFfKyyFVbkJSeGqSIYMC/Je+7XXqGKDIY="
|
||||
"cache.atagen.co:SOUkNQxuu/eQ7FcI8nlUe7FpV27e7YjQlDQdn8HTUnw="
|
||||
"cache.privatevoid.net:SErQ8bvNWANeAvtsOESUwVYr2VJynfuc9JRwlzTTkVg="
|
||||
];
|
||||
}
|
||||
|
|
|
@ -1,7 +1,12 @@
|
|||
{ pkgs, inputs, ... }:
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
getPkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
environment.systemPackages = builtins.attrValues {
|
||||
environment.systemPackages = getPkgs {
|
||||
inherit (pkgs)
|
||||
home-manager
|
||||
cachix
|
||||
|
@ -9,13 +14,10 @@
|
|||
;
|
||||
inherit (inputs.nil.packages.${pkgs.system}) nil;
|
||||
};
|
||||
hm.imports = [
|
||||
inputs.nix-index-database.hmModules.nix-index
|
||||
];
|
||||
imports = [
|
||||
inputs.nix-index-database.nixosModules.nix-index
|
||||
];
|
||||
programs.nix-index-database.comma.enable = true;
|
||||
programs.nix-index.enableZshIntegration = false;
|
||||
programs.nix-index.enableBashIntegration = false;
|
||||
# programs.nix-index.enableZshIntegration = false;
|
||||
# programs.nix-index.enableBashIntegration = false;
|
||||
}
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
let
|
||||
create = import ./util/create.nix;
|
||||
create = import ./lib/create.nix;
|
||||
in
|
||||
{
|
||||
nixosConfigurations = create.systems {
|
||||
quiver = {
|
||||
user = "bolt";
|
||||
username = "bolt";
|
||||
system = "x86_64-linux";
|
||||
imports = [
|
||||
./common
|
||||
./graphical
|
||||
|
@ -12,7 +13,8 @@ in
|
|||
];
|
||||
};
|
||||
adrift = {
|
||||
user = "plank";
|
||||
username = "plank";
|
||||
system = "x86_64-linux";
|
||||
imports = [
|
||||
./common
|
||||
./graphical
|
||||
|
|
61
flake.lock
generated
61
flake.lock
generated
|
@ -157,6 +157,21 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_4": {
|
||||
"locked": {
|
||||
"lastModified": 1747046372,
|
||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
|
@ -485,11 +500,11 @@
|
|||
"unf": "unf"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1753059450,
|
||||
"narHash": "sha256-WsGRRQGNnPu0Bv5QPhbnouAWjdsmCuE9VzgZN7U+EQY=",
|
||||
"lastModified": 1754885782,
|
||||
"narHash": "sha256-S+D4ksyKsMRDOA2NyjiPqzUraR+ZAksDDOqKvmAtKbY=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "de951b227223ee924c37c7aa282bade34686bf83",
|
||||
"revCount": 38,
|
||||
"rev": "fafee12becfb49c2f77eb8fb6283050bd2fc04d9",
|
||||
"revCount": 39,
|
||||
"type": "git",
|
||||
"url": "https://git.atagen.co/atagen/meat"
|
||||
},
|
||||
|
@ -1018,6 +1033,22 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_18": {
|
||||
"locked": {
|
||||
"lastModified": 1754214453,
|
||||
"narHash": "sha256-Q/I2xJn/j1wpkGhWkQnm20nShYnG7TI99foDBpXm1SY=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5b09dc45f24cf32316283e62aec81ffee3c3e376",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1733935885,
|
||||
|
@ -1210,7 +1241,8 @@
|
|||
"nixpkgs": "nixpkgs_16",
|
||||
"nixpkgs-stable": "nixpkgs-stable_3",
|
||||
"nyx": "nyx",
|
||||
"quickshell": "quickshell"
|
||||
"quickshell": "quickshell",
|
||||
"zedless": "zedless"
|
||||
}
|
||||
},
|
||||
"rust-analyzer-src": {
|
||||
|
@ -1497,6 +1529,25 @@
|
|||
"repo": "xwayland-satellite",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"zedless": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_4",
|
||||
"nixpkgs": "nixpkgs_18"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1754831523,
|
||||
"narHash": "sha256-tkdq7WR0AvIy/eof2L2ELXKh6b73P7dcWcgJC7ww3aM=",
|
||||
"owner": "zedless-editor",
|
||||
"repo": "zed",
|
||||
"rev": "adb21022b5063757c035d851a0e458f8e4ae954b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "zedless-editor",
|
||||
"repo": "zed",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
|
|
@ -59,6 +59,8 @@
|
|||
|
||||
arbys.url = "git+https://git.atagen.co/atagen/arbys";
|
||||
|
||||
zedless.url = "github:zedless-editor/zed";
|
||||
|
||||
__flake-compat = {
|
||||
url = "git+https://git.lix.systems/lix-project/flake-compat.git";
|
||||
flake = false;
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
getPkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
home.packages = getPkgs {
|
||||
inherit (pkgs)
|
||||
avizo
|
||||
playerctl
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
lib,
|
||||
config,
|
||||
inputs,
|
||||
scope,
|
||||
...
|
||||
}:
|
||||
let
|
||||
|
@ -56,8 +57,8 @@ let
|
|||
}) (range 1 6)
|
||||
);
|
||||
in
|
||||
{
|
||||
hm.programs.niri.settings.binds = mergeAttrsList [
|
||||
scope "hm.programs.niri.settings" {
|
||||
binds = mergeAttrsList [
|
||||
{
|
||||
"Mod+D".action.spawn = [
|
||||
"qs"
|
||||
|
@ -68,7 +69,7 @@ in
|
|||
];
|
||||
"Mod+F".action.spawn = "firefox";
|
||||
"Mod+E".action.spawn = "nautilus";
|
||||
"Mod+Return".action.spawn = "ghostty";
|
||||
"Mod+Return".action.spawn = "foot";
|
||||
"Mod+Shift+E".action.spawn = "wlogout";
|
||||
"Mod+Equal".action.spawn = "bitwarden";
|
||||
"Mod+Shift+Q".action = actions.close-window;
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
{ config, ... }:
|
||||
{ config, scope, ... }:
|
||||
let
|
||||
inherit (config) rice;
|
||||
in
|
||||
{
|
||||
boot.tmp.useTmpfs = true;
|
||||
scope "boot" {
|
||||
tmp.useTmpfs = true;
|
||||
|
||||
boot.initrd.systemd.enable = true;
|
||||
initrd.systemd.enable = true;
|
||||
|
||||
boot.loader.limine = {
|
||||
loader.limine = {
|
||||
enable = true;
|
||||
style =
|
||||
let
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
{
|
||||
lib,
|
||||
scope,
|
||||
...
|
||||
}:
|
||||
let
|
||||
|
@ -20,74 +21,72 @@ let
|
|||
Status = "locked";
|
||||
};
|
||||
in
|
||||
{
|
||||
hm.programs.firefox = {
|
||||
enable = true;
|
||||
scope "hm.programs.firefox" {
|
||||
enable = true;
|
||||
|
||||
policies = {
|
||||
DisableTelemetry = true;
|
||||
DisableFirefoxStudies = true;
|
||||
EnableTrackingProtection = {
|
||||
Value = true;
|
||||
Locked = true;
|
||||
Cryptomining = true;
|
||||
Fingerprinting = true;
|
||||
};
|
||||
DisablePocket = true;
|
||||
DisableFirefoxAccounts = true;
|
||||
DisableAccounts = true;
|
||||
DisableFirefoxScreenshots = true;
|
||||
DisableAppUpdate = true;
|
||||
DisablePrivateBrowsing = true;
|
||||
DontCheckDefaultBrowser = true;
|
||||
policies = {
|
||||
DisableTelemetry = true;
|
||||
DisableFirefoxStudies = true;
|
||||
EnableTrackingProtection = {
|
||||
Value = true;
|
||||
Locked = true;
|
||||
Cryptomining = true;
|
||||
Fingerprinting = true;
|
||||
};
|
||||
DisablePocket = true;
|
||||
DisableFirefoxAccounts = true;
|
||||
DisableAccounts = true;
|
||||
DisableFirefoxScreenshots = true;
|
||||
DisableAppUpdate = true;
|
||||
DisablePrivateBrowsing = true;
|
||||
DontCheckDefaultBrowser = true;
|
||||
|
||||
OverrideFirstRunPage = "";
|
||||
OverridePostUpdatePage = "";
|
||||
DisplayBookmarksToolbar = "newtab"; # alternatives: "always" or "newtab"
|
||||
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
|
||||
SearchBar = "unified"; # alternative: "separate"
|
||||
OverrideFirstRunPage = "";
|
||||
OverridePostUpdatePage = "";
|
||||
DisplayBookmarksToolbar = "newtab"; # alternatives: "always" or "newtab"
|
||||
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
|
||||
SearchBar = "unified"; # alternative: "separate"
|
||||
|
||||
ExtensionSettings = {
|
||||
"*".installation_mode = "blocked"; # blocks all addons except the ones specified below
|
||||
"uBlock0@raymondhill.net" = officialAddon "ublock-origin";
|
||||
"addon@darkreader.org" = officialAddon "darkreader";
|
||||
"vimium-c@gdh1995.cn" = officialAddon "vimium-c";
|
||||
"{b86e4813-687a-43e6-ab65-0bde4ab75758}" = officialAddon "localcdn-fork-of-decentraleyes";
|
||||
"jid1-5Fs7iTLscUaZBgwr@jetpack" = officialAddon "happy-bonobo-disable-webrtc";
|
||||
"{446900e4-71c2-419f-a6a7-df9c091e268b}" = officialAddon "bitwarden-password-mananger";
|
||||
};
|
||||
|
||||
Preferences = {
|
||||
"extensions.pocket.enabled" = lock-false;
|
||||
"extensions.screenshots.disabled" = lock-true;
|
||||
"browser.topsites.contile.enabled" = lock-false;
|
||||
"browser.formfill.enable" = lock-false;
|
||||
"browser.search.suggest.enabled" = lock-false;
|
||||
"browser.search.suggest.enabled.private" = lock-false;
|
||||
"browser.urlbar.suggest.searches" = lock-false;
|
||||
"browser.urlbar.showSearchSuggestionsFirst" = lock-false;
|
||||
"browser.newtabpage.activity-stream.feeds.section.topstories" = lock-false;
|
||||
"browser.newtabpage.activity-stream.feeds.snippets" = lock-false;
|
||||
"browser.newtabpage.activity-stream.section.highlights.includePocket" = lock-false;
|
||||
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = lock-false;
|
||||
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = lock-false;
|
||||
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = lock-false;
|
||||
"browser.newtabpage.activity-stream.showSponsored" = lock-false;
|
||||
"browser.newtabpage.activity-stream.system.showSponsored" = lock-false;
|
||||
"browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false;
|
||||
};
|
||||
ExtensionSettings = {
|
||||
"*".installation_mode = "blocked"; # blocks all addons except the ones specified below
|
||||
"uBlock0@raymondhill.net" = officialAddon "ublock-origin";
|
||||
"addon@darkreader.org" = officialAddon "darkreader";
|
||||
"vimium-c@gdh1995.cn" = officialAddon "vimium-c";
|
||||
"{b86e4813-687a-43e6-ab65-0bde4ab75758}" = officialAddon "localcdn-fork-of-decentraleyes";
|
||||
"jid1-5Fs7iTLscUaZBgwr@jetpack" = officialAddon "happy-bonobo-disable-webrtc";
|
||||
"{446900e4-71c2-419f-a6a7-df9c091e268b}" = officialAddon "bitwarden-password-mananger";
|
||||
};
|
||||
|
||||
profiles.default = {
|
||||
id = 0;
|
||||
name = "Default";
|
||||
settings = {
|
||||
"browser.startup.homepage" = "about:blank";
|
||||
"browser.shell.didSkipDefaultBrowserCheckOnFirstRun" = true;
|
||||
"browser.policies.applied" = true;
|
||||
"widget.use-xdg-desktop-portal.file-picker" = 1;
|
||||
"widget.use-xdg-desktop-portal.mime-handler" = 1;
|
||||
};
|
||||
Preferences = {
|
||||
"extensions.pocket.enabled" = lock-false;
|
||||
"extensions.screenshots.disabled" = lock-true;
|
||||
"browser.topsites.contile.enabled" = lock-false;
|
||||
"browser.formfill.enable" = lock-false;
|
||||
"browser.search.suggest.enabled" = lock-false;
|
||||
"browser.search.suggest.enabled.private" = lock-false;
|
||||
"browser.urlbar.suggest.searches" = lock-false;
|
||||
"browser.urlbar.showSearchSuggestionsFirst" = lock-false;
|
||||
"browser.newtabpage.activity-stream.feeds.section.topstories" = lock-false;
|
||||
"browser.newtabpage.activity-stream.feeds.snippets" = lock-false;
|
||||
"browser.newtabpage.activity-stream.section.highlights.includePocket" = lock-false;
|
||||
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = lock-false;
|
||||
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = lock-false;
|
||||
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = lock-false;
|
||||
"browser.newtabpage.activity-stream.showSponsored" = lock-false;
|
||||
"browser.newtabpage.activity-stream.system.showSponsored" = lock-false;
|
||||
"browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false;
|
||||
};
|
||||
};
|
||||
|
||||
profiles.default = {
|
||||
id = 0;
|
||||
name = "Default";
|
||||
settings = {
|
||||
"browser.startup.homepage" = "about:blank";
|
||||
"browser.shell.didSkipDefaultBrowserCheckOnFirstRun" = true;
|
||||
"browser.policies.applied" = true;
|
||||
"widget.use-xdg-desktop-portal.file-picker" = 1;
|
||||
"widget.use-xdg-desktop-portal.mime-handler" = 1;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
{ config, pkgs, ... }:
|
||||
{
|
||||
home.packages = [ pkgs.fluffychat ];
|
||||
hm.programs.firefox.webapps = {
|
||||
"Microsoft-Teams" = {
|
||||
url = "https://teams.microsoft.com";
|
||||
|
|
|
@ -1,55 +1,13 @@
|
|||
{
|
||||
pkgs,
|
||||
localPkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
home.packages = [
|
||||
pkgs.direnv
|
||||
# from https://gist.github.com/mikeboiko/58ab730afd65bca0a125bc12b6f4670d
|
||||
(pkgs.writeTextFile {
|
||||
name = "rbw-helper";
|
||||
text = ''
|
||||
declare -A params
|
||||
|
||||
if [ "x$1" == "xget" ]; then
|
||||
read line
|
||||
while [ -n "$line" ]; do
|
||||
key=$\{line%%=*}
|
||||
value=$\{line#*=}
|
||||
params[$key]=$value
|
||||
read line
|
||||
done
|
||||
|
||||
if [ "x$\{params['protocol']}" != "xhttps" ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ -z "$\{params["host"]}" ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
rbw ls > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Please login to rbw to use git credential helper" > /dev/stderr
|
||||
exit
|
||||
fi
|
||||
|
||||
user=`rbw get --full $\{params["host"]} | grep "Username:" | cut -d' ' -f2-`
|
||||
pass=`rbw get $\{params["host"]}`
|
||||
|
||||
if [ "x$user" == "x" ] || [ "x$pass" == "x" ]; then
|
||||
echo "Couldn't find host in rbw DB." > /dev/stderr
|
||||
exit
|
||||
fi
|
||||
|
||||
echo username=$user
|
||||
echo password=$pass
|
||||
fi
|
||||
'';
|
||||
executable = true;
|
||||
destination = "/bin/git-credential-rw";
|
||||
})
|
||||
localPkgs.rbw-helper
|
||||
];
|
||||
|
||||
hm.programs.direnv = {
|
||||
|
|
|
@ -1,12 +1,16 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
libreoffice
|
||||
thunderbird
|
||||
obsidian
|
||||
foliate
|
||||
;
|
||||
};
|
||||
|
||||
pkgs,
|
||||
scope,
|
||||
getPkgs,
|
||||
...
|
||||
}:
|
||||
scope "home.packages"
|
||||
<| getPkgs {
|
||||
inherit (pkgs)
|
||||
libreoffice
|
||||
thunderbird
|
||||
obsidian
|
||||
foliate
|
||||
zathura
|
||||
;
|
||||
}
|
||||
|
|
7
graphical/editor.nix
Normal file
7
graphical/editor.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
scope,
|
||||
...
|
||||
}:
|
||||
scope "home.packages" [ inputs.zedless.packages.${pkgs.system}.default ]
|
|
@ -1,10 +1,13 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
file-roller
|
||||
nautilus
|
||||
;
|
||||
};
|
||||
|
||||
pkgs,
|
||||
scope,
|
||||
getPkgs,
|
||||
...
|
||||
}:
|
||||
scope "home.packages"
|
||||
<| getPkgs {
|
||||
inherit (pkgs)
|
||||
file-roller
|
||||
nautilus
|
||||
;
|
||||
}
|
||||
|
|
69
graphical/fonts.nix
Normal file
69
graphical/fonts.nix
Normal file
|
@ -0,0 +1,69 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
localPkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
rice.fonts =
|
||||
let
|
||||
sans = {
|
||||
name = "MS W98 UI";
|
||||
size = 12;
|
||||
package = localPkgs.ms-w98-ui-font;
|
||||
};
|
||||
serif = {
|
||||
name = "Poly";
|
||||
size = 12;
|
||||
package = pkgs.poly;
|
||||
};
|
||||
monospace = {
|
||||
name = "Mx437 DOS/V re. JPN24";
|
||||
size = 14;
|
||||
package = localPkgs.oldschool-pc-fonts.override { style = "mixed"; };
|
||||
};
|
||||
emoji = {
|
||||
name = "Twitter Color Emoji";
|
||||
size = 12;
|
||||
package = pkgs.twemoji-color-font;
|
||||
};
|
||||
in
|
||||
{
|
||||
inherit
|
||||
sans
|
||||
serif
|
||||
monospace
|
||||
emoji
|
||||
;
|
||||
pkgs = [
|
||||
sans.package
|
||||
serif.package
|
||||
monospace.package
|
||||
emoji.package
|
||||
pkgs.meslo-lgs-nf
|
||||
];
|
||||
};
|
||||
fonts =
|
||||
let
|
||||
inherit (config.rice) fonts;
|
||||
in
|
||||
{
|
||||
packages = fonts.pkgs;
|
||||
fontconfig = {
|
||||
enable = true;
|
||||
useEmbeddedBitmaps = true;
|
||||
hinting = {
|
||||
enable = false;
|
||||
# style = "full";
|
||||
};
|
||||
antialias = true;
|
||||
defaultFonts = {
|
||||
serif = [ fonts.serif.name ];
|
||||
sansSerif = [ fonts.sans.name ];
|
||||
monospace = [ fonts.monospace.name ];
|
||||
emoji = [ fonts.emoji.name ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
}
|
|
@ -1,14 +1,10 @@
|
|||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
environment.sessionVariables = {
|
||||
NIXOS_OZONE_WL = "1";
|
||||
GBM_BACKEND = "nvidia-drm";
|
||||
NVD_BACKEND = "direct";
|
||||
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
||||
LIBVA_DRIVER_NAME = "nvidia";
|
||||
__GL_GSYNC_ALLOWED = "1";
|
||||
__GL_VRR_ALLOWED = "1";
|
||||
};
|
||||
{ scope, ... }:
|
||||
scope "environment.sessionVariables" {
|
||||
NIXOS_OZONE_WL = "1";
|
||||
GBM_BACKEND = "nvidia-drm";
|
||||
NVD_BACKEND = "direct";
|
||||
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
||||
LIBVA_DRIVER_NAME = "nvidia";
|
||||
__GL_GSYNC_ALLOWED = "1";
|
||||
__GL_VRR_ALLOWED = "1";
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ ... }:
|
||||
{
|
||||
hardware.enableRedistributableFirmware = true;
|
||||
hardware.enableAllFirmware = true;
|
||||
{ scope, ... }:
|
||||
scope "hardware" {
|
||||
enableRedistributableFirmware = true;
|
||||
enableAllFirmware = true;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
{ ... }:
|
||||
{
|
||||
_: {
|
||||
services.libinput.enable = true;
|
||||
console.useXkbConfig = true;
|
||||
services.xserver.xkb.options = "caps:swapescape";
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
scope,
|
||||
...
|
||||
}:
|
||||
let
|
||||
|
@ -8,8 +9,8 @@ let
|
|||
pal = rice.palette.hex;
|
||||
pkg = pkgs.wlogout;
|
||||
in
|
||||
{
|
||||
hm.programs.wlogout = {
|
||||
scope "hm" {
|
||||
programs.wlogout = {
|
||||
enable = true;
|
||||
package = pkg;
|
||||
layout = builtins.fromJSON (builtins.readFile ./logout/layout);
|
||||
|
@ -42,5 +43,5 @@ in
|
|||
);
|
||||
};
|
||||
|
||||
hm.home.packages = [ pkg ];
|
||||
home.packages = [ pkg ];
|
||||
}
|
||||
|
|
|
@ -1,13 +1,16 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
mpv
|
||||
imv
|
||||
resonance
|
||||
zathura
|
||||
feishin
|
||||
nicotine-plus
|
||||
;
|
||||
};
|
||||
pkgs,
|
||||
scope,
|
||||
getPkgs,
|
||||
...
|
||||
}:
|
||||
scope "home.packages"
|
||||
<| getPkgs {
|
||||
inherit (pkgs)
|
||||
mpv
|
||||
imv
|
||||
resonance
|
||||
feishin
|
||||
nicotine-plus
|
||||
;
|
||||
}
|
||||
|
|
|
@ -1,60 +1,22 @@
|
|||
{
|
||||
pkgs,
|
||||
userPkgs,
|
||||
localPkgs,
|
||||
config,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
home.packages =
|
||||
let
|
||||
inherit (config.rice) icons fonts cursor;
|
||||
inherit (config.rice) icons cursor;
|
||||
in
|
||||
fonts.pkgs
|
||||
++ icons.pkgs
|
||||
icons.pkgs
|
||||
++ [
|
||||
cursor.package
|
||||
];
|
||||
|
||||
rice = {
|
||||
fonts =
|
||||
let
|
||||
sans = {
|
||||
name = "Inria Sans";
|
||||
size = 12;
|
||||
package = pkgs.inriafonts;
|
||||
};
|
||||
serif = {
|
||||
name = "Inria Serif";
|
||||
size = 12;
|
||||
package = pkgs.inriafonts;
|
||||
};
|
||||
monospace = {
|
||||
name = "Fira Code";
|
||||
size = 11;
|
||||
package = pkgs.fira-code;
|
||||
};
|
||||
emoji = {
|
||||
name = "Twitter Color Emoji";
|
||||
size = 12;
|
||||
package = pkgs.twemoji-color-font;
|
||||
};
|
||||
in
|
||||
{
|
||||
inherit
|
||||
sans
|
||||
serif
|
||||
monospace
|
||||
emoji
|
||||
;
|
||||
pkgs = [
|
||||
sans.package
|
||||
serif.package
|
||||
monospace.package
|
||||
emoji.package
|
||||
pkgs.meslo-lgs-nf
|
||||
];
|
||||
};
|
||||
|
||||
icons =
|
||||
let
|
||||
|
@ -70,14 +32,13 @@
|
|||
|
||||
gtk-theme = {
|
||||
name = "nix-rice";
|
||||
package = pkgs.callPackage userPkgs.gtk-theme { palette = config.rice.palette.shortHex; };
|
||||
package = localPkgs.gtk-theme.override { palette = config.rice.palette.shortHex; };
|
||||
};
|
||||
|
||||
borders = {
|
||||
thickness = 6;
|
||||
rounding = 0;
|
||||
gaps_in = 32;
|
||||
gaps_out = 72;
|
||||
gaps = 32;
|
||||
};
|
||||
|
||||
bg = {
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
inputs,
|
||||
mainUser,
|
||||
config,
|
||||
getPkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
|
@ -13,7 +14,7 @@ in
|
|||
{
|
||||
# quickshell stuff
|
||||
environment.systemPackages =
|
||||
builtins.attrValues {
|
||||
getPkgs {
|
||||
inherit (pkgs.kdePackages) qtbase qtdeclarative;
|
||||
inherit (pkgs) wl-clipboard;
|
||||
}
|
||||
|
|
|
@ -1,112 +1,48 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
scope,
|
||||
...
|
||||
}:
|
||||
{
|
||||
# hm.programs.kitty =
|
||||
# let
|
||||
# inherit (config) rice;
|
||||
# in
|
||||
# {
|
||||
# enable = true;
|
||||
# font = {
|
||||
# inherit (rice.fonts.monospace) name size;
|
||||
# };
|
||||
# settings = with rice.palette.hex; {
|
||||
# foreground = util.fg;
|
||||
# background = util.bg;
|
||||
# inherit (util) cursor;
|
||||
# cursor_text = util.bg;
|
||||
# selection_foreground = util.fg_sel;
|
||||
# selection_background = util.bg_sel;
|
||||
# color0 = normal.black;
|
||||
# color1 = normal.red;
|
||||
# color2 = normal.green;
|
||||
# color3 = normal.yellow;
|
||||
# color4 = normal.blue;
|
||||
# color5 = normal.magenta;
|
||||
# color6 = normal.cyan;
|
||||
# color7 = normal.white;
|
||||
# color8 = bright.black;
|
||||
# color9 = bright.red;
|
||||
# color10 = bright.green;
|
||||
# color11 = bright.yellow;
|
||||
# color12 = bright.blue;
|
||||
# color13 = bright.magenta;
|
||||
# color14 = bright.cyan;
|
||||
# color15 = bright.white;
|
||||
# sync_to_monitor = "yes";
|
||||
# shell = "fish";
|
||||
# cursor_trail = 100;
|
||||
# };
|
||||
# };
|
||||
scope "programs.foot" {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
settings = {
|
||||
main =
|
||||
let
|
||||
font =
|
||||
config.rice.fonts.monospace.name + ":size=" + (builtins.toString config.rice.fonts.monospace.size);
|
||||
in
|
||||
{
|
||||
inherit font;
|
||||
font-bold = font;
|
||||
font-italic = font;
|
||||
};
|
||||
colors =
|
||||
let
|
||||
pal = config.rice.palette.shortHex;
|
||||
in
|
||||
{
|
||||
background = pal.util.bg;
|
||||
foreground = pal.util.fg;
|
||||
regular0 = pal.normal.black;
|
||||
regular1 = pal.normal.red;
|
||||
regular2 = pal.normal.green;
|
||||
regular3 = pal.normal.yellow;
|
||||
regular4 = pal.normal.blue;
|
||||
regular5 = pal.normal.magenta;
|
||||
regular6 = pal.normal.cyan;
|
||||
regular7 = pal.normal.white;
|
||||
bright0 = pal.bright.black;
|
||||
bright1 = pal.bright.red;
|
||||
bright2 = pal.bright.green;
|
||||
bright3 = pal.bright.yellow;
|
||||
bright4 = pal.bright.blue;
|
||||
bright5 = pal.bright.magenta;
|
||||
bright6 = pal.bright.cyan;
|
||||
bright7 = pal.bright.white;
|
||||
|
||||
home.packages = [ pkgs.ghostty ];
|
||||
home.xdg.config.files = {
|
||||
"ghostty/themes/rice" = {
|
||||
generator =
|
||||
(pkgs.formats.keyValue {
|
||||
listsAsDuplicateKeys = true;
|
||||
mkKeyValue = lib.generators.mkKeyValueDefault { } " = ";
|
||||
}).generate
|
||||
"ghostty-theme";
|
||||
value =
|
||||
let
|
||||
inherit (config.rice.palette.shortHex) util;
|
||||
inherit (config.rice.palette.hex) normal bright;
|
||||
in
|
||||
{
|
||||
foreground = util.fg;
|
||||
background = util.bg;
|
||||
cursor-color = util.cursor;
|
||||
palette = [
|
||||
"0=${normal.black}"
|
||||
"1=${normal.red}"
|
||||
"2=${normal.green}"
|
||||
"3=${normal.yellow}"
|
||||
"4=${normal.blue}"
|
||||
"5=${normal.magenta}"
|
||||
"6=${normal.cyan}"
|
||||
"7=${normal.white}"
|
||||
"8=${bright.black}"
|
||||
"9=${bright.red}"
|
||||
"10=${bright.green}"
|
||||
"11=${bright.yellow}"
|
||||
"12=${bright.blue}"
|
||||
"13=${bright.magenta}"
|
||||
"14=${bright.cyan}"
|
||||
"15=${bright.white}"
|
||||
];
|
||||
selection-foreground = util.fg_sel;
|
||||
selection-background = util.bg_sel;
|
||||
};
|
||||
};
|
||||
|
||||
"ghostty/config" = {
|
||||
generator = lib.generators.toKeyValue { };
|
||||
value =
|
||||
let
|
||||
inherit (config) rice;
|
||||
in
|
||||
{
|
||||
theme = "rice";
|
||||
font-size = rice.fonts.monospace.size;
|
||||
font-family = rice.fonts.monospace.name;
|
||||
window-decoration = "server";
|
||||
gtk-titlebar = false;
|
||||
gtk-single-instance = true;
|
||||
linux-cgroup = "always";
|
||||
gtk-wide-tabs = false;
|
||||
};
|
||||
};
|
||||
selection-foreground = pal.util.fg_sel;
|
||||
selection-background = pal.util.bg_sel;
|
||||
};
|
||||
};
|
||||
# hm.programs.ghostty = {
|
||||
# enable = true;
|
||||
# package = null;
|
||||
# installBatSyntax = true;
|
||||
# enableFishIntegration = true;
|
||||
# clearDefaultKeybinds = false;
|
||||
# };
|
||||
}
|
||||
|
|
|
@ -26,7 +26,7 @@ in
|
|||
};
|
||||
layout = {
|
||||
always-center-single-column = true;
|
||||
gaps = 24;
|
||||
gaps = config.rice.borders.gaps;
|
||||
default-column-width.proportion = 0.5;
|
||||
preset-column-widths = map (p: { proportion = p; }) [
|
||||
(2.0 / 3.0)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ ... }:
|
||||
{
|
||||
boot.kernelParams = [
|
||||
{ scope, ... }:
|
||||
scope "boot" {
|
||||
kernelParams = [
|
||||
"mitigations=off"
|
||||
"quiet"
|
||||
"loglevel=3"
|
||||
|
@ -8,18 +8,18 @@
|
|||
"rd.udev.log_level=3"
|
||||
"vt.global_cursor_default=0"
|
||||
];
|
||||
boot.initrd.availableKernelModules = [
|
||||
initrd.availableKernelModules = [
|
||||
"xhci_pci"
|
||||
"nvme"
|
||||
"usb_storage"
|
||||
"sd_mod"
|
||||
"rtsx_pci_sdmmc"
|
||||
];
|
||||
boot.initrd.kernelModules = [ "dm-snapshot" ];
|
||||
boot.kernelModules = [
|
||||
initrd.kernelModules = [ "dm-snapshot" ];
|
||||
kernelModules = [
|
||||
"iwlwifi"
|
||||
"kvm-intel"
|
||||
];
|
||||
boot.loader.systemd-boot.configurationLimit = 2;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
loader.systemd-boot.configurationLimit = 2;
|
||||
loader.efi.canTouchEfiVariables = true;
|
||||
}
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
{ ... }:
|
||||
{
|
||||
_: {
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/1C5C-8FF4";
|
||||
fsType = "vfat";
|
||||
};
|
||||
fileSystems = {
|
||||
"/boot" = {
|
||||
device = "/dev/disk/by-uuid/1C5C-8FF4";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/26389642-cf51-4c58-98e9-1fe491a11bb9";
|
||||
fsType = "ext4";
|
||||
"/" = {
|
||||
device = "/dev/disk/by-uuid/26389642-cf51-4c58-98e9-1fe491a11bb9";
|
||||
fsType = "ext4";
|
||||
};
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{ device = "/dev/disk/by-uuid/a732641d-1233-45a7-8614-53caed60f11b"; }
|
||||
];
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
{ config, ... }:
|
||||
{
|
||||
boot.initrd.availableKernelModules = [
|
||||
{ scope, ... }:
|
||||
scope "boot" {
|
||||
initrd.availableKernelModules = [
|
||||
"xhci_pci"
|
||||
"ahci"
|
||||
"usbcore"
|
||||
"sd_mod"
|
||||
];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.initrd.verbose = false;
|
||||
boot.kernelModules = [
|
||||
initrd.kernelModules = [ ];
|
||||
initrd.verbose = false;
|
||||
kernelModules = [
|
||||
"kvm-amd"
|
||||
"i2c-dev"
|
||||
];
|
||||
boot.consoleLogLevel = 0;
|
||||
boot.kernelParams = [
|
||||
consoleLogLevel = 0;
|
||||
kernelParams = [
|
||||
"mitigations=off"
|
||||
"preempt=full"
|
||||
"quiet"
|
||||
|
@ -22,18 +22,18 @@
|
|||
"rd.udev.log_level=3"
|
||||
"vt.global_cursor_default=0"
|
||||
];
|
||||
boot.supportedFilesystems = {
|
||||
supportedFilesystems = {
|
||||
ntfs = true;
|
||||
btrfs = true;
|
||||
};
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.plymouth = {
|
||||
loader.efi.canTouchEfiVariables = true;
|
||||
plymouth = {
|
||||
enable = true;
|
||||
# theme needs fixing
|
||||
# inherit (config.rice.plymouth) theme themePackages font;
|
||||
};
|
||||
|
||||
boot.loader.limine.extraEntries = ''
|
||||
loader.limine.extraEntries = ''
|
||||
/Windows
|
||||
protocol: efi
|
||||
path: boot():/EFI/Microsoft/Boot/bootmgfw.efi
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
{ ... }:
|
||||
{
|
||||
_: {
|
||||
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
|
|
|
@ -1,11 +1,16 @@
|
|||
{ inputs, config, ... }:
|
||||
{
|
||||
services.ollama = {
|
||||
inputs,
|
||||
config,
|
||||
scope,
|
||||
...
|
||||
}:
|
||||
scope "services" {
|
||||
ollama = {
|
||||
enable = true;
|
||||
user = "ollama";
|
||||
};
|
||||
|
||||
services.open-webui = {
|
||||
open-webui = {
|
||||
package = inputs.nixpkgs-stable.legacyPackages.x86_64-linux.open-webui;
|
||||
enable = true;
|
||||
port = 8088;
|
||||
|
|
|
@ -1,14 +1,11 @@
|
|||
{ ... }:
|
||||
{
|
||||
hm.programs.niri.settings.outputs = {
|
||||
"DP-1" = {
|
||||
transform.rotation = 90;
|
||||
scale = 1;
|
||||
};
|
||||
"DP-2" = {
|
||||
variable-refresh-rate = true;
|
||||
scale = 1;
|
||||
};
|
||||
{ scope, ... }:
|
||||
scope "hm.programs.niri.settings.outputs" {
|
||||
"DP-1" = {
|
||||
transform.rotation = 90;
|
||||
scale = 1;
|
||||
};
|
||||
"DP-2" = {
|
||||
variable-refresh-rate = true;
|
||||
scale = 1;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -3,7 +3,6 @@ let
|
|||
inherit (inputs) nixpkgs;
|
||||
inherit (nixpkgs) lib;
|
||||
recursivelyImport = import ./recursively-import.nix { inherit lib; };
|
||||
recursivePkgs = import ./recursive-pkgs.nix { inherit lib; };
|
||||
in
|
||||
{
|
||||
systems =
|
||||
|
@ -13,14 +12,20 @@ in
|
|||
lib.nixosSystem {
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
userPkgs = recursivePkgs ../pkg;
|
||||
mainUser = info.user;
|
||||
inherit (info) system;
|
||||
localPkgs = lib.packagesFromDirectoryRecursive {
|
||||
inherit (inputs.nixpkgs.legacyPackages.${info.system}) callPackage;
|
||||
directory = ../pkgs;
|
||||
};
|
||||
scope = import ./scope.nix { inherit lib; };
|
||||
mainUser = info.username;
|
||||
getPkgs = builtins.attrValues;
|
||||
};
|
||||
modules = [
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
inputs.hjem.nixosModules.hjem
|
||||
(lib.mkAliasOptionModule [ "hm" ] [ "home-manager" "users" info.user ])
|
||||
(lib.mkAliasOptionModule [ "home" ] [ "hjem" "users" info.user ])
|
||||
(lib.mkAliasOptionModule [ "hm" ] [ "home-manager" "users" info.username ])
|
||||
(lib.mkAliasOptionModule [ "home" ] [ "hjem" "users" info.username ])
|
||||
]
|
||||
++ (recursivelyImport info.imports);
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
let
|
||||
lock = builtins.fromJSON (builtins.readFile ../flake.lock);
|
||||
# we use lix's flake-compat fork here to "lazify" the flake inputs
|
||||
node = lock.nodes.root.inputs.__flake-compat;
|
||||
inherit (lock.nodes.${node}.locked) narHash rev url;
|
||||
flake-compat = builtins.fetchTarball {
|
||||
|
@ -8,6 +9,7 @@ let
|
|||
};
|
||||
flake = import flake-compat {
|
||||
src = ../.;
|
||||
# these options prevent eager store copies
|
||||
copySourceTreeToStore = false;
|
||||
useBuiltinsFetchTree = true;
|
||||
};
|
1
lib/scope.nix
Normal file
1
lib/scope.nix
Normal file
|
@ -0,0 +1 @@
|
|||
{ lib }: sc: mod: lib.strings.splitString "." sc |> (lib.flip lib.setAttrByPath) mod
|
|
@ -1,14 +0,0 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
pkgs.yaziPlugins.mkYaziPlugin {
|
||||
pname = "fr.yazi";
|
||||
version = "dirty-15-07-2025";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "lpnh";
|
||||
repo = "fr.yazi";
|
||||
rev = "3d32e55b7367334abaa91f36798ef723098d0a6b";
|
||||
hash = "sha256-CrKwFMaiEK+TNW6GRZzyt9MfOmjIb3vw0hBpBXyn16k=";
|
||||
};
|
||||
}
|
|
@ -1,4 +1,7 @@
|
|||
{ pkgs, palette }:
|
||||
{
|
||||
pkgs,
|
||||
palette ? { },
|
||||
}:
|
||||
let
|
||||
rendersvg = pkgs.runCommand "rendersvg" { } ''
|
||||
mkdir -p $out/bin
|
23
pkgs/metropolis-font.nix
Normal file
23
pkgs/metropolis-font.nix
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
stdenvNoCC,
|
||||
fetchzip,
|
||||
}:
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "metropolis-font";
|
||||
version = "5.2.5";
|
||||
src = fetchzip {
|
||||
name = "metropolis-font-base";
|
||||
url = "https://api.fontsource.org/v1/download/metropolis";
|
||||
extension = "zip";
|
||||
hash = "sha256-BH8iiJE7One2HXxVE9/VgQaxi+hWKujTNErELMvT4mw=";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -m644 --target $out/share/fonts/truetype/ -D $src/ttf/*.ttf
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
}
|
21
pkgs/ms-w98-ui-font.nix
Normal file
21
pkgs/ms-w98-ui-font.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
stdenvNoCC,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "ms-w98-ui-font";
|
||||
version = "1.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "MARTYR-X-LTD";
|
||||
repo = "ms-w98-ui";
|
||||
rev = "1333c17aa54f547025679ea05a37eee5a2a26429";
|
||||
hash = "sha256-yEbq8Hef4odL3pjGHxjDVE9lRCeiw7eekvUL5SbJ1Zw=";
|
||||
};
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -m644 --target $out/share/fonts/truetype/ -D $src/TTF/*.ttf
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
}
|
44
pkgs/oldschool-pc-fonts.nix
Normal file
44
pkgs/oldschool-pc-fonts.nix
Normal file
|
@ -0,0 +1,44 @@
|
|||
{
|
||||
lib,
|
||||
stdenvNoCC,
|
||||
fetchzip,
|
||||
style ? "mixed",
|
||||
baseVersion ? "2.2",
|
||||
}:
|
||||
let
|
||||
styles = builtins.mapAttrs (_: v: lib.escape [ " " "(" ")" ] v) {
|
||||
"bitmap" = "otb - Bm (linux bitmap)";
|
||||
"aspect" = "ttf - Ac (aspect-corrected)";
|
||||
"mixed" = "ttf - Mx (mixed outline+bitmap)";
|
||||
"pixel" = "ttf - Px (pixel outline)";
|
||||
};
|
||||
selectedStyle = styles.${style};
|
||||
in
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "oldschool-pc-font-pack";
|
||||
version = "${baseVersion}-${style}";
|
||||
src = fetchzip {
|
||||
name = "oldschool-pc-font-pack-base";
|
||||
url = "https://int10h.org/oldschool-pc-fonts/download/oldschool_pc_font_pack_v${baseVersion}_linux.zip";
|
||||
hash = "sha256-54U8tZzvivTSOgmGesj9QbIgkSTm9w4quMhsuEc0Xy4=";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
''
|
||||
+ (
|
||||
if (style == "bitmap") then
|
||||
''
|
||||
install -m644 --target $out/share/fonts/ -D $src/${selectedStyle}/*.otb
|
||||
''
|
||||
else
|
||||
''
|
||||
install -m644 --target $out/share/fonts/truetype/ -D $src/${selectedStyle}/*.ttf
|
||||
''
|
||||
)
|
||||
+ ''
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
})
|
44
pkgs/rbw-helper.nix
Normal file
44
pkgs/rbw-helper.nix
Normal file
|
@ -0,0 +1,44 @@
|
|||
{ pkgs, ... }:
|
||||
pkgs.writeTextFile {
|
||||
name = "rbw-helper";
|
||||
text = ''
|
||||
declare -A params
|
||||
|
||||
if [ "x$1" == "xget" ]; then
|
||||
read line
|
||||
while [ -n "$line" ]; do
|
||||
key=$\{line%%=*}
|
||||
value=$\{line#*=}
|
||||
params[$key]=$value
|
||||
read line
|
||||
done
|
||||
|
||||
if [ "x$\{params['protocol']}" != "xhttps" ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ -z "$\{params["host"]}" ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
rbw ls > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Please login to rbw to use git credential helper" > /dev/stderr
|
||||
exit
|
||||
fi
|
||||
|
||||
user=`rbw get --full $\{params["host"]} | grep "Username:" | cut -d' ' -f2-`
|
||||
pass=`rbw get $\{params["host"]}`
|
||||
|
||||
if [ "x$user" == "x" ] || [ "x$pass" == "x" ]; then
|
||||
echo "Couldn't find host in rbw DB." > /dev/stderr
|
||||
exit
|
||||
fi
|
||||
|
||||
echo username=$user
|
||||
echo password=$pass
|
||||
fi
|
||||
'';
|
||||
executable = true;
|
||||
destination = "/bin/git-credential-rw";
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
{ lib }:
|
||||
let
|
||||
getFiles =
|
||||
path:
|
||||
builtins.filter (i: lib.hasSuffix ".nix" (builtins.toString i)) (
|
||||
lib.filesystem.listFilesRecursive path
|
||||
);
|
||||
getPkgsAttrs =
|
||||
path:
|
||||
let
|
||||
prefix = builtins.toString path;
|
||||
in
|
||||
map (
|
||||
file:
|
||||
let
|
||||
name = lib.pipe file [
|
||||
builtins.toString
|
||||
(lib.removePrefix (prefix + "/"))
|
||||
(lib.removeSuffix ".nix")
|
||||
];
|
||||
in
|
||||
{
|
||||
"${name}" = file;
|
||||
}
|
||||
) (getFiles path);
|
||||
getAllPkgs = path: lib.mergeAttrsList (getPkgsAttrs path);
|
||||
in
|
||||
getAllPkgs
|
Loading…
Add table
Add a link
Reference in a new issue