This commit is contained in:
2025-10-14 21:55:49 +01:00
13 changed files with 129 additions and 168 deletions

View File

@@ -15,6 +15,7 @@
curl curl
inetutils inetutils
dig dig
exfatprogs
rar rar
zstd zstd

View File

@@ -1,15 +1,5 @@
{ pkgs, lib, ... }: { pkgs, ... }:
let
kwin = lib.concatStringsSep " " [
"${lib.getBin pkgs.kdePackages.kwin}/bin/kwin_wayland"
"--no-global-shortcuts"
"--no-kactivities"
"--no-lockscreen"
"--locale1"
"--inputmethod maliit-keyboard"
];
in
{ {
services.xserver.enable = true; # optional services.xserver.enable = true; # optional
@@ -20,11 +10,6 @@ in
services.displayManager.sddm = { services.displayManager.sddm = {
enable = true; enable = true;
wayland.enable = true; wayland.enable = true;
settings = {
Wayland = {
CompositorCommand = kwin;
};
};
}; };
services.desktopManager.plasma6.enable = true; services.desktopManager.plasma6.enable = true;
environment.plasma6.excludePackages = [ pkgs.kdePackages.discover ]; environment.plasma6.excludePackages = [ pkgs.kdePackages.discover ];
@@ -34,15 +19,11 @@ in
programs.partition-manager.enable = true; programs.partition-manager.enable = true;
environment.systemPackages = with pkgs; environment.systemPackages = with pkgs.kdePackages;[
[ sddm-kcm
maliit-keyboard plasma-disks
exfatprogs filelight
] ++ (with kdePackages; [ ffmpegthumbs
sddm-kcm kcalc
plasma-disks ];
filelight
ffmpegthumbs
kcalc
]);
} }

View File

@@ -13,12 +13,6 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nixos-hardware.url = "github:NixOS/nixos-hardware/master?shallow=1";
disko = {
url = "github:nix-community/disko?shallow=1";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions?shallow=1"; nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions?shallow=1";
system-manager = { system-manager = {
@@ -31,7 +25,7 @@
}; };
}; };
outputs = { self, nixpkgs, nixos-hardware, home-manager, system-manager, nix-system-graphics, nix-index-database, ... }@inputs: outputs = { nixpkgs, home-manager, system-manager, nix-system-graphics, nix-index-database, ... }@inputs:
let let
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = import nixpkgs { pkgs = import nixpkgs {
@@ -40,19 +34,6 @@
}; };
in in
{ {
nixosConfigurations.tuxedo = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; };
modules = [
./devices/tuxedo/configuration.nix
];
};
nixosConfigurations.starlite = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; };
modules = [
nixos-hardware.nixosModules.starlabs-starlite-i5
./devices/starlite/configuration.nix
];
};
packages.${system}.homeConfigurations.deck = home-manager.lib.homeManagerConfiguration { packages.${system}.homeConfigurations.deck = home-manager.lib.homeManagerConfiguration {
inherit pkgs; inherit pkgs;
extraSpecialArgs = { inherit inputs; }; extraSpecialArgs = { inherit inputs; };

View File

@@ -1,7 +1,7 @@
{ pkgs, ... }: { pkgs, ... }:
let let
homeUpdateLocation = "/home/deck/Projects/nixos#deck"; homeUpdateLocation = "/home/deck/Projects/nixos/devices/deck#deck";
in in
{ {
imports = [ imports = [
@@ -11,7 +11,7 @@ in
]; ];
terminal.homeUpdateLocation = homeUpdateLocation; terminal.homeUpdateLocation = homeUpdateLocation;
terminal.flakeUpdateLocation = "/home/deck/Projects/nixos"; terminal.flakeUpdateLocation = "/home/deck/Projects/nixos/devices/deck";
nixpkgs.config = { nixpkgs.config = {
allowUnfree = true; allowUnfree = true;

View File

@@ -0,0 +1,35 @@
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05?shallow=1";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable?shallow=1"; # use by inputs.nixpkgs-unstable.legacyPackages."${pkgs.system}".[package name]
home-manager = {
url = "github:nix-community/home-manager/release-25.05?shallow=1";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-index-database = {
url = "github:nix-community/nix-index-database?shallow=1";
inputs.nixpkgs.follows = "nixpkgs";
};
nixos-hardware.url = "github:NixOS/nixos-hardware/master?shallow=1";
disko = {
url = "github:nix-community/disko?shallow=1";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions?shallow=1";
};
outputs = { nixpkgs, nixos-hardware, ... }@inputs:
{
nixosConfigurations.starlite = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; };
modules = [
nixos-hardware.nixosModules.starlabs-starlite-i5
./devices/starlite/configuration.nix
];
};
};
}

View File

@@ -6,8 +6,8 @@
../../home-manager/development/vscode.nix ../../home-manager/development/vscode.nix
]; ];
terminal.nixUpdateLocation = "/home/worble/Projects/nixos#starlite"; terminal.nixUpdateLocation = "/home/worble/Projects/nixos/devices/starlite#starlite";
terminal.flakeUpdateLocation = "/home/worble/Projects/nixos"; terminal.flakeUpdateLocation = "/home/worble/Projects/nixos/devices/starlite";
firefox.tablet = true; firefox.tablet = true;
home.username = "worble"; home.username = "worble";

View File

@@ -79,26 +79,6 @@
"type": "github" "type": "github"
} }
}, },
"nix-system-graphics": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1737457219,
"narHash": "sha256-nX9dxoATDCSQgWw/iv6BngXDJEyHVYYEvHEVQ7Ig3fI=",
"owner": "soupglasses",
"repo": "nix-system-graphics",
"rev": "9c875e0c56cf2eb272b9102a4f3e24e4e31629fd",
"type": "github"
},
"original": {
"owner": "soupglasses",
"repo": "nix-system-graphics",
"type": "github"
}
},
"nix-vscode-extensions": { "nix-vscode-extensions": {
"inputs": { "inputs": {
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
@@ -118,22 +98,6 @@
"type": "github" "type": "github"
} }
}, },
"nixos-hardware": {
"locked": {
"lastModified": 1760106635,
"narHash": "sha256-2GoxVaKWTHBxRoeUYSjv0AfSOx4qw5CWSFz2b+VolKU=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "9ed85f8afebf2b7478f25db0a98d0e782c0ed903",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "master",
"repo": "nixos-hardware",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1759770925, "lastModified": 1759770925,
@@ -187,32 +151,9 @@
"disko": "disko", "disko": "disko",
"home-manager": "home-manager", "home-manager": "home-manager",
"nix-index-database": "nix-index-database", "nix-index-database": "nix-index-database",
"nix-system-graphics": "nix-system-graphics",
"nix-vscode-extensions": "nix-vscode-extensions", "nix-vscode-extensions": "nix-vscode-extensions",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_2",
"nixpkgs-unstable": "nixpkgs-unstable", "nixpkgs-unstable": "nixpkgs-unstable"
"system-manager": "system-manager"
}
},
"system-manager": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1756281415,
"narHash": "sha256-CjpoVwpJJ+DOZilPrDpZ5S3V+B1Y0calaHxTp2xMvGs=",
"owner": "numtide",
"repo": "system-manager",
"rev": "e271eedac9a24678ca6cfc61677837422bf474e0",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "system-manager",
"type": "github"
} }
}, },
"systems": { "systems": {

33
devices/tuxedo/flake.nix Normal file
View File

@@ -0,0 +1,33 @@
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05?shallow=1";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable?shallow=1"; # use by inputs.nixpkgs-unstable.legacyPackages."${pkgs.system}".[package name]
home-manager = {
url = "github:nix-community/home-manager/release-25.05?shallow=1";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-index-database = {
url = "github:nix-community/nix-index-database?shallow=1";
inputs.nixpkgs.follows = "nixpkgs";
};
disko = {
url = "github:nix-community/disko?shallow=1";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions?shallow=1";
};
outputs = { nixpkgs, ... }@inputs:
{
nixosConfigurations.tuxedo = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; };
modules = [
./configuration.nix
];
};
};
}

