diff --git a/configuration.nix b/configuration.nix
index b08d472..ca9d6a5 100644
--- a/configuration.nix
+++ b/configuration.nix
@@ -119,8 +119,8 @@
virtualisation.virtualbox.host.enableKvm = true;
virtualisation.virtualbox.host.addNetworkInterface = false;
- # Betterlockscreen
- security.pam.services.i3lock.enable = true;
+ # Hyprlock
+ security.pam.services.hyprlock = {};
# Enabling the Keyring.
security.pam.services.lightdm.enableGnomeKeyring = true;
diff --git a/flake.nix b/flake.nix
index 785b238..2188951 100644
--- a/flake.nix
+++ b/flake.nix
@@ -36,6 +36,7 @@
users.elias = import ./home/default-laptop.nix;
};
nixpkgs.overlays = [
+ # (import ./overlays/river-status.nix)
inputs.nur.overlays.default
];
}
diff --git a/home/default.nix b/home/default.nix
index bddd01f..b096b30 100644
--- a/home/default.nix
+++ b/home/default.nix
@@ -31,6 +31,19 @@
stateVersion = "23.11";
};
+
+
+ systemd.user.services = {
+ idle-inhibitor = {
+ Unit = {
+ Description = "Presentation Mode";
+ };
+ Service = {
+ Type = "simple";
+ ExecStart = "systemd-inhibit --what=idle --who=Caffeine --why=Caffeine --mode=block sleep inf";
+ };
+ };
+ };
programs = { home-manager.enable = true; };
nixpkgs.config = {
diff --git a/home/programs/default.nix b/home/programs/default.nix
index 4836ec0..0f37a85 100644
--- a/home/programs/default.nix
+++ b/home/programs/default.nix
@@ -1,5 +1,6 @@
{
imports = [
+ ./hyprlock.nix
./river
./alacritty
./anki
diff --git a/home/programs/eww/src/bar.yuck b/home/programs/eww/src/bar.yuck
index 3550a11..f655821 100644
--- a/home/programs/eww/src/bar.yuck
+++ b/home/programs/eww/src/bar.yuck
@@ -254,6 +254,13 @@
:class "text separator"
:text "|"))
+ (defwidget idle_inhibitor []
+ (box :class "idle_inhibitor"
+ :space-evenly false
+ (button :class "icon"
+ :onclick "systemctl --user is-active idle-inhibitor.service && systemctl --user stop idle-inhibitor.service || systemctl --user start idle-inhibitor.service"
+ (label :text "${idle_inhibitor == 'start' ? '' : '' }"))))
+
;; /-- Bar -->
(defwindow bar []
:geometry (geometry
@@ -266,6 +273,8 @@
:reserve (struts
:distance "25px"
:side "top")
+ :exclusive true
+ :layer "top"
:windowtype "dock"
(box
:orientation "horizontal"
@@ -277,6 +286,7 @@
(widgetLogSeperator)
(widgetWindows)
(box :hexpand true)
+ (idle_inhibitor)
(widgetSpeaker)
(widgetSeperator)
(widgetBacklight)
diff --git a/home/programs/eww/src/scripts/river_log.sh b/home/programs/eww/src/scripts/river_log.sh
new file mode 100755
index 0000000..9f6de7c
--- /dev/null
+++ b/home/programs/eww/src/scripts/river_log.sh
@@ -0,0 +1,6 @@
+socat - UNIX-CONNECT:"$XDG_RUNTIME_DIR"/river/status | while read -r line; do
+ workspace=$(echo "$line" | jq -r '.workspace')
+ layout=$(echo "$line" | jq -r '.layout')
+ title=$(echo "$line" | jq -r '.title')
+ echo "WS: $workspace | Layout: $layout | $title"
+done
diff --git a/home/programs/hyprlock.nix b/home/programs/hyprlock.nix
new file mode 100644
index 0000000..8a52a93
--- /dev/null
+++ b/home/programs/hyprlock.nix
@@ -0,0 +1,33 @@
+{ ... }:
+
+{
+ programs.hyprlock = {
+ enable = true;
+ settings = {
+ general = {
+ disable_loading_bar = true;
+ grace = 300;
+ hide_cursor = true;
+ no_fade_in = false;
+ };
+ background = [{
+ path = "screenshot";
+ blur_passes = 3;
+ blur_size = 8;
+ }];
+ input-field = [{
+ size = "200, 50";
+ position = "0, -80";
+ monitor = "";
+ dots_center = true;
+ fade_on_empty = false;
+ font_color = "rgb(202, 211, 245)";
+ inner_color = "rgb(91, 96, 120)";
+ outer_color = "rgb(24, 25, 38)";
+ outline_thickness = 5;
+ placeholder_text = ''Password...'';
+ shadow_passes = 2;
+ }];
+ };
+ };
+}
diff --git a/home/programs/river/default.nix b/home/programs/river/default.nix
index 4293110..ca09a24 100644
--- a/home/programs/river/default.nix
+++ b/home/programs/river/default.nix
@@ -1,13 +1,13 @@
{ pkgs, lib, ... }:
{
-
home.packages = with pkgs; [
wlr-randr
yad slurp
grim
wl-clipboard
rivercarro
+ # river-status
];
xdg.configFile."helperscripts" = {
recursive = true;
@@ -33,13 +33,12 @@
systemd = { enable = true; };
xwayland.enable = true;
extraConfig = ''
- rivertile -view-padding 0 -outer-padding 25 &
+ rivertile -view-padding 0 -outer-padding 0 &
'';
settings = {
spawn = [
"nextcloud --background"
- "~/.config/helperscriptsstartEww.sh"
- "trayer --edge top --align left --widthtype request --height 25 --transparent true --alpha 0 --expand true --SetDockType true --SetPartialStrut true"
+ "/home/elias/.config/helperscripts/startEww.sh"
];
spawn-tagmask = "${all_but_scratch_tag}";
keyboard-layout = "de";
diff --git a/home/services/default.nix b/home/services/default.nix
index cacee4e..8b4bfe8 100644
--- a/home/services/default.nix
+++ b/home/services/default.nix
@@ -1,5 +1,5 @@
{ pkgs, ... }:
{
- imports = [ ./ssh-agent ./gpg-agent ];
+ imports = [ ./ssh-agent ./gpg-agent ./hypridle.nix ];
}
diff --git a/home/services/hypridle.nix b/home/services/hypridle.nix
new file mode 100644
index 0000000..831cb51
--- /dev/null
+++ b/home/services/hypridle.nix
@@ -0,0 +1,23 @@
+{ pkgs, ... }: {
+ services.hypridle = {
+ enable = true;
+ settings = {
+ general = {
+ lock_cmd =
+ "/run/current-system/sw/bin/pidof hyprlock || ${pkgs.hyprlock}/bin/hyprlock";
+ before_sleep_cmd = "/run/current-system/sw/bin/loginctl lock-session";
+ };
+ listener = [
+ {
+ timeout = 300;
+ on-timeout = "${pkgs.hyprlock}/bin/hyprlock";
+ }
+ {
+ timeout = 600;
+ on-timeout = "${pkgs.systemd}/bin/systemctl suspend";
+ }
+ ];
+ };
+ };
+}
+
diff --git a/overlays/obsidian.nix.orig b/overlays/obsidian.nix.orig
deleted file mode 100644
index 0a169e9..0000000
--- a/overlays/obsidian.nix.orig
+++ /dev/null
@@ -1,14 +0,0 @@
-final: prev: {
- obsidian = prev.obsidian.overrideAttrs (old: {
-
- src = prev.fetchurl {
- url = old.src.url;
-<<<<<<< HEAD
- hash = "sha256-bvmvzVyHrjh1Yj3JxEfry521CMX3E2GENmXddEeLwiE=";
-=======
- hash = "sha256-XVq0nQiyT2HvKQpzJIvhghsGgg4ye7uqZcyA1nH4O/o=";
->>>>>>> test
- };
- });
-}
-
diff --git a/overlays/river-status.nix b/overlays/river-status.nix
new file mode 100644
index 0000000..36cf31b
--- /dev/null
+++ b/overlays/river-status.nix
@@ -0,0 +1,31 @@
+self: super:
+
+{
+ river-status = super.rustPlatform.buildRustPackage rec {
+ pname = "river-status";
+ version = "0.1.0"; # Replace with the actual version if known
+
+ src = super.fetchFromGitHub {
+ owner = "grvn";
+ repo = "river-status";
+ rev = "main"; # Replace with a specific commit hash or tag if needed
+ sha256 = "sha256-QTHn3+8CRpm5CoTwuhoMjBG16CYcOb79cOXgcgzimkc="; # Placeholder
+ };
+
+ cargoHash = "sha256-DPsQE71sEpfVnyI6V/da5n9V9pbItPZMuu/EM/30Jyo="; # Placeholder
+ nativeBuildInputs = [
+ super.pkg-config # If you're dealing with C libraries or dependencies
+ ];
+
+ buildInputs = [
+ super.wayland-utils # Add this or other dependencies if they are required for building
+ ];
+
+ meta = with super.lib; {
+ description = "A client for fetching status information from the River Wayland compositor";
+ homepage = "https://github.com/grvn/river-status";
+ license = licenses.mit;
+ maintainers = with maintainers; [ "Elias Schröter" ];
+ };
+ };
+}
diff --git a/overlays/shell.nix b/overlays/shell.nix
new file mode 100644
index 0000000..7012071
--- /dev/null
+++ b/overlays/shell.nix
@@ -0,0 +1,5 @@
+{ pkgs ? import { overlays = [ (import ./river-status.nix) ]; } }:
+
+pkgs.mkShell {
+ buildInputs = [ pkgs.river-status ];
+}