Added some hyprland utilities
This commit is contained in:
parent
6a9b5e8267
commit
23fa2928d7
6 changed files with 701 additions and 215 deletions
|
@ -27,7 +27,6 @@ in
|
||||||
../../moduler/system.nix
|
../../moduler/system.nix
|
||||||
../../moduler/dev.nix
|
../../moduler/dev.nix
|
||||||
../../moduler/lsp.nix
|
../../moduler/lsp.nix
|
||||||
../../moduler/sway.nix
|
|
||||||
../../moduler/hyprland.nix
|
../../moduler/hyprland.nix
|
||||||
../../moduler/sound.nix
|
../../moduler/sound.nix
|
||||||
];
|
];
|
||||||
|
|
|
@ -106,5 +106,5 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
system.stateVersion = "23.11";
|
system.stateVersion = "25.05";
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
../moduler/zathura.nix
|
../moduler/zathura.nix
|
||||||
../moduler/lazygit.nix
|
../moduler/lazygit.nix
|
||||||
../moduler/ssh.nix
|
../moduler/ssh.nix
|
||||||
../moduler/aerc.nix
|
|
||||||
../moduler/oh-my-posh.nix
|
../moduler/oh-my-posh.nix
|
||||||
../moduler/gtk.nix
|
../moduler/gtk.nix
|
||||||
# ../moduler/neovim.nix
|
# ../moduler/neovim.nix
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
{ host
|
{
|
||||||
, config
|
host,
|
||||||
, pkgs
|
config,
|
||||||
, inputs
|
pkgs,
|
||||||
, ...
|
inputs,
|
||||||
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
in
|
in
|
||||||
|
@ -15,220 +16,277 @@ in
|
||||||
swappy
|
swappy
|
||||||
ydotool
|
ydotool
|
||||||
hyprpolkitagent
|
hyprpolkitagent
|
||||||
hyprland-qtutils # needed for banners and ANR messages
|
hyprland-qtutils
|
||||||
|
waypipe
|
||||||
];
|
];
|
||||||
nix.settings = {
|
|
||||||
substituters = ["https://hyprland.cachix.org"];
|
services = {
|
||||||
trusted-substituters = ["https://hyprland.cachix.org"];
|
gnome.gnome-keyring.enable = true;
|
||||||
trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
|
greetd = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
default_session = {
|
||||||
|
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd hyprland";
|
||||||
|
user = "greeter";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
programs.hyprland = {
|
|
||||||
|
nix.settings = {
|
||||||
|
substituters = [ "https://hyprland.cachix.org" ];
|
||||||
|
trusted-substituters = [ "https://hyprland.cachix.org" ];
|
||||||
|
trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ];
|
||||||
|
};
|
||||||
|
programs.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# set the flake package
|
|
||||||
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||||
# make sure to also set the portal package, so that they are in sync
|
portalPackage =
|
||||||
portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
||||||
};
|
};
|
||||||
home-manager.users.fw =
|
home-manager.users.fw =
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
services = {
|
imports = [
|
||||||
cliphist = {
|
./waybar.nix
|
||||||
enable = true;
|
];
|
||||||
};
|
programs = {
|
||||||
};
|
hyprlock = {
|
||||||
|
enable = true;
|
||||||
wayland.windowManager.hyprland = {
|
};
|
||||||
|
};
|
||||||
|
services = {
|
||||||
|
cliphist = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
hypridle = {
|
||||||
enable = true;
|
enable = true;
|
||||||
xwayland = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
"$terminal" = "kitty";
|
|
||||||
"$mod" = "ALT";
|
|
||||||
|
|
||||||
monitor = [
|
|
||||||
"DP-1, 1920x1080@144, 0x0, 1"
|
|
||||||
",prefered,auto,1"
|
|
||||||
];
|
|
||||||
|
|
||||||
xwayland = {
|
|
||||||
force_zero_scaling = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
general = {
|
general = {
|
||||||
gaps_in = 6;
|
after_sleep_cmd = "hyprctl dispatch dpms on";
|
||||||
gaps_out = 6;
|
ignore_dbus_inhibit = false;
|
||||||
border_size = 2;
|
lock_cmd = "hyprlock";
|
||||||
layout = "dwindle";
|
|
||||||
allow_tearing = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
input = {
|
listener = [
|
||||||
kb_layout = "se";
|
{
|
||||||
kb_options = [
|
timeout = 900;
|
||||||
"caps:escape"
|
on-timeout = "hyprlock";
|
||||||
];
|
}
|
||||||
|
{
|
||||||
follow_mouse = true;
|
timeout = 1200;
|
||||||
touchpad = {
|
on-timeout = "hyprctl dispatch dpms off";
|
||||||
natural_scroll = true;
|
on-resume = "hyprctl dispatch dpms on";
|
||||||
};
|
}
|
||||||
accel_profile = "flat";
|
|
||||||
sensitivity = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
decoration = {
|
|
||||||
rounding = 0;
|
|
||||||
active_opacity = 0.9;
|
|
||||||
inactive_opacity = 0.8;
|
|
||||||
fullscreen_opacity = 0.9;
|
|
||||||
|
|
||||||
blur = {
|
|
||||||
enabled = true;
|
|
||||||
xray = true;
|
|
||||||
special = false;
|
|
||||||
new_optimizations = true;
|
|
||||||
size = 14;
|
|
||||||
passes = 4;
|
|
||||||
brightness = 1;
|
|
||||||
noise = 0.01;
|
|
||||||
contrast = 1;
|
|
||||||
popups = true;
|
|
||||||
popups_ignorealpha = 0.6;
|
|
||||||
ignore_opacity = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
animations = {
|
|
||||||
enabled = false;
|
|
||||||
bezier = [
|
|
||||||
"linear, 0, 0, 1, 1"
|
|
||||||
"md3_standard, 0.2, 0, 0, 1"
|
|
||||||
"md3_decel, 0.05, 0.7, 0.1, 1"
|
|
||||||
"md3_accel, 0.3, 0, 0.8, 0.15"
|
|
||||||
"overshot, 0.05, 0.9, 0.1, 1.1"
|
|
||||||
"crazyshot, 0.1, 1.5, 0.76, 0.92"
|
|
||||||
"hyprnostretch, 0.05, 0.9, 0.1, 1.0"
|
|
||||||
"menu_decel, 0.1, 1, 0, 1"
|
|
||||||
"menu_accel, 0.38, 0.04, 1, 0.07"
|
|
||||||
"easeInOutCirc, 0.85, 0, 0.15, 1"
|
|
||||||
"easeOutCirc, 0, 0.55, 0.45, 1"
|
|
||||||
"easeOutExpo, 0.16, 1, 0.3, 1"
|
|
||||||
"softAcDecel, 0.26, 0.26, 0.15, 1"
|
|
||||||
"md2, 0.4, 0, 0.2, 1"
|
|
||||||
];
|
|
||||||
animation = [
|
|
||||||
"windows, 1, 3, md3_decel, popin 60%"
|
|
||||||
"windowsIn, 1, 3, md3_decel, popin 60%"
|
|
||||||
"windowsOut, 1, 3, md3_accel, popin 60%"
|
|
||||||
"border, 1, 10, default"
|
|
||||||
"fade, 1, 3, md3_decel"
|
|
||||||
"layersIn, 1, 3, menu_decel, slide"
|
|
||||||
"layersOut, 1, 1.6, menu_accel"
|
|
||||||
"fadeLayersIn, 1, 2, menu_decel"
|
|
||||||
"fadeLayersOut, 1, 4.5, menu_accel"
|
|
||||||
"workspaces, 1, 7, menu_decel, slide"
|
|
||||||
"specialWorkspace, 1, 3, md3_decel, slidevert"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
cursor = {
|
|
||||||
enable_hyprcursor = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
dwindle = {
|
|
||||||
pseudotile = true;
|
|
||||||
preserve_split = true;
|
|
||||||
smart_split = false;
|
|
||||||
smart_resizing = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
misc = {
|
|
||||||
disable_hyprland_logo = true;
|
|
||||||
disable_splash_rendering = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
bind = [
|
|
||||||
# General
|
|
||||||
"$mod, return, exec, $terminal"
|
|
||||||
"$mod SHIFT, q, killactive"
|
|
||||||
"$mod SHIFT, e, exit"
|
|
||||||
"$mod SHIFT, x, exec, ${pkgs.hyprlock}/bin/hyprlock"
|
|
||||||
|
|
||||||
# Screen focus
|
|
||||||
"$mod, v, togglefloating"
|
|
||||||
"$mod, u, focusurgentorlast"
|
|
||||||
"$mod, tab, focuscurrentorlast"
|
|
||||||
"$mod, f, fullscreen"
|
|
||||||
|
|
||||||
# Screen resize
|
|
||||||
"$mod CTRL, h, resizeactive, -20 0"
|
|
||||||
"$mod CTRL, l, resizeactive, 20 0"
|
|
||||||
"$mod CTRL, k, resizeactive, 0 -20"
|
|
||||||
"$mod CTRL, j, resizeactive, 0 20"
|
|
||||||
|
|
||||||
# Workspaces
|
|
||||||
"$mod, 1, workspace, 1"
|
|
||||||
"$mod, 2, workspace, 2"
|
|
||||||
"$mod, 3, workspace, 3"
|
|
||||||
"$mod, 4, workspace, 4"
|
|
||||||
"$mod, 5, workspace, 5"
|
|
||||||
"$mod, 6, workspace, 6"
|
|
||||||
"$mod, 7, workspace, 7"
|
|
||||||
"$mod, 8, workspace, 8"
|
|
||||||
"$mod, 9, workspace, 9"
|
|
||||||
"$mod, 0, workspace, 10"
|
|
||||||
|
|
||||||
# Move to workspaces
|
|
||||||
"$mod SHIFT, 1, movetoworkspace,1"
|
|
||||||
"$mod SHIFT, 2, movetoworkspace,2"
|
|
||||||
"$mod SHIFT, 3, movetoworkspace,3"
|
|
||||||
"$mod SHIFT, 4, movetoworkspace,4"
|
|
||||||
"$mod SHIFT, 5, movetoworkspace,5"
|
|
||||||
"$mod SHIFT, 6, movetoworkspace,6"
|
|
||||||
"$mod SHIFT, 7, movetoworkspace,7"
|
|
||||||
"$mod SHIFT, 8, movetoworkspace,8"
|
|
||||||
"$mod SHIFT, 9, movetoworkspace,9"
|
|
||||||
"$mod SHIFT, 0, movetoworkspace,10"
|
|
||||||
|
|
||||||
# Navigation
|
|
||||||
"$mod, h, movefocus, l"
|
|
||||||
"$mod, l, movefocus, r"
|
|
||||||
"$mod, k, movefocus, u"
|
|
||||||
"$mod, j, movefocus, d"
|
|
||||||
|
|
||||||
# Applications
|
|
||||||
"$mod, q, exec, ${pkgs.firefox}/bin/firefox"
|
|
||||||
"$mod, d, exec, ${pkgs.rofi}/bin/rofi"
|
|
||||||
|
|
||||||
|
|
||||||
# Screencapture
|
|
||||||
"$mod, S, exec, ${pkgs.grim}/bin/grim | wl-copy"
|
|
||||||
"$mod SHIFT+ALT, S, exec, ${pkgs.grim}/bin/grim -g \"$(slurp)\" - | ${pkgs.swappy}/bin/swappy -f -"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
bindm = [
|
|
||||||
"$mod, mouse:272, movewindow"
|
|
||||||
"$mod, mouse:273, resizewindow"
|
|
||||||
];
|
|
||||||
|
|
||||||
env = [
|
|
||||||
"NIXOS_OZONE_WL,1"
|
|
||||||
"_JAVA_AWT_WM_NONREPARENTING,1"
|
|
||||||
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
|
|
||||||
"QT_QPA_PLATFORM,wayland"
|
|
||||||
"SDL_VIDEODRIVER,wayland"
|
|
||||||
"GDK_BACKEND,wayland"
|
|
||||||
"XDG_SESSION_TYPE,wayland"
|
|
||||||
"XDG_SESSION_DESKTOP,Hyprland"
|
|
||||||
"XDG_CURRENT_DESKTOP,Hyprland"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
systemd = {
|
|
||||||
enable = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
hyprpaper = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
ipc = "on";
|
||||||
|
splash = false;
|
||||||
|
splash_offset = 2.0;
|
||||||
|
|
||||||
|
preload = [ "/home/fw/nix/wallpapers/blue.png" ];
|
||||||
|
|
||||||
|
wallpaper = [
|
||||||
|
"DP-1,/home/fw/nix/wallpapers/blue.png"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
xwayland = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
"$terminal" = "kitty";
|
||||||
|
"$mod" = "ALT";
|
||||||
|
|
||||||
|
monitor = [
|
||||||
|
"DP-1, 1920x1080@144, 0x0, 1"
|
||||||
|
",prefered,auto,1"
|
||||||
|
];
|
||||||
|
|
||||||
|
xwayland = {
|
||||||
|
force_zero_scaling = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
general = {
|
||||||
|
gaps_in = 15;
|
||||||
|
gaps_out = 15;
|
||||||
|
border_size = 2;
|
||||||
|
layout = "dwindle";
|
||||||
|
allow_tearing = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
input = {
|
||||||
|
kb_layout = "se";
|
||||||
|
kb_options = [
|
||||||
|
"caps:escape"
|
||||||
|
];
|
||||||
|
|
||||||
|
follow_mouse = true;
|
||||||
|
touchpad = {
|
||||||
|
natural_scroll = true;
|
||||||
|
};
|
||||||
|
accel_profile = "flat";
|
||||||
|
sensitivity = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
decoration = {
|
||||||
|
rounding = 0;
|
||||||
|
active_opacity = 0.9;
|
||||||
|
inactive_opacity = 0.8;
|
||||||
|
fullscreen_opacity = 0.9;
|
||||||
|
|
||||||
|
blur = {
|
||||||
|
enabled = true;
|
||||||
|
xray = true;
|
||||||
|
special = false;
|
||||||
|
new_optimizations = true;
|
||||||
|
size = 14;
|
||||||
|
passes = 4;
|
||||||
|
brightness = 1;
|
||||||
|
noise = 0.01;
|
||||||
|
contrast = 1;
|
||||||
|
popups = true;
|
||||||
|
popups_ignorealpha = 0.6;
|
||||||
|
ignore_opacity = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
animations = {
|
||||||
|
enabled = true;
|
||||||
|
bezier = [
|
||||||
|
"linear, 0, 0, 1, 1"
|
||||||
|
"md3_standard, 0.2, 0, 0, 1"
|
||||||
|
"md3_decel, 0.05, 0.7, 0.1, 1"
|
||||||
|
"md3_accel, 0.3, 0, 0.8, 0.15"
|
||||||
|
"overshot, 0.05, 0.9, 0.1, 1.1"
|
||||||
|
"crazyshot, 0.1, 1.5, 0.76, 0.92"
|
||||||
|
"hyprnostretch, 0.05, 0.9, 0.1, 1.0"
|
||||||
|
"menu_decel, 0.1, 1, 0, 1"
|
||||||
|
"menu_accel, 0.38, 0.04, 1, 0.07"
|
||||||
|
"easeInOutCirc, 0.85, 0, 0.15, 1"
|
||||||
|
"easeOutCirc, 0, 0.55, 0.45, 1"
|
||||||
|
"easeOutExpo, 0.16, 1, 0.3, 1"
|
||||||
|
"softAcDecel, 0.26, 0.26, 0.15, 1"
|
||||||
|
"md2, 0.4, 0, 0.2, 1"
|
||||||
|
];
|
||||||
|
animation = [
|
||||||
|
"windows, 1, 1, md3_decel, popin 60%"
|
||||||
|
"windowsIn, 1, 1, md3_decel, popin 60%"
|
||||||
|
"windowsOut, 1, 1, md3_accel, popin 60%"
|
||||||
|
"border, 1, 2, default"
|
||||||
|
"fade, 1, 1, md3_decel"
|
||||||
|
"layersIn, 1, 1, menu_decel, slide"
|
||||||
|
"layersOut, 1, 1, menu_accel"
|
||||||
|
"fadeLayersIn, 1, 1, menu_decel"
|
||||||
|
"fadeLayersOut, 1, 1, menu_accel"
|
||||||
|
"workspaces, 1, 2, menu_decel, slide"
|
||||||
|
"specialWorkspace, 1, 1, md3_decel, slidevert"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
cursor = {
|
||||||
|
enable_hyprcursor = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
dwindle = {
|
||||||
|
pseudotile = true;
|
||||||
|
preserve_split = true;
|
||||||
|
smart_split = false;
|
||||||
|
smart_resizing = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
misc = {
|
||||||
|
disable_hyprland_logo = true;
|
||||||
|
disable_splash_rendering = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
bind = [
|
||||||
|
# General
|
||||||
|
"$mod, return, exec, $terminal"
|
||||||
|
"$mod SHIFT, q, killactive"
|
||||||
|
"$mod SHIFT, e, exit"
|
||||||
|
"$mod SHIFT, x, exec, ${pkgs.hyprlock}/bin/hyprlock"
|
||||||
|
|
||||||
|
# Screen focus
|
||||||
|
"$mod, v, togglefloating"
|
||||||
|
"$mod, u, focusurgentorlast"
|
||||||
|
"$mod, tab, focuscurrentorlast"
|
||||||
|
"$mod, f, fullscreen"
|
||||||
|
|
||||||
|
# Screen resize
|
||||||
|
"$mod CTRL, h, resizeactive, -20 0"
|
||||||
|
"$mod CTRL, l, resizeactive, 20 0"
|
||||||
|
"$mod CTRL, k, resizeactive, 0 -20"
|
||||||
|
"$mod CTRL, j, resizeactive, 0 20"
|
||||||
|
|
||||||
|
# Workspaces
|
||||||
|
"$mod, 1, workspace, 1"
|
||||||
|
"$mod, 2, workspace, 2"
|
||||||
|
"$mod, 3, workspace, 3"
|
||||||
|
"$mod, 4, workspace, 4"
|
||||||
|
"$mod, 5, workspace, 5"
|
||||||
|
"$mod, 6, workspace, 6"
|
||||||
|
"$mod, 7, workspace, 7"
|
||||||
|
"$mod, 8, workspace, 8"
|
||||||
|
"$mod, 9, workspace, 9"
|
||||||
|
"$mod, 0, workspace, 10"
|
||||||
|
|
||||||
|
# Move to workspaces
|
||||||
|
"$mod SHIFT, 1, movetoworkspace,1"
|
||||||
|
"$mod SHIFT, 2, movetoworkspace,2"
|
||||||
|
"$mod SHIFT, 3, movetoworkspace,3"
|
||||||
|
"$mod SHIFT, 4, movetoworkspace,4"
|
||||||
|
"$mod SHIFT, 5, movetoworkspace,5"
|
||||||
|
"$mod SHIFT, 6, movetoworkspace,6"
|
||||||
|
"$mod SHIFT, 7, movetoworkspace,7"
|
||||||
|
"$mod SHIFT, 8, movetoworkspace,8"
|
||||||
|
"$mod SHIFT, 9, movetoworkspace,9"
|
||||||
|
"$mod SHIFT, 0, movetoworkspace,10"
|
||||||
|
|
||||||
|
# Navigation
|
||||||
|
"$mod, h, movefocus, l"
|
||||||
|
"$mod, l, movefocus, r"
|
||||||
|
"$mod, k, movefocus, u"
|
||||||
|
"$mod, j, movefocus, d"
|
||||||
|
|
||||||
|
# Applications
|
||||||
|
"$mod, q, exec, ${pkgs.firefox}/bin/firefox"
|
||||||
|
"$mod, d, exec, ${pkgs.rofi}/bin/rofi"
|
||||||
|
|
||||||
|
# Screencapture
|
||||||
|
"$mod, S, exec, ${pkgs.grim}/bin/grim | wl-copy"
|
||||||
|
"$mod SHIFT+ALT, S, exec, ${pkgs.grim}/bin/grim -g \"$(slurp)\" - | ${pkgs.swappy}/bin/swappy -f -"
|
||||||
|
];
|
||||||
|
|
||||||
|
bindm = [
|
||||||
|
"$mod, mouse:272, movewindow"
|
||||||
|
"$mod, mouse:273, resizewindow"
|
||||||
|
];
|
||||||
|
|
||||||
|
env = [
|
||||||
|
"NIXOS_OZONE_WL,1"
|
||||||
|
"_JAVA_AWT_WM_NONREPARENTING,1"
|
||||||
|
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
|
||||||
|
"QT_QPA_PLATFORM,wayland"
|
||||||
|
"SDL_VIDEODRIVER,wayland"
|
||||||
|
"GDK_BACKEND,wayland"
|
||||||
|
"XDG_SESSION_TYPE,wayland"
|
||||||
|
"XDG_SESSION_DESKTOP,Hyprland"
|
||||||
|
"XDG_CURRENT_DESKTOP,Hyprland"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
systemd = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,11 +7,10 @@
|
||||||
{
|
{
|
||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
font =
|
font = {
|
||||||
{
|
name = "ComicShannsMono Nerd Font";
|
||||||
name = "ComicShannsMono Nerd Font";
|
size = 12;
|
||||||
size = 12;
|
};
|
||||||
};
|
|
||||||
shellIntegration = {
|
shellIntegration = {
|
||||||
mode = "no-cursor";
|
mode = "no-cursor";
|
||||||
};
|
};
|
||||||
|
@ -21,6 +20,7 @@
|
||||||
cursor_shape = "block";
|
cursor_shape = "block";
|
||||||
cursor_blink_interval = 0;
|
cursor_blink_interval = 0;
|
||||||
enable_audio_bell = false;
|
enable_audio_bell = false;
|
||||||
|
window_padding_width = 5;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
430
moduler/waybar.nix
Normal file
430
moduler/waybar.nix
Normal file
|
@ -0,0 +1,430 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
home.packages = with pkgs; [waybar];
|
||||||
|
|
||||||
|
programs.waybar = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
mainBar = {
|
||||||
|
layer = "top";
|
||||||
|
"modules-left" = ["hyprland/workspaces" "hyprland/window"];
|
||||||
|
"modules-center" = ["clock"];
|
||||||
|
"modules-right" = ["tray" "cpu" "memory" "idle_inhibitor" "pulseaudio" "bluetooth"];
|
||||||
|
"hyprland/window" = {
|
||||||
|
format = "{title}";
|
||||||
|
"max-length" = 333;
|
||||||
|
"seperate-outputs" = true;
|
||||||
|
};
|
||||||
|
clock = {
|
||||||
|
format = "<span foreground='#282828'> </span><span>{:%I:%M %a %d}</span>";
|
||||||
|
"tooltip-format" = "{calendar}";
|
||||||
|
calendar = {
|
||||||
|
mode = "month";
|
||||||
|
"mode-mon-col" = 3;
|
||||||
|
"on-scroll" = 1;
|
||||||
|
"on-click-right" = "mode";
|
||||||
|
format = {
|
||||||
|
months = "<span color='#ffead3'><b>{}</b></span>";
|
||||||
|
days = "<span color='#ecc6d9'><b>{}</b></span>";
|
||||||
|
weeks = "<span color='#99ffdd'><b>{%W}</b></span>";
|
||||||
|
weekdays = "<span color='#ffcc66'><b>{}</b></span>";
|
||||||
|
today = "<span color='#ff6699'><b>{}</b></span>";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
actions = {
|
||||||
|
"on-click-middle" = "mode";
|
||||||
|
"on-click-right" = "shift_up";
|
||||||
|
"on-click" = "shift_down";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
cpu = {
|
||||||
|
format = "<span foreground='#b8bb26'></span> {usage}%";
|
||||||
|
};
|
||||||
|
memory = {
|
||||||
|
format = "<span foreground='#d65d9e'></span> {}%";
|
||||||
|
interval = 1;
|
||||||
|
};
|
||||||
|
"custom/gpu-util" = {
|
||||||
|
exec = "./scripts/gpu-util";
|
||||||
|
format = "<span foreground='#67b0e8'></span> {}";
|
||||||
|
interval = 1;
|
||||||
|
};
|
||||||
|
"custom/gpu-temp" = {
|
||||||
|
exec = "./scripts/gpu-temp";
|
||||||
|
format = "<span foreground='#e57474'></span> {}";
|
||||||
|
interval = 1;
|
||||||
|
};
|
||||||
|
temperature = {
|
||||||
|
"hwmon-path" = "/sys/class/hwmon/hwmon1/temp1_input";
|
||||||
|
"critical-threshold" = 80;
|
||||||
|
format = "<span foreground='#83a598'></span> {temperatureC}°C";
|
||||||
|
interval = 1;
|
||||||
|
};
|
||||||
|
"hyprland/workspaces" = {
|
||||||
|
format = "{icon}";
|
||||||
|
"active-only" = false;
|
||||||
|
"sort-by-number" = true;
|
||||||
|
"on-click" = "activate";
|
||||||
|
"all-outputs" = false;
|
||||||
|
"format-icons" = {
|
||||||
|
"1" = "1";
|
||||||
|
"2" = "2";
|
||||||
|
"3" = "3";
|
||||||
|
"4" = "4";
|
||||||
|
"5" = "5";
|
||||||
|
"6" = "6";
|
||||||
|
"7" = "7";
|
||||||
|
"8" = "8";
|
||||||
|
"9" = "9";
|
||||||
|
"10" = "10";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
network = {
|
||||||
|
format = " Off";
|
||||||
|
"format-wifi" = "{essid} ({signalStrength}%)";
|
||||||
|
"format-ethernet" = "<span foreground='#b48ead'></span>";
|
||||||
|
"format-disconnected" = " Disconnected";
|
||||||
|
"tooltip-format" = "{ifname} via {gwaddr} ";
|
||||||
|
"tooltip-format-wifi" = "{essid}({signalStrength}%) ";
|
||||||
|
"tooltip-format-ethernet" = " {ifname}";
|
||||||
|
"tooltip-format-disconnected" = "Disconnected";
|
||||||
|
};
|
||||||
|
pulseaudio = {
|
||||||
|
format = "<span foreground='#cc241d'>{icon}</span> {volume}% {format_source}";
|
||||||
|
"format-bluetooth" = "<span foreground='#b16286'>{icon}</span> {volume}% {format_source}";
|
||||||
|
"format-bluetooth-muted" = "<span foreground='#D699B6'></span> {format_source}";
|
||||||
|
"format-muted" = "<span foreground='#7A8478'></span> {format_source}";
|
||||||
|
"format-source" = "<span foreground='#E67E80'></span> {volume}%";
|
||||||
|
"format-source-muted" = "<span foreground='#F38BA8'></span>";
|
||||||
|
"format-icons" = {
|
||||||
|
headphone = "";
|
||||||
|
phone = "";
|
||||||
|
portable = "";
|
||||||
|
default = ["" "" ""];
|
||||||
|
};
|
||||||
|
"on-click-left" = "pavucontrol";
|
||||||
|
input = true;
|
||||||
|
};
|
||||||
|
"custom/playerctl" = {
|
||||||
|
format = "{icon} <span>{}</span>";
|
||||||
|
"return-type" = "json";
|
||||||
|
"max-length" = 333;
|
||||||
|
exec = "playerctl -a metadata --format '{\"text\": \"{{artist}} ~ {{markup_escape(title)}}\", \"tooltip\": \"{{playerName}} : {{markup_escape(title)}}\", \"alt\": \"{{status}}\", \"class\": \"{{status}}\"}' -F";
|
||||||
|
"on-click-middle" = "playerctl play-pause";
|
||||||
|
"on-click" = "playerctl previous";
|
||||||
|
"on-click-right" = "playerctl next";
|
||||||
|
"format-icons" = {
|
||||||
|
Playing = "<span foreground='#98BB6C'></span>";
|
||||||
|
Paused = "<span foreground='#E46876'></span>";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
tray = {
|
||||||
|
format = "<span foreground='#D3C6AA'>{icon}</span>";
|
||||||
|
"icon-size" = 14;
|
||||||
|
spacing = 5;
|
||||||
|
};
|
||||||
|
idle_inhibitor = {
|
||||||
|
format = "{icon}";
|
||||||
|
"format-icons" = {
|
||||||
|
activated = "";
|
||||||
|
deactivated = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"custom/subs" = {
|
||||||
|
format = "<span foreground='#fbf1c7'> </span> {}";
|
||||||
|
exec = "/usr/local/bin/subsfile.sh";
|
||||||
|
"on-click" = "vivaldi-stable https://youtube.com/thelinuxcast";
|
||||||
|
"restart-interval" = 1;
|
||||||
|
};
|
||||||
|
"custom/spacer" = {
|
||||||
|
format = " ";
|
||||||
|
};
|
||||||
|
"wlr/taskbar" = {
|
||||||
|
format = "{name}";
|
||||||
|
"icon-size" = 14;
|
||||||
|
"icon-theme" = "Numix-Circle";
|
||||||
|
"tooltip-format" = "{title}";
|
||||||
|
"on-click" = "activate";
|
||||||
|
"on-click-middle" = "close";
|
||||||
|
"ignore-list" = ["Alacritty"];
|
||||||
|
"app_ids-mapping" = {
|
||||||
|
firefoxdeveloperedition = "firefox-developer-edition";
|
||||||
|
};
|
||||||
|
rewrite = {
|
||||||
|
"Firefox Web Browser" = "Firefox";
|
||||||
|
"Foot Server" = "Terminal";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
bluetooth = {
|
||||||
|
"on-click" = "./scripts/bluetooth-control";
|
||||||
|
"on-click-right" = "./scripts/rofi-bluetooth";
|
||||||
|
"on-click-middle" = "./scripts/rofi-bluetooth";
|
||||||
|
format = "{icon}";
|
||||||
|
interval = 15;
|
||||||
|
"format-icons" = {
|
||||||
|
on = "<span foreground='#43242B'></span>";
|
||||||
|
off = "<span foreground='#76946A'></span>";
|
||||||
|
disabled = "";
|
||||||
|
connected = "";
|
||||||
|
};
|
||||||
|
"tooltip-format" = "{device_alias} {status}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
style = ''
|
||||||
|
@define-color bg #${config.stylix.base16Scheme.base00};
|
||||||
|
@define-color fg #${config.stylix.base16Scheme.base05};
|
||||||
|
@define-color lbg #${config.stylix.base16Scheme.base01};
|
||||||
|
@define-color yellow #${config.stylix.base16Scheme.base0A};
|
||||||
|
@define-color lavender #${config.stylix.base16Scheme.base0E};
|
||||||
|
@define-color peach #${config.stylix.base16Scheme.base0A};
|
||||||
|
@define-color red #${config.stylix.base16Scheme.base08};
|
||||||
|
@define-color green #${config.stylix.base16Scheme.base0B};
|
||||||
|
@define-color blue #${config.stylix.base16Scheme.base0D};
|
||||||
|
@define-color border #${config.stylix.base16Scheme.base02};
|
||||||
|
|
||||||
|
* {
|
||||||
|
min-height: 0;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
padding: 0;
|
||||||
|
border-radius: 7px;
|
||||||
|
font-family: "JetBrains Mono Nerd Font";
|
||||||
|
font-size: 14pt;
|
||||||
|
font-weight: 700;
|
||||||
|
padding-bottom: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip {
|
||||||
|
background: @bg;
|
||||||
|
border-radius: 7px;
|
||||||
|
border: 2px solid @border;
|
||||||
|
}
|
||||||
|
|
||||||
|
#window {
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 7px;
|
||||||
|
border-radius: 3px;
|
||||||
|
border-color: @lbg;
|
||||||
|
background-color: @yellow;
|
||||||
|
color: @bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar.empty #window {
|
||||||
|
background-color: @bg;
|
||||||
|
border-bottom: none;
|
||||||
|
border-right: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background-color: @bg;
|
||||||
|
color: @lavender;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Workspaces */
|
||||||
|
@keyframes button_activate {
|
||||||
|
from { opacity: .3 }
|
||||||
|
to { opacity: 1.; }
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces {
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
border-radius: 3px;
|
||||||
|
padding: 1px;
|
||||||
|
background-color: @bg;
|
||||||
|
color: @bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
border-radius: 3px;
|
||||||
|
padding-left: 3px;
|
||||||
|
padding-right: 9px;
|
||||||
|
background-color: @bg;
|
||||||
|
color: @fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active {
|
||||||
|
background-color:@blue;
|
||||||
|
color: @bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.urgent {
|
||||||
|
color: #F38BA8;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button:hover {
|
||||||
|
border: solid transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-gpu-util {
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
border-radius: 7px;
|
||||||
|
background-color: @bg;
|
||||||
|
color: @fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray {
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
border-radius: 3px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
background-color: @bg;
|
||||||
|
color: @fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
#idle_inhibitor {
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 12px;
|
||||||
|
border-radius: 3px;
|
||||||
|
background-color: @bg;
|
||||||
|
color: @fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network {
|
||||||
|
margin: 5px 5px 2px 5px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 12px;
|
||||||
|
border-radius: 7px;
|
||||||
|
background-color: @bg;
|
||||||
|
color: @lavender;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network.linked {
|
||||||
|
color: @peach;
|
||||||
|
}
|
||||||
|
#network.disconnected,
|
||||||
|
#network.disabled {
|
||||||
|
color: @red;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-subs {
|
||||||
|
color: @fg;
|
||||||
|
margin: 5px 5px 2px 5px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 12px;
|
||||||
|
border-radius: 3px;
|
||||||
|
border-bottom: 2px solid @bg;
|
||||||
|
border-right: 2px solid @bg;
|
||||||
|
border-color: @lbg;
|
||||||
|
background-color: @red;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-spacer {
|
||||||
|
background-color: @yellow;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-cliphist {
|
||||||
|
color: @peach;
|
||||||
|
margin: 5px 5px 2px 5px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 12px;
|
||||||
|
border-radius: 3px;
|
||||||
|
background-color: @bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-gpu-temp,
|
||||||
|
#cpu,
|
||||||
|
#memory,
|
||||||
|
#custom-clipboard,
|
||||||
|
#temperature {
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
border-radius: 3px;
|
||||||
|
color: @fg;
|
||||||
|
background-color: @bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-playerctl {
|
||||||
|
margin: 5px 5px 2px 5px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
border-radius: 3px;
|
||||||
|
color: @fg;
|
||||||
|
background-color: @bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery,
|
||||||
|
#backlight,
|
||||||
|
#bluetooth,
|
||||||
|
#pulseaudio {
|
||||||
|
margin-top: 5px;
|
||||||
|
margin-bottom: 2px;
|
||||||
|
color: @fg;
|
||||||
|
background-color: @bg;
|
||||||
|
border-top-right-radius: 0px;
|
||||||
|
border-bottom-right-radius: 0px;
|
||||||
|
border-top-left-radius: 3px;
|
||||||
|
border-bottom-left-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery,
|
||||||
|
#bluetooth {
|
||||||
|
margin-left: 0px;
|
||||||
|
margin-right: 5px;
|
||||||
|
padding-left: 7.5px;
|
||||||
|
padding-right: 10px;
|
||||||
|
border-top-left-radius: 0px;
|
||||||
|
border-bottom-left-radius: 0px;
|
||||||
|
border-top-right-radius: 3px;
|
||||||
|
border-bottom-right-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#backlight,
|
||||||
|
#pulseaudio {
|
||||||
|
margin-right: 0px;
|
||||||
|
margin-left: 5px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 7.5px;
|
||||||
|
border-top-right-radius: 0px;
|
||||||
|
border-bottom-right-radius: 0px;
|
||||||
|
border-top-left-radius: 3px;
|
||||||
|
border-bottom-left-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock {
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
border-radius: 3px;
|
||||||
|
color: @bg;
|
||||||
|
background-color: @green;
|
||||||
|
}
|
||||||
|
|
||||||
|
#taskbar {
|
||||||
|
border-radius: 0px 0px 0px 0;
|
||||||
|
padding: 0 3px;
|
||||||
|
margin: 0 0px;
|
||||||
|
color: #ffffff;
|
||||||
|
background-color: rgba(120,118,117,0.3);
|
||||||
|
}
|
||||||
|
#taskbar button {
|
||||||
|
border-radius: 0px 0px 0px 0px;
|
||||||
|
padding: 0 0 0 3px;
|
||||||
|
margin: 3px 1;
|
||||||
|
color: #ffffff;
|
||||||
|
background-color: rgba(120,118,117,0.1);
|
||||||
|
}
|
||||||
|
#taskbar button.active {
|
||||||
|
background-color: rgba(120,118,117,0.8);
|
||||||
|
}
|
||||||
|
|
||||||
|
#mode {
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
border-radius: 3px;
|
||||||
|
background-color: @bg;
|
||||||
|
color: @peach;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue