mirror of
https://github.com/kp2pml30/dotfiles.git
synced 2026-02-16 23:34:42 +04:00
add another update
This commit is contained in:
parent
68a4779107
commit
96e942d8ac
15 changed files with 206 additions and 91 deletions
113
nix/docker-images/nix-node.nix
Normal file
113
nix/docker-images/nix-node.nix
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
{ pkgs, lib, rootPath }:
|
||||
let
|
||||
user = "devuser";
|
||||
uid = "1000";
|
||||
gid = "1000";
|
||||
|
||||
baseVim = rootPath + "/home/.config/nvim/base.vim";
|
||||
|
||||
fromGitHub = rev: repo: pkgs.vimUtils.buildVimPlugin {
|
||||
pname = "${lib.strings.sanitizeDerivationName repo}";
|
||||
version = rev;
|
||||
src = builtins.fetchGit {
|
||||
url = "https://github.com/${repo}.git";
|
||||
inherit rev;
|
||||
};
|
||||
};
|
||||
|
||||
customNeovim = pkgs.neovim.override {
|
||||
configure = {
|
||||
customRC = builtins.readFile baseVim;
|
||||
packages.myPlugins = with pkgs.vimPlugins; {
|
||||
start = [
|
||||
nvim-treesitter.withAllGrammars
|
||||
nvim-autopairs
|
||||
nerdtree
|
||||
tokyonight-nvim
|
||||
barbar-nvim
|
||||
((fromGitHub "3587f57480b88e8009df7b36dc84e9c7ff8f2c49" "famiu/feline.nvim").overrideAttrs (old: {
|
||||
doCheck = false;
|
||||
}))
|
||||
(fromGitHub "d63c811337b2f75de52f16efee176695f31e7fbc" "timakro/vim-yadi")
|
||||
(fromGitHub "aafa5c187a15701a7299a392b907ec15d9a7075f" "nvim-tree/nvim-web-devicons")
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Create passwd/group/shadow as a package
|
||||
userSetup = pkgs.runCommand "user-setup" {} ''
|
||||
mkdir -p $out/etc
|
||||
echo "root:x:0:0:root:/root:/bin/bash" > $out/etc/passwd
|
||||
echo "${user}:x:${uid}:${gid}:${user}:/home/${user}:${pkgs.bash}/bin/bash" >> $out/etc/passwd
|
||||
|
||||
echo "root:x:0:" > $out/etc/group
|
||||
echo "${user}:x:${gid}:" >> $out/etc/group
|
||||
|
||||
echo "root:!:1::::::" > $out/etc/shadow
|
||||
echo "${user}:!:1::::::" >> $out/etc/shadow
|
||||
|
||||
mkdir -p $out/etc/nix
|
||||
cat > $out/etc/nix/nix.conf <<EOF
|
||||
experimental-features = nix-command flakes
|
||||
EOF
|
||||
|
||||
mkdir -p $out/etc/sudoers.d
|
||||
echo "${user} ALL=(ALL) NOPASSWD: ALL" > $out/etc/sudoers.d/${user}
|
||||
chmod 440 $out/etc/sudoers.d/${user}
|
||||
|
||||
mkdir -p $out/tmp
|
||||
chmod 1777 $out/tmp
|
||||
'';
|
||||
|
||||
entrypoint = pkgs.writeShellScriptBin "entrypoint" ''
|
||||
if ! command -v claude &> /dev/null; then
|
||||
echo "Installing claude-code..."
|
||||
npm install -g @anthropic-ai/claude-code
|
||||
fi
|
||||
exec "$@"
|
||||
'';
|
||||
in
|
||||
pkgs.dockerTools.buildLayeredImage {
|
||||
name = "nix-node";
|
||||
tag = "latest";
|
||||
contents = with pkgs; [
|
||||
nix
|
||||
nodejs
|
||||
bash
|
||||
coreutils
|
||||
cacert
|
||||
git
|
||||
fish
|
||||
curl
|
||||
wget
|
||||
htop
|
||||
sudo
|
||||
customNeovim
|
||||
userSetup
|
||||
entrypoint
|
||||
];
|
||||
fakeRootCommands = ''
|
||||
mkdir -p ./home/${user}/.npm-global
|
||||
chown -R ${uid}:${gid} ./home/${user}
|
||||
|
||||
mkdir -p ./usr/bin
|
||||
ln -s ${pkgs.coreutils}/bin/env ./usr/bin/env
|
||||
'';
|
||||
enableFakechroot = true;
|
||||
config = {
|
||||
Entrypoint = [ "${entrypoint}/bin/entrypoint" ];
|
||||
Cmd = [ "${pkgs.bash}/bin/bash" ];
|
||||
User = "${user}";
|
||||
WorkingDir = "/home/${user}";
|
||||
Env = [
|
||||
"HOME=/home/${user}"
|
||||
"USER=${user}"
|
||||
"NIX_PAGER=cat"
|
||||
"SSL_CERT_FILE=${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"
|
||||
"NIX_CONF_DIR=/etc/nix"
|
||||
"NPM_CONFIG_PREFIX=/home/${user}/.npm-global"
|
||||
"PATH=/home/${user}/.npm-global/bin:/usr/bin:/bin"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
{
|
||||
imports = [
|
||||
./common.nix
|
||||
# ./nvidia.nix
|
||||
./nvidia.nix
|
||||
];
|
||||
|
||||
fileSystems."/" = {
|
||||
|
|
@ -37,6 +37,7 @@
|
|||
|
||||
environment.systemPackages = with pkgs; [
|
||||
exfat
|
||||
pciutils
|
||||
];
|
||||
|
||||
hardware.cpu.amd.updateMicrocode = true;
|
||||
|
|
@ -53,20 +54,22 @@
|
|||
graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
extraPackages = with pkgs; [
|
||||
];
|
||||
|
||||
extraPackages32 = with pkgs; [
|
||||
];
|
||||
};
|
||||
|
||||
amdgpu.amdvlk = {
|
||||
enable = true;
|
||||
support32Bit.enable = true;
|
||||
|
||||
nvidia.prime = {
|
||||
offload = {
|
||||
enable = true;
|
||||
enableOffloadCmd = true;
|
||||
};
|
||||
nvidiaBusId = "PCI:5:0:0";
|
||||
amdgpuBusId = "PCI:198:0:0";
|
||||
};
|
||||
|
||||
opengl.extraPackages = with pkgs; [
|
||||
amdvlk
|
||||
];
|
||||
|
||||
opengl.extraPackages32 = with pkgs; [
|
||||
driversi686Linux.amdvlk
|
||||
];
|
||||
};
|
||||
|
||||
networking = {
|
||||
|
|
|
|||
|
|
@ -8,9 +8,9 @@
|
|||
services.xserver.videoDrivers = ["nvidia"];
|
||||
|
||||
hardware.nvidia = {
|
||||
package = config.boot.kernelPackages.nvidiaPackages.production;
|
||||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||
modesetting.enable = true;
|
||||
open = false;
|
||||
open = true;
|
||||
nvidiaSettings = true;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,12 +42,12 @@
|
|||
services.qemuGuest.enable = true;
|
||||
|
||||
networking = {
|
||||
hostName = "v168671";
|
||||
hostName = "v633633";
|
||||
interfaces.ens3.ipv4.addresses = [ {
|
||||
prefixLength = 24;
|
||||
address = "185.121.233.63";
|
||||
address = "146.103.126.11";
|
||||
} ];
|
||||
defaultGateway = "185.121.233.1";
|
||||
defaultGateway = "146.103.126.1";
|
||||
nameservers = [
|
||||
"1.1.1.1"
|
||||
"8.8.8.8"
|
||||
|
|
|
|||
|
|
@ -36,10 +36,10 @@ in {
|
|||
boot.supportedFilesystems = [ "zfs" ];
|
||||
boot.zfs.forceImportRoot = false;
|
||||
|
||||
services.logind.extraConfig = ''
|
||||
HandlePowerKey=poweroff
|
||||
HandleLidSwitch=hibernate
|
||||
'';
|
||||
services.logind.settings.Login = {
|
||||
HandlePowerKey = "poweroff";
|
||||
HandleLidSwitch = "hibernate";
|
||||
};
|
||||
|
||||
services.pcscd = {
|
||||
enable = true;
|
||||
|
|
@ -85,6 +85,7 @@ in {
|
|||
"discord"
|
||||
"slack"
|
||||
"anytype"
|
||||
"claude-code"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,23 +11,41 @@ in {
|
|||
./kitty.nix
|
||||
./vscode.nix
|
||||
|
||||
./opera.nix
|
||||
./steam.nix
|
||||
|
||||
./messengers.nix
|
||||
./messengers-work.nix
|
||||
];
|
||||
|
||||
environment.systemPackages = [ pkgs.anytype ];
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||
};
|
||||
services.flatpak.enable = true;
|
||||
systemd.services.flatpak-repo = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
path = [ pkgs.flatpak ];
|
||||
script = ''
|
||||
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||
'';
|
||||
};
|
||||
|
||||
fonts.enableDefaultFonts = true;
|
||||
environment.systemPackages = with pkgs; [
|
||||
anytype
|
||||
flatpak
|
||||
gnome-software
|
||||
|
||||
nodePackages.npm
|
||||
nodejs
|
||||
];
|
||||
|
||||
fonts.enableDefaultPackages = true;
|
||||
fonts.packages = with pkgs; [
|
||||
noto-fonts
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-cjk-sans
|
||||
|
||||
fira-code
|
||||
fira-code-nerdfont
|
||||
fira-code-symbols
|
||||
|
||||
nerd-fonts.fira-code
|
||||
|
|
|
|||
|
|
@ -7,15 +7,9 @@
|
|||
}:
|
||||
let
|
||||
cfg = config.kp2pml30;
|
||||
signal-pkgs = import (builtins.fetchTarball {
|
||||
url = "https://github.com/NixOS/nixpkgs/archive/71cbb752aa36854eb4a7deb3685b9789256d643c.tar.gz";
|
||||
sha256 = "10dnjv2c28bjgplyj6nbk2q9lng6f95jf75i5yh541zngrr8b2qg";
|
||||
}) {
|
||||
system = pkgs.system;
|
||||
};
|
||||
in lib.mkIf cfg.messengers.personal {
|
||||
users.users.${cfg.username}.packages = with pkgs; [
|
||||
discord
|
||||
telegram-desktop
|
||||
] ++ [signal-pkgs.signal-desktop];
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,42 +0,0 @@
|
|||
{ pkgs
|
||||
, lib
|
||||
, rootPath
|
||||
, config
|
||||
, ...
|
||||
}:
|
||||
let
|
||||
cfg = config.kp2pml30;
|
||||
version = "123.0.5669.23";
|
||||
legacy-nixpkgs = import (builtins.fetchTarball {
|
||||
url = "https://github.com/NixOS/nixpkgs/archive/refs/tags/24.11.tar.gz";
|
||||
sha256 = "1gx0hihb7kcddv5h0k7dysp2xhf1ny0aalxhjbpj2lmvj7h9g80a";
|
||||
}) {
|
||||
system = pkgs.system;
|
||||
config.allowUnfreePredicate = pkg:
|
||||
builtins.elem (pkgs.lib.getName pkg) [
|
||||
"vscode"
|
||||
"steam"
|
||||
"steam-run"
|
||||
"steam-original"
|
||||
"steam-unwrapped"
|
||||
"nvidia-x11"
|
||||
"nvidia-settings"
|
||||
"nvidia-persistenced"
|
||||
"opera"
|
||||
"discord"
|
||||
"slack"
|
||||
"anytype"
|
||||
];
|
||||
};
|
||||
in lib.mkIf cfg.opera {
|
||||
home-manager.users.${cfg.username}.home = {
|
||||
packages = with legacy-nixpkgs; [
|
||||
((opera.override { proprietaryCodecs = true; }).overrideAttrs (finalAttrs: previousAttrs: {
|
||||
src = fetchurl {
|
||||
url = "https://get.geo.opera.com/pub/opera/desktop/${version}/linux/opera-stable_${version}_amd64.deb";
|
||||
hash = "sha256-j2kHdg8d60S9j3bLychjmH/cRAXHGIjOgGKqmNIhnHU=";
|
||||
};
|
||||
}))
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -26,7 +26,8 @@ in {
|
|||
];
|
||||
|
||||
sessionVariables = {
|
||||
TERMINAL = "kitty";
|
||||
TERMINAL = "xterm-kitty";
|
||||
NPM_CONFIG_PREFIX = "$HOME/.local/share/npm-global";
|
||||
};
|
||||
|
||||
activation = {
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ in {
|
|||
environment.systemPackages = with pkgs; [
|
||||
ncdu
|
||||
timewarrior
|
||||
p7zip
|
||||
];
|
||||
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue