about summary refs log tree commit diff stats
path: root/home-manager/soispha/packages/default.nix
diff options
context:
space:
mode:
authorSoispha <soispha@vhack.eu>2023-08-01 15:31:42 +0200
committerSoispha <soispha@vhack.eu>2023-08-01 15:42:54 +0200
commit0a608bd781dcda40144097b007fac0a0c60a8ee1 (patch)
treee69fbc1fd0e15e3b86f31f47b776df21f6f0170d /home-manager/soispha/packages/default.nix
parentFix(hm/conf/gammastep): Use lighter settings on laptops (diff)
downloadnixos-config-0a608bd781dcda40144097b007fac0a0c60a8ee1.zip
Refactor(treewide): Move module configuration in separate files
Diffstat (limited to 'home-manager/soispha/packages/default.nix')
-rw-r--r--home-manager/soispha/packages/default.nix160
1 files changed, 160 insertions, 0 deletions
diff --git a/home-manager/soispha/packages/default.nix b/home-manager/soispha/packages/default.nix
new file mode 100644
index 00000000..0d6528dd
--- /dev/null
+++ b/home-manager/soispha/packages/default.nix
@@ -0,0 +1,160 @@
+{
+  pkgs,
+  sysLib,
+  grades,
+  snap-sync,
+  system,
+  flake_update,
+  ...
+}:
+with pkgs; let
+  snap-sync-pkgs = pkgs.writeShellScriptBin "snap-sync" (builtins.readFile "${snap-sync}/bin/snap-sync");
+  shell-scripts = (import ./scripts.nix) {inherit pkgs sysLib;};
+
+  Gui = {
+    Terminals = [
+      # foot # wayland native terminal
+      alacritty # default terminal
+    ];
+    Browsers = [
+      #ungoogled-chromium # web browser (only for web programming)
+      #brave
+    ];
+
+    ImageManipulation = [
+      #krita # new, and better (KDE)
+      #gimp # conservative, and old (GNOME)
+    ];
+
+    Social = [
+      mumble # voice chat software (client)
+      lutris # multiple game store clients
+
+      nheko # best matrix client (as of today)
+      # element-desktop  # nheko didn't work
+      signal-desktop # to avoid encryption problems with signal-bridge
+    ];
+
+    Misc = [
+      #kalzium # Periodic Table of Elements (`element` is [sort of] better)
+      keepassxc # password manager
+      #onlykey # OnlyKey Chrome Desktop App
+      anki-bin # spaced repetition
+    ];
+  };
+
+  TuiCli = {
+    EyeCandy = [
+      #banner # Print large banners to ASCII terminals
+      cmatrix # A curses-based scrolling 'Matrix'-like screen
+      hyfetch # Neofetch with LGBTQ pride flags.
+    ];
+
+    Misc = [
+      android-file-transfer # Android MTP client with minimalistic UI
+      #xdg-ninja # A shell script which checks your $HOME for unwanted files and directories.
+      xdg-utils # open urls and such things
+      yokadi # Command line oriented, sqlite powered, todo list
+      killall # kill a application by name
+    ];
+
+    WM = {
+      river = [river]; # A dynamic tiling wayland compositor
+
+      CLITools = [
+        lswt # List Wayland toplevels
+        wl-clipboard # Command-line copy/paste utilities
+        swaylock # lockscreen
+      ];
+
+      Media = [
+        wf-recorder # Screen recorder
+      ];
+    };
+
+    Media = {
+      View = [
+        imv # Image viewer
+      ];
+
+      Listen = [
+        pulseaudio # set the volume with pactl
+        ncmpc # mpd player client
+        mpc-cli # a cli mpd client
+      ];
+    };
+
+    Hardware = {
+      Storage = [
+        #compsize # Calculate compression ratio of a set of files on Btrfs
+        # TODO smartmontools # Control and monitor S.M.A.R.T. enabled ATA and SCSI Hard Drives
+      ];
+
+      Input = [
+        #piper # GTK application to configure gaming mice
+      ];
+
+      Printer = [
+        # TODO sane-airscan # SANE - SANE backend for AirScan (eSCL) and WSD document scanners
+      ];
+    };
+
+    FileListers = [
+      tree # A directory listing program displaying a depth indented list of 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
+      fzf # used to quickly move around with its keybindings
+    ];
+
+    Editors = [
+      ed # A POSIX-compliant line-oriented text editor
+      #sed # GNU stream editor
+      vim # The original ex/vi text editor (this is `vim` and not `vi`, as `vi` is unfree)
+      neovim # Fork of Vim aiming to improve user experience, plugins, and GUIs
+    ];
+
+    Programming = {
+      GeneralTools = [
+        git # the fast distributed version control system
+        git-crypt # mostly here to avoid problems in repositories, where the flake can't be loaded
+        glow # Command-line markdown renderer
+      ];
+    };
+  };
+  # TODO unmaintained, find sth else:
+  # handlr # Powerful alternative to xdg-utils written in Rust
+  mapFun = x:
+    if builtins.isAttrs x
+    then
+      if lib.isDerivation x
+      then [x]
+      else builtins.attrValues x
+    else [x];
+in {
+  home.packages =
+    [
+      snap-sync-pkgs
+      flake_update.outputs.packages.${system}.default
+      grades.outputs.packages.${system}.default
+    ]
+    ++ shell-scripts
+    ++ (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)))))))
+      ]));
+}