summaryrefslogtreecommitdiff
path: root/software/windowmanager.nix
diff options
context:
space:
mode:
authorBenjamin Chausse <benjamin@chausse.xyz>2024-11-14 12:05:09 -0500
committerBenjamin Chausse <benjamin@chausse.xyz>2024-11-14 12:05:09 -0500
commit3727e7bd79fe75ff18b1dc6af494dbda940e0971 (patch)
tree8c4fa53308b74063b4262605a02fcda07cd14d21 /software/windowmanager.nix
Batman
Diffstat (limited to 'software/windowmanager.nix')
-rw-r--r--software/windowmanager.nix68
1 files changed, 68 insertions, 0 deletions
diff --git a/software/windowmanager.nix b/software/windowmanager.nix
new file mode 100644
index 0000000..d43b9fe
--- /dev/null
+++ b/software/windowmanager.nix
@@ -0,0 +1,68 @@
+{environment, xdg, pkgs, services, ...}:
+
+{
+ # Main packages
+ environment.systemPackages = with pkgs; [
+ # Fonts
+ fontconfig
+ fira-code-nerdfont
+ libertinus
+
+ kanshi # auto-configure monitors on connect/disconnect
+
+ river # wm
+ lua # river config
+ luajitPackages.luaposix
+
+ foot # terminal
+ tofi # launcher (dmenu-like)
+ swaybg # wallpaper
+ waybar # bar
+ wev # detect inputs
+
+ cronie
+
+ tmux # for my homemade dropdowns
+
+ # Screenshots
+ grim
+ slurp
+
+ dunst # notifications
+ libnotify
+ wl-clipboard # copy/paste
+
+ wlr-randr # detect monitors
+ wdisplays # arrange monitors
+ jq # parse wlr-randr json output
+
+ pulsemixer # adjust audio
+ playerctl # control next/previous song
+ glib # for gdbus needed by volumectl
+ ];
+
+ # Screen capture/sharing:
+ xdg.portal = {
+ enable = true;
+ xdgOpenUsePortal = true;
+ config = {
+ common = {
+ default = ["wlr"];
+ };
+ };
+ wlr = {
+ enable = true;
+ settings = {
+ screencast = {
+ max_fps = 30;
+ chooser_type = "simple";
+ chooser_cmd = "${pkgs.slurp}/bin/slurp -f %o -or";
+ };
+ };
+ };
+ };
+
+ # Force wayland on electron
+ environment.sessionVariables.NIXOS_OZONE_WL = "1";
+
+}