Compare commits
24 Commits
89a15a63e8
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 16980bf9f4 | |||
| 4fc8b0f4fa | |||
| 3a9d27adb8 | |||
| 079ba8a9d5 | |||
| 48c40f8124 | |||
| c3171bd792 | |||
| a64a137724 | |||
| d776ce0667 | |||
| 70a7c6d30a | |||
| f648311d04 | |||
| 8f5a18577f | |||
| 4a49961bc0 | |||
| 9f51eaf5fc | |||
| bfc2435b43 | |||
| 86abbf360e | |||
| f33924569f | |||
| 72558d3d07 | |||
| 03f7b779bd | |||
| 21f1600fdc | |||
| c55f1eb9d7 | |||
| c7d7cb845b | |||
| 30441810be | |||
| 531fafcb52 | |||
| fb5b7abbd4 |
@@ -6,6 +6,7 @@
|
||||
./location-time.nix
|
||||
./networking.nix
|
||||
./nix-settings.nix
|
||||
./oomd.nix
|
||||
./pipewire.nix
|
||||
./programs.nix
|
||||
];
|
||||
|
||||
@@ -5,9 +5,6 @@
|
||||
# Pick only one of the below networking options.
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
networking = {
|
||||
nftables = {
|
||||
enable = true;
|
||||
};
|
||||
networkmanager = {
|
||||
# Easiest to use and most distros use this by default.
|
||||
enable = true;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ ... }:
|
||||
{ inputs, ... }:
|
||||
|
||||
{
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
@@ -6,6 +6,8 @@
|
||||
nix.settings.auto-optimise-store = true;
|
||||
nix.gc.automatic = true;
|
||||
nix.gc.options = "--delete-older-than 7d";
|
||||
# https://github.com/nix-community/nixd/blob/main/nixd/docs/configuration.md
|
||||
nix.nixPath = [ "nixpkgs=${inputs.nixpkgs}" ];
|
||||
|
||||
programs.nix-ld = {
|
||||
enable = true;
|
||||
|
||||
10
configuration/base/oomd.nix
Normal file
10
configuration/base/oomd.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
systemd.oomd = {
|
||||
enable = true;
|
||||
enableRootSlice = true;
|
||||
enableSystemSlice = true;
|
||||
enableUserSlices = true;
|
||||
};
|
||||
}
|
||||
@@ -15,11 +15,12 @@
|
||||
curl
|
||||
inetutils
|
||||
dig
|
||||
exfatprogs
|
||||
|
||||
rar
|
||||
zstd
|
||||
xz
|
||||
p7zip
|
||||
busybox
|
||||
|
||||
libva-utils
|
||||
smartmontools
|
||||
|
||||
@@ -35,4 +35,9 @@
|
||||
};
|
||||
|
||||
programs.cdemu.enable = true; # Remember to add users to the cdrom group for this to work
|
||||
|
||||
environment.systemPackages = with pkgs;[
|
||||
lsfg-vk
|
||||
lsfg-vk-ui
|
||||
];
|
||||
}
|
||||
|
||||
24
configuration/modules/i18n.nix
Normal file
24
configuration/modules/i18n.nix
Normal file
@@ -0,0 +1,24 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# Install Japanese IME MOZC
|
||||
i18n.inputMethod = {
|
||||
enable = true;
|
||||
type = "fcitx5";
|
||||
# ibus = {
|
||||
# engines = with pkgs.ibus-engines; [ mozc anthy ];
|
||||
# panel = "${pkgs.kdePackages.plasma-desktop}/libexec/kimpanel-ibus-panel";
|
||||
# };
|
||||
fcitx5 = {
|
||||
waylandFrontend = true;
|
||||
addons = with pkgs; [
|
||||
fcitx5-mozc
|
||||
fcitx5-anthy
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = [
|
||||
pkgs.kdePackages.fcitx5-configtool
|
||||
];
|
||||
}
|
||||
@@ -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
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
services.power-profiles-daemon.enable = false;
|
||||
services.tlp = {
|
||||
enable = true;
|
||||
settings = {
|
||||
RESTORE_DEVICE_STATE_ON_STARTUP = 1;
|
||||
USB_AUTOSUSPEND = 0;
|
||||
PLATFORM_PROFILE_ON_AC = "performance";
|
||||
PLATFORM_PROFILE_ON_BAT = "low-power";
|
||||
CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
|
||||
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
|
||||
CPU_BOOST_ON_AC = 1;
|
||||
CPU_BOOST_ON_BAT = 0;
|
||||
};
|
||||
};
|
||||
services.power-profiles-daemon.enable = true;
|
||||
# services.tlp = {
|
||||
# enable = true;
|
||||
# settings = {
|
||||
# RESTORE_DEVICE_STATE_ON_STARTUP = 1;
|
||||
# USB_AUTOSUSPEND = 0;
|
||||
# PLATFORM_PROFILE_ON_AC = "performance";
|
||||
# PLATFORM_PROFILE_ON_BAT = "low-power";
|
||||
# CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
|
||||
# CPU_ENERGY_PERF_POLICY_ON_BAT = "balance_power";
|
||||
# CPU_BOOST_ON_AC = 1;
|
||||
# CPU_BOOST_ON_BAT = 0;
|
||||
# };
|
||||
# };
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
# Enable touchpad support (enabled by default in most desktopManagers).
|
||||
services.libinput.enable = true;
|
||||
}
|
||||
|
||||
@@ -1,39 +1,53 @@
|
||||
{ pkgs, ... }:
|
||||
{ pkgs, lib, config, ... }:
|
||||
|
||||
with lib;
|
||||
{
|
||||
virtualisation = {
|
||||
containers = {
|
||||
# Enable common container config files in /etc/containers
|
||||
enable = true;
|
||||
};
|
||||
libvirtd = {
|
||||
enable = true;
|
||||
qemu = {
|
||||
vhostUserPackages = [ pkgs.virtiofsd ];
|
||||
ovmf.enable = true;
|
||||
options.virtualisation.containerManagement = mkOption {
|
||||
type = types.enum [ "docker" "podman" ];
|
||||
default = "docker";
|
||||
};
|
||||
|
||||
config = {
|
||||
virtualisation = {
|
||||
containers = {
|
||||
# Enable common container config files in /etc/containers
|
||||
enable = true;
|
||||
};
|
||||
libvirtd = {
|
||||
enable = true;
|
||||
qemu = {
|
||||
vhostUserPackages = [ pkgs.virtiofsd ];
|
||||
};
|
||||
};
|
||||
# remember to add the necessary users to the podman group
|
||||
podman = {
|
||||
enable = if (config.virtualisation.containerManagement == "podman") then true else false;
|
||||
dockerSocket.enable = true;
|
||||
dockerCompat = true;
|
||||
defaultNetwork.settings.dns_enabled = true;
|
||||
};
|
||||
# remember to add the necessary users to the docker group
|
||||
docker = {
|
||||
enable = if (config.virtualisation.containerManagement == "docker") then true else false;
|
||||
storageDriver = "btrfs";
|
||||
};
|
||||
waydroid = {
|
||||
enable = true;
|
||||
package = pkgs.waydroid-nftables;
|
||||
};
|
||||
};
|
||||
# podman = {
|
||||
# enable = true;
|
||||
# dockerSocket.enable = true;
|
||||
# dockerCompat = true;
|
||||
# defaultNetwork.settings.dns_enabled = true;
|
||||
# };
|
||||
# remember to add the necessary users to the docker group
|
||||
docker = {
|
||||
enable = true;
|
||||
storageDriver = "btrfs";
|
||||
};
|
||||
# waydroid = {
|
||||
# enable = true;
|
||||
# };
|
||||
programs.virt-manager.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs;[
|
||||
waydroid-helper
|
||||
] ++ optionals (config.virtualisation.containerManagement == "podman") [
|
||||
docker-compose
|
||||
# podman-compose
|
||||
podman-tui
|
||||
podman-desktop
|
||||
] ++ optionals (config.virtualisation.containerManagement == "docker") [
|
||||
lazydocker
|
||||
];
|
||||
};
|
||||
programs.virt-manager.enable = true;
|
||||
# environment.systemPackages = with pkgs;[
|
||||
# docker-compose
|
||||
# # podman-compose
|
||||
# podman-tui
|
||||
# podman-desktop
|
||||
# ];
|
||||
}
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
{
|
||||
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]
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11?shallow=1";
|
||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable?shallow=1"; # use by inputs.nixpkgs-unstable.legacyPackages."${pkgs.stdenv.hostPlatform.system}".[package name]
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-25.05?shallow=1";
|
||||
url = "github:nix-community/home-manager/release-25.11?shallow=1";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
@@ -13,25 +13,20 @@
|
||||
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 = {
|
||||
url = "github:numtide/system-manager?shallow=1";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
nix-system-graphics = {
|
||||
url = "github:soupglasses/nix-system-graphics?shallow=1";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
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,25 +35,12 @@
|
||||
};
|
||||
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; };
|
||||
modules = [
|
||||
nix-index-database.homeModules.nix-index
|
||||
./devices/deck/home.nix
|
||||
./home.nix
|
||||
];
|
||||
};
|
||||
systemConfigs.deck = system-manager.lib.makeSystemConfig {
|
||||
@@ -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;
|
||||
|
||||
114
flake.lock → devices/starlite/flake.lock
generated
114
flake.lock → devices/starlite/flake.lock
generated
@@ -7,11 +7,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758287904,
|
||||
"narHash": "sha256-IGmaEf3Do8o5Cwp1kXBN1wQmZwQN3NLfq5t4nHtVtcU=",
|
||||
"lastModified": 1760701190,
|
||||
"narHash": "sha256-y7UhnWlER8r776JsySqsbTUh2Txf7K30smfHlqdaIQw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "disko",
|
||||
"rev": "67ff9807dd148e704baadbd4fd783b54282ca627",
|
||||
"rev": "3a9450b26e69dcb6f8de6e2b07b3fc1c288d85f5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -20,24 +20,6 @@
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -66,11 +48,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1760241904,
|
||||
"narHash": "sha256-OD7QnaGEVNdukYEbJbUNWPsvnDrpbZOZxVIk6Pt9Jhw=",
|
||||
"lastModified": 1760846226,
|
||||
"narHash": "sha256-xmU8kAsRprJiTGBTaGrwmjBP3AMA9ltlrxHKFuy5JWc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-index-database",
|
||||
"rev": "c9f5ea45f25652ec2f771f9426ccacb21cbbaeaa",
|
||||
"rev": "5024e1901239a76b7bf94a4cd27f3507e639d49e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -79,37 +61,16 @@
|
||||
"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",
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1760320782,
|
||||
"narHash": "sha256-1ycwVgQbDxEc4/zf8OxvnwJJwZ4wNIqgigOv/R/KdW8=",
|
||||
"lastModified": 1761098495,
|
||||
"narHash": "sha256-aE2Vp0Q/Ra95sHk/YgQI6z9PvqPttgcIVUk3uSOWj9g=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-vscode-extensions",
|
||||
"rev": "b227991f119ccaf404e9236d527c1d0e7412fe95",
|
||||
"rev": "bd4690e402591e99a091dcd49663d3d6c9bf0ada",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -120,11 +81,11 @@
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"locked": {
|
||||
"lastModified": 1760106635,
|
||||
"narHash": "sha256-2GoxVaKWTHBxRoeUYSjv0AfSOx4qw5CWSFz2b+VolKU=",
|
||||
"lastModified": 1760958188,
|
||||
"narHash": "sha256-2m1S4jl+GEDtlt2QqeHil8Ny456dcGSKJAM7q3j/BFU=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "9ed85f8afebf2b7478f25db0a98d0e782c0ed903",
|
||||
"rev": "d6645c340ef7d821602fd2cd199e8d1eed10afbc",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -152,11 +113,11 @@
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1760284886,
|
||||
"narHash": "sha256-TK9Kr0BYBQ/1P5kAsnNQhmWWKgmZXwUQr4ZMjCzWf2c=",
|
||||
"lastModified": 1760878510,
|
||||
"narHash": "sha256-K5Osef2qexezUfs0alLvZ7nQFTGS9DL2oTVsIXsqLgs=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "cf3f5c4def3c7b5f1fc012b3d839575dbe552d43",
|
||||
"rev": "5e2a59a5b1a82f89f2c7e598302a9cacebb72a67",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -168,11 +129,11 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1760139962,
|
||||
"narHash": "sha256-4xggC56Rub3WInz5eD7EZWXuLXpNvJiUPahGtMkwtuc=",
|
||||
"lastModified": 1760862643,
|
||||
"narHash": "sha256-PXwG0TM7Ek87DNx4LbGWuD93PbFeKAJs4FfALtp7Wo0=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "7e297ddff44a3cc93673bb38d0374df8d0ad73e4",
|
||||
"rev": "33c6dca0c0cb31d6addcd34e90a63ad61826b28c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -187,47 +148,10 @@
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
"nixpkgs-unstable": "nixpkgs-unstable"
|
||||
}
|
||||
}
|
||||
},
|
||||
35
devices/starlite/flake.nix
Normal file
35
devices/starlite/flake.nix
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11?shallow=1";
|
||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable?shallow=1"; # use by inputs.nixpkgs-unstable.legacyPackages."${pkgs.stdenv.hostPlatform.system}".[package name]
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-25.11?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
|
||||
./configuration.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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";
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
../../configuration/modules/virtualisation.nix
|
||||
../../configuration/modules/gaming.nix
|
||||
../../configuration/modules/kde.nix
|
||||
../../configuration/modules/i18n.nix
|
||||
];
|
||||
|
||||
networking.hostName = "tuxedo"; # Define your hostname.
|
||||
@@ -32,7 +33,9 @@
|
||||
"ntsync"
|
||||
];
|
||||
|
||||
services.hardware.openrgb.enable = true;
|
||||
# services.hardware.openrgb.enable = true;
|
||||
|
||||
virtualisation.containerManagement = "docker";
|
||||
|
||||
fileSystems."/mnt/HDD2" = {
|
||||
fsType = "ext4";
|
||||
@@ -64,9 +67,6 @@
|
||||
environment.systemPackages = with pkgs;[
|
||||
distrobox
|
||||
gpu-screen-recorder-gtk
|
||||
|
||||
inputs.nixpkgs-unstable.legacyPackages."${pkgs.system}".lsfg-vk
|
||||
inputs.nixpkgs-unstable.legacyPackages."${pkgs.system}".lsfg-vk-ui
|
||||
];
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
@@ -80,6 +80,7 @@
|
||||
"podman"
|
||||
"cdrom"
|
||||
"wireshark"
|
||||
"kvm" # for android studio
|
||||
]; # Enable ‘sudo’ for the user.
|
||||
linger = true;
|
||||
};
|
||||
|
||||
143
devices/tuxedo/flake.lock
generated
Normal file
143
devices/tuxedo/flake.lock
generated
Normal file
@@ -0,0 +1,143 @@
|
||||
{
|
||||
"nodes": {
|
||||
"disko": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1764110879,
|
||||
"narHash": "sha256-xanUzIb0tf3kJ+PoOFmXEXV1jM3PjkDT/TQ5DYeNYRc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "disko",
|
||||
"rev": "aecba248f9a7d68c5d1ed15de2d1c8a4c994a3c5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "disko",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1764177491,
|
||||
"narHash": "sha256-dhX2abFWxeXab3Aad4Pg1xGtn9W84/qetNXfmYUwktw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "2217780c39169a9c77915200137550c2ef0fa974",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-25.11",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-index-database": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1763870992,
|
||||
"narHash": "sha256-NPyc76Wxmv/vAsXJ8F+/8fXECHYcv2YGSqdiSHp/F/A=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-index-database",
|
||||
"rev": "d7423982c7a26586aa237d130b14c8b302c7a367",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-index-database",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-vscode-extensions": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1764208554,
|
||||
"narHash": "sha256-9cHI5OyIcTuaWYrgq3ng7W0q+wgX8II2fkqCHNot5jY=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-vscode-extensions",
|
||||
"rev": "8cd52edf9dea91d1610c50b494dc20636b61b862",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-vscode-extensions",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1759770925,
|
||||
"narHash": "sha256-CZwkCtzTNclqlhuwDsVtGoRumTpqCUK0xSnFIMgd8ls=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "674c2b09c59a220204350ced584cadaacee30038",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "674c2b09c59a220204350ced584cadaacee30038",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1763966396,
|
||||
"narHash": "sha256-6eeL1YPcY1MV3DDStIDIdy/zZCDKgHdkCmsrLJFiZf0=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5ae3b07d8d6527c42f17c876e404993199144b6a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1764020296,
|
||||
"narHash": "sha256-6zddwDs2n+n01l+1TG6PlyokDdXzu/oBmEejcH5L5+A=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a320ce8e6e2cc6b4397eef214d202a50a4583829",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-25.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"disko": "disko",
|
||||
"home-manager": "home-manager",
|
||||
"nix-index-database": "nix-index-database",
|
||||
"nix-vscode-extensions": "nix-vscode-extensions",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
33
devices/tuxedo/flake.nix
Normal file
33
devices/tuxedo/flake.nix
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11?shallow=1";
|
||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable?shallow=1"; # use by inputs.nixpkgs-unstable.legacyPackages."${pkgs.stdenv.hostPlatform.system}".[package name]
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-25.11?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
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, config, ... }:
|
||||
{ pkgs, config, inputs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
@@ -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;
|
||||
|
||||
@@ -34,15 +34,18 @@
|
||||
teamspeak6-client
|
||||
|
||||
# media
|
||||
jellyfin-media-player
|
||||
# TODO: disabled due to qt5-web-engine vulnerable https://github.com/NixOS/nixpkgs/pull/435067
|
||||
# jellyfin-media-player
|
||||
haruna
|
||||
|
||||
# misc
|
||||
electrum
|
||||
syncthing
|
||||
# TODO: uncomment when ecdsa is updated
|
||||
# https://github.com/NixOS/nixpkgs/pull/456881
|
||||
# electrum
|
||||
dbeaver-bin
|
||||
ruffle
|
||||
popsicle
|
||||
mkvtoolnix
|
||||
|
||||
# for headset tune
|
||||
headsetcontrol
|
||||
@@ -70,17 +73,13 @@
|
||||
};
|
||||
};
|
||||
|
||||
mangohud = {
|
||||
enable = true;
|
||||
topgrade = {
|
||||
settings = {
|
||||
preset = 1;
|
||||
misc = {
|
||||
ignore_failures = [ "containers" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
kodi = {
|
||||
enable = true;
|
||||
package = pkgs.kodi.withPackages (exts: [ exts.pvr-iptvsimple ]);
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user = {
|
||||
|
||||
@@ -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)"
|
||||
|
||||
@@ -51,10 +51,14 @@ with lib;
|
||||
enableFishIntegration = true;
|
||||
};
|
||||
|
||||
delta = {
|
||||
enable = true;
|
||||
enableGitIntegration = true;
|
||||
};
|
||||
|
||||
git = {
|
||||
enable = true;
|
||||
delta.enable = true;
|
||||
extraConfig = {
|
||||
settings = {
|
||||
credential = {
|
||||
helper = [ "cache --timeout 21600" "${pkgs.git-credential-manager}/bin/git-credential-manager" "${pkgs.git-credential-oauth}/bin/git-credential-oauth" ];
|
||||
credentialStore = "secretservice";
|
||||
@@ -174,6 +178,24 @@ with lib;
|
||||
settings = mkMerge [{
|
||||
misc = {
|
||||
assume_yes = true;
|
||||
disable = [
|
||||
"android_studio"
|
||||
"jetbrains_aqua"
|
||||
"jetbrains_clion"
|
||||
"jetbrains_datagrip"
|
||||
"jetbrains_dataspell"
|
||||
"jetbrains_gateway"
|
||||
"jetbrains_goland"
|
||||
"jetbrains_idea"
|
||||
"jetbrains_mps"
|
||||
"jetbrains_phpstorm"
|
||||
"jetbrains_pycharm"
|
||||
"jetbrains_rider"
|
||||
"jetbrains_rubymine"
|
||||
"jetbrains_rustrover"
|
||||
"jetbrains_toolbox"
|
||||
"jetbrains_webstorm"
|
||||
];
|
||||
};
|
||||
}
|
||||
(mkIf (nixUpdateLocation != null) {
|
||||
@@ -188,11 +210,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";
|
||||
};
|
||||
})];
|
||||
};
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, inputs, lib, ... }:
|
||||
{ pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
@@ -9,14 +9,17 @@
|
||||
home.packages = with pkgs;[
|
||||
# general
|
||||
thunderbird
|
||||
keepassxc
|
||||
qbittorrent
|
||||
libreoffice-qt
|
||||
inputs.nixpkgs-unstable.legacyPackages."${pkgs.system}".joplin-desktop
|
||||
# 25.11 Can move to stable when https://github.com/NixOS/nixpkgs/pull/460058 gets backported
|
||||
joplin-desktop
|
||||
|
||||
# comms
|
||||
teamspeak_client
|
||||
# TODO: disabled due to qt5-web-engine vulnerable https://github.com/NixOS/nixpkgs/pull/435067
|
||||
# teamspeak3
|
||||
teamspeak6-client
|
||||
discord
|
||||
vesktop
|
||||
|
||||
# media
|
||||
strawberry
|
||||
@@ -32,6 +35,12 @@
|
||||
};
|
||||
};
|
||||
|
||||
xdg.configFile."capacitor/sysconfig.json".text = lib.generators.toJSON { } {
|
||||
machine = "00000000-0000-0000-0000-000000000000";
|
||||
signup = false;
|
||||
telemetry = false;
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
NIXOS_OZONE_WL = "1";
|
||||
};
|
||||
@@ -49,5 +58,11 @@
|
||||
enable = true;
|
||||
package = pkgs.brave;
|
||||
};
|
||||
|
||||
keepassxc = {
|
||||
enable = true;
|
||||
# add in 25.12?
|
||||
# autostart = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
36
home-manager/development/android.nix
Normal file
36
home-manager/development/android.nix
Normal file
@@ -0,0 +1,36 @@
|
||||
# { pkgs, ... }:
|
||||
|
||||
# let
|
||||
# androidEnv = pkgs.androidenv.override { licenseAccepted = true; };
|
||||
# androidComp = (
|
||||
# androidEnv.composeAndroidPackages {
|
||||
# toolsVersion = null;
|
||||
# includeEmulator = true;
|
||||
# includeNDK = true;
|
||||
# platformVersions = [
|
||||
# "latest"
|
||||
# "25"
|
||||
# ];
|
||||
# includeSystemImages = true;
|
||||
# systemImageTypes = [
|
||||
# "default"
|
||||
# ];
|
||||
# abiVersions = [
|
||||
# "x86_64"
|
||||
# "armeabi-v7a"
|
||||
# "arm64-v8a"
|
||||
# ];
|
||||
# }
|
||||
# );
|
||||
# android-studio = (pkgs.android-studio.withSdk androidComp.androidsdk);
|
||||
# in
|
||||
# {
|
||||
# home.sessionVariables = {
|
||||
# ANDROID_HOME = "${androidComp.androidsdk}/libexec/android-sdk";
|
||||
# ANDROID_SDK_ROOT = "${androidComp.androidsdk}/libexec/android-sdk";
|
||||
# ANDROID_NDK_ROOT = "${androidComp.androidsdk}/libexec/android-sdk/ndk-bundle";
|
||||
# };
|
||||
# home.packages = [
|
||||
# pkgs.android-studio
|
||||
# ];
|
||||
# }
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
{
|
||||
imports = [
|
||||
# ./android.nix
|
||||
./dotnet.nix
|
||||
./games.nix
|
||||
./helix.nix
|
||||
|
||||
@@ -3,6 +3,26 @@
|
||||
let
|
||||
openvsx = inputs.nix-vscode-extensions.extensions.x86_64-linux.open-vsx;
|
||||
vscode-marketplace = inputs.nix-vscode-extensions.extensions.x86_64-linux.vscode-marketplace;
|
||||
resharper-code-version = "0.0.15";
|
||||
|
||||
resharper-code = (pkgs.vscode-utils.buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "resharper-code";
|
||||
version = resharper-code-version;
|
||||
publisher = "jetbrains";
|
||||
};
|
||||
vsix = builtins.fetchurl {
|
||||
name = "jetbrains.resharper-code.zip";
|
||||
url = "https://download.jetbrains.com/product?code=VSCRS&latest&distribution=linuxX64&type=eap&version=${resharper-code-version}";
|
||||
sha256 = "sha256:eef138c4fdd035031577f4c483c2155c4dd5ce91cfd1b9a2489c138aeb6cb99e";
|
||||
};
|
||||
}).overrideAttrs (old: {
|
||||
nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.makeBinaryWrapper ];
|
||||
postFixup = ''
|
||||
wrapProgram $out/share/vscode/extensions/jetbrains.resharper-code/resharper/linux-x64/JetBrains.VsCode.Backend \
|
||||
--prefix LD_LIBRARY_PATH : ${pkgs.dotnet-sdk.icu}/lib
|
||||
'';
|
||||
});
|
||||
in
|
||||
{
|
||||
home.packages = with pkgs;[
|
||||
@@ -17,7 +37,9 @@ in
|
||||
profiles.default = {
|
||||
enableUpdateCheck = false;
|
||||
enableExtensionUpdateCheck = false;
|
||||
extensions = (with openvsx;[
|
||||
extensions = [
|
||||
resharper-code # Requires DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
|
||||
] ++ (with openvsx;[
|
||||
biomejs.biome
|
||||
mkhl.direnv
|
||||
dracula-theme.theme-dracula
|
||||
|
||||
@@ -1,66 +1,104 @@
|
||||
{ tablet }:
|
||||
{ tablet ? false }:
|
||||
{
|
||||
settings = {
|
||||
# data privacy
|
||||
"browser.discovery.enabled" = false;
|
||||
"dom.security.https_only_mode" = true;
|
||||
|
||||
# no autofill
|
||||
"extensions.formautofill.addresses.enabled" = false;
|
||||
"extensions.formautofill.creditCards.enabled" = false;
|
||||
|
||||
# stop fonts
|
||||
"browser.display.use_document_fonts" = 0;
|
||||
|
||||
# dont show about:config warning
|
||||
"browser.aboutConfig.showWarning" = false;
|
||||
|
||||
# dont offer to save passwords
|
||||
"signon.rememberSignons" = false;
|
||||
|
||||
# home page
|
||||
"browser.startup.homepage" = "about:blank";
|
||||
|
||||
# blank new tab
|
||||
"browser.newtabpage.enabled" = false;
|
||||
|
||||
# compact density
|
||||
"browser.uidensity" = if tablet then 2 else 1;
|
||||
# dont draw tabs in titlebar
|
||||
"browser.tabs.drawInTitlebar" = false;
|
||||
# autoscroll middleclick
|
||||
"general.autoScroll" = true;
|
||||
# dont paste on middlemouse
|
||||
"middlemouse.paste" = false;
|
||||
|
||||
# userChrome
|
||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||
|
||||
# dont draw tabs in titlebar
|
||||
"browser.tabs.drawInTitlebar" = false;
|
||||
|
||||
# autoscroll middleclick
|
||||
"general.autoScroll" = true;
|
||||
|
||||
# dont paste on middlemouse
|
||||
"middlemouse.paste" = false;
|
||||
|
||||
# menu bar
|
||||
"ui.key.menuAccessKeyFocuses" = false;
|
||||
|
||||
# use desktop file picker
|
||||
"widget.use-xdg-desktop-portal.file-picker" = 1;
|
||||
|
||||
# sidebar at right
|
||||
"sidebar.position_start" = false;
|
||||
|
||||
# new sidebar
|
||||
"sidebar.revamp" = if tablet then true else false;
|
||||
"sidebar.verticalTabs" = if tablet then true else false;
|
||||
"sidebar.revamp" = true;
|
||||
"sidebar.verticalTabs" = true;
|
||||
"browser.tabs.hoverPreview.enabled" = false;
|
||||
"browser.tabs.hoverPreview.showThumbnails" = false;
|
||||
"browser.tabs.groups.hoverPreview.enabled" = false;
|
||||
|
||||
# disable pocket
|
||||
"extensions.pocket.enabled" = false;
|
||||
|
||||
# browser links should be new tab
|
||||
"browser.link.open_newwindow.restriction" = 0;
|
||||
# allow custom search enginers
|
||||
|
||||
# allow custom search engines
|
||||
"browser.urlbar.update2.engineAliasRefresh" = true;
|
||||
# do not retrieve suggestions as you type https://blog.mozilla.org/en/firefox/better-search-suggestions/
|
||||
"browser.urlbar.quicksuggest.online.enabled" = false;
|
||||
# do not trim http
|
||||
"browser.urlbar.trimURLs" = false;
|
||||
|
||||
# force enable hardware accel
|
||||
"media.hardware-video-decoding.force-enabled" = true;
|
||||
|
||||
# vaapi
|
||||
"media.ffmpeg.vaapi.enabled" = true;
|
||||
# downloads ask to save or open
|
||||
|
||||
# downloads
|
||||
# ask to save or open
|
||||
"browser.download.always_ask_before_handling_new_types" = true;
|
||||
# downloads always ask download location
|
||||
# always ask download location
|
||||
"browser.download.useDownloadDir" = false;
|
||||
# download to tmp dir, NOT Downloads (seriously Mozilla?)
|
||||
"browser.download.start_downloads_in_tmp_dir" = true;
|
||||
|
||||
# widevine
|
||||
"browser.eme.ui.enabled" = false;
|
||||
"media.eme.enabled" = false;
|
||||
|
||||
# media control keys
|
||||
"media.hardwaremediakeys.enabled" = false;
|
||||
|
||||
# restore tabs on startup
|
||||
"browser.startup.page" = 3;
|
||||
# do not trim http
|
||||
"browser.urlbar.trimURLs" = false;
|
||||
|
||||
# open in new tabs
|
||||
"browser.tabs.loadBookmarksInTabs" = true;
|
||||
|
||||
# AI
|
||||
"browser.ml.chat.page" = false;
|
||||
# AI tab groups
|
||||
"browser.tabs.groups.smart.userEnabled" = false;
|
||||
|
||||
/* Arkenfox Begin */
|
||||
|
||||
@@ -139,16 +177,19 @@
|
||||
"browser.contentblocking.category" = "strict";
|
||||
};
|
||||
userChrome = ''
|
||||
/* Hide tab bar in FF Quantum */
|
||||
@-moz-document url(chrome://browser/content/browser.xul), url(chrome://browser/content/browser.xhtml) {
|
||||
#TabsToolbar {
|
||||
visibility: collapse !important;
|
||||
margin-bottom: 21px !important;
|
||||
}
|
||||
/* Remove old sidebar header */
|
||||
#sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"] #sidebar-header {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"] #sidebar-header {
|
||||
visibility: collapse !important;
|
||||
}
|
||||
/* Remove sidebar revamp header */
|
||||
#sidebar-panel-header {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Allow complete collapse of sidebar revamp */
|
||||
#sidebar-main:not([sidebar-launcher-expanded]) {
|
||||
width: 0;
|
||||
}
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -1,32 +1,60 @@
|
||||
{ pkgs, inputs, ... }:
|
||||
|
||||
let
|
||||
pkgs_unstable = inputs.nixpkgs-unstable.legacyPackages."${pkgs.system}";
|
||||
pkgs_unstable = inputs.nixpkgs-unstable.legacyPackages."${pkgs.stdenv.hostPlatform.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 "$@"
|
||||
'';
|
||||
});
|
||||
|
||||
# proton with ja_JP
|
||||
umu-ja = (pkgs.writeShellApplication {
|
||||
name = "umu-ja";
|
||||
runtimeInputs = [ umu-wrapped ];
|
||||
text = "LANG=ja_JP.utf8 umu-run \"$@\"";
|
||||
});
|
||||
|
||||
# wine with ja_JP
|
||||
wine-ja = (pkgs.writeShellApplication {
|
||||
name = "wine-ja";
|
||||
runtimeInputs = [ wine-wrapped ];
|
||||
text = "LANG=ja_JP.utf8 wine \"$@\"";
|
||||
});
|
||||
in
|
||||
{
|
||||
home.packages = with pkgs;[
|
||||
# Wine / Proton
|
||||
pkgs_unstable.wineWowPackages.stagingFull
|
||||
# Wine / Proton
|
||||
umu-wrapped
|
||||
umu-ja
|
||||
wine-wrapped
|
||||
wine-ja
|
||||
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
|
||||
# ];
|
||||
# })
|
||||
|
||||
bottles
|
||||
(heroic.override {
|
||||
extraPkgs = pkgs: [
|
||||
pkgs.umu-launcher
|
||||
pkgs.gamescope
|
||||
pkgs.mangohud
|
||||
];
|
||||
})
|
||||
|
||||
@@ -34,42 +62,25 @@ 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 = {
|
||||
mangohud = {
|
||||
enable = true;
|
||||
enableSessionWide = true;
|
||||
settings = {
|
||||
preset = 1;
|
||||
};
|
||||
settingsPerApplication = {
|
||||
mpv = {
|
||||
no_display = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# programs.lutris = {
|
||||
# enable = true;
|
||||
# extraPackages = with pkgs; [ mangohud winetricks gamescope gamemode umu-launcher ];
|
||||
# protonPackages = [ pkgs.proton-ge-bin ];
|
||||
# winePackages = [ pkgs.wineWowPackages.staging ];
|
||||
# };
|
||||
}
|
||||
|
||||
@@ -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)"
|
||||
|
||||
Reference in New Issue
Block a user