From a41d92e793060d8bc25d2c9c6dc2fb7b5a1d0858 Mon Sep 17 00:00:00 2001 From: unexplrd Date: Fri, 14 Feb 2025 23:09:26 +0200 Subject: [PATCH] sarien as well --- hosts/dunamis/stylix.nix | 2 +- hosts/dunamis/users/user/programs.nix | 1 + hosts/sarien/stylix.nix | 14 +- hosts/sarien/users/user/programs.nix | 26 +- modules/home/desktop/sway/default.nix | 888 ++++++++++++++++++++++++++ 5 files changed, 911 insertions(+), 20 deletions(-) create mode 100644 modules/home/desktop/sway/default.nix diff --git a/hosts/dunamis/stylix.nix b/hosts/dunamis/stylix.nix index 3132aff..f9ab444 100644 --- a/hosts/dunamis/stylix.nix +++ b/hosts/dunamis/stylix.nix @@ -12,7 +12,7 @@ ]; stylix = { enable = true; - base16Scheme = "${pkgs.base16-schemes}/share/themes/isotope.yaml"; + base16Scheme = "${pkgs.base16-schemes}/share/themes/helios.yaml"; polarity = "dark"; cursor = { package = pkgs.google-cursor; diff --git a/hosts/dunamis/users/user/programs.nix b/hosts/dunamis/users/user/programs.nix index 3a07ecc..24f02ea 100644 --- a/hosts/dunamis/users/user/programs.nix +++ b/hosts/dunamis/users/user/programs.nix @@ -47,6 +47,7 @@ dust # du in rust fend # calc in rust tree # tree util + rbw # bitwarden cli in rust zip # zip util vial # qmk keyboard configuring app unzip # unzip util diff --git a/hosts/sarien/stylix.nix b/hosts/sarien/stylix.nix index 3ecf05b..f9ab444 100644 --- a/hosts/sarien/stylix.nix +++ b/hosts/sarien/stylix.nix @@ -7,22 +7,23 @@ inputs.stylix.nixosModules.stylix ]; environment.systemPackages = with pkgs; [ + #papirus-icon-theme nerd-fonts.iosevka ]; stylix = { enable = true; - base16Scheme = "${pkgs.base16-schemes}/share/themes/ayu-light.yaml"; - polarity = "light"; + base16Scheme = "${pkgs.base16-schemes}/share/themes/helios.yaml"; + polarity = "dark"; cursor = { - package = pkgs.bibata-cursors; - name = "Bibata-Modern-Ice"; + package = pkgs.google-cursor; + name = "GoogleDot-Blue"; size = 24; }; - image = ../../wallpapers/wallhaven-9djzww.jpg; + image = ../../wallpapers/wallhaven-zylmoo.jpg; opacity.terminal = 0.9; fonts = { sizes = { - applications = 14; + applications = 13; desktop = 14; popups = 13; terminal = 15; @@ -39,6 +40,7 @@ package = pkgs.nerd-fonts.iosevka; name = "Iosevka Nerd Font Mono"; }; + emoji = { package = pkgs.noto-fonts-emoji; name = "Noto Color Emoji"; diff --git a/hosts/sarien/users/user/programs.nix b/hosts/sarien/users/user/programs.nix index b6f265f..99d4eac 100644 --- a/hosts/sarien/users/user/programs.nix +++ b/hosts/sarien/users/user/programs.nix @@ -26,18 +26,18 @@ }; home.packages = with pkgs; [ - flatpak - waycheck - vial - git - ripgrep - trashy - fd - dust - procs - tree - zip - unzip - virt-manager + alejandra # nix formatter + flatpak # flatpak cli + trashy # trash cli + procs # ps in rust + dust # du in rust + fend # calc in rust + tree # tree util + rbw # bitwarden cli in rust + zip # zip util + vial # qmk keyboard configuring app + unzip # unzip util + waycheck # check wayland protocols + virt-manager # libvirt gui ]; } diff --git a/modules/home/desktop/sway/default.nix b/modules/home/desktop/sway/default.nix new file mode 100644 index 0000000..7728129 --- /dev/null +++ b/modules/home/desktop/sway/default.nix @@ -0,0 +1,888 @@ +{ + config, + pkgs, + # pkgs-51b85c, + lib, + ... +}: { + # imports = [./walker.nix]; + stylix.targets.sway.enable = true; + wayland.windowManager.sway = { + enable = true; + systemd.enable = true; + # xwayland.enable = false; + wrapperFeatures.gtk = true; + config = let + modifier = "Mod4"; + terminal = "ghostty"; + launcher = "walker"; + clipboard = "copyq toggle"; + left = "n"; + down = "e"; + up = "i"; + right = "o"; + in { + bars = [ + { + command = "${lib.getExe pkgs.waybar}"; + } + ]; + + modifier = "${modifier}"; + terminal = "${terminal}"; + menu = "${launcher}"; + + left = "${left}"; + down = "${down}"; + up = "${up}"; + right = "${right}"; + + workspaceLayout = "tabbed"; + + input = { + "*" = { + xkb_layout = "us,ua"; + repeat_delay = "200"; + repeat_rate = "50"; + accel_profile = "flat"; + }; + "type:touchpad" = { + tap = "enabled"; + scroll_method = "two_finger"; + }; + }; + output = { + "Samsung Electric Company S24R65x H4TMA03291" = { + mode = "1920x1080@74.973Hz"; + pos = "0 0"; + adaptive_sync = "on"; + allow_tearing = "yes"; + max_render_time = "off"; + }; + "AOC 27V2G5 0x0000026C" = { + pos = "1920 0"; + }; + }; + keybindings = lib.mkForce { + "${modifier}+Ctrl+q" = "kill"; + "${modifier}+Ctrl+Escape" = "exit"; + "${modifier}+Ctrl+r" = "reload"; + + "${modifier}+Ctrl+${left}" = "move left"; + "${modifier}+Ctrl+${down}" = "move down"; + "${modifier}+Ctrl+${up}" = "move up"; + "${modifier}+Ctrl+${right}" = "move right"; + "${modifier}+Ctrl+left" = "move left"; + "${modifier}+Ctrl+down" = "move down"; + "${modifier}+Ctrl+up" = "move up"; + "${modifier}+Ctrl+right" = "move right"; + "${modifier}+Ctrl+1" = "move window workspace 1"; + "${modifier}+Ctrl+2" = "move window workspace 2"; + "${modifier}+Ctrl+3" = "move window workspace 3"; + "${modifier}+Ctrl+4" = "move window workspace 4"; + "${modifier}+Ctrl+5" = "move window workspace 5"; + "${modifier}+Ctrl+6" = "move window workspace 6"; + "${modifier}+Ctrl+7" = "move window workspace 7"; + "${modifier}+Ctrl+8" = "move window workspace 8"; + "${modifier}+Ctrl+9" = "move window workspace 9"; + "${modifier}+Ctrl+0" = "move window workspace 10"; + "${modifier}+Ctrl+l" = "move window workspace prev"; + "${modifier}+Ctrl+y" = "move window workspace next"; + + "${modifier}+Shift+${left}" = "focus output left"; + "${modifier}+Shift+${down}" = "focus output down"; + "${modifier}+Shift+${up}" = "focus output up"; + "${modifier}+Shift+${right}" = "focus output right"; + "${modifier}+Shift+left" = "focus output left"; + "${modifier}+Shift+down" = "focus output down"; + "${modifier}+Shift+up" = "focus output up"; + "${modifier}+Shift+right" = "focus output right"; + + "${modifier}+Return" = "exec ${terminal}"; + "${modifier}+Shift+v" = "exec ${clipboard}"; + "${modifier}+Space" = "exec ${launcher}"; + + "${modifier}+c" = "splith"; + "${modifier}+d" = "splitv"; + "${modifier}+s" = "layout toggle split"; + "${modifier}+t" = "layout tabbed"; + "${modifier}+h" = "focus mode_toggle"; + "${modifier}+f" = "floating toggle"; + "${modifier}+m" = "fullscreen toggle"; + "${modifier}+g" = "sticky toggle"; + "${modifier}+b" = "bar mode toggle"; + + "--locked ${modifier}+Escape" = "exec swaymsg input \"*\" xkb_switch_layout next"; + "Print" = ''exec ${pkgs.grim}/bin/grim -g "$(${pkgs.slurp}/bin/slurp -o -r -c '#ff0000ff')" -t ppm - | ${pkgs.satty}/bin/satty --filename - --fullscreen --output-filename ~/pics/screenshots/satty-$(date '+%Y%m%d-%H:%M:%S').png''; + + "${modifier}+1" = "workspace 1"; + "${modifier}+2" = "workspace 2"; + "${modifier}+3" = "workspace 3"; + "${modifier}+4" = "workspace 4"; + "${modifier}+5" = "workspace 5"; + "${modifier}+6" = "workspace 6"; + "${modifier}+7" = "workspace 7"; + "${modifier}+8" = "workspace 8"; + "${modifier}+9" = "workspace 9"; + "${modifier}+0" = "workspace 10"; + "${modifier}+l" = "workspace prev"; + "${modifier}+y" = "workspace next"; + + "${modifier}+${left}" = "focus left"; + "${modifier}+${down}" = "focus down"; + "${modifier}+${up}" = "focus up"; + "${modifier}+${right}" = "focus right"; + "${modifier}+left" = "focus left"; + "${modifier}+down" = "focus down"; + "${modifier}+up" = "focus up"; + "${modifier}+right" = "focus right"; + }; + window = { + border = 1; + # hideEdgeBorders = "smart"; + }; + gaps = { + # top = 6; + # bottom = 6; + # left = 6; + # right = 6; + outer = 6; + inner = 3; + }; + floating.criteria = [ + { + app_id = "com.github.hluk.copyq"; + } + { + app_id = "com.saivert.pwvucontrol"; + } + ]; + }; + }; + programs.swaylock.enable = true; + services.swayidle = { + enable = true; + systemdTarget = "sway-session.target"; + timeouts = [ + { + timeout = 300; + command = "${pkgs.swaylock}/bin/swaylock -fF"; + } + { + timeout = 301; + command = "${pkgs.sway}/bin/swaymsg \"output * dpms off\""; + resumeCommand = "${pkgs.sway}/bin/swaymsg \"output * dpms on\""; + } + ]; + events = [ + { + event = "lock"; + command = "${pkgs.swaylock}/bin/swaylock -fF &&"; + } + { + event = "unlock"; + command = "${pkgs.procps}/bin/pkill -SIGUSR1 swaylock"; + } + { + event = "lock"; + command = "${pkgs.swaylock}/bin/swaylock -fF & ${pkgs.playerctl}/bin/playerctl pause"; + } + ]; + }; + + services.playerctld.enable = true; + services.gnome-keyring = { + enable = true; + components = ["secrets" "ssh"]; + }; + services.ssh-agent.enable = true; + programs.keychain = { + enable = true; + keys = ["id_ed25519"]; + enableNushellIntegration = true; + extraFlags = [ + "--quiet" + "--noask" + ]; + }; + services = { + network-manager-applet.enable = true; + blueman-applet.enable = true; + copyq.enable = true; + }; + qt = { + enable = true; + platformTheme.name = "gtk3"; + #style.name = "gtk2"; + }; + stylix.targets.waybar.enable = false; + programs.waybar = { + enable = true; + #package = pkgs.waybar-0.11.0"; + # systemd = { + # enable = true; + # target = "graphical-session.target"; + # }; + settings = { + bar-0 = { + ipc = true; + id = "bar-0"; + layer = "top"; + position = "bottom"; + height = 32; + spacing = 6; + # margin-top = 8; + margin-left = 8; + margin-right = 8; + margin-bottom = 8; + reload_style_on_change = true; + modules-left = [ + #"custom/notification" + "group/sway" + "wlr/taskbar" + ]; + modules-center = ["clock"]; + modules-right = [ + "privacy" + "tray" + "wireplumber" + # "group/laptop" + "idle_inhibitor" + ]; + "sway/workspaces" = { + format = "{icon}"; + format-icons = { + "1" = "I"; + "2" = "II"; + "3" = "III"; + "4" = "IV"; + "5" = "V"; + "6" = "VI"; + "7" = "VII"; + "8" = "IIX"; + "9" = "IX"; + "10" = "X"; + #focused = "󰗝"; + #active = "󰻃"; + #default = "󰄰"; + }; + }; + "sway/language" = { + format = "{flag}"; + tooltip-format = "{long}"; + on-click = "swaymsg input type:keyboard xkb_switch_layout next"; + }; + "group/sway" = { + orientation = "inherit"; + modules = [ + "sway/language" + "sway/workspaces" + ]; + }; + "group/laptop" = { + orientation = "inherit"; + drawer = { + transition-duration = 500; + children-class = "laptop"; + transition-left-to-right = false; + }; + modules = [ + "battery" + "power-profiles-daemon" + "custom/separator" + "custom/kbd-backlight" + "custom/separator" + "custom/backlight" + "custom/separator" + ]; + }; + "idle_inhibitor" = { + format = "{icon}"; + format-icons = { + activated = "󰈈"; + deactivated = "󰈉"; + }; + }; + "tray" = { + icon-size = 24; + spacing = 3; + }; + "clock" = { + interval = 1; + format = "{:%H:%M:%S}"; + tooltip-format = "{:%d.%m.%Y}"; + }; + # "custom/backlight" = { + # format = "{}% {icon}"; + # interval = 1; + # format-icons = ["󰃠"]; + # }; + # "custom/kbd-backlight" = { + # exec = "brightnessctl s 5%+"; + # interval = 1; + # format = "{}% {icon}"; + # format-icons = ["󰌌"]; + # on-scroll-up = "~/.local/bin/keyboard-brightness.nu increase"; + # on-scroll-down = "~/.local/bin/keyboard-brightness.nu decrease"; + # }; + # battery = { + # states = { + # good = 95; + # warning = 30; + # critical = 15; + # }; + # format = "{capacity}% {icon}"; + # format-full = "{capacity}% 󱟢"; + # format-charging = "{capacity}% 󰂄"; + # format-plugged = "{capacity}% 󰚥"; + # format-alt = "{icon} {time}"; + # format-icons = ["󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"]; + # }; + "upower" = { + icon-size = 16; + format = "{percentage}"; + hide-if-empty = true; + tooltip = true; + tooltip-spacing = 20; + }; + # "power-profiles-daemon" = { + # format = "{icon}"; + # tooltip-format = "Power profile: {profile}\nDriver: {driver}"; + # tooltip = true; + # format-icons = { + # default = "󱡮"; + # performance = "󱡮"; + # balanced = ""; + # power-saver = ""; + # }; + # }; + "wireplumber" = { + scroll-step = 3; + format = "{volume}% {icon}"; + format-muted = "󰖁"; + format-icons = ["󰕿" "󰖀" "󰕾"]; + on-click = "${pkgs.pwvucontrol}/bin/pwvucontrol"; + on-click-right = "wpctl set-mute @DEFAULT_SINK@ toggle"; + }; + "custom/notification" = { + tooltip = false; + format = "{icon}"; + format-icons = { + notification = ""; + none = ""; + dnd-notification = ""; + dnd-none = ""; + }; + return-type = "json"; + exec-if = "which swaync-client"; + exec = "swaync-client -swb"; + on-click = "swaync-client -t -sw"; + on-click-right = "swaync-client -d -sw"; + escape = true; + }; + "privacy" = { + # icon-spacing = 4; + icon-size = 16; + transition-duration = 250; + screenshare = { + type = "screenshare"; + tooltip = true; + tooltip-icon-size = 24; + }; + audio-in = { + type = "audio-in"; + tooltip = true; + tooltip-icon-size = 24; + }; + }; + "wlr/taskbar" = { + format = "{icon}"; + icon-size = 24; + icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}"; + tooltip-format = "{title}"; + on-click = "activate"; + }; + }; + }; + style = '' + @define-color base00 #${config.lib.stylix.colors.base00}; + @define-color base01 #${config.lib.stylix.colors.base01}; + @define-color base02 #${config.lib.stylix.colors.base02}; + @define-color base03 #${config.lib.stylix.colors.base03}; + @define-color base04 #${config.lib.stylix.colors.base04}; + @define-color base05 #${config.lib.stylix.colors.base05}; + @define-color base06 #${config.lib.stylix.colors.base06}; + @define-color base07 #${config.lib.stylix.colors.base07}; + @define-color base08 #${config.lib.stylix.colors.base08}; + @define-color base09 #${config.lib.stylix.colors.base09}; + @define-color base0A #${config.lib.stylix.colors.base0A}; + @define-color base0B #${config.lib.stylix.colors.base0B}; + @define-color base0C #${config.lib.stylix.colors.base0C}; + @define-color base0D #${config.lib.stylix.colors.base0D}; + @define-color base0E #${config.lib.stylix.colors.base0E}; + @define-color base0F #${config.lib.stylix.colors.base0F}; + * { + font-family: ${config.stylix.fonts.sansSerif.name}, FontAwesome; + font-weight: 500; + font-size: 100%; + /* margin: 0px 2px 2px 2px; */ + } + window#waybar { + background-color: @base00; + border: 1px solid @base0D; + /* border-top: 3px solid @overlay0; */ + color: @base05; + /* padding: 0px 2px 0px 0px; */ + transition-property: background-color; + transition-duration: 0.5s; + } + .modules-left, + .modules-center, + .modules-right { + padding: 1px; + margin-left: 4px; + margin-right: 4px; + } + tooltip { + background: @base01; + border: 1px solid @base0E; + } + tooltip label { + color: @base05; + } + button { + box-shadow: inset 0 -3px transparent; + border-radius: 12px; + } + + /* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ + button:hover { + background: inherit; + box-shadow: inset 0 -3px transparent; + } + + #mode { + background-color: rgba(0, 0, 0, 0.2); + box-shadow: inset 0 -3px @base05; + } + + #clock, + #battery, + #cpu, + #memory, + #disk, + #temperature, + #backlight, + #custom-backlight, + #custom-kbd-backlight, + #workspaces, + #network, + #pulseaudio, + #wireplumber, + #custom-media, + #laptop, + #tray, + #mode, + #privacy + #privacy-item, + #idle_inhibitor, + #backlight-slider, + #custom-notification, + #scratchpad, + #power-profiles-daemon, + #taskbar, + #language, + #upower, + #mpris, + #mpd { + padding: 0 0.5em; + color: @base05; + background-color: @base00; + } + + /* #upower, + #battery, + #backlight, + #custom-kbd-backlight, + #backlight-slider, + #cpu, + #memory, + #disk, + #network, + #wireplumber, + #power-profiles-daemon { + padding-right: 0.5em; + } */ + + #taskbar button, + #workspaces button { + padding: 0 0.2em; + } + #workspaces button.focused, + #workspaces button.active { + color: @base0D; + } + #taskbar button:hover { + box-shadow: transparent; + } + #taskbar.empty, + window#empty { + background-color: transparent; + } + + #battery.critical:not(.charging) { + background-color: @base09; + color: @base00; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: steps(12); + animation-iteration-count: infinite; + animation-direction: alternate; + } + + #power-profiles-daemon.performance { + background-color: @base00; + color: @base0D; + } + + #power-profiles-daemon.balanced { + background-color: @base00; + color: @base0B; + } + + #power-profiles-daemon.power-saver { + background-color: @base00; + color: @base0A; + } + + label:focus { + background-color: #000000; + } + + #tray > .passive { + -gtk-icon-effect: dim; + } + + #tray > .needs-attention { + -gtk-icon-effect: highlight; + background-color: @base08; + } + #idle_inhibitor:hover { + box-shadow: inset 0 -3px @base05; + } + + #idle_inhibitor.activated { + background-color: @base05; + color: @base00; + } + + #idle_inhibitor.activated:hover { + box-shadow: inset 0 -3px @base00; + } + + #laptop, + #privacy { + padding: 0em; + } + + #privacy-item.screenshare { + background-color: @base00; + color: @base0C; + } + + #privacy-item.audio-in { + background-color: @base00; + color: @base0E; + } + + #privacy-item.audio-out { + background-color: @base; + } + ''; + }; + + programs.rofi = { + enable = true; + theme = { + window = { + height = 360; + border = 3; + }; + + inputbar = { + children = ["prompt" "entry"]; + border-radius = 5; + padding = 2; + }; + + prompt = { + padding = 6; + border-radius = 3; + margin = "20px 0px 0px 20px"; + }; + + textbox-prompt-colon = { + expand = false; + str = "~>"; + }; + + entry = { + padding = 6; + margin = "20px 0px 0px 10px"; + }; + + listview = { + border = "0px 0px 0px"; + padding = "6px 0px 0px"; + margin = "10px 0px 0px 20px"; + columns = 2; + lines = 5; + }; + + element = { + padding = 5; + }; + + element-icon = { + size = 25; + }; + + mode-switcher = { + spacing = 0; + }; + + button = { + padding = 10; + vertical-align = "0.5"; + horizontal-align = "0.5"; + }; + + message = { + margin = 2; + padding = 2; + border-radius = 5; + }; + + textbox = { + padding = 6; + margin = "20 0 0 20"; + }; + }; + extraConfig = { + show-icons = true; + modi = "run,drun,window"; + kb-primary-paste = "Control+V,Shift+Insert"; + kb-secondary-paste = "Control+v,Insert"; + }; + }; + programs.fuzzel = { + enable = true; + settings = { + main = { + terminal = "wezterm -e"; + fields = "filename,name,generic,keywords,categories,exec"; + dpi-aware = false; + horizontal-pad = 8; + show-actions = true; + match-mode = "fuzzy"; + icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}"; + }; + border = { + width = 2; + radius = 4; + }; + }; + }; + + services.dunst = { + enable = true; + settings = { + global = { + width = 300; + height = 300; + icon_theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}"; + corner_radius = 4; + #corners = "top-right,bottom-left"; + offset = "16x16"; + origin = "bottom-right"; + timeout = 15; + frame_width = 2; + notification_limit = 5; + }; + rule-telegram = { + "desktop_entry" = "org.telegram.desktop"; + "urgency" = "normal"; + }; + }; + }; + services.wlsunset = { + enable = true; + latitude = "49.6"; + longitude = "36.1"; + temperature = { + day = 6500; + night = 3000; + }; + systemdTarget = "graphical-session.target"; + }; + services.udiskie = { + enable = true; + automount = false; + notify = true; + tray = "auto"; + }; + # services.flameshot = { + # enable = true; + # settings = { + # General = { + # buttons = "@Variant(000x7f000vQList0000x130000000x1000x2000x3000x4000x5000x6000x12000xf000x13000b000 000x10000000v000x17000xe000f000x11)"; + # filenamePattern = "screenshot-%F_%H-%M-%S"; + # saveAsFileExtension = "png"; + # savePath = "/home/user/pics/screenshots"; + # uiColor = "#${config.lib.stylix.colors.base0D}"; + # showStartupLaunchMessage = false; + # showDesktopNotification = false; + # showHelp = false; + # }; + # }; + # }; + home.packages = with pkgs; [ + nautilus + helvum + loupe + evince + celluloid + mission-center + dconf + glib + libnotify + playerctl + wdisplays + pwvucontrol + wl-clipboard-rs + polkit_gnome + libqalculate + #papirus-icon-theme + ]; + xdg.userDirs = { + enable = true; + createDirectories = true; + templates = "${config.home.homeDirectory}/temps"; + publicShare = "${config.home.homeDirectory}/pub"; + desktop = "${config.home.homeDirectory}/desktop"; + download = "${config.home.homeDirectory}/downloads"; + documents = "${config.home.homeDirectory}/docs"; + pictures = "${config.home.homeDirectory}/pics"; + videos = "${config.home.homeDirectory}/vids"; + music = "${config.home.homeDirectory}/music"; + }; + xdg.mime.enable = true; + xdg.mimeApps = { + enable = true; + defaultApplications = let + file_manager = ["org.gnome.Nautilus.desktop"]; + web_browser = ["io.github.zen_browser.zen.desktop"]; + image_viewer = ["org.gnome.Loupe.desktop"]; + video_player = ["io.github.celluloid_player.Celluloid.desktop"]; + pdf_reader = ["org.gnome.Evince.desktop"]; + in { + "inode/directory" = file_manager; + "video/x-matroska" = video_player; + "video/mp4" = video_player; + "video/mpeg" = video_player; + "video/x-mpeg" = video_player; + "image/png" = image_viewer; + "image/jpeg" = image_viewer; + "application/pdf" = pdf_reader; + "text/html" = web_browser; + }; + }; + + systemd.user.settings.Manager.DefaultEnvironment = { + #DISPLAY = ":123"; + }; + systemd.user.targets.tray = { + # workaround for udiskie + Unit = { + Description = "Home Manager System Tray"; + }; + }; + systemd.user.services = { + udiskie = { + Unit = { + PartOf = ["graphical-session.target"]; + After = ["graphical-session.target"]; + Requisite = ["graphical-session.target"]; + }; + Install = { + WantedBy = ["sway-session.target"]; + }; + }; + # waybar = { + # Unit = { + # Description = "Swaync notification daemon"; + # # }; + # Unit = { + # PartOf = ["graphical-session.target"]; + # After = ["graphical-session.target"]; + # Requisite = ["graphical-session.target"]; + # }; + # Install = { + # WantedBy = ["sway-session.target"]; + # }; + # }; + copyq = { + Unit = { + PartOf = ["graphical-session.target"]; + After = ["graphical-session.target"]; + Requisite = ["graphical-session.target"]; + }; + Install = { + WantedBy = ["sway-session.target"]; + }; + Service = { + Environment = lib.mkForce "QT_QPA_PLATFORM=wayland"; + Restart = "on-failure"; + RestartSec = 1; + TimeoutStopSec = 10; + }; + }; + network-manager-applet = { + Unit = { + PartOf = ["graphical-session.target"]; + After = ["graphical-session.target"]; + Requisite = ["graphical-session.target"]; + }; + Install = { + WantedBy = ["sway-session.target"]; + }; + }; + gnome-polkit-agent = { + Unit = { + PartOf = ["graphical-session.target"]; + After = ["graphical-session.target"]; + Requisite = ["graphical-session.target"]; + }; + Install = { + WantedBy = ["sway-session.target"]; + }; + Service = { + Type = "simple"; + ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"; + Restart = "on-failure"; + RestartSec = 1; + TimeoutStopSec = 10; + }; + }; + wlsunset = { + Unit = { + PartOf = ["graphical-session.target"]; + After = ["graphical-session.target"]; + Requisite = ["graphical-session.target"]; + }; + Install = { + WantedBy = ["sway-session.target"]; + }; + }; + }; +}