aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--home-manager/packages/default.nix272
-rw-r--r--system/packages/default.nix252
2 files changed, 272 insertions, 252 deletions
diff --git a/home-manager/packages/default.nix b/home-manager/packages/default.nix
new file mode 100644
index 00000000..0e42397d
--- /dev/null
+++ b/home-manager/packages/default.nix
@@ -0,0 +1,272 @@
+# vim: ts=2
+{
+ config,
+ pkgs,
+ home-manager,
+ inputs,
+ user_js,
+ impermanence,
+ resholve,
+ ...
+}: let
+ snap-sync = resholve.writeScriptBun "snap-sync" {
+ inputs = [];
+ interpreter = "${pkgs.dash}/bin/dash";
+ } (builtins.readFile ./scritps/snap-sync/bin/snap-sync);
+
+ 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
+ # DONE 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
+ # DONE snapper # A tool for managing BTRFS and LVM snapshots. It can create, diff and restore snapshots and provides timelined auto-snapping.
+ # DONE #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
+in {
+ home.packages = [
+ snap-sync
+ ];
+}
diff --git a/system/packages/default.nix b/system/packages/default.nix
index 6eb25681..8f0271fe 100644
--- a/system/packages/default.nix
+++ b/system/packages/default.nix
@@ -1,257 +1,5 @@
{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