initial commit
This commit is contained in:
@@ -0,0 +1,22 @@
|
|||||||
|
{ lib, ... }:
|
||||||
|
{
|
||||||
|
services.flatpak = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
update.auto = {
|
||||||
|
enable = true;
|
||||||
|
onCalendar = "weekly";
|
||||||
|
};
|
||||||
|
|
||||||
|
remotes = lib.mkOptionDefault [
|
||||||
|
{
|
||||||
|
name = "flathub";
|
||||||
|
location = "https://dl.flathub.org/repo/flathub.flatpakrepo";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "flathub-beta";
|
||||||
|
location = "https://dl.flathub.org/beta-repo/flathub-beta.flatpakrepo";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
|
||||||
|
|
||||||
|
kde-overlay = _final: _prev: {
|
||||||
|
inherit (unstable) kdePackages;
|
||||||
|
};
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
kde-overlay
|
||||||
|
];
|
||||||
|
|
||||||
|
services = {
|
||||||
|
displayManager.plasma-login-manager.enable = true;
|
||||||
|
desktopManager.plasma6.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.portal = {
|
||||||
|
enable = true;
|
||||||
|
extraPortals = with pkgs; [ kdePackages.xdg-desktop-portal-kde ];
|
||||||
|
};
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
plasma6.excludePackages = with pkgs.kdePackages; [
|
||||||
|
plasma-browser-integration
|
||||||
|
elisa
|
||||||
|
discover
|
||||||
|
gwenview
|
||||||
|
okular
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
Generated
+533
@@ -0,0 +1,533 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"appimage-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1784588196,
|
||||||
|
"narHash": "sha256-x3OFUpsVlQ6GqMFOcdOzX37BNLKmMcgkd+WkTKyvmQI=",
|
||||||
|
"owner": "kem-a",
|
||||||
|
"repo": "AppManager",
|
||||||
|
"rev": "1398175763c54b49b05f8be19e98bf330b674e88",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "kem-a",
|
||||||
|
"repo": "AppManager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1767039857,
|
||||||
|
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1733328505,
|
||||||
|
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||||
|
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
||||||
|
"revCount": 69,
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": "nixpkgs-lib"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1782949081,
|
||||||
|
"narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "17c9d6cdfc60c64f4ee8d306f9bc0b4ccb51481e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_2": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": [
|
||||||
|
"nixpkgs-xr",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"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": [
|
||||||
|
"nix-gaming",
|
||||||
|
"flake-compat"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"nix-gaming",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1784288435,
|
||||||
|
"narHash": "sha256-ReRHaLgr/uVqdD8afFSn+myXIfpHeOhP0yYe0TJqAA8=",
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"rev": "43b3c1ab9d40fb1dbb008f451988a91e375825e9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1784350909,
|
||||||
|
"narHash": "sha256-ZWyzLbS1yKUTeFJLmdVuWNnHttL333/ldJbEE+KzCrM=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "4ce190229c73d44536caa7072f6308fb2d8feeb3",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"ref": "release-26.05",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"i915-sriov-dkms": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1778038228,
|
||||||
|
"narHash": "sha256-hnZSTWgGRYRXoYWB/r4ViQ4OMJlNEj2SDH8jxxn1vso=",
|
||||||
|
"owner": "strongtz",
|
||||||
|
"repo": "i915-sriov-dkms",
|
||||||
|
"rev": "2421d3ff8c27a967ffc2c6a1d19e0f3790ace5a0",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "strongtz",
|
||||||
|
"repo": "i915-sriov-dkms",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lazyvim": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1780594829,
|
||||||
|
"narHash": "sha256-uWfhrU3xJzha7DQ+i21NlymE9LDqXYxmAwgk5TPYp2g=",
|
||||||
|
"owner": "pfassina",
|
||||||
|
"repo": "lazyvim-nix",
|
||||||
|
"rev": "4028c6c369881a95efcd6559627cc53ccfd06875",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "pfassina",
|
||||||
|
"ref": "v16.0.0",
|
||||||
|
"repo": "lazyvim-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-darwin": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1783744694,
|
||||||
|
"narHash": "sha256-2cp6N3rrwnGYLTx9l6N+NI+kwrCWxvJUbj5WJhvB29A=",
|
||||||
|
"owner": "nix-darwin",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"rev": "c3e90c89649b07d1a96e4b9dd6cd0d6e44b91a74",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-darwin",
|
||||||
|
"ref": "nix-darwin-26.05",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-flatpak": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1767983141,
|
||||||
|
"narHash": "sha256-7ZCulYUD9RmJIDULTRkGLSW1faMpDlPKcbWJLYHoXcs=",
|
||||||
|
"owner": "gmodena",
|
||||||
|
"repo": "nix-flatpak",
|
||||||
|
"rev": "440818969ac2cbd77bfe025e884d0aa528991374",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "gmodena",
|
||||||
|
"ref": "v0.7.0",
|
||||||
|
"repo": "nix-flatpak",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-gaming": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"flake-parts": "flake-parts",
|
||||||
|
"git-hooks": "git-hooks",
|
||||||
|
"nixpkgs": "nixpkgs_4"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1784431599,
|
||||||
|
"narHash": "sha256-B80p0N3Uqx4+nMl/rFK/SU+1i3UNkAAMP7TaUk1ug20=",
|
||||||
|
"owner": "fufexan",
|
||||||
|
"repo": "nix-gaming",
|
||||||
|
"rev": "1aef499f40964840bf28c8e5a47ac7e8009a7e7e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "fufexan",
|
||||||
|
"repo": "nix-gaming",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1776548001,
|
||||||
|
"narHash": "sha256-ZSK0NL4a1BwVbbTBoSnWgbJy9HeZFXLYQizjb2DPF24=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "b12141ef619e0a9c1c84dc8c684040326f27cdcc",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-lib": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1782614948,
|
||||||
|
"narHash": "sha256-ePjCwr1sNm9NYUqywL7QfK3JnlS015msC+eBu2zKlp8=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixpkgs.lib",
|
||||||
|
"rev": "db3f255737b94216eb71cce308e2912cf6bc2d7c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixpkgs.lib",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-unstable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1784497964,
|
||||||
|
"narHash": "sha256-vlHUuqAcbcH2RKmHbPiuQzbv1pnzzavXnI62RD0bqCU=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-xr": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat_2",
|
||||||
|
"flake-utils": "flake-utils_2",
|
||||||
|
"nixpkgs": "nixpkgs_6",
|
||||||
|
"nvfetcher": "nvfetcher",
|
||||||
|
"systems": "systems_2",
|
||||||
|
"treefmt-nix": "treefmt-nix"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1784428803,
|
||||||
|
"narHash": "sha256-zBWjiZOrNB4PvTzMQY7Ll9RRe3obGFC3egKaxVE9GIs=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixpkgs-xr",
|
||||||
|
"rev": "28fe56a7bed09a33a82225f5cc48e343c2a5cd04",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixpkgs-xr",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1760038930,
|
||||||
|
"narHash": "sha256-Oncbh0UmHjSlxO7ErQDM3KM0A5/Znfofj2BSzlHLeVw=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "0b4defa2584313f3b781240b29d61f6f9f7e0df3",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1752480373,
|
||||||
|
"narHash": "sha256-JHQbm+OcGp32wAsXTE/FLYGNpb+4GLi5oTvCxwSoBOA=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "62e0f05ede1da0d54515d4ea8ce9c733f12d9f08",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_4": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1784364478,
|
||||||
|
"narHash": "sha256-CdItYNdYUlm7NxqMVyQKqT2IxTwvapiPuRLWOyHTrbY=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "20535e48e12c86043b577b8518234ff5dbb26957",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_5": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1784432872,
|
||||||
|
"narHash": "sha256-n3gKTBIV4ZA5VQpUakffBe3KGu4+mhPoA34rrqS0GkA=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "fd1462031fdee08f65fd0b4c6b64e22239a77870",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-26.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_6": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1784356753,
|
||||||
|
"narHash": "sha256-12KrbMiWLcf8m7pCvAtZh1ZrgF85ZXDXvfR/fWTKy84=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "61b7c44c4073f0b827768aff0049561b5110ea5a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_7": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1784497964,
|
||||||
|
"narHash": "sha256-vlHUuqAcbcH2RKmHbPiuQzbv1pnzzavXnI62RD0bqCU=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nvfetcher": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": [
|
||||||
|
"nixpkgs-xr",
|
||||||
|
"flake-compat"
|
||||||
|
],
|
||||||
|
"flake-utils": [
|
||||||
|
"nixpkgs-xr",
|
||||||
|
"flake-utils"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs-xr",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1766178214,
|
||||||
|
"narHash": "sha256-tKDXreDwrRkdjvfot5fr1++ed6oOq3+/hW/Dj8WfTgs=",
|
||||||
|
"owner": "Red-M",
|
||||||
|
"repo": "nvfetcher",
|
||||||
|
"rev": "a84b3ce67f1d7acd85b3aa2b9967ab91ed6e7a71",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Red-M",
|
||||||
|
"repo": "nvfetcher",
|
||||||
|
"rev": "a84b3ce67f1d7acd85b3aa2b9967ab91ed6e7a71",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"appimage-manager": "appimage-manager",
|
||||||
|
"home-manager": "home-manager",
|
||||||
|
"i915-sriov-dkms": "i915-sriov-dkms",
|
||||||
|
"lazyvim": "lazyvim",
|
||||||
|
"nix-darwin": "nix-darwin",
|
||||||
|
"nix-flatpak": "nix-flatpak",
|
||||||
|
"nix-gaming": "nix-gaming",
|
||||||
|
"nixpkgs": "nixpkgs_5",
|
||||||
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
|
"nixpkgs-xr": "nixpkgs-xr",
|
||||||
|
"scopebuddy": "scopebuddy"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"scopebuddy": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_7"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1772751261,
|
||||||
|
"narHash": "sha256-3h6N5h9aYumIStx+G7qYZpKTOiMG+tQokjs8c+xuJ2A=",
|
||||||
|
"owner": "HikariKnight",
|
||||||
|
"repo": "ScopeBuddy",
|
||||||
|
"rev": "150051976a2a1e64179edc7265175ba4e5f62f62",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "HikariKnight",
|
||||||
|
"repo": "ScopeBuddy",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1689347949,
|
||||||
|
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default-linux",
|
||||||
|
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default-linux",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"treefmt-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs-xr",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1784369104,
|
||||||
|
"narHash": "sha256-47cxbcZODibHv3rELFQ9vZly0vUNkND/atn/U7HLeb0=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"rev": "df3c0640565d04a0261253cdd89fce78ec50168a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
@@ -0,0 +1,99 @@
|
|||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05";
|
||||||
|
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
|
home-manager = {
|
||||||
|
url = "github:nix-community/home-manager/release-26.05";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
nix-darwin = {
|
||||||
|
url = "github:nix-darwin/nix-darwin/nix-darwin-26.05";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.7.0";
|
||||||
|
appimage-manager.url = "github:kem-a/AppManager";
|
||||||
|
|
||||||
|
i915-sriov-dkms.url = "github:strongtz/i915-sriov-dkms";
|
||||||
|
|
||||||
|
lazyvim.url = "github:pfassina/lazyvim-nix/v16.0.0";
|
||||||
|
|
||||||
|
scopebuddy.url = "github:HikariKnight/ScopeBuddy";
|
||||||
|
nix-gaming.url = "github:fufexan/nix-gaming";
|
||||||
|
nixpkgs-xr.url = "github:nix-community/nixpkgs-xr";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs =
|
||||||
|
inputs@{
|
||||||
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
nixpkgs-xr,
|
||||||
|
home-manager,
|
||||||
|
nix-darwin,
|
||||||
|
nix-flatpak,
|
||||||
|
i915-sriov-dkms,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
home-manager-configuration = { home-manager, ... }: {
|
||||||
|
home-manager = {
|
||||||
|
useGlobalPkgs = true;
|
||||||
|
useUserPackages = true;
|
||||||
|
extraSpecialArgs = { inherit inputs; };
|
||||||
|
users.frank = ./home/frank.nix;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
nixosConfigurations = {
|
||||||
|
nero = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = { inherit inputs; };
|
||||||
|
|
||||||
|
modules = [
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
|
home-manager-configuration
|
||||||
|
|
||||||
|
nixpkgs-xr.nixosModules.nixpkgs-xr
|
||||||
|
nix-flatpak.nixosModules.nix-flatpak
|
||||||
|
|
||||||
|
./hosts/nero/hardware.nix
|
||||||
|
./hosts/nero/configuration.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
pdw-frankiel = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = { inherit inputs; };
|
||||||
|
|
||||||
|
modules = [
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
|
home-manager-configuration
|
||||||
|
|
||||||
|
nix-flatpak.nixosModules.nix-flatpak
|
||||||
|
i915-sriov-dkms.nixosModules.default
|
||||||
|
|
||||||
|
./hosts/pdw-frankiel/hardware.nix
|
||||||
|
./hosts/pdw-frankiel/configuration.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
darwinConfigurations = {
|
||||||
|
franks-macbook-pro = nix-darwin.lib.darwinSystem {
|
||||||
|
specialArgs = { inherit inputs; };
|
||||||
|
|
||||||
|
modules = [
|
||||||
|
home-manager.darwinModules.home-manager
|
||||||
|
home-manager-configuration
|
||||||
|
|
||||||
|
{
|
||||||
|
users.users.frank.home = "/Users/frank";
|
||||||
|
}
|
||||||
|
|
||||||
|
./hosts/franks-macbook-pro/configuration.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
+133
@@ -0,0 +1,133 @@
|
|||||||
|
{ inputs, pkgs, ... }:
|
||||||
|
let
|
||||||
|
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.lazyvim.homeManagerModules.default
|
||||||
|
];
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
bash = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
# Display fastfetch on shell open.
|
||||||
|
initExtra = ''
|
||||||
|
clear;fastfetch
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
fastfetch = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
package = unstable.fastfetch;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
modules = [
|
||||||
|
"title"
|
||||||
|
"separator"
|
||||||
|
"os"
|
||||||
|
"kernel"
|
||||||
|
"uptime"
|
||||||
|
"host"
|
||||||
|
"localip"
|
||||||
|
"packages"
|
||||||
|
"shell"
|
||||||
|
"terminal"
|
||||||
|
"wm"
|
||||||
|
"cpu"
|
||||||
|
"gpu"
|
||||||
|
"memory"
|
||||||
|
"disk"
|
||||||
|
"break"
|
||||||
|
];
|
||||||
|
|
||||||
|
logo = {
|
||||||
|
source = "nixos2";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ssh = {
|
||||||
|
enable = true;
|
||||||
|
enableDefaultConfig = false;
|
||||||
|
|
||||||
|
settings."*" = {
|
||||||
|
AddKeysToAgent = "yes";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
lazyvim = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
config = {
|
||||||
|
# Enable light mode and configure tabstop
|
||||||
|
# to two spaces rather than 4.
|
||||||
|
options = ''
|
||||||
|
vim.o.background = "light"
|
||||||
|
vim.opt.tabstop = 2
|
||||||
|
vim.opt.shiftwidth = 2
|
||||||
|
vim.opt.expandtab = true
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
plugins = {
|
||||||
|
colorscheme = ''
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
"LazyVim/LazyVim",
|
||||||
|
opts = { colorscheme = "tokyonight-day" },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"folke/tokyonight.nvim",
|
||||||
|
lazy = false,
|
||||||
|
priority = 1000,
|
||||||
|
opts = { style = "day" },
|
||||||
|
},
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
extras = {
|
||||||
|
lang = {
|
||||||
|
nix.enable = true;
|
||||||
|
python.enable = true;
|
||||||
|
rust.enable = true;
|
||||||
|
dotnet.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
nix
|
||||||
|
alejandra
|
||||||
|
statix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
git = {
|
||||||
|
enable = true;
|
||||||
|
lfs.enable = true;
|
||||||
|
|
||||||
|
signing = {
|
||||||
|
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ5+RJOhvamBpEptCRv90E+8bVWKn6Mep61wDpPYgKP3 floturcocantsee@daguerro.net";
|
||||||
|
signByDefault = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
init.defaultBranch = "main";
|
||||||
|
safe.directory = if pkgs.stdenv.hostPlatform.isDarwin then "/etc/nix-darwin" else "/etc/nixos";
|
||||||
|
|
||||||
|
user = {
|
||||||
|
name = "Frank LoTurco";
|
||||||
|
email = "floturcocantsee@protonmail.com";
|
||||||
|
};
|
||||||
|
|
||||||
|
gpg = {
|
||||||
|
format = "ssh";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.stateVersion = "26.05";
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
../shared/darwin.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
bash-language-server
|
||||||
|
nil
|
||||||
|
devenv
|
||||||
|
];
|
||||||
|
|
||||||
|
homebrew.casks = [
|
||||||
|
"zed"
|
||||||
|
"firefox"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Don't touch this unless needed.
|
||||||
|
system.primaryUser = "frank";
|
||||||
|
}
|
||||||
@@ -0,0 +1,104 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
../shared/nixos.nix
|
||||||
|
../../features/kde.nix
|
||||||
|
../../features/flatpak.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
kernelParams = [
|
||||||
|
"vfio-pci.ids=10de:2782,10de:22bc"
|
||||||
|
"video=HDMI-A-1:896x672@100"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.hostName = "nero";
|
||||||
|
|
||||||
|
services = {
|
||||||
|
flatpak = {
|
||||||
|
packages = [
|
||||||
|
{
|
||||||
|
appId = "com.discordapp.Discord";
|
||||||
|
origin = "flathub";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
appId = "com.github.Matoking.protontricks";
|
||||||
|
origin = "flathub";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
appId = "com.steamgriddb.SGDBoop";
|
||||||
|
origin = "flathub";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
appId = "com.vysp3r.ProtonPlus";
|
||||||
|
origin = "flathub";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
appId = "io.mpv.Mpv";
|
||||||
|
origin = "flathub";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
appId = "org.ghidra_sre.Ghidra";
|
||||||
|
origin = "flathub";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
appId = "io.github.ryubing.Ryujinx";
|
||||||
|
origin = "flathub";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
appId = "org.gtk.Gtk3theme.Breeze";
|
||||||
|
origin = "flathub";
|
||||||
|
}
|
||||||
|
rec {
|
||||||
|
appId = "io.github.Amethyst.ModManager";
|
||||||
|
sha256 = "sha256-fpbIpuD6qwVDYJATNjpxLeVxZEBKS6MfK1UV3eS7eAQ=";
|
||||||
|
|
||||||
|
bundle = "${pkgs.fetchurl {
|
||||||
|
url = "https://github.com/ChrisDKN/Amethyst-Mod-Manager/releases/download/v2.0.2/AmethystModManager.flatpak";
|
||||||
|
inherit sha256;
|
||||||
|
}}";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
wivrn = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
autoStart = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
gamemode.enable = true;
|
||||||
|
|
||||||
|
steam = {
|
||||||
|
enable = true;
|
||||||
|
remotePlay.openFirewall = true;
|
||||||
|
extraPackages = [ pkgs.hidapi ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
systemPackages = with pkgs; [
|
||||||
|
qimgv
|
||||||
|
zathura
|
||||||
|
mangohud
|
||||||
|
gamescope
|
||||||
|
gamescope-wsi
|
||||||
|
|
||||||
|
inputs.scopebuddy.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||||
|
|
||||||
|
(callPackage ../../packages/xivlauncher/package.nix { })
|
||||||
|
(callPackage ../../packages/aseprite/package.nix { })
|
||||||
|
(callPackage ../../packages/aseprite-thumbnailer-kde/package.nix { inherit unstable; })
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
modulesPath,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
initrd.availableKernelModules = [
|
||||||
|
"nvme"
|
||||||
|
"ahci"
|
||||||
|
"xhci_pci"
|
||||||
|
"usbhid"
|
||||||
|
"usb_storage"
|
||||||
|
"sd_mod"
|
||||||
|
];
|
||||||
|
|
||||||
|
initrd.kernelModules = [ ];
|
||||||
|
kernelModules = [ "kvm-amd" ];
|
||||||
|
extraModulePackages = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems = {
|
||||||
|
"/" = {
|
||||||
|
device = "/dev/disk/by-uuid/7559f03a-28da-482d-934a-5d4f88ab085f";
|
||||||
|
fsType = "btrfs";
|
||||||
|
};
|
||||||
|
|
||||||
|
"/home" = {
|
||||||
|
device = "/dev/disk/by-uuid/7559f03a-28da-482d-934a-5d4f88ab085f";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=home" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/nix" = {
|
||||||
|
device = "/dev/disk/by-uuid/7559f03a-28da-482d-934a-5d4f88ab085f";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=nix" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/boot" = {
|
||||||
|
device = "/dev/disk/by-uuid/12B3-D345";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [
|
||||||
|
"fmask=0077"
|
||||||
|
"dmask=0077"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [
|
||||||
|
{ device = "/dev/disk/by-uuid/431e8332-e3d5-400b-93e7-27b9c8dc1dfe"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
|
||||||
|
hardware = {
|
||||||
|
bluetooth.enable = true;
|
||||||
|
cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,112 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
../shared/nixos.nix
|
||||||
|
../../features/kde.nix
|
||||||
|
../../features/flatpak.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
extraModulePackages = [
|
||||||
|
pkgs.i915-sriov
|
||||||
|
];
|
||||||
|
|
||||||
|
kernelParams = [
|
||||||
|
"intel_iommu=on"
|
||||||
|
"i915-enable_guc=3"
|
||||||
|
"i915.max_vfs=1"
|
||||||
|
"module_blacklist=xe"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"w /sys/devices/pci0000:00/0000:00:02.0/sriov_numvfs - - - - 1"
|
||||||
|
];
|
||||||
|
|
||||||
|
networking.hostName = "pdw-frankiel";
|
||||||
|
|
||||||
|
services = {
|
||||||
|
udev.packages = [
|
||||||
|
(pkgs.writeTextFile {
|
||||||
|
name = "i915-sriov";
|
||||||
|
|
||||||
|
text = ''
|
||||||
|
ACTION=="add", SUBSYSTEM=="pci", KERNEL=="0000:00:02.[1-7]", ATTR{vendor}=="0x8086", ATTR{device}=="0xa7a0", DRIVER!="vfio-pci", RUN+="/bin/sh -c 'echo \$kernel > /sys/bus/pci/devices/\$kernel/driver/unbind; echo vfio-pci > /sys/bus/pci/devices/\$kernel/driver_override; modprobe vfio-pci; echo \$kernel > /sys/bus/pci/drivers/vfio-pci/bind'"
|
||||||
|
'';
|
||||||
|
|
||||||
|
destination = "/etc/udev/rules.d/80-i915-sriov.rules";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
printing.enable = true;
|
||||||
|
|
||||||
|
keyd = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
keyboards = {
|
||||||
|
default = {
|
||||||
|
ids = [ "*" ];
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
main = {
|
||||||
|
capslock = "oneshot(control)";
|
||||||
|
insert = "S-insert";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
flatpak = {
|
||||||
|
packages = [
|
||||||
|
{
|
||||||
|
appId = "com.dropbox.Client";
|
||||||
|
origin = "flathub";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
appId = "io.mpv.Mpv";
|
||||||
|
origin = "flathub";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
appId = "org.gnome.gitlab.YaLTeR.VideoTrimmer";
|
||||||
|
origin = "flathub";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
appId = "org.kde.kdenlive";
|
||||||
|
origin = "flathub";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
appId = "org.remmina.Remmina";
|
||||||
|
origin = "flathub";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
appId = "io.github.ungoogled_software.ungoogled_chromium";
|
||||||
|
origin = "flathub";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
appId = "org.gtk.Gtk3theme.Breeze";
|
||||||
|
origin = "flathub";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
systemPackages = with pkgs; [
|
||||||
|
qimgv
|
||||||
|
zathura
|
||||||
|
hunspell
|
||||||
|
hunspellDicts.en_US
|
||||||
|
hyphenDicts.en_US
|
||||||
|
|
||||||
|
unstable.libreoffice-qt
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
modulesPath,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
initrd.availableKernelModules = [
|
||||||
|
"xhci_pci"
|
||||||
|
"thunderbolt"
|
||||||
|
"ahci"
|
||||||
|
"nvme"
|
||||||
|
"usbhid"
|
||||||
|
"usb_storage"
|
||||||
|
"sd_mod"
|
||||||
|
];
|
||||||
|
|
||||||
|
initrd.kernelModules = [ ];
|
||||||
|
|
||||||
|
kernelModules = [ "kvm-intel" ];
|
||||||
|
|
||||||
|
extraModulePackages = [ ];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems = {
|
||||||
|
"/" = {
|
||||||
|
device = "/dev/disk/by-uuid/2b88fa45-f012-4df6-b59c-5b45ee0fc6e8";
|
||||||
|
fsType = "btrfs";
|
||||||
|
};
|
||||||
|
|
||||||
|
"/home" = {
|
||||||
|
device = "/dev/disk/by-uuid/2b88fa45-f012-4df6-b59c-5b45ee0fc6e8";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=home" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/nix" = {
|
||||||
|
device = "/dev/disk/by-uuid/2b88fa45-f012-4df6-b59c-5b45ee0fc6e8";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [ "subvol=nix" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/boot" = {
|
||||||
|
device = "/dev/disk/by-uuid/679B-3FC0";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [
|
||||||
|
"fmask=0077"
|
||||||
|
"dmask=0077"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [
|
||||||
|
{ device = "/dev/disk/by-uuid/2ef72da1-8c5b-449d-8460-0f5833bd856d"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
|
||||||
|
hardware = {
|
||||||
|
bluetooth.enable = true;
|
||||||
|
cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
{ self, pkgs, ... }:
|
||||||
|
{
|
||||||
|
# Only use homebrew for casks.
|
||||||
|
homebrew.enable = true;
|
||||||
|
|
||||||
|
nix = {
|
||||||
|
gc = {
|
||||||
|
automatic = true;
|
||||||
|
interval = {
|
||||||
|
Hour = 3;
|
||||||
|
Minute = 15;
|
||||||
|
Weekday = 7;
|
||||||
|
};
|
||||||
|
options = "--delete-older-than 30d";
|
||||||
|
};
|
||||||
|
|
||||||
|
optimise = {
|
||||||
|
automatic = true;
|
||||||
|
interval = {
|
||||||
|
Hour = 3;
|
||||||
|
Minute = 15;
|
||||||
|
Weekday = 7;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
settings.experimental-features = "nix-command flakes";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enables Touch ID for sudo prompts.
|
||||||
|
security.pam.services.sudo_local.touchIdAuth = true;
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
variables = rec {
|
||||||
|
XDG_CACHE_HOME = "$HOME/.cache";
|
||||||
|
XDG_CONFIG_HOME = "$HOME/.config";
|
||||||
|
XDG_DATA_HOME = "$HOME/.local/share";
|
||||||
|
XDG_STATE_HOME = "$HOME/.local/state";
|
||||||
|
};
|
||||||
|
|
||||||
|
shellAliases = {
|
||||||
|
l = "ls -alh";
|
||||||
|
ll = "ls -l";
|
||||||
|
ls = "ls --color=tty";
|
||||||
|
ff = "clear;fastfetch";
|
||||||
|
nb = "nix-build";
|
||||||
|
nix-rebuild = "sudo darwin-rebuild switch";
|
||||||
|
};
|
||||||
|
|
||||||
|
systemPackages = with pkgs; [
|
||||||
|
wget
|
||||||
|
fastfetch
|
||||||
|
btop
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Don't touch this unless needed.
|
||||||
|
system = {
|
||||||
|
configurationRevision = self.rev or self.dirtyRev or null;
|
||||||
|
stateVersion = 6;
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = "aarch64-darwin";
|
||||||
|
}
|
||||||
@@ -0,0 +1,319 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
boot = {
|
||||||
|
loader = {
|
||||||
|
systemd-boot.enable = true;
|
||||||
|
efi.canTouchEfiVariables = true;
|
||||||
|
systemd-boot.configurationLimit = 10;
|
||||||
|
timeout = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
consoleLogLevel = 3;
|
||||||
|
|
||||||
|
extraModulePackages = [ config.boot.kernelPackages.kvmfr ];
|
||||||
|
|
||||||
|
kernelParams = [
|
||||||
|
"quiet"
|
||||||
|
"rd.udev.log_level=3"
|
||||||
|
"rd.systemd.show_status=auto"
|
||||||
|
"kvmfr.static_size_mb=128"
|
||||||
|
];
|
||||||
|
|
||||||
|
initrd = {
|
||||||
|
verbose = false;
|
||||||
|
|
||||||
|
kernelModules = [
|
||||||
|
"vfio"
|
||||||
|
"vfio_pci"
|
||||||
|
"vfio_iommu_type1"
|
||||||
|
"kvmfr"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
kernelModules = [
|
||||||
|
"ntsync"
|
||||||
|
];
|
||||||
|
|
||||||
|
plymouth = {
|
||||||
|
enable = true;
|
||||||
|
theme = "bgrt";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
# Allow kvmfr module to be used by QEMU/KVM.
|
||||||
|
udev.packages = [
|
||||||
|
(pkgs.writeTextFile {
|
||||||
|
name = "kvmfr";
|
||||||
|
|
||||||
|
text = ''
|
||||||
|
SUBSYSTEM=="kvmfr", GROUP="kvm", MODE="0660", TAG+="uaccess"
|
||||||
|
'';
|
||||||
|
|
||||||
|
destination = "/etc/udev/rules.d/70-kvmfr.rules";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
# Configures snapshots for home subvolume.
|
||||||
|
# Requires /home/.snapshots subvolume to function.
|
||||||
|
snapper = {
|
||||||
|
snapshotInterval = "hourly";
|
||||||
|
cleanupInterval = "1d";
|
||||||
|
configs = {
|
||||||
|
home = {
|
||||||
|
SUBVOLUME = "/home";
|
||||||
|
TIMELINE_CREATE = true;
|
||||||
|
TIMELINE_CLEANUP = true;
|
||||||
|
TIMELINE_LIMIT_HOURLY = "10";
|
||||||
|
TIMELINE_LIMIT_DAILY = "7";
|
||||||
|
TIMELINE_LIMIT_WEEKLY = "2";
|
||||||
|
TIMELINE_LIMIT_MONTHLY = "0";
|
||||||
|
TIMELINE_LIMIT_YEARLY = "0";
|
||||||
|
BACKGROUND_COMPARISON = "yes";
|
||||||
|
NUMBER_CLEANUP = "no";
|
||||||
|
NUMBER_MIN_AGE = "1800";
|
||||||
|
NUMBER_LIMIT = "50";
|
||||||
|
NUMBER_LIMIT_IMPORTANT = "10";
|
||||||
|
EMPTY_PRE_POST_CLEANUP = "yes";
|
||||||
|
EMPTY_PRE_POST_MIN_AGE = "1800";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Completely disable xserver support (RIP X11).
|
||||||
|
xserver.enable = false;
|
||||||
|
|
||||||
|
# Configure pipewire. Disables 32Bit ALSA since it causes build errors
|
||||||
|
# and is largely vestigial.
|
||||||
|
pipewire = {
|
||||||
|
enable = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = lib.mkForce false;
|
||||||
|
};
|
||||||
|
|
||||||
|
openssh.enable = true;
|
||||||
|
|
||||||
|
# Enables m(ulticast)DNS (a.k.a. Bonjour) support.
|
||||||
|
avahi = {
|
||||||
|
enable = true;
|
||||||
|
nssmdns4 = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
networking = {
|
||||||
|
wireless.enable = true;
|
||||||
|
networkmanager.enable = true;
|
||||||
|
networkmanager.plugins = with pkgs; [ networkmanager-openvpn ];
|
||||||
|
|
||||||
|
firewall = {
|
||||||
|
trustedInterfaces = [ "virbr0" ];
|
||||||
|
allowedTCPPorts = [ 22 ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
time.timeZone = "America/New_York";
|
||||||
|
|
||||||
|
i18n = {
|
||||||
|
defaultLocale = "en_US.UTF-8";
|
||||||
|
|
||||||
|
extraLocales = [
|
||||||
|
"ja_JP.UTF-8/UTF-8"
|
||||||
|
];
|
||||||
|
|
||||||
|
extraLocaleSettings = {
|
||||||
|
LC_ADDRESS = "en_US.UTF-8";
|
||||||
|
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||||
|
LC_MEASUREMENT = "en_US.UTF-8";
|
||||||
|
LC_MONETARY = "en_US.UTF-8";
|
||||||
|
LC_NAME = "en_US.UTF-8";
|
||||||
|
LC_NUMERIC = "en_US.UTF-8";
|
||||||
|
LC_PAPER = "en_US.UTF-8";
|
||||||
|
LC_TELEPHONE = "en_US.UTF-8";
|
||||||
|
LC_TIME = "en_US.UTF-8";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
bash = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
interactiveShellInit = ''
|
||||||
|
eval "$(jump shell)"
|
||||||
|
bind -x '"\eOQ": clear;fastfetch'
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
starship = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
character = {
|
||||||
|
success_symbol = "[λ](bold green)";
|
||||||
|
error_symbol = "[λ](bold red)";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
virt-manager.enable = true;
|
||||||
|
|
||||||
|
ssh.startAgent = true;
|
||||||
|
|
||||||
|
firefox.enable = true;
|
||||||
|
|
||||||
|
appimage = {
|
||||||
|
enable = true;
|
||||||
|
binfmt = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
neovim = {
|
||||||
|
enable = true;
|
||||||
|
defaultEditor = true;
|
||||||
|
vimAlias = true;
|
||||||
|
|
||||||
|
configure = {
|
||||||
|
customRC = ''
|
||||||
|
set nocompatible
|
||||||
|
set backspace=indent,eol,start
|
||||||
|
set tabstop=2
|
||||||
|
set shiftwidth=2
|
||||||
|
set expandtab
|
||||||
|
'';
|
||||||
|
|
||||||
|
packages.myPlugins = with pkgs.vimPlugins; {
|
||||||
|
start = [
|
||||||
|
vim-lastplace
|
||||||
|
vim-nix
|
||||||
|
];
|
||||||
|
|
||||||
|
opt = [ ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
virtualisation = {
|
||||||
|
spiceUSBRedirection.enable = true;
|
||||||
|
|
||||||
|
libvirtd = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
qemu = {
|
||||||
|
package = pkgs.qemu_kvm;
|
||||||
|
runAsRoot = true;
|
||||||
|
swtpm.enable = true;
|
||||||
|
|
||||||
|
verbatimConfig = ''
|
||||||
|
namespaces = []
|
||||||
|
cgroup_device_acl = [
|
||||||
|
"/dev/null", "/dev/full", "/dev/zero",
|
||||||
|
"/dev/random", "/dev/urandom",
|
||||||
|
"/dev/ptmx", "/dev/kvm", "/dev/kqemu",
|
||||||
|
"/dev/rtc","/dev/hpet", "/dev/vfio/vfio",
|
||||||
|
"/dev/kvmfr0"
|
||||||
|
]
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.frank = {
|
||||||
|
isNormalUser = true;
|
||||||
|
description = "Frank LoTurco";
|
||||||
|
|
||||||
|
extraGroups = [
|
||||||
|
"networkmanager"
|
||||||
|
"wheel"
|
||||||
|
"libvirtd"
|
||||||
|
"input"
|
||||||
|
"video"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
nix = {
|
||||||
|
gc = {
|
||||||
|
automatic = true;
|
||||||
|
dates = "weekly";
|
||||||
|
options = "--delete-older-than 30d";
|
||||||
|
};
|
||||||
|
|
||||||
|
optimise = {
|
||||||
|
automatic = true;
|
||||||
|
dates = "weekly";
|
||||||
|
};
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
experimental-features = [
|
||||||
|
"nix-command"
|
||||||
|
"flakes"
|
||||||
|
];
|
||||||
|
|
||||||
|
use-xdg-base-directories = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
systemPackages = with pkgs; [
|
||||||
|
wget
|
||||||
|
vorta
|
||||||
|
dnsmasq
|
||||||
|
guestfs-tools
|
||||||
|
unrar
|
||||||
|
btrfs-assistant
|
||||||
|
looking-glass-client
|
||||||
|
nil
|
||||||
|
bash-language-server
|
||||||
|
devenv
|
||||||
|
nerd-fonts.hack
|
||||||
|
jump
|
||||||
|
|
||||||
|
unstable.winetricks
|
||||||
|
unstable.fastfetch
|
||||||
|
|
||||||
|
inputs.nix-gaming.packages.${pkgs.stdenv.hostPlatform.system}.wine-tkg
|
||||||
|
inputs.appimage-manager.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||||
|
|
||||||
|
(callPackage ../../packages/virtiofsd-looking-glass/package.nix { })
|
||||||
|
(callPackage ../../packages/heidisql/package.nix { })
|
||||||
|
];
|
||||||
|
|
||||||
|
shellAliases = {
|
||||||
|
l = "ls -alh";
|
||||||
|
ll = "ls -l";
|
||||||
|
ls = "ls --color=tty";
|
||||||
|
ff = "clear;fastfetch --logo nixos2";
|
||||||
|
wget = "wget --hsts-file=$XDG_DATA_HOME/wget-hsts";
|
||||||
|
nb = "nix-build";
|
||||||
|
nix-rebuild = "sudo nixos-rebuild switch";
|
||||||
|
};
|
||||||
|
|
||||||
|
sessionVariables = rec {
|
||||||
|
XDG_CACHE_HOME = "$HOME/.cache";
|
||||||
|
XDG_CONFIG_HOME = "$HOME/.config";
|
||||||
|
XDG_DATA_HOME = "$HOME/.local/share";
|
||||||
|
XDG_STATE_HOME = "$HOME/.local/state";
|
||||||
|
|
||||||
|
HISTFILE = "$XDG_STATE_HOME/bash/history";
|
||||||
|
DOTNET_CLI_HOME = "$XDG_DATA_HOME/dotnet";
|
||||||
|
GTK2_RC_FILES = "$XDG_CONFIG_HOME/gtk-2.0/gtkrc";
|
||||||
|
WINE_BIN = "${inputs.nix-gaming.packages.${pkgs.stdenv.hostPlatform.system}.wine-tkg}/bin/.wine";
|
||||||
|
WINEPREFIX = "$XDG_DATA_HOME/wine";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = "26.05";
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
stdenv,
|
||||||
|
fetchFromGitHub,
|
||||||
|
cmake,
|
||||||
|
pkg-config,
|
||||||
|
unstable,
|
||||||
|
kdePackages,
|
||||||
|
}:
|
||||||
|
|
||||||
|
# Builds the kio aseprite thumbnailer using qt6 from unstable.
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
pname = "aseprite-thumbnailer-kde";
|
||||||
|
version = "4189eeb7864307518938363d990fa69836e6686e";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "56789a1987";
|
||||||
|
repo = "aseprite-thumbnails-kde";
|
||||||
|
rev = "4189eeb7864307518938363d990fa69836e6686e";
|
||||||
|
hash = "sha256-+Q08KXuf9ofRBJXZtt5isRaV98U0UySW7EFnm/dg8Vc=";
|
||||||
|
fetchSubmodules = true;
|
||||||
|
leaveDotGit = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
cmake
|
||||||
|
pkg-config
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
unstable.qt6.qtbase
|
||||||
|
kdePackages.kio
|
||||||
|
];
|
||||||
|
|
||||||
|
cmakeFlags = [
|
||||||
|
"-DCMAKE_BUILD_TYPE=Release"
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,202 @@
|
|||||||
|
{
|
||||||
|
clangStdenv,
|
||||||
|
cmake,
|
||||||
|
cmark,
|
||||||
|
curl,
|
||||||
|
fetchFromGitHub,
|
||||||
|
fmt,
|
||||||
|
fontconfig,
|
||||||
|
freetype,
|
||||||
|
giflib,
|
||||||
|
glib,
|
||||||
|
harfbuzzFull,
|
||||||
|
libicns,
|
||||||
|
lib,
|
||||||
|
libGL,
|
||||||
|
libjpeg,
|
||||||
|
libpng,
|
||||||
|
libwebp,
|
||||||
|
libx11,
|
||||||
|
libxcursor,
|
||||||
|
libxext,
|
||||||
|
libxi,
|
||||||
|
libxxf86vm,
|
||||||
|
libxcb,
|
||||||
|
libxrandr,
|
||||||
|
ninja,
|
||||||
|
pcre2,
|
||||||
|
pixman,
|
||||||
|
pkg-config,
|
||||||
|
skia-aseprite,
|
||||||
|
tinyxml-2,
|
||||||
|
zlib,
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
asepriteStrings = fetchFromGitHub {
|
||||||
|
owner = "aseprite";
|
||||||
|
repo = "strings";
|
||||||
|
rev = "417074f649f359f98511fc87a707c276d87f5739";
|
||||||
|
hash = "sha256-5bB7yK4eJHhkUwGYtIFYdFXpRrBt69VBbTh7EmPFI08=";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
clangStdenv.mkDerivation (finalAttrs: {
|
||||||
|
pname = "aseprite";
|
||||||
|
version = "44cd42d29dbc047ec9d341f05c0a8ff584ede151";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "aseprite";
|
||||||
|
repo = "aseprite";
|
||||||
|
rev = "${finalAttrs.version}";
|
||||||
|
hash = "sha256-swXk8wwFgao2rpF4ntCjOMnV+yk0gi+wbWoWl/wv7e8=";
|
||||||
|
fetchSubmodules = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Translation files are copied without overwriting existing ones to preserve the
|
||||||
|
# potentially more up-to-date English file from the main source.
|
||||||
|
postUnpack = ''
|
||||||
|
cp --no-clobber ${asepriteStrings}/* "$sourceRoot/data/strings"
|
||||||
|
'';
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
cmake
|
||||||
|
ninja
|
||||||
|
pkg-config
|
||||||
|
]
|
||||||
|
++ lib.optionals clangStdenv.hostPlatform.isDarwin [
|
||||||
|
libicns
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
cmark
|
||||||
|
curl
|
||||||
|
fmt
|
||||||
|
fontconfig
|
||||||
|
freetype
|
||||||
|
giflib
|
||||||
|
glib
|
||||||
|
harfbuzzFull
|
||||||
|
libGL
|
||||||
|
libjpeg
|
||||||
|
libpng
|
||||||
|
libwebp
|
||||||
|
libx11
|
||||||
|
libxcursor
|
||||||
|
libxext
|
||||||
|
libxi
|
||||||
|
libxxf86vm
|
||||||
|
libxcb
|
||||||
|
libxrandr
|
||||||
|
pcre2
|
||||||
|
pixman
|
||||||
|
skia-aseprite
|
||||||
|
tinyxml-2
|
||||||
|
zlib
|
||||||
|
];
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
./patches/shared-fmt.patch
|
||||||
|
./patches/shared-libwebp.patch
|
||||||
|
./patches/shared-skia-deps.patch
|
||||||
|
./patches/shared-libjpeg-turbo.patch
|
||||||
|
];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace src/ver/CMakeLists.txt \
|
||||||
|
--replace-fail '"1.x-dev"' '"${finalAttrs.version}"'
|
||||||
|
|
||||||
|
# Fix build on Darwin with `-Werror=format-security`.
|
||||||
|
# (NSLog requires a string-literal format).
|
||||||
|
substituteInPlace laf/os/osx/logger.mm \
|
||||||
|
--replace-fail 'NSLog([NSString stringWithUTF8String:error]);' 'NSLog(@"%@", [NSString stringWithUTF8String:error]);'
|
||||||
|
'';
|
||||||
|
|
||||||
|
cmakeFlags = [
|
||||||
|
"-DENABLE_DESKTOP_INTEGRATION=ON"
|
||||||
|
"-DENABLE_UPDATER=OFF"
|
||||||
|
"-DUSE_SHARED_CMARK=ON"
|
||||||
|
"-DUSE_SHARED_CURL=ON"
|
||||||
|
"-DUSE_SHARED_FMT=ON"
|
||||||
|
"-DUSE_SHARED_FREETYPE=ON"
|
||||||
|
"-DUSE_SHARED_GIFLIB=ON"
|
||||||
|
"-DUSE_SHARED_HARFBUZZ=ON"
|
||||||
|
"-DUSE_SHARED_LIBPNG=ON"
|
||||||
|
"-DUSE_SHARED_PIXMAN=ON"
|
||||||
|
"-DUSE_SHARED_TINYXML=OFF"
|
||||||
|
"-DUSE_SHARED_WEBP=ON"
|
||||||
|
"-DUSE_SHARED_ZLIB=ON"
|
||||||
|
# Disable libarchive programs.
|
||||||
|
"-DENABLE_CAT=OFF"
|
||||||
|
"-DENABLE_CPIO=OFF"
|
||||||
|
"-DENABLE_TAR=OFF"
|
||||||
|
# UI backend.
|
||||||
|
"-DLAF_BACKEND=skia"
|
||||||
|
"-DLAF_WITH_EXAMPLES=OFF"
|
||||||
|
"-DSKIA_DIR=${skia-aseprite}"
|
||||||
|
"-DSKIA_LIBRARY_DIR=${skia-aseprite}/lib"
|
||||||
|
];
|
||||||
|
|
||||||
|
# `libskia.a` is static, so its deps must be linked explicitly on Darwin
|
||||||
|
# (otherwise we hit undefined `_jpeg_*`/`_WebP*` symbols, e.g. in the thumbnailer).
|
||||||
|
env.NIX_LDFLAGS = lib.optionalString clangStdenv.hostPlatform.isDarwin "-ljpeg -lwebp -lwebpdemux -lwebpmux";
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
# Install desktop icons.
|
||||||
|
src="$out/share/aseprite/data/icons"
|
||||||
|
for size in 16 32 48 64 128 256; do
|
||||||
|
dst="$out"/share/icons/hicolor/"$size"x"$size"
|
||||||
|
install -Dm644 "$src"/ase"$size".png "$dst"/apps/aseprite.png
|
||||||
|
install -Dm644 "$src"/doc"$size".png "$dst"/mimetypes/image-x-aseprite.png
|
||||||
|
done
|
||||||
|
# Delete unneeded artifacts of bundled libraries.
|
||||||
|
rm -rf "$out"/{include,lib,man}
|
||||||
|
''
|
||||||
|
+ lib.optionalString clangStdenv.hostPlatform.isDarwin ''
|
||||||
|
install -d "$out/Applications"
|
||||||
|
if [ -d "$out/bin/aseprite.app" ]; then
|
||||||
|
rm -rf "$out/Applications/Aseprite.app"
|
||||||
|
mv "$out/bin/aseprite.app" "$out/Applications/Aseprite.app"
|
||||||
|
fi
|
||||||
|
# Generate the `.icns` files referenced by Info.plist from the shipped PNGs.
|
||||||
|
res="$out/Applications/Aseprite.app/Contents/Resources"
|
||||||
|
icons="$res/data/icons"
|
||||||
|
if [ -d "$icons" ] && command -v png2icns >/dev/null; then
|
||||||
|
for spec in "Aseprite ase" "Document doc" "Extension ext"; do
|
||||||
|
set -- $spec
|
||||||
|
name="$1"
|
||||||
|
prefix="$2"
|
||||||
|
png2icns "$res/$name.icns" \
|
||||||
|
"$icons/''${prefix}16.png" \
|
||||||
|
"$icons/''${prefix}32.png" \
|
||||||
|
"$icons/''${prefix}128.png" \
|
||||||
|
"$icons/''${prefix}256.png"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
# Keep $out/bin clean on Darwin; the bundle lives under $out/Applications.
|
||||||
|
rmdir "$out/bin" 2>/dev/null || true
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = "https://www.aseprite.org/";
|
||||||
|
description = "Animated sprite editor & pixel art tool";
|
||||||
|
license = lib.licenses.unfree;
|
||||||
|
|
||||||
|
longDescription = ''
|
||||||
|
Aseprite is a program to create animated sprites. Its main features are:
|
||||||
|
- Sprites are composed by layers & frames (as separated concepts).
|
||||||
|
- Supported color modes: RGBA, Indexed (palettes up to 256 colors), and Grayscale.
|
||||||
|
- Load/save sequence of PNG files and GIF animations (and FLC, FLI, JPG, BMP, PCX, TGA).
|
||||||
|
- Export/import animations to/from Sprite Sheets.
|
||||||
|
- Tiled drawing mode, useful to draw patterns and textures.
|
||||||
|
- Undo/Redo for every operation.
|
||||||
|
- Real-time animation preview.
|
||||||
|
- Multiple editors support.
|
||||||
|
- Pixel-art specific tools like filled Contour, Polygon, Shading mode, etc.
|
||||||
|
- Onion skinning.
|
||||||
|
'';
|
||||||
|
|
||||||
|
maintainers = [ lib.maintainers.iamanaws ];
|
||||||
|
platforms = lib.platforms.linux ++ lib.platforms.darwin;
|
||||||
|
mainProgram = "aseprite";
|
||||||
|
};
|
||||||
|
})
|
||||||
@@ -0,0 +1,79 @@
|
|||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index b1bd0189b..3fb7abffb 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -66,6 +66,7 @@ enable_testing()
|
||||||
|
|
||||||
|
option(USE_SHARED_CMARK "Use your installed copy of cmark" off)
|
||||||
|
option(USE_SHARED_CURL "Use your installed copy of curl" off)
|
||||||
|
+option(USE_SHARED_FMT "Use your installed copy of fmt" off)
|
||||||
|
option(USE_SHARED_GIFLIB "Use your installed copy of giflib" off)
|
||||||
|
option(USE_SHARED_JPEGLIB "Use your installed copy of jpeglib" off)
|
||||||
|
option(USE_SHARED_ZLIB "Use your installed copy of zlib" off)
|
||||||
|
@@ -185,6 +186,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_PROFILE "${CMAKE_BINARY_DIR}/bin")
|
||||||
|
set(SOURCE_DATA_DIR ${CMAKE_CURRENT_SOURCE_DIR}/data)
|
||||||
|
set(CMARK_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/cmark)
|
||||||
|
set(CURL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/curl)
|
||||||
|
+set(FMT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/fmt)
|
||||||
|
set(GIFLIB_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/giflib)
|
||||||
|
set(LIBJPEG_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/jpeg)
|
||||||
|
set(LIBPNG_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/libpng)
|
||||||
|
@@ -225,6 +227,16 @@ if(NOT USE_SHARED_CURL)
|
||||||
|
set(CURL_STATICLIB ON BOOL)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
+# fmt
|
||||||
|
+if(USE_SHARED_FMT)
|
||||||
|
+ find_package(FMT REQUIRED)
|
||||||
|
+ set(FMT_LIBRARIES fmt::fmt)
|
||||||
|
+else()
|
||||||
|
+ set(FMT_FOUND)
|
||||||
|
+ set(FMT_LIBRARIES fmt)
|
||||||
|
+ # No need to include extra directories, actually
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
# zlib
|
||||||
|
if(USE_SHARED_ZLIB)
|
||||||
|
find_package(ZLIB REQUIRED)
|
||||||
|
diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt
|
||||||
|
index 9c67c0268..b19a3e412 100644
|
||||||
|
--- a/src/app/CMakeLists.txt
|
||||||
|
+++ b/src/app/CMakeLists.txt
|
||||||
|
@@ -754,7 +754,7 @@ target_link_libraries(app-lib
|
||||||
|
${ZLIB_LIBRARIES}
|
||||||
|
json11
|
||||||
|
archive_static
|
||||||
|
- fmt
|
||||||
|
+ ${FMT_LIBRARIES}
|
||||||
|
tinyexpr
|
||||||
|
qoi)
|
||||||
|
|
||||||
|
diff --git a/src/dio/CMakeLists.txt b/src/dio/CMakeLists.txt
|
||||||
|
index 55cb24de5..b253dca0b 100644
|
||||||
|
--- a/src/dio/CMakeLists.txt
|
||||||
|
+++ b/src/dio/CMakeLists.txt
|
||||||
|
@@ -16,7 +16,7 @@ endif()
|
||||||
|
|
||||||
|
target_link_libraries(dio-lib
|
||||||
|
${ZLIB_LIBRARIES}
|
||||||
|
- fmt
|
||||||
|
+ ${FMT_LIBRARIES}
|
||||||
|
flic-lib
|
||||||
|
laf-base
|
||||||
|
fixmath-lib
|
||||||
|
diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt
|
||||||
|
index 9d09a98c8..1973b134b 100644
|
||||||
|
--- a/third_party/CMakeLists.txt
|
||||||
|
+++ b/third_party/CMakeLists.txt
|
||||||
|
@@ -117,7 +117,10 @@ if(NOT USE_SHARED_HARFBUZZ AND NOT LAF_BACKEND STREQUAL "skia")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_subdirectory(simpleini)
|
||||||
|
-add_subdirectory(fmt)
|
||||||
|
+
|
||||||
|
+if(NOT USE_SHARED_FMT)
|
||||||
|
+ add_subdirectory(fmt)
|
||||||
|
+endif()
|
||||||
|
|
||||||
|
# Add cmark without tests
|
||||||
|
if(NOT USE_SHARED_CMARK)
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
diff --git a/cmake/FindJpegTurbo.cmake b/cmake/FindJpegTurbo.cmake
|
||||||
|
index 33b5204..0407a6a 100644
|
||||||
|
--- a/cmake/FindJpegTurbo.cmake
|
||||||
|
+++ b/cmake/FindJpegTurbo.cmake
|
||||||
|
@@ -9,14 +9,11 @@
|
||||||
|
|
||||||
|
if(LAF_BACKEND STREQUAL "skia")
|
||||||
|
|
||||||
|
- find_library(LIBJPEG_TURBO_LIBRARY NAMES libjpeg jpeg
|
||||||
|
- HINTS "${SKIA_LIBRARY_DIR}" NO_DEFAULT_PATH)
|
||||||
|
- set(LIBJPEG_TURBO_INCLUDE_DIRS "${SKIA_DIR}/third_party/externals/libjpeg-turbo")
|
||||||
|
+ find_library(LIBJPEG_TURBO_LIBRARY NAMES libjpeg jpeg)
|
||||||
|
|
||||||
|
add_library(libjpeg-turbo STATIC IMPORTED)
|
||||||
|
set_target_properties(libjpeg-turbo PROPERTIES
|
||||||
|
- IMPORTED_LOCATION "${LIBJPEG_TURBO_LIBRARY}"
|
||||||
|
- INTERFACE_INCLUDE_DIRECTORIES ${LIBJPEG_TURBO_INCLUDE_DIRS})
|
||||||
|
+ IMPORTED_LOCATION "${LIBJPEG_TURBO_LIBRARY}")
|
||||||
|
|
||||||
|
else()
|
||||||
|
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 87aed2f28f9c..498472ec2a60 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -76,6 +76,7 @@ option(USE_SHARED_TINYXML "Use your installed copy of tinyxml" off)
|
||||||
|
option(USE_SHARED_PIXMAN "Use your installed copy of pixman" off)
|
||||||
|
option(USE_SHARED_FREETYPE "Use shared FreeType library" off)
|
||||||
|
option(USE_SHARED_HARFBUZZ "Use shared HarfBuzz library" off)
|
||||||
|
+option(USE_SHARED_WEBP "Use your installed copy of webp" off)
|
||||||
|
option(ENABLE_ASEPRITE_EXE "Compile main Aseprite executable" on)
|
||||||
|
option(ENABLE_MEMLEAK "Enable memory-leaks detector (only for developers)" off)
|
||||||
|
option(ENABLE_NEWS "Enable the news in Home tab" on)
|
||||||
|
@@ -380,7 +381,20 @@ add_subdirectory(laf)
|
||||||
|
# libwebp
|
||||||
|
if(ENABLE_WEBP)
|
||||||
|
# Use libwebp from Skia
|
||||||
|
- if(LAF_BACKEND STREQUAL "skia")
|
||||||
|
+ if(USE_SHARED_WEBP)
|
||||||
|
+ find_library(WEBP_LIBRARY NAMES webp)
|
||||||
|
+ find_library(WEBPDEMUX_LIBRARY NAMES webpdemux)
|
||||||
|
+ find_library(WEBPMUX_LIBRARY NAMES webpmux)
|
||||||
|
+ set(WEBP_LIBRARIES ${WEBP_LIBRARY} ${WEBPDEMUX_LIBRARY} ${WEBPMUX_LIBRARY})
|
||||||
|
+ find_path(WEBP_INCLUDE_DIRS NAMES decode.h PATH_SUFFIXES webp)
|
||||||
|
+ find_path(WEBP_INCLUDE_DIRS NAMES decode.h PATH_SUFFIXES webp)
|
||||||
|
+ find_path(WEBP_INCLUDE_DIRS NAMES decode.h PATH_SUFFIXES webp)
|
||||||
|
+ if(WEBP_LIBRARIES)
|
||||||
|
+ set(WEBP_FOUND ON)
|
||||||
|
+ else()
|
||||||
|
+ set(WEBP_FOUND OFF)
|
||||||
|
+ endif()
|
||||||
|
+ elseif(LAF_BACKEND STREQUAL "skia")
|
||||||
|
find_library(WEBP_LIBRARIES webp
|
||||||
|
NAMES libwebp # required for Windows
|
||||||
|
PATHS "${SKIA_LIBRARY_DIR}" NO_DEFAULT_PATH)
|
||||||
|
diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt
|
||||||
|
index 1973b134b9f8..f15dba5a7968 100644
|
||||||
|
--- a/third_party/CMakeLists.txt
|
||||||
|
+++ b/third_party/CMakeLists.txt
|
||||||
|
@@ -33,7 +33,7 @@ if(NOT USE_SHARED_GIFLIB)
|
||||||
|
add_subdirectory(giflib)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
-if(ENABLE_WEBP AND NOT LAF_BACKEND STREQUAL "skia")
|
||||||
|
+if(ENABLE_WEBP AND NOT LAF_BACKEND STREQUAL "skia" AND NOT USE_SHARED_WEBP)
|
||||||
|
set(WEBP_BUILD_EXTRAS OFF CACHE BOOL "Build extras.")
|
||||||
|
set(WEBP_BUILD_ANIM_UTILS OFF CACHE BOOL "Build animation utilities.")
|
||||||
|
set(WEBP_BUILD_CWEBP OFF CACHE BOOL "Build the cwebp command line tool.")
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
--- src/laf/cmake/FindSkia.cmake.orig 2022-01-08 02:15:13.417619266 +0100
|
||||||
|
+++ src/laf/cmake/FindSkia.cmake 2022-01-08 02:15:43.603960491 +0100
|
||||||
|
@@ -32,14 +32,18 @@
|
||||||
|
# SkShaper module + freetype + harfbuzz
|
||||||
|
find_library(SKSHAPER_LIBRARY skshaper PATH "${SKIA_LIBRARY_DIR}")
|
||||||
|
|
||||||
|
+if(NOT USE_SHARED_FREETYPE)
|
||||||
|
set(FREETYPE_FOUND ON)
|
||||||
|
find_library(FREETYPE_LIBRARY freetype2 PATH "${SKIA_LIBRARY_DIR}" NO_DEFAULT_PATH)
|
||||||
|
set(FREETYPE_LIBRARIES ${FREETYPE_LIBRARY})
|
||||||
|
set(FREETYPE_INCLUDE_DIRS "${SKIA_DIR}/third_party/externals/freetype/include")
|
||||||
|
+endif()
|
||||||
|
|
||||||
|
+if(NOT USE_SHARED_HARFBUZZ)
|
||||||
|
find_library(HARFBUZZ_LIBRARY harfbuzz PATH "${SKIA_LIBRARY_DIR}" NO_DEFAULT_PATH)
|
||||||
|
set(HARFBUZZ_LIBRARIES ${HARFBUZZ_LIBRARY})
|
||||||
|
set(HARFBUZZ_INCLUDE_DIRS "${SKIA_DIR}/third_party/externals/harfbuzz/src")
|
||||||
|
+endif()
|
||||||
|
|
||||||
|
set(SKIA_LIBRARIES
|
||||||
|
${SKIA_LIBRARY}
|
||||||
@@ -0,0 +1,137 @@
|
|||||||
|
{ pkgs }:
|
||||||
|
|
||||||
|
let
|
||||||
|
heidisql-raw = pkgs.stdenv.mkDerivation rec {
|
||||||
|
pname = "heidisql-raw";
|
||||||
|
version = "12.17";
|
||||||
|
|
||||||
|
src = pkgs.fetchurl {
|
||||||
|
url = "https://github.com/HeidiSQL/HeidiSQL/releases/download/${version}/heidisql_${version}_amd64.deb";
|
||||||
|
sha256 = "sha256-RCuJzyw+53OcUYfvodXHaZPy0w6Pxn3a2Wan06feTQw=";
|
||||||
|
};
|
||||||
|
|
||||||
|
qt6pas_deb = pkgs.fetchurl {
|
||||||
|
url = "http://ftp.debian.org/debian/pool/main/libq/libqt6pas/libqt6pas6_2.4_amd64.deb";
|
||||||
|
sha256 = "sha256-vKfT4Xie/hDrFAUMDI3bvk4k8QGx14JjgJRa1iG2M2w=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
pkgs.dpkg
|
||||||
|
pkgs.autoPatchelfHook
|
||||||
|
pkgs.qt6.wrapQtAppsHook
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
pkgs.qt6.qtbase
|
||||||
|
pkgs.libx11
|
||||||
|
pkgs.glib
|
||||||
|
pkgs.mariadb-connector-c
|
||||||
|
pkgs.postgresql.lib
|
||||||
|
pkgs.sqlite
|
||||||
|
];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
|
unpackPhase = ''
|
||||||
|
dpkg-deb -x $src .
|
||||||
|
dpkg-deb -x ${qt6pas_deb} qt6pas_ext
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/lib
|
||||||
|
|
||||||
|
if [ -d usr ]; then
|
||||||
|
cp -r usr/* $out/
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Ensure lib exists and copy Pascal-Qt6 bindings.
|
||||||
|
find qt6pas_ext -name "libQt6Pas.so*" -exec cp {} $out/lib/ \;
|
||||||
|
|
||||||
|
# Create library symlinks
|
||||||
|
ln -s ${pkgs.mariadb-connector-c}/lib/mariadb/libmariadb.so.3 $out/lib/libmariadb.so
|
||||||
|
ln -s ${pkgs.postgresql.lib}/lib/libpq.so.5 $out/lib/libpq.so
|
||||||
|
ln -s ${pkgs.sqlite.out}/lib/libsqlite3.so.0 $out/lib/libsqlite3.so
|
||||||
|
|
||||||
|
# Link them where the binary is (usually share/heidisql on Linux).
|
||||||
|
if [ -d $out/share/heidisql ]; then
|
||||||
|
ln -s $out/lib/libmariadb.so $out/share/heidisql/libmariadb.so
|
||||||
|
ln -s $out/lib/libpq.so $out/share/heidisql/libpq.so
|
||||||
|
ln -s $out/lib/libsqlite3.so $out/share/heidisql/libsqlite3.so
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
desktopItem = pkgs.makeDesktopItem {
|
||||||
|
name = "heidisql";
|
||||||
|
exec = "heidisql";
|
||||||
|
icon = "${heidisql-raw}/share/pixmaps/heidisql.png";
|
||||||
|
comment = "MySQL, MariaDB, PostgreSQL and SQLite manager";
|
||||||
|
desktopName = "HeidiSQL";
|
||||||
|
|
||||||
|
categories = [
|
||||||
|
"Development"
|
||||||
|
"Database"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
in
|
||||||
|
pkgs.buildFHSEnv {
|
||||||
|
name = "heidisql";
|
||||||
|
|
||||||
|
targetPkgs =
|
||||||
|
pkgs: with pkgs; [
|
||||||
|
heidisql-raw
|
||||||
|
mariadb-connector-c
|
||||||
|
postgresql.lib
|
||||||
|
sqlite
|
||||||
|
openssl
|
||||||
|
zlib
|
||||||
|
glib
|
||||||
|
freetype
|
||||||
|
fontconfig
|
||||||
|
libglvnd
|
||||||
|
qt6.qtbase
|
||||||
|
qt6.qtwayland
|
||||||
|
libx11
|
||||||
|
libxext
|
||||||
|
libxrender
|
||||||
|
icu
|
||||||
|
];
|
||||||
|
|
||||||
|
extraInstallCommands = ''
|
||||||
|
mkdir -p $out/share/applications
|
||||||
|
cp ${desktopItem}/share/applications/* $out/share/applications/
|
||||||
|
|
||||||
|
# Only copy icons if they actually exist in the raw build.
|
||||||
|
if [ -d ${heidisql-raw}/share/icons ]; then
|
||||||
|
cp -r ${heidisql-raw}/share/icons $out/share/
|
||||||
|
fi
|
||||||
|
|
||||||
|
'';
|
||||||
|
|
||||||
|
runScript = pkgs.writeScript "heidisql-wrapper" ''
|
||||||
|
export LD_LIBRARY_PATH=/usr/lib/heidisql:/usr/lib:/usr/lib64:$LD_LIBRARY_PATH
|
||||||
|
|
||||||
|
# NOTE: The original package forces dark mode here, I'm turning this
|
||||||
|
# off temporarily for testing.
|
||||||
|
|
||||||
|
# Force Fusion style but tell it to use Dark Mode.
|
||||||
|
#export QT_STYLE_OVERRIDE=fusion
|
||||||
|
#export QT_QPA_PLATFORMTHEME=""
|
||||||
|
|
||||||
|
# Set the "Dark" flag for the underlying engine
|
||||||
|
#export GTK_THEME=Adwaita:dark
|
||||||
|
#export XDG_CURRENT_DESKTOP=GNOME
|
||||||
|
|
||||||
|
# This is the key: Tell Qt to prefer a dark color palette
|
||||||
|
# and not use the system's broken inheritance.
|
||||||
|
#export QT_LOGGING_RULES="qt.qpa.gl=true"
|
||||||
|
|
||||||
|
# Launch with the Fusion dark palette override
|
||||||
|
# This ensures text is white and backgrounds are charcoal
|
||||||
|
#exec heidisql -style fusion "$@"
|
||||||
|
|
||||||
|
exec heidisql "$@"
|
||||||
|
'';
|
||||||
|
|
||||||
|
multiPkgs = pkgs: [ pkgs.libGL ];
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
fetchFromGitHub,
|
||||||
|
rustPlatform,
|
||||||
|
libseccomp,
|
||||||
|
libcap_ng,
|
||||||
|
}:
|
||||||
|
|
||||||
|
rustPlatform.buildRustPackage (finalAttrs: {
|
||||||
|
pname = "virtiofsd";
|
||||||
|
version = "daea013daf5cdc0adc6ae14de92e3a48ac206eae";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "ELginas";
|
||||||
|
repo = "virtiofsd";
|
||||||
|
rev = "daea013daf5cdc0adc6ae14de92e3a48ac206eae";
|
||||||
|
hash = "sha256-3p9WoUInWh+fmUkiMCjl2Tygx2/reUyKX+3xvMsW26w=";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
libseccomp
|
||||||
|
libcap_ng
|
||||||
|
];
|
||||||
|
|
||||||
|
cargoHash = "sha256-rKlm8TpCKc+Nzb9+H0FPs5GSNNjWs5/xNpSd0ZZuQt0=";
|
||||||
|
})
|
||||||
@@ -0,0 +1,292 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"pname": "Castle.Core",
|
||||||
|
"version": "4.4.1",
|
||||||
|
"hash": "sha256-J4NS8p9KqbuLl6JMmNwptsfccH37TfhAhPwX2mVQso0="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "CommandLineParser",
|
||||||
|
"version": "2.9.1",
|
||||||
|
"hash": "sha256-ApU9y1yX60daSjPk3KYDBeJ7XZByKW8hse9NRZGcjeo="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Config.Net",
|
||||||
|
"version": "4.19.0",
|
||||||
|
"hash": "sha256-Nb4ftf+RREzgiVOpc+xSxd4b+PiLGmFQM3okA/wGO54="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "goaaats.Steamworks",
|
||||||
|
"version": "2.3.4",
|
||||||
|
"hash": "sha256-Wk9arQvVPPeMSgt8lL9rVRVkO1NrBNYzME4ZuOWcHc4="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Hexa.NET.ImGui",
|
||||||
|
"version": "2.2.9",
|
||||||
|
"hash": "sha256-hprgiqfXjuQ+I1wMk4+ddFiQ5/r7S1KZNZShU6L5nG8="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Hexa.NET.ImGui.Backends.SDL3",
|
||||||
|
"version": "1.0.18",
|
||||||
|
"hash": "sha256-ciEA775X+sjWVT1HAg+7OxThZOrnUKa2/eSfzQtG7GY="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Hexa.NET.SDL3",
|
||||||
|
"version": "1.2.16",
|
||||||
|
"hash": "sha256-oSJkPJor4K4KPiN2CC67BCHVxgDXmiCf5GdS9b+JaII="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Hexa.NET.SDL3.Image",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"hash": "sha256-SPNwM1w6ksZeZYFrNvforIMvgDIvbj1nRcMDTOA9/Kc="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "HexaGen.Runtime",
|
||||||
|
"version": "1.1.18",
|
||||||
|
"hash": "sha256-eitF6L6LKuCV2nY2Y0i9kRV+FAiaCbSp6BvSSEpqMrA="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "HexaGen.Runtime",
|
||||||
|
"version": "1.1.21",
|
||||||
|
"hash": "sha256-OZdIwCjInJ6KAWmPcKs0VN/o4AcY2k427JdtOf9N9Mk="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "KeySharp",
|
||||||
|
"version": "1.0.5",
|
||||||
|
"hash": "sha256-pJWjjU3AFsnMMX6cUoLUy4wovyfPx4S44Y6coMAGgcU="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Microsoft.CodeAnalysis.Analyzers",
|
||||||
|
"version": "3.3.3",
|
||||||
|
"hash": "sha256-pkZiggwLw8k+CVSXKTzsVGsT+K49LxXUS3VH5PNlpCY="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Microsoft.CodeAnalysis.BannedApiAnalyzers",
|
||||||
|
"version": "3.3.4",
|
||||||
|
"hash": "sha256-YPTHTZ8xRPMLADdcVYRO/eq3O9uZjsD+OsGRZE+0+e8="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Microsoft.CodeAnalysis.BannedApiAnalyzers",
|
||||||
|
"version": "4.14.0",
|
||||||
|
"hash": "sha256-f7svtnkq4xLTjGVj6kNZ1ZGFCV/RESsM+GJZmEpezh4="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Microsoft.CodeAnalysis.Common",
|
||||||
|
"version": "4.0.1",
|
||||||
|
"hash": "sha256-SU1WPMlg2245w9BFhS3GHtEEbus+tVAYaemHCW3Ysis="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Microsoft.CodeAnalysis.CSharp",
|
||||||
|
"version": "4.0.1",
|
||||||
|
"hash": "sha256-i6XtEcymf17CcDkiEFZ6zSuLJdlEt3aZ2oLf81x00sA="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Microsoft.CodeAnalysis.NetAnalyzers",
|
||||||
|
"version": "10.0.101",
|
||||||
|
"hash": "sha256-7rrB4tBiF3t+yoHcg170KlypFS/Z7xAPOM9OQZOs1Yg="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Microsoft.CodeAnalysis.NetAnalyzers",
|
||||||
|
"version": "9.0.0",
|
||||||
|
"hash": "sha256-UBTANXmzAS6KuCKDIGhi0MGphAI83FizpRCPebqJ9GE="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Microsoft.NETCore.Platforms",
|
||||||
|
"version": "1.1.0",
|
||||||
|
"hash": "sha256-FeM40ktcObQJk4nMYShB61H/E8B7tIKfl9ObJ0IOcCM="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Microsoft.Win32.Registry",
|
||||||
|
"version": "6.0.0-preview.5.21301.5",
|
||||||
|
"hash": "sha256-7Fu8oYHKsOxecDC7wT0aJR/GOPaq9W1k0SgKa5AW4Qg="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Microsoft.Win32.SystemEvents",
|
||||||
|
"version": "6.0.0",
|
||||||
|
"hash": "sha256-N9EVZbl5w1VnMywGXyaVWzT9lh84iaJ3aD48hIBk1zA="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "NETStandard.Library",
|
||||||
|
"version": "1.6.1",
|
||||||
|
"hash": "sha256-iNan1ix7RtncGWC9AjAZ2sk70DoxOsmEOgQ10fXm4Pw="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "NETStandard.Library",
|
||||||
|
"version": "2.0.3",
|
||||||
|
"hash": "sha256-Prh2RPebz/s8AzHb2sPHg3Jl8s31inv9k+Qxd293ybo="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Newtonsoft.Json",
|
||||||
|
"version": "13.0.3",
|
||||||
|
"hash": "sha256-hy/BieY4qxBWVVsDqqOPaLy1QobiIapkbrESm6v2PHc="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "PInvoke.Kernel32",
|
||||||
|
"version": "0.7.124",
|
||||||
|
"hash": "sha256-E65U364mp9V8SzkT2/oVg1f0Ts9Q1deRLeOUK3QhIlg="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "PInvoke.Windows.Core",
|
||||||
|
"version": "0.7.124",
|
||||||
|
"hash": "sha256-n/7Y6MkUVYr1bgT8OUkl0YpOd5AFgzHEUlEN+EKyE5s="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Serilog",
|
||||||
|
"version": "4.0.0",
|
||||||
|
"hash": "sha256-j8hQ5TdL1TjfdGiBO9PyHJFMMPvATHWN1dtrrUZZlNw="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Serilog",
|
||||||
|
"version": "4.1.0",
|
||||||
|
"hash": "sha256-r89nJ5JE5uZlsRrfB8QJQ1byVVfCWQbySKQ/m9PYj0k="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Serilog",
|
||||||
|
"version": "4.2.0",
|
||||||
|
"hash": "sha256-7f3EpCsEbDxXgsuhE430KVI14p7oDUuCtwRpOCqtnbs="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Serilog",
|
||||||
|
"version": "4.3.0",
|
||||||
|
"hash": "sha256-jyIy4BjsyFXge3aO4GRFAdnX4/rz1MHfBkBDIpCDsTw="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Serilog.Enrichers.Sensitive",
|
||||||
|
"version": "1.7.3",
|
||||||
|
"hash": "sha256-1HnnaGEwTiDo11w5wWdjDxNxVO4WLFBnAggxmyZCYIg="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Serilog.Enrichers.Thread",
|
||||||
|
"version": "4.0.0",
|
||||||
|
"hash": "sha256-lo+3ohNHKe/hTq9vGbk29p/OWcNlcyJToGL6EpCJQm8="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Serilog.Sinks.Async",
|
||||||
|
"version": "2.1.0",
|
||||||
|
"hash": "sha256-LDoLpXkleD2MVPK2KBsLGRf5yqrwckBiAnYDbuIbaUM="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Serilog.Sinks.Console",
|
||||||
|
"version": "6.0.0",
|
||||||
|
"hash": "sha256-QH8ykDkLssJ99Fgl+ZBFBr+RQRl0wRTkeccQuuGLyro="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Serilog.Sinks.Debug",
|
||||||
|
"version": "3.0.0",
|
||||||
|
"hash": "sha256-7/LmoRF1rUDFhJ47bTRQQFRgSHnZDO8484r3sCGqYvE="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Serilog.Sinks.File",
|
||||||
|
"version": "6.0.0",
|
||||||
|
"hash": "sha256-KQmlUpG9ovRpNqKhKe6rz3XMLUjkBqjyQhEm2hV5Sow="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "Serilog.Sinks.File",
|
||||||
|
"version": "7.0.0",
|
||||||
|
"hash": "sha256-LxZYUoUPkCjIIVarJilnXnqQiMrFNJtoRilmzTNtUjo="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "SharedMemory",
|
||||||
|
"version": "2.3.2",
|
||||||
|
"hash": "sha256-HFW3T9erIDZnjO7qldQx5eRbsib52MSYdOIiCZZSGB0="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "System.Buffers",
|
||||||
|
"version": "4.5.1",
|
||||||
|
"hash": "sha256-wws90sfi9M7kuCPWkv1CEYMJtCqx9QB/kj0ymlsNaxI="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "System.Collections.Immutable",
|
||||||
|
"version": "5.0.0",
|
||||||
|
"hash": "sha256-GdwSIjLMM0uVfE56VUSLVNgpW0B//oCeSFj8/hSlbM8="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "System.Configuration.ConfigurationManager",
|
||||||
|
"version": "6.0.0",
|
||||||
|
"hash": "sha256-fPV668Cfi+8pNWrvGAarF4fewdPVEDwlJWvJk0y+Cms="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "System.Drawing.Common",
|
||||||
|
"version": "6.0.0",
|
||||||
|
"hash": "sha256-/9EaAbEeOjELRSMZaImS1O8FmUe8j4WuFUw1VOrPyAo="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "System.Memory",
|
||||||
|
"version": "4.5.4",
|
||||||
|
"hash": "sha256-3sCEfzO4gj5CYGctl9ZXQRRhwAraMQfse7yzKoRe65E="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "System.Memory",
|
||||||
|
"version": "4.6.0",
|
||||||
|
"hash": "sha256-OhAEKzUM6eEaH99DcGaMz2pFLG/q/N4KVWqqiBYUOFo="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "System.Numerics.Vectors",
|
||||||
|
"version": "4.4.0",
|
||||||
|
"hash": "sha256-auXQK2flL/JpnB/rEcAcUm4vYMCYMEMiWOCAlIaqu2U="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "System.Reflection.Emit.Lightweight",
|
||||||
|
"version": "4.7.0",
|
||||||
|
"hash": "sha256-V0Wz/UUoNIHdTGS9e1TR89u58zJjo/wPUWw6VaVyclU="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "System.Reflection.Metadata",
|
||||||
|
"version": "5.0.0",
|
||||||
|
"hash": "sha256-Wo+MiqhcP9dQ6NuFGrQTw6hpbJORFwp+TBNTq2yhGp8="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "System.Runtime.CompilerServices.Unsafe",
|
||||||
|
"version": "4.5.2",
|
||||||
|
"hash": "sha256-8eUXXGWO2LL7uATMZye2iCpQOETn2jCcjUhG6coR5O8="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "System.Runtime.CompilerServices.Unsafe",
|
||||||
|
"version": "4.5.3",
|
||||||
|
"hash": "sha256-lnZMUqRO4RYRUeSO8HSJ9yBHqFHLVbmenwHWkIU20ak="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "System.Runtime.CompilerServices.Unsafe",
|
||||||
|
"version": "5.0.0",
|
||||||
|
"hash": "sha256-neARSpLPUzPxEKhJRwoBzhPxK+cKIitLx7WBYncsYgo="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "System.Security.AccessControl",
|
||||||
|
"version": "6.0.0-preview.5.21301.5",
|
||||||
|
"hash": "sha256-/rXZ6FJNEN3EuqOsCgCuypBOpA0hQyYIQXbsGccfLow="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "System.Security.Cryptography.ProtectedData",
|
||||||
|
"version": "6.0.0",
|
||||||
|
"hash": "sha256-Wi9I9NbZlpQDXgS7Kl06RIFxY/9674S7hKiYw5EabRY="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "System.Security.Permissions",
|
||||||
|
"version": "6.0.0",
|
||||||
|
"hash": "sha256-/MMvtFWGN/vOQfjXdOhet1gsnMgh6lh5DCHimVsnVEs="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "System.Security.Principal.Windows",
|
||||||
|
"version": "6.0.0-preview.5.21301.5",
|
||||||
|
"hash": "sha256-p0ROK7zJPz4EmNdjgAz2eX8dOMVHhpvQLTU7JveMceA="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "System.Text.Encoding.CodePages",
|
||||||
|
"version": "4.5.1",
|
||||||
|
"hash": "sha256-PIhkv59IXjyiuefdhKxS9hQfEwO9YWRuNudpo53HQfw="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "System.Text.Json",
|
||||||
|
"version": "9.0.2",
|
||||||
|
"hash": "sha256-kftKUuGgZtF4APmp77U79ws76mEIi+R9+DSVGikA5y8="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "System.Threading.Tasks.Extensions",
|
||||||
|
"version": "4.5.4",
|
||||||
|
"hash": "sha256-owSpY8wHlsUXn5xrfYAiu847L6fAKethlvYx97Ri1ng="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pname": "System.Windows.Extensions",
|
||||||
|
"version": "6.0.0",
|
||||||
|
"hash": "sha256-N+qg1E6FDJ9A9L50wmVt3xPQV8ZxlG1xeXgFuxO+yfM="
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -0,0 +1,140 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
buildDotnetModule,
|
||||||
|
fetchFromGitHub,
|
||||||
|
dotnetCorePackages,
|
||||||
|
sdl3,
|
||||||
|
libdecor,
|
||||||
|
libsecret,
|
||||||
|
glib,
|
||||||
|
gnutls,
|
||||||
|
aria2,
|
||||||
|
steam,
|
||||||
|
gst_all_1,
|
||||||
|
copyDesktopItems,
|
||||||
|
makeDesktopItem,
|
||||||
|
makeWrapper,
|
||||||
|
useSteamRun ? true,
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
rev = "1.4.0";
|
||||||
|
in
|
||||||
|
buildDotnetModule rec {
|
||||||
|
pname = "XIVLauncher";
|
||||||
|
version = rev;
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "goatcorp";
|
||||||
|
repo = "XIVLauncher.Core";
|
||||||
|
inherit rev;
|
||||||
|
hash = "sha256-kEMqqwlp+ZHjrEz6K7nYXyi0L8VAy1rHW2bOHEk1F6M=";
|
||||||
|
fetchSubmodules = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
patches = [ ./patches/no-check-wine64.patch ];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
copyDesktopItems
|
||||||
|
makeWrapper
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = with gst_all_1; [
|
||||||
|
gstreamer
|
||||||
|
gst-plugins-base
|
||||||
|
gst-plugins-good
|
||||||
|
gst-plugins-bad
|
||||||
|
gst-plugins-ugly
|
||||||
|
gst-libav
|
||||||
|
];
|
||||||
|
|
||||||
|
projectFile = "src/XIVLauncher.Core/XIVLauncher.Core.csproj";
|
||||||
|
# File generated with `nix-build -A xivlauncher.passthru.fetch-deps`.
|
||||||
|
nugetDeps = ./deps.json;
|
||||||
|
|
||||||
|
# Please do not unpin these even if they match the defaults, xivlauncher is sensitive to .NET versions.
|
||||||
|
dotnet-sdk =
|
||||||
|
with dotnetCorePackages;
|
||||||
|
sdk_10_0
|
||||||
|
// {
|
||||||
|
inherit (sdk_9_0)
|
||||||
|
packages
|
||||||
|
targetPackages
|
||||||
|
;
|
||||||
|
};
|
||||||
|
|
||||||
|
dotnetFlags = [
|
||||||
|
"-p:BuildHash=${rev}"
|
||||||
|
"-p:PublishSingleFile=false"
|
||||||
|
];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace lib/FFXIVQuickLauncher/src/XIVLauncher.Common/Game/Patch/Acquisition/Aria/AriaPatchAcquisition.cs \
|
||||||
|
--replace-fail 'ariaPath = "aria2c"' 'ariaPath = "${aria2}/bin/aria2c"'
|
||||||
|
'';
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
mkdir -p $out/share/pixmaps
|
||||||
|
cp src/XIVLauncher.Core/Resources/logo.png $out/share/pixmaps/xivlauncher.png
|
||||||
|
'';
|
||||||
|
|
||||||
|
postFixup =
|
||||||
|
lib.optionalString useSteamRun (
|
||||||
|
let
|
||||||
|
steam-run =
|
||||||
|
(steam.override {
|
||||||
|
extraPkgs = pkgs: [ pkgs.libunwind ];
|
||||||
|
extraProfile = ''
|
||||||
|
unset TZ
|
||||||
|
'';
|
||||||
|
}).run;
|
||||||
|
in
|
||||||
|
''
|
||||||
|
substituteInPlace $out/bin/XIVLauncher.Core \
|
||||||
|
--replace-fail 'exec' 'exec ${steam-run}/bin/steam-run'
|
||||||
|
''
|
||||||
|
)
|
||||||
|
+ ''
|
||||||
|
wrapProgram $out/bin/XIVLauncher.Core --prefix GST_PLUGIN_SYSTEM_PATH_1_0 ":" "$GST_PLUGIN_SYSTEM_PATH_1_0"
|
||||||
|
# The reference to aria2 gets mangled as UTF-16LE and isn't detectable by nix: https://github.com/NixOS/nixpkgs/issues/220065
|
||||||
|
mkdir -p $out/nix-support
|
||||||
|
echo ${aria2} >> $out/nix-support/depends
|
||||||
|
'';
|
||||||
|
|
||||||
|
executables = [ "XIVLauncher.Core" ];
|
||||||
|
|
||||||
|
runtimeDeps = [
|
||||||
|
sdl3
|
||||||
|
libdecor
|
||||||
|
libsecret
|
||||||
|
glib
|
||||||
|
gnutls
|
||||||
|
];
|
||||||
|
|
||||||
|
desktopItems = [
|
||||||
|
(makeDesktopItem {
|
||||||
|
name = "xivlauncher";
|
||||||
|
exec = "XIVLauncher.Core";
|
||||||
|
icon = "xivlauncher";
|
||||||
|
desktopName = "XIVLauncher";
|
||||||
|
comment = meta.description;
|
||||||
|
categories = [ "Game" ];
|
||||||
|
startupWMClass = "XIVLauncher.Core";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Custom launcher for FFXIV";
|
||||||
|
homepage = "https://github.com/goatcorp/XIVLauncher.Core";
|
||||||
|
license = lib.licenses.gpl3;
|
||||||
|
|
||||||
|
maintainers = with lib.maintainers; [
|
||||||
|
blooym
|
||||||
|
keysmashes
|
||||||
|
witchof0x20
|
||||||
|
];
|
||||||
|
|
||||||
|
platforms = [ "x86_64-linux" ];
|
||||||
|
mainProgram = "XIVLauncher.Core";
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
diff --git a/src/XIVLauncher.Common.Unix/Compatibility/CompatibilityTools.cs b/src/XIVLauncher.Common.Unix/Compatibility/CompatibilityTools.cs
|
||||||
|
index 864000f..510e4ff 100644
|
||||||
|
--- a/src/XIVLauncher.Common.Unix/Compatibility/CompatibilityTools.cs
|
||||||
|
+++ b/src/XIVLauncher.Common.Unix/Compatibility/CompatibilityTools.cs
|
||||||
|
@@ -28,7 +28,7 @@ public class CompatibilityTools
|
||||||
|
private string WineBinPath => Settings.StartupType == WineStartupType.Managed ?
|
||||||
|
Path.Combine(wineDirectory.FullName, Settings.Release.Name, "bin") :
|
||||||
|
Settings.CustomBinPath;
|
||||||
|
- private string Wine64Path => Path.Combine(WineBinPath, "wine64");
|
||||||
|
+ private string Wine64Path => Path.Combine(WineBinPath, "wine");
|
||||||
|
private string WineServerPath => Path.Combine(WineBinPath, "wineserver");
|
||||||
|
|
||||||
|
private readonly DxvkVersion dxvkVersion;
|
||||||
|
diff --git a/src/XIVLauncher.Core/Components/MainPage/MainPage.cs b/src/XIVLauncher.Core/Components/MainPage/MainPage.cs
|
||||||
|
index 3943c15..ee44782 100644
|
||||||
|
--- a/src/XIVLauncher.Core/Components/MainPage/MainPage.cs
|
||||||
|
+++ b/src/XIVLauncher.Core/Components/MainPage/MainPage.cs
|
||||||
|
@@ -688,7 +688,7 @@ public class MainPage : Page
|
||||||
|
else if (!Directory.Exists(App.Settings.WineBinaryPath))
|
||||||
|
throw new InvalidOperationException("Custom wine binary path is invalid: no such directory.\n" +
|
||||||
|
"Check path carefully for typos: " + App.Settings.WineBinaryPath);
|
||||||
|
- else if (!File.Exists(Path.Combine(App.Settings.WineBinaryPath, "wine64")))
|
||||||
|
+ else if (!File.Exists(Path.Combine(App.Settings.WineBinaryPath, "wine")))
|
||||||
|
throw new InvalidOperationException("Custom wine binary path is invalid: no wine64 found at that location.\n" +
|
||||||
|
"Check path carefully for typos: " + App.Settings.WineBinaryPath);
|
||||||
|
|
||||||
Reference in New Issue
Block a user