whole lotta everythin

This commit is contained in:
k3t
2026-04-04 11:10:04 -06:00
parent 5fe54fe3da
commit f0c9fdef40
9 changed files with 227 additions and 48 deletions
Generated
+49 -1
View File
@@ -122,12 +122,60 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": {
"locked": {
"lastModified": 1773821835,
"narHash": "sha256-p0tPeJJbg+PKaH741F1CWa9Bf9vf6g02HK9V/g4TkHo=",
"rev": "b40629efe5d6ec48dd1efba650c797ddbd39ace0",
"type": "tarball",
"url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre964859.b40629efe5d6/nixexprs.tar.xz"
},
"original": {
"type": "tarball",
"url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
}
},
"root": { "root": {
"inputs": { "inputs": {
"home-manager": "home-manager", "home-manager": "home-manager",
"impermanence": "impermanence", "impermanence": "impermanence",
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_3",
"spicetify-nix": "spicetify-nix"
}
},
"spicetify-nix": {
"inputs": {
"nixpkgs": "nixpkgs_4",
"systems": "systems"
},
"locked": {
"lastModified": 1774157037,
"narHash": "sha256-kJpgEIF0sxMW0vx543m3AwyqptJOxPoOJY1DfJ4jQas=",
"owner": "Gerg-L",
"repo": "spicetify-nix",
"rev": "2e2234c2932a3aff5f845cda33cb1972a9e889aa",
"type": "github"
},
"original": {
"owner": "Gerg-L",
"repo": "spicetify-nix",
"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"
} }
} }
}, },
+6 -3
View File
@@ -6,13 +6,14 @@
impermanence.url = "github:nix-community/impermanence"; impermanence.url = "github:nix-community/impermanence";
nixos-hardware.url = "github:NixOS/nixos-hardware/master"; nixos-hardware.url = "github:NixOS/nixos-hardware/master";
home-manager.url = "github:nix-community/home-manager"; home-manager.url = "github:nix-community/home-manager";
spicetify-nix.url = "github:Gerg-L/spicetify-nix";
}; };
outputs = { self, nixpkgs, impermanence, nixos-hardware, home-manager, ... }: outputs = { self, nixpkgs, impermanence, nixos-hardware, home-manager, spicetify-nix, ... }:
let let
mkHost = system: modules: nixpkgs.lib.nixosSystem { mkHost = system: modules: nixpkgs.lib.nixosSystem {
inherit system modules; inherit system modules;
specialArgs = { inherit impermanence nixos-hardware; }; specialArgs = { inherit impermanence nixos-hardware spicetify-nix; };
}; };
mkPiImage = modules: (nixpkgs.lib.nixosSystem { mkPiImage = modules: (nixpkgs.lib.nixosSystem {
@@ -31,6 +32,7 @@
./modules/common.nix ./modules/common.nix
./modules/desktop-common.nix ./modules/desktop-common.nix
./hosts/desktop/configuration.nix ./hosts/desktop/configuration.nix
spicetify-nix.nixosModules.spicetify
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
{ {
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
@@ -47,13 +49,14 @@
{ {
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.users.k3t = ./home/desktop.nix; home-manager.users.k3t = ./home/htpc.nix;
} }
]; ];
"T14" = mkHost "x86_64-linux" [ "T14" = mkHost "x86_64-linux" [
./modules/common.nix ./modules/common.nix
./modules/desktop-common.nix ./modules/desktop-common.nix
./hosts/laptop/configuration.nix ./hosts/laptop/configuration.nix
spicetify-nix.nixosModules.spicetify
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
{ {
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
+2 -1
View File
@@ -1,4 +1,4 @@
{ pkgs, ... }: { { config, pkgs, ... }: {
gtk = { gtk = {
enable = true; enable = true;
colorScheme = "dark"; colorScheme = "dark";
@@ -17,6 +17,7 @@
gtk4 = { gtk4 = {
enable = true; enable = true;
colorScheme = "dark"; colorScheme = "dark";
theme = config.gtk.theme;
}; };
}; };
} }
+14
View File
@@ -0,0 +1,14 @@
{
wayland.windowManager.sway = {
enable = true;
config = rec {
modifier = "Mod4";
# Use kitty as default terminal
terminal = "kitty";
#startup = [
# # Launch Firefox on start
# {command = "firefox";}
#];
};
};
}
+53
View File
@@ -0,0 +1,53 @@
let
kodi-with-addons = pkgs.kodi-wayland.withPackages (kodiPkgs: with kodiPkgs; [
inputstream-adaptive
inputstream-ffmpegdirect
inputstream-rtmp
inputstreamhelper
bluetooth-manager
vfs-sftp
vfs-rar
vfs-libarchive
urllib3
upnext
trakt
trakt-module
sponsorblock
invidious
simplecache
libretro
libretro-snes9x
libretro-nestopia
jellycon
archive_tool
joystick
keymap
osmc-skin
jellyfin
visualization-projectm
visualization-goom
visualization-fishbmc
visualization-matrix
]);
in
{
imports = [
./common.nix
./cfg/kitty.nix
./cfg/gtk.nix
];
wayland.windowManager.sway = {
enable = true;
config = rec {
modifier = "Mod4";
# Use kitty as default terminal
terminal = "kitty";
startup = [
# Launch Firefox on start
{command = "${kodi-with-addons}/bin/kodi-standalone";}
];
};
};
}
+1
View File
@@ -32,6 +32,7 @@
nicotine-plus nicotine-plus
lutris lutris
prismlauncher prismlauncher
rpcs3
winetricks winetricks
]; ];
}; };
+68 -40
View File
@@ -30,67 +30,95 @@ let
visualization-goom visualization-goom
visualization-fishbmc visualization-fishbmc
visualization-matrix visualization-matrix
visualization-pictureit
visualization-shadertoy
visualization-spectrum
visualization-starburst
visualization-waveform
]); ]);
in in
{ {
networking.hostName = "htpc"; networking.hostName = "htpc";
environment.systemPackages = with pkgs; [
grim
slurp
wl-clipboard
mako
# hdmi cec # hdmi cec
libcec
];
nixpkgs.overlays = [ nixpkgs.overlays = [
(self: super: { libcec = super.libcec.override { withLibraspberrypi = true; }; }) (self: super: { libcec = super.libcec.override { withLibraspberrypi = true; }; })
]; ];
environment.systemPackages = with pkgs; [
libcec
];
services.udev.extraRules = '' services.udev.extraRules = ''
# allow access to raspi cec device for video group (and optionally register it as a systemd device, used below) # allow access to raspi cec device for video group (and optionally register it as a systemd device, used below)
KERNEL=="vchiq", GROUP="video", MODE="0660", TAG+="systemd", ENV{SYSTEMD_ALIAS}="/dev/vchiq" KERNEL=="vchiq", GROUP="video", MODE="0660", TAG+="systemd", ENV{SYSTEMD_ALIAS}="/dev/vchiq"
''; '';
systemd.sockets."cec-client" = { #systemd.sockets."cec-client" = {
after = [ "dev-vchiq.device" ]; # after = [ "dev-vchiq.device" ];
bindsTo = [ "dev-vchiq.device" ]; # bindsTo = [ "dev-vchiq.device" ];
wantedBy = [ "sockets.target" ]; # wantedBy = [ "sockets.target" ];
socketConfig = { # socketConfig = {
ListenFIFO = "/run/cec.fifo"; # ListenFIFO = "/run/cec.fifo";
SocketGroup = "video"; # SocketGroup = "video";
SocketMode = "0660"; # SocketMode = "0660";
}; # };
}; #};
systemd.services."cec-client" = { #systemd.services."cec-client" = {
after = [ "dev-vchiq.device" ]; # after = [ "dev-vchiq.device" ];
bindsTo = [ "dev-vchiq.device" ]; # bindsTo = [ "dev-vchiq.device" ];
wantedBy = [ "multi-user.target" ]; # wantedBy = [ "multi-user.target" ];
serviceConfig = { # serviceConfig = {
ExecStart = ''${pkgs.libcec}/bin/cec-client -d 1''; # ExecStart = ''${pkgs.libcec}/bin/cec-client -d 1'';
ExecStop = ''/bin/sh -c "echo q > /run/cec.fifo"''; # ExecStop = ''/bin/sh -c "echo q > /run/cec.fifo"'';
StandardInput = "socket"; # StandardInput = "socket";
StandardOutput = "journal"; # StandardOutput = "journal";
Restart="no"; # Restart="no";
}; # };
}; #};
# kde connect for remote ctrl # kde connect for remote ctrl
programs.kdeconnect.enable = true; programs.kdeconnect.enable = true;
# kodi wayland # kodi wayland v1
#services.cage.user = "k3t"; ##services.cage.user = "k3t";
#services.cage.extraArguments = [ "-d" "-s" ]; ##services.cage.extraArguments = [ "-d" "-s" ];
#services.cage.program = "${kodi-with-addons}/bin/kodi-standalone"; ##services.cage.program = "${kodi-with-addons}/bin/kodi-standalone";
#services.cage.enable = true; ##services.cage.enable = true;
# kodi x11 # kodi x11
services.xserver.enable = true; ##services.xserver.enable = true;
services.xserver.desktopManager.kodi.enable = true; ##services.xserver.desktopManager.kodi.enable = true;
services.xserver.desktopManager.kodi.package = kodi-with-addons; ##services.xserver.desktopManager.kodi.package = kodi-with-addons;
services.xserver.displayManager.lightdm.greeter.enable = false; ##services.xserver.displayManager.lightdm.greeter.enable = false;
services.displayManager.autoLogin.user = "k3t"; ##services.displayManager.autoLogin.user = "k3t";
# kodi wayland, v2
security.pam.loginLimits = [
{ domain = "@users"; item = "rtprio"; type = "-"; value = 1; }
];
services.displayManager = {
sddm = {
enable = true;
wayland.enable = true;
};
autoLogin = {
enable = true;
user = "k3t"; # Replace with the desired user
};
};
programs.sway = {
enable = true;
wrapperFeatures.gtk = true;
};
# kanshi systemd service
systemd.user.services.kanshi = {
description = "kanshi daemon";
serviceConfig = {
Type = "simple";
ExecStart = ''${pkgs.kanshi}/bin/kanshi -c kanshi_config_file'';
};
};
# audio # audio
security.rtkit.enable = true; security.rtkit.enable = true;
+3
View File
@@ -57,6 +57,9 @@
zramSwap.enable = true; zramSwap.enable = true;
zramSwap.memoryPercent = 80; zramSwap.memoryPercent = 80;
# security
security.polkit.enable = true;
users.users.k3t = { users.users.k3t = {
description = "Kai Moore"; description = "Kai Moore";
isNormalUser = true; isNormalUser = true;
+30 -2
View File
@@ -1,4 +1,10 @@
{ pkgs, lib, ... }: { { pkgs, lib, spicetify-nix,... }:
let
spicePkgs = spicetify-nix.legacyPackages.${pkgs.stdenv.system};
in
{
# Bootloader # Bootloader
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
@@ -207,10 +213,33 @@
]; ];
}; };
programs.spicetify = {
enable = true;
enabledExtensions = with spicePkgs.extensions; [
adblock
hidePodcasts
shuffle # shuffle+ (special characters are sanitized out of extension names)
];
enabledCustomApps = with spicePkgs.apps; [
newReleases
ncsVisualizer
];
enabledSnippets = with spicePkgs.snippets; [
rotatingCoverart
pointer
];
theme = spicePkgs.themes.catppuccin;
colorScheme = "mocha";
};
security.pam.services.k3t.kwallet.enable = true; security.pam.services.k3t.kwallet.enable = true;
security.pam.services.k3t.kwallet.forceRun = true; security.pam.services.k3t.kwallet.forceRun = true;
users.users.k3t = { users.users.k3t = {
packages = with pkgs; [ packages = with pkgs; [
fcast-client
fcast-receiver
joplin-desktop joplin-desktop
qbittorrent qbittorrent
kdePackages.kate kdePackages.kate
@@ -218,7 +247,6 @@
flatpak flatpak
vscode.fhs vscode.fhs
signal-desktop signal-desktop
spotify
easyeffects easyeffects
pulseaudio pulseaudio
kdePackages.kwallet kdePackages.kwallet