Compare commits
11 Commits
18ea7ad709
...
spotifyd
| Author | SHA1 | Date | |
|---|---|---|---|
| 9b10f4abe0 | |||
| a53519c339 | |||
| e88670ed60 | |||
| df77fd5c74 | |||
| 458bcb4cdf | |||
| 40e10bab34 | |||
| 3477a3480f | |||
| d2ae7f8e11 | |||
| ff3a0a4738 | |||
| 1a857399a6 | |||
| 4620288747 |
13
flake.nix
13
flake.nix
@@ -55,13 +55,12 @@
|
||||
system = "x86_64-linux";
|
||||
modules = baseModules ++ [
|
||||
./machines/boxy/configuration.nix
|
||||
# inputs.home-manager.nixosModules.home-manager
|
||||
# {
|
||||
# home-manager.users.johno = import ./home/home-default.nix;
|
||||
# home-manager.extraSpecialArgs.customPkgs =
|
||||
# nixpkgs.legacyPackages."${system}".callPackage ./packages {};
|
||||
# customPkgs = nixpkgs.legacyPackages."${system}".callPackage ./packages {};
|
||||
# }
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.users.johno = import ./home/home-default.nix;
|
||||
home-manager.extraSpecialArgs.customPkgs =
|
||||
nixpkgs.legacyPackages."${system}".callPackage ./packages {};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -186,15 +186,6 @@
|
||||
package = pkgs.kdePackages.kdeconnect-kde;
|
||||
};
|
||||
|
||||
services.spotifyd = {
|
||||
enable = true;
|
||||
settings = {
|
||||
global = {
|
||||
username = "johnogle222";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.syncthing = {
|
||||
enable = true;
|
||||
tray = {
|
||||
|
||||
@@ -6,13 +6,13 @@ let
|
||||
cfg = config.home.i3_sway;
|
||||
i3_cfg = config.xsession.windowManager.i3.config;
|
||||
|
||||
shared_config = recursiveUpdate {
|
||||
shared_config = recursiveUpdate rec {
|
||||
modifier = "Mod4";
|
||||
terminal = "kitty";
|
||||
defaultWorkspace = "workspace number 1";
|
||||
|
||||
keybindings = {
|
||||
"${shared_config.modifier}+Return" = "exec ${i3_cfg.terminal}";
|
||||
"${shared_config.modifier}+Return" = "exec ${terminal}";
|
||||
"${shared_config.modifier}+Shift+q" = "kill";
|
||||
"${shared_config.modifier}+d" = "exec ${i3_cfg.menu}";
|
||||
|
||||
|
||||
@@ -17,8 +17,13 @@ with lib;
|
||||
kodi = {
|
||||
enable = true;
|
||||
autologin = true;
|
||||
wayland = false;
|
||||
wayland = true;
|
||||
};
|
||||
spotifyd = {
|
||||
enable = true;
|
||||
deviceType = "t_v";
|
||||
};
|
||||
users.enable = true;
|
||||
};
|
||||
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
@@ -29,7 +34,7 @@ with lib;
|
||||
|
||||
hardware.graphics.enable = true;
|
||||
|
||||
#services.displayManager.enable = mkForce false;
|
||||
services.displayManager.enable = mkForce false;
|
||||
|
||||
# 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.
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
kodi.enable = true;
|
||||
nfs-mounts.enable = true;
|
||||
printing.enable = true;
|
||||
spotifyd.enable = true;
|
||||
users = {
|
||||
enable = true;
|
||||
extraGroups = [ "input" "libvirtd" ];
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
|
||||
hardware.graphics.enable = true;
|
||||
services.xserver.videoDrivers = ["nvidia"];
|
||||
services.xserver.screenSection = ''Option "metamodes" "3440x1440_165 +0+0"'';
|
||||
services.xserver.enableTearFree = true;
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = true;
|
||||
powerManagement.enable = false;
|
||||
|
||||
@@ -10,19 +10,18 @@ in
|
||||
enable = mkEnableOption "Enable the audio role";
|
||||
};
|
||||
|
||||
config =
|
||||
config = mkIf cfg.enable
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
alsa-utils
|
||||
paprefs
|
||||
pavucontrol
|
||||
pulsemixer
|
||||
];
|
||||
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
hardware.pulseaudio.enable = true;
|
||||
hardware.pulseaudio.package = pkgs.pulseaudioFull;
|
||||
hardware.pulseaudio.support32Bit = true;
|
||||
hardware.pulseaudio.extraConfig = "
|
||||
load-module module-combine-sink
|
||||
load-module module-switch-on-connect
|
||||
|
||||
@@ -10,7 +10,7 @@ in
|
||||
enable = mkEnableOption "Enable the bluetooth role";
|
||||
};
|
||||
|
||||
config =
|
||||
config = mkIf cfg.enable
|
||||
{
|
||||
hardware.bluetooth.enable = true;
|
||||
hardware.bluetooth.powerOnBoot = true;
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
{ lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.roles;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./audio
|
||||
@@ -14,14 +11,11 @@ in
|
||||
./nfs-mounts
|
||||
./printing
|
||||
./secrets
|
||||
./spotifyd
|
||||
./users
|
||||
./virtualisation
|
||||
];
|
||||
|
||||
options.roles = {
|
||||
enable = mkEnableOption "Enable roles";
|
||||
};
|
||||
|
||||
config = {
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
i18n.extraLocaleSettings = {
|
||||
@@ -64,9 +58,6 @@ in
|
||||
substituters = [
|
||||
"https://hyprland.cachix.org"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
config =
|
||||
config = mkIf cfg.enable
|
||||
{
|
||||
services.xserver.xkb = {
|
||||
layout = "us";
|
||||
|
||||
@@ -25,7 +25,8 @@ in
|
||||
steam-library
|
||||
youtube
|
||||
]);
|
||||
in {
|
||||
in mkIf cfg.enable
|
||||
{
|
||||
users.extraUsers.kodi.isNormalUser = true;
|
||||
|
||||
networking.firewall = {
|
||||
@@ -33,14 +34,21 @@ in
|
||||
allowedUDPPorts = [ 8080 ];
|
||||
};
|
||||
|
||||
services = mkIf cfg.autologin {
|
||||
services = if cfg.autologin then mkMerge [
|
||||
(mkIf cfg.wayland {
|
||||
cage = mkIf cfg.wayland {
|
||||
user = "kodi";
|
||||
program = "${kodiPkg}/bin/kodi-standalone";
|
||||
enable = true;
|
||||
};
|
||||
xserver = {
|
||||
enable = false;
|
||||
autorun = false;
|
||||
};
|
||||
})
|
||||
|
||||
xserver = mkIf (!cfg.wayland) {
|
||||
(mkIf (!cfg.wayland) {
|
||||
xserver = {
|
||||
enable = true;
|
||||
desktopManager.kodi = {
|
||||
enable = true;
|
||||
@@ -50,14 +58,14 @@ in
|
||||
enable = true;
|
||||
greeter.enable = false;
|
||||
};
|
||||
displayManager.sddm.enable = mkForce false;
|
||||
};
|
||||
displayManager = mkIf (!cfg.wayland) {
|
||||
displayManager = {
|
||||
autoLogin.enable = true;
|
||||
autoLogin.user = "kodi";
|
||||
defaultSession = "kodi";
|
||||
sessionData.autologinSession = "kodi";
|
||||
};
|
||||
};
|
||||
})
|
||||
] else {};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -16,7 +16,8 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
config = mkIf cfg.enable
|
||||
{
|
||||
fileSystems."/media" = {
|
||||
device = "10.0.0.43:/media";
|
||||
fsType = "nfs";
|
||||
|
||||
@@ -2,12 +2,16 @@
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.roles.printing;
|
||||
in
|
||||
{
|
||||
options.roles.printing = {
|
||||
enable = mkEnableOption "Enable default printing setup";
|
||||
};
|
||||
|
||||
config = {
|
||||
config = mkIf cfg.enable
|
||||
{
|
||||
services.printing.enable = true;
|
||||
|
||||
services.avahi = {
|
||||
|
||||
51
roles/spotifyd/default.nix
Normal file
51
roles/spotifyd/default.nix
Normal file
@@ -0,0 +1,51 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.roles.spotifyd;
|
||||
spotifyd = pkgs.spotifyd.override { withMpris = true; withPulseAudio = true; };
|
||||
spotifydConf = pkgs.writeText "spotifyd-config" ''
|
||||
[global]
|
||||
backend = "pulseaudio"
|
||||
bitrate = 320
|
||||
use_mpris = false
|
||||
zeroconf_port = 5354
|
||||
autoplay = false
|
||||
device_type = "${cfg.deviceType}"
|
||||
'';
|
||||
in
|
||||
{
|
||||
options.roles.spotifyd = {
|
||||
enable = mkEnableOption "Enable the spotifyd role";
|
||||
deviceType = mkOption {
|
||||
default = "computer";
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable
|
||||
{
|
||||
roles.audio.enable = true;
|
||||
|
||||
systemd.user.services.spotifyd = {
|
||||
enable = true;
|
||||
wantedBy = [ "default.target" ];
|
||||
after = [ "network-online.target" "sound.target" ];
|
||||
description = "spotifyd, a Spotify playing daemon";
|
||||
serviceConfig = {
|
||||
ExecStart = "${spotifyd}/bin/spotifyd --no-daemon --cache-path=\${HOME}/.cache/spotifyd --config-path=${spotifydConf}";
|
||||
Restart = "always";
|
||||
RestartSec = 12;
|
||||
};
|
||||
};
|
||||
users.users."kodi".linger = true;
|
||||
|
||||
networking.firewall.allowedTCPPorts = [
|
||||
5354
|
||||
57621
|
||||
];
|
||||
networking.firewall.allowedUDPPorts = [
|
||||
5353
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -21,7 +21,7 @@ in
|
||||
kidsPackages = with pkgs; [
|
||||
firefox
|
||||
];
|
||||
in {
|
||||
in mkIf cfg.enable {
|
||||
users.users.johno = {
|
||||
isNormalUser = true;
|
||||
description = "John Ogle";
|
||||
|
||||
@@ -2,12 +2,16 @@
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.roles.virtualisation;
|
||||
in
|
||||
{
|
||||
options.roles.virtualisation = {
|
||||
enable = mkEnableOption "Enable virtualisation";
|
||||
};
|
||||
|
||||
config = {
|
||||
config = mkIf cfg.enable
|
||||
{
|
||||
virtualisation.libvirtd.enable = true;
|
||||
programs.virt-manager.enable = true;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user