Compare commits

..

10 Commits

Author SHA1 Message Date
fd62c17426 updated nvim input 2026-07-03 21:38:23 +01:00
90c612bb57 enabled git-secret and gnupg 2026-07-02 08:55:28 +01:00
f08555296c added rocm drivers 2026-06-30 20:33:44 +01:00
44404e02a0 changed to alejandra for formatting 2026-06-28 13:55:43 +01:00
65e5fd2d99 added nom 2026-06-28 13:06:12 +01:00
ddb1d3c8d2 added custom patched woomer 2026-06-27 10:39:37 +01:00
e7b1f5acaf moved davinci to a flake and added the ffmpeg encoder 2026-06-25 17:37:35 +01:00
8f97b6ff34 fixed wshowkeys errors 2026-06-23 16:16:15 +01:00
2a0fbdcd16 made nvim input a single line 2026-06-20 14:12:03 +01:00
7c74a61821 changed some wine stuff 2026-06-19 14:25:48 +01:00
8 changed files with 410 additions and 444 deletions

View File

@@ -4,9 +4,7 @@
pkgs, pkgs,
inputs, inputs,
... ...
}: }: {
{
imports = [ imports = [
/etc/nixos/hardware-configuration.nix /etc/nixos/hardware-configuration.nix
]; ];
@@ -50,6 +48,9 @@
}; };
}; };
# Set <nixpkgs> correctly
nix.nixPath = ["nixpkgs=${inputs.nixpkgs}"];
## Optimise Nix store on rebuild and collect garbage as a service ## Optimise Nix store on rebuild and collect garbage as a service
nix.optimise.automatic = true; nix.optimise.automatic = true;
nix.gc = { nix.gc = {
@@ -154,108 +155,106 @@
"docker" "docker"
"wheel" "wheel"
]; ];
packages = packages = with pkgs; let
with pkgs; input = {
let package,
input = output ? "default",
{ }:
package, inputs.${package}.packages.${pkgs.stdenv.hostPlatform.system}.${output};
output ? "default", wrap = {
}: name,
inputs.${package}.packages.${pkgs.stdenv.hostPlatform.system}.${output}; pkg,
wrap = modules,
{ }:
name, pkgs.symlinkJoin {
pkg, inherit name;
modules, paths = [pkg];
}: nativeBuildInputs = [pkgs.makeWrapper];
pkgs.symlinkJoin { postBuild = ''
inherit name; wrapProgram $out/bin/${name} \
paths = [ pkg ]; --prefix PATH : ${pkgs.lib.makeBinPath modules}
nativeBuildInputs = [ pkgs.makeWrapper ]; '';
postBuild = '' };
wrapProgram $out/bin/${name} \ in [
--prefix PATH : ${pkgs.lib.makeBinPath modules} # Ricing
''; ## Desktop
}; bibata-cursors
in catppuccin-gtk
[ unstable.waybar
# Ricing hyprlock
## Desktop dunst
bibata-cursors wlogout
catppuccin-gtk wpaperd
unstable.waybar quickshell
hyprlock
dunst
wlogout
wpaperd
quickshell
## Desktop Utilities ## Desktop Utilities
grimblast grimblast
gsettings-desktop-schemas gsettings-desktop-schemas
wl-clipboard wl-clipboard
(wrap { (wrap {
name = "otter-launcher"; name = "otter-launcher";
pkg = ( pkg = (
input { input {
package = "otter-launcher"; package = "otter-launcher";
} }
); );
modules = [ modules = [
chafa chafa
jq jq
]; ];
}) })
(input { package = "fsel"; }) (input {package = "fsel";})
# Terminal # Terminal
## Styling / Functionality ## Styling / Functionality
oh-my-posh oh-my-posh
carapace carapace
zsh-autocomplete zsh-autocomplete
bat bat
## Tools ## Tools
lazygit lazygit
p7zip-rar git-secret
any-nix-shell p7zip-rar
bluetui any-nix-shell
fzf bluetui
ripgrep fzf
wget ripgrep
htop wget
playerctl htop
git playerctl
lsd git
(input { lsd
package = "doot"; (input {
}) package = "doot";
})
## Other CLI Apps ## Other CLI Apps
nodejs nodejs
fastfetch fastfetch
opencode opencode
tailscale tailscale
syncthing syncthing
jellyfin-tui jellyfin-tui
devenv
nix-output-monitor
# Apps # Apps
## Actual Useful Stuff ## Actual Useful Stuff
nemo nemo
kitty kitty
firefox firefox
gotify-desktop gotify-desktop
pavucontrol pavucontrol
mpv mpv
input-remapper input-remapper
## Other Nonsense ## Other Nonsense
tor-browser tor-browser
techmino techmino
prismlauncher prismlauncher
delfin delfin
]; ];
}; };
## Zsh ## Zsh
@@ -281,7 +280,7 @@
programs = { programs = {
dconf.enable = true; dconf.enable = true;
xfconf.enable = true; xfconf.enable = true;
gdk-pixbuf.modulePackages = [ pkgs.librsvg ]; # For wlogout svgs gdk-pixbuf.modulePackages = [pkgs.librsvg]; # For wlogout svgs
}; };
## User Services ## User Services
@@ -299,11 +298,10 @@
fonts.packages = with pkgs; [ fonts.packages = with pkgs; [
nerd-fonts.fira-mono nerd-fonts.fira-mono
]; ];
fonts.fontconfig.defaultFonts.serif = [ "Fira Mono Nerd Font" ]; fonts.fontconfig.defaultFonts.serif = ["Fira Mono Nerd Font"];
# System Packages # System Packages
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# Utilities # Utilities
inputs.nvim-wrapped.packages.${stdenv.hostPlatform.system}.default inputs.nvim-wrapped.packages.${stdenv.hostPlatform.system}.default
vim vim
@@ -314,6 +312,7 @@
# System # System
mesa mesa
pkg-config
vulkan-tools vulkan-tools
gvfs gvfs
wayvnc wayvnc
@@ -328,8 +327,11 @@
libnotify libnotify
gsettings-desktop-schemas gsettings-desktop-schemas
]; ];
programs.gnupg.agent = {
enable = true;
pinentryPackage = pkgs.pinentry-all;
};
# The comment # The comment
system.stateVersion = "25.05"; # Did you read the comment? system.stateVersion = "25.05"; # Did you read the comment?
} }

