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
inetutils
dig
exfatprogs
rar
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
@@ -20,11 +10,6 @@ in
services.displayManager.sddm = {
enable = true;
wayland.enable = true;
settings = {
Wayland = {
CompositorCommand = kwin;
};
};
};
services.desktopManager.plasma6.enable = true;
environment.plasma6.excludePackages = [ pkgs.kdePackages.discover ];
@@ -34,15 +19,11 @@ in
programs.partition-manager.enable = true;
environment.systemPackages = with pkgs;
[
maliit-keyboard
exfatprogs
] ++ (with kdePackages; [
sddm-kcm
plasma-disks
filelight
ffmpegthumbs
kcalc
]);
environment.systemPackages = with pkgs.kdePackages;[
sddm-kcm
plasma-disks
filelight
ffmpegthumbs
kcalc
];
}

View File

@@ -13,12 +13,6 @@
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";
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
system = "x86_64-linux";
pkgs = import nixpkgs {
@@ -40,19 +34,6 @@
};
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 {
inherit pkgs;
extraSpecialArgs = { inherit inputs; };

View File

@@ -1,7 +1,7 @@
{ pkgs, ... }:
let
homeUpdateLocation = "/home/deck/Projects/nixos#deck";
homeUpdateLocation = "/home/deck/Projects/nixos/devices/deck#deck";
in
{
imports = [
@@ -11,7 +11,7 @@ in
];
terminal.homeUpdateLocation = homeUpdateLocation;
terminal.flakeUpdateLocation = "/home/deck/Projects/nixos";
terminal.flakeUpdateLocation = "/home/deck/Projects/nixos/devices/deck";
nixpkgs.config = {
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
];
terminal.nixUpdateLocation = "/home/worble/Projects/nixos#starlite";
terminal.flakeUpdateLocation = "/home/worble/Projects/nixos";
terminal.nixUpdateLocation = "/home/worble/Projects/nixos/devices/starlite#starlite";
terminal.flakeUpdateLocation = "/home/worble/Projects/nixos/devices/starlite";
firefox.tablet = true;
home.username = "worble";

View File

@@ -79,26 +79,6 @@
"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": {
"inputs": {
"flake-utils": "flake-utils",
@@ -118,22 +98,6 @@
"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": {
"locked": {
"lastModified": 1759770925,
@@ -187,32 +151,9 @@
"disko": "disko",
"home-manager": "home-manager",
"nix-index-database": "nix-index-database",
"nix-system-graphics": "nix-system-graphics",
"nix-vscode-extensions": "nix-vscode-extensions",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_2",
"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"
"nixpkgs-unstable": "nixpkgs-unstable"
}
},
"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
];
terminal.nixUpdateLocation = "/home/worble/Projects/nixos#tuxedo";
terminal.flakeUpdateLocation = "/home/worble/Projects/nixos";
terminal.nixUpdateLocation = "/home/worble/Projects/nixos/devices/tuxedo#tuxedo";
terminal.flakeUpdateLocation = "/home/worble/Projects/nixos/devices/tuxedo";
helix.fullInstall = true;
mpv.high-quality = true;

View File

@@ -1,2 +1,2 @@
#!/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) {
pre_commands = {
nix-flake-update = "${(pkgs.writeShellScriptBin "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";
nix-flake-update = "${(pkgs.writeShellScriptBin "nix-flake-update" "sudo nix flake update --flake ${flakeUpdateLocation}")}/bin/nix-flake-update";
};
})];
};

View File

@@ -2,26 +2,51 @@
let
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
{
home.packages = with pkgs;[
# Wine / Proton
pkgs_unstable.wineWowPackages.stagingFull
# Wine / Proton
umu-wrapped
wine-wrapped
pkgs_unstable.winetricks
pkgs_unstable.umu-launcher
# I'm not sure this actually accomplishes anything, even with PROTON_MEDIA_USE_GST=1
# (umu-launcher.override {
# extraPkgs = pkgs: with pkgs.gst_all_1; [
# gstreamer
# gst-plugins-base
# gst-plugins-good
# gst-plugins-bad
# gst-plugins-ugly
# gst-libav
# gst-vaapi
# ];
# })
# proton with ja_JP
(pkgs.writeShellApplication {
name = "umu-ja";
runtimeInputs = [ umu-wrapped ];
text = "LANG=ja_JP.utf8 umu-run \"$@\"";
})
# wine with ja_JP
(pkgs.writeShellApplication {
name = "wine-ja";
runtimeInputs = [ wine-wrapped ];
text = "LANG=ja_JP.utf8 wine \"$@\"";
})
bottles
(heroic.override {
@@ -34,42 +59,10 @@ in
steamguard-cli
# Emulators
ryubing
pkgs_unstable.ryubing
mgba
# Cheat engine
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
sudo nixos-rebuild switch --flake "/home/worble/Projects/nixos#$(hostname)"
sudo nixos-rebuild switch --flake "$HOME/Projects/nixos/devices/$(hostname)#$(hostname)"