View File

@@ -8,8 +8,8 @@
../../home-manager/streamlink.nix ../../home-manager/streamlink.nix
]; ];
terminal.nixUpdateLocation = "/home/worble/Projects/nixos#tuxedo"; terminal.nixUpdateLocation = "/home/worble/Projects/nixos/devices/tuxedo#tuxedo";
terminal.flakeUpdateLocation = "/home/worble/Projects/nixos"; terminal.flakeUpdateLocation = "/home/worble/Projects/nixos/devices/tuxedo";
helix.fullInstall = true; helix.fullInstall = true;
mpv.high-quality = true; mpv.high-quality = true;

View File

@@ -1,2 +1,2 @@
#!/usr/bin/env bash #!/usr/bin/env bash
home-manager switch --flake "/home/$(whoami)/Projects/nixos#$(whoami)" home-manager switch --flake "$HOME/Projects/nixos/devices/$(whoami)#$(whoami)"

View File

@@ -188,11 +188,7 @@ with lib;
}) })
(mkIf (flakeUpdateLocation != null) { (mkIf (flakeUpdateLocation != null) {
pre_commands = { pre_commands = {
nix-flake-update = "${(pkgs.writeShellScriptBin "nix-flake-update" '' nix-flake-update = "${(pkgs.writeShellScriptBin "nix-flake-update" "sudo nix flake update --flake ${flakeUpdateLocation}")}/bin/nix-flake-update";
git -C ${flakeUpdateLocation} pull --quiet
sudo nix flake update --flake ${flakeUpdateLocation}
git -C ${flakeUpdateLocation} diff-index --quiet HEAD flake.lock || git -C ${flakeUpdateLocation} commit --quiet flake.lock -m "update flake.lock"
'')}/bin/nix-flake-update";
}; };
})]; })];
}; };

View File

@@ -2,26 +2,51 @@
let let
pkgs_unstable = inputs.nixpkgs-unstable.legacyPackages."${pkgs.system}"; pkgs_unstable = inputs.nixpkgs-unstable.legacyPackages."${pkgs.system}";
# https://simpler-website.pages.dev/html/2021/1/wine-environment-variables/#wineesync
wine-wrapped = (pkgs.writeShellApplication {
name = "wine";
runtimeInputs = [ pkgs_unstable.wineWowPackages.stagingFull ];
text = ''
export WINEPREFIX="''${WINEPREFIX:-"$HOME/Games/wine/default"}"
wine "$@"
'';
});
# https://github.com/GloriousEggroll/proton-ge-custom?tab=readme-ov-file#modification
# These aren't yet documented in the README:
# PROTON_MEDIA_USE_GST=1 will tell proton to use the winegstreamer backend instead of the default winedmo backend (the winedmo backend was introduced in Proton 10 and is the current preferred video playback method). This can be useful for games with videos that may have worked in Proton 9 but regressed in Proton 10.
# PROTON_GST_VIDEO_ORIENTATION=<orientation> can be any of the following: vertical-flip, horizontal-flip, rotate-180, automatic. This is useful if some games have videos that are upside down or otherwise not oriented correctly.
umu-wrapped = (pkgs.writeShellApplication {
name = "umu-run";
runtimeInputs = [ pkgs_unstable.umu-launcher ];
text = ''
export PROTONPATH="''${PROTONPATH:-"GE-Proton"}"
export PROTON_ENABLE_WAYLAND="''${PROTON_ENABLE_WAYLAND:-"0"}"
umu-run "$@"
'';
});
in in
{ {
home.packages = with pkgs;[ home.packages = with pkgs;[
# Wine / Proton # Wine / Proton
pkgs_unstable.wineWowPackages.stagingFull umu-wrapped
wine-wrapped
pkgs_unstable.winetricks pkgs_unstable.winetricks
pkgs_unstable.umu-launcher
# I'm not sure this actually accomplishes anything, even with PROTON_MEDIA_USE_GST=1 # proton with ja_JP
# (umu-launcher.override { (pkgs.writeShellApplication {
# extraPkgs = pkgs: with pkgs.gst_all_1; [ name = "umu-ja";
# gstreamer runtimeInputs = [ umu-wrapped ];
# gst-plugins-base text = "LANG=ja_JP.utf8 umu-run \"$@\"";
# gst-plugins-good })
# gst-plugins-bad
# gst-plugins-ugly # wine with ja_JP
# gst-libav (pkgs.writeShellApplication {
# gst-vaapi name = "wine-ja";
# ]; runtimeInputs = [ wine-wrapped ];
# }) text = "LANG=ja_JP.utf8 wine \"$@\"";
})
bottles bottles
(heroic.override { (heroic.override {
@@ -34,42 +59,10 @@ in
steamguard-cli steamguard-cli
# Emulators # Emulators
ryubing pkgs_unstable.ryubing
mgba mgba
# Cheat engine # Cheat engine
scanmem scanmem
# proton with ja_JP
(pkgs.writeShellApplication {
name = "umu-ja";
runtimeInputs = [ pkgs_unstable.umu-launcher ];
text = "LANG=ja_JP.utf8 umu-run \"$@\"";
})
# wine with ja_JP
(pkgs.writeShellApplication {
name = "wine-ja";
runtimeInputs = [ pkgs_unstable.wineWowPackages.stagingFull ];
text = "LANG=ja_JP.utf8 wine \"$@\"";
})
]; ];
# https://github.com/GloriousEggroll/proton-ge-custom?tab=readme-ov-file#modification
# There aren't yet documented in the README:
# PROTON_MEDIA_USE_GST=1 will tell proton to use the winegstreamer backend instead of the default winedmo backend (the winedmo backend was introduced in Proton 10 and is the current preferred video playback method). This can be useful for games with videos that may have worked in Proton 9 but regressed in Proton 10.
# PROTON_GST_VIDEO_ORIENTATION=<orientation> can be any of the following: vertical-flip, horizontal-flip, rotate-180, automatic. This is useful if some games have videos that are upside down or otherwise not oriented correctly.
# https://simpler-website.pages.dev/html/2021/1/wine-environment-variables/#wineesync
home.sessionVariables = {
WINEPREFIX = "~/Games/wine/default";
PROTONPATH = "GE-Proton";
PROTON_ENABLE_WAYLAND = "0"; # One day...
};
# programs.lutris = {
# enable = true;
# extraPackages = with pkgs; [ mangohud winetricks gamescope gamemode umu-launcher ];
# protonPackages = [ pkgs.proton-ge-bin ];
# winePackages = [ pkgs.wineWowPackages.staging ];
# };
} }

View File

@@ -1,2 +1,2 @@
#!/usr/bin/env bash #!/usr/bin/env bash
sudo nixos-rebuild switch --flake "/home/worble/Projects/nixos#$(hostname)" sudo nixos-rebuild switch --flake "$HOME/Projects/nixos/devices/$(hostname)#$(hostname)"