This commit is contained in:
2025-10-08 22:11:29 +01:00
28 changed files with 463 additions and 289 deletions

View File

@@ -1,167 +0,0 @@
# Edit this configuration file to define what should be installed 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`).
{ pkgs, ... }:
{
imports =
[
./base/nix-settings.nix
./base/fonts.nix
./base/kde.nix
];
# Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.kernelPackages = pkgs.linuxPackages_latest;
swapDevices = [{
device = "/var/lib/swapfile";
size = 16 * 1024;
}];
hardware.bluetooth.enable = true;
hardware.enableRedistributableFirmware = true;
hardware.enableAllFirmware = true;
# 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;
};
# 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;
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"
];
};
}
];
};
};
};
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;
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
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
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
# Enable the OpenSSH daemon.
# 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
# (/run/current-system/configuration.nix). This is useful in case you
# accidentally delete configuration.nix.
# system.copySystemConfiguration = true;
# This option defines the first version of NixOS you have installed on this particular machine,
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
#
# Most users should NEVER change this value after the initial install, for any reason,
# even if you've upgraded your system to a new NixOS release.
#
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
# to actually do that.
#
# This value being lower than the current NixOS release does NOT mean your system is
# out of date, out of support, or vulnerable.
#
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
# and migrated your data accordingly.
#
# 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?
}

View File

@@ -0,0 +1,13 @@
{ ... }:
{
imports = [
./fonts.nix
./kde.nix
./location-time.nix
./networking.nix
./nix-settings.nix
./pipewire.nix
./programs.nix
];
}

View File

@@ -27,15 +27,20 @@ in
};
};
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;
[ maliit-keyboard ] ++ (with kdePackages; [
[
maliit-keyboard
exfatprogs
] ++ (with kdePackages; [
sddm-kcm
plasma-disks
partitionmanager
filelight
ffmpegthumbs
kcalc

View 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";
};
}

View File

@@ -0,0 +1,26 @@
{ 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;
};
# 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;
services.mullvad-vpn = {
enable = true;
package = pkgs.mullvad-vpn;
};
# services.resolved.enable = true;
}

View File

@@ -7,10 +7,10 @@
nix.gc.automatic = true;
nix.gc.options = "--delete-older-than 7d";
# programs.nix-ld = {
# enable = true;
# # libraries = pkgs.steam-run.fhsenv.args.multiPkgs pkgs;
programs.nix-ld = {
enable = true;
# libraries = pkgs.steam-run.fhsenv.args.multiPkgs pkgs;
# libraries = pkgs.appimageTools.defaultFhsEnvArgs.targetPkgs pkgs;
# };
};
}

View 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"
];
};
}
];
};
};
};
}

View 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
rar
zstd
xz
p7zip
libva-utils
smartmontools
appimage-run
# dicts
nuspell
hunspellDicts.en-gb-large
# For cursor in steam?
xsettingsd
xorg.xrdb
];
}

74
configuration/default.nix Normal file
View File

@@ -0,0 +1,74 @@
# Edit this configuration file to define what should be installed 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`).
{ pkgs, ... }:
{
imports = [ ./base ];
# Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.kernelPackages = pkgs.linuxPackages_latest;
hardware.bluetooth.enable = true;
hardware.enableRedistributableFirmware = true;
hardware.enableAllFirmware = true;
# Disks / Swap / etc
# swapDevices = [{
# device = "/var/lib/swapfile";
# size = 16 * 1024; # 16 GB
# }];
zramSwap.enable = true; # Creates a zram block device and uses it as a swap device
services.fstrim.enable = true;
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
# Enable the OpenSSH daemon.
# 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
# (/run/current-system/configuration.nix). This is useful in case you
# accidentally delete configuration.nix.
# system.copySystemConfiguration = true;
# This option defines the first version of NixOS you have installed on this particular machine,
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
#
# Most users should NEVER change this value after the initial install, for any reason,
# even if you've upgraded your system to a new NixOS release.
#
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
# to actually do that.
#
# This value being lower than the current NixOS release does NOT mean your system is
# out of date, out of support, or vulnerable.
#
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
# and migrated your data accordingly.
#
# 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?
}

View File

@@ -8,8 +8,17 @@
};
libvirtd = {
enable = true;
qemu.vhostUserPackages = [ pkgs.virtiofsd ];
qemu = {
vhostUserPackages = [ pkgs.virtiofsd ];
ovmf.enable = true;
};
};
# podman = {
# enable = true;
# dockerSocket.enable = true;
# dockerCompat = true;
# defaultNetwork.settings.dns_enabled = true;
# };
# remember to add the necessary users to the docker group
docker = {
enable = true;
@@ -20,6 +29,11 @@
# };
};
programs.virt-manager.enable = true;
# environment.systemPackages = with pkgs;[ podman-compose ];
# environment.systemPackages = with pkgs;[
# docker-compose
# # podman-compose
# podman-tui
# podman-desktop
# ];
}

View File

@@ -5,7 +5,7 @@ let
in
{
imports = [
../../home-manager/base.nix
../../home-manager
../../home-manager/gaming.nix
../../home-manager/development/vscode.nix
];

View File

@@ -7,7 +7,7 @@
{
imports =
[
../../configuration/base.nix
../../configuration
# Include the results of the hardware scan.
./hardware-configuration.nix
inputs.disko.nixosModules.default
@@ -30,7 +30,7 @@
home-manager = {
extraSpecialArgs = { inherit inputs; };
sharedModules = [
inputs.nix-index-database.hmModules.nix-index
inputs.nix-index-database.homeModules.nix-index
];
users = {
"worble" = import ./home.nix;

View File

@@ -2,7 +2,7 @@
{
imports = [
../../home-manager/base.nix
../../home-manager
../../home-manager/development/vscode.nix
];

View File

@@ -7,7 +7,7 @@
{
imports =
[
../../configuration/base.nix
../../configuration
# Include the results of the hardware scan.
./hardware-configuration.nix
inputs.disko.nixosModules.default
@@ -20,18 +20,6 @@
networking.hostName = "tuxedo"; # Define your hostname.
# one day i will fix the fullscreen issue
# https://community.frame.work/t/fullscreen-games-freeze-on-plasma-6-with-dgpu/61088/9
# https://community.frame.work/t/bug-psa-gpu-bug-causes-crashes-on-kde-plasma/58133/4
# https://www.reddit.com/r/archlinux/comments/1gzy0xd/amdgpu_regression_on_kernel_612_choppy/
# https://forum.manjaro.org/t/unstable-update-october-2024-edition/168715/44
boot.kernelParams = [
# "amdgpu.dcdebugmask=0x410"
# or amdgpu.dcdebugmask=0x010
# or amdgpu.dcdebugmask=0x400
# or both amdgpu.dcdebugmask=0x410
];
boot.extraModprobeConfig = ''
options iwlwifi 11n_disable=8 power_save=0
options iwlmvm power_scheme=1
@@ -39,10 +27,9 @@
services.hardware.openrgb.enable = true;
fileSystems."/mnt/HDD1" = {
#device = "/dev/disk/by-uuid/35763dc3-c736-4714-ade7-40bf49ad50dd";
fileSystems."/mnt/HDD2" = {
fsType = "ext4";
label = "HDD1";
label = "HDD2";
options = [
# 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
@@ -60,15 +47,33 @@
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
inputs.nixpkgs-unstable.legacyPackages."${pkgs.system}".lsfg-vk
inputs.nixpkgs-unstable.legacyPackages."${pkgs.system}".lsfg-vk-ui
];
# Define a user account. Don't forget to set a password with passwd.
users.users.worble = {
initialPassword = "password";
isNormalUser = true;
extraGroups = [ "wheel" "gamemode" "docker" "cdrom" "wireshark" ]; # Enable sudo for the user.
extraGroups = [
"wheel"
"gamemode"
"docker"
"podman"
"cdrom"
"wireshark"
]; # Enable sudo for the user.
linger = true;
};
@@ -76,7 +81,7 @@
useGlobalPkgs = true;
extraSpecialArgs = { inherit inputs; };
sharedModules = [
inputs.nix-index-database.hmModules.nix-index
inputs.nix-index-database.homeModules.nix-index
];
users = {
"worble" = import ./home.nix;

View File

@@ -2,9 +2,10 @@
{
imports = [
../../home-manager/base.nix
../../home-manager/development/all.nix
../../home-manager
../../home-manager/development
../../home-manager/gaming.nix
../../home-manager/streamlink.nix
];
terminal.nixUpdateLocation = "/home/worble/Projects/nixos#tuxedo";
@@ -34,17 +35,16 @@
# media
jellyfin-media-player
haruna
fooyin
strawberry
mpc-qt
# misc
electrum
gpu-screen-recorder-gtk
syncthing
dbeaver-bin
ruffle
popsicle
# for headset tune
headsetcontrol
];
home.file = {
@@ -73,16 +73,13 @@
};
mpv = {
enable = true;
config = {
profile = "gpu-hq";
vo = "gpu-next";
gpu-api = "opengl";
gpu-context = "wayland";
hwdec = "vulkan";
screenshot-directory = "/mnt/HDD1/Pictures/";
# screenshot-directory = "~/Pictures/";
screenshot-template = "%F/%F_snapshot_%P";
gpu-api = "auto";
gpu-context = "auto";
hwdec = "auto";
screenshot-directory = "/mnt/HDD2/Pictures/";
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 = ''
@@ -114,10 +111,10 @@
services = {
rclone-media = {
Unit = {
Description = "rclone-media /mnt/HDD1/Videos/";
After = [ "network.target" "mnt-HDD1.mount" ];
Description = "rclone-media /mnt/HDD2/Videos/";
After = [ "network.target" "mnt-HDD2.mount" ];
# Maybe? https://unix.stackexchange.com/questions/281650/systemd-unit-requiresmountsfor-vs-conditionpathisdirectory
# RequiresMountsFor = "/mnt/HDD1/Videos/";
# RequiresMountsFor = "/mnt/HDD2/Videos/";
};
Install = {
@@ -134,7 +131,7 @@ runtimeInputs = [ pkgs.inotify-tools pkgs.libnotify pkgs.rclone ];
text = ''
function rclonecopy {
file=$1
changed_rel=''${file#"/mnt/HDD1/Videos"}
changed_rel=''${file#"/mnt/HDD2/Videos"}
notify-send -a "rclone-media" "rclone for $file triggered"
if rclone copyto "$file" media:"media-7gM2gcrxRjXqfj$changed_rel" ; then
notify-send -a "rclone-media" "rclone complete for $file"
@@ -146,7 +143,7 @@ text = ''
inotifywait -mr \
--format '%w%f' \
-e close_write \
/mnt/HDD1/Videos/ |
/mnt/HDD2/Videos/ |
while read -r file; do
rclonecopy "$file"
done

48
flake.lock generated
View File

@@ -7,11 +7,11 @@
]
},
"locked": {
"lastModified": 1750903843,
"narHash": "sha256-Ng9+f0H5/dW+mq/XOKvB9uwvGbsuiiO6HrPdAcVglCs=",
"lastModified": 1758287904,
"narHash": "sha256-IGmaEf3Do8o5Cwp1kXBN1wQmZwQN3NLfq5t4nHtVtcU=",
"owner": "nix-community",
"repo": "disko",
"rev": "83c4da299c1d7d300f8c6fd3a72ac46cb0d59aae",
"rev": "67ff9807dd148e704baadbd4fd783b54282ca627",
"type": "github"
},
"original": {
@@ -45,11 +45,11 @@
]
},
"locked": {
"lastModified": 1750792728,
"narHash": "sha256-Lh3dopA8DdY+ZoaAJPrtkZOZaFEJGSYjOdAYYgOPgE4=",
"lastModified": 1758463745,
"narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "366f00797b1efb70f2882d3da485e3c10fd3d557",
"rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3",
"type": "github"
},
"original": {
@@ -66,11 +66,11 @@
]
},
"locked": {
"lastModified": 1751170039,
"narHash": "sha256-3EKpUmyGmHYA/RuhZjINTZPU+OFWko0eDwazUOW64nw=",
"lastModified": 1758427679,
"narHash": "sha256-xwjWRJTKDCjQ0iwfh7WhDhgcS0Wt3d1Yscg83mKBCn4=",
"owner": "nix-community",
"repo": "nix-index-database",
"rev": "9c932ae632d6b5150515e5749b198c175d8565db",
"rev": "fd2569ca2ef7d69f244cd9ffcb66a0540772ff85",
"type": "github"
},
"original": {
@@ -105,11 +105,11 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1751163387,
"narHash": "sha256-DbEJL/mglbCqTa6s1I8H3Vmrl5roDI0tj7Blx4Js5Do=",
"lastModified": 1758678836,
"narHash": "sha256-ewDKEXcKYF7L+EGVa+8E1nxK1pdwVrCHcj5UhuGA8V0=",
"owner": "nix-community",
"repo": "nix-vscode-extensions",
"rev": "edb6831ba2ff1b6ff93bec29060e33d6d6cff3cd",
"rev": "5007786714b3573b37cf3b8c4a33e2ddce86960d",
"type": "github"
},
"original": {
@@ -120,11 +120,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1750837715,
"narHash": "sha256-2m1ceZjbmgrJCZ2PuQZaK4in3gcg3o6rZ7WK6dr5vAA=",
"lastModified": 1758663926,
"narHash": "sha256-6CFdj7Xs616t1W4jLDH7IohAAvl5Dyib3qEv/Uqw1rk=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "98236410ea0fe204d0447149537a924fb71a6d4f",
"rev": "170ff93c860b2a9868ed1e1102d4e52cb3d934e1",
"type": "github"
},
"original": {
@@ -152,11 +152,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1751011381,
"narHash": "sha256-krGXKxvkBhnrSC/kGBmg5MyupUUT5R6IBCLEzx9jhMM=",
"lastModified": 1758427187,
"narHash": "sha256-pHpxZ/IyCwoTQPtFIAG2QaxuSm8jWzrzBGjwQZIttJc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "30e2e2857ba47844aa71991daa6ed1fc678bcbb7",
"rev": "554be6495561ff07b6c724047bdd7e0716aa7b46",
"type": "github"
},
"original": {
@@ -168,11 +168,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1750969886,
"narHash": "sha256-zW/OFnotiz/ndPFdebpo3X0CrbVNf22n4DjN2vxlb58=",
"lastModified": 1758589230,
"narHash": "sha256-zMTCFGe8aVGTEr2RqUi/QzC1nOIQ0N1HRsbqB4f646k=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "a676066377a2fe7457369dd37c31fd2263b662f4",
"rev": "d1d883129b193f0b495d75c148c2c3a7d95789a0",
"type": "github"
},
"original": {
@@ -202,11 +202,11 @@
]
},
"locked": {
"lastModified": 1748252092,
"narHash": "sha256-6nL55wvV7SthEXaXDiQo8xxkxQLAVcNBU21YJ7GJLm8=",
"lastModified": 1756281415,
"narHash": "sha256-CjpoVwpJJ+DOZilPrDpZ5S3V+B1Y0calaHxTp2xMvGs=",
"owner": "numtide",
"repo": "system-manager",
"rev": "c6850451ef769fd03d0ad5474f928b916aa23775",
"rev": "e271eedac9a24678ca6cfc61677837422bf474e0",
"type": "github"
},
"original": {

View File

@@ -57,7 +57,7 @@
inherit pkgs;
extraSpecialArgs = { inherit inputs; };
modules = [
nix-index-database.hmModules.nix-index
nix-index-database.homeModules.nix-index
./devices/deck/home.nix
];
};

View File

@@ -0,0 +1,9 @@
{ ... }:
{
imports = [
./fonts.nix
./mpv.nix
./terminal.nix
];
}

30
home-manager/base/mpv.nix Normal file
View File

@@ -0,0 +1,30 @@
{ pkgs, lib, ... }:
{
programs = {
mpv = {
enable = true;
package = (
pkgs.mpv-unwrapped.wrapper {
scripts = with pkgs.mpvScripts; [
uosc
sponsorblock
];
mpv = pkgs.mpv-unwrapped;
}
);
config = {
screenshot-directory = lib.mkDefault "~/Pictures/";
screenshot-template = lib.mkDefault "%F/%F_snapshot_%P";
sub-ass-use-video-data = lib.mkDefault "aspect-ratio";
};
scriptOpts = {
uosc = {
time_precision = 3;
};
};
};
};
}

View File

@@ -45,6 +45,12 @@ with lib;
'';
};
nix-index = {
enable = true;
enableBashIntegration = true;
enableFishIntegration = true;
};
git = {
enable = true;
delta.enable = true;
@@ -106,6 +112,7 @@ with lib;
settings = {
theme = "dracula";
show_startup_tips = false;
default_mode = "locked";
};
};

View File

@@ -1,10 +1,9 @@
{ pkgs, lib, inputs, ... }:
{ pkgs, inputs, lib, ... }:
{
imports = [
./base/fonts.nix
./base/terminal.nix
./firefox/firefox.nix
./base
./firefox
];
home.packages = with pkgs;[
@@ -17,12 +16,22 @@
# comms
teamspeak_client
vesktop
discord
# 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";
};
};
home.sessionVariables = {
NIXOS_OZONE_WL = "1";
};
@@ -40,25 +49,5 @@
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 = {
screenshot-directory = "~/Pictures/";
screenshot-template = "%F/%F_snapshot_%P";
};
};
};
}

View File

@@ -2,10 +2,10 @@
{
imports = [
./vscode.nix
./helix.nix
./dotnet.nix
./sql.nix
./games.nix
./helix.nix
./sql.nix
./vscode.nix
];
}

View File

@@ -21,30 +21,41 @@ with lib;
}
(mkIf config.helix.fullInstall {
extraPackages = with pkgs;[
marksman
shfmt
bash-language-server
superhtml
#nix
nixd
nixpkgs-fmt
biome
#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
] ++ (with nodePackages;[
vscode-langservers-extracted
typescript-language-server
]);
languages = {
language = [
{
name = "nix";
language-servers = [ "nixd" "nil" ];
}
{
name = "html";
language-servers = [ "superhtml" "vscode-html-language-server" ];
}
{
name = "bash";
formatter = { command = "shfmt"; };

View File

@@ -34,7 +34,9 @@ in
ms-python.python
ms-python.debugpy
charliermarsh.ruff
]) ++ (with vscode-marketplace;[ bradlc.vscode-tailwindcss ]);
]) ++ (with vscode-marketplace;[
bradlc.vscode-tailwindcss
]);
userSettings = with pkgs;{
"workbench.iconTheme" = "material-icon-theme";
"window.titleBarStyle" = "custom";
@@ -72,7 +74,7 @@ in
"[jsonc]" = {
"editor.defaultFormatter" = "biomejs.biome";
};
"biome.lsp.bin" = "${biome}/bin/biome";
# "biome.lsp.bin" = "${biome}/bin/biome";
#"biome.requireConfigFile" = true;
"typescript.preferences.preferTypeOnlyAutoImports" = true;
@@ -89,6 +91,8 @@ in
"bashIde.shfmt.path" = "${shfmt}/bin/shfmt";
"rust-analyzer.rustfmt.overrideCommand" = [ "${rustfmt}/bin/rustfmt" ];
"tailwindCSS.classFunctions" = [ "cva" "cx" ];
};
};
};

View File

@@ -55,6 +55,8 @@
"media.hardwaremediakeys.enabled" = false;
# restore tabs on startup
"browser.startup.page" = 3;
# do not trim http
"browser.urlbar.trimURLs" = false;
/* Arkenfox Begin */

View File

@@ -2,15 +2,42 @@
{
home.packages = with pkgs;[
steamguard-cli
# Wine / Proton
wineWowPackages.staging
winetricks
bottles
ryubing
mgba
scanmem
(heroic.override {
extraPkgs = pkgs: [
pkgs.gamescope
];
})
(umu-launcher.override {
extraPkgs = pkgs: with pkgs.gst_all_1; [
gstreamer
gst-plugins-base
gst-plugins-good
gst-plugins-bad
gst-plugins-ugly
gst-libav
gst-vaapi
];
})
# Steam
steamguard-cli
# Emulators
ryubing
mgba
# Cheat engine
scanmem
];
# programs.lutris = {
# enable = true;
# extraPackages = with pkgs; [ mangohud winetricks gamescope gamemode umu-launcher ];
# protonPackages = [ pkgs.proton-ge-bin ];
# winePackages = [ pkgs.wineWowPackages.staging ];
# };
}

View 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=";
});
};
};
};
}