diff --git a/wlin003_GamingPC/packages/flatpak.nix b/wlin003_GamingPC/packages/flatpak.nix new file mode 100644 index 0000000..6eeaaf6 --- /dev/null +++ b/wlin003_GamingPC/packages/flatpak.nix @@ -0,0 +1,14 @@ +{ config, pkgs, ... }: + +{ + + services.flatpak.enable = true; + + systemd.services.flatpak-repo = { + wantedBy = [ "multi-user.target" ]; + path = [ pkgs.flatpak ]; + script = '' + flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo + ''; + }; +} \ No newline at end of file diff --git a/wlin003_GamingPC/packages/home-manager.nix b/wlin003_GamingPC/packages/home-manager.nix new file mode 100644 index 0000000..1a6984c --- /dev/null +++ b/wlin003_GamingPC/packages/home-manager.nix @@ -0,0 +1,74 @@ +{ config, lib, pkgs, osConfig, ... }: +let + home-manager = builtins.fetchTarball "https://github.com/nix-community/home-manager/archive/release-24.11.tar.gz"; +in +{ + + imports = [ + (import "${home-manager}/nixos") + ]; + + home-manager.backupFileExtension = "backup"; + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + + home-manager.users.zulumann = { + home.stateVersion = "24.11"; + home.homeDirectory = "/home/zulumann"; + home.packages = with pkgs; [ + neofetch + ]; + + programs.home-manager.enable = true; + + home.file = { + ".profile" = { + text = '' + export GTK_THEME=Arc-Dark + ''; + }; + + ".rsync-exlude" = { + text = '' + - Downloads + - Games + - Share-Cloud + - Share-Priv + - Share-SMB + - Share-VM + - Sync + - VM-Image + - Code Cache + - cache* + - Cache* + - Cache_* + - *_cache + - *Cache + - DawnGraphiteCache + - log* + - logs + - tmp + - Trash + + .config + - .config/syncthing + - .config/unity3d + - .config/ownCloud + + .local + - .local/state + - .local/share/containers + - .local/share/flatpak + - .local/share/keyrings + - .local/share/nomic.ai + - .local/share/Steam + + .jd2 + + .conkyrc + - .* + - *.LOG + - LOG + - *.old + ''; + }; + }; + }; + +} diff --git a/wlin003_GamingPC/packages/mpd.nix b/wlin003_GamingPC/packages/mpd.nix new file mode 100644 index 0000000..3cebc83 --- /dev/null +++ b/wlin003_GamingPC/packages/mpd.nix @@ -0,0 +1,44 @@ +{ config, pkgs, ... }: + +# aplay -l +# aplay --list-pcm +# pacmd list-modules +# pacmd list-cards + +{ + services.mpd = { + enable = true; + user = "zulumann"; + musicDirectory = "/run/media/zulumann/HDD1.5TB/Audio/Musik"; + playlistDirectory = "/run/media/zulumann/HDD1.5TB/Audio/Playlists"; + network.listenAddress = "any"; + startWhenNeeded = true; # systemd feature: only start MPD service upon connection to its socket + extraConfig = '' + audio_output { + type "alsa" + name "My ALSA" + device "hw:0,0" # optional + format "44100:16:2" # optional + mixer_type "hardware" + mixer_device "default" + mixer_control "PCM" + } + + audio_output { + type "pipewire" + name "My PipeWire Output" + } + ''; + }; + + systemd.services.mpd.environment = { + # https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/609 + XDG_RUNTIME_DIR = + "/run/user/1000"; # User-id 1000 must match above user. MPD will look inside this directory for the PipeWire socket. + }; + + environment.systemPackages = with pkgs; [ + #gmpc # Gnome Music Player Client + cantata + ]; +} diff --git a/wlin003_GamingPC/packages/nix-ld.nix b/wlin003_GamingPC/packages/nix-ld.nix new file mode 100644 index 0000000..28ab595 --- /dev/null +++ b/wlin003_GamingPC/packages/nix-ld.nix @@ -0,0 +1,63 @@ +{ config, pkgs, ... }: + +{ + + # Enable LD Fix + programs.nix-ld.enable = true; + programs.nix-ld.libraries = with pkgs; [ + # Add any missing dynamic libraries for unpackaged + # programs here, NOT in environment.systemPackages + alsa-lib + at-spi2-atk + at-spi2-core + atk + cairo + cups + curl + dbus + expat + fontconfig + freetype + fuse3 + gdk-pixbuf + glib + gtk3 + icu + libGL + libappindicator-gtk3 + libdrm + libglvnd + libnotify + libpulseaudio + libunwind + libusb1 + libuuid + libxkbcommon + libxml2 + mesa + nspr + nss + openssl + pango + pipewire + stdenv.cc.cc + systemd + vulkan-loader + xorg.libX11 + xorg.libXScrnSaver + xorg.libXcomposite + xorg.libXcursor + xorg.libXdamage + xorg.libXext + xorg.libXfixes + xorg.libXi + xorg.libXrandr + xorg.libXrender + xorg.libXtst + xorg.libxcb + xorg.libxkbfile + xorg.libxshmfence + zlib + ]; + +} diff --git a/wlin003_GamingPC/packages/packages.nix b/wlin003_GamingPC/packages/packages.nix new file mode 100644 index 0000000..bde942b --- /dev/null +++ b/wlin003_GamingPC/packages/packages.nix @@ -0,0 +1,266 @@ +{ config, pkgs, ... }: + +let + unstableTarball = + fetchTarball + https://github.com/NixOS/nixpkgs/archive/nixos-unstable.tar.gz; +in +{ + imports = + [ # Include the results of the hardware scan. + /etc/nixos/hardware-configuration.nix + ]; + + nixpkgs.config = { + packageOverrides = pkgs: { + unstable = import unstableTarball { + config = config.nixpkgs.config; + }; + }; + }; + + # Allow unfree packages + nixpkgs.config = { + allowUnfree = true; + permittedInsecurePackages = [ ]; + }; + + # Enable Fonts + fonts = { + fontDir.enable = true; + enableGhostscriptFonts = true; + packages = with pkgs; [ + corefonts + terminus_font + ubuntu_font_family + liberation_ttf + dejavu_fonts + ]; + }; + + # Enable Java + programs.java = { + enable = true; + package = pkgs.jdk11; + }; + + environment.systemPackages = with pkgs; [ + # --------------------------------------------------------------------- + # Core Pakages + # --------------------------------------------------------------------- + # ansible # Radically simple IT automation + curl # A command line tool for transferring files with URL syntax + dnsutils # Domain name server + diffutils # Commands for showing the differences between files (diff, cmp, etc.) + mc # File Manager and User Shell for the GNU Project + htop # An interactive process viewer + rsync # Fast incremental file transfer utility + wget # Tool for retrieving files using HTTP, HTTPS, and FTP + nettools # A set of tools for controlling the network subsystem + ncdu # Disk usage analyzer with an ncurses interface + # nfs-utils # Linux user-space NFS utilities + pciutils # inspecting and manipulating configuration of PCI devices + pwgen # Password generator + # pwgen-secure # Secure password generation library to replace pwgen + renameutils # A set of programs to make renaming of files faster + rename # Rename files according to a Perl rewrite expression + smartmontools # Tools for monitoring the health of hard drives + imagemagick # A software suite to create, edit, compose, or convert bitmap images + lshw # Provide detailed information on the hardware configuration + lsof # A tool to list open files + unrar # Utility for RAR archives + unzip # An extraction utility for archives compressed + zip # Compressor/archiver for creating and modifying zipfiles + p7zip # A new p7zip fork with additional codecs + + # --------------------------------------------------------------------- + # Accessories + # --------------------------------------------------------------------- + authenticator # Two-factor authentication code generator for GNOME + bleachbit # A program to clean your computer + # czkawka # A simple, fast and easy to use app to remove unnecessary files + bitwarden # bitwarden-desktop + # deja-dup # A simple backup tool + # gnome-decoder # Scan and Generate QR Codes + # gnome-obfuscate # Censor private information + # gnome-maps # A map application for GNOME 3 + # unstable.gpt4all # A free-to-use, locally running, privacy-aware chatbot. No GPU or internet required + # fsearch # A fast file search utility for Unix-like systems based on GTK+3 + cherrytree # An hierarchical note taking application + # caffeine-ng # Status bar application to temporarily inhibit screensaver and sleep mode + doublecmd # Two-panel graphical file manager written in Pascal + freefilesync # Open Source File Synchronization & Backup Software + shutter # Screenshot and annotation tool + gparted # Graphical disk partitioning tool + ulauncher # A fast application launcher for Linux + # synapse # Semantic launcher to start applications and find relevant files + # pika-backup # Simple backups based on borg + owncloud-client # Synchronise your ownCloud + keepassxc # Offline password manager + # veracrypt # Free Open-Source filesystem on-the-fly encryption + + # --------------------------------------------------------------------- + # Andriod software + # --------------------------------------------------------------------- + # android-file-transfer # Reliable MTP client with minimalistic UI provides: aft-mtp-cli android-file-transfer aft-mtp-mount + # android-tools # Android SDK platform tools + # waydroid # Waydroid is a container-based approach to boot a full Android system on a regular GNU/Linux system + + # --------------------------------------------------------------------- + # Codec + # --------------------------------------------------------------------- + # ffmpeg_5-full # A complete, cross-platform solution to record, convert and stream audio and video + # ffmpeg_7-full # A complete, cross-platform solution to record, convert and stream audio and video + ffmpegthumbnailer # A lightweight video thumbnailer + gst_all_1.gst-vaapi + gst_all_1.gst-libav + gst_all_1.gst-plugins-bad + gst_all_1.gst-plugins-ugly + gst_all_1.gst-plugins-good + gst_all_1.gst-plugins-base + lame # A high quality MPEG Audio Layer III (MP3) encoder + wavpack # Hybrid audio compression format + x264 # Library for encoding H264/AVC video streams + x265 # Library for encoding H.265/HEVC video streams + mpg123 # Fast console MPEG Audio Player and decoder library + + #----------------------------------------------------------------- + # DVD / Bluray + #----------------------------------------------------------------- + # asunder # A graphical Audio CD ripper and encoder for Linux + # libbluray # Library to access Blu-Ray disks for video playback + # libaacs # Library to access AACS protected Blu-Ray disks + # libdvdcss # A library for decrypting DVDs + # libisofs # A library to create an ISO-9660 filesystem with extensions like RockRidge or Joliet + # libburn # A library by which preformatted data get onto optical media: CD, DVD, BD (Blu-Ray) + # xfce.xfburn # Disc burner and project creator for Xfce + + #----------------------------------------------------------------- + # Emulatoren + #----------------------------------------------------------------- + # ppsspp-qt # Playstation Portable emulator + # pcsx2 # Playstation 2 emulator + + # --------------------------------------------------------------------- + # Graphics + # --------------------------------------------------------------------- + simple-scan # Simple scanning utility + # gimp-with-plugins # The GNU Image Manipulation Program + pinta # Drawing/editing program modeled after Paint.NET + # shotwell # Popular photo organizer for the GNOME desktop + + #----------------------------------------------------------------- + # Gaming + #----------------------------------------------------------------- + mangohud # A Vulkan and OpenGL overlay for monitoring FPS + goverlay # Graphical UI to help manage Linux overlays + # heroic # A Native GOG, Epic, and Amazon Games Launcher + # protonup-ng # CLI program and API to automate the installation and update Proton-GE + # protonup-qt # manage Proton-GE and Luxtorpeda for Steam and Wine-GE + xboxdrv # Xbox/Xbox360 gamepad driver + + #----------------------------------------------------------------- + # Tools + #----------------------------------------------------------------- + # gpu-viewer # A front-end to glxinfo, vulkaninfo, clinfo and es2_info + # cpu-x # Software that gathers information on CPU, motherboard and more + + #----------------------------------------------------------------- + # Internet + #----------------------------------------------------------------- + angryipscanner # fast and friendly network scanner + brave # Brave Browser + freetube # An Open Source YouTube app for privacy + filezilla # Graphical FTP, FTPS and SFTP client + # protonvpn-gui # Proton VPN GTK app + # signal-desktop # Private, simple, and secure messenger + tdesktop # Telegram Desktop + tor-browser # Tor Browser + # qtox # Qt Tox client + # remmina # Remote desktop client written in GTK + mumble # Low-latency, high quality voice chat software + # liferea # A GTK-based news feed aggregator + # uget # Download manager using GTK and libcurl + # vivaldi # Browser for our Friends, powerful and personal + # vivaldi-ffmpeg-codecs # Additional support for proprietary codecs for Vivaldi + + #----------------------------------------------------------------- + # Office + #----------------------------------------------------------------- + evolution # application that provides integrated mail, calendaring and address book + # gscan2pdf # GUI to produce PDFs or DjVus from scanned documents + foliate # A simple and modern GTK eBook reader + # paperwork # personal document manager for scanned documents + pdfarranger # Merge or split pdf documents and rotate, crop and rearrange their pages + # onlyoffice-bin_latest # Office suite that combines text, spreadsheet and presentation editors allowing to create + libreoffice-fresh # Comprehensive, professional-quality productivity suite, a variant of openoffice.org + # qownnotes # Plain-text file notepad and todo-list manager with markdown support and Nextcloud/ownCloud integration + # joplin-desktop # An open source note taking and to-do application with synchronisation capabilities + # trilium-desktop # Hierarchical note taking application with focus on building large personal knowledge bases + # xournalpp # Xournal++ is a handwriting Notetaking software with PDF annotation support + + # --------------------------------------------------------------------- + # Programming + # --------------------------------------------------------------------- + git # Distributed version control system + # diffuse # Graphical tool for merging and comparing text files + meld # Visual diff and merge tool + vscodium # Open source source code editor developed by Microsoft + + # --------------------------------------------------------------------- + # Themes + # --------------------------------------------------------------------- + arc-theme # Flat theme with transparent elements for GTK 3, GTK 2 and Gnome Shell + papirus-icon-theme # Pixel perfect icon theme for Linux + numix-cursor-theme # Numix cursor theme + + #----------------------------------------------------------------- + # Multimedia + #----------------------------------------------------------------- + audacious # A lightweight and versatile audio player + audacious-plugins # Plugins for Audacious music player + # easytag # View and edit tags for various audio files + # mediainfo-gui # Supplies technical and tag information about a video or audio file + # soundconverter # Leading audio file converter for the GNOME Desktop + # strawberry # Music player and music collection organizer + # obs-studio # Free and open source software for video recording and live streaming + # guvcview # A simple interface for devices supported by the linux UVC driver + # kazam # A screencasting program created with design in mind + # video-trimmer # Trim videos quickly + # radiotray-ng # An internet radio player + # jellyfin-media-player # Jellyfin Desktop Client based on Plex Media Player + vlc # Cross-platform media player and streaming server + + # --------------------------------------------------------------------- + # NIX-Tools + # --------------------------------------------------------------------- + niv # Nix dependency management + nix-bash-completions # Bash completions for Nix, NixOS, and NixOps + nix-index # A files database for nixpkgs + nix-prefetch-git # nix-prefetch-git + # nixos-generators # Collection of image builders + + # --------------------------------------------------------------------- + # Spell checker + # --------------------------------------------------------------------- + aspell # Spell checker for many languages + aspellDicts.de # Aspell dictionary for German + hunspell # Spell checker + hunspellDicts.de-de # Hunspell dictionary for German + hyphen # A text hyphenation library + # languagetool # A proofreading program for English, German ... + + # --------------------------------------------------------------------- + # Openvpn + # --------------------------------------------------------------------- + #openvpn # A robust and highly flexible tunneling application + #networkmanager-openvpn + #gnome.networkmanager-openvpn + + # --------------------------------------------------------------------- + # Library + # --------------------------------------------------------------------- + # libwacom # Libraries, configuration, and diagnostic tools for Wacom tablets + ]; + +}