{ scripts, extra, config, lib, pkgs, terminal, ... }@inputs: let dynscreenshot = pkgs.writeShellScript "dynscreenshot" (builtins.readFile "${scripts}/dynscreenshot.sh"); changebrightness = pkgs.writeShellScript "changebrightness" (builtins.readFile "${scripts}/changebrightness.sh"); mod = config.wayland.windowManager.sway.config.modifier; dmenuCommand = builtins.readFile "${scripts}/dmenu.sh"; shutdownMenu = pkgs.writeShellScript "shutdownmenu" (builtins.readFile "${scripts}/shutdownmenu.sh"); backgroundImage = "${extra}/bord.jpg"; in { enable = true; config = rec { terminal = "${pkgs.lib.getExe inputs.terminal}"; modifier = "Mod4"; fonts = { names = [ "Red Hat Display" ]; style = "Regular"; size = 12.0; }; input."type:touchpad" = { natural_scroll = "disabled"; dwt = "disabled"; click_method = "clickfinger"; scroll_factor = "0.5"; }; bars = let config = config; in [{ position = "top"; inherit fonts; statusCommand = "${pkgs.i3status}/bin/i3status"; }]; window = { border = 2; titlebar = true; }; keybindings = let screenshotPath = "Pictures/Screenshots/screenshot`date +%Y%m%d%H%M%S`.png"; in lib.mkOptionDefault ({ # Screenshot keybinds "Print" = "exec grim - | wl-copy && wl-paste > ${screenshotPath}"; # Take screenshot of whole screen, save it, and copy it to clipboard "Shift+Print" = "exec swaymsg -t get_tree | jq -r '.. | select(.focused?) | .rect | \"\\(.x),\\(.y) \\(.width)x\\(.height)\"' | grim -g - | wl-copy && wl-paste > ${screenshotPath}"; # Take screenshot of current window, save it, and copy it to clipboard "Ctrl+Print" = "exec bash ${dynscreenshot}"; # Take screenshot of selection, save it, and copy it to clipboard } // { # Function Media Keys XF86MonBrightnessUp = "exec bash ${changebrightness} 1"; XF86MonBrightnessDown = "exec bash ${changebrightness} -1"; XF86AudioRaiseVolume = "exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+"; XF86AudioLowerVolume = "exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05-"; "${mod}+XF86AudioRaiseVolume" = "exec wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 0.05+"; "${mod}+XF86AudioLowerVolume" = "exec wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 0.05-"; "${mod}+Shift+e" = null; XF86PowerOff = "exec DMENU_COMMAND='${dmenuCommand}' bash ${shutdownMenu}"; } // { "${mod}+space" = "exec fcitx5-remote -t"; } // { }); menu = "j4-dmenu-desktop --no-generic --term=${pkgs.lib.getExe inputs.terminal} --dmenu='${dmenuCommand}'"; focus.followMouse = false; }; extraConfig = '' output 'eDP-1' scale 1.50 '' + # Fractional scaling to 1.50 '' exec fcitx5 '' + # Fcitx5 enables input method switching '' exec dunst '' + # Enable notifications '' bindgesture swipe:4:up focus parent bindgesture swipe:4:left workspace prev bindgesture swipe:4:right workspace next bindgesture swipe:3:up focus up bindgesture swipe:3:down focus down bindgesture swipe:3:left focus left bindgesture swipe:3:right focus right '' + # Multi-touch touchpad gestures '' exec swaybg -i ${backgroundImage} '' + # Background image ""; }