feat: separated hyprland

This commit is contained in:
Nick 2025-02-04 14:05:09 -06:00
parent 5269981d5d
commit 5ac7332014
75 changed files with 23 additions and 655 deletions

View file

@ -1,59 +0,0 @@
{
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;
};
}

View file

@ -1,15 +0,0 @@
{
config,
flake,
...
}:
let
configPath = ./config;
settingsPath = import (configPath + /settings.nix) { inherit config flake; };
in
{
services.dunst = {
enable = true;
settings = settingsPath;
};
}

View file

@ -1,3 +0,0 @@
{
services.easyeffects.enable = true;
}

View file

@ -1,13 +0,0 @@
{
services.gammastep = {
enable = true;
tray = true;
provider = "geoclue2";
temperature = {
day = 6500;
night = 3500;
};
dawnTime = "8:00-8:30";
duskTime = "20:30-21:00";
};
}

View file

@ -10,14 +10,14 @@ let
superBinds = builtins.map (x: "SUPER, " + x) [ superBinds = builtins.map (x: "SUPER, " + x) [
# Apps # Apps
"Space, exec, rm -r /home/$USER/.cache/tofi* ; tofi-drun" "Space, exec, rm -r /home/$USER/.cache/tofi* ; tofi-drun"
"C, exec, zed" "C, exec, zeditor"
"A, exec, obsidian" "A, exec, obsidian"
"D, exec, ghostty -e zellij a dotfiles" "D, exec, ghostty -e zellij a dotfiles"
"E, exec, ghostty -e nu -e y" "E, exec, ghostty -e nu -e y"
"T, exec, ghostty" "T, exec, ghostty"
"G, exec, firefox https://cronometer.com/#diary" "G, exec, firefox https://cronometer.com/#diary"
"B, exec, firefox" "B, exec, firefox"
"V, exec, vesktop" "V, exec, discordcanary"
"W, exec, bitwarden" "W, exec, bitwarden"
"H, exec, feishin" "H, exec, feishin"
"Y, exec, scrcpy" "Y, exec, scrcpy"

View file

@ -3,6 +3,13 @@ let
inherit (flake.config.aesthetics.themes) inherit (flake.config.aesthetics.themes)
cursor 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 in
[ [
"swaylock" "swaylock"
@ -15,15 +22,12 @@ in
"waybar" "waybar"
"nm-applet" "nm-applet"
"blueman-applet" "blueman-applet"
"rfkill block bluetooth"
"rfkill unblock bluetooth"
"easyeffects -r" "easyeffects -r"
"emote" "emote"
"flameshot" "flameshot"
"pactl set-default-sink bluez_output.00_16_94_35_0D_5F.1" scarlettIn
"pactl set-default-source alsa_input.usb-Focusrite_Scarlett_2i2_USB_Y818KFJ0C671CE-00.HiFi__Mic1__source" scarlettOut
"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}"
# "systemctl --user import-environment PATH"
# "systemctl --user restart xdg-desktop-portal.service"
] ]
++ catppuccin

View file

@ -10,6 +10,7 @@ let
flameshot = "(flameshot)"; flameshot = "(flameshot)";
bitwarden = "(.*Bitwarden.*)"; bitwarden = "(.*Bitwarden.*)";
save = "(.*Enter name of file to save to.*)"; save = "(.*Enter name of file to save to.*)";
proton = "(.*.protonvpn-app-wrapped.*)";
picture = "(.*Picture-in-Picture.*)"; picture = "(.*Picture-in-Picture.*)";
discord-popout = "(.*Discord Popout.*)"; discord-popout = "(.*Discord Popout.*)";
upload = "(.*File Upload.*)"; upload = "(.*File Upload.*)";
@ -28,10 +29,10 @@ let
"maxsize 360 500, class:^${calculator}$" "maxsize 360 500, class:^${calculator}$"
"maxsize 720 400, class:^${easyeffects}$" "maxsize 720 400, class:^${easyeffects}$"
"maxsize 720 400, class:^${scrcpy}$" "maxsize 720 400, class:^${scrcpy}$"
"minsize 720 400, class:^${scrcpy}$"
"maxsize 720 400, class:^${mpv}$" "maxsize 720 400, class:^${mpv}$"
"maxsize 720 400, class:^${vlc}$" "maxsize 720 400, class:^${vlc}$"
"maxsize 640 360, class:^${nomacs}$" "maxsize 640 360, class:^${nomacs}$"
"maxsize 1000 600, class:^${proton}$"
"maxsize 800 450, title:^${bitwarden}$" "maxsize 800 450, title:^${bitwarden}$"
"maxsize 720 400, title:^${picture}$" "maxsize 720 400, title:^${picture}$"
"maxsize 720 400, title:^${save}$" "maxsize 720 400, title:^${save}$"
@ -52,6 +53,8 @@ let
"class:^${nomacs}$" "class:^${nomacs}$"
"class:^${flameshot}$" "class:^${flameshot}$"
"class:^${scrcpy}$" "class:^${scrcpy}$"
"class:^${nomacs}$"
"class:^${proton}$"
"title:^(${picture})$" "title:^(${picture})$"
"title:^(${discord-popout})$" "title:^(${discord-popout})$"
"title:^${bitwarden}$" "title:^${bitwarden}$"

View file

@ -1,21 +1,18 @@
{ {
flake, flake,
config, config,
pkgs,
... ...
}: }:
let let
# hostname = config.networking.hostName;
# inherit (flake.config.machines.devices) desktop laptop;
configPath = ./config; configPath = ./config;
configImports = { configImports = {
animations = import (configPath + /animations.nix); animations = import (configPath + /animations.nix);
bind = import (configPath + /bind.nix) { inherit flake config; }; bind = import (configPath + /bind.nix) { inherit flake config; };
bindm = import (configPath + /bindm.nix); bindm = import (configPath + /bindm.nix);
binds = import (configPath + /binds.nix); binds = import (configPath + /binds.nix);
# bindl = # bindl = import (configPath + /bindl.nix);
# if hostname == laptop.name
# then import (configPath + /bindl.nix)
# else null;
decoration = import (configPath + /decoration.nix); decoration = import (configPath + /decoration.nix);
dwindle = import (configPath + /dwindle.nix); dwindle = import (configPath + /dwindle.nix);
exec-once = import (configPath + /exec-once.nix) { inherit flake; }; exec-once = import (configPath + /exec-once.nix) { inherit flake; };
@ -28,6 +25,8 @@ in
{ {
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;
package = null;
portalPackage = null;
xwayland.enable = true; xwayland.enable = true;
systemd = { systemd = {
enable = true; enable = true;

View file

@ -1,12 +0,0 @@
{
pkgs,
...
}:
{
services.network-manager-applet.enable = true;
home.packages = builtins.attrValues {
inherit (pkgs)
networkmanagerapplet
;
};
}

View file

@ -1,11 +0,0 @@
{
pkgs,
...
}:
{
home.packages = builtins.attrValues {
inherit (pkgs)
nwg-look
;
};
}

View file

@ -1,11 +0,0 @@
{
pkgs,
...
}:
{
home.packages = builtins.attrValues {
inherit (pkgs.kdePackages)
plasma-nm
;
};
}

View file

@ -1,69 +0,0 @@
{
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;
}

View file

@ -1,15 +0,0 @@
{
config,
flake,
...
}:
let
configPath = ./config;
settingsPath = import (configPath + /settings.nix) { inherit config flake; };
in
{
programs.swaylock = {
enable = true;
settings = settingsPath;
};
}

View file

@ -1,50 +0,0 @@
{
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.base0C}";
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;
}

View file

@ -1,16 +0,0 @@
{
config,
flake,
...
}:
let
configPath = ./config;
settingsPath = import (configPath + /settings.nix) { inherit config flake; };
in
{
programs.tofi = {
enable = true;
settings = settingsPath;
};
}

View file

@ -1,7 +0,0 @@
{
services.udiskie = {
enable = true;
automount = true;
tray = "always";
};
}

View file

@ -1,18 +0,0 @@
{
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

View file

@ -1,19 +0,0 @@
#!/usr/bin/env bash
for i in {1..5}
do
text=$(curl -s "https://wttr.in/$1?format=1")
if [[ $? == 0 ]]
then
text=$(echo "$text" | sed -E "s/\s+/ /g")
tooltip=$(curl -s "https://wttr.in/$1?format=4")
if [[ $? == 0 ]]
then
tooltip=$(echo "$tooltip" | sed -E "s/\s+/ /g")
echo "{\"text\":\"$text\", \"tooltip\":\"$tooltip\"}"
exit
fi
fi
sleep 2
done
echo "{\"text\":\"error\", \"tooltip\":\"error\"}"

View file

@ -1,162 +0,0 @@
{ flake, ... }:
let
inherit (flake.config.people)
user0
;
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"
"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" = "";
urgent = "";
default = "";
sort-by-number = true;
};
persistent-workspaces = {
"1" = [ ];
"2" = [ ];
"3" = [ ];
"4" = [ ];
};
};
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 = "amixer sset Master 5%+";
on-scroll-down = "amixer sset Master 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/${user0}/Files/Projects/dotfiles/home/modules/gui/desktop/waybar/config/scripts/get_weather.sh Winnipeg";
return-type = "json";
format = "{}";
tooltip = true;
interval = 3600;
};
};
}
# https://unicodes.jessetane.com/

View file

@ -1,115 +0,0 @@
{
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 {
}
#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};
}
''

View file

@ -1,19 +0,0 @@
{
config,
flake,
pkgs,
...
}:
let
configPath = ./config;
settingsPath = import (configPath + /settings.nix) { inherit flake; };
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;
};
}

View file

@ -1,11 +0,0 @@
{
pkgs,
...
}:
{
home.packages = builtins.attrValues {
inherit (pkgs)
wl-clipboard
;
};
}

View file

@ -1,13 +0,0 @@
{
programs.wpaperd = {
enable = true;
settings = {
"default" = {
path = "~/Files/Projects/dotfiles/home/modules/gui/desktop/hypr/wpaperd/wallpaper";
apply-shadow = true;
duration = "1m";
sorting = "random";
};
};
};
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 578 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 808 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 578 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 632 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 833 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 467 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 257 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 261 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 501 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 252 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 646 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 422 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 552 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 366 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 747 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 665 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 869 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 302 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 457 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 876 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 529 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 258 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 568 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 323 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 720 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 289 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 405 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 787 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 MiB