update system

This commit is contained in:
2025-05-04 12:57:55 +02:00
parent df0600601b
commit 34a7ef00fd
18 changed files with 717 additions and 81 deletions

38
flake.lock generated
View File

@@ -8,11 +8,11 @@
]
},
"locked": {
"lastModified": 1741352980,
"narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=",
"lastModified": 1743550720,
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9",
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
"type": "github"
},
"original": {
@@ -46,11 +46,11 @@
]
},
"locked": {
"lastModified": 1743360001,
"narHash": "sha256-HtpS/ZdgWXw0y+aFdORcX5RuBGTyz3WskThspNR70SM=",
"lastModified": 1745987135,
"narHash": "sha256-8Up4QPuMZEJBU0eefAY+nUe7DYKQQzvaHnMpNdwRgKA=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "b6fd653ef8fbeccfd4958650757e91767a65506d",
"rev": "d2b3e6c83d457aa0e7f9344c61c3fed32bad0f7e",
"type": "github"
},
"original": {
@@ -73,16 +73,16 @@
]
},
"locked": {
"lastModified": 1729958008,
"narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=",
"lastModified": 1737371634,
"narHash": "sha256-fTVAWzT1UMm1lT+YxHuVPtH+DATrhYfea3B0MxG/cGw=",
"owner": "NuschtOS",
"repo": "ixx",
"rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb",
"rev": "a1176e2a10ce745ff8f63e4af124ece8fe0b1648",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"ref": "v0.0.6",
"ref": "v0.0.7",
"repo": "ixx",
"type": "github"
}
@@ -127,11 +127,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1743315132,
"narHash": "sha256-6hl6L/tRnwubHcA4pfUUtk542wn2Om+D4UnDhlDW9BE=",
"lastModified": 1745930157,
"narHash": "sha256-y3h3NLnzRSiUkYpnfvnS669zWZLoqqI6NprtLQ+5dck=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "52faf482a3889b7619003c0daec593a1912fddc1",
"rev": "46e634be05ce9dc6d4db8e664515ba10b78151ae",
"type": "github"
},
"original": {
@@ -150,11 +150,11 @@
"nuschtosSearch": "nuschtosSearch"
},
"locked": {
"lastModified": 1743362786,
"narHash": "sha256-XbXIRDbb8/vLBX1M096l7lM5wfzBTp1ZXfUl9bUhVGU=",
"lastModified": 1745933874,
"narHash": "sha256-K/bEekSd3iibHoTUgytBYJZd0/e4xQ4IyKkS+NI1XyI=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "d81f37256d0a8691b837b74979d27bf89be8ecdd",
"rev": "cd3cbb1e26f463543dc4710548ed35b0ac711370",
"type": "github"
},
"original": {
@@ -173,11 +173,11 @@
]
},
"locked": {
"lastModified": 1742659553,
"narHash": "sha256-i/JCrr/jApVorI9GkSV5to+USrRCa0rWuQDH8JSlK2A=",
"lastModified": 1745046075,
"narHash": "sha256-8v4y6k16Ra/fiecb4DxhsoOGtzLKgKlS+9/XJ9z0T2I=",
"owner": "NuschtOS",
"repo": "search",
"rev": "508752835128a3977985a4d5225ff241f7756181",
"rev": "066afe8643274470f4a294442aadd988356a478f",
"type": "github"
},
"original": {

View File

@@ -45,12 +45,14 @@
};
shell.components = {
dunst.enable = true;
#dunst.enable = true;
firefox-pip.enable = true;
flameshot.enable = true;
gnome-keyring.enable = true;
hyprpicker.enable = true;
kde-connect.enable = true;
kitty.enable = true;
swaync.enable = true;
walker.enable = true;
waybar.enable = true;
};

View File

@@ -1,5 +1,12 @@
{ ... }:
{
theme.md3-evo.enable = true;
theme.md3-evo = {
enable = true;
auto-dark = {
enable = true;
lat = 52.52;
lon = 13.40;
};
};
programs.zoxide.enable = true;
}

View File

@@ -4,6 +4,16 @@
osConfig,
...
}:
let
hypr-cycle = pkgs.writeShellApplication {
name = "hypr-cycle";
text = ''
WORKSPACE=$(hyprctl activeworkspace -j | jq -r '.id')
WINDOW=$(hyprctl activewindow -j | jq -r '.address')
hyprctl clients -j | jq -r "map(select(.workspace.id == $WORKSPACE) | select(.class == \"$1\") | .address | select(. != $WINDOW)) | .[0]"
'';
};
in
{
config = lib.mkIf osConfig.desktops.hyprland.enable {
wayland.windowManager.hyprland = {
@@ -37,26 +47,6 @@
"SUPER_SHIFT,h,movetoworkspace,r+1"
"SUPER,mouse_up,workspace,r+1"
"SUPER,mouse_down,workspace,r-1"
"SUPER,1,workspace,1"
"SUPER,2,workspace,2"
"SUPER,3,workspace,3"
"SUPER,4,workspace,4"
"SUPER,5,workspace,5"
"SUPER,6,workspace,6"
"SUPER,7,workspace,7"
"SUPER,8,workspace,8"
"SUPER,9,workspace,9"
"SUPER_SHIFT,1,movetoworkspace,1"
"SUPER_SHIFT,2,movetoworkspace,2"
"SUPER_SHIFT,3,movetoworkspace,3"
"SUPER_SHIFT,4,movetoworkspace,4"
"SUPER_SHIFT,5,movetoworkspace,5"
"SUPER_SHIFT,6,movetoworkspace,6"
"SUPER_SHIFT,7,movetoworkspace,7"
"SUPER_SHIFT,8,movetoworkspace,8"
"SUPER_SHIFT,9,movetoworkspace,9"
];
bindm = [
"SUPER,mouse:272,movewindow"

View File

@@ -35,14 +35,15 @@
src = zsh-nix-shell;
}
];
initExtraFirst = # sh
''
if [[ -r "''${XDG_CACHE_HOME:-''$HOME/.cache}/p10k-instant-prompt-''${(%):-%n}.zsh" ]]; then
source "''${XDG_CACHE_HOME:-''$HOME/.cache}/p10k-instant-prompt-''${(%):-%n}.zsh"
fi
[[ ! -f ${./.p10k.zsh} ]] || source ${./.p10k.zsh}
source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme
'';
initContent =
pkgs.lib.mkBefore # sh
''
if [[ -r "''${XDG_CACHE_HOME:-''$HOME/.cache}/p10k-instant-prompt-''${(%):-%n}.zsh" ]]; then
source "''${XDG_CACHE_HOME:-''$HOME/.cache}/p10k-instant-prompt-''${(%):-%n}.zsh"
fi
[[ ! -f ${./.p10k.zsh} ]] || source ${./.p10k.zsh}
source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme
'';
};
direnv = {
enable = true;

View File

@@ -21,6 +21,13 @@
"+ss10"
];
};
box-drawing = {
mode = "native";
sizes.default = [
1
3
];
};
};
wayland.windowManager.hyprland.settings.windowrulev2 = [
# For some reason it really wants to be maximized
@@ -35,6 +42,7 @@
neovide_hide_mouse_when_typing = true;
experimental_layer_grouping = true;
neovide_cursor_vfx_mode = "pixiedust";
neovide_cursor_trail_size = 0.7;
};
};
}

View File

