tbh i dont remember but its working kinda...
This commit is contained in:
parent
ea28a3852c
commit
10c2e1a5e3
@ -69,7 +69,6 @@
|
|||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
desktop = mkHost "desktop" [
|
desktop = mkHost "desktop" [
|
||||||
./modules/system/nvidia.nix
|
./modules/system/nvidia.nix
|
||||||
./modules/system/nfs.nix
|
|
||||||
./modules/system/display-manager/sddm.nix
|
./modules/system/display-manager/sddm.nix
|
||||||
./modules/system/gaming.nix
|
./modules/system/gaming.nix
|
||||||
];
|
];
|
||||||
|
@ -12,17 +12,35 @@
|
|||||||
../../modules/system/nix-valet.nix
|
../../modules/system/nix-valet.nix
|
||||||
../../modules/system/device-management/logitech.nix
|
../../modules/system/device-management/logitech.nix
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
../../modules/system/gaming.nix
|
||||||
];
|
];
|
||||||
|
# Set primary monitor for SDDM login screen
|
||||||
|
services.xserver.displayManager.sddm.settings = {
|
||||||
|
General = {
|
||||||
|
DisplayServer = "wayland";
|
||||||
|
};
|
||||||
|
Wayland = {
|
||||||
|
CompositorCommand = "Hyprland";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Alternative: Set primary monitor via environment variable
|
||||||
|
environment.variables = {
|
||||||
|
WLR_DRM_PRIMARY = "DP-2"; # Main HP OMEN monitor
|
||||||
|
};
|
||||||
|
|
||||||
|
#Polkit for gparted
|
||||||
|
security.polkit.enable = true;
|
||||||
|
|
||||||
# Desktop Specific Hyprland Monitor Config
|
# Desktop Specific Hyprland Monitor Config
|
||||||
home-manager.users.${config.users.users.cartier.name or "cartier"} = {
|
home-manager.users.${config.users.users.cartier.name or "cartier"} = {
|
||||||
wayland.windowManager.hyprland.settings.monitor = [
|
wayland.windowManager.hyprland.settings.monitor = [
|
||||||
# Main monitor (HP OMEN, right side, horizontal, 1440p @ 240Hz)
|
# Main monitor (HP OMEN, right side, horizontal, 1440p @ 240Hz)
|
||||||
"DP-2, 2560x1440@240, 1080x0, 1"
|
"DP-2, 2560x1440@240, 1080x0, 1"
|
||||||
# Secondary monitor (Samsung, left side, vertical, 1080p @ 239.76Hz)
|
# Secondary monitor (Samsung, left side, vertical, 1080p @ 239.76Hz)
|
||||||
"DP-1, 1920x1080@239.76, 0x0, 1, transform, 1"
|
"DP-1, 1920x1080@239.76, 0x0, 1, transform, 1"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Mount second hard drive
|
# Mount second hard drive
|
||||||
boot = {
|
boot = {
|
||||||
@ -31,25 +49,36 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/mnt/working-files" = {
|
fileSystems."/home/cartier/gamer-drive" = {
|
||||||
device = "/dev/disk/by-uuid/BE8EBBDA8EBB8A03";
|
device = "/dev/disk/by-label/linux";
|
||||||
fsType = "ntfs";
|
fsType = "ext4";
|
||||||
options = [
|
options = [
|
||||||
"uid=1000" # your user ID (check with `id -u`)
|
"defaults"
|
||||||
"gid=100" # your primary group ID (check with `id -g`)
|
# "noatime"
|
||||||
"dmask=022" # dir permissions
|
# "user"
|
||||||
"fmask=133" # file permissions
|
|
||||||
"nofail"
|
|
||||||
|
|
||||||
# make Nautilus show it with a friendly name/icon
|
|
||||||
"x-gvfs-show"
|
|
||||||
"x-gvfs-name=Working Files"
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
fileSystems."/home/cartier/windows-drive" = {
|
||||||
|
device = "/dev/disk/by-label/windows";
|
||||||
|
fsType = "ntfs";
|
||||||
|
options = [
|
||||||
|
"defaults"
|
||||||
|
"uid=1000"
|
||||||
|
"gid=100"
|
||||||
|
"umask=022"
|
||||||
|
"fmask=133"
|
||||||
|
"dmask=022"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"d /home/cartier/gamer-drive 0755 cartier users -"
|
||||||
|
];
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
systemPackages = with pkgs; [
|
systemPackages = with pkgs; [
|
||||||
pkgs.ntfs3g
|
pkgs.ntfs3g
|
||||||
|
gparted
|
||||||
|
xorg.xrandr
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
364
modules/home/common/vscode.nix
Normal file
364
modules/home/common/vscode.nix
Normal file
@ -0,0 +1,364 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.vscode = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.vscode; # or pkgs.vscodium for the open-source version
|
||||||
|
|
||||||
|
# Extensions
|
||||||
|
extensions =
|
||||||
|
with pkgs.vscode-extensions;
|
||||||
|
[
|
||||||
|
# adpyke.vscode-sql-formatter
|
||||||
|
# adrianwilczynski.alpine-js-intellisense
|
||||||
|
# anthropic.claude-code
|
||||||
|
bmewburn.vscode-intelephense-client
|
||||||
|
bradlc.vscode-tailwindcss
|
||||||
|
catppuccin.catppuccin-vsc-icons
|
||||||
|
christian-kohler.path-intellisense
|
||||||
|
# cierra.livewire-vscode
|
||||||
|
# delgan.qml-format
|
||||||
|
eamodio.gitlens
|
||||||
|
formulahendry.auto-close-tag
|
||||||
|
formulahendry.auto-rename-tag
|
||||||
|
foxundermoon.shell-format
|
||||||
|
golang.go
|
||||||
|
gruntfuggly.todo-tree
|
||||||
|
# isudox.vscode-jetbrains-keybindings
|
||||||
|
jdinhlife.gruvbox
|
||||||
|
jnoortheen.nix-ide
|
||||||
|
# kennylong.kubernetes-yaml-formatter
|
||||||
|
mikestead.dotenv
|
||||||
|
ms-python.debugpy
|
||||||
|
ms-python.python
|
||||||
|
ms-python.vscode-pylance
|
||||||
|
# ms-python.vscode-python-envs
|
||||||
|
# ms-vsliveshare.vsliveshare
|
||||||
|
# neilbrayfield.php-docblocker
|
||||||
|
# onecentlin.laravel-blade
|
||||||
|
# phiter.phpstorm-snippets
|
||||||
|
pkief.material-icon-theme
|
||||||
|
redhat.ansible
|
||||||
|
redhat.vscode-yaml
|
||||||
|
shd101wyy.markdown-preview-enhanced
|
||||||
|
svelte.svelte-vscode
|
||||||
|
tamasfe.even-better-toml
|
||||||
|
# theqtcompany.qt-core
|
||||||
|
# theqtcompany.qt-qml
|
||||||
|
vscodevim.vim
|
||||||
|
vue.volar
|
||||||
|
# zignd.html-css-class-completion
|
||||||
|
|
||||||
|
]
|
||||||
|
++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
||||||
|
# # Extensions not in nixpkgs
|
||||||
|
# {
|
||||||
|
# name = "copilot";
|
||||||
|
# publisher = "github";
|
||||||
|
# version = "1.86.82";
|
||||||
|
# sha256 = "sha256-example-hash-here";
|
||||||
|
# }
|
||||||
|
];
|
||||||
|
|
||||||
|
# User settings
|
||||||
|
userSettings = {
|
||||||
|
# Disable the fucking copilot chat
|
||||||
|
"github.copilot.chat.showChatPanel" = false;
|
||||||
|
"github.copilot.enable" = false;
|
||||||
|
"window.titleBarStyle" = "custom";
|
||||||
|
"window.customTitleBarVisibility" = "auto";
|
||||||
|
"workbench.colorTheme" = lib.mkForce "Gruvbox Dark Hard";
|
||||||
|
"git.autofetch" = true;
|
||||||
|
"editor.fontSize" = lib.mkForce 18;
|
||||||
|
"editor.snippetSuggestions" = "top";
|
||||||
|
"editor.formatOnPaste" = true;
|
||||||
|
"editor.formatOnSave" = true;
|
||||||
|
"qt-qml.qmlls.useQmlImportPathEnvVar" = true;
|
||||||
|
"[qml]" = {
|
||||||
|
"editor.defaultFormatter" = "Delgan.qml-format";
|
||||||
|
"editor.formatOnSave" = true;
|
||||||
|
};
|
||||||
|
"[yaml]" = {
|
||||||
|
"editor.formatOnSave" = false;
|
||||||
|
};
|
||||||
|
"[astro]" = {
|
||||||
|
"editor.formatOnSave" = false;
|
||||||
|
};
|
||||||
|
"[dockerfile]" = {
|
||||||
|
"editor.formatOnSave" = false;
|
||||||
|
"editor.formatOnPaste" = false;
|
||||||
|
"editor.formatOnType" = false;
|
||||||
|
"editor.defaultFormatter" = "ms-azuretools.vscode-containers";
|
||||||
|
};
|
||||||
|
"tailwindCSS.includeLanguages" = {
|
||||||
|
"templ" = "html";
|
||||||
|
};
|
||||||
|
"emmet.triggerExpansionOnTab" = true;
|
||||||
|
"editor.autoIndent" = "full";
|
||||||
|
"files.eol" = "\n";
|
||||||
|
"emmet.excludeLanguages" = [ ];
|
||||||
|
"emmet.includeLanguages" = {
|
||||||
|
"blade" = "html";
|
||||||
|
"templ" = "html";
|
||||||
|
"markdown" = "html";
|
||||||
|
};
|
||||||
|
"explorer.openEditors.visible" = 0;
|
||||||
|
"editor.tabCompletion" = "on";
|
||||||
|
"workbench.editor.highlightModifiedTabs" = true;
|
||||||
|
"git.enableSmartCommit" = true;
|
||||||
|
"extensions.ignoreRecommendations" = true;
|
||||||
|
"blade.format.enable" = true;
|
||||||
|
"editor.autoClosingBrackets" = "always";
|
||||||
|
"material-icon-theme.folders.theme" = "specific";
|
||||||
|
"security.workspace.trust.untrustedFiles" = "open";
|
||||||
|
"editor.unusualLineTerminators" = "auto";
|
||||||
|
"files.associations" = { };
|
||||||
|
"intelephense.environment.phpVersion" = "8.1.0";
|
||||||
|
"git.useEditorAsCommitInput" = false;
|
||||||
|
"editor.inlineSuggest.enabled" = true;
|
||||||
|
"[xml]" = {
|
||||||
|
"editor.defaultFormatter" = "redhat.vscode-xml";
|
||||||
|
};
|
||||||
|
"terminal.integrated.fontSize" = lib.mkForce 18;
|
||||||
|
"explorer.confirmDragAndDrop" = false;
|
||||||
|
"editor.unicodeHighlight.nonBasicASCII" = false;
|
||||||
|
"markdown-preview-enhanced.previewTheme" = "github-dark.css";
|
||||||
|
"window.commandCenter" = false;
|
||||||
|
"workbench.editor.editorActionsLocation" = "hidden";
|
||||||
|
"workbench.layoutControl.enabled" = false;
|
||||||
|
"editor.minimap.enabled" = false;
|
||||||
|
"workbench.activityBar.location" = "hidden";
|
||||||
|
"editor.fontFamily" = lib.mkForce "'Fira Code Retina'";
|
||||||
|
"editor.fontLigatures" = true;
|
||||||
|
"keyboard.dispatch" = "keyCode";
|
||||||
|
"workbench.iconTheme" = "catppuccin-frappe";
|
||||||
|
"search.useIgnoreFiles" = false;
|
||||||
|
"search.exclude" = {
|
||||||
|
# Hide everything in /vendor; except the "laravel" and "livewire" folder.
|
||||||
|
"**/vendor/{[^l];?[^ai]}*" = true;
|
||||||
|
# Hide everything in /public; except "index.php"
|
||||||
|
"**/public/{[^i];?[^n]}*" = true;
|
||||||
|
"**/node_modules" = true;
|
||||||
|
"**/dist" = true;
|
||||||
|
"**/_ide_helper.php" = true;
|
||||||
|
"**/composer.lock" = true;
|
||||||
|
"**/package-lock.json" = true;
|
||||||
|
"storage" = true;
|
||||||
|
".phpunit.result.cache" = true;
|
||||||
|
};
|
||||||
|
"scm.diffDecorations" = "none";
|
||||||
|
"editor.hover.enabled" = false;
|
||||||
|
"editor.matchBrackets" = "never";
|
||||||
|
"workbench.tips.enabled" = false;
|
||||||
|
"editor.colorDecorators" = false;
|
||||||
|
"git.decorations.enabled" = false;
|
||||||
|
"workbench.startupEditor" = "none";
|
||||||
|
"editor.lightbulb.enabled" = "off";
|
||||||
|
"editor.selectionHighlight" = false;
|
||||||
|
"editor.overviewRulerBorder" = false;
|
||||||
|
"editor.renderLineHighlight" = "none";
|
||||||
|
"editor.occurrencesHighlight" = "off";
|
||||||
|
"problems.decorations.enabled" = false;
|
||||||
|
"editor.renderControlCharacters" = false;
|
||||||
|
"editor.hideCursorInOverviewRuler" = true;
|
||||||
|
"editor.gotoLocation.multipleReferences" = "goto";
|
||||||
|
"editor.gotoLocation.multipleDefinitions" = "goto";
|
||||||
|
"editor.gotoLocation.multipleDeclarations" = "goto";
|
||||||
|
"workbench.editor.enablePreviewFromQuickOpen" = false;
|
||||||
|
"editor.gotoLocation.multipleImplementations" = "goto";
|
||||||
|
"editor.gotoLocation.multipleTypeDefinitions" = "goto";
|
||||||
|
"editor.cursorSurroundingLines" = 16;
|
||||||
|
"workbench.editor.pinnedTabsOnSeparateRow" = true;
|
||||||
|
"window.menuBarVisibility" = "compact";
|
||||||
|
"vim.leader" = "<space>";
|
||||||
|
"vim.normalModeKeyBindings" = [
|
||||||
|
{
|
||||||
|
"before" = [
|
||||||
|
"g"
|
||||||
|
"r"
|
||||||
|
];
|
||||||
|
"commands" = [ "editor.action.goToReferences" ];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"before" = [
|
||||||
|
"g"
|
||||||
|
"v"
|
||||||
|
];
|
||||||
|
"commands" = [ "editor.action.revealDefinitionAside" ];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"before" = [
|
||||||
|
"<leader>"
|
||||||
|
"o"
|
||||||
|
];
|
||||||
|
"commands" = [ "workbench.action.quickOpen" ];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"before" = [
|
||||||
|
"<leader>"
|
||||||
|
"p"
|
||||||
|
];
|
||||||
|
"commands" = [ "workbench.action.showCommands" ];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"before" = [
|
||||||
|
"<leader>"
|
||||||
|
"i"
|
||||||
|
];
|
||||||
|
"commands" = [ "workbench.action.quickOpenPreviousRecentlyUsedEditorInGroup" ];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
"vim.insertModeKeyBindings" = [
|
||||||
|
{
|
||||||
|
"before" = [
|
||||||
|
"j"
|
||||||
|
"j"
|
||||||
|
];
|
||||||
|
"after" = [ "<Esc>" ];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
"vim.visualModeKeyBindings" = [
|
||||||
|
{
|
||||||
|
"before" = [ "<Enter>" ];
|
||||||
|
"after" = [ "<Esc>" ];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
"workbench.editor.showTabs" = "none";
|
||||||
|
"ansible.lightspeed.enabled" = false;
|
||||||
|
"ansible.lightspeed.suggestions.enabled" = false;
|
||||||
|
"[sql]" = {
|
||||||
|
"editor.formatOnSave" = false;
|
||||||
|
};
|
||||||
|
"svelte.enable-ts-plugin" = true;
|
||||||
|
"workbench.sideBar.location" = "left";
|
||||||
|
"workbench.panel.defaultLocation" = "right";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Keybindings
|
||||||
|
keybindings = [
|
||||||
|
{
|
||||||
|
"key" = "ctrl+k";
|
||||||
|
"command" = "git.commitAll";
|
||||||
|
"when" = "!inDebugMode && !terminalFocus";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"key" = "ctrl+shift+k";
|
||||||
|
"command" = "git.pushTo";
|
||||||
|
"when" = "!inDebugMode && !terminalFocus";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"key" = "ctrl+shift+n";
|
||||||
|
"command" = "workbench.action.quickOpen";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"key" = "shift+escape";
|
||||||
|
"command" = "workbench.action.terminal.toggleTerminal";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"key" = "ctrl+shift+`";
|
||||||
|
"command" = "workbench.action.closeAllEditors";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"key" = "ctrl+shift+1";
|
||||||
|
"command" = "workbench.files.action.collapseExplorerFolders";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"key" = "ctrl+shift+e";
|
||||||
|
"command" = "workbench.view.explorer";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"key" = "ctrl+shift+e";
|
||||||
|
"command" = "workbench.action.toggleSidebarVisibility";
|
||||||
|
"when" = "!editorFocus";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"key" = "ctrl+1";
|
||||||
|
"command" = "workbench.action.toggleSidebarVisibility";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"key" = "ctrl+a";
|
||||||
|
"command" = "explorer.newFile";
|
||||||
|
"when" = "explorerViewletVisible && filesExplorerFocus && !inputFocus";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"key" = "ctrl+shift+a";
|
||||||
|
"command" = "explorer.newFolder";
|
||||||
|
"when" = "explorerViewletVisible && filesExplorerFocus && !inputFocus";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"key" = "ctrl+d";
|
||||||
|
"command" = "deleteFile";
|
||||||
|
"when" = "explorerViewletVisible && filesExplorerFocus && !inputFocus";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"key" = "ctrl+\\";
|
||||||
|
"command" = "workbench.action.splitEditorRight";
|
||||||
|
"when" = "editorFocus";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"key" = "ctrl+h";
|
||||||
|
"command" = "workbench.action.navigateLeft";
|
||||||
|
"when" = "editorFocus";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"key" = "ctrl+l";
|
||||||
|
"command" = "workbench.action.navigateRight";
|
||||||
|
"when" = "editorFocus";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"key" = "ctrl+*";
|
||||||
|
"command" = "workbench.action.increaseViewSize";
|
||||||
|
"when" = "editorFocus";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"key" = "ctrl+/";
|
||||||
|
"command" = "workbench.action.decreaseViewSize";
|
||||||
|
"when" = "editorFocus";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"key" = "ctrl+shift+w";
|
||||||
|
"command" = "workbench.action.joinAllGroups";
|
||||||
|
"when" = "editorFocus";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"key" = "ctrl+shift+alt+p";
|
||||||
|
"command" = "editor.emmet.action.wrapWithAbbreviation";
|
||||||
|
"when" = "editorTextFocus";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"key" = "ctrl+shift+alt+i";
|
||||||
|
"command" = "editor.emmet.action.balanceIn";
|
||||||
|
"when" = "editorTextFocus";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"key" = "ctrl+shift+alt+o";
|
||||||
|
"command" = "editor.emmet.action.balanceOut";
|
||||||
|
"when" = "editorTextFocus";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"key" = "alt+n";
|
||||||
|
"command" = "workbench.action.quickOpenSelectNext";
|
||||||
|
"when" = "inQuickOpen";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"key" = "alt+p";
|
||||||
|
"command" = "workbench.action.quickOpenSelectPrevious";
|
||||||
|
"when" = "inQuickOpen";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"key" = "alt+0";
|
||||||
|
"command" = "workbench.action.closeQuickOpen";
|
||||||
|
"when" = "inQuickOpen";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
"key" = "ctrl+shift+\\";
|
||||||
|
"command" = "workbench.action.toggleAuxiliaryBar";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
@ -15,6 +15,7 @@
|
|||||||
./common/yazi.nix
|
./common/yazi.nix
|
||||||
./common/fzf.nix
|
./common/fzf.nix
|
||||||
./hyprland
|
./hyprland
|
||||||
|
./common/vscode.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
@ -88,6 +89,7 @@ services.udiskie = {
|
|||||||
XDG_CONFIG_HOME = "${config.home.homeDirectory}/.config";
|
XDG_CONFIG_HOME = "${config.home.homeDirectory}/.config";
|
||||||
XDG_DATA_HOME = "${config.home.homeDirectory}/.local/share";
|
XDG_DATA_HOME = "${config.home.homeDirectory}/.local/share";
|
||||||
XDG_STATE_HOME = "${config.home.homeDirectory}/.local/state";
|
XDG_STATE_HOME = "${config.home.homeDirectory}/.local/state";
|
||||||
|
QT_QPA_PLATFORM = "wayland";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
# Media Keys
|
# Media Keys
|
||||||
|
|
||||||
bindle = [
|
bindle = [
|
||||||
", XF86AudioRaiseVolume, exec, wpctl set-volume 54 1%+"
|
", XF86AudioRaiseVolume, exec, wpctl set-volume 54 1%+"
|
||||||
", XF86AudioLowerVolume, exec, wpctl set-volume 54 1%-"
|
", XF86AudioLowerVolume, exec, wpctl set-volume 54 1%-"
|
||||||
@ -32,6 +32,8 @@
|
|||||||
];
|
];
|
||||||
bind = [
|
bind = [
|
||||||
# Start programs
|
# Start programs
|
||||||
|
"$mod, a, exec, discord"
|
||||||
|
"$mod, z, exec, obsidian"
|
||||||
"$mod, t, exec, $terminal"
|
"$mod, t, exec, $terminal"
|
||||||
"$mod CTRL, 1, exec, $browser"
|
"$mod CTRL, 1, exec, $browser"
|
||||||
"$mod SHIFT, p, exec, $browser --incognito"
|
"$mod SHIFT, p, exec, $browser --incognito"
|
||||||
@ -43,7 +45,6 @@
|
|||||||
"$mod ALT, p, exec, eza -ld $HOME/projects/* --color=never | awk '{print $7}' | wofi --dmenu --prompt \"Open project:\" | xargs -I{} code {} -n && exit"
|
"$mod ALT, p, exec, eza -ld $HOME/projects/* --color=never | awk '{print $7}' | wofi --dmenu --prompt \"Open project:\" | xargs -I{} code {} -n && exit"
|
||||||
"$mod, RETURN, exec, $webapphttps://claude.ai"
|
"$mod, RETURN, exec, $webapphttps://claude.ai"
|
||||||
|
|
||||||
|
|
||||||
# Window and workspace navigation
|
# Window and workspace navigation
|
||||||
# Move between windows with vim keys
|
# Move between windows with vim keys
|
||||||
"$mod, h, movefocus, l"
|
"$mod, h, movefocus, l"
|
||||||
@ -54,11 +55,18 @@
|
|||||||
# Move between workspaces
|
# Move between workspaces
|
||||||
"$mod ALT, l, movetoworkspace, r+1"
|
"$mod ALT, l, movetoworkspace, r+1"
|
||||||
"$mod ALT, h, movetoworkspace, r-1"
|
"$mod ALT, h, movetoworkspace, r-1"
|
||||||
"$mod SHIFT, l, workspace, r+1"
|
# "$mod SHIFT, l, workspace, r+1"
|
||||||
"$mod SHIFT, h, workspace, r-1"
|
# "$mod SHIFT, h, workspace, r-1"
|
||||||
# Window management
|
# Window management
|
||||||
"$mod, 0, layoutmsg, rollnext"
|
"$mod, 0, layoutmsg, rollnext"
|
||||||
|
|
||||||
|
# Switch between Monitors
|
||||||
|
"$mod SHIFT, l, movewindow, mon:-1"
|
||||||
|
"$mod SHIFT, h, movewindow, mon:+1"
|
||||||
|
|
||||||
|
# Grimblast Screenshots
|
||||||
|
"$mod, Print, exec, grimblast copy area"
|
||||||
|
|
||||||
"$mod, f, fullscreen, 0"
|
"$mod, f, fullscreen, 0"
|
||||||
"$mod, v, togglefloating, active"
|
"$mod, v, togglefloating, active"
|
||||||
"$mod, SPACE, exec, wofi --show drun"
|
"$mod, SPACE, exec, wofi --show drun"
|
||||||
|
@ -5,8 +5,6 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./binds.nix
|
./binds.nix
|
||||||
@ -14,6 +12,8 @@
|
|||||||
./hyprpanel.nix
|
./hyprpanel.nix
|
||||||
./wofi.nix
|
./wofi.nix
|
||||||
./desktop-env.nix
|
./desktop-env.nix
|
||||||
|
./screenshots.nix
|
||||||
|
#./hyprpanel2.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
home = {
|
home = {
|
||||||
@ -26,10 +26,8 @@
|
|||||||
libnotify
|
libnotify
|
||||||
|
|
||||||
# Screenshots
|
# Screenshots
|
||||||
grim
|
|
||||||
slurp
|
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
hyprshot
|
|
||||||
|
|
||||||
# Desktop env
|
# Desktop env
|
||||||
hyprpanel
|
hyprpanel
|
||||||
@ -80,17 +78,23 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
workspace = [
|
workspace = [
|
||||||
"1, persistent:true"
|
"1, persistent:true, monitor:DP-2"
|
||||||
"2, persistent:true"
|
"2, persistent:true, monitor:DP-2"
|
||||||
"3, persistent:true"
|
"3, persistent:true, monitor:DP-2"
|
||||||
"4, persistent:true"
|
"4, persistent:true, monitor:DP-2"
|
||||||
"5, persistent:true"
|
"5, persistent:true, monitor:DP-2"
|
||||||
"6, persistent:true"
|
"6, persistent:true, monitor:DP-2"
|
||||||
];
|
];
|
||||||
|
|
||||||
# Window rules
|
# Window rules
|
||||||
|
|
||||||
windowrulev2 = [
|
windowrulev2 = [
|
||||||
"opacity 0.85, class:^(Code)$"
|
"opacity 0.85, class:^(Code)$"
|
||||||
|
"move 0 0,class:(flameshot),title:(flameshot)"
|
||||||
|
"pin,class:(flameshot),title:(flameshot)"
|
||||||
|
"fullscreenstate,class:(flameshot),title:(flameshot)"
|
||||||
|
"float,class:(flameshot),title:(flameshot)"
|
||||||
|
"monitor DP-2, class:^(flameshot)$"
|
||||||
];
|
];
|
||||||
|
|
||||||
decoration = {
|
decoration = {
|
||||||
|
@ -1,12 +1,19 @@
|
|||||||
{ inputs, pkgs, ... }:
|
{
|
||||||
|
inputs,
|
||||||
|
pkgs,
|
||||||
|
assets,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
home.file.".face.icon".source = "${assets}/user-icon.png";
|
||||||
programs.hyprpanel = {
|
programs.hyprpanel = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
bar = {
|
bar = {
|
||||||
layouts = {
|
layouts = {
|
||||||
"0" = {
|
# main monitor
|
||||||
|
"1" = {
|
||||||
left = [
|
left = [
|
||||||
"dashboard"
|
"dashboard"
|
||||||
"workspaces"
|
"workspaces"
|
||||||
@ -25,6 +32,18 @@
|
|||||||
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
# second monitor
|
||||||
|
"0" = {
|
||||||
|
left = [
|
||||||
|
"dashboard"
|
||||||
|
"workspaces"
|
||||||
|
"systray"
|
||||||
|
];
|
||||||
|
middle = [
|
||||||
|
"clock"
|
||||||
|
];
|
||||||
|
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
208
modules/home/hyprland/hyprpanel2.nix
Normal file
208
modules/home/hyprland/hyprpanel2.nix
Normal file
@ -0,0 +1,208 @@
|
|||||||
|
{ lib, ... }:
|
||||||
|
let
|
||||||
|
tokyo = lib.importJSON (
|
||||||
|
builtins.fetchurl {
|
||||||
|
url = "https://raw.githubusercontent.com/Jas-SinghFSU/HyprPanel/master/themes/tokyo_night.json";
|
||||||
|
sha256 = "0fpl12109cim5nfm9kx5zcd50i3avzvh2sl4syb40q12k2wi7ibj"; # nix-prefetch-url <url>
|
||||||
|
}
|
||||||
|
);
|
||||||
|
tokyo-moon = lib.importJSON (
|
||||||
|
builtins.fetchurl {
|
||||||
|
url = "https://raw.githubusercontent.com/Jas-SinghFSU/HyprPanel/master/themes/tokyo_night_moon.json";
|
||||||
|
sha256 = "14wmf4zv28zkkjswr5iy56imxfjyyp9aw624m19aigx9qckqi2p9"; # nix-prefetch-url <url>
|
||||||
|
}
|
||||||
|
);
|
||||||
|
cyberpunk = lib.importJSON (
|
||||||
|
builtins.fetchurl {
|
||||||
|
url = "https://raw.githubusercontent.com/Jas-SinghFSU/HyprPanel/refs/heads/master/themes/cyberpunk_vivid.json";
|
||||||
|
sha256 = "0wvx49zyka84wwzi8mxnvgjb5zbb41z1lw0asbj15yyi6k4d38ws"; # nix-prefetch-url <url>
|
||||||
|
}
|
||||||
|
);
|
||||||
|
nord = lib.importJSON (
|
||||||
|
builtins.fetchurl {
|
||||||
|
url = "https://raw.githubusercontent.com/Jas-SinghFSU/HyprPanel/refs/heads/master/themes/nord.json";
|
||||||
|
sha256 = "1gm1lbjrmah4ji8zvfz5dpsbfk0la2a1r431fynnafbnwb3mwxj8"; # nix-prefetch-url <url>
|
||||||
|
}
|
||||||
|
);
|
||||||
|
nord-vivid = lib.importJSON (
|
||||||
|
builtins.fetchurl {
|
||||||
|
url = "https://raw.githubusercontent.com/Jas-SinghFSU/HyprPanel/refs/heads/master/themes/nord_vivid.json";
|
||||||
|
sha256 = "05qdkvkqf58bgnibc54sfvmw210adi7h2hczjz6b1vx043wxgxan"; # nix-prefetch-url <url>
|
||||||
|
}
|
||||||
|
);
|
||||||
|
tokyo-vivid = lib.importJSON (
|
||||||
|
builtins.fetchurl {
|
||||||
|
url = "https://raw.githubusercontent.com/Jas-SinghFSU/HyprPanel/refs/heads/master/themes/tokyo_night_vivid.json";
|
||||||
|
sha256 = "09mhl9lkqya5lf306h6ynmfaxqngv9f1q1c27lmrwx0vriv97vkq"; # nix-prefetch-url <url>
|
||||||
|
}
|
||||||
|
);
|
||||||
|
one_dark = lib.importJSON (
|
||||||
|
builtins.fetchurl {
|
||||||
|
url = "https://raw.githubusercontent.com/Jas-SinghFSU/HyprPanel/refs/heads/master/themes/one_dark.json";
|
||||||
|
sha256 = "0034jb14fxfhm7669kp0ik0jgn7j7glyimsyvksxb88y6lpgqjw9"; # nix-prefetch-url <url>
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
mySettings = {
|
||||||
|
bar = {
|
||||||
|
autoHide = "never";
|
||||||
|
|
||||||
|
customModules = {
|
||||||
|
hypridle = {
|
||||||
|
isActiveCommand = "systemctl --user status hypridle.service | grep -q 'Active: active (running)' && echo 'yes' || echo 'no'";
|
||||||
|
startCommand = "systemctl --user start hypridle.service";
|
||||||
|
stopCommand = "systemctl --user stop hypridle.service";
|
||||||
|
};
|
||||||
|
storage.paths = [ "/" ];
|
||||||
|
hyprsunset = {
|
||||||
|
temperature = "4000K";
|
||||||
|
};
|
||||||
|
hypridle = {
|
||||||
|
};
|
||||||
|
netstat = {
|
||||||
|
networkInterface = "enp6s0f0";
|
||||||
|
label = true;
|
||||||
|
leftClick = "nm-applet";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
launcher.autoDetectIcon = true;
|
||||||
|
|
||||||
|
layouts = {
|
||||||
|
"0" = {
|
||||||
|
left = [ ];
|
||||||
|
middle = [ ];
|
||||||
|
right = [ ];
|
||||||
|
};
|
||||||
|
"1" = {
|
||||||
|
left = [ ];
|
||||||
|
middle = [ ];
|
||||||
|
right = [ ];
|
||||||
|
};
|
||||||
|
"2" = {
|
||||||
|
left = [
|
||||||
|
"dashboard"
|
||||||
|
"workspaces"
|
||||||
|
"media"
|
||||||
|
"volume"
|
||||||
|
];
|
||||||
|
middle = [
|
||||||
|
"clock"
|
||||||
|
];
|
||||||
|
right = [
|
||||||
|
"systray"
|
||||||
|
"netstat"
|
||||||
|
"hyprsunset"
|
||||||
|
"hypridle"
|
||||||
|
# "updates"
|
||||||
|
"notifications"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
network = {
|
||||||
|
label = true;
|
||||||
|
showWifiInfo = true;
|
||||||
|
truncation_size = 6;
|
||||||
|
truncation = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
workspaces = {
|
||||||
|
showAllActive = true;
|
||||||
|
showApplicationIcons = true;
|
||||||
|
showWsIcons = true;
|
||||||
|
show_icons = true;
|
||||||
|
identifier = true;
|
||||||
|
show_numbered = false;
|
||||||
|
workspaceMask = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
clock.format = "%a %b %d %I:%M:%S %p";
|
||||||
|
};
|
||||||
|
|
||||||
|
menus = {
|
||||||
|
clock.time = {
|
||||||
|
hideSeconds = false;
|
||||||
|
military = true;
|
||||||
|
};
|
||||||
|
dashboard.controls.enabled = true;
|
||||||
|
media = {
|
||||||
|
displayTimeTooltip = true;
|
||||||
|
noMediaText = "Nathan rn";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
theme = {
|
||||||
|
matugen = false;
|
||||||
|
|
||||||
|
font = {
|
||||||
|
name = "Monaspace Krypton";
|
||||||
|
label = "Monaspace Krypton Medium";
|
||||||
|
};
|
||||||
|
|
||||||
|
osd.enable = true;
|
||||||
|
|
||||||
|
bar = {
|
||||||
|
floating = false;
|
||||||
|
location = "bottom";
|
||||||
|
opacity = 90;
|
||||||
|
transparent = false;
|
||||||
|
|
||||||
|
border = {
|
||||||
|
location = "none";
|
||||||
|
width = "0.15em";
|
||||||
|
};
|
||||||
|
|
||||||
|
buttons = {
|
||||||
|
style = "wave";
|
||||||
|
borderSize = "0.02em";
|
||||||
|
enableBorders = false;
|
||||||
|
monochrome = false;
|
||||||
|
|
||||||
|
network.enableBorder = true;
|
||||||
|
systray.enableBorder = false;
|
||||||
|
clock.enableBorder = false;
|
||||||
|
|
||||||
|
windowtitle = {
|
||||||
|
icon = "#00ff19";
|
||||||
|
text = "#00d0d0";
|
||||||
|
};
|
||||||
|
|
||||||
|
workspaces = {
|
||||||
|
active = "#05ff00";
|
||||||
|
numbered_active_underline_color = "#00d0d0";
|
||||||
|
occupied = "#00d0d0";
|
||||||
|
};
|
||||||
|
|
||||||
|
modules = {
|
||||||
|
hypridle.enableBorder = true;
|
||||||
|
cava.enableBorder = true;
|
||||||
|
netstat = {
|
||||||
|
enableBorder = false;
|
||||||
|
spacing = "0.45em";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
menus.menu.media = {
|
||||||
|
artist = "#50ff00";
|
||||||
|
slider.primary = "#00e2c5";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
myOverrides = mySettings // {
|
||||||
|
"theme.bar.buttons.workspaces.numbered_active_highlighted_text_color" = "#21252b";
|
||||||
|
"theme.bar.buttons.style" = "wave";
|
||||||
|
"theme.bar.opacity" = "95";
|
||||||
|
"theme.bar.transparent" = "false";
|
||||||
|
# transparent = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
merged = lib.recursiveUpdate nord-vivid myOverrides;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
programs.hyprpanel.enable = true;
|
||||||
|
programs.hyprpanel.settings = merged;
|
||||||
|
}
|
15
modules/home/hyprland/screenshots.nix
Normal file
15
modules/home/hyprland/screenshots.nix
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
grimblast
|
||||||
|
grim
|
||||||
|
slurp
|
||||||
|
];
|
||||||
|
}
|
@ -59,5 +59,33 @@ in
|
|||||||
qtsvg
|
qtsvg
|
||||||
qtdeclarative # QtQuick core
|
qtdeclarative # QtQuick core
|
||||||
];
|
];
|
||||||
|
settings = {
|
||||||
|
X11 = {
|
||||||
|
DisplayCommand = "/etc/sddm/Xsetup";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Script for login screen to only show on primary monitor
|
||||||
|
environment.etc."sddm/Xsetup" = {
|
||||||
|
text = ''
|
||||||
|
#!/bin/sh
|
||||||
|
sleep 1
|
||||||
|
# Log to see if script runs
|
||||||
|
echo "SDDM Xsetup script running at $(date)" >> /tmp/sddm-setup.log
|
||||||
|
|
||||||
|
# List available displays
|
||||||
|
xrandr --query >> /tmp/sddm-setup.log 2>&1
|
||||||
|
|
||||||
|
# Configure monitors
|
||||||
|
echo "Setting DP-2 as primary" >> /tmp/sddm-setup.log
|
||||||
|
xrandr --output DP-2 --primary --auto >> /tmp/sddm-setup.log 2>&1
|
||||||
|
|
||||||
|
echo "Turning off DP-1" >> /tmp/sddm-setup.log
|
||||||
|
xrandr --output DP-1 --off >> /tmp/sddm-setup.log 2>&1
|
||||||
|
|
||||||
|
echo "Xsetup script completed" >> /tmp/sddm-setup.log
|
||||||
|
'';
|
||||||
|
mode = "0755";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
# Install Steam
|
# Install Steam
|
||||||
@ -8,4 +8,8 @@
|
|||||||
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
||||||
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
|
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
|
||||||
};
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
gamemode
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user