mirror of
https://git.oat.zone/dark-firepit/dotfiles
synced 2024-11-22 17:01:57 +01:00
refactoring
This commit is contained in:
parent
7ac98e510c
commit
affdf52f23
@ -24,6 +24,11 @@
|
||||
command = "rnix-lsp";
|
||||
filetypes = [ "nix" ];
|
||||
};
|
||||
|
||||
zig = {
|
||||
command = "zls";
|
||||
filetypes = [ "zig" ];
|
||||
};
|
||||
};
|
||||
|
||||
"yank.highlight.duration" = 700;
|
||||
|
37
flake.lock
37
flake.lock
@ -88,23 +88,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"meson": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1640155612,
|
||||
"narHash": "sha256-XrEIlf0W8mKEa97Uyc0w/187KBGEZOD+dJFNsn3UeNg=",
|
||||
"owner": "mesonbuild",
|
||||
"repo": "meson",
|
||||
"rev": "06aad5233e6bec97bfe21ae79c85aa7171089d3b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "mesonbuild",
|
||||
"ref": "0.60",
|
||||
"repo": "meson",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"locked": {
|
||||
"lastModified": 1639986101,
|
||||
@ -208,28 +191,10 @@
|
||||
"inputs": {
|
||||
"agenix": "agenix",
|
||||
"home-manager": "home-manager",
|
||||
"meson": "meson",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"polymc": "polymc",
|
||||
"sway-borders": "sway-borders"
|
||||
}
|
||||
},
|
||||
"sway-borders": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1640037473,
|
||||
"narHash": "sha256-gCdnim7excF11GEoni5YbIGTWSIx+wjHc8NO8lVNFts=",
|
||||
"owner": "fluix-dev",
|
||||
"repo": "sway-borders",
|
||||
"rev": "5f4162f449b19f6d198b365fc6d3dd0febc065e2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "fluix-dev",
|
||||
"repo": "sway-borders",
|
||||
"type": "github"
|
||||
"polymc": "polymc"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
11
flake.nix
11
flake.nix
@ -29,11 +29,6 @@
|
||||
asyncrun-vim.url = "github:skywind3000/asyncrun.vim";
|
||||
asyncrun-vim.flake = false;
|
||||
*/
|
||||
meson.url = "github:mesonbuild/meson/0.60";
|
||||
meson.flake = false;
|
||||
|
||||
sway-borders.url = "github:fluix-dev/sway-borders";
|
||||
sway-borders.flake = false;
|
||||
|
||||
# blender-30.url = "github:blender/blender/blender-v3.0-release";
|
||||
# blender-30.flake = false;
|
||||
@ -59,15 +54,11 @@
|
||||
packages."${system}" = mapModules ./packages (p: pkgs.callPackage p {});
|
||||
overlay = final: prev: {
|
||||
_ = self.packages."${system}";
|
||||
# meson = inputs.meson;
|
||||
# sway-unwrapped = inputs.sway-borders;
|
||||
# blender = inputs.blender-30;
|
||||
unstable = mkPkgs nixpkgs-unstable [];
|
||||
};
|
||||
overlays = mapModules ./overlays import;
|
||||
nixosModules = mapModulesRec ./modules import;
|
||||
nixosConfigurations = mapModules ./hosts (mkHost system);
|
||||
devShell."${system}" =
|
||||
import ./shell.nix { inherit pkgs; };
|
||||
devShell."${system}" = import ./shell.nix { inherit pkgs; };
|
||||
};
|
||||
}
|
||||
|
@ -14,7 +14,7 @@
|
||||
defaultUsers = {
|
||||
aether = {
|
||||
packages = [ ];
|
||||
shell = "zsh";
|
||||
shell = "fish";
|
||||
extraGroups = [ "wheel" ];
|
||||
};
|
||||
oatmealine = {
|
||||
@ -22,6 +22,11 @@
|
||||
shell = "zsh";
|
||||
extraGroups = [ "wheel" ];
|
||||
};
|
||||
skye = {
|
||||
packages = [ ];
|
||||
shell = "fish";
|
||||
extraGroups = [ "wheel" ];
|
||||
};
|
||||
};
|
||||
|
||||
keyboard = {
|
||||
@ -49,6 +54,11 @@
|
||||
enable = true;
|
||||
site = "git.oat.zone";
|
||||
};
|
||||
wireguard = {
|
||||
enable = true;
|
||||
server = true;
|
||||
interfaces = mkMerge (import ./interfaces);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
47
hosts/firepit/hardware-configuration.nix
Normal file
47
hosts/firepit/hardware-configuration.nix
Normal file
@ -0,0 +1,47 @@
|
||||
{ config, lib, pkgs, inputs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot = {
|
||||
initrd.availableKernelModules = [ "xhci_pci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
||||
initrd.kernelModules = [ ];
|
||||
kernelPackages = pkgs.linuxPackages_hardened;
|
||||
kernelModules = [ "kvm-intel" ];
|
||||
loader = {
|
||||
systemd-boot = {
|
||||
enable = true;
|
||||
configurationLimit = 10;
|
||||
};
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
};
|
||||
|
||||
modules.hardware.fs = {
|
||||
enable = true;
|
||||
ssd.enable = true;
|
||||
};
|
||||
|
||||
extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
|
||||
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
device = "/dev/disk/by-uuid/?";
|
||||
fsType = "?";
|
||||
options = [ "defaults" "noatime" "nodiratime" ];
|
||||
};
|
||||
|
||||
"/etc/dotfiles" = {
|
||||
device = "/dev/disk/by-uuid/?";
|
||||
fsType = "f2fs";
|
||||
options = [ "defaults" "noatime" "nodiratime" ];
|
||||
};
|
||||
|
||||
"/boot" = {
|
||||
device = "/dev/disk/by-uuid/?";
|
||||
fsType = "vfat";
|
||||
};
|
||||
};
|
||||
}
|
3
hosts/firepit/interfaces/default.nix
Normal file
3
hosts/firepit/interfaces/default.nix
Normal file
@ -0,0 +1,3 @@
|
||||
[
|
||||
|
||||
]
|
@ -1,11 +1,14 @@
|
||||
let
|
||||
userAether = "<...>";
|
||||
userOatmealine = "<...>";
|
||||
subsurface.Access = "<...>";
|
||||
void-defragmented.Access = "<...>";
|
||||
userSkye.Access = "<...>";
|
||||
in {
|
||||
"aether" = {
|
||||
"userAether.age".publicKeys = [ userAether ];
|
||||
};
|
||||
"oatmealine" = {
|
||||
"userOatmealine.age".publicKeys = [ userOatmealine ];
|
||||
};
|
||||
"subsurface.age".publicKeys = attrValues subsurface;
|
||||
"subsurface.age".owner = "aether";
|
||||
|
||||
"void-defragmented.age".publicKeys = attrValues void-defragmented;
|
||||
"void-defragmented.age".owner = "oatmealine";
|
||||
|
||||
"skye.age".publicKeys = attrValues userSkye;
|
||||
"skye.age".owner = "skye";
|
||||
}
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
defaultUsers = {
|
||||
aether = {
|
||||
packages = with pkgs; [ htop curl mpc_cli gammastep discord obs-studio youtube-dl inkscape audacity dolphin firefox-wayland wl-clipboard steam bitwarden blender neofetch krita celluloid imv firefox zathura ];
|
||||
packages = with pkgs; with pkgs._; [ htop discord youtube-dl inkscape audacity dolphin steam bitwarden blender neofetch krita celluloid imv firefox zathura zip unzip ffmpeg pijul pavucontrol killall ripcord steam-run appimage-run openjdk11 ];
|
||||
uid = 1024;
|
||||
isNormalUser = true;
|
||||
shell = "zsh";
|
||||
@ -44,11 +44,9 @@
|
||||
neovim.enable = true;
|
||||
codium.enable = true;
|
||||
};
|
||||
/*
|
||||
gaming = {
|
||||
minecraft.enable = true;
|
||||
};
|
||||
*/
|
||||
};
|
||||
dev = {
|
||||
llvm.enable = true;
|
||||
@ -57,14 +55,16 @@
|
||||
version = "ghc902";
|
||||
};
|
||||
c.enable = true;
|
||||
rust.enable = true;
|
||||
zig.enable = true;
|
||||
};
|
||||
services = {
|
||||
ssh.enable = true;
|
||||
mpd = {
|
||||
enable = true;
|
||||
# TODO: Make this more dynamic?
|
||||
musicDir = "/home/aether/Music";
|
||||
user = "aether";
|
||||
musicDir = "/home/aether/Music";
|
||||
user = "aether";
|
||||
};
|
||||
geoclue2.enable = true;
|
||||
};
|
||||
|
@ -110,6 +110,16 @@
|
||||
device = "/run/media/aether/bf2d91f1-a6b3-4629-8755-76301b3f6f56/home delta/home delta delta/Music";
|
||||
options = [ "bind" ];
|
||||
};
|
||||
|
||||
"/home/aether/Textures" = {
|
||||
device = "/run/media/aether/bf2d91f1-a6b3-4629-8755-76301b3f6f56/home\ delta/Textures";
|
||||
options = [ "bind" ];
|
||||
};
|
||||
|
||||
"/home/aether/Porn" = {
|
||||
device = "/run/media/aether/bf2d91f1-a6b3-4629-8755-76301b3f6f56/home\ delta/Porn";
|
||||
options = [ "bind" ];
|
||||
};
|
||||
};
|
||||
|
||||
swapDevices = [{ device = "/dev/disk/by-uuid/e4a7edca-2c4e-4979-8368-377bc067b8bd"; }];
|
||||
|
BIN
hosts/subsurface/secrets/firepitAccess.age
Normal file
BIN
hosts/subsurface/secrets/firepitAccess.age
Normal file
Binary file not shown.
@ -1,5 +1,5 @@
|
||||
let
|
||||
firepitAccess = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCoaiYQuYPYO217IA8rGIVvbQCoVaqERGAGevq+WxutrcdUZraa2Zp44GEZEmNFVNlgm2FtkOV42vqwnx2gfkHmuYA38Cov9jbxtIv4ytaWve+UniNBtUF9De0ULqKTUErk5iBX7gBpg4hY2+GVSSrYJ4KZIwDbA6uNj7PTyQDSZrGfQMbFR52HEXttehg7/vMXUVwhnakpKk3v21bCQRNzc3K9dcFUDSTH1uOE1oEfKhGp2zHtnknLDlMIhGQcpwfOKPqURsbzXpln1EyEMlrudjMRDg/ZKsKxYuW0Lnbxqqifgm9ERvSeq+517j3QA2Z6EWLY5yejgcDiyDy8bvqV";
|
||||
firepitAccess = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC4lh7dN9Ohh2/WoGiZ4WlpVb01YPNto/9ungOAk6TH+65wkxMjY4a+1OsO8Znguj46tXVErn8xv2ZVX0K7ql0hzypPkP2Dvvim99tz6FKSf9Nwj6RRtIKPoYkJjtGYAqLJl8JPy50HkFXkDVQ/z4d4iwpneSODIJdkUFSzZR91jz9FX+4t2h+2xtuuRDI43+gHRqvwPP8XaE0srtMzZoQDUBKhwOynoo2vZnyd3O7kkpD9T+jzYEeLKppHdaoYN5UxZ4L0xnig0WFZiBH36/YGXA8gT56FHRw5GKhwWwfSvliEw63/6IxiVZBuM1Mj7syg2Ndhhmmay05QqvyTrdHA9veyzJG5l0HlnCmXe7ss9lVQnxxPfbHbnDZUhH1ax01sQUeTK3Bs3AvbsTLyXBbd4NCY5ovz85MqzM/Q84B1zX1i8KbFEBh0xkumNsPAXzY8ar+tq5rFa23bY9qF4s6CMv++JEXSJJufcf3BS2dBlw0lTGBn7UEO9FHHsU3xKCc= aether@aether";
|
||||
in {
|
||||
"firepitAccess.age".publicKeys = [ firepitAccess ];
|
||||
"firepitAccess.age".owner = "aether";
|
||||
|
@ -15,8 +15,8 @@ in rec {
|
||||
in
|
||||
if type == "directory" then
|
||||
nameValuePair name (dirfn path)
|
||||
# else if type == "regular" && name != "default.nix" && hasSuffix ".nix" name then
|
||||
else if type == "regular" && hasSuffix ".nix" name then
|
||||
else if type == "regular" && name != "default.nix" && hasSuffix ".nix" name then
|
||||
# else if type == "regular" && hasSuffix ".nix" name then
|
||||
nameValuePair (removeSuffix ".nix" name) (fn path)
|
||||
else
|
||||
nameValuePair "" null
|
||||
|
@ -8,19 +8,17 @@ let
|
||||
secretsDir = "${toString ../hosts}/${config.networking.hostName}/secrets";
|
||||
secretsFile = "${secretsDir}/secrets.nix";
|
||||
in {
|
||||
/*
|
||||
imports = [ agenix.nixosModules.age ];
|
||||
environment.systemPackages = [ agenix.defaultPackage.x86_64-linux ];
|
||||
|
||||
age = {
|
||||
secrets = mkIf (pathExists secretsFile) (mapAttrs (n: o: {
|
||||
file = "${secretsDir}/" + n;
|
||||
owner = o.owner;
|
||||
}) (import secretsFile));
|
||||
identityPaths = options.age.identityPaths.default ++ (filter pathExists [
|
||||
# ".ssh/id_ed25519"
|
||||
# ".ssh/id_rsa"
|
||||
]);
|
||||
secrets = mkMerge (map (x: {"x".file = "${secretsDir}/${x}";}) (attrNames (import secretsFile)));
|
||||
identityPaths = options.age.identityPaths.default ++ (foldr (l: r: l ++ r) [] (map (user:
|
||||
let
|
||||
d = "/home/${user}/.ssh";
|
||||
fs = map (f: d + "/" + f)
|
||||
(filter (f: (f != "known_hosts") && (f != "*.old"))
|
||||
(attrNames (readDir d)));
|
||||
in fs) (attrNames config.defaultUsers)));
|
||||
};
|
||||
*/
|
||||
}
|
||||
|
@ -13,12 +13,10 @@ in {
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
/*
|
||||
user.packages = if wayland then (with pkgs; [
|
||||
firefox-wayland
|
||||
]) else (with pkgs; [
|
||||
firefox
|
||||
]);
|
||||
*/
|
||||
};
|
||||
}
|
||||
|
@ -13,10 +13,10 @@ in {
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
modules.services.mpd.enable = true;
|
||||
/*
|
||||
|
||||
user.packages = with pkgs; [
|
||||
mpc_cli
|
||||
];
|
||||
*/
|
||||
|
||||
};
|
||||
}
|
||||
|
@ -12,10 +12,8 @@ in {
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
/*
|
||||
user.packages = with pkgs; [
|
||||
obs-studio
|
||||
];
|
||||
*/
|
||||
};
|
||||
}
|
||||
|
@ -41,7 +41,9 @@ in {
|
||||
ghcid
|
||||
fzf-vim
|
||||
# inputs.fzf-hoogle-vim
|
||||
] else [ ]);
|
||||
] else if config.modules.dev.zig.enable then with pkgs.vimPlugins; [
|
||||
zig-vim
|
||||
] else []);
|
||||
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
|
@ -13,6 +13,6 @@ in {
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# user.packages = [ polymc ];
|
||||
environment.systemPackages = with pkgs; [ polymc ];
|
||||
};
|
||||
}
|
||||
|
28
modules/desktop/river.nix
Normal file
28
modules/desktop/river.nix
Normal file
@ -0,0 +1,28 @@
|
||||
{ options, config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.desktop.river;
|
||||
audioSupport = config.modules.hardware.audio.enable;
|
||||
in {
|
||||
options.modules.desktop.river = {
|
||||
enable = mkOption {
|
||||
type = tyoes.bool;
|
||||
default = false;
|
||||
description = "Enables the river wayland compositor.";
|
||||
};
|
||||
menu = mkOption {
|
||||
type = types.str;
|
||||
default = "nwggrid";
|
||||
description = "Which application launch menu to use. Defaults to nwggrid.";
|
||||
};
|
||||
term = mkOption {
|
||||
type = types.str;
|
||||
default = "alacritty";
|
||||
description = "Which terminal river should use. Defaults to alacritty.";
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
};
|
||||
}
|
@ -31,7 +31,6 @@ in {
|
||||
extraPackages = with pkgs; [ xwayland ];
|
||||
};
|
||||
|
||||
/*
|
||||
user.packages = with pkgs; [
|
||||
grim
|
||||
slurp
|
||||
@ -40,10 +39,10 @@ in {
|
||||
autotiling
|
||||
brightnessctl
|
||||
wdisplays
|
||||
gammastep
|
||||
] ++ (if audioSupport then (with pkgs; [
|
||||
playerctl
|
||||
]) else [ ]);
|
||||
*/
|
||||
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
@ -101,6 +100,7 @@ in {
|
||||
bg = "${config.modules.theme.wallpaper} fill";
|
||||
scale = "1.5";
|
||||
};
|
||||
output."DP-4".bg = "${config.modules.theme.wallpaper} fill";
|
||||
keybindings = let mod = config.home._.wayland.windowManager.sway.config.modifier; scProc = "wl-copy -t image/png && notify-send \"Screenshot Taken\""; in {
|
||||
# "${mod}+l" = "exec lock";
|
||||
"${mod}+q" = "reload";
|
||||
@ -131,7 +131,9 @@ in {
|
||||
"${mod}+Shift+9" = "move container to workspace 9";
|
||||
"${mod}+Shift+0" = "move container to workspace 10";
|
||||
|
||||
"Print" = "exec grim -g \"$(slurp -d)\" - | ${scProc}";
|
||||
"Print" = "exec grim -g \"$(slurp -d)\" - | ${scProc}";
|
||||
"XF86AudioPlay" = "playerctl play-pause";
|
||||
"Shift+XF86AudioPlay" = "playerctl loop";
|
||||
};
|
||||
};
|
||||
extraSessionCommands = ''
|
||||
|
@ -13,7 +13,7 @@ in {
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = if !withLLVM then with pkgs; [
|
||||
user.packages = if !withLLVM then with pkgs; [
|
||||
gcc
|
||||
] else with pkgs; [
|
||||
clang_12
|
||||
|
@ -20,7 +20,7 @@ in {
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = with pkgs.haskell.packages."${cfg.version}"; [
|
||||
user.packages = with pkgs.haskell.packages."${cfg.version}"; [
|
||||
ghc
|
||||
cabal-install
|
||||
] ++ config.modules.dev.haskell.packages;
|
||||
|
22
modules/dev/rust.nix
Normal file
22
modules/dev/rust.nix
Normal file
@ -0,0 +1,22 @@
|
||||
{ pkgs, lib, config, options, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.dev.rust;
|
||||
in {
|
||||
options.modules.dev.rust = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
user.packages = with pkgs; [
|
||||
cargo
|
||||
rustc
|
||||
];
|
||||
|
||||
environment.sessionVariables.RUST_SRC_PATH = "${pkgs.rust.packages.stable.rustPlatform.rustLibSrc}";
|
||||
};
|
||||
}
|
20
modules/dev/zig.nix
Normal file
20
modules/dev/zig.nix
Normal file
@ -0,0 +1,20 @@
|
||||
{ config, options, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.dev.zig;
|
||||
in {
|
||||
options.modules.dev.zig = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Adds zig tools to the environment.";
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
user.packages = with pkgs; [
|
||||
zig
|
||||
];
|
||||
};
|
||||
}
|
@ -6,7 +6,7 @@ let
|
||||
in {
|
||||
options.modules.services.geoclue2 = {
|
||||
enable = mkOption {
|
||||
type = types.bool
|
||||
type = types.bool;
|
||||
default = false;
|
||||
};
|
||||
};
|
||||
|
47
modules/services/wiregaurd.nix
Normal file
47
modules/services/wiregaurd.nix
Normal file
@ -0,0 +1,47 @@
|
||||
{ config, lib, pkgs, options, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.services.wireguard;
|
||||
opt = options.modules.services.wireguard;
|
||||
in {
|
||||
options.modules.services.wireguard = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Enables the wiregyard VPN service.";
|
||||
};
|
||||
server = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Configures this module to allow wireguard to act as a VPN provider on this host.";
|
||||
};
|
||||
interfaces = mkOption {
|
||||
type = types.attrs;
|
||||
default = {};
|
||||
description = "Which interfaces wireguard should atach itself to. The first one is prioritized over all others.";
|
||||
};
|
||||
port = mkOption {
|
||||
type = types.int;
|
||||
default = 51820;
|
||||
description = "The default listen port.";
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable (mkMerge [
|
||||
{
|
||||
networking.firewall.allowedUDPPorts = [ cfg.port ];
|
||||
|
||||
networking.wireguard.interfaces = mapAttrs (i: c: mkMerge [c {
|
||||
listenPort = cfg.port;
|
||||
}]) (mkAliasDefinitions options.modules.services.wireguard.interfaces);
|
||||
}
|
||||
(mkIf cfg.server {
|
||||
networking.nat = {
|
||||
enable = true;
|
||||
# externalInterfaces = head cfg.interfaces;
|
||||
# internalInterfaces = cfg.interfaces;
|
||||
};
|
||||
})
|
||||
]);
|
||||
}
|
@ -25,7 +25,7 @@ in {
|
||||
home.configFile = {
|
||||
"fish" = {
|
||||
source = "${cfgDir}/fish";
|
||||
target = "$HOME.config/fish";
|
||||
target = "$HOME/.config/fish";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
Before Width: | Height: | Size: 2.8 MiB After Width: | Height: | Size: 2.8 MiB |
@ -34,21 +34,14 @@ with lib;
|
||||
config = {
|
||||
home-manager.useUserPackages = true;
|
||||
|
||||
/*
|
||||
user = {
|
||||
packages = with pkgs; [ curl ];
|
||||
extraGroups = [ "wheel" ];
|
||||
shell = {};
|
||||
home = "/home/default";
|
||||
isNormalUser = false;
|
||||
isSystemUser = false;
|
||||
group = "";
|
||||
};
|
||||
*/
|
||||
|
||||
home._ = {
|
||||
home.stateVersion = config.system.stateVersion;
|
||||
# home.file = mkAliasDefinitions options.home.file;
|
||||
home.file = mkAliasDefinitions options.home.configFile;
|
||||
xdg.enable = true;
|
||||
xdg.configFile = mkAliasDefinitions options.home.configFile;
|
||||
};
|
||||
@ -63,14 +56,14 @@ with lib;
|
||||
};
|
||||
};
|
||||
|
||||
users.users = mapAttrs (user: prop: /* (mkAliasDefinitions options.user) // */ {
|
||||
users.users = mapAttrs (user: prop: mkMerge [(mkAliasDefinitions options.user) {
|
||||
packages = prop.packages;
|
||||
extraGroups = prop.extraGroups;
|
||||
shell = pkgs."${config.defaultUsers."${user}".shell}";
|
||||
shell = trace "penis" pkgs."${config.defaultUsers."${user}".shell}";
|
||||
home = "/home/${user}";
|
||||
isNormalUser = true;
|
||||
group = user;
|
||||
}) config.defaultUsers;
|
||||
}]) config.defaultUsers;
|
||||
|
||||
home-manager.users = mapAttrs (user: prop: mkAliasDefinitions options.home._
|
||||
) config.defaultUsers;
|
||||
|
33
packages/soundux.nix
Normal file
33
packages/soundux.nix
Normal file
@ -0,0 +1,33 @@
|
||||
{ stdenv, lib, fetchurl
|
||||
, cmake
|
||||
, alsaLib
|
||||
, glib
|
||||
, gtk3
|
||||
, xorg
|
||||
, webkitgtk
|
||||
, libxkbcommon
|
||||
, pulseaudio
|
||||
, pipewire
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "soundux";
|
||||
version = "0.2.6";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/Soundux/Soundux/releases/download/${version}/${pname}-${version}.tar.gz";
|
||||
sha256 = "0cffff520b3d1e69ccbb10599ff1ff3c911d74eb01a4af8dc3d5132fa5535c63";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = with xorg; [
|
||||
alsaLib glib gtk3 webkitgtk libxkbcommon pulseaudio pipewire libX11
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A universal soundboard that uses PulseAudio modules or PipeWire linking";
|
||||
homepage = "https://soundux.rocks/";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue
Block a user