@@ -33,7 +33,7 @@
presets = {
auto-save.enable = true;
auto-format.enable = true;
harpoon.enable = true;
# harpoon.enable = true;
lazygit.enable = true;
mergetool.enable = true;
trouble.enable = true;

View File

@@ -69,7 +69,7 @@ in
plugins = {
lsp = {
enable = true;
inlayHints = true;
inlayHints = false;
};
telescope = {
enable = true;

View File

@@ -31,10 +31,12 @@ in
settings = {
options = {
globalstatus = true;
section_separators = {
left = "";
right = "";
};
/*
section_separators = {
left = "";
right = "";
};
*/
component_separators = {
left = "";
right = "";
@@ -44,10 +46,12 @@ in
lualine_a = [
{
__unkeyed-1 = "mode";
separator = {
right = "";
left = "";
};
/*
separator = {
right = "";
left = "";
};
*/
icon = "";
}
];
@@ -55,10 +59,12 @@ in
lualine_z = [
{
__unkeyed-1 = "location";
separator = {
right = "";
left = "";
};
/*
separator = {
right = "";
left = "";
};
*/
}
];
};

View File

@@ -11,6 +11,15 @@ in
{
options.theme.md3-evo = {
enable = lib.mkEnableOption "the MD3-EVO theme";
auto-dark = {
enable = lib.mkEnableOption "Automatically switch between light and dark mode";
lon = lib.mkOption {
type = lib.types.float;
};
lat = lib.mkOption {
type = lib.types.float;
};
};
flavour = lib.mkOption {
type = lib.types.enum [
"content"
@@ -177,9 +186,11 @@ in
pkgs.matugen
pkgs.swww
pkgs.zenity
pkgs.sunwait
];
text = ''
WALLPAPER=${config.xdg.configHome}/matugen/wallpaper
STATE=${config.xdg.stateHome}/md3-evo
SCHEME=$(dconf read /org/gnome/desktop/interface/color-scheme)
if [ "$SCHEME" = "'prefer-light'" ]; then
@@ -188,8 +199,15 @@ in
MODE="dark"
fi
if [ ! -d "$STATE" ]; then
mkdir -p "$STATE"
fi
if [ -f "$STATE/mode" ]; then
MODE=$(cat "$STATE/mode")
fi
if [ $# -eq 0 ]; then
echo -e "\033[1mUsage:\033[0m mode|light|dark|toggle|wallpaper"
echo -e "\033[1mUsage:\033[0m mode|light|dark|auto|toggle|wallpaper"
exit 1
elif [ "$1" = "mode" ]; then
echo -e "$MODE"
@@ -207,8 +225,10 @@ in
else
MODE="light"
fi
elif [ "$1" = "light" ] || [ "$1" = "dark" ]; then
echo "$MODE" > "$STATE/mode"
elif [ "$1" = "light" ] || [ "$1" = "dark" ] || [ "$1" == "auto" ]; then
MODE="$1"
echo "$MODE" > "$STATE/mode"
elif [ "$1" = "init" ]; then
echo -e "\033[1mSetting up matugen\033[0m"
else
@@ -221,6 +241,35 @@ in
exit 1
fi
THEME_SERVICE_PATH="${config.xdg.configHome}/systemd/user/theme-init.timer"
if [ "$MODE" = "auto" ]; then
TIME=$(sunwait poll ${builtins.toString cfg.auto-dark.lat}N ${builtins.toString cfg.auto-dark.lon}E || :)
if [ "$TIME" = "DAY" ]; then
MODE="light"
NEXT=6
else
MODE="dark"
NEXT=4
fi
NEXT=$(sunwait report ${builtins.toString cfg.auto-dark.lat}N ${builtins.toString cfg.auto-dark.lon}E | awk "/Daylight:/ {print \$$NEXT}")
cat <<EOF | tee "$THEME_SERVICE_PATH" > /dev/null
[Unit]
Description=Next theme change timer
[Timer]
OnCalendar=*-*-* $(date -d "$NEXT today + 5 minutes" +'%H:%M'):00
AccuracySec=1min
[Install]
WantedBy=timers.target
EOF
else
rm -f "$THEME_SERVICE_PATH"
fi
systemctl --user daemon-reload &> /dev/null || :
systemctl --user restart theme-init.timer &> /dev/null || :
if [ "$MODE" = "light" ]; then
GTK_THEME="adw-gtk3"
else
@@ -237,6 +286,10 @@ in
hyprctl reload
fi
if which swaync-client; then
swaync-client --reload-css
fi
for i in $(pgrep -u "$USER" -x nvim); do
kill -USR1 "$i"
done
@@ -247,6 +300,7 @@ in
lib.mkIf cfg.enable {
home.packages = [
pkgs.adw-gtk3
pkgs.swww
theme-script
];
@@ -263,19 +317,17 @@ in
qt.platformTheme.name = "qtct";
systemd.user.services = {
/*
swww-daemon = {
Unit = {
Description = "Swww Daemon";
After = [ "graphical-session.target" ];
};
Install.WantedBy = [ "graphical-session.target" ];
Service = {
ExecStart = "${pkgs.swww}/bin/swww-daemon";
Restart = "on-failure";
};
swww-daemon = {
Unit = {
Description = "Swww Daemon";
After = [ "graphical-session.target" ];
};
*/
Install.WantedBy = [ "graphical-session.target" ];
Service = {
ExecStart = "${pkgs.swww}/bin/swww-daemon";
Restart = "always";
};
};
theme-init = {
Unit = {
Description = "MD3 Evo Theme Init";
@@ -346,7 +398,7 @@ in
reload_apps = true;
reload_apps_list = {
kitty = config.programs.kitty.enable;
waybar = false;
waybar = config.programs.waybar.enable;
dunst = config.services.dunst.enable;
};
@@ -433,6 +485,14 @@ in
input_path = ./discord.css;
output_path = "${config.xdg.configHome}/vesktop/themes/matugen.theme.css";
};
waybar = {
input_path = ./waybar.css;
output_path = "${config.xdg.configHome}/waybar/style.css";
};
swaync = {
input_path = ./swaync.css;
output_path = "${config.xdg.configHome}/swaync/style.css";
};
};
};
};

View File

@@ -4,7 +4,7 @@ if exists("syntax_on")
endif
let g:colors_name="md3-evo"
let g:neovide_transparency = 1.0
let g:neovide_opacity = 1.0
let g:neovide_floating_corner_radius = 0.5
let g:neovide_normal_opacity = {{custom.transparency}}
let g:neovide_padding_top = {{custom.padding}}

View File

@@ -0,0 +1,375 @@
syntax error
* {
font-size: 14px;
font-family: "Noto Sans";
transition: 100ms;
box-shadow: unset;
}
.control-center .notification-row {
background-color: unset;
}
.control-center .notification-row .notification-background .notification,
.control-center
.notification-row
.notification-background
.notification
.notification-content,
.floating-notifications
.notification-row
.notification-background
.notification,
.floating-notifications.background
.notification-background
.notification
.notification-content {
margin-bottom: unset;
}
.control-center .notification-row .notification-background .notification {
margin-top: 0.15rem;
}
.control-center .notification-row .notification-background .notification box,
.control-center .notification-row .notification-background .notification widget,
.control-center
.notification-row
.notification-background
.notification
.notification-content,
.floating-notifications
.notification-row
.notification-background
.notification
box,
.floating-notifications
.notification-row
.notification-background
.notification
widget,
.floating-notifications.background
.notification-background
.notification
.notification-content {
border: unset;
border-radius: 1.159rem;
-gtk-outline-radius: 1.159rem;
}
.floating-notifications.background
.notification-background
.notification
.notification-content,
.control-center .notification-background .notification .notification-content {
background-color: {{colors.background.default.hex}};
padding: 0.818rem;
padding-right: unset;
margin-right: unset;
}
.control-center
.notification-row
.notification-background
.notification.low
.notification-content
label,
.control-center
.notification-row
.notification-background
.notification.normal
.notification-content
label,
.floating-notifications.background
.notification-background
.notification.low
.notification-content
label,
.floating-notifications.background
.notification-background
.notification.normal
.notification-content
label {
color: {{colors.outline.default.hex}};
}
.control-center
.notification-row
.notification-background
.notification..notification-content
image,
.control-center
.notification-row
.notification-background
.notification.normal
.notification-content
image,
.floating-notifications.background
.notification-background
.notification.low
.notification-content
image,
.floating-notifications.background
.notification-background
.notification.normal
.notification-content
image {
background-color: {{colors.surface_container_high.default.hex}};
color: {{colors.on_surface.default.hex}};
}
.control-center
.notification-row
.notification-background
.notification.critical
.notification-content,
.floating-notifications.background
.notification-background
.notification.critical
.notification-content {
background-color: {{colors.surface_container_high.default.hex}};
color: {{colors.on_surface.default.hex}};
}
.control-center
.notification-row
.notification-background
.notification
.notification-content
.summary,
.floating-notifications.background
.notification-background
.notification
.notification-content
.summary {
font-family: "Noto Sans", sans-serif;
font-size: 0.9909rem;
font-weight: 500;
}
.control-center
.notification-row
.notification-background
.notification
.notification-content
.time,
.floating-notifications.background
.notification-background
.notification
.notification-content
.time {
font-family: "Noto Sans", sans-serif;
font-size: 0.8291rem;
font-weight: 500;
margin-right: 1rem;
padding-right: unset;
}
.control-center
.notification-row
.notification-background
.notification
.notification-content
.body,
.floating-notifications.background
.notification-background
.notification
.notification-content
.body {
font-family: "Noto Sans", sans-serif;
font-size: 0.8891rem;
font-weight: 400;
margin-top: 0.31rem;
padding-right: unset;
margin-right: unset;
}
.control-center .notification-row .close-button,
.floating-notifications.background .close-button {
background-color: unset;
border-radius: 100%;
border: none;
box-shadow: none;
margin-right: 13px;
margin-top: 6px;
margin-bottom: unset;
padding-bottom: unset;
min-height: 20px;
min-width: 20px;
text-shadow: none;
}
.control-center .notification-row .close-button:hover,
.floating-notifications.background .close-button:hover {
background-color: rgba({{colors.background.default.red}}, {{colors.background.default.green}}, {{colors.background.default.blue}}, 0.15);
}
.control-center {
border-radius: 1.705rem;
-gtk-outline-radius: 1.705rem;
border-top: 1px solid rgba(164, 162, 167, 0.19);
border-left: 1px solid rgba(164, 162, 167, 0.19);
border-right: 1px solid rgba(128, 127, 132, 0.145);
border-bottom: 1px solid rgba(128, 127, 132, 0.145);
box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.45);
margin: 7px;
background-color: {{colors.background.default.hex}};
padding: 1.023rem;
}
.control-center trough {
border-radius: 9999px;
-gtk-outline-radius: 9999px;
min-width: 0.545rem;
background-color: transparent;
}
.control-center slider {
border-radius: 9999px;
-gtk-outline-radius: 9999px;
min-width: 0.273rem;
min-height: 2.045rem;
background-color: rgba(199, 197, 208, 0.31);
}
.control-center slider:hover {
background-color: rgba(199, 197, 208, 0.448);
}
.control-center slider:active {
background-color: #77767e;
}
/* title widget */
.widget-title {
padding: 0.341rem;
margin: unset;
}
.widget-title label {
font-family: "Noto Sans", sans-serif;
font-size: 1.364rem;
color: {{colors.on_background.default.hex}};
margin-left: 0.941rem;
}
.widget-title button {
border: unset;
background-color: unset;
border-radius: 1.159rem;
-gtk-outline-radius: 1.159rem;
padding: 0.141rem 0.141rem;
margin-right: 0.841rem;
}
.widget-title button label {
font-family: "Noto Sans", sans-serif;
font-size: 1.0409rem;
color: {{colors.on_background.default.hex}};
margin-right: 0.841rem;
}
.widget-title button:hover {
background-color: rgba(128, 128, 128, 0.3);
}
.widget-title button:active {
background-color: rgba(128, 128, 128, 0.7);
}
/* Buttons widget */
.widget-buttons-grid {
border-radius: 1.159rem;
-gtk-outline-radius: 1.159rem;
padding: 0.341rem;
background-color: rgba(28, 28, 34, 0.35);
padding: unset;
}
.widget-buttons-grid > flowbox {
padding: unset;
}
.widget-buttons-grid > flowbox > flowboxchild > button:first-child {
margin-left: unset;
}
.widget-buttons-grid > flowbox > flowboxchild > button {
border: none;
background-color: unset;
border-radius: 9999px;
min-width: 5.522rem;
min-height: 2.927rem;
padding: unset;
margin: unset;
}
.widget-buttons-grid > flowbox > flowboxchild > button label {
font-family: "Materials Symbol Rounded";
font-size: 1.3027rem;
color: #e4e1e6;
}
.widget-buttons-grid > flowbox > flowboxchild > button:hover {
background-color: rgba(128, 128, 128, 0.3);
}
.widget-buttons-grid > flowbox > flowboxchild > button:checked {
/* OnePlus McClaren edition Orange accent */
background-color: #ff9f34;
}
.widget-buttons-grid > flowbox > flowboxchild > button:checked label {
color: #14141b;
}
/* Volume widget */
.widget-volume {
background-color: rgba(28, 28, 34, 0.35);
padding: 8px;
margin: 8px;
-gtk-outline-radius: 1.159rem;
-gtk-outline-radius: 1.159rem;
}
.widget-volume trough {
/* OnePlus McClaren edition Orange accent */
border: unset;
background-color: rgba(128, 128, 128, 0.4);
}
.widget-volume trough slider {
/* OnePlus McClaren edition Orange accent */
color: unset;
background-color: #ff9f34;
border-radius: 100%;
min-height: 1.25rem;
}
/* Mpris widget */
.widget-mpris {
background-color: rgba(28, 28, 34, 0.35);
padding: 8px;
margin: 8px;
border-radius: 1.159rem;
-gtk-outline-radius: 1.159rem;
}
.widget-mpris-player {
padding: 8px;
margin: 8px;
}
.widget-mpris-title {
font-weight: bold;
font-size: 1.25rem;
}
.widget-mpris-subtitle {
font-size: 1.1rem;
}

View File

@@ -0,0 +1,70 @@
window#waybar {
background: none;
border-bottom: none;
}
window#waybar > box.horizontal {
margin: 12px 24px 0;
}
.module {
color: white;
background: none;
margin: 0 8px;
}
#clock {
font-weight: bold;
font-size: 16px;
}
#privacy-item {
padding: 0 16px;
border-radius: 16px;
}
#pulseaudio-slider {
margin: 0 6px;
padding: 0;
}
#pulseaudio-slider slider {
background: none;
min-height: 12px;
min-width: 12px;
border-radius: 100%;
margin: 0;
opacity: 0;
background-image: none;
border: none;
box-shadow: none;
}
#pulseaudio-slider trough {
min-height: 12px;
min-width: 80px;
border-radius: 6px;
background-color: {{colors.on_primary.default.hex}};
}
#pulseaudio-slider highlight {
min-width: 12px;
border-radius: 6px;
background-color: {{colors.primary.default.hex}};
}
#privacy-item.audio-in {
background: {{colors.primary.default.hex}};
color: {{colors.on_primary.default.hex}};
}
#privacy-item.audio-out {
background: {{colors.secondary.default.hex}};
color: {{colors.on_secondary.default.hex}};
}
#privacy-item.screenshare {
background: {{colors.tertiary.default.hex}};
color: {{colors.on_tertiary.default.hex}};
}

