feat(desktop): move some wayland stuff to separate module.
This commit is contained in:
parent
8a1101887a
commit
96c57db076
4 changed files with 252 additions and 237 deletions
|
@ -29,6 +29,7 @@
|
||||||
crony.mangohud.enable = true;
|
crony.mangohud.enable = true;
|
||||||
crony.gaming.enable = true;
|
crony.gaming.enable = true;
|
||||||
crony.flatpak.enable = true;
|
crony.flatpak.enable = true;
|
||||||
|
crony.wayland.enable = true;
|
||||||
|
|
||||||
# DO NOT CHANGE ALSO
|
# DO NOT CHANGE ALSO
|
||||||
home.stateVersion = "24.11"; # Please read the comment before changing.
|
home.stateVersion = "24.11"; # Please read the comment before changing.
|
||||||
|
|
|
@ -15,8 +15,10 @@
|
||||||
./newsboat.nix
|
./newsboat.nix
|
||||||
./xdg-user-dirs.nix
|
./xdg-user-dirs.nix
|
||||||
./qutebrowser.nix
|
./qutebrowser.nix
|
||||||
|
./wayland.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
crony.wayland.enable = lib.mkDefault false;
|
||||||
crony.qutebrowser.enable = lib.mkDefault true;
|
crony.qutebrowser.enable = lib.mkDefault true;
|
||||||
crony.mangohud.enable = lib.mkDefault false;
|
crony.mangohud.enable = lib.mkDefault false;
|
||||||
crony.nnn.enable = lib.mkDefault true;
|
crony.nnn.enable = lib.mkDefault true;
|
||||||
|
|
|
@ -78,243 +78,6 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf config.crony.hyprland.enable {
|
config = lib.mkIf config.crony.hyprland.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 = [" " " " " " " " " "];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Setup and enable hyprland
|
# Setup and enable hyprland
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
249
modules/linux/home-manager/wayland.nix
Normal file
249
modules/linux/home-manager/wayland.nix
Normal file
|
@ -0,0 +1,249 @@
|
||||||
|
{
|
||||||
|
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 = [" " " " " " " " " "];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue