aboutsummaryrefslogtreecommitdiffstats
path: root/modules/media
diff options
context:
space:
mode:
authorArpit Chakladar <arpitchakladar+git@gmail.com>2026-07-15 20:02:29 +0530
committerArpit Chakladar <arpitchakladar+git@gmail.com>2026-07-15 20:03:04 +0530
commit01aaa7ad39c1fe8af6ffbca31abbab27dbfefc95 (patch)
tree88560b79fa71e3b83d9d9aca6d1bb40673a1a170 /modules/media
parent2c573bb0c437b83fe629a9a5b818c976d2dfd796 (diff)
downloadhome-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.nix14
-rw-r--r--modules/media/feh/default.nix27
-rw-r--r--modules/media/ffmpeg/default.nix18
-rw-r--r--modules/media/impala/default.nix26
-rw-r--r--modules/media/maim/default.nix18
-rw-r--r--modules/media/pamixer/default.nix18
-rw-r--r--modules/media/playerctl/default.nix18
-rw-r--r--modules/media/slop/default.nix18
-rw-r--r--modules/media/vlc/default.nix37
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";
+ };
+ };
+}