Fix file paths and also make wallpapers global

This commit is contained in:
Curt Spark 2024-05-16 17:41:53 +01:00
parent e75abf607a
commit e8a725ab36
25 changed files with 622 additions and 140 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
# hardware-configuration.nix # hardware-configuration.nix
result

View File

@ -42,7 +42,6 @@
# Exec=konsole -e ncmpcpp # Exec=konsole -e ncmpcpp
# Terminal=false # Terminal=false
# ''; # '';
"Pictures/Wallpapers".source = ./resources/home-manager/Pictures/Wallpapers;
}; };
# Roblox Curl Service # Roblox Curl Service

View File

@ -40,7 +40,6 @@
# Exec=konsole -e ncmpcpp # Exec=konsole -e ncmpcpp
# Terminal=false # Terminal=false
# ''; # '';
"Pictures/Wallpapers".source = ./resources/home-manager/Pictures/Wallpapers;
}; };
programs.bash.shellAliases = { programs.bash.shellAliases = {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

View File

@ -1,5 +1,234 @@
{ {
"nodes": { "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": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -7,11 +236,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1711554349, "lastModified": 1715486357,
"narHash": "sha256-RypwcWEIFePBI0Hubfj4chanbM/G2yzJzC6wgz+dmS4=", "narHash": "sha256-4pRuzsHZOW5W4CsXI9uhKtiJeQSUoe1d2M9mWU98HC4=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "179f6acaf7c068c7870542cdae72afec9427a5b0", "rev": "44677a1c96810a8e8c4ffaeaad10c842402647c1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -20,13 +249,145 @@
"type": "github" "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": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1711333969, "lastModified": 1700612854,
"narHash": "sha256-5PiWGn10DQjMZee5NXzeA6ccsv60iLu+Xtw+mfvkUAs=", "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", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "57e6b3a9e4ebec5aa121188301f04a6b8c354c9b", "rev": "33d1e753c82ffc557b4a585c77de43d4c922ebb5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -36,10 +397,90 @@
"type": "github" "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": { "root": {
"inputs": { "inputs": {
"home-manager": "home-manager", "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"
} }
} }
}, },

View File

@ -9,6 +9,11 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
niri = {
url = "github:sodiboo/niri-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = { self, nixpkgs, ... }@inputs: { outputs = { self, nixpkgs, ... }@inputs: {

View File

@ -32,12 +32,12 @@ in
# # overrides. You can do that directly here, just don't forget the # # 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 # # parentheses. Maybe you want to install Nerd Fonts with a limited number of
# # fonts? # # fonts?
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) # (nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
# # You can also create simple shell scripts directly inside your # # You can also create simple shell scripts directly inside your
# # configuration. For example, this adds a command 'my-hello' to your # # configuration. For example, this adds a command 'my-hello' to your
# # environment: # # environment:
# (pkgs.writeShellScriptBin "my-hello" '' # (writeShellScriptBin "my-hello" ''
# echo "Hello, ${config.home.username}!" # echo "Hello, ${config.home.username}!"
# '') # '')
@ -60,7 +60,13 @@ in
ungoogled-chromium ungoogled-chromium
# emacs-gtk # emacs-gtk
telegram-desktop 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 lutris
protonup-qt protonup-qt
qpwgraph qpwgraph
@ -116,6 +122,9 @@ in
# Exec=konsole -e ncmpcpp # Exec=konsole -e ncmpcpp
# Terminal=false # Terminal=false
# ''; # '';
# Global Wallpapers
"Pictures/Wallpapers".source = ./resources/home-manager/Pictures/Wallpapers;
# MPDCRON Configuration # MPDCRON Configuration
".mpdcron/mpdcron.conf".source = ./global-resources/home-manager/.mpdcron/mpdcron.conf; ".mpdcron/mpdcron.conf".source = ./global-resources/home-manager/.mpdcron/mpdcron.conf;

Binary file not shown.

After

Width:  |  Height:  |  Size: 690 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 690 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 807 KiB

View File

@ -1,9 +1,14 @@
{ lib, config, pkgs, modulesPath, ... }: { lib, config, pkgs, modulesPath, inputs, ... }:
let let
cfg = config.cspark-desktop-niri-config-1; cfg = config.cspark-desktop-niri-config-1;
in in
{ {
# imports =
# [
# inputs.niri.homeModules.niri
# ];
options.cspark-desktop-niri-config-1 = { options.cspark-desktop-niri-config-1 = {
enable enable
= lib.mkEnableOption "Enable Custom Niri Desktop Setup 1"; = lib.mkEnableOption "Enable Custom Niri Desktop Setup 1";
@ -12,7 +17,7 @@ in
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
# Config Files (typically $HOME/.config) # Config Files (typically $HOME/.config)
xdg.configFile = { 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; "mako/config".source = ./resources/home-manager/.config/mako/config;
"foot/foot.ini".source = ./resources/home-manager/.config/foot/foot.ini; "foot/foot.ini".source = ./resources/home-manager/.config/foot/foot.ini;
"networkmanager-dmenu/config.ini".source = ./resources/home-manager/.config/networkmanager-dmenu/config.ini; "networkmanager-dmenu/config.ini".source = ./resources/home-manager/.config/networkmanager-dmenu/config.ini;
@ -23,18 +28,20 @@ in
home.sessionVariables = { home.sessionVariables = {
TERM = "foot"; TERM = "foot";
QT_QPA_PLATFORM = "wayland-egl"; QT_QPA_PLATFORM = "wayland";
QT_QPA_PLATFORMTHEME = "qt6ct"; QT_QPA_PLATFORMTHEME = "qt6ct";
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
SDL_VIDEODRIVER = "wayland"; SDL_VIDEODRIVER = "wayland";
_JAVA_AWT_WM_NONREPARENTING = "1"; _JAVA_AWT_WM_NONREPARENTING = "1";
SSH_ASKPASS = "lxqt-openssh-askpass"; 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) # Start sway after login if on TTY1 (Default Linux TTY upon boot/login)
programs.bash.profileExtra = '' programs.bash.profileExtra = ''
if [[ $(tty) == "/dev/tty1" ]]; then if [[ $(tty) == "/dev/tty1" ]]; then
niri-session niri --session
fi fi
''; '';
}; };

View File

@ -1,9 +1,14 @@
{ lib, config, pkgs, modulesPath, ... }: { lib, config, pkgs, modulesPath, inputs, ... }:
let let
cfg = config.cspark-desktop-niri; cfg = config.cspark-desktop-niri;
in in
{ {
imports =
[
inputs.niri.nixosModules.niri
];
options.cspark-desktop-niri = { options.cspark-desktop-niri = {
enable enable
= lib.mkEnableOption "Enable Custom Niri Desktop Setup"; = lib.mkEnableOption "Enable Custom Niri Desktop Setup";
@ -11,12 +16,12 @@ in
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
# Enable the Niri Compositor and add extra system packages. # Enable the Niri Compositor and add extra system packages.
programs.niri.enable = true;
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
niri
wl-clipboard wl-clipboard
swaylock # Locking swaylock # Locking
swayidle # Idle Detection (For locking) swayidle # Idle Detection (For locking)
swaybg # Set background wallpaper
foot # Terminal Emulator foot # Terminal Emulator
fuzzel # Application Launcher - Wayland fuzzel # Application Launcher - Wayland
wdisplays # Manage wayland displays wdisplays # Manage wayland displays
@ -89,21 +94,25 @@ in
environment.sessionVariables = { environment.sessionVariables = {
TERM = "foot"; TERM = "foot";
QT_QPA_PLATFORM = "wayland-egl"; QT_QPA_PLATFORM = "wayland";
QT_QPA_PLATFORMTHEME = "qt6ct"; QT_QPA_PLATFORMTHEME = "qt6ct";
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
SDL_VIDEODRIVER = "wayland"; SDL_VIDEODRIVER = "wayland";
_JAVA_AWT_WM_NONREPARENTING = "1"; _JAVA_AWT_WM_NONREPARENTING = "1";
SSH_ASKPASS = "lxqt-openssh-askpass"; SSH_ASKPASS = "lxqt-openssh-askpass";
# Enable native wayland support for chromium and electron based applications
NIXOS_OZONE_WL = "1";
}; };
environment.variables = { environment.variables = {
TERM = "foot"; TERM = "foot";
QT_QPA_PLATFORM = "wayland-egl"; QT_QPA_PLATFORM = "wayland";
QT_QPA_PLATFORMTHEME = "qt6ct"; QT_QPA_PLATFORMTHEME = "qt6ct";
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
SDL_VIDEODRIVER = "wayland"; SDL_VIDEODRIVER = "wayland";
_JAVA_AWT_WM_NONREPARENTING = "1"; _JAVA_AWT_WM_NONREPARENTING = "1";
SSH_ASKPASS = lib.mkForce "lxqt-openssh-askpass"; SSH_ASKPASS = lib.mkForce "lxqt-openssh-askpass";
# Enable native wayland support for chromium and electron based applications
NIXOS_OZONE_WL = "1";
}; };
}; };

View File

@ -84,7 +84,7 @@ input {
// https://github.com/YaLTeR/niri/wiki/Configuration:-Layout // https://github.com/YaLTeR/niri/wiki/Configuration:-Layout
layout { layout {
// Set gaps around windows in logical pixels. // Set gaps around windows in logical pixels.
gaps 5 gaps 10
// When to center a column when changing focus, options are: // When to center a column when changing focus, options are:
// - "never", default behavior, focusing an off-screen column will keep at the left // - "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. // which may be more convenient to use.
// spawn-at-startup "alacritty" "-e" "fish" // spawn-at-startup "alacritty" "-e" "fish"
spawn-at-startup "mako" 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. // 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. // 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-?, // Mod-Shift-/, which is usually the same as Mod-?,
// shows a list of important hotkeys. // 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. // Suggested binds for running programs: terminal, app launcher, screen locker.
Mod+Return { spawn "foot"; } Alt+Return { spawn "foot"; }
Mod+D { spawn "fuzzel"; } Alt+D { spawn "fuzzel"; }
Super+Alt+L { spawn "swaylock"; } Super+L { spawn "swaylock"; }
// You can also use a shell: // 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. // Example volume keys mappings for PipeWire & WirePlumber.
// The allow-when-locked=true property makes them work even when the session is locked. // 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"; } 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"; } 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; } Alt+Left { focus-column-left; }
Mod+Down { focus-window-down; } Alt+Down { focus-window-down; }
Mod+Up { focus-window-up; } Alt+Up { focus-window-up; }
Mod+Right { focus-column-right; } Alt+Right { focus-column-right; }
Mod+H { focus-column-left; } Alt+H { focus-column-left; }
Mod+J { focus-window-down; } Alt+J { focus-window-down; }
Mod+K { focus-window-up; } Alt+K { focus-window-up; }
Mod+L { focus-column-right; } Alt+L { focus-column-right; }
Mod+Shift+Left { move-column-left; } Alt+Shift+Left { move-column-left; }
Mod+Shift+Down { move-window-down; } Alt+Shift+Down { move-window-down; }
Mod+Shift+Up { move-window-up; } Alt+Shift+Up { move-window-up; }
Mod+Shift+Right { move-column-right; } Alt+Shift+Right { move-column-right; }
Mod+Shift+H { move-column-left; } Alt+Shift+H { move-column-left; }
Mod+Shift+J { move-window-down; } Alt+Shift+J { move-window-down; }
Mod+Shift+K { move-window-up; } Alt+Shift+K { move-window-up; }
Mod+Shift+L { move-column-right; } Alt+Shift+L { move-column-right; }
// Alternative commands that move across workspaces when reaching // Alternative commands that move across workspaces when reaching
// the first or last window in a column. // the first or last window in a column.
// Mod+J { focus-window-or-workspace-down; } // Alt+J { focus-window-or-workspace-down; }
// Mod+K { focus-window-or-workspace-up; } // Alt+K { focus-window-or-workspace-up; }
// Mod+Ctrl+J { move-window-down-or-to-workspace-down; } // Alt+Ctrl+J { move-window-down-or-to-workspace-down; }
// Mod+Ctrl+K { move-window-up-or-to-workspace-up; } // Alt+Ctrl+K { move-window-up-or-to-workspace-up; }
Mod+Home { focus-column-first; } Alt+Home { focus-column-first; }
Mod+End { focus-column-last; } Alt+End { focus-column-last; }
Mod+Ctrl+Home { move-column-to-first; } Alt+Ctrl+Home { move-column-to-first; }
Mod+Ctrl+End { move-column-to-last; } Alt+Ctrl+End { move-column-to-last; }
// Mod+Shift+Left { focus-monitor-left; } // Alt+Shift+Left { focus-monitor-left; }
// Mod+Shift+Down { focus-monitor-down; } // Alt+Shift+Down { focus-monitor-down; }
// Mod+Shift+Up { focus-monitor-up; } // Alt+Shift+Up { focus-monitor-up; }
// Mod+Shift+Right { focus-monitor-right; } // Alt+Shift+Right { focus-monitor-right; }
Mod+O { focus-monitor-left; } Alt+O { focus-monitor-left; }
// Mod+Shift+J { focus-monitor-down; } // Alt+Shift+J { focus-monitor-down; }
// Mod+Shift+K { focus-monitor-up; } // Alt+Shift+K { focus-monitor-up; }
// Mod+Shift+L { focus-monitor-right; } Alt+P { focus-monitor-right; }
// Mod+Shift+Ctrl+Left { move-column-to-monitor-left; } // Alt+Shift+Ctrl+Left { move-column-to-monitor-left; }
// Mod+Shift+Ctrl+Down { move-column-to-monitor-down; } // Alt+Shift+Ctrl+Down { move-column-to-monitor-down; }
// Mod+Shift+Ctrl+Up { move-column-to-monitor-up; } // Alt+Shift+Ctrl+Up { move-column-to-monitor-up; }
// Mod+Shift+Ctrl+Right { move-column-to-monitor-right; } // Alt+Shift+Ctrl+Right { move-column-to-monitor-right; }
Mod+Shift+O { move-column-to-monitor-left; } Alt+Shift+O { move-column-to-monitor-left; }
// Mod+Shift+Ctrl+J { move-column-to-monitor-down; } // Alt+Shift+Ctrl+J { move-column-to-monitor-down; }
// Mod+Shift+Ctrl+K { move-column-to-monitor-up; } // Alt+Shift+Ctrl+K { move-column-to-monitor-up; }
// Mod+Shift+Ctrl+L { move-column-to-monitor-right; } Alt+Shift+P { move-column-to-monitor-right; }
// Alternatively, there are commands to move just a single window: // 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: // 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; } Alt+Page_Down { focus-workspace-down; }
Mod+Page_Up { focus-workspace-up; } Alt+Page_Up { focus-workspace-up; }
// Mod+U { focus-workspace-down; } // Alt+U { focus-workspace-down; }
// Mod+I { focus-workspace-up; } // Alt+I { focus-workspace-up; }
Mod+Shift+Page_Down { move-column-to-workspace-down; } Alt+Shift+Page_Down { move-column-to-workspace-down; }
Mod+Shift+Page_Up { move-column-to-workspace-up; } Alt+Shift+Page_Up { move-column-to-workspace-up; }
// Mod+Ctrl+U { move-column-to-workspace-down; } // Alt+Ctrl+U { move-column-to-workspace-down; }
// Mod+Ctrl+I { move-column-to-workspace-up; } // Alt+Ctrl+I { move-column-to-workspace-up; }
// Alternatively, there are commands to move just a single window: // 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; } // Alt+Shift+Page_Down { move-workspace-down; }
// Mod+Shift+Page_Up { move-workspace-up; } // Alt+Shift+Page_Up { move-workspace-up; }
// Mod+Shift+U { move-workspace-down; } // Alt+Shift+U { move-workspace-down; }
// Mod+Shift+I { move-workspace-up; } // Alt+Shift+I { move-workspace-up; }
// You can bind mouse wheel scroll ticks using the following syntax. // You can bind mouse wheel scroll ticks using the following syntax.
// These binds will change direction based on the natural-scroll setting. // 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 // To avoid scrolling through workspaces really fast, you can use
// the cooldown-ms property. The bind will be rate-limited to this value. // 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. // You can set a cooldown on any bind, but it's most useful for the wheel.
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; } Alt+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; } Alt+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; } Alt+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; } Alt+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
Mod+WheelScrollRight { focus-column-right; } Alt+WheelScrollRight { focus-column-right; }
Mod+WheelScrollLeft { focus-column-left; } Alt+WheelScrollLeft { focus-column-left; }
Mod+Ctrl+WheelScrollRight { move-column-right; } Alt+Ctrl+WheelScrollRight { move-column-right; }
Mod+Ctrl+WheelScrollLeft { move-column-left; } Alt+Ctrl+WheelScrollLeft { move-column-left; }
// Usually scrolling up and down with Shift in applications results in // Usually scrolling up and down with Shift in applications results in
// horizontal scrolling; these binds replicate that. // horizontal scrolling; these binds replicate that.
Mod+Shift+WheelScrollDown { focus-column-right; } Alt+Shift+WheelScrollDown { focus-column-right; }
Mod+Shift+WheelScrollUp { focus-column-left; } Alt+Shift+WheelScrollUp { focus-column-left; }
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; } Alt+Ctrl+Shift+WheelScrollDown { move-column-right; }
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; } Alt+Ctrl+Shift+WheelScrollUp { move-column-left; }
// Similarly, you can bind touchpad scroll "ticks". // Similarly, you can bind touchpad scroll "ticks".
// Touchpad scrolling is continuous, so for these binds it is split into // 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 // These binds are also affected by touchpad's natural-scroll, so these
// example binds are "inverted", since we have natural-scroll enabled for // example binds are "inverted", since we have natural-scroll enabled for
// touchpads by default. // touchpads by default.
// Mod+TouchpadScrollDown { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02+"; } // Alt+TouchpadScrollDown { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02+"; }
// Mod+TouchpadScrollUp { 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 // You can refer to workspaces by index. However, keep in mind that
// niri is a dynamic workspace system, so these commands are kind of // 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 // For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on
// will all refer to the 3rd workspace. // will all refer to the 3rd workspace.
Mod+1 { focus-workspace 1; } Alt+1 { focus-workspace 1; }
Mod+2 { focus-workspace 2; } Alt+2 { focus-workspace 2; }
Mod+3 { focus-workspace 3; } Alt+3 { focus-workspace 3; }
Mod+4 { focus-workspace 4; } Alt+4 { focus-workspace 4; }
Mod+5 { focus-workspace 5; } Alt+5 { focus-workspace 5; }
Mod+6 { focus-workspace 6; } Alt+6 { focus-workspace 6; }
Mod+7 { focus-workspace 7; } Alt+7 { focus-workspace 7; }
Mod+8 { focus-workspace 8; } Alt+8 { focus-workspace 8; }
Mod+9 { focus-workspace 9; } Alt+9 { focus-workspace 9; }
Mod+Shift+1 { move-column-to-workspace 1; } Alt+Shift+1 { move-column-to-workspace 1; }
Mod+Shift+2 { move-column-to-workspace 2; } Alt+Shift+2 { move-column-to-workspace 2; }
Mod+Shift+3 { move-column-to-workspace 3; } Alt+Shift+3 { move-column-to-workspace 3; }
Mod+Shift+4 { move-column-to-workspace 4; } Alt+Shift+4 { move-column-to-workspace 4; }
Mod+Shift+5 { move-column-to-workspace 5; } Alt+Shift+5 { move-column-to-workspace 5; }
Mod+Shift+6 { move-column-to-workspace 6; } Alt+Shift+6 { move-column-to-workspace 6; }
Mod+Shift+7 { move-column-to-workspace 7; } Alt+Shift+7 { move-column-to-workspace 7; }
Mod+Shift+8 { move-column-to-workspace 8; } Alt+Shift+8 { move-column-to-workspace 8; }
Mod+Shift+9 { move-column-to-workspace 9; } Alt+Shift+9 { move-column-to-workspace 9; }
// Alternatively, there are commands to move just a single window: // 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. // 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; } Alt+Comma { consume-window-into-column; }
Mod+Period { expel-window-from-column; } Alt+Period { expel-window-from-column; }
// There are also commands that consume or expel a single window to the side. // There are also commands that consume or expel a single window to the side.
// Mod+BracketLeft { consume-or-expel-window-left; } // Alt+BracketLeft { consume-or-expel-window-left; }
// Mod+BracketRight { consume-or-expel-window-right; } // Alt+BracketRight { consume-or-expel-window-right; }
Mod+R { switch-preset-column-width; } // Alt+R { switch-preset-column-width; }
Mod+Shift+R { reset-window-height; } // Alt+Shift+R { reset-window-height; }
Mod+F { maximize-column; } Alt+F { maximize-column; }
Mod+Shift+F { fullscreen-window; } Alt+Shift+F { fullscreen-window; }
Mod+C { center-column; } Alt+C { center-column; }
// Finer width adjustments. // Finer width adjustments.
// This command can also: // This command can also:
@ -433,29 +433,29 @@ binds {
// * adjust width as a percentage of screen width: "-10%" or "+10%" // * 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, // 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. // set-column-width "100" will make the column occupy 200 physical screen pixels.
Mod+Minus { set-column-width "-10%"; } Alt+Minus { set-column-width "-10%"; }
Mod+Equal { set-column-width "+10%"; } Alt+Equal { set-column-width "+10%"; }
// Finer height adjustments when in column with other windows. // Finer height adjustments when in column with other windows.
Mod+Shift+Minus { set-window-height "-10%"; } Alt+Shift+Minus { set-window-height "-10%"; }
Mod+Shift+Equal { set-window-height "+10%"; } Alt+Shift+Equal { set-window-height "+10%"; }
// Actions to switch layouts. // Actions to switch layouts.
// Note: if you uncomment these, make sure you do NOT have // Note: if you uncomment these, make sure you do NOT have
// a matching layout switch hotkey configured in xkb options above. // a matching layout switch hotkey configured in xkb options above.
// Having both at once on the same hotkey will break the switching, // 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). // since it will switch twice upon pressing the hotkey (once by xkb, once by niri).
// Mod+Space { switch-layout "next"; } // Alt+Space { switch-layout "next"; }
// Mod+Shift+Space { switch-layout "prev"; } // Alt+Shift+Space { switch-layout "prev"; }
Print { screenshot; } Print { screenshot; }
Mod+Print { screenshot-screen; } Alt+Print { screenshot-screen; }
Mod+Shift+Print { screenshot-window; } Alt+Shift+Print { screenshot-window; }
// The quit action will show a confirmation dialog to avoid accidental exits. // 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 // Powers off the monitors. To turn them back on, do any input like
// moving the mouse or pressing any other key. // moving the mouse or pressing any other key.
Mod+Shift+P { power-off-monitors; } // Alt+Shift+P { power-off-monitors; }
} }

View File

@ -12,6 +12,8 @@ in
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home.sessionVariables = { home.sessionVariables = {
TERM = "konsole"; TERM = "konsole";
# Enable native wayland support for chromium and electron based applications
NIXOS_OZONE_WL = "1";
}; };
}; };
} }

View File

@ -57,9 +57,13 @@ in
# Set konsole to be default terminal # Set konsole to be default terminal
environment.sessionVariables = { environment.sessionVariables = {
TERM = "konsole"; TERM = "konsole";
# Enable native wayland support for chromium and electron based applications
NIXOS_OZONE_WL = "1";
}; };
environment.variables = { environment.variables = {
TERM = "konsole"; TERM = "konsole";
# Enable native wayland support for chromium and electron based applications
NIXOS_OZONE_WL = "1";
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [

View File

@ -23,12 +23,14 @@ in
home.sessionVariables = { home.sessionVariables = {
TERM = "foot"; TERM = "foot";
QT_QPA_PLATFORM = "wayland-egl"; QT_QPA_PLATFORM = "wayland";
QT_QPA_PLATFORMTHEME = "qt6ct"; QT_QPA_PLATFORMTHEME = "qt6ct";
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
SDL_VIDEODRIVER = "wayland"; SDL_VIDEODRIVER = "wayland";
_JAVA_AWT_WM_NONREPARENTING = "1"; _JAVA_AWT_WM_NONREPARENTING = "1";
SSH_ASKPASS = "lxqt-openssh-askpass"; 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) # Start sway after login if on TTY1 (Default Linux TTY upon boot/login)

View File

@ -89,21 +89,25 @@ in
environment.sessionVariables = { environment.sessionVariables = {
TERM = "foot"; TERM = "foot";
QT_QPA_PLATFORM = "wayland-egl"; QT_QPA_PLATFORM = "wayland";
QT_QPA_PLATFORMTHEME = "qt6ct"; QT_QPA_PLATFORMTHEME = "qt6ct";
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
SDL_VIDEODRIVER = "wayland"; SDL_VIDEODRIVER = "wayland";
_JAVA_AWT_WM_NONREPARENTING = "1"; _JAVA_AWT_WM_NONREPARENTING = "1";
SSH_ASKPASS = "lxqt-openssh-askpass"; SSH_ASKPASS = "lxqt-openssh-askpass";
# Enable native wayland support for chromium and electron based applications
NIXOS_OZONE_WL = "1";
}; };
environment.variables = { environment.variables = {
TERM = "foot"; TERM = "foot";
QT_QPA_PLATFORM = "wayland-egl"; QT_QPA_PLATFORM = "wayland";
QT_QPA_PLATFORMTHEME = "qt6ct"; QT_QPA_PLATFORMTHEME = "qt6ct";
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
SDL_VIDEODRIVER = "wayland"; SDL_VIDEODRIVER = "wayland";
_JAVA_AWT_WM_NONREPARENTING = "1"; _JAVA_AWT_WM_NONREPARENTING = "1";
SSH_ASKPASS = lib.mkForce "lxqt-openssh-askpass"; SSH_ASKPASS = lib.mkForce "lxqt-openssh-askpass";
# Enable native wayland support for chromium and electron based applications
NIXOS_OZONE_WL = "1";
}; };
}; };