diff options
| author | Arpit Chakladar <arpitchakladar+git@gmail.com> | 2026-07-15 20:02:29 +0530 |
|---|---|---|
| committer | Arpit Chakladar <arpitchakladar+git@gmail.com> | 2026-07-15 20:03:04 +0530 |
| commit | 01aaa7ad39c1fe8af6ffbca31abbab27dbfefc95 (patch) | |
| tree | 88560b79fa71e3b83d9d9aca6d1bb40673a1a170 /modules/media | |
| parent | 2c573bb0c437b83fe629a9a5b818c976d2dfd796 (diff) | |
| download | home-manager-config-01aaa7ad39c1fe8af6ffbca31abbab27dbfefc95.tar.gz home-manager-config-01aaa7ad39c1fe8af6ffbca31abbab27dbfefc95.zip | |
refactor: organized the modules into better categories
Instead of lumping everything in modules/programs we are separating them
into separate directories in modules/
Diffstat (limited to 'modules/media')
| -rw-r--r-- | modules/media/default.nix | 14 | ||||
| -rw-r--r-- | modules/media/feh/default.nix | 27 | ||||
| -rw-r--r-- | modules/media/ffmpeg/default.nix | 18 | ||||
| -rw-r--r-- | modules/media/impala/default.nix | 26 | ||||
| -rw-r--r-- | modules/media/maim/default.nix | 18 | ||||
| -rw-r--r-- | modules/media/pamixer/default.nix | 18 | ||||
| -rw-r--r-- | modules/media/playerctl/default.nix | 18 | ||||
| -rw-r--r-- | modules/media/slop/default.nix | 18 | ||||
| -rw-r--r-- | modules/media/vlc/default.nix | 37 |
9 files changed, 194 insertions, 0 deletions
diff --git a/modules/media/default.nix b/modules/media/default.nix new file mode 100644 index 0000000..a26aa08 --- /dev/null +++ b/modules/media/default.nix @@ -0,0 +1,14 @@ +{ ... }: + +{ + imports = [ + ./feh + ./ffmpeg + ./impala + ./maim + ./pamixer + ./playerctl + ./slop + ./vlc + ]; +} diff --git a/modules/media/feh/default.nix b/modules/media/feh/default.nix new file mode 100644 index 0000000..401a68a --- /dev/null +++ b/modules/media/feh/default.nix @@ -0,0 +1,27 @@ +{ + config, + lib, + pkgs, + ... +}: + +# Feh - Lightweight image viewer and wallpaper setter +{ + config = lib.mkIf config.programs.feh.enable { + programs.feh = { + package = pkgs.feh; + }; + + xdg.mimeApps.defaultApplications = { + "image/bmp" = "feh.desktop"; + "image/gif" = "feh.desktop"; + "image/jpeg" = "feh.desktop"; + "image/png" = "feh.desktop"; + "image/tiff" = "feh.desktop"; + "image/webp" = "feh.desktop"; + "image/x-bmp" = "feh.desktop"; + "image/x-png" = "feh.desktop"; + "image/x-tga" = "feh.desktop"; + }; + }; +} diff --git a/modules/media/ffmpeg/default.nix b/modules/media/ffmpeg/default.nix new file mode 100644 index 0000000..d86b5a6 --- /dev/null +++ b/modules/media/ffmpeg/default.nix @@ -0,0 +1,18 @@ +{ + config, + pkgs, + lib, + ... +}: + +# FFmpeg - Command-line audio/video converter and streaming tool +{ + options.programs.ffmpeg = { + enable = lib.mkEnableOption "Enables ffmpeg."; + package = lib.mkPackageOption pkgs "ffmpeg-full" { }; + }; + + config = lib.mkIf config.programs.ffmpeg.enable { + home.packages = [ config.programs.ffmpeg.package ]; + }; +} diff --git a/modules/media/impala/default.nix b/modules/media/impala/default.nix new file mode 100644 index 0000000..9c4d1f4 --- /dev/null +++ b/modules/media/impala/default.nix @@ -0,0 +1,26 @@ +{ + config, + lib, + pkgs, + ... +}: + +# Impala - Apache Impala: SQL query engine for Apache Hadoop +{ + options.programs.impala = { + enable = lib.mkEnableOption "Enables impala."; + package = lib.mkPackageOption pkgs "impala" { }; + }; + + config = lib.mkIf config.programs.impala.enable { + home.packages = [ config.programs.impala.package ]; + + xdg.mimeApps.defaultApplications = { + "x-scheme-handler/impala" = "impala.desktop"; + "audio/mpeg" = "impala.desktop"; + "audio/ogg" = "impala.desktop"; + "audio/flac" = "impala.desktop"; + "audio/x-flac" = "impala.desktop"; + }; + }; +} diff --git a/modules/media/maim/default.nix b/modules/media/maim/default.nix new file mode 100644 index 0000000..3e30c88 --- /dev/null +++ b/modules/media/maim/default.nix @@ -0,0 +1,18 @@ +{ + config, + lib, + pkgs, + ... +}: + +# Maim - Screenshot utility (slop-based region selection) +{ + options.programs.maim = { + enable = lib.mkEnableOption "Enables maim."; + package = lib.mkPackageOption pkgs "maim" { }; + }; + + config = lib.mkIf config.programs.maim.enable { + home.packages = [ config.programs.maim.package ]; + }; +} diff --git a/modules/media/pamixer/default.nix b/modules/media/pamixer/default.nix new file mode 100644 index 0000000..b84e9cf --- /dev/null +++ b/modules/media/pamixer/default.nix @@ -0,0 +1,18 @@ +{ + config, + lib, + pkgs, + ... +}: + +# Pamixer - PulseAudio command-line mixer (volume control) +{ + options.programs.pamixer = { + enable = lib.mkEnableOption "Enables pamixer."; + package = lib.mkPackageOption pkgs "pamixer" { }; + }; + + config = lib.mkIf config.programs.pamixer.enable { + home.packages = [ config.programs.pamixer.package ]; + }; +} diff --git a/modules/media/playerctl/default.nix b/modules/media/playerctl/default.nix new file mode 100644 index 0000000..d501abd --- /dev/null +++ b/modules/media/playerctl/default.nix @@ -0,0 +1,18 @@ +{ + config, + lib, + pkgs, + ... +}: + +# Playerctl - CLI for controlling media players (Spotify, MPRIS, etc.) +{ + options.programs.playerctl = { + enable = lib.mkEnableOption "Enables playerctl."; + package = lib.mkPackageOption pkgs "playerctl" { }; + }; + + config = lib.mkIf config.programs.playerctl.enable { + home.packages = [ config.programs.playerctl.package ]; + }; +} diff --git a/modules/media/slop/default.nix b/modules/media/slop/default.nix new file mode 100644 index 0000000..c86181b --- /dev/null +++ b/modules/media/slop/default.nix @@ -0,0 +1,18 @@ +{ + config, + lib, + pkgs, + ... +}: + +# Slop - Region selector for screenshots (used by maim/flameshot) +{ + options.programs.slop = { + enable = lib.mkEnableOption "Enables slop."; + package = lib.mkPackageOption pkgs "slop" { }; + }; + + config = lib.mkIf config.programs.slop.enable { + home.packages = [ config.programs.slop.package ]; + }; +} diff --git a/modules/media/vlc/default.nix b/modules/media/vlc/default.nix new file mode 100644 index 0000000..8069f3e --- /dev/null +++ b/modules/media/vlc/default.nix @@ -0,0 +1,37 @@ +{ + config, + lib, + pkgs, + ... +}: + +# VLC - Versatile multimedia player for audio/video playback +{ + options.programs.vlc = { + enable = lib.mkEnableOption "Enables vlc."; + package = lib.mkPackageOption pkgs "vlc" { }; + }; + + config = lib.mkIf config.programs.vlc.enable { + home.packages = [ config.programs.vlc.package ]; + + xdg.mimeApps.defaultApplications = { + "x-scheme-handler/vlc" = "vlc.desktop"; + "video/mp4" = "vlc.desktop"; + "video/mpeg" = "vlc.desktop"; + "video/x-matroska" = "vlc.desktop"; + "video/x-msvideo" = "vlc.desktop"; + "video/quicktime" = "vlc.desktop"; + "video/webm" = "vlc.desktop"; + "video/x-ms-wmv" = "vlc.desktop"; + "video/x-flv" = "vlc.desktop"; + "video/ogg" = "vlc.desktop"; + "audio/mpeg" = "vlc.desktop"; + "audio/ogg" = "vlc.desktop"; + "audio/x-wav" = "vlc.desktop"; + "audio/x-flac" = "vlc.desktop"; + "audio/mp4" = "vlc.desktop"; + "audio/x-matroska" = "vlc.desktop"; + }; + }; +} |
