#W# Initial Commit: NixOS
6
.gitignore
vendored
Normal 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
|
|
@ -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
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
BIN
home-manager/files/Wallpapers/0-ship-at-sea.jpg
Executable file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
home-manager/files/Wallpapers/1-matte-black.jpg
Executable file
|
After Width: | Height: | Size: 1,010 KiB |
BIN
home-manager/files/Wallpapers/2-osaka-jade-bg.jpg
Executable file
|
After Width: | Height: | Size: 1 MiB |
BIN
home-manager/files/Wallpapers/3-ristretto.jpg
Executable file
|
After Width: | Height: | Size: 798 KiB |
BIN
home-manager/files/Wallpapers/BeachCars.png
Executable file
|
After Width: | Height: | Size: 6.1 MiB |
BIN
home-manager/files/Wallpapers/CarOnMarsFront.png
Executable file
|
After Width: | Height: | Size: 1.7 MiB |
BIN
home-manager/files/Wallpapers/CarOnMarsRear.jpg
Executable file
|
After Width: | Height: | Size: 3.5 MiB |
BIN
home-manager/files/Wallpapers/CarOnMarsSide.png
Executable file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
home-manager/files/Wallpapers/CityStreetDay.jpg
Executable file
|
After Width: | Height: | Size: 559 KiB |
BIN
home-manager/files/Wallpapers/CoffeeBattery.png
Executable file
|
After Width: | Height: | Size: 38 KiB |
BIN
home-manager/files/Wallpapers/Dark_Nature.png
Executable file
|
After Width: | Height: | Size: 3.5 MiB |
BIN
home-manager/files/Wallpapers/DesertSun.png
Executable file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
home-manager/files/Wallpapers/FourSeasons.jpg
Executable file
|
After Width: | Height: | Size: 6.5 MiB |
BIN
home-manager/files/Wallpapers/FutureCityScape.jpg
Executable file
|
After Width: | Height: | Size: 1.5 MiB |
BIN
home-manager/files/Wallpapers/Garage.jpg
Executable file
|
After Width: | Height: | Size: 994 KiB |
BIN
home-manager/files/Wallpapers/GasStationBench.jpg
Executable file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
home-manager/files/Wallpapers/GeoMountian.jpeg
Executable file
|
After Width: | Height: | Size: 441 KiB |
BIN
home-manager/files/Wallpapers/NightGlow.jpg
Executable file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
home-manager/files/Wallpapers/Rainnight.jpg
Executable file
|
After Width: | Height: | Size: 3.6 MiB |
BIN
home-manager/files/Wallpapers/SnowyCabin.png
Executable file
|
After Width: | Height: | Size: 7.5 MiB |
BIN
home-manager/files/Wallpapers/StoreFront.jpg
Executable file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
home-manager/files/Wallpapers/Summer.jpg
Executable file
|
After Width: | Height: | Size: 469 KiB |
BIN
home-manager/files/Wallpapers/SynthLandScape.jpg
Executable file
|
After Width: | Height: | Size: 626 KiB |
BIN
home-manager/files/Wallpapers/SynthSun.png
Executable file
|
After Width: | Height: | Size: 3.2 MiB |
BIN
home-manager/files/Wallpapers/TheTree.jpg
Executable file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
home-manager/files/Wallpapers/Walkway.jpg
Executable file
|
After Width: | Height: | Size: 2.3 MiB |
BIN
home-manager/files/Wallpapers/blue.jpg
Executable file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
home-manager/files/Wallpapers/clouds.png
Executable file
|
After Width: | Height: | Size: 3.7 MiB |
BIN
home-manager/files/Wallpapers/gruv-gasstation.png
Executable file
|
After Width: | Height: | Size: 913 KiB |
BIN
home-manager/files/Wallpapers/panes.jpg
Executable file
|
After Width: | Height: | Size: 203 KiB |
BIN
home-manager/files/Wallpapers/result.png
Executable file
|
After Width: | Height: | Size: 276 KiB |
BIN
home-manager/files/Wallpapers/space.png
Executable file
|
After Width: | Height: | Size: 1.5 MiB |
BIN
home-manager/files/Wallpapers/spacehawks.png
Executable file
|
After Width: | Height: | Size: 12 MiB |
BIN
home-manager/files/Wallpapers/summer-time.jpg
Executable file
|
After Width: | Height: | Size: 684 KiB |
BIN
home-manager/files/Wallpapers/wallhaven-2yl6px.jpg
Executable file
|
After Width: | Height: | Size: 382 KiB |
15
home-manager/files/bashrc
Normal 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!"
|
||||||
5
home-manager/files/dms/plugin_settings.json
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"dankDiskUsage": {
|
||||||
|
"enabled": false
|
||||||
|
}
|
||||||
|
}
|
||||||
556
home-manager/files/dms/settings.json
Normal 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
393
home-manager/files/niri/config.kdl
Normal 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"
|
||||||
10
home-manager/files/niri/dms/alttab.kdl
Normal 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
|
||||||
|
}
|
||||||
|
}
|
||||||
0
home-manager/files/niri/dms/binds.kdl
Normal file
9
home-manager/files/niri/dms/cursor.kdl
Normal 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
|
||||||
|
}
|
||||||
22
home-manager/files/niri/dms/layout.kdl
Normal 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
|
||||||
|
}
|
||||||
0
home-manager/files/niri/dms/outputs.kdl
Normal file
0
home-manager/files/niri/dms/windowrules.kdl
Normal file
9
home-manager/files/niri/dms/wpblur.kdl
Normal 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
|
|
@ -0,0 +1,2 @@
|
||||||
|
Host *
|
||||||
|
SetEnv TERM=xterm-256color
|
||||||
8
home-manager/files/ssh/id_ed25519
Normal 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-----
|
||||||
1
home-manager/files/ssh/id_ed25519.pub
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMvOXXwkL3BR+pNXXEj1x7MiVpvCH0B3gKz/ZwuN+34V warrentyexpired@damagedProperty
|
||||||
12
home-manager/files/tmuxinator.yml
Normal 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
|
|
@ -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
|
|
@ -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;
|
||||||
|
}
|
||||||
107
home-manager/modules/fastfetch.nix
Executable 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
|
|
@ -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
|
|
@ -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
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
56
home-manager/modules/ghostty.nix
Executable 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
|
||||||
|
];
|
||||||
|
}
|
||||||
9
home-manager/modules/nvim/default.nix
Executable file
|
|
@ -0,0 +1,9 @@
|
||||||
|
{ config, pkgs, ... }: {
|
||||||
|
imports = [
|
||||||
|
./options.nix
|
||||||
|
./plugins.nix
|
||||||
|
./keymaps.nix
|
||||||
|
./init.nix
|
||||||
|
./neovim.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
7
home-manager/modules/nvim/init.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
{ pkgs, ... }: {
|
||||||
|
xdg.configFile."nvim/init.lua".text = ''
|
||||||
|
require("options")
|
||||||
|
require("keymaps")
|
||||||
|
require("plugins")
|
||||||
|
'';
|
||||||
|
}
|
||||||
23
home-manager/modules/nvim/keymaps.nix
Executable 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>')
|
||||||
|
'';
|
||||||
|
}
|
||||||
18
home-manager/modules/nvim/neovim.nix
Executable 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
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
22
home-manager/modules/nvim/options.nix
Executable 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")
|
||||||
|
'';
|
||||||
|
}
|
||||||
135
home-manager/modules/nvim/plugins.nix
Executable 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")
|
||||||
|
'';
|
||||||
|
}
|
||||||
18
home-manager/modules/scripts.nix
Executable 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
|
|
@ -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
|
|
@ -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
|
||||||
246
hosts/desktop/configuration.nix
Normal 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?
|
||||||
|
}
|
||||||
50
hosts/desktop/hardware-configuration.nix
Normal 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
60
hosts/flakes/tazuo/flake.nix
Executable 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
|
|
@ -0,0 +1,2 @@
|
||||||
|
nix flake update
|
||||||
|
nix profile add .
|
||||||
BIN
hosts/flakes/tazuo/tazuo-icon.png
Executable file
|
After Width: | Height: | Size: 3.9 KiB |
114
hosts/laptop/configuration.nix
Normal 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?
|
||||||
|
}
|
||||||
50
hosts/laptop/hardware-configuration.nix
Normal 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
|
|
@ -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
|
||||||