feat(dms): dms
This commit is contained in:
@@ -21,9 +21,10 @@
|
||||
stylix.enable = true;
|
||||
qemu.enable = true;
|
||||
flatpak.enable = true;
|
||||
gdm.enable = true;
|
||||
# gdm.enable = true;
|
||||
openssh.enable = true;
|
||||
sydpkgs.overlay.enable = true;
|
||||
dank-material-shell.enable = true;
|
||||
|
||||
steam = {
|
||||
enable = true;
|
||||
|
||||
25
modules/home/dank-material-shell.nix
Normal file
25
modules/home/dank-material-shell.nix
Normal file
@@ -0,0 +1,25 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.sydnix.dank-material-shell;
|
||||
json = pkgs.formats.json {};
|
||||
in {
|
||||
options.sydnix.dank-material-shell = {
|
||||
enable = lib.mkEnableOption "DMS";
|
||||
settings = lib.mkOption {
|
||||
type = json.type;
|
||||
default = { };
|
||||
description = ''
|
||||
DankMaterialShell configuration settings as an attribute set,
|
||||
to be written to ~/.config/DankMaterialShell/settings.json.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
xdg.configFile = {
|
||||
"DankMaterialShell/settings.json".source =
|
||||
json.generate "settings.json" cfg.settings;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -17,24 +17,32 @@ in {
|
||||
xwayland-satellite.enable =
|
||||
lib.mkEnableOption "xwayland-satellite starting with Niri"
|
||||
// { default = true; };
|
||||
polkit.enable =
|
||||
lib.mkEnableOption "Niri/Gnome Polkit" // { default = true; };
|
||||
swaylock.enable =
|
||||
lib.mkEnableOption "Niri Swaylock" // { default = true; };
|
||||
portal.enable =
|
||||
lib.mkEnableOption "Niri Portal" // { default = true; };
|
||||
gammastep.enable =
|
||||
lib.mkEnableOption "Niri gammastep" // { default = true; };
|
||||
swaync.enable =
|
||||
lib.mkEnableOption "Niri Sway Notification Center" // { default = true; };
|
||||
binds = lib.mkOption {
|
||||
type = lib.types.anything;
|
||||
default = {};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
stylix.targets.swaylock.enable = true;
|
||||
|
||||
services.polkit-gnome.enable = true;
|
||||
|
||||
# File-picker.
|
||||
home.packages = [ pkgs.nautilus ];
|
||||
|
||||
# Enable the XDG portal, an interface for programs to request
|
||||
# permissions/resources. This is necessary to screen-cast on
|
||||
# Wayland/Pipewire.
|
||||
#
|
||||
# See https://github.com/YaLTeR/niri/wiki/Important-Software#portals.
|
||||
# Niri's NixOS module automatically brings in xdg-desktop-portal-gnome and
|
||||
# gnome-keyring.
|
||||
xdg.portal = {
|
||||
# See
|
||||
# https://github.com/YaLTeR/niri/wiki/Important-Software#portals.
|
||||
# Niri's NixOS module automatically brings in
|
||||
# xdg-desktop-portal-gnome and gnome-keyring.
|
||||
xdg.portal = lib.mkIf cfg.portal.enable {
|
||||
enable = true;
|
||||
xdgOpenUsePortal = true;
|
||||
|
||||
@@ -44,9 +52,10 @@ in {
|
||||
];
|
||||
|
||||
# Use xdg-desktop-portal-gtk by default, but fallback to
|
||||
# xdg-desktop-portal-gnome for screenshots and screen-casts, two important
|
||||
# features unsupported by the GTK implementation. See implementations and
|
||||
# their supported interfaces at
|
||||
# xdg-desktop-portal-gnome for screenshots and screen-casts,
|
||||
# two important features unsupported by the GTK
|
||||
# implementation. See implementations and their supported
|
||||
# interfaces at
|
||||
# https://wiki.archlinux.org/title/XDG_Desktop_Portal.
|
||||
config.niri = {
|
||||
default = [ "gtk" ];
|
||||
@@ -55,6 +64,13 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
stylix.targets.swaylock.enable = cfg.swaylock.enable;
|
||||
|
||||
services.polkit-gnome.enable = cfg.polkit.enable;
|
||||
|
||||
# File-picker.
|
||||
home.packages = [ pkgs.nautilus ];
|
||||
|
||||
systemd.user.services.xwayland-satellite =
|
||||
lib.mkIf cfg.xwayland-satellite.enable {
|
||||
Service.ExecStart =
|
||||
@@ -68,28 +84,38 @@ in {
|
||||
settings = {
|
||||
# Activates some Nixpkgs patches to help run Electron applications under
|
||||
# Wayland.
|
||||
environment."NIXOS_OZONE_WL" = "1";
|
||||
environment."DISPLAY" = ":0";
|
||||
environment = {
|
||||
NIXOS_OZONE_WL = "1";
|
||||
DISPLAY = ":0";
|
||||
XDG_CURRENT_DESKTOP = "niri";
|
||||
QT_QPA_PLATFORM = "wayland";
|
||||
ELECTRON_OZONE_PLATFORM_HINT = "auto";
|
||||
QT_QPA_PLATFORMTHEME = "gtk3";
|
||||
QT_QPA_PLATFORMTHEME_QT6 = "gtk3";
|
||||
};
|
||||
|
||||
spawn-at-startup =
|
||||
lib.optional cfg.swaync.enable
|
||||
{ command = [ "${pkgs.swaynotificationcenter}/bin/swaync" ]; }
|
||||
++ lib.optional cfg.gammastep.enable
|
||||
{ command = [ "${pkgs.gammastep}/bin/gammastep" "-o" "-O" "4000k"
|
||||
"-b" "0.9:0.9" "-l" "0:0"]; }
|
||||
++ lib.optional
|
||||
(! builtins.isNull cfg.wallpaper)
|
||||
{ command = [ "${pkgs.wbg}/bin/wbg" "${cfg.wallpaper}" ]; };
|
||||
|
||||
spawn-at-startup =
|
||||
[{ command = [ "${pkgs.swaynotificationcenter}/bin/swaync" ]; }
|
||||
{ command = [ "${pkgs.gammastep}/bin/gammastep" "-o" "-O" "4000k"
|
||||
"-b" "0.9:0.9" "-l" "0:0"]; }]
|
||||
++ lib.optional
|
||||
(! builtins.isNull cfg.wallpaper)
|
||||
{ command = [ "${pkgs.wbg}/bin/wbg" "${cfg.wallpaper}" ]; };
|
||||
input = {
|
||||
keyboard.xkb = {
|
||||
layout = "us";
|
||||
options = "ctrl:swapcaps,compose:menu,compose:ralt";
|
||||
layout = "us";
|
||||
options = "ctrl:swapcaps,compose:menu,compose:ralt";
|
||||
};
|
||||
mouse = {
|
||||
accel-speed = -0.5;
|
||||
accel-profile = "flat";
|
||||
accel-speed = -0.5;
|
||||
accel-profile = "flat";
|
||||
};
|
||||
touchpad = {
|
||||
# Disable while typing.
|
||||
dwt = true;
|
||||
# Disable while typing.
|
||||
dwt = true;
|
||||
};
|
||||
focus-follows-mouse.enable = true;
|
||||
};
|
||||
@@ -112,37 +138,37 @@ in {
|
||||
gaps = 8;
|
||||
center-focused-column = "never";
|
||||
preset-column-widths = [
|
||||
{ proportion = 1.0 / 3.0; }
|
||||
{ proportion = 1.0 / 2.0; }
|
||||
{ proportion = 2.0 / 3.0; }
|
||||
{ proportion = 1.0 / 3.0; }
|
||||
{ proportion = 1.0 / 2.0; }
|
||||
{ proportion = 2.0 / 3.0; }
|
||||
];
|
||||
default-column-width.proportion = 0.5;
|
||||
focus-ring = {
|
||||
enable = false;
|
||||
width = 2;
|
||||
enable = false;
|
||||
width = 2;
|
||||
};
|
||||
border = {
|
||||
enable = true;
|
||||
width = 2;
|
||||
# Override Niri's Stylix integration. Default uses Crystal Blue
|
||||
# (from the Kanagawa palette); we override it with Old White.
|
||||
active.color = config.lib.stylix.colors.withHashtag.base06;
|
||||
enable = true;
|
||||
width = 2;
|
||||
# Override Niri's Stylix integration. Default uses Crystal Blue
|
||||
# (from the Kanagawa palette); we override it with Old White.
|
||||
active.color = config.lib.stylix.colors.withHashtag.base06;
|
||||
};
|
||||
shadow = {
|
||||
enable = true;
|
||||
softness = 30;
|
||||
spread = 5;
|
||||
offset.x = 5;
|
||||
offset.y = 5;
|
||||
enable = true;
|
||||
softness = 30;
|
||||
spread = 5;
|
||||
offset.x = 5;
|
||||
offset.y = 5;
|
||||
};
|
||||
tab-indicator = {
|
||||
place-within-column = true;
|
||||
position = "top";
|
||||
# active.color = config.lib.stylix.colors.withHashtag.blue;
|
||||
inactive.color = config.lib.stylix.colors.withHashtag.base01;
|
||||
width = 8;
|
||||
corner-radius = 2.0;
|
||||
gaps-between-tabs = 10;
|
||||
place-within-column = true;
|
||||
position = "top";
|
||||
# active.color = config.lib.stylix.colors.withHashtag.blue;
|
||||
inactive.color = config.lib.stylix.colors.withHashtag.base01;
|
||||
width = 8;
|
||||
corner-radius = 2.0;
|
||||
gaps-between-tabs = 10;
|
||||
};
|
||||
};
|
||||
prefer-no-csd = true;
|
||||
@@ -153,89 +179,89 @@ in {
|
||||
};
|
||||
window-rules = [
|
||||
{ # Set red borders to indicate that a window is being captured.
|
||||
matches = [
|
||||
{ is-window-cast-target = true; }
|
||||
];
|
||||
focus-ring = {
|
||||
enable = true;
|
||||
width = 2;
|
||||
active.color = "#f38ba8";
|
||||
inactive.color = "#7d0d2d";
|
||||
};
|
||||
border = {
|
||||
width = 2;
|
||||
inactive.color = "#7d0d2d";
|
||||
active.color = "#7d0d2d";
|
||||
};
|
||||
shadow = {
|
||||
color = "#7d0d2d70";
|
||||
softness = 30;
|
||||
spread = 10;
|
||||
offset.x = 0;
|
||||
offset.y = 0;
|
||||
};
|
||||
tab-indicator = {
|
||||
active.color = "#f38ba8";
|
||||
inactive.color = "#7d0d2d";
|
||||
};
|
||||
matches = [
|
||||
{ is-window-cast-target = true; }
|
||||
];
|
||||
focus-ring = {
|
||||
enable = true;
|
||||
width = 2;
|
||||
active.color = "#f38ba8";
|
||||
inactive.color = "#7d0d2d";
|
||||
};
|
||||
border = {
|
||||
width = 2;
|
||||
inactive.color = "#7d0d2d";
|
||||
active.color = "#7d0d2d";
|
||||
};
|
||||
shadow = {
|
||||
color = "#7d0d2d70";
|
||||
softness = 30;
|
||||
spread = 10;
|
||||
offset.x = 0;
|
||||
offset.y = 0;
|
||||
};
|
||||
tab-indicator = {
|
||||
active.color = "#f38ba8";
|
||||
inactive.color = "#7d0d2d";
|
||||
};
|
||||
}
|
||||
{ # Block private DMs from screencast...
|
||||
matches = [
|
||||
{ title = "Element.*\\|"; }
|
||||
{ title = "Discord.*@"; }
|
||||
];
|
||||
excludes = [
|
||||
# ... except when explicitly targeting the window.
|
||||
{ is-window-cast-target = true; }
|
||||
];
|
||||
block-out-from = "screen-capture";
|
||||
matches = [
|
||||
{ title = "Element.*\\|"; }
|
||||
{ title = "Discord.*@"; }
|
||||
];
|
||||
excludes = [
|
||||
# ... except when explicitly targeting the window.
|
||||
{ is-window-cast-target = true; }
|
||||
];
|
||||
block-out-from = "screen-capture";
|
||||
}
|
||||
{
|
||||
# This regular expression is intentionally made as specific as
|
||||
# possible, since this is the default config, and we want no false
|
||||
# positives. You can get away with just app-id="wezterm" if you
|
||||
# want.
|
||||
matches = [
|
||||
{ app-id = "^org\\.wezfurlong\\.wezterm$"; }
|
||||
];
|
||||
default-column-width = {};
|
||||
# This regular expression is intentionally made as specific as
|
||||
# possible, since this is the default config, and we want no false
|
||||
# positives. You can get away with just app-id="wezterm" if you
|
||||
# want.
|
||||
matches = [
|
||||
{ app-id = "^org\\.wezfurlong\\.wezterm$"; }
|
||||
];
|
||||
default-column-width = {};
|
||||
}
|
||||
{
|
||||
# Floating windows.
|
||||
matches = [
|
||||
# Open the Firefox picture-in-picture player as floating by default.
|
||||
{ app-id = "firefox$"; title = "^Picture-in-Picture$"; }
|
||||
# Gimp pop-ups.
|
||||
{
|
||||
# Floating windows.
|
||||
matches = [
|
||||
# Open the Firefox picture-in-picture player as floating by default.
|
||||
{ app-id = "firefox$"; title = "^Picture-in-Picture$"; }
|
||||
# Gimp pop-ups.
|
||||
{
|
||||
app-id = "^Gimp$";
|
||||
title = "^(New Layer|Change Foreground Color|Save Image)$";
|
||||
}
|
||||
];
|
||||
open-floating = true;
|
||||
}
|
||||
];
|
||||
open-floating = true;
|
||||
}
|
||||
{ # Start with low width.
|
||||
matches = [
|
||||
{ app-id = "com\\.mitchellh\\.ghostty"; }
|
||||
];
|
||||
default-column-width.proportion = 1.0 / 3.0;
|
||||
matches = [
|
||||
{ app-id = "com\\.mitchellh\\.ghostty"; }
|
||||
];
|
||||
default-column-width.proportion = 1.0 / 3.0;
|
||||
}
|
||||
{
|
||||
matches = [
|
||||
{ app-id = "^emacs$"; }
|
||||
];
|
||||
default-column-width.fixed = 640;
|
||||
matches = [
|
||||
{ app-id = "^emacs$"; }
|
||||
];
|
||||
default-column-width.fixed = 640;
|
||||
}
|
||||
{
|
||||
# Enable rounded corners for all windows.
|
||||
geometry-corner-radius =
|
||||
let r = 8.0;
|
||||
in {
|
||||
# Enable rounded corners for all windows.
|
||||
geometry-corner-radius =
|
||||
let r = 8.0;
|
||||
in {
|
||||
bottom-left = r;
|
||||
top-left = r;
|
||||
bottom-right = r;
|
||||
top-right = r;
|
||||
};
|
||||
clip-to-geometry = true;
|
||||
};
|
||||
clip-to-geometry = true;
|
||||
}
|
||||
];
|
||||
binds = {
|
||||
@@ -273,11 +299,9 @@ in {
|
||||
"Print".action.screenshot-screen = [];
|
||||
"Mod+Print".action.screenshot-window = [];
|
||||
|
||||
"Mod+X".action.spawn = [
|
||||
"emacsclient-or-emacs"
|
||||
"-ce"
|
||||
"(eshell t)"
|
||||
];
|
||||
"Mod+X".action.spawn = ["ghostty"];
|
||||
"Mod+E".action.spawn = ["emacsclient" "-c"];
|
||||
"Mod+O".action.toggle-overview = [];
|
||||
|
||||
"Mod+Shift+F".action.toggle-window-floating = [];
|
||||
"Mod+F".action.switch-focus-between-floating-and-tiling = [];
|
||||
@@ -296,9 +320,9 @@ in {
|
||||
"Mod+Shift+L".action.move-column-right = [];
|
||||
|
||||
"XF86MonBrightnessDown".action.spawn =
|
||||
[(lib.getExe pkgs.brightnessctl) "s" "5%-"];
|
||||
[(lib.getExe pkgs.brightnessctl) "s" "5%-"];
|
||||
"XF86MonBrightnessUp".action.spawn =
|
||||
[(lib.getExe pkgs.brightnessctl) "s" "+5%"];
|
||||
[(lib.getExe pkgs.brightnessctl) "s" "+5%"];
|
||||
|
||||
"Mod+1".action.focus-workspace = [1];
|
||||
"Mod+2".action.focus-workspace = [2];
|
||||
@@ -323,16 +347,16 @@ in {
|
||||
"Mod+Ctrl+R".action.reset-window-height = [];
|
||||
|
||||
"XF86AudioRaiseVolume".action.spawn =
|
||||
["wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.05+"];
|
||||
["wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.05+"];
|
||||
"XF86AudioLowerVolume".action.spawn =
|
||||
["wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.05-"];
|
||||
};
|
||||
["wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.05-"];
|
||||
} // cfg.binds;
|
||||
|
||||
layer-rules = [
|
||||
# Don't move wallpaper with workspace.
|
||||
{
|
||||
matches = [{ namespace = "^wallpaper$"; }];
|
||||
place-within-backdrop = true;
|
||||
matches = [{ namespace = "^wallpaper$"; }];
|
||||
place-within-backdrop = true;
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
421
modules/home/users/msyds/dank-material-shell.nix
Normal file
421
modules/home/users/msyds/dank-material-shell.nix
Normal file
@@ -0,0 +1,421 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let cfg = config.sydnix.users.msyds.dank-material-shell;
|
||||
in {
|
||||
options.sydnix.users.msyds.dank-material-shell = {
|
||||
enable = lib.mkEnableOption "Dank Material Shell";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable
|
||||
(let
|
||||
theme = {
|
||||
dark = with config.lib.stylix.colors.withHashtag; {
|
||||
name = "Stylix generatated dark theme";
|
||||
primary = base0D;
|
||||
primaryText = base00;
|
||||
primaryContainer = base0C;
|
||||
secondary = base0E;
|
||||
surface = base01;
|
||||
surfaceText = base05;
|
||||
surfaceVariant = base02;
|
||||
surfaceVariantText = base04;
|
||||
surfaceTint = base0D;
|
||||
background = base00;
|
||||
backgroundText = base05;
|
||||
outline = base03;
|
||||
surfaceContainer = base01;
|
||||
surfaceContainerHigh = base02;
|
||||
surfaceContainerHighest = base03;
|
||||
error = base08;
|
||||
warning = base0A;
|
||||
info = base0C;
|
||||
} // {
|
||||
primary = base06;
|
||||
surfaceContainerHigh = "#2a2a37"; # Sunk Ink 2
|
||||
surfaceContainerHighest = base05;
|
||||
};
|
||||
light = with config.lib.stylix.colors.withHashtag; {
|
||||
name = "Stylix generatated light theme";
|
||||
primary = base0D;
|
||||
primaryText = base07;
|
||||
primaryContainer = base0C;
|
||||
secondary = base0E;
|
||||
surface = base06;
|
||||
surfaceText = base01;
|
||||
surfaceVariant = base07;
|
||||
surfaceVariantText = base02;
|
||||
surfaceTint = base0D;
|
||||
background = base07;
|
||||
backgroundText = base00;
|
||||
outline = base04;
|
||||
surfaceContainer = base06;
|
||||
surfaceContainerHigh = base05;
|
||||
surfaceContainerHighest = base04;
|
||||
error = base08;
|
||||
warning = base0A;
|
||||
info = base0C;
|
||||
};
|
||||
};
|
||||
in {
|
||||
programs.niri.settings = {
|
||||
# Open DMS windows as floating by default
|
||||
window-rules = [
|
||||
{
|
||||
matches = [{app-id = "#org.quickshell$";}];
|
||||
open-floating = true;
|
||||
}
|
||||
];
|
||||
# Blur wallpaper when overview is open.
|
||||
layer-rules = [
|
||||
{
|
||||
matches = [{ namespace = "dms:blurwallpaper"; }];
|
||||
place-within-backdrop = true;
|
||||
}
|
||||
];
|
||||
spawn-at-startup = [
|
||||
{
|
||||
command = [
|
||||
(lib.getExe' pkgs.wl-clipboard "wl-paste")
|
||||
"--watch" "cliphist" "store"
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
sydnix.users.crumb.niri = {
|
||||
polkit.enable = false;
|
||||
swaylock.enable = false;
|
||||
portal.enable = false;
|
||||
swaync.enable = false;
|
||||
gammastep.enable = false;
|
||||
binds =
|
||||
let dms-ipc = config.lib.niri.actions.spawn "dms" "ipc";
|
||||
in {
|
||||
"Mod+D" = {
|
||||
action = dms-ipc "spotlight" "toggle";
|
||||
hotkey-overlay.title = "Toggle Application Launcher";
|
||||
};
|
||||
"Mod+P" = {
|
||||
action = dms-ipc "notepad" "toggle";
|
||||
hotkey-overlay.title = "Toggle Notepad";
|
||||
};
|
||||
"Mod+Ctrl+L" = {
|
||||
action = dms-ipc "lock" "lock";
|
||||
hotkey-overlay.title = "Toggle Lock Screen";
|
||||
};
|
||||
"XF86AudioRaiseVolume" = {
|
||||
allow-when-locked = true;
|
||||
action = dms-ipc "audio" "increment" "3";
|
||||
};
|
||||
"XF86AudioLowerVolume" = {
|
||||
allow-when-locked = true;
|
||||
action = dms-ipc "audio" "decrement" "3";
|
||||
};
|
||||
"XF86AudioMute" = {
|
||||
allow-when-locked = true;
|
||||
action = dms-ipc "audio" "mute";
|
||||
};
|
||||
"XF86AudioMicMute" = {
|
||||
allow-when-locked = true;
|
||||
action = dms-ipc "audio" "micmute";
|
||||
};
|
||||
"XF86MonBrightnessUp" = {
|
||||
allow-when-locked = true;
|
||||
action = dms-ipc "brightness" "increment" "5" "";
|
||||
};
|
||||
"XF86MonBrightnessDown" = {
|
||||
allow-when-locked = true;
|
||||
action = dms-ipc "brightness" "decrement" "5" "";
|
||||
};
|
||||
};
|
||||
};
|
||||
sydnix.dank-material-shell = {
|
||||
enable = true;
|
||||
settings = {
|
||||
theme = "dark";
|
||||
currentThemeName = "custom";
|
||||
customThemeFile =
|
||||
pkgs.writeText
|
||||
"dankMaterialShell-stylix-theme.json"
|
||||
(builtins.toJSON theme);
|
||||
popupTransparency = 1;
|
||||
dockTransparency = 1;
|
||||
use24HourClock = true;
|
||||
showSeconds = false;
|
||||
useFahrenheit = false;
|
||||
nightModeEnabled = true;
|
||||
animationSpeed = 1;
|
||||
customAnimationDuration = 500;
|
||||
wallpaperFillMode = "Fill";
|
||||
blurredWallpaperLayer = false;
|
||||
blurWallpaperOnOverview = true;
|
||||
showLauncherButton = true;
|
||||
showWorkspaceSwitcher = true;
|
||||
showFocusedWindow = true;
|
||||
showWeather = false;
|
||||
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;
|
||||
showCapsLockIndicator = true;
|
||||
controlCenterShowNetworkIcon = true;
|
||||
controlCenterShowBluetoothIcon = true;
|
||||
controlCenterShowAudioIcon = true;
|
||||
controlCenterShowVpnIcon = true;
|
||||
controlCenterShowBrightnessIcon = false;
|
||||
controlCenterShowMicIcon = false;
|
||||
controlCenterShowBatteryIcon = false;
|
||||
controlCenterShowPrinterIcon = false;
|
||||
showPrivacyButton = true;
|
||||
privacyShowMicIcon = false;
|
||||
privacyShowCameraIcon = false;
|
||||
privacyShowScreenShareIcon = false;
|
||||
controlCenterWidgets = [
|
||||
{
|
||||
id = "volumeSlider";
|
||||
enabled = true;
|
||||
width = 50;
|
||||
}
|
||||
{
|
||||
id = "brightnessSlider";
|
||||
enabled = true;
|
||||
width = 50;
|
||||
}
|
||||
{
|
||||
id = "wifi";
|
||||
enabled = true;
|
||||
width = 50;
|
||||
}
|
||||
{
|
||||
id = "bluetooth";
|
||||
enabled = true;
|
||||
width = 50;
|
||||
}
|
||||
{
|
||||
id = "audioOutput";
|
||||
enabled = true;
|
||||
width = 50;
|
||||
}
|
||||
{
|
||||
id = "audioInput";
|
||||
enabled = true;
|
||||
width = 50;
|
||||
}
|
||||
{
|
||||
id = "nightMode";
|
||||
enabled = true;
|
||||
width = 50;
|
||||
}
|
||||
{
|
||||
id = "darkMode";
|
||||
enabled = true;
|
||||
width = 50;
|
||||
}
|
||||
];
|
||||
showWorkspaceIndex = false;
|
||||
showWorkspacePadding = false;
|
||||
workspaceScrolling = false;
|
||||
showWorkspaceApps = false;
|
||||
maxWorkspaceIcons = 3;
|
||||
workspacesPerMonitor = true;
|
||||
showOccupiedWorkspacesOnly = false;
|
||||
dwlShowAllTags = false;
|
||||
workspaceNameIcons = {};
|
||||
waveProgressEnabled = true;
|
||||
scrollTitleEnabled = true;
|
||||
clockCompactMode = false;
|
||||
focusedWindowCompactMode = false;
|
||||
runningAppsCompactMode = true;
|
||||
keyboardLayoutNameCompactMode = false;
|
||||
runningAppsCurrentWorkspace = false;
|
||||
runningAppsGroupByApp = false;
|
||||
centeringMode = "index";
|
||||
clockDateFormat = "";
|
||||
lockDateFormat = "";
|
||||
mediaSize = 1;
|
||||
appLauncherViewMode = "list";
|
||||
spotlightModalViewMode = "list";
|
||||
sortAppsAlphabetically = false;
|
||||
appLauncherGridColumns = 4;
|
||||
spotlightCloseNiriOverview = true;
|
||||
niriOverviewOverlayEnabled = true;
|
||||
weatherLocation = "Arvada, Colorado";
|
||||
weatherCoordinates = "39.8005505,-105.0811573";
|
||||
useAutoLocation = false;
|
||||
weatherEnabled = true;
|
||||
networkPreference = "auto";
|
||||
vpnLastConnected = "";
|
||||
iconTheme = "System Default";
|
||||
launcherLogoMode = "apps";
|
||||
launcherLogoCustomPath = "";
|
||||
launcherLogoColorOverride = "";
|
||||
launcherLogoColorInvertOnMode = false;
|
||||
launcherLogoBrightness = 0.5;
|
||||
launcherLogoContrast = 1;
|
||||
launcherLogoSizeOffset = 0;
|
||||
fontFamily = "Inter Variable";
|
||||
monoFontFamily = "Fira Code";
|
||||
fontWeight = 400;
|
||||
fontScale = 1;
|
||||
notepadUseMonospace = true;
|
||||
notepadFontFamily = "";
|
||||
notepadFontSize = 14;
|
||||
notepadShowLineNumbers = false;
|
||||
notepadTransparencyOverride = -1;
|
||||
notepadLastCustomTransparency = 0.7;
|
||||
soundsEnabled = true;
|
||||
useSystemSoundTheme = false;
|
||||
soundNewNotification = true;
|
||||
soundVolumeChanged = true;
|
||||
soundPluggedIn = true;
|
||||
acMonitorTimeout = 0;
|
||||
acLockTimeout = 0;
|
||||
acSuspendTimeout = 0;
|
||||
acSuspendBehavior = 0;
|
||||
acProfileName = "";
|
||||
batteryMonitorTimeout = 0;
|
||||
batteryLockTimeout = 0;
|
||||
batterySuspendTimeout = 0;
|
||||
batterySuspendBehavior = 0;
|
||||
batteryProfileName = "";
|
||||
lockBeforeSuspend = false;
|
||||
loginctlLockIntegration = true;
|
||||
fadeToLockEnabled = false;
|
||||
fadeToLockGracePeriod = 5;
|
||||
launchPrefix = "";
|
||||
brightnessDevicePins = {};
|
||||
wifiNetworkPins = {};
|
||||
bluetoothDevicePins = {};
|
||||
audioInputDevicePins.preferredInput =
|
||||
"alsa_input.usb-Generic_Blue_Microphones_2041BAB03EZ8-00.analog-stereo";
|
||||
audioOutputDevicePins.preferredOutput =
|
||||
"alsa_output.usb-Jieli_Technology_CA-2890_USB_Speaker_Bar_4250315A3537380E-00.analog-stereo";
|
||||
gtkThemingEnabled = false;
|
||||
qtThemingEnabled = false;
|
||||
syncModeWithPortal = true;
|
||||
terminalsAlwaysDark = false;
|
||||
showDock = false;
|
||||
dockAutoHide = false;
|
||||
dockGroupByApp = false;
|
||||
dockOpenOnOverview = false;
|
||||
dockPosition = 1;
|
||||
dockSpacing = 4;
|
||||
dockBottomGap = 0;
|
||||
dockMargin = 0;
|
||||
dockIconSize = 40;
|
||||
dockIndicatorStyle = "circle";
|
||||
dockBorderEnabled = false;
|
||||
dockBorderColor = "surfaceText";
|
||||
dockBorderOpacity = 1;
|
||||
dockBorderThickness = 1;
|
||||
notificationOverlayEnabled = false;
|
||||
modalDarkenBackground = true;
|
||||
lockScreenShowPowerActions = true;
|
||||
enableFprint = false;
|
||||
maxFprintTries = 15;
|
||||
lockScreenActiveMonitor = "all";
|
||||
lockScreenInactiveColor = "#000000";
|
||||
hideBrightnessSlider = false;
|
||||
notificationTimeoutLow = 5000;
|
||||
notificationTimeoutNormal = 5000;
|
||||
notificationTimeoutCritical = 0;
|
||||
notificationPopupPosition = 0;
|
||||
osdAlwaysShowValue = false;
|
||||
osdPosition = 5;
|
||||
osdVolumeEnabled = true;
|
||||
osdMediaVolumeEnabled = true;
|
||||
osdBrightnessEnabled = true;
|
||||
osdIdleInhibitorEnabled = true;
|
||||
osdMicMuteEnabled = true;
|
||||
osdCapsLockEnabled = true;
|
||||
osdPowerProfileEnabled = false;
|
||||
osdAudioOutputEnabled = true;
|
||||
powerActionConfirm = true;
|
||||
powerActionHoldDuration = 0.5;
|
||||
powerMenuActions = [
|
||||
"reboot"
|
||||
"logout"
|
||||
"poweroff"
|
||||
"lock"
|
||||
"suspend"
|
||||
"restart"
|
||||
];
|
||||
powerMenuDefaultAction = "logout";
|
||||
powerMenuGridLayout = false;
|
||||
customPowerActionLock = "";
|
||||
customPowerActionLogout = "";
|
||||
customPowerActionSuspend = "";
|
||||
customPowerActionHibernate = "";
|
||||
customPowerActionReboot = "";
|
||||
customPowerActionPowerOff = "";
|
||||
updaterUseCustomCommand = false;
|
||||
updaterCustomCommand = "";
|
||||
updaterTerminalAdditionalParams = "";
|
||||
displayNameMode = "system";
|
||||
screenPreferences.wallpaper = [];
|
||||
showOnLastDisplay = {};
|
||||
barConfigs = [
|
||||
{
|
||||
id = "default";
|
||||
name = "Main Bar";
|
||||
enabled = true;
|
||||
position = 2;
|
||||
screenPreferences = [
|
||||
"all"
|
||||
];
|
||||
showOnLastDisplay = true;
|
||||
leftWidgets = [
|
||||
"launcherButton"
|
||||
"workspaceSwitcher"
|
||||
"focusedWindow"
|
||||
];
|
||||
centerWidgets = [
|
||||
"music"
|
||||
"clock"
|
||||
"weather"
|
||||
];
|
||||
rightWidgets = [
|
||||
"systemTray"
|
||||
"clipboard"
|
||||
"cpuUsage"
|
||||
"memUsage"
|
||||
"notificationButton"
|
||||
"battery"
|
||||
"controlCenterButton"
|
||||
];
|
||||
spacing = 4;
|
||||
innerPadding = 4;
|
||||
bottomGap = 0;
|
||||
transparency = 1;
|
||||
widgetTransparency = 1;
|
||||
squareCorners = false;
|
||||
noBackground = false;
|
||||
gothCornersEnabled = false;
|
||||
gothCornerRadiusOverride = false;
|
||||
gothCornerRadiusValue = 12;
|
||||
borderEnabled = false;
|
||||
borderColor = "surfaceText";
|
||||
borderOpacity = 1;
|
||||
borderThickness = 1;
|
||||
fontScale = 1;
|
||||
autoHide = false;
|
||||
autoHideDelay = 250;
|
||||
openOnOverview = false;
|
||||
visible = true;
|
||||
popupGapsAuto = true;
|
||||
popupGapsManual = 4;
|
||||
}
|
||||
];
|
||||
configVersion = 2;
|
||||
};
|
||||
};
|
||||
});
|
||||
}
|
||||
@@ -5,6 +5,7 @@
|
||||
(require 'syd/use-package)
|
||||
(require 'syd/dash)
|
||||
(require 'syd/general)
|
||||
(require 'syd/evil)
|
||||
(eval-when-compile (require 'cl-lib))
|
||||
|
||||
|
||||
|
||||
21
modules/nixos/dank-material-shell.nix
Normal file
21
modules/nixos/dank-material-shell.nix
Normal file
@@ -0,0 +1,21 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let cfg = config.sydnix.dank-material-shell;
|
||||
in {
|
||||
options.sydnix.dank-material-shell = {
|
||||
enable = lib.mkEnableOption "Dank Material Shell";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.dms-shell = {
|
||||
enable = true;
|
||||
enableDynamicTheming = false;
|
||||
};
|
||||
|
||||
services.displayManager.dms-greeter = {
|
||||
enable = true;
|
||||
compositor.name = assert config.sydnix.niri.enable; "niri";
|
||||
configHome = "/home/msyds"; # Really stupid.
|
||||
};
|
||||
};
|
||||
}
|
||||
BIN
users/msyds/avatar.jpg
Normal file
BIN
users/msyds/avatar.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 442 KiB |
@@ -3,7 +3,7 @@
|
||||
isNormalUser = true;
|
||||
# TODO: Don't hard-code `persist`. Use
|
||||
# config.sydnix.impermanence.persistGroupName.
|
||||
extraGroups = [ "wheel" "persist" "input" "dots" ];
|
||||
extraGroups = [ "wheel" "persist" "input" "dots" "greeter" ];
|
||||
initialHashedPassword =
|
||||
"$y$j9T$4pyDiPlhnN4UarQoY7Sn70$URZQKPJ3yU4WoQFHRhzm4uF3bM4U7OVYem3oPioykMC";
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
config.lib.file.mkOutOfStoreSymlink
|
||||
"/persist/private-keys/ssh/msyds@sydpc";
|
||||
|
||||
home.file.".face".source = ./avatar.jpg;
|
||||
|
||||
home.file.".ssh/id_ed25519.pub".source =
|
||||
../../public-keys/ssh/${"msyds@sydpc.pub"};
|
||||
|
||||
@@ -27,6 +29,7 @@
|
||||
slippi.enable = true;
|
||||
desktop-environment.enable = true;
|
||||
clojure.enable = true;
|
||||
capitaine-cursors.enable = true;
|
||||
sops = {
|
||||
enable = true;
|
||||
keyFile = "/persist/private-keys/age/crumb";
|
||||
@@ -41,7 +44,7 @@
|
||||
niri.enable = true;
|
||||
firefox.enable = true;
|
||||
ghostty.enable = true;
|
||||
waybar.enable = true;
|
||||
# waybar.enable = true;
|
||||
tf2.enable = true;
|
||||
fcitx5.enable = true;
|
||||
anki.enable = true;
|
||||
@@ -53,6 +56,7 @@
|
||||
impermanence.enable = true;
|
||||
syncthing.enable = true;
|
||||
fonts.enable = true;
|
||||
dank-material-shell.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user