about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorene <ene@sils.li>2023-02-17 17:05:26 +0100
committerene <ene@sils.li>2023-02-17 17:05:26 +0100
commit154d9187bfa3885c6de9d0efd0acace78ad2d5aa (patch)
tree502a1dba1ccce21415a5e0d9666efdb824ce77cc
parentChore: Add todo file (diff)
downloadnixos-config-154d9187bfa3885c6de9d0efd0acace78ad2d5aa.tar.gz
nixos-config-154d9187bfa3885c6de9d0efd0acace78ad2d5aa.zip
Feat(home-manager): Add local packages
-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