1
Fork 0
mirror of https://github.com/thegeneralist01/config.git synced 2026-05-30 08:37:01 +02:00

move to niri+noctalia

This commit is contained in:
TheGeneralist 2026-03-20 16:21:41 +01:00
parent 6d5689d68a
commit faeb9972fb
Signed by: thegeneralist01
SSH key fingerprint: SHA256:pp9qddbCNmVNoSjevdvQvM5z0DHN7LTa8qBMbcMq/R4
9 changed files with 644 additions and 37 deletions

208
flake.lock generated
View file

@ -153,7 +153,7 @@
}, },
"flake-utils_4": { "flake-utils_4": {
"inputs": { "inputs": {
"systems": "systems_5" "systems": "systems_6"
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1731533236,
@ -287,6 +287,64 @@
"type": "github" "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": { "nix-darwin": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -398,6 +456,22 @@
"type": "github" "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": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1741865919, "lastModified": 1741865919,
@ -447,6 +521,22 @@
} }
}, },
"nixpkgs_4": { "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": { "locked": {
"lastModified": 1769789167, "lastModified": 1769789167,
"narHash": "sha256-kKB3bqYJU5nzYeIROI82Ef9VtTbu4uA3YydSk/Bioa8=", "narHash": "sha256-kKB3bqYJU5nzYeIROI82Ef9VtTbu4uA3YydSk/Bioa8=",
@ -462,10 +552,55 @@
"type": "github" "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": { "readlater-bot": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_4", "flake-utils": "flake-utils_4",
"nixpkgs": "nixpkgs_4" "nixpkgs": "nixpkgs_5"
}, },
"locked": { "locked": {
"lastModified": 1772524468, "lastModified": 1772524468,
@ -490,10 +625,13 @@
"home-manager": "home-manager", "home-manager": "home-manager",
"homebrew-cask": "homebrew-cask", "homebrew-cask": "homebrew-cask",
"homebrew-core": "homebrew-core", "homebrew-core": "homebrew-core",
"niri": "niri",
"nix-darwin": "nix-darwin", "nix-darwin": "nix-darwin",
"nix-homebrew": "nix-homebrew", "nix-homebrew": "nix-homebrew",
"nix-openclaw": "nix-openclaw", "nix-openclaw": "nix-openclaw",
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_3",
"noctalia": "noctalia",
"noctalia-qs": "noctalia-qs",
"readlater-bot": "readlater-bot" "readlater-bot": "readlater-bot"
} }
}, },
@ -575,6 +713,21 @@
} }
}, },
"systems_5": { "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": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@ -589,6 +742,57 @@
"type": "github" "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": { "zig": {
"inputs": { "inputs": {
"flake-compat": [ "flake-compat": [

View file

@ -17,12 +17,10 @@
nix-homebrew.url = "github:zhaofengli/nix-homebrew"; nix-homebrew.url = "github:zhaofengli/nix-homebrew";
homebrew-core = { homebrew-core = {
url = "github:homebrew/homebrew-core"; url = "github:homebrew/homebrew-core";
flake = false; flake = false;
}; };
homebrew-cask = { homebrew-cask = {
url = "github:homebrew/homebrew-cask"; url = "github:homebrew/homebrew-cask";
flake = false; flake = false;
}; };
@ -46,6 +44,11 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
niri = {
url = "github:sodiboo/niri-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
helium = { helium = {
# url = "github:FKouhai/helium2nix/main"; # url = "github:FKouhai/helium2nix/main";
url = "github:AlvaroParker/helium-nix"; url = "github:AlvaroParker/helium-nix";
@ -55,6 +58,17 @@
readlater-bot = { readlater-bot = {
url = "github:thegeneralist01/bookkeeper"; 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 = outputs =

View file

@ -3,6 +3,7 @@
"https://cache.thegeneralist01.com/" "https://cache.thegeneralist01.com/"
"https://cache.garnix.io/" "https://cache.garnix.io/"
"https://cache.nixos.org/" "https://cache.nixos.org/"
"https://niri.cachix.org"
]; ];
in { in {
# todo: gc # todo: gc
@ -23,6 +24,7 @@ in {
extra-trusted-public-keys = [ extra-trusted-public-keys = [
"cache.thegeneralist01.com:jkKcenR877r7fQuWq6cr0JKv2piqBWmYLAYsYsSJnT4=" "cache.thegeneralist01.com:jkKcenR877r7fQuWq6cr0JKv2piqBWmYLAYsYsSJnT4="
"cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g=" "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
"niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964="
]; ];
trusted-users = [ "thegeneralist" "central" "root" "@build" "@wheel" "@admin" "jellyfin" "git" ]; trusted-users = [ "thegeneralist" "central" "root" "@build" "@wheel" "@admin" "jellyfin" "git" ];

View file

@ -20,7 +20,7 @@ let
unstable = import (builtins.fetchTarball { unstable = import (builtins.fetchTarball {
url = "https://github.com/NixOS/nixpkgs/archive/nixos-unstable.tar.gz"; url = "https://github.com/NixOS/nixpkgs/archive/nixos-unstable.tar.gz";
sha256 = if (config.isServer) then "sha256:0fgmdh1j6qrx64wq8wk2hry2rjh3rkvz9pch29l8zn49nlndvxy2" else (if (config.onLinux) then "sha256:0fgmdh1j6qrx64wq8wk2hry2rjh3rkvz9pch29l8zn49nlndvxy2" else "sha256:16xi1yijq2ccbp8254zc0b5fgz0igxvyf4yn349wj2ggk4cl6dgn"); sha256 = if (config.isServer) then "sha256:0fgmdh1j6qrx64wq8wk2hry2rjh3rkvz9pch29l8zn49nlndvxy2" else (if (config.onLinux) then "sha256:03plivnr4cg0h8v7djf9g2jra09r45pmdiirmy4lvl2n1d4yb7ac" else "sha256:16xi1yijq2ccbp8254zc0b5fgz0igxvyf4yn349wj2ggk4cl6dgn");
}) { system = pkgs.system; }; }) { system = pkgs.system; };
package = unstable.nushell; package = unstable.nushell;
in in

View file

@ -70,6 +70,7 @@ return {
r = { "<cmd>:lua vim.lsp.buf.format()<cr>", "Fo[R]mat" }, r = { "<cmd>:lua vim.lsp.buf.format()<cr>", "Fo[R]mat" },
t = { "<cmd>:lua Snacks.picker.todo_comments()<cr>", "TODOs" }, t = { "<cmd>:lua Snacks.picker.todo_comments()<cr>", "TODOs" },
}, },
prefix = "<leader>",
--conf end --conf end
}, },
} }

View file

@ -99,3 +99,6 @@ end)
vim.keymap.set("n", "<leader>lr", "<cmd>LspRestart<CR>", { desc = "Restart LSP" }) vim.keymap.set("n", "<leader>lr", "<cmd>LspRestart<CR>", { desc = "Restart LSP" })
vim.keymap.set("n", "<leader>le", "<cmd>LspStart<CR>", { desc = "Start LSP" }) vim.keymap.set("n", "<leader>le", "<cmd>LspStart<CR>", { desc = "Start LSP" })
vim.keymap.set("n", "<leader>ld", "<cmd>LspStop<CR>", { desc = "Stop LSP" }) vim.keymap.set("n", "<leader>ld", "<cmd>LspStop<CR>", { desc = "Stop LSP" })
vim.keymap.set("n", "<leader>fr", "<cmd>:lua vim.lsp.buf.format()<CR>", { desc = "Fo[R]mat" })
vim.keymap.set("n", "<leader>ft", "<cmd>:lua Snacks.picker.todo_comments()<CR>", { desc = "TODOs" })

View file

@ -0,0 +1,12 @@
{ pkgs, inputs, ... }:
{
environment.systemPackages = [
inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default
];
home-manager.sharedModules = [{
imports = [
inputs.noctalia.homeModules.default
];
}];
}

View file

@ -1,10 +1,381 @@
{ pkgs, lib, ... }: let { inputs, pkgs, ... }:
inherit (lib) optionalAttrs; {
in { 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 = {
binds = {
# Shortcuts Panel
"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"
];
};
spawn-at-startup = [
{
command = [ "noctalia-shell" ];
}
];
};
};
}
];
environment.sessionVariables = {
NIXOS_OZONE_WL = "1";
};
virtualisation.vmware.guest.enable = true; virtualisation.vmware.guest.enable = true;
environment.systemPackages = [ pkgs.fuzzel ]; programs.niri = {
programs.niri.enable = true; enable = true;
package = pkgs.niri;
};
environment.systemPackages = [
pkgs.fuzzel
pkgs.xfce.thunar
pkgs.playerctl
pkgs.wireplumber
];
services.xserver = { services.xserver = {
enable = true; enable = true;
@ -24,25 +395,25 @@ in {
}; };
}; };
windowManager.i3 = optionalAttrs (false) { # windowManager.i3 = optionalAttrs (false) {
enable = true; # enable = true;
package = pkgs.i3; # package = pkgs.i3;
configFile = ../dotfiles/i3/config; # configFile = ../dotfiles/i3/config;
#
extraPackages = with pkgs; [ # extraPackages = with pkgs; [
i3 # i3
i3status # i3status
rofi # rofi
dmenu # dmenu
feh # feh
picom # transparency effects compositor # picom # transparency effects compositor
dunst # notification daemon # dunst # notification daemon
xfce.thunar # xfce.thunar
nemo # nemo
arandr # screen conf # arandr # screen conf
lxappearance # lxappearance
]; # ];
}; # };
}; };
# home.file.".xprofile".text = '' # home.file.".xprofile".text = ''