@@ -1,25 +0,0 @@
|
||||
{ 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;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let cfg = config.sydnix.guile;
|
||||
in {
|
||||
options.sydnix.guile = {
|
||||
enable = lib.mkEnableOption "Guile Scheme";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.file.".guile".text = ''
|
||||
(use-modules (ice-9 readline))
|
||||
(activate-readline)
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -45,8 +45,8 @@ in {
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.persistence = {
|
||||
"/persist/home/${config.home.username}" = {
|
||||
allowOther = true;
|
||||
"/persist" = {
|
||||
# allowOther = true;
|
||||
directories = cfg.directories ++ cfg.cache.directories;
|
||||
files = cfg.files ++ cfg.cache.files;
|
||||
};
|
||||
|
||||
@@ -20,7 +20,7 @@ in {
|
||||
# https://github.com/ValveSoftware/steam-for-linux/issues/10552
|
||||
# https://github.com/nix-community/impermanence/issues/165
|
||||
# { directory = ".local/share/Steam"; method = "symlink"; }
|
||||
{ directory = ".steam"; method = "symlink"; }
|
||||
{ directory = ".steam"; }
|
||||
];
|
||||
|
||||
home.packages = [
|
||||
|
||||
@@ -7,6 +7,6 @@ in {
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.overlay.enable {
|
||||
nixpkgs.overlays = [ inputs.sydpkgs.overlays.default ];
|
||||
# nixpkgs.overlays = [ inputs.sydpkgs.overlays.default ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -13,34 +13,17 @@ in {
|
||||
#
|
||||
# For an overview of important files in the profile directory, see
|
||||
# https://support.mozilla.org/en-US/kb/recovering-important-data-from-an-old-profile.
|
||||
sydnix.impermanence =
|
||||
{ directories = [ ".mozilla/firefox/msyds" ]; };
|
||||
# let p = ".mozilla/firefox/msyds";
|
||||
# in {
|
||||
# files = [
|
||||
# # Passwords
|
||||
# "${p}/key4.db"
|
||||
# "${p}/logins.json"
|
||||
# "${p}/logins-backup.json"
|
||||
# # Site-specific permissions
|
||||
# "${p}/permissions.sqlite"
|
||||
# # Bookmarks, downloads and browsing history
|
||||
# "${p}/places.sqlite"
|
||||
# # Cached favicons for use in the history menu.
|
||||
# "${p}/favicons.sqlite"
|
||||
# # Cookies
|
||||
# "${p}/cookies.sqlite"
|
||||
# # Security certificate settings
|
||||
# "${p}/cert9.db"
|
||||
# # Form history (for completions)
|
||||
# "${p}/formhistory.sqlite"
|
||||
# ];
|
||||
# };
|
||||
sydnix.impermanence.directories = [
|
||||
"${config.xdg.configHome}/mozilla/firefox"
|
||||
".cache/mozilla/firefox"
|
||||
".mozilla"
|
||||
];
|
||||
|
||||
stylix.targets.firefox.profileNames = [ "msyds" ];
|
||||
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
# configPath = "${config.xdg.configHome}/mozilla/firefox";
|
||||
|
||||
# Available language codes can be found on the releases page:
|
||||
# https://releases.mozilla.org/pub/firefox/releases/134.0.2/linux-x86_64/xpi/.
|
||||
@@ -177,6 +160,8 @@ in {
|
||||
sidebery
|
||||
adaptive-tab-bar-colour
|
||||
adnauseam
|
||||
yomitan
|
||||
bitwarden
|
||||
# tree-style-tab
|
||||
# tab-unload-for-tree-style-tab
|
||||
# tst-tab-search
|
||||
|
||||
@@ -342,10 +342,6 @@ in {
|
||||
place-within-backdrop = true;
|
||||
}
|
||||
];
|
||||
|
||||
# debug = {
|
||||
# wait-for-frame-completion-in-pipewire = {};
|
||||
# };
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -11,416 +11,320 @@ in {
|
||||
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" "";
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
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"
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
stylix.targets.dank-material-shell.enable = true;
|
||||
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 = on ["fruitbook"];
|
||||
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 = true;
|
||||
loginctlLockIntegration = true;
|
||||
fadeToLockEnabled = true;
|
||||
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;
|
||||
};
|
||||
};
|
||||
programs.dank-material-shell = {
|
||||
enable = true;
|
||||
settings = {
|
||||
theme = "dark";
|
||||
currentThemeName = "custom";
|
||||
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 = on ["fruitbook"];
|
||||
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";
|
||||
iconTheme = "System Default";
|
||||
launcherLogoMode = "apps";
|
||||
launcherLogoCustomPath = "";
|
||||
launcherLogoBrightness = 0.5;
|
||||
launcherLogoContrast = 1;
|
||||
launcherLogoSizeOffset = 0;
|
||||
fontWeight = 400;
|
||||
fontScale = 1;
|
||||
notepadUseMonospace = true;
|
||||
notepadFontSize = 14;
|
||||
notepadShowLineNumbers = false;
|
||||
soundsEnabled = true;
|
||||
useSystemSoundTheme = false;
|
||||
soundNewNotification = true;
|
||||
soundVolumeChanged = true;
|
||||
soundPluggedIn = true;
|
||||
lockBeforeSuspend = true;
|
||||
loginctlLockIntegration = true;
|
||||
fadeToLockEnabled = true;
|
||||
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;
|
||||
dockBorderOpacity = 1;
|
||||
dockBorderThickness = 1;
|
||||
notificationOverlayEnabled = false;
|
||||
modalDarkenBackground = true;
|
||||
lockScreenShowPowerActions = true;
|
||||
enableFprint = false;
|
||||
maxFprintTries = 15;
|
||||
lockScreenActiveMonitor = "all";
|
||||
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;
|
||||
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;
|
||||
squareCorners = false;
|
||||
noBackground = false;
|
||||
gothCornersEnabled = false;
|
||||
gothCornerRadiusOverride = false;
|
||||
gothCornerRadiusValue = 12;
|
||||
borderEnabled = false;
|
||||
borderOpacity = 1;
|
||||
borderThickness = 1;
|
||||
fontScale = 1;
|
||||
autoHide = false;
|
||||
autoHideDelay = 250;
|
||||
openOnOverview = false;
|
||||
visible = true;
|
||||
popupGapsAuto = true;
|
||||
popupGapsManual = 4;
|
||||
}
|
||||
];
|
||||
configVersion = 2;
|
||||
};
|
||||
});
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -7,9 +7,13 @@ in {
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.dms-shell = {
|
||||
programs.dank-material-shell = {
|
||||
enable = true;
|
||||
enableDynamicTheming = false;
|
||||
systemd = {
|
||||
enable = true;
|
||||
restartIfChanged = true;
|
||||
};
|
||||
};
|
||||
|
||||
# Start after xwayland-satellite, if possible. So DMS can start
|
||||
@@ -19,10 +23,35 @@ in {
|
||||
after = ["xwayland-satellite.service"];
|
||||
};
|
||||
|
||||
# services.greetd.settings.default_session.command = "";
|
||||
|
||||
services.displayManager.dms-greeter = {
|
||||
enable = true;
|
||||
compositor.name = assert config.sydnix.niri.enable; "niri";
|
||||
compositor = {
|
||||
name = assert config.sydnix.niri.enable; "niri";
|
||||
# see: https://github.com/AvengeMedia/DankMaterialShell/commit/5ceb908b8b69c253e259b5437020192dcad4bfde
|
||||
customConfig = ''
|
||||
hotkey-overlay {
|
||||
skip-at-startup
|
||||
}
|
||||
environment {
|
||||
DMS_RUN_GREETER "1"
|
||||
}
|
||||
gestures {
|
||||
hot-corners {
|
||||
off
|
||||
}
|
||||
}
|
||||
layout {
|
||||
background-color "#000000"
|
||||
}
|
||||
'';
|
||||
};
|
||||
configHome = "/home/msyds"; # Really stupid.
|
||||
logs = {
|
||||
save = true;
|
||||
path = "/var/lib/dms-greeter/log";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -14,10 +14,12 @@ in {
|
||||
ROCKET_PORT = 8222;
|
||||
DOMAIN = "https://vault.deertopia.net";
|
||||
};
|
||||
backupDir = "/var/backup/vaultwarden";
|
||||
};
|
||||
|
||||
sydnix.impermanence.directories = [
|
||||
"/var/backup/vaultwarden"
|
||||
config.services.vaultwarden.backupDir
|
||||
"/var/lib/bitwarden_rs"
|
||||
];
|
||||
|
||||
services.nginx.upstreams.vaultwarden.servers =
|
||||
|
||||
@@ -24,36 +24,75 @@ in {
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
boot.initrd.postDeviceCommands = ''
|
||||
# Mount the btrfs filesystem.
|
||||
mkdir -p /btrfs-tmp
|
||||
mount -t btrfs "${cfg.device}" /btrfs-tmp
|
||||
boot.initrd.systemd = {
|
||||
services.impermance-btrfs-rolling-root = {
|
||||
description = "Archiving existing BTRFS root subvolume and creating a fresh one";
|
||||
unitConfig.DefaultDependencies = false;
|
||||
serviceConfig = {
|
||||
# The script needs to run to completion before this service
|
||||
# is done
|
||||
Type = "oneshot";
|
||||
# NOTE: to be able to see errors in your script do this
|
||||
StandardOutput = "journal+console";
|
||||
StandardError = "journal+console";
|
||||
};
|
||||
# This service is required for boot to succeed
|
||||
requiredBy = ["initrd.target"];
|
||||
# Should complete before any file systems are mounted
|
||||
before = ["sysroot.mount"];
|
||||
|
||||
# If the moribund subvolume exists, send it do 'death row' (old-roots),
|
||||
# where live for about three days before its eventual deletion.
|
||||
if [[ -e "/btrfs-tmp/${cfg.subvolume}" ]]; then
|
||||
mkdir -p /btrfs-tmp/old-roots
|
||||
timestamp=$(date --date="@$(stat -c %Y "/btrfs-tmp/${cfg.subvolume}")" "+%Y-%m-%-d_%H:%M:%S")
|
||||
mv "/btrfs-tmp/${cfg.subvolume}" "/btrfs-tmp/old-roots/$timestamp"
|
||||
fi
|
||||
# Wait until the root device is available
|
||||
# If you're altering a different device, specify its device unit explicitly.
|
||||
# see: systemd-escape(1)
|
||||
requires = ["initrd-root-device.target"];
|
||||
after = [
|
||||
"initrd-root-device.target"
|
||||
# Allow hibernation to resume before trying to alter any data
|
||||
"local-fs-pre.target"
|
||||
];
|
||||
|
||||
delete_subvolume_recursively() {
|
||||
IFS=$'\n'
|
||||
for i in $(btrfs subvolume list -o "$1" | cut -f 9- -d ' '); do
|
||||
delete_subvolume_recursively "/btrfs-tmp/$i"
|
||||
done
|
||||
btrfs subvolume delete "$1"
|
||||
}
|
||||
script = ''
|
||||
# Mount the btrfs filesystem.
|
||||
mkdir -p /btrfs-tmp
|
||||
mount -t btrfs "${cfg.device}" /btrfs-tmp
|
||||
|
||||
# Delete previous roots older than three days.
|
||||
# TODO: I would prefer archiving the last N previous roots, rather than
|
||||
# time.
|
||||
for i in $(find /btrfs-tmp/old-roots/ -maxdepth 1 -mtime +3); do
|
||||
delete_subvolume_recursively "$i"
|
||||
done
|
||||
# If the moribund subvolume exists, send it do 'death row' (old-roots),
|
||||
# where live for about three days before its eventual deletion.
|
||||
if [[ -e "/btrfs-tmp/${cfg.subvolume}" ]]; then
|
||||
mkdir -p /btrfs-tmp/old-roots
|
||||
timestamp=$(date --date="@$(stat -c %Y "/btrfs-tmp/${cfg.subvolume}")" "+%Y-%m-%-d_%H:%M:%S")
|
||||
mv "/btrfs-tmp/${cfg.subvolume}" "/btrfs-tmp/old-roots/$timestamp"
|
||||
fi
|
||||
|
||||
btrfs subvolume create "/btrfs-tmp/${cfg.subvolume}"
|
||||
umount /btrfs-tmp
|
||||
'';
|
||||
delete_subvolume_recursively() {
|
||||
IFS=$'\n'
|
||||
for i in $(btrfs subvolume list -o "$1" | cut -f 9- -d ' '); do
|
||||
delete_subvolume_recursively "/btrfs-tmp/$i"
|
||||
done
|
||||
btrfs subvolume delete "$1"
|
||||
}
|
||||
|
||||
# Delete previous roots older than three days.
|
||||
# TODO: I would prefer archiving the last N previous roots, rather than
|
||||
# time.
|
||||
for i in $(find /btrfs-tmp/old-roots/ -maxdepth 1 -mtime +3); do
|
||||
delete_subvolume_recursively "$i"
|
||||
done
|
||||
|
||||
btrfs subvolume create "/btrfs-tmp/${cfg.subvolume}"
|
||||
umount /btrfs-tmp
|
||||
'';
|
||||
};
|
||||
# NOTE: path = [...]; doesnt work for initrd, use full paths in
|
||||
# your script or extraBin
|
||||
extraBin = {
|
||||
"mkdir" = "${pkgs.coreutils}/bin/mkdir";
|
||||
"date" = "${pkgs.coreutils}/bin/date";
|
||||
"stat" = "${pkgs.coreutils}/bin/stat";
|
||||
"mv" = "${pkgs.coreutils}/bin/mv";
|
||||
"find" = "${pkgs.findutils}/bin/find";
|
||||
"btrfs" = "${pkgs.btrfs-progs}/bin/btrfs";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ in {
|
||||
package = pkgs.niri-unstable;
|
||||
};
|
||||
|
||||
security.pam.services.swaylock = {};
|
||||
# security.pam.services.swaylock = {};
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user