View File

@@ -4,9 +4,7 @@
pkgs, pkgs,
inputs, inputs,
... ...
}: }: {
{
networking.hostName = "mobile02"; # Define your hostname. networking.hostName = "mobile02"; # Define your hostname.
# Opengl and vulkan # Opengl and vulkan
@@ -36,7 +34,7 @@
# Local User # Local User
users.users.user01 = { users.users.user01 = {
extraGroups = [ ]; extraGroups = [];
packages = with pkgs; [ packages = with pkgs; [
# Ricing # Ricing
inputs.way-edges.packages.${stdenv.hostPlatform.system}.way-edges inputs.way-edges.packages.${stdenv.hostPlatform.system}.way-edges
@@ -48,5 +46,4 @@
}; };
programs.steam.enable = true; programs.steam.enable = true;
} }

View File

@@ -4,9 +4,7 @@
pkgs, pkgs,
inputs, inputs,
... ...
}: }: {
{
networking.hostName = "HACKSTATION"; networking.hostName = "HACKSTATION";
# Enable nix-ld to run unpatched binaries # Enable nix-ld to run unpatched binaries
@@ -30,10 +28,16 @@
extraPackages = with pkgs; [ extraPackages = with pkgs; [
libva-vdpau-driver libva-vdpau-driver
libvdpau-va-gl libvdpau-va-gl
rocmPackages.clr.icd
]; ];
enable32Bit = true; enable32Bit = true;
}; };
# For rOCM
systemd.tmpfiles.rules = [
"L+ /opt/rocm - - - - ${pkgs.rocmPackages.clr}"
];
hardware.amdgpu.opencl.enable = true; hardware.amdgpu.opencl.enable = true;
boot.kernelParams = [ boot.kernelParams = [
@@ -113,18 +117,29 @@
users.users.user01 = { users.users.user01 = {
extraGroups = [ extraGroups = [
"docker" "docker"
"input"
"udev"
"wheel"
]; ];
packages = with pkgs; [ packages = with pkgs; [
bottles bottles
mumble mumble
gajim gajim
ferdium ferdium
wine64
delfin delfin
docker docker
orca-slicer orca-slicer
ffmpeg ffmpeg
inputs.norgolith.packages.${pkgs.stdenv.hostPlatform.system}.default inputs.norgolith.packages.${pkgs.stdenv.hostPlatform.system}.default
inputs.cracked-davinci.packages.${pkgs.stdenv.hostPlatform.system}.default
inputs.woomer.packages.${pkgs.stdenv.hostPlatform.system}.default
# wine
wineWow64Packages.stable
winetricks
wine
wine64
freetype
]; ];
}; };
@@ -132,6 +147,10 @@
inputs.sls-steam.packages.${pkgs.stdenv.hostPlatform.system}.wrapped inputs.sls-steam.packages.${pkgs.stdenv.hostPlatform.system}.wrapped
]; ];
programs.obs-studio = {
enable = true;
};
programs.wshowkeys = { programs.wshowkeys = {
enable = true; enable = true;
package = inputs.wshowkeys.packages.${pkgs.stdenv.hostPlatform.system}.default; package = inputs.wshowkeys.packages.${pkgs.stdenv.hostPlatform.system}.default;
@@ -139,6 +158,7 @@
programs.steam = { programs.steam = {
enable = true; enable = true;
protontricks.enable = true;
extraCompatPackages = with pkgs; [ extraCompatPackages = with pkgs; [
proton-ge-bin proton-ge-bin
]; ];

209
flake.lock generated
View File

@@ -65,6 +65,40 @@
}, },
"parent": [] "parent": []
}, },
"cracked-davinci": {
"inputs": {
"nixpkgs": "nixpkgs_2",
"nixpkgs-pinned": "nixpkgs-pinned"
},
"locked": {
"lastModified": 1782405315,
"narHash": "sha256-pZKG7KOr1NPtWwzfEnRZvAi7Uvndd4LiC0OVHjf5IPE=",
"ref": "refs/heads/main",
"rev": "c9859df9bd3781c63d838a1a90d22129885a910b",
"revCount": 5,
"type": "git",
"url": "https://git.voidarc.co.uk/voidarc/nixos.davinci"
},
"original": {
"type": "git",
"url": "https://git.voidarc.co.uk/voidarc/nixos.davinci"
}
},
"crane": {
"locked": {
"lastModified": 1781825982,
"narHash": "sha256-SlXKwIRIhrOSAcTjCB3ftPLzJWZStQIPS7J1FlZPnKk=",
"owner": "ipetkov",
"repo": "crane",
"rev": "469fd08d0bcf6926321fa973c6777fbc87785dd7",
"type": "github"
},
"original": {
"owner": "ipetkov",
"repo": "crane",
"type": "github"
}
},
"doot": { "doot": {
"inputs": { "inputs": {
"doot-src": "doot-src", "doot-src": "doot-src",
@@ -214,6 +248,24 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_4": {
"inputs": {
"systems": "systems_7"
},
"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"
}
},
"fsel": { "fsel": {
"inputs": { "inputs": {
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
@@ -348,7 +400,7 @@
"hyprutils": "hyprutils", "hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner", "hyprwayland-scanner": "hyprwayland-scanner",
"hyprwire": "hyprwire", "hyprwire": "hyprwire",
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_4",
"pre-commit-hooks": "pre-commit-hooks", "pre-commit-hooks": "pre-commit-hooks",
"systems": "systems_3", "systems": "systems_3",
"xdph": "xdph" "xdph": "xdph"
@@ -598,26 +650,10 @@
"type": "github" "type": "github"
} }
}, },
"mesa-davinci": {
"locked": {
"lastModified": 1754501210,
"narHash": "sha256-ahTHrGs72TLVcNUR2VHckEx+t6frke0e/Ptk6AaEINk=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "599ddd2b79331c1e6153e1659bdaab65d62c4c82",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "599ddd2b79331c1e6153e1659bdaab65d62c4c82",
"repo": "nixpkgs",
"type": "github"
}
},
"naersk": { "naersk": {
"inputs": { "inputs": {
"fenix": "fenix", "fenix": "fenix",
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_3"
}, },
"locked": { "locked": {
"lastModified": 1776200608, "lastModified": 1776200608,
@@ -664,6 +700,22 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs-pinned": {
"locked": {
"lastModified": 1772567409,
"narHash": "sha256-qspxGige37s/66q9sptyG5VA/l2IOmMMZVJ4Xhta2wU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e4ec59bc1152b09a4843702e4a49381194f065a2",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e4ec59bc1152b09a4843702e4a49381194f065a2",
"type": "github"
}
},
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1781074563, "lastModified": 1781074563,
@@ -681,6 +733,22 @@
} }
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": {
"lastModified": 1782233679,
"narHash": "sha256-QyuGP5+QOtmXpy4i2X4DhBVBaySBdDKQEhqKcphcp34=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "667d5cf1c59585031d743c78b394b0a647537c35",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-26.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1752077645, "lastModified": 1752077645,
"narHash": "sha256-HM791ZQtXV93xtCY+ZxG1REzhQenSQO020cu6rHtAPk=", "narHash": "sha256-HM791ZQtXV93xtCY+ZxG1REzhQenSQO020cu6rHtAPk=",
@@ -696,7 +764,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_3": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1780749050, "lastModified": 1780749050,
"narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=", "narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=",
@@ -712,7 +780,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1781216227, "lastModified": 1781216227,
"narHash": "sha256-9mUW6gNwoN2SWc/l0fW4svPNOulXLl8ijqKyeSOGgJE=", "narHash": "sha256-9mUW6gNwoN2SWc/l0fW4svPNOulXLl8ijqKyeSOGgJE=",
@@ -728,13 +796,13 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_5": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1781074563, "lastModified": 1782467914,
"narHash": "sha256-md8WlXOlfnIeHeOScMTTHFyf2d6iaTwPl2apR5EQ3P4=", "narHash": "sha256-pGvFkM8N0xEkIIXDe5YYfbEAvHrk4IxBrjB/x8OomhE=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9ae611a455b90cf061d8f332b977e387bda8e1ca", "rev": "e73de5be04e0eff4190a1432b946d469c794e7b4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -744,7 +812,23 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_6": { "nixpkgs_7": {
"locked": {
"lastModified": 1780336545,
"narHash": "sha256-vhVhuXzFrIOfcssC/9hDHx7MHzDKjF3keHuREOQqQiQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4df1b885d76a54e1aa1a318f8d16fd6005b6401f",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_8": {
"locked": { "locked": {
"lastModified": 1769170682, "lastModified": 1769170682,
"narHash": "sha256-oMmN1lVQU0F0W2k6OI3bgdzp2YOHWYUAw79qzDSjenU=", "narHash": "sha256-oMmN1lVQU0F0W2k6OI3bgdzp2YOHWYUAw79qzDSjenU=",
@@ -783,14 +867,15 @@
}, },
"nvim-wrapped": { "nvim-wrapped": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_5" "nixpkgs": "nixpkgs_6",
"wrappers": "wrappers"
}, },
"locked": { "locked": {
"lastModified": 1781453653, "lastModified": 1783103301,
"narHash": "sha256-5XhbIAdcoVblquSRVbg5HUnRni96ksMqzGNTEGSb3Cg=", "narHash": "sha256-EJ662Hh+r1AKh1MGFrN2QbrIMYTwu4Jb106BNyeMIZI=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "e46d931775275918876fcde65d03e4dcffa45efa", "rev": "7de01201e837d93ad3128719ad49162d4b900d5d",
"revCount": 83, "revCount": 92,
"type": "git", "type": "git",
"url": "file:///home/user01/.dotfiles/.config/nvim" "url": "file:///home/user01/.dotfiles/.config/nvim"
}, },
@@ -869,11 +954,11 @@
"root": { "root": {
"inputs": { "inputs": {
"chataigne": "chataigne", "chataigne": "chataigne",
"cracked-davinci": "cracked-davinci",
"doot": "doot", "doot": "doot",
"fsel": "fsel", "fsel": "fsel",
"hyprland": "hyprland", "hyprland": "hyprland",
"mesa-davinci": "mesa-davinci", "nixpkgs": "nixpkgs_5",
"nixpkgs": "nixpkgs_4",
"nixpkgs-unstable": "nixpkgs-unstable", "nixpkgs-unstable": "nixpkgs-unstable",
"norgolith": "norgolith", "norgolith": "norgolith",
"nvim-wrapped": "nvim-wrapped", "nvim-wrapped": "nvim-wrapped",
@@ -881,6 +966,7 @@
"otter-launcher": "otter-launcher", "otter-launcher": "otter-launcher",
"sls-steam": "sls-steam", "sls-steam": "sls-steam",
"way-edges": "way-edges", "way-edges": "way-edges",
"woomer": "woomer",
"wshowkeys": "wshowkeys" "wshowkeys": "wshowkeys"
} }
}, },
@@ -924,7 +1010,7 @@
}, },
"sls-steam": { "sls-steam": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_6" "nixpkgs": "nixpkgs_8"
}, },
"locked": { "locked": {
"lastModified": 1781157498, "lastModified": 1781157498,
@@ -1030,6 +1116,21 @@
"type": "github" "type": "github"
} }
}, },
"systems_7": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"utils": { "utils": {
"inputs": { "inputs": {
"systems": "systems" "systems": "systems"
@@ -1069,9 +1170,49 @@
"type": "github" "type": "github"
} }
}, },
"woomer": {
"inputs": {
"crane": "crane",
"flake-utils": "flake-utils_3",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1782507996,
"narHash": "sha256-hO+SIA6Q41hiwZBFGHBjkOsRQFUcO0SbJqmYeyy2sfM=",
"owner": "voidarclabs",
"repo": "woomer",
"rev": "572844bdae8dded0bbad9e23ca354dcd857f6b98",
"type": "github"
},
"original": {
"owner": "voidarclabs",
"repo": "woomer",
"type": "github"
}
},
"wrappers": {
"inputs": {
"nixpkgs": "nixpkgs_7"
},
"locked": {
"lastModified": 1782135443,
"narHash": "sha256-vAmbArdCyjqpVW+37aCy/PMBOLIqukUXLQuEKLwUhA4=",
"owner": "BirdeeHub",
"repo": "nix-wrapper-modules",
"rev": "6e7f66fa2cdf4d63162580b438f7fcf87c28a46f",
"type": "github"
},
"original": {
"owner": "BirdeeHub",
"repo": "nix-wrapper-modules",
"type": "github"
}
},
"wshowkeys": { "wshowkeys": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_3", "flake-utils": "flake-utils_4",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ]

View File

@@ -5,13 +5,15 @@
# System # System
nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05"; nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
nvim-wrapped = { nvim-wrapped.url = "git+file:///home/user01/.dotfiles/.config/nvim";
url = "git+file:///home/user01/.dotfiles/.config/nvim";
};
hyprland.url = "github:hyprwm/Hyprland"; hyprland.url = "github:hyprwm/Hyprland";
# Apps # Apps
sls-steam.url = "github:AceSLS/SLSsteam"; sls-steam.url = "github:AceSLS/SLSsteam";
woomer = {
url = "github:voidarclabs/woomer";
inputs.nixpkgs.follows = "nixpkgs";
};
chataigne.url = "./modules/chataigne"; chataigne.url = "./modules/chataigne";
norgolith = { norgolith = {
url = "github:NTBBloodbath/norgolith"; url = "github:NTBBloodbath/norgolith";
@@ -41,7 +43,7 @@
}; };
# Davinci-resolve # Davinci-resolve
mesa-davinci.url = "github:nixos/nixpkgs?ref=599ddd2b79331c1e6153e1659bdaab65d62c4c82"; cracked-davinci.url = "git+https://git.voidarc.co.uk/voidarc/nixos.davinci";
omnisearch = { omnisearch = {
url = "git+https://git.voidarc.co.uk/voidarc/omnisearch"; url = "git+https://git.voidarc.co.uk/voidarc/omnisearch";
@@ -49,42 +51,39 @@
}; };
}; };
outputs = outputs = {
{ self,
self, nixpkgs,
nixpkgs, ...
... } @ inputs: let
}@inputs: system = "x86_64-linux";
let
system = "x86_64-linux";
hardwareConfig = import /etc/nixos/hardware-configuration.nix; hardwareConfig = import /etc/nixos/hardware-configuration.nix;
common = import ./configs/common.nix; common = import ./configs/common.nix;
mkSystem = mkSystem = extraModules:
extraModules: nixpkgs.lib.nixosSystem {
nixpkgs.lib.nixosSystem { inherit system;
inherit system; specialArgs = {inherit inputs;};
specialArgs = { inherit inputs; }; modules =
modules = [ [
common common
hardwareConfig hardwareConfig
] ]
++ extraModules; ++ extraModules;
};
in
{
nixosConfigurations = {
mobile02 = mkSystem [ ./configs/configuration-laptop.nix ];
hackstation = mkSystem [
./configs/configuration-pc.nix
./modules/davinci/davinci.nix
./modules/i3/i3.nix
inputs.omnisearch.nixosModules.default
{
services.omnisearch.enable = true;
}
];
}; };
in {
nixosConfigurations = {
mobile02 = mkSystem [./configs/configuration-laptop.nix];
hackstation = mkSystem [
./configs/configuration-pc.nix
# ./modules/davinci/davinci.nix
./modules/i3/i3.nix
inputs.omnisearch.nixosModules.default
{
services.omnisearch.enable = true;
}
];
}; };
};
} }

View File

@@ -5,78 +5,78 @@
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
}; };
outputs = outputs = {
{ self, nixpkgs }: self,
let nixpkgs,
system = "x86_64-linux"; }: let
pkgs = import nixpkgs { inherit system; }; system = "x86_64-linux";
pkgs = import nixpkgs {inherit system;};
# The libraries you requested # The libraries you requested
deps = with pkgs; [ deps = with pkgs; [
curlFull curlFull
gnutls gnutls
libxrandr libxrandr
alsa-lib alsa-lib
freetype freetype
avahi avahi
libglvnd libglvnd
curl curl
SDL2 SDL2
hidapi hidapi
libpulseaudio libpulseaudio
lz4 lz4
openssl openssl
libcap libcap
libxcrypt libxcrypt
libgcrypt libgcrypt
libbsd libbsd
zlib zlib
glib glib
];
# Wrap the local AppImage file
chataigne-bin = pkgs.appimageTools.wrapType2 {
pname = "chataigne";
version = "1.10.3";
# This points to the file in the same directory as flake.nix
src = ./Chataigne-linux-x64-1.10.3.AppImage;
extraPkgs = pkgs: deps;
};
# Create the Desktop Entry
chataigne-desktop = pkgs.makeDesktopItem {
name = "chataigne";
exec = "chataigne";
icon = "chataigne";
comment = "Modular machine for art and technology";
desktopName = "Chataigne";
categories = [
"AudioVideo"
"Development"
];
};
in {
# packages.${system}.default = chataigne-bin;
devShells.${system}.default = pkgs.mkShell {
# Packages you want available in your shell
buildInputs = [
chataigne-bin
]; ];
# Wrap the local AppImage file # Environmental variables or shell hooks
chataigne-bin = pkgs.appimageTools.wrapType2 { shellHook = ''
pname = "chataigne"; echo "something"
version = "1.10.3"; '';
# This points to the file in the same directory as flake.nix
src = ./Chataigne-linux-x64-1.10.3.AppImage;
extraPkgs = pkgs: deps;
};
# Create the Desktop Entry
chataigne-desktop = pkgs.makeDesktopItem {
name = "chataigne";
exec = "chataigne";
icon = "chataigne";
comment = "Modular machine for art and technology";
desktopName = "Chataigne";
categories = [
"AudioVideo"
"Development"
];
};
in
{
# packages.${system}.default = chataigne-bin;
devShells.${system}.default = pkgs.mkShell {
# Packages you want available in your shell
buildInputs = [
chataigne-bin
];
# Environmental variables or shell hooks
shellHook = ''
echo "something"
'';
};
# This allows you to run 'nix run' or install it via system config
packages.${system}.default = pkgs.symlinkJoin {
name = "chataigne";
paths = [
chataigne-bin
chataigne-desktop
];
};
}; };
# This allows you to run 'nix run' or install it via system config
packages.${system}.default = pkgs.symlinkJoin {
name = "chataigne";
paths = [
chataigne-bin
chataigne-desktop
];
};
};
} }

