massive restructure
This commit is contained in:
@@ -0,0 +1,266 @@
|
||||
{
|
||||
pkgs,
|
||||
sls-steam,
|
||||
options,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cpuid-fault-emulation = pkgs.callPackage ../../pkgs/cpuid-fault-emulation {
|
||||
kernel = config.boot.kernelPackages.kernel;
|
||||
};
|
||||
in
|
||||
|
||||
{
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
./packages.nix
|
||||
../../modules/scripts.nix
|
||||
../../modules/desktop/xremap.nix
|
||||
];
|
||||
|
||||
# DISKS
|
||||
fileSystems."/media/gamedisk4" = {
|
||||
device = "/dev/disk/by-uuid/D290EB87C8A1E82A";
|
||||
fsType = "ntfs3";
|
||||
options = [
|
||||
"uid=1000"
|
||||
"gid=100"
|
||||
"rw"
|
||||
"user"
|
||||
"exec"
|
||||
"umask=000"
|
||||
"nofail"
|
||||
];
|
||||
};
|
||||
|
||||
fileSystems."/media/gamedisk" = {
|
||||
device = "/dev/disk/by-uuid/5C7C14707C1446E4";
|
||||
fsType = "ntfs3";
|
||||
options = [
|
||||
"uid=1000"
|
||||
"gid=100"
|
||||
"rw"
|
||||
"user"
|
||||
"exec"
|
||||
"umask=000"
|
||||
"nofail"
|
||||
];
|
||||
};
|
||||
|
||||
fileSystems."/media/gamedisk2" = {
|
||||
device = "/dev/disk/by-uuid/945A7421DAD8A3CE";
|
||||
fsType = "ntfs3";
|
||||
options = [
|
||||
"uid=1000"
|
||||
"gid=100"
|
||||
"rw"
|
||||
"user"
|
||||
"exec"
|
||||
"umask=000"
|
||||
"nofail"
|
||||
];
|
||||
};
|
||||
|
||||
nix.settings.experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
|
||||
boot.kernelParams = [
|
||||
"iomem=relaxed"
|
||||
"iommu=pt"
|
||||
"amd_iommu=on"
|
||||
"kvm.ignore_msrs=1"
|
||||
"mitigations=off"
|
||||
"amdgpu.ppfeaturemask=0xffffffff"
|
||||
"clearcpuid=umip"
|
||||
];
|
||||
|
||||
xdg = {
|
||||
mime.defaultApplications = {
|
||||
"inode/directory" = [ "nemo.desktop" ];
|
||||
"application/x-gnome-saved-search" = [ "nemo.desktop" ];
|
||||
};
|
||||
};
|
||||
|
||||
hardware.graphics.enable = true;
|
||||
hardware.graphics.enable32Bit = true;
|
||||
services.hardware.openrgb.enable = true;
|
||||
|
||||
# Bootloader.
|
||||
boot.loader.grub.enable = true;
|
||||
boot.loader.grub.device = "nodev";
|
||||
boot.loader.grub.efiSupport = true;
|
||||
boot.extraModulePackages = [ cpuid-fault-emulation ];
|
||||
|
||||
environment.systemPackages = [
|
||||
(pkgs.writeShellScriptBin "enable-hypervisor" ''
|
||||
sudo modprobe -r kvm_amd kvm
|
||||
sudo modprobe cpuid_fault_emulation
|
||||
'')
|
||||
(pkgs.writeShellScriptBin "disable-hypervisor" ''
|
||||
sudo modprobe -r cpuid_fault_emulation
|
||||
sudo modprobe kvm_amd kvm
|
||||
'')
|
||||
];
|
||||
|
||||
networking.hostName = "nixos-desktop";
|
||||
networking.firewall.enable = false;
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Berlin";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "de_DE.UTF-8";
|
||||
LC_IDENTIFICATION = "de_DE.UTF-8";
|
||||
LC_MEASUREMENT = "de_DE.UTF-8";
|
||||
LC_MONETARY = "de_DE.UTF-8";
|
||||
LC_NAME = "de_DE.UTF-8";
|
||||
LC_NUMERIC = "de_DE.UTF-8";
|
||||
LC_PAPER = "de_DE.UTF-8";
|
||||
LC_TELEPHONE = "de_DE.UTF-8";
|
||||
LC_TIME = "de_DE.UTF-8";
|
||||
};
|
||||
|
||||
console.keyMap = "de";
|
||||
|
||||
programs.fish.enable = true;
|
||||
users.users.user = {
|
||||
isNormalUser = true;
|
||||
description = "user";
|
||||
uid = 1000;
|
||||
extraGroups = [
|
||||
"networkmanager"
|
||||
"wheel"
|
||||
"docker"
|
||||
];
|
||||
shell = pkgs.fish;
|
||||
};
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
programs.niri.enable = true;
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
|
||||
# environment.loginShellInit = ''
|
||||
# if [ "$(tty)" = "/dev/tty1" ] && [ -z "$WAYLAND_DISPLAY" ]; then
|
||||
# exec start-hyprland
|
||||
# fi
|
||||
# '';
|
||||
|
||||
# NFS / MPD
|
||||
fileSystems."/media/music" = {
|
||||
device = "192.168.132.149:/media/music";
|
||||
fsType = "nfs4";
|
||||
};
|
||||
boot.supportedFilesystems = [ "nfs4" ];
|
||||
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme = "qt5ct";
|
||||
style = "breeze";
|
||||
};
|
||||
|
||||
virtualisation.docker.enable = true;
|
||||
services.gvfs.enable = true;
|
||||
services.goxlr-utility.enable = true;
|
||||
services.lact.enable = true;
|
||||
services.rsync.enable = true;
|
||||
programs.kdeconnect.enable = true;
|
||||
programs.neovim.enable = true;
|
||||
programs.tmux.enable = true;
|
||||
programs.bat.enable = true;
|
||||
programs.nh.enable = true;
|
||||
programs.git = {
|
||||
enable = true;
|
||||
config = {
|
||||
signing = {
|
||||
key = "51AE8C6E80E6AF3BDFBE2BF804B31D181764898D";
|
||||
signByDefault = true;
|
||||
};
|
||||
user = {
|
||||
name = "KeksNino";
|
||||
email = "KeksNino@proton.me";
|
||||
};
|
||||
init = {
|
||||
defaultBranch = "main";
|
||||
};
|
||||
push = {
|
||||
autoSetupRemote = true;
|
||||
};
|
||||
commit = {
|
||||
gpgsign = true;
|
||||
};
|
||||
tag = {
|
||||
gpgsign = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
programs.gnupg.agent = {
|
||||
enable = true;
|
||||
pinentryPackage = pkgs.pinentry-curses;
|
||||
};
|
||||
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
package = pkgs.millennium-steam.override {
|
||||
extraEnv = {
|
||||
LD_AUDIT = "${sls-steam.packages.${pkgs.stdenv.hostPlatform.system}.sls-steam}/library-inject.so:${
|
||||
sls-steam.packages.${pkgs.stdenv.hostPlatform.system}.sls-steam
|
||||
}/SLSsteam.so";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.nix-ld = {
|
||||
enable = true;
|
||||
libraries =
|
||||
options.programs.nix-ld.libraries.default
|
||||
++ (with pkgs; [
|
||||
dbus # libdbus-1.so.3
|
||||
fontconfig # libfontconfig.so.1
|
||||
freetype # libfreetype.so.6
|
||||
glib # libglib-2.0.so.0
|
||||
libGL # libGL.so.1
|
||||
libxkbcommon # libxkbcommon.so.0
|
||||
libx11 # libX11.so.6
|
||||
wayland
|
||||
]);
|
||||
};
|
||||
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
};
|
||||
|
||||
security.pam.loginLimits = [
|
||||
{
|
||||
domain = "@users";
|
||||
item = "rtprio";
|
||||
type = "-";
|
||||
value = "95";
|
||||
}
|
||||
{
|
||||
domain = "@users";
|
||||
item = "memlock";
|
||||
type = "-";
|
||||
value = "unlimited";
|
||||
}
|
||||
];
|
||||
|
||||
security.rtkit.enable = true;
|
||||
|
||||
system.stateVersion = "24.11";
|
||||
system.autoUpgrade.enable = false;
|
||||
system.autoUpgrade.allowReboot = true;
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [
|
||||
"xhci_pci"
|
||||
"ahci"
|
||||
"usbhid"
|
||||
"usb_storage"
|
||||
"sd_mod"
|
||||
];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/ddabcce9-86a5-4dd8-84f1-3afa99a83752";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/16F5-2D1A";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0077"
|
||||
"dmask=0077"
|
||||
];
|
||||
};
|
||||
|
||||
fileSystems."/media/gamedisk4" = {
|
||||
device = "/dev/disk/by-uuid/D290EB87C8A1E82A";
|
||||
fsType = "ntfs3";
|
||||
};
|
||||
|
||||
fileSystems."/media/music" = {
|
||||
device = "192.168.132.149:/media/music";
|
||||
fsType = "nfs4";
|
||||
};
|
||||
|
||||
fileSystems."/media/arch" = {
|
||||
device = "/dev/disk/by-uuid/8873d98f-c461-4d34-8867-f4ebd5c205d2";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/media/gamedisk" = {
|
||||
device = "/dev/disk/by-uuid/5C7C14707C1446E4";
|
||||
fsType = "ntfs3";
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{ device = "/dev/disk/by-uuid/5949c73f-30eb-4956-9e93-70301c88fad8"; }
|
||||
];
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
@@ -0,0 +1,191 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
zen-browser,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
./mpd.nix
|
||||
zen-browser.homeModules.beta
|
||||
];
|
||||
|
||||
home.username = "user";
|
||||
home.homeDirectory = "/home/user";
|
||||
|
||||
xdg.userDirs = {
|
||||
enable = true;
|
||||
createDirectories = false;
|
||||
extraConfig = {
|
||||
SCREENSHOTS = "${config.home.homeDirectory}/Pictures/Screenshots";
|
||||
};
|
||||
};
|
||||
|
||||
xdg.mimeApps = {
|
||||
enable = true;
|
||||
defaultApplications = {
|
||||
"inode/directory" = [ "nemo.desktop" ];
|
||||
"image/*" = [ "imv-dir.desktop" ];
|
||||
"image/gif" = [ "imv-dir.desktop" ];
|
||||
"image/jpeg" = [ "imv-dir.desktop" ];
|
||||
"image/png" = [ "imv-dir.desktop" ];
|
||||
"image/webp" = [ "imv-dir.desktop" ];
|
||||
};
|
||||
};
|
||||
|
||||
dconf = {
|
||||
settings = {
|
||||
"org/cinnamon/desktop/applications/terminal" = {
|
||||
exec = "kitty";
|
||||
# exec-arg = ""; # argument
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home.pointerCursor = {
|
||||
enable = true;
|
||||
gtk.enable = true;
|
||||
package = pkgs.adwaita-icon-theme;
|
||||
name = "Adwaita";
|
||||
size = 20;
|
||||
};
|
||||
|
||||
programs.zen-browser = {
|
||||
enable = true;
|
||||
setAsDefaultBrowser = true;
|
||||
};
|
||||
|
||||
programs.yazi.enable = true;
|
||||
programs.yazi.enableFishIntegration = true;
|
||||
|
||||
programs.fzf.enable = true;
|
||||
programs.fzf.enableFishIntegration = true;
|
||||
|
||||
programs.eza = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
git = true;
|
||||
icons = "always";
|
||||
extraOptions = [
|
||||
"-1"
|
||||
];
|
||||
};
|
||||
|
||||
programs.pywal = {
|
||||
enable = true;
|
||||
package = pkgs.pywal16;
|
||||
};
|
||||
|
||||
programs.lazygit.enable = true;
|
||||
programs.lazygit.enableFishIntegration = true;
|
||||
|
||||
programs.rbw = {
|
||||
enable = true;
|
||||
settings = {
|
||||
pinentry = pkgs.pinentry-curses;
|
||||
email = "KeksNino@proton.me";
|
||||
base_url = "https://vw.pizzasucht.net";
|
||||
};
|
||||
};
|
||||
|
||||
programs.distrobox.enable = true;
|
||||
services.podman.enable = true;
|
||||
|
||||
programs.rofi.enable = true;
|
||||
programs.rofi.plugins = [ pkgs.rofi-calc ];
|
||||
|
||||
services.polkit-gnome.enable = true;
|
||||
services.cliphist.enable = true;
|
||||
programs.btop.enable = true;
|
||||
services.udiskie.enable = true;
|
||||
programs.cava.enable = true;
|
||||
programs.equibop.enable = true;
|
||||
services.awww.enable = true;
|
||||
services.mpdris2.enable = true;
|
||||
programs.fastfetch.enable = true;
|
||||
programs.prismlauncher.enable = true;
|
||||
programs.fd.enable = true;
|
||||
programs.uv.enable = true;
|
||||
programs.satty.enable = true;
|
||||
programs.mpvpaper.enable = true;
|
||||
programs.obsidian.enable = true;
|
||||
programs.gcc.enable = true;
|
||||
programs.mpv.enable = true;
|
||||
programs.imv.enable = true;
|
||||
programs.aria2.enable = true;
|
||||
programs.qutebrowser = {
|
||||
enable = true;
|
||||
settings = {
|
||||
colors.webpage.preferred_color_scheme = "dark";
|
||||
auto_save.session = true;
|
||||
scrolling.smooth = true;
|
||||
content.autoplay = false;
|
||||
content.blocking.method = "both";
|
||||
url.default_page = "https://priv.au";
|
||||
};
|
||||
extraConfig = ''
|
||||
c.qt.args = ["disable-features=AcceleratedVideoDecodeLinuxGL"]
|
||||
'';
|
||||
keyBindings = {
|
||||
normal = {
|
||||
"M" = "hint links spawn mpv {hint-url}";
|
||||
};
|
||||
};
|
||||
searchEngines = {
|
||||
DEFAULT = "https://priv.au/search?q={}";
|
||||
};
|
||||
};
|
||||
|
||||
home.sessionPath = [
|
||||
"${config.home.homeDirectory}/.local/bin"
|
||||
];
|
||||
|
||||
home.sessionVariables = {
|
||||
EDITOR = "nvim";
|
||||
};
|
||||
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
interactiveShellInit = ''
|
||||
nitch
|
||||
set -g fish_key_bindings fish_hybrid_key_bindings
|
||||
set fish_greeting
|
||||
'';
|
||||
shellAliases = {
|
||||
ls = "eza -al --no-time --no-user --no-permissions --no-filesize";
|
||||
ll = "eza -la";
|
||||
cat = "bat";
|
||||
cd = "z";
|
||||
cp = "cp -v";
|
||||
ff = "fastfetch";
|
||||
grep = "grep -i";
|
||||
hyprland = "start-hyprland";
|
||||
mv = "mv -v";
|
||||
n = "nvim";
|
||||
py = "uv run";
|
||||
r = "rsync -avh --info=progress2";
|
||||
rm = "gomi";
|
||||
ssh = "kitty +kitten ssh";
|
||||
nd = "nix develop";
|
||||
};
|
||||
};
|
||||
|
||||
programs.zoxide.enable = true;
|
||||
programs.zoxide.enableFishIntegration = true;
|
||||
|
||||
home.file.".local/share/Steam/steam.cfg".text = ''
|
||||
BootStrapperInhibitAll=enable
|
||||
BootStrapperForceSelfUpdate=disable
|
||||
'';
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
# theme = {
|
||||
# name = "Materia-dark-compact";
|
||||
# package = pkgs.materia-theme-transparent;
|
||||
# };
|
||||
colorScheme = "dark";
|
||||
};
|
||||
|
||||
home.stateVersion = "26.05";
|
||||
}
|
||||
@@ -0,0 +1,225 @@
|
||||
{
|
||||
services.mpd = {
|
||||
enable = true;
|
||||
musicDirectory = "/home/user/Music";
|
||||
playlistDirectory = "/home/user/Music/Playlists";
|
||||
dbFile = "/home/user/.config/mpd/database";
|
||||
# log_file = "~/.config/mpd/log";
|
||||
extraConfig = ''
|
||||
save_absolute_paths_in_playlists "yes"
|
||||
metadata_to_use "+comment"
|
||||
audio_output {
|
||||
type "pipewire"
|
||||
name "Pipewire Sound Server"
|
||||
}
|
||||
audio_output {
|
||||
type "fifo"
|
||||
name "my_fifo"
|
||||
path "/tmp/mpd.fifo"
|
||||
format "44100:16:2"
|
||||
}
|
||||
auto_update "yes"
|
||||
'';
|
||||
network.listenAddress = "/home/user/.config/mpd/socket";
|
||||
};
|
||||
|
||||
services.mpdscribble = {
|
||||
enable = true;
|
||||
endpoints = {
|
||||
"last.fm" = {
|
||||
passwordFile = "/home/user/lastfm_password";
|
||||
username = "KeksNino";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.rmpc.enable = true;
|
||||
programs.rmpc.config = ''
|
||||
#![enable(implicit_some)]
|
||||
#![enable(unwrap_newtypes)]
|
||||
#![enable(unwrap_variant_newtypes)]
|
||||
(
|
||||
address: "/home/user/.config/mpd/socket",
|
||||
password: None,
|
||||
theme: Some("default"),
|
||||
cache_dir: Some("/home/user/Music/rmpc"),
|
||||
on_song_change: None,
|
||||
volume_step: 5,
|
||||
max_fps: 60,
|
||||
scrolloff: 0,
|
||||
wrap_navigation: false,
|
||||
enable_mouse: true,
|
||||
enable_config_hot_reload: true,
|
||||
status_update_interval_ms: 1000,
|
||||
rewind_to_start_sec: None,
|
||||
reflect_changes_to_playlist: false,
|
||||
select_current_song_on_change: false,
|
||||
browser_song_sort: [Track, Disc, Artist, Title],
|
||||
directories_sort: SortFormat(group_by_type: true, reverse: false),
|
||||
album_art: (
|
||||
method: Kitty,
|
||||
max_size_px: (width: 1200, height: 1200),
|
||||
disabled_protocols: ["http://", "https://"],
|
||||
vertical_align: Center,
|
||||
horizontal_align: Center,
|
||||
),
|
||||
keybinds: (
|
||||
global: {
|
||||
":": CommandMode,
|
||||
",": VolumeDown,
|
||||
"s": Stop,
|
||||
".": VolumeUp,
|
||||
"<Tab>": NextTab,
|
||||
"<S-Tab>": PreviousTab,
|
||||
"1": SwitchToTab("Queue"),
|
||||
"2": SwitchToTab("Files"),
|
||||
"3": SwitchToTab("Playlists"),
|
||||
"4": SwitchToTab("Artists"),
|
||||
"5": SwitchToTab("Albums"),
|
||||
"6": SwitchToTab("Search"),
|
||||
//"7": SwitchToTab("Album Artists"),
|
||||
"q": Quit,
|
||||
">": NextTrack,
|
||||
"p": TogglePause,
|
||||
"<": PreviousTrack,
|
||||
"f": SeekForward,
|
||||
"z": ToggleRepeat,
|
||||
"x": ToggleRandom,
|
||||
"c": ToggleConsume,
|
||||
"v": ToggleSingle,
|
||||
"b": SeekBack,
|
||||
"~": ShowHelp,
|
||||
"u": Update,
|
||||
"U": Rescan,
|
||||
"I": ShowCurrentSongInfo,
|
||||
"O": ShowOutputs,
|
||||
"P": ShowDecoders,
|
||||
"R": AddRandom,
|
||||
"<C-p>": ExternalCommand(command: ["/home/user/.scripts/check-playlist.sh"], description: "Check if selected song is already in a playlist"),
|
||||
},
|
||||
navigation: {
|
||||
"k": Up,
|
||||
"j": Down,
|
||||
"h": Left,
|
||||
"l": Right,
|
||||
"<Up>": Up,
|
||||
"<Down>": Down,
|
||||
"<Left>": Left,
|
||||
"<Right>": Right,
|
||||
"<C-k>": PaneUp,
|
||||
"<C-j>": PaneDown,
|
||||
"<C-h>": PaneLeft,
|
||||
"<C-l>": PaneRight,
|
||||
"<C-u>": UpHalf,
|
||||
"N": PreviousResult,
|
||||
"a": Add,
|
||||
"A": AddAll,
|
||||
"r": Rename,
|
||||
"n": NextResult,
|
||||
"g": Top,
|
||||
"<Space>": Select,
|
||||
"<C-Space>": InvertSelection,
|
||||
"G": Bottom,
|
||||
"<CR>": Confirm,
|
||||
"i": FocusInput,
|
||||
"J": MoveDown,
|
||||
"<C-d>": DownHalf,
|
||||
"/": EnterSearch,
|
||||
"<C-c>": Close,
|
||||
"<Esc>": Close,
|
||||
"K": MoveUp,
|
||||
"D": Delete,
|
||||
"B": ShowInfo,
|
||||
},
|
||||
queue: {
|
||||
"D": DeleteAll,
|
||||
"<CR>": Play,
|
||||
"<C-s>": Save,
|
||||
"a": AddToPlaylist,
|
||||
"d": Delete,
|
||||
"C": JumpToCurrent,
|
||||
"X": Shuffle,
|
||||
},
|
||||
),
|
||||
search: (
|
||||
case_sensitive: false,
|
||||
mode: Contains,
|
||||
tags: [
|
||||
(value: "any", label: "Any Tag"),
|
||||
(value: "artist", label: "Artist"),
|
||||
(value: "album", label: "Album"),
|
||||
(value: "albumartist", label: "Album Artist"),
|
||||
(value: "title", label: "Title"),
|
||||
(value: "filename", label: "Filename"),
|
||||
(value: "genre", label: "Genre"),
|
||||
],
|
||||
),
|
||||
artists: (
|
||||
album_display_mode: SplitByDate,
|
||||
album_sort_by: Date,
|
||||
),
|
||||
cava: (
|
||||
framerate: 60,
|
||||
autosens: true,
|
||||
sensitivity: 110, // default 100
|
||||
lower_cutoff_freq: 50, // not passed to cava if not provided
|
||||
higher_cutoff_freq: 10000, // not passed to cava if not provided
|
||||
input: (
|
||||
method: Fifo,
|
||||
source: "/tmp/mpd.fifo",
|
||||
sample_rate: 44100,
|
||||
channels: 2,
|
||||
sample_bits: 16,
|
||||
),
|
||||
smoothing: (
|
||||
noise_reduction: 77,
|
||||
monstercat: true,
|
||||
waves: false,
|
||||
),
|
||||
eq: []
|
||||
),
|
||||
tabs: [
|
||||
(
|
||||
name: "Queue",
|
||||
pane: Split(
|
||||
direction: Horizontal,
|
||||
panes: [
|
||||
(size: "40%", pane: Pane(AlbumArt)),
|
||||
(size: "60%", pane: Split(
|
||||
direction: Vertical,
|
||||
panes: [
|
||||
(size: "95%", pane: Pane(Queue)),
|
||||
(size: "30%", pane: Pane(Cava)),
|
||||
],
|
||||
)),
|
||||
],
|
||||
),
|
||||
),
|
||||
(
|
||||
name: "Files",
|
||||
pane: Pane(Directories),
|
||||
),
|
||||
(
|
||||
name: "Playlists",
|
||||
pane: Pane(Playlists),
|
||||
),
|
||||
(
|
||||
name: "Artists",
|
||||
pane: Pane(Artists),
|
||||
),
|
||||
(
|
||||
name: "Albums",
|
||||
pane: Pane(Albums),
|
||||
),
|
||||
(
|
||||
name: "Search",
|
||||
pane: Pane(Search),
|
||||
),
|
||||
//(
|
||||
// name: "Album Artists",
|
||||
// pane: Pane(AlbumArtists),
|
||||
//),
|
||||
],
|
||||
)
|
||||
'';
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
{ pkgs, ... }: {
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
wget
|
||||
kitty
|
||||
gdu
|
||||
jamesdsp
|
||||
grimblast
|
||||
nitch
|
||||
wl-clipboard
|
||||
unzip
|
||||
_7zz
|
||||
tree-sitter
|
||||
nodejs
|
||||
nixfmt
|
||||
decibels
|
||||
nwg-look
|
||||
mpc
|
||||
python3
|
||||
basedpyright
|
||||
waypaper
|
||||
renoise
|
||||
pwvucontrol
|
||||
lsof
|
||||
picard
|
||||
exiftool
|
||||
tlrc
|
||||
libnotify
|
||||
trash-cli
|
||||
spek
|
||||
ffmpeg
|
||||
# wine
|
||||
ripgrep
|
||||
nemo-with-extensions
|
||||
papirus-icon-theme
|
||||
rust-analyzer
|
||||
scdl
|
||||
motrix-next
|
||||
onefetch
|
||||
smartmontools
|
||||
qpwgraph
|
||||
pipewire.jack
|
||||
sysz
|
||||
gomi
|
||||
noctalia-shell
|
||||
discordchatexporter-desktop
|
||||
act
|
||||
ayugram-desktop
|
||||
playerctl
|
||||
musicpresence
|
||||
nixd
|
||||
libsForQt5.qt5ct
|
||||
qt6Packages.qt6ct
|
||||
kdePackages.breeze
|
||||
kdePackages.breeze.qt5
|
||||
gnumake
|
||||
samrewritten
|
||||
gale
|
||||
losslesscut
|
||||
tree
|
||||
stow
|
||||
];
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
nerd-fonts.caskaydia-mono
|
||||
nerd-fonts.symbols-only
|
||||
nerd-fonts.jetbrains-mono
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
./packages.nix
|
||||
../../modules/server
|
||||
];
|
||||
|
||||
nix.settings.experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
|
||||
fileSystems."/media/music" = {
|
||||
device = "/dev/disk/by-uuid/8e6ae06e-a4b5-4ac8-ad15-cb288b14715f";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/home/user/backup" = {
|
||||
device = "/dev/disk/by-uuid/db7d96f1-5c72-42dc-abc1-00de9b73f017";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
networking.hostId = "6054e036";
|
||||
networking.hostName = "nixos-music";
|
||||
networking.networkmanager.enable = true;
|
||||
networking.firewall.enable = false;
|
||||
|
||||
time.timeZone = "Europe/Berlin";
|
||||
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
console = {
|
||||
font = "Lat2-Terminus16";
|
||||
keyMap = "de";
|
||||
};
|
||||
|
||||
programs.fish.enable = true;
|
||||
users.users.user = {
|
||||
isNormalUser = true;
|
||||
description = "user";
|
||||
uid = 1000;
|
||||
extraGroups = [
|
||||
"networkmanager"
|
||||
"wheel"
|
||||
"docker"
|
||||
];
|
||||
shell = pkgs.fish;
|
||||
};
|
||||
|
||||
services.tailscale.enable = true;
|
||||
services.rsync.enable = true;
|
||||
programs.nix-ld.enable = true;
|
||||
programs.nh.enable = true;
|
||||
programs.neovim.enable = true;
|
||||
programs.tmux.enable = true;
|
||||
programs.bat.enable = true;
|
||||
programs.git = {
|
||||
enable = true;
|
||||
config = {
|
||||
user = {
|
||||
name = "KeksNino";
|
||||
email = "KeksNino@proton.me";
|
||||
};
|
||||
init = {
|
||||
defaultBranch = "main";
|
||||
};
|
||||
push = {
|
||||
autoSetupRemote = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
settings = {
|
||||
PasswordAuthentication = false;
|
||||
PermitRootLogin = "no";
|
||||
};
|
||||
};
|
||||
|
||||
system.stateVersion = "26.05";
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [
|
||||
"xhci_pci"
|
||||
"ahci"
|
||||
"usb_storage"
|
||||
"uas"
|
||||
"sd_mod"
|
||||
];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "zpool/root";
|
||||
fsType = "zfs";
|
||||
};
|
||||
|
||||
fileSystems."/var" = {
|
||||
device = "zpool/var";
|
||||
fsType = "zfs";
|
||||
};
|
||||
|
||||
fileSystems."/nix" = {
|
||||
device = "zpool/nix";
|
||||
fsType = "zfs";
|
||||
};
|
||||
|
||||
fileSystems."/home" = {
|
||||
device = "zpool/home";
|
||||
fsType = "zfs";
|
||||
};
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/FCFD-4472";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0022"
|
||||
"dmask=0022"
|
||||
];
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
{
|
||||
programs.beets.enable = true;
|
||||
|
||||
# programs.beets.package = pkgs.beets.override {
|
||||
# pluginOverrides = {
|
||||
# filetote = {
|
||||
# enable = true;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
|
||||
programs.beets.settings = {
|
||||
directory = "/home/user/Music/Tracks";
|
||||
|
||||
plugins = [
|
||||
"fetchart"
|
||||
"badfiles"
|
||||
"edit"
|
||||
"fish"
|
||||
"hook"
|
||||
];
|
||||
|
||||
import = {
|
||||
copy = false;
|
||||
move = true;
|
||||
autotag = false;
|
||||
write = true;
|
||||
};
|
||||
|
||||
paths = {
|
||||
default = "$albumartist/$album/$track. $artist - $title";
|
||||
};
|
||||
|
||||
fetchart = {
|
||||
auto = true;
|
||||
sources = [ "filesystem" ];
|
||||
};
|
||||
|
||||
badfiles = {
|
||||
check_on_import = true;
|
||||
};
|
||||
|
||||
hook = {
|
||||
hooks = [
|
||||
{
|
||||
event = "item_imported";
|
||||
command = "echo test";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{ pkgs, config, ... }:
|
||||
{
|
||||
imports = [
|
||||
./beets.nix
|
||||
];
|
||||
|
||||
home.username = "user";
|
||||
home.homeDirectory = "/home/user";
|
||||
|
||||
programs.yazi.enable = true;
|
||||
programs.yazi.enableFishIntegration = true;
|
||||
|
||||
programs.fzf.enable = true;
|
||||
programs.fzf.enableFishIntegration = true;
|
||||
|
||||
programs.zoxide.enable = true;
|
||||
programs.zoxide.enableFishIntegration = true;
|
||||
|
||||
programs.gcc.enable = true;
|
||||
|
||||
programs.eza = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
git = true;
|
||||
icons = "always";
|
||||
extraOptions = [
|
||||
"-1"
|
||||
];
|
||||
};
|
||||
|
||||
programs.btop.enable = true;
|
||||
programs.fastfetch.enable = true;
|
||||
programs.fd.enable = true;
|
||||
|
||||
home.sessionVariables = {
|
||||
EDITOR = "nvim";
|
||||
};
|
||||
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
interactiveShellInit = ''
|
||||
set -g fish_key_bindings fish_hybrid_key_bindings
|
||||
set fish_greeting
|
||||
'';
|
||||
shellAliases = {
|
||||
ls = "eza -al --no-time --no-user --no-permissions --no-filesize";
|
||||
ll = "eza -la";
|
||||
cat = "bat";
|
||||
cd = "z";
|
||||
cp = "cp -v";
|
||||
ff = "fastfetch";
|
||||
grep = "grep -i";
|
||||
mv = "mv -v";
|
||||
n = "nvim";
|
||||
r = "rsync -avh --info=progress2";
|
||||
rm = "gomi";
|
||||
};
|
||||
};
|
||||
|
||||
home.stateVersion = "26.05";
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{ pkgs, ... }: {
|
||||
|
||||
environment.systemPackages = (
|
||||
with pkgs;
|
||||
[
|
||||
wget
|
||||
nixfmt
|
||||
tree-sitter
|
||||
lsof
|
||||
exiftool
|
||||
trash-cli
|
||||
ffmpeg
|
||||
unzip
|
||||
scdl
|
||||
aria2
|
||||
nodejs
|
||||
gomi
|
||||
bun
|
||||
croc
|
||||
mp3val
|
||||
flac
|
||||
(python314.withPackages (
|
||||
ps: with ps; [
|
||||
requests
|
||||
python-dotenv
|
||||
]
|
||||
))
|
||||
]
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user