2023-08-20 02:54:19 -06:00
|
|
|
{ config, pkgs, options, inputs, forEachUser, makeEnable, ... }:
|
|
|
|
makeEnable config "modules.xmonad" true {
|
2023-07-12 17:29:01 -06:00
|
|
|
nixpkgs.overlays = with inputs; [
|
|
|
|
xmonad.overlay
|
|
|
|
xmonad-contrib.overlay
|
|
|
|
notifications-tray-icon.overlay
|
|
|
|
(import ../dotfiles/config/xmonad/overlay.nix)
|
|
|
|
] ++ taffybar.overlays;
|
|
|
|
|
|
|
|
services.xserver = {
|
|
|
|
windowManager = {
|
|
|
|
session = [
|
|
|
|
{
|
|
|
|
name = "xmonad";
|
|
|
|
start = ''
|
|
|
|
/usr/bin/env imalison-xmonad &
|
|
|
|
waitPID=$!
|
|
|
|
'';
|
|
|
|
}
|
|
|
|
];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
|
|
# Haskell Desktop
|
|
|
|
haskellPackages.xmonad
|
|
|
|
haskellPackages.imalison-xmonad
|
|
|
|
haskellPackages.notifications-tray-icon
|
|
|
|
haskellPackages.gtk-sni-tray
|
|
|
|
haskellPackages.status-notifier-item
|
|
|
|
haskellPackages.dbus-hslogger
|
2023-08-21 22:29:21 -06:00
|
|
|
inputs.imalison-taffybar.defaultPackage."${pkgs.system}"
|
2023-07-12 17:29:01 -06:00
|
|
|
];
|
|
|
|
|
2023-08-20 02:54:19 -06:00
|
|
|
home-manager.users = forEachUser {
|
2023-08-30 14:16:30 -06:00
|
|
|
imports = [ ./dunst.nix ];
|
|
|
|
|
2023-08-20 02:54:19 -06:00
|
|
|
services.blueman-applet = {
|
|
|
|
enable = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
services.taffybar = {
|
|
|
|
enable = true;
|
|
|
|
package = inputs.imalison-taffybar.defaultPackage."${pkgs.system}";
|
|
|
|
};
|
|
|
|
|
|
|
|
services.kdeconnect = {
|
|
|
|
enable = true;
|
|
|
|
indicator = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
services.network-manager-applet.enable = true;
|
|
|
|
|
|
|
|
services.udiskie = {
|
|
|
|
enable = true;
|
|
|
|
tray = "always";
|
|
|
|
};
|
|
|
|
|
|
|
|
services.status-notifier-watcher.enable = true;
|
|
|
|
|
|
|
|
services.autorandr.enable = true;
|
|
|
|
|
|
|
|
services.random-background = {
|
|
|
|
enable = true;
|
|
|
|
display = "fill";
|
|
|
|
interval = "1h";
|
2023-09-21 13:03:34 -06:00
|
|
|
imageDirectory = "/var/lib/syncthing/sync/Wallpaper/";
|
2023-08-20 02:54:19 -06:00
|
|
|
};
|
|
|
|
|
|
|
|
services.xsettingsd.enable = true;
|
|
|
|
|
|
|
|
services.volnoti.enable = true;
|
|
|
|
|
|
|
|
services.pasystray.enable = true;
|
|
|
|
|
|
|
|
services.parcellite = {
|
|
|
|
enable = true;
|
|
|
|
package = pkgs.clipit;
|
|
|
|
};
|
|
|
|
|
|
|
|
services.picom = {
|
|
|
|
enable = true;
|
2023-08-22 12:32:05 -06:00
|
|
|
vSync = config.modules.xmonad.picom.vSync.enable;
|
2023-08-20 02:54:19 -06:00
|
|
|
backend = "glx";
|
|
|
|
extraArgs = ["--experimental-backends"];
|
2024-02-12 22:05:06 -07:00
|
|
|
package = pkgs.picom-ivan;
|
2023-08-20 02:54:19 -06:00
|
|
|
|
|
|
|
settings = {
|
|
|
|
animations = true;
|
|
|
|
animation-window-mass = 1;
|
|
|
|
animation-dampening = 20;
|
|
|
|
animation-stiffness = 250;
|
|
|
|
animation-clamping = false;
|
|
|
|
animation-for-open-window = "zoom";
|
|
|
|
animation-for-unmap-window = "zoom";
|
|
|
|
animation-for-transient-window = "slide-down";
|
|
|
|
fade-in-step = 0.028;
|
|
|
|
fade-out-step = 0.028;
|
|
|
|
fading = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
wintypes = {
|
|
|
|
dock = {animation = "slide-down";};
|
|
|
|
toolbar = {animation = "slide-down";};
|
|
|
|
};
|
|
|
|
|
|
|
|
settings = {
|
|
|
|
inactive-dim = 0.2;
|
|
|
|
focus-exclude = ["class_g ?= 'rofi'" "class_g ?= 'Steam'"];
|
|
|
|
rounded-corners-exclude = [
|
|
|
|
"! name~=''" # Qtile == empty wm_class..
|
|
|
|
"window_type = 'dock'"
|
|
|
|
"window_type = 'desktop'"
|
2023-09-13 20:11:21 -06:00
|
|
|
"class_g ?= 'Dunst'"
|
2023-08-20 02:54:19 -06:00
|
|
|
];
|
|
|
|
|
|
|
|
corner-radius = 10;
|
|
|
|
round-borders = 0;
|
|
|
|
round-borders-exclude = [
|
|
|
|
"! name~=''" # Qtile == empty wm_class..
|
|
|
|
];
|
|
|
|
|
|
|
|
daemon = false;
|
|
|
|
dbus = false;
|
|
|
|
mark-wmwin-focused = false;
|
|
|
|
mark-ovredir-focused = false;
|
|
|
|
detect-rounded-corners = true;
|
|
|
|
detect-client-opacity = true;
|
|
|
|
|
|
|
|
unredir-if-possible = false;
|
|
|
|
unredir-if-possible-exclude = [];
|
|
|
|
detect-transient = true;
|
|
|
|
detect-client-leader = true;
|
|
|
|
|
|
|
|
invert-color-include = [];
|
|
|
|
glx-no-stencil = true;
|
|
|
|
use-damage = false;
|
|
|
|
transparent-clipping = false;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
systemd.user.services.notifications-tray-icon = {
|
|
|
|
Unit = {
|
|
|
|
Description = "Notifications tray icon";
|
|
|
|
After = [ "graphical-session-pre.target" "tray.target" ];
|
|
|
|
PartOf = [ "graphical-session.target" ];
|
|
|
|
};
|
|
|
|
|
|
|
|
Install = { WantedBy = [ "graphical-session.target" ]; };
|
|
|
|
|
|
|
|
Service = {
|
|
|
|
ExecStart = "${pkgs.haskellPackages.notifications-tray-icon}/bin/notifications-tray-icon --github-token-pass dfinity-github-api-token";
|
|
|
|
Restart = "always";
|
|
|
|
RestartSec = 3;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
systemd.user.services.shutter = {
|
|
|
|
Unit = {
|
|
|
|
Description = "Shutter";
|
|
|
|
After = [ "graphical-session-pre.target" "tray.target" ];
|
|
|
|
PartOf = [ "graphical-session.target" ];
|
|
|
|
};
|
|
|
|
|
|
|
|
Install = { WantedBy = [ "graphical-session.target" ]; };
|
|
|
|
|
|
|
|
Service = {
|
|
|
|
ExecStart = "${pkgs.shutter}/bin/shutter --min_at_startup";
|
|
|
|
Restart = "always";
|
|
|
|
RestartSec = 3;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
2023-07-12 17:29:01 -06:00
|
|
|
}
|