Compare commits

...

3 commits

6 changed files with 331 additions and 26 deletions

View file

@ -53,6 +53,27 @@
"type": "github" "type": "github"
} }
}, },
"devshell": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1728330715,
"narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=",
"owner": "numtide",
"repo": "devshell",
"rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "devshell",
"type": "github"
}
},
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -69,6 +90,41 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat_2": {
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"revCount": 57,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1730504689,
"narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "506278e768c2a08bec68eb62932193e341f55c90",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils": { "flake-utils": {
"locked": { "locked": {
"lastModified": 1652776076, "lastModified": 1652776076,
@ -102,6 +158,76 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_3": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"git-hooks": {
"inputs": {
"flake-compat": [
"nixvim",
"flake-compat"
],
"gitignore": "gitignore",
"nixpkgs": [
"nixvim",
"nixpkgs"
],
"nixpkgs-stable": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1731363552,
"narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"nixvim",
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -123,6 +249,76 @@
"type": "github" "type": "github"
} }
}, },
"home-manager_2": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1731887066,
"narHash": "sha256-uw7K/RsYioJicV79Nl39yjtfhdfTDU2aRxnBgvFhkZ8=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "f3a2ff69586f3a54b461526e5702b1a2f81e740a",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"ixx": {
"inputs": {
"flake-utils": [
"nixvim",
"nuschtosSearch",
"flake-utils"
],
"nixpkgs": [
"nixvim",
"nuschtosSearch",
"nixpkgs"
]
},
"locked": {
"lastModified": 1729958008,
"narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=",
"owner": "NuschtOS",
"repo": "ixx",
"rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"ref": "v0.0.6",
"repo": "ixx",
"type": "github"
}
},
"nix-darwin": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1731885500,
"narHash": "sha256-ZrztYfSOS33J+ewq5alBOSdnIyZ0/sr1iy7FyBe9zIg=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "c60b5c924c6188a0b3ca2e139ead3d0f92ae5db5",
"type": "github"
},
"original": {
"owner": "lnl7",
"repo": "nix-darwin",
"type": "github"
}
},
"nix-pre-commit": { "nix-pre-commit": {
"inputs": { "inputs": {
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
@ -230,6 +426,57 @@
"type": "github" "type": "github"
} }
}, },
"nixvim": {
"inputs": {
"devshell": "devshell",
"flake-compat": "flake-compat_2",
"flake-parts": "flake-parts",
"git-hooks": "git-hooks",
"home-manager": "home-manager_2",
"nix-darwin": "nix-darwin",
"nixpkgs": [
"nixpkgs"
],
"nuschtosSearch": "nuschtosSearch",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1732035679,
"narHash": "sha256-J03v1XnxvsrrvHmzKVBZiwik8678IXfkH1/ZR954ujk=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "929bb0cd1cffb9917ab14be9cdb3f27efd6f505f",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixvim",
"type": "github"
}
},
"nuschtosSearch": {
"inputs": {
"flake-utils": "flake-utils_3",
"ixx": "ixx",
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1731936508,
"narHash": "sha256-z0BSSf78LkxIrrFXZYmCoRRAxAmxMUKpK7CyxQRvkZI=",
"owner": "NuschtOS",
"repo": "search",
"rev": "fe07070f811b717a4626d01fab714a87d422a9e1",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"repo": "search",
"type": "github"
}
},
"onchg": { "onchg": {
"inputs": { "inputs": {
"nix-pre-commit": "nix-pre-commit", "nix-pre-commit": "nix-pre-commit",
@ -260,6 +507,7 @@
"home-manager": "home-manager", "home-manager": "home-manager",
"nix-vscode-extensions": "nix-vscode-extensions", "nix-vscode-extensions": "nix-vscode-extensions",
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_3",
"nixvim": "nixvim",
"zen-browser": "zen-browser" "zen-browser": "zen-browser"
} }
}, },
@ -278,6 +526,42 @@
"type": "github" "type": "github"
} }
}, },
"systems_2": {
"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": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1731944360,
"narHash": "sha256-sJxPh+V0vUkBhlA58ok/y0o96AtfqiEF0O8qsdolI6o=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "579b9a2fd0020cd9cd81a4ef4eab2dca4d20c94c",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"zen-browser": { "zen-browser": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_4" "nixpkgs": "nixpkgs_4"

View file

@ -6,6 +6,10 @@
url = "github:nix-community/home-manager/master"; url = "github:nix-community/home-manager/master";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
catppuccin.url = "github:catppuccin/nix"; catppuccin.url = "github:catppuccin/nix";
compose2nix = { compose2nix = {
url = "github:aksiksi/compose2nix"; url = "github:aksiksi/compose2nix";
@ -15,7 +19,7 @@
nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions"; nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions";
catppuccin-vsc.url = "https://flakehub.com/f/catppuccin/vscode/*.tar.gz"; catppuccin-vsc.url = "https://flakehub.com/f/catppuccin/vscode/*.tar.gz";
}; };
outputs = { nixpkgs, home-manager, catppuccin, ... }@inputs: outputs = { nixpkgs, home-manager, ... }@inputs:
let let
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = import nixpkgs { pkgs = import nixpkgs {
@ -38,7 +42,7 @@
./nixos/catppuccin.nix ./nixos/catppuccin.nix
./nixos/configuration.nix ./nixos/configuration.nix
./nixos/development.nix ./nixos/development.nix
./nixos/environment.nix #./nixos/environment.nix
./nixos/gaming.nix ./nixos/gaming.nix
./nixos/git.nix ./nixos/git.nix
./nixos/gui-pkgs.nix ./nixos/gui-pkgs.nix
@ -54,16 +58,10 @@
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
} }
# flake packages inputs.nixvim.nixosModules.nixvim
{
environment.systemPackages = with inputs; [
compose2nix.packages.${system}.default
zen-browser.packages.${system}.specific
];
}
# Catppuccin theme # Catppuccin theme
catppuccin.nixosModules.catppuccin inputs.catppuccin.nixosModules.catppuccin
{ {
catppuccin.enable = true; catppuccin.enable = true;
catppuccin.flavor = "mocha"; catppuccin.flavor = "mocha";
@ -88,7 +86,7 @@
imports = [ imports = [
./home-manager/cswimr.nix ./home-manager/cswimr.nix
./home-manager/vscode.nix ./home-manager/vscode.nix
catppuccin.homeManagerModules.catppuccin inputs.catppuccin.homeManagerModules.catppuccin
{ {
catppuccin.enable = true; catppuccin.enable = true;
catppuccin.flavor = "mocha"; catppuccin.flavor = "mocha";

View file

@ -1,7 +1,26 @@
{ pkgs, system, inputs, ... }: { { pkgs, config, system, inputs, ... }: rec {
# Make VSCode config writable
# https://github.com/nix-community/home-manager/issues/1800#issuecomment-2262881846
home.activation.makeVSCodeConfigWritable = let
configDirName = {
"vscode" = "Code";
"vscode-insiders" = "Code - Insiders";
"vscodium" = "VSCodium";
}.${programs.vscode.package.pname};
configPath = "${config.xdg.configHome}/${configDirName}/User/settings.json";
in {
after = [ "writeBoundary" ];
before = [ ];
data = ''
install -m 0640 "$(readlink ${configPath})" ${configPath}
'';
};
programs.vscode = { programs.vscode = {
enable = true; enable = true;
#package = pkgs.vscode.fhsWithPackages (ps: [ ]); package = pkgs.vscode.fhsWithPackages
(ps: with pkgs; [ dotnetCorePackages.sdk_8_0 mypy ]);
extensions = extensions =
with inputs.nix-vscode-extensions.extensions.${system}.vscode-marketplace; with inputs.nix-vscode-extensions.extensions.${system}.vscode-marketplace;
with inputs.nix-vscode-extensions.extensions.${system}.vscode-marketplace-release; [ with inputs.nix-vscode-extensions.extensions.${system}.vscode-marketplace-release; [
@ -140,6 +159,9 @@
d-koppenhagen.file-tree-to-text-generator d-koppenhagen.file-tree-to-text-generator
]; ];
userSettings = { userSettings = {
"DO-NOT-EDIT-1" = "This file is managed by the Nix module located at `/etc/nixos/home-manager/vscode.nix`.";
"DO-NOT-EDIT-2" = "Changes will be overwritten when VSCode is restarted.";
"DO-NOT-EDIT-3" = "To persist changes, edit the module and run `upd` in your terminal.";
"editor.tokenColorCustomizations" = { "editor.tokenColorCustomizations" = {
"[Catppuccin*]" = { "[Catppuccin*]" = {
"variables" = "#82eaf0"; "variables" = "#82eaf0";

View file

@ -1,4 +1,4 @@
{ pkgs, lib, ... }: { pkgs, inputs, system, lib, ... }:
let let
kdePackages = with pkgs.kdePackages; [ plasma-browser-integration ]; kdePackages = with pkgs.kdePackages; [ plasma-browser-integration ];
packages = with pkgs; [ packages = with pkgs; [
@ -8,11 +8,13 @@ let
ytmdesktop ytmdesktop
ktailctl ktailctl
wl-clipboard wl-clipboard
# we install xdg-desktop-portal-gtx so theming works from kde # we install xdg-desktop-portal-gtk so GTK theming works in KDE Plasma
xdg-desktop-portal-gtk xdg-desktop-portal-gtk
]; ];
flakePackages = with inputs; [ zen-browser.packages.${system}.specific ];
in { in {
environment.systemPackages = lib.lists.unique (kdePackages ++ packages); environment.systemPackages =
lib.lists.unique (kdePackages ++ packages ++ flakePackages);
programs.partition-manager.enable = true; programs.partition-manager.enable = true;

View file

@ -1,11 +1,6 @@
{ pkgs, ... }: { {
# List packages installed in system profile. To search, run: programs.nixvim = {
# $ nix search wget
environment.systemPackages = with pkgs; [ neovim ];
programs.neovim = {
enable = true; enable = true;
defaultEditor = true;
viAlias = true; viAlias = true;
vimAlias = true; vimAlias = true;
}; };

View file

@ -1,7 +1,8 @@
{ pkgs, ... }: { { pkgs, lib, inputs, system, ... }:
# List packages installed in system profile. To search, run: let
# List of packages installed in system profile. To search, run:
# $ nix search wget # $ nix search wget
environment.systemPackages = with pkgs; [ packages = with pkgs; [
wget wget
curl curl
git git
@ -50,6 +51,9 @@
nodejs nodejs
corepack corepack
]; ];
flakePackages = with inputs; [ compose2nix.packages.${system}.default ];
in {
environment.systemPackages = lib.lists.unique (packages ++ flakePackages);
# install docker # install docker
virtualisation.docker = { enable = true; }; virtualisation.docker = { enable = true; };