mirror of
https://gitlab.com/upRootNutrition/dotfiles.git
synced 2025-06-16 10:05:13 -05:00
feat: init
This commit is contained in:
commit
96c6f790fc
804 changed files with 33411 additions and 0 deletions
11
modules/home/gui/desktop/default.nix
Executable file
11
modules/home/gui/desktop/default.nix
Executable file
|
@ -0,0 +1,11 @@
|
|||
let
|
||||
importList =
|
||||
let
|
||||
content = builtins.readDir ./.;
|
||||
dirContent = builtins.filter (n: content.${n} == "directory") (builtins.attrNames content);
|
||||
in
|
||||
map (name: ./. + "/${name}") dirContent;
|
||||
in
|
||||
{
|
||||
imports = importList;
|
||||
}
|
24
modules/home/gui/desktop/gnome/default.nix
Executable file
24
modules/home/gui/desktop/gnome/default.nix
Executable file
|
@ -0,0 +1,24 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
gnome-connections
|
||||
gnome-tweaks
|
||||
gnome-shell-extensions
|
||||
gnome-remote-desktop
|
||||
ulauncher
|
||||
;
|
||||
inherit (pkgs.gnomeExtensions)
|
||||
tiling-shell
|
||||
keep-awake
|
||||
notification-banner-reloaded
|
||||
no-overview
|
||||
wallpaper-slideshow
|
||||
dash-to-panel
|
||||
just-perfection
|
||||
appindicator
|
||||
tiling-assistant
|
||||
start-overlay-in-application-view
|
||||
;
|
||||
};
|
||||
}
|
11
modules/home/gui/desktop/hypr/default.nix
Executable file
11
modules/home/gui/desktop/hypr/default.nix
Executable file
|
@ -0,0 +1,11 @@
|
|||
let
|
||||
importList =
|
||||
let
|
||||
content = builtins.readDir ./.;
|
||||
dirContent = builtins.filter (n: content.${n} == "directory") (builtins.attrNames content);
|
||||
in
|
||||
map (name: ./. + "/${name}") dirContent;
|
||||
in
|
||||
{
|
||||
imports = importList;
|
||||
}
|
19
modules/home/gui/desktop/hypr/idle/config/settings.nix
Executable file
19
modules/home/gui/desktop/hypr/idle/config/settings.nix
Executable file
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
general = {
|
||||
after_sleep_cmd = "hyprctl dispatch dpms on";
|
||||
ignore_dbus_inhibit = false;
|
||||
lock_cmd = "swaylock";
|
||||
};
|
||||
|
||||
listener = [
|
||||
{
|
||||
timeout = 900;
|
||||
on-timeout = "swaylock";
|
||||
}
|
||||
{
|
||||
timeout = 1800;
|
||||
on-timeout = "hyprctl dispatch dpms off";
|
||||
on-resume = "hyprctl dispatch dpms on";
|
||||
}
|
||||
];
|
||||
}
|
10
modules/home/gui/desktop/hypr/idle/default.nix
Executable file
10
modules/home/gui/desktop/hypr/idle/default.nix
Executable file
|
@ -0,0 +1,10 @@
|
|||
let
|
||||
configPath = ./config;
|
||||
settingsPath = import (configPath + /settings.nix);
|
||||
in
|
||||
{
|
||||
services.hypridle = {
|
||||
enable = true;
|
||||
settings = settingsPath;
|
||||
};
|
||||
}
|
18
modules/home/gui/desktop/hypr/land/config/animations.nix
Executable file
18
modules/home/gui/desktop/hypr/land/config/animations.nix
Executable file
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
enabled = true;
|
||||
animation = [
|
||||
"border, 1, 2.2, bounce"
|
||||
"fadeIn, 1, 1, bounce"
|
||||
"fadeOut, 1, 4.5, bounce"
|
||||
"fadeSwitch, 1, 2.2, bounce"
|
||||
"windows, 1, 2.2, bounce"
|
||||
"windowsOut, 1, 1.1, bounce"
|
||||
"workspaces, 1, 2.2, bounce, slide"
|
||||
];
|
||||
bezier = [
|
||||
"wind, 0, 1, 0.5, 1"
|
||||
"winIn, 0, 0.5, 0, 1"
|
||||
"winOut, 0, 0.5, 0, 1"
|
||||
"bounce, 0.7, 1.7, 0.5, 1"
|
||||
];
|
||||
}
|
98
modules/home/gui/desktop/hypr/land/config/bind-user0.nix
Executable file
98
modules/home/gui/desktop/hypr/land/config/bind-user0.nix
Executable file
|
@ -0,0 +1,98 @@
|
|||
let
|
||||
superBinds = builtins.map (x: "SUPER, " + x) [
|
||||
# Apps
|
||||
"Z, exec, obsidian"
|
||||
"L, exec, slack"
|
||||
"H, exec, feishin"
|
||||
"G, exec, scrcpy"
|
||||
"K, exec, ghostty -e nu -e y"
|
||||
"S, exec, steam"
|
||||
"R, exec, ghostty -e zellij a dotfiles"
|
||||
"N, exec, signal-desktop"
|
||||
"T, exec, zeditor"
|
||||
"B, exec, floorp"
|
||||
"X, exec, freetube"
|
||||
"V, exec, discordcanary"
|
||||
"M, exec, element-desktop"
|
||||
"D, exec, ghostty"
|
||||
"P, exec, bitwarden"
|
||||
# Workspaces
|
||||
"1, workspace, 1"
|
||||
"2, workspace, 2"
|
||||
"3, workspace, 3"
|
||||
"4, workspace, 4"
|
||||
"5, workspace, 5"
|
||||
# Windows
|
||||
"Tab, killactive"
|
||||
# Window Focus
|
||||
"C, movefocus, l"
|
||||
"A, movefocus, u"
|
||||
"E, movefocus, d"
|
||||
"I, movefocus, r"
|
||||
"F, splitratio, 0.33"
|
||||
"O, splitratio, -0.33"
|
||||
# Audio
|
||||
"PageUp, exec, playerctl next"
|
||||
"PageDown, exec, playerctl previous"
|
||||
"Home, exec, playerctl play-pause"
|
||||
"Space, exec, rm -r /home/$USER/.cache/tofi* ; tofi-drun"
|
||||
];
|
||||
|
||||
superShiftBinds = builtins.map (x: "SUPER SHIFT, " + x) [
|
||||
# Super+shift binds
|
||||
|
||||
# Quick Action
|
||||
"T, exec, ghostty"
|
||||
"S, exec, flameshot gui"
|
||||
"period, exec, emote"
|
||||
"Tab, fullscreen, 0"
|
||||
"Backspace, layoutmsg, togglesplit"
|
||||
"P, pin, enable"
|
||||
"F, togglefloating"
|
||||
# "Print, exec, grim -g \"$(slurp)\""
|
||||
# Utility
|
||||
"End, exec, shutdown now"
|
||||
"Insert, exec, systemctl reboot"
|
||||
"Home, exec, swaylock"
|
||||
];
|
||||
superCtrlBinds = builtins.map (x: "SUPER CTRL, " + x) [
|
||||
# Super+shift binds
|
||||
|
||||
];
|
||||
|
||||
altBinds = builtins.map (x: "CTRL ALT, " + x) [
|
||||
# Alt binds
|
||||
"1, movetoworkspacesilent, 1"
|
||||
"2, movetoworkspacesilent, 2"
|
||||
"3, movetoworkspacesilent, 3"
|
||||
"4, movetoworkspacesilent, 4"
|
||||
"5, movetoworkspacesilent, 5"
|
||||
# Window Move
|
||||
"C, movewindow, l"
|
||||
"A, movewindow, u"
|
||||
"E, movewindow, d"
|
||||
"I, movewindow, r"
|
||||
];
|
||||
|
||||
shiftBinds = builtins.map (x: "SHIFT, " + x) [
|
||||
# Shift binds
|
||||
];
|
||||
|
||||
ctrlBinds = builtins.map (x: "CTRL, " + x) [
|
||||
# Ctrl binds
|
||||
];
|
||||
|
||||
ctrlShiftBinds = builtins.map (x: "CTRL SHIFT, " + x) [
|
||||
# Ctrl+shift binds
|
||||
# "End, exec, shutdown now"
|
||||
];
|
||||
in
|
||||
superBinds
|
||||
++ superShiftBinds
|
||||
++ superCtrlBinds
|
||||
++ altBinds
|
||||
++ ctrlBinds
|
||||
++ ctrlShiftBinds
|
||||
++ shiftBinds
|
||||
# Docs
|
||||
# https://wiki.hyprland.org/Getting-Started/Master-Tutorial/
|
91
modules/home/gui/desktop/hypr/land/config/bind-user1.nix
Executable file
91
modules/home/gui/desktop/hypr/land/config/bind-user1.nix
Executable file
|
@ -0,0 +1,91 @@
|
|||
let
|
||||
superBinds = builtins.map (x: "SUPER, " + x) [
|
||||
# Apps
|
||||
"B, exec, brave"
|
||||
"E, exec, ghostty -e nu -e y"
|
||||
"S, exec, steam"
|
||||
"N, exec, signal-desktop"
|
||||
"D, exec, discordcanary"
|
||||
"R, exec, flatpak run org.vinegarhq.Sober"
|
||||
"T, exec, ghostty"
|
||||
"P, exec, spotify"
|
||||
"M, exec, prismlauncher"
|
||||
"J, exec, jellyfinmediaplayer"
|
||||
"L, exec, lutris"
|
||||
# Workspaces
|
||||
"1, workspace, 1"
|
||||
"2, workspace, 2"
|
||||
"3, workspace, 3"
|
||||
"4, workspace, 4"
|
||||
"5, workspace, 5"
|
||||
# Windows
|
||||
"X, killactive"
|
||||
"bracketright, splitratio, 0.33"
|
||||
"bracketleft, splitratio, -0.33"
|
||||
"Tab, fullscreen, 0"
|
||||
"F, togglefloating"
|
||||
# Window Focus
|
||||
"left, movefocus, l"
|
||||
"up, movefocus, u"
|
||||
"down, movefocus, d"
|
||||
"right, movefocus, r"
|
||||
# Audio
|
||||
"PageUp, exec, playerctl next"
|
||||
"PageDown, exec, playerctl previous"
|
||||
"Home, exec, playerctl play-pause"
|
||||
"Space, exec, rm -r /home/$USER/.cache/tofi* ; tofi-drun"
|
||||
];
|
||||
|
||||
superShiftBinds = builtins.map (x: "SUPER SHIFT, " + x) [
|
||||
# Super+shift binds
|
||||
# Window Move
|
||||
"left, movewindow, l"
|
||||
"up, movewindow, u"
|
||||
"down, movewindow, d"
|
||||
"right, movewindow, r"
|
||||
# Quick Action
|
||||
"S, exec, flameshot gui"
|
||||
"period, exec, emote"
|
||||
"Backspace, layoutmsg, togglesplit"
|
||||
"P, pin, enable"
|
||||
# "Print, exec, grim -g \"$(slurp)\""
|
||||
# Utility
|
||||
"End, exec, shutdown now"
|
||||
"Insert, exec, systemctl reboot"
|
||||
"Home, exec, swaylock"
|
||||
"1, movetoworkspacesilent, 1"
|
||||
"2, movetoworkspacesilent, 2"
|
||||
"3, movetoworkspacesilent, 3"
|
||||
"4, movetoworkspacesilent, 4"
|
||||
"5, movetoworkspacesilent, 5"
|
||||
];
|
||||
superCtrlBinds = builtins.map (x: "SUPER CTRL, " + x) [
|
||||
# Super+shift binds
|
||||
];
|
||||
|
||||
altBinds = builtins.map (x: "ALT, " + x) [
|
||||
# Alt binds
|
||||
];
|
||||
|
||||
shiftBinds = builtins.map (x: "SHIFT, " + x) [
|
||||
# Shift binds
|
||||
];
|
||||
|
||||
ctrlBinds = builtins.map (x: "CTRL, " + x) [
|
||||
# Ctrl binds
|
||||
];
|
||||
|
||||
ctrlShiftBinds = builtins.map (x: "CTRL SHIFT, " + x) [
|
||||
# Ctrl+shift binds
|
||||
# "End, exec, shutdown now"
|
||||
];
|
||||
in
|
||||
superBinds
|
||||
++ superShiftBinds
|
||||
++ superCtrlBinds
|
||||
++ altBinds
|
||||
++ ctrlBinds
|
||||
++ ctrlShiftBinds
|
||||
++ shiftBinds
|
||||
# Docs
|
||||
# https://wiki.hyprland.org/Getting-Started/Master-Tutorial/
|
4
modules/home/gui/desktop/hypr/land/config/bindl.nix
Executable file
4
modules/home/gui/desktop/hypr/land/config/bindl.nix
Executable file
|
@ -0,0 +1,4 @@
|
|||
[
|
||||
",switch:on:Lid Switch, exec, hyprlock --immediate"
|
||||
",switch:off:Lid Switch, exec, hyprlock --immediate"
|
||||
]
|
10
modules/home/gui/desktop/hypr/land/config/bindm.nix
Executable file
10
modules/home/gui/desktop/hypr/land/config/bindm.nix
Executable file
|
@ -0,0 +1,10 @@
|
|||
let
|
||||
superBinds = builtins.map (x: "SUPER, " + x) [
|
||||
"mouse:272, resizewindow"
|
||||
];
|
||||
|
||||
altBinds = builtins.map (x: "ALT, " + x) [
|
||||
"mouse:272, movewindow"
|
||||
];
|
||||
in
|
||||
superBinds ++ altBinds
|
3
modules/home/gui/desktop/hypr/land/config/binds.nix
Executable file
3
modules/home/gui/desktop/hypr/land/config/binds.nix
Executable file
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"allow_workspace_cycles" = "1";
|
||||
}
|
36
modules/home/gui/desktop/hypr/land/config/decoration.nix
Executable file
36
modules/home/gui/desktop/hypr/land/config/decoration.nix
Executable file
|
@ -0,0 +1,36 @@
|
|||
{
|
||||
active_opacity = 0.95;
|
||||
inactive_opacity = 0.90;
|
||||
fullscreen_opacity = 1;
|
||||
rounding = 10;
|
||||
dim_inactive = 1;
|
||||
dim_strength = 0.05;
|
||||
|
||||
shadow = {
|
||||
enabled = true;
|
||||
color = "rgba(00000000)";
|
||||
ignore_window = true;
|
||||
offset = "0 2";
|
||||
range = 20;
|
||||
render_power = 3;
|
||||
scale = 0.97;
|
||||
};
|
||||
|
||||
blur = {
|
||||
enabled = true;
|
||||
|
||||
size = 5;
|
||||
passes = 2;
|
||||
|
||||
brightness = 1;
|
||||
contrast = 1.300000;
|
||||
ignore_opacity = true;
|
||||
noise = 0.011700;
|
||||
|
||||
new_optimizations = true;
|
||||
|
||||
xray = true;
|
||||
popups = true;
|
||||
popups_ignorealpha = 0.2;
|
||||
};
|
||||
}
|
4
modules/home/gui/desktop/hypr/land/config/dwindle.nix
Executable file
4
modules/home/gui/desktop/hypr/land/config/dwindle.nix
Executable file
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
pseudotile = true;
|
||||
preserve_split = true;
|
||||
}
|
33
modules/home/gui/desktop/hypr/land/config/exec-once.nix
Executable file
33
modules/home/gui/desktop/hypr/land/config/exec-once.nix
Executable file
|
@ -0,0 +1,33 @@
|
|||
{ flake, ... }:
|
||||
let
|
||||
inherit (flake.config.aesthetics.themes)
|
||||
cursor
|
||||
;
|
||||
scarlettOut = "pactl set-default-sink alsa_output.usb-Focusrite_Scarlett_2i2_USB_Y818KFJ0C671CE-00.HiFi__Line1__sink";
|
||||
scarlettIn = "pactl set-default-source alsa_input.usb-Focusrite_Scarlett_2i2_USB_Y818KFJ0C671CE-00.HiFi__Mic1__source";
|
||||
catppuccin = [
|
||||
"gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'"
|
||||
"gsettings set org.gnome.desktop.interface cursor-theme 'catppuccin-mocha-dark-cursors'"
|
||||
"gsettings set org.gnome.desktop.interface cursor-size ${builtins.toString cursor.size}"
|
||||
];
|
||||
in
|
||||
[
|
||||
"swaylock"
|
||||
"hypridle"
|
||||
"wl-clipboard"
|
||||
"wpaperd"
|
||||
"gammastep"
|
||||
"dunst"
|
||||
"playerctrld"
|
||||
"waybar"
|
||||
"nm-applet"
|
||||
"blueman-applet"
|
||||
"rfkill block bluetooth"
|
||||
"rfkill unblock bluetooth"
|
||||
"easyeffects -r"
|
||||
"emote"
|
||||
"flameshot"
|
||||
scarlettIn
|
||||
scarlettOut
|
||||
]
|
||||
++ catppuccin
|
33
modules/home/gui/desktop/hypr/land/config/general.nix
Executable file
33
modules/home/gui/desktop/hypr/land/config/general.nix
Executable file
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
config,
|
||||
flake,
|
||||
...
|
||||
}:
|
||||
let
|
||||
|
||||
inherit (flake.config.aesthetics.themes) currentTheme palettes;
|
||||
|
||||
inherit (flake.config.people) user0 user1 user2;
|
||||
|
||||
user = config.home.username;
|
||||
|
||||
themeLogic =
|
||||
if user == user0 then
|
||||
currentTheme.theme0
|
||||
else if user == user1 then
|
||||
currentTheme.theme1
|
||||
else if user == user2 then
|
||||
currentTheme.theme2
|
||||
else
|
||||
currentTheme.theme0;
|
||||
|
||||
el = palettes.${themeLogic}.colours;
|
||||
in
|
||||
{
|
||||
gaps_in = 5;
|
||||
gaps_out = 5;
|
||||
border_size = 2;
|
||||
"col.active_border" = "rgb(${el.base0E})";
|
||||
"col.inactive_border" = "0xff${el.base02}";
|
||||
|
||||
}
|
6
modules/home/gui/desktop/hypr/land/config/input.nix
Executable file
6
modules/home/gui/desktop/hypr/land/config/input.nix
Executable file
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
sensitivity = 0.07;
|
||||
accel_profile = "flat";
|
||||
follow_mouse = 1;
|
||||
numlock_by_default = true;
|
||||
}
|
7
modules/home/gui/desktop/hypr/land/config/misc.nix
Executable file
7
modules/home/gui/desktop/hypr/land/config/misc.nix
Executable file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
focus_on_activate = 1;
|
||||
force_default_wallpaper = 0;
|
||||
disable_hyprland_logo = true;
|
||||
disable_splash_rendering = true;
|
||||
disable_hyprland_qtutils_check = true;
|
||||
}
|
6
modules/home/gui/desktop/hypr/land/config/monitor.nix
Executable file
6
modules/home/gui/desktop/hypr/land/config/monitor.nix
Executable file
|
@ -0,0 +1,6 @@
|
|||
let
|
||||
monitorSettings = [
|
||||
"eDP-1,highres@highrr,0x0,1"
|
||||
];
|
||||
in
|
||||
monitorSettings
|
134
modules/home/gui/desktop/hypr/land/config/windowrulev2.nix
Executable file
134
modules/home/gui/desktop/hypr/land/config/windowrulev2.nix
Executable file
|
@ -0,0 +1,134 @@
|
|||
let
|
||||
blueman = "(.blueman-manager-wrapped)";
|
||||
calculator = "(org.gnome.Calculator)";
|
||||
easyeffects = "(com.github.wwmm.easyeffects)";
|
||||
floorp = "(floorp)";
|
||||
nomacs = "(org.nomacs.ImageLounge)";
|
||||
mpv = "(mpv)";
|
||||
vlc = "(vlc)";
|
||||
emote = "(emote)";
|
||||
flameshot = "(flameshot)";
|
||||
bitwarden = "(.*Bitwarden.*)";
|
||||
save = "(.*Enter name of file to save to….*)";
|
||||
proton = "(.*.protonvpn-app-wrapped.*)";
|
||||
picture = "(.*Picture-in-Picture.*)";
|
||||
discord-popout = "(.*Discord Popout.*)";
|
||||
upload = "(.*File Upload.*)";
|
||||
signal = "(signal)";
|
||||
vesktop = "(vesktop)";
|
||||
code = "(code)";
|
||||
feishin = "(feishin)";
|
||||
steam = "(steam)";
|
||||
kdenlive = "(org.kde.kdenlive)";
|
||||
shotcut = "(shotcut)";
|
||||
scrcpy = "(.scrcpy-wrapped)";
|
||||
battle = "(.*Battle.net.*)";
|
||||
|
||||
maxsizeWindows = [
|
||||
"maxsize 720 400, class:^${blueman}$"
|
||||
"maxsize 360 500, class:^${calculator}$"
|
||||
"maxsize 720 400, class:^${easyeffects}$"
|
||||
# "maxsize 720 400, class:^${scrcpy}$"
|
||||
"maxsize 720 400, class:^${mpv}$"
|
||||
"maxsize 720 400, class:^${vlc}$"
|
||||
"maxsize 640 360, class:^${nomacs}$"
|
||||
"maxsize 1000 600, class:^${proton}$"
|
||||
"maxsize 800 450, title:^${bitwarden}$"
|
||||
"maxsize 720 400, title:^${picture}$"
|
||||
"maxsize 720 400, title:^${save}$"
|
||||
"maxsize 720 400, title:^${discord-popout}$"
|
||||
"maxsize 1280 720, title:^${battle}$"
|
||||
"minsize 1280 720, title:^${battle}$"
|
||||
"maxsize 1280 720, title:^${upload}$"
|
||||
"minsize 1280 720, title:^${upload}$"
|
||||
];
|
||||
|
||||
floatWindows = builtins.map (x: "float, " + x) [
|
||||
"class:^${blueman}$"
|
||||
"class:^${calculator}$"
|
||||
"class:^${easyeffects}$"
|
||||
"class:^${emote}$"
|
||||
"class:^${mpv}$"
|
||||
"class:^${vlc}$"
|
||||
"class:^${nomacs}$"
|
||||
"class:^${flameshot}$"
|
||||
# "class:^${scrcpy}$"
|
||||
"class:^${nomacs}$"
|
||||
"class:^${proton}$"
|
||||
"title:^(${picture})$"
|
||||
"title:^(${discord-popout})$"
|
||||
"title:^${bitwarden}$"
|
||||
"title:^${save}$"
|
||||
"title:^${battle}$"
|
||||
"title:^${upload}$"
|
||||
];
|
||||
|
||||
pinWindows = builtins.map (x: "pin, " + x) [
|
||||
"title:^${picture}$"
|
||||
"title:^${discord-popout}$"
|
||||
];
|
||||
|
||||
idleInhibit = builtins.map (x: "idleinhibit, " + x) [
|
||||
"fullscreen, class:^${floorp}$"
|
||||
];
|
||||
|
||||
workspaceInit1 = builtins.map (x: "workspace 1 silent, " + x) [
|
||||
"class:^${signal}$"
|
||||
"class:^${vesktop}$"
|
||||
];
|
||||
|
||||
workspaceInit2 = builtins.map (x: "workspace 2 silent, " + x) [
|
||||
"class:^${code}$"
|
||||
# "class:^${floorp}$"
|
||||
];
|
||||
|
||||
workspaceInit3 = builtins.map (x: "workspace 3 silent, " + x) [
|
||||
"class:^${steam}$"
|
||||
"class:^${shotcut}$"
|
||||
];
|
||||
|
||||
workspaceInit4 = builtins.map (x: "workspace 4 silent, " + x) [
|
||||
"class:^${feishin}$"
|
||||
"class:^${scrcpy}$"
|
||||
];
|
||||
|
||||
centerWindows = builtins.map (x: "center, " + x) [
|
||||
"class:^${blueman}$"
|
||||
"class:^${calculator}$"
|
||||
"class:^${easyeffects}$"
|
||||
"class:^${emote}$"
|
||||
"class:^${mpv}$"
|
||||
"class:^${vlc}$"
|
||||
"class:^${nomacs}$"
|
||||
"class:^${flameshot}$"
|
||||
# "class:^${scrcpy}$"
|
||||
"title:^(${picture})$"
|
||||
"title:^(${discord-popout})$"
|
||||
"title:^${bitwarden}$"
|
||||
"title:^${save}$"
|
||||
"title:^${battle}$"
|
||||
"title:^${upload}$"
|
||||
];
|
||||
|
||||
opaqueWindows = builtins.map (x: "opaque, " + x) [
|
||||
"class:^${floorp}$"
|
||||
"class:^${kdenlive}$"
|
||||
"class:^(krita)$"
|
||||
"class:^${shotcut}$"
|
||||
"class:^${mpv}$"
|
||||
"class:^(Brave-browser)$"
|
||||
"class:^(Gimp-2.10)$"
|
||||
"class:^(org.kde.okular)$"
|
||||
"class:^${vlc}$"
|
||||
];
|
||||
in
|
||||
maxsizeWindows
|
||||
++ floatWindows
|
||||
++ pinWindows
|
||||
++ idleInhibit
|
||||
++ workspaceInit1
|
||||
++ workspaceInit2
|
||||
++ workspaceInit3
|
||||
++ workspaceInit4
|
||||
++ centerWindows
|
||||
++ opaqueWindows
|
3
modules/home/gui/desktop/hypr/land/config/xwayland.nix
Executable file
3
modules/home/gui/desktop/hypr/land/config/xwayland.nix
Executable file
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
force_zero_scaling = true;
|
||||
}
|
54
modules/home/gui/desktop/hypr/land/default.nix
Executable file
54
modules/home/gui/desktop/hypr/land/default.nix
Executable file
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
flake,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
|
||||
inherit (flake.config.people) user0;
|
||||
user = config.home.username;
|
||||
|
||||
configPath = ./config;
|
||||
configImports = {
|
||||
animations = import (configPath + /animations.nix);
|
||||
bindm = import (configPath + /bindm.nix);
|
||||
binds = import (configPath + /binds.nix);
|
||||
# bindl = import (configPath + /bindl.nix);
|
||||
decoration = import (configPath + /decoration.nix);
|
||||
dwindle = import (configPath + /dwindle.nix);
|
||||
exec-once = import (configPath + /exec-once.nix) { inherit flake; };
|
||||
general = import (configPath + /general.nix) { inherit config flake; };
|
||||
input = import (configPath + /input.nix);
|
||||
misc = import (configPath + /misc.nix);
|
||||
windowrulev2 = import (configPath + /windowrulev2.nix);
|
||||
xwayland = import (configPath + /xwayland.nix);
|
||||
monitor = import (configPath + /monitor.nix);
|
||||
bind =
|
||||
let
|
||||
bindConfig =
|
||||
if user == user0 then
|
||||
import (configPath + /bind-user0.nix)
|
||||
else
|
||||
import (configPath + /bind-user1.nix);
|
||||
in
|
||||
bindConfig;
|
||||
};
|
||||
in
|
||||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
package = null;
|
||||
portalPackage = null;
|
||||
xwayland.enable = true;
|
||||
systemd = {
|
||||
enable = true;
|
||||
enableXdgAutostart = true;
|
||||
extraCommands = [
|
||||
"systemctl --user stop hyprland-session.target"
|
||||
"systemctl --user start hyprland-session.target"
|
||||
];
|
||||
};
|
||||
settings = configImports;
|
||||
};
|
||||
}
|
21
modules/home/gui/desktop/river/config/map.nix
Executable file
21
modules/home/gui/desktop/river/config/map.nix
Executable file
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"Super Space" = "rm -r /home/$USER/.cache/tofi* ; tofi-drun";
|
||||
"Super C" = "zed";
|
||||
"Super A" = "obsidian";
|
||||
"Super D" = "ghostty -e zellij a dotfiles";
|
||||
"Super E" = "ghostty -e nu -e y";
|
||||
"Super T" = "ghostty";
|
||||
"Super G" = "firefox https://cronometer.com/#diary";
|
||||
"Super B" = "firefox";
|
||||
"Super V" = "vesktop";
|
||||
"Super W" = "bitwarden";
|
||||
"Super H" = "feishin";
|
||||
"Super Y" = "scrcpy";
|
||||
"Super R" = "ghostty -e nu -e btm";
|
||||
"Super N" = "signal-desktop";
|
||||
"Super M" = "element-desktop";
|
||||
"Super Home" = "sudo protonvpn c --cc CA";
|
||||
"Super End" = "exit";
|
||||
"Super S" = "steam";
|
||||
"Super period" = "emote";
|
||||
}
|
28
modules/home/gui/desktop/river/config/spawn.nix
Executable file
28
modules/home/gui/desktop/river/config/spawn.nix
Executable file
|
@ -0,0 +1,28 @@
|
|||
{ flake, ... }:
|
||||
let
|
||||
inherit (flake.config.aesthetics.themes)
|
||||
cursor
|
||||
;
|
||||
in
|
||||
[
|
||||
"swaylock"
|
||||
"hypridle"
|
||||
"wl-clipboard"
|
||||
"wpaperd"
|
||||
"gammastep"
|
||||
"dunst"
|
||||
"playerctrld"
|
||||
"waybar"
|
||||
"nm-applet"
|
||||
"blueman-applet"
|
||||
"easyeffects -r"
|
||||
"emote"
|
||||
"flameshot"
|
||||
"pactl set-default-sink bluez_output.00_16_94_35_0D_5F.1"
|
||||
"pactl set-default-source alsa_input.usb-Focusrite_Scarlett_2i2_USB_Y818KFJ0C671CE-00.HiFi__Mic1__source"
|
||||
"bluetoothctl power on"
|
||||
"gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'"
|
||||
"gsettings set org.gnome.desktop.interface cursor-theme 'catppuccin-mocha-dark-cursors'"
|
||||
"gsettings set org.gnome.desktop.interface cursor-size ${builtins.toString cursor.size}"
|
||||
"nmcli connection delete pvpn-killswitch-ipv6"
|
||||
]
|
77
modules/home/gui/desktop/river/default.nix
Executable file
77
modules/home/gui/desktop/river/default.nix
Executable file
|
@ -0,0 +1,77 @@
|
|||
{
|
||||
flake,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (flake.config.aesthetics.themes) cursor;
|
||||
configPath = ./config;
|
||||
settingsPath = {
|
||||
spawn = import (configPath + /spawn.nix) { inherit config flake; };
|
||||
map = import (configPath + /map.nix);
|
||||
};
|
||||
in
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
rivercarro
|
||||
;
|
||||
};
|
||||
|
||||
services.kanshi = {
|
||||
enable = true;
|
||||
systemdTarget = "river-session.target";
|
||||
};
|
||||
|
||||
wayland.windowManager.river = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
settings = {
|
||||
border-width = 4;
|
||||
declare-mode = [
|
||||
"locked"
|
||||
"normal"
|
||||
"passthrough"
|
||||
];
|
||||
input = {
|
||||
pointer-foo-bar = {
|
||||
accel-profile = "flat";
|
||||
events = true;
|
||||
pointer-accel = -0.3;
|
||||
tap = false;
|
||||
};
|
||||
};
|
||||
rule-add = {
|
||||
"-app-id" = {
|
||||
"'bar'" = "csd";
|
||||
"'float*'" = {
|
||||
"-title" = {
|
||||
"'foo'" = "float";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
set-cursor-warp = "on-output-change";
|
||||
set-repeat = "50 300";
|
||||
map-pointer = {
|
||||
normal = {
|
||||
"Alt BTN_LEFT" = "move-view";
|
||||
"Super BTN_LEFT" = "resize-view";
|
||||
"Super F" = "toggle-float";
|
||||
};
|
||||
};
|
||||
default-layout = "rivercarro";
|
||||
attach-mode = "bottom";
|
||||
map.normal = settingsPath.map;
|
||||
spawn = settingsPath.spawn;
|
||||
};
|
||||
systemd = {
|
||||
enable = true;
|
||||
extraCommands = [
|
||||
"systemctl --user stop river-session.target"
|
||||
"systemctl --user start river-session.target"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
11
modules/home/gui/desktop/theming/default.nix
Executable file
11
modules/home/gui/desktop/theming/default.nix
Executable file
|
@ -0,0 +1,11 @@
|
|||
let
|
||||
importList =
|
||||
let
|
||||
content = builtins.readDir ./.;
|
||||
dirContent = builtins.filter (n: content.${n} == "directory") (builtins.attrNames content);
|
||||
in
|
||||
map (name: ./. + "/${name}") dirContent;
|
||||
in
|
||||
{
|
||||
imports = importList;
|
||||
}
|
43
modules/home/gui/desktop/theming/gtk/default.nix
Executable file
43
modules/home/gui/desktop/theming/gtk/default.nix
Executable file
|
@ -0,0 +1,43 @@
|
|||
{ pkgs, flake, ... }:
|
||||
let
|
||||
inherit (flake.config.aesthetics.themes) cursor;
|
||||
in
|
||||
{
|
||||
gtk = {
|
||||
enable = true;
|
||||
gtk3 = {
|
||||
extraConfig = {
|
||||
gtk-application-prefer-dark-theme = true;
|
||||
};
|
||||
};
|
||||
cursorTheme = {
|
||||
name = "catppuccin-macchiato-dark-cursors";
|
||||
package = pkgs.catppuccin-cursors.macchiatoDark;
|
||||
size = cursor.size;
|
||||
};
|
||||
iconTheme = {
|
||||
package = pkgs.catppuccin-papirus-folders.override {
|
||||
flavor = "macchiato";
|
||||
accent = "mauve";
|
||||
};
|
||||
name = "Papirus-Dark";
|
||||
};
|
||||
theme = {
|
||||
package = pkgs.catppuccin-gtk.override {
|
||||
size = "compact";
|
||||
variant = "macchiato";
|
||||
accents = [
|
||||
"mauve"
|
||||
];
|
||||
};
|
||||
name = "catppuccin-macchiato-mauve-compact";
|
||||
};
|
||||
};
|
||||
home.pointerCursor = {
|
||||
gtk.enable = true;
|
||||
x11.enable = true;
|
||||
name = "catppuccin-mocha-dark-cursors";
|
||||
package = pkgs.catppuccin-cursors.macchiatoDark;
|
||||
size = cursor.size;
|
||||
};
|
||||
}
|
9
modules/home/gui/desktop/theming/qt/default.nix
Executable file
9
modules/home/gui/desktop/theming/qt/default.nix
Executable file
|
@ -0,0 +1,9 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
qt = {
|
||||
enable = true;
|
||||
style = {
|
||||
package = pkgs.catppuccin-qt5ct;
|
||||
};
|
||||
};
|
||||
}
|
11
modules/home/gui/desktop/wayland/default.nix
Executable file
11
modules/home/gui/desktop/wayland/default.nix
Executable file
|
@ -0,0 +1,11 @@
|
|||
let
|
||||
importList =
|
||||
let
|
||||
content = builtins.readDir ./.;
|
||||
dirContent = builtins.filter (n: content.${n} == "directory") (builtins.attrNames content);
|
||||
in
|
||||
map (name: ./. + "/${name}") dirContent;
|
||||
in
|
||||
{
|
||||
imports = importList;
|
||||
}
|
59
modules/home/gui/desktop/wayland/dunst/config/settings.nix
Executable file
59
modules/home/gui/desktop/wayland/dunst/config/settings.nix
Executable file
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
flake,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
|
||||
inherit (flake.config.aesthetics.themes)
|
||||
currentTheme
|
||||
palettes
|
||||
fonts
|
||||
;
|
||||
|
||||
inherit (flake.config.people) user0 user1 user2;
|
||||
|
||||
user = config.home.username;
|
||||
|
||||
themeLogic =
|
||||
if user == user0 then
|
||||
currentTheme.theme0
|
||||
else if user == user1 then
|
||||
currentTheme.theme1
|
||||
else if user == user2 then
|
||||
currentTheme.theme2
|
||||
else
|
||||
currentTheme.theme0;
|
||||
|
||||
el = palettes.${themeLogic}.colours;
|
||||
|
||||
makeColor = c: "#" + c;
|
||||
in
|
||||
{
|
||||
global = {
|
||||
font = "${fonts.names.name0} ${builtins.toString fonts.sizes.popups.size0}";
|
||||
background = makeColor el.base01;
|
||||
frame_color = makeColor el.base0E;
|
||||
foreground = makeColor el.base05;
|
||||
corner_radius = 10;
|
||||
fade_in_duration = 1000;
|
||||
frame = 10000;
|
||||
frame_width = 1;
|
||||
icon_corner_radius = 10;
|
||||
monitor = 1;
|
||||
offset = "20x20";
|
||||
origin = "bottom-right";
|
||||
progress_bar_corner_radius = 4;
|
||||
timeout = 10;
|
||||
transparecncy = true;
|
||||
};
|
||||
|
||||
urgency_critical = {
|
||||
frame_color = makeColor el.base09;
|
||||
timeout = 0;
|
||||
};
|
||||
skip-rule = {
|
||||
appname = "flameshot";
|
||||
skip_display = true;
|
||||
};
|
||||
}
|
15
modules/home/gui/desktop/wayland/dunst/default.nix
Executable file
15
modules/home/gui/desktop/wayland/dunst/default.nix
Executable file
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
config,
|
||||
flake,
|
||||
...
|
||||
}:
|
||||
let
|
||||
configPath = ./config;
|
||||
settingsPath = import (configPath + /settings.nix) { inherit config flake; };
|
||||
in
|
||||
{
|
||||
services.dunst = {
|
||||
enable = true;
|
||||
settings = settingsPath;
|
||||
};
|
||||
}
|
3
modules/home/gui/desktop/wayland/easyEffects/default.nix
Executable file
3
modules/home/gui/desktop/wayland/easyEffects/default.nix
Executable file
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
services.easyeffects.enable = true;
|
||||
}
|
13
modules/home/gui/desktop/wayland/gammastep/default.nix
Executable file
13
modules/home/gui/desktop/wayland/gammastep/default.nix
Executable file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
services.gammastep = {
|
||||
enable = true;
|
||||
tray = true;
|
||||
provider = "geoclue2";
|
||||
temperature = {
|
||||
day = 6500;
|
||||
night = 3500;
|
||||
};
|
||||
dawnTime = "8:00-8:30";
|
||||
duskTime = "20:30-21:00";
|
||||
};
|
||||
}
|
12
modules/home/gui/desktop/wayland/network/default.nix
Executable file
12
modules/home/gui/desktop/wayland/network/default.nix
Executable file
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
services.network-manager-applet.enable = true;
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
networkmanagerapplet
|
||||
;
|
||||
};
|
||||
}
|
11
modules/home/gui/desktop/wayland/nwgLook/default.nix
Executable file
11
modules/home/gui/desktop/wayland/nwgLook/default.nix
Executable file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
nwg-look
|
||||
;
|
||||
};
|
||||
}
|
11
modules/home/gui/desktop/wayland/plasmaNm/default.nix
Executable file
11
modules/home/gui/desktop/wayland/plasmaNm/default.nix
Executable file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs.kdePackages)
|
||||
plasma-nm
|
||||
;
|
||||
};
|
||||
}
|
69
modules/home/gui/desktop/wayland/swaylock/config/settings.nix
Executable file
69
modules/home/gui/desktop/wayland/swaylock/config/settings.nix
Executable file
|
@ -0,0 +1,69 @@
|
|||
{
|
||||
config,
|
||||
flake,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (flake.config.aesthetics.themes)
|
||||
currentTheme
|
||||
palettes
|
||||
fonts
|
||||
;
|
||||
|
||||
inherit (flake.config.people) user0 user1 user2;
|
||||
|
||||
user = config.home.username;
|
||||
|
||||
themeLogic =
|
||||
if user == user0 then
|
||||
currentTheme.theme0
|
||||
else if user == user1 then
|
||||
currentTheme.theme1
|
||||
else if user == user2 then
|
||||
currentTheme.theme2
|
||||
else
|
||||
currentTheme.theme0;
|
||||
|
||||
el = palettes.${themeLogic}.colours;
|
||||
in
|
||||
{
|
||||
font = fonts.names.name0;
|
||||
font-size = fonts.sizes.desktop.size0;
|
||||
indicator-idle-visible = true;
|
||||
indicator-radius = 100;
|
||||
indicator-thickness = 20;
|
||||
show-failed-attempts = true;
|
||||
|
||||
bs-hl-color = el.base08;
|
||||
color = el.base01;
|
||||
key-hl-color = el.base0E;
|
||||
|
||||
caps-lock-bs-hl-color = el.base08;
|
||||
caps-lock-key-hl-color = el.base0E;
|
||||
|
||||
inside-color = el.base01;
|
||||
inside-clear-color = el.base01;
|
||||
inside-caps-lock-color = el.base01;
|
||||
inside-ver-color = el.base01;
|
||||
inside-wrong-color = el.base01;
|
||||
|
||||
line-color = el.base01;
|
||||
line-clear-color = el.base01;
|
||||
line-caps-lock-color = el.base01;
|
||||
line-ver-color = el.base01;
|
||||
line-wrong-color = el.base01;
|
||||
|
||||
ring-color = el.base00;
|
||||
ring-clear-color = el.base00;
|
||||
ring-caps-lock-color = el.base00;
|
||||
ring-ver-color = el.base00;
|
||||
ring-wrong-color = el.base00;
|
||||
|
||||
separator-color = "00000000";
|
||||
|
||||
text-color = el.base05;
|
||||
text-clear-color = el.base05;
|
||||
text-caps-lock-color = el.base05;
|
||||
text-ver-color = el.base05;
|
||||
text-wrong-color = el.base05;
|
||||
}
|
15
modules/home/gui/desktop/wayland/swaylock/default.nix
Executable file
15
modules/home/gui/desktop/wayland/swaylock/default.nix
Executable file
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
config,
|
||||
flake,
|
||||
...
|
||||
}:
|
||||
let
|
||||
configPath = ./config;
|
||||
settingsPath = import (configPath + /settings.nix) { inherit config flake; };
|
||||
in
|
||||
{
|
||||
programs.swaylock = {
|
||||
enable = true;
|
||||
settings = settingsPath;
|
||||
};
|
||||
}
|
50
modules/home/gui/desktop/wayland/tofi/config/settings.nix
Executable file
50
modules/home/gui/desktop/wayland/tofi/config/settings.nix
Executable file
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
config,
|
||||
flake,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (flake.config.aesthetics.themes) currentTheme palettes fonts;
|
||||
|
||||
inherit (flake.config.people) user0 user1 user2;
|
||||
|
||||
user = config.home.username;
|
||||
|
||||
themeLogic =
|
||||
if user == user0 then
|
||||
currentTheme.theme0
|
||||
else if user == user1 then
|
||||
currentTheme.theme1
|
||||
else if user == user2 then
|
||||
currentTheme.theme2
|
||||
else
|
||||
currentTheme.theme0;
|
||||
|
||||
el = palettes.${themeLogic}.colours;
|
||||
in
|
||||
{
|
||||
font-size = fonts.sizes.desktop.size0;
|
||||
hint-font = true;
|
||||
background-color = "#${el.base02}";
|
||||
outline-color = "#${el.base0E}";
|
||||
prompt-color = "#${el.base0D}";
|
||||
input-color = "#${el.base07}";
|
||||
default-result-color = "#${el.base05}";
|
||||
selection-color = "#${el.base0E}";
|
||||
prompt-text = "Summon: ";
|
||||
|
||||
width = 400;
|
||||
height = 400;
|
||||
|
||||
outline-width = 1;
|
||||
border-width = 0;
|
||||
|
||||
padding-top = 10;
|
||||
padding-bottom = 10;
|
||||
padding-left = 10;
|
||||
padding-right = 10;
|
||||
|
||||
corner-radius = 10;
|
||||
|
||||
drun-launch = true;
|
||||
}
|
16
modules/home/gui/desktop/wayland/tofi/default.nix
Executable file
16
modules/home/gui/desktop/wayland/tofi/default.nix
Executable file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
config,
|
||||
flake,
|
||||
...
|
||||
}:
|
||||
let
|
||||
configPath = ./config;
|
||||
|
||||
settingsPath = import (configPath + /settings.nix) { inherit config flake; };
|
||||
in
|
||||
{
|
||||
programs.tofi = {
|
||||
enable = true;
|
||||
settings = settingsPath;
|
||||
};
|
||||
}
|
7
modules/home/gui/desktop/wayland/udiskie/default.nix
Executable file
7
modules/home/gui/desktop/wayland/udiskie/default.nix
Executable file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
services.udiskie = {
|
||||
enable = true;
|
||||
automount = true;
|
||||
tray = "always";
|
||||
};
|
||||
}
|
18
modules/home/gui/desktop/wayland/wallet/default.nix
Executable file
18
modules/home/gui/desktop/wayland/wallet/default.nix
Executable file
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs.kdePackages)
|
||||
kwallet-pam
|
||||
# kwalletmanager
|
||||
;
|
||||
};
|
||||
programs.gpg = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
|
||||
# use this to make annoying shit go away:
|
||||
# gpg --pinentry-mode loopback --full-generate-key
|
180
modules/home/gui/desktop/wayland/waybar/config/settings.nix
Executable file
180
modules/home/gui/desktop/wayland/waybar/config/settings.nix
Executable file
|
@ -0,0 +1,180 @@
|
|||
{ config, ... }:
|
||||
let
|
||||
user = config.home.username;
|
||||
in
|
||||
{
|
||||
mainBar = {
|
||||
position = "bottom";
|
||||
layer = "top";
|
||||
height = 5;
|
||||
margin-top = 0;
|
||||
margin-bottom = 5;
|
||||
margin-left = 5;
|
||||
margin-right = 5;
|
||||
modules-left = [
|
||||
"custom/launcher"
|
||||
"hyprland/workspaces"
|
||||
];
|
||||
|
||||
modules-center = [
|
||||
"custom/weather"
|
||||
];
|
||||
|
||||
modules-right = [
|
||||
"tray"
|
||||
"privacy"
|
||||
"cpu"
|
||||
"memory"
|
||||
"disk"
|
||||
"pulseaudio"
|
||||
# "network"
|
||||
"battery"
|
||||
"clock"
|
||||
];
|
||||
|
||||
clock = {
|
||||
calendar = {
|
||||
format = {
|
||||
today = "<span color='#ff6699'><b><u>{}</u></b></span>";
|
||||
};
|
||||
};
|
||||
format = " {:%H:%M}";
|
||||
tooltip = true;
|
||||
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
|
||||
format-alt = " {:%d/%m}";
|
||||
};
|
||||
|
||||
"hyprland/workspaces" = {
|
||||
active-only = false;
|
||||
disable-scroll = true;
|
||||
format = "{icon}";
|
||||
on-click = "activate";
|
||||
format-icons = {
|
||||
"1" = "◉";
|
||||
"2" = "◉";
|
||||
"3" = "◉";
|
||||
"4" = "◉";
|
||||
"5" = "◉";
|
||||
urgent = "";
|
||||
default = "◉";
|
||||
sort-by-number = true;
|
||||
};
|
||||
persistent-workspaces = {
|
||||
"1" = [ ];
|
||||
"2" = [ ];
|
||||
"3" = [ ];
|
||||
"4" = [ ];
|
||||
"5" = [ ];
|
||||
};
|
||||
};
|
||||
|
||||
memory = {
|
||||
format = " {}%";
|
||||
format-alt = " {used} GiB"; #
|
||||
interval = 2;
|
||||
};
|
||||
|
||||
cpu = {
|
||||
format = " {usage}%";
|
||||
format-alt = " {avg_frequency} GHz";
|
||||
interval = 2;
|
||||
};
|
||||
|
||||
disk = {
|
||||
# path = "/";
|
||||
format = " {percentage_used}%";
|
||||
interval = 60;
|
||||
};
|
||||
|
||||
network = {
|
||||
format-wifi = " {signalStrength}%";
|
||||
format-ethernet = " ";
|
||||
tooltip-format = "Connected to {essid} {ifname} via {gwaddr}";
|
||||
format-linked = "{ifname} (No IP)";
|
||||
format-disconnected = " ";
|
||||
};
|
||||
|
||||
tray = {
|
||||
icon-size = 12;
|
||||
spacing = 8;
|
||||
};
|
||||
|
||||
pulseaudio = {
|
||||
format = "{icon} {volume}%";
|
||||
tooltip = false;
|
||||
format-muted = " Muted";
|
||||
on-click = "easyeffects";
|
||||
on-scroll-up = "pactl set-sink-volume alsa_output.usb-Focusrite_Scarlett_2i2_USB_Y818KFJ0C671CE-00.HiFi__Line1__sink +5% ; pactl set-sink-volume @DEFAULT_SINK@ 5%";
|
||||
on-scroll-down = "pactl set-sink-volume alsa_output.usb-Focusrite_Scarlett_2i2_USB_Y818KFJ0C671CE-00.HiFi__Line1__sink -5% ; pactl set-sink-volume @DEFAULT_SINK@ -5%";
|
||||
scroll-step = 5;
|
||||
format-icons = {
|
||||
headphone = "";
|
||||
hands-free = "";
|
||||
headset = "";
|
||||
phone = "";
|
||||
portable = "";
|
||||
car = "";
|
||||
default = [
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
};
|
||||
"custom/launcher" = {
|
||||
format = "";
|
||||
on-click = "rm -r /home/$USER/.cache/tofi* ; tofi-drun";
|
||||
# on-click-right = "pkill tofi || wallpaper-picker";
|
||||
tooltip = false;
|
||||
};
|
||||
|
||||
privacy = {
|
||||
icon-spacing = 8;
|
||||
icon-size = 12;
|
||||
transition-duration = 250;
|
||||
modules = {
|
||||
screenshare = {
|
||||
type = "screenshare";
|
||||
tooltip = true;
|
||||
tooltip-icon-size = 12;
|
||||
};
|
||||
audio-out = {
|
||||
type = "audio-out";
|
||||
tooltip = true;
|
||||
tooltip-icon-size = 12;
|
||||
};
|
||||
audio-in = {
|
||||
type = "audio-in";
|
||||
tooltip = true;
|
||||
tooltip-icon-size = 12;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
"custom/weather" = {
|
||||
exec = "/home/${user}/.config/scripts/get_weather.sh Winnipeg";
|
||||
return-type = "json";
|
||||
format = "{}";
|
||||
tooltip = true;
|
||||
interval = 3600;
|
||||
};
|
||||
battery = {
|
||||
format = "{icon} {capacity}%";
|
||||
format-alt = "{icon} {time}";
|
||||
format-charging = " {capacity}%";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
format-plugged = " {capacity}%";
|
||||
states = {
|
||||
critical = 15;
|
||||
warning = 30;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
# https://unicodes.jessetane.com/
|
121
modules/home/gui/desktop/wayland/waybar/config/style.nix
Executable file
121
modules/home/gui/desktop/wayland/waybar/config/style.nix
Executable file
|
@ -0,0 +1,121 @@
|
|||
{
|
||||
config,
|
||||
flake,
|
||||
...
|
||||
}:
|
||||
let
|
||||
|
||||
inherit (flake.config.aesthetics.themes) currentTheme palettes fonts;
|
||||
|
||||
inherit (flake.config.people) user0 user1 user2;
|
||||
|
||||
user = config.home.username;
|
||||
|
||||
themeLogic =
|
||||
if user == user0 then
|
||||
currentTheme.theme0
|
||||
else if user == user1 then
|
||||
currentTheme.theme1
|
||||
else if user == user2 then
|
||||
currentTheme.theme2
|
||||
else
|
||||
currentTheme.theme0;
|
||||
|
||||
el = palettes.${themeLogic}.colours;
|
||||
|
||||
custom = {
|
||||
font = fonts.names.name0;
|
||||
font_size = "${builtins.toString fonts.sizes.desktop.size0}px";
|
||||
font_weight = "bold";
|
||||
opacityBg = "0.90";
|
||||
opacityBt = "1";
|
||||
text_color = el.base0E;
|
||||
secondary_accent = el.base07;
|
||||
tertiary_accent = el.base15;
|
||||
button_color = el.base04;
|
||||
background_1 = el.base01;
|
||||
background_2 = el.base00;
|
||||
background_3 = el.base04;
|
||||
};
|
||||
in
|
||||
''
|
||||
|
||||
* {
|
||||
min-height: 0px;
|
||||
font-family: ${custom.font};
|
||||
font-weight: ${custom.font_weight};
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: #${custom.background_2};
|
||||
color: #${custom.background_3};
|
||||
border: 2px solid;
|
||||
border-radius: 30px;
|
||||
border-color: #${custom.text_color};
|
||||
min-height: 100px;
|
||||
opacity: ${custom.opacityBg};
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
font-size: 18px;
|
||||
padding-left: 15px;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
#workspaces button {
|
||||
color: #${custom.button_color};
|
||||
padding: 5px;
|
||||
opacity: ${custom.opacityBt};
|
||||
}
|
||||
#workspaces button.empty {
|
||||
color: #${custom.background_3};
|
||||
}
|
||||
#workspaces button.active {
|
||||
color: #${custom.text_color};
|
||||
}
|
||||
|
||||
#tray, #pulseaudio, #privacy, #cpu, #memory, #disk, #clock {
|
||||
font-size: ${custom.font_size};
|
||||
color: #${custom.text_color};
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
#privacy {
|
||||
}
|
||||
|
||||
#cpu {
|
||||
}
|
||||
|
||||
#memory {
|
||||
}
|
||||
|
||||
#disk {
|
||||
}
|
||||
|
||||
#tray {
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
}
|
||||
|
||||
#clock {
|
||||
}
|
||||
|
||||
#battery {
|
||||
font-size: ${custom.font_size};
|
||||
color: #${custom.text_color};
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
#custom-launcher {
|
||||
font-size: 20px;
|
||||
color: #${custom.text_color};
|
||||
font-weight: ${custom.font_weight};
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
#custom-weather {
|
||||
font-size: 14px;
|
||||
color: #${custom.text_color};
|
||||
font-weight: ${custom.font_weight};
|
||||
}
|
||||
''
|
19
modules/home/gui/desktop/wayland/waybar/default.nix
Executable file
19
modules/home/gui/desktop/wayland/waybar/default.nix
Executable file
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
config,
|
||||
flake,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
configPath = ./config;
|
||||
settingsPath = import (configPath + /settings.nix) { inherit config; };
|
||||
stylePath = import (configPath + /style.nix) { inherit config flake; };
|
||||
in
|
||||
{
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
# package = flake.inputs.waybar.packages.${pkgs.system}.default;
|
||||
settings = settingsPath;
|
||||
style = stylePath;
|
||||
};
|
||||
}
|
11
modules/home/gui/desktop/wayland/wlClipboard/default.nix
Executable file
11
modules/home/gui/desktop/wayland/wlClipboard/default.nix
Executable file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
wl-clipboard
|
||||
;
|
||||
};
|
||||
}
|
13
modules/home/gui/desktop/wayland/wpaperd/default.nix
Executable file
13
modules/home/gui/desktop/wayland/wpaperd/default.nix
Executable file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
services.wpaperd = {
|
||||
enable = true;
|
||||
settings = {
|
||||
"default" = {
|
||||
path = "~/.config/wallpaper";
|
||||
apply-shadow = true;
|
||||
duration = "1m";
|
||||
sorting = "random";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue