Quickshell instead of waybar, swaync, hyprlock, etc...

Used dots for quickshell, that already existed and added virtual
keyboard to their lockscreen.

Fixed issue with emacs not starting

Deleted waybar config

Disabled blueman by default

Added xournalpp
This commit is contained in:
Aleksandr Lebedev 2025-09-01 23:38:21 +02:00
parent e39737f6a9
commit d260022cc8
16 changed files with 441 additions and 441 deletions

View file

@ -18,6 +18,7 @@ in
firstNixOSInstall = 1729112485;
};
nheko.enable = osConfig.custom.presets.wayland.enable;
xournalpp.enable = osConfig.custom.presets.wayland.enable;
librewolf.enable = osConfig.custom.presets.wayland.enable;
prismlauncher.enable = osConfig.custom.presets.gaming.enable;
bottles.enable = osConfig.custom.presets.wayland.enable;

View file

@ -18,7 +18,7 @@ in {
Description = "Launches (and relaunches) emacs";
};
Install = {
WantedBy = ["default.target"];
WantedBy = ["graphical-session.target"];
};
Service = {
ExecStart = "${pkgs.writeShellScript "run-emacs" ''

View file

@ -0,0 +1,60 @@
{
osConfig,
config,
pkgs,
lib,
inputs,
namespace,
...
}:
with lib.custom; let
username = config.snowfallorg.user.name;
home = config.snowfallorg.user.home.directory;
impermanence = config.${namespace}.impermanence;
in
lib.mkIf osConfig.custom.windowManagers.niri.enable {
home.packages = with pkgs; [
inputs.quickshell.packages.${pkgs.system}.quickshell
material-symbols
inter
fira-code
cava
wl-clipboard
cliphist
ddcutil
libsForQt5.qt5ct
kdePackages.qt6ct
matugen
dgop
glib
khal # calendar
gammastep # night mode
kdePackages.qtvirtualkeyboard
];
xdg.configFile."quickshell".source = "${
inputs.desktopShell.packages.${pkgs.system}.dankMaterialShell
}/etc/xdg/quickshell";
home.file.".config/DankMaterialShell/settings.json".source = ./settings.json;
home.persistence = lib.mkIf impermanence.enable {
"${impermanence.persistentStorage}" = {
files = [
".local/state/DankMaterialShell/session.json"
".local/share/color-schemes/DankMatugen.colors"
];
directories = [
".config/qt5ct"
".config/qt6ct"
".config/gtk-3.0"
".config/gtk-4.0"
];
};
};
programs.niri = {
settings = {
spawn-at-startup = [
{command = ["qs" "-c" "DankMaterialShell"];}
];
};
};
}

View file

@ -1,97 +0,0 @@
{
pkgs,
lib,
osConfig,
...
}: let
enable = osConfig.custom.windowManagers.niri.enable;
profile-image = ./nixos-warbler.png;
battery = osConfig.custom.hardware.battery;
battery-level = battery.scripts.labelPercent;
in {
programs.hyprlock = {
inherit enable;
settings = {
general = {
#enable_fingerprint = true;
disable_loading_bar = true;
hide_cursor = true;
no_fade_in = false;
grace = 10;
};
background = {
path = "${./wallpaper.jpg}";
blur_passes = 1;
blur_size = 7;
noise = 0.0117;
contrast = 0.8916;
brightness = 0.8172;
vibrancy = 0.1696;
vibrancy_darkness = 0.0;
};
image = {
path = "${profile-image}";
size = 150;
border_size = 4;
#border_color = "rgb(0C96F9)";
rounding = -1; # Negative means circle
position = "0, 220";
halign = "center";
valign = "center";
};
input-field = {
size = "600, 100";
outline_thickness = 3;
dots_size = 0.33;
dots_spacing = 0.15;
dots_center = true;
dots_rounding = -1;
dots_fade_time = 200;
placeholder_text = "<i>Input Password...</i>";
hide_input = false;
fade_on_empty = false;
fail_text = "<i>$FAIL <b>($ATTEMPTS)</b></i>";
fail_timeout = 2000;
fail_transition = 300;
position = "0, -20";
halign = "center";
valign = "center";
};
label =
[
{
text = "$USER";
font_family = "Fira Code";
font_size = 56;
position = "0, 100";
halign = "center";
valign = "center";
}
{
text = "$TIME";
font_family = "Roboto";
font_size = 72;
position = "-40, -40";
halign = "right";
valign = "top";
}
{
text = "$LAYOUT";
font_family = "JetBrains Mono";
font_size = 28;
position = "-20, 20";
halign = "right";
valign = "bottom";
}
]
++ lib.optional (battery.enable) {
text = ''cmd[update:10000] ${battery-level}'';
font_family = "JetBrains Mono";
font_size = 28;
position = "20, 20";
halign = "left";
valign = "bottom";
};
};
};
}

