249 lines
6 KiB
Nix
249 lines
6 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}: {
|
|
options = {
|
|
crony.wayland.enable = lib.mkEnableOption "ENable and configure wayland software.";
|
|
};
|
|
|
|
config = lib.mkIf config.crony.wayland.enable {
|
|
home.packages = with pkgs; [
|
|
(writeShellScriptBin "tofi-pass" ''
|
|
tofi --hide-input true --prompt-text 'Password: ' --require-match false --hidden-character '.' < /dev/null
|
|
'')
|
|
cliphist
|
|
wl-clipboard
|
|
];
|
|
|
|
# Enable and setup tofi
|
|
programs.tofi = {
|
|
enable = true;
|
|
settings = {
|
|
anchor = "top";
|
|
width = "100%";
|
|
height = "34";
|
|
horizontal = true;
|
|
history = false;
|
|
require-match = false;
|
|
terminal = "foot";
|
|
outline-width = 0;
|
|
border-width = 0;
|
|
min-input-width = 120;
|
|
result-spacing = 15;
|
|
padding-top = 4;
|
|
padding-bottom = 0;
|
|
padding-left = 5;
|
|
padding-right = 5;
|
|
};
|
|
};
|
|
|
|
# Install foot
|
|
programs.foot.enable = true;
|
|
|
|
# Setup and enable mako
|
|
services.mako = {
|
|
enable = true;
|
|
settings = {
|
|
default-timeout = 5000;
|
|
layer = "overlay";
|
|
width = 200;
|
|
};
|
|
};
|
|
|
|
# Enable hyprpaper
|
|
services.hyprpaper.enable = true;
|
|
|
|
# Enable hypridle
|
|
services.hypridle = {
|
|
enable = true;
|
|
settings = {
|
|
general = {
|
|
lock_cmd = "pidof hyprlock || hyprlock"; # avoid starting multiple hyprlock instances.
|
|
before_sleep_cmd = "loginctl lock-session"; # lock before suspend.
|
|
after_sleep_cmd = "hyprctl dispatch dpms on"; # to avoid having to press a key twice to turn on the display.
|
|
};
|
|
|
|
listener = [
|
|
{
|
|
timeout = 10; # 10 sec
|
|
on-timeout = "pidof hyprlock && hyprctl dispatch dpms off"; # Turn off screen if hyprlock is running
|
|
on-resume = "hyprctl dispatch dpms on"; # Turn on screen when activiy is detected after timeout has fired
|
|
}
|
|
{
|
|
timeout = 300; # 5min
|
|
on-timeout = "loginctl lock-session"; # lock screen when timeout has passed
|
|
}
|
|
{
|
|
timeout = 310; # 5min and 10 sec
|
|
on-timeout = "hyprctl dispatch dpms off"; # Turn off screen if hyprlock is running
|
|
on-resume = "hyprctl dispatch dpms on"; # Turn on screen when activiy is detected after timeout has fired
|
|
}
|
|
];
|
|
};
|
|
};
|
|
|
|
# Enable hyprlock
|
|
programs.hyprlock = {
|
|
enable = true;
|
|
settings = {
|
|
general = {
|
|
disable_loading_bar = true;
|
|
grace = 0;
|
|
hide_cursor = true;
|
|
no_fade_in = false;
|
|
};
|
|
|
|
image = {
|
|
path = "$HOME/.face";
|
|
size = 150;
|
|
border_size = 4;
|
|
border_color = "rgb(d5c4a1)";
|
|
position = "0, 385";
|
|
halign = "center";
|
|
valign = "center";
|
|
};
|
|
|
|
label = [
|
|
{
|
|
text = "$TIME";
|
|
font_size = 90;
|
|
color = "rgb(d5c4a1)";
|
|
position = "0, 245";
|
|
halign = "center";
|
|
valight = "center";
|
|
}
|
|
{
|
|
text = ''cmd[update:43200000] date +"%Y %m %d"'';
|
|
font_size = 25;
|
|
color = "rgb(d5c4a1)";
|
|
position = "0, -225";
|
|
halign = "center";
|
|
valign = "center";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
|
|
# Disable stylix to add full css, I only need it to add colors
|
|
stylix.targets.waybar.addCss = false;
|
|
|
|
# Enable and install waybar
|
|
programs.waybar = {
|
|
enable = true;
|
|
style = ''
|
|
.modules-left {
|
|
padding-left: 10px;
|
|
}
|
|
|
|
#workspaces {
|
|
background-color: @base01;
|
|
margin: 0.25em;
|
|
border-radius: 1em;
|
|
}
|
|
#workspaces button {
|
|
padding: 0 0.5em;
|
|
color: @base06;
|
|
}
|
|
|
|
#workspaces button.empty {
|
|
color: @base03;
|
|
}
|
|
|
|
#workspaces button.visible {
|
|
color: @base06;
|
|
}
|
|
|
|
#workspaces button.active {
|
|
color: @base0D;
|
|
}
|
|
|
|
#window {
|
|
color: @base0D;
|
|
padding: 0 1em;
|
|
}
|
|
|
|
#cpu,
|
|
#memory,
|
|
#temperature,
|
|
#battery,
|
|
#disk,
|
|
#clock {
|
|
color: @base00;
|
|
background-color: @base0D;
|
|
margin: 0.25em;
|
|
border-radius: 0.5em;
|
|
padding: 0 0.5em;
|
|
}
|
|
|
|
#tray {
|
|
background-color: @base00;
|
|
}
|
|
|
|
.modules-right {
|
|
padding-right: 10px;
|
|
}
|
|
'';
|
|
settings = {
|
|
mainBar = {
|
|
height = 34;
|
|
modules-left = [
|
|
"hyprland/workspaces"
|
|
"hyprland/window"
|
|
];
|
|
modules-center = [
|
|
];
|
|
modules-right = [
|
|
"cpu"
|
|
"memory"
|
|
"temperature"
|
|
"disk"
|
|
"battery"
|
|
"clock"
|
|
"tray"
|
|
];
|
|
"hyprland/workspaces" = {
|
|
persistent-workspaces = {
|
|
"*" = [1 2 3 4 5 6 7 8 9];
|
|
};
|
|
};
|
|
disk = {
|
|
path = "/";
|
|
unit = "GB";
|
|
format = " {percentage_used}%";
|
|
};
|
|
tray = {
|
|
spacing = 10;
|
|
};
|
|
clock = {
|
|
format = " {:%Y.%m.%d %H:%M}";
|
|
};
|
|
cpu = {
|
|
format = " {usage}%";
|
|
};
|
|
memory = {
|
|
format = " {}%";
|
|
};
|
|
temperature = {
|
|
critical-threshold = 80;
|
|
hwmon-path = "/sys/class/hwmon/hwmon2/temp1_input";
|
|
format = " {temperatureC}°C";
|
|
};
|
|
battery = {
|
|
states = {
|
|
warning = 30;
|
|
critical = 15;
|
|
};
|
|
|
|
format = "{icon} {capacity}%";
|
|
format-full = "{icon} {capacity}%";
|
|
format-charging = " {icon} {capacity}%";
|
|
format-plugged = " {capacity}%";
|
|
format-icons = [" " " " " " " " " "];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|