{ config, lib, pkgs, ... }: { imports = [ ./waybar/default.nix ./obs/default.nix ]; services = { gpg-agent.pinentryFlavor = "gnome3"; avizo.enable = true; syncthing.enable = true; udiskie = { enable = true; notify = true; automount = true; tray = "never"; }; }; programs = { foot = { enable = true; settings = { main = { pad = "10x10"; locked-title = false; notify-focus-inhibit = true; selection-target = "both"; }; bell = { urgent = true; notify = true; }; mouse = { hide-when-typing = "yes"; }; }; }; rofi = { enable = true; package = pkgs.rofi-wayland; location = "center"; terminal = "foot"; pass = { enable = true; package = pkgs.rofi-pass-wayland; extraConfig = '' USERNAME_field='login' ''; }; extraConfig = let power-menu = "power-menu:${pkgs.rofi-power-menu}/bin/rofi-power-menu"; in { modi = "window,run,drun,ssh,${power-menu},combi"; combi-modi = "window,drun,ssh"; sidebar-mode = true; sort = true; sorting-method = "fzf"; matching = "fuzzy"; icon-theme = config.gtk.iconTheme.name; show-icons = true; application-fallback-icon = "󰋙 "; drun-display-format = "{icon} {name} ({categories})"; disable-history = false; hide-scrollbar = true; display-window = " 󰧨 Move "; display-run = " 󰅴 Run "; display-drun = " 󱓞 Apps "; display-ssh = " 󰢹 SSH "; display-combi = " 󰛡 Combi "; display-power-menu = " 󰐥 Power "; }; }; swaylock = { enable = true; settings = { indicator-caps-lock = true; ignore-empty-password = true; show-failed-attempts = true; }; }; }; gtk = { enable = true; cursorTheme = { package = pkgs.catppuccin-cursors.mochaDark; name = "Catppuccin-Mocha-Dark-Cursors"; size = 24; }; iconTheme = { package = pkgs.papirus-icon-theme; name = "Papirus-Dark"; }; theme = { package = pkgs.catppuccin-gtk.override { accents = [ "lavender" ]; size = "standard"; variant = "mocha"; }; name = "Catppuccin-Mocha-Standard-Lavender-Dark"; }; }; xdg = { configFile = { "hypr/extra.conf" = lib.mkDefault { text = ""; }; "hypr/hyprpaper.conf".text = '' preload = ${config.stylix.image} wallpaper = ,${config.stylix.image} ''; "swaync/style.css".source = ./swaync/style.css; }; }; wayland.windowManager.hyprland = { enable = true; xwayland.enable = true; systemd.enable = true; settings = { monitor = [ ",preferred,auto,auto" ]; env = with config; [ "XDG_CURRENT_DESKTOP=Hyprland" "XDG_SESSION_TYPE=wayland" "XDG_SESSION_DESKTOP=Hyprland" "GDK_BACKEND=wayland,x11" "GTK_THEME,${gtk.theme.name}" "XCURSOR_THEME,${gtk.cursorTheme.name}" "XCURSOR_SIZE,${toString gtk.cursorTheme.size}" "QT_AUTO_SCREEN_SCALE_FACTOR,1" "QT_QPA_PLATFORM,wayland" "QT_WAYLAND_DISABLE_WINDOWDECORATION,1" "MOZ_ENABLE_WAYLAND,1" "GRIM_DEFAULT_DIR=${xdg.userDirs.pictures}/Grim" ]; exec-once = with config; [ "hyprctl setcursor ${gtk.theme.name} ${toString gtk.cursorTheme.size}" ]; gestures.workspace_swipe = true; input = { kb_layout = "gb"; kb_options = "ctrl:nocaps"; follow_mouse = 1; touchpad.natural_scroll = "yes"; }; master = { allow_small_split = true; special_scale_factor = 0.95; mfact = 0.5; new_is_master = false; new_on_top = false; no_gaps_when_only = 0; orientation = "left"; inherit_fullscreen = false; smart_resizing = false; drop_at_cursor = true; }; general = { "col.active_border" = "rgb(b4befe)"; "col.inactive_border" = "rgb(313244)"; gaps_in = 5; gaps_out = 10; border_size = 1; cursor_inactive_timeout = 5; layout = "master"; }; decoration = { rounding = 10; "col.shadow" = "rgba(0d0e1c99)"; drop_shadow = "yes"; shadow_ignore_window = true; shadow_range = 4; shadow_render_power = 3; blur = { enabled = true; size = 5; passes = 3; new_optimizations = true; brightness = 1.0; noise = 2.0e-2; }; }; animations = { enabled = true; bezier = "myBezier, 0.05, 0.9, 0.1, 1.05"; animation = [ "windows, 1, 7, myBezier" "windowsOut, 1, 7, default, popin 80%" "border, 1, 10, default" "borderangle, 1, 8, default" "fade, 1, 7, default" "workspaces, 1, 6, default" ]; }; misc = { background_color = "rgb(0d0e1c)"; disable_autoreload = true; mouse_move_enables_dpms = true; key_press_enables_dpms = true; }; xwayland.force_zero_scaling = true; }; extraConfig = import ./config.nix { inherit config pkgs; }; }; }