View File

@@ -1,192 +0,0 @@
# Tested on Davinci 20.2.2. It works for loading videos and exporting in H264/5 & AV1
# Even if following this guide https://www.reddit.com/r/LinuxCrackSupport/comments/1nfqhld/davinci_resolve_studio_202_fix_linux_crack_guide/
# nixpkgs rev used for this tests: 4652ba995a945108fb891191c1e910b9a6ed9064
{ lib, inputs, ... }:
let
mesa-good-pkg = inputs.mesa-davinci.legacyPackages.x86_64-linux.mesa;
pkgs = import (builtins.fetchTarball {
url = "https://github.com/NixOS/nixpkgs/archive/ec7c70d12ce2fc37cb92aff673dcdca89d187bae.tar.gz";
}) { config.allowUnfree = true; };
pkgs-pinned =
import
(builtins.fetchTarball {
url = "https://github.com/NixOS/nixpkgs/archive/497ee3c70707fd71b45c37d48ae1d45e79751047.tar.gz";
})
{
config = {
allowUnfree = true;
};
};
ffmpeg-encoder-plugin = pkgs.stdenv.mkDerivation (finalAttrs: {
pname = "ffmpeg-encoder-plugin";
version = "1.2.1";
src = pkgs.fetchFromGitHub {
owner = "EdvinNilsson";
repo = "ffmpeg_encoder_plugin";
rev = "v${finalAttrs.version}";
hash = "sha256-F4Q8YCXD5UldTwLbWK4nHacNPQ/B+4yLL96sq7xZurM=";
};
nativeBuildInputs = [ pkgs.cmake ];
buildInputs = [ pkgs.ffmpeg-full ];
installPhase = ''
mkdir -p $out
cp ffmpeg_encoder_plugin.dvcp $out/
'';
});
davinci-resolve-studio-cracked =
let
davinci-patched = pkgs-pinned.davinci-resolve-studio.davinci.overrideAttrs (old: {
# script based on https://www.reddit.com/r/LinuxCrackSupport/comments/1nfqhld/davinci_resolve_studio_202_fix_linux_crack_guide/
#
# Additionally, it will install ffmpeg_encoder_plugin to enable H264/5 & AV1 exports:
# https://github.com/EdvinNilsson/ffmpeg_encoder_plugin
#
# Note: $out IS /opt/resolve
postInstall = ''
${old.postInstall or ""}
${lib.getExe pkgs.perl} -pi -e 's/\x74\x11\xe8\x21\x23\x00\x00/\xeb\x11\xe8\x21\x23\x00\x00/g' $out/bin/resolve
${lib.getExe pkgs.perl} -pi -e 's/\x03\x00\x89\x45\xFC\x83\x7D\xFC\x00\x74\x11\x48\x8B\x45\xC8\x8B/\x03\x00\x89\x45\xFC\x83\x7D\xFC\x00\xEB\x11\x48\x8B\x45\xC8\x8B/' $out/bin/resolve
${lib.getExe pkgs.perl} -pi -e 's/\x74\x11\x48\x8B\x45\xC8\x8B\x55\xFC\x89\x50\x58\xB8\x00\x00\x00/\xEB\x11\x48\x8B\x45\xC8\x8B\x55\xFC\x89\x50\x58\xB8\x00\x00\x00/' $out/bin/resolve
${lib.getExe pkgs.perl} -pi -e 's/\x41\xb6\x01\x84\xc0\x0f\x84\xb0\x00\x00\x00\x48\x85\xdb\x74\x08\x45\x31\xf6\xe9\xa3\x00\x00\x00/\x41\xb6\x00\x84\xc0\x0f\x84\xb0\x00\x00\x00\x48\x85\xdb\x74\x08\x45\x31\xf6\xe9\xa3\x00\x00\x00/' $out/bin/resolve
touch $out/.license/blackmagic.lic
echo -e "LICENSE blackmagic davinciresolvestudio 999999 permanent uncounted\n hostid=ANY issuer=CGP customer=CGP issued=28-dec-2023\n akey=0000-0000-0000-0000 _ck=00 sig=\"00\"" > $out/.license/blackmagic.lic
mkdir -p $out/IOPlugins/ffmpeg_encoder_plugin.dvcp.bundle/Contents/Linux-x86-64
cp ${ffmpeg-encoder-plugin}/ffmpeg_encoder_plugin.dvcp $out/IOPlugins/ffmpeg_encoder_plugin.dvcp.bundle/Contents/Linux-x86-64/
'';
});
in
# the following was copied from davinci's derivation from nixpkgs.
# if davinci updates, this should be updated too
# but remember to replace "davinci" with "davinci-patched"
pkgs.buildFHSEnv {
inherit (davinci-patched) pname version;
targetPkgs =
pkgs:
with pkgs;
[
alsa-lib
aprutil
bzip2
dbus
expat
fontconfig
freetype
glib
libGL
libGLU
libarchive
libcap
librsvg
libtool
libuuid
libxcrypt # provides libcrypt.so.1
libxkbcommon
nspr
ocl-icd
opencl-headers
python3
python3.pkgs.numpy
udev
xdg-utils # xdg-open needed to open URLs
libICE
libSM
libX11
libXcomposite
libXcursor
libXdamage
libXext
libXfixes
libXi
libXinerama
libXrandr
libXrender
libXt
libXtst
libXxf86vm
libxcb
xcbutil
xcbutilimage
xcbutilkeysyms
xcbutilrenderutil
xcbutilwm
xkeyboardconfig
zlib
ocl-icd
rocmPackages.clr.icd
libGL
libGLU
]
++ [
mesa-good-pkg
davinci-patched
];
extraPreBwrapCmds = ''
mkdir -p ~/.local/share/DaVinciResolve/Extras || exit 1
'';
extraBwrapArgs = [
''--bind "$HOME"/.local/share/DaVinciResolve/Extras ${davinci-patched}/Extras''
];
runScript = "${lib.getExe pkgs.bash} ${pkgs.writeText "davinci-wrapper" ''
export QT_XKB_CONFIG_ROOT="${pkgs.xkeyboard_config}/share/X11/xkb"
export QT_PLUGIN_PATH="${davinci-patched}/libs/plugins:$QT_PLUGIN_PATH"
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib:/usr/lib32:${davinci-patched}/libs
# Force Resolve to use X11 (via XWayland) to avoid Aquamarine/Hyprland conflicts
export QT_QPA_PLATFORM=xcb
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${davinci-patched}/libs
# Prevent Resolve from trying to talk to the Wayland socket directly
unset WAYLAND_DISPLAY
${davinci-patched}/bin/resolve
''}";
extraInstallCommands = ''
mkdir -p $out/share/applications $out/share/icons/hicolor/128x128/apps
ln -s ${davinci-patched}/share/applications/*.desktop $out/share/applications/
ln -s ${davinci-patched}/graphics/DV_Resolve.png $out/share/icons/hicolor/128x128/apps/davinci-resolve-studio.png
'';
passthru = {
inherit davinci-patched;
updateScript = lib.getExe (
pkgs.writeShellApplication {
name = "update-davinci-resolve";
runtimeInputs = [
pkgs.curl
pkgs.jq
pkgs.common-updater-scripts
];
text = ''
set -o errexit
drv=pkgs/by-name/da/davinci-resolve/package.nix
currentVersion=${lib.escapeShellArg davinci-patched.version}
downloadsJSON="$(curl --fail --silent https://www.blackmagicdesign.com/api/support/us/downloads.json)"
latestLinuxVersion="$(echo "$downloadsJSON" | jq '[.downloads[] | select(.urls.Linux) | .urls.Linux[] | select(.downloadTitle | test("DaVinci Resolve")) | .downloadTitle]' | grep -oP 'DaVinci Resolve \K\d+\.\d+(\.\d+)?' | sort | tail -n 1)"
update-source-version davinci-resolve "$latestLinuxVersion" --source-key=davinci.src
# Since the standard and studio both use the same version we need to reset it before updating studio
sed -i -e "s/""$latestLinuxVersion""/""$currentVersion""/" "$drv"
latestStudioLinuxVersion="$(echo "$downloadsJSON" | jq '[.downloads[] | select(.urls.Linux) | .urls.Linux[] | select(.downloadTitle | test("DaVinci Resolve")) | .downloadTitle]' | grep -oP 'DaVinci Resolve Studio \K\d+\.\d+(\.\d+)?' | sort | tail -n 1)"
update-source-version davinci-resolve-studio "$latestStudioLinuxVersion" --source-key=davinci.src
'';
}
);
};
};
in
{
environment.systemPackages = [ davinci-resolve-studio-cracked ];
}

View File

@@ -4,8 +4,7 @@
pkgs, pkgs,
inputs, inputs,
... ...
}: }: {
{
services.libinput.enable = true; services.libinput.enable = true;
services.displayManager.defaultSession = "hyprland"; services.displayManager.defaultSession = "hyprland";