Merge branch 'dev'
This commit is contained in:
commit
505fbf5905
24 changed files with 364 additions and 132 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -9,6 +9,8 @@ result
|
||||||
*.nix.bak
|
*.nix.bak
|
||||||
*.nix~
|
*.nix~
|
||||||
/nix/store/
|
/nix/store/
|
||||||
|
file.txt
|
||||||
|
|
||||||
|
|
||||||
*~
|
*~
|
||||||
*.swp
|
*.swp
|
||||||
|
|
|
||||||
37
flake.lock
generated
37
flake.lock
generated
|
|
@ -25,11 +25,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743295846,
|
"lastModified": 1743717835,
|
||||||
"narHash": "sha256-hKKz07d4RV9gzxzE5Qu3RQWX8a7XpzRrP5timoxoGRQ=",
|
"narHash": "sha256-LJm6FoIcUoBw3w25ty12/sBfut4zZuNGdN0phYj/ekU=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "717030011980e9eb31eb8ce011261dd532bce92c",
|
"rev": "66a6ec65f84255b3defb67ff45af86c844dd451b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -44,11 +44,11 @@
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743299372,
|
"lastModified": 1743644846,
|
||||||
"narHash": "sha256-vFuxkHPd+Xpi5Bx1VCyZwYl/BbF83C+KmlbPBNVJvNU=",
|
"narHash": "sha256-I217zRnDlSdWzoZi4sHaRKdY+x60tLOo8TyRshkyUBM=",
|
||||||
"owner": "fufexan",
|
"owner": "fufexan",
|
||||||
"repo": "nix-gaming",
|
"repo": "nix-gaming",
|
||||||
"rev": "2ab0a37308559926bddb0009dfcf16a2a5b34e2b",
|
"rev": "a6fac721ece856f5dd4690b41b92e7ba3a71d033",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -90,11 +90,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743231893,
|
"lastModified": 1743576891,
|
||||||
"narHash": "sha256-tpJsHMUPEhEnzySoQxx7+kA+KUtgWqvlcUBqROYNNt0=",
|
"narHash": "sha256-vXiKURtntURybE6FMNFAVpRPr8+e8KoLPrYs9TGuAKc=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "c570c1f5304493cafe133b8d843c7c1c4a10d3a6",
|
"rev": "44a69ed688786e98a101f02b712c313f1ade37ab",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -108,7 +108,24 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nix-gaming": "nix-gaming",
|
"nix-gaming": "nix-gaming",
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
"rpcs3-latest": "rpcs3-latest"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rpcs3-latest": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1743659989,
|
||||||
|
"narHash": "sha256-qrzu2BGzaaCnUMjpqe4O/amr3fPzASUiyc8wYU5pnQQ=",
|
||||||
|
"owner": "RPCS3",
|
||||||
|
"repo": "rpcs3",
|
||||||
|
"rev": "37dbd77628f44cdef3228bdfc03127365ec7383b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "RPCS3",
|
||||||
|
"repo": "rpcs3",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
156
flake.nix
156
flake.nix
|
|
@ -10,6 +10,10 @@
|
||||||
nix-gaming = {
|
nix-gaming = {
|
||||||
url = "github:fufexan/nix-gaming";
|
url = "github:fufexan/nix-gaming";
|
||||||
};
|
};
|
||||||
|
rpcs3-latest = {
|
||||||
|
url = "github:RPCS3/rpcs3";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs = {
|
||||||
|
|
@ -17,36 +21,178 @@
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
home-manager,
|
home-manager,
|
||||||
nix-gaming,
|
nix-gaming,
|
||||||
|
rpcs3-latest,
|
||||||
...
|
...
|
||||||
} @ inputs: let
|
} @ inputs: let
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
customPkgsOverlay = final: prev:
|
customPkgsOverlay = final: prev: let
|
||||||
import ./pkgs {
|
customPkgs = import ./pkgs {
|
||||||
pkgs = prev;
|
pkgs = prev;
|
||||||
lib = prev.lib;
|
lib = prev.lib;
|
||||||
};
|
};
|
||||||
|
in
|
||||||
|
customPkgs
|
||||||
|
// {
|
||||||
|
pugixml = prev.pugixml.overrideAttrs (oldAttrs: rec {
|
||||||
|
version = "1.15";
|
||||||
|
src = prev.fetchurl {
|
||||||
|
url = "https://github.com/zeux/pugixml/releases/download/v${version}/pugixml-${version}.tar.gz";
|
||||||
|
sha256 = "sha256-ZVreV/pwP7QhwuuaARO1BkvdsUXUFd0fiMeTU9kNURo=";
|
||||||
|
};
|
||||||
|
});
|
||||||
|
SDL3 = prev.stdenv.mkDerivation rec {
|
||||||
|
pname = "SDL3";
|
||||||
|
version = "3.1.3";
|
||||||
|
src = prev.fetchFromGitHub {
|
||||||
|
owner = "libsdl-org";
|
||||||
|
repo = "SDL";
|
||||||
|
rev = "preview-${version}";
|
||||||
|
sha256 = "sha256-S7yRcLHMPgq6+gec8l+ESxp2dJ+6Po/UNsBUXptQzMQ=";
|
||||||
|
};
|
||||||
|
nativeBuildInputs = [prev.cmake];
|
||||||
|
buildInputs = [
|
||||||
|
prev.libGL
|
||||||
|
prev.xorg.libX11
|
||||||
|
prev.xorg.libXext
|
||||||
|
prev.alsa-lib
|
||||||
|
];
|
||||||
|
cmakeFlags = [
|
||||||
|
"-DSDL_STATIC=OFF"
|
||||||
|
"-DSDL_SHARED=ON"
|
||||||
|
"-DSDL_CMAKE_DEBUG_POSTFIX="
|
||||||
|
"-DSDL_INSTALL_CMAKEDIR=${placeholder "out"}/lib/cmake/SDL3"
|
||||||
|
];
|
||||||
|
postInstall = ''
|
||||||
|
echo "SDL3 contents:" >&2
|
||||||
|
ls -lR $out >&2
|
||||||
|
if [ -f "$out/lib/cmake/SDL3/SDL3Config.cmake" ]; then
|
||||||
|
echo "SDL3Config.cmake:" >&2
|
||||||
|
cat $out/lib/cmake/SDL3/SDL3Config.cmake >&2
|
||||||
|
else
|
||||||
|
echo "ERROR: SDL3Config.cmake not found" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
rpcs3 = prev.rpcs3.overrideAttrs (oldAttrs: {
|
||||||
|
nativeBuildInputs =
|
||||||
|
(oldAttrs.nativeBuildInputs or [])
|
||||||
|
++ [
|
||||||
|
prev.llvmPackages_18.llvm.dev
|
||||||
|
prev.llvmPackages_18.clang
|
||||||
|
prev.pkg-config
|
||||||
|
prev.qt6.qmake
|
||||||
|
prev.qt6.full
|
||||||
|
prev.xxd
|
||||||
|
prev.wayland-scanner
|
||||||
|
];
|
||||||
|
buildInputs =
|
||||||
|
(oldAttrs.buildInputs or [])
|
||||||
|
++ [
|
||||||
|
prev.llvmPackages_18.llvm
|
||||||
|
prev.llvmPackages_18.libclang
|
||||||
|
final.SDL3
|
||||||
|
prev.qt6.full
|
||||||
|
prev.vulkan-loader
|
||||||
|
prev.vulkan-tools
|
||||||
|
prev.wayland
|
||||||
|
prev.wayland-protocols
|
||||||
|
prev.libxkbcommon
|
||||||
|
prev.libpulseaudio
|
||||||
|
prev.libevdev
|
||||||
|
prev.udev
|
||||||
|
prev.glew
|
||||||
|
prev.libpng
|
||||||
|
prev.zstd
|
||||||
|
];
|
||||||
|
cmakeFlags =
|
||||||
|
(oldAttrs.cmakeFlags or [])
|
||||||
|
++ [
|
||||||
|
"-DCMAKE_PREFIX_PATH=${final.SDL3};${prev.qt6.full};${prev.wayland}"
|
||||||
|
"-DSDL3_DIR=${final.SDL3}/lib/cmake/SDL3"
|
||||||
|
"-DSDL3_INCLUDE_DIR=${final.SDL3}/include/SDL3"
|
||||||
|
"-DSDL3_LIBRARY=${final.SDL3}/lib/libSDL3.so"
|
||||||
|
"-DQt6_DIR=${prev.qt6.full}/lib/cmake/Qt6"
|
||||||
|
"-DWAYLAND_SCANNER=${prev.wayland-scanner}/bin/wayland-scanner"
|
||||||
|
"-DUSE_SYSTEM_FFMPEG=ON"
|
||||||
|
"-DUSE_SYSTEM_CURL=ON"
|
||||||
|
"-DUSE_SYSTEM_WOLFSSL=ON"
|
||||||
|
"-DUSE_QT=ON"
|
||||||
|
"-DUSE_VULKAN=ON"
|
||||||
|
"-DUSE_WAYLAND=ON"
|
||||||
|
"-DUSE_PULSEAUDIO=ON"
|
||||||
|
"-DUSE_LIBEVDEV=ON"
|
||||||
|
"-DUSE_SYSTEM_ZSTD=ON"
|
||||||
|
"-DUSE_DISCORD_RPC=ON"
|
||||||
|
"-DCMAKE_VERBOSE_MAKEFILE=ON"
|
||||||
|
"-DCMAKE_MESSAGE_LOG_LEVEL=TRACE"
|
||||||
|
];
|
||||||
|
preConfigure = ''
|
||||||
|
echo "Verifying submodule directories:" >&2
|
||||||
|
ls -l 3rdparty/hidapi/hidapi 3rdparty/glslang/glslang 3rdparty/yaml-cpp/yaml-cpp 3rdparty/zstd/zstd 3rdparty/discord-rpc >&2
|
||||||
|
if [ ! -f 3rdparty/hidapi/hidapi/CMakeLists.txt ] || [ ! -f 3rdparty/discord-rpc/CMakeLists.txt ]; then
|
||||||
|
echo "ERROR: Submodules (hidapi or discord-rpc) not fetched correctly" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "Original 3rdparty/CMakeLists.txt:" >&2
|
||||||
|
cat 3rdparty/CMakeLists.txt >&2
|
||||||
|
sed -i '/find_package(SDL3/ {
|
||||||
|
s/find_package(SDL3.*)/set(SDL3_FOUND TRUE)/
|
||||||
|
a set(SDL3_INCLUDE_DIRS "${final.SDL3}/include/SDL3")
|
||||||
|
a set(SDL3_LIBRARIES "${final.SDL3}/lib/libSDL3.so")
|
||||||
|
}' 3rdparty/CMakeLists.txt
|
||||||
|
sed -i 's/message(FATAL_ERROR "SDL3 is not available on this system")/# Patched: SDL3 assumed available/' 3rdparty/CMakeLists.txt
|
||||||
|
echo "Patched 3rdparty/CMakeLists.txt:" >&2
|
||||||
|
cat 3rdparty/CMakeLists.txt >&2
|
||||||
|
echo "Checking submodules:" >&2
|
||||||
|
ls -lR 3rdparty/hidapi 3rdparty/glslang 3rdparty/yaml-cpp 3rdparty/cubeb 3rdparty/zstd 3rdparty/discord-rpc >&2
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
};
|
||||||
pkgs = import nixpkgs {
|
pkgs = import nixpkgs {
|
||||||
inherit system;
|
inherit system;
|
||||||
config.allowUnfree = true;
|
config.allowUnfree = true;
|
||||||
overlays = [customPkgsOverlay];
|
overlays = [customPkgsOverlay];
|
||||||
};
|
};
|
||||||
lib = nixpkgs.lib;
|
lib = nixpkgs.lib;
|
||||||
|
|
||||||
|
rpcs3_latest = pkgs.rpcs3.overrideAttrs (oldAttrs: {
|
||||||
|
src = pkgs.fetchgit {
|
||||||
|
url = "https://github.com/RPCS3/rpcs3.git";
|
||||||
|
rev = inputs.rpcs3-latest.rev;
|
||||||
|
sha256 = "Yx0Qsc0r+5C0BqqsbJCv47QPeaNbaIut8s6Hcysy2mo=";
|
||||||
|
fetchSubmodules = true;
|
||||||
|
};
|
||||||
|
nativeBuildInputs = oldAttrs.nativeBuildInputs;
|
||||||
|
buildInputs = oldAttrs.buildInputs;
|
||||||
|
cmakeFlags =
|
||||||
|
oldAttrs.cmakeFlags
|
||||||
|
++ [
|
||||||
|
"-DUSE_DISCORD_RPC=ON"
|
||||||
|
];
|
||||||
|
preUnpack = ''
|
||||||
|
echo "Source rev: ${inputs.rpcs3-latest.rev}" >&2
|
||||||
|
echo "Expected rev: 37dbd77628f44cdef3228bdfc03127365ec7383b" >&2
|
||||||
|
'';
|
||||||
|
});
|
||||||
in {
|
in {
|
||||||
|
packages.${system} = {
|
||||||
|
rpcs3_latest = rpcs3_latest;
|
||||||
|
};
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
nixos = lib.nixosSystem {
|
nixos = lib.nixosSystem {
|
||||||
inherit system;
|
inherit system;
|
||||||
specialArgs = {inherit inputs;};
|
specialArgs = {inherit inputs rpcs3_latest;};
|
||||||
modules = [
|
modules = [
|
||||||
{nixpkgs.overlays = [customPkgsOverlay];}
|
{nixpkgs.overlays = [customPkgsOverlay];}
|
||||||
./hosts/configuration.nix
|
./hosts/configuration.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
homeConfigurations = {
|
homeConfigurations = {
|
||||||
"cobray" = home-manager.lib.homeManagerConfiguration {
|
"cobray" = home-manager.lib.homeManagerConfiguration {
|
||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
extraSpecialArgs = {inherit inputs;};
|
extraSpecialArgs = {inherit inputs rpcs3_latest;};
|
||||||
modules = [./home-manager/cobray.nix];
|
modules = [./home-manager/cobray.nix];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
|
rpcs3_latest,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
|
|
@ -13,6 +14,8 @@
|
||||||
./modules/rofi.nix
|
./modules/rofi.nix
|
||||||
./modules/starship.nix
|
./modules/starship.nix
|
||||||
./modules/zellij.nix
|
./modules/zellij.nix
|
||||||
|
./modules/ffmpeg.nix
|
||||||
|
./modules/emulators.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
home.username = "cobray";
|
home.username = "cobray";
|
||||||
|
|
@ -31,5 +34,6 @@
|
||||||
btop
|
btop
|
||||||
nvtopPackages.full
|
nvtopPackages.full
|
||||||
arandr
|
arandr
|
||||||
|
rpcs3_latest
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
14
home-manager/modules/emulators.nix
Normal file
14
home-manager/modules/emulators.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
mgba
|
||||||
|
desmume
|
||||||
|
duckstation
|
||||||
|
pcsx2
|
||||||
|
ryujinx
|
||||||
|
mupen64plus
|
||||||
|
dolphin-emu
|
||||||
|
retroarch
|
||||||
|
mednafen
|
||||||
|
joycond
|
||||||
|
];
|
||||||
|
}
|
||||||
8
home-manager/modules/ffmpeg.nix
Normal file
8
home-manager/modules/ffmpeg.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
(ffmpeg.override {
|
||||||
|
withXcb = true;
|
||||||
|
withXlib = true;
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
@ -1,9 +1,7 @@
|
||||||
# Edit this configuration file to define what should be installed on
|
# Edit this configuration file to define what should be installed on
|
||||||
# your system. Help is available in the configuration.nix(5) man page
|
# your system. Help is available in the configuration.nix(5) man page
|
||||||
# and in the NixOS manual (accessible by running 'nixos-help').
|
# and in the NixOS manual (accessible by running 'nixos-help').
|
||||||
{
|
{...}: {
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [
|
imports = [
|
||||||
# Include the results of the hardware scan.
|
# Include the results of the hardware scan.
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
|
|
||||||
|
|
@ -7,98 +7,73 @@
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
../modules/python.nix
|
../modules/python.nix
|
||||||
|
../modules/npm.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
python.enable = true;
|
python.enable = true;
|
||||||
|
npm.enable = true;
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
brave # TODO: make a module to save browser stuff
|
brave # TODO: make a module to save browser stuff
|
||||||
vesktop
|
vesktop
|
||||||
git
|
discord
|
||||||
nodejs
|
|
||||||
wget
|
|
||||||
curl
|
|
||||||
tree
|
|
||||||
gnumake
|
|
||||||
gcc
|
|
||||||
socat
|
|
||||||
ffmpeg
|
|
||||||
gnused
|
|
||||||
gdb
|
|
||||||
stdenv.cc.cc.lib
|
|
||||||
nix-prefetch-git
|
|
||||||
binutils
|
|
||||||
hashcat
|
|
||||||
cmake
|
|
||||||
ninja
|
|
||||||
pkg-config
|
|
||||||
autoconf
|
|
||||||
automake
|
|
||||||
libtool
|
|
||||||
gawk
|
|
||||||
obs-studio
|
obs-studio
|
||||||
|
spotify
|
||||||
|
flameshot
|
||||||
|
mpv
|
||||||
|
udiskie
|
||||||
|
git
|
||||||
|
git-lfs
|
||||||
|
gitAndTools.gh
|
||||||
|
gitAndTools.diff-so-fancy
|
||||||
lazygit
|
lazygit
|
||||||
lazydocker
|
lazydocker
|
||||||
jdk17
|
mercurial
|
||||||
|
nodejs
|
||||||
|
nodePackages.pnpm
|
||||||
|
nodePackages.typescript
|
||||||
|
yarn
|
||||||
bun
|
bun
|
||||||
maven
|
|
||||||
gradle
|
|
||||||
visualvm
|
|
||||||
jdt-language-server
|
|
||||||
htop
|
|
||||||
btop
|
|
||||||
nvtopPackages.full
|
|
||||||
fd
|
|
||||||
fzf
|
|
||||||
jq
|
|
||||||
bash
|
|
||||||
customPkgs.fish-rust
|
|
||||||
go
|
|
||||||
ollama
|
|
||||||
sqls
|
|
||||||
deno
|
deno
|
||||||
redis
|
go
|
||||||
cloudflared
|
go-tools
|
||||||
|
gopls
|
||||||
|
rustc
|
||||||
rustup
|
rustup
|
||||||
cargo-edit
|
cargo-edit
|
||||||
cargo-watch
|
cargo-watch
|
||||||
cargo-outdated
|
cargo-outdated
|
||||||
cargo-audit
|
cargo-audit
|
||||||
openssl
|
rust-analyzer
|
||||||
openssl.dev
|
python3Packages.debugpy
|
||||||
|
customPkgs.python-ngx-lsp
|
||||||
|
gcc
|
||||||
|
stdenv.cc.cc.lib
|
||||||
|
gnumake
|
||||||
|
cmake
|
||||||
|
ninja
|
||||||
|
binutils
|
||||||
|
gdb
|
||||||
pkg-config
|
pkg-config
|
||||||
libxml2
|
autoconf
|
||||||
zlib
|
automake
|
||||||
|
libtool
|
||||||
|
nasm
|
||||||
|
elixir
|
||||||
|
swift
|
||||||
|
zig
|
||||||
ghc
|
ghc
|
||||||
cabal-install
|
cabal-install
|
||||||
stack
|
stack
|
||||||
haskell-language-server
|
haskell-language-server
|
||||||
postgresql
|
jdk17
|
||||||
sqlite
|
maven
|
||||||
spotify
|
gradle
|
||||||
git-lfs
|
visualvm
|
||||||
gitAndTools.gh
|
jdt-language-server
|
||||||
gitAndTools.diff-so-fancy
|
|
||||||
ani-cli
|
|
||||||
yt-dlp
|
|
||||||
nmap
|
|
||||||
psmisc
|
|
||||||
ugrep
|
|
||||||
unzip
|
|
||||||
starship
|
|
||||||
flameshot
|
|
||||||
yarn
|
|
||||||
mpv
|
|
||||||
httpie
|
|
||||||
wrk
|
|
||||||
nodePackages.pnpm
|
|
||||||
zlib.dev
|
|
||||||
udiskie
|
|
||||||
rust-analyzer
|
|
||||||
clang-tools
|
clang-tools
|
||||||
vscode-langservers-extracted
|
vscode-langservers-extracted
|
||||||
nodePackages.eslint
|
nodePackages.eslint
|
||||||
gopls
|
|
||||||
lua-language-server
|
lua-language-server
|
||||||
marksman
|
marksman
|
||||||
nil
|
nil
|
||||||
|
|
@ -120,15 +95,55 @@ in {
|
||||||
hadolint
|
hadolint
|
||||||
shellcheck
|
shellcheck
|
||||||
cppcheck
|
cppcheck
|
||||||
go-tools
|
|
||||||
rubocop
|
rubocop
|
||||||
phpPackages.php-codesniffer
|
phpPackages.php-codesniffer
|
||||||
phpPackages.phpstan
|
phpPackages.phpstan
|
||||||
checkstyle
|
checkstyle
|
||||||
tflint
|
tflint
|
||||||
sqlfluff
|
sqlfluff
|
||||||
rustc
|
wget
|
||||||
python3Packages.debugpy
|
curl
|
||||||
customPkgs.python-ngx-lsp
|
tree
|
||||||
|
socat
|
||||||
|
gnused
|
||||||
|
gawk
|
||||||
|
nmap
|
||||||
|
psmisc
|
||||||
|
ugrep
|
||||||
|
unzip
|
||||||
|
starship
|
||||||
|
htop
|
||||||
|
btop
|
||||||
|
nvtopPackages.full
|
||||||
|
fd
|
||||||
|
fzf
|
||||||
|
jq
|
||||||
|
bash
|
||||||
|
customPkgs.fish-rust
|
||||||
|
xorg.xdpyinfo
|
||||||
|
slop
|
||||||
|
dunst
|
||||||
|
pulseaudio
|
||||||
|
ani-cli
|
||||||
|
yt-dlp
|
||||||
|
httpie
|
||||||
|
wrk
|
||||||
|
cloudflared
|
||||||
|
hashcat
|
||||||
|
nix-prefetch-git
|
||||||
|
openssl
|
||||||
|
openssl.dev
|
||||||
|
libxml2
|
||||||
|
zlib
|
||||||
|
zlib.dev
|
||||||
|
postgresql
|
||||||
|
sqlite
|
||||||
|
redis
|
||||||
|
sqls
|
||||||
|
ollama
|
||||||
|
tree-sitter
|
||||||
|
luajitPackages.jsregexp
|
||||||
|
tailscale
|
||||||
|
cachix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,5 @@
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
cava
|
cava
|
||||||
pulseaudio
|
pulseaudio
|
||||||
ffmpeg
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,4 @@
|
||||||
{
|
{pkgs, ...}: {
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
hardware.bluetooth = {
|
hardware.bluetooth = {
|
||||||
enable = true;
|
enable = true;
|
||||||
powerOnBoot = true;
|
powerOnBoot = true;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,4 @@
|
||||||
{
|
{pkgs, ...}: {
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
# Bootloader
|
# Bootloader
|
||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
@ -13,9 +10,13 @@
|
||||||
deps = [];
|
deps = [];
|
||||||
text = ''
|
text = ''
|
||||||
mkdir -p /bin
|
mkdir -p /bin
|
||||||
|
if [ ! -e /bin/bash ]; then
|
||||||
ln -sf ${pkgs.bash}/bin/bash /bin/bash
|
ln -sf ${pkgs.bash}/bin/bash /bin/bash
|
||||||
|
fi
|
||||||
mkdir -p /usr/bin
|
mkdir -p /usr/bin
|
||||||
|
if [ ! -e /usr/bin/env ]; then
|
||||||
ln -sf ${pkgs.coreutils}/bin/env /usr/bin/env
|
ln -sf ${pkgs.coreutils}/bin/env /usr/bin/env
|
||||||
|
fi
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@
|
||||||
./timezone.nix
|
./timezone.nix
|
||||||
./user.nix
|
./user.nix
|
||||||
./python.nix
|
./python.nix
|
||||||
|
./tailscale.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
# Enable CUPS to print documents.
|
# Enable CUPS to print documents.
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,4 @@
|
||||||
{
|
{pkgs, ...}: {
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
virtualisation.docker = {
|
virtualisation.docker = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableOnBoot = true;
|
enableOnBoot = true;
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,6 @@
|
||||||
EDITOR = "nvim";
|
EDITOR = "nvim";
|
||||||
VISUAL = "nvim";
|
VISUAL = "nvim";
|
||||||
TERM = "ghostty";
|
TERM = "ghostty";
|
||||||
GTK_THEME = lib.mkDefault "Adwaita:dark";
|
|
||||||
CC = "${pkgs.gcc}/bin/gcc";
|
CC = "${pkgs.gcc}/bin/gcc";
|
||||||
PKG_CONFIG_PATH = lib.makeSearchPath "lib/pkgconfig" [
|
PKG_CONFIG_PATH = lib.makeSearchPath "lib/pkgconfig" [
|
||||||
pkgs.openssl.dev
|
pkgs.openssl.dev
|
||||||
|
|
@ -27,7 +26,6 @@
|
||||||
"/bin"
|
"/bin"
|
||||||
];
|
];
|
||||||
|
|
||||||
# Enable direnv with nix integration
|
|
||||||
programs.direnv = {
|
programs.direnv = {
|
||||||
enable = true;
|
enable = true;
|
||||||
nix-direnv.enable = true;
|
nix-direnv.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,4 @@
|
||||||
{
|
{pkgs, ...}: let
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
clear-sans = pkgs.stdenv.mkDerivation {
|
clear-sans = pkgs.stdenv.mkDerivation {
|
||||||
name = "clear-sans";
|
name = "clear-sans";
|
||||||
src = pkgs.fetchurl {
|
src = pkgs.fetchurl {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
|
rpcs3_latest,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
|
|
@ -9,7 +10,7 @@
|
||||||
useGlobalPkgs = true;
|
useGlobalPkgs = true;
|
||||||
useUserPackages = true;
|
useUserPackages = true;
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit inputs;
|
inherit inputs rpcs3_latest;
|
||||||
};
|
};
|
||||||
users.cobray = import ../home-manager/cobray.nix;
|
users.cobray = import ../home-manager/cobray.nix;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,4 @@
|
||||||
{
|
{pkgs, ...}: let
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
wallpapers = [
|
wallpapers = [
|
||||||
"${pkgs.nixos-artwork.wallpapers.simple-dark-gray}/share/backgrounds/nixos/nixos-wallpaper.png"
|
"${pkgs.nixos-artwork.wallpapers.simple-dark-gray}/share/backgrounds/nixos/nixos-wallpaper.png"
|
||||||
"${pkgs.nixos-artwork.wallpapers.gnome-dark}/share/backgrounds/gnome/gnome-dark.png"
|
"${pkgs.nixos-artwork.wallpapers.gnome-dark}/share/backgrounds/gnome/gnome-dark.png"
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,11 @@
|
||||||
{
|
{pkgs, ...}: {
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
networkmanager_dmenu
|
networkmanager_dmenu
|
||||||
networkmanagerapplet
|
networkmanagerapplet
|
||||||
];
|
];
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = [ 57621 ];
|
networking.firewall.allowedTCPPorts = [57621];
|
||||||
networking.firewall.allowedUDPPorts = [ 5353 ];
|
networking.firewall.allowedUDPPorts = [5353];
|
||||||
|
|
||||||
networking.wireless.enable = false; # Enables wireless support via wpa_supplicant.
|
networking.wireless.enable = false; # Enables wireless support via wpa_supplicant.
|
||||||
networking.hostName = "nixos";
|
networking.hostName = "nixos";
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,4 @@
|
||||||
{
|
{...}: {
|
||||||
...
|
|
||||||
}: {
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
programs.nix-index.enable = true;
|
programs.nix-index.enable = true;
|
||||||
programs.command-not-found.enable = false;
|
programs.command-not-found.enable = false;
|
||||||
|
|
|
||||||
39
modules/npm.nix
Normal file
39
modules/npm.nix
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
npmGlobalDir = "$HOME/.npm-global";
|
||||||
|
npmConf = pkgs.writeText "npmrc" ''
|
||||||
|
prefix=${npmGlobalDir}
|
||||||
|
cache=$HOME/.npm
|
||||||
|
init-module=$HOME/.npm-init.js
|
||||||
|
node-linker=hoisted
|
||||||
|
'';
|
||||||
|
in {
|
||||||
|
options.npm = {
|
||||||
|
enable = lib.mkEnableOption "System NPM Environment";
|
||||||
|
};
|
||||||
|
config = lib.mkIf config.npm.enable {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
nodejs
|
||||||
|
nodePackages.npm
|
||||||
|
];
|
||||||
|
environment.variables = {
|
||||||
|
NPM_CONFIG_PREFIX = npmGlobalDir;
|
||||||
|
PATH = ["${npmGlobalDir}/bin"];
|
||||||
|
NPM_CONFIG_USERCONFIG = "${npmConf}";
|
||||||
|
};
|
||||||
|
system.userActivationScripts.setupNpm = ''
|
||||||
|
mkdir -p ${npmGlobalDir}/bin
|
||||||
|
mkdir -p $HOME/.npm
|
||||||
|
if [ ! -f "$HOME/.npmrc" ]; then
|
||||||
|
cp ${npmConf} $HOME/.npmrc
|
||||||
|
fi
|
||||||
|
if [ -d "${npmGlobalDir}" ]; then
|
||||||
|
chmod -R +rw ${npmGlobalDir}
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,11 +1,9 @@
|
||||||
{
|
{pkgs, ...}: {
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
programs.steam = {
|
programs.steam = {
|
||||||
enable = true;
|
enable = true;
|
||||||
remotePlay.openFirewall = true;
|
remotePlay.openFirewall = true;
|
||||||
dedicatedServer.openFirewall = true;
|
dedicatedServer.openFirewall = true;
|
||||||
|
# apparently enabling this makes big picture boot up, does not work on nvidia however
|
||||||
# gamescopeSession.enable = true;
|
# gamescopeSession.enable = true;
|
||||||
extraCompatPackages = [
|
extraCompatPackages = [
|
||||||
pkgs.proton-ge-bin
|
pkgs.proton-ge-bin
|
||||||
|
|
|
||||||
10
modules/tailscale.nix
Normal file
10
modules/tailscale.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
{...}: {
|
||||||
|
services.tailscale = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.firewall = {
|
||||||
|
allowedUDPPorts = [41641];
|
||||||
|
trustedInterfaces = ["tailscale0"];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,4 @@
|
||||||
{
|
{...}: {
|
||||||
...
|
|
||||||
}: {
|
|
||||||
time.timeZone = "America/Edmonton";
|
time.timeZone = "America/Edmonton";
|
||||||
i18n.defaultLocale = "en_CA.UTF-8";
|
i18n.defaultLocale = "en_CA.UTF-8";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
}:
|
}:
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "fish";
|
pname = "fish";
|
||||||
version = "4.1-2025-03-16-rust-${builtins.substring 0 7 "642ec399ca17bbde973dc20461335396fe922e4c"}";
|
version = "4.0.1-2025-03-16-rust-${builtins.substring 0 7 "642ec399ca17bbde973dc20461335396fe922e4c"}";
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = "https://github.com/fish-shell/fish-shell.git";
|
url = "https://github.com/fish-shell/fish-shell.git";
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue