Compare commits
160 Commits
e0d0619dcb
...
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 | |||
| 89a15a63e8 | |||
| 66e7e4fdc0 | |||
| f66ef91e85 | |||
| d5d9396b6d | |||
| fb5b7abbd4 | |||
| 4684925c97 | |||
| c4b4e682b1 | |||
| 950fe60383 | |||
| 6c69dab6fa | |||
| 8a3698ce15 | |||
| 869c6b4707 | |||
| 25158bedf1 | |||
| 363f42c829 | |||
| 38f691cacd | |||
| e592ca5e0a | |||
| bf6f379a4f | |||
| 6378246c2c | |||
| 300c36245e | |||
| 9ef91f7ab5 | |||
| 249afa0b65 | |||
| 730b115bf8 | |||
| 499900014e | |||
| 80c13f0ee3 | |||
| 7049373384 | |||
| 12cab79679 | |||
| cf9b2a0cdb | |||
| 6a45fca8d5 | |||
| db9826339f | |||
| 00b67e55bc | |||
| 3d037d2dbd | |||
| 7adcf7baa5 | |||
| ac5216413e | |||
| 93cee2d49a | |||
| 0a9037abaa | |||
| 49bca53aa7 | |||
| 3fe1471c0f | |||
| 226188b263 | |||
| d3bf4cce17 | |||
| a8480384e7 | |||
| a60c7b8ca5 | |||
| a3073c0895 | |||
| 8b472eae63 | |||
| 190c58639f | |||
| 03efdeddc5 | |||
| edd7dbccfa | |||
| 41dc3f8112 | |||
| e7233faed1 | |||
| dd4ca5a69e | |||
| cd1aac83b2 | |||
| 20d5a43dd7 | |||
| 6ecc69eb2e | |||
| beac80516d | |||
| d6d6603df6 | |||
| 4e6e74b2f8 | |||
| 03e1cf00a1 | |||
| ab7b90bcb2 | |||
| e230dea138 | |||
| 19fa7c2fc1 | |||
| c5d34c86b8 | |||
| 3b557449c9 | |||
| 074962e7a9 | |||
| e4b45eeb4a | |||
| 36264583b2 | |||
| c2dd8138aa | |||
| 7d0c3d2751 | |||
| 7a16c9dc40 | |||
| b7ada15fb9 | |||
| bd5507a366 | |||
| d8538369ef | |||
| 8233861699 | |||
| b9e7e22ddd | |||
| c08da164ac | |||
| 2fbd529e59 | |||
| 0dec323af5 | |||
| 27b3ec6a46 | |||
| 4c06e18113 | |||
| 617cf08fc8 | |||
| 761000913a | |||
| e5503bbf58 | |||
| a997dee6ba | |||
| 739518cdac | |||
| 72ae66c403 | |||
| fe9531c732 | |||
| a1f96ee51d | |||
| 7b4c789cae | |||
| 52d33c1204 | |||
| ed349bd4e6 | |||
| 55c0df89fd | |||
| 6981f2cee2 | |||
| 5a63b14c5b | |||
| 730bfc0d28 | |||
| 56467e6f40 | |||
| 9fed42aba1 | |||
| c2472925bf | |||
| e192b9401d | |||
| 60b79b65b5 | |||
| 55a3afc085 | |||
| 7acbaa0a6d | |||
| 347cc444b9 | |||
| 5159cf50c9 | |||
| 2c1dfb7eb8 | |||
| 2b1fa4df5b | |||
| f72b5ef8a8 | |||
| c1ad79003d | |||
| f9e672cb8f | |||
| ae21fe1426 | |||
| 0e6929eeed | |||
| 7767ff77ba | |||
| a04a6b81f1 | |||
| 57901ae14e | |||
| 73325a848c | |||
| 7da24cbbfb | |||
| fc60f584cf | |||
| 95608f2bfa | |||
| 64eae63335 | |||
| f34bf9c853 | |||
| ce675dd168 | |||
| aa9a9df476 | |||
| 32355dd7ee | |||
| 218f8fa0e7 | |||
| 3466a8aba0 | |||
| 72cbcd5551 | |||
| 340a2ab92f | |||
| 6046f90c81 | |||
| 3221c78b23 | |||
| ee264ae42d | |||
| 8f5e6d6c10 | |||
| f83178aa06 | |||
| 9c35d324b9 | |||
| e8ee2672c9 | |||
| 82cbe88da2 | |||
| 3aa4557971 | |||
| 18c9a5d628 | |||
| dbbfc3d8ff | |||
| 769dc917b5 | |||
| 5e771a9c2c | |||
| 632a1f13c5 |
13
configuration/base/default.nix
Normal file
13
configuration/base/default.nix
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./fonts.nix
|
||||||
|
./location-time.nix
|
||||||
|
./networking.nix
|
||||||
|
./nix-settings.nix
|
||||||
|
./oomd.nix
|
||||||
|
./pipewire.nix
|
||||||
|
./programs.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -1,12 +1,15 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
fonts.enableDefaultPackages = true;
|
fonts = {
|
||||||
fonts.packages = with pkgs; [
|
enableDefaultPackages = true;
|
||||||
|
fontconfig.useEmbeddedBitmaps = true;
|
||||||
|
packages = with pkgs; [
|
||||||
noto-fonts
|
noto-fonts
|
||||||
noto-fonts-cjk-sans
|
noto-fonts-cjk-sans
|
||||||
noto-fonts-cjk-serif
|
noto-fonts-cjk-serif
|
||||||
];
|
];
|
||||||
|
};
|
||||||
|
|
||||||
# Select internationalisation properties.
|
# Select internationalisation properties.
|
||||||
i18n = {
|
i18n = {
|
||||||
|
|||||||
@@ -1,43 +0,0 @@
|
|||||||
{ pkgs, lib, ... }:
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
# Configure keymap in X11
|
|
||||||
# services.xserver.xkb.layout = "us";
|
|
||||||
# services.xserver.xkb.options = "eurosign:e,caps:escape";
|
|
||||||
|
|
||||||
services.displayManager.sddm = {
|
|
||||||
enable = true;
|
|
||||||
wayland.enable = true;
|
|
||||||
settings = {
|
|
||||||
Wayland = {
|
|
||||||
CompositorCommand = kwin;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
services.desktopManager.plasma6.enable = true;
|
|
||||||
|
|
||||||
# For cursor in steam?
|
|
||||||
xdg.icons.fallbackCursorThemes = [ "breeze_cursors" ];
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs;
|
|
||||||
[ maliit-keyboard ] ++ (with kdePackages; [
|
|
||||||
sddm-kcm
|
|
||||||
plasma-disks
|
|
||||||
partitionmanager
|
|
||||||
filelight
|
|
||||||
ffmpegthumbs
|
|
||||||
kcalc
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
14
configuration/base/location-time.nix
Normal file
14
configuration/base/location-time.nix
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# Set your time zone.
|
||||||
|
# time.timeZone = "Europe/London";
|
||||||
|
services.automatic-timezoned.enable = true;
|
||||||
|
services.chrony = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
services.geoclue2 = {
|
||||||
|
enable = true;
|
||||||
|
geoProviderUrl = "https://api.beacondb.net/v1/geolocate";
|
||||||
|
};
|
||||||
|
}
|
||||||
41
configuration/base/networking.nix
Normal file
41
configuration/base/networking.nix
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# networking.hostName = "nixos"; # Define your hostname.
|
||||||
|
# Pick only one of the below networking options.
|
||||||
|
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||||
|
networking = {
|
||||||
|
networkmanager = {
|
||||||
|
# Easiest to use and most distros use this by default.
|
||||||
|
enable = true;
|
||||||
|
wifi.powersave = false;
|
||||||
|
};
|
||||||
|
firewall = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Configure network proxy if necessary
|
||||||
|
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||||
|
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||||
|
|
||||||
|
# Enable CUPS to print documents.
|
||||||
|
# services.printing.enable = true;
|
||||||
|
|
||||||
|
# Open ports in the firewall.
|
||||||
|
# 443 Helldivers crashes internet otherwise
|
||||||
|
# networking.firewall.allowedTCPPorts = [ 443 ];
|
||||||
|
# networking.firewall.allowedUDPPorts = [ 443 ];
|
||||||
|
# Or disable the firewall altogether.
|
||||||
|
# networking.firewall.enable = false;
|
||||||
|
|
||||||
|
# Block list
|
||||||
|
# networking.stevenblack.enable = true;
|
||||||
|
|
||||||
|
# services.resolved.enable = true;
|
||||||
|
|
||||||
|
services.mullvad-vpn = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.mullvad-vpn;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
{ ... }:
|
{ inputs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
@@ -6,11 +6,13 @@
|
|||||||
nix.settings.auto-optimise-store = true;
|
nix.settings.auto-optimise-store = true;
|
||||||
nix.gc.automatic = true;
|
nix.gc.automatic = true;
|
||||||
nix.gc.options = "--delete-older-than 7d";
|
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 = {
|
programs.nix-ld = {
|
||||||
# enable = true;
|
enable = true;
|
||||||
# # libraries = pkgs.steam-run.fhsenv.args.multiPkgs pkgs;
|
# libraries = pkgs.steam-run.fhsenv.args.multiPkgs pkgs;
|
||||||
# libraries = pkgs.appimageTools.defaultFhsEnvArgs.targetPkgs pkgs;
|
# libraries = pkgs.appimageTools.defaultFhsEnvArgs.targetPkgs pkgs;
|
||||||
# };
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
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;
|
||||||
|
};
|
||||||
|
}
|
||||||
35
configuration/base/pipewire.nix
Normal file
35
configuration/base/pipewire.nix
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# Enable sound.
|
||||||
|
# hardware.pulseaudio.enable = true;
|
||||||
|
# OR
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
extraConfig.pipewire-pulse = {
|
||||||
|
"10-prevent-agc" = {
|
||||||
|
"pulse.rules" = [
|
||||||
|
{
|
||||||
|
matches = [
|
||||||
|
{ "application.process.binary" = "chrome"; }
|
||||||
|
{ "application.process.binary" = "Discord"; }
|
||||||
|
{ "application.process.binary" = "teams"; }
|
||||||
|
{ "application.process.binary" = "electron"; }
|
||||||
|
{ "application.process.binary" = "skypeforlinux"; }
|
||||||
|
{ "application.process.binary" = "telegram-desktop"; }
|
||||||
|
{ "application.process.binary" = "vivaldi"; }
|
||||||
|
{ "application.process.binary" = "chromium"; }
|
||||||
|
{ "application.process.binary" = "zoom"; }
|
||||||
|
];
|
||||||
|
actions = {
|
||||||
|
quirks = [
|
||||||
|
"block-source-volume"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
37
configuration/base/programs.nix
Normal file
37
configuration/base/programs.nix
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
security.sudo-rs.enable = true;
|
||||||
|
services.fwupd.enable = true;
|
||||||
|
services.flatpak.enable = true;
|
||||||
|
programs.bash.blesh.enable = true;
|
||||||
|
programs.fish.enable = true;
|
||||||
|
# List packages installed in system profile. To search, run:
|
||||||
|
# $ nix search wget
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
# utils
|
||||||
|
uutils-coreutils-noprefix
|
||||||
|
vim
|
||||||
|
curl
|
||||||
|
inetutils
|
||||||
|
dig
|
||||||
|
exfatprogs
|
||||||
|
|
||||||
|
rar
|
||||||
|
zstd
|
||||||
|
p7zip
|
||||||
|
busybox
|
||||||
|
|
||||||
|
libva-utils
|
||||||
|
smartmontools
|
||||||
|
appimage-run
|
||||||
|
|
||||||
|
# dicts
|
||||||
|
nuspell
|
||||||
|
hunspellDicts.en-gb-large
|
||||||
|
|
||||||
|
# For cursor in steam?
|
||||||
|
xsettingsd
|
||||||
|
xorg.xrdb
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -5,89 +5,24 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports = [ ./base ];
|
||||||
[
|
|
||||||
./base/nix-settings.nix
|
|
||||||
./base/fonts.nix
|
|
||||||
./base/kde.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
# Use the systemd-boot EFI boot loader.
|
||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
|
||||||
swapDevices = [{
|
|
||||||
device = "/var/lib/swapfile";
|
|
||||||
size = 16 * 1024;
|
|
||||||
}];
|
|
||||||
|
|
||||||
hardware.bluetooth.enable = true;
|
hardware.bluetooth.enable = true;
|
||||||
hardware.enableRedistributableFirmware = true;
|
hardware.enableRedistributableFirmware = true;
|
||||||
hardware.enableAllFirmware = true;
|
hardware.enableAllFirmware = true;
|
||||||
|
|
||||||
# networking.hostName = "nixos"; # Define your hostname.
|
# Disks / Swap / etc
|
||||||
# Pick only one of the below networking options.
|
# swapDevices = [{
|
||||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
# device = "/var/lib/swapfile";
|
||||||
networking.networkmanager = {
|
# size = 16 * 1024; # 16 GB
|
||||||
# Easiest to use and most distros use this by default.
|
# }];
|
||||||
enable = true;
|
zramSwap.enable = true; # Creates a zram block device and uses it as a swap device
|
||||||
wifi.powersave = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Set your time zone.
|
|
||||||
time.timeZone = "Europe/London";
|
|
||||||
|
|
||||||
# Configure network proxy if necessary
|
|
||||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
|
||||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
|
||||||
|
|
||||||
# Enable CUPS to print documents.
|
|
||||||
# services.printing.enable = true;
|
|
||||||
|
|
||||||
# Enable sound.
|
|
||||||
# hardware.pulseaudio.enable = true;
|
|
||||||
# OR
|
|
||||||
services.pipewire = {
|
|
||||||
enable = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.fstrim.enable = true;
|
services.fstrim.enable = true;
|
||||||
# services.resolved.enable = true;
|
|
||||||
services.mullvad-vpn = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.mullvad-vpn;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.fwupd.enable = true;
|
|
||||||
services.geoclue2 = {
|
|
||||||
enable = true;
|
|
||||||
geoProviderUrl = "https://api.beacondb.net/v1/geolocate";
|
|
||||||
};
|
|
||||||
services.flatpak.enable = true;
|
|
||||||
|
|
||||||
# List packages installed in system profile. To search, run:
|
|
||||||
# $ nix search wget
|
|
||||||
environment.systemPackages = with pkgs;
|
|
||||||
[
|
|
||||||
# utils
|
|
||||||
vim
|
|
||||||
curl
|
|
||||||
inetutils
|
|
||||||
rar
|
|
||||||
libva-utils
|
|
||||||
smartmontools
|
|
||||||
appimage-run
|
|
||||||
|
|
||||||
# dicts
|
|
||||||
nuspell
|
|
||||||
hunspellDicts.en-gb-large
|
|
||||||
|
|
||||||
# For cursor in steam?
|
|
||||||
xsettingsd
|
|
||||||
xorg.xrdb
|
|
||||||
];
|
|
||||||
|
|
||||||
# Some programs need SUID wrappers, can be configured further or are
|
# Some programs need SUID wrappers, can be configured further or are
|
||||||
# started in user sessions.
|
# started in user sessions.
|
||||||
@@ -102,16 +37,6 @@
|
|||||||
# Enable the OpenSSH daemon.
|
# Enable the OpenSSH daemon.
|
||||||
# services.openssh.enable = true;
|
# services.openssh.enable = true;
|
||||||
|
|
||||||
# Open ports in the firewall.
|
|
||||||
# 443 Helldivers crashes internet otherwise
|
|
||||||
# networking.firewall.allowedTCPPorts = [ 443 ];
|
|
||||||
# networking.firewall.allowedUDPPorts = [ 443 ];
|
|
||||||
# Or disable the firewall altogether.
|
|
||||||
# networking.firewall.enable = false;
|
|
||||||
|
|
||||||
# Block list
|
|
||||||
# networking.stevenblack.enable = true;
|
|
||||||
|
|
||||||
# Copy the NixOS configuration file and link it from the resulting system
|
# Copy the NixOS configuration file and link it from the resulting system
|
||||||
# (/run/current-system/configuration.nix). This is useful in case you
|
# (/run/current-system/configuration.nix). This is useful in case you
|
||||||
# accidentally delete configuration.nix.
|
# accidentally delete configuration.nix.
|
||||||
@@ -135,5 +60,4 @@
|
|||||||
#
|
#
|
||||||
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
|
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
|
||||||
system.stateVersion = "24.05"; # Did you read the comment?
|
system.stateVersion = "24.05"; # Did you read the comment?
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -4,18 +4,40 @@
|
|||||||
hardware.graphics.enable32Bit = true; # For 32 bit applications
|
hardware.graphics.enable32Bit = true; # For 32 bit applications
|
||||||
hardware.steam-hardware.enable = true;
|
hardware.steam-hardware.enable = true;
|
||||||
|
|
||||||
|
programs.gamemode.enable = true;
|
||||||
|
programs.gamescope = {
|
||||||
|
enable = true;
|
||||||
|
# capSysNice = true;
|
||||||
|
args = [
|
||||||
|
"-H 1080"
|
||||||
|
];
|
||||||
|
};
|
||||||
programs.steam = {
|
programs.steam = {
|
||||||
enable = true;
|
enable = true;
|
||||||
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
||||||
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
gamescopeSession.enable = true;
|
||||||
#gamescopeSession.enable = true;
|
|
||||||
protontricks.enable = true;
|
protontricks.enable = true;
|
||||||
extraCompatPackages = [ pkgs.proton-ge-bin ];
|
extraCompatPackages = [ pkgs.proton-ge-bin ];
|
||||||
|
package = pkgs.steam.override {
|
||||||
|
extraPkgs = pkgs': with pkgs'; [
|
||||||
|
xorg.libXcursor
|
||||||
|
xorg.libXi
|
||||||
|
xorg.libXinerama
|
||||||
|
xorg.libXScrnSaver
|
||||||
|
libpng
|
||||||
|
libpulseaudio
|
||||||
|
libvorbis
|
||||||
|
stdenv.cc.cc.lib # Provides libstdc++.so.6
|
||||||
|
libkrb5
|
||||||
|
keyutils
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
programs.gamemode.enable = true;
|
|
||||||
programs.gamescope.enable = true;
|
|
||||||
|
|
||||||
# ensure users who need access to this have `cdrom` as `extraGroups`
|
programs.cdemu.enable = true; # Remember to add users to the cdrom group for this to work
|
||||||
# Wait for https://github.com/NixOS/nixpkgs/pull/397358 to be in stable to reenable
|
|
||||||
programs.cdemu.enable = true;
|
environment.systemPackages = with pkgs;[
|
||||||
|
lsfg-vk
|
||||||
|
lsfg-vk-ui
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
27
configuration/modules/gnome.nix
Normal file
27
configuration/modules/gnome.nix
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
{ pkgs, config, lib, ... }:
|
||||||
|
with lib;
|
||||||
|
{
|
||||||
|
options.gnome.tablet = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
services.xserver.enable = true;
|
||||||
|
services.xserver.displayManager.gdm.enable = true;
|
||||||
|
services.xserver.desktopManager.gnome.enable = true;
|
||||||
|
|
||||||
|
# To disable installing GNOME's suite of applications
|
||||||
|
# and only be left with GNOME shell.
|
||||||
|
# services.gnome.core-apps.enable = false;
|
||||||
|
services.gnome.core-developer-tools.enable = false;
|
||||||
|
services.gnome.games.enable = false;
|
||||||
|
environment.gnome.excludePackages = with pkgs; [ gnome-tour gnome-user-docs ];
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs.gnomeExtensions; [
|
||||||
|
appindicator
|
||||||
|
] ++ optionals config.gnome.tablet [
|
||||||
|
touchup
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
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
|
||||||
|
];
|
||||||
|
}
|
||||||
29
configuration/modules/kde.nix
Normal file
29
configuration/modules/kde.nix
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.xserver.enable = true; # optional
|
||||||
|
|
||||||
|
# Configure keymap in X11
|
||||||
|
# services.xserver.xkb.layout = "us";
|
||||||
|
# services.xserver.xkb.options = "eurosign:e,caps:escape";
|
||||||
|
|
||||||
|
services.displayManager.sddm = {
|
||||||
|
enable = true;
|
||||||
|
wayland.enable = true;
|
||||||
|
};
|
||||||
|
services.desktopManager.plasma6.enable = true;
|
||||||
|
environment.plasma6.excludePackages = [ pkgs.kdePackages.discover ];
|
||||||
|
|
||||||
|
# For cursor in steam?
|
||||||
|
# xdg.icons.fallbackCursorThemes = [ "breeze_cursors" ];
|
||||||
|
|
||||||
|
programs.partition-manager.enable = true;
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs.kdePackages;[
|
||||||
|
sddm-kcm
|
||||||
|
plasma-disks
|
||||||
|
filelight
|
||||||
|
ffmpegthumbs
|
||||||
|
kcalc
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -1,21 +1,21 @@
|
|||||||
{ ... }:
|
{ ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
services.power-profiles-daemon.enable = false;
|
services.power-profiles-daemon.enable = true;
|
||||||
services.tlp = {
|
# services.tlp = {
|
||||||
enable = true;
|
# enable = true;
|
||||||
settings = {
|
# settings = {
|
||||||
RESTORE_DEVICE_STATE_ON_STARTUP = 1;
|
# RESTORE_DEVICE_STATE_ON_STARTUP = 1;
|
||||||
USB_AUTOSUSPEND = 0;
|
# USB_AUTOSUSPEND = 0;
|
||||||
PLATFORM_PROFILE_ON_AC = "performance";
|
# PLATFORM_PROFILE_ON_AC = "performance";
|
||||||
PLATFORM_PROFILE_ON_BAT = "low-power";
|
# PLATFORM_PROFILE_ON_BAT = "low-power";
|
||||||
CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
|
# CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
|
||||||
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
|
# CPU_ENERGY_PERF_POLICY_ON_BAT = "balance_power";
|
||||||
CPU_BOOST_ON_AC = 1;
|
# CPU_BOOST_ON_AC = 1;
|
||||||
CPU_BOOST_ON_BAT = 0;
|
# 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;
|
services.libinput.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,13 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, lib, config, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
{
|
{
|
||||||
|
options.virtualisation.containerManagement = mkOption {
|
||||||
|
type = types.enum [ "docker" "podman" ];
|
||||||
|
default = "docker";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
virtualisation = {
|
virtualisation = {
|
||||||
containers = {
|
containers = {
|
||||||
# Enable common container config files in /etc/containers
|
# Enable common container config files in /etc/containers
|
||||||
@@ -8,18 +15,39 @@
|
|||||||
};
|
};
|
||||||
libvirtd = {
|
libvirtd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
qemu.vhostUserPackages = [ pkgs.virtiofsd ];
|
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
|
# remember to add the necessary users to the docker group
|
||||||
docker = {
|
docker = {
|
||||||
enable = true;
|
enable = if (config.virtualisation.containerManagement == "docker") then true else false;
|
||||||
storageDriver = "btrfs";
|
storageDriver = "btrfs";
|
||||||
};
|
};
|
||||||
# waydroid = {
|
waydroid = {
|
||||||
# enable = true;
|
enable = true;
|
||||||
# };
|
package = pkgs.waydroid-nftables;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
programs.virt-manager.enable = true;
|
programs.virt-manager.enable = true;
|
||||||
# environment.systemPackages = with pkgs;[ podman-compose ];
|
|
||||||
|
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
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,28 +1,32 @@
|
|||||||
{
|
{
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11?shallow=1";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11?shallow=1";
|
||||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable?shallow=1";
|
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable?shallow=1"; # use by inputs.nixpkgs-unstable.legacyPackages."${pkgs.stdenv.hostPlatform.system}".[package name]
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master?shallow=1";
|
|
||||||
nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions?shallow=1";
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager/release-24.11?shallow=1";
|
url = "github:nix-community/home-manager/release-25.11?shallow=1";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
disko = {
|
|
||||||
url = "github:nix-community/disko?shallow=1";
|
nix-index-database = {
|
||||||
|
url = "github:nix-community/nix-index-database?shallow=1";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions?shallow=1";
|
||||||
|
|
||||||
system-manager = {
|
system-manager = {
|
||||||
url = "github:numtide/system-manager?shallow=1";
|
url = "github:numtide/system-manager?shallow=1";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
nix-system-graphics = {
|
nix-system-graphics = {
|
||||||
url = "github:soupglasses/nix-system-graphics?shallow=1";
|
url = "github:soupglasses/nix-system-graphics?shallow=1";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, nixos-hardware, home-manager, system-manager, nix-system-graphics, ... }@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 {
|
||||||
@@ -31,23 +35,13 @@
|
|||||||
};
|
};
|
||||||
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; };
|
||||||
modules = [ ./devices/deck/home.nix ];
|
modules = [
|
||||||
|
nix-index-database.homeModules.nix-index
|
||||||
|
./home.nix
|
||||||
|
];
|
||||||
};
|
};
|
||||||
systemConfigs.deck = system-manager.lib.makeSystemConfig {
|
systemConfigs.deck = system-manager.lib.makeSystemConfig {
|
||||||
modules = [
|
modules = [
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
homeUpdateLocation = "/home/deck/Projects/nixos#deck";
|
homeUpdateLocation = "/home/deck/Projects/nixos/devices/deck#deck";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../../home-manager/base.nix
|
../../home-manager
|
||||||
../../home-manager/gaming.nix
|
../../home-manager/gaming.nix
|
||||||
../../home-manager/development/vscode.nix
|
../../home-manager/development/vscode.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
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;
|
||||||
|
|||||||
@@ -2,21 +2,27 @@
|
|||||||
# your system. Help is available in the configuration.nix(5) man page, on
|
# your system. Help is available in the configuration.nix(5) man page, on
|
||||||
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
||||||
|
|
||||||
{ inputs, ... }:
|
{ inputs, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
[
|
[
|
||||||
../../configuration/base.nix
|
../../configuration
|
||||||
# Include the results of the hardware scan.
|
# Include the results of the hardware scan.
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
inputs.disko.nixosModules.default
|
inputs.disko.nixosModules.default
|
||||||
./disk-config.nix
|
./disk-config.nix
|
||||||
inputs.home-manager.nixosModules.default
|
inputs.home-manager.nixosModules.default
|
||||||
../../configuration/modules/laptop.nix
|
../../configuration/modules/laptop.nix
|
||||||
|
../../configuration/modules/gnome.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
gnome.tablet = true;
|
||||||
|
|
||||||
networking.hostName = "starlite"; # Define your hostname.
|
networking.hostName = "starlite"; # Define your hostname.
|
||||||
|
environment.systemPackages = with pkgs.gnomeExtensions; [
|
||||||
|
touchup
|
||||||
|
];
|
||||||
|
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||||
users.users.worble = {
|
users.users.worble = {
|
||||||
@@ -29,6 +35,9 @@
|
|||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager = {
|
home-manager = {
|
||||||
extraSpecialArgs = { inherit inputs; };
|
extraSpecialArgs = { inherit inputs; };
|
||||||
|
sharedModules = [
|
||||||
|
inputs.nix-index-database.homeModules.nix-index
|
||||||
|
];
|
||||||
users = {
|
users = {
|
||||||
"worble" = import ./home.nix;
|
"worble" = import ./home.nix;
|
||||||
};
|
};
|
||||||
|
|||||||
160
devices/starlite/flake.lock
generated
Normal file
160
devices/starlite/flake.lock
generated
Normal file
@@ -0,0 +1,160 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"disko": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1760701190,
|
||||||
|
"narHash": "sha256-y7UhnWlER8r776JsySqsbTUh2Txf7K30smfHlqdaIQw=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "disko",
|
||||||
|
"rev": "3a9450b26e69dcb6f8de6e2b07b3fc1c288d85f5",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "disko",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1758463745,
|
||||||
|
"narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"ref": "release-25.05",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-index-database": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1760846226,
|
||||||
|
"narHash": "sha256-xmU8kAsRprJiTGBTaGrwmjBP3AMA9ltlrxHKFuy5JWc=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-index-database",
|
||||||
|
"rev": "5024e1901239a76b7bf94a4cd27f3507e639d49e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-index-database",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-vscode-extensions": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1761098495,
|
||||||
|
"narHash": "sha256-aE2Vp0Q/Ra95sHk/YgQI6z9PvqPttgcIVUk3uSOWj9g=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-vscode-extensions",
|
||||||
|
"rev": "bd4690e402591e99a091dcd49663d3d6c9bf0ada",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-vscode-extensions",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixos-hardware": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1760958188,
|
||||||
|
"narHash": "sha256-2m1S4jl+GEDtlt2QqeHil8Ny456dcGSKJAM7q3j/BFU=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixos-hardware",
|
||||||
|
"rev": "d6645c340ef7d821602fd2cd199e8d1eed10afbc",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "master",
|
||||||
|
"repo": "nixos-hardware",
|
||||||
|
"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": 1760878510,
|
||||||
|
"narHash": "sha256-K5Osef2qexezUfs0alLvZ7nQFTGS9DL2oTVsIXsqLgs=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "5e2a59a5b1a82f89f2c7e598302a9cacebb72a67",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1760862643,
|
||||||
|
"narHash": "sha256-PXwG0TM7Ek87DNx4LbGWuD93PbFeKAJs4FfALtp7Wo0=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "33c6dca0c0cb31d6addcd34e90a63ad61826b28c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-25.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"disko": "disko",
|
||||||
|
"home-manager": "home-manager",
|
||||||
|
"nix-index-database": "nix-index-database",
|
||||||
|
"nix-vscode-extensions": "nix-vscode-extensions",
|
||||||
|
"nixos-hardware": "nixos-hardware",
|
||||||
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
"nixpkgs-unstable": "nixpkgs-unstable"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
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
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -2,12 +2,13 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../../home-manager/base.nix
|
../../home-manager
|
||||||
../../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;
|
||||||
|
|
||||||
home.username = "worble";
|
home.username = "worble";
|
||||||
home.homeDirectory = "/home/worble";
|
home.homeDirectory = "/home/worble";
|
||||||
|
|||||||
@@ -2,12 +2,12 @@
|
|||||||
# your system. Help is available in the configuration.nix(5) man page, on
|
# your system. Help is available in the configuration.nix(5) man page, on
|
||||||
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
||||||
|
|
||||||
{ inputs, ... }:
|
{ inputs, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
[
|
[
|
||||||
../../configuration/base.nix
|
../../configuration
|
||||||
# Include the results of the hardware scan.
|
# Include the results of the hardware scan.
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
inputs.disko.nixosModules.default
|
inputs.disko.nixosModules.default
|
||||||
@@ -16,21 +16,30 @@
|
|||||||
../../configuration/modules/laptop.nix
|
../../configuration/modules/laptop.nix
|
||||||
../../configuration/modules/virtualisation.nix
|
../../configuration/modules/virtualisation.nix
|
||||||
../../configuration/modules/gaming.nix
|
../../configuration/modules/gaming.nix
|
||||||
|
../../configuration/modules/kde.nix
|
||||||
|
../../configuration/modules/i18n.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
networking.hostName = "tuxedo"; # Define your hostname.
|
networking.hostName = "tuxedo"; # Define your hostname.
|
||||||
|
|
||||||
|
# options iwlmvm power_scheme=1 https://wireless.docs.kernel.org/en/latest/en/users/drivers/iwlwifi.html#features
|
||||||
|
# options iwlwifi 11n_disable=4 https://wiki.gentoo.org/wiki/Iwlwifi#Network_crashes_under_heavy_load
|
||||||
boot.extraModprobeConfig = ''
|
boot.extraModprobeConfig = ''
|
||||||
options iwlwifi 11n_disable=8 power_save=0
|
|
||||||
options iwlmvm power_scheme=1
|
options iwlmvm power_scheme=1
|
||||||
|
options iwlwifi 11n_disable=8 power_save=0
|
||||||
'';
|
'';
|
||||||
|
|
||||||
services.hardware.openrgb.enable = true;
|
boot.kernelModules = [
|
||||||
|
"ntsync"
|
||||||
|
];
|
||||||
|
|
||||||
fileSystems."/mnt/HDD1" = {
|
# services.hardware.openrgb.enable = true;
|
||||||
#device = "/dev/disk/by-uuid/35763dc3-c736-4714-ade7-40bf49ad50dd";
|
|
||||||
|
virtualisation.containerManagement = "docker";
|
||||||
|
|
||||||
|
fileSystems."/mnt/HDD2" = {
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
label = "HDD1";
|
label = "HDD2";
|
||||||
options = [
|
options = [
|
||||||
# If you don't have this options attribute, it'll default to "defaults"
|
# If you don't have this options attribute, it'll default to "defaults"
|
||||||
# boot options for fstab. Search up fstab mount options you can use
|
# boot options for fstab. Search up fstab mount options you can use
|
||||||
@@ -40,22 +49,48 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware.tuxedo-drivers.enable = true;
|
# hardware.tuxedo-drivers.enable = true;
|
||||||
|
|
||||||
programs.nix-ld.enable = true;
|
programs.wireshark = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.wireshark;
|
||||||
|
dumpcap.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# programs.gpu-screen-recorder.enable = true; # For promptless recording on both CLI and GUI
|
||||||
|
|
||||||
|
# programs.obs-studio = {
|
||||||
|
# enable = true;
|
||||||
|
# enableVirtualCamera = true;
|
||||||
|
# };
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs;[
|
||||||
|
distrobox
|
||||||
|
gpu-screen-recorder-gtk
|
||||||
|
];
|
||||||
|
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||||
users.users.worble = {
|
users.users.worble = {
|
||||||
initialPassword = "password";
|
initialPassword = "password";
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
extraGroups = [ "wheel" "gamemode" "docker" "cdrom" ]; # Enable ‘sudo’ for the user.
|
extraGroups = [
|
||||||
|
"wheel"
|
||||||
|
"gamemode"
|
||||||
|
"docker"
|
||||||
|
"podman"
|
||||||
|
"cdrom"
|
||||||
|
"wireshark"
|
||||||
|
"kvm" # for android studio
|
||||||
|
]; # Enable ‘sudo’ for the user.
|
||||||
linger = true;
|
linger = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
useGlobalPkgs = true;
|
useGlobalPkgs = true;
|
||||||
extraSpecialArgs = { inherit inputs; };
|
extraSpecialArgs = { inherit inputs; };
|
||||||
sharedModules = [ ];
|
sharedModules = [
|
||||||
|
inputs.nix-index-database.homeModules.nix-index
|
||||||
|
];
|
||||||
users = {
|
users = {
|
||||||
"worble" = import ./home.nix;
|
"worble" = import ./home.nix;
|
||||||
};
|
};
|
||||||
|
|||||||
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,15 +1,17 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, config, inputs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../../home-manager/base.nix
|
../../home-manager
|
||||||
../../home-manager/development/all.nix
|
../../home-manager/development
|
||||||
../../home-manager/gaming.nix
|
../../home-manager/gaming.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;
|
||||||
|
|
||||||
home.username = "worble";
|
home.username = "worble";
|
||||||
home.homeDirectory = "/home/worble";
|
home.homeDirectory = "/home/worble";
|
||||||
@@ -29,36 +31,30 @@
|
|||||||
|
|
||||||
# comms
|
# comms
|
||||||
teams-for-linux
|
teams-for-linux
|
||||||
|
teamspeak6-client
|
||||||
|
|
||||||
# media
|
# media
|
||||||
jellyfin-media-player
|
# TODO: disabled due to qt5-web-engine vulnerable https://github.com/NixOS/nixpkgs/pull/435067
|
||||||
|
# jellyfin-media-player
|
||||||
haruna
|
haruna
|
||||||
fooyin
|
|
||||||
strawberry
|
|
||||||
mpc-qt
|
|
||||||
|
|
||||||
# misc
|
# misc
|
||||||
electrum
|
# TODO: uncomment when ecdsa is updated
|
||||||
gpu-screen-recorder-gtk
|
# https://github.com/NixOS/nixpkgs/pull/456881
|
||||||
syncthing
|
# electrum
|
||||||
dbeaver-bin
|
dbeaver-bin
|
||||||
ruffle
|
ruffle
|
||||||
popsicle
|
popsicle
|
||||||
];
|
mkvtoolnix
|
||||||
|
|
||||||
home.file = {
|
# for headset tune
|
||||||
# shaders for mpv
|
headsetcontrol
|
||||||
".config/mpv/shaders".source = pkgs.fetchzip {
|
];
|
||||||
url = "https://github.com/bloc97/Anime4K/releases/download/v4.0.1/Anime4K_v4.0.zip";
|
|
||||||
sha256 = "sha256-9B6U+KEVlhUIIOrDauIN3aVUjZ/gQHjFArS4uf/BpaM=";
|
|
||||||
stripRoot = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Let Home Manager install and manage itself.
|
# Let Home Manager install and manage itself.
|
||||||
programs = {
|
programs = {
|
||||||
firefox = {
|
firefox = {
|
||||||
profiles.work = import ../../home-manager/firefox/firefox-profile.nix // {
|
profiles.work = (import ../../home-manager/firefox/firefox-profile.nix { tablet = config.firefox.tablet; }) // {
|
||||||
id = 1;
|
id = 1;
|
||||||
name = "work";
|
name = "work";
|
||||||
isDefault = false;
|
isDefault = false;
|
||||||
@@ -72,38 +68,17 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
mpv = {
|
mpv = {
|
||||||
enable = true;
|
|
||||||
config = {
|
config = {
|
||||||
profile = "gpu-hq";
|
screenshot-directory = "/mnt/HDD2/Pictures/";
|
||||||
vo = "gpu-next";
|
|
||||||
gpu-api = "vulkan";
|
|
||||||
hwdec = "vulkan";
|
|
||||||
screenshot-directory = "/mnt/HDD1/Pictures/";
|
|
||||||
screenshot-template = "%F/%F_snapshot_%P";
|
|
||||||
glsl-shaders = "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl";
|
|
||||||
};
|
};
|
||||||
extraInput = ''
|
|
||||||
# Optimized shaders for higher-end GPU:
|
|
||||||
CTRL+1 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A (HQ)"
|
|
||||||
CTRL+2 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B (HQ)"
|
|
||||||
CTRL+3 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C (HQ)"
|
|
||||||
CTRL+4 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A+A (HQ)"
|
|
||||||
CTRL+5 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B+B (HQ)"
|
|
||||||
CTRL+6 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C+A (HQ)"
|
|
||||||
CTRL+0 no-osd change-list glsl-shaders clr ""; show-text "GLSL shaders cleared"
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
mangohud = {
|
topgrade = {
|
||||||
enable = true;
|
|
||||||
settings = {
|
settings = {
|
||||||
preset = 1;
|
misc = {
|
||||||
|
ignore_failures = [ "containers" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
kodi = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.kodi.withPackages (exts: [ exts.pvr-iptvsimple ]);
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -111,8 +86,10 @@
|
|||||||
services = {
|
services = {
|
||||||
rclone-media = {
|
rclone-media = {
|
||||||
Unit = {
|
Unit = {
|
||||||
Description = "rclone-media /mnt/HDD1/Videos/";
|
Description = "rclone-media /mnt/HDD2/Videos/";
|
||||||
After = [ "network.target" "mnt-HDD1.mount" ];
|
After = [ "network.target" "mnt-HDD2.mount" ];
|
||||||
|
# Maybe? https://unix.stackexchange.com/questions/281650/systemd-unit-requiresmountsfor-vs-conditionpathisdirectory
|
||||||
|
# RequiresMountsFor = "/mnt/HDD2/Videos/";
|
||||||
};
|
};
|
||||||
|
|
||||||
Install = {
|
Install = {
|
||||||
@@ -120,6 +97,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
Service = {
|
Service = {
|
||||||
|
RestartSec = 10;
|
||||||
|
Restart = "on-failure";
|
||||||
Type = "exec";
|
Type = "exec";
|
||||||
ExecStart = "${pkgs.writeShellApplication {
|
ExecStart = "${pkgs.writeShellApplication {
|
||||||
name = "rclone-media";
|
name = "rclone-media";
|
||||||
@@ -127,7 +106,7 @@ runtimeInputs = [ pkgs.inotify-tools pkgs.libnotify pkgs.rclone ];
|
|||||||
text = ''
|
text = ''
|
||||||
function rclonecopy {
|
function rclonecopy {
|
||||||
file=$1
|
file=$1
|
||||||
changed_rel=''${file#"/mnt/HDD1/Videos"}
|
changed_rel=''${file#"/mnt/HDD2/Videos"}
|
||||||
notify-send -a "rclone-media" "rclone for $file triggered"
|
notify-send -a "rclone-media" "rclone for $file triggered"
|
||||||
if rclone copyto "$file" media:"media-7gM2gcrxRjXqfj$changed_rel" ; then
|
if rclone copyto "$file" media:"media-7gM2gcrxRjXqfj$changed_rel" ; then
|
||||||
notify-send -a "rclone-media" "rclone complete for $file"
|
notify-send -a "rclone-media" "rclone complete for $file"
|
||||||
@@ -139,7 +118,7 @@ text = ''
|
|||||||
inotifywait -mr \
|
inotifywait -mr \
|
||||||
--format '%w%f' \
|
--format '%w%f' \
|
||||||
-e close_write \
|
-e close_write \
|
||||||
/mnt/HDD1/Videos/ |
|
/mnt/HDD2/Videos/ |
|
||||||
while read -r file; do
|
while read -r file; do
|
||||||
rclonecopy "$file"
|
rclonecopy "$file"
|
||||||
done
|
done
|
||||||
|
|||||||
3
fix-nix.sh
Normal file
3
fix-nix.sh
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# Occasionally the nix store can get into a tizz and all updates will fail
|
||||||
|
# This should fix that
|
||||||
|
sudo nix-store --repair --verify --check-contents
|
||||||
215
flake.lock
generated
215
flake.lock
generated
@@ -1,215 +0,0 @@
|
|||||||
{
|
|
||||||
"nodes": {
|
|
||||||
"disko": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1745812220,
|
|
||||||
"narHash": "sha256-hotBG0EJ9VmAHJYF0yhWuTVZpENHvwcJ2SxvIPrXm+g=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "disko",
|
|
||||||
"rev": "d0c543d740fad42fe2c035b43c9d41127e073c78",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "disko",
|
|
||||||
"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": [
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1745557122,
|
|
||||||
"narHash": "sha256-eqSo9ugzsqhFgaDFYUZj943nurlX4L6f+AW0skJ4W+M=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"rev": "dd26f75fb4ec1c731d4b1396eaf4439ce40a91c1",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"ref": "release-24.11",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"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": 1745891836,
|
|
||||||
"narHash": "sha256-UJpwh09VKotfAoZRz6NNYZ1mepbhlkvYuoUSnMdUXCs=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nix-vscode-extensions",
|
|
||||||
"rev": "7387c46187fb2bbeb8bd1c94368a666e7bbd60c6",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nix-vscode-extensions",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixos-hardware": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1745907084,
|
|
||||||
"narHash": "sha256-Q8SpDbTI95vtKXgNcVl1VdSUhhDOORE8R77wWS2rmg8=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixos-hardware",
|
|
||||||
"rev": "f1e52a018166e1a324f832de913e12c0e55792d0",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "master",
|
|
||||||
"repo": "nixos-hardware",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1744868846,
|
|
||||||
"narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-unstable": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1745794561,
|
|
||||||
"narHash": "sha256-T36rUZHUART00h3dW4sV5tv4MrXKT7aWjNfHiZz7OHg=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "5461b7fa65f3ca74cef60be837fd559a8918eaa0",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1745868005,
|
|
||||||
"narHash": "sha256-hZScOyQphT4RUmSEJX+2OxjIlGgLwSd8iW1LNtAWIOs=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "330d0a4167924b43f31cc9406df363f71b768a02",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixos-24.11",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
|
||||||
"inputs": {
|
|
||||||
"disko": "disko",
|
|
||||||
"home-manager": "home-manager",
|
|
||||||
"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": 1744139528,
|
|
||||||
"narHash": "sha256-ABIcmxzf8399pJzXqHzShXtzw7iC+zxjhOxp/qS0fQk=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "system-manager",
|
|
||||||
"rev": "803322102ed51f29c250d4bff2973625adc4a521",
|
|
||||||
"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"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": "root",
|
|
||||||
"version": 7
|
|
||||||
}
|
|
||||||
@@ -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)"
|
||||||
|
|||||||
@@ -1,66 +0,0 @@
|
|||||||
{ pkgs, lib, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./base/fonts.nix
|
|
||||||
./base/terminal.nix
|
|
||||||
./firefox/firefox.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
home.packages = with pkgs;[
|
|
||||||
# general
|
|
||||||
thunderbird
|
|
||||||
keepassxc
|
|
||||||
qbittorrent
|
|
||||||
libreoffice-qt
|
|
||||||
joplin-desktop
|
|
||||||
|
|
||||||
# comms
|
|
||||||
teamspeak_client
|
|
||||||
vesktop
|
|
||||||
];
|
|
||||||
|
|
||||||
# set breeze as default cursor
|
|
||||||
home.file.".icons/default".source = "${pkgs.kdePackages.breeze}/share/icons/breeze_cursors";
|
|
||||||
|
|
||||||
home.sessionVariables = {
|
|
||||||
NIXOS_OZONE_WL = "1";
|
|
||||||
};
|
|
||||||
|
|
||||||
services.nextcloud-client = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.nextcloud-client;
|
|
||||||
startInBackground = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
home-manager.enable = true;
|
|
||||||
|
|
||||||
chromium = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.brave;
|
|
||||||
};
|
|
||||||
|
|
||||||
mpv = lib.mkDefault {
|
|
||||||
enable = true;
|
|
||||||
package = (
|
|
||||||
pkgs.mpv-unwrapped.wrapper {
|
|
||||||
scripts = with pkgs.mpvScripts; [
|
|
||||||
uosc
|
|
||||||
sponsorblock
|
|
||||||
];
|
|
||||||
|
|
||||||
mpv = pkgs.mpv-unwrapped.override {
|
|
||||||
waylandSupport = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
);
|
|
||||||
config = {
|
|
||||||
video-sync = "display-resample";
|
|
||||||
interpolation = "yes";
|
|
||||||
screenshot-directory = "~/Pictures/";
|
|
||||||
screenshot-template = "%F/%F_snapshot_%P";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
9
home-manager/base/default.nix
Normal file
9
home-manager/base/default.nix
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./fonts.nix
|
||||||
|
./mpv.nix
|
||||||
|
./terminal.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -2,10 +2,10 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
home.packages = with pkgs;[
|
home.packages = with pkgs;[
|
||||||
liberation_ttf
|
|
||||||
ubuntu-sans
|
ubuntu-sans
|
||||||
ubuntu-sans-mono
|
ubuntu-sans-mono
|
||||||
(nerdfonts.override { fonts = [ "SpaceMono" ]; })
|
nerd-fonts.space-mono
|
||||||
|
corefonts
|
||||||
];
|
];
|
||||||
|
|
||||||
fonts.fontconfig = {
|
fonts.fontconfig = {
|
||||||
|
|||||||
72
home-manager/base/mpv.nix
Normal file
72
home-manager/base/mpv.nix
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
{ pkgs, lib, config, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
{
|
||||||
|
options.mpv = {
|
||||||
|
high-quality = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
home.file = {
|
||||||
|
".config/mpv/shaders" = {
|
||||||
|
enable = config.mpv.high-quality;
|
||||||
|
source = pkgs.fetchzip {
|
||||||
|
url = "https://github.com/bloc97/Anime4K/releases/download/v4.0.1/Anime4K_v4.0.zip";
|
||||||
|
sha256 = "sha256-9B6U+KEVlhUIIOrDauIN3aVUjZ/gQHjFArS4uf/BpaM=";
|
||||||
|
stripRoot = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
mpv = {
|
||||||
|
enable = true;
|
||||||
|
package = (
|
||||||
|
pkgs.mpv-unwrapped.wrapper {
|
||||||
|
scripts = with pkgs.mpvScripts; [
|
||||||
|
uosc
|
||||||
|
sponsorblock
|
||||||
|
];
|
||||||
|
|
||||||
|
mpv = pkgs.mpv-unwrapped;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
config = mkMerge [{
|
||||||
|
screenshot-directory = lib.mkDefault "~/Pictures/";
|
||||||
|
screenshot-template = lib.mkDefault "%F/%F_snapshot_%P";
|
||||||
|
sub-ass-use-video-data = lib.mkDefault "aspect-ratio";
|
||||||
|
}
|
||||||
|
(mkIf config.mpv.high-quality
|
||||||
|
{
|
||||||
|
profile = lib.mkDefault "gpu-hq";
|
||||||
|
vo = lib.mkDefault "gpu-next";
|
||||||
|
gpu-api = lib.mkDefault "auto";
|
||||||
|
gpu-context = lib.mkDefault "auto";
|
||||||
|
hwdec = lib.mkDefault "auto";
|
||||||
|
glsl-shaders = lib.mkDefault "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl";
|
||||||
|
})];
|
||||||
|
|
||||||
|
scriptOpts = {
|
||||||
|
uosc = {
|
||||||
|
time_precision = lib.mkDefault 3;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
extraInput =
|
||||||
|
if config.mpv.high-quality then ''
|
||||||
|
# Optimized shaders for higher-end GPU:
|
||||||
|
CTRL+1 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A (HQ)"
|
||||||
|
CTRL+2 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B (HQ)"
|
||||||
|
CTRL+3 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C (HQ)"
|
||||||
|
CTRL+4 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A+A (HQ)"
|
||||||
|
CTRL+5 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B+B (HQ)"
|
||||||
|
CTRL+6 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C+A (HQ)"
|
||||||
|
CTRL+0 no-osd change-list glsl-shaders clr ""; show-text "GLSL shaders cleared"
|
||||||
|
'' else "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -8,38 +8,57 @@ with lib;
|
|||||||
|
|
||||||
options.terminal = {
|
options.terminal = {
|
||||||
nixUpdateLocation = mkOption {
|
nixUpdateLocation = mkOption {
|
||||||
type = lib.types.nullOr lib.types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
};
|
};
|
||||||
flakeUpdateLocation = mkOption {
|
flakeUpdateLocation = mkOption {
|
||||||
type = lib.types.nullOr lib.types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
};
|
};
|
||||||
homeUpdateLocation = mkOption {
|
homeUpdateLocation = mkOption {
|
||||||
type = lib.types.nullOr lib.types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
home.packages = with pkgs;[
|
home.packages = with pkgs;[
|
||||||
blesh
|
nerd-fonts.space-mono
|
||||||
(nerdfonts.override { fonts = [ "SpaceMono" ]; })
|
|
||||||
];
|
];
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
bash = {
|
bash = {
|
||||||
enable = true;
|
enable = true;
|
||||||
bashrcExtra = ''
|
initExtra = ''
|
||||||
source $(blesh-share)/ble.sh
|
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
|
||||||
bleopt canvas_winch_action=redraw-prev
|
then
|
||||||
|
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
|
||||||
|
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
|
||||||
|
fi
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
fish = {
|
||||||
|
enable = true;
|
||||||
|
interactiveShellInit = ''
|
||||||
|
set fish_greeting # Disable greeting
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
nix-index = {
|
||||||
|
enable = true;
|
||||||
|
enableBashIntegration = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
delta = {
|
||||||
|
enable = true;
|
||||||
|
enableGitIntegration = true;
|
||||||
|
};
|
||||||
|
|
||||||
git = {
|
git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
delta.enable = true;
|
settings = {
|
||||||
extraConfig = {
|
|
||||||
credential = {
|
credential = {
|
||||||
helper = [ "cache --timeout 21600" "${pkgs.git-credential-manager}/bin/git-credential-manager" "${pkgs.git-credential-oauth}/bin/git-credential-oauth" ];
|
helper = [ "cache --timeout 21600" "${pkgs.git-credential-manager}/bin/git-credential-manager" "${pkgs.git-credential-oauth}/bin/git-credential-oauth" ];
|
||||||
credentialStore = "secretservice";
|
credentialStore = "secretservice";
|
||||||
@@ -93,8 +112,11 @@ with lib;
|
|||||||
zellij = {
|
zellij = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableBashIntegration = true;
|
enableBashIntegration = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
settings = {
|
settings = {
|
||||||
theme = "dracula";
|
theme = "dracula";
|
||||||
|
show_startup_tips = false;
|
||||||
|
default_mode = "locked";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -119,6 +141,7 @@ with lib;
|
|||||||
eza = {
|
eza = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableBashIntegration = true;
|
enableBashIntegration = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
git = true;
|
git = true;
|
||||||
extraOptions = [
|
extraOptions = [
|
||||||
"--color=auto"
|
"--color=auto"
|
||||||
@@ -131,7 +154,7 @@ with lib;
|
|||||||
yazi = {
|
yazi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
manager = {
|
mgr = {
|
||||||
sort_by = "natural";
|
sort_by = "natural";
|
||||||
show_hidden = true;
|
show_hidden = true;
|
||||||
};
|
};
|
||||||
@@ -155,6 +178,24 @@ with lib;
|
|||||||
settings = mkMerge [{
|
settings = mkMerge [{
|
||||||
misc = {
|
misc = {
|
||||||
assume_yes = true;
|
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) {
|
(mkIf (nixUpdateLocation != null) {
|
||||||
@@ -169,7 +210,7 @@ with lib;
|
|||||||
})
|
})
|
||||||
(mkIf (flakeUpdateLocation != null) {
|
(mkIf (flakeUpdateLocation != null) {
|
||||||
pre_commands = {
|
pre_commands = {
|
||||||
nix-flake-update = "sudo nix flake update --flake ${flakeUpdateLocation}";
|
nix-flake-update = "${(pkgs.writeShellScriptBin "nix-flake-update" "sudo nix flake update --flake ${flakeUpdateLocation}")}/bin/nix-flake-update";
|
||||||
};
|
};
|
||||||
})];
|
})];
|
||||||
};
|
};
|
||||||
|
|||||||
68
home-manager/default.nix
Normal file
68
home-manager/default.nix
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
{ pkgs, lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./base
|
||||||
|
./firefox
|
||||||
|
];
|
||||||
|
|
||||||
|
home.packages = with pkgs;[
|
||||||
|
# general
|
||||||
|
thunderbird
|
||||||
|
qbittorrent
|
||||||
|
libreoffice-qt
|
||||||
|
# 25.11 Can move to stable when https://github.com/NixOS/nixpkgs/pull/460058 gets backported
|
||||||
|
joplin-desktop
|
||||||
|
|
||||||
|
# comms
|
||||||
|
# TODO: disabled due to qt5-web-engine vulnerable https://github.com/NixOS/nixpkgs/pull/435067
|
||||||
|
# teamspeak3
|
||||||
|
teamspeak6-client
|
||||||
|
discord
|
||||||
|
vesktop
|
||||||
|
|
||||||
|
# media
|
||||||
|
strawberry
|
||||||
|
];
|
||||||
|
|
||||||
|
# set breeze as default cursor
|
||||||
|
# For cursor in steam?
|
||||||
|
# home.file.".icons/default".source = "${pkgs.kdePackages.breeze}/share/icons/breeze_cursors";
|
||||||
|
|
||||||
|
home.file.".npmrc".text = lib.generators.toINIWithGlobalSection { } {
|
||||||
|
globalSection = {
|
||||||
|
ignore-scripts = "true";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
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";
|
||||||
|
};
|
||||||
|
|
||||||
|
services.nextcloud-client = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.nextcloud-client;
|
||||||
|
startInBackground = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
home-manager.enable = true;
|
||||||
|
|
||||||
|
chromium = {
|
||||||
|
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,10 +2,11 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./vscode.nix
|
# ./android.nix
|
||||||
./helix.nix
|
|
||||||
./dotnet.nix
|
./dotnet.nix
|
||||||
./sql.nix
|
|
||||||
./games.nix
|
./games.nix
|
||||||
|
./helix.nix
|
||||||
|
./sql.nix
|
||||||
|
./vscode.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -3,15 +3,6 @@
|
|||||||
{
|
{
|
||||||
home.packages = with pkgs;[
|
home.packages = with pkgs;[
|
||||||
jetbrains.rider
|
jetbrains.rider
|
||||||
# Remove when https://github.com/NixOS/nixpkgs/issues/393332 resolved (likely when 25.05 is out)
|
godot-mono
|
||||||
# godot-mono
|
|
||||||
(symlinkJoin {
|
|
||||||
name = "godot-mono";
|
|
||||||
paths = [ inputs.nixpkgs-unstable.legacyPackages."${pkgs.system}".godot-mono ];
|
|
||||||
buildInputs = [ makeWrapper ];
|
|
||||||
postBuild = ''
|
|
||||||
wrapProgram $out/bin/godot4-mono --set DOTNET_SYSTEM_GLOBALIZATION_INVARIANT 1
|
|
||||||
'';
|
|
||||||
})
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ with lib;
|
|||||||
{
|
{
|
||||||
options.helix = {
|
options.helix = {
|
||||||
fullInstall = mkOption {
|
fullInstall = mkOption {
|
||||||
type = lib.types.nullOr lib.types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -17,31 +17,46 @@ with lib;
|
|||||||
settings = {
|
settings = {
|
||||||
theme = "dracula";
|
theme = "dracula";
|
||||||
};
|
};
|
||||||
extraPackages = with pkgs;[ gcc ];
|
|
||||||
}
|
|
||||||
(mkIf config.helix.fullInstall {
|
|
||||||
extraPackages = with pkgs;[
|
extraPackages = with pkgs;[
|
||||||
marksman
|
gcc
|
||||||
shfmt
|
] ++ (optionals config.helix.fullInstall [
|
||||||
bash-language-server
|
#nix
|
||||||
superhtml
|
|
||||||
nixd
|
nixd
|
||||||
nixpkgs-fmt
|
nixpkgs-fmt
|
||||||
|
|
||||||
|
#dotnet
|
||||||
|
omnisharp-roslyn
|
||||||
|
netcoredbg
|
||||||
|
|
||||||
|
# rust
|
||||||
|
rustfmt
|
||||||
|
clippy
|
||||||
|
rust-analyzer
|
||||||
|
lldb
|
||||||
|
|
||||||
|
#python
|
||||||
|
ruff
|
||||||
|
|
||||||
|
# shell
|
||||||
|
shfmt
|
||||||
|
bash-language-server
|
||||||
|
fish-lsp
|
||||||
|
|
||||||
|
# misc
|
||||||
|
hyprls
|
||||||
|
marksman
|
||||||
|
|
||||||
|
# web
|
||||||
|
superhtml
|
||||||
biome
|
biome
|
||||||
] ++ (with nodePackages;[
|
] ++ (with nodePackages;[
|
||||||
vscode-langservers-extracted
|
vscode-langservers-extracted
|
||||||
typescript-language-server
|
typescript-language-server
|
||||||
]);
|
]));
|
||||||
|
}
|
||||||
|
(mkIf config.helix.fullInstall {
|
||||||
languages = {
|
languages = {
|
||||||
language = [
|
language = [
|
||||||
{
|
|
||||||
name = "nix";
|
|
||||||
language-servers = [ "nixd" "nil" ];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "html";
|
|
||||||
language-servers = [ "superhtml" "vscode-html-language-server" ];
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
name = "bash";
|
name = "bash";
|
||||||
formatter = { command = "shfmt"; };
|
formatter = { command = "shfmt"; };
|
||||||
|
|||||||
@@ -1,46 +1,73 @@
|
|||||||
{ inputs, pkgs, ... }:
|
{ inputs, pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
openvsx-extensions = inputs.nix-vscode-extensions.extensions.x86_64-linux.open-vsx;
|
openvsx = inputs.nix-vscode-extensions.extensions.x86_64-linux.open-vsx;
|
||||||
vscode-extensions = inputs.nix-vscode-extensions.extensions.x86_64-linux.vscode-marketplace;
|
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
|
in
|
||||||
{
|
{
|
||||||
home.packages = with pkgs;[
|
home.packages = with pkgs;[
|
||||||
(nerdfonts.override { fonts = [ "SpaceMono" ]; })
|
nerd-fonts.space-mono
|
||||||
];
|
];
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
vscode = {
|
vscode = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = inputs.nixpkgs-unstable.legacyPackages."${pkgs.system}".vscodium;
|
package = pkgs.vscodium;
|
||||||
mutableExtensionsDir = false;
|
mutableExtensionsDir = false;
|
||||||
|
profiles.default = {
|
||||||
enableUpdateCheck = false;
|
enableUpdateCheck = false;
|
||||||
enableExtensionUpdateCheck = false;
|
enableExtensionUpdateCheck = false;
|
||||||
extensions = with vscode-extensions;[
|
extensions = [
|
||||||
|
resharper-code # Requires DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
|
||||||
|
] ++ (with openvsx;[
|
||||||
biomejs.biome
|
biomejs.biome
|
||||||
mkhl.direnv
|
mkhl.direnv
|
||||||
dracula-theme.theme-dracula
|
dracula-theme.theme-dracula
|
||||||
dbaeumer.vscode-eslint
|
dbaeumer.vscode-eslint
|
||||||
eamodio.gitlens
|
|
||||||
pkief.material-icon-theme
|
pkief.material-icon-theme
|
||||||
jnoortheen.nix-ide
|
jnoortheen.nix-ide
|
||||||
esbenp.prettier-vscode
|
esbenp.prettier-vscode
|
||||||
humao.rest-client
|
|
||||||
loriscro.super
|
loriscro.super
|
||||||
mads-hartmann.bash-ide-vscode
|
mads-hartmann.bash-ide-vscode
|
||||||
foxundermoon.shell-format
|
|
||||||
dart-code.flutter
|
|
||||||
ms-vscode.wasm-wasi-core
|
ms-vscode.wasm-wasi-core
|
||||||
rust-lang.rust-analyzer
|
rust-lang.rust-analyzer
|
||||||
tamasfe.even-better-toml
|
tamasfe.even-better-toml
|
||||||
mikestead.dotenv
|
mikestead.dotenv
|
||||||
] ++ [ vscode-extensions.bradlc.vscode-tailwindcss ];
|
ms-python.python
|
||||||
|
ms-python.debugpy
|
||||||
|
charliermarsh.ruff
|
||||||
|
]) ++ (with vscode-marketplace;[
|
||||||
|
bradlc.vscode-tailwindcss
|
||||||
|
]);
|
||||||
userSettings = with pkgs;{
|
userSettings = with pkgs;{
|
||||||
"workbench.iconTheme" = "material-icon-theme";
|
"workbench.iconTheme" = "material-icon-theme";
|
||||||
"window.titleBarStyle" = "custom";
|
"window.titleBarStyle" = "custom";
|
||||||
"workbench.colorTheme" = "Dracula Theme";
|
"workbench.colorTheme" = "Dracula Theme";
|
||||||
"explorer.compactFolders" = false;
|
"explorer.compactFolders" = false;
|
||||||
"chat.commandCenter.enabled" = false;
|
"chat.commandCenter.enabled" = false;
|
||||||
|
"terminal.integrated.automationProfile.linux" = {
|
||||||
|
"path" = "/bin/sh";
|
||||||
|
};
|
||||||
|
|
||||||
"editor.fontFamily" = "'SpaceMono Nerd Font', 'monospace', monospace";
|
"editor.fontFamily" = "'SpaceMono Nerd Font', 'monospace', monospace";
|
||||||
"editor.fontSize" = 16;
|
"editor.fontSize" = 16;
|
||||||
@@ -69,8 +96,8 @@ in
|
|||||||
"[jsonc]" = {
|
"[jsonc]" = {
|
||||||
"editor.defaultFormatter" = "biomejs.biome";
|
"editor.defaultFormatter" = "biomejs.biome";
|
||||||
};
|
};
|
||||||
"biome.lsp.bin" = "${biome}/bin/biome";
|
# "biome.lsp.bin" = "${biome}/bin/biome";
|
||||||
"biome.requireConfigFile" = true;
|
#"biome.requireConfigFile" = true;
|
||||||
|
|
||||||
"typescript.preferences.preferTypeOnlyAutoImports" = true;
|
"typescript.preferences.preferTypeOnlyAutoImports" = true;
|
||||||
|
|
||||||
@@ -83,9 +110,12 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
"bashIde.shellcheckPath" = "${shellcheck}/bin/shellcheck";
|
"bashIde.shellcheckPath" = "${shellcheck}/bin/shellcheck";
|
||||||
"shellformat.path" = "${shfmt}/bin/shfmt";
|
"bashIde.shfmt.path" = "${shfmt}/bin/shfmt";
|
||||||
|
|
||||||
"rust-analyzer.rustfmt.overrideCommand" = [ "${rustfmt}/bin/rustfmt" ];
|
"rust-analyzer.rustfmt.overrideCommand" = [ "${rustfmt}/bin/rustfmt" ];
|
||||||
|
|
||||||
|
"tailwindCSS.classFunctions" = [ "cva" "cx" ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
73
home-manager/firefox/default.nix
Normal file
73
home-manager/firefox/default.nix
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
{
|
||||||
|
options.firefox = {
|
||||||
|
tablet = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
programs = {
|
||||||
|
firefox = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.firefox;
|
||||||
|
languagePacks = [
|
||||||
|
"en-GB"
|
||||||
|
];
|
||||||
|
policies = {
|
||||||
|
"DisplayMenuBar" = if config.firefox.tablet then false else true;
|
||||||
|
"ExtensionSettings" = with builtins;
|
||||||
|
let
|
||||||
|
extension = shortId: uuid: {
|
||||||
|
name = uuid;
|
||||||
|
value = {
|
||||||
|
install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
|
||||||
|
installation_mode = "normal_installed";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
listToAttrs [
|
||||||
|
# Security / Privacy
|
||||||
|
(extension "ublock-origin" "uBlock0@raymondhill.net")
|
||||||
|
(extension "keepassxc-browser" "keepassxc-browser@keepassxc.org")
|
||||||
|
(extension "cookie-autodelete" "CookieAutoDelete@kennydo.com")
|
||||||
|
|
||||||
|
# Annoyances
|
||||||
|
(extension "sponsorblock" "sponsorBlocker@ajay.app")
|
||||||
|
(extension "bandcamp-player-volume-control" "{308ec088-284a-40fe-ae14-7c917526f694}")
|
||||||
|
|
||||||
|
# UI / CSS
|
||||||
|
(extension "darkreader" "addon@darkreader.org")
|
||||||
|
(extension "rsspreview" "{7799824a-30fe-4c67-8b3e-7094ea203c94}")
|
||||||
|
(extension "tree-style-tab" "treestyletab@piro.sakura.ne.jp")
|
||||||
|
(extension "traduzir-paginas-web" "{036a55b4-5e72-4d05-a06c-cba2dfcc134a}")
|
||||||
|
|
||||||
|
# Additional Functionality
|
||||||
|
(extension "betterttv" "firefox@betterttv.net")
|
||||||
|
(extension "multi-account-containers" "@testpilot-containers")
|
||||||
|
(extension "gumbo-twitch-companion" "{59a39734-1e66-452e-a7b8-cc79f72062f0}")
|
||||||
|
(extension "joplin-web-clipper" "{8419486a-54e9-11e8-9401-ac9e17909436}")
|
||||||
|
(extension "tab-reloader" "jid0-bnmfwWw2w2w4e4edvcdDbnMhdVg@jetpack")
|
||||||
|
(extension "tab-session-manager" "Tab-Session-Manager@sienori")
|
||||||
|
(extension "user-agent-string-switcher" "{a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7}")
|
||||||
|
(extension "violentmonkey" "{aecec67f-0d10-4fa7-b7c7-609a2db280cf}")
|
||||||
|
];
|
||||||
|
# To add additional extensions, find it on addons.mozilla.org, find
|
||||||
|
# the short ID in the url (like https://addons.mozilla.org/en-US/firefox/addon/!SHORT_ID!/)
|
||||||
|
# Then, download the XPI by filling it in to the install_url template, unzip it,
|
||||||
|
# run `jq .browser_specific_settings.gecko.id manifest.json` or
|
||||||
|
# `jq .applications.gecko.id manifest.json` to get the UUID
|
||||||
|
};
|
||||||
|
|
||||||
|
profiles.default = (import ./firefox-profile.nix { tablet = config.firefox.tablet; }) // {
|
||||||
|
id = 0;
|
||||||
|
name = "default";
|
||||||
|
isDefault = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,61 +1,105 @@
|
|||||||
|
{ tablet ? false }:
|
||||||
{
|
{
|
||||||
settings = {
|
settings = {
|
||||||
# data privacy
|
# data privacy
|
||||||
"browser.discovery.enabled" = false;
|
"browser.discovery.enabled" = false;
|
||||||
"dom.security.https_only_mode" = true;
|
"dom.security.https_only_mode" = true;
|
||||||
|
|
||||||
# no autofill
|
# no autofill
|
||||||
"extensions.formautofill.addresses.enabled" = false;
|
"extensions.formautofill.addresses.enabled" = false;
|
||||||
"extensions.formautofill.creditCards.enabled" = false;
|
"extensions.formautofill.creditCards.enabled" = false;
|
||||||
|
|
||||||
# stop fonts
|
# stop fonts
|
||||||
"browser.display.use_document_fonts" = 0;
|
"browser.display.use_document_fonts" = 0;
|
||||||
|
|
||||||
# dont show about:config warning
|
# dont show about:config warning
|
||||||
"browser.aboutConfig.showWarning" = false;
|
"browser.aboutConfig.showWarning" = false;
|
||||||
|
|
||||||
# dont offer to save passwords
|
# dont offer to save passwords
|
||||||
"signon.rememberSignons" = false;
|
"signon.rememberSignons" = false;
|
||||||
|
|
||||||
# home page
|
# home page
|
||||||
"browser.startup.homepage" = "about:blank";
|
"browser.startup.homepage" = "about:blank";
|
||||||
|
|
||||||
# blank new tab
|
# blank new tab
|
||||||
"browser.newtabpage.enabled" = false;
|
"browser.newtabpage.enabled" = false;
|
||||||
|
|
||||||
# compact density
|
# compact density
|
||||||
"browser.uidensity" = 1;
|
"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
|
# userChrome
|
||||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
"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
|
# menu bar
|
||||||
"ui.key.menuAccessKeyFocuses" = false;
|
"ui.key.menuAccessKeyFocuses" = false;
|
||||||
# use kde file picker
|
|
||||||
|
# use desktop file picker
|
||||||
"widget.use-xdg-desktop-portal.file-picker" = 1;
|
"widget.use-xdg-desktop-portal.file-picker" = 1;
|
||||||
|
|
||||||
# sidebar at right
|
# sidebar at right
|
||||||
"sidebar.position_start" = false;
|
"sidebar.position_start" = false;
|
||||||
|
|
||||||
|
# new sidebar
|
||||||
|
"sidebar.revamp" = true;
|
||||||
|
"sidebar.verticalTabs" = true;
|
||||||
|
"browser.tabs.hoverPreview.enabled" = false;
|
||||||
|
"browser.tabs.hoverPreview.showThumbnails" = false;
|
||||||
|
"browser.tabs.groups.hoverPreview.enabled" = false;
|
||||||
|
|
||||||
# disable pocket
|
# disable pocket
|
||||||
"extensions.pocket.enabled" = false;
|
"extensions.pocket.enabled" = false;
|
||||||
|
|
||||||
# browser links should be new tab
|
# browser links should be new tab
|
||||||
"browser.link.open_newwindow.restriction" = 0;
|
"browser.link.open_newwindow.restriction" = 0;
|
||||||
# allow custom search enginers
|
|
||||||
|
# allow custom search engines
|
||||||
"browser.urlbar.update2.engineAliasRefresh" = true;
|
"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
|
# force enable hardware accel
|
||||||
"media.hardware-video-decoding.force-enabled" = true;
|
"media.hardware-video-decoding.force-enabled" = true;
|
||||||
|
|
||||||
# vaapi
|
# vaapi
|
||||||
"media.ffmpeg.vaapi.enabled" = true;
|
"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;
|
"browser.download.always_ask_before_handling_new_types" = true;
|
||||||
# downloads always ask download location
|
# always ask download location
|
||||||
"browser.download.useDownloadDir" = false;
|
"browser.download.useDownloadDir" = false;
|
||||||
# download to tmp dir, NOT Downloads (seriously Mozilla?)
|
# download to tmp dir, NOT Downloads (seriously Mozilla?)
|
||||||
"browser.download.start_downloads_in_tmp_dir" = true;
|
"browser.download.start_downloads_in_tmp_dir" = true;
|
||||||
|
|
||||||
# widevine
|
# widevine
|
||||||
"browser.eme.ui.enabled" = false;
|
"browser.eme.ui.enabled" = false;
|
||||||
"media.eme.enabled" = false;
|
"media.eme.enabled" = false;
|
||||||
|
|
||||||
# media control keys
|
# media control keys
|
||||||
"media.hardwaremediakeys.enabled" = false;
|
"media.hardwaremediakeys.enabled" = false;
|
||||||
|
|
||||||
# restore tabs on startup
|
# restore tabs on startup
|
||||||
"browser.startup.page" = 3;
|
"browser.startup.page" = 3;
|
||||||
|
|
||||||
|
# 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 */
|
/* Arkenfox Begin */
|
||||||
|
|
||||||
/* 0320: disable recommendation pane in about:addons (uses Google Analytics) ***/
|
/* 0320: disable recommendation pane in about:addons (uses Google Analytics) ***/
|
||||||
@@ -133,16 +177,19 @@
|
|||||||
"browser.contentblocking.category" = "strict";
|
"browser.contentblocking.category" = "strict";
|
||||||
};
|
};
|
||||||
userChrome = ''
|
userChrome = ''
|
||||||
/* Hide tab bar in FF Quantum */
|
/* Remove old sidebar header */
|
||||||
@-moz-document url(chrome://browser/content/browser.xul), url(chrome://browser/content/browser.xhtml) {
|
#sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"] #sidebar-header {
|
||||||
#TabsToolbar {
|
display: none;
|
||||||
visibility: collapse !important;
|
|
||||||
margin-bottom: 21px !important;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"] #sidebar-header {
|
/* Remove sidebar revamp header */
|
||||||
visibility: collapse !important;
|
#sidebar-panel-header {
|
||||||
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Allow complete collapse of sidebar revamp */
|
||||||
|
#sidebar-main:not([sidebar-launcher-expanded]) {
|
||||||
|
width: 0;
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,64 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
programs = {
|
|
||||||
firefox = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.firefox;
|
|
||||||
languagePacks = [
|
|
||||||
"en-GB"
|
|
||||||
];
|
|
||||||
policies = {
|
|
||||||
"DisplayMenuBar" = true;
|
|
||||||
"ExtensionSettings" = with builtins;
|
|
||||||
let
|
|
||||||
extension = shortId: uuid: {
|
|
||||||
name = uuid;
|
|
||||||
value = {
|
|
||||||
install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
|
|
||||||
installation_mode = "normal_installed";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
|
||||||
listToAttrs [
|
|
||||||
# Security / Privacy
|
|
||||||
(extension "ublock-origin" "uBlock0@raymondhill.net")
|
|
||||||
(extension "keepassxc-browser" "keepassxc-browser@keepassxc.org")
|
|
||||||
(extension "cookie-autodelete" "CookieAutoDelete@kennydo.com")
|
|
||||||
|
|
||||||
# Annoyances
|
|
||||||
(extension "sponsorblock" "sponsorBlocker@ajay.app")
|
|
||||||
(extension "bandcamp-player-volume-control" "{308ec088-284a-40fe-ae14-7c917526f694}")
|
|
||||||
|
|
||||||
# UI / CSS
|
|
||||||
(extension "darkreader" "addon@darkreader.org")
|
|
||||||
(extension "rsspreview" "{7799824a-30fe-4c67-8b3e-7094ea203c94}")
|
|
||||||
(extension "tree-style-tab" "treestyletab@piro.sakura.ne.jp")
|
|
||||||
(extension "traduzir-paginas-web" "{036a55b4-5e72-4d05-a06c-cba2dfcc134a}")
|
|
||||||
|
|
||||||
# Additional Functionality
|
|
||||||
(extension "betterttv" "firefox@betterttv.net")
|
|
||||||
(extension "multi-account-containers" "@testpilot-containers")
|
|
||||||
(extension "gumbo-twitch-companion" "{59a39734-1e66-452e-a7b8-cc79f72062f0}")
|
|
||||||
(extension "joplin-web-clipper" "{8419486a-54e9-11e8-9401-ac9e17909436}")
|
|
||||||
(extension "tab-reloader" "jid0-bnmfwWw2w2w4e4edvcdDbnMhdVg@jetpack")
|
|
||||||
(extension "tab-session-manager" "Tab-Session-Manager@sienori")
|
|
||||||
(extension "user-agent-string-switcher" "{a6c4a591-f1b2-4f03-b3ff-767e5bedf4e7}")
|
|
||||||
(extension "violentmonkey" "{aecec67f-0d10-4fa7-b7c7-609a2db280cf}")
|
|
||||||
];
|
|
||||||
# To add additional extensions, find it on addons.mozilla.org, find
|
|
||||||
# the short ID in the url (like https://addons.mozilla.org/en-US/firefox/addon/!SHORT_ID!/)
|
|
||||||
# Then, download the XPI by filling it in to the install_url template, unzip it,
|
|
||||||
# run `jq .browser_specific_settings.gecko.id manifest.json` or
|
|
||||||
# `jq .applications.gecko.id manifest.json` to get the UUID
|
|
||||||
};
|
|
||||||
|
|
||||||
profiles.default = import
|
|
||||||
./firefox-profile.nix // {
|
|
||||||
id = 0;
|
|
||||||
name = "default";
|
|
||||||
isDefault = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,12 +1,86 @@
|
|||||||
{ inputs, pkgs, ... }:
|
{ pkgs, inputs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
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;[
|
home.packages = with pkgs;[
|
||||||
steamguard-cli
|
# Wine / Proton
|
||||||
|
umu-wrapped
|
||||||
|
umu-ja
|
||||||
|
wine-wrapped
|
||||||
|
wine-ja
|
||||||
|
pkgs_unstable.winetricks
|
||||||
bottles
|
bottles
|
||||||
inputs.nixpkgs-unstable.legacyPackages."${pkgs.system}".ryubing
|
(heroic.override {
|
||||||
mgba
|
extraPkgs = pkgs: [
|
||||||
scanmem
|
pkgs.umu-launcher
|
||||||
heroic
|
pkgs.gamescope
|
||||||
|
pkgs.mangohud
|
||||||
];
|
];
|
||||||
|
})
|
||||||
|
|
||||||
|
# Steam
|
||||||
|
steamguard-cli
|
||||||
|
|
||||||
|
# Emulators
|
||||||
|
pkgs_unstable.ryubing
|
||||||
|
mgba
|
||||||
|
|
||||||
|
# Cheat engine
|
||||||
|
scanmem
|
||||||
|
];
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
mangohud = {
|
||||||
|
enable = true;
|
||||||
|
enableSessionWide = true;
|
||||||
|
settings = {
|
||||||
|
preset = 1;
|
||||||
|
};
|
||||||
|
settingsPerApplication = {
|
||||||
|
mpv = {
|
||||||
|
no_display = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
42
home-manager/streamlink.nix
Normal file
42
home-manager/streamlink.nix
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
{ pkgs, lib, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
proxies = [
|
||||||
|
"https://eu.luminous.dev" # (Europe)
|
||||||
|
"https://eu2.luminous.dev" # (Europe 2)
|
||||||
|
"https://as.luminous.dev" # (Asia)
|
||||||
|
"https://lb-eu.cdn-perfprod.com" # (Europe)
|
||||||
|
"https://lb-eu2.cdn-perfprod.com" # (Europe 2)
|
||||||
|
"https://lb-eu4.cdn-perfprod.com" # (Europe 4)
|
||||||
|
"https://lb-eu5.cdn-perfprod.com" # (Europe 5)
|
||||||
|
"https://lb-eu3.cdn-perfprod.com" # (Europe 3, using Russia-only proxies)
|
||||||
|
"https://lb-na.cdn-perfprod.com" # (NA)
|
||||||
|
"https://lb-as.cdn-perfprod.com" # (Asia)
|
||||||
|
"https://lb-sa.cdn-perfprod.com" # (SA)
|
||||||
|
];
|
||||||
|
in
|
||||||
|
{
|
||||||
|
programs.streamlink = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
player = "${pkgs.mpv}/bin/mpv";
|
||||||
|
player-args = "--cache 2048";
|
||||||
|
player-no-close = true;
|
||||||
|
twitch-low-latency = true;
|
||||||
|
twitch-disable-ads = true;
|
||||||
|
default-stream = "best";
|
||||||
|
};
|
||||||
|
plugins = {
|
||||||
|
# It is important this is called "twitch" and overwrites the default plugin
|
||||||
|
twitch = {
|
||||||
|
settings = {
|
||||||
|
twitch-proxy-playlist = lib.concatStringsSep "," proxies;
|
||||||
|
};
|
||||||
|
src = builtins.readFile (pkgs.fetchurl {
|
||||||
|
url = "https://github.com/2bc4/streamlink-ttvlol/releases/download/7.0.0-20241105/twitch.py";
|
||||||
|
hash = "sha256-WbxLNkxG64BlnfI/RwY5N0bqEkO/D6u14nYMyTuveN8=";
|
||||||
|
});
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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)"
|
||||||
|
|||||||
Reference in New Issue
Block a user