mirror of
https://github.com/daylinmorgan/oizys.git
synced 2024-12-24 07:50:43 -06:00
Compare commits
9 commits
2e4e12f369
...
98dc2b807b
Author | SHA1 | Date | |
---|---|---|---|
98dc2b807b | |||
433eeba01d | |||
fc0f011be5 | |||
52fb1204d6 | |||
1f1cf3a6be | |||
8aade59df9 | |||
198250d7e8 | |||
08963267d5 | |||
18f89b41a8 |
12 changed files with 178 additions and 54 deletions
|
@ -1,4 +1,4 @@
|
||||||
{ enabled, ... }:
|
{ enabled, config, ... }:
|
||||||
{
|
{
|
||||||
oizys = {
|
oizys = {
|
||||||
vpn = enabled;
|
vpn = enabled;
|
||||||
|
@ -11,6 +11,7 @@
|
||||||
};
|
};
|
||||||
vbox = enabled;
|
vbox = enabled;
|
||||||
backups = enabled;
|
backups = enabled;
|
||||||
|
hp-scanner = enabled;
|
||||||
languages = [
|
languages = [
|
||||||
"misc"
|
"misc"
|
||||||
"nim"
|
"nim"
|
||||||
|
@ -21,6 +22,7 @@
|
||||||
"tex"
|
"tex"
|
||||||
"zig"
|
"zig"
|
||||||
];
|
];
|
||||||
|
llm = enabled;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.restic.backups.gdrive = {
|
services.restic.backups.gdrive = {
|
||||||
|
@ -33,5 +35,5 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
users.users.daylin.extraGroups = [ "audio" ];
|
users.users.${config.oizys.user}.extraGroups = [ "audio" ];
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,13 +7,6 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
services.printing = enabled;
|
services.printing = enabled;
|
||||||
hardware.sane = enabled // {
|
|
||||||
extraBackends = [ pkgs.hplipWithPlugin ];
|
|
||||||
};
|
|
||||||
users.users.daylin.extraGroups = [
|
|
||||||
"scanner"
|
|
||||||
"lp"
|
|
||||||
];
|
|
||||||
|
|
||||||
# https://github.com/NixOS/nixos-hardware/blob/c478b3d56969006e015e55aaece4931f3600c1b2/lenovo/thinkpad/x1/9th-gen/default.nix
|
# https://github.com/NixOS/nixos-hardware/blob/c478b3d56969006e015e55aaece4931f3600c1b2/lenovo/thinkpad/x1/9th-gen/default.nix
|
||||||
# https://github.com/NixOS/nixos-hardware/blob/c478b3d56969006e015e55aaece4931f3600c1b2/common/pc/ssd/default.nix
|
# https://github.com/NixOS/nixos-hardware/blob/c478b3d56969006e015e55aaece4931f3600c1b2/common/pc/ssd/default.nix
|
||||||
|
|
|
@ -10,12 +10,22 @@ let
|
||||||
flake = flakeFromSystem system;
|
flake = flakeFromSystem system;
|
||||||
pkgs = import inputs.nixpkgs {
|
pkgs = import inputs.nixpkgs {
|
||||||
inherit system;
|
inherit system;
|
||||||
overlays = map [
|
overlays = [
|
||||||
"lix-module"
|
(flake.overlay "lix-module")
|
||||||
"hyprland-contrib"
|
(flake.overlay "hyprland-contrib")
|
||||||
"nixpkgs-wayland"
|
(flake.overlay "nixpkgs-wayland")
|
||||||
] flake.overlay;
|
];
|
||||||
};
|
};
|
||||||
|
myPackages = map [
|
||||||
|
"tsm"
|
||||||
|
"hyprman"
|
||||||
|
"zls"
|
||||||
|
] flake.pkg;
|
||||||
|
|
||||||
|
hyprPackages = with (flake.pkgs "hyprland"); [
|
||||||
|
default
|
||||||
|
xdg-desktop-portal-hyprland
|
||||||
|
];
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
makePackages =
|
makePackages =
|
||||||
|
@ -23,24 +33,18 @@ in
|
||||||
{
|
{
|
||||||
src = ./.;
|
src = ./.;
|
||||||
nativeBuildInputs =
|
nativeBuildInputs =
|
||||||
[
|
(with pkgs; [
|
||||||
pkgs.pixi
|
pixi
|
||||||
pkgs.swww
|
swww
|
||||||
pkgs.nixVersions.stable
|
nixVersions.stable
|
||||||
]
|
|
||||||
++ (map [
|
|
||||||
"tsm"
|
|
||||||
"hyprman"
|
|
||||||
"zls"
|
|
||||||
] flake.pkg)
|
|
||||||
++ (with flake.pkgs "hyprland"; [
|
|
||||||
default
|
|
||||||
xdg-desktop-portal-hyprland
|
|
||||||
])
|
])
|
||||||
++ [
|
++ [
|
||||||
(flake.pkgs "roc").full
|
(flake.pkgs "roc").full
|
||||||
(flake.pkgs "zig2nix").zig.master.bin
|
(flake.pkgs "zig2nix").zig.master.bin
|
||||||
];
|
]
|
||||||
|
++ myPackages
|
||||||
|
++ hyprPackages;
|
||||||
|
|
||||||
}
|
}
|
||||||
''
|
''
|
||||||
mkdir "$out"
|
mkdir "$out"
|
||||||
|
|
|
@ -6,13 +6,6 @@
|
||||||
flake,
|
flake,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
|
||||||
activate-snippet = ''
|
|
||||||
if [ -z "$WAYLAND_DISPLAY" ] && [ "$XDG_VTNR" = 1 ]; then
|
|
||||||
exec Hyprland
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
|
|
||||||
mkOizysModule config "hyprland" {
|
mkOizysModule config "hyprland" {
|
||||||
programs.hyprland = enabled;
|
programs.hyprland = enabled;
|
||||||
|
@ -47,6 +40,9 @@ mkOizysModule config "hyprland" {
|
||||||
swww
|
swww
|
||||||
|
|
||||||
catppuccin-cursors.mochaDark
|
catppuccin-cursors.mochaDark
|
||||||
|
|
||||||
|
# not even clear why I need to add this but ¯\_(ツ)_/¯
|
||||||
|
kdePackages.qtwayland
|
||||||
])
|
])
|
||||||
++ [ (flake.pkg "hyprman") ]
|
++ [ (flake.pkg "hyprman") ]
|
||||||
|
|
||||||
|
@ -59,20 +55,30 @@ mkOizysModule config "hyprland" {
|
||||||
#
|
#
|
||||||
# dunst
|
# dunst
|
||||||
]);
|
]);
|
||||||
|
|
||||||
services.getty = {
|
|
||||||
extraArgs = [ "--skip-login" ];
|
|
||||||
loginOptions = "-p -- ${config.oizys.user}";
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.etc = {
|
|
||||||
"bashrc.local".text = activate-snippet;
|
|
||||||
"zshenv.local".text = activate-snippet;
|
|
||||||
};
|
|
||||||
|
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
(flake.overlay "hyprland-contrib")
|
(flake.overlay "hyprland-contrib")
|
||||||
# (overlayFrom "nixpkgs-wayland")
|
# (overlayFrom "nixpkgs-wayland")
|
||||||
# (overlayFrom "hyprland")
|
# (overlayFrom "hyprland")
|
||||||
];
|
];
|
||||||
|
# using the below to autostart Hyprland
|
||||||
|
# broke my keybindings that were working before
|
||||||
|
# services.getty = {
|
||||||
|
# extraArgs = [ "--skip-login" ];
|
||||||
|
# loginOptions = "-p -- ${config.oizys.user}";
|
||||||
|
# };
|
||||||
|
#
|
||||||
|
# environment.etc =
|
||||||
|
# let
|
||||||
|
# activate-snippet = ''
|
||||||
|
# if [ -z "$WAYLAND_DISPLAY" ] && [ "$XDG_VTNR" = 1 ]; then
|
||||||
|
# exec Hyprland
|
||||||
|
# fi
|
||||||
|
# '';
|
||||||
|
# in
|
||||||
|
# {
|
||||||
|
# "bashrc.local".text = activate-snippet;
|
||||||
|
# "zshenv.local".text = activate-snippet;
|
||||||
|
# };
|
||||||
|
#
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
24
modules/llm/default.nix
Normal file
24
modules/llm/default.nix
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
enabled,
|
||||||
|
mkOizysModule,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (pkgs) python3Packages;
|
||||||
|
llm-ollama = python3Packages.callPackage ./llm-plugins/llm-ollama { };
|
||||||
|
llm-claude3 = python3Packages.callPackage ./llm-plugins/llm-claude-3 { };
|
||||||
|
llm = (
|
||||||
|
pkgs.llm.withPlugins [
|
||||||
|
llm-ollama
|
||||||
|
llm-claude3
|
||||||
|
]
|
||||||
|
);
|
||||||
|
in
|
||||||
|
|
||||||
|
mkOizysModule config "llm" {
|
||||||
|
services.ollama = enabled;
|
||||||
|
environment.systemPackages = [ llm ];
|
||||||
|
}
|
34
modules/llm/llm-plugins/llm-claude-3/default.nix
Normal file
34
modules/llm/llm-plugins/llm-claude-3/default.nix
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
{
|
||||||
|
buildPythonPackage,
|
||||||
|
fetchFromGitHub,
|
||||||
|
|
||||||
|
# build-system
|
||||||
|
setuptools,
|
||||||
|
wheel,
|
||||||
|
|
||||||
|
# deps
|
||||||
|
anthropic,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "llm-claude-3";
|
||||||
|
version = "0.4";
|
||||||
|
pyproject = true;
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "simonw";
|
||||||
|
repo = "llm-claude-3";
|
||||||
|
rev = version;
|
||||||
|
hash = "sha256-5qF5BK319PNzB4XsLdYvtyq/SxBDdHJ9IoKWEnvNRp4=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
setuptools
|
||||||
|
wheel
|
||||||
|
];
|
||||||
|
|
||||||
|
dependencies = [ anthropic ];
|
||||||
|
|
||||||
|
dontCheckRuntimeDeps = true;
|
||||||
|
}
|
33
modules/llm/llm-plugins/llm-ollama/default.nix
Normal file
33
modules/llm/llm-plugins/llm-ollama/default.nix
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
{
|
||||||
|
buildPythonPackage,
|
||||||
|
fetchPypi,
|
||||||
|
|
||||||
|
# build-system
|
||||||
|
setuptools,
|
||||||
|
|
||||||
|
# deps
|
||||||
|
ollama,
|
||||||
|
pydantic,
|
||||||
|
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "llm-ollama";
|
||||||
|
version = "0.5.0";
|
||||||
|
pyproject = true;
|
||||||
|
src = fetchPypi {
|
||||||
|
inherit version;
|
||||||
|
pname = "llm_ollama";
|
||||||
|
hash = "sha256-M3FF9fAZ2rr+toKoz/rLRPZxB7LIHqmZQXJBdKR4fVk=";
|
||||||
|
};
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
ollama
|
||||||
|
pydantic
|
||||||
|
];
|
||||||
|
|
||||||
|
build-system = [ setuptools ];
|
||||||
|
|
||||||
|
# will only be used in environment with llm installed
|
||||||
|
dontCheckRuntimeDeps = true;
|
||||||
|
}
|
|
@ -12,6 +12,7 @@ let
|
||||||
mkOption
|
mkOption
|
||||||
literalExpression
|
literalExpression
|
||||||
types
|
types
|
||||||
|
optionals
|
||||||
;
|
;
|
||||||
cfg = config.oizys.nix-ld;
|
cfg = config.oizys.nix-ld;
|
||||||
|
|
||||||
|
@ -103,8 +104,7 @@ in
|
||||||
|
|
||||||
config =
|
config =
|
||||||
let
|
let
|
||||||
libs =
|
libs = defaultLibraries ++ cfg.extra-libraries ++ (optionals cfg.overkill.enable overkillLibraries);
|
||||||
defaultLibraries ++ cfg.extra-libraries ++ (if cfg.overkill.enable then overkillLibraries else [ ]);
|
|
||||||
in
|
in
|
||||||
mkIf cfg.enable {
|
mkIf cfg.enable {
|
||||||
programs.nix-ld = enabled // {
|
programs.nix-ld = enabled // {
|
||||||
|
|
|
@ -28,6 +28,7 @@ in
|
||||||
|
|
||||||
gui
|
gui
|
||||||
fonts
|
fonts
|
||||||
|
hp-scanner
|
||||||
|
|
||||||
languages
|
languages
|
||||||
|
|
||||||
|
@ -37,6 +38,8 @@ in
|
||||||
|
|
||||||
nix-ld
|
nix-ld
|
||||||
restic
|
restic
|
||||||
|
|
||||||
|
llm
|
||||||
];
|
];
|
||||||
|
|
||||||
options.oizys = {
|
options.oizys = {
|
||||||
|
|
|
@ -25,6 +25,7 @@ let
|
||||||
kind ? "braille",
|
kind ? "braille",
|
||||||
}:
|
}:
|
||||||
"[1;3${number}m\n" + runes.${name}.${kind} + "\n[0m";
|
"[1;3${number}m\n" + runes.${name}.${kind} + "\n[0m";
|
||||||
|
|
||||||
cfg = config.oizys.rune;
|
cfg = config.oizys.rune;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
|
@ -20,7 +20,7 @@ def convert [] {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
def nix [] {
|
def nix-file [] {
|
||||||
let rune = $in | convert
|
let rune = $in | convert
|
||||||
$"{
|
$"{
|
||||||
braille = ''
|
braille = ''
|
||||||
|
@ -34,8 +34,7 @@ ascii = ''
|
||||||
}
|
}
|
||||||
|
|
||||||
def col [] {
|
def col [] {
|
||||||
$in
|
$in | reduce --fold "" {|it, acc|
|
||||||
| reduce --fold "" {|it, acc|
|
|
||||||
$acc + $'<td><img src="($it.url)"></td>'
|
$acc + $'<td><img src="($it.url)"></td>'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -45,7 +44,7 @@ def row [] { $"<tr>($in)</tr>" }
|
||||||
def readme [] {
|
def readme [] {
|
||||||
let runes = $in
|
let runes = $in
|
||||||
let dims = { rows: 2 cols: 2 }
|
let dims = { rows: 2 cols: 2 }
|
||||||
let cells = ($runes | chunks $dims.rows | each { $in | col | row})
|
let cells = ($runes | chunks $dims.rows | each { col | row})
|
||||||
let table = [ "<table>" ...$cells "</table>" ] | str join
|
let table = [ "<table>" ...$cells "</table>" ] | str join
|
||||||
|
|
||||||
$"# Runes\n\n($table)\n"
|
$"# Runes\n\n($table)\n"
|
||||||
|
@ -56,7 +55,7 @@ $runes
|
||||||
| save -f "README.md"
|
| save -f "README.md"
|
||||||
|
|
||||||
$runes
|
$runes
|
||||||
| each {|rune| $rune | nix }
|
| each { nix-file }
|
||||||
|
|
||||||
|
|
||||||
print "don't forget to run `nix fmt`!"
|
nix fmt
|
||||||
|
|
25
modules/services/scanner/hp-scanner.nix
Normal file
25
modules/services/scanner/hp-scanner.nix
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
{
|
||||||
|
enabled,
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
mkOizysModule,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
mkOizysModule config "hp-scanner" {
|
||||||
|
|
||||||
|
environment.systemPackages = [ pkgs.kdePackages.skanpage ];
|
||||||
|
|
||||||
|
hardware.sane = enabled // {
|
||||||
|
extraBackends = [ pkgs.hplipWithPlugin ];
|
||||||
|
};
|
||||||
|
|
||||||
|
services.avahi = enabled // {
|
||||||
|
nssmdns4 = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.${config.oizys.user}.extraGroups = [
|
||||||
|
"scanner"
|
||||||
|
"lp"
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in a new issue