nixos-config/user/wm/hyprland/hyprland.nix

1235 lines
40 KiB
Nix
Raw Normal View History

{ inputs, config, lib, pkgs, userSettings, systemSettings, ... }: let
pkgs-hyprland = inputs.hyprland.inputs.nixpkgs.legacyPackages.${pkgs.stdenv.hostPlatform.system};
in
{
imports = [
../../app/terminal/alacritty.nix
../../app/terminal/kitty.nix
2023-08-19 09:14:34 +05:30
(import ../../app/dmenu-scripts/networkmanager-dmenu.nix {
2024-05-30 06:51:45 +05:30
#dmenu_command = "fuzzel -d -f ${userSettings.font} :size=16"; inherit config lib pkgs;
2024-01-14 07:31:44 +05:30
dmenu_command = "fuzzel -d"; inherit config lib pkgs;
2023-08-19 09:14:34 +05:30
})
../input/nihongo.nix
] ++
(if (systemSettings.profile == "personal") then
[ (import ./hyprprofiles/hyprprofiles.nix {
dmenuCmd = "fuzzel -d"; inherit config lib pkgs; })]
else
[]);
2023-09-04 21:13:29 +05:30
gtk.cursorTheme = {
package = pkgs.quintom-cursor-theme;
name = if (config.stylix.polarity == "light") then "Quintom_Ink" else "Quintom_Snow";
size = 36;
};
wayland.windowManager.hyprland = {
enable = true;
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
plugins = [
inputs.hyprland-plugins.packages.${pkgs.system}.hyprtrails
inputs.hycov.packages.${pkgs.system}.hycov
2024-06-02 08:30:00 +05:30
inputs.hyprgrass.packages.${pkgs.system}.default
];
2023-08-19 09:14:34 +05:30
settings = { };
extraConfig = ''
exec-once = dbus-update-activation-environment DISPLAY XAUTHORITY WAYLAND_DISPLAY
2023-09-04 21:13:29 +05:30
exec-once = hyprctl setcursor '' + config.gtk.cursorTheme.name + " " + builtins.toString config.gtk.cursorTheme.size + ''
2023-11-04 06:22:05 +05:30
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland
env = XDG_SESSION_DESKTOP,Hyprland
env = WLR_DRM_DEVICES,/dev/dri/card2:/dev/dri/card1
env = GDK_BACKEND,wayland,x11,*
env = QT_QPA_PLATFORM,wayland;xcb
env = QT_QPA_PLATFORMTHEME,qt5ct
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
env = CLUTTER_BACKEND,wayland
exec-once = hyprprofile Default
2023-09-04 21:13:29 +05:30
2023-08-14 01:46:19 +05:30
exec-once = pypr
2024-01-04 06:16:17 +05:30
exec-once = ydotoold
2024-03-19 07:38:08 +05:30
#exec-once = STEAM_FRAME_FORCE_CLOSE=1 steam -silent
2023-08-14 03:34:21 +05:30
exec-once = nm-applet
2023-10-08 01:14:13 +05:30
exec-once = blueman-applet
exec-once = hypr-element-start
2023-08-14 03:34:21 +05:30
exec-once = GOMAXPROCS=1 syncthing --no-browser
exec-once = protonmail-bridge --noninteractive
exec-once = waybar
exec-once = emacs --daemon
2023-08-14 01:46:19 +05:30
exec-once = hypridle
2024-06-02 20:00:13 +05:30
exec-once = sleep 5 && libinput-gestures
exec-once = obs-notification-mute-daemon
2023-09-30 22:27:32 +05:30
2024-06-02 03:28:50 +05:30
exec-once = hyprpaper
general {
layout = master
2023-08-18 02:00:33 +05:30
cursor_inactive_timeout = 30
border_size = 4
no_cursor_warps = false
2023-08-19 09:14:34 +05:30
col.active_border = 0xff'' + config.lib.stylix.colors.base08 + ''
col.inactive_border = 0x33'' + config.lib.stylix.colors.base00 + ''
resize_on_border = true
gaps_in = 7
gaps_out = 7
}
plugin {
hyprtrails {
color = rgba(''+config.lib.stylix.colors.base08+''55)
}
hycov {
overview_gappo = 60 # gaps width from screen edge
overview_gappi = 24 # gaps width from clients
enable_hotarea = 0 # enable mouse cursor hotarea, when cursor enter hotarea, it will toggle overview
enable_click_action = 1 # enable mouse left button jump and right button kill in overview mode
hotarea_monitor = all # monitor name which hotarea is in, default is all
hotarea_pos = 1 # position of hotarea (1: bottom left, 2: bottom right, 3: top left, 4: top right)
hotarea_size = 10 # hotarea size, 10x10
swipe_fingers = 3 # finger number of gesture,move any directory
move_focus_distance = 100 # distance for movefocus,only can use 3 finger to move
2024-06-02 20:00:13 +05:30
enable_gesture = 0 # enable gesture
auto_exit = 1 # enable auto exit when no client in overview
auto_fullscreen = 0 # auto make active window maximize after exit overview
only_active_workspace = 0 # only overview the active workspace
only_active_monitor = 0 # only overview the active monitor
enable_alt_release_exit = 0 # alt swith mode arg,see readme for detail
alt_replace_key = Super_L # alt swith mode arg,see readme for detail
alt_toggle_auto_next = 0 # auto focus next window when toggle overview in alt swith mode
click_in_cursor = 1 # when click to jump,the target windwo is find by cursor, not the current foucus window.
hight_of_titlebar = 0 # height deviation of title bar height
show_special = 0 # show windwos in special workspace in overview.
2023-09-04 03:44:30 +05:30
}
2024-06-02 08:30:00 +05:30
touch_gestures {
sensitivity = 4.0
long_press_delay = 260
hyprgrass-bind = , edge:r:l, exec, hyprnome
hyprgrass-bind = , edge:l:r, exec, hyprnome --previous
hyprgrass-bind = , swipe:3:d, exec, nwggrid-wrapper
2024-06-02 20:00:31 +05:30
2024-06-02 08:30:00 +05:30
hyprgrass-bind = , swipe:3:u, hycov:toggleoverview
hyprgrass-bind = , swipe:3:d, exec, nwggrid-wrapper
2024-06-02 08:30:00 +05:30
hyprgrass-bind = , swipe:3:l, exec, hyprnome --previous
2024-06-02 20:00:31 +05:30
hyprgrass-bind = , swipe:3:r, exec, hyprnome
hyprgrass-bind = , swipe:4:u, movewindow,u
hyprgrass-bind = , swipe:4:d, movewindow,d
hyprgrass-bind = , swipe:4:l, movewindow,l
hyprgrass-bind = , swipe:4:r, movewindow,r
hyprgrass-bind = , tap:3, fullscreen,1
hyprgrass-bind = , tap:4, fullscreen,0
2024-06-02 08:30:00 +05:30
hyprgrass-bindm = , longpress:2, movewindow
hyprgrass-bindm = , longpress:3, resizewindow
2024-06-02 20:00:31 +05:30
2024-06-02 08:30:00 +05:30
}
}
2023-09-04 03:44:30 +05:30
bind=SUPER,SUPER_L,exec,nwggrid-wrapper
2023-08-19 09:14:34 +05:30
bind=SUPER,SPACE,fullscreen,1
2024-02-19 06:28:37 +05:30
bind=SUPERSHIFT,F,fullscreen,0
bind=SUPER,Y,workspaceopt,allfloat
2023-08-19 09:14:34 +05:30
bind=ALT,TAB,cyclenext
bind=ALT,TAB,bringactivetotop
2023-08-19 09:14:34 +05:30
bind=ALTSHIFT,TAB,cyclenext,prev
bind=ALTSHIFT,TAB,bringactivetotop
bind=SUPER,TAB,hycov:toggleoverview
bind=SUPER,left,hycov:movefocus,leftcross
bind=SUPER,right,hycov:movefocus,rightcross
bind=SUPER,up,hycov:movefocus,upcross
bind=SUPER,down,hycov:movefocus,downcross
2024-02-19 06:28:37 +05:30
bind=SUPER,V,exec,wl-copy $(wl-paste | tr '\n' ' ')
bind=SUPERSHIFT,T,exec,screenshot-ocr
2024-04-22 01:10:41 +05:30
bind=CTRLALT,Delete,exec,hyprctl kill
bind=SUPERSHIFT,K,exec,hyprctl kill
2024-05-18 07:25:15 +05:30
bind=SUPER,W,exec,nwg-dock-wrapper
2023-08-19 09:14:34 +05:30
2023-09-04 21:47:21 +05:30
bind = SUPER,R,pass,^(com\.obsproject\.Studio)$
bind = SUPERSHIFT,R,pass,^(com\.obsproject\.Studio)$
bind=SUPER,RETURN,exec,'' + userSettings.term + ''
2023-08-19 09:14:34 +05:30
bind=SUPER,A,exec,'' + userSettings.spawnEditor + ''
2023-08-19 09:14:34 +05:30
bind=SUPER,S,exec,'' + userSettings.browser + ''
2023-08-19 09:14:34 +05:30
bind=SUPERCTRL,S,exec,container-open # qutebrowser only
bind=SUPERCTRL,R,exec,phoenix refresh
2023-08-19 09:14:34 +05:30
bind=SUPER,code:47,exec,fuzzel
bind=SUPER,X,exec,fnottctl dismiss
bind=SUPERSHIFT,X,exec,fnottctl dismiss all
bind=SUPER,Q,killactive
bind=SUPERSHIFT,Q,exit
bindm=SUPER,mouse:272,movewindow
bindm=SUPER,mouse:273,resizewindow
bind=SUPER,T,togglefloating
bind=SUPER,G,exec,hyprctl dispatch focusworkspaceoncurrentmonitor 9; pegasus-fe;
bind=,code:148,exec,''+ userSettings.term + " "+''-e numbat
2023-08-19 09:14:34 +05:30
bind=,code:107,exec,grim -g "$(slurp)"
bind=SHIFT,code:107,exec,grim -g "$(slurp -o)"
bind=SUPER,code:107,exec,grim
bind=CTRL,code:107,exec,grim -g "$(slurp)" - | wl-copy
bind=SHIFTCTRL,code:107,exec,grim -g "$(slurp -o)" - | wl-copy
bind=SUPERCTRL,code:107,exec,grim - | wl-copy
bind=,code:122,exec,pamixer -d 10
bind=,code:123,exec,pamixer -i 10
bind=,code:121,exec,pamixer -t
bind=,code:256,exec,pamixer --default-source -t
bind=SHIFT,code:122,exec,pamixer --default-source -d 10
bind=SHIFT,code:123,exec,pamixer --default-source -i 10
bind=,code:232,exec,brightnessctl set 15-
bind=,code:233,exec,brightnessctl set +15
bind=,code:237,exec,brightnessctl --device='asus::kbd_backlight' set 1-
bind=,code:238,exec,brightnessctl --device='asus::kbd_backlight' set +1
bind=,code:255,exec,airplane-mode
bind=SUPER,C,exec,wl-copy $(hyprpicker)
2023-08-19 09:14:34 +05:30
bind=SUPERSHIFT,S,exec,systemctl suspend
2024-04-05 03:29:18 +05:30
bindl=,switch:on:Lid Switch,exec,loginctl lock-session
bind=SUPERCTRL,L,exec,loginctl lock-session
2023-08-19 09:14:34 +05:30
bind=SUPER,H,movefocus,l
bind=SUPER,J,movefocus,d
bind=SUPER,K,movefocus,u
bind=SUPER,L,movefocus,r
bind=SUPERSHIFT,H,movewindow,l
bind=SUPERSHIFT,J,movewindow,d
bind=SUPERSHIFT,K,movewindow,u
bind=SUPERSHIFT,L,movewindow,r
bind=SUPER,1,focusworkspaceoncurrentmonitor,1
bind=SUPER,2,focusworkspaceoncurrentmonitor,2
bind=SUPER,3,focusworkspaceoncurrentmonitor,3
bind=SUPER,4,focusworkspaceoncurrentmonitor,4
bind=SUPER,5,focusworkspaceoncurrentmonitor,5
bind=SUPER,6,focusworkspaceoncurrentmonitor,6
bind=SUPER,7,focusworkspaceoncurrentmonitor,7
bind=SUPER,8,focusworkspaceoncurrentmonitor,8
bind=SUPER,9,focusworkspaceoncurrentmonitor,9
2023-08-19 09:14:34 +05:30
bind=SUPERCTRL,right,exec,hyprnome
bind=SUPERCTRL,left,exec,hyprnome --previous
bind=SUPERSHIFT,right,exec,hyprnome --move
bind=SUPERSHIFT,left,exec,hyprnome --previous --move
2023-08-19 09:14:34 +05:30
bind=SUPERSHIFT,1,movetoworkspace,1
bind=SUPERSHIFT,2,movetoworkspace,2
bind=SUPERSHIFT,3,movetoworkspace,3
bind=SUPERSHIFT,4,movetoworkspace,4
bind=SUPERSHIFT,5,movetoworkspace,5
bind=SUPERSHIFT,6,movetoworkspace,6
bind=SUPERSHIFT,7,movetoworkspace,7
bind=SUPERSHIFT,8,movetoworkspace,8
bind=SUPERSHIFT,9,movetoworkspace,9
2023-09-04 00:20:27 +05:30
bind=SUPER,Z,exec,pypr toggle term && hyprctl dispatch bringactivetotop
bind=SUPER,F,exec,pypr toggle ranger && hyprctl dispatch bringactivetotop
2024-04-22 01:00:14 +05:30
bind=SUPER,N,exec,pypr toggle numbat && hyprctl dispatch bringactivetotop
bind=SUPER,M,exec,pypr toggle musikcube && hyprctl dispatch bringactivetotop
2023-09-04 00:20:27 +05:30
bind=SUPER,B,exec,pypr toggle btm && hyprctl dispatch bringactivetotop
2024-05-21 07:47:46 +05:30
bind=SUPER,D,exec,hypr-element
2023-09-11 07:44:35 +05:30
bind=SUPER,code:172,exec,pypr toggle pavucontrol && hyprctl dispatch bringactivetotop
2023-08-19 09:14:34 +05:30
$scratchpadsize = size 80% 85%
$scratchpad = class:^(scratchpad)$
windowrulev2 = float,$scratchpad
windowrulev2 = $scratchpadsize,$scratchpad
windowrulev2 = workspace special silent,$scratchpad
windowrulev2 = center,$scratchpad
2024-05-21 07:47:46 +05:30
windowrulev2 = float,class:^(Element)$
windowrulev2 = size 85% 90%,class:^(Element)$
windowrulev2 = center,class:^(Element)$
2024-05-18 07:24:47 +05:30
2024-04-22 01:00:14 +05:30
$savetodisk = title:^(Save to Disk)$
windowrulev2 = float,$savetodisk
windowrulev2 = size 70% 75%,$savetodisk
windowrulev2 = center,$savetodisk
2023-09-11 07:44:35 +05:30
$pavucontrol = class:^(pavucontrol)$
windowrulev2 = float,$pavucontrol
windowrulev2 = size 86% 40%,$pavucontrol
windowrulev2 = move 50% 6%,$pavucontrol
windowrulev2 = workspace special silent,$pavucontrol
windowrulev2 = opacity 0.80,$pavucontrol
$miniframe = title:\*Minibuf.*
windowrulev2 = float,$miniframe
windowrulev2 = size 64% 50%,$miniframe
windowrulev2 = move 18% 25%,$miniframe
windowrulev2 = animation popin 1 20,$miniframe
2023-12-30 22:35:40 +05:30
windowrulev2 = float,class:^(pokefinder)$
2023-09-10 06:07:14 +05:30
windowrulev2 = opacity 0.80,title:ORUI
windowrulev2 = opacity 1.0,class:^(org.qutebrowser.qutebrowser),fullscreen:1
2024-05-21 07:47:46 +05:30
windowrulev2 = opacity 0.90,class:^(Element)$
windowrulev2 = opacity 1.0,class:^(Brave-browser),fullscreen:1
windowrulev2 = opacity 1.0,class:^(librewolf),fullscreen:1
windowrulev2 = opacity 0.80,title:^(LibreWolf)$
windowrulev2 = opacity 0.80,title:^(New Tab - LibreWolf)$
windowrulev2 = opacity 0.80,title:^(New Tab - Brave)$
2024-02-23 07:31:33 +05:30
windowrulev2 = opacity 0.75,title:^(My Local Dashboard Awesome Homepage - qutebrowser)$
windowrulev2 = opacity 0.75,title:\[.*\] - My Local Dashboard Awesome Homepage
2023-09-30 22:44:24 +05:30
windowrulev2 = opacity 0.9,class:^(org.keepassxc.KeePassXC)$
windowrulev2 = opacity 0.75,class:^(org.gnome.Nautilus)$
windowrulev2 = opacity 0.75,class:^(org.gnome.Nautilus)$
2023-09-08 06:10:15 +05:30
layerrule = blur,waybar
2024-05-12 09:03:53 +05:30
layerrule = xray,waybar
blurls = waybar
layerrule = blur,launcher # fuzzel
blurls = launcher # fuzzel
layerrule = blur,gtk-layer-shell
layerrule = xray,gtk-layer-shell
blurls = gtk-layer-shell
2024-06-02 20:00:13 +05:30
layerrule = blur,~nwggrid
layerrule = xray 1,~nwggrid
layerrule = animation fade,~nwggrid
2024-06-02 20:00:13 +05:30
blurls = ~nwggrid
2023-08-19 09:14:34 +05:30
bind=SUPER,code:21,exec,pypr zoom
bind=SUPER,code:21,exec,hyprctl reload
bind=SUPER,I,exec,networkmanager_dmenu
bind=SUPER,P,exec,keepmenu
bind=SUPERSHIFT,P,exec,hyprprofile-dmenu
2023-08-19 09:14:34 +05:30
# 3 monitor setup
2024-05-18 22:35:12 +05:30
monitor=eDP-1,1920x1080,900x1080,1
2024-02-27 07:27:16 +05:30
monitor=HDMI-A-1,1920x1080,1920x0,1
monitor=DP-1,1920x1080,0x0,1
2023-08-19 09:14:34 +05:30
# hdmi tv
#monitor=eDP-1,1920x1080,1920x0,1
#monitor=HDMI-A-1,1920x1080,0x0,1
# hdmi work projector
#monitor=eDP-1,1920x1080,1920x0,1
#monitor=HDMI-A-1,1920x1200,0x0,1
2023-08-19 09:14:34 +05:30
xwayland {
force_zero_scaling = true
}
binds {
movefocus_cycles_fullscreen = false
}
2023-08-19 09:14:34 +05:30
input {
kb_layout = us
kb_options = caps:escape
repeat_delay = 350
repeat_rate = 50
accel_profile = adaptive
follow_mouse = 2
}
2023-11-23 23:50:38 +05:30
misc {
disable_hyprland_logo = true
2023-11-23 23:50:38 +05:30
mouse_move_enables_dpms = false
}
2023-08-19 09:14:34 +05:30
decoration {
rounding = 8
2023-09-08 06:10:15 +05:30
blur {
enabled = true
size = 5
passes = 2
ignore_opacity = true
contrast = 1.17
brightness = 0.8
xray = true
2023-09-08 06:10:15 +05:30
}
2023-08-19 09:14:34 +05:30
}
2023-09-08 06:10:15 +05:30
'';
2023-08-19 09:14:34 +05:30
xwayland = { enable = true; };
2024-02-29 07:24:34 +05:30
systemd.enable = true;
};
home.packages = (with pkgs; [
alacritty
kitty
feh
killall
polkit_gnome
(nwg-dock-hyprland.overrideAttrs (oldAttrs: {
patches = ./patches/noactiveclients.patch;
}))
2024-06-02 20:00:13 +05:30
nwg-launchers
papirus-icon-theme
(pkgs.writeScriptBin "nwggrid-wrapper" ''
#!/bin/sh
if pgrep -x "nwggrid-server" > /dev/null
then
nwggrid -client
else
GDK_PIXBUF_MODULE_FILE=${pkgs.librsvg}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache nwggrid-server -layer-shell-exclusive-zone -1 -g adw-gtk3 -o 0.55 -b ${config.lib.stylix.colors.base00}
fi
'')
libva-utils
2024-06-02 20:00:13 +05:30
libinput-gestures
gsettings-desktop-schemas
(pkgs.makeDesktopItem {
name = "nwggrid";
desktopName = "Application Launcher";
exec = "nwggrid-wrapper";
terminal = false;
type = "Application";
noDisplay = true;
2024-06-06 07:33:56 +05:30
icon = "/home/"+userSettings.username+"/.local/share/pixmaps/hyprland-logo-stylix.svg";
})
(pyprland.overrideAttrs (oldAttrs: {
src = fetchFromGitHub {
owner = "hyprland-community";
repo = "pyprland";
rev = "refs/tags/2.2.17";
hash = "sha256-S1bIIazrBWyjF8tOcIk0AwwWq9gbpTKNsjr9iYA5lKk=";
};
}))
2024-05-14 05:09:52 +05:30
(hyprnome.override (oldAttrs: {
rustPlatform = oldAttrs.rustPlatform // {
buildRustPackage = args: oldAttrs.rustPlatform.buildRustPackage (args // {
pname = "hyprnome";
version = "unstable-2024-05-06";
src = fetchFromGitHub {
owner = "donovanglover";
repo = "hyprnome";
rev = "f185e6dbd7cfcb3ecc11471fab7d2be374bd5b28";
hash = "sha256-tmko/bnGdYOMTIGljJ6T8d76NPLkHAfae6P6G2Aa2Qo=";
};
cargoDeps = oldAttrs.cargoDeps.overrideAttrs (oldAttrs: rec {
name = "${pname}-vendor.tar.gz";
inherit src;
outputHash = "sha256-cQwAGNKTfJTnXDI3IMJQ2583NEIZE7GScW7TsgnKrKs=";
});
cargoHash = "sha256-cQwAGNKTfJTnXDI3IMJQ2583NEIZE7GScW7TsgnKrKs=";
});
};
})
)
2024-01-04 06:16:17 +05:30
gnome.zenity
wlr-randr
2023-08-14 21:24:27 +05:30
wtype
2024-01-04 06:16:17 +05:30
ydotool
wl-clipboard
hyprland-protocols
hyprpicker
hypridle
2024-06-02 03:28:50 +05:30
hyprpaper
fnott
fuzzel
2023-08-14 21:24:27 +05:30
keepmenu
pinentry-gnome3
wev
grim
slurp
2023-08-24 21:17:38 +05:30
libsForQt5.qt5.qtwayland
qt6.qtwayland
xdg-utils
xdg-desktop-portal
xdg-desktop-portal-gtk
xdg-desktop-portal-hyprland
wlsunset
2023-08-14 01:46:19 +05:30
pavucontrol
pamixer
2024-02-19 06:28:37 +05:30
tesseract4
(pkgs.writeScriptBin "screenshot-ocr" ''
#!/bin/sh
imgname="/tmp/screenshot-ocr-$(date +%Y%m%d%H%M%S).png"
txtname="/tmp/screenshot-ocr-$(date +%Y%m%d%H%M%S)"
txtfname=$txtname.txt
2024-02-19 06:28:37 +05:30
grim -g "$(slurp)" $imgname;
tesseract $imgname $txtname;
wl-copy -n < $txtfname
'')
2024-05-18 07:25:15 +05:30
(pkgs.writeScriptBin "nwg-dock-wrapper" ''
#!/bin/sh
if pgrep -x ".nwg-dock-hyprl" > /dev/null
then
nwg-dock-hyprland
else
nwg-dock-hyprland -f -x -i 64 -nolauncher -a start -ml 8 -mr 8 -mb 8
fi
'')
(pkgs.writeScriptBin "hypr-element-start" ''
#!/usr/bin/env sh
sleep 6 && element-desktop --hidden
'')
2024-05-21 07:47:46 +05:30
(pkgs.writeScriptBin "hypr-element" ''
#!/bin/sh
if hyprctl clients | grep "class: Element" > /dev/null
then
hyprctl dispatch closewindow Element
else
element-desktop
fi
'')
(pkgs.writeScriptBin "sct" ''
#!/bin/sh
2023-10-01 09:18:48 +05:30
killall wlsunset &> /dev/null;
if [ $# -eq 1 ]; then
temphigh=$(( $1 + 1 ))
templow=$1
wlsunset -t $templow -T $temphigh &> /dev/null &
else
killall wlsunset &> /dev/null;
fi
'')
(pkgs.writeScriptBin "obs-notification-mute-daemon" ''
#!/bin/sh
while true; do
if pgrep -x .obs-wrapped > /dev/null;
then
pkill -STOP fnott;
else
pkill -CONT fnott;
fi
sleep 10;
done
'')
2023-11-23 23:50:38 +05:30
(pkgs.writeScriptBin "suspend-unless-render" ''
#!/bin/sh
if pgrep -x nixos-rebuild > /dev/null || pgrep -x home-manager > /dev/null || pgrep -x kdenlive > /dev/null || pgrep -x FL64.exe > /dev/null || pgrep -x blender > /dev/null || pgrep -x flatpak > /dev/null;
then echo "Shouldn't suspend"; sleep 10; else echo "Should suspend"; systemctl suspend; fi
'')
(pkgs.makeDesktopItem {
name = "emacsclientnewframe";
desktopName = "Emacs Client New Frame";
exec = "emacsclient -c -a emacs";
terminal = false;
icon = "emacs";
type = "Application";
})])
++
(with pkgs-hyprland; [ hyprlock ]);
2024-06-06 07:33:56 +05:30
home.file.".local/share/pixmaps/hyprland-logo-stylix.svg".source =
config.lib.stylix.colors {
template = builtins.readFile ../../pkgs/hyprland-logo-stylix.svg.mustache;
extension = "svg";
};
home.file.".config/nwg-dock-hyprland/style.css".text = ''
window {
2024-05-15 01:08:36 +05:30
background: rgba(''+config.lib.stylix.colors.base00-rgb-r+'',''+config.lib.stylix.colors.base00-rgb-g+'',''+config.lib.stylix.colors.base00-rgb-b+'',0.0);
border-radius: 20px;
padding: 4px;
margin-left: 4px;
margin-right: 4px;
border-style: none;
}
#box {
/* Define attributes of the box surrounding icons here */
padding: 10px;
background: rgba(''+config.lib.stylix.colors.base00-rgb-r+'',''+config.lib.stylix.colors.base00-rgb-g+'',''+config.lib.stylix.colors.base00-rgb-b+'',0.55);
border-radius: 20px;
padding: 4px;
margin-left: 4px;
margin-right: 4px;
border-style: none;
}
button {
border-radius: 10px;
padding: 4px;
margin-left: 4px;
margin-right: 4px;
background: rgba(''+config.lib.stylix.colors.base03-rgb-r+'',''+config.lib.stylix.colors.base03-rgb-g+'',''+config.lib.stylix.colors.base03-rgb-b+'',0.55);
color: #''+config.lib.stylix.colors.base07+'';
font-size: 12px
}
button:hover {
background: rgba(''+config.lib.stylix.colors.base04-rgb-r+'',''+config.lib.stylix.colors.base04-rgb-g+'',''+config.lib.stylix.colors.base04-rgb-b+'',0.55);
}
'';
2024-05-15 01:08:36 +05:30
home.file.".config/nwg-dock-pinned".text = ''
nwggrid
2024-05-15 01:08:36 +05:30
Alacritty
emacsclientnewframe
qutebrowser
brave-browser
librewolf
writer
impress
calc
draw
krita
pinta
xournalpp
obs
kdenlive
flstudio
2024-05-15 01:08:36 +05:30
blender
openscad
Cura
virt-manager
'';
home.file.".config/hypr/hypridle.conf".text = ''
general {
lock_cmd = pgrep hyprlock || hyprlock
before_sleep_cmd = loginctl lock-session
ignore_dbus_inhibit = false
}
listener {
2024-04-05 03:29:18 +05:30
timeout = 300 # in seconds
on-timeout = loginctl lock-session
}
2024-04-05 03:29:18 +05:30
listener {
timeout = 600 # in seconds
on-timeout = systemctl suspend
}
'';
home.file.".config/hypr/hyprlock.conf".text = ''
background {
monitor =
path = screenshot
# all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
blur_passes = 4
blur_size = 5
noise = 0.0117
contrast = 0.8916
brightness = 0.8172
vibrancy = 0.1696
vibrancy_darkness = 0.0
}
# doesn't work yet
image {
monitor =
path = /home/emmet/.dotfiles/user/wm/hyprland/nix-dark.png
size = 150 # lesser side if not 1:1 ratio
rounding = -1 # negative values mean circle
border_size = 0
rotate = 0 # degrees, counter-clockwise
position = 0, 200
halign = center
valign = center
}
input-field {
monitor =
size = 200, 50
outline_thickness = 3
dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = false
dots_rounding = -1 # -1 default circle, -2 follow input-field rounding
2024-04-14 18:12:04 +05:30
outer_color = rgb(''+config.lib.stylix.colors.base07-rgb-r+'',''+config.lib.stylix.colors.base07-rgb-g+'', ''+config.lib.stylix.colors.base07-rgb-b+'')
inner_color = rgb(''+config.lib.stylix.colors.base00-rgb-r+'',''+config.lib.stylix.colors.base00-rgb-g+'', ''+config.lib.stylix.colors.base00-rgb-b+'')
font_color = rgb(''+config.lib.stylix.colors.base07-rgb-r+'',''+config.lib.stylix.colors.base07-rgb-g+'', ''+config.lib.stylix.colors.base07-rgb-b+'')
fade_on_empty = true
fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered.
placeholder_text = <i>Input Password...</i> # Text rendered in the input box when it's empty.
hide_input = false
rounding = -1 # -1 means complete rounding (circle/oval)
2024-04-14 18:12:04 +05:30
check_color = rgb(''+config.lib.stylix.colors.base0A-rgb-r+'',''+config.lib.stylix.colors.base0A-rgb-g+'', ''+config.lib.stylix.colors.base0A-rgb-b+'')
fail_color = rgb(''+config.lib.stylix.colors.base08-rgb-r+'',''+config.lib.stylix.colors.base08-rgb-g+'', ''+config.lib.stylix.colors.base08-rgb-b+'')
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i> # can be set to empty
fail_transition = 300 # transition time in ms between normal outer_color and fail_color
capslock_color = -1
numlock_color = -1
bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above)
invert_numlock = false # change color if numlock is off
swap_font_color = false # see below
position = 0, -20
halign = center
valign = center
}
label {
monitor =
text = Hello, Emmet
2024-04-14 18:12:04 +05:30
color = rgb(''+config.lib.stylix.colors.base07-rgb-r+'',''+config.lib.stylix.colors.base07-rgb-g+'', ''+config.lib.stylix.colors.base07-rgb-b+'')
font_size = 25
2024-04-14 18:12:04 +05:30
font_family = ''+userSettings.font+''
rotate = 0 # degrees, counter-clockwise
position = 0, 160
halign = center
valign = center
}
label {
monitor =
text = $TIME
2024-04-22 00:30:10 +05:30
color = rgb(''+config.lib.stylix.colors.base07-rgb-r+'',''+config.lib.stylix.colors.base07-rgb-g+'', ''+config.lib.stylix.colors.base07-rgb-b+'')
font_size = 20
font_family = Intel One Mono
rotate = 0 # degrees, counter-clockwise
position = 0, 80
halign = center
valign = center
}
'';
home.file.".config/hypr/pyprland.toml".text = ''
[pyprland]
plugins = ["scratchpads", "magnify"]
[scratchpads.term]
command = "alacritty --class scratchpad"
margin = 50
[scratchpads.ranger]
command = "kitty --class scratchpad -e ranger"
margin = 50
[scratchpads.numbat]
command = "alacritty --class scratchpad -e numbat"
margin = 50
[scratchpads.musikcube]
command = "alacritty --class scratchpad -e musikcube"
margin = 50
[scratchpads.btm]
command = "alacritty --class scratchpad -e btm"
margin = 50
[scratchpads.pavucontrol]
command = "pavucontrol"
margin = 50
unfocus = "hide"
animation = "fromTop"
2023-08-14 01:46:19 +05:30
'';
programs.waybar = {
enable = true;
package = pkgs.waybar.overrideAttrs (oldAttrs: {
postPatch = ''
# use hyprctl to switch workspaces
2024-05-11 07:29:27 +05:30
sed -i 's/zext_workspace_handle_v1_activate(workspace_handle_);/const std::string command = "hyprctl dispatch focusworkspaceoncurrentmonitor " + std::to_string(id());\n\tsystem(command.c_str());/g' src/modules/wlr/workspace_manager.cpp
sed -i 's/gIPC->getSocket1Reply("dispatch workspace " + std::to_string(id()));/gIPC->getSocket1Reply("dispatch focusworkspaceoncurrentmonitor " + std::to_string(id()));/g' src/modules/hyprland/workspaces.cpp
'';
});
settings = {
mainBar = {
layer = "top";
position = "top";
2023-08-19 09:14:34 +05:30
height = 35;
margin = "7 7 3 7";
spacing = 2;
modules-left = [ "custom/os" "custom/hyprprofile" "battery" "backlight" "keyboard-state" "pulseaudio" "cpu" "memory" ];
2023-09-24 02:11:42 +05:30
modules-center = [ "hyprland/workspaces" ];
2023-09-11 07:44:35 +05:30
modules-right = [ "idle_inhibitor" "tray" "clock" ];
2023-08-21 01:52:26 +05:30
"custom/os" = {
"format" = " {} ";
"exec" = ''echo "" '';
"interval" = "once";
"on-click" = "nwggrid-wrapper";
2023-08-21 01:52:26 +05:30
};
"custom/hyprprofile" = {
"format" = " {}";
"exec" = ''cat ~/.hyprprofile'';
"interval" = 3;
"on-click" = "hyprprofile-dmenu";
};
"keyboard-state" = {
"numlock" = true;
"format" = " {icon} ";
"format-icons" = {
"locked" = "󰎠";
"unlocked" = "󱧓";
};
};
2023-09-24 02:11:42 +05:30
"hyprland/workspaces" = {
"format" = "{icon}";
"format-icons" = {
"1" = "󱚌";
"2" = "󰖟";
"3" = "";
"4" = "󰎄";
"5" = "󰋩";
"6" = "";
"7" = "󰄖";
"8" = "󰑴";
"9" = "󱎓";
2023-12-09 06:33:46 +05:30
"scratch_term" = "_";
"scratch_ranger" = "_󰴉";
"scratch_musikcube" = "_";
"scratch_btm" = "_";
"scratch_pavucontrol" = "_󰍰";
};
"on-click" = "activate";
"on-scroll-up" = "hyprctl dispatch workspace e+1";
"on-scroll-down" = "hyprctl dispatch workspace e-1";
2023-12-09 06:33:46 +05:30
#"all-outputs" = true;
#"active-only" = true;
"ignore-workspaces" = ["scratch" "-"];
#"show-special" = false;
#"persistent-workspaces" = {
# # this block doesn't seem to work for whatever reason
# "eDP-1" = [1 2 3 4 5 6 7 8 9];
# "DP-1" = [1 2 3 4 5 6 7 8 9];
# "HDMI-A-1" = [1 2 3 4 5 6 7 8 9];
# "1" = ["eDP-1" "DP-1" "HDMI-A-1"];
# "2" = ["eDP-1" "DP-1" "HDMI-A-1"];
# "3" = ["eDP-1" "DP-1" "HDMI-A-1"];
# "4" = ["eDP-1" "DP-1" "HDMI-A-1"];
# "5" = ["eDP-1" "DP-1" "HDMI-A-1"];
# "6" = ["eDP-1" "DP-1" "HDMI-A-1"];
# "7" = ["eDP-1" "DP-1" "HDMI-A-1"];
# "8" = ["eDP-1" "DP-1" "HDMI-A-1"];
# "9" = ["eDP-1" "DP-1" "HDMI-A-1"];
#};
};
"idle_inhibitor" = {
format = "{icon}";
format-icons = {
2023-08-19 09:14:34 +05:30
activated = "󰅶";
deactivated = "󰾪";
};
};
tray = {
#"icon-size" = 21;
"spacing" = 10;
};
clock = {
2023-08-19 09:14:34 +05:30
"interval" = 1;
"format" = "{:%a %Y-%m-%d %I:%M:%S %p}";
2023-08-20 02:41:09 +05:30
"timezone" = "America/Chicago";
2023-08-19 09:14:34 +05:30
"tooltip-format" = ''
<big>{:%Y %B}</big>
<tt><small>{calendar}</small></tt>'';
};
cpu = {
"format" = "{usage}% ";
};
2023-08-19 09:14:34 +05:30
memory = { "format" = "{}% "; };
backlight = {
2023-08-19 09:14:34 +05:30
"format" = "{percent}% {icon}";
"format-icons" = [ "" "" "" "" "" "" "" "" "" ];
};
battery = {
"states" = {
"good" = 95;
"warning" = 30;
"critical" = 15;
};
"format" = "{capacity}% {icon}";
"format-charging" = "{capacity}% ";
"format-plugged" = "{capacity}% ";
#"format-good" = ""; # An empty format will hide the module
#"format-full" = "";
2023-08-19 09:14:34 +05:30
"format-icons" = [ "" "" "" "" "" ];
};
pulseaudio = {
"scroll-step" = 1;
2023-08-19 09:14:34 +05:30
"format" = "{volume}% {icon} {format_source}";
2023-08-21 01:56:30 +05:30
"format-bluetooth" = "{volume}% {icon} {format_source}";
"format-bluetooth-muted" = "󰸈 {icon} {format_source}";
"format-muted" = "󰸈 {format_source}";
"format-source" = "{volume}% ";
2023-08-21 01:56:30 +05:30
"format-source-muted" = " ";
"format-icons" = {
"headphone" = "";
"hands-free" = "";
"headset" = "";
"phone" = "";
"portable" = "";
"car" = "";
2023-08-19 09:14:34 +05:30
"default" = [ "" "" "" ];
};
2023-09-11 07:44:35 +05:30
"on-click" = "pypr toggle pavucontrol && hyprctl dispatch bringactivetotop";
};
};
};
style = ''
* {
/* `otf-font-awesome` is required to be installed for icons */
font-family: FontAwesome, ''+userSettings.font+'';
2023-08-19 09:14:34 +05:30
font-size: 20px;
}
window#waybar {
2024-05-12 09:03:53 +05:30
background-color: rgba('' + config.lib.stylix.colors.base00-rgb-r + "," + config.lib.stylix.colors.base00-rgb-g + "," + config.lib.stylix.colors.base00-rgb-b + "," + ''0.55);
2023-08-19 09:14:34 +05:30
border-radius: 8px;
color: #'' + config.lib.stylix.colors.base07 + '';
transition-property: background-color;
2023-08-19 09:14:34 +05:30
transition-duration: .2s;
}
2024-06-02 03:45:58 +05:30
tooltip {
color: #'' + config.lib.stylix.colors.base07 + '';
background-color: rgba('' + config.lib.stylix.colors.base00-rgb-r + "," + config.lib.stylix.colors.base00-rgb-g + "," + config.lib.stylix.colors.base00-rgb-b + "," + ''0.9);
border-style: solid;
border-width: 3px;
border-radius: 8px;
border-color: #'' + config.lib.stylix.colors.base08 + '';
}
tooltip * {
color: #'' + config.lib.stylix.colors.base07 + '';
background-color: rgba('' + config.lib.stylix.colors.base00-rgb-r + "," + config.lib.stylix.colors.base00-rgb-g + "," + config.lib.stylix.colors.base00-rgb-b + "," + ''0.0);
}
2023-08-19 09:14:34 +05:30
window > box {
border-radius: 8px;
opacity: 0.94;
}
2023-08-19 09:14:34 +05:30
window#waybar.hidden {
opacity: 0.2;
}
button {
border: none;
}
#custom-hyprprofile {
color: #'' + config.lib.stylix.colors.base0D + '';
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
button:hover {
background: inherit;
}
#workspaces button {
padding: 0 7px;
background-color: transparent;
2023-08-19 09:14:34 +05:30
color: #'' + config.lib.stylix.colors.base04 + '';
}
#workspaces button:hover {
2023-08-19 09:14:34 +05:30
color: #'' + config.lib.stylix.colors.base07 + '';
}
2023-08-19 09:14:34 +05:30
#workspaces button.active {
color: #'' + config.lib.stylix.colors.base08 + '';
}
2023-08-19 09:14:34 +05:30
#workspaces button.focused {
color: #'' + config.lib.stylix.colors.base0A + '';
}
#workspaces button.visible {
2023-12-09 06:33:46 +05:30
color: #'' + config.lib.stylix.colors.base05 + '';
}
#workspaces button.urgent {
2023-08-19 09:14:34 +05:30
color: #'' + config.lib.stylix.colors.base09 + '';
}
#clock,
#battery,
#cpu,
#memory,
#disk,
#temperature,
#backlight,
#network,
#pulseaudio,
#wireplumber,
#custom-media,
#tray,
#mode,
#idle_inhibitor,
#scratchpad,
#mpd {
padding: 0 10px;
2023-08-19 09:14:34 +05:30
color: #'' + config.lib.stylix.colors.base07 + '';
border: none;
border-radius: 8px;
}
#window,
#workspaces {
margin: 0 4px;
}
/* If workspaces is the leftmost module, omit left margin */
.modules-left > widget:first-child > #workspaces {
margin-left: 0;
}
/* If workspaces is the rightmost module, omit right margin */
.modules-right > widget:last-child > #workspaces {
margin-right: 0;
}
#clock {
2023-08-19 09:14:34 +05:30
color: #'' + config.lib.stylix.colors.base0D + '';
}
#battery {
2023-08-19 09:14:34 +05:30
color: #'' + config.lib.stylix.colors.base0B + '';
}
#battery.charging, #battery.plugged {
2023-08-19 09:14:34 +05:30
color: #'' + config.lib.stylix.colors.base0C + '';
}
@keyframes blink {
to {
2023-08-19 09:14:34 +05:30
background-color: #'' + config.lib.stylix.colors.base07 + '';
color: #'' + config.lib.stylix.colors.base00 + '';
}
}
#battery.critical:not(.charging) {
2023-08-19 09:14:34 +05:30
background-color: #'' + config.lib.stylix.colors.base08 + '';
color: #'' + config.lib.stylix.colors.base07 + '';
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
label:focus {
2023-08-19 09:14:34 +05:30
background-color: #'' + config.lib.stylix.colors.base00 + '';
}
#cpu {
2023-08-19 09:14:34 +05:30
color: #'' + config.lib.stylix.colors.base0D + '';
}
#memory {
2023-08-19 09:14:34 +05:30
color: #'' + config.lib.stylix.colors.base0E + '';
}
#disk {
2023-08-19 09:14:34 +05:30
color: #'' + config.lib.stylix.colors.base0F + '';
}
#backlight {
2023-08-19 09:14:34 +05:30
color: #'' + config.lib.stylix.colors.base0A + '';
}
label.numlock {
color: #'' + config.lib.stylix.colors.base04 + '';
}
label.numlock.locked {
color: #'' + config.lib.stylix.colors.base0F + '';
}
#pulseaudio {
2023-08-19 09:14:34 +05:30
color: #'' + config.lib.stylix.colors.base0C + '';
}
#pulseaudio.muted {
2023-08-19 09:14:34 +05:30
color: #'' + config.lib.stylix.colors.base04 + '';
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
}
#idle_inhibitor {
2023-08-19 09:14:34 +05:30
color: #'' + config.lib.stylix.colors.base04 + '';
}
#idle_inhibitor.activated {
2023-08-19 09:14:34 +05:30
color: #'' + config.lib.stylix.colors.base0F + '';
}
2023-08-19 09:14:34 +05:30
'';
};
2023-09-30 22:27:32 +05:30
home.file.".config/gtklock/style.css".text = ''
window {
background-image: url("''+config.stylix.image+''");
background-size: auto 100%;
}
'';
2024-06-02 20:00:13 +05:30
home.file.".config/nwg-launchers/nwggrid/style.css".text = ''
button, label, image {
background: none;
border-style: none;
box-shadow: none;
color: #'' + config.lib.stylix.colors.base07 + '';
font-size: 20px;
}
button {
padding: 5px;
margin: 5px;
text-shadow: none;
}
button:hover {
background-color: rgba('' + config.lib.stylix.colors.base07-rgb-r + "," + config.lib.stylix.colors.base07-rgb-g + "," + config.lib.stylix.colors.base07-rgb-b + "," + ''0.15);
}
button:focus {
box-shadow: 0 0 10px;
}
button:checked {
background-color: rgba('' + config.lib.stylix.colors.base07-rgb-r + "," + config.lib.stylix.colors.base07-rgb-g + "," + config.lib.stylix.colors.base07-rgb-b + "," + ''0.15);
}
#searchbox {
background: none;
border-color: #'' + config.lib.stylix.colors.base07 + '';
color: #'' + config.lib.stylix.colors.base07 + '';
margin-top: 20px;
margin-bottom: 20px;
font-size: 20px;
}
#separator {
background-color: rgba('' + config.lib.stylix.colors.base00-rgb-r + "," + config.lib.stylix.colors.base00-rgb-g + "," + config.lib.stylix.colors.base00-rgb-b + "," + ''0.55);
color: #'' + config.lib.stylix.colors.base07 + '';
margin-left: 500px;
margin-right: 500px;
margin-top: 10px;
margin-bottom: 10px
}
#description {
margin-bottom: 20px
}
'';
home.file.".config/nwg-launchers/nwggrid/terminal".text = "alacritty -e";
home.file.".config/nwg-drawer/drawer.css".text = ''
window {
background-color: rgba('' + config.lib.stylix.colors.base00-rgb-r + "," + config.lib.stylix.colors.base00-rgb-g + "," + config.lib.stylix.colors.base00-rgb-b + "," + ''0.55);
color: #'' + config.lib.stylix.colors.base07 + ''
}
/* search entry */
entry {
background-color: rgba('' + config.lib.stylix.colors.base01-rgb-r + "," + config.lib.stylix.colors.base01-rgb-g + "," + config.lib.stylix.colors.base01-rgb-b + "," + ''0.45);
}
button, image {
background: none;
border: none
}
button:hover {
background-color: rgba('' + config.lib.stylix.colors.base02-rgb-r + "," + config.lib.stylix.colors.base02-rgb-g + "," + config.lib.stylix.colors.base02-rgb-b + "," + ''0.45);
}
/* in case you wanted to give category buttons a different look */
#category-button {
margin: 0 10px 0 10px
}
#pinned-box {
padding-bottom: 5px;
border-bottom: 1px dotted;
border-color: #'' + config.lib.stylix.colors.base07 + '';
}
#files-box {
padding: 5px;
border: 1px dotted gray;
border-radius: 15px
border-color: #'' + config.lib.stylix.colors.base07 + '';
}
'';
home.file.".config/libinput-gestures.conf".text = ''
gesture swipe up 3 hyprctl dispatch hycov:toggleoverview
gesture swipe down 3 nwggrid-wrapper
2024-06-02 20:00:13 +05:30
gesture swipe right 3 hyprnome
gesture swipe left 3 hyprnome --previous
gesture swipe up 4 hyprctl dispatch movewindow u
gesture swipe down 4 hyprctl dispatch movewindow d
gesture swipe left 4 hyprctl dispatch movewindow l
gesture swipe right 4 hyprctl dispatch movewindow r
gesture pinch in hyprctl dispatch fullscreen 1
gesture pinch out hyprctl dispatch fullscreen 1
'';
services.udiskie.enable = true;
services.udiskie.tray = "always";
2023-08-15 05:33:56 +05:30
programs.fuzzel.enable = true;
programs.fuzzel.settings = {
main = {
2024-05-30 06:51:45 +05:30
font = userSettings.font + ":size=20";
dpi-aware = "no";
show-actions = "yes";
2023-08-15 05:33:56 +05:30
terminal = "${pkgs.alacritty}/bin/alacritty";
};
2023-08-18 02:00:33 +05:30
colors = {
2024-05-12 09:03:53 +05:30
background = config.lib.stylix.colors.base00 + "bf";
2023-08-19 09:14:34 +05:30
text = config.lib.stylix.colors.base07 + "ff";
match = config.lib.stylix.colors.base05 + "ff";
selection = config.lib.stylix.colors.base08 + "ff";
selection-text = config.lib.stylix.colors.base00 + "ff";
selection-match = config.lib.stylix.colors.base05 + "ff";
border = config.lib.stylix.colors.base08 + "ff";
2023-08-18 02:00:33 +05:30
};
border = {
width = 3;
radius = 7;
};
2023-08-15 05:33:56 +05:30
};
services.fnott.enable = true;
2023-08-18 01:36:16 +05:30
services.fnott.settings = {
main = {
anchor = "bottom-right";
stacking-order = "top-down";
min-width = 400;
title-font = userSettings.font + ":size=14";
summary-font = userSettings.font + ":size=12";
body-font = userSettings.font + ":size=11";
2023-08-18 01:36:16 +05:30
border-size = 0;
};
low = {
2023-08-19 09:14:34 +05:30
background = config.lib.stylix.colors.base00 + "e6";
title-color = config.lib.stylix.colors.base03 + "ff";
summary-color = config.lib.stylix.colors.base03 + "ff";
body-color = config.lib.stylix.colors.base03 + "ff";
2023-08-18 01:36:16 +05:30
idle-timeout = 150;
max-timeout = 30;
default-timeout = 8;
};
normal = {
2023-08-19 09:14:34 +05:30
background = config.lib.stylix.colors.base00 + "e6";
title-color = config.lib.stylix.colors.base07 + "ff";
summary-color = config.lib.stylix.colors.base07 + "ff";
body-color = config.lib.stylix.colors.base07 + "ff";
2023-08-18 01:36:16 +05:30
idle-timeout = 150;
max-timeout = 30;
default-timeout = 8;
};
critical = {
2023-08-19 09:14:34 +05:30
background = config.lib.stylix.colors.base00 + "e6";
title-color = config.lib.stylix.colors.base08 + "ff";
summary-color = config.lib.stylix.colors.base08 + "ff";
body-color = config.lib.stylix.colors.base08 + "ff";
2023-08-18 01:36:16 +05:30
idle-timeout = 0;
max-timeout = 0;
default-timeout = 0;
};
};
}