.\" Generated by scdoc 1.11.3 .\" Complete documentation for this program is not available as a GNU info page .ie \n(.g .ds Aq \(aq .el .ds Aq ' .nh .ad l .\" Begin generated content: .TH "swww-img" "1" "2024-06-09" .PP .SH NAME swww-img .PP .SH SYNOPSIS \fBswww img\fR [OPTIONS] .PP .SH OPTIONS .PP \fB-f\fR, \fB--filter\fR .RS 4 Filter to use when scaling images .PP Available options are: .PP \fINearest\fR | \fIBilinear\fR | \fICatmullRom\fR | \fIMitchell\fR | \fILanczos3\fR .PP These are offered by the fast_image_resize crate (https://docs.\&rs/fast_image_resize/2.\&5.\&0/fast_image_resize/).\& \fINearest\fR is what I recommend for pixel art stuff, and ONLY for pixel art stuff.\& It is also the fastest filter.\& .PP For non pixel art stuff, I would usually recommend one of the last three, though some experimentation will be necessary to see which one you like best.\& .PP Note you can also pass the flag \fB--no-resize\fR, explained below.\& In which case the \fB--filter\fR flag will have no effect.\& .PP Default is Lanczos3.\& .PP .RE \fB--no-resize\fR .RS 4 Do not resize the image.\& Equivalent to \fB--resize\fR \fIno\fR.\& .PP If this is set, the image won'\&t be resized, and will be centralized in the middle of the screen instead.\& If it is smaller than the screen'\&s size, it will be padded with the value of \fB--fill_color\fR, below.\& .PP .RE \fB--resize\fR .RS 4 Whether to resize the image and the method by which to resize it.\& .PP Possible values: .RS 4 .PD 0 .IP \(bu 4 \fIno\fR: Do not resize the image .IP \(bu 4 \fIcrop\fR: Resize the image to fill the whole screen, cropping out parts that don'\&t fit .IP \(bu 4 \fIfit\fR: Resize the image to fit inside the screen, preserving the original aspect ratio .PD .PP .RE Default is \fIcrop\fR.\& .PP .RE \fB--fill-color\fR .RS 4 Which color to fill the padding with when not resizing.\& .PP Default is \fI000000\fR.\& .PP .RE \fB-o\fR, \fB--outputs\fR .RS 4 Comma separated list of outputs to display the image at.\& Use \fBswww query\fR to know which outputs are currently being used.\& .PP If it isn'\&t set, the image is displayed on all outputs.\& .PP .RE \fB-t\fR, \fB--transition-type\fR .RS 4 [Environment Variable $SWWW_TRANSITION] .PP Sets the type of transition.\& Default is \fIsimple\fR, that fades into the new image.\& .PP Possible transitions are: .PP .RE .TS allbox;c c c c c c c c c c c c c c. T{ \fInone\fR T} T{ \fIsimple\fR T} T{ \fIfade\fR T} T{ \fIleft\fR T} T{ \fIright\fR T} T{ \fItop\fR T} T{ \fIbottom\fR T} T{ \fIwipe\fR T} T{ \fIwave\fR T} T{ \fIgrow\fR T} T{ \fIcenter\fR T} T{ \fIany\fR T} T{ \fIouter\fR T} T{ \fIrandom\fR T} .TE .sp 1 .RS 4 \fInone\fR will complete the transition instantly.\& .PP \fIfade\fR is like \fIsimple\fR but uses bezier curves while fading the image, its a more polished looking version of \fIsimple\fR with less artifacts .PP The \fIleft\fR, \fIright\fR, \fItop\fR and \fIbottom\fR options make the transition happen from that position to its opposite in the screen.\& .PP \fIwipe\fR is similar to \fIleft\fR but allows you to specify the angle for transition with the `--transition-angle` flag.\& .PP \fIwave\fR is similar to \fIwipe\fR but the sweeping line is wavy.\& You can control the "waviness" with `--transition-wave`.\& .PP \fIgrow\fR causes a growing circle to transition across the screen and allows changing the circle'\&s center position with the `--transition-pos` flag.\& .PP \fIcenter\fR is an alias to \fIgrow\fR with position set to center of screen.\& .PP \fIany\fR is an alias to \fIgrow\fR with position set to a random point on screen.\& .PP \fIouter\fR is the same as grow but the circle shrinks instead of growing.\& .PP Finally, \fIrandom\fR will select a transition effect at random .PP .RE \fB--transition-step\fR <0-255> .RS 4 [Environment Variable $SWWW_TRANSITION_STEP] .PP How fast the transition approaches the new image.\& .PP The transition logic works by adding or subtracting from the current rgb values until the old image transforms in the new one.\& This controls by how much we add or subtract.\& .PP For example, if pixel A is 000010, and we need it to transition to pixel B, which is 000020, if \fBtransition-step\fR is 2, then in one frame pixel A will turn to 000012, in the next frame to 000014, and so on.\& .PP Larger values will make the transition faster, but more abrupt.\& A value of 255 will always switch to the new image immediately.\& .PP Default is 90.\& If \fBtransition-type\fR is \fIsimple\fR, default is 2.\& .PP .RE \fB--transition-duration\fR .RS 4 [Environment Variable $SWWW_TRANSITION_DURATION] .PP How long the transition takes to complete, in seconds.\& .PP Note this doesn'\&t work with the \fIsimple\fR transition.\& .PP Default is 3.\& .PP .RE \fB--transition-fps\fR .RS 4 [Environment Variable: $SWWW_TRANSITION_FPS] .PP Frame rate for the transition effect.\& .PP Note there is no point in setting this to a value smaller than what your monitor supports.\& .PP Also note this is \fB\fRdifferent\fB\fR from the transition-step.\& That one controls by how much we approach the new image every frame.\& .PP Default is 30.\& .PP .RE \fB--transition-angle\fR .RS 4 [Environment Variable: SWWW_TRANSITION_ANGLE] .PP This is used for the \fIwipe\fR and \fIwave\fR transitions.\& It controls the angle of the wipe.\& .PP Note that the angle is in degrees, where '\&0'\& is right to left and '\&90'\& is top to bottom, and '\&270'\& bottom to top .PP Default is 45.\& .PP .RE \fB--transition-pos\fR .RS 4 [Environment Variable: SWWW_TRANSITION_POS] .PP This is only used for the \fIgrow\fR and \fIouter\fR transitions.\& It controls the center of circle (default is \fIcenter\fR).\& .PP Position values can be given in both percentage values and pixel values: float values are interpreted as percentages and integer values as pixel values.\& Eg.\&: 0.\&5,0.\&5 means 50% of the screen width and 50% of the screen height, while 200,400 means 200 pixels from the left and 400 pixels from the bottom.\& .PP The value can also be an alias which will set the position accordingly: .RE .TS allbox;c c c c c c c c c. T{ \fIcenter\fR T} T{ \fItop\fR T} T{ \fIleft\fR T} T{ \fIright\fR T} T{ \fIbottom\fR T} T{ \fItop-left\fR T} T{ \fItop-right\fR T} T{ \fIbottom-left\fR T} T{ \fIbottom-right\fR T} .TE .sp 1 .RS 4 Default is \fIcenter\fR.\& .PP .RE \fB--invert-y\fR .RS 4 [Environment Variable: SWWW_INVERT_Y] .PP inverts the y position sent in `transiiton_pos` flag .PP .RE \fB--transition-bezier\fR .RS 4 [Environment Variable: SWWW_TRANSITION_BEZIER] .PP Bezier curve to use for the transition animation.\& https://cubic-bezier.\&com is a good website to get these values from.\& .PP eg: 0.\&0,0.\&0,1.\&0,1.\&0 for linear animation .PP Default is .\&54,0,.\&34,.\&99 .PP .RE \fB--transition-wave\fR .RS 4 [Environment Variable: SWWW_TRANSITION_WAVE] .PP Currently only used for \fIwave\fR transition to control the width and height of each wave.\& .PP Default is : 20,20 .PP .RE \fB-h\fR, \fB--help\fR .RS 4 Print help (see a summary with '\&-h'\&) .PP .RE .SH DESCRIPTION Sends an image (or animated gif) for the daemon to display.\& You can also use `-` to read from stdin instead.\& .PP .SH ABOUT THE CACHE .PP The images sent will be cached at \fI$XDG_CACHE_HOME/swww\fR or \fI$HOME/.\&cache/swww\fR if $XDG_CACHE_HOME does not exist.\& For each monitor, there will be a file in those locations corresponding to the current image/animation being displayed.\& Importantly, \fB\fRcache will only be loaded during initialization if you use swww init\fB\fR.\& That is, calling `swww-daemon` directly will \fB\fRNOT\fB\fR load the cache, but calling `swww-init` will.\& .PP The `swww-daemon` will actually wait until the first image has been set before trying to load the cache.\& .PP Finally, the cache will keep preprocessed versions of `gif`s.\& So, if you load a large `gif`, you would have to pay the price for its processing the first time.\& If you constantly load large `gif`s, this could cause the cache to get very big.\& You can simply run `swww clean-cache` if this happens.\& .PP .SH SEE ALSO \fBswww-clear-cache\fR(1) \fBswww-daemon\fR(1) \fBswww-query\fR(1)