aboutsummaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-23 13:34:20 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-05-23 13:34:20 +0200
commitc4a11ed455047d46a99e42abe63a8d92538810b1 (patch)
tree0c17a5c174a1440d00b1b3f595906f3ab7dc7096 /modules
parentrefactor(modules/home): Setup as "normal" NixOS module (diff)
downloadnixos-config-c4a11ed455047d46a99e42abe63a8d92538810b1.zip
refactor(modules/home/pkgs): Readd whilst using the new `pkgs`
Diffstat (limited to 'modules')
-rw-r--r--modules/home/pkgs/default.nix229
1 files changed, 229 insertions, 0 deletions
diff --git a/modules/home/pkgs/default.nix b/modules/home/pkgs/default.nix
new file mode 100644
index 00000000..a3768e40
--- /dev/null
+++ b/modules/home/pkgs/default.nix
@@ -0,0 +1,229 @@
+{
+ pkgs,
+ lib,
+ config,
+ ...
+}:
+with pkgs; let
+ onlyShare = drv:
+ runCommand "${drv.name}-only-share" {} ''
+ mkdir -p $out
+ ln -s ${drv}/share $out/share
+ '';
+ mpc-cli-man = onlyShare mpc-cli;
+
+ 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.
+ ];
+
+ Social = [
+ iamb # best tui matrix client (as of today)
+ ];
+
+ Pdfs = [
+ con2pdf # Scanner implementation
+ ];
+
+ 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
+ snap-sync-forked # A btrfs based backup solution
+ bc # Smart calculator
+ aumo # Automatic mount
+ nato # Encodes a string in the standardized spelling alphabet
+ virsh-del # Delete a libvirt virtual machine (not really used anymore).
+ ];
+
+ Task = {
+ StartStop = [
+ hibernate # Hibernate wrapper that automatically stops all active task
+ lock # Same as `hibernate`, but for locking
+ ];
+
+ Firefox = [
+ # `neorg` handles the integration between Firefox profiles and task
+ # contexts
+ (neorg.override
+ {
+ defaultNeorgProjectDir = config.programs.nixvim.plugins.neorg.modules."core.dirman".config.workspaces.projects;
+ allProjectsNewline = config.soispha.taskwarrior.projects.projects_newline;
+ allProjectsComma = config.soispha.taskwarrior.projects.projects_comma;
+ allProjectsPipe = config.soispha.taskwarrior.projects.projects_pipe;
+ allWorkspaces = config.programs.nixvim.plugins.neorg.modules."core.dirman".config.workspaces;
+ xdgConfigHome = config.xdg.configHome;
+ xdgDataHome = config.xdg.dataHome;
+ })
+ ];
+ };
+
+ WM = {
+ river = [river]; # A dynamic tiling wayland compositor
+
+ CLITools = [
+ lswt # List Wayland toplevels.
+ wl-clipboard # Command-line copy/paste utilities.
+ swaylock # My current lockscreen implementation.
+ ];
+
+ Media = [
+ wf-recorder # Screen recorder.
+ libnotify # a command to send a notification.
+ screenshot_persist # Creates a persisting screenshot.
+ screenshot_temporary # Takes a screenshot and stores it in the clipboard.
+ ];
+ };
+
+ Media = {
+ View = [
+ imv # Image viewer
+ zathura # PDF viewer
+ ];
+
+ YouTube = [
+ yti # Wrapper around `yt-dlp`.
+ ytcc # Command line tool to keep track of your favorite playlists on YouTube and many other places.
+ comments # Display comments of the currently playing video.
+ description # Display the description of the currently playing video.
+
+ ytc # Download and watch a video from YouTube.
+ yts # Select videos from the subscribed channels to watch.
+ yt # Combination of `ytc` and `yts` that selects _and_ downloads videos.
+ ];
+
+ Listen = [
+ spodi # Wrapper around `spotdl`.
+ pulseaudio # set the volume with pactl
+ ncmpc # mpd player client
+ mpc-cli-man # a cli mpd client (added via a wrapper script)
+ mpc # Wrapper around `mpc` that allows the usage of `mpc-{rm,fav}` without the `-`
+ mpc-rm # Removes the currently playing song from the playlist
+ mpc-fav # Adds the currently playing song to the favorites
+ lyrics # Displays the lyrics of the currently playing song
+ sort_song # Sorts songs in the current directory.
+ ];
+ };
+
+ 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
+ ];
+
+ Battery = [
+ battery # Check the battery level
+ ];
+
+ Backlight = [
+ # Set the brightness level
+ (brightness.override
+ {
+ backlightName = nixosConfig.soispha.laptop.backlight;
+ })
+ ];
+
+ Input = [
+ #piper # GTK application to configure gaming mice
+ ];
+ };
+
+ SystemUpdate = [
+ fupdate # Generic update tool.
+ update-sys # System update tool (meant to slot into `fupdate`).
+ ];
+
+ 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
+ file # Show information about a file
+ ll # Wrapper around `lf` to automatically change the path
+ show # Wrapper around `less` to show a file (similar to the `cat <FILE>` pattern).
+ ];
+
+ 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-absorb # git commit --fixup, but automatic
+ git-edit-index # Allows you to edit the indexed version of a file
+ 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 =
+ []
+ ++ (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)))))))
+ ]));
+}