From f7634949fa4e744cd5a930505ac4e9b4f81dc530 Mon Sep 17 00:00:00 2001 From: ene Date: Sat, 11 Feb 2023 12:07:32 +0100 Subject: Feat: Switch to default.nix --- system/boot/boot.nix | 29 -- system/boot/default.nix | 29 ++ system/default.nix | 12 +- system/fileSystemLayouts/default.nix | 58 ++++ system/filesystemLayouts/filesystemLayouts.nix | 58 ---- system/locale/default.nix | 26 ++ system/locale/locale.nix | 26 -- system/packages/default.nix | 365 +++++++++++++++++++++++++ system/packages/packages.nix | 365 ------------------------- system/sound/default.nix | 18 ++ system/sound/sound.nix | 18 -- system/users/default.nix | 17 ++ system/users/users.nix | 17 -- 13 files changed, 519 insertions(+), 519 deletions(-) delete mode 100644 system/boot/boot.nix create mode 100644 system/boot/default.nix create mode 100644 system/fileSystemLayouts/default.nix delete mode 100644 system/filesystemLayouts/filesystemLayouts.nix create mode 100644 system/locale/default.nix delete mode 100644 system/locale/locale.nix create mode 100644 system/packages/default.nix delete mode 100644 system/packages/packages.nix create mode 100644 system/sound/default.nix delete mode 100644 system/sound/sound.nix create mode 100644 system/users/default.nix delete mode 100644 system/users/users.nix (limited to 'system') diff --git a/system/boot/boot.nix b/system/boot/boot.nix deleted file mode 100644 index f978d26a..00000000 --- a/system/boot/boot.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ - config, - pkgs, - ... -}: { - boot = { - initrd = { - #compressor = "lz4"; - #compressorArgs = ["-9"]; - kernelModules = ["nvme" "btrfs"]; - }; - - kernelPackages = pkgs.linuxPackages_latest; - loader = { - grub = { - enable = true; - version = 2; - theme = pkgs.nixos-grub2-theme; - splashImage = ./boot_pictures/gnu.png; - efiSupport = true; - device = "nodev"; # only for efi - }; - efi = { - canTouchEfiVariables = true; - efiSysMountPoint = "/boot"; - }; - }; - }; -} diff --git a/system/boot/default.nix b/system/boot/default.nix new file mode 100644 index 00000000..f978d26a --- /dev/null +++ b/system/boot/default.nix @@ -0,0 +1,29 @@ +{ + config, + pkgs, + ... +}: { + boot = { + initrd = { + #compressor = "lz4"; + #compressorArgs = ["-9"]; + kernelModules = ["nvme" "btrfs"]; + }; + + kernelPackages = pkgs.linuxPackages_latest; + loader = { + grub = { + enable = true; + version = 2; + theme = pkgs.nixos-grub2-theme; + splashImage = ./boot_pictures/gnu.png; + efiSupport = true; + device = "nodev"; # only for efi + }; + efi = { + canTouchEfiVariables = true; + efiSysMountPoint = "/boot"; + }; + }; + }; +} diff --git a/system/default.nix b/system/default.nix index 17e78968..81949ce4 100644 --- a/system/default.nix +++ b/system/default.nix @@ -1,10 +1,10 @@ {config, ...}: { imports = [ - ./boot/boot.nix - ./filesystemLayouts/filesystemLayouts.nix - ./locale/locale.nix - ./packages/packages.nix - ./sound/sound.nix - ./users/users.nix + ./boot + ./users # this needs to be before fileSystemLayouts + ./fileSystemLayouts + ./locale + ./packages + ./sound ]; } diff --git a/system/fileSystemLayouts/default.nix b/system/fileSystemLayouts/default.nix new file mode 100644 index 00000000..bdbad630 --- /dev/null +++ b/system/fileSystemLayouts/default.nix @@ -0,0 +1,58 @@ +{ + config, + lib, + ... +}: +with lib; let + cfg = config.system.fileSystemLayouts; +in { + options.system.fileSystemLayouts = { + enable = mkEnableOption (mdDoc "fileSystemLayout"); + mainDisk = mkOption { + type = lib.types.path; + example = literalExpression "/dev/disk/by-uuid/0442cb6d-f13a-4635-b487-fa76189774c5"; + description = lib.mdDoc "Path to the main disk"; + }; + efiDisk = mkOption { + type = lib.types.path; + example = literalExpression "/dev/disk/by-uuid/5143-6136"; + description = lib.mdDoc "Path to the main disk"; + }; + }; + + config = mkIf cfg.enable { + fileSystems = { + "/" = { + device = "none"; + fsType = "tmpfs"; + options = ["defaults" "size=2G" "mode=755"]; + }; + "/nix" = { + device = cfg.mainDisk; + fsType = "btrfs"; + options = ["subvol=nix" "compress-force=zstd:15"]; + }; + "/srv" = { + device = cfg.mainDisk; + fsType = "btrfs"; + options = ["subvol=storage" "compress-force=zstd:15"]; + }; + "/boot" = { + device = cfg.efiDisk; + fsType = "vfat"; + }; + + "/etc/nixos" = { + device = "/srv/nix-config"; + options = ["bind"]; + }; + + "${config.users.users.soispha.home}/.config" = { + device = "none"; + fsType = "tmpfs"; + options = ["defaults" "size=1G" "mode=755"]; + }; + }; + swapDevices = []; + }; +} diff --git a/system/filesystemLayouts/filesystemLayouts.nix b/system/filesystemLayouts/filesystemLayouts.nix deleted file mode 100644 index a4215512..00000000 --- a/system/filesystemLayouts/filesystemLayouts.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ - config, - lib, - ... -}: -with lib; let - cfg = config.system.filesystemLayouts; -in { - options.system.filesystemLayouts = { - enable = mkEnableOption (mdDoc "filesysetemLayout"); - mainDisk = mkOption { - type = lib.types.path; - example = literalExpression "/dev/disk/by-uuid/0442cb6d-f13a-4635-b487-fa76189774c5"; - description = lib.mdDoc "Path to the main disk"; - }; - efiDisk = mkOption { - type = lib.types.path; - example = literalExpression "/dev/disk/by-uuid/5143-6136"; - description = lib.mdDoc "Path to the main disk"; - }; - }; - - config = mkIf cfg.enable { - fileSystems = { - "/" = { - device = "none"; - fsType = "tmpfs"; - options = ["defaults" "size=2G" "mode=755"]; - }; - "/nix" = { - device = cfg.mainDisk; - fsType = "btrfs"; - options = ["subvol=nix" "compress-force=zstd:15"]; - }; - "/srv" = { - device = cfg.mainDisk; - fsType = "btrfs"; - options = ["subvol=storage" "compress-force=zstd:15"]; - }; - "/boot" = { - device = cfg.efiDisk; - fsType = "vfat"; - }; - - "/etc/nixos" = { - device = "/srv/nix-config"; - options = ["bind"]; - }; - - "${config.users.soispha.home}/.config" = { - device = "none"; - fsType = "tmpfs"; - options = ["defaults" "size=1G" "mode=755"]; - }; - }; - swapDevices = []; - }; -} diff --git a/system/locale/default.nix b/system/locale/default.nix new file mode 100644 index 00000000..2fcc2115 --- /dev/null +++ b/system/locale/default.nix @@ -0,0 +1,26 @@ +{ + config, + pkgs, + ... +}: { + # 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"; + }; + + # Configure console keymap + console.keyMap = "dvorak"; +} diff --git a/system/locale/locale.nix b/system/locale/locale.nix deleted file mode 100644 index 2fcc2115..00000000 --- a/system/locale/locale.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - config, - pkgs, - ... -}: { - # 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"; - }; - - # Configure console keymap - console.keyMap = "dvorak"; -} diff --git a/system/packages/default.nix b/system/packages/default.nix new file mode 100644 index 00000000..6eb25681 --- /dev/null +++ b/system/packages/default.nix @@ -0,0 +1,365 @@ +{pkgs, ...}: +with pkgs; let + Gui = { + Terminals = [ + alacritty # terminal emulator + ]; + + Browsers = [ + firefox # web browser + ungoogled-chromium # web browser (only for web programming) + ]; + + ImageManipulation = [ + krita # new, and better (KDE) + gimp # conservative, and old (GNOME) + ]; + + Social = [ + mumble # voice chat software (client) + nheko # Matrix Desktop client + ]; + + Misc = [ + kalzium # Periodic Table of Elements + keepassxc # password manager + onlykey # OnlyKey Chrome Desktop App + steam # Valve's digital software delivery system + ]; + }; + + TuiCli = { + Networking = { + OneOffThings = [ + #bind # A complete, highly portable implementation of the DNS protocol + #firewalld # Firewall daemon with D-Bus interface + #ngrep # A grep-like utility that allows you to search for network packets on an interface. + #openbsd-netcat # TCP/IP swiss army knife. OpenBSD variant. + ]; + + Misc = [ + lftp # FTP client + openssh # SSH client + ]; + }; + + EyeCandy = [ + banner # Print large banners to ASCII terminals + cmatrix # A curses-based scrolling 'Matrix'-like screen + hyfetch # Neofetch with LGBTQ pride flags. + ]; + + Backups = [ + rclone # Sync files to and from Google Drive, S3, Swift, Cloudfiles, Dropbox and Google Cloud Storage + snapper # A tool for managing BTRFS and LVM snapshots. It can create, diff and restore snapshots and provides timelined auto-snapping. + #snap-sync # Use snapper snapshots to backup to external drive + ]; + + Misc = [ + android-file-transfer # Android MTP client with minimalistic UI + #python39Packages.docx2txt # Recovers text from DOCX files, with good formatting. + btop # Interactive process viewer (maybe better than htop) + nerdfonts # Patched font Source Code Pro from nerd fonts library + xdg-ninja # A shell script which checks your $HOME for unwanted files and directories. + yokadi # Command line oriented, sqlite powered, todo list + ]; + + WM = { + river = [river]; # A dynamic tiling wayland compositor + + CLITools = [ + lswt # List Wayland toplevels + wlopm # Wayland output power management. + wlr-randr # Utility to manage outputs + wl-clipboard # Command-line copy/paste utilities + gammastep # Adjust the color temperature of your screen according to your surroundings. + ]; + + Components = [ + yambar # status panel + swaybg # Wallpaper + mako # notification daemon + bemenu # Run prompt + ]; + + Media = [ + slurp # Select a region (used in the coordinates for grim/maim) + grim # Screenshot utility + #maim # Screenshot utility + wf-recorder # Screen recorder + ]; + + Idle = [ + swayidle # Idle management daemon + swaylock # Screen locker + ]; + }; + + LF = { + lf = [lf]; # A terminal file manager inspired by ranger + + Functions = [ + broot # Fuzzy Search + tree + cd + xdragon # Simple drag-and-drop source/sink + trash-cli # Command line trashcan (recycle bin) interface + ]; + + Previewer = [ + chafa # Image-to-text converter + highlight # source code highlighter + mediainfo # Supplies technical and tag information about a video or audio file + w3m # Text-based Web browser as well as pager + ffmpegthumbnailer # video thumbnailer that can be used by file managers + ]; + }; + + Media = { + Download = [ + yt-dlp # A youtube-dl fork with additional features and fixes + #cclive # Commandline downloader for popular video websites. + ]; + + Manipulate = [ + ffmpeg # Complete solution to record, convert and stream audio and video + ]; + + View = [ + imv # Image viewer + mpv # media player + ]; + + Listen = [ + moc # An ncurses console audio player designed to be powerful and easy to use + pavucontrol # PulseAudio Volume Control + #pipewire-alsa # Low-latency audio/video router and processor - ALSA configuration + #pipewire-jack # Low-latency audio/video router and processor - JACK support + #pipewire-pulse # Low-latency audio/video router and processor - PulseAudio replacement + ]; + }; + + Hardware = { + Boot = [ + #efibootmgr # Linux user-space application to modify the EFI Boot Manager + #grub # GNU GRand Unified Bootloader (2) + ]; + + Storage = [ + compsize # Calculate compression ratio of a set of files on Btrfs + smartmontools # Control and monitor S.M.A.R.T. enabled ATA and SCSI Hard Drives + ]; + + Input = [ + piper # GTK application to configure gaming mice + ]; + + Printer = [ + gutenprint # Top quality printer drivers for POSIX systems + sane-airscan # SANE - SANE backend for AirScan (eSCL) and WSD document scanners + ]; + }; + + Zsh = [ + #zsh # A very advanced and programmable command interpreter (shell) for UNIX + #zsh-syntax-highlighting # Fish shell like syntax highlighting for Zsh + + # next one only works if your alias is only a command, e.g. if you `alias='cat some_file.txt &2> /dev/null'`, running `cat some_file.txt` won't trigger it. + # TODO find something better for this use case + # zsh-you-should-use # ZSH plugin that reminds you to use existing aliases for commands you just typed + ]; + + CoreUtils = [ + file # File type identification utility + #grep # A string search utility + sudo # Give certain users the ability to run some commands as root + wget # Network utility to retrieve files from the Web + which # A utility to show the full path of commands + ]; + + FileListers = [ + tree # A directory listing program displaying a depth indented list of files + findutils # GNU utilities to locate files + fd # Simple, fast and user-friendly alternative to find + ripgrep # A search tool that combines the usability of ag with the raw speed of grep + ]; + + UnCompressors = [ + zip # Compressor/archiver for creating and modifying zipfiles + gzip # GNU compression utility + p7zip # Command-line file archiver with high compression ratio + unzip # For extracting and viewing files in .zip archives + ]; + + Editors = [ + ed # A POSIX-compliant line-oriented text editor + #sed # GNU stream editor + #vi # The original ex/vi text editor + neovim # Fork of Vim aiming to improve user experience, plugins, and GUIs + ]; + + Programming = { + GeneralTools = [ + git # the fast distributed version control system + git-bug # Distributed, offline-first bug tracker embedded in git, with bridges + glow # Command-line markdown renderer + strace # A diagnostic, debugging and instructional userspace tracer + tokei # A blazingly fast CLOC (Count Lines Of Code) program + ]; + + Rust = [ + rustup # The Rust toolchain installer + rust-analyzer # Rust compiler front-end for IDEs + ]; + + Yaml = [ + yamllint # Linter for YAML files + ]; + + TeX = [ + zathura # Minimalistic document viewer + #zathura-pdf-poppler # Adds pdf support to zathura by using the poppler engine + ltex-ls # LTeX Language Server + biber # A Unicode-capable BibTeX replacement for biblatex users + pandoc # Conversion between markup formats + ]; + + Web = [ + nodePackages_latest.vscode-langservers-extracted # Language servers extracted from VSCode. + rsass # dart-sass # Sass makes CSS fun again + nodePackages_latest.prettier # An opinionated code formatter for JS, JSON, CSS, YAML and much more + ]; + + Shell = [ + dash # POSIX compliant shell that aims to be as small as possible + shellcheck # Shell script analysis tool + ]; + + Lua = [ + lua # Powerful lightweight programming language designed for extending applications + luaformatter # lua-format # LuaFormatter - Code formatter for Lua + sumneko-lua-language-server #lua-language-server # Lua Language Server coded by Lua + ]; + + R = [ + R # Language and environment for statistical computing and graphics + ]; + }; + }; + #expect # A tool for automating interactive applications + #handlr # Powerful alternative to xdg-utils written in Rust + #linux # The Linux kernel and modules + #linux-firmware # Firmware files for Linux + #packagekit-qt5 # Qt5 bindings for PackageKit + #vulkan-radeon # Radeon's Vulkan mesa driver + #xorg-bdftopcf # Convert X font from Bitmap Distribution Format to Portable Compiled Format + + mapFun = x: + if builtins.isAttrs x + then + if lib.isDerivation x + then [x] + else builtins.attrValues x + else [x]; +in { + nixpkgs.config.allowUnfreePredicate = pkg: + builtins.elem (lib.getName pkg) [ + "steam" + "steam-original" + ]; + + environment.systemPackages = with builtins; + concatLists + (concatLists [ + (concatMap mapFun + (concatMap mapFun + (concatMap mapFun + (concatMap mapFun + (concatMap mapFun + (concatMap mapFun + (attrValues Gui))))))) + + (concatMap mapFun + (concatMap mapFun + (concatMap mapFun + (concatMap mapFun + (concatMap mapFun + (concatMap mapFun + (attrValues TuiCli))))))) + ]); +} +# QEMU +# TEX +# {{{ +#adobe-source-han-sans-kr-fonts # Adobe Source Han Sans Subset OTF - Korean OpenType/CFF fonts +#alsa-utils # Advanced Linux Sound Architecture - Utilities +#element-desktop # Glossy Matrix collaboration client — desktop version. +#gawk # GNU version of awk +#gimp # GNU Image Manipulation Program +#git-lfs # Git extension for versioning large files +#gnome-epub-thumbnailer # Thumbnailer for EPub and MOBI books +#gnumeric # A GNOME Spreadsheet Program +#gpick # Advanced color picker written in C++ using GTK+ toolkit +#gradle # Powerful build system for the JVM +#groff # GNU troff text-formatting system +#jre11-openjdk-headless # OpenJDK Java 11 headless runtime environment +#klavaro # Free touch typing tutor program +#lifeograph # Private journal, diary and note taking application +#lynx # A text browser for the World Wide Web +#man-db # A utility for reading man pages +#networkmanager # Network connection manager and user applications +#nss-mdns # glibc plugin providing host name resolution via mDNS +#python-spotdl # Download your Spotify playlists and songs along with album art and metadata (from YouTube if a match is found). +#python-xlsx2csv # xlsx to csv converter +#ruff # An extremely fast Python linter, written in Rust +#signal-desktop # Signal Private Messenger for Linux +#slides # Terminal based presentation tool +#torbrowser-launcher # Securely and easily download, verify, install, and launch Tor Browser in Linux +#web-ext # A command line tool to help build, run, and test web extensions +#wkhtmltopdf # Command line tools to render HTML into PDF and various image formats +#xcursor-bluecurve # Redhat's Bluecurve X mouse cursor theme +# XORG +#xorg-docs # X.org documentations +#xorg-font-util # X.Org font utilities +#xorg-fonts-100dpi # X.org 100dpi fonts +#xorg-fonts-75dpi # X.org 75dpi fonts +#xorg-fonts-encodings # X.org font encoding files +#xorg-iceauth # ICE authority file utility +#xorg-mkfontscale # Create an index of scalable font files for X +#xorg-server # Xorg X server +#xorg-server-common # Xorg server common files +#xorg-server-devel # Development files for the X.Org X server +#xorg-server-xephyr # A nested X server that runs as an X application +#xorg-server-xnest # A nested X server that runs as an X application +#xorg-server-xvfb # Virtual framebuffer X server +#xorg-sessreg # Register X sessions in system utmp/utmpx databases +#xorg-setxkbmap # Set the keyboard using the X Keyboard Extension +#xorg-smproxy # Allows X applications that do not support X11R6 session management to participate in an X11R6 session +#xorg-x11perf # Simple X server performance benchmarker +#xorg-xauth # X.Org authorization settings program +#xorg-xbacklight # RandR-based backlight control application +#xorg-xcmsdb # Device Color Characterization utility for X Color Management System +#xorg-xcursorgen # Create an X cursor file from PNG images +#xorg-xdpyinfo # Display information utility for X +#xorg-xdriinfo # Query configuration information of DRI drivers +#xorg-xev # Print contents of X events +#xorg-xgamma # Alter a monitor's gamma correction +#xorg-xhost # Server access control program for X +#xorg-xinit # X.Org initialisation program +#xorg-xinput # Small commandline tool to configure devices +#xorg-xkbcomp # X Keyboard description compiler +#xorg-xkbevd # XKB event daemon +#xorg-xkbutils # XKB utility demos +#xorg-xkill # Kill a client by its X resource +#xorg-xlsatoms # List interned atoms defined on server +#xorg-xlsclients # List client applications running on a display +#xorg-xmodmap # Utility for modifying keymaps and button mappings +#xorg-xpr # Print an X window dump from xwd +#xorg-xrandr # Primitive command line interface to RandR extension +#xorg-xrdb # X server resource database utility +#xorg-xrefresh # Refresh all or part of an X screen +#xorg-xsetroot # Classic X utility to set your root window background to a given pattern or color +#xorg-xvinfo # Prints out the capabilities of any video adaptors associated with the display that are accessible through the X-Video extension +#xorg-xwayland # run X clients under wayland +#xorg-xwininfo # Command-line utility to print information about windows on an X server +#xorg-xwud # X Window System image undumping utility +# }}} + diff --git a/system/packages/packages.nix b/system/packages/packages.nix deleted file mode 100644 index 6eb25681..00000000 --- a/system/packages/packages.nix +++ /dev/null @@ -1,365 +0,0 @@ -{pkgs, ...}: -with pkgs; let - Gui = { - Terminals = [ - alacritty # terminal emulator - ]; - - Browsers = [ - firefox # web browser - ungoogled-chromium # web browser (only for web programming) - ]; - - ImageManipulation = [ - krita # new, and better (KDE) - gimp # conservative, and old (GNOME) - ]; - - Social = [ - mumble # voice chat software (client) - nheko # Matrix Desktop client - ]; - - Misc = [ - kalzium # Periodic Table of Elements - keepassxc # password manager - onlykey # OnlyKey Chrome Desktop App - steam # Valve's digital software delivery system - ]; - }; - - TuiCli = { - Networking = { - OneOffThings = [ - #bind # A complete, highly portable implementation of the DNS protocol - #firewalld # Firewall daemon with D-Bus interface - #ngrep # A grep-like utility that allows you to search for network packets on an interface. - #openbsd-netcat # TCP/IP swiss army knife. OpenBSD variant. - ]; - - Misc = [ - lftp # FTP client - openssh # SSH client - ]; - }; - - EyeCandy = [ - banner # Print large banners to ASCII terminals - cmatrix # A curses-based scrolling 'Matrix'-like screen - hyfetch # Neofetch with LGBTQ pride flags. - ]; - - Backups = [ - rclone # Sync files to and from Google Drive, S3, Swift, Cloudfiles, Dropbox and Google Cloud Storage - snapper # A tool for managing BTRFS and LVM snapshots. It can create, diff and restore snapshots and provides timelined auto-snapping. - #snap-sync # Use snapper snapshots to backup to external drive - ]; - - Misc = [ - android-file-transfer # Android MTP client with minimalistic UI - #python39Packages.docx2txt # Recovers text from DOCX files, with good formatting. - btop # Interactive process viewer (maybe better than htop) - nerdfonts # Patched font Source Code Pro from nerd fonts library - xdg-ninja # A shell script which checks your $HOME for unwanted files and directories. - yokadi # Command line oriented, sqlite powered, todo list - ]; - - WM = { - river = [river]; # A dynamic tiling wayland compositor - - CLITools = [ - lswt # List Wayland toplevels - wlopm # Wayland output power management. - wlr-randr # Utility to manage outputs - wl-clipboard # Command-line copy/paste utilities - gammastep # Adjust the color temperature of your screen according to your surroundings. - ]; - - Components = [ - yambar # status panel - swaybg # Wallpaper - mako # notification daemon - bemenu # Run prompt - ]; - - Media = [ - slurp # Select a region (used in the coordinates for grim/maim) - grim # Screenshot utility - #maim # Screenshot utility - wf-recorder # Screen recorder - ]; - - Idle = [ - swayidle # Idle management daemon - swaylock # Screen locker - ]; - }; - - LF = { - lf = [lf]; # A terminal file manager inspired by ranger - - Functions = [ - broot # Fuzzy Search + tree + cd - xdragon # Simple drag-and-drop source/sink - trash-cli # Command line trashcan (recycle bin) interface - ]; - - Previewer = [ - chafa # Image-to-text converter - highlight # source code highlighter - mediainfo # Supplies technical and tag information about a video or audio file - w3m # Text-based Web browser as well as pager - ffmpegthumbnailer # video thumbnailer that can be used by file managers - ]; - }; - - Media = { - Download = [ - yt-dlp # A youtube-dl fork with additional features and fixes - #cclive # Commandline downloader for popular video websites. - ]; - - Manipulate = [ - ffmpeg # Complete solution to record, convert and stream audio and video - ]; - - View = [ - imv # Image viewer - mpv # media player - ]; - - Listen = [ - moc # An ncurses console audio player designed to be powerful and easy to use - pavucontrol # PulseAudio Volume Control - #pipewire-alsa # Low-latency audio/video router and processor - ALSA configuration - #pipewire-jack # Low-latency audio/video router and processor - JACK support - #pipewire-pulse # Low-latency audio/video router and processor - PulseAudio replacement - ]; - }; - - Hardware = { - Boot = [ - #efibootmgr # Linux user-space application to modify the EFI Boot Manager - #grub # GNU GRand Unified Bootloader (2) - ]; - - Storage = [ - compsize # Calculate compression ratio of a set of files on Btrfs - smartmontools # Control and monitor S.M.A.R.T. enabled ATA and SCSI Hard Drives - ]; - - Input = [ - piper # GTK application to configure gaming mice - ]; - - Printer = [ - gutenprint # Top quality printer drivers for POSIX systems - sane-airscan # SANE - SANE backend for AirScan (eSCL) and WSD document scanners - ]; - }; - - Zsh = [ - #zsh # A very advanced and programmable command interpreter (shell) for UNIX - #zsh-syntax-highlighting # Fish shell like syntax highlighting for Zsh - - # next one only works if your alias is only a command, e.g. if you `alias='cat some_file.txt &2> /dev/null'`, running `cat some_file.txt` won't trigger it. - # TODO find something better for this use case - # zsh-you-should-use # ZSH plugin that reminds you to use existing aliases for commands you just typed - ]; - - CoreUtils = [ - file # File type identification utility - #grep # A string search utility - sudo # Give certain users the ability to run some commands as root - wget # Network utility to retrieve files from the Web - which # A utility to show the full path of commands - ]; - - FileListers = [ - tree # A directory listing program displaying a depth indented list of files - findutils # GNU utilities to locate files - fd # Simple, fast and user-friendly alternative to find - ripgrep # A search tool that combines the usability of ag with the raw speed of grep - ]; - - UnCompressors = [ - zip # Compressor/archiver for creating and modifying zipfiles - gzip # GNU compression utility - p7zip # Command-line file archiver with high compression ratio - unzip # For extracting and viewing files in .zip archives - ]; - - Editors = [ - ed # A POSIX-compliant line-oriented text editor - #sed # GNU stream editor - #vi # The original ex/vi text editor - neovim # Fork of Vim aiming to improve user experience, plugins, and GUIs - ]; - - Programming = { - GeneralTools = [ - git # the fast distributed version control system - git-bug # Distributed, offline-first bug tracker embedded in git, with bridges - glow # Command-line markdown renderer - strace # A diagnostic, debugging and instructional userspace tracer - tokei # A blazingly fast CLOC (Count Lines Of Code) program - ]; - - Rust = [ - rustup # The Rust toolchain installer - rust-analyzer # Rust compiler front-end for IDEs - ]; - - Yaml = [ - yamllint # Linter for YAML files - ]; - - TeX = [ - zathura # Minimalistic document viewer - #zathura-pdf-poppler # Adds pdf support to zathura by using the poppler engine - ltex-ls # LTeX Language Server - biber # A Unicode-capable BibTeX replacement for biblatex users - pandoc # Conversion between markup formats - ]; - - Web = [ - nodePackages_latest.vscode-langservers-extracted # Language servers extracted from VSCode. - rsass # dart-sass # Sass makes CSS fun again - nodePackages_latest.prettier # An opinionated code formatter for JS, JSON, CSS, YAML and much more - ]; - - Shell = [ - dash # POSIX compliant shell that aims to be as small as possible - shellcheck # Shell script analysis tool - ]; - - Lua = [ - lua # Powerful lightweight programming language designed for extending applications - luaformatter # lua-format # LuaFormatter - Code formatter for Lua - sumneko-lua-language-server #lua-language-server # Lua Language Server coded by Lua - ]; - - R = [ - R # Language and environment for statistical computing and graphics - ]; - }; - }; - #expect # A tool for automating interactive applications - #handlr # Powerful alternative to xdg-utils written in Rust - #linux # The Linux kernel and modules - #linux-firmware # Firmware files for Linux - #packagekit-qt5 # Qt5 bindings for PackageKit - #vulkan-radeon # Radeon's Vulkan mesa driver - #xorg-bdftopcf # Convert X font from Bitmap Distribution Format to Portable Compiled Format - - mapFun = x: - if builtins.isAttrs x - then - if lib.isDerivation x - then [x] - else builtins.attrValues x - else [x]; -in { - nixpkgs.config.allowUnfreePredicate = pkg: - builtins.elem (lib.getName pkg) [ - "steam" - "steam-original" - ]; - - environment.systemPackages = with builtins; - concatLists - (concatLists [ - (concatMap mapFun - (concatMap mapFun - (concatMap mapFun - (concatMap mapFun - (concatMap mapFun - (concatMap mapFun - (attrValues Gui))))))) - - (concatMap mapFun - (concatMap mapFun - (concatMap mapFun - (concatMap mapFun - (concatMap mapFun - (concatMap mapFun - (attrValues TuiCli))))))) - ]); -} -# QEMU -# TEX -# {{{ -#adobe-source-han-sans-kr-fonts # Adobe Source Han Sans Subset OTF - Korean OpenType/CFF fonts -#alsa-utils # Advanced Linux Sound Architecture - Utilities -#element-desktop # Glossy Matrix collaboration client — desktop version. -#gawk # GNU version of awk -#gimp # GNU Image Manipulation Program -#git-lfs # Git extension for versioning large files -#gnome-epub-thumbnailer # Thumbnailer for EPub and MOBI books -#gnumeric # A GNOME Spreadsheet Program -#gpick # Advanced color picker written in C++ using GTK+ toolkit -#gradle # Powerful build system for the JVM -#groff # GNU troff text-formatting system -#jre11-openjdk-headless # OpenJDK Java 11 headless runtime environment -#klavaro # Free touch typing tutor program -#lifeograph # Private journal, diary and note taking application -#lynx # A text browser for the World Wide Web -#man-db # A utility for reading man pages -#networkmanager # Network connection manager and user applications -#nss-mdns # glibc plugin providing host name resolution via mDNS -#python-spotdl # Download your Spotify playlists and songs along with album art and metadata (from YouTube if a match is found). -#python-xlsx2csv # xlsx to csv converter -#ruff # An extremely fast Python linter, written in Rust -#signal-desktop # Signal Private Messenger for Linux -#slides # Terminal based presentation tool -#torbrowser-launcher # Securely and easily download, verify, install, and launch Tor Browser in Linux -#web-ext # A command line tool to help build, run, and test web extensions -#wkhtmltopdf # Command line tools to render HTML into PDF and various image formats -#xcursor-bluecurve # Redhat's Bluecurve X mouse cursor theme -# XORG -#xorg-docs # X.org documentations -#xorg-font-util # X.Org font utilities -#xorg-fonts-100dpi # X.org 100dpi fonts -#xorg-fonts-75dpi # X.org 75dpi fonts -#xorg-fonts-encodings # X.org font encoding files -#xorg-iceauth # ICE authority file utility -#xorg-mkfontscale # Create an index of scalable font files for X -#xorg-server # Xorg X server -#xorg-server-common # Xorg server common files -#xorg-server-devel # Development files for the X.Org X server -#xorg-server-xephyr # A nested X server that runs as an X application -#xorg-server-xnest # A nested X server that runs as an X application -#xorg-server-xvfb # Virtual framebuffer X server -#xorg-sessreg # Register X sessions in system utmp/utmpx databases -#xorg-setxkbmap # Set the keyboard using the X Keyboard Extension -#xorg-smproxy # Allows X applications that do not support X11R6 session management to participate in an X11R6 session -#xorg-x11perf # Simple X server performance benchmarker -#xorg-xauth # X.Org authorization settings program -#xorg-xbacklight # RandR-based backlight control application -#xorg-xcmsdb # Device Color Characterization utility for X Color Management System -#xorg-xcursorgen # Create an X cursor file from PNG images -#xorg-xdpyinfo # Display information utility for X -#xorg-xdriinfo # Query configuration information of DRI drivers -#xorg-xev # Print contents of X events -#xorg-xgamma # Alter a monitor's gamma correction -#xorg-xhost # Server access control program for X -#xorg-xinit # X.Org initialisation program -#xorg-xinput # Small commandline tool to configure devices -#xorg-xkbcomp # X Keyboard description compiler -#xorg-xkbevd # XKB event daemon -#xorg-xkbutils # XKB utility demos -#xorg-xkill # Kill a client by its X resource -#xorg-xlsatoms # List interned atoms defined on server -#xorg-xlsclients # List client applications running on a display -#xorg-xmodmap # Utility for modifying keymaps and button mappings -#xorg-xpr # Print an X window dump from xwd -#xorg-xrandr # Primitive command line interface to RandR extension -#xorg-xrdb # X server resource database utility -#xorg-xrefresh # Refresh all or part of an X screen -#xorg-xsetroot # Classic X utility to set your root window background to a given pattern or color -#xorg-xvinfo # Prints out the capabilities of any video adaptors associated with the display that are accessible through the X-Video extension -#xorg-xwayland # run X clients under wayland -#xorg-xwininfo # Command-line utility to print information about windows on an X server -#xorg-xwud # X Window System image undumping utility -# }}} - diff --git a/system/sound/default.nix b/system/sound/default.nix new file mode 100644 index 00000000..16dd4279 --- /dev/null +++ b/system/sound/default.nix @@ -0,0 +1,18 @@ +{config, ...}: { + # Enable sound with pipewire. + sound.enable = true; + hardware.pulseaudio.enable = false; + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + # If you want to use JACK applications, uncomment this + jack.enable = true; + + # use the example session manager (no others are packaged yet so this is enabled by default, + # no need to redefine it in your config for now) + #media-session.enable = true; + }; +} diff --git a/system/sound/sound.nix b/system/sound/sound.nix deleted file mode 100644 index 16dd4279..00000000 --- a/system/sound/sound.nix +++ /dev/null @@ -1,18 +0,0 @@ -{config, ...}: { - # Enable sound with pipewire. - sound.enable = true; - hardware.pulseaudio.enable = false; - security.rtkit.enable = true; - services.pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - # If you want to use JACK applications, uncomment this - jack.enable = true; - - # use the example session manager (no others are packaged yet so this is enabled by default, - # no need to redefine it in your config for now) - #media-session.enable = true; - }; -} diff --git a/system/users/default.nix b/system/users/default.nix new file mode 100644 index 00000000..2c962c26 --- /dev/null +++ b/system/users/default.nix @@ -0,0 +1,17 @@ +{ + config, + pkgs, + ... +}: { + users = { + mutableUsers = false; + users.soispha = { + isNormalUser = true; + home = "/srv/home/soispha"; + shell = pkgs.zsh; + initialHashedPassword = "$y$jFT$ONrCqZIJKB7engmfA4orD/$0GO58/wV5wrYWj0cyONhyujZPjFmbT0XKtx2AvXLG0B"; + extraGroups = ["wheel"]; + uid = 1000; + }; + }; +} diff --git a/system/users/users.nix b/system/users/users.nix deleted file mode 100644 index 2c962c26..00000000 --- a/system/users/users.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ - config, - pkgs, - ... -}: { - users = { - mutableUsers = false; - users.soispha = { - isNormalUser = true; - home = "/srv/home/soispha"; - shell = pkgs.zsh; - initialHashedPassword = "$y$jFT$ONrCqZIJKB7engmfA4orD/$0GO58/wV5wrYWj0cyONhyujZPjFmbT0XKtx2AvXLG0B"; - extraGroups = ["wheel"]; - uid = 1000; - }; - }; -} -- cgit 1.4.1