From 7b599b6e10ab6e5fd3e7ec0c5b7d79a586375842 Mon Sep 17 00:00:00 2001
From: Jon Santmyer <jon@jonsantmyer.com>
Date: Sat, 30 Sep 2023 11:25:55 -0400
Subject: add music module

---
 modules/desktop/awesome/rc.lua | 73 +++++++++++++++++++-----------------------
 modules/music/default.nix      |  3 ++
 modules/music/mpd.nix          | 34 ++++++++++++++++++++
 3 files changed, 70 insertions(+), 40 deletions(-)
 create mode 100644 modules/music/default.nix
 create mode 100644 modules/music/mpd.nix

(limited to 'modules')

diff --git a/modules/desktop/awesome/rc.lua b/modules/desktop/awesome/rc.lua
index 9c2bdc5..1fb1ea5 100644
--- a/modules/desktop/awesome/rc.lua
+++ b/modules/desktop/awesome/rc.lua
@@ -657,65 +657,58 @@ client.connect_signal("request::titlebars", function(c)
         end)
     )
 
-    awful.titlebar(c, {size = 20}) : setup {
+    awful.titlebar(c, {size = dpi(20), position = "left"}) : setup {
         { -- Left
             awful.titlebar.widget.iconwidget(c),
+            widget = wibox.container.margin,
+            top = dpi(6),
+            bottom = dpi(6),
             buttons = buttons,
-            layout  = wibox.layout.fixed.horizontal
+            layout  = wibox.layout.fixed.vertical,
         },
         { -- Middle
-            { -- Title
-                align  = "center",
-                widget = awful.titlebar.widget.titlewidget(c)
-            },
+--          { -- Title
+--              align  = "center",
+--              widget = awful.titlebar.widget.titlewidget(c)
+--          },
             buttons = buttons,
             layout  = wibox.layout.flex.horizontal
         },
         { -- Right
-        {
             {
                 {
-                    widget = awful.titlebar.widget.maximizedbutton(c),
+                    {
+                        widget = awful.titlebar.widget.maximizedbutton(c),
+                    },
+                    widget = wibox.container.background,
+                    shape = gears.shape.circle,
+                    shape_border_width = 1,
+                    shape_border_color = "#12ac28",
+                    bg = "#28c940",
+                    forced_height = dpi(14),
                 },
-                widget = wibox.container.background,
-                shape = gears.shape.circle,
-                shape_border_width = 1,
-                shape_border_color = "#12ac28",
-                bg = "#28c940",
-                forced_width = dpi(14),
-            },
-            {
                 {
-                    widget = awful.titlebar.widget.closebutton(c),
+                    {
+                        widget = awful.titlebar.widget.closebutton(c),
+                    },
+                    widget = wibox.container.background,
+                    shape = gears.shape.circle,
+                    shape_border_width = 1,
+                    shape_border_color = "#ad3934",
+                    bg = "#bf4943",
+                    forced_height = dpi(14),
                 },
-                widget = wibox.container.background,
-                shape = gears.shape.circle,
-                shape_border_width = 1,
-                shape_border_color = "#ad3934",
-                bg = "#bf4943",
-                forced_width = dpi(14),
+                spacing = dpi(6),
+                layout = wibox.layout.fixed.vertical
             },
-            spacing = dpi(6),
-            layout = wibox.layout.fixed.horizontal
-        },
-        widget = wibox.container.margin;
-        left = dpi(6);
-        right = dpi(6);
+            widget = wibox.container.margin;
+            top = dpi(6);
+            bottom = dpi(6);
         },
-        layout = wibox.layout.align.horizontal
+        layout = wibox.layout.align.vertical
     }
 end)
 
-client.connect_signal("property::floating", function(c)
-    local tb = awful.titlebar(c)
-
-    if c.floating then
-        awful.titlebar.show(c)
-    else
-        awful.titlebar.hide(c)
-    end
-end)
-
 -- Enable sloppy focus, so that focus follows mouse.
 client.connect_signal("mouse::enter", function(c)
     c:emit_signal("request::activate", "mouse_enter", {raise = false})
diff --git a/modules/music/default.nix b/modules/music/default.nix
new file mode 100644
index 0000000..cce3744
--- /dev/null
+++ b/modules/music/default.nix
@@ -0,0 +1,3 @@
+[
+    ./mpd.nix
+]
diff --git a/modules/music/mpd.nix b/modules/music/mpd.nix
new file mode 100644
index 0000000..8ee1f1b
--- /dev/null
+++ b/modules/music/mpd.nix
@@ -0,0 +1,34 @@
+{ config, lib, pkgs, user, ... }:
+with lib;
+let
+
+in
+{
+    options = {
+        mpd = {
+            enable = mkOption {
+                type = types.bool;
+                default = false;
+            };
+        };
+    };
+
+    config.home-manager.users.${user} = mkIf (config.mpd.enable)
+    {
+        services.mpd = {
+            enable = true;
+            musicDirectory = "/home/${user}/mus";
+            extraConfig = ''
+audio_output {
+    type "pipewire"
+    name "Pipewire Output"
+}
+                          '';
+        };
+        
+        home.packages = with pkgs; [
+            mpc-cli
+            ncmpcpp
+        ];
+    };
+}
-- 
cgit v1.2.1