{ pkgs, config, lib, ... }: { imports = [ ./bspwm.nix ./picom.nix ./audio.nix ./polybar.nix ./dunst.nix ./rofi.nix ./iosevka.nix ./kitty.nix ./element.nix ./url-eater.nix ./spotify.nix ]; # User packages users.users.agatha.packages = with pkgs; [ blueberry brightnessctl broot clipmenu colmena element-desktop ffmpeg flameshot gimp glib gnome.eog gnome.file-roller gnome.gnome-calendar gnome.gnome-control-center gnome.gnome-disk-utility gnome.gnome-font-viewer gnome.nautilus gnome.totem hyperfine lxappearance magic-wormhole neofetch nil nitrogen obs-studio obsidian pfetch pridefetch prismlauncher rofi-calc rofimoji tdesktop wireguard-tools xdg-utils xdotool yubioath-flutter bspm polybar-spotify ]; # Brightness/volume keys users.users.agatha.extraGroups = [ "video" ]; location = { latitude = 49.0; longitude = 8.4; }; services.redshift = { enable = true; brightness.night = "0.8"; }; services.xserver = { enable = true; displayManager = { gdm.enable = true; # gdm.wayland = true; sessionPackages = [ pkgs.sway ]; session = [{ manage = "window"; name = "bspwm"; start = let cfg = config.home-manager.users.agatha; in '' ${cfg.services.sxhkd.package}/bin/sxhkd ${ toString cfg.services.sxhkd.extraOptions } & ${cfg.xsession.windowManager.bspwm.package}/bin/bspwm -c ${cfg.xdg.configHome}/bspwm/bspwmrc ''; }]; }; # Layout overrides layout = lib.mkForce "eu,de(qwerty),ua,ru"; xkbOptions = "ctrl:nocaps,compose:rctrl"; libinput.enable = true; }; home-manager.users.agatha = { # Compose key sequences home.file.".XCompose".text = '' include "%L" : "( ͡° ͜ʖ ͡°)" : "¯\\_(ツ)_/¯" : "༼ つ ◕_◕ ༽つ" : "🅱️" : "•" : "◆" : "✔" : "✓" : "​" <0> : "§" : "█" : "☭" : "√" : "⚧️ trans rights uwu" : "òwó" : "ÒwÓ"

: "👉👈"

: "🥺" : "/html " ''; # Cursor theme home.pointerCursor = { name = "Adwaita"; package = pkgs.gnome.adwaita-icon-theme; size = 24; x11 = { enable = true; defaultCursor = "Adwaita"; }; }; # Lockscreen services.betterlockscreen = { enable = true; arguments = [ "dimblur" ]; }; # GTK theme home.file.".themes" = { recursive = true; source = pkgs.fetchgit { url = "https://github.com/ZorinOS/zorin-desktop-themes.git"; rev = "6708d5148545c6d9a99712f63b5efe5a5c0eb2d9"; sha256 = "sha256-3KEPP39dCr0ZjyqbAb/isoGdeiySDTvHL9k4oxcw19M="; sparseCheckout = [ "ZorinPurple-Dark" "ZorinPurple-Light" ]; }; }; gtk = { enable = true; theme.name = if config.environment.graphical.theme.light then "ZorinPurple-Light" else "ZorinPurple-Dark"; }; programs.helix.settings.theme = if config.environment.graphical.theme.light then "paramount-light" else "paramount-dark"; programs.direnv.enable = true; home.sessionVariables = { "DIRENV_LOG_FORMAT" = ""; }; programs.ssh.enable = true; programs.ssh.matchBlocks = { "bloodletting" = { hostname = "technogothic.net"; }; "backups" = { match = ''originalhost backups exec "ip r | rg 10.42.0.0/24"''; hostname = "10.20.1.2"; user = "agatha"; identityFile = [ "~/.ssh/id_ed25519" ]; }; "work" = { match = ''originalhost work exec "ip r | rg 10.42.0.0/24"''; hostname = "10.42.0.222"; forwardX11 = true; forwardX11Trusted = true; extraOptions."TCPKeepAlive" = "yes"; }; "ritual" = { match = ''originalhost ritual exec "ip r | rg 10.42.0.0/24"''; hostname = "10.42.0.230"; }; }; }; environment.graphical.colorschemes = { purple = { image = ../../../external/the_reliquary.png; params = [ "--lighten" "0.05" "--bold-delta" "0.1" ]; }; purple-light = { image = ../../../external/the_reliquary.png; params = [ "--light" "--bold-delta" "0.2" "--saturate" "0.1" ]; }; blue = { image = ../../../external/blue.jpg; }; dark = { image = ../../../external/the_falls_by_night.jpg; }; }; environment.graphical.theme.name = "dark"; services.gvfs.enable = true; security.polkit.enable = true; programs.dconf.enable = true; programs.geary.enable = true; programs.steam.enable = true; programs.firefox = { enable = true; autoConfig = '' pref("privacy.webrtc.legacyGlobalIndicator", false); pref("privacy.webrtc.hideGlobalIndicator", true); ''; }; # Screenshare on wlroots xdg = { portal = { enable = true; extraPortals = with pkgs; [ xdg-desktop-portal-wlr xdg-desktop-portal-gtk ]; wlr.enable = true; }; }; fonts.fontconfig.enable = true; fonts.fontDir.enable = true; fonts.fonts = with pkgs; [ (nerdfonts.override { fonts = [ "DaddyTimeMono" "NerdFontsSymbolsOnly" ]; }) cantarell-fonts cm_unicode corefonts crimson dejavu_fonts fira-code fira-code-symbols font-awesome_5 iosevka noto-fonts-cjk siji twitter-color-emoji ]; services.printing.enable = true; }