View File

@@ -34,7 +34,9 @@
./shell/flameshot.nix
./shell/gnome-keyring.nix
./shell/hyprpicker.nix
./shell/kde-connect.nix
./shell/kitty.nix
./shell/swaync.nix
./shell/walker.nix
./shell/waybar.nix

View File

@@ -49,12 +49,16 @@ in
DXVK_HDR = "1";
};
wayland.windowManager.hyprland.settings = {
general.layout = "master";
general = {
layout = "master";
allow_tearing = true;
};
master = {
orientation = "center";
slave_count_for_center_master = 0;
mfact = 0.4;
};
render.direct_scanout = 1;
monitor = [
"DP-3,3840x2160@144,0x0,1,bitdepth,10"
"DP-3,addreserved,340,0,0,0"
@@ -63,7 +67,7 @@ in
misc.vrr = 2; # VA suffers from VRR flicker
cursor = {
min_refresh_rate = 48;
no_break_fs_vrr = true;
no_break_fs_vrr = 1;
};
experimental = {
xx_color_management_v4 = true;

View File

@@ -0,0 +1,28 @@
{
config,
lib,
username,
...
}:
let
cfg = config.shell.components.kde-connect;
in
{
options.shell.components.kde-connect = {
enable = lib.mkEnableOption (lib.mdDoc "Enable a pre-configured kde connect setup");
};
config = lib.mkIf cfg.enable {
home-manager.users.${username}.services.kdeconnect.enable = true;
networking.firewall = rec {
allowedTCPPortRanges = [
{
from = 1714;
to = 1764;
}
];
allowedUDPPortRanges = allowedTCPPortRanges;
};
};
}

View File

@@ -0,0 +1,65 @@
{
config,
lib,
username,
...
}:
let
cfg = config.shell.components.swaync;
in
{
options.shell.components.swaync = {
enable = lib.mkEnableOption (lib.mdDoc "Enable a pre-configured notification center");
};
config = lib.mkIf cfg.enable {
home-manager.users.${username} = {
services.swaync = {
enable = true;
settings = {
positionX = "center";
positionY = "top";
fit-to-screen = false;
control-center-width = 600;
control-center-height = 800;
control-center-margin-top = 2;
control-center-margin-bottom = 2;
control-center-margin-right = 1;
control-center-margin-left = 0;
notification-window-width = 400;
notification-icon-size = 48;
notification-body-image-height = 160;
notification-body-image-width = 200;
image-visibility = "when-available";
};
};
programs.waybar.settings.mainBar = {
modules-center = lib.mkAfter [
"custom/notification"
];
"custom/notification" = {
tooltip = false;
format = "{icon}";
format-icons = {
notification = "󰂚";
none = "󰂜";
dnd-notification = "󰂠";
dnd-none = "󰪓";
inhibited-notification = "󰂛";
inhibited-none = "󰪑";
dnd-inhibited-notification = "󰂛";
dnd-inhibited-none = "󰪑";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "swaync-client -t -sw";
on-click-right = "swaync-client -d -sw";
escape = true;
};
};
};
};
}

View File

@@ -34,10 +34,24 @@ in
"privacy"
"gamemode"
"tray"
"pulseaudio"
"custom/brightness"
"custom/theme"
];
"pulseaudio" = {
format = "{icon} {volume}%";
format-icons = {
"alsa_output.usb-Turtle_Beach_Turtle_Beach_Stealth_700_G2_MAX-01.iec958-stereo" = "󰋋";
"alsa_output.pci-0000_0a_00.4.analog-stereo" = "󰓃";
"alsa_output.pci-0000_08_00.1.hdmi-stereo-extra4" = "󰽟";
"alsa_output.usb-Blue_Microphones_Yeti_Stereo_Microphone_797_2018_11_12_79383-00.analog-stereo" =
"󰍬";
"default" = "󰕾";
};
on-click = "pavucontrol --tab=3";
};
"hyprland/workspaces" = {
format = "{windows}";
window-rewrite = {
@@ -58,6 +72,8 @@ in
exec = pkgs.writeShellScript "waybar-theme" ''
if [ $(theme mode) = "dark" ]; then
echo '{"text": "", "tooltip": "Switch to light theme"}'
elif [ $(theme mode) = "auto" ]; then
echo '{"text": "󰖛", "tooltip": "Switch to dark theme"}'
else
echo '{"text": "", "tooltip": "Switch to dark theme"}'
fi
@@ -65,6 +81,8 @@ in
exec-if = "sleep 1";
interval = "once";
on-click = "theme toggle";
on-click-right = "theme auto";
on-click-middle = "theme wallpaper";
};
};
};