Compare commits
13 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e1c00acd71 | ||
|
|
3e350bc425 | ||
|
|
d3debcc799 | ||
|
|
ec5364d764 | ||
|
|
3d5d391b24 | ||
|
|
171623d9a4 | ||
|
|
d77bfaeef9 | ||
|
|
33a35705c7 | ||
|
|
e3b2d5539e | ||
|
|
d4ede85a43 | ||
|
|
e579577ebc | ||
|
|
7bb02faafc | ||
|
|
6cc1cdefd0 |
15 changed files with 300 additions and 215 deletions
161
flake.lock
generated
161
flake.lock
generated
|
|
@ -1,16 +1,38 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
|
"blueprint": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"llm-agents",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1763308703,
|
||||||
|
"narHash": "sha256-O9Y+Wer8wOh+N+4kcCK5p/VLrXyX+ktk0/s3HdZvJzk=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "blueprint",
|
||||||
|
"rev": "5a9bba070f801d63e2af3c9ef00b86b212429f4f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "blueprint",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"emacs-overlay": {
|
"emacs-overlay": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"nixpkgs-stable": "nixpkgs-stable"
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764952076,
|
"lastModified": 1766423654,
|
||||||
"narHash": "sha256-Tj+87I0ogmtjC/jEpTiO1wwu8M2eaY+7xDXNKz135Xk=",
|
"narHash": "sha256-ko2vQ6kf8dXLMTq2bnNazbPAHvdsf+BrWQfr4acRNDo=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "emacs-overlay",
|
"repo": "emacs-overlay",
|
||||||
"rev": "d1e8a6a2036f6c4283892cbc9966c13a34d37a89",
|
"rev": "d06edf59a5f5c1b15d607ec2e514cf2f8a71a591",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -26,11 +48,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764952935,
|
"lastModified": 1766387499,
|
||||||
"narHash": "sha256-cRPB2zESVMjIGxJ49qj4t4qnT0ae44E+fS/mkfOS/BY=",
|
"narHash": "sha256-AjK3/UKDzeXFeYNLVBaJ3+HLE9he1g5UrlNd4/BM3eA=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "519828bf1c97f8bc2ed2d3b79214067047d3c67d",
|
"rev": "527ad07e6625302b648ed3b28c34b62a79bd103e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -40,13 +62,33 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"llm-agents": {
|
||||||
|
"inputs": {
|
||||||
|
"blueprint": "blueprint",
|
||||||
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
"treefmt-nix": "treefmt-nix"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1766441132,
|
||||||
|
"narHash": "sha256-bd6d2lQiNaIEIjRZo7yFthyYJ8uugnRJfWn8SuOy8i4=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "llm-agents.nix",
|
||||||
|
"rev": "950a181bbb93b8de506b1db15fec242d273d2c1d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "llm-agents.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764667669,
|
"lastModified": 1766309749,
|
||||||
"narHash": "sha256-7WUCZfmqLAssbDqwg9cUDAXrSoXN79eEEq17qhTNM/Y=",
|
"narHash": "sha256-3xY8CZ4rSnQ0NqGhMKAy5vgC+2IVK0NoVEzDoOh4DA4=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "418468ac9527e799809c900eda37cbff999199b6",
|
"rev": "a6531044f6d0bef691ea18d4d4ce44d0daa6e816",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -58,11 +100,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764836381,
|
"lastModified": 1766014764,
|
||||||
"narHash": "sha256-8jemYbbW9EBttQKHep7Rj8kzXaxsrk/lACdXA2DN5Xk=",
|
"narHash": "sha256-+73VffE5GP5fvbib6Hs1Su6LehG+9UV1Kzs90T2gBLA=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "ff06bd3398fb1bea6c937039ece7e7c8aa396ebf",
|
"rev": "2b0d2b456e4e8452cf1c16d00118d145f31160f9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -74,11 +116,27 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764667669,
|
"lastModified": 1766314097,
|
||||||
"narHash": "sha256-7WUCZfmqLAssbDqwg9cUDAXrSoXN79eEEq17qhTNM/Y=",
|
"narHash": "sha256-laJftWbghBehazn/zxVJ8NdENVgjccsWAdAqKXhErrM=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "306ea70f9eb0fb4e040f8540e2deab32ed7e2055",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1766309749,
|
||||||
|
"narHash": "sha256-3xY8CZ4rSnQ0NqGhMKAy5vgC+2IVK0NoVEzDoOh4DA4=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "418468ac9527e799809c900eda37cbff999199b6",
|
"rev": "a6531044f6d0bef691ea18d4d4ce44d0daa6e816",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -88,13 +146,13 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764242076,
|
"lastModified": 1766070988,
|
||||||
"narHash": "sha256-sKoIWfnijJ0+9e4wRvIgm/HgE27bzwQxcEmo2J/gNpI=",
|
"narHash": "sha256-G/WVghka6c4bAzMhTwT2vjLccg/awmHkdKSd2JrycLc=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "2fad6eac6077f03fe109c4d4eb171cf96791faa4",
|
"rev": "c6245e83d836d0433170a16eb185cefe0572f8b8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -107,11 +165,11 @@
|
||||||
"nvim-treesitter": {
|
"nvim-treesitter": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764266060,
|
"lastModified": 1766230815,
|
||||||
"narHash": "sha256-j2o5c4qgVYQs5DJpSDX1eMsNonDkhyhEQQYMYW2YS7o=",
|
"narHash": "sha256-+2PF6Q2uwRs/gbhKvR4jF8rYhe0HoZfwMwZCoZinp/o=",
|
||||||
"owner": "nvim-treesitter",
|
"owner": "nvim-treesitter",
|
||||||
"repo": "nvim-treesitter",
|
"repo": "nvim-treesitter",
|
||||||
"rev": "17885756e63df73ed90db62e4630f744ceda6514",
|
"rev": "8cdffc6d334731ce3703b6d870a5a34fd878208a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -123,16 +181,16 @@
|
||||||
},
|
},
|
||||||
"nvim-treesitter-main": {
|
"nvim-treesitter-main": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_3",
|
"nixpkgs": "nixpkgs_4",
|
||||||
"nvim-treesitter": "nvim-treesitter",
|
"nvim-treesitter": "nvim-treesitter",
|
||||||
"nvim-treesitter-textobjects": "nvim-treesitter-textobjects"
|
"nvim-treesitter-textobjects": "nvim-treesitter-textobjects"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764561751,
|
"lastModified": 1766296113,
|
||||||
"narHash": "sha256-gI/1xLdvXvrkZYTArFSW/2bydHiIJvln6sePNT4KHAc=",
|
"narHash": "sha256-s6bymukQTFg6kAsgogwbCda+Fe+Su3T9rJE0xZ8s9R0=",
|
||||||
"owner": "iofq",
|
"owner": "iofq",
|
||||||
"repo": "nvim-treesitter-main",
|
"repo": "nvim-treesitter-main",
|
||||||
"rev": "9f104282ca15b762fd6523a82ec9a6c182170489",
|
"rev": "5ca3b0dd2d3d00fb597ba8c316eb3ca79ea17fbc",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -144,11 +202,11 @@
|
||||||
"nvim-treesitter-textobjects": {
|
"nvim-treesitter-textobjects": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764294350,
|
"lastModified": 1766243280,
|
||||||
"narHash": "sha256-M7Wfyg1cHXOHKzkhei3GfozK2tsUZ7LZoOdSiHY0dG4=",
|
"narHash": "sha256-hbVwqoo0WRTVKIhsG5N6IXnmOVrrQzGuE4x0rEMYro0=",
|
||||||
"owner": "nvim-treesitter",
|
"owner": "nvim-treesitter",
|
||||||
"repo": "nvim-treesitter-textobjects",
|
"repo": "nvim-treesitter-textobjects",
|
||||||
"rev": "63c4dce4a56312ef1bdeafd16bdefa008fcc950a",
|
"rev": "e91c585ac0ee760198dabc1fad2e6227effdcd5e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -162,19 +220,56 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"emacs-overlay": "emacs-overlay",
|
"emacs-overlay": "emacs-overlay",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"llm-agents": "llm-agents",
|
||||||
|
"nixpkgs": "nixpkgs_3",
|
||||||
"nvim-treesitter-main": "nvim-treesitter-main",
|
"nvim-treesitter-main": "nvim-treesitter-main",
|
||||||
"vim-org-roam": "vim-org-roam"
|
"vim-org-roam": "vim-org-roam"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"treefmt-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"llm-agents",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1766000401,
|
||||||
|
"narHash": "sha256-+cqN4PJz9y0JQXfAK5J1drd0U05D5fcAGhzhfVrDlsI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"rev": "42d96e75aa56a3f70cab7e7dc4a32868db28e8fd",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"vim-org-roam": {
|
"vim-org-roam": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1764552004,
|
"lastModified": 1765802816,
|
||||||
"narHash": "sha256-jtQeT+wVz7CHA34aQYFjROAV5A24aDuduOjcn+LPN3o=",
|
"narHash": "sha256-Zzq4JK3iFBVr8QmMmv5vm/R8QyYqmL44fRMZa15m7eo=",
|
||||||
"owner": "chipsenkbeil",
|
"owner": "chipsenkbeil",
|
||||||
"repo": "org-roam.nvim",
|
"repo": "org-roam.nvim",
|
||||||
"rev": "087b7ba015a7d164c16d24567727117a0b0c43a6",
|
"rev": "74276a94e9e4af463e7ba35c22259eeced9c90f9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@
|
||||||
url = "github:chipsenkbeil/org-roam.nvim";
|
url = "github:chipsenkbeil/org-roam.nvim";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
|
llm-agents.url = "github:numtide/llm-agents.nix";
|
||||||
# Workaround until nvim-treesitter main branch is used in nixpkgs
|
# Workaround until nvim-treesitter main branch is used in nixpkgs
|
||||||
nvim-treesitter-main.url = "github:iofq/nvim-treesitter-main";
|
nvim-treesitter-main.url = "github:iofq/nvim-treesitter-main";
|
||||||
};
|
};
|
||||||
|
|
@ -40,7 +41,7 @@
|
||||||
"mongodb-compass"
|
"mongodb-compass"
|
||||||
"nvidia-x11"
|
"nvidia-x11"
|
||||||
"nvidia-settings"
|
"nvidia-settings"
|
||||||
"idea-ultimate"
|
"idea"
|
||||||
];
|
];
|
||||||
overlays =
|
overlays =
|
||||||
extraOverlays
|
extraOverlays
|
||||||
|
|
|
||||||
|
|
@ -1,114 +0,0 @@
|
||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
imports = [ ./hardware-configuration.nix ];
|
|
||||||
|
|
||||||
modules = {
|
|
||||||
desktop.wm.enable = true;
|
|
||||||
editor = {
|
|
||||||
vim.enable = true;
|
|
||||||
emacs.enable = true;
|
|
||||||
};
|
|
||||||
services = {
|
|
||||||
flatpak.enable = true;
|
|
||||||
belgian-eid.enable = true;
|
|
||||||
docker.enable = true;
|
|
||||||
libvirt.enable = true;
|
|
||||||
languagetool.enable = true;
|
|
||||||
work-proxy.enable = true;
|
|
||||||
};
|
|
||||||
media = {
|
|
||||||
mpd.enable = true;
|
|
||||||
ncmpcpp.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
user.name = "froidmpa";
|
|
||||||
|
|
||||||
# Monitor backlight control
|
|
||||||
programs.light.enable = true;
|
|
||||||
|
|
||||||
services.tlp.enable = true;
|
|
||||||
|
|
||||||
home-manager.users.${config.user.name} =
|
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
services.network-manager-applet.enable = true;
|
|
||||||
services.blueman-applet.enable = true;
|
|
||||||
wayland.windowManager.hyprland.settings = {
|
|
||||||
monitor = [
|
|
||||||
"eDP-1, 1920x1080, 0x720, 1.5"
|
|
||||||
"DP-1, 1920x1080, 0x0, 1.5"
|
|
||||||
];
|
|
||||||
|
|
||||||
workspace = [
|
|
||||||
"w[tv1], gapsout:0, gapsin:0"
|
|
||||||
"f[1], gapsout:0, gapsin:0"
|
|
||||||
];
|
|
||||||
windowrulev2 = [
|
|
||||||
"bordersize 0, floating:0, onworkspace:w[tv1]"
|
|
||||||
"rounding 0, floating:0, onworkspace:w[tv1]"
|
|
||||||
"bordersize 0, floating:0, onworkspace:f[1]"
|
|
||||||
"rounding 0, floating:0, onworkspace:f[1]"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.pipewire.wireplumber.extraConfig = {
|
|
||||||
"monitor.bluez.properties" = {
|
|
||||||
"bluez5.enable-sbc-xq" = true;
|
|
||||||
"bluez5.enable-msbc" = true;
|
|
||||||
"bluez5.enable-hw-volume" = true;
|
|
||||||
"bluez5.roles" = [
|
|
||||||
"hsp_hs"
|
|
||||||
"hsp_ag"
|
|
||||||
"hfp_hf"
|
|
||||||
"hfp_ag"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.tailscale.enable = true;
|
|
||||||
|
|
||||||
services.openssh = {
|
|
||||||
enable = true;
|
|
||||||
settings.PasswordAuthentication = false;
|
|
||||||
listenAddresses = [
|
|
||||||
{
|
|
||||||
# Tailscale interface
|
|
||||||
addr = "100.64.0.1";
|
|
||||||
port = 22;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
services.logind.settings.Login.HandleLidSwitch = "ignore";
|
|
||||||
users.users.${config.user.name} = {
|
|
||||||
openssh.authorizedKeys.keyFiles = [
|
|
||||||
../../ssh_keys/phfroidmont-desktop.pub
|
|
||||||
../../ssh_keys/phfroidmont-stellaris.pub
|
|
||||||
];
|
|
||||||
extraGroups = [ "video" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
nix = {
|
|
||||||
distributedBuilds = true;
|
|
||||||
buildMachines = [
|
|
||||||
{
|
|
||||||
hostName = "hel1.banditlair.com";
|
|
||||||
sshUser = "nix-ssh";
|
|
||||||
system = "x86_64-linux";
|
|
||||||
supportedFeatures = [
|
|
||||||
"nixos-test"
|
|
||||||
"benchmark"
|
|
||||||
"big-parallel"
|
|
||||||
"kvm"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
settings = {
|
|
||||||
substituters = [ "ssh://nix-ssh@hel1.banditlair.com" ];
|
|
||||||
trusted-public-keys = [ "hel1.banditlair.com:stzB4xe5QTFvSABoP11ZpNzLDCRZ93PExk0Z/gOzW3g=" ];
|
|
||||||
builders-use-substitutes = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
system.stateVersion = "21.05";
|
|
||||||
}
|
|
||||||
|
|
@ -1,58 +0,0 @@
|
||||||
{ modulesPath, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
|
||||||
|
|
||||||
boot = {
|
|
||||||
initrd = {
|
|
||||||
availableKernelModules = [
|
|
||||||
"nvme"
|
|
||||||
"xhci_pci"
|
|
||||||
"sdhci_pci"
|
|
||||||
];
|
|
||||||
kernelModules = [ "dm-snapshot" ];
|
|
||||||
};
|
|
||||||
kernelModules = [ "kvm-amd" ];
|
|
||||||
# Required, otherwise the kernel freezes on boot
|
|
||||||
kernelParams = [
|
|
||||||
"amd_iommu=on"
|
|
||||||
"iommu=pt"
|
|
||||||
"pci=noats"
|
|
||||||
];
|
|
||||||
extraModulePackages = [ ];
|
|
||||||
loader.systemd-boot.enable = true;
|
|
||||||
loader.efi.canTouchEfiVariables = true;
|
|
||||||
initrd.luks.devices."crypted".device = "/dev/disk/by-uuid/1e900b2e-daea-4558-b18f-3d3a5843de61";
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.cpu.amd.updateMicrocode = true;
|
|
||||||
|
|
||||||
fileSystems."/" = {
|
|
||||||
device = "/dev/disk/by-uuid/a8abad9b-5615-4887-8431-3d80b78d073e";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot" = {
|
|
||||||
device = "/dev/disk/by-uuid/077C-758A";
|
|
||||||
fsType = "vfat";
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [ { device = "/dev/disk/by-uuid/bb8fa9ef-9b8f-413d-913a-6c891649a954"; } ];
|
|
||||||
|
|
||||||
hardware = {
|
|
||||||
bluetooth = {
|
|
||||||
enable = true;
|
|
||||||
# Enable A2DP Sink
|
|
||||||
settings = {
|
|
||||||
General = {
|
|
||||||
Enable = "Source,Sink,Media,Socket";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.networkmanager.enable = true;
|
|
||||||
|
|
||||||
services.blueman.enable = true;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -23,6 +23,7 @@
|
||||||
steam.enable = true;
|
steam.enable = true;
|
||||||
lutris.enable = true;
|
lutris.enable = true;
|
||||||
};
|
};
|
||||||
|
ai.opencode.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
user.name = "froidmpa";
|
user.name = "froidmpa";
|
||||||
|
|
@ -63,10 +64,13 @@
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
users.users.root.openssh.authorizedKeys.keyFiles = [
|
|
||||||
../../ssh_keys/phfroidmont-laptop.pub
|
users.users.${config.user.name} = {
|
||||||
../../ssh_keys/phfroidmont-stellaris.pub
|
openssh.authorizedKeys.keyFiles = [
|
||||||
];
|
../../ssh_keys/phfroidmont-desktop.pub
|
||||||
|
../../ssh_keys/phfroidmont-stellaris.pub
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
# Allow to externally control MPD
|
# Allow to externally control MPD
|
||||||
networking.firewall.allowedTCPPorts = [ 6600 ];
|
networking.firewall.allowedTCPPorts = [ 6600 ];
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
users.users.root.openssh.authorizedKeys.keyFiles = [
|
users.users.root.openssh.authorizedKeys.keyFiles = [
|
||||||
../../ssh_keys/phfroidmont-desktop.pub
|
../../ssh_keys/phfroidmont-desktop.pub
|
||||||
../../ssh_keys/phfroidmont-laptop.pub
|
../../ssh_keys/phfroidmont-stellaris.pub
|
||||||
];
|
];
|
||||||
|
|
||||||
services.adguardhome = {
|
services.adguardhome = {
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@
|
||||||
steam.enable = true;
|
steam.enable = true;
|
||||||
lutris.enable = true;
|
lutris.enable = true;
|
||||||
};
|
};
|
||||||
|
ai.opencode.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Monitor backlight control
|
# Monitor backlight control
|
||||||
|
|
@ -115,7 +116,6 @@
|
||||||
users.users.${config.user.name} = {
|
users.users.${config.user.name} = {
|
||||||
openssh.authorizedKeys.keyFiles = [
|
openssh.authorizedKeys.keyFiles = [
|
||||||
../../ssh_keys/phfroidmont-desktop.pub
|
../../ssh_keys/phfroidmont-desktop.pub
|
||||||
../../ssh_keys/phfroidmont-laptop.pub
|
|
||||||
];
|
];
|
||||||
extraGroups = [ "video" ];
|
extraGroups = [ "video" ];
|
||||||
};
|
};
|
||||||
|
|
|
||||||
93
modules/ai/opencode.nix
Normal file
93
modules/ai/opencode.nix
Normal file
|
|
@ -0,0 +1,93 @@
|
||||||
|
{
|
||||||
|
inputs,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.modules.ai.opencode;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.modules.ai.opencode = {
|
||||||
|
enable = lib.my.mkBoolOpt false;
|
||||||
|
};
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
home-manager.users.${config.user.name} =
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
programs.opencode = {
|
||||||
|
enable = true;
|
||||||
|
package = inputs.llm-agents.packages.${pkgs.system}.opencode;
|
||||||
|
settings = {
|
||||||
|
model = "glm_4_5_air";
|
||||||
|
permission = {
|
||||||
|
bash = "ask";
|
||||||
|
edit = "ask";
|
||||||
|
};
|
||||||
|
provider = {
|
||||||
|
vllm = {
|
||||||
|
npm = "@ai-sdk/openai-compatible";
|
||||||
|
name = "vLLM";
|
||||||
|
options = {
|
||||||
|
baseURL = "http://model1.lefoyer.lu:8030/v1";
|
||||||
|
apiKey = "dummy";
|
||||||
|
};
|
||||||
|
models = {
|
||||||
|
glm_4_5_air = {
|
||||||
|
name = "GLM 4.5 Air (local)";
|
||||||
|
temperature = true;
|
||||||
|
default = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
openai = {
|
||||||
|
models = {
|
||||||
|
"gpt-5.1-codex" = {
|
||||||
|
options = {
|
||||||
|
store = false;
|
||||||
|
# reasoningEffort = "high";
|
||||||
|
# textVerbosity = "medium";
|
||||||
|
# reasoningSummary = "auto";
|
||||||
|
include = [ "reasoning.encrypted_content" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"gpt-5.1-codex-max" = {
|
||||||
|
options = {
|
||||||
|
store = false;
|
||||||
|
include = [ "reasoning.encrypted_content" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
agent = {
|
||||||
|
build = {
|
||||||
|
mode = "primary";
|
||||||
|
temperature = 0.4;
|
||||||
|
};
|
||||||
|
plan = {
|
||||||
|
mode = "primary";
|
||||||
|
temperature = 0.4;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
lsp = {
|
||||||
|
metals = {
|
||||||
|
command = [ "${pkgs.metals}/bin/metals" ];
|
||||||
|
extensions = [
|
||||||
|
".scala"
|
||||||
|
".sbt"
|
||||||
|
".sc"
|
||||||
|
];
|
||||||
|
initialization = {
|
||||||
|
statusBarProvider = "log-message";
|
||||||
|
doctorProvider = "json";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -198,8 +198,8 @@ in
|
||||||
scala-cli
|
scala-cli
|
||||||
beamMinimal27Packages.elixir
|
beamMinimal27Packages.elixir
|
||||||
jdk
|
jdk
|
||||||
jetbrains.idea-community
|
jetbrains.idea-oss
|
||||||
jetbrains.idea-ultimate
|
jetbrains.idea
|
||||||
httpie
|
httpie
|
||||||
|
|
||||||
zsh-syntax-highlighting
|
zsh-syntax-highlighting
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,8 @@ in
|
||||||
font_family = "Meslo LG S";
|
font_family = "Meslo LG S";
|
||||||
font_size = 10;
|
font_size = 10;
|
||||||
symbol_map = "U+e000-U+e00a,U+ea60-U+ebeb,U+e0a0-U+e0c8,U+e0ca,U+e0cc-U+e0d4,U+e200-U+e2a9,U+e300-U+e3e3,U+e5fa-U+e6b1,U+e700-U+e7c5,U+f000-U+f2e0,U+f300-U+f372,U+f400-U+f532,U+f0001-U+f1af0 Symbols Nerd Font Mono";
|
symbol_map = "U+e000-U+e00a,U+ea60-U+ebeb,U+e0a0-U+e0c8,U+e0ca,U+e0cc-U+e0d4,U+e200-U+e2a9,U+e300-U+e3e3,U+e5fa-U+e6b1,U+e700-U+e7c5,U+f000-U+f2e0,U+f300-U+f372,U+f400-U+f532,U+f0001-U+f1af0 Symbols Nerd Font Mono";
|
||||||
|
allow_remote_control = "yes";
|
||||||
|
listen_on = "unix:@mykitty";
|
||||||
};
|
};
|
||||||
keybindings = {
|
keybindings = {
|
||||||
"ctrl+up" = "change_font_size all +2.0";
|
"ctrl+up" = "change_font_size all +2.0";
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ return {
|
||||||
metals = {
|
metals = {
|
||||||
settings = {
|
settings = {
|
||||||
showImplicitArguments = false,
|
showImplicitArguments = false,
|
||||||
|
startMcpServer = true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
elixirls = {
|
elixirls = {
|
||||||
|
|
|
||||||
14
modules/editor/vim/lua/plugins/lualine.lua
Normal file
14
modules/editor/vim/lua/plugins/lualine.lua
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
return {
|
||||||
|
"nvim-lualine/lualine.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
|
opts = {
|
||||||
|
sections = {
|
||||||
|
lualine_z = {
|
||||||
|
{
|
||||||
|
require("opencode").statusline,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
36
modules/editor/vim/lua/plugins/opencode.lua
Normal file
36
modules/editor/vim/lua/plugins/opencode.lua
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
return {
|
||||||
|
"NickvanDyke/opencode.nvim",
|
||||||
|
config = function()
|
||||||
|
---@type opencode.Opts
|
||||||
|
vim.g.opencode_opts = {
|
||||||
|
provider = {
|
||||||
|
enabled = "kitty",
|
||||||
|
kitty = {
|
||||||
|
location = "tab"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
events = {
|
||||||
|
permissions = {
|
||||||
|
enabled = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
vim.o.autoread = true
|
||||||
|
|
||||||
|
vim.keymap.set({ "n", "x" }, "<leader>aa", function()
|
||||||
|
require("opencode").ask("@this: ", { submit = true })
|
||||||
|
end, { desc = "Ask opencode" })
|
||||||
|
|
||||||
|
vim.keymap.set({ "n", "x" }, "<leader>ao", function()
|
||||||
|
require("opencode").select()
|
||||||
|
end, { desc = "Execute opencode action…" })
|
||||||
|
|
||||||
|
vim.keymap.set({ "n", "x" }, "<leader>as", function()
|
||||||
|
require("opencode").prompt("@this")
|
||||||
|
end, { desc = "Add to opencode" })
|
||||||
|
|
||||||
|
vim.keymap.set({ "n", "t" }, "<leader>a.", function()
|
||||||
|
require("opencode").toggle()
|
||||||
|
end, { desc = "Toggle opencode" })
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
@ -134,6 +134,17 @@ in
|
||||||
vim-startuptime
|
vim-startuptime
|
||||||
yazi-nvim
|
yazi-nvim
|
||||||
zk-nvim
|
zk-nvim
|
||||||
|
|
||||||
|
(pkgs.vimUtils.buildVimPlugin {
|
||||||
|
pname = "opencode.nvim";
|
||||||
|
version = "2025-12-04";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "NickvanDyke";
|
||||||
|
repo = "opencode.nvim";
|
||||||
|
rev = "963fad75f794deb85d1c310d2e2cb033da44f670";
|
||||||
|
hash = "sha256-nKOsHgMptHnOS+SCTHa77sQ/ZiUY0aW26I8GN7ocRHE=";
|
||||||
|
};
|
||||||
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
|
|
@ -295,6 +306,7 @@ in
|
||||||
angular-language-server
|
angular-language-server
|
||||||
vtsls
|
vtsls
|
||||||
zk
|
zk
|
||||||
|
metals
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILu2vaezsTNaTY8X4o2mFOmQguPnSAMOoPZRlW2ACAku froidmpa@froidmpa-laptop-2021-06-30
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue