diff --git a/home/modules/desktop/media/video/mpv/default.nix b/home/modules/desktop/media/video/mpv/default.nix index 945364c..48e82f2 100644 --- a/home/modules/desktop/media/video/mpv/default.nix +++ b/home/modules/desktop/media/video/mpv/default.nix @@ -1,4 +1,4 @@ -{ lib, config, ... }: +{ lib, config, pkgs, ... }: let cfg = config.homeModules.desktop.media.video.mpv; @@ -8,5 +8,6 @@ in programs.mpv = lib.mkIf cfg.enable { enable = true; }; + home.packages = [ pkgs.ffmpeg ]; }; } diff --git a/home/modules/desktop/utility/gammastep.nix b/home/modules/desktop/utility/gammastep.nix deleted file mode 100644 index 7cfc966..0000000 --- a/home/modules/desktop/utility/gammastep.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ lib, config, ... }: - -let - cfg = config.homeModules.desktop.utility.gammastep; -in - -{ - config = lib.mkIf cfg.enable { - services.gammastep = lib.mkif config.programs.desktop.windowManager.hyprland.enable { - enable = true; - provider = "geoclue2"; - temperature = { - day = 6000; - night = 4600; - }; - settings = { - general.adjustment-method = "wayland"; - }; - }; - }; -} diff --git a/home/modules/desktop/utility/gtk-lock.nix b/home/modules/desktop/utility/gtk-lock.nix deleted file mode 100644 index e69de29..0000000 diff --git a/home/modules/desktop/wayland/windowManager/hyprland/default.nix b/home/modules/desktop/wayland/windowManager/hyprland/default.nix index 8596b0b..1fd2fe6 100644 --- a/home/modules/desktop/wayland/windowManager/hyprland/default.nix +++ b/home/modules/desktop/wayland/windowManager/hyprland/default.nix @@ -1,7 +1,7 @@ { lib, config, pkgs, inputs, ... }: let cfg = config.homeModules.desktop.wayland.windowManager.hyprland; - inherit (import ./pkgs {inherit pkgs;}) hyprbrightness hyprvolume hyprkillsession; + inherit (import ./pkgs {inherit pkgs;}) hyprrecord hyprbrightness hyprvolume hyprkillsession; in { imports = [ @@ -22,6 +22,7 @@ in hyprvolume hyprkillsession hyprbrightness + hyprrecord ]; wayland.windowManager.hyprland = { diff --git a/home/modules/desktop/wayland/windowManager/hyprland/pkgs/default.nix b/home/modules/desktop/wayland/windowManager/hyprland/pkgs/default.nix index f03b479..5098d98 100644 --- a/home/modules/desktop/wayland/windowManager/hyprland/pkgs/default.nix +++ b/home/modules/desktop/wayland/windowManager/hyprland/pkgs/default.nix @@ -4,6 +4,7 @@ let packages = { hyprvolume = pkgs.callPackage ./hyprvolume.nix {}; hyprbrightness = pkgs.callPackage ./hyprbrightness.nix {}; + hyprrecord = pkgs.callPackage ./hyprrecord {}; # Script to help Hyprland quit https://github.com/hyprwm/Hyprland/issues/3558#issuecomment-1848768654 hyprkillsession = pkgs.callPackage ./hyprkillsession.nix {}; }; diff --git a/home/modules/desktop/wayland/windowManager/hyprland/pkgs/hyprrecord/default.nix b/home/modules/desktop/wayland/windowManager/hyprland/pkgs/hyprrecord/default.nix new file mode 100644 index 0000000..2b6d270 --- /dev/null +++ b/home/modules/desktop/wayland/windowManager/hyprland/pkgs/hyprrecord/default.nix @@ -0,0 +1,10 @@ +{ pkgs, ... }: + + +pkgs.writeShellScriptBin "hyprrecord" '' + ${builtins.readFile ./hyprrecord.sh} + '' + + + + diff --git a/home/modules/desktop/wayland/windowManager/hyprland/pkgs/hyprrecord/hyprrecord.sh b/home/modules/desktop/wayland/windowManager/hyprland/pkgs/hyprrecord/hyprrecord.sh new file mode 100755 index 0000000..623907a --- /dev/null +++ b/home/modules/desktop/wayland/windowManager/hyprland/pkgs/hyprrecord/hyprrecord.sh @@ -0,0 +1,48 @@ +#!/usr/bin/env bash + +getTargetDirectory() { + test -f "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs" && + . "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs" + echo "${XDG_RECORDINGS_DIR:-${XDG_VIDEOS_DIR:-$HOME}}" +} + +SINK="$(pactl get-default-sink).monitor" +AUDIO="" +FILE="--file=$(getTargetDirectory)/$(date -Ins).mp4" +SET_REGION=false + +while [[ "$#" -gt 0 ]]; do + case $1 in + -a | --audio) + AUDIO="--audio=$SINK" + shift + ;; + -r | --region) + SET_REGION=true + shift + ;; + *) + echo "Unknown parameter passed: $1" + exit 1 + ;; + esac +done + +notify() { + notify-send -t 5000 -a system-notify "$@" +} + +takeRecording() { + if pgrep -x "wf-recorder" >/dev/null; then + pkill -x "wf-recorder" + notify "Recording Stopped" + else + # Only invoke slurp if starting a new recording and the region option was set + if [ "$SET_REGION" = true ]; then + REGION="--geometry=$(slurp)" + fi + wf-recorder "$AUDIO" "$REGION" "$FILE" + fi +} + +echo $(takeRecording) diff --git a/home/modules/desktop/wayland/windowManager/hyprland/settings/binds.nix b/home/modules/desktop/wayland/windowManager/hyprland/settings/binds.nix index da28bc8..5f206c4 100644 --- a/home/modules/desktop/wayland/windowManager/hyprland/settings/binds.nix +++ b/home/modules/desktop/wayland/windowManager/hyprland/settings/binds.nix @@ -42,6 +42,9 @@ in ", Print, exec, grimblast --notify --cursor copysave area" "SUPER, Print, exec, grimblast --notify --cursor copysave screen" + "SUPER, r, exec, hyprrecord -a" + "SUPER CTRL, r, exec, hyprrecord -a -r" + # Brightness diff --git a/system/hosts/ookst480s/default.nix b/system/hosts/ookst480s/default.nix index 51b4f45..df68bad 100644 --- a/system/hosts/ookst480s/default.nix +++ b/system/hosts/ookst480s/default.nix @@ -13,7 +13,7 @@ ooks.enable = true; shell.fish.enable = true; }; - + networking = { hostName = "ookst480s"; }; diff --git a/system/modules/bootloader/default.nix b/system/modules/bootloader/default.nix index 89782ff..a4e74f2 100644 --- a/system/modules/bootloader/default.nix +++ b/system/modules/bootloader/default.nix @@ -1,7 +1,7 @@ { lib, ... }: { - imports = [ ./systemd ]; + imports = [ ./systemd ./plymouth ]; options.systemModules = { bootloader = { @@ -9,5 +9,8 @@ enable = lib.mkEnableOption "Enable systemd bootloader module"; }; }; + plymouth = { + enable = lib.mkEnableOption "Enable plymouth bootscreen"; + }; }; } diff --git a/system/modules/bootloader/plymouth/default.nix b/system/modules/bootloader/plymouth/default.nix new file mode 100644 index 0000000..7a58c26 --- /dev/null +++ b/system/modules/bootloader/plymouth/default.nix @@ -0,0 +1,15 @@ +{ lib, config, pkgs, ... }: + +let + cfg = config.systemModules.plymouth; +in + +{ + config = lib.mkIf cfg.enable { + boot.plymouth = { + enable = true; + themePackages = [(pkgs.catppuccin-plymouth.override {variant = "mocha";})]; + theme = "catppuccin-mocha"; + }; + }; +}