diff --git a/flake.lock b/flake.lock index b4beb38..6333848 100644 --- a/flake.lock +++ b/flake.lock @@ -153,7 +153,7 @@ }, "flake-utils_4": { "inputs": { - "systems": "systems_6" + "systems": "systems_5" }, "locked": { "lastModified": 1731533236, @@ -287,64 +287,6 @@ "type": "github" } }, - "niri": { - "inputs": { - "niri-stable": "niri-stable", - "niri-unstable": "niri-unstable", - "nixpkgs": [ - "nixpkgs" - ], - "nixpkgs-stable": "nixpkgs-stable_2", - "xwayland-satellite-stable": "xwayland-satellite-stable", - "xwayland-satellite-unstable": "xwayland-satellite-unstable" - }, - "locked": { - "lastModified": 1773725889, - "narHash": "sha256-htkVJrtaWJS7wQSXg8d26RR6jF3Iab2bYTNfvTgv05Q=", - "owner": "sodiboo", - "repo": "niri-flake", - "rev": "9987baf8f935a1b3b2aa89a44c13b3239ecc640e", - "type": "github" - }, - "original": { - "owner": "sodiboo", - "repo": "niri-flake", - "type": "github" - } - }, - "niri-stable": { - "flake": false, - "locked": { - "lastModified": 1756556321, - "narHash": "sha256-RLD89dfjN0RVO86C/Mot0T7aduCygPGaYbog566F0Qo=", - "owner": "YaLTeR", - "repo": "niri", - "rev": "01be0e65f4eb91a9cd624ac0b76aaeab765c7294", - "type": "github" - }, - "original": { - "owner": "YaLTeR", - "ref": "v25.08", - "repo": "niri", - "type": "github" - } - }, - "niri-unstable": { - "flake": false, - "locked": { - "lastModified": 1773130184, - "narHash": "sha256-3bwx4WqCB06yfQIGB+OgIckOkEDyKxiTD5pOo4Xz2rI=", - "owner": "YaLTeR", - "repo": "niri", - "rev": "b07bde3ee82dd73115e6b949e4f3f63695da35ea", - "type": "github" - }, - "original": { - "owner": "YaLTeR", - "repo": "niri", - "type": "github" - } - }, "nix-darwin": { "inputs": { "nixpkgs": [ @@ -456,22 +398,6 @@ "type": "github" } }, - "nixpkgs-stable_2": { - "locked": { - "lastModified": 1773705440, - "narHash": "sha256-xB30bbAp0e7ogSEYyc126mAJMt4FRFh8wtm6ADE1xuM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "48652e9d5aea46e555b3df87354280d4f29cd3a3", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-25.11", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs-unstable": { "locked": { "lastModified": 1741865919, @@ -521,22 +447,6 @@ } }, "nixpkgs_4": { - "locked": { - "lastModified": 1755186698, - "narHash": "sha256-wNO3+Ks2jZJ4nTHMuks+cxAiVBGNuEBXsT29Bz6HASo=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "fbcf476f790d8a217c3eab4e12033dc4a0f6d23c", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_5": { "locked": { "lastModified": 1769789167, "narHash": "sha256-kKB3bqYJU5nzYeIROI82Ef9VtTbu4uA3YydSk/Bioa8=", @@ -552,55 +462,10 @@ "type": "github" } }, - "noctalia": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ], - "noctalia-qs": [ - "noctalia-qs" - ] - }, - "locked": { - "lastModified": 1773670009, - "narHash": "sha256-LEiA7ntxR6Biep4fgD2Jh9bB1g2olRNAToFUS51szDs=", - "owner": "noctalia-dev", - "repo": "noctalia-shell", - "rev": "9511f1fce45ffe763d7954f3207e3dfd644c97f2", - "type": "github" - }, - "original": { - "owner": "noctalia-dev", - "repo": "noctalia-shell", - "type": "github" - } - }, - "noctalia-qs": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ], - "systems": "systems_5", - "treefmt-nix": "treefmt-nix" - }, - "locked": { - "lastModified": 1773629133, - "narHash": "sha256-9/GtCljeEYQAQlU4LB/o8cTJ8TzYvNCzf4ILnW5Rs3g=", - "owner": "noctalia-dev", - "repo": "noctalia-qs", - "rev": "5794d3a88fced826e1903164d77a7b07bdb93ff6", - "type": "github" - }, - "original": { - "owner": "noctalia-dev", - "repo": "noctalia-qs", - "type": "github" - } - }, "readlater-bot": { "inputs": { "flake-utils": "flake-utils_4", - "nixpkgs": "nixpkgs_5" + "nixpkgs": "nixpkgs_4" }, "locked": { "lastModified": 1772524468, @@ -625,13 +490,10 @@ "home-manager": "home-manager", "homebrew-cask": "homebrew-cask", "homebrew-core": "homebrew-core", - "niri": "niri", "nix-darwin": "nix-darwin", "nix-homebrew": "nix-homebrew", "nix-openclaw": "nix-openclaw", "nixpkgs": "nixpkgs_3", - "noctalia": "noctalia", - "noctalia-qs": "noctalia-qs", "readlater-bot": "readlater-bot" } }, @@ -713,21 +575,6 @@ } }, "systems_5": { - "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", - "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default-linux", - "type": "github" - } - }, - "systems_6": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -742,57 +589,6 @@ "type": "github" } }, - "treefmt-nix": { - "inputs": { - "nixpkgs": "nixpkgs_4" - }, - "locked": { - "lastModified": 1772660329, - "narHash": "sha256-IjU1FxYqm+VDe5qIOxoW+pISBlGvVApRjiw/Y/ttJzY=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "3710e0e1218041bbad640352a0440114b1e10428", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - }, - "xwayland-satellite-stable": { - "flake": false, - "locked": { - "lastModified": 1755491097, - "narHash": "sha256-m+9tUfsmBeF2Gn4HWa6vSITZ4Gz1eA1F5Kh62B0N4oE=", - "owner": "Supreeeme", - "repo": "xwayland-satellite", - "rev": "388d291e82ffbc73be18169d39470f340707edaa", - "type": "github" - }, - "original": { - "owner": "Supreeeme", - "ref": "v0.7", - "repo": "xwayland-satellite", - "type": "github" - } - }, - "xwayland-satellite-unstable": { - "flake": false, - "locked": { - "lastModified": 1773622265, - "narHash": "sha256-wToKwH7IgWdGLMSIWksEDs4eumR6UbbsuPQ42r0oTXQ=", - "owner": "Supreeeme", - "repo": "xwayland-satellite", - "rev": "a879e5e0896a326adc79c474bf457b8b99011027", - "type": "github" - }, - "original": { - "owner": "Supreeeme", - "repo": "xwayland-satellite", - "type": "github" - } - }, "zig": { "inputs": { "flake-compat": [ diff --git a/flake.nix b/flake.nix index 7418852..c0117c7 100644 --- a/flake.nix +++ b/flake.nix @@ -17,10 +17,12 @@ nix-homebrew.url = "github:zhaofengli/nix-homebrew"; homebrew-core = { url = "github:homebrew/homebrew-core"; + flake = false; }; homebrew-cask = { url = "github:homebrew/homebrew-cask"; + flake = false; }; @@ -44,11 +46,6 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - niri = { - url = "github:sodiboo/niri-flake"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - helium = { # url = "github:FKouhai/helium2nix/main"; url = "github:AlvaroParker/helium-nix"; @@ -58,17 +55,6 @@ readlater-bot = { url = "github:thegeneralist01/bookkeeper"; }; - - noctalia = { - url = "github:noctalia-dev/noctalia-shell"; - inputs.nixpkgs.follows = "nixpkgs"; - inputs.noctalia-qs.follows = "noctalia-qs"; - }; - - noctalia-qs = { - url = "github:noctalia-dev/noctalia-qs"; - inputs.nixpkgs.follows = "nixpkgs"; - }; }; outputs = diff --git a/hosts/thegeneralist/configuration.nix b/hosts/thegeneralist/configuration.nix index 8064501..b27c9f8 100644 --- a/hosts/thegeneralist/configuration.nix +++ b/hosts/thegeneralist/configuration.nix @@ -2,12 +2,7 @@ # your system. Help is available in the configuration.nix(5) man page, on # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). -{ - config, - pkgs, - inputs, - ... -}: +{ config, pkgs, inputs, ... }: { imports = [ ./hardware-configuration.nix ]; @@ -15,20 +10,12 @@ users.users.thegeneralist = { isNormalUser = true; description = "thegeneralist"; - extraGroups = [ - "wheel" - "audio" - "video" - "input" - "scanner" - ]; - shell = pkgs.zsh; + extraGroups = [ "wheel" "audio" "video" "input" "scanner" ]; + shell = pkgs.nushell; home = "/home/thegeneralist"; - openssh.authorizedKeys.keys = - let - inherit (import ../../keys.nix) thegeneralist; - in - [ thegeneralist ]; + openssh.authorizedKeys.keys = let + inherit (import ../../keys.nix) thegeneralist; + in [ thegeneralist ]; }; home-manager = { @@ -42,12 +29,10 @@ }; age.secrets.hostkey.file = ./hostkey.age; - services.openssh.hostKeys = [ - { - type = "ed25519"; - path = config.age.secrets.hostkey.path; - } - ]; + services.openssh.hostKeys = [{ + type = "ed25519"; + path = config.age.secrets.hostkey.path; + }]; # Some programs services.libinput.enable = true; @@ -67,3 +52,4 @@ system.stateVersion = "24.11"; } + diff --git a/lib/system.nix b/lib/system.nix index 9c5ac85..9fb0534 100644 --- a/lib/system.nix +++ b/lib/system.nix @@ -1,11 +1,11 @@ inputs: self: let - inherit (inputs.nixpkgs.lib) - hasSuffix filesystem attrValues filter getAttrFromPath + inherit (inputs.nixpkgs.lib) + hasSuffix filesystem attrValues filter getAttrFromPath hasAttrByPath mapAttrsToList concatMap; - + # Helper to collect all .nix files recursively in a directory - collectModules = path: + collectModules = path: if builtins.pathExists path then filter (hasSuffix ".nix") (filesystem.listFilesRecursive path) else []; @@ -29,7 +29,7 @@ let # Collect platform-specific modules modulesCommon = collectModules ../modules/common; - modulesLinux = collectModules ../modules/linux; + modulesLinux = collectModules ../modules/linux; modulesDarwin = collectModules ../modules/darwin; # Collect input modules by platform @@ -47,10 +47,10 @@ in # Main system builder function mkSystem = os: configFile: let - systemBuilder = if os == "darwin" + systemBuilder = if os == "darwin" then inputs.nix-darwin.lib.darwinSystem else inputs.nixpkgs.lib.nixosSystem; - + platformModules = if os == "darwin" then modulesDarwin ++ inputModulesDarwin else modulesLinux ++ inputModulesNixos; @@ -59,7 +59,7 @@ in specialArgs = inputs // { inherit inputs self os; }; - + modules = [ overlayModule configFile diff --git a/modules/common/nix.nix b/modules/common/nix.nix index aa7dc42..043f9ea 100644 --- a/modules/common/nix.nix +++ b/modules/common/nix.nix @@ -3,7 +3,6 @@ "https://cache.thegeneralist01.com/" "https://cache.garnix.io/" "https://cache.nixos.org/" - "https://niri.cachix.org" ]; in { # todo: gc @@ -24,7 +23,6 @@ in { extra-trusted-public-keys = [ "cache.thegeneralist01.com:jkKcenR877r7fQuWq6cr0JKv2piqBWmYLAYsYsSJnT4=" "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g=" - "niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964=" ]; trusted-users = [ "thegeneralist" "central" "root" "@build" "@wheel" "@admin" "jellyfin" "git" ]; diff --git a/modules/common/shell/0_nushell.nix b/modules/common/shell/0_nushell.nix index 28c69a0..0d66161 100644 --- a/modules/common/shell/0_nushell.nix +++ b/modules/common/shell/0_nushell.nix @@ -20,7 +20,7 @@ let unstable = import (builtins.fetchTarball { url = "https://github.com/NixOS/nixpkgs/archive/nixos-unstable.tar.gz"; - sha256 = if (config.isServer) then "sha256:0fgmdh1j6qrx64wq8wk2hry2rjh3rkvz9pch29l8zn49nlndvxy2" else (if (config.onLinux) then "sha256:03plivnr4cg0h8v7djf9g2jra09r45pmdiirmy4lvl2n1d4yb7ac" else "sha256:16xi1yijq2ccbp8254zc0b5fgz0igxvyf4yn349wj2ggk4cl6dgn"); + sha256 = if (config.isServer) then "sha256:0fgmdh1j6qrx64wq8wk2hry2rjh3rkvz9pch29l8zn49nlndvxy2" else (if (config.onLinux) then "sha256:0fgmdh1j6qrx64wq8wk2hry2rjh3rkvz9pch29l8zn49nlndvxy2" else "sha256:16xi1yijq2ccbp8254zc0b5fgz0igxvyf4yn349wj2ggk4cl6dgn"); }) { system = pkgs.system; }; package = unstable.nushell; in diff --git a/modules/common/shell/default.nix b/modules/common/shell/default.nix index eafb5da..a6f4a5e 100644 --- a/modules/common/shell/default.nix +++ b/modules/common/shell/default.nix @@ -71,12 +71,12 @@ in if config.isDarwin then ''[ -z "$INTELLIJ_ENVIRONMENT_READER" ] && [ -z "$skip" ]'' else - ''[ -z "$INTELLIJ_ENVIRONMENT_READER" ] && [ -z "$skip" ] && [ -z "$SSH_TTY" ]''; + ''[ -z "$INTELLIJ_ENVIRONMENT_READER" ] && [ -z "$skip" ] && [ -n "$SSH_TTY" ]''; in { home.file.".zshrc".text = # zsh '' - export PATH="$HOME/.local/bin:/run/wrappers/bin:/run/current-system/sw/bin:/nix/var/nix/profiles/default/bin:/etc/profiles/per-user/$USER/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin''${PATH:+:}''${PATH}" + export PATH="$HOME/.local/bin:/run/current-system/sw/bin:/nix/var/nix/profiles/default/bin:/etc/profiles/per-user/$USER/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin''${PATH:+:}''${PATH}" source ${config'.home.sessionVariablesPackage}/etc/profile.d/hm-session-vars.sh if ${nuExecCondition}; then diff --git a/modules/dotfiles/nvim/lua/thegeneralist/lazy/whichkey.lua b/modules/dotfiles/nvim/lua/thegeneralist/lazy/whichkey.lua index b37514f..8ba00ab 100644 --- a/modules/dotfiles/nvim/lua/thegeneralist/lazy/whichkey.lua +++ b/modules/dotfiles/nvim/lua/thegeneralist/lazy/whichkey.lua @@ -70,7 +70,6 @@ return { r = { ":lua vim.lsp.buf.format()", "Fo[R]mat" }, t = { ":lua Snacks.picker.todo_comments()", "TODOs" }, }, - prefix = "", --conf end }, } diff --git a/modules/dotfiles/nvim/lua/thegeneralist/remap.lua b/modules/dotfiles/nvim/lua/thegeneralist/remap.lua index 46cb060..e539077 100755 --- a/modules/dotfiles/nvim/lua/thegeneralist/remap.lua +++ b/modules/dotfiles/nvim/lua/thegeneralist/remap.lua @@ -99,6 +99,3 @@ end) vim.keymap.set("n", "lr", "LspRestart", { desc = "Restart LSP" }) vim.keymap.set("n", "le", "LspStart", { desc = "Start LSP" }) vim.keymap.set("n", "ld", "LspStop", { desc = "Stop LSP" }) - -vim.keymap.set("n", "fr", ":lua vim.lsp.buf.format()", { desc = "Fo[R]mat" }) -vim.keymap.set("n", "ft", ":lua Snacks.picker.todo_comments()", { desc = "TODOs" }) diff --git a/modules/linux/noctalia.nix b/modules/linux/noctalia.nix deleted file mode 100644 index 9ee5b21..0000000 --- a/modules/linux/noctalia.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ pkgs, inputs, ... }: -{ - environment.systemPackages = [ - inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default - ]; - - home-manager.sharedModules = [{ - imports = [ - inputs.noctalia.homeModules.default - ]; - }]; -} diff --git a/modules/linux/shell/default.nix b/modules/linux/shell/default.nix index 68a1320..461c2d5 100644 --- a/modules/linux/shell/default.nix +++ b/modules/linux/shell/default.nix @@ -1,14 +1,14 @@ { config, lib, pkgs, ... }: let inherit (lib) concatStringsSep const flatten getAttr mapAttrsToList unique; in { - # users.defaultUserShell = pkgs.zsh; + users.defaultUserShell = pkgs.zsh; - # environment.sessionVariables.SHELLS = config.home-manager.users - # |> mapAttrsToList (const <| getAttr "shellsByPriority") - # |> flatten - # |> map (drv: "${drv}${drv.shellPath}") - # |> unique - # |> concatStringsSep ":"; + environment.sessionVariables.SHELLS = config.home-manager.users + |> mapAttrsToList (const <| getAttr "shellsByPriority") + |> flatten + |> map (drv: "${drv}${drv.shellPath}") + |> unique + |> concatStringsSep ":"; # environment.shellAliases = { # ls = mkForce null; diff --git a/modules/linux/xserver.nix b/modules/linux/xserver.nix index d56af2b..f94305d 100644 --- a/modules/linux/xserver.nix +++ b/modules/linux/xserver.nix @@ -1,393 +1,10 @@ -{ inputs, pkgs, ... }: -{ - imports = [ - ./noctalia.nix - ]; - - # May God help us - xdg.portal = { - enable = true; - xdgOpenUsePortal = true; - extraPortals = [ - pkgs.xdg-desktop-portal-gtk - pkgs.xdg-desktop-portal-gnome - ]; - config.common.default = "*"; - }; - - home-manager.sharedModules = [ - inputs.niri.homeModules.niri - - { - gtk = { - enable = true; - theme = { - name = "adw-gtk3-dark"; - package = pkgs.adw-gtk3; - }; - iconTheme = { - name = "Papirus-Dark"; - package = pkgs.papirus-icon-theme; - }; - cursorTheme = { - name = "Adwaita"; - package = pkgs.adwaita-icon-theme; - size = 24; - }; - }; - - home.pointerCursor = { - name = "Adwaita"; - package = pkgs.adwaita-icon-theme; - size = 24; - gtk.enable = true; - }; - - home.sessionVariables = { - GTK_THEME = "adw-gtk3-dark"; - XCURSOR_THEME = "Adwaita"; - XCURSOR_SIZE = "24"; - }; - - xdg = { - enable = true; - mimeApps = { - enable = true; - defaultApplications = { - # NOTE: replace "helium.desktop" with the actual .desktop filename - # find it with: ls ~/.nix-profile/share/applications/ | grep -i helium - "text/html" = "helium.desktop"; - "x-scheme-handler/http" = "helium.desktop"; - "x-scheme-handler/https" = "helium.desktop"; - "x-scheme-handler/about" = "helium.desktop"; - "x-scheme-handler/unknown" = "helium.desktop"; - "application/pdf" = "helium.desktop"; - }; - }; - }; - - programs.niri = { - enable = true; - package = pkgs.niri; - settings = { - layout = { - focus-ring = { - enable = false; - }; - tab-indicator = { - enable = false; - }; - border = { - enable = false; - }; - # border = "off"; - }; - spawn-at-startup = [ - { - command = [ "noctalia-shell" ]; - } - ]; - binds = { - # Shortcuts Pane - "Mod+Shift+Escape".action.show-hotkey-overlay = { }; - - # Application Shortcuts - "Mod+Return" = { - hotkey-overlay.title = "Open Terminal: ghostty"; - action.spawn = [ "ghostty" ]; - }; - - "Mod+B" = { - hotkey-overlay.title = "Open Browser: helium"; - action.spawn = [ "helium" ]; - }; - - "Mod+Alt+B" = { - hotkey-overlay.title = "Open Secondary Browser: firefox"; - action.spawn = [ "firefox" ]; - }; - - "Mod+Shift+Q" = { - hotkey-overlay.title = "Lock Screen: gtklock"; - action.spawn = [ "gtklock" ]; - }; - - "Mod+D" = { - hotkey-overlay.title = "Open App Launcher: fuzzel"; - action.spawn = [ - "fuzzel" - "toggle" - ]; - }; - - "Mod+E" = { - hotkey-overlay.title = "File Manager: Thunar"; - action.spawn = [ "thunar" ]; - }; - - "Mod+O" = { - hotkey-overlay.title = "Obsidian"; - action.spawn = [ "sh" "-c" "obsidian" ]; - }; - - "Mod+N" = { - hotkey-overlay.title = "X Notifications"; - action.spawn = [ "helium" "https://x.com/i/notifications" ]; - }; - - "Mod+Alt+E" = { - hotkey-overlay.title = "File Manager: Yazi"; - action.spawn = [ "yazi" ]; - }; - - # Media Keys - "XF86AudioRaiseVolume" = { - allow-when-locked = true; - action.spawn = [ - "wpctl" - "set-volume" - "@DEFAULT_AUDIO_SINK@" - "5%+" - ]; - }; - - "XF86AudioLowerVolume" = { - allow-when-locked = true; - action.spawn = [ - "wpctl" - "set-volume" - "@DEFAULT_AUDIO_SINK@" - "5%-" - ]; - }; - - # "XF86MonBrightnessUp" = { - # allow-when-locked = true; - # action.spawn = [ "mediactl" "brightness_up" ]; - # }; - - # "XF86MonBrightnessDown" = { - # allow-when-locked = true; - # action.spawn = [ "mediactl" "brightness_down" ]; - # }; - - "XF86AudioMute" = { - allow-when-locked = true; - action.spawn = [ - "wpctl" - "set-mute" - "@DEFAULT_AUDIO_SINK@" - "toggle" - ]; - }; - - "XF86AudioMicMute" = { - allow-when-locked = true; - action.spawn = [ - "wpctl" - "set-mute" - "@DEFAULT_AUDIO_SOURCE@" - "toggle" - ]; - }; - - "XF86AudioNext" = { - allow-when-locked = true; - action.spawn = [ - "playerctl" - "next" - ]; - }; - - "XF86AudioPause" = { - allow-when-locked = true; - action.spawn = [ - "playerctl" - "play-pause" - ]; - }; - - "XF86AudioPlay" = { - allow-when-locked = true; - action.spawn = [ - "playerctl" - "play-pause" - ]; - }; - - "XF86AudioPrev" = { - allow-when-locked = true; - action.spawn = [ - "playerctl" - "previous" - ]; - }; - - # Window Management - "Mod+Q".action.close-window = { }; - - "Mod+H".action.focus-column-left = { }; - "Mod+J".action.focus-workspace-down = { }; - "Mod+K".action.focus-workspace-up = { }; - "Mod+L".action.focus-column-right = { }; - - "Mod+Left".action.focus-column-left = { }; - "Mod+Down".action.focus-window-down = { }; - "Mod+Up".action.focus-window-up = { }; - "Mod+Right".action.focus-column-right = { }; - - # Move windows within workspace - "Mod+Shift+Left".action.move-column-left = { }; - "Mod+Shift+Down".action.move-window-down = { }; - "Mod+Shift+Up".action.move-window-up = { }; - "Mod+Shift+Right".action.move-column-right = { }; - - "Mod+Shift+H".action.move-column-left = { }; - "Mod+Shift+J".action.move-column-to-workspace-down = { }; - "Mod+Shift+K".action.move-column-to-workspace-up = { }; - "Mod+Shift+L".action.move-column-right = { }; - - # Move to workspace edges - "Mod+Shift+Home".action.move-column-to-first = { }; - "Mod+Shift+End".action.move-column-to-last = { }; - - "Mod+Home".action.focus-column-first = { }; - "Mod+End".action.focus-column-last = { }; - - # Monitor Management - Move between monitors - "Mod+Ctrl+Left".action.focus-monitor-left = { }; - "Mod+Ctrl+Right".action.focus-monitor-right = { }; - "Mod+Ctrl+Up".action.focus-monitor-up = { }; - "Mod+Ctrl+Down".action.focus-monitor-down = { }; - - "Mod+Ctrl+H".action.focus-monitor-left = { }; - "Mod+Ctrl+L".action.focus-monitor-right = { }; - "Mod+Ctrl+K".action.focus-monitor-up = { }; - "Mod+Ctrl+J".action.focus-monitor-down = { }; - - # Move windows to different monitors - "Mod+Shift+Ctrl+Left".action.move-column-to-monitor-left = { }; - "Mod+Shift+Ctrl+Right".action.move-column-to-monitor-right = { }; - "Mod+Shift+Ctrl+Up".action.move-column-to-monitor-up = { }; - "Mod+Shift+Ctrl+Down".action.move-column-to-monitor-down = { }; - - "Mod+Shift+Ctrl+H".action.move-column-to-monitor-left = { }; - "Mod+Shift+Ctrl+L".action.move-column-to-monitor-right = { }; - "Mod+Shift+Ctrl+K".action.move-column-to-monitor-up = { }; - "Mod+Shift+Ctrl+J".action.move-column-to-monitor-down = { }; - - # Workspace Management - "Mod+Escape" = { - hotkey-overlay.title = "Open Overview"; - repeat = false; - action.toggle-overview = { }; - }; - - "Mod+WheelScrollDown" = { - cooldown-ms = 100; - action.focus-workspace-down = { }; - }; - - "Mod+WheelScrollUp" = { - cooldown-ms = 100; - action.focus-workspace-up = { }; - }; - - # Move windows to different workspaces - "Mod+Shift+WheelScrollDown" = { - cooldown-ms = 100; - action.move-column-to-workspace-down = { }; - }; - - "Mod+Shift+WheelScrollUp" = { - cooldown-ms = 100; - action.move-column-to-workspace-up = { }; - }; - - # Column navigation with mouse - "Mod+WheelScrollRight".action.focus-column-right = { }; - "Mod+WheelScrollLeft".action.focus-column-left = { }; - "Mod+Ctrl+WheelScrollRight".action.move-column-right = { }; - "Mod+Ctrl+WheelScrollLeft".action.move-column-left = { }; - - # Numbered Workspaces - "Mod+1".action.focus-workspace = 1; - "Mod+2".action.focus-workspace = 2; - "Mod+3".action.focus-workspace = 3; - "Mod+4".action.focus-workspace = 4; - "Mod+5".action.focus-workspace = 5; - "Mod+6".action.focus-workspace = 6; - "Mod+7".action.focus-workspace = 7; - "Mod+8".action.focus-workspace = 8; - "Mod+9".action.focus-workspace = 9; - - # Move windows to numbered workspaces - "Mod+Shift+1".action.move-column-to-workspace = 1; - "Mod+Shift+2".action.move-column-to-workspace = 2; - "Mod+Shift+3".action.move-column-to-workspace = 3; - "Mod+Shift+4".action.move-column-to-workspace = 4; - "Mod+Shift+5".action.move-column-to-workspace = 5; - "Mod+Shift+6".action.move-column-to-workspace = 6; - "Mod+Shift+7".action.move-column-to-workspace = 7; - "Mod+Shift+8".action.move-column-to-workspace = 8; - "Mod+Shift+9".action.move-column-to-workspace = 9; - - "Mod+Tab".action.focus-workspace-previous = { }; - - # Layout Controls - "Mod+C".action.center-column = { }; - "Mod+Ctrl+C".action.center-visible-columns = { }; - "Mod+BracketLeft".action.set-column-width = "-10%"; - "Mod+BracketRight".action.set-column-width = "+10%"; - "Mod+Shift+BracketLeft".action.set-window-height = "-10%"; - "Mod+Shift+BracketRight".action.set-window-height = "+10%"; - - # Window resizing with mouse - "Mod+Ctrl+WheelScrollDown".action.set-window-height = "-5%"; - "Mod+Ctrl+WheelScrollUp".action.set-window-height = "+5%"; - - # Window Modes - "Mod+T".action.toggle-window-floating = { }; - "Mod+F".action.fullscreen-window = { }; - "Mod+M".action.maximize-column = { }; - - # Utils - "Mod+S".action.screenshot = { }; - - "Mod+Shift+S".action.screenshot-screen = { - write-to-disk = true; - }; - - "Mod+Ctrl+S".action.screenshot-window = { - write-to-disk = true; - }; - - "Mod+P".action.spawn = [ - "sh" - "-c" - "pgrep -x hyprpicker >/dev/null || hyprpicker" - ]; - }; - }; - }; - } - ]; - environment.sessionVariables = { - NIXOS_OZONE_WL = "1"; - }; +{ pkgs, lib, ... }: let + inherit (lib) optionalAttrs; +in { virtualisation.vmware.guest.enable = true; - programs.niri = { - enable = true; - package = pkgs.niri; - }; - - environment.systemPackages = [ - pkgs.fuzzel - pkgs.xfce.thunar - pkgs.playerctl - pkgs.wireplumber - ]; + environment.systemPackages = [ pkgs.fuzzel ]; + programs.niri.enable = true; services.xserver = { enable = true; @@ -407,25 +24,25 @@ }; }; - # windowManager.i3 = optionalAttrs (false) { - # enable = true; - # package = pkgs.i3; - # configFile = ../dotfiles/i3/config; - # - # extraPackages = with pkgs; [ - # i3 - # i3status - # rofi - # dmenu - # feh - # picom # transparency effects compositor - # dunst # notification daemon - # xfce.thunar - # nemo - # arandr # screen conf - # lxappearance - # ]; - # }; + windowManager.i3 = optionalAttrs (false) { + enable = true; + package = pkgs.i3; + configFile = ../dotfiles/i3/config; + + extraPackages = with pkgs; [ + i3 + i3status + rofi + dmenu + feh + picom # transparency effects compositor + dunst # notification daemon + xfce.thunar + nemo + arandr # screen conf + lxappearance + ]; + }; }; # home.file.".xprofile".text = ''