View file

@ -6,6 +6,7 @@
config,
pkgs,
lib,
inputs,
...
}:
with lib.custom; let
@ -16,25 +17,11 @@ in
custom = {
programs.nautilus = enabled;
};
programs.fuzzel = {
enable = true;
settings.main.terminal = "kitty";
};
services.swaync = {
enable = true;
};
home.packages = with pkgs; [
playerctl
papers
nwg-drawer
wlogout
brightnessctl
fuzzel
waybar
swaybg
libnotify
hyprlock
networkmanagerapplet
custom.wvkbd-kylekrein
custom.lisgd-kylekrein
];
@ -47,11 +34,6 @@ in
"--hidden"
];
}
{
command = [
"${lib.getExe pkgs.networkmanagerapplet}"
];
}
{
command = [
"dbus-update-activation-environment"
@ -66,15 +48,6 @@ in
"hide"
];
}
{
command = [
"${lib.getExe pkgs.swaybg}"
"-m"
"fill"
"-i"
"${./wallpaper.jpg}"
];
}
];
layout = {
preset-column-widths = [
@ -91,7 +64,7 @@ in
screenshot-annotate = sh ''${lib.getExe pkgs.grim} -g "$(${lib.getExe pkgs.slurp} -w 0)" -t ppm - | ${lib.getExe pkgs.satty} --early-exit --copy-command 'wl-copy' --filename '-' --initial-tool brush'';
in {
"Mod+E".action = sh "emacsclient -c";
"Mod+Shift+C".action = sh "dolphin";
"Mod+Shift+C".action = sh "nautilus";
"Mod+C".action = emacs ''(dirvish \"${home}\")'';
"Mod+T".action = spawn "kitty";
"Mod+D".action = spawn "fuzzel";
@ -136,9 +109,101 @@ in
"Mod+Shift+Ctrl+Left".action = move-column-to-monitor-left;
"Mod+Shift+Ctrl+Right".action = move-column-to-monitor-right;
"XF86AudioRaiseVolume".action = sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+";
"XF86AudioLowerVolume".action = sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-";
"XF86AudioMute".action = sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
"Mod+Space".action.spawn = [
"qs"
"-c"
"DankMaterialShell"
"ipc"
"call"
"spotlight"
"toggle"
];
"Mod+V".action.spawn = [
"qs"
"-c"
"DankMaterialShell"
"ipc"
"call"
"clipboard"
"toggle"
];
"Mod+M".action.spawn = [
"qs"
"-c"
"DankMaterialShell"
"ipc"
"call"
"processlist"
"toggle"
];
"Mod+Comma".action.spawn = [
"qs"
"-c"
"DankMaterialShell"
"ipc"
"call"
"settings"
"toggle"
];
"Super+L".action.spawn = [
"qs"
"-c"
"DankMaterialShell"
"ipc"
"call"
"lock"
"lock"
];
"XF86AudioRaiseVolume" = {
allow-when-locked = true;
action.spawn = [
"qs"
"-c"
"DankMaterialShell"
"ipc"
"call"
"audio"
"increment"
"3"
];
};
"XF86AudioLowerVolume" = {
allow-when-locked = true;
action.spawn = [
"qs"
"-c"
"DankMaterialShell"
"ipc"
"call"
"audio"
"decrement"
"3"
];
};
"XF86AudioMute" = {
allow-when-locked = true;
action.spawn = [
"qs"
"-c"
"DankMaterialShell"
"ipc"
"call"
"audio"
"mute"
];
};
"XF86AudioMicMute" = {
allow-when-locked = true;
action.spawn = [
"qs"
"-c"
"DankMaterialShell"
"ipc"
"call"
"audio"
"micmute"
];
};
"XF86MonBrightnessUp".action = sh "brightnessctl set 10%+";
"XF86MonBrightnessDown".action = sh "brightnessctl set 10%-";
@ -257,11 +322,9 @@ in
services.hypridle = let
niri = lib.getExe config.programs.niri.package;
loginctl = "${pkgs.systemd}/bin/loginctl";
pidof = "${pkgs.procps}/bin/pidof";
locking-script = "${pidof} hyprlock || ${lib.getExe pkgs.hyprlock}";
qs = "${inputs.quickshell.packages.${pkgs.system}.quickshell}/bin/qs";
locking-script = "${qs} -c DankMaterialShell ipc call lock lock";
systemctl = "${pkgs.systemd}/bin/systemctl";
#locking-script = "${pkgs.swaylock}/bin/swaylock --daemonize";
#unlocking-script = "pkill -SIGUSR1 swaylock";
suspendScript = cmd:
pkgs.writeShellScript "suspend-script" ''
# check if any player has status "Playing"
@ -274,8 +337,8 @@ in
in {
enable = true;
settings.general = {
before_sleep_cmd = "${pidof} hyprlock || ${loginctl} lock-session;#${niri} msg action power-off-monitors";
after_sleep_cmd = "#${niri} msg action power-on-monitors";
before_sleep_cmd = "${loginctl} lock-session";
#after_sleep_cmd = "#${niri} msg action power-on-monitors";
lock_cmd = "${locking-script}";
};
settings.listener = let

View file

@ -0,0 +1,117 @@
{
"currentThemeName": "dynamic",
"customThemeFile": "",
"topBarTransparency": 0.75,
"topBarWidgetTransparency": 0.85,
"popupTransparency": 0.92,
"dockTransparency": 1,
"use24HourClock": true,
"useFahrenheit": false,
"nightModeEnabled": false,
"weatherLocation": "Paderborn, Nordrhein-Westfalen",
"weatherCoordinates": "51.7177044,8.7526530",
"useAutoLocation": false,
"weatherEnabled": true,
"showLauncherButton": true,
"showWorkspaceSwitcher": true,
"showFocusedWindow": true,
"showWeather": true,
"showMusic": true,
"showClipboard": true,
"showCpuUsage": true,
"showMemUsage": true,
"showCpuTemp": true,
"showGpuTemp": true,
"selectedGpuIndex": 0,
"enabledGpuPciIds": [],
"showSystemTray": true,
"showClock": true,
"showNotificationButton": true,
"showBattery": true,
"showControlCenterButton": true,
"controlCenterShowNetworkIcon": true,
"controlCenterShowBluetoothIcon": true,
"controlCenterShowAudioIcon": true,
"showWorkspaceIndex": false,
"showWorkspacePadding": false,
"workspaceNameIcons": {},
"clockCompactMode": false,
"focusedWindowCompactMode": false,
"runningAppsCompactMode": true,
"runningAppsCurrentWorkspace": false,
"clockDateFormat": "ddd d",
"lockDateFormat": "dddd, MMMM d",
"mediaSize": 1,
"topBarLeftWidgets": [
"launcherButton",
"workspaceSwitcher"
],
"topBarCenterWidgets": [
"music",
"clock",
"weather"
],
"topBarRightWidgets": [
{
"id": "systemTray",
"enabled": true
},
{
"id": "clipboard",
"enabled": true
},
{
"id": "idleInhibitor",
"enabled": true
},
{
"id": "notificationButton",
"enabled": true
},
{
"id": "privacyIndicator",
"enabled": true
},
{
"id": "keyboard_layout_name",
"enabled": true
},
{
"id": "battery",
"enabled": true
},
{
"id": "controlCenterButton",
"enabled": true
}
],
"appLauncherViewMode": "grid",
"spotlightModalViewMode": "list",
"networkPreference": "auto",
"iconTheme": "System Default",
"useOSLogo": false,
"osLogoColorOverride": "",
"osLogoBrightness": 0.5,
"osLogoContrast": 1,
"wallpaperDynamicTheming": true,
"fontFamily": "Inter Variable",
"monoFontFamily": "Fira Code",
"fontWeight": 400,
"gtkThemingEnabled": true,
"qtThemingEnabled": true,
"showDock": false,
"dockAutoHide": false,
"cornerRadius": 12,
"notificationOverlayEnabled": false,
"topBarAutoHide": false,
"topBarVisible": true,
"topBarSpacing": 4,
"topBarBottomGap": 0,
"topBarInnerPadding": 8,
"topBarSquareCorners": false,
"topBarNoBackground": false,
"notificationTimeoutLow": 5000,
"notificationTimeoutNormal": 5000,
"notificationTimeoutCritical": 0,
"screenPreferences": {}
}

View file

Before

Width:  |  Height:  |  Size: 4.2 MiB

After

Width:  |  Height:  |  Size: 4.2 MiB

Before After
Before After

View file

@ -1,163 +0,0 @@
{
pkgs,
lib,
osConfig,
...
}: let
battery = osConfig.custom.hardware.battery;
enable = osConfig.custom.windowManagers.niri.enable;
in {
programs.waybar = {
inherit enable;
systemd.enable = true;
style = ''
${builtins.readFile ./waybarstyle.css}'';
settings = [
{
height = 36;
layer = "top";
position = "top";
tray = {spacing = 3;};
modules-center = [
"clock"
];
modules-left = [
"custom/drawer"
"wlr/taskbar"
"niri/workspaces"
"niri/window"
];
modules-right =
[
"backlight"
"pulseaudio"
#"network"
#"cpu"
"memory"
#"temperature"
"niri/language"
]
++ lib.optional battery.enable "custom/battery"
++ [
"tray"
"custom/notification"
"custom/power"
];
battery = lib.mkIf battery.enable {
format = " {time} {icon} ";
format-alt = " {capacity}% {icon} ";
format-charging = " {capacity}% ";
format-icons = ["" "" "" "" ""];
format-plugged = " {capacity}% ";
states = {
critical = 10;
warning = 20;
};
};
backlight = {
format = "{percent}% 󰛩";
on-scroll-up = "${pkgs.brightnessctl}/bin/brightnessctl s 5%+";
on-scroll-down = "${pkgs.brightnessctl}/bin/brightnessctl s 5%-";
};
"custom/battery" = {
exec = "${pkgs.writeShellScriptBin "battery-widget" ''
${battery.scripts.labelAdaptive}
${battery.scripts.labelPercent}
''}/bin/battery-widget";
interval = 20;
tooltip = true;
};
clock = {
format = "{:%a %d | %H:%M}";
format-alt = "{:%d.%m.%Y}";
tooltip-format = "{:%d.%m.%Y | %H:%M}";
};
cpu = {
format = "{usage}% ";
tooltip = false;
};
"custom/drawer" = {
format = "<span foreground='white'>󱄅</span>";
tooltip = false;
on-click = ''nwg-drawer -fm "dolphin" -closebtn "right" -nocats -term "kitty" -ovl -wm "niri" -s "${./drawerstyle.css}" '';
};
"niri/language" = {
format = "{}";
format-en = "EN";
format-ru = "RU";
format-de = "DE";
on-click = "niri msg action switch-layout next";
on-click-right = "niri msg action switch-layout prev";
};
"wlr/taskbar" = {
format = "{icon}";
icon-size = 18;
tooltip-format = "{title}";
on-click = "activate";
on-click-middle = "close";
};
memory = {
interval = 1;
format = " {used}/{total}Gb";
};
network = {
interval = 1;
format-alt = "{ifname}: {ipaddr}/{cidr}";
format-disconnected = "Disconnected ";
format-ethernet = "{ifname}: {ipaddr}/{cidr} up: {bandwidthUpBits} down: {bandwidthDownBits}";
format-linked = "{ifname} (No IP) ";
#format-wifi = "{signalStrength}% ";
format-wifi = "{signalStrength}% ";
tooltip-format = "{essid} ({signalStrength}%) ";
};
pulseaudio = {
format = "{icon} {volume}% {format_source}";
format-bluetooth = "{icon} {volume}% {format_source}";
format-bluetooth-muted = " {format_source}";
format-icons = {
car = "";
default = [" " " " " "];
handsfree = "";
headphones = "";
headset = "";
phone = "";
portable = "";
};
format-muted = " {format_source}";
format-source = " {volume}%";
format-source-muted = " ";
on-click = "${pkgs.pwvucontrol}/bin/pwvucontrol";
};
"hyprland/submap" = {format = ''<span style="italic">{}</span>'';};
temperature = {
critical-threshold = 80;
format = "{temperatureC}°C {icon}";
format-icons = ["" "" ""];
};
"custom/power" = {
format = "";
tooltip = false;
on-click = "wlogout";
};
"custom/notification" = {
tooltip = false;
format = "{icon}";
format-icons = {
notification = "<span foreground='red'></span>";
none = "";
dnd-notification = "<span foreground='red'></span>";
dnd-none = "";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "sleep 0.1 && swaync-client -t -sw";
on-click-right = "sleep 0.1 && swaync-client -d -sw";
escape = true;
};
}
];
};
}

View file

@ -1,104 +0,0 @@
* {
border: none;
font-family: Font Awesome, Roboto, Arial, sans-serif;
font-size: 16px;
color: #B9826A;
border-radius: 10px;
}
window {
font-weight: bold;
}
window#waybar {
background: transparent;
}
/*-----module groups----*/
.modules-right {
background-color: rgba(0,43,51,0.85);
margin: 2px 10px 0 0;
}
.modules-center {
background-color: rgba(0,43,51,0.85);
margin: 2px 0 0 0;
}
.modules-left {
margin: 2px 0 0 5px;
background-color: rgba(0,43,51,0.85);
}
/*-----modules indv----*/
#workspaces button {
padding: 1px 5px;
background-color: transparent;
}
#workspaces button:hover {
box-shadow: inherit;
background-color: rgba(0,153,153,1);
}
#workspaces button.focused {
background-color: rgba(0,119,179,0.6);
}
#clock,
#battery,
#cpu,
#memory,
#temperature,
#network,
#pulseaudio,
#custom-media,
#tray,
#mode,
#niri-language,
#language,
#custom-power,
#custom-menu,
#custom-battery,
#custom-notification,
#custom-drawer,
#backlight,
#workspaces,
#window,
#taskbar,
#idle_inhibitor {
margin: 0px 0px;
padding: 0px 5px;
border-right: 1px solid rgba(255,255,255,0.2);
border-radius: 0px;
}
#clock,
#custom-power,
#window {
border-right: none;
}
#custom-drawer {
font-size: 20px;
}
#custom-power,
#custom-drawer,
#custom-notification {
padding: 0px 0.5em 0px 0.3em;
}
#mode {
color: #cc3436;
font-weight: bold;
}
/*-----Indicators----*/
#idle_inhibitor.activated {
color: #2dcc36;
}
#pulseaudio.muted {
color: #cc3436;
}
#battery.charging {
color: #2dcc36;
}
#battery.warning:not(.charging) {
color: #e6e600;
}
#battery.critical:not(.charging) {
color: #cc3436;
}
#temperature.critical {
color: #cc3436;
}