Compare commits

..

6 Commits

Author SHA1 Message Date
Zynh Ludwig 5c3b923653 Revert "xivlauncher: iinact borderless"
This reverts commit 8039eacfb9.
2024-08-11 05:20:50 -07:00
Zynh Ludwig 8039eacfb9 xivlauncher: iinact borderless 2024-08-11 05:20:43 -07:00
Zynh Ludwig 6af247c6c6 xivlauncher: textools 2024-08-11 05:20:11 -07:00
Zynh Ludwig 89e5cb8679 builders: use pkgs overlay 2024-08-11 04:54:07 -07:00
Zynh Ludwig 2d2909e22e pkgs: wrapWine 2024-08-10 11:21:26 -07:00
Zynh Ludwig 73504959a2 flake: whitespace 2024-08-10 11:21:26 -07:00
12 changed files with 124 additions and 15 deletions

View File

@ -59,6 +59,7 @@
system = "x86_64-linux";
}
];
homeConfigurations =
builders.compileHomes
[
@ -78,5 +79,7 @@
system = "aarch64-darwin";
}
];
overlays.default = import ./pkgs;
};
}

View File

@ -1,4 +1,4 @@
{ lib, ... }:
{ lib, self, ... }:
let
getModules = path:
@ -16,6 +16,7 @@ in
imports = getModules ./.;
nixpkgs.config.allowUnfree = true;
nixpkgs.overlays = [ self.overlays.default ];
snowhawk.user.enable = lib.mkDefault true;
snowhawk.tmux.enable = lib.mkDefault true;

View File

@ -6,6 +6,8 @@ in
{
options.snowhawk.xivlauncher = {
enable = lib.mkEnableOption "xivlauncher home-manager module";
textools.enable = lib.mkEnableOption "TexTools wine application";
};
config =

View File

@ -100,9 +100,6 @@
# backupFileExtension = "backup";
};
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
# programs.hyprland.enable = true;
# environment.sessionVariables.NIXOS_OZONE_WL = "1";

View File

@ -2,7 +2,7 @@
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running `nixos-help`).
{ pkgs, inputs, lib, config, ... }:
{ pkgs, inputs, lib, config, self, ... }:
{
imports = [
@ -98,7 +98,7 @@
security.polkit.enable = true;
home-manager = {
extraSpecialArgs = { inherit inputs; };
extraSpecialArgs = { inherit inputs self; };
users = { "ravenshade" = import ./home.nix; };
# backupFileExtension = "backup";
};

View File

@ -102,9 +102,6 @@
# backupFileExtension = "backup";
};
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
# programs.hyprland.enable = true;
# environment.sessionVariables.NIXOS_OZONE_WL = "1";

View File

@ -1,4 +1,4 @@
{ nixpkgs, ... }@inputs:
{ nixpkgs, self, ... }@inputs:
let
lib = nixpkgs.lib.extend (import ../lib);
@ -15,7 +15,7 @@ rec {
hostname
(nixosSystem {
inherit system;
specialArgs = { inherit inputs lib; };
specialArgs = { inherit inputs lib self; };
modules = [
../hosts/${hostname}/hardware-configuration.nix
../hosts/${hostname}/configuration.nix
@ -39,9 +39,9 @@ rec {
nameValuePair
"${user}${hostStr}"
(homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages."${system}";
pkgs = nixpkgs.legacyPackages.${system}.extend self.overlays.default;
extraSpecialArgs = {
inherit inputs;
inherit inputs self;
lib = lib.extend inputs.home-manager.lib;
};

View File

@ -14,4 +14,5 @@ in
snowhawk.audio.enable = lib.mkDefault true;
snowhawk.env.enable = lib.mkDefault true;
snowhawk.sops.enable = lib.mkDefault true;
snowhawk.nixpkgs.enable = lib.mkDefault true;
}

View File

@ -13,7 +13,5 @@ in
experimental-features = [ "nix-command" "flakes" ];
auto-optimise-store = true;
};
nixpkgs.config.allowUnfree = true;
};
}

17
modules/nixpkgs.nix Normal file
View File

@ -0,0 +1,17 @@
{ lib, config, self, ... }:
let
cfg = config.snowhawk.nixpkgs;
in
{
options.snowhawk.nixpkgs = {
enable = lib.mkEnableOption "nixpkgs settings";
};
config = lib.mkIf cfg.enable {
nixpkgs.config.allowUnfree = true;
nixpkgs.overlays = [ self.overlays.default ];
};
}

4
pkgs/default.nix Normal file
View File

@ -0,0 +1,4 @@
final: prev:
{
wrapWine = prev.lib.callPackage ./wrapWine.nix { };
}

89
pkgs/wrapWine.nix Normal file
View File

@ -0,0 +1,89 @@
# Yoink https://github.com/h4ckbs/lan-party-netboot/blob/master/wrapWine.nix
{ pkgs }:
let
inherit (builtins) length concatStringsSep;
inherit (pkgs) lib cabextract writeShellScriptBin;
inherit (lib) makeBinPath;
in
{ is64bits ? false
, wine ? if is64bits then pkgs.wineWowPackages.stable else pkgs.wine
, wineFlags ? ""
, executable
, chdir ? null
, name
, tricks ? [ ]
, setupScript ? ""
, firstrunScript ? ""
, home ? ""
}:
let
wineBin = "${wine}/bin/wine${if is64bits then "64" else ""}";
requiredPackages = [
wine
cabextract
];
WINENIX_PROFILES = "$HOME/WINENIX_PROFILES";
PATH = makeBinPath requiredPackages;
NAME = name;
HOME =
if home == ""
then "${WINENIX_PROFILES}/${name}"
else home;
WINEARCH =
if is64bits
then "win64"
else "win32";
setupHook = ''
${wine}/bin/wineboot
'';
tricksHook =
if (length tricks) > 0 then
let
tricksStr = concatStringsSep " " tricks;
tricksCmd = ''
pushd $(mktemp -d)
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks
./winetricks ${tricksStr}
popd
'';
in
tricksCmd
else "";
script = writeShellScriptBin name ''
export APP_NAME="${NAME}"
export WINEARCH=${WINEARCH}
export WINE_NIX="$HOME/.wine-nix" # define antes de definir $HOME senão ele vai gravar na nova $HOME a .wine-nix
export WINE_NIX_PROFILES="${WINENIX_PROFILES}"
export PATH=$PATH:${PATH}
export HOME="${HOME}"
mkdir -p "$HOME"
export WINEPREFIX="$WINE_NIX/${name}"
export EXECUTABLE="${executable}"
mkdir -p "$WINE_NIX" "$WINE_NIX_PROFILES"
${setupScript}
if [ ! -d "$WINEPREFIX" ] # if the prefix does not exist
then
${setupHook}
# ${wineBin} cmd /c dir > /dev/null 2> /dev/null # initialize prefix
wineserver -w
${tricksHook}
rm "$WINEPREFIX/drive_c/users/$USER" -rf
ln -s "$HOME" "$WINEPREFIX/drive_c/users/$USER"
${firstrunScript}
fi
${if chdir != null
then ''cd "${chdir}"''
else ""}
if [ ! "$REPL" == "" ]; # if $REPL is setup then start a shell in the context
then
bash
exit 0
fi
${wineBin} ${wineFlags} "$EXECUTABLE" "$@"
wineserver -w
'';
in
script