#W# Initial Commit: NixOS

This commit is contained in:
WarrentyExpired 2026-07-30 09:20:57 -04:00
commit f79adc1a63
77 changed files with 15125 additions and 0 deletions

6
.gitignore vendored Normal file
View file

@ -0,0 +1,6 @@
home-manager/files/dms/.changelog*
home-manager/files/dms/.firstlaunch
home-manager/files/niri/dms/colors.kdl
home-manager/files/ssh/known_hosts*
flake.lock
home-manager/files/dms/plugins/

28
flake.nix Normal file
View file

@ -0,0 +1,28 @@
{
description = "WarrentyExpired Flake Configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
dms.url = "github:AvengeMedia/DankMaterialShell";
dms.inputs.nixpkgs.follows = "nixpkgs";
quickshell.url = "github:quickshell-mirror/quickshell";
neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
};
outputs = { self, nixpkgs, dms, quickshell, ... }@inputs: {
nixosConfigurations.damagedProperty = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
./hosts/desktop/configuration.nix
dms.nixosModules.default
{ nixpkgs.overlays = [ quickshell.overlays.default ]; }
];
};
nixosConfigurations.damagedLaptop = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
./hosts/laptop/configuration.nix
];
};
};
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,010 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 798 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 994 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 441 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 469 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 626 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 913 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 684 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 382 KiB

15
home-manager/files/bashrc Normal file
View file

@ -0,0 +1,15 @@
export DOTNET_ROOT=$HOME/.dotnet
export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
export DOTNET_SYSTEM_NET_DISABLEIPV6=1
gitbranch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
gitbranchdirty() {
[[ $(git status --porcelain 2> /dev/null) ]] && echo " *"
}
if [ -n "$DISTROBOX_ENTER_PATH" ]; then
PS1="[CONTAINER - 󰣇 ] [\w]\$(gitbranch)$(gitbranchdirty)\\n[\$]: "
fi
clear
echo "Welcom to your ArchLinux Distrobox Container!"

View file

@ -0,0 +1,5 @@
{
"dankDiskUsage": {
"enabled": false
}
}

View file

@ -0,0 +1,556 @@
{
"currentThemeName": "dynamic",
"currentThemeCategory": "dynamic",
"customThemeFile": "",
"registryThemeVariants": {},
"matugenScheme": "scheme-fidelity",
"runUserMatugenTemplates": true,
"matugenTargetMonitor": "",
"popupTransparency": 1,
"dockTransparency": 1,
"widgetBackgroundColor": "sch",
"widgetColorMode": "default",
"controlCenterTileColorMode": "primary",
"buttonColorMode": "primary",
"cornerRadius": 12,
"niriLayoutGapsOverride": -1,
"niriLayoutRadiusOverride": -1,
"niriLayoutBorderSize": -1,
"hyprlandLayoutGapsOverride": -1,
"hyprlandLayoutRadiusOverride": -1,
"hyprlandLayoutBorderSize": -1,
"mangoLayoutGapsOverride": -1,
"mangoLayoutRadiusOverride": -1,
"mangoLayoutBorderSize": -1,
"use24HourClock": false,
"showSeconds": false,
"padHours12Hour": false,
"useFahrenheit": true,
"windSpeedUnit": "kmh",
"nightModeEnabled": false,
"animationSpeed": 1,
"customAnimationDuration": 500,
"syncComponentAnimationSpeeds": true,
"popoutAnimationSpeed": 1,
"popoutCustomAnimationDuration": 150,
"modalAnimationSpeed": 1,
"modalCustomAnimationDuration": 150,
"enableRippleEffects": true,
"blurEnabled": false,
"blurForegroundLayers": true,
"blurLayerOutlineOpacity": 0.12,
"blurBorderColor": "outline",
"blurBorderCustomColor": "#ffffff",
"blurBorderOpacity": 0.35,
"wallpaperFillMode": "Fill",
"blurredWallpaperLayer": false,
"blurWallpaperOnOverview": 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,
"systemTrayIconTintMode": "none",
"systemTrayIconTintSaturation": 50,
"systemTrayIconTintStrength": 135,
"showClock": true,
"showNotificationButton": true,
"showBattery": true,
"showControlCenterButton": true,
"showCapsLockIndicator": true,
"controlCenterShowNetworkIcon": true,
"controlCenterShowBluetoothIcon": true,
"controlCenterShowAudioIcon": true,
"controlCenterShowAudioPercent": false,
"controlCenterShowVpnIcon": true,
"controlCenterShowBrightnessIcon": false,
"controlCenterShowBrightnessPercent": false,
"controlCenterShowMicIcon": false,
"controlCenterShowMicPercent": true,
"controlCenterShowBatteryIcon": false,
"controlCenterShowPrinterIcon": false,
"controlCenterShowScreenSharingIcon": true,
"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,
"showWorkspaceName": false,
"showWorkspacePadding": false,
"workspaceScrolling": false,
"showWorkspaceApps": false,
"workspaceDragReorder": true,
"maxWorkspaceIcons": 3,
"workspaceAppIconSizeOffset": 0,
"groupWorkspaceApps": true,
"workspaceFollowFocus": false,
"showOccupiedWorkspacesOnly": false,
"reverseScrolling": false,
"dwlShowAllTags": false,
"workspaceColorMode": "default",
"workspaceOccupiedColorMode": "none",
"workspaceUnfocusedColorMode": "default",
"workspaceUrgentColorMode": "default",
"workspaceFocusedBorderEnabled": false,
"workspaceFocusedBorderColor": "primary",
"workspaceFocusedBorderThickness": 2,
"workspaceNameIcons": {},
"waveProgressEnabled": true,
"scrollTitleEnabled": true,
"audioVisualizerEnabled": true,
"audioScrollMode": "volume",
"audioWheelScrollAmount": 5,
"clockCompactMode": false,
"focusedWindowCompactMode": false,
"runningAppsCompactMode": true,
"barMaxVisibleApps": 0,
"barMaxVisibleRunningApps": 0,
"barShowOverflowBadge": true,
"appsDockHideIndicators": false,
"appsDockColorizeActive": false,
"appsDockActiveColorMode": "primary",
"appsDockEnlargeOnHover": false,
"appsDockEnlargePercentage": 125,
"appsDockIconSizePercentage": 100,
"keyboardLayoutNameCompactMode": false,
"runningAppsCurrentWorkspace": true,
"runningAppsGroupByApp": false,
"runningAppsCurrentMonitor": false,
"appIdSubstitutions": [],
"centeringMode": "index",
"clockDateFormat": "",
"lockDateFormat": "",
"greeterRememberLastSession": true,
"greeterRememberLastUser": true,
"greeterEnableFprint": false,
"greeterEnableU2f": false,
"greeterWallpaperPath": "",
"mediaSize": 1,
"appLauncherViewMode": "list",
"spotlightModalViewMode": "list",
"browserPickerViewMode": "grid",
"browserUsageHistory": {},
"appPickerViewMode": "grid",
"filePickerUsageHistory": {},
"sortAppsAlphabetically": false,
"appLauncherGridColumns": 4,
"spotlightCloseNiriOverview": true,
"spotlightSectionViewModes": {},
"appDrawerSectionViewModes": {},
"niriOverviewOverlayEnabled": true,
"dankLauncherV2Size": "compact",
"dankLauncherV2BorderEnabled": false,
"dankLauncherV2BorderThickness": 2,
"dankLauncherV2BorderColor": "primary",
"dankLauncherV2ShowFooter": true,
"dankLauncherV2UnloadOnClose": false,
"useAutoLocation": false,
"weatherEnabled": true,
"networkPreference": "ethernet",
"iconTheme": "Papirus-Dark",
"cursorSettings": {
"theme": "Bibata-Modern-Classic",
"size": 24,
"niri": {
"hideWhenTyping": false,
"hideAfterInactiveMs": 0
},
"hyprland": {
"hideOnKeyPress": false,
"hideOnTouch": false,
"inactiveTimeout": 0
},
"dwl": {
"cursorHideTimeout": 0
}
},
"launcherLogoMode": "os",
"launcherLogoCustomPath": "",
"launcherLogoColorOverride": "",
"launcherLogoColorInvertOnMode": false,
"launcherLogoBrightness": 0.5,
"launcherLogoContrast": 1,
"launcherLogoSizeOffset": 0,
"fontFamily": "JetBrainsMono NF",
"monoFontFamily": "JetBrainsMono Nerd Font Mono",
"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": 1800,
"acLockTimeout": 0,
"acSuspendTimeout": 0,
"acSuspendBehavior": 0,
"acProfileName": "",
"batteryMonitorTimeout": 0,
"batteryLockTimeout": 0,
"batterySuspendTimeout": 0,
"batterySuspendBehavior": 0,
"batteryProfileName": "",
"batteryChargeLimit": 100,
"lockBeforeSuspend": true,
"loginctlLockIntegration": true,
"fadeToLockEnabled": true,
"fadeToLockGracePeriod": 5,
"fadeToDpmsEnabled": true,
"fadeToDpmsGracePeriod": 5,
"launchPrefix": "",
"brightnessDevicePins": {},
"wifiNetworkPins": {},
"bluetoothDevicePins": {
"preferredDevice": [
"9C:54:1C:60:8A:4D"
]
},
"audioInputDevicePins": {},
"audioOutputDevicePins": {},
"gtkThemingEnabled": false,
"qtThemingEnabled": false,
"syncModeWithPortal": true,
"terminalsAlwaysDark": true,
"muxType": "tmux",
"muxUseCustomCommand": false,
"muxCustomCommand": "",
"muxSessionFilter": "",
"runDmsMatugenTemplates": true,
"matugenTemplateGtk": true,
"matugenTemplateNiri": true,
"matugenTemplateHyprland": true,
"matugenTemplateMangowc": true,
"matugenTemplateQt5ct": true,
"matugenTemplateQt6ct": true,
"matugenTemplateFirefox": true,
"matugenTemplatePywalfox": true,
"matugenTemplateZenBrowser": true,
"matugenTemplateVesktop": true,
"matugenTemplateEquibop": true,
"matugenTemplateGhostty": true,
"matugenTemplateKitty": true,
"matugenTemplateFoot": true,
"matugenTemplateAlacritty": true,
"matugenTemplateNeovim": true,
"matugenTemplateWezterm": true,
"matugenTemplateDgop": true,
"matugenTemplateKcolorscheme": true,
"matugenTemplateVscode": true,
"matugenTemplateEmacs": true,
"matugenTemplateZed": true,
"showDock": true,
"dockAutoHide": false,
"dockSmartAutoHide": false,
"dockGroupByApp": false,
"dockOpenOnOverview": false,
"dockPosition": 1,
"dockSpacing": 4,
"dockBottomGap": -20,
"dockMargin": 0,
"dockIconSize": 32,
"dockIndicatorStyle": "circle",
"dockBorderEnabled": false,
"dockBorderColor": "surfaceText",
"dockBorderOpacity": 1,
"dockBorderThickness": 1,
"dockIsolateDisplays": false,
"dockLauncherEnabled": false,
"dockLauncherLogoMode": "apps",
"dockLauncherLogoCustomPath": "",
"dockLauncherLogoColorOverride": "",
"dockLauncherLogoSizeOffset": 0,
"dockLauncherLogoBrightness": 0.5,
"dockLauncherLogoContrast": 1,
"dockMaxVisibleApps": 0,
"dockMaxVisibleRunningApps": 0,
"dockShowOverflowBadge": true,
"notificationOverlayEnabled": true,
"notificationPopupShadowEnabled": true,
"notificationPopupPrivacyMode": false,
"modalDarkenBackground": true,
"lockScreenShowPowerActions": true,
"lockScreenShowSystemIcons": true,
"lockScreenShowTime": true,
"lockScreenShowDate": true,
"lockScreenShowProfileImage": true,
"lockScreenShowPasswordField": true,
"lockScreenShowMediaPlayer": true,
"lockScreenPowerOffMonitorsOnLock": false,
"lockAtStartup": false,
"enableFprint": false,
"maxFprintTries": 15,
"enableU2f": false,
"u2fMode": "or",
"lockScreenActiveMonitor": "all",
"lockScreenInactiveColor": "#000000",
"lockScreenNotificationMode": 0,
"hideBrightnessSlider": false,
"notificationTimeoutLow": 5000,
"notificationTimeoutNormal": 5000,
"notificationTimeoutCritical": 0,
"notificationCompactMode": false,
"notificationPopupPosition": 0,
"notificationAnimationSpeed": 1,
"notificationCustomAnimationDuration": 400,
"notificationHistoryEnabled": true,
"notificationHistoryMaxCount": 50,
"notificationHistoryMaxAgeDays": 7,
"notificationHistorySaveLow": true,
"notificationHistorySaveNormal": true,
"notificationHistorySaveCritical": true,
"notificationRules": [],
"osdAlwaysShowValue": false,
"osdPosition": 5,
"osdVolumeEnabled": true,
"osdMediaVolumeEnabled": true,
"osdMediaPlaybackEnabled": false,
"osdBrightnessEnabled": true,
"osdIdleInhibitorEnabled": true,
"osdMicMuteEnabled": true,
"osdCapsLockEnabled": true,
"osdPowerProfileEnabled": true,
"osdAudioOutputEnabled": true,
"powerActionConfirm": true,
"powerActionHoldDuration": 0.5,
"powerMenuActions": [
"reboot",
"logout",
"poweroff",
"lock",
"suspend",
"restart"
],
"powerMenuDefaultAction": "suspend",
"powerMenuGridLayout": false,
"customPowerActionLock": "",
"customPowerActionLogout": "",
"customPowerActionSuspend": "",
"customPowerActionHibernate": "",
"customPowerActionReboot": "",
"customPowerActionPowerOff": "",
"updaterHideWidget": false,
"updaterUseCustomCommand": false,
"updaterCustomCommand": "",
"updaterTerminalAdditionalParams": "",
"displayNameMode": "system",
"screenPreferences": {},
"showOnLastDisplay": {},
"niriOutputSettings": {},
"hyprlandOutputSettings": {},
"displayProfiles": {},
"activeDisplayProfile": {},
"displayProfileAutoSelect": false,
"displayShowDisconnected": false,
"displaySnapToEdge": true,
"barConfigs": [
{
"id": "default",
"name": "Main Bar",
"enabled": true,
"position": 0,
"screenPreferences": [
"all"
],
"showOnLastDisplay": true,
"leftWidgets": [
"launcherButton",
"workspaceSwitcher",
"focusedWindow"
],
"centerWidgets": [
"music",
"clock",
"weather"
],
"rightWidgets": [
"systemTray",
"clipboard",
"cpuUsage",
"memUsage",
"notificationButton",
"battery",
"controlCenterButton",
{
"id": "idleInhibitor",
"enabled": true
}
],
"spacing": 4,
"innerPadding": 4,
"bottomGap": 0,
"transparency": 1,
"widgetTransparency": 1,
"squareCorners": false,
"noBackground": false,
"maximizeWidgetIcons": false,
"maximizeWidgetText": false,
"removeWidgetPadding": false,
"widgetPadding": 8,
"gothCornersEnabled": false,
"gothCornerRadiusOverride": false,
"gothCornerRadiusValue": 12,
"borderEnabled": false,
"borderColor": "surfaceText",
"borderOpacity": 1,
"borderThickness": 1,
"widgetOutlineEnabled": false,
"widgetOutlineColor": "primary",
"widgetOutlineOpacity": 1,
"widgetOutlineThickness": 1,
"fontScale": 1,
"iconScale": 1,
"autoHide": false,
"autoHideDelay": 250,
"showOnWindowsOpen": false,
"openOnOverview": false,
"visible": true,
"popupGapsAuto": true,
"popupGapsManual": 4,
"maximizeDetection": true,
"scrollEnabled": true,
"scrollXBehavior": "none",
"scrollYBehavior": "none",
"shadowIntensity": 0,
"shadowOpacity": 60,
"shadowColorMode": "text",
"shadowCustomColor": "#000000",
"clickThrough": false
}
],
"desktopClockEnabled": false,
"desktopClockStyle": "analog",
"desktopClockTransparency": 0.8,
"desktopClockColorMode": "primary",
"desktopClockCustomColor": {
"r": 1,
"g": 1,
"b": 1,
"a": 1,
"hsvHue": -1,
"hsvSaturation": 0,
"hsvValue": 1,
"hslHue": -1,
"hslSaturation": 0,
"hslLightness": 1,
"valid": true
},
"desktopClockShowDate": true,
"desktopClockShowAnalogNumbers": false,
"desktopClockShowAnalogSeconds": true,
"desktopClockX": -1,
"desktopClockY": -1,
"desktopClockWidth": 280,
"desktopClockHeight": 180,
"desktopClockDisplayPreferences": [
"all"
],
"systemMonitorEnabled": false,
"systemMonitorShowHeader": true,
"systemMonitorTransparency": 0.8,
"systemMonitorColorMode": "primary",
"systemMonitorCustomColor": {
"r": 1,
"g": 1,
"b": 1,
"a": 1,
"hsvHue": -1,
"hsvSaturation": 0,
"hsvValue": 1,
"hslHue": -1,
"hslSaturation": 0,
"hslLightness": 1,
"valid": true
},
"systemMonitorShowCpu": true,
"systemMonitorShowCpuGraph": true,
"systemMonitorShowCpuTemp": true,
"systemMonitorShowGpuTemp": false,
"systemMonitorGpuPciId": "",
"systemMonitorShowMemory": true,
"systemMonitorShowMemoryGraph": true,
"systemMonitorShowNetwork": true,
"systemMonitorShowNetworkGraph": true,
"systemMonitorShowDisk": true,
"systemMonitorShowTopProcesses": false,
"systemMonitorTopProcessCount": 3,
"systemMonitorTopProcessSortBy": "cpu",
"systemMonitorGraphInterval": 60,
"systemMonitorLayoutMode": "auto",
"systemMonitorX": -1,
"systemMonitorY": -1,
"systemMonitorWidth": 320,
"systemMonitorHeight": 480,
"systemMonitorDisplayPreferences": [
"all"
],
"systemMonitorVariants": [],
"desktopWidgetPositions": {},
"desktopWidgetGridSettings": {},
"desktopWidgetInstances": [],
"desktopWidgetGroups": [],
"builtInPluginSettings": {
"dms_settings_search": {
"trigger": "?"
}
},
"clipboardEnterToPaste": false,
"launcherPluginVisibility": {},
"launcherPluginOrder": [],
"configVersion": 5
}

10722
home-manager/files/nerdfont.csv Executable file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,393 @@
input {
keyboard {
xkb {
}
numlock
}
touchpad {
tap
natural-scroll
}
mouse {
accel-speed 1.0
}
trackpoint {
}
}
cursor {
xcursor-theme "Bibata-Modern-Classic"
xcursor-size 24
}
gestures {
hot-corners {
off
}
}
layout {
gaps 16
background-color "transparent"
center-focused-column "never"
always-center-single-column
preset-column-widths {
proportion 0.33333
proportion 0.5
proportion 0.66667
}
default-column-width { proportion 0.5; }
focus-ring {
//off
width 4
active-color "#7fc8ff"
inactive-color "#505050"
}
border {
off
width 4
active-color "#ffc87f"
inactive-color "#505050"
urgent-color "#9b0000"
}
shadow {
//on
//draw-behind-window true
softness 30
spread 5
offset x=0 y=5
color "#0007"
}
struts {
}
}
hotkey-overlay {
skip-at-startup
}
prefer-no-csd
screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
//animations {
// off
// slowdown 3.0
//}
animations {
window-close {
duration-ms 600
curve "ease-out-quad"
custom-shader r"
float hash21(vec2 p) {
return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453123);
}
float value_noise(vec2 p) {
vec2 i = floor(p);
vec2 f = fract(p);
vec2 u = f * f * (3.0 - 2.0 * f);
return mix(
mix(hash21(i), hash21(i + vec2(1.0, 0.0)), u.x),
mix(hash21(i + vec2(0.0, 1.0)), hash21(i + vec2(1.0, 1.0)), u.x),
u.y
);
}
float fbm(vec2 p) {
float v = 0.0;
float amp = 0.5;
float freq = 1.0;
for (int i = 0; i < 5; i++) {
v += amp * value_noise(p * freq);
freq *= 2.0;
amp *= 0.5;
}
return v;
}
vec4 close_color(vec3 coords_geo, vec3 size_geo) {
vec2 uv = coords_geo.xy;
float p = niri_clamped_progress;
float seed = niri_random_seed * 100.0;
// Distance from nearest edge of window rect
float dx = min(uv.x, 1.0 - uv.x);
float dy = min(uv.y, 1.0 - uv.y);
float edge_dist = min(dx, dy);
// Noise-driven edge erosion: breaks the box shape
float edge_noise = fbm((uv + seed) * 8.0 * 1.5);
float erode = p * 0.80;
float edge_threshold = edge_noise * erode;
float edge_alpha = smoothstep(edge_threshold - 0.02, edge_threshold + 0.02, edge_dist);
// Skip pixels far outside eroded boundary
if (edge_dist < -0.15) {
return vec4(0.0);
}
// Wobble the window content
vec2 np = (uv + seed) * 8.0;
float wx = fbm(np + vec2(17.3, 0.0)) - 0.5;
float wy = fbm(np + vec2(0.0, 43.1)) - 0.5;
vec3 warped = coords_geo;
warped.x += wx * 0.080 * p;
warped.y += wy * 0.080 * p;
vec3 tex_coords = niri_geo_to_tex * warped;
vec4 color = texture2D(niri_tex, tex_coords.st);
// Overall fade
float alpha = edge_alpha * (1.0 - p * p);
alpha = clamp(alpha, 0.0, 1.0);
// Warm glow at dissolving edges
float glow = smoothstep(edge_threshold - 0.04, edge_threshold, edge_dist)
* (1.0 - smoothstep(edge_threshold, edge_threshold + 0.04, edge_dist));
glow *= (1.0 - p) * 0.6;
color.rgb += vec3(0.3, 0.18, 0.06) * glow;
return color * alpha;
}
"
}
window-open {
duration-ms 600
curve "ease-out-expo"
custom-shader r"
float hash21(vec2 p) {
return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453123);
}
float value_noise(vec2 p) {
vec2 i = floor(p);
vec2 f = fract(p);
vec2 u = f * f * (3.0 - 2.0 * f);
return mix(
mix(hash21(i), hash21(i + vec2(1.0, 0.0)), u.x),
mix(hash21(i + vec2(0.0, 1.0)), hash21(i + vec2(1.0, 1.0)), u.x),
u.y
);
}
float fbm(vec2 p) {
float v = 0.0;
float amp = 0.5;
float freq = 1.0;
for (int i = 0; i < 5; i++) {
v += amp * value_noise(p * freq);
freq *= 2.0;
amp *= 0.5;
}
return v;
}
vec4 open_color(vec3 coords_geo, vec3 size_geo) {
vec2 uv = coords_geo.xy;
float p = 1.0 - niri_clamped_progress;
float seed = niri_random_seed * 100.0;
// Distance from nearest edge of window rect
float dx = min(uv.x, 1.0 - uv.x);
float dy = min(uv.y, 1.0 - uv.y);
float edge_dist = min(dx, dy);
// Noise-driven edge erosion: breaks the box shape
float edge_noise = fbm((uv + seed) * 8.0 * 1.5);
float erode = p * 0.80;
float edge_threshold = edge_noise * erode;
float edge_alpha = smoothstep(edge_threshold - 0.02, edge_threshold + 0.02, edge_dist);
// Skip pixels far outside eroded boundary
if (edge_dist < -0.15) {
return vec4(0.0);
}
// Wobble the window content
vec2 np = (uv + seed) * 8.0;
float wx = fbm(np + vec2(17.3, 0.0)) - 0.5;
float wy = fbm(np + vec2(0.0, 43.1)) - 0.5;
vec3 warped = coords_geo;
warped.x += wx * 0.080 * p;
warped.y += wy * 0.080 * p;
vec3 tex_coords = niri_geo_to_tex * warped;
vec4 color = texture2D(niri_tex, tex_coords.st);
// Overall fade
float alpha = edge_alpha * (1.0 - p * p);
alpha = clamp(alpha, 0.0, 1.0);
// Warm glow at dissolving edges
float glow = smoothstep(edge_threshold - 0.04, edge_threshold, edge_dist)
* (1.0 - smoothstep(edge_threshold, edge_threshold + 0.04, edge_dist));
glow *= (1.0 - p) * 0.6;
color.rgb += vec3(0.3, 0.18, 0.06) * glow;
return color * alpha;
}
"
}
}
window-rule {
geometry-corner-radius 8
clip-to-geometry true
}
window-rule {
match app-id=r#"org.quickshell$"#
open-floating true
}
window-rule {
match app-id="org.gnome.Calculator"
open-floating true
}
window-rule {
match app-id="mpv"
open-floating true
default-floating-position x=0 y=32 relative-to="bottom"
}
window-rule {
match app-id="^ghostty$"
opacity 0.8
background-effect {
blur true
}
}
window-rule {
draw-border-with-background false
}
// spawn-sh-at-startup "qs -c ~/source/qs/MyAwesomeShell"
// spawn-at-startup "waybar"
binds {
Mod+Shift+Slash { show-hotkey-overlay; }
Mod+Alt+P hotkey-overlay-title="Open Power Menu" { spawn "dms" "ipc" "call" "powermenu" "toggle"; }
Mod+Alt+I hotkey-overlay-title="Toggle Idle Inhibitoer" { spawn "dms" "ipc" "call" "inhibit" "toggle"; }
Mod+Q hotkey-overlay-title="Open a Terminal: ghostty" { spawn "ghostty"; }
Mod+Space hotkey-overlay-title="Run an Application: dank launcher" { spawn "dms" "ipc" "call" "launcher" "toggle"; }
//Mod+Space hotkey-overlay-title="Run an Application: fuzzel" { spawn "fuzzel"; }
Mod+W hotkey-overlay-title="Open a Web browser: vivaldi" { spawn "vivaldi"; }
Mod+E hotkey-overlay-title="Open File browser: nautilus" { spawn "nautilus"; }
XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+ -l 1.0"; }
Mod+Alt+WheelScrollUp { spawn "dms" "ipc" "call" "audio" "increment" "5"; }
Mod+Alt+WheelScrollDown { spawn "dms" "ipc" "call" "audio" "decrement" "5"; }
XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; }
XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; }
XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
XF86AudioPlay allow-when-locked=true { spawn-sh "playerctl play-pause"; }
XF86AudioStop allow-when-locked=true { spawn-sh "playerctl stop"; }
XF86AudioPrev allow-when-locked=true { spawn-sh "playerctl previous"; }
XF86AudioNext allow-when-locked=true { spawn-sh "playerctl next"; }
XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; }
XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; }
Mod+O repeat=false { toggle-overview; }
Mod+Escape repeat=false { close-window; }
Mod+Left { focus-column-left; }
Mod+Down { focus-window-down; }
Mod+Up { focus-window-up; }
Mod+Right { focus-column-right; }
Mod+H { focus-column-left; }
Mod+J { focus-window-down; }
Mod+K { focus-window-up; }
Mod+L { focus-column-right; }
Mod+Ctrl+Left { move-column-left; }
Mod+Ctrl+Down { move-window-down; }
Mod+Ctrl+Up { move-window-up; }
Mod+Ctrl+Right { move-column-right; }
Mod+Ctrl+H { move-column-left; }
Mod+Ctrl+J { move-window-down; }
Mod+Ctrl+K { move-window-up; }
Mod+Ctrl+L { move-column-right; }
Mod+Home { focus-column-first; }
Mod+End { focus-column-last; }
Mod+Ctrl+Home { move-column-to-first; }
Mod+Ctrl+End { move-column-to-last; }
Mod+Shift+Left { focus-monitor-left; }
Mod+Shift+Down { focus-monitor-down; }
Mod+Shift+Up { focus-monitor-up; }
Mod+Shift+Right { focus-monitor-right; }
Mod+Shift+H { focus-monitor-left; }
Mod+Shift+J { focus-monitor-down; }
Mod+Shift+K { focus-monitor-up; }
Mod+Shift+L { focus-monitor-right; }
Mod+Shift+Ctrl+Left { move-column-to-monitor-left; }
Mod+Shift+Ctrl+Down { move-column-to-monitor-down; }
Mod+Shift+Ctrl+Up { move-column-to-monitor-up; }
Mod+Shift+Ctrl+Right { move-column-to-monitor-right; }
Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
Mod+Shift+Ctrl+J { move-column-to-monitor-down; }
Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
Mod+Page_Down { focus-workspace-down; }
Mod+Page_Up { focus-workspace-up; }
Mod+U { focus-workspace-down; }
Mod+I { focus-workspace-up; }
Mod+Ctrl+Page_Down { move-column-to-workspace-down; }
Mod+Ctrl+Page_Up { move-column-to-workspace-up; }
Mod+Ctrl+U { move-column-to-workspace-down; }
Mod+Ctrl+I { move-column-to-workspace-up; }
Mod+Shift+Page_Down { move-workspace-down; }
Mod+Shift+Page_Up { move-workspace-up; }
Mod+Shift+U { move-workspace-down; }
Mod+Shift+I { move-workspace-up; }
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
Mod+WheelScrollRight { focus-column-right; }
Mod+WheelScrollLeft { focus-column-left; }
Mod+Ctrl+WheelScrollRight { move-column-right; }
Mod+Ctrl+WheelScrollLeft { move-column-left; }
Mod+Shift+WheelScrollDown { focus-column-right; }
Mod+Shift+WheelScrollUp { focus-column-left; }
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
Mod+1 { focus-workspace 1; }
Mod+2 { focus-workspace 2; }
Mod+3 { focus-workspace 3; }
Mod+4 { focus-workspace 4; }
Mod+5 { focus-workspace 5; }
Mod+6 { focus-workspace 6; }
Mod+7 { focus-workspace 7; }
Mod+8 { focus-workspace 8; }
Mod+9 { focus-workspace 9; }
Mod+Ctrl+1 { move-column-to-workspace 1; }
Mod+Ctrl+2 { move-column-to-workspace 2; }
Mod+Ctrl+3 { move-column-to-workspace 3; }
Mod+Ctrl+4 { move-column-to-workspace 4; }
Mod+Ctrl+5 { move-column-to-workspace 5; }
Mod+Ctrl+6 { move-column-to-workspace 6; }
Mod+Ctrl+7 { move-column-to-workspace 7; }
Mod+Ctrl+8 { move-column-to-workspace 8; }
Mod+Ctrl+9 { move-column-to-workspace 9; }
Mod+BracketLeft { consume-or-expel-window-left; }
Mod+BracketRight { consume-or-expel-window-right; }
Mod+Comma { consume-window-into-column; }
Mod+Period { expel-window-from-column; }
Mod+R { switch-preset-column-width; }
Mod+Shift+R { switch-preset-window-height; }
Mod+Ctrl+R { reset-window-height; }
Mod+F { maximize-column; }
Mod+Shift+F { fullscreen-window; }
Mod+Ctrl+F { expand-column-to-available-width; }
Mod+C { center-column; }
Mod+Ctrl+C { center-visible-columns; }
Mod+Minus { set-column-width "-10%"; }
Mod+Equal { set-column-width "+10%"; }
Mod+Shift+Minus { set-window-height "-10%"; }
Mod+Shift+Equal { set-window-height "+10%"; }
//Mod+V { toggle-window-floating; }
Mod+Shift+V { switch-focus-between-floating-and-tiling; }
Mod+Shift+W { toggle-column-tabbed-display; }
Shift+Alt+R { screenshot; }
Shift+Alt+S { screenshot-screen; }
Shift+Alt+W { screenshot-window; }
Mod+Shift+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
Mod+Shift+E { quit; }
Ctrl+Alt+Delete { quit; }
Mod+Shift+P { power-off-monitors; }
}
include "dms/binds.kdl"
include "dms/outputs.kdl"
include "dms/windowrules.kdl"
include "dms/cursor.kdl"

View file

@ -0,0 +1,10 @@
// ! DO NOT EDIT !
// ! AUTO-GENERATED BY DMS !
// ! CHANGES WILL BE OVERWRITTEN !
// ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
recent-windows {
highlight {
corner-radius 12
}
}

View file

View file

@ -0,0 +1,9 @@
// ! DO NOT EDIT !
// ! AUTO-GENERATED BY DMS !
// ! CHANGES WILL BE OVERWRITTEN !
// ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
cursor {
xcursor-theme "Bibata-Modern-Classic"
xcursor-size 24
}

View file

@ -0,0 +1,22 @@
// ! DO NOT EDIT !
// ! AUTO-GENERATED BY DMS !
// ! CHANGES WILL BE OVERWRITTEN !
// ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
layout {
gaps 4
border {
width 2
}
focus-ring {
width 2
}
}
window-rule {
geometry-corner-radius 12
clip-to-geometry true
tiled-state true
draw-border-with-background false
}

View file

View file

@ -0,0 +1,9 @@
// ! DO NOT EDIT !
// ! AUTO-GENERATED BY DMS !
// ! CHANGES WILL BE OVERWRITTEN !
// ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
layer-rule {
match namespace="dms:blurwallpaper"
place-within-backdrop true
}

2
home-manager/files/ssh/config Executable file
View file

@ -0,0 +1,2 @@
Host *
SetEnv TERM=xterm-256color

View file

@ -0,0 +1,8 @@
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABA2xrdF06
FzXtwjxqZoFO/8AAAAGAAAAAEAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIMvOXXwkL3BR+pNX
XEj1x7MiVpvCH0B3gKz/ZwuN+34VAAAAsIGyFyWBvRTZmWmcRi2febVfy2Zr/pPiR7Lr8l
NVXLMPzxx7svkJvCD+A2S9jnI9lhgUsiEQKhG/5UsvjFVdrN7s/eICqd8dv5bxvp8y8Mrj
9xp6pkruJBimAFdSsJKWrvnoPLU7vxm8cANBMSf9znR7eBoEcw6blKXbUx9UIQWBqt+ccq
eLnFxNKWBhUI47Yu2sO8DV7/Zk2syklInKBz1tMP1cpIQgqCG6utJNWIZj
-----END OPENSSH PRIVATE KEY-----

View file

@ -0,0 +1 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMvOXXwkL3BR+pNXXEj1x7MiVpvCH0B3gKz/ZwuN+34V warrentyexpired@damagedProperty

View file

@ -0,0 +1,12 @@
name: Workspace
root: ~/
windows:
- setup:
layout: main-horizontal
options:
main-pane-height: 90%
panes:
- Dev:
- clear
- Main:
- clear

31
home-manager/flake.nix Normal file
View file

@ -0,0 +1,31 @@
{
description = "Home Manager configuration of warrentyexpired";
inputs = {
# Specify the source of Home Manager and Nixpkgs.
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{ nixpkgs, home-manager, ... }:
let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
in
{
homeConfigurations."warrentyexpired" = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
# Specify your home configuration modules here, for example,
# the path to your home.nix.
modules = [ ./home.nix ];
# Optionally use extraSpecialArgs
# to pass through arguments to home.nix
};
};
}

112
home-manager/home.nix Normal file
View file

@ -0,0 +1,112 @@
{ config, pkgs, ... }:
{
imports = [
./modules/fastfetch.nix
./modules/fuzzel.nix
./modules/tmux.nix
./modules/fish.nix
./modules/ghostty.nix
./modules/nvim
./modules/scripts.nix
];
# Home Manager needs a bit of information about you and the paths it should
# manage.
home.username = "warrentyexpired";
home.homeDirectory = "/home/warrentyexpired";
# This value determines the Home Manager release that your configuration is
# compatible with. This helps avoid breakage when a new Home Manager release
# introduces backwards incompatible changes.
#
# You should not change this value, even if you update Home Manager. If you do
# want to update the value, then make sure to first check the Home Manager
# release notes.
home.stateVersion = "25.11"; # Please read the comment before changing.
# The home.packages option allows you to install Nix packages into your
# environment.
home.packages = with pkgs; [
papirus-icon-theme
adwaita-icon-theme
bibata-cursors
# # Adds the 'hello' command to your environment. It prints a friendly
# # "Hello, world!" when run.
# pkgs.hello
# # It is sometimes useful to fine-tune packages, for example, by applying
# # overrides. You can do that directly here, just don't forget the
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
# # fonts?
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
# # You can also create simple shell scripts directly inside your
# # configuration. For example, this adds a command 'my-hello' to your
# # environment:
# (pkgs.writeShellScriptBin "my-hello" ''
# echo "Hello, ${config.home.username}!"
# '')
];
# Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'.
home.file = {
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
# # symlink to the Nix store copy.
# ".screenrc".source = dotfiles/screenrc;
# # You can also set the file content immediately.
# ".gradle/gradle.properties".text = ''
# org.gradle.console=verbose
# org.gradle.daemon.idletimeout=3600000
# '';
"./Pictures/Wallpapers" = {
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/NixOS/home-manager/files/Wallpapers";
recursive = true;
};
"./.ssh" = {
#source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/NixOS/home-manager/files/ssh";
source = ./files/ssh;
recursive = true;
};
"./.config/tmuxinator/Workspace.yml" = {
source = ./files/tmuxinator.yml;
};
"./.bashrc" = {
source = ./files/bashrc;
};
"./.config/niri" = {
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/NixOS/home-manager/files/niri";
recursive = true;
};
"./.config/DankMaterialShell" = {
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/NixOS/home-manager/files/dms";
recursive = true;
};
};
# Home Manager can also manage your environment variables through
# 'home.sessionVariables'. These will be explicitly sourced when using a
# shell provided by Home Manager. If you don't want to manage your shell
# through Home Manager then you have to manually source 'hm-session-vars.sh'
# located at either
#
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
#
# or
#
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
#
# or
#
# /etc/profiles/per-user/warrentyexpired/etc/profile.d/hm-session-vars.sh
#
home.sessionVariables = {
# EDITOR = "emacs";
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}

View file

@ -0,0 +1,107 @@
{ config, pkgs, ... }: {
programs.fastfetch = {
enable = true;
settings = {
display = {
separator = " -> ";
};
modules = [
{
type = "custom";
format = "{#90}";
}
{ type = "title"; }
{
type = "custom";
format = "{#90}";
}
{
type = "custom";
format = "{#90}";
}
# OS and Software Info
{
type = "os";
key = " OS";
format = "{pretty-name}";
keyColor = "36";
}
{
type = "kernel";
key = " Kernel";
keyColor = "36";
}
{
type = "uptime";
key = " 󰅐 Uptime";
keyColor = "36";
}
{
type = "packages";
key = " 󰏖 Packages";
keyColor = "36";
}
{
type = "shell";
key = " Shell";
keyColor = "36";
}
{
type = "wm";
key = " WM";
keyColor = "36";
}
{
type = "terminal";
key = " Terminal";
keyColor = "36";
}
# Hardware Info
{
type = "host";
key = " PC";
keyColor = "green";
}
{
type = "cpu";
key = " CPU";
keyColor = "green";
}
{
type = "gpu";
key = " 󰍛 GPU";
keyColor = "green";
}
{
type = "disk";
key = " Disk";
keyColor = "green";
}
{
type = "memory";
key = " 󰑭 RAM";
keyColor = "green";
}
{
type = "swap";
key = " 󰓡 Swap";
keyColor = "green";
}
{
type = "display";
key = " 󰍹 Monitor";
keyColor = "green";
}
{
type = "custom";
format = "{#90}";
}
"break"
{
type = "custom";
format = "{#90}{#90} {#31} {#32} {#33} {#34} {#35} {#36} {#37} {#38} {#39} {#90} ";
}
];
};
};
}

289
home-manager/modules/fish.nix Executable file
View file

@ -0,0 +1,289 @@
{ config, pkgs, ... }: {
programs.fish = {
enable = true;
interactiveShellInit = ''
set fish_greeting ""
set -gx DOTNET_ROOT $HOME/.dotnet
fish_add_path $DOTNET_ROOT
fish_add_path $DOTNET_ROOT/tools
set -gx DOTNET_SYSTEM_NET_DISABLEIPV6 1
bind \cd\cd\cd delete-or-exit
bind \cf 'ts; commandline -f repaint'
if type -q eza
alias ls='eza --color=always --group-directories-first --icons'
alias ll='eza -a --color=always --group-directories-first --icons'
alias la='eza -al --group-directories-first --icons'
alias lt='eza -aT --level=2 --group-directories-first --icons'
alias l.='eza -ad .* --group-directories-first --icons'
else
printf "You may want to install eza\n"
end
if not set -q TMUX
tmux attach-session -t Main 2>/dev/null; or tmux new-session -s Main
end
'';
shellAliases = {
rebuild = "sudo nixos-rebuild switch --flake $HOME/NixOS#damagedProperty";
hms = "home-manager switch";
sshavatar = "ssh warrentyexpired@192.168.88.111";
sshvaultnas = "ssh warrentyexpired@192.168.88.100";
sshservarr = "ssh warrentyexpired@192.168.88.101";
sshdocker = "ssh warrentyexpired@192.168.88.102";
sshlive = "ssh mementoadmin@uo-memento.com";
sshproxy = "ssh warrentyexpired@192.168.88.200";
stff = "mpv --autofit=10%";
s = "goto s";
g = "goto g";
l = "goto l";
mv = "mv -i --backup=t";
cat = "bat";
};
shellAbbrs = {
sshracknerd = ''mosh -p 60001 192.227.229.130 --ssh="ssh -p 5522"'';
};
functions = {
ts = {
description = "Tmux session manager with fuzzy search and quick jump";
body = ''
echo -e ""
# 1. Show Active Sessions
set -l active_sessions (tmux list-sessions 2>/dev/null)
if test -n "$active_sessions"
echo -e (set_color 99ff99)"󱫟 Active Sessions:"(set_color normal)
for line in $active_sessions
echo -e " $line"
end
echo ""
else
echo -e (set_color 555555)"(No active sessions)"(set_color normal)
echo ""
end
# 2. Provide choices
echo -e (set_color 00afaf)"󰒓 Select an option:"(set_color normal)
echo -e " [1] Pick from active sessions (Fuzzy search)"
echo -e " [2] Create NEW custom session"
echo -e " [w] Enter Tmuxinator Workspaces"
echo -e " [d] Detach from current session"
echo -e " [x] Kill a session"
echo -e " [Enter] Quick jump to "(set_color -o)"Main"(set_color normal)
echo ""
read -l -P "Choice > " choice
switch "$choice"
case 1
set -l session (tmux list-sessions -F "#{session_name}" 2>/dev/null | fzf --exit-0 --height=15% --reverse --header="Select Session")
if test -n "$session"
if set -q TMUX
tmux switch-client -t "$session"
else
tmux attach-session -t "$session"
end
end
case 2
read -l -P "Enter name for new session: " new_name
if test -n "$new_name"
env -u TMUX tmux new-session -d -s "$new_name" 2>/dev/null
if set -q TMUX
tmux switch-client -t "$new_name"
else
tmux attach-session -t "$new_name"
end
end
case d D
if set -q TMUX; tmux detach-client; else; echo "You aren't in a tmux session!"; end
case w W
if type -q tmuxinator
tmuxinator start Workspace
else
echo (set_color red)"Error: tmuxinator is not installed."(set_color normal)
end
case x X
set -l session (tmux list-sessions -F "#{session_name}" 2>/dev/null | fzf --exit-0 --height=15% --reverse --header="Select Session to KILL")
if test -n "$session"
tmux kill-session -t "$session"
echo "Killed session: $session"
ts
end
case "" "*"
env -u TMUX tmux new-session -d -s Main 2>/dev/null
if set -q TMUX; tmux switch-client -t Main; else; tmux attach-session -t Main; end
end
commandline -f repaint
'';
};
lookfor = {
description = "Lookfor (d)irectory, (f)ile (a)ll (pattern)";
body = ''
if test (count $argv) -lt 2
echo "Usage: lookfor (f)ile|(d)irectory|(a)ll "pattern""
return 1
end
set -l type_flag $argv[1]
set -l pattern $argv[2]
switch $type_flag
case f
find . -type f -name "*$pattern*" 2>/dev/null
case d
find . -type d -name "*$pattern*" 2>/dev/null
case a
find . -name "*$pattern*" 2>/dev/null
case *
echo "Invalid type: $type_flag. Use f for file or d for directory."
return 1
end
'';
};
topsort = {
description = "Sort files large to small.";
body = ''
du -sh * | sort -rh | head -10
'';
};
fish_prompt = {
body = ''
set -l white (set_color white)
set -l brwhite (set_color brwhite)
set -l green (set_color green)
set -l red (set_color red)
set -l blue (set_color blue)
# Line 1: ┌─ [user] @ [host] - homeFiles status
echo -s $white" ["$green$USER$white"] "$brwhite"@ " $white"["$red$hostname$white"]"
# Line 2: └─ [directory]
set -l full_path (string replace -r "^$HOME" "~" $PWD)
echo -s $white" ["$blue$full_path$white"]"
# Line 3: └─ [(git_branch)] or [$e]
echo -n $white" ["
set -l git_info (gitinfo 2>/dev/null)
if test -n "$git_info"
echo -n $git_info
else
echo -n $brwhite"\$"
end
echo -n $white"]"
# Final prompt symbol and reset
echo -n $brwhite" "
set_color normal
'';
};
gitinfo = {
body = ''
if git rev-parse --is-inside-work-tree >/dev/null 2>&1
set -l branch (git branch --show-current)
set -l staged ""
set -l dirty ""
set -l untracked ""
if not git diff --quiet
set dirty (set_color yellow)"*"
end
if not git diff --cached --quiet
set staged (set_color green)"+"
end
set -l untracked_files (git ls-files --others --exclude-standard)
if test -n "$untracked_files"
set untracked (set_color red)" *"
end
echo (set_color magenta)"($branch)"$staged$dirty$untracked(set_color normal)
end
'';
};
cdtmp = {
body = ''
set -l directory
if set -q argv[1]
set -l folder_name (string replace -all / _ $argv[1])
set directory "/var/tmp/cdtmp.$folder_name"
mkdir -p "$directory"
else
set directory (mktemp -d --tmpdir=/var/tmp cdtmp.XXXXXXXX)
end
if test -d "$directory"
cd "$directory"
end
'';
};
stffpl = {
body = ''
mpv --autofit=10% --playlist="$argv[1]"
'';
};
mkcd = {
body = ''
mkdir -p $argv
and cd $argv[-1]
'';
};
goto = {
body = ''
set -l gotoConfig "$HOME/.config/goto/bookmarks"
set -l gotoDir "$HOME/.config/goto"
mkdir -p "$gotoDir"
touch "$gotoConfig"
set -l command $argv[1]
set -l bookmark_name $argv[2]
if test -z "$command"
echo "Usage: goto s <name> (save current directory)"
echo " goto g <name> (go to saved directory)"
echo " goto d <name> (delete a bookmark)"
echo " goto l (list all bookmarks)"
echo " goto e (edit bookmarks file)"
return
end
switch $command
case s # Save bookmarks
if test -z "$bookmark_name"
echo "Error: Must provide a bookmark name to save."
return 1
end
sed -i "/^$bookmark_name:/d" "$gotoConfig"
echo "$bookmark_name:"(pwd) >> "$gotoConfig"
echo "Bookmark **$bookmark_name** saved to: **"(pwd)"**"
case g # Go to bookmark
if test -z "$bookmark_name"
echo "Error: Must provide a bookmark name to go to."
return 1
end
set -l target_path (grep "^$bookmark_name:" "$gotoConfig" | cut -d ':' -f 2)
if test -z "$target_path"
echo "Error: Bookmark **$bookmark_name** not found."
return 1
end
if test -d "$target_path"
cd "$target_path"
echo "Jumping to: **$target_path**"
else
echo "Error: Directory **$target_path** does not exist or is not a directory"
end
case d # Delete bookmark
if test -z "$bookmark_name"
echo "Error: Must provide a bookmark name to delete."
return 1
end
if grep -q "^$bookmark_name:" "$gotoConfig"
sed -i "/^$bookmark_name:/d" "$gotoConfig"
echo "Bookmark **$bookmark_name** deleted."
else
echo "Error: Bookmark **$bookmark_name** not found."
return 1
end
case e # Edit bookmarks file
if set -q EDITOR
$EDITOR "$gotoConfig"
else
nano "$gotoConfig"
end
case l # List bookmarks
if not test -s "$gotoConfig"
echo "No bookmarks saved yet."
return 0
end
echo "___ **Bookmarks** (Stored in: $gotoDir) ___"
column -t -s ':' "$gotoConfig"
case '*'
echo "Invalid command: $command"
goto # Show usage
end
'';
};
};
};
}

27
home-manager/modules/fuzzel.nix Executable file
View file

@ -0,0 +1,27 @@
{ pkgs, ... }: {
programs.fuzzel = {
enable = true;
settings = {
main = {
font = "JetBrainsMono Nerd Font:size=16"; # Thin often maps to weight in Nix
dpi-aware = "no";
terminal = "${pkgs.ghostty}/bin/ghostty";
lines = 20;
width = 50;
icons-enabled = "yes";
icon-theme = "Papirus-Nord";
};
colors = {
background = "121212ee";
text = "ffffffff";
selection = "444444ee";
selection-text = "acbeb1ff";
border = "3c4541ff";
};
border = {
radius = 5;
width = 2; # Added a small width so your border color actually shows
};
};
};
}

View file

@ -0,0 +1,56 @@
{ config, pkgs, ... }: {
home.file.".config/ghostty/config".text = ''
# Font Configuration
font-size = 12
# Window Configuration
window-decoration = false
window-padding-x = 12
window-padding-y = 12
background-opacity = 0.90
background-blur-radius = 32
# Cursor Configuration
cursor-style = block
cursor-style-blink = true
# Scrollback
scrollback-limit = 3023
# Terminal features
mouse-hide-while-typing = true
copy-on-select = false
confirm-close-surface = false
# Disable annoying copied to clipboard
app-notifications = no-clipboard-copy,no-config-reload
# Key bindings
keybind = ctrl+shift+n=new_window
keybind = ctrl+t=new_tab
keybind = ctrl+plus=increase_font_size:1
keybind = ctrl+minus=decrease_font_size:1
keybind = ctrl+zero=reset_font_size
# Material 3 UI elements
unfocused-split-opacity = 0.7
unfocused-split-fill = #44464f
# Tab configuration
gtk-titlebar = false
# Shell integration
shell-integration = detect
shell-integration-features = cursor,sudo,title,no-cursor
keybind = shift+enter=text:\n
# Rando stuff
gtk-single-instance = true
# Dank color generation
config-file = ./themes/dankcolors
'';
home.packages = with pkgs; [
ghostty
];
}

View file

@ -0,0 +1,9 @@
{ config, pkgs, ... }: {
imports = [
./options.nix
./plugins.nix
./keymaps.nix
./init.nix
./neovim.nix
];
}

View file

@ -0,0 +1,7 @@
{ pkgs, ... }: {
xdg.configFile."nvim/init.lua".text = ''
require("options")
require("keymaps")
require("plugins")
'';
}

View file

@ -0,0 +1,23 @@
{ ... }: {
xdg.configFile."nvim/lua/keymaps.lua".text = ''
vim.g.mapleader = " "
vim.g.maplocalleader = " "
local keymap = vim.keymap.set
keymap('n', '<leader>ps', ':Lazy<CR>')
keymap('n', '<leader>o', ':update<CR> :source<CR>')
keymap('n', '<leader>w', ':write<CR>')
keymap('n', '<leader>q', ':quit<CR>')
keymap('n', '<leader>QQ', ':q!<CR>')
keymap('n', '<leader>wq', ':wq<CR>')
keymap('n', '<leader>r', ':set wrap!<CR>')
keymap('n', '<leader>vs', ':vsplit<CR>')
keymap('n', '<leader>hs', ':split<CR>')
keymap('n', '<Tab>', ':bnext<CR>')
keymap('n', '<leader>e', ':Oil --float<CR>')
keymap('n', '<leader>b', ':Telescope buffers<CR>')
keymap('n', '<leader>ff', ':Telescope find_files<CR>')
keymap('n', '<leader>fg', ':Telescope live_grep<CR>')
keymap('n', '<leader>n', ':set nonumber norelativenumber<CR>')
'';
}

View file

@ -0,0 +1,18 @@
{ pkgs, ... }: {
programs.neovim = {
enable = true;
defaultEditor = true;
extraPackages = with pkgs; [
lua-language-server
nil
gcc
gnumake
unzip
wget
curl
ripgrep
fd
lua-language-server
];
};
}

View file

@ -0,0 +1,22 @@
{ ... }: {
xdg.configFile."nvim/lua/options.lua".text = ''
local opt = vim.opt
opt.showmode = false
opt.number = true
opt.relativenumber = true
opt.tabstop = 4
opt.shiftwidth = 4
opt.expandtab = true
opt.autoindent = true
opt.smartindent = true
opt.termguicolors = true
opt.background = "dark"
opt.signcolumn = "yes"
opt.cursorline = true
opt.listchars = "tab: ,multispace:| ,eol:󰌑"
opt.list = true
opt.winborder = "rounded"
opt.backspace = "indent,eol,start"
opt.clipboard:append("unnamedplus")
'';
}

View file

@ -0,0 +1,135 @@
{ pkgs, ... }: {
xdg.configFile."nvim/lua/plugins.lua".text = ''
-- 1. Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable",
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
-- 2. Setup Plugins
require("lazy").setup({
spec = {
-- Colorschemes
{ "RomanAverin/charleston.nvim", priority = 1000 },
-- Status line
{
'nvim-lualine/lualine.nvim',
dependencies = { 'nvim-tree/nvim-web-devicons' },
config = function()
require('lualine').setup({
options = {
theme = 'charleston', -- It should pick up your theme automatically
component_separators = { left = '', right = ''},
section_separators = { left = '', right = ''},
globalstatus = true, -- Nice modern single bar at the bottom
},
sections = {
lualine_a = {'mode'},
lualine_b = {'branch', 'diff', 'diagnostics'},
lualine_c = {'filename'},
lualine_x = {'encoding', 'fileformat', 'filetype'},
lualine_y = {'progress'},
lualine_z = {'location'}
},
})
end
},
-- Completion & UI
{
'saghen/blink.cmp',
dependencies = 'rafamadriz/friendly-snippets',
version = '*',
opts = {
keymap = { preset = 'default' },
appearance = {
use_nvim_cmp_as_default = true,
nerd_font_variant = 'mono'
},
sources = {
default = { 'lsp', 'path', 'snippets', 'buffer' },
},
}
},
-- LSP Configuration (Updated for Neovim 0.11+)
{
"neovim/nvim-lspconfig",
dependencies = { 'saghen/blink.cmp' },
config = function()
-- In Neovim 0.11, we use the native vim.lsp.config API
local capabilities = require('blink.cmp').get_lsp_capabilities()
-- List the servers you want to enable
local servers = { "lua_ls", "nil_ls" }
for _, server in ipairs(servers) do
vim.lsp.config(server, {
install = {
-- This prevents lspconfig from trying to install things
-- since Nix is handling the binaries
enabled = false,
},
capabilities = capabilities,
})
-- Enable the server
vim.lsp.enable(server)
end
end
},
-- Navigation & Files
{ "stevearc/oil.nvim", opts = { default_file_explorer = true } },
{
"nvim-telescope/telescope.nvim",
dependencies = { "nvim-lua/plenary.nvim" }
},
-- Dashboard Configuration
{
"nvimdev/dashboard-nvim",
event = "VimEnter",
config = function()
local dashboard = require("dashboard")
dashboard.setup({
theme = "doom",
config = {
header = {
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
},
center = {
{ icon = " ", icon_hl = "@variable", desc = "New File", key = "n", action = "enew" },
{ icon = " ", icon_hl = "@variable", desc = "File Explorer", key = "e", action = "Oil --float" },
{ icon = "󰮗 ", icon_hl = "@variable", desc = "Find File", key = "f", action = "Telescope find_files" },
{ icon = " ", icon_hl = "@variable", desc = "Find Text", key = "t", action = "Telescope live_grep" },
{ icon = "󰗼 ", icon_hl = "@variable", desc = "Quit", key = "q", action = "qa" },
},
footer = { "v" .. vim.version().major .. "." .. vim.version().minor },
},
})
end
},
},
install = { colorscheme = { "charleston" } },
checker = { enabled = true }, -- automatically check for plugin updates
})
-- Final Theme Load
vim.cmd("colorscheme charleston")
'';
}

View file

@ -0,0 +1,18 @@
{ pkgs, ... }:
let
# This packages your script and its dependencies
nerdfont-search = pkgs.writeShellScriptBin "nfPicker" ''
# We reference the CSV file.
# If you put nerdfont.csv in the same folder as this nix file:
CSV_PATH="${../files/nerdfont.csv}"
# Run the pipeline using packages from the Nix store
cat "$CSV_PATH" | ${pkgs.fuzzel}/bin/fuzzel -d | ${pkgs.gawk}/bin/gawk -F, '{printf $3}' | ${pkgs.wl-clipboard}/bin/wl-copy
${pkgs.wl-clipboard}/bin/wl-paste
'';
in
{
home.packages = [
nerdfont-search
];
}

44
home-manager/modules/tmux.nix Executable file
View file

@ -0,0 +1,44 @@
{ config, pkgs, ... }: {
programs.tmux = {
enable = true;
baseIndex = 1;
escapeTime = 0;
historyLimit = 10000;
mouse = true;
keyMode = "vi"; # Optional: sets vi mode for copy/paste
shortcut = "Space"; # Sets Prefix to Ctrl+Space
plugins = with pkgs; [
tmuxPlugins.sensible
tmuxPlugins.yank
];
extraConfig = ''
set -g renumber-windows on
set -g detach-on-destroy off
set -g set-clipboard on
unbind r
bind r source-file ~/.config/tmux/tmux.conf
bind h split-window -v -c "#{pane_current_path}"
bind v split-window -h -c "#{pane_current_path}"
bind X confirm-before -p "Kill session #S (y/n)" kill-session
set -g status-position top
set -g status-style "bg=default"
set -g status-justify "absolute-centre"
setw -g pane-border-status top
setw -g pane-border-format " "
setw -g pane-active-border-style "bg=default, fg=#E0E0E0"
setw -g pane-border-style "bg=default, fg=#E0E0E0"
setw -g pane-border-lines single
set -g window-status-current-format ""
set -g window-status-format ""
set -g window-status-separator ""
set -g status-left-length 100
set -g status-left "#{?client_prefix,#[fg=#CC0000] #S ,#[fg=#CCCC00] #S, #[fg=#66CC00] #S }"
set -ga status-left "#[bg=default,fg=#e0e0e0,none]"
set -ga status-left "#[bg=default,fg=#e0e0e0] #{pane_current_command} "
set -ga status-left "#[bg=default,fg=#e0e0e0,none]"
set -ga status-left "#[bg=default,fg=#0080ff] #{=/-32/...:#{s|/home/$USER|~|:pane_current_path}} "
set -g status-right ""
set -g status-right-length 0
'';
};
}

16
hosts/DistroboxArch.sh Executable file
View file

@ -0,0 +1,16 @@
if command -v yay &>/dev/null; then
echo "Yay installed, skipping"
else
echo "Installing Yay"
sudo pacman -Syu
sudo pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
cd ../
rm -rf yay
fi
echo "Installing pacman packages"
sudo pacman -S --needed nano ttf-dejavu ttf-liberation libice libsm pipewire pipewire-pulse mono git eza nano
echo "Installing yay packages"
yay -S --needed ironpython3

View file

@ -0,0 +1,246 @@
{ config, pkgs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
];
nixpkgs.overlays = [
(_: prev: {
openldap = prev.openldap.overrideAttrs {
doCheck = false; # False is a bit more honest on x86_64 systems
};
})
];
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.systemd-boot.consoleMode = "auto";
boot = {
consoleLogLevel = 3;
initrd.verbose = false;
initrd.systemd.enable = true;
kernelParams = [
"quiet" "splash" "intremap=on" "boot.shell_on_fail" "udev.log_priority=3" "rd.systemd.show_status=auto" "ipv6.disable=1"
];
plymouth.enable = true;
plymouth.font = "${pkgs.hack-font}/share/fonts/truetype/Hack-Regular.ttf";
plymouth.logo = "${pkgs.nixos-icons}/share/icons/hicolor/128x128/apps/nix-snowflake.png";
};
hardware.bluetooth = {
enable = true;
powerOnBoot = true;
settings = {
General = {
Experimental = true;
FastConnectable = true;
};
Policy = {
AutoEnable = true;
};
};
};
services.dbus.implementation = "dbus";
networking.hostName = "damagedProperty"; # Define your hostname.
networking.networkmanager.enable = true;
networking.enableIPv6 = false;
# Enable Flakes
nix.settings.experimental-features = [ "nix-command" "flakes" ];
time.timeZone = "America/New_York";
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
services.xserver.xkb = {
layout = "us";
variant = "";
};
users.users.warrentyexpired = {
isNormalUser = true;
shell = pkgs.fish;
description = "Micah L. Zellers";
extraGroups = [ "networkmanager" "wheel" "input" "joystick" ];
packages = with pkgs; [];
};
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
environment.systemPackages = with pkgs; [
wget
tmux
git
keyd
polkit_gnome
unzip
unrar
mosh
p7zip
tmuxinator
usbutils
github-cli
libdeflate
fastfetch
imv
wl-clipboard
btop
fzf
bat
ncdu
eza
gnome-text-editor
fuzzel
ghostty
xwayland
xwayland-satellite
vivaldi
vivaldi-ffmpeg-codecs
nautilus
gnome-disk-utility
discord
gnome-calculator
pinta
vlc
mpv
quickshell
matugen
cliphist
distrobox
podman
file-roller
vicinae
zed-editor
mono
screen
(bottles.override { removeWarningPopup = true; })
gnumake
lazygit
];
virtualisation.podman = {
enable = true;
dockerCompat = true;
defaultNetwork.settings.dns_enable = true;
};
services.gvfs.enable = true;
services.udisks2.enable = true;
services.printing.enable = true;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
systemd.user.services.polkit-gnome-authentication-agent-1 = {
description = "gnome-authentication-agent-1";
wantedBy = [ "graphical-session.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
programs.nix-ld.enable = true;
programs.nix-ld.libraries = with pkgs; [
libpulseaudio
alsa-lib
icu
openssl
zlib
fontconfig
freetype
libGL
sdl3
vulkan-loader
libX11
libXext
libXcursor
libXi
libXrandr
libICE
libSM
mono
libdeflate
libargon2
];
programs.steam.enable = true;
programs.fish.enable = true;
programs.niri.enable = true;
programs.dms-shell = {
enable = true;
systemd.enable = true;
enableSystemMonitoring = true;
enableDynamicTheming = true;
enableAudioWavelength = true;
enableClipboardPaste = true;
};
services.displayManager.dms-greeter = {
enable = true;
compositor.name = "niri";
};
systemd.user.services.xwayland-satellite = {
description = "Xwayland outside your Wayland compositor";
wantedBy = [ "graphical-session.target" ];
partOf = [ "graphical-session.target" ];
serviceConfig = {
ExecStart = "${pkgs.xwayland-satellite}/bin/xwayland-satellite";
Restart = "on-failure";
};
};
fonts.packages = with pkgs; [
nerd-fonts.jetbrains-mono
nerd-fonts.fira-code
nerd-fonts.meslo-lg
];
fonts.fontconfig = {
defaultFonts = {
monospace = [ "JetBrainsMono Nerd Font" ];
sansSerif = [ "DejaVu Sans" ];
};
};
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
nix.settings.auto-optimise-store = true;
services.avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
services.blueman.enable = true;
services.keyd = {
enable = true;
keyboards = {
default = {
ids = [ "*" ];
settings = {
main = {
capslock = "~";
};
shift = {
capslock = "`";
left = "home";
right = "end";
};
};
};
};
};
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
system.stateVersion = "25.11"; # Did you read the comment?
}

View file

@ -0,0 +1,50 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/mapper/luks-a656cbb9-03cc-4c26-96c0-35df28f30e75";
fsType = "btrfs";
options = [ "subvol=@" ];
};
boot.initrd.luks.devices."luks-a656cbb9-03cc-4c26-96c0-35df28f30e75".device = "/dev/disk/by-uuid/a656cbb9-03cc-4c26-96c0-35df28f30e75";
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/6948-9FE2";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
fileSystems."/home" =
{ device = "/dev/mapper/luks-a7cfbbf7-5d22-46e4-85c4-e64666db4ab6";
fsType = "btrfs";
};
boot.initrd.luks.devices."luks-a7cfbbf7-5d22-46e4-85c4-e64666db4ab6".device = "/dev/disk/by-uuid/a7cfbbf7-5d22-46e4-85c4-e64666db4ab6";
fileSystems."/mnt/fileStorage" =
{ device = "/dev/mapper/luks-a476201c-0098-41aa-b1d8-c68af6b23e5f";
fsType = "btrfs";
};
boot.initrd.luks.devices."luks-a476201c-0098-41aa-b1d8-c68af6b23e5f".device = "/dev/disk/by-uuid/a476201c-0098-41aa-b1d8-c68af6b23e5f";
swapDevices =
[ { device = "/dev/disk/by-uuid/b287a61e-b01f-48d6-9e59-cd35892e3f88"; }
];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

1887
hosts/dotnet-install.sh vendored Executable file

File diff suppressed because it is too large Load diff

60
hosts/flakes/tazuo/flake.nix Executable file
View file

@ -0,0 +1,60 @@
{
description = "TazUO FHS Environment";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
};
outputs = { self, nixpkgs }:
let
system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; };
tazuo-fhs = pkgs.buildFHSEnv {
name = "tazuo-fhs";
targetPkgs = pkgs: (with pkgs; [
libpulseaudio
alsa-lib
icu
openssl
zlib
fontconfig
freetype
libGL
sdl3
vulkan-loader
libX11
libXext
libXcursor
libXi
libXrandr
libICE
libSM
]);
runScript = "bash -c '/mnt/fileStorage/TazUOLauncher/TazUOLauncher'";
};
tazuo-desktop = pkgs.makeDesktopItem {
name = "TazUO";
exec = "${tazuo-fhs}/bin/tazuo-fhs";
icon = "tazuo-icon";
desktopName = "TazUO";
genericName = "Ultima Online Client";
categories = [ "Game" ];
};
tazuo-icon = pkgs.stdenv.mkDerivation {
name = "tazuo-icon";
src = ./.;
installPhase = ''
mkdir -p $out/share/icons/hicolor/256x256/apps
cp tazuo-icon.png $out/share/icons/hicolor/256x256/apps/tazuo-icon.png
'';
};
in
{
packages.${system}.default = pkgs.symlinkJoin {
name = "tazuo-package";
paths = [ tazuo-fhs tazuo-desktop tazuo-icon ];
};
};
}

2
hosts/flakes/tazuo/install.sh Executable file
View file

@ -0,0 +1,2 @@
nix flake update
nix profile add .

BIN
hosts/flakes/tazuo/tazuo-icon.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View file

@ -0,0 +1,114 @@
{ config, pkgs, ... }:
{
imports =
[
./hardware-configuration.nix
];
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot = {
consoleLogLevel = 3;
initrd.verbose = false;
initrd.systemd.enable = true;
kernelParams = [
"quiet" "splash" "intremap=on" "boot.shell_on_fail" "udev.log_priority=3" "rd.systemd.show_status=auto"
];
plymouth.enable = true;
plymouth.font = "${pkgs.hack-font}/share/fonts/truetype/Hack-Regular.ttf";
plymouth.logo = "${pkgs.nixos-icons}/share/icons/hicolor/128x128/apps/nix-snowflake.png";
};
networking.hostName = "damagedLaptop"; # Define your hostname.
networking.networkmanager.enable = true;
# Enable Flakes
nix.settings.experimental-features = [ "nix-command" "flakes" ];
time.timeZone = "America/New_York";
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
services.xserver.enable = true;
services.xserver.displayManager.lightdm.enable = true;
services.xserver.desktopManager.cinnamon.enable = true;
services.xserver.xkb = {
layout = "us";
variant = "";
};
services.printing.enable = true;
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
users.users.warrentyexpired = {
isNormalUser = true;
description = "Micah L. Zellers";
extraGroups = [ "networkmanager" "wheel" ];
packages = with pkgs; [
vivaldi
#vivaldi-ffmpeg-codes
discord
vlc
mpv
];
};
users.users.dana = {
isNormalUser = true;
description = "Dana L. Zellers";
extraGroups = [ "networkmanager" "wheel" ];
packages = with pkgs; [
];
};
programs.firefox.enable = true;
nixpkgs.config.allowUnfree = true;
# $ nix search wget
environment.systemPackages = with pkgs; [
wget
curl
git
unzip
unrar
p7zip
tmux
tmuxinator
btop
fzf
bat
ncdu
google-chrome
];
services.gvfs.enable = true;
services.udisks2.enable = true;
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
nix.settings.auto-optimise-store = true;
services.avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
system.stateVersion = "25.11"; # Did you read the comment?
}

View file

@ -0,0 +1,50 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/mapper/luks-f9489eb0-dbb2-4d70-b18a-f1c7f32f8090";
fsType = "btrfs";
options = [ "subvol=@" ];
};
boot.initrd.luks.devices."luks-f9489eb0-dbb2-4d70-b18a-f1c7f32f8090".device = "/dev/disk/by-uuid/f9489eb0-dbb2-4d70-b18a-f1c7f32f8090";
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/81B7-DE3A";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
fileSystems."/home" =
{ device = "/dev/mapper/luks-356a8b96-5644-436a-9c0d-cd1f16865b5c";
fsType = "btrfs";
};
boot.initrd.luks.devices."luks-356a8b96-5644-436a-9c0d-cd1f16865b5c".device = "/dev/disk/by-uuid/356a8b96-5644-436a-9c0d-cd1f16865b5c";
fileSystems."/mnt/fileStorage" =
{ device = "/dev/mapper/luks-97d5b300-9b64-49d6-b8a0-6335afe3e072";
fsType = "btrfs";
};
boot.initrd.luks.devices."luks-97d5b300-9b64-49d6-b8a0-6335afe3e072".device = "/dev/disk/by-uuid/97d5b300-9b64-49d6-b8a0-6335afe3e072";
swapDevices =
[ { device = "/dev/disk/by-uuid/35fa175f-6ace-49b8-a131-877531c97c7b"; }
];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

4
hosts/sshPerms.sh Executable file
View file

@ -0,0 +1,4 @@
#!/usr/bin/env bash
chmod 700 $HOME/.ssh
chmod 644 $HOME/.ssh/id_ed25519.pub
chmod 600 $HOME/.ssh/id_ed25519