diff --git a/.gitignore b/.gitignore index b4f0da46..7d2181f4 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ # hardware-configuration.nix +result diff --git a/configurations/desktop/home.nix b/configurations/desktop/home.nix index 43e7dbc2..581895a6 100644 --- a/configurations/desktop/home.nix +++ b/configurations/desktop/home.nix @@ -42,7 +42,6 @@ # Exec=konsole -e ncmpcpp # Terminal=false # ''; - "Pictures/Wallpapers".source = ./resources/home-manager/Pictures/Wallpapers; }; # Roblox Curl Service diff --git a/configurations/laptop/home.nix b/configurations/laptop/home.nix index f4a113c6..cc1ca35b 100644 --- a/configurations/laptop/home.nix +++ b/configurations/laptop/home.nix @@ -40,7 +40,6 @@ # Exec=konsole -e ncmpcpp # Terminal=false # ''; - "Pictures/Wallpapers".source = ./resources/home-manager/Pictures/Wallpapers; }; programs.bash.shellAliases = { diff --git a/configurations/laptop/resources/home-manager/Pictures/Wallpapers/gruvbox_light_linux.png b/configurations/laptop/resources/home-manager/Pictures/Wallpapers/gruvbox_light_linux.png deleted file mode 100644 index 908c172b..00000000 Binary files a/configurations/laptop/resources/home-manager/Pictures/Wallpapers/gruvbox_light_linux.png and /dev/null differ diff --git a/flake.lock b/flake.lock index 909f844b..7272bb7f 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,234 @@ { "nodes": { + "cachix": { + "inputs": { + "devenv": [ + "niri", + "crate2nix" + ], + "flake-compat": [ + "niri", + "crate2nix" + ], + "nixpkgs": "nixpkgs", + "pre-commit-hooks": [ + "niri", + "crate2nix" + ] + }, + "locked": { + "lastModified": 1709700175, + "narHash": "sha256-A0/6ZjLmT9qdYzKHmevnEIC7G+GiZ4UCr8v0poRPzds=", + "owner": "cachix", + "repo": "cachix", + "rev": "be97b37989f11b724197b5f4c7ffd78f12c8c4bf", + "type": "github" + }, + "original": { + "owner": "cachix", + "ref": "latest", + "repo": "cachix", + "type": "github" + } + }, + "crate2nix": { + "inputs": { + "cachix": "cachix", + "crate2nix_stable": "crate2nix_stable", + "devshell": "devshell", + "flake-compat": "flake-compat", + "flake-parts": "flake-parts", + "nix-test-runner": "nix-test-runner", + "nixpkgs": "nixpkgs_2", + "pre-commit-hooks": "pre-commit-hooks" + }, + "locked": { + "lastModified": 1712821856, + "narHash": "sha256-rObTWSqfqt0qlOCokE2abesI11Ic8bCCkPNxlyk57Q0=", + "owner": "nix-community", + "repo": "crate2nix", + "rev": "cf034861fdc4e091fc7c5f01d6c022dc46686cf1", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "crate2nix", + "type": "github" + } + }, + "crate2nix_stable": { + "inputs": { + "flake-utils": "flake-utils" + }, + "locked": { + "lastModified": 1702842982, + "narHash": "sha256-A9AowkHIjsy1a4LuiPiVP88FMxyCWK41flZEZOUuwQM=", + "owner": "nix-community", + "repo": "crate2nix", + "rev": "75ac2973affa6b9b4f661a7b592cba6e4f51d426", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "0.12.0", + "repo": "crate2nix", + "type": "github" + } + }, + "devshell": { + "inputs": { + "flake-utils": "flake-utils_2", + "nixpkgs": [ + "niri", + "crate2nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1711099426, + "narHash": "sha256-HzpgM/wc3aqpnHJJ2oDqPBkNsqWbW0WfWUO8lKu8nGk=", + "owner": "numtide", + "repo": "devshell", + "rev": "2d45b54ca4a183f2fdcf4b19c895b64fbf620ee8", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, + "flake-compat": { + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "revCount": 57, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "niri", + "crate2nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1712014858, + "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1715865404, + "narHash": "sha256-/GJvTdTpuDjNn84j82cU6bXztE0MSkdnTWClUCRub78=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "8dc45382d5206bd292f9c2768b8058a8fd8311d9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_3": { + "inputs": { + "systems": "systems_3" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "niri", + "crate2nix", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -7,11 +236,11 @@ ] }, "locked": { - "lastModified": 1711554349, - "narHash": "sha256-RypwcWEIFePBI0Hubfj4chanbM/G2yzJzC6wgz+dmS4=", + "lastModified": 1715486357, + "narHash": "sha256-4pRuzsHZOW5W4CsXI9uhKtiJeQSUoe1d2M9mWU98HC4=", "owner": "nix-community", "repo": "home-manager", - "rev": "179f6acaf7c068c7870542cdae72afec9427a5b0", + "rev": "44677a1c96810a8e8c4ffaeaad10c842402647c1", "type": "github" }, "original": { @@ -20,13 +249,145 @@ "type": "github" } }, + "niri": { + "inputs": { + "crate2nix": "crate2nix", + "flake-parts": "flake-parts_2", + "niri-stable": "niri-stable", + "niri-unstable": "niri-unstable", + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1715874288, + "narHash": "sha256-5H3zNsfo3VX40yvWHb9Pbv2vtGF67FS0OqQ1n4WOnLs=", + "owner": "sodiboo", + "repo": "niri-flake", + "rev": "753365c18c3b3772d2c1a639c1cda056164ebf22", + "type": "github" + }, + "original": { + "owner": "sodiboo", + "repo": "niri-flake", + "type": "github" + } + }, + "niri-stable": { + "flake": false, + "locked": { + "lastModified": 1713620717, + "narHash": "sha256-YuYowUw5ecPa78bhT72zY2b99wn68mO3vVkop8hnb8M=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "6a80078259ca3e3854b0748a15e98c7293d0822a", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "ref": "v0.1.5", + "repo": "niri", + "type": "github" + } + }, + "niri-unstable": { + "flake": false, + "locked": { + "lastModified": 1715868258, + "narHash": "sha256-FQL4ExRAduaajwTz2X16sutgDmXlipjO1tobcOYw6FI=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "0ce08b598c49ea2e87038151c20442c73c684ed5", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "repo": "niri", + "type": "github" + } + }, + "nix-test-runner": { + "flake": false, + "locked": { + "lastModified": 1588761593, + "narHash": "sha256-FKJykltAN/g3eIceJl4SfDnnyuH2jHImhMrXS2KvGIs=", + "owner": "stoeffel", + "repo": "nix-test-runner", + "rev": "c45d45b11ecef3eb9d834c3b6304c05c49b06ca2", + "type": "github" + }, + "original": { + "owner": "stoeffel", + "repo": "nix-test-runner", + "type": "github" + } + }, "nixpkgs": { "locked": { - "lastModified": 1711333969, - "narHash": "sha256-5PiWGn10DQjMZee5NXzeA6ccsv60iLu+Xtw+mfvkUAs=", + "lastModified": 1700612854, + "narHash": "sha256-yrQ8osMD+vDLGFX7pcwsY/Qr5PUd6OmDMYJZzZi0+zc=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "19cbff58383a4ae384dea4d1d0c823d72b49d614", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1714640452, + "narHash": "sha256-QBx10+k6JWz6u7VsohfSw8g8hjdBZEf8CFzXH1/1Z94=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/50eb7ecf4cd0a5756d7275c8ba36790e5bd53e33.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/50eb7ecf4cd0a5756d7275c8ba36790e5bd53e33.tar.gz" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1715668745, + "narHash": "sha256-xp62OkRkbUDNUc6VSqH02jB0FbOS+MsfMb7wL1RJOfA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9ddcaffecdf098822d944d4147dd8da30b4e6843", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1712026416, + "narHash": "sha256-N/3VR/9e1NlN49p7kCiATiEY6Tzdo+CbrAG8kqCQKcI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "080a4a27f206d07724b88da096e27ef63401a504", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1715787315, + "narHash": "sha256-cYApT0NXJfqBkKcci7D9Kr4CBYZKOQKDYA23q8XNuWg=", "owner": "nixos", "repo": "nixpkgs", - "rev": "57e6b3a9e4ebec5aa121188301f04a6b8c354c9b", + "rev": "33d1e753c82ffc557b4a585c77de43d4c922ebb5", "type": "github" }, "original": { @@ -36,10 +397,90 @@ "type": "github" } }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": [ + "niri", + "crate2nix", + "flake-compat" + ], + "flake-utils": "flake-utils_3", + "gitignore": "gitignore", + "nixpkgs": [ + "niri", + "crate2nix", + "nixpkgs" + ], + "nixpkgs-stable": [ + "niri", + "crate2nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1712055707, + "narHash": "sha256-4XLvuSIDZJGS17xEwSrNuJLL7UjDYKGJSbK1WWX2AK8=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "e35aed5fda3cc79f88ed7f1795021e559582093a", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, "root": { "inputs": { "home-manager": "home-manager", - "nixpkgs": "nixpkgs" + "niri": "niri", + "nixpkgs": "nixpkgs_3" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" } } }, diff --git a/flake.nix b/flake.nix index 478f26af..b2ccc44a 100644 --- a/flake.nix +++ b/flake.nix @@ -9,6 +9,11 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + niri = { + url = "github:sodiboo/niri-flake"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; outputs = { self, nixpkgs, ... }@inputs: { diff --git a/global-home.nix b/global-home.nix index 8be33116..d664388c 100644 --- a/global-home.nix +++ b/global-home.nix @@ -32,12 +32,12 @@ in # # 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" ]; }) + # (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" '' + # (writeShellScriptBin "my-hello" '' # echo "Hello, ${config.home.username}!" # '') @@ -60,7 +60,13 @@ in ungoogled-chromium # emacs-gtk telegram-desktop - discord + #(discord.override { + # # remove any overrides that you don't want + # withOpenASAR = true; + # withVencord = true; + #}) + (vesktop.override { withSystemVencord = false; }) # Discord Client Alternative + lutris protonup-qt qpwgraph @@ -116,6 +122,9 @@ in # Exec=konsole -e ncmpcpp # Terminal=false # ''; + + # Global Wallpapers + "Pictures/Wallpapers".source = ./resources/home-manager/Pictures/Wallpapers; # MPDCRON Configuration ".mpdcron/mpdcron.conf".source = ./global-resources/home-manager/.mpdcron/mpdcron.conf; diff --git a/configurations/desktop/resources/home-manager/Pictures/Wallpapers/gruvbox_light_linux.png b/global-resources/home-manager/Pictures/Wallpapers/gruvbox_light_linux.png similarity index 100% rename from configurations/desktop/resources/home-manager/Pictures/Wallpapers/gruvbox_light_linux.png rename to global-resources/home-manager/Pictures/Wallpapers/gruvbox_light_linux.png diff --git a/global-resources/home-manager/Pictures/Wallpapers/ivyleague.png b/global-resources/home-manager/Pictures/Wallpapers/ivyleague.png new file mode 100755 index 00000000..f4493f80 Binary files /dev/null and b/global-resources/home-manager/Pictures/Wallpapers/ivyleague.png differ diff --git a/global-resources/home-manager/Pictures/Wallpapers/ivyleague2.png b/global-resources/home-manager/Pictures/Wallpapers/ivyleague2.png new file mode 100755 index 00000000..b9d3e7ac Binary files /dev/null and b/global-resources/home-manager/Pictures/Wallpapers/ivyleague2.png differ diff --git a/global-resources/home-manager/Pictures/Wallpapers/justfriends.png b/global-resources/home-manager/Pictures/Wallpapers/justfriends.png new file mode 100755 index 00000000..565762af Binary files /dev/null and b/global-resources/home-manager/Pictures/Wallpapers/justfriends.png differ diff --git a/modules/nixos/cspark-desktop-niri/home.nix b/modules/nixos/cspark-desktop-niri/home.nix index bebe892f..d4b2ebc9 100644 --- a/modules/nixos/cspark-desktop-niri/home.nix +++ b/modules/nixos/cspark-desktop-niri/home.nix @@ -1,9 +1,14 @@ -{ lib, config, pkgs, modulesPath, ... }: +{ lib, config, pkgs, modulesPath, inputs, ... }: let cfg = config.cspark-desktop-niri-config-1; in { +# imports = +# [ +# inputs.niri.homeModules.niri +# ]; + options.cspark-desktop-niri-config-1 = { enable = lib.mkEnableOption "Enable Custom Niri Desktop Setup 1"; @@ -12,7 +17,7 @@ in config = lib.mkIf cfg.enable { # Config Files (typically $HOME/.config) xdg.configFile = { - "niri/config".source = ./resources/home-manager/.config/niri/config.kdl; + "niri/config.kdl".source = ./resources/home-manager/.config/niri/config.kdl; "mako/config".source = ./resources/home-manager/.config/mako/config; "foot/foot.ini".source = ./resources/home-manager/.config/foot/foot.ini; "networkmanager-dmenu/config.ini".source = ./resources/home-manager/.config/networkmanager-dmenu/config.ini; @@ -23,18 +28,20 @@ in home.sessionVariables = { TERM = "foot"; - QT_QPA_PLATFORM = "wayland-egl"; + QT_QPA_PLATFORM = "wayland"; QT_QPA_PLATFORMTHEME = "qt6ct"; QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; SDL_VIDEODRIVER = "wayland"; _JAVA_AWT_WM_NONREPARENTING = "1"; SSH_ASKPASS = "lxqt-openssh-askpass"; + # Enable native wayland support for chromium and electron based applications + NIXOS_OZONE_WL = "1"; }; # Start sway after login if on TTY1 (Default Linux TTY upon boot/login) programs.bash.profileExtra = '' if [[ $(tty) == "/dev/tty1" ]]; then - niri-session + niri --session fi ''; }; diff --git a/modules/nixos/cspark-desktop-niri/module.nix b/modules/nixos/cspark-desktop-niri/module.nix index 5cbc2c07..6a2963f0 100644 --- a/modules/nixos/cspark-desktop-niri/module.nix +++ b/modules/nixos/cspark-desktop-niri/module.nix @@ -1,9 +1,14 @@ -{ lib, config, pkgs, modulesPath, ... }: +{ lib, config, pkgs, modulesPath, inputs, ... }: let cfg = config.cspark-desktop-niri; in { + imports = + [ + inputs.niri.nixosModules.niri + ]; + options.cspark-desktop-niri = { enable = lib.mkEnableOption "Enable Custom Niri Desktop Setup"; @@ -11,12 +16,12 @@ in config = lib.mkIf cfg.enable { # Enable the Niri Compositor and add extra system packages. + programs.niri.enable = true; environment.systemPackages = with pkgs; [ - niri - wl-clipboard swaylock # Locking swayidle # Idle Detection (For locking) + swaybg # Set background wallpaper foot # Terminal Emulator fuzzel # Application Launcher - Wayland wdisplays # Manage wayland displays @@ -89,21 +94,25 @@ in environment.sessionVariables = { TERM = "foot"; - QT_QPA_PLATFORM = "wayland-egl"; + QT_QPA_PLATFORM = "wayland"; QT_QPA_PLATFORMTHEME = "qt6ct"; QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; SDL_VIDEODRIVER = "wayland"; _JAVA_AWT_WM_NONREPARENTING = "1"; SSH_ASKPASS = "lxqt-openssh-askpass"; + # Enable native wayland support for chromium and electron based applications + NIXOS_OZONE_WL = "1"; }; environment.variables = { TERM = "foot"; - QT_QPA_PLATFORM = "wayland-egl"; + QT_QPA_PLATFORM = "wayland"; QT_QPA_PLATFORMTHEME = "qt6ct"; QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; SDL_VIDEODRIVER = "wayland"; _JAVA_AWT_WM_NONREPARENTING = "1"; SSH_ASKPASS = lib.mkForce "lxqt-openssh-askpass"; + # Enable native wayland support for chromium and electron based applications + NIXOS_OZONE_WL = "1"; }; }; diff --git a/modules/nixos/cspark-desktop-niri/resources/.config/foot/foot.ini b/modules/nixos/cspark-desktop-niri/resources/home-manager/.config/foot/foot.ini similarity index 100% rename from modules/nixos/cspark-desktop-niri/resources/.config/foot/foot.ini rename to modules/nixos/cspark-desktop-niri/resources/home-manager/.config/foot/foot.ini diff --git a/modules/nixos/cspark-desktop-niri/resources/.config/mako/config b/modules/nixos/cspark-desktop-niri/resources/home-manager/.config/mako/config similarity index 100% rename from modules/nixos/cspark-desktop-niri/resources/.config/mako/config rename to modules/nixos/cspark-desktop-niri/resources/home-manager/.config/mako/config diff --git a/modules/nixos/cspark-desktop-niri/resources/.config/networkmanager-dmenu/config.ini b/modules/nixos/cspark-desktop-niri/resources/home-manager/.config/networkmanager-dmenu/config.ini similarity index 100% rename from modules/nixos/cspark-desktop-niri/resources/.config/networkmanager-dmenu/config.ini rename to modules/nixos/cspark-desktop-niri/resources/home-manager/.config/networkmanager-dmenu/config.ini diff --git a/modules/nixos/cspark-desktop-niri/resources/.config/niri/config.kdl b/modules/nixos/cspark-desktop-niri/resources/home-manager/.config/niri/config.kdl similarity index 72% rename from modules/nixos/cspark-desktop-niri/resources/.config/niri/config.kdl rename to modules/nixos/cspark-desktop-niri/resources/home-manager/.config/niri/config.kdl index cf905ce2..35109a7a 100644 --- a/modules/nixos/cspark-desktop-niri/resources/.config/niri/config.kdl +++ b/modules/nixos/cspark-desktop-niri/resources/home-manager/.config/niri/config.kdl @@ -84,7 +84,7 @@ input { // https://github.com/YaLTeR/niri/wiki/Configuration:-Layout layout { // Set gaps around windows in logical pixels. - gaps 5 + gaps 10 // When to center a column when changing focus, options are: // - "never", default behavior, focusing an off-screen column will keep at the left @@ -189,7 +189,7 @@ layout { // which may be more convenient to use. // spawn-at-startup "alacritty" "-e" "fish" spawn-at-startup "mako" -spawn-at-startup "wlsunset" "-l" "51.5" -L "0.1" +// spawn-at-startup "wlsunset" "-l" "51.5" -L "0.1" // Uncomment this line to ask the clients to omit their client-side decorations if possible. // If the client will specifically ask for CSD, the request will be honored. @@ -254,15 +254,15 @@ binds { // Mod-Shift-/, which is usually the same as Mod-?, // shows a list of important hotkeys. - Mod+Shift+Slash { show-hotkey-overlay; } + Alt+Shift+Slash { show-hotkey-overlay; } // Suggested binds for running programs: terminal, app launcher, screen locker. - Mod+Return { spawn "foot"; } - Mod+D { spawn "fuzzel"; } - Super+Alt+L { spawn "swaylock"; } + Alt+Return { spawn "foot"; } + Alt+D { spawn "fuzzel"; } + Super+L { spawn "swaylock"; } // You can also use a shell: - // Mod+T { spawn "bash" "-c" "notify-send hello && exec alacritty"; } + // Alt+T { spawn "bash" "-c" "notify-send hello && exec alacritty"; } // Example volume keys mappings for PipeWire & WirePlumber. // The allow-when-locked=true property makes them work even when the session is locked. @@ -271,81 +271,81 @@ binds { XF86AudioMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; } XF86AudioMicMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; } - Mod+W { close-window; } + Alt+W { 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; } + Alt+Left { focus-column-left; } + Alt+Down { focus-window-down; } + Alt+Up { focus-window-up; } + Alt+Right { focus-column-right; } + Alt+H { focus-column-left; } + Alt+J { focus-window-down; } + Alt+K { focus-window-up; } + Alt+L { focus-column-right; } - Mod+Shift+Left { move-column-left; } - Mod+Shift+Down { move-window-down; } - Mod+Shift+Up { move-window-up; } - Mod+Shift+Right { move-column-right; } - Mod+Shift+H { move-column-left; } - Mod+Shift+J { move-window-down; } - Mod+Shift+K { move-window-up; } - Mod+Shift+L { move-column-right; } + Alt+Shift+Left { move-column-left; } + Alt+Shift+Down { move-window-down; } + Alt+Shift+Up { move-window-up; } + Alt+Shift+Right { move-column-right; } + Alt+Shift+H { move-column-left; } + Alt+Shift+J { move-window-down; } + Alt+Shift+K { move-window-up; } + Alt+Shift+L { move-column-right; } // Alternative commands that move across workspaces when reaching // the first or last window in a column. - // Mod+J { focus-window-or-workspace-down; } - // Mod+K { focus-window-or-workspace-up; } - // Mod+Ctrl+J { move-window-down-or-to-workspace-down; } - // Mod+Ctrl+K { move-window-up-or-to-workspace-up; } + // Alt+J { focus-window-or-workspace-down; } + // Alt+K { focus-window-or-workspace-up; } + // Alt+Ctrl+J { move-window-down-or-to-workspace-down; } + // Alt+Ctrl+K { move-window-up-or-to-workspace-up; } - Mod+Home { focus-column-first; } - Mod+End { focus-column-last; } - Mod+Ctrl+Home { move-column-to-first; } - Mod+Ctrl+End { move-column-to-last; } + Alt+Home { focus-column-first; } + Alt+End { focus-column-last; } + Alt+Ctrl+Home { move-column-to-first; } + Alt+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+O { focus-monitor-left; } - // Mod+Shift+J { focus-monitor-down; } - // Mod+Shift+K { focus-monitor-up; } - // Mod+Shift+L { focus-monitor-right; } + // Alt+Shift+Left { focus-monitor-left; } + // Alt+Shift+Down { focus-monitor-down; } + // Alt+Shift+Up { focus-monitor-up; } + // Alt+Shift+Right { focus-monitor-right; } + Alt+O { focus-monitor-left; } + // Alt+Shift+J { focus-monitor-down; } + // Alt+Shift+K { focus-monitor-up; } + Alt+P { 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+O { 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; } + // Alt+Shift+Ctrl+Left { move-column-to-monitor-left; } + // Alt+Shift+Ctrl+Down { move-column-to-monitor-down; } + // Alt+Shift+Ctrl+Up { move-column-to-monitor-up; } + // Alt+Shift+Ctrl+Right { move-column-to-monitor-right; } + Alt+Shift+O { move-column-to-monitor-left; } + // Alt+Shift+Ctrl+J { move-column-to-monitor-down; } + // Alt+Shift+Ctrl+K { move-column-to-monitor-up; } + Alt+Shift+P { move-column-to-monitor-right; } // Alternatively, there are commands to move just a single window: - // Mod+Shift+Ctrl+Left { move-window-to-monitor-left; } + // Alt+Shift+Ctrl+Left { move-window-to-monitor-left; } // ... // And you can also move a whole workspace to another monitor: - // Mod+Shift+Ctrl+Left { move-workspace-to-monitor-left; } + // Alt+Shift+Ctrl+Left { move-workspace-to-monitor-left; } // ... - Mod+Page_Down { focus-workspace-down; } - Mod+Page_Up { focus-workspace-up; } - // Mod+U { focus-workspace-down; } - // Mod+I { focus-workspace-up; } - Mod+Shift+Page_Down { move-column-to-workspace-down; } - Mod+Shift+Page_Up { move-column-to-workspace-up; } - // Mod+Ctrl+U { move-column-to-workspace-down; } - // Mod+Ctrl+I { move-column-to-workspace-up; } + Alt+Page_Down { focus-workspace-down; } + Alt+Page_Up { focus-workspace-up; } + // Alt+U { focus-workspace-down; } + // Alt+I { focus-workspace-up; } + Alt+Shift+Page_Down { move-column-to-workspace-down; } + Alt+Shift+Page_Up { move-column-to-workspace-up; } + // Alt+Ctrl+U { move-column-to-workspace-down; } + // Alt+Ctrl+I { move-column-to-workspace-up; } // Alternatively, there are commands to move just a single window: - // Mod+Ctrl+Page_Down { move-window-to-workspace-down; } + // Alt+Ctrl+Page_Down { move-window-to-workspace-down; } // ... - // 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; } + // Alt+Shift+Page_Down { move-workspace-down; } + // Alt+Shift+Page_Up { move-workspace-up; } + // Alt+Shift+U { move-workspace-down; } + // Alt+Shift+I { move-workspace-up; } // You can bind mouse wheel scroll ticks using the following syntax. // These binds will change direction based on the natural-scroll setting. @@ -353,22 +353,22 @@ binds { // To avoid scrolling through workspaces really fast, you can use // the cooldown-ms property. The bind will be rate-limited to this value. // You can set a cooldown on any bind, but it's most useful for the wheel. - 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; } + Alt+WheelScrollDown cooldown-ms=150 { focus-workspace-down; } + Alt+WheelScrollUp cooldown-ms=150 { focus-workspace-up; } + Alt+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; } + Alt+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; } + Alt+WheelScrollRight { focus-column-right; } + Alt+WheelScrollLeft { focus-column-left; } + Alt+Ctrl+WheelScrollRight { move-column-right; } + Alt+Ctrl+WheelScrollLeft { move-column-left; } // Usually scrolling up and down with Shift in applications results in // horizontal scrolling; these binds replicate that. - 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; } + Alt+Shift+WheelScrollDown { focus-column-right; } + Alt+Shift+WheelScrollUp { focus-column-left; } + Alt+Ctrl+Shift+WheelScrollDown { move-column-right; } + Alt+Ctrl+Shift+WheelScrollUp { move-column-left; } // Similarly, you can bind touchpad scroll "ticks". // Touchpad scrolling is continuous, so for these binds it is split into @@ -376,8 +376,8 @@ binds { // These binds are also affected by touchpad's natural-scroll, so these // example binds are "inverted", since we have natural-scroll enabled for // touchpads by default. - // Mod+TouchpadScrollDown { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02+"; } - // Mod+TouchpadScrollUp { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02-"; } + // Alt+TouchpadScrollDown { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02+"; } + // Alt+TouchpadScrollUp { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02-"; } // You can refer to workspaces by index. However, keep in mind that // niri is a dynamic workspace system, so these commands are kind of @@ -387,43 +387,43 @@ binds { // // For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on // will all refer to the 3rd workspace. - 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+Shift+1 { move-column-to-workspace 1; } - Mod+Shift+2 { move-column-to-workspace 2; } - Mod+Shift+3 { move-column-to-workspace 3; } - Mod+Shift+4 { move-column-to-workspace 4; } - Mod+Shift+5 { move-column-to-workspace 5; } - Mod+Shift+6 { move-column-to-workspace 6; } - Mod+Shift+7 { move-column-to-workspace 7; } - Mod+Shift+8 { move-column-to-workspace 8; } - Mod+Shift+9 { move-column-to-workspace 9; } + Alt+1 { focus-workspace 1; } + Alt+2 { focus-workspace 2; } + Alt+3 { focus-workspace 3; } + Alt+4 { focus-workspace 4; } + Alt+5 { focus-workspace 5; } + Alt+6 { focus-workspace 6; } + Alt+7 { focus-workspace 7; } + Alt+8 { focus-workspace 8; } + Alt+9 { focus-workspace 9; } + Alt+Shift+1 { move-column-to-workspace 1; } + Alt+Shift+2 { move-column-to-workspace 2; } + Alt+Shift+3 { move-column-to-workspace 3; } + Alt+Shift+4 { move-column-to-workspace 4; } + Alt+Shift+5 { move-column-to-workspace 5; } + Alt+Shift+6 { move-column-to-workspace 6; } + Alt+Shift+7 { move-column-to-workspace 7; } + Alt+Shift+8 { move-column-to-workspace 8; } + Alt+Shift+9 { move-column-to-workspace 9; } // Alternatively, there are commands to move just a single window: - // Mod+Ctrl+1 { move-window-to-workspace 1; } + // Alt+Ctrl+1 { move-window-to-workspace 1; } // Switches focus between the current and the previous workspace. - // Mod+Tab { focus-workspace-previous; } + // Alt+Tab { focus-workspace-previous; } - Mod+Comma { consume-window-into-column; } - Mod+Period { expel-window-from-column; } + Alt+Comma { consume-window-into-column; } + Alt+Period { expel-window-from-column; } // There are also commands that consume or expel a single window to the side. - // Mod+BracketLeft { consume-or-expel-window-left; } - // Mod+BracketRight { consume-or-expel-window-right; } + // Alt+BracketLeft { consume-or-expel-window-left; } + // Alt+BracketRight { consume-or-expel-window-right; } - Mod+R { switch-preset-column-width; } - Mod+Shift+R { reset-window-height; } - Mod+F { maximize-column; } - Mod+Shift+F { fullscreen-window; } - Mod+C { center-column; } + // Alt+R { switch-preset-column-width; } + // Alt+Shift+R { reset-window-height; } + Alt+F { maximize-column; } + Alt+Shift+F { fullscreen-window; } + Alt+C { center-column; } // Finer width adjustments. // This command can also: @@ -433,29 +433,29 @@ binds { // * adjust width as a percentage of screen width: "-10%" or "+10%" // Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0, // set-column-width "100" will make the column occupy 200 physical screen pixels. - Mod+Minus { set-column-width "-10%"; } - Mod+Equal { set-column-width "+10%"; } + Alt+Minus { set-column-width "-10%"; } + Alt+Equal { set-column-width "+10%"; } // Finer height adjustments when in column with other windows. - Mod+Shift+Minus { set-window-height "-10%"; } - Mod+Shift+Equal { set-window-height "+10%"; } + Alt+Shift+Minus { set-window-height "-10%"; } + Alt+Shift+Equal { set-window-height "+10%"; } // Actions to switch layouts. // Note: if you uncomment these, make sure you do NOT have // a matching layout switch hotkey configured in xkb options above. // Having both at once on the same hotkey will break the switching, // since it will switch twice upon pressing the hotkey (once by xkb, once by niri). - // Mod+Space { switch-layout "next"; } - // Mod+Shift+Space { switch-layout "prev"; } + // Alt+Space { switch-layout "next"; } + // Alt+Shift+Space { switch-layout "prev"; } Print { screenshot; } - Mod+Print { screenshot-screen; } - Mod+Shift+Print { screenshot-window; } + Alt+Print { screenshot-screen; } + Alt+Shift+Print { screenshot-window; } // The quit action will show a confirmation dialog to avoid accidental exits. - Mod+Shift+E { quit; } + Alt+Shift+E { quit; } // Powers off the monitors. To turn them back on, do any input like // moving the mouse or pressing any other key. - Mod+Shift+P { power-off-monitors; } + // Alt+Shift+P { power-off-monitors; } } diff --git a/modules/nixos/cspark-desktop-plasma/home.nix b/modules/nixos/cspark-desktop-plasma/home.nix index fb6e4a73..28cdce44 100644 --- a/modules/nixos/cspark-desktop-plasma/home.nix +++ b/modules/nixos/cspark-desktop-plasma/home.nix @@ -12,6 +12,8 @@ in config = lib.mkIf cfg.enable { home.sessionVariables = { TERM = "konsole"; + # Enable native wayland support for chromium and electron based applications + NIXOS_OZONE_WL = "1"; }; }; } diff --git a/modules/nixos/cspark-desktop-plasma/module.nix b/modules/nixos/cspark-desktop-plasma/module.nix index 62b053c2..d583c655 100644 --- a/modules/nixos/cspark-desktop-plasma/module.nix +++ b/modules/nixos/cspark-desktop-plasma/module.nix @@ -57,9 +57,13 @@ in # Set konsole to be default terminal environment.sessionVariables = { TERM = "konsole"; + # Enable native wayland support for chromium and electron based applications + NIXOS_OZONE_WL = "1"; }; environment.variables = { TERM = "konsole"; + # Enable native wayland support for chromium and electron based applications + NIXOS_OZONE_WL = "1"; }; environment.systemPackages = with pkgs; [ diff --git a/modules/nixos/cspark-desktop-sway/home.nix b/modules/nixos/cspark-desktop-sway/home.nix index 7c6c3f9c..8d739094 100644 --- a/modules/nixos/cspark-desktop-sway/home.nix +++ b/modules/nixos/cspark-desktop-sway/home.nix @@ -23,12 +23,14 @@ in home.sessionVariables = { TERM = "foot"; - QT_QPA_PLATFORM = "wayland-egl"; + QT_QPA_PLATFORM = "wayland"; QT_QPA_PLATFORMTHEME = "qt6ct"; QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; SDL_VIDEODRIVER = "wayland"; _JAVA_AWT_WM_NONREPARENTING = "1"; SSH_ASKPASS = "lxqt-openssh-askpass"; + # Enable native wayland support for chromium and electron based applications + NIXOS_OZONE_WL = "1"; }; # Start sway after login if on TTY1 (Default Linux TTY upon boot/login) diff --git a/modules/nixos/cspark-desktop-sway/module.nix b/modules/nixos/cspark-desktop-sway/module.nix index 39a15264..6782f08e 100644 --- a/modules/nixos/cspark-desktop-sway/module.nix +++ b/modules/nixos/cspark-desktop-sway/module.nix @@ -89,21 +89,25 @@ in environment.sessionVariables = { TERM = "foot"; - QT_QPA_PLATFORM = "wayland-egl"; + QT_QPA_PLATFORM = "wayland"; QT_QPA_PLATFORMTHEME = "qt6ct"; QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; SDL_VIDEODRIVER = "wayland"; _JAVA_AWT_WM_NONREPARENTING = "1"; SSH_ASKPASS = "lxqt-openssh-askpass"; + # Enable native wayland support for chromium and electron based applications + NIXOS_OZONE_WL = "1"; }; environment.variables = { TERM = "foot"; - QT_QPA_PLATFORM = "wayland-egl"; + QT_QPA_PLATFORM = "wayland"; QT_QPA_PLATFORMTHEME = "qt6ct"; QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; SDL_VIDEODRIVER = "wayland"; _JAVA_AWT_WM_NONREPARENTING = "1"; SSH_ASKPASS = lib.mkForce "lxqt-openssh-askpass"; + # Enable native wayland support for chromium and electron based applications + NIXOS_OZONE_WL = "1"; }; }; diff --git a/modules/nixos/cspark-desktop-sway/resources/.config/foot/foot.ini b/modules/nixos/cspark-desktop-sway/resources/home-manager/.config/foot/foot.ini similarity index 100% rename from modules/nixos/cspark-desktop-sway/resources/.config/foot/foot.ini rename to modules/nixos/cspark-desktop-sway/resources/home-manager/.config/foot/foot.ini diff --git a/modules/nixos/cspark-desktop-sway/resources/.config/mako/config b/modules/nixos/cspark-desktop-sway/resources/home-manager/.config/mako/config similarity index 100% rename from modules/nixos/cspark-desktop-sway/resources/.config/mako/config rename to modules/nixos/cspark-desktop-sway/resources/home-manager/.config/mako/config diff --git a/modules/nixos/cspark-desktop-sway/resources/.config/networkmanager-dmenu/config.ini b/modules/nixos/cspark-desktop-sway/resources/home-manager/.config/networkmanager-dmenu/config.ini similarity index 100% rename from modules/nixos/cspark-desktop-sway/resources/.config/networkmanager-dmenu/config.ini rename to modules/nixos/cspark-desktop-sway/resources/home-manager/.config/networkmanager-dmenu/config.ini diff --git a/modules/nixos/cspark-desktop-sway/resources/.config/sway/config b/modules/nixos/cspark-desktop-sway/resources/home-manager/.config/sway/config similarity index 100% rename from modules/nixos/cspark-desktop-sway/resources/.config/sway/config rename to modules/nixos/cspark-desktop-sway/resources/home-manager/.config/sway/config