whole lotta everythin
This commit is contained in:
Generated
+49
-1
@@ -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,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
@@ -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;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -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";}
|
||||||
|
#];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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";}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -32,6 +32,7 @@
|
|||||||
nicotine-plus
|
nicotine-plus
|
||||||
lutris
|
lutris
|
||||||
prismlauncher
|
prismlauncher
|
||||||
|
rpcs3
|
||||||
winetricks
|
winetricks
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user