├── .gitmodules ├── HowThisWorks.md ├── LICENSE ├── README.md ├── justfile ├── miracle ├── README.md ├── cosmic-ext-miracle.desktop └── start-cosmic-ext-miracle ├── niri ├── README.md ├── cosmic-ext-niri.desktop └── start-cosmic-ext-niri └── sway ├── README.md ├── config-cosmic ├── cosmic-ext-sway-daemon ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── README.md ├── justfile └── src │ └── main.rs ├── cosmic-ext-sway.desktop └── start-cosmic-ext-sway /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "cosmic-ext-alternative-startup"] 2 | path = cosmic-ext-alternative-startup 3 | url = https://github.com/drakulix/cosmic-ext-alternative-startup 4 | -------------------------------------------------------------------------------- /HowThisWorks.md: -------------------------------------------------------------------------------- 1 | This project is leveraging very recent [`cosmic-session` code](https://github.com/pop-os/cosmic-session/pull/75) to start different compositors. 2 | 3 | The only thing missing then is `cosmic-comp`'s session api, which can be provided with [`cosmic-ext-alternative-startup`](https://github.com/drakulix/cosmic-ext-alternative-startup) and needs to be started by the compositor in question once startup is done and all sockets are setup. 4 | 5 | This project just puts everything together into an installable package. 6 | 7 | If you want to package this for your own compositor, you need a custom `start-cosmic-*` script and wayland-session. I recommend just taking on the existing ones, copy and modify it. 8 | 9 | Further integration depends on the compositor in question. Check out the `cosmic-ext-sway-daemon` for a little daemon that watches cosmic theme settings to apply them to `sway`. -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU General Public License is a free, copyleft license for 11 | software and other kinds of works. 12 | 13 | The licenses for most software and other practical works are designed 14 | to take away your freedom to share and change the works. By contrast, 15 | the GNU General Public License is intended to guarantee your freedom to 16 | share and change all versions of a program--to make sure it remains free 17 | software for all its users. We, the Free Software Foundation, use the 18 | GNU General Public License for most of our software; it applies also to 19 | any other work released this way by its authors. You can apply it to 20 | your programs, too. 21 | 22 | When we speak of free software, we are referring to freedom, not 23 | price. Our General Public Licenses are designed to make sure that you 24 | have the freedom to distribute copies of free software (and charge for 25 | them if you wish), that you receive source code or can get it if you 26 | want it, that you can change the software or use pieces of it in new 27 | free programs, and that you know you can do these things. 28 | 29 | To protect your rights, we need to prevent others from denying you 30 | these rights or asking you to surrender the rights. Therefore, you have 31 | certain responsibilities if you distribute copies of the software, or if 32 | you modify it: responsibilities to respect the freedom of others. 33 | 34 | For example, if you distribute copies of such a program, whether 35 | gratis or for a fee, you must pass on to the recipients the same 36 | freedoms that you received. You must make sure that they, too, receive 37 | or can get the source code. And you must show them these terms so they 38 | know their rights. 39 | 40 | Developers that use the GNU GPL protect your rights with two steps: 41 | (1) assert copyright on the software, and (2) offer you this License 42 | giving you legal permission to copy, distribute and/or modify it. 43 | 44 | For the developers' and authors' protection, the GPL clearly explains 45 | that there is no warranty for this free software. For both users' and 46 | authors' sake, the GPL requires that modified versions be marked as 47 | changed, so that their problems will not be attributed erroneously to 48 | authors of previous versions. 49 | 50 | Some devices are designed to deny users access to install or run 51 | modified versions of the software inside them, although the manufacturer 52 | can do so. This is fundamentally incompatible with the aim of 53 | protecting users' freedom to change the software. The systematic 54 | pattern of such abuse occurs in the area of products for individuals to 55 | use, which is precisely where it is most unacceptable. Therefore, we 56 | have designed this version of the GPL to prohibit the practice for those 57 | products. If such problems arise substantially in other domains, we 58 | stand ready to extend this provision to those domains in future versions 59 | of the GPL, as needed to protect the freedom of users. 60 | 61 | Finally, every program is threatened constantly by software patents. 62 | States should not allow patents to restrict development and use of 63 | software on general-purpose computers, but in those that do, we wish to 64 | avoid the special danger that patents applied to a free program could 65 | make it effectively proprietary. To prevent this, the GPL assures that 66 | patents cannot be used to render the program non-free. 67 | 68 | The precise terms and conditions for copying, distribution and 69 | modification follow. 70 | 71 | TERMS AND CONDITIONS 72 | 73 | 0. Definitions. 74 | 75 | "This License" refers to version 3 of the GNU General Public License. 76 | 77 | "Copyright" also means copyright-like laws that apply to other kinds of 78 | works, such as semiconductor masks. 79 | 80 | "The Program" refers to any copyrightable work licensed under this 81 | License. Each licensee is addressed as "you". "Licensees" and 82 | "recipients" may be individuals or organizations. 83 | 84 | To "modify" a work means to copy from or adapt all or part of the work 85 | in a fashion requiring copyright permission, other than the making of an 86 | exact copy. The resulting work is called a "modified version" of the 87 | earlier work or a work "based on" the earlier work. 88 | 89 | A "covered work" means either the unmodified Program or a work based 90 | on the Program. 91 | 92 | To "propagate" a work means to do anything with it that, without 93 | permission, would make you directly or secondarily liable for 94 | infringement under applicable copyright law, except executing it on a 95 | computer or modifying a private copy. Propagation includes copying, 96 | distribution (with or without modification), making available to the 97 | public, and in some countries other activities as well. 98 | 99 | To "convey" a work means any kind of propagation that enables other 100 | parties to make or receive copies. Mere interaction with a user through 101 | a computer network, with no transfer of a copy, is not conveying. 102 | 103 | An interactive user interface displays "Appropriate Legal Notices" 104 | to the extent that it includes a convenient and prominently visible 105 | feature that (1) displays an appropriate copyright notice, and (2) 106 | tells the user that there is no warranty for the work (except to the 107 | extent that warranties are provided), that licensees may convey the 108 | work under this License, and how to view a copy of this License. If 109 | the interface presents a list of user commands or options, such as a 110 | menu, a prominent item in the list meets this criterion. 111 | 112 | 1. Source Code. 113 | 114 | The "source code" for a work means the preferred form of the work 115 | for making modifications to it. "Object code" means any non-source 116 | form of a work. 117 | 118 | A "Standard Interface" means an interface that either is an official 119 | standard defined by a recognized standards body, or, in the case of 120 | interfaces specified for a particular programming language, one that 121 | is widely used among developers working in that language. 122 | 123 | The "System Libraries" of an executable work include anything, other 124 | than the work as a whole, that (a) is included in the normal form of 125 | packaging a Major Component, but which is not part of that Major 126 | Component, and (b) serves only to enable use of the work with that 127 | Major Component, or to implement a Standard Interface for which an 128 | implementation is available to the public in source code form. A 129 | "Major Component", in this context, means a major essential component 130 | (kernel, window system, and so on) of the specific operating system 131 | (if any) on which the executable work runs, or a compiler used to 132 | produce the work, or an object code interpreter used to run it. 133 | 134 | The "Corresponding Source" for a work in object code form means all 135 | the source code needed to generate, install, and (for an executable 136 | work) run the object code and to modify the work, including scripts to 137 | control those activities. However, it does not include the work's 138 | System Libraries, or general-purpose tools or generally available free 139 | programs which are used unmodified in performing those activities but 140 | which are not part of the work. For example, Corresponding Source 141 | includes interface definition files associated with source files for 142 | the work, and the source code for shared libraries and dynamically 143 | linked subprograms that the work is specifically designed to require, 144 | such as by intimate data communication or control flow between those 145 | subprograms and other parts of the work. 146 | 147 | The Corresponding Source need not include anything that users 148 | can regenerate automatically from other parts of the Corresponding 149 | Source. 150 | 151 | The Corresponding Source for a work in source code form is that 152 | same work. 153 | 154 | 2. Basic Permissions. 155 | 156 | All rights granted under this License are granted for the term of 157 | copyright on the Program, and are irrevocable provided the stated 158 | conditions are met. This License explicitly affirms your unlimited 159 | permission to run the unmodified Program. The output from running a 160 | covered work is covered by this License only if the output, given its 161 | content, constitutes a covered work. This License acknowledges your 162 | rights of fair use or other equivalent, as provided by copyright law. 163 | 164 | You may make, run and propagate covered works that you do not 165 | convey, without conditions so long as your license otherwise remains 166 | in force. You may convey covered works to others for the sole purpose 167 | of having them make modifications exclusively for you, or provide you 168 | with facilities for running those works, provided that you comply with 169 | the terms of this License in conveying all material for which you do 170 | not control copyright. Those thus making or running the covered works 171 | for you must do so exclusively on your behalf, under your direction 172 | and control, on terms that prohibit them from making any copies of 173 | your copyrighted material outside their relationship with you. 174 | 175 | Conveying under any other circumstances is permitted solely under 176 | the conditions stated below. Sublicensing is not allowed; section 10 177 | makes it unnecessary. 178 | 179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 180 | 181 | No covered work shall be deemed part of an effective technological 182 | measure under any applicable law fulfilling obligations under article 183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 | similar laws prohibiting or restricting circumvention of such 185 | measures. 186 | 187 | When you convey a covered work, you waive any legal power to forbid 188 | circumvention of technological measures to the extent such circumvention 189 | is effected by exercising rights under this License with respect to 190 | the covered work, and you disclaim any intention to limit operation or 191 | modification of the work as a means of enforcing, against the work's 192 | users, your or third parties' legal rights to forbid circumvention of 193 | technological measures. 194 | 195 | 4. Conveying Verbatim Copies. 196 | 197 | You may convey verbatim copies of the Program's source code as you 198 | receive it, in any medium, provided that you conspicuously and 199 | appropriately publish on each copy an appropriate copyright notice; 200 | keep intact all notices stating that this License and any 201 | non-permissive terms added in accord with section 7 apply to the code; 202 | keep intact all notices of the absence of any warranty; and give all 203 | recipients a copy of this License along with the Program. 204 | 205 | You may charge any price or no price for each copy that you convey, 206 | and you may offer support or warranty protection for a fee. 207 | 208 | 5. Conveying Modified Source Versions. 209 | 210 | You may convey a work based on the Program, or the modifications to 211 | produce it from the Program, in the form of source code under the 212 | terms of section 4, provided that you also meet all of these conditions: 213 | 214 | a) The work must carry prominent notices stating that you modified 215 | it, and giving a relevant date. 216 | 217 | b) The work must carry prominent notices stating that it is 218 | released under this License and any conditions added under section 219 | 7. This requirement modifies the requirement in section 4 to 220 | "keep intact all notices". 221 | 222 | c) You must license the entire work, as a whole, under this 223 | License to anyone who comes into possession of a copy. This 224 | License will therefore apply, along with any applicable section 7 225 | additional terms, to the whole of the work, and all its parts, 226 | regardless of how they are packaged. This License gives no 227 | permission to license the work in any other way, but it does not 228 | invalidate such permission if you have separately received it. 229 | 230 | d) If the work has interactive user interfaces, each must display 231 | Appropriate Legal Notices; however, if the Program has interactive 232 | interfaces that do not display Appropriate Legal Notices, your 233 | work need not make them do so. 234 | 235 | A compilation of a covered work with other separate and independent 236 | works, which are not by their nature extensions of the covered work, 237 | and which are not combined with it such as to form a larger program, 238 | in or on a volume of a storage or distribution medium, is called an 239 | "aggregate" if the compilation and its resulting copyright are not 240 | used to limit the access or legal rights of the compilation's users 241 | beyond what the individual works permit. Inclusion of a covered work 242 | in an aggregate does not cause this License to apply to the other 243 | parts of the aggregate. 244 | 245 | 6. Conveying Non-Source Forms. 246 | 247 | You may convey a covered work in object code form under the terms 248 | of sections 4 and 5, provided that you also convey the 249 | machine-readable Corresponding Source under the terms of this License, 250 | in one of these ways: 251 | 252 | a) Convey the object code in, or embodied in, a physical product 253 | (including a physical distribution medium), accompanied by the 254 | Corresponding Source fixed on a durable physical medium 255 | customarily used for software interchange. 256 | 257 | b) Convey the object code in, or embodied in, a physical product 258 | (including a physical distribution medium), accompanied by a 259 | written offer, valid for at least three years and valid for as 260 | long as you offer spare parts or customer support for that product 261 | model, to give anyone who possesses the object code either (1) a 262 | copy of the Corresponding Source for all the software in the 263 | product that is covered by this License, on a durable physical 264 | medium customarily used for software interchange, for a price no 265 | more than your reasonable cost of physically performing this 266 | conveying of source, or (2) access to copy the 267 | Corresponding Source from a network server at no charge. 268 | 269 | c) Convey individual copies of the object code with a copy of the 270 | written offer to provide the Corresponding Source. This 271 | alternative is allowed only occasionally and noncommercially, and 272 | only if you received the object code with such an offer, in accord 273 | with subsection 6b. 274 | 275 | d) Convey the object code by offering access from a designated 276 | place (gratis or for a charge), and offer equivalent access to the 277 | Corresponding Source in the same way through the same place at no 278 | further charge. You need not require recipients to copy the 279 | Corresponding Source along with the object code. If the place to 280 | copy the object code is a network server, the Corresponding Source 281 | may be on a different server (operated by you or a third party) 282 | that supports equivalent copying facilities, provided you maintain 283 | clear directions next to the object code saying where to find the 284 | Corresponding Source. Regardless of what server hosts the 285 | Corresponding Source, you remain obligated to ensure that it is 286 | available for as long as needed to satisfy these requirements. 287 | 288 | e) Convey the object code using peer-to-peer transmission, provided 289 | you inform other peers where the object code and Corresponding 290 | Source of the work are being offered to the general public at no 291 | charge under subsection 6d. 292 | 293 | A separable portion of the object code, whose source code is excluded 294 | from the Corresponding Source as a System Library, need not be 295 | included in conveying the object code work. 296 | 297 | A "User Product" is either (1) a "consumer product", which means any 298 | tangible personal property which is normally used for personal, family, 299 | or household purposes, or (2) anything designed or sold for incorporation 300 | into a dwelling. In determining whether a product is a consumer product, 301 | doubtful cases shall be resolved in favor of coverage. For a particular 302 | product received by a particular user, "normally used" refers to a 303 | typical or common use of that class of product, regardless of the status 304 | of the particular user or of the way in which the particular user 305 | actually uses, or expects or is expected to use, the product. A product 306 | is a consumer product regardless of whether the product has substantial 307 | commercial, industrial or non-consumer uses, unless such uses represent 308 | the only significant mode of use of the product. 309 | 310 | "Installation Information" for a User Product means any methods, 311 | procedures, authorization keys, or other information required to install 312 | and execute modified versions of a covered work in that User Product from 313 | a modified version of its Corresponding Source. The information must 314 | suffice to ensure that the continued functioning of the modified object 315 | code is in no case prevented or interfered with solely because 316 | modification has been made. 317 | 318 | If you convey an object code work under this section in, or with, or 319 | specifically for use in, a User Product, and the conveying occurs as 320 | part of a transaction in which the right of possession and use of the 321 | User Product is transferred to the recipient in perpetuity or for a 322 | fixed term (regardless of how the transaction is characterized), the 323 | Corresponding Source conveyed under this section must be accompanied 324 | by the Installation Information. But this requirement does not apply 325 | if neither you nor any third party retains the ability to install 326 | modified object code on the User Product (for example, the work has 327 | been installed in ROM). 328 | 329 | The requirement to provide Installation Information does not include a 330 | requirement to continue to provide support service, warranty, or updates 331 | for a work that has been modified or installed by the recipient, or for 332 | the User Product in which it has been modified or installed. Access to a 333 | network may be denied when the modification itself materially and 334 | adversely affects the operation of the network or violates the rules and 335 | protocols for communication across the network. 336 | 337 | Corresponding Source conveyed, and Installation Information provided, 338 | in accord with this section must be in a format that is publicly 339 | documented (and with an implementation available to the public in 340 | source code form), and must require no special password or key for 341 | unpacking, reading or copying. 342 | 343 | 7. Additional Terms. 344 | 345 | "Additional permissions" are terms that supplement the terms of this 346 | License by making exceptions from one or more of its conditions. 347 | Additional permissions that are applicable to the entire Program shall 348 | be treated as though they were included in this License, to the extent 349 | that they are valid under applicable law. If additional permissions 350 | apply only to part of the Program, that part may be used separately 351 | under those permissions, but the entire Program remains governed by 352 | this License without regard to the additional permissions. 353 | 354 | When you convey a copy of a covered work, you may at your option 355 | remove any additional permissions from that copy, or from any part of 356 | it. (Additional permissions may be written to require their own 357 | removal in certain cases when you modify the work.) You may place 358 | additional permissions on material, added by you to a covered work, 359 | for which you have or can give appropriate copyright permission. 360 | 361 | Notwithstanding any other provision of this License, for material you 362 | add to a covered work, you may (if authorized by the copyright holders of 363 | that material) supplement the terms of this License with terms: 364 | 365 | a) Disclaiming warranty or limiting liability differently from the 366 | terms of sections 15 and 16 of this License; or 367 | 368 | b) Requiring preservation of specified reasonable legal notices or 369 | author attributions in that material or in the Appropriate Legal 370 | Notices displayed by works containing it; or 371 | 372 | c) Prohibiting misrepresentation of the origin of that material, or 373 | requiring that modified versions of such material be marked in 374 | reasonable ways as different from the original version; or 375 | 376 | d) Limiting the use for publicity purposes of names of licensors or 377 | authors of the material; or 378 | 379 | e) Declining to grant rights under trademark law for use of some 380 | trade names, trademarks, or service marks; or 381 | 382 | f) Requiring indemnification of licensors and authors of that 383 | material by anyone who conveys the material (or modified versions of 384 | it) with contractual assumptions of liability to the recipient, for 385 | any liability that these contractual assumptions directly impose on 386 | those licensors and authors. 387 | 388 | All other non-permissive additional terms are considered "further 389 | restrictions" within the meaning of section 10. If the Program as you 390 | received it, or any part of it, contains a notice stating that it is 391 | governed by this License along with a term that is a further 392 | restriction, you may remove that term. If a license document contains 393 | a further restriction but permits relicensing or conveying under this 394 | License, you may add to a covered work material governed by the terms 395 | of that license document, provided that the further restriction does 396 | not survive such relicensing or conveying. 397 | 398 | If you add terms to a covered work in accord with this section, you 399 | must place, in the relevant source files, a statement of the 400 | additional terms that apply to those files, or a notice indicating 401 | where to find the applicable terms. 402 | 403 | Additional terms, permissive or non-permissive, may be stated in the 404 | form of a separately written license, or stated as exceptions; 405 | the above requirements apply either way. 406 | 407 | 8. Termination. 408 | 409 | You may not propagate or modify a covered work except as expressly 410 | provided under this License. Any attempt otherwise to propagate or 411 | modify it is void, and will automatically terminate your rights under 412 | this License (including any patent licenses granted under the third 413 | paragraph of section 11). 414 | 415 | However, if you cease all violation of this License, then your 416 | license from a particular copyright holder is reinstated (a) 417 | provisionally, unless and until the copyright holder explicitly and 418 | finally terminates your license, and (b) permanently, if the copyright 419 | holder fails to notify you of the violation by some reasonable means 420 | prior to 60 days after the cessation. 421 | 422 | Moreover, your license from a particular copyright holder is 423 | reinstated permanently if the copyright holder notifies you of the 424 | violation by some reasonable means, this is the first time you have 425 | received notice of violation of this License (for any work) from that 426 | copyright holder, and you cure the violation prior to 30 days after 427 | your receipt of the notice. 428 | 429 | Termination of your rights under this section does not terminate the 430 | licenses of parties who have received copies or rights from you under 431 | this License. If your rights have been terminated and not permanently 432 | reinstated, you do not qualify to receive new licenses for the same 433 | material under section 10. 434 | 435 | 9. Acceptance Not Required for Having Copies. 436 | 437 | You are not required to accept this License in order to receive or 438 | run a copy of the Program. Ancillary propagation of a covered work 439 | occurring solely as a consequence of using peer-to-peer transmission 440 | to receive a copy likewise does not require acceptance. However, 441 | nothing other than this License grants you permission to propagate or 442 | modify any covered work. These actions infringe copyright if you do 443 | not accept this License. Therefore, by modifying or propagating a 444 | covered work, you indicate your acceptance of this License to do so. 445 | 446 | 10. Automatic Licensing of Downstream Recipients. 447 | 448 | Each time you convey a covered work, the recipient automatically 449 | receives a license from the original licensors, to run, modify and 450 | propagate that work, subject to this License. You are not responsible 451 | for enforcing compliance by third parties with this License. 452 | 453 | An "entity transaction" is a transaction transferring control of an 454 | organization, or substantially all assets of one, or subdividing an 455 | organization, or merging organizations. If propagation of a covered 456 | work results from an entity transaction, each party to that 457 | transaction who receives a copy of the work also receives whatever 458 | licenses to the work the party's predecessor in interest had or could 459 | give under the previous paragraph, plus a right to possession of the 460 | Corresponding Source of the work from the predecessor in interest, if 461 | the predecessor has it or can get it with reasonable efforts. 462 | 463 | You may not impose any further restrictions on the exercise of the 464 | rights granted or affirmed under this License. For example, you may 465 | not impose a license fee, royalty, or other charge for exercise of 466 | rights granted under this License, and you may not initiate litigation 467 | (including a cross-claim or counterclaim in a lawsuit) alleging that 468 | any patent claim is infringed by making, using, selling, offering for 469 | sale, or importing the Program or any portion of it. 470 | 471 | 11. Patents. 472 | 473 | A "contributor" is a copyright holder who authorizes use under this 474 | License of the Program or a work on which the Program is based. The 475 | work thus licensed is called the contributor's "contributor version". 476 | 477 | A contributor's "essential patent claims" are all patent claims 478 | owned or controlled by the contributor, whether already acquired or 479 | hereafter acquired, that would be infringed by some manner, permitted 480 | by this License, of making, using, or selling its contributor version, 481 | but do not include claims that would be infringed only as a 482 | consequence of further modification of the contributor version. For 483 | purposes of this definition, "control" includes the right to grant 484 | patent sublicenses in a manner consistent with the requirements of 485 | this License. 486 | 487 | Each contributor grants you a non-exclusive, worldwide, royalty-free 488 | patent license under the contributor's essential patent claims, to 489 | make, use, sell, offer for sale, import and otherwise run, modify and 490 | propagate the contents of its contributor version. 491 | 492 | In the following three paragraphs, a "patent license" is any express 493 | agreement or commitment, however denominated, not to enforce a patent 494 | (such as an express permission to practice a patent or covenant not to 495 | sue for patent infringement). To "grant" such a patent license to a 496 | party means to make such an agreement or commitment not to enforce a 497 | patent against the party. 498 | 499 | If you convey a covered work, knowingly relying on a patent license, 500 | and the Corresponding Source of the work is not available for anyone 501 | to copy, free of charge and under the terms of this License, through a 502 | publicly available network server or other readily accessible means, 503 | then you must either (1) cause the Corresponding Source to be so 504 | available, or (2) arrange to deprive yourself of the benefit of the 505 | patent license for this particular work, or (3) arrange, in a manner 506 | consistent with the requirements of this License, to extend the patent 507 | license to downstream recipients. "Knowingly relying" means you have 508 | actual knowledge that, but for the patent license, your conveying the 509 | covered work in a country, or your recipient's use of the covered work 510 | in a country, would infringe one or more identifiable patents in that 511 | country that you have reason to believe are valid. 512 | 513 | If, pursuant to or in connection with a single transaction or 514 | arrangement, you convey, or propagate by procuring conveyance of, a 515 | covered work, and grant a patent license to some of the parties 516 | receiving the covered work authorizing them to use, propagate, modify 517 | or convey a specific copy of the covered work, then the patent license 518 | you grant is automatically extended to all recipients of the covered 519 | work and works based on it. 520 | 521 | A patent license is "discriminatory" if it does not include within 522 | the scope of its coverage, prohibits the exercise of, or is 523 | conditioned on the non-exercise of one or more of the rights that are 524 | specifically granted under this License. You may not convey a covered 525 | work if you are a party to an arrangement with a third party that is 526 | in the business of distributing software, under which you make payment 527 | to the third party based on the extent of your activity of conveying 528 | the work, and under which the third party grants, to any of the 529 | parties who would receive the covered work from you, a discriminatory 530 | patent license (a) in connection with copies of the covered work 531 | conveyed by you (or copies made from those copies), or (b) primarily 532 | for and in connection with specific products or compilations that 533 | contain the covered work, unless you entered into that arrangement, 534 | or that patent license was granted, prior to 28 March 2007. 535 | 536 | Nothing in this License shall be construed as excluding or limiting 537 | any implied license or other defenses to infringement that may 538 | otherwise be available to you under applicable patent law. 539 | 540 | 12. No Surrender of Others' Freedom. 541 | 542 | If conditions are imposed on you (whether by court order, agreement or 543 | otherwise) that contradict the conditions of this License, they do not 544 | excuse you from the conditions of this License. If you cannot convey a 545 | covered work so as to satisfy simultaneously your obligations under this 546 | License and any other pertinent obligations, then as a consequence you may 547 | not convey it at all. For example, if you agree to terms that obligate you 548 | to collect a royalty for further conveying from those to whom you convey 549 | the Program, the only way you could satisfy both those terms and this 550 | License would be to refrain entirely from conveying the Program. 551 | 552 | 13. Use with the GNU Affero General Public License. 553 | 554 | Notwithstanding any other provision of this License, you have 555 | permission to link or combine any covered work with a work licensed 556 | under version 3 of the GNU Affero General Public License into a single 557 | combined work, and to convey the resulting work. The terms of this 558 | License will continue to apply to the part which is the covered work, 559 | but the special requirements of the GNU Affero General Public License, 560 | section 13, concerning interaction through a network will apply to the 561 | combination as such. 562 | 563 | 14. Revised Versions of this License. 564 | 565 | The Free Software Foundation may publish revised and/or new versions of 566 | the GNU General Public License from time to time. Such new versions will 567 | be similar in spirit to the present version, but may differ in detail to 568 | address new problems or concerns. 569 | 570 | Each version is given a distinguishing version number. If the 571 | Program specifies that a certain numbered version of the GNU General 572 | Public License "or any later version" applies to it, you have the 573 | option of following the terms and conditions either of that numbered 574 | version or of any later version published by the Free Software 575 | Foundation. If the Program does not specify a version number of the 576 | GNU General Public License, you may choose any version ever published 577 | by the Free Software Foundation. 578 | 579 | If the Program specifies that a proxy can decide which future 580 | versions of the GNU General Public License can be used, that proxy's 581 | public statement of acceptance of a version permanently authorizes you 582 | to choose that version for the Program. 583 | 584 | Later license versions may give you additional or different 585 | permissions. However, no additional obligations are imposed on any 586 | author or copyright holder as a result of your choosing to follow a 587 | later version. 588 | 589 | 15. Disclaimer of Warranty. 590 | 591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 599 | 600 | 16. Limitation of Liability. 601 | 602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 | SUCH DAMAGES. 611 | 612 | 17. Interpretation of Sections 15 and 16. 613 | 614 | If the disclaimer of warranty and limitation of liability provided 615 | above cannot be given local legal effect according to their terms, 616 | reviewing courts shall apply local law that most closely approximates 617 | an absolute waiver of all civil liability in connection with the 618 | Program, unless a warranty or assumption of liability accompanies a 619 | copy of the Program in return for a fee. 620 | 621 | END OF TERMS AND CONDITIONS 622 | 623 | How to Apply These Terms to Your New Programs 624 | 625 | If you develop a new program, and you want it to be of the greatest 626 | possible use to the public, the best way to achieve this is to make it 627 | free software which everyone can redistribute and change under these terms. 628 | 629 | To do so, attach the following notices to the program. It is safest 630 | to attach them to the start of each source file to most effectively 631 | state the exclusion of warranty; and each file should have at least 632 | the "copyright" line and a pointer to where the full notice is found. 633 | 634 | 635 | Copyright (C) 636 | 637 | This program is free software: you can redistribute it and/or modify 638 | it under the terms of the GNU General Public License as published by 639 | the Free Software Foundation, either version 3 of the License, or 640 | (at your option) any later version. 641 | 642 | This program is distributed in the hope that it will be useful, 643 | but WITHOUT ANY WARRANTY; without even the implied warranty of 644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 645 | GNU General Public License for more details. 646 | 647 | You should have received a copy of the GNU General Public License 648 | along with this program. If not, see . 649 | 650 | Also add information on how to contact you by electronic and paper mail. 651 | 652 | If the program does terminal interaction, make it output a short 653 | notice like this when it starts in an interactive mode: 654 | 655 | Copyright (C) 656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 657 | This is free software, and you are welcome to redistribute it 658 | under certain conditions; type `show c' for details. 659 | 660 | The hypothetical commands `show w' and `show c' should show the appropriate 661 | parts of the General Public License. Of course, your program's commands 662 | might be different; for a GUI interface, you would use an "about box". 663 | 664 | You should also get your employer (if you work as a programmer) or school, 665 | if any, to sign a "copyright disclaimer" for the program, if necessary. 666 | For more information on this, and how to apply and follow the GNU GPL, see 667 | . 668 | 669 | The GNU General Public License does not permit incorporating your program 670 | into proprietary programs. If your program is a subroutine library, you 671 | may consider it more useful to permit linking proprietary applications with 672 | the library. If this is what you want to do, use the GNU Lesser General 673 | Public License instead of this License. But first, please read 674 | . 675 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # cosmic-ext-extra-sessions 2 | 3 | COSMIC-based alternative sessions with different compositors: 4 | - [sway](https://github.com/swaywm/sway) 5 | - [niri](https://github.com/YaLTeR/niri) 6 | - [miracle-wm](https://miracle-wm.org/) 7 | 8 | **Note**: These are unsupported configurations for **alpha** software. Things will break! 9 | Please confirm any bugs against standard COSMIC, before opening issues on it's projects. 10 | If in doubt open an issue here first! 11 | 12 | ## But what about ... 13 | 14 | Just add it! Please take a look at [How This Works](./HowThisWorks.md) and start a PR! 15 | 16 | ### But what about hyprland 17 | 18 | No. 19 | 20 | ### But ... 21 | 22 | No. I won't debate you on it. Go and do this somewhere else and don't expect support. 23 | 24 | ## Why? 25 | 26 | - Because it's fun! 27 | - (And it nicely shows off what using common standards can give you.) 28 | - ((Also, I can't count the amount of issues of people wanting scrolling tiling in COSMIC. Here, just use niri while we decide what to do about this. It's a great project!)) 29 | 30 | ## How? 31 | 32 | Cosmic uses a lot of open protocols, the only little magic bit happens in [`cosmic-ext-alternative-startup`](https://github.com/drakulix/cosmic-ext-alternative-startup). 33 | 34 | For specific instructions for each environment look into their specific folder: 35 | - [sway](./sway) 36 | - [niri](./niri) 37 | - [miracle-wm](./miracle) 38 | 39 | ## Requirements 40 | 41 | - You need a `cosmic-session` binary build with this [patch](https://github.com/pop-os/cosmic-session/pull/75) 42 | - You will want a very recent nightly build of cosmic-panel, that fixes crashes on other compositors. 43 | - cosmic + your compositor of choice installed 44 | -------------------------------------------------------------------------------- /justfile: -------------------------------------------------------------------------------- 1 | just := just_executable() 2 | 3 | build: 4 | {{ just }} cosmic-ext-alternative-startup/build-release 5 | 6 | _install rootdir="" prefix="/usr/local": 7 | {{ just }} rootdir={{rootdir}} prefix={{prefix}} cosmic-ext-alternative-startup/install 8 | 9 | _build-sway: 10 | {{ just }} sway/cosmic-ext-sway-daemon/build-release 11 | 12 | install-sway rootdir="" prefix="/usr/local": _build-sway _install 13 | {{ just }} rootdir={{rootdir}} prefix={{prefix}} sway/cosmic-ext-sway-daemon/install 14 | install -Dm0644 sway/config-cosmic {{rootdir}}/etc/sway/config-cosmic 15 | install -Dm0644 sway/cosmic-ext-sway.desktop {{rootdir}}{{prefix}}/share/wayland-sessions/cosmic-ext-sway.desktop 16 | install -Dm0644 sway/start-cosmic-ext-sway {{rootdir}}{{prefix}}/bin/start-cosmic-ext-sway 17 | 18 | install-niri rootdir="" prefix="/usr/local": _install 19 | install -Dm0644 niri/cosmic-ext-niri.desktop {{rootdir}}{{prefix}}/share/wayland-sessions/cosmic-ext-niri.desktop 20 | install -Dm0755 niri/start-cosmic-ext-niri {{rootdir}}{{prefix}}/bin/start-cosmic-ext-niri 21 | 22 | install-miracle rootdir="" prefix="/usr/local": _install 23 | install -Dm0644 miracle/cosmic-ext-miracle.desktop {{rootdir}}{{prefix}}/share/wayland-sessions/cosmic-ext-miracle.desktop 24 | install -Dm0644 miracle/start-cosmic-ext-miracle {{rootdir}}{{prefix}}/bin/start-cosmic-ext-miracle 25 | -------------------------------------------------------------------------------- /miracle/README.md: -------------------------------------------------------------------------------- 1 | # cosmic-ext-miracle 2 | 3 | This is cosmic running on miracle! 4 | 5 | ## Install 6 | 7 | Either clone the repo and run `just install-miracle` or install manually: 8 | - `start-cosmic-ext-miracle` somewhere in your `PATH`, e.g. /usr/local/bin 9 | - `cosmic-ext-miracle.desktop` into `/usr/share/wayland-sessions/cosmic-ext-miracle.desktop` 10 | 11 | Additionally you'll need to add this to your miracle config: 12 | ``` 13 | startup_apps: 14 | - command: cosmic-alternative-startup 15 | restart_on_death: false 16 | in_systemd_scope: false 17 | ``` 18 | 19 | I also recommend adding the following line for the full cosmic experience: 20 | ``` 21 | terminal: cosmic-term 22 | custom_actions: 23 | - command: cosmic-launcher 24 | action: down 25 | modifiers: 26 | - primary 27 | key: KEY_D 28 | - command: cosmic-app-library 29 | action: down 30 | modifiers: 31 | - primary 32 | - shift 33 | key: KEY_D 34 | ``` 35 | -------------------------------------------------------------------------------- /miracle/cosmic-ext-miracle.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=COSMIC on miracle 3 | Comment=This session logs you into the COSMIC desktop on miracle 4 | Exec=/usr/bin/start-cosmic-ext-miracle 5 | Type=Application 6 | DesktopNames=miracle 7 | -------------------------------------------------------------------------------- /miracle/start-cosmic-ext-miracle: -------------------------------------------------------------------------------- 1 | #!/usr/bin/bash 2 | 3 | set -e 4 | 5 | # From: https://people.debian.org/~mpitt/systemd.conf-2016-graphical-session.pdf 6 | 7 | if command -v systemctl >/dev/null; then 8 | # robustness: if the previous graphical session left some failed units, 9 | # reset them so that they don't break this startup 10 | for unit in $(systemctl --user --no-legend --state=failed --plain list-units | cut -f1 -d' '); do 11 | partof="$(systemctl --user show -p PartOf --value "$unit")" 12 | for target in cosmic-session.target graphical-session.target; do 13 | if [ "$partof" = "$target" ]; then 14 | systemctl --user reset-failed "$unit" 15 | break 16 | fi 17 | done 18 | done 19 | fi 20 | 21 | # use the user's preferred shell to acquire environment variables 22 | # see: https://github.com/pop-os/cosmic-session/issues/23 23 | if [ -n "${SHELL}" ]; then 24 | # --in-login-shell: our flag to indicate that we don't need to recurse any further 25 | if [ "${1}" != "--in-login-shell" ]; then 26 | # `exec -l`: like `login`, prefixes $SHELL with a hyphen to start a login shell 27 | exec bash -c "exec -l '${SHELL}' -c '${0} --in-login-shell'" 28 | fi 29 | fi 30 | 31 | export XDG_CURRENT_DESKTOP="${XDG_CURRENT_DESKTOP:=miracle}" 32 | export XDG_SESSION_TYPE="${XDG_SESSION_TYPE:=wayland}" 33 | export XCURSOR_THEME="${XCURSOR_THEME:=Cosmic}" 34 | export _JAVA_AWT_WM_NONREPARENTING=1 35 | export GDK_BACKEND=wayland,x11 36 | export MOZ_ENABLE_WAYLAND=1 37 | export QT_QPA_PLATFORM="wayland;xcb" 38 | export QT_AUTO_SCREEN_SCALE_FACTOR=1 39 | export QT_ENABLE_HIGHDPI_SCALING=1 40 | 41 | if command -v systemctl >/dev/null; then 42 | # set environment variables for new units started by user service manager 43 | systemctl --user import-environment XDG_SESSION_TYPE XDG_CURRENT_DESKTOP 44 | fi 45 | # Run cosmic-session 46 | if [[ -z "${DBUS_SESSION_BUS_ADDRESS}" ]]; then 47 | exec /usr/bin/dbus-run-session -- /usr/bin/cosmic-session miracle-wm --add-wayland-extensions all 48 | else 49 | exec /usr/bin/cosmic-session miracle-wm --add-wayland-extensions all 50 | fi 51 | -------------------------------------------------------------------------------- /niri/README.md: -------------------------------------------------------------------------------- 1 | # cosmic-ext-niri 2 | 3 | This is cosmic running on niri! 4 | 5 | ## Install 6 | 7 | ### Option 1 - Cloning the repo 8 | 9 | Clone the repo with: 10 | 11 | ```bash 12 | git clone https://github.com/Drakulix/cosmic-ext-extra-sessions.git 13 | ``` 14 | 15 | Within the repo directory, install submodules: 16 | 17 | ```bash 18 | cd cosmic-ext-extra-sessions 19 | git submodule update --init 20 | ``` 21 | 22 | And finally, build and install for niri with: 23 | 24 | ```bash 25 | just build 26 | sudo just install-niri 27 | ``` 28 | 29 | ### Option 2 - Manual installation 30 | 31 | Copy the following files: 32 | 33 | - `start-cosmic-ext-niri` somewhere in your `PATH`, e.g. /usr/local/bin 34 | - `cosmic-ext-niri.desktop` into `/usr/share/wayland-sessions/cosmic-ext-niri.desktop` 35 | 36 | ### Update your Niri config 37 | 38 | If you haven't yet, run niri once to generate a config file. 39 | 40 | In your niri `config.kdl file`, add the following line (removing any existing spawn-at-startup options): 41 | 42 | ```kdl 43 | spawn-at-startup "cosmic-ext-alternative-startup" 44 | ``` 45 | 46 | I also recommend adding the following lines for the full cosmic experience to your `binds`: 47 | 48 | ```kdl 49 | Mod+T { spawn "cosmic-term"; } 50 | Mod+D { spawn "cosmic-launcher"; } 51 | Mod+Shift+D { spawn "cosmic-app-library"; } 52 | Mod+Alt+L { spawn "cosmic-greeter"; } 53 | ``` 54 | 55 | Make sure to also disable any existing entries in your for these modifiers. 56 | -------------------------------------------------------------------------------- /niri/cosmic-ext-niri.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=COSMIC on niri 3 | Comment=This session logs you into the COSMIC desktop on niri 4 | Exec=/usr/local/bin/start-cosmic-ext-niri 5 | Type=Application 6 | DesktopNames=niri 7 | -------------------------------------------------------------------------------- /niri/start-cosmic-ext-niri: -------------------------------------------------------------------------------- 1 | #!/usr/bin/bash 2 | 3 | set -e 4 | 5 | # From: https://people.debian.org/~mpitt/systemd.conf-2016-graphical-session.pdf 6 | 7 | if command -v systemctl >/dev/null; then 8 | # robustness: if the previous graphical session left some failed units, 9 | # reset them so that they don't break this startup 10 | for unit in $(systemctl --user --no-legend --state=failed --plain list-units | cut -f1 -d' '); do 11 | partof="$(systemctl --user show -p PartOf --value "$unit")" 12 | for target in cosmic-session.target graphical-session.target; do 13 | if [ "$partof" = "$target" ]; then 14 | systemctl --user reset-failed "$unit" 15 | break 16 | fi 17 | done 18 | done 19 | fi 20 | 21 | # use the user's preferred shell to acquire environment variables 22 | # see: https://github.com/pop-os/cosmic-session/issues/23 23 | if [ -n "${SHELL}" ]; then 24 | # --in-login-shell: our flag to indicate that we don't need to recurse any further 25 | if [ "${1}" != "--in-login-shell" ]; then 26 | # `exec -l`: like `login`, prefixes $SHELL with a hyphen to start a login shell 27 | exec bash -c "exec -l '${SHELL}' -c '${0} --in-login-shell'" 28 | fi 29 | fi 30 | 31 | export XDG_CURRENT_DESKTOP="${XDG_CURRENT_DESKTOP:=niri}" 32 | export XDG_SESSION_TYPE="${XDG_SESSION_TYPE:=wayland}" 33 | export XCURSOR_THEME="${XCURSOR_THEME:=Cosmic}" 34 | export _JAVA_AWT_WM_NONREPARENTING=1 35 | export GDK_BACKEND=wayland,x11 36 | export MOZ_ENABLE_WAYLAND=1 37 | export QT_QPA_PLATFORM="wayland;xcb" 38 | export QT_AUTO_SCREEN_SCALE_FACTOR=1 39 | export QT_ENABLE_HIGHDPI_SCALING=1 40 | 41 | if command -v systemctl >/dev/null; then 42 | # set environment variables for new units started by user service manager 43 | systemctl --user import-environment XDG_SESSION_TYPE XDG_CURRENT_DESKTOP 44 | fi 45 | # Run cosmic-session 46 | if [[ -z "${DBUS_SESSION_BUS_ADDRESS}" ]]; then 47 | exec /usr/bin/dbus-run-session -- /usr/bin/cosmic-session niri 48 | else 49 | exec /usr/bin/cosmic-session niri 50 | fi 51 | -------------------------------------------------------------------------------- /sway/README.md: -------------------------------------------------------------------------------- 1 | # cosmic-ext-sway 2 | 3 | This is cosmic running on sway! 4 | 5 | ## Install 6 | 7 | Either clone the repo and run `just install-sway` or install manually: 8 | - `start-cosmic-ext-sway` somewhere in your `PATH`, e.g. `/usr/local/bin` 9 | - `cosmic-ext-sway.desktop` into `/usr/share/wayland-sessions/cosmic-ext-sway.desktop` 10 | - `config-cosmic` to `/etc/sway/config-cosmic` 11 | 12 | Optionally install `cosmic-ext-sway-daemon` to your `PATH` for further integration. 13 | 14 | ## Configuration 15 | 16 | The default configuration on various distributions sets up it's own session code and possibly systemd integration, which potentially conflicts with what `cosmic-ext-sway` is doing. 17 | 18 | Additionally we need to launch a couple of programs (`cosmic-ext-alternative-startup` and optionally `cosmic-ext-sway-daemon`). 19 | 20 | 21 | If you want to configure this yourself, I recommend either using `config-cosmic` as a starting base or just including `config-cosmic` in your local configuration and then override settings you don't like. -------------------------------------------------------------------------------- /sway/config-cosmic: -------------------------------------------------------------------------------- 1 | # Default config for sway 2 | # 3 | # Copy this to ~/.config/sway/config and edit it to your liking. 4 | # 5 | # Read `man 5 sway` for a complete reference. 6 | 7 | ### Variables 8 | # 9 | # Logo key. Use Mod1 for Alt. 10 | set $mod Mod4 11 | # Home row direction keys, like vim 12 | set $left h 13 | set $down j 14 | set $up k 15 | set $right l 16 | # Your preferred terminal emulator 17 | set $term cosmic-term 18 | # Your preferred application launcher 19 | # Note: pass the final command to swaymsg so that the resulting window can be opened 20 | # on the original workspace that the command was run on. 21 | set $menu cosmic-launcher 22 | 23 | ### Output configuration 24 | # 25 | # Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/) 26 | #output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill 27 | # 28 | # Example configuration: 29 | # 30 | # output HDMI-A-1 resolution 1920x1080 position 1920,0 31 | # 32 | # You can get the names of your outputs by running: swaymsg -t get_outputs 33 | 34 | ### Idle configuration 35 | # 36 | # Example configuration: 37 | # 38 | # exec swayidle -w \ 39 | # timeout 300 'swaylock -f -c 000000' \ 40 | # timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \ 41 | # before-sleep 'swaylock -f -c 000000' 42 | # 43 | # This will lock your screen after 300 seconds of inactivity, then turn off 44 | # your displays after another 300 seconds, and turn your screens back on when 45 | # resumed. It will also lock your screen before your computer goes to sleep. 46 | 47 | ### Input configuration 48 | # 49 | # Example configuration: 50 | # 51 | # input "2:14:SynPS/2_Synaptics_TouchPad" { 52 | # dwt enabled 53 | # tap enabled 54 | # natural_scroll enabled 55 | # middle_emulation enabled 56 | # } 57 | # 58 | # You can get the names of your inputs by running: swaymsg -t get_inputs 59 | # Read `man 5 sway-input` for more information about this section. 60 | 61 | ### Key bindings 62 | # 63 | # Basics: 64 | # 65 | # Start a terminal 66 | bindsym $mod+Return exec $term 67 | 68 | # Kill focused window 69 | bindsym $mod+Shift+q kill 70 | 71 | # Start your launcher 72 | bindsym $mod+d exec $menu 73 | bindsym $mod+shift+d exec cosmic-app-library 74 | 75 | # Drag floating windows by holding down $mod and left mouse button. 76 | # Resize them with right mouse button + $mod. 77 | # Despite the name, also works for non-floating windows. 78 | # Change normal to inverse to use left mouse button for resizing and right 79 | # mouse button for dragging. 80 | floating_modifier $mod normal 81 | 82 | # Reload the configuration file 83 | bindsym $mod+Shift+c reload 84 | # 85 | # Moving around: 86 | # 87 | # Move your focus around 88 | bindsym $mod+$left focus left 89 | bindsym $mod+$down focus down 90 | bindsym $mod+$up focus up 91 | bindsym $mod+$right focus right 92 | # Or use $mod+[up|down|left|right] 93 | bindsym $mod+Left focus left 94 | bindsym $mod+Down focus down 95 | bindsym $mod+Up focus up 96 | bindsym $mod+Right focus right 97 | 98 | # Move the focused window with the same, but add Shift 99 | bindsym $mod+Shift+$left move left 100 | bindsym $mod+Shift+$down move down 101 | bindsym $mod+Shift+$up move up 102 | bindsym $mod+Shift+$right move right 103 | # Ditto, with arrow keys 104 | bindsym $mod+Shift+Left move left 105 | bindsym $mod+Shift+Down move down 106 | bindsym $mod+Shift+Up move up 107 | bindsym $mod+Shift+Right move right 108 | # 109 | # Workspaces: 110 | # 111 | # Switch to workspace 112 | bindsym $mod+1 workspace number 1 113 | bindsym $mod+2 workspace number 2 114 | bindsym $mod+3 workspace number 3 115 | bindsym $mod+4 workspace number 4 116 | bindsym $mod+5 workspace number 5 117 | bindsym $mod+6 workspace number 6 118 | bindsym $mod+7 workspace number 7 119 | bindsym $mod+8 workspace number 8 120 | bindsym $mod+9 workspace number 9 121 | bindsym $mod+0 workspace number 10 122 | # Move focused container to workspace 123 | bindsym $mod+Shift+1 move container to workspace number 1 124 | bindsym $mod+Shift+2 move container to workspace number 2 125 | bindsym $mod+Shift+3 move container to workspace number 3 126 | bindsym $mod+Shift+4 move container to workspace number 4 127 | bindsym $mod+Shift+5 move container to workspace number 5 128 | bindsym $mod+Shift+6 move container to workspace number 6 129 | bindsym $mod+Shift+7 move container to workspace number 7 130 | bindsym $mod+Shift+8 move container to workspace number 8 131 | bindsym $mod+Shift+9 move container to workspace number 9 132 | bindsym $mod+Shift+0 move container to workspace number 10 133 | # Note: workspaces can have any name you want, not just numbers. 134 | # We just use 1-10 as the default. 135 | # 136 | # Layout stuff: 137 | # 138 | # You can "split" the current object of your focus with 139 | # $mod+b or $mod+v, for horizontal and vertical splits 140 | # respectively. 141 | bindsym $mod+b splith 142 | bindsym $mod+v splitv 143 | 144 | # Switch the current container between different layout styles 145 | bindsym $mod+s layout stacking 146 | bindsym $mod+w layout tabbed 147 | bindsym $mod+e layout toggle split 148 | 149 | # Make the current focus fullscreen 150 | bindsym $mod+f fullscreen 151 | 152 | # Toggle the current focus between tiling and floating mode 153 | bindsym $mod+Shift+space floating toggle 154 | 155 | # Swap focus between the tiling area and the floating area 156 | bindsym $mod+space focus mode_toggle 157 | 158 | # Move focus to the parent container 159 | bindsym $mod+a focus parent 160 | # 161 | # Scratchpad: 162 | # 163 | # Sway has a "scratchpad", which is a bag of holding for windows. 164 | # You can send windows there and get them back later. 165 | 166 | # Move the currently focused window to the scratchpad 167 | bindsym $mod+Shift+minus move scratchpad 168 | 169 | # Show the next scratchpad window or hide the focused scratchpad window. 170 | # If there are multiple scratchpad windows, this command cycles through them. 171 | bindsym $mod+minus scratchpad show 172 | # 173 | # Resizing containers: 174 | # 175 | mode "resize" { 176 | # left will shrink the containers width 177 | # right will grow the containers width 178 | # up will shrink the containers height 179 | # down will grow the containers height 180 | bindsym $left resize shrink width 10px 181 | bindsym $down resize grow height 10px 182 | bindsym $up resize shrink height 10px 183 | bindsym $right resize grow width 10px 184 | 185 | # Ditto, with arrow keys 186 | bindsym Left resize shrink width 10px 187 | bindsym Down resize grow height 10px 188 | bindsym Up resize shrink height 10px 189 | bindsym Right resize grow width 10px 190 | 191 | # Return to default mode 192 | bindsym Return mode "default" 193 | bindsym Escape mode "default" 194 | } 195 | bindsym $mod+r mode "resize" 196 | 197 | focus_follows_mouse no 198 | exec /usr/bin/cosmic-ext-alternative-startup 199 | exec /usr/bin/cosmic-ext-sway-daemon 200 | -------------------------------------------------------------------------------- /sway/cosmic-ext-sway-daemon/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /sway/cosmic-ext-sway-daemon/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "adler" 7 | version = "1.0.2" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 10 | 11 | [[package]] 12 | name = "adler2" 13 | version = "2.0.0" 14 | source = "registry+https://github.com/rust-lang/crates.io-index" 15 | checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" 16 | 17 | [[package]] 18 | name = "ahash" 19 | version = "0.8.11" 20 | source = "registry+https://github.com/rust-lang/crates.io-index" 21 | checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" 22 | dependencies = [ 23 | "cfg-if", 24 | "getrandom", 25 | "once_cell", 26 | "version_check", 27 | "zerocopy", 28 | ] 29 | 30 | [[package]] 31 | name = "aliasable" 32 | version = "0.1.3" 33 | source = "registry+https://github.com/rust-lang/crates.io-index" 34 | checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" 35 | 36 | [[package]] 37 | name = "allocator-api2" 38 | version = "0.2.18" 39 | source = "registry+https://github.com/rust-lang/crates.io-index" 40 | checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" 41 | 42 | [[package]] 43 | name = "almost" 44 | version = "0.2.0" 45 | source = "registry+https://github.com/rust-lang/crates.io-index" 46 | checksum = "3aa2999eb46af81abb65c2d30d446778d7e613b60bbf4e174a027e80f90a3c14" 47 | 48 | [[package]] 49 | name = "android-tzdata" 50 | version = "0.1.1" 51 | source = "registry+https://github.com/rust-lang/crates.io-index" 52 | checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" 53 | 54 | [[package]] 55 | name = "android_system_properties" 56 | version = "0.1.5" 57 | source = "registry+https://github.com/rust-lang/crates.io-index" 58 | checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 59 | dependencies = [ 60 | "libc", 61 | ] 62 | 63 | [[package]] 64 | name = "anyhow" 65 | version = "1.0.91" 66 | source = "registry+https://github.com/rust-lang/crates.io-index" 67 | checksum = "c042108f3ed77fd83760a5fd79b53be043192bb3b9dba91d8c574c0ada7850c8" 68 | 69 | [[package]] 70 | name = "apply" 71 | version = "0.3.0" 72 | source = "registry+https://github.com/rust-lang/crates.io-index" 73 | checksum = "f47b57fc4521e3cae26a4d45b5227f8fadee4c345be0fefd8d5d1711afb8aeb9" 74 | 75 | [[package]] 76 | name = "approx" 77 | version = "0.5.1" 78 | source = "registry+https://github.com/rust-lang/crates.io-index" 79 | checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" 80 | dependencies = [ 81 | "num-traits", 82 | ] 83 | 84 | [[package]] 85 | name = "arrayref" 86 | version = "0.3.9" 87 | source = "registry+https://github.com/rust-lang/crates.io-index" 88 | checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" 89 | 90 | [[package]] 91 | name = "arrayvec" 92 | version = "0.7.6" 93 | source = "registry+https://github.com/rust-lang/crates.io-index" 94 | checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" 95 | 96 | [[package]] 97 | name = "as-raw-xcb-connection" 98 | version = "1.0.1" 99 | source = "registry+https://github.com/rust-lang/crates.io-index" 100 | checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" 101 | 102 | [[package]] 103 | name = "ash" 104 | version = "0.38.0+1.3.281" 105 | source = "registry+https://github.com/rust-lang/crates.io-index" 106 | checksum = "0bb44936d800fea8f016d7f2311c6a4f97aebd5dc86f09906139ec848cf3a46f" 107 | dependencies = [ 108 | "libloading", 109 | ] 110 | 111 | [[package]] 112 | name = "atomicwrites" 113 | version = "0.4.2" 114 | source = "git+https://github.com/jackpot51/rust-atomicwrites#043ab4859d53ffd3d55334685303d8df39c9f768" 115 | dependencies = [ 116 | "rustix", 117 | "tempfile", 118 | "windows-sys 0.48.0", 119 | ] 120 | 121 | [[package]] 122 | name = "autocfg" 123 | version = "1.4.0" 124 | source = "registry+https://github.com/rust-lang/crates.io-index" 125 | checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" 126 | 127 | [[package]] 128 | name = "base64" 129 | version = "0.21.7" 130 | source = "registry+https://github.com/rust-lang/crates.io-index" 131 | checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" 132 | 133 | [[package]] 134 | name = "base64" 135 | version = "0.22.1" 136 | source = "registry+https://github.com/rust-lang/crates.io-index" 137 | checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 138 | 139 | [[package]] 140 | name = "bit-set" 141 | version = "0.6.0" 142 | source = "registry+https://github.com/rust-lang/crates.io-index" 143 | checksum = "f0481a0e032742109b1133a095184ee93d88f3dc9e0d28a5d033dc77a073f44f" 144 | dependencies = [ 145 | "bit-vec", 146 | ] 147 | 148 | [[package]] 149 | name = "bit-vec" 150 | version = "0.7.0" 151 | source = "registry+https://github.com/rust-lang/crates.io-index" 152 | checksum = "d2c54ff287cfc0a34f38a6b832ea1bd8e448a330b3e40a50859e6488bee07f22" 153 | 154 | [[package]] 155 | name = "bit_field" 156 | version = "0.10.2" 157 | source = "registry+https://github.com/rust-lang/crates.io-index" 158 | checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" 159 | 160 | [[package]] 161 | name = "bitflags" 162 | version = "1.3.2" 163 | source = "registry+https://github.com/rust-lang/crates.io-index" 164 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 165 | 166 | [[package]] 167 | name = "bitflags" 168 | version = "2.6.0" 169 | source = "registry+https://github.com/rust-lang/crates.io-index" 170 | checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" 171 | dependencies = [ 172 | "serde", 173 | ] 174 | 175 | [[package]] 176 | name = "block" 177 | version = "0.1.6" 178 | source = "registry+https://github.com/rust-lang/crates.io-index" 179 | checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" 180 | 181 | [[package]] 182 | name = "bumpalo" 183 | version = "3.16.0" 184 | source = "registry+https://github.com/rust-lang/crates.io-index" 185 | checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" 186 | 187 | [[package]] 188 | name = "by_address" 189 | version = "1.2.1" 190 | source = "registry+https://github.com/rust-lang/crates.io-index" 191 | checksum = "64fa3c856b712db6612c019f14756e64e4bcea13337a6b33b696333a9eaa2d06" 192 | 193 | [[package]] 194 | name = "bytemuck" 195 | version = "1.19.0" 196 | source = "registry+https://github.com/rust-lang/crates.io-index" 197 | checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" 198 | dependencies = [ 199 | "bytemuck_derive", 200 | ] 201 | 202 | [[package]] 203 | name = "bytemuck_derive" 204 | version = "1.8.0" 205 | source = "registry+https://github.com/rust-lang/crates.io-index" 206 | checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec" 207 | dependencies = [ 208 | "proc-macro2", 209 | "quote", 210 | "syn 2.0.85", 211 | ] 212 | 213 | [[package]] 214 | name = "byteorder" 215 | version = "1.5.0" 216 | source = "registry+https://github.com/rust-lang/crates.io-index" 217 | checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 218 | 219 | [[package]] 220 | name = "bytes" 221 | version = "1.8.0" 222 | source = "registry+https://github.com/rust-lang/crates.io-index" 223 | checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" 224 | 225 | [[package]] 226 | name = "calloop" 227 | version = "0.13.0" 228 | source = "registry+https://github.com/rust-lang/crates.io-index" 229 | checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" 230 | dependencies = [ 231 | "bitflags 2.6.0", 232 | "log", 233 | "polling", 234 | "rustix", 235 | "slab", 236 | "thiserror", 237 | ] 238 | 239 | [[package]] 240 | name = "calloop" 241 | version = "0.14.1" 242 | source = "registry+https://github.com/rust-lang/crates.io-index" 243 | checksum = "a1ead1e1514bce44c0f40e027899fbc595907fc112635bed21b3b5d975c0a5e7" 244 | dependencies = [ 245 | "bitflags 2.6.0", 246 | "polling", 247 | "rustix", 248 | "slab", 249 | "tracing", 250 | ] 251 | 252 | [[package]] 253 | name = "calloop-wayland-source" 254 | version = "0.3.0" 255 | source = "registry+https://github.com/rust-lang/crates.io-index" 256 | checksum = "95a66a987056935f7efce4ab5668920b5d0dac4a7c99991a67395f13702ddd20" 257 | dependencies = [ 258 | "calloop 0.13.0", 259 | "rustix", 260 | "wayland-backend", 261 | "wayland-client", 262 | ] 263 | 264 | [[package]] 265 | name = "cc" 266 | version = "1.1.31" 267 | source = "registry+https://github.com/rust-lang/crates.io-index" 268 | checksum = "c2e7962b54006dcfcc61cb72735f4d89bb97061dd6a7ed882ec6b8ee53714c6f" 269 | dependencies = [ 270 | "shlex", 271 | ] 272 | 273 | [[package]] 274 | name = "cfg-if" 275 | version = "1.0.0" 276 | source = "registry+https://github.com/rust-lang/crates.io-index" 277 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 278 | 279 | [[package]] 280 | name = "cfg_aliases" 281 | version = "0.1.1" 282 | source = "registry+https://github.com/rust-lang/crates.io-index" 283 | checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" 284 | 285 | [[package]] 286 | name = "cfg_aliases" 287 | version = "0.2.1" 288 | source = "registry+https://github.com/rust-lang/crates.io-index" 289 | checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" 290 | 291 | [[package]] 292 | name = "chrono" 293 | version = "0.4.38" 294 | source = "registry+https://github.com/rust-lang/crates.io-index" 295 | checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" 296 | dependencies = [ 297 | "android-tzdata", 298 | "iana-time-zone", 299 | "js-sys", 300 | "num-traits", 301 | "wasm-bindgen", 302 | "windows-targets 0.52.6", 303 | ] 304 | 305 | [[package]] 306 | name = "clipboard-win" 307 | version = "5.4.0" 308 | source = "registry+https://github.com/rust-lang/crates.io-index" 309 | checksum = "15efe7a882b08f34e38556b14f2fb3daa98769d06c7f0c1b076dfd0d983bc892" 310 | dependencies = [ 311 | "error-code", 312 | ] 313 | 314 | [[package]] 315 | name = "clipboard_macos" 316 | version = "0.1.0" 317 | source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13#a83bf83784276aaa882ef13555295a2ad9edd265" 318 | dependencies = [ 319 | "objc", 320 | "objc-foundation", 321 | "objc_id", 322 | ] 323 | 324 | [[package]] 325 | name = "clipboard_wayland" 326 | version = "0.2.2" 327 | source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13#a83bf83784276aaa882ef13555295a2ad9edd265" 328 | dependencies = [ 329 | "dnd", 330 | "mime", 331 | "smithay-clipboard", 332 | ] 333 | 334 | [[package]] 335 | name = "clipboard_x11" 336 | version = "0.4.2" 337 | source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13#a83bf83784276aaa882ef13555295a2ad9edd265" 338 | dependencies = [ 339 | "thiserror", 340 | "x11rb", 341 | ] 342 | 343 | [[package]] 344 | name = "cocoa" 345 | version = "0.25.0" 346 | source = "registry+https://github.com/rust-lang/crates.io-index" 347 | checksum = "f6140449f97a6e97f9511815c5632d84c8aacf8ac271ad77c559218161a1373c" 348 | dependencies = [ 349 | "bitflags 1.3.2", 350 | "block", 351 | "cocoa-foundation", 352 | "core-foundation", 353 | "core-graphics", 354 | "foreign-types", 355 | "libc", 356 | "objc", 357 | ] 358 | 359 | [[package]] 360 | name = "cocoa-foundation" 361 | version = "0.1.2" 362 | source = "registry+https://github.com/rust-lang/crates.io-index" 363 | checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7" 364 | dependencies = [ 365 | "bitflags 1.3.2", 366 | "block", 367 | "core-foundation", 368 | "core-graphics-types", 369 | "libc", 370 | "objc", 371 | ] 372 | 373 | [[package]] 374 | name = "codespan-reporting" 375 | version = "0.11.1" 376 | source = "registry+https://github.com/rust-lang/crates.io-index" 377 | checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" 378 | dependencies = [ 379 | "termcolor", 380 | "unicode-width", 381 | ] 382 | 383 | [[package]] 384 | name = "color_quant" 385 | version = "1.1.0" 386 | source = "registry+https://github.com/rust-lang/crates.io-index" 387 | checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" 388 | 389 | [[package]] 390 | name = "com" 391 | version = "0.6.0" 392 | source = "registry+https://github.com/rust-lang/crates.io-index" 393 | checksum = "7e17887fd17353b65b1b2ef1c526c83e26cd72e74f598a8dc1bee13a48f3d9f6" 394 | dependencies = [ 395 | "com_macros", 396 | ] 397 | 398 | [[package]] 399 | name = "com_macros" 400 | version = "0.6.0" 401 | source = "registry+https://github.com/rust-lang/crates.io-index" 402 | checksum = "d375883580a668c7481ea6631fc1a8863e33cc335bf56bfad8d7e6d4b04b13a5" 403 | dependencies = [ 404 | "com_macros_support", 405 | "proc-macro2", 406 | "syn 1.0.109", 407 | ] 408 | 409 | [[package]] 410 | name = "com_macros_support" 411 | version = "0.6.0" 412 | source = "registry+https://github.com/rust-lang/crates.io-index" 413 | checksum = "ad899a1087a9296d5644792d7cb72b8e34c1bec8e7d4fbc002230169a6e8710c" 414 | dependencies = [ 415 | "proc-macro2", 416 | "quote", 417 | "syn 1.0.109", 418 | ] 419 | 420 | [[package]] 421 | name = "concurrent-queue" 422 | version = "2.5.0" 423 | source = "registry+https://github.com/rust-lang/crates.io-index" 424 | checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" 425 | dependencies = [ 426 | "crossbeam-utils", 427 | ] 428 | 429 | [[package]] 430 | name = "const-random" 431 | version = "0.1.18" 432 | source = "registry+https://github.com/rust-lang/crates.io-index" 433 | checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" 434 | dependencies = [ 435 | "const-random-macro", 436 | ] 437 | 438 | [[package]] 439 | name = "const-random-macro" 440 | version = "0.1.16" 441 | source = "registry+https://github.com/rust-lang/crates.io-index" 442 | checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" 443 | dependencies = [ 444 | "getrandom", 445 | "once_cell", 446 | "tiny-keccak", 447 | ] 448 | 449 | [[package]] 450 | name = "core-foundation" 451 | version = "0.9.4" 452 | source = "registry+https://github.com/rust-lang/crates.io-index" 453 | checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 454 | dependencies = [ 455 | "core-foundation-sys", 456 | "libc", 457 | ] 458 | 459 | [[package]] 460 | name = "core-foundation-sys" 461 | version = "0.8.7" 462 | source = "registry+https://github.com/rust-lang/crates.io-index" 463 | checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 464 | 465 | [[package]] 466 | name = "core-graphics" 467 | version = "0.23.2" 468 | source = "registry+https://github.com/rust-lang/crates.io-index" 469 | checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" 470 | dependencies = [ 471 | "bitflags 1.3.2", 472 | "core-foundation", 473 | "core-graphics-types", 474 | "foreign-types", 475 | "libc", 476 | ] 477 | 478 | [[package]] 479 | name = "core-graphics-types" 480 | version = "0.1.3" 481 | source = "registry+https://github.com/rust-lang/crates.io-index" 482 | checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" 483 | dependencies = [ 484 | "bitflags 1.3.2", 485 | "core-foundation", 486 | "libc", 487 | ] 488 | 489 | [[package]] 490 | name = "cosmic-config" 491 | version = "0.1.0" 492 | source = "git+https://github.com/pop-os/libcosmic.git#fde0516484750e0a7d2499e54964c5ed6ba8e16b" 493 | dependencies = [ 494 | "atomicwrites", 495 | "cosmic-config-derive", 496 | "dirs", 497 | "iced_futures", 498 | "known-folders", 499 | "notify", 500 | "once_cell", 501 | "ron", 502 | "serde", 503 | "tracing", 504 | "xdg", 505 | ] 506 | 507 | [[package]] 508 | name = "cosmic-config-derive" 509 | version = "0.1.0" 510 | source = "git+https://github.com/pop-os/libcosmic.git#fde0516484750e0a7d2499e54964c5ed6ba8e16b" 511 | dependencies = [ 512 | "quote", 513 | "syn 1.0.109", 514 | ] 515 | 516 | [[package]] 517 | name = "cosmic-sway-daemon" 518 | version = "0.1.0" 519 | dependencies = [ 520 | "anyhow", 521 | "calloop 0.14.1", 522 | "cosmic-config", 523 | "cosmic-theme", 524 | "libcosmic", 525 | "swayipc", 526 | ] 527 | 528 | [[package]] 529 | name = "cosmic-text" 530 | version = "0.12.1" 531 | source = "git+https://github.com/pop-os/cosmic-text.git#4fe90bb6126c22f589b46768d7754d65ae300c5e" 532 | dependencies = [ 533 | "bitflags 2.6.0", 534 | "fontdb 0.16.2", 535 | "log", 536 | "rangemap", 537 | "rayon", 538 | "rustc-hash 1.1.0", 539 | "rustybuzz", 540 | "self_cell", 541 | "smol_str", 542 | "swash", 543 | "sys-locale", 544 | "ttf-parser 0.21.1", 545 | "unicode-bidi", 546 | "unicode-linebreak", 547 | "unicode-script", 548 | "unicode-segmentation", 549 | ] 550 | 551 | [[package]] 552 | name = "cosmic-theme" 553 | version = "0.1.0" 554 | source = "git+https://github.com/pop-os/libcosmic.git#fde0516484750e0a7d2499e54964c5ed6ba8e16b" 555 | dependencies = [ 556 | "almost", 557 | "cosmic-config", 558 | "csscolorparser", 559 | "dirs", 560 | "lazy_static", 561 | "palette", 562 | "ron", 563 | "serde", 564 | "serde_json", 565 | "thiserror", 566 | ] 567 | 568 | [[package]] 569 | name = "crc32fast" 570 | version = "1.4.2" 571 | source = "registry+https://github.com/rust-lang/crates.io-index" 572 | checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" 573 | dependencies = [ 574 | "cfg-if", 575 | ] 576 | 577 | [[package]] 578 | name = "crossbeam-channel" 579 | version = "0.5.13" 580 | source = "registry+https://github.com/rust-lang/crates.io-index" 581 | checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" 582 | dependencies = [ 583 | "crossbeam-utils", 584 | ] 585 | 586 | [[package]] 587 | name = "crossbeam-deque" 588 | version = "0.8.5" 589 | source = "registry+https://github.com/rust-lang/crates.io-index" 590 | checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" 591 | dependencies = [ 592 | "crossbeam-epoch", 593 | "crossbeam-utils", 594 | ] 595 | 596 | [[package]] 597 | name = "crossbeam-epoch" 598 | version = "0.9.18" 599 | source = "registry+https://github.com/rust-lang/crates.io-index" 600 | checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" 601 | dependencies = [ 602 | "crossbeam-utils", 603 | ] 604 | 605 | [[package]] 606 | name = "crossbeam-utils" 607 | version = "0.8.20" 608 | source = "registry+https://github.com/rust-lang/crates.io-index" 609 | checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" 610 | 611 | [[package]] 612 | name = "crunchy" 613 | version = "0.2.2" 614 | source = "registry+https://github.com/rust-lang/crates.io-index" 615 | checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" 616 | 617 | [[package]] 618 | name = "css-color" 619 | version = "0.2.8" 620 | source = "registry+https://github.com/rust-lang/crates.io-index" 621 | checksum = "42aaeae719fd78ce501d77c6cdf01f7e96f26bcd5617a4903a1c2b97e388543a" 622 | 623 | [[package]] 624 | name = "csscolorparser" 625 | version = "0.6.2" 626 | source = "registry+https://github.com/rust-lang/crates.io-index" 627 | checksum = "eb2a7d3066da2de787b7f032c736763eb7ae5d355f81a68bab2675a96008b0bf" 628 | dependencies = [ 629 | "phf", 630 | "serde", 631 | ] 632 | 633 | [[package]] 634 | name = "ctor-lite" 635 | version = "0.1.0" 636 | source = "registry+https://github.com/rust-lang/crates.io-index" 637 | checksum = "1f791803201ab277ace03903de1594460708d2d54df6053f2d9e82f592b19e3b" 638 | 639 | [[package]] 640 | name = "cursor-icon" 641 | version = "1.1.0" 642 | source = "registry+https://github.com/rust-lang/crates.io-index" 643 | checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991" 644 | 645 | [[package]] 646 | name = "d3d12" 647 | version = "22.0.0" 648 | source = "registry+https://github.com/rust-lang/crates.io-index" 649 | checksum = "bdbd1f579714e3c809ebd822c81ef148b1ceaeb3d535352afc73fd0c4c6a0017" 650 | dependencies = [ 651 | "bitflags 2.6.0", 652 | "libloading", 653 | "winapi", 654 | ] 655 | 656 | [[package]] 657 | name = "darling" 658 | version = "0.20.10" 659 | source = "registry+https://github.com/rust-lang/crates.io-index" 660 | checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" 661 | dependencies = [ 662 | "darling_core", 663 | "darling_macro", 664 | ] 665 | 666 | [[package]] 667 | name = "darling_core" 668 | version = "0.20.10" 669 | source = "registry+https://github.com/rust-lang/crates.io-index" 670 | checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" 671 | dependencies = [ 672 | "fnv", 673 | "ident_case", 674 | "proc-macro2", 675 | "quote", 676 | "strsim", 677 | "syn 2.0.85", 678 | ] 679 | 680 | [[package]] 681 | name = "darling_macro" 682 | version = "0.20.10" 683 | source = "registry+https://github.com/rust-lang/crates.io-index" 684 | checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" 685 | dependencies = [ 686 | "darling_core", 687 | "quote", 688 | "syn 2.0.85", 689 | ] 690 | 691 | [[package]] 692 | name = "data-url" 693 | version = "0.3.1" 694 | source = "registry+https://github.com/rust-lang/crates.io-index" 695 | checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a" 696 | 697 | [[package]] 698 | name = "derive_setters" 699 | version = "0.1.6" 700 | source = "registry+https://github.com/rust-lang/crates.io-index" 701 | checksum = "4e8ef033054e131169b8f0f9a7af8f5533a9436fadf3c500ed547f730f07090d" 702 | dependencies = [ 703 | "darling", 704 | "proc-macro2", 705 | "quote", 706 | "syn 2.0.85", 707 | ] 708 | 709 | [[package]] 710 | name = "dirs" 711 | version = "5.0.1" 712 | source = "registry+https://github.com/rust-lang/crates.io-index" 713 | checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" 714 | dependencies = [ 715 | "dirs-sys", 716 | ] 717 | 718 | [[package]] 719 | name = "dirs-sys" 720 | version = "0.4.1" 721 | source = "registry+https://github.com/rust-lang/crates.io-index" 722 | checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" 723 | dependencies = [ 724 | "libc", 725 | "option-ext", 726 | "redox_users", 727 | "windows-sys 0.48.0", 728 | ] 729 | 730 | [[package]] 731 | name = "dlib" 732 | version = "0.5.2" 733 | source = "registry+https://github.com/rust-lang/crates.io-index" 734 | checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" 735 | dependencies = [ 736 | "libloading", 737 | ] 738 | 739 | [[package]] 740 | name = "dlv-list" 741 | version = "0.5.2" 742 | source = "registry+https://github.com/rust-lang/crates.io-index" 743 | checksum = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f" 744 | dependencies = [ 745 | "const-random", 746 | ] 747 | 748 | [[package]] 749 | name = "dnd" 750 | version = "0.1.0" 751 | source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13#a83bf83784276aaa882ef13555295a2ad9edd265" 752 | dependencies = [ 753 | "bitflags 2.6.0", 754 | "mime", 755 | "raw-window-handle", 756 | "smithay-client-toolkit", 757 | "smithay-clipboard", 758 | ] 759 | 760 | [[package]] 761 | name = "document-features" 762 | version = "0.2.10" 763 | source = "registry+https://github.com/rust-lang/crates.io-index" 764 | checksum = "cb6969eaabd2421f8a2775cfd2471a2b634372b4a25d41e3bd647b79912850a0" 765 | dependencies = [ 766 | "litrs", 767 | ] 768 | 769 | [[package]] 770 | name = "downcast-rs" 771 | version = "1.2.1" 772 | source = "registry+https://github.com/rust-lang/crates.io-index" 773 | checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" 774 | 775 | [[package]] 776 | name = "drm" 777 | version = "0.11.1" 778 | source = "registry+https://github.com/rust-lang/crates.io-index" 779 | checksum = "a0f8a69e60d75ae7dab4ef26a59ca99f2a89d4c142089b537775ae0c198bdcde" 780 | dependencies = [ 781 | "bitflags 2.6.0", 782 | "bytemuck", 783 | "drm-ffi", 784 | "drm-fourcc", 785 | "rustix", 786 | ] 787 | 788 | [[package]] 789 | name = "drm-ffi" 790 | version = "0.7.1" 791 | source = "registry+https://github.com/rust-lang/crates.io-index" 792 | checksum = "41334f8405792483e32ad05fbb9c5680ff4e84491883d2947a4757dc54cb2ac6" 793 | dependencies = [ 794 | "drm-sys", 795 | "rustix", 796 | ] 797 | 798 | [[package]] 799 | name = "drm-fourcc" 800 | version = "2.2.0" 801 | source = "registry+https://github.com/rust-lang/crates.io-index" 802 | checksum = "0aafbcdb8afc29c1a7ee5fbe53b5d62f4565b35a042a662ca9fecd0b54dae6f4" 803 | 804 | [[package]] 805 | name = "drm-sys" 806 | version = "0.6.1" 807 | source = "registry+https://github.com/rust-lang/crates.io-index" 808 | checksum = "2d09ff881f92f118b11105ba5e34ff8f4adf27b30dae8f12e28c193af1c83176" 809 | dependencies = [ 810 | "libc", 811 | "linux-raw-sys 0.6.5", 812 | ] 813 | 814 | [[package]] 815 | name = "either" 816 | version = "1.13.0" 817 | source = "registry+https://github.com/rust-lang/crates.io-index" 818 | checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" 819 | 820 | [[package]] 821 | name = "equivalent" 822 | version = "1.0.1" 823 | source = "registry+https://github.com/rust-lang/crates.io-index" 824 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 825 | 826 | [[package]] 827 | name = "errno" 828 | version = "0.3.9" 829 | source = "registry+https://github.com/rust-lang/crates.io-index" 830 | checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" 831 | dependencies = [ 832 | "libc", 833 | "windows-sys 0.52.0", 834 | ] 835 | 836 | [[package]] 837 | name = "error-code" 838 | version = "3.3.1" 839 | source = "registry+https://github.com/rust-lang/crates.io-index" 840 | checksum = "a5d9305ccc6942a704f4335694ecd3de2ea531b114ac2d51f5f843750787a92f" 841 | 842 | [[package]] 843 | name = "etagere" 844 | version = "0.2.13" 845 | source = "registry+https://github.com/rust-lang/crates.io-index" 846 | checksum = "0e2f1e3be19fb10f549be8c1bf013e8675b4066c445e36eb76d2ebb2f54ee495" 847 | dependencies = [ 848 | "euclid", 849 | "svg_fmt", 850 | ] 851 | 852 | [[package]] 853 | name = "euclid" 854 | version = "0.22.11" 855 | source = "registry+https://github.com/rust-lang/crates.io-index" 856 | checksum = "ad9cdb4b747e485a12abb0e6566612956c7a1bafa3bdb8d682c5b6d403589e48" 857 | dependencies = [ 858 | "num-traits", 859 | ] 860 | 861 | [[package]] 862 | name = "exr" 863 | version = "1.72.0" 864 | source = "registry+https://github.com/rust-lang/crates.io-index" 865 | checksum = "887d93f60543e9a9362ef8a21beedd0a833c5d9610e18c67abe15a5963dcb1a4" 866 | dependencies = [ 867 | "bit_field", 868 | "flume", 869 | "half", 870 | "lebe", 871 | "miniz_oxide 0.7.4", 872 | "rayon-core", 873 | "smallvec", 874 | "zune-inflate", 875 | ] 876 | 877 | [[package]] 878 | name = "fast-srgb8" 879 | version = "1.0.0" 880 | source = "registry+https://github.com/rust-lang/crates.io-index" 881 | checksum = "dd2e7510819d6fbf51a5545c8f922716ecfb14df168a3242f7d33e0239efe6a1" 882 | 883 | [[package]] 884 | name = "fastrand" 885 | version = "2.1.1" 886 | source = "registry+https://github.com/rust-lang/crates.io-index" 887 | checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" 888 | 889 | [[package]] 890 | name = "fdeflate" 891 | version = "0.3.5" 892 | source = "registry+https://github.com/rust-lang/crates.io-index" 893 | checksum = "d8090f921a24b04994d9929e204f50b498a33ea6ba559ffaa05e04f7ee7fb5ab" 894 | dependencies = [ 895 | "simd-adler32", 896 | ] 897 | 898 | [[package]] 899 | name = "filetime" 900 | version = "0.2.25" 901 | source = "registry+https://github.com/rust-lang/crates.io-index" 902 | checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" 903 | dependencies = [ 904 | "cfg-if", 905 | "libc", 906 | "libredox", 907 | "windows-sys 0.59.0", 908 | ] 909 | 910 | [[package]] 911 | name = "flate2" 912 | version = "1.0.34" 913 | source = "registry+https://github.com/rust-lang/crates.io-index" 914 | checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" 915 | dependencies = [ 916 | "crc32fast", 917 | "miniz_oxide 0.8.0", 918 | ] 919 | 920 | [[package]] 921 | name = "float-cmp" 922 | version = "0.9.0" 923 | source = "registry+https://github.com/rust-lang/crates.io-index" 924 | checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" 925 | 926 | [[package]] 927 | name = "float_next_after" 928 | version = "1.0.0" 929 | source = "registry+https://github.com/rust-lang/crates.io-index" 930 | checksum = "8bf7cc16383c4b8d58b9905a8509f02926ce3058053c056376248d958c9df1e8" 931 | 932 | [[package]] 933 | name = "flume" 934 | version = "0.11.1" 935 | source = "registry+https://github.com/rust-lang/crates.io-index" 936 | checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" 937 | dependencies = [ 938 | "spin", 939 | ] 940 | 941 | [[package]] 942 | name = "fnv" 943 | version = "1.0.7" 944 | source = "registry+https://github.com/rust-lang/crates.io-index" 945 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 946 | 947 | [[package]] 948 | name = "font-types" 949 | version = "0.7.2" 950 | source = "registry+https://github.com/rust-lang/crates.io-index" 951 | checksum = "dda6e36206148f69fc6ecb1bb6c0dedd7ee469f3db1d0dc2045beea28430ca43" 952 | dependencies = [ 953 | "bytemuck", 954 | ] 955 | 956 | [[package]] 957 | name = "fontconfig-parser" 958 | version = "0.5.7" 959 | source = "registry+https://github.com/rust-lang/crates.io-index" 960 | checksum = "c1fcfcd44ca6e90c921fee9fa665d530b21ef1327a4c1a6c5250ea44b776ada7" 961 | dependencies = [ 962 | "roxmltree", 963 | ] 964 | 965 | [[package]] 966 | name = "fontdb" 967 | version = "0.16.2" 968 | source = "registry+https://github.com/rust-lang/crates.io-index" 969 | checksum = "b0299020c3ef3f60f526a4f64ab4a3d4ce116b1acbf24cdd22da0068e5d81dc3" 970 | dependencies = [ 971 | "fontconfig-parser", 972 | "log", 973 | "memmap2 0.9.5", 974 | "slotmap", 975 | "tinyvec", 976 | "ttf-parser 0.20.0", 977 | ] 978 | 979 | [[package]] 980 | name = "fontdb" 981 | version = "0.18.0" 982 | source = "registry+https://github.com/rust-lang/crates.io-index" 983 | checksum = "e32eac81c1135c1df01d4e6d4233c47ba11f6a6d07f33e0bba09d18797077770" 984 | dependencies = [ 985 | "fontconfig-parser", 986 | "log", 987 | "memmap2 0.9.5", 988 | "slotmap", 989 | "tinyvec", 990 | "ttf-parser 0.21.1", 991 | ] 992 | 993 | [[package]] 994 | name = "foreign-types" 995 | version = "0.5.0" 996 | source = "registry+https://github.com/rust-lang/crates.io-index" 997 | checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" 998 | dependencies = [ 999 | "foreign-types-macros", 1000 | "foreign-types-shared", 1001 | ] 1002 | 1003 | [[package]] 1004 | name = "foreign-types-macros" 1005 | version = "0.2.3" 1006 | source = "registry+https://github.com/rust-lang/crates.io-index" 1007 | checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" 1008 | dependencies = [ 1009 | "proc-macro2", 1010 | "quote", 1011 | "syn 2.0.85", 1012 | ] 1013 | 1014 | [[package]] 1015 | name = "foreign-types-shared" 1016 | version = "0.3.1" 1017 | source = "registry+https://github.com/rust-lang/crates.io-index" 1018 | checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" 1019 | 1020 | [[package]] 1021 | name = "form_urlencoded" 1022 | version = "1.2.1" 1023 | source = "registry+https://github.com/rust-lang/crates.io-index" 1024 | checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 1025 | dependencies = [ 1026 | "percent-encoding", 1027 | ] 1028 | 1029 | [[package]] 1030 | name = "fraction" 1031 | version = "0.15.3" 1032 | source = "registry+https://github.com/rust-lang/crates.io-index" 1033 | checksum = "0f158e3ff0a1b334408dc9fb811cd99b446986f4d8b741bb08f9df1604085ae7" 1034 | dependencies = [ 1035 | "lazy_static", 1036 | "num", 1037 | ] 1038 | 1039 | [[package]] 1040 | name = "freedesktop-icons" 1041 | version = "0.2.6" 1042 | source = "registry+https://github.com/rust-lang/crates.io-index" 1043 | checksum = "a8ef34245e0540c9a3ce7a28340b98d2c12b75da0d446da4e8224923fcaa0c16" 1044 | dependencies = [ 1045 | "dirs", 1046 | "once_cell", 1047 | "rust-ini", 1048 | "thiserror", 1049 | "xdg", 1050 | ] 1051 | 1052 | [[package]] 1053 | name = "fsevent-sys" 1054 | version = "4.1.0" 1055 | source = "registry+https://github.com/rust-lang/crates.io-index" 1056 | checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" 1057 | dependencies = [ 1058 | "libc", 1059 | ] 1060 | 1061 | [[package]] 1062 | name = "futures" 1063 | version = "0.3.31" 1064 | source = "registry+https://github.com/rust-lang/crates.io-index" 1065 | checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" 1066 | dependencies = [ 1067 | "futures-channel", 1068 | "futures-core", 1069 | "futures-executor", 1070 | "futures-io", 1071 | "futures-sink", 1072 | "futures-task", 1073 | "futures-util", 1074 | ] 1075 | 1076 | [[package]] 1077 | name = "futures-channel" 1078 | version = "0.3.31" 1079 | source = "registry+https://github.com/rust-lang/crates.io-index" 1080 | checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" 1081 | dependencies = [ 1082 | "futures-core", 1083 | "futures-sink", 1084 | ] 1085 | 1086 | [[package]] 1087 | name = "futures-core" 1088 | version = "0.3.31" 1089 | source = "registry+https://github.com/rust-lang/crates.io-index" 1090 | checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" 1091 | 1092 | [[package]] 1093 | name = "futures-executor" 1094 | version = "0.3.31" 1095 | source = "registry+https://github.com/rust-lang/crates.io-index" 1096 | checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" 1097 | dependencies = [ 1098 | "futures-core", 1099 | "futures-task", 1100 | "futures-util", 1101 | "num_cpus", 1102 | ] 1103 | 1104 | [[package]] 1105 | name = "futures-io" 1106 | version = "0.3.31" 1107 | source = "registry+https://github.com/rust-lang/crates.io-index" 1108 | checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" 1109 | 1110 | [[package]] 1111 | name = "futures-macro" 1112 | version = "0.3.31" 1113 | source = "registry+https://github.com/rust-lang/crates.io-index" 1114 | checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" 1115 | dependencies = [ 1116 | "proc-macro2", 1117 | "quote", 1118 | "syn 2.0.85", 1119 | ] 1120 | 1121 | [[package]] 1122 | name = "futures-sink" 1123 | version = "0.3.31" 1124 | source = "registry+https://github.com/rust-lang/crates.io-index" 1125 | checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" 1126 | 1127 | [[package]] 1128 | name = "futures-task" 1129 | version = "0.3.31" 1130 | source = "registry+https://github.com/rust-lang/crates.io-index" 1131 | checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" 1132 | 1133 | [[package]] 1134 | name = "futures-util" 1135 | version = "0.3.31" 1136 | source = "registry+https://github.com/rust-lang/crates.io-index" 1137 | checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" 1138 | dependencies = [ 1139 | "futures-channel", 1140 | "futures-core", 1141 | "futures-io", 1142 | "futures-macro", 1143 | "futures-sink", 1144 | "futures-task", 1145 | "memchr", 1146 | "pin-project-lite", 1147 | "pin-utils", 1148 | "slab", 1149 | ] 1150 | 1151 | [[package]] 1152 | name = "gethostname" 1153 | version = "0.4.3" 1154 | source = "registry+https://github.com/rust-lang/crates.io-index" 1155 | checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818" 1156 | dependencies = [ 1157 | "libc", 1158 | "windows-targets 0.48.5", 1159 | ] 1160 | 1161 | [[package]] 1162 | name = "getrandom" 1163 | version = "0.2.15" 1164 | source = "registry+https://github.com/rust-lang/crates.io-index" 1165 | checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" 1166 | dependencies = [ 1167 | "cfg-if", 1168 | "libc", 1169 | "wasi", 1170 | ] 1171 | 1172 | [[package]] 1173 | name = "gif" 1174 | version = "0.13.1" 1175 | source = "registry+https://github.com/rust-lang/crates.io-index" 1176 | checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2" 1177 | dependencies = [ 1178 | "color_quant", 1179 | "weezl", 1180 | ] 1181 | 1182 | [[package]] 1183 | name = "gl_generator" 1184 | version = "0.14.0" 1185 | source = "registry+https://github.com/rust-lang/crates.io-index" 1186 | checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d" 1187 | dependencies = [ 1188 | "khronos_api", 1189 | "log", 1190 | "xml-rs", 1191 | ] 1192 | 1193 | [[package]] 1194 | name = "glam" 1195 | version = "0.25.0" 1196 | source = "registry+https://github.com/rust-lang/crates.io-index" 1197 | checksum = "151665d9be52f9bb40fc7966565d39666f2d1e69233571b71b87791c7e0528b3" 1198 | 1199 | [[package]] 1200 | name = "glow" 1201 | version = "0.13.1" 1202 | source = "registry+https://github.com/rust-lang/crates.io-index" 1203 | checksum = "bd348e04c43b32574f2de31c8bb397d96c9fcfa1371bd4ca6d8bdc464ab121b1" 1204 | dependencies = [ 1205 | "js-sys", 1206 | "slotmap", 1207 | "wasm-bindgen", 1208 | "web-sys", 1209 | ] 1210 | 1211 | [[package]] 1212 | name = "glutin_wgl_sys" 1213 | version = "0.6.0" 1214 | source = "registry+https://github.com/rust-lang/crates.io-index" 1215 | checksum = "0a4e1951bbd9434a81aa496fe59ccc2235af3820d27b85f9314e279609211e2c" 1216 | dependencies = [ 1217 | "gl_generator", 1218 | ] 1219 | 1220 | [[package]] 1221 | name = "gpu-alloc" 1222 | version = "0.6.0" 1223 | source = "registry+https://github.com/rust-lang/crates.io-index" 1224 | checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" 1225 | dependencies = [ 1226 | "bitflags 2.6.0", 1227 | "gpu-alloc-types", 1228 | ] 1229 | 1230 | [[package]] 1231 | name = "gpu-alloc-types" 1232 | version = "0.3.0" 1233 | source = "registry+https://github.com/rust-lang/crates.io-index" 1234 | checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" 1235 | dependencies = [ 1236 | "bitflags 2.6.0", 1237 | ] 1238 | 1239 | [[package]] 1240 | name = "gpu-allocator" 1241 | version = "0.26.0" 1242 | source = "registry+https://github.com/rust-lang/crates.io-index" 1243 | checksum = "fdd4240fc91d3433d5e5b0fc5b67672d771850dc19bbee03c1381e19322803d7" 1244 | dependencies = [ 1245 | "log", 1246 | "presser", 1247 | "thiserror", 1248 | "winapi", 1249 | "windows", 1250 | ] 1251 | 1252 | [[package]] 1253 | name = "gpu-descriptor" 1254 | version = "0.3.0" 1255 | source = "registry+https://github.com/rust-lang/crates.io-index" 1256 | checksum = "9c08c1f623a8d0b722b8b99f821eb0ba672a1618f0d3b16ddbee1cedd2dd8557" 1257 | dependencies = [ 1258 | "bitflags 2.6.0", 1259 | "gpu-descriptor-types", 1260 | "hashbrown 0.14.5", 1261 | ] 1262 | 1263 | [[package]] 1264 | name = "gpu-descriptor-types" 1265 | version = "0.2.0" 1266 | source = "registry+https://github.com/rust-lang/crates.io-index" 1267 | checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" 1268 | dependencies = [ 1269 | "bitflags 2.6.0", 1270 | ] 1271 | 1272 | [[package]] 1273 | name = "grid" 1274 | version = "0.11.0" 1275 | source = "registry+https://github.com/rust-lang/crates.io-index" 1276 | checksum = "1df00eed8d1f0db937f6be10e46e8072b0671accb504cf0f959c5c52c679f5b9" 1277 | 1278 | [[package]] 1279 | name = "guillotiere" 1280 | version = "0.6.2" 1281 | source = "registry+https://github.com/rust-lang/crates.io-index" 1282 | checksum = "b62d5865c036cb1393e23c50693df631d3f5d7bcca4c04fe4cc0fd592e74a782" 1283 | dependencies = [ 1284 | "euclid", 1285 | "svg_fmt", 1286 | ] 1287 | 1288 | [[package]] 1289 | name = "half" 1290 | version = "2.4.1" 1291 | source = "registry+https://github.com/rust-lang/crates.io-index" 1292 | checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" 1293 | dependencies = [ 1294 | "cfg-if", 1295 | "crunchy", 1296 | ] 1297 | 1298 | [[package]] 1299 | name = "hashbrown" 1300 | version = "0.14.5" 1301 | source = "registry+https://github.com/rust-lang/crates.io-index" 1302 | checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 1303 | dependencies = [ 1304 | "ahash", 1305 | "allocator-api2", 1306 | ] 1307 | 1308 | [[package]] 1309 | name = "hashbrown" 1310 | version = "0.15.0" 1311 | source = "registry+https://github.com/rust-lang/crates.io-index" 1312 | checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" 1313 | 1314 | [[package]] 1315 | name = "hassle-rs" 1316 | version = "0.11.0" 1317 | source = "registry+https://github.com/rust-lang/crates.io-index" 1318 | checksum = "af2a7e73e1f34c48da31fb668a907f250794837e08faa144fd24f0b8b741e890" 1319 | dependencies = [ 1320 | "bitflags 2.6.0", 1321 | "com", 1322 | "libc", 1323 | "libloading", 1324 | "thiserror", 1325 | "widestring", 1326 | "winapi", 1327 | ] 1328 | 1329 | [[package]] 1330 | name = "heck" 1331 | version = "0.4.1" 1332 | source = "registry+https://github.com/rust-lang/crates.io-index" 1333 | checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 1334 | 1335 | [[package]] 1336 | name = "hermit-abi" 1337 | version = "0.3.9" 1338 | source = "registry+https://github.com/rust-lang/crates.io-index" 1339 | checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" 1340 | 1341 | [[package]] 1342 | name = "hermit-abi" 1343 | version = "0.4.0" 1344 | source = "registry+https://github.com/rust-lang/crates.io-index" 1345 | checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" 1346 | 1347 | [[package]] 1348 | name = "hexf-parse" 1349 | version = "0.2.1" 1350 | source = "registry+https://github.com/rust-lang/crates.io-index" 1351 | checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" 1352 | 1353 | [[package]] 1354 | name = "iana-time-zone" 1355 | version = "0.1.61" 1356 | source = "registry+https://github.com/rust-lang/crates.io-index" 1357 | checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" 1358 | dependencies = [ 1359 | "android_system_properties", 1360 | "core-foundation-sys", 1361 | "iana-time-zone-haiku", 1362 | "js-sys", 1363 | "wasm-bindgen", 1364 | "windows-core", 1365 | ] 1366 | 1367 | [[package]] 1368 | name = "iana-time-zone-haiku" 1369 | version = "0.1.2" 1370 | source = "registry+https://github.com/rust-lang/crates.io-index" 1371 | checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 1372 | dependencies = [ 1373 | "cc", 1374 | ] 1375 | 1376 | [[package]] 1377 | name = "iced" 1378 | version = "0.14.0-dev" 1379 | source = "git+https://github.com/pop-os/libcosmic.git#fde0516484750e0a7d2499e54964c5ed6ba8e16b" 1380 | dependencies = [ 1381 | "dnd", 1382 | "iced_core", 1383 | "iced_futures", 1384 | "iced_renderer", 1385 | "iced_widget", 1386 | "image", 1387 | "mime", 1388 | "thiserror", 1389 | "window_clipboard", 1390 | ] 1391 | 1392 | [[package]] 1393 | name = "iced_core" 1394 | version = "0.14.0-dev" 1395 | source = "git+https://github.com/pop-os/libcosmic.git#fde0516484750e0a7d2499e54964c5ed6ba8e16b" 1396 | dependencies = [ 1397 | "bitflags 2.6.0", 1398 | "bytes", 1399 | "dnd", 1400 | "glam", 1401 | "log", 1402 | "mime", 1403 | "num-traits", 1404 | "once_cell", 1405 | "palette", 1406 | "raw-window-handle", 1407 | "rustc-hash 2.0.0", 1408 | "serde", 1409 | "smol_str", 1410 | "thiserror", 1411 | "web-time", 1412 | "window_clipboard", 1413 | ] 1414 | 1415 | [[package]] 1416 | name = "iced_futures" 1417 | version = "0.14.0-dev" 1418 | source = "git+https://github.com/pop-os/libcosmic.git#fde0516484750e0a7d2499e54964c5ed6ba8e16b" 1419 | dependencies = [ 1420 | "futures", 1421 | "iced_core", 1422 | "log", 1423 | "rustc-hash 2.0.0", 1424 | "wasm-bindgen-futures", 1425 | "wasm-timer", 1426 | ] 1427 | 1428 | [[package]] 1429 | name = "iced_glyphon" 1430 | version = "0.6.0" 1431 | source = "git+https://github.com/pop-os/glyphon.git?tag=iced-0.14-dev#6ef9d12a20cfd0f7bdf38136a26ded9f7459ec8b" 1432 | dependencies = [ 1433 | "cosmic-text", 1434 | "etagere", 1435 | "lru", 1436 | "rustc-hash 2.0.0", 1437 | "wgpu", 1438 | ] 1439 | 1440 | [[package]] 1441 | name = "iced_graphics" 1442 | version = "0.14.0-dev" 1443 | source = "git+https://github.com/pop-os/libcosmic.git#fde0516484750e0a7d2499e54964c5ed6ba8e16b" 1444 | dependencies = [ 1445 | "bitflags 2.6.0", 1446 | "bytemuck", 1447 | "cosmic-text", 1448 | "half", 1449 | "iced_core", 1450 | "iced_futures", 1451 | "image", 1452 | "kamadak-exif", 1453 | "log", 1454 | "lyon_path", 1455 | "once_cell", 1456 | "raw-window-handle", 1457 | "rustc-hash 2.0.0", 1458 | "thiserror", 1459 | "unicode-segmentation", 1460 | ] 1461 | 1462 | [[package]] 1463 | name = "iced_renderer" 1464 | version = "0.14.0-dev" 1465 | source = "git+https://github.com/pop-os/libcosmic.git#fde0516484750e0a7d2499e54964c5ed6ba8e16b" 1466 | dependencies = [ 1467 | "iced_graphics", 1468 | "iced_tiny_skia", 1469 | "iced_wgpu", 1470 | "log", 1471 | "thiserror", 1472 | ] 1473 | 1474 | [[package]] 1475 | name = "iced_runtime" 1476 | version = "0.14.0-dev" 1477 | source = "git+https://github.com/pop-os/libcosmic.git#fde0516484750e0a7d2499e54964c5ed6ba8e16b" 1478 | dependencies = [ 1479 | "bytes", 1480 | "dnd", 1481 | "iced_core", 1482 | "iced_futures", 1483 | "raw-window-handle", 1484 | "thiserror", 1485 | "window_clipboard", 1486 | ] 1487 | 1488 | [[package]] 1489 | name = "iced_tiny_skia" 1490 | version = "0.14.0-dev" 1491 | source = "git+https://github.com/pop-os/libcosmic.git#fde0516484750e0a7d2499e54964c5ed6ba8e16b" 1492 | dependencies = [ 1493 | "bytemuck", 1494 | "cosmic-text", 1495 | "iced_graphics", 1496 | "kurbo 0.10.4", 1497 | "log", 1498 | "resvg", 1499 | "rustc-hash 2.0.0", 1500 | "softbuffer", 1501 | "tiny-skia", 1502 | ] 1503 | 1504 | [[package]] 1505 | name = "iced_wgpu" 1506 | version = "0.14.0-dev" 1507 | source = "git+https://github.com/pop-os/libcosmic.git#fde0516484750e0a7d2499e54964c5ed6ba8e16b" 1508 | dependencies = [ 1509 | "as-raw-xcb-connection", 1510 | "bitflags 2.6.0", 1511 | "bytemuck", 1512 | "futures", 1513 | "glam", 1514 | "guillotiere", 1515 | "iced_glyphon", 1516 | "iced_graphics", 1517 | "log", 1518 | "lyon", 1519 | "once_cell", 1520 | "raw-window-handle", 1521 | "resvg", 1522 | "rustc-hash 2.0.0", 1523 | "rustix", 1524 | "smithay-client-toolkit", 1525 | "thiserror", 1526 | "tiny-xlib", 1527 | "wayland-backend", 1528 | "wayland-client", 1529 | "wayland-protocols", 1530 | "wayland-sys", 1531 | "wgpu", 1532 | "x11rb", 1533 | ] 1534 | 1535 | [[package]] 1536 | name = "iced_widget" 1537 | version = "0.14.0-dev" 1538 | source = "git+https://github.com/pop-os/libcosmic.git#fde0516484750e0a7d2499e54964c5ed6ba8e16b" 1539 | dependencies = [ 1540 | "dnd", 1541 | "iced_renderer", 1542 | "iced_runtime", 1543 | "num-traits", 1544 | "once_cell", 1545 | "ouroboros", 1546 | "rustc-hash 2.0.0", 1547 | "thiserror", 1548 | "unicode-segmentation", 1549 | "window_clipboard", 1550 | ] 1551 | 1552 | [[package]] 1553 | name = "ident_case" 1554 | version = "1.0.1" 1555 | source = "registry+https://github.com/rust-lang/crates.io-index" 1556 | checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 1557 | 1558 | [[package]] 1559 | name = "idna" 1560 | version = "0.5.0" 1561 | source = "registry+https://github.com/rust-lang/crates.io-index" 1562 | checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" 1563 | dependencies = [ 1564 | "unicode-bidi", 1565 | "unicode-normalization", 1566 | ] 1567 | 1568 | [[package]] 1569 | name = "image" 1570 | version = "0.24.9" 1571 | source = "registry+https://github.com/rust-lang/crates.io-index" 1572 | checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d" 1573 | dependencies = [ 1574 | "bytemuck", 1575 | "byteorder", 1576 | "color_quant", 1577 | "exr", 1578 | "gif", 1579 | "jpeg-decoder", 1580 | "num-traits", 1581 | "png", 1582 | "qoi", 1583 | "tiff", 1584 | ] 1585 | 1586 | [[package]] 1587 | name = "imagesize" 1588 | version = "0.12.0" 1589 | source = "registry+https://github.com/rust-lang/crates.io-index" 1590 | checksum = "029d73f573d8e8d63e6d5020011d3255b28c3ba85d6cf870a07184ed23de9284" 1591 | 1592 | [[package]] 1593 | name = "indexmap" 1594 | version = "2.6.0" 1595 | source = "registry+https://github.com/rust-lang/crates.io-index" 1596 | checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" 1597 | dependencies = [ 1598 | "equivalent", 1599 | "hashbrown 0.15.0", 1600 | ] 1601 | 1602 | [[package]] 1603 | name = "inotify" 1604 | version = "0.9.6" 1605 | source = "registry+https://github.com/rust-lang/crates.io-index" 1606 | checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" 1607 | dependencies = [ 1608 | "bitflags 1.3.2", 1609 | "inotify-sys", 1610 | "libc", 1611 | ] 1612 | 1613 | [[package]] 1614 | name = "inotify-sys" 1615 | version = "0.1.5" 1616 | source = "registry+https://github.com/rust-lang/crates.io-index" 1617 | checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" 1618 | dependencies = [ 1619 | "libc", 1620 | ] 1621 | 1622 | [[package]] 1623 | name = "instant" 1624 | version = "0.1.13" 1625 | source = "registry+https://github.com/rust-lang/crates.io-index" 1626 | checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" 1627 | dependencies = [ 1628 | "cfg-if", 1629 | ] 1630 | 1631 | [[package]] 1632 | name = "itertools" 1633 | version = "0.12.1" 1634 | source = "registry+https://github.com/rust-lang/crates.io-index" 1635 | checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" 1636 | dependencies = [ 1637 | "either", 1638 | ] 1639 | 1640 | [[package]] 1641 | name = "itoa" 1642 | version = "1.0.11" 1643 | source = "registry+https://github.com/rust-lang/crates.io-index" 1644 | checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" 1645 | 1646 | [[package]] 1647 | name = "jni-sys" 1648 | version = "0.3.0" 1649 | source = "registry+https://github.com/rust-lang/crates.io-index" 1650 | checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" 1651 | 1652 | [[package]] 1653 | name = "jpeg-decoder" 1654 | version = "0.3.1" 1655 | source = "registry+https://github.com/rust-lang/crates.io-index" 1656 | checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" 1657 | dependencies = [ 1658 | "rayon", 1659 | ] 1660 | 1661 | [[package]] 1662 | name = "js-sys" 1663 | version = "0.3.72" 1664 | source = "registry+https://github.com/rust-lang/crates.io-index" 1665 | checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" 1666 | dependencies = [ 1667 | "wasm-bindgen", 1668 | ] 1669 | 1670 | [[package]] 1671 | name = "kamadak-exif" 1672 | version = "0.5.5" 1673 | source = "registry+https://github.com/rust-lang/crates.io-index" 1674 | checksum = "ef4fc70d0ab7e5b6bafa30216a6b48705ea964cdfc29c050f2412295eba58077" 1675 | dependencies = [ 1676 | "mutate_once", 1677 | ] 1678 | 1679 | [[package]] 1680 | name = "khronos-egl" 1681 | version = "6.0.0" 1682 | source = "registry+https://github.com/rust-lang/crates.io-index" 1683 | checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76" 1684 | dependencies = [ 1685 | "libc", 1686 | "libloading", 1687 | "pkg-config", 1688 | ] 1689 | 1690 | [[package]] 1691 | name = "khronos_api" 1692 | version = "3.1.0" 1693 | source = "registry+https://github.com/rust-lang/crates.io-index" 1694 | checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" 1695 | 1696 | [[package]] 1697 | name = "known-folders" 1698 | version = "1.2.0" 1699 | source = "registry+https://github.com/rust-lang/crates.io-index" 1700 | checksum = "b7d9a1740cc8b46e259a0eb787d79d855e79ff10b9855a5eba58868d5da7927c" 1701 | dependencies = [ 1702 | "windows-sys 0.59.0", 1703 | ] 1704 | 1705 | [[package]] 1706 | name = "kqueue" 1707 | version = "1.0.8" 1708 | source = "registry+https://github.com/rust-lang/crates.io-index" 1709 | checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" 1710 | dependencies = [ 1711 | "kqueue-sys", 1712 | "libc", 1713 | ] 1714 | 1715 | [[package]] 1716 | name = "kqueue-sys" 1717 | version = "1.0.4" 1718 | source = "registry+https://github.com/rust-lang/crates.io-index" 1719 | checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" 1720 | dependencies = [ 1721 | "bitflags 1.3.2", 1722 | "libc", 1723 | ] 1724 | 1725 | [[package]] 1726 | name = "kurbo" 1727 | version = "0.10.4" 1728 | source = "registry+https://github.com/rust-lang/crates.io-index" 1729 | checksum = "1618d4ebd923e97d67e7cd363d80aef35fe961005cbbbb3d2dad8bdd1bc63440" 1730 | dependencies = [ 1731 | "arrayvec", 1732 | "smallvec", 1733 | ] 1734 | 1735 | [[package]] 1736 | name = "kurbo" 1737 | version = "0.11.1" 1738 | source = "registry+https://github.com/rust-lang/crates.io-index" 1739 | checksum = "89234b2cc610a7dd927ebde6b41dd1a5d4214cffaef4cf1fb2195d592f92518f" 1740 | dependencies = [ 1741 | "arrayvec", 1742 | "smallvec", 1743 | ] 1744 | 1745 | [[package]] 1746 | name = "lazy_static" 1747 | version = "1.5.0" 1748 | source = "registry+https://github.com/rust-lang/crates.io-index" 1749 | checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 1750 | 1751 | [[package]] 1752 | name = "lebe" 1753 | version = "0.5.2" 1754 | source = "registry+https://github.com/rust-lang/crates.io-index" 1755 | checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" 1756 | 1757 | [[package]] 1758 | name = "libc" 1759 | version = "0.2.161" 1760 | source = "registry+https://github.com/rust-lang/crates.io-index" 1761 | checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" 1762 | 1763 | [[package]] 1764 | name = "libcosmic" 1765 | version = "0.1.0" 1766 | source = "git+https://github.com/pop-os/libcosmic.git#fde0516484750e0a7d2499e54964c5ed6ba8e16b" 1767 | dependencies = [ 1768 | "apply", 1769 | "chrono", 1770 | "cosmic-config", 1771 | "cosmic-theme", 1772 | "css-color", 1773 | "derive_setters", 1774 | "fraction", 1775 | "freedesktop-icons", 1776 | "iced", 1777 | "iced_core", 1778 | "iced_futures", 1779 | "iced_renderer", 1780 | "iced_runtime", 1781 | "iced_tiny_skia", 1782 | "iced_widget", 1783 | "lazy_static", 1784 | "palette", 1785 | "serde", 1786 | "slotmap", 1787 | "taffy", 1788 | "thiserror", 1789 | "tracing", 1790 | "unicode-segmentation", 1791 | "url", 1792 | "ustr", 1793 | ] 1794 | 1795 | [[package]] 1796 | name = "libloading" 1797 | version = "0.8.5" 1798 | source = "registry+https://github.com/rust-lang/crates.io-index" 1799 | checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" 1800 | dependencies = [ 1801 | "cfg-if", 1802 | "windows-targets 0.52.6", 1803 | ] 1804 | 1805 | [[package]] 1806 | name = "libm" 1807 | version = "0.2.8" 1808 | source = "registry+https://github.com/rust-lang/crates.io-index" 1809 | checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" 1810 | 1811 | [[package]] 1812 | name = "libredox" 1813 | version = "0.1.3" 1814 | source = "registry+https://github.com/rust-lang/crates.io-index" 1815 | checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" 1816 | dependencies = [ 1817 | "bitflags 2.6.0", 1818 | "libc", 1819 | "redox_syscall 0.5.7", 1820 | ] 1821 | 1822 | [[package]] 1823 | name = "linux-raw-sys" 1824 | version = "0.4.14" 1825 | source = "registry+https://github.com/rust-lang/crates.io-index" 1826 | checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" 1827 | 1828 | [[package]] 1829 | name = "linux-raw-sys" 1830 | version = "0.6.5" 1831 | source = "registry+https://github.com/rust-lang/crates.io-index" 1832 | checksum = "2a385b1be4e5c3e362ad2ffa73c392e53f031eaa5b7d648e64cd87f27f6063d7" 1833 | 1834 | [[package]] 1835 | name = "litrs" 1836 | version = "0.4.1" 1837 | source = "registry+https://github.com/rust-lang/crates.io-index" 1838 | checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" 1839 | 1840 | [[package]] 1841 | name = "lock_api" 1842 | version = "0.4.12" 1843 | source = "registry+https://github.com/rust-lang/crates.io-index" 1844 | checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" 1845 | dependencies = [ 1846 | "autocfg", 1847 | "scopeguard", 1848 | ] 1849 | 1850 | [[package]] 1851 | name = "log" 1852 | version = "0.4.22" 1853 | source = "registry+https://github.com/rust-lang/crates.io-index" 1854 | checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" 1855 | 1856 | [[package]] 1857 | name = "lru" 1858 | version = "0.12.5" 1859 | source = "registry+https://github.com/rust-lang/crates.io-index" 1860 | checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" 1861 | 1862 | [[package]] 1863 | name = "lyon" 1864 | version = "1.0.1" 1865 | source = "registry+https://github.com/rust-lang/crates.io-index" 1866 | checksum = "91e7f9cda98b5430809e63ca5197b06c7d191bf7e26dfc467d5a3f0290e2a74f" 1867 | dependencies = [ 1868 | "lyon_algorithms", 1869 | "lyon_tessellation", 1870 | ] 1871 | 1872 | [[package]] 1873 | name = "lyon_algorithms" 1874 | version = "1.0.4" 1875 | source = "registry+https://github.com/rust-lang/crates.io-index" 1876 | checksum = "a3bca95f9a4955b3e4a821fbbcd5edfbd9be2a9a50bb5758173e5358bfb4c623" 1877 | dependencies = [ 1878 | "lyon_path", 1879 | "num-traits", 1880 | ] 1881 | 1882 | [[package]] 1883 | name = "lyon_geom" 1884 | version = "1.0.6" 1885 | source = "registry+https://github.com/rust-lang/crates.io-index" 1886 | checksum = "8af69edc087272df438b3ee436c4bb6d7c04aa8af665cfd398feae627dbd8570" 1887 | dependencies = [ 1888 | "arrayvec", 1889 | "euclid", 1890 | "num-traits", 1891 | ] 1892 | 1893 | [[package]] 1894 | name = "lyon_path" 1895 | version = "1.0.6" 1896 | source = "registry+https://github.com/rust-lang/crates.io-index" 1897 | checksum = "8e0b8aec2f58586f6eef237985b9a9b7cb3a3aff4417c575075cf95bf925252e" 1898 | dependencies = [ 1899 | "lyon_geom", 1900 | "num-traits", 1901 | ] 1902 | 1903 | [[package]] 1904 | name = "lyon_tessellation" 1905 | version = "1.0.15" 1906 | source = "registry+https://github.com/rust-lang/crates.io-index" 1907 | checksum = "579d42360a4b09846eff2feef28f538696c7d6c7439bfa65874ff3cbe0951b2c" 1908 | dependencies = [ 1909 | "float_next_after", 1910 | "lyon_path", 1911 | "num-traits", 1912 | ] 1913 | 1914 | [[package]] 1915 | name = "malloc_buf" 1916 | version = "0.0.6" 1917 | source = "registry+https://github.com/rust-lang/crates.io-index" 1918 | checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" 1919 | dependencies = [ 1920 | "libc", 1921 | ] 1922 | 1923 | [[package]] 1924 | name = "memchr" 1925 | version = "2.7.4" 1926 | source = "registry+https://github.com/rust-lang/crates.io-index" 1927 | checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" 1928 | 1929 | [[package]] 1930 | name = "memmap2" 1931 | version = "0.8.0" 1932 | source = "registry+https://github.com/rust-lang/crates.io-index" 1933 | checksum = "43a5a03cefb0d953ec0be133036f14e109412fa594edc2f77227249db66cc3ed" 1934 | dependencies = [ 1935 | "libc", 1936 | ] 1937 | 1938 | [[package]] 1939 | name = "memmap2" 1940 | version = "0.9.5" 1941 | source = "registry+https://github.com/rust-lang/crates.io-index" 1942 | checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" 1943 | dependencies = [ 1944 | "libc", 1945 | ] 1946 | 1947 | [[package]] 1948 | name = "metal" 1949 | version = "0.29.0" 1950 | source = "registry+https://github.com/rust-lang/crates.io-index" 1951 | checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21" 1952 | dependencies = [ 1953 | "bitflags 2.6.0", 1954 | "block", 1955 | "core-graphics-types", 1956 | "foreign-types", 1957 | "log", 1958 | "objc", 1959 | "paste", 1960 | ] 1961 | 1962 | [[package]] 1963 | name = "mime" 1964 | version = "0.1.0" 1965 | source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13#a83bf83784276aaa882ef13555295a2ad9edd265" 1966 | dependencies = [ 1967 | "smithay-clipboard", 1968 | ] 1969 | 1970 | [[package]] 1971 | name = "miniz_oxide" 1972 | version = "0.7.4" 1973 | source = "registry+https://github.com/rust-lang/crates.io-index" 1974 | checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" 1975 | dependencies = [ 1976 | "adler", 1977 | ] 1978 | 1979 | [[package]] 1980 | name = "miniz_oxide" 1981 | version = "0.8.0" 1982 | source = "registry+https://github.com/rust-lang/crates.io-index" 1983 | checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" 1984 | dependencies = [ 1985 | "adler2", 1986 | "simd-adler32", 1987 | ] 1988 | 1989 | [[package]] 1990 | name = "mio" 1991 | version = "0.8.11" 1992 | source = "registry+https://github.com/rust-lang/crates.io-index" 1993 | checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" 1994 | dependencies = [ 1995 | "libc", 1996 | "log", 1997 | "wasi", 1998 | "windows-sys 0.48.0", 1999 | ] 2000 | 2001 | [[package]] 2002 | name = "mutate_once" 2003 | version = "0.1.1" 2004 | source = "registry+https://github.com/rust-lang/crates.io-index" 2005 | checksum = "16cf681a23b4d0a43fc35024c176437f9dcd818db34e0f42ab456a0ee5ad497b" 2006 | 2007 | [[package]] 2008 | name = "naga" 2009 | version = "22.1.0" 2010 | source = "registry+https://github.com/rust-lang/crates.io-index" 2011 | checksum = "8bd5a652b6faf21496f2cfd88fc49989c8db0825d1f6746b1a71a6ede24a63ad" 2012 | dependencies = [ 2013 | "arrayvec", 2014 | "bit-set", 2015 | "bitflags 2.6.0", 2016 | "cfg_aliases 0.1.1", 2017 | "codespan-reporting", 2018 | "hexf-parse", 2019 | "indexmap", 2020 | "log", 2021 | "rustc-hash 1.1.0", 2022 | "spirv", 2023 | "termcolor", 2024 | "thiserror", 2025 | "unicode-xid", 2026 | ] 2027 | 2028 | [[package]] 2029 | name = "ndk-sys" 2030 | version = "0.5.0+25.2.9519653" 2031 | source = "registry+https://github.com/rust-lang/crates.io-index" 2032 | checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691" 2033 | dependencies = [ 2034 | "jni-sys", 2035 | ] 2036 | 2037 | [[package]] 2038 | name = "notify" 2039 | version = "6.1.1" 2040 | source = "registry+https://github.com/rust-lang/crates.io-index" 2041 | checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" 2042 | dependencies = [ 2043 | "bitflags 2.6.0", 2044 | "crossbeam-channel", 2045 | "filetime", 2046 | "fsevent-sys", 2047 | "inotify", 2048 | "kqueue", 2049 | "libc", 2050 | "log", 2051 | "mio", 2052 | "walkdir", 2053 | "windows-sys 0.48.0", 2054 | ] 2055 | 2056 | [[package]] 2057 | name = "num" 2058 | version = "0.4.3" 2059 | source = "registry+https://github.com/rust-lang/crates.io-index" 2060 | checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" 2061 | dependencies = [ 2062 | "num-bigint", 2063 | "num-complex", 2064 | "num-integer", 2065 | "num-iter", 2066 | "num-rational", 2067 | "num-traits", 2068 | ] 2069 | 2070 | [[package]] 2071 | name = "num-bigint" 2072 | version = "0.4.6" 2073 | source = "registry+https://github.com/rust-lang/crates.io-index" 2074 | checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" 2075 | dependencies = [ 2076 | "num-integer", 2077 | "num-traits", 2078 | ] 2079 | 2080 | [[package]] 2081 | name = "num-complex" 2082 | version = "0.4.6" 2083 | source = "registry+https://github.com/rust-lang/crates.io-index" 2084 | checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" 2085 | dependencies = [ 2086 | "num-traits", 2087 | ] 2088 | 2089 | [[package]] 2090 | name = "num-integer" 2091 | version = "0.1.46" 2092 | source = "registry+https://github.com/rust-lang/crates.io-index" 2093 | checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" 2094 | dependencies = [ 2095 | "num-traits", 2096 | ] 2097 | 2098 | [[package]] 2099 | name = "num-iter" 2100 | version = "0.1.45" 2101 | source = "registry+https://github.com/rust-lang/crates.io-index" 2102 | checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" 2103 | dependencies = [ 2104 | "autocfg", 2105 | "num-integer", 2106 | "num-traits", 2107 | ] 2108 | 2109 | [[package]] 2110 | name = "num-rational" 2111 | version = "0.4.2" 2112 | source = "registry+https://github.com/rust-lang/crates.io-index" 2113 | checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" 2114 | dependencies = [ 2115 | "num-bigint", 2116 | "num-integer", 2117 | "num-traits", 2118 | ] 2119 | 2120 | [[package]] 2121 | name = "num-traits" 2122 | version = "0.2.19" 2123 | source = "registry+https://github.com/rust-lang/crates.io-index" 2124 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 2125 | dependencies = [ 2126 | "autocfg", 2127 | "libm", 2128 | ] 2129 | 2130 | [[package]] 2131 | name = "num_cpus" 2132 | version = "1.16.0" 2133 | source = "registry+https://github.com/rust-lang/crates.io-index" 2134 | checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" 2135 | dependencies = [ 2136 | "hermit-abi 0.3.9", 2137 | "libc", 2138 | ] 2139 | 2140 | [[package]] 2141 | name = "objc" 2142 | version = "0.2.7" 2143 | source = "registry+https://github.com/rust-lang/crates.io-index" 2144 | checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" 2145 | dependencies = [ 2146 | "malloc_buf", 2147 | ] 2148 | 2149 | [[package]] 2150 | name = "objc-foundation" 2151 | version = "0.1.1" 2152 | source = "registry+https://github.com/rust-lang/crates.io-index" 2153 | checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" 2154 | dependencies = [ 2155 | "block", 2156 | "objc", 2157 | "objc_id", 2158 | ] 2159 | 2160 | [[package]] 2161 | name = "objc_id" 2162 | version = "0.1.1" 2163 | source = "registry+https://github.com/rust-lang/crates.io-index" 2164 | checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" 2165 | dependencies = [ 2166 | "objc", 2167 | ] 2168 | 2169 | [[package]] 2170 | name = "once_cell" 2171 | version = "1.20.2" 2172 | source = "registry+https://github.com/rust-lang/crates.io-index" 2173 | checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" 2174 | 2175 | [[package]] 2176 | name = "option-ext" 2177 | version = "0.2.0" 2178 | source = "registry+https://github.com/rust-lang/crates.io-index" 2179 | checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" 2180 | 2181 | [[package]] 2182 | name = "ordered-multimap" 2183 | version = "0.7.3" 2184 | source = "registry+https://github.com/rust-lang/crates.io-index" 2185 | checksum = "49203cdcae0030493bad186b28da2fa25645fa276a51b6fec8010d281e02ef79" 2186 | dependencies = [ 2187 | "dlv-list", 2188 | "hashbrown 0.14.5", 2189 | ] 2190 | 2191 | [[package]] 2192 | name = "ouroboros" 2193 | version = "0.18.4" 2194 | source = "registry+https://github.com/rust-lang/crates.io-index" 2195 | checksum = "944fa20996a25aded6b4795c6d63f10014a7a83f8be9828a11860b08c5fc4a67" 2196 | dependencies = [ 2197 | "aliasable", 2198 | "ouroboros_macro", 2199 | "static_assertions", 2200 | ] 2201 | 2202 | [[package]] 2203 | name = "ouroboros_macro" 2204 | version = "0.18.4" 2205 | source = "registry+https://github.com/rust-lang/crates.io-index" 2206 | checksum = "39b0deead1528fd0e5947a8546a9642a9777c25f6e1e26f34c97b204bbb465bd" 2207 | dependencies = [ 2208 | "heck", 2209 | "itertools", 2210 | "proc-macro2", 2211 | "proc-macro2-diagnostics", 2212 | "quote", 2213 | "syn 2.0.85", 2214 | ] 2215 | 2216 | [[package]] 2217 | name = "palette" 2218 | version = "0.7.6" 2219 | source = "registry+https://github.com/rust-lang/crates.io-index" 2220 | checksum = "4cbf71184cc5ecc2e4e1baccdb21026c20e5fc3dcf63028a086131b3ab00b6e6" 2221 | dependencies = [ 2222 | "approx", 2223 | "fast-srgb8", 2224 | "palette_derive", 2225 | "phf", 2226 | "serde", 2227 | ] 2228 | 2229 | [[package]] 2230 | name = "palette_derive" 2231 | version = "0.7.6" 2232 | source = "registry+https://github.com/rust-lang/crates.io-index" 2233 | checksum = "f5030daf005bface118c096f510ffb781fc28f9ab6a32ab224d8631be6851d30" 2234 | dependencies = [ 2235 | "by_address", 2236 | "proc-macro2", 2237 | "quote", 2238 | "syn 2.0.85", 2239 | ] 2240 | 2241 | [[package]] 2242 | name = "parking_lot" 2243 | version = "0.11.2" 2244 | source = "registry+https://github.com/rust-lang/crates.io-index" 2245 | checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" 2246 | dependencies = [ 2247 | "instant", 2248 | "lock_api", 2249 | "parking_lot_core 0.8.6", 2250 | ] 2251 | 2252 | [[package]] 2253 | name = "parking_lot" 2254 | version = "0.12.3" 2255 | source = "registry+https://github.com/rust-lang/crates.io-index" 2256 | checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" 2257 | dependencies = [ 2258 | "lock_api", 2259 | "parking_lot_core 0.9.10", 2260 | ] 2261 | 2262 | [[package]] 2263 | name = "parking_lot_core" 2264 | version = "0.8.6" 2265 | source = "registry+https://github.com/rust-lang/crates.io-index" 2266 | checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" 2267 | dependencies = [ 2268 | "cfg-if", 2269 | "instant", 2270 | "libc", 2271 | "redox_syscall 0.2.16", 2272 | "smallvec", 2273 | "winapi", 2274 | ] 2275 | 2276 | [[package]] 2277 | name = "parking_lot_core" 2278 | version = "0.9.10" 2279 | source = "registry+https://github.com/rust-lang/crates.io-index" 2280 | checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" 2281 | dependencies = [ 2282 | "cfg-if", 2283 | "libc", 2284 | "redox_syscall 0.5.7", 2285 | "smallvec", 2286 | "windows-targets 0.52.6", 2287 | ] 2288 | 2289 | [[package]] 2290 | name = "paste" 2291 | version = "1.0.15" 2292 | source = "registry+https://github.com/rust-lang/crates.io-index" 2293 | checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 2294 | 2295 | [[package]] 2296 | name = "percent-encoding" 2297 | version = "2.3.1" 2298 | source = "registry+https://github.com/rust-lang/crates.io-index" 2299 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 2300 | 2301 | [[package]] 2302 | name = "phf" 2303 | version = "0.11.2" 2304 | source = "registry+https://github.com/rust-lang/crates.io-index" 2305 | checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" 2306 | dependencies = [ 2307 | "phf_macros", 2308 | "phf_shared", 2309 | ] 2310 | 2311 | [[package]] 2312 | name = "phf_generator" 2313 | version = "0.11.2" 2314 | source = "registry+https://github.com/rust-lang/crates.io-index" 2315 | checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" 2316 | dependencies = [ 2317 | "phf_shared", 2318 | "rand", 2319 | ] 2320 | 2321 | [[package]] 2322 | name = "phf_macros" 2323 | version = "0.11.2" 2324 | source = "registry+https://github.com/rust-lang/crates.io-index" 2325 | checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" 2326 | dependencies = [ 2327 | "phf_generator", 2328 | "phf_shared", 2329 | "proc-macro2", 2330 | "quote", 2331 | "syn 2.0.85", 2332 | ] 2333 | 2334 | [[package]] 2335 | name = "phf_shared" 2336 | version = "0.11.2" 2337 | source = "registry+https://github.com/rust-lang/crates.io-index" 2338 | checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" 2339 | dependencies = [ 2340 | "siphasher 0.3.11", 2341 | ] 2342 | 2343 | [[package]] 2344 | name = "pico-args" 2345 | version = "0.5.0" 2346 | source = "registry+https://github.com/rust-lang/crates.io-index" 2347 | checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" 2348 | 2349 | [[package]] 2350 | name = "pin-project-lite" 2351 | version = "0.2.15" 2352 | source = "registry+https://github.com/rust-lang/crates.io-index" 2353 | checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" 2354 | 2355 | [[package]] 2356 | name = "pin-utils" 2357 | version = "0.1.0" 2358 | source = "registry+https://github.com/rust-lang/crates.io-index" 2359 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 2360 | 2361 | [[package]] 2362 | name = "pkg-config" 2363 | version = "0.3.31" 2364 | source = "registry+https://github.com/rust-lang/crates.io-index" 2365 | checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" 2366 | 2367 | [[package]] 2368 | name = "png" 2369 | version = "0.17.14" 2370 | source = "registry+https://github.com/rust-lang/crates.io-index" 2371 | checksum = "52f9d46a34a05a6a57566bc2bfae066ef07585a6e3fa30fbbdff5936380623f0" 2372 | dependencies = [ 2373 | "bitflags 1.3.2", 2374 | "crc32fast", 2375 | "fdeflate", 2376 | "flate2", 2377 | "miniz_oxide 0.8.0", 2378 | ] 2379 | 2380 | [[package]] 2381 | name = "polling" 2382 | version = "3.7.3" 2383 | source = "registry+https://github.com/rust-lang/crates.io-index" 2384 | checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511" 2385 | dependencies = [ 2386 | "cfg-if", 2387 | "concurrent-queue", 2388 | "hermit-abi 0.4.0", 2389 | "pin-project-lite", 2390 | "rustix", 2391 | "tracing", 2392 | "windows-sys 0.59.0", 2393 | ] 2394 | 2395 | [[package]] 2396 | name = "presser" 2397 | version = "0.3.1" 2398 | source = "registry+https://github.com/rust-lang/crates.io-index" 2399 | checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa" 2400 | 2401 | [[package]] 2402 | name = "proc-macro2" 2403 | version = "1.0.89" 2404 | source = "registry+https://github.com/rust-lang/crates.io-index" 2405 | checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" 2406 | dependencies = [ 2407 | "unicode-ident", 2408 | ] 2409 | 2410 | [[package]] 2411 | name = "proc-macro2-diagnostics" 2412 | version = "0.10.1" 2413 | source = "registry+https://github.com/rust-lang/crates.io-index" 2414 | checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" 2415 | dependencies = [ 2416 | "proc-macro2", 2417 | "quote", 2418 | "syn 2.0.85", 2419 | "version_check", 2420 | "yansi", 2421 | ] 2422 | 2423 | [[package]] 2424 | name = "profiling" 2425 | version = "1.0.16" 2426 | source = "registry+https://github.com/rust-lang/crates.io-index" 2427 | checksum = "afbdc74edc00b6f6a218ca6a5364d6226a259d4b8ea1af4a0ea063f27e179f4d" 2428 | 2429 | [[package]] 2430 | name = "qoi" 2431 | version = "0.4.1" 2432 | source = "registry+https://github.com/rust-lang/crates.io-index" 2433 | checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001" 2434 | dependencies = [ 2435 | "bytemuck", 2436 | ] 2437 | 2438 | [[package]] 2439 | name = "quick-xml" 2440 | version = "0.36.2" 2441 | source = "registry+https://github.com/rust-lang/crates.io-index" 2442 | checksum = "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe" 2443 | dependencies = [ 2444 | "memchr", 2445 | ] 2446 | 2447 | [[package]] 2448 | name = "quote" 2449 | version = "1.0.37" 2450 | source = "registry+https://github.com/rust-lang/crates.io-index" 2451 | checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" 2452 | dependencies = [ 2453 | "proc-macro2", 2454 | ] 2455 | 2456 | [[package]] 2457 | name = "rand" 2458 | version = "0.8.5" 2459 | source = "registry+https://github.com/rust-lang/crates.io-index" 2460 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 2461 | dependencies = [ 2462 | "rand_core", 2463 | ] 2464 | 2465 | [[package]] 2466 | name = "rand_core" 2467 | version = "0.6.4" 2468 | source = "registry+https://github.com/rust-lang/crates.io-index" 2469 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 2470 | 2471 | [[package]] 2472 | name = "range-alloc" 2473 | version = "0.1.3" 2474 | source = "registry+https://github.com/rust-lang/crates.io-index" 2475 | checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab" 2476 | 2477 | [[package]] 2478 | name = "rangemap" 2479 | version = "1.5.1" 2480 | source = "registry+https://github.com/rust-lang/crates.io-index" 2481 | checksum = "f60fcc7d6849342eff22c4350c8b9a989ee8ceabc4b481253e8946b9fe83d684" 2482 | 2483 | [[package]] 2484 | name = "raw-window-handle" 2485 | version = "0.6.2" 2486 | source = "registry+https://github.com/rust-lang/crates.io-index" 2487 | checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" 2488 | 2489 | [[package]] 2490 | name = "rayon" 2491 | version = "1.10.0" 2492 | source = "registry+https://github.com/rust-lang/crates.io-index" 2493 | checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" 2494 | dependencies = [ 2495 | "either", 2496 | "rayon-core", 2497 | ] 2498 | 2499 | [[package]] 2500 | name = "rayon-core" 2501 | version = "1.12.1" 2502 | source = "registry+https://github.com/rust-lang/crates.io-index" 2503 | checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" 2504 | dependencies = [ 2505 | "crossbeam-deque", 2506 | "crossbeam-utils", 2507 | ] 2508 | 2509 | [[package]] 2510 | name = "read-fonts" 2511 | version = "0.22.5" 2512 | source = "registry+https://github.com/rust-lang/crates.io-index" 2513 | checksum = "4a04b892cb6f91951f144c33321843790c8574c825aafdb16d815fd7183b5229" 2514 | dependencies = [ 2515 | "bytemuck", 2516 | "font-types", 2517 | ] 2518 | 2519 | [[package]] 2520 | name = "redox_syscall" 2521 | version = "0.2.16" 2522 | source = "registry+https://github.com/rust-lang/crates.io-index" 2523 | checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" 2524 | dependencies = [ 2525 | "bitflags 1.3.2", 2526 | ] 2527 | 2528 | [[package]] 2529 | name = "redox_syscall" 2530 | version = "0.4.1" 2531 | source = "registry+https://github.com/rust-lang/crates.io-index" 2532 | checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" 2533 | dependencies = [ 2534 | "bitflags 1.3.2", 2535 | ] 2536 | 2537 | [[package]] 2538 | name = "redox_syscall" 2539 | version = "0.5.7" 2540 | source = "registry+https://github.com/rust-lang/crates.io-index" 2541 | checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" 2542 | dependencies = [ 2543 | "bitflags 2.6.0", 2544 | ] 2545 | 2546 | [[package]] 2547 | name = "redox_users" 2548 | version = "0.4.6" 2549 | source = "registry+https://github.com/rust-lang/crates.io-index" 2550 | checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" 2551 | dependencies = [ 2552 | "getrandom", 2553 | "libredox", 2554 | "thiserror", 2555 | ] 2556 | 2557 | [[package]] 2558 | name = "renderdoc-sys" 2559 | version = "1.1.0" 2560 | source = "registry+https://github.com/rust-lang/crates.io-index" 2561 | checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" 2562 | 2563 | [[package]] 2564 | name = "resvg" 2565 | version = "0.42.0" 2566 | source = "registry+https://github.com/rust-lang/crates.io-index" 2567 | checksum = "944d052815156ac8fa77eaac055220e95ba0b01fa8887108ca710c03805d9051" 2568 | dependencies = [ 2569 | "gif", 2570 | "jpeg-decoder", 2571 | "log", 2572 | "pico-args", 2573 | "rgb", 2574 | "svgtypes", 2575 | "tiny-skia", 2576 | "usvg", 2577 | ] 2578 | 2579 | [[package]] 2580 | name = "rgb" 2581 | version = "0.8.50" 2582 | source = "registry+https://github.com/rust-lang/crates.io-index" 2583 | checksum = "57397d16646700483b67d2dd6511d79318f9d057fdbd21a4066aeac8b41d310a" 2584 | dependencies = [ 2585 | "bytemuck", 2586 | ] 2587 | 2588 | [[package]] 2589 | name = "ron" 2590 | version = "0.8.1" 2591 | source = "registry+https://github.com/rust-lang/crates.io-index" 2592 | checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" 2593 | dependencies = [ 2594 | "base64 0.21.7", 2595 | "bitflags 2.6.0", 2596 | "serde", 2597 | "serde_derive", 2598 | ] 2599 | 2600 | [[package]] 2601 | name = "roxmltree" 2602 | version = "0.20.0" 2603 | source = "registry+https://github.com/rust-lang/crates.io-index" 2604 | checksum = "6c20b6793b5c2fa6553b250154b78d6d0db37e72700ae35fad9387a46f487c97" 2605 | 2606 | [[package]] 2607 | name = "rust-ini" 2608 | version = "0.20.0" 2609 | source = "registry+https://github.com/rust-lang/crates.io-index" 2610 | checksum = "3e0698206bcb8882bf2a9ecb4c1e7785db57ff052297085a6efd4fe42302068a" 2611 | dependencies = [ 2612 | "cfg-if", 2613 | "ordered-multimap", 2614 | ] 2615 | 2616 | [[package]] 2617 | name = "rustc-hash" 2618 | version = "1.1.0" 2619 | source = "registry+https://github.com/rust-lang/crates.io-index" 2620 | checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" 2621 | 2622 | [[package]] 2623 | name = "rustc-hash" 2624 | version = "2.0.0" 2625 | source = "registry+https://github.com/rust-lang/crates.io-index" 2626 | checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" 2627 | 2628 | [[package]] 2629 | name = "rustix" 2630 | version = "0.38.37" 2631 | source = "registry+https://github.com/rust-lang/crates.io-index" 2632 | checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" 2633 | dependencies = [ 2634 | "bitflags 2.6.0", 2635 | "errno", 2636 | "libc", 2637 | "linux-raw-sys 0.4.14", 2638 | "windows-sys 0.52.0", 2639 | ] 2640 | 2641 | [[package]] 2642 | name = "rustybuzz" 2643 | version = "0.14.1" 2644 | source = "registry+https://github.com/rust-lang/crates.io-index" 2645 | checksum = "cfb9cf8877777222e4a3bc7eb247e398b56baba500c38c1c46842431adc8b55c" 2646 | dependencies = [ 2647 | "bitflags 2.6.0", 2648 | "bytemuck", 2649 | "libm", 2650 | "smallvec", 2651 | "ttf-parser 0.21.1", 2652 | "unicode-bidi-mirroring", 2653 | "unicode-ccc", 2654 | "unicode-properties", 2655 | "unicode-script", 2656 | ] 2657 | 2658 | [[package]] 2659 | name = "ryu" 2660 | version = "1.0.18" 2661 | source = "registry+https://github.com/rust-lang/crates.io-index" 2662 | checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" 2663 | 2664 | [[package]] 2665 | name = "same-file" 2666 | version = "1.0.6" 2667 | source = "registry+https://github.com/rust-lang/crates.io-index" 2668 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 2669 | dependencies = [ 2670 | "winapi-util", 2671 | ] 2672 | 2673 | [[package]] 2674 | name = "scoped-tls" 2675 | version = "1.0.1" 2676 | source = "registry+https://github.com/rust-lang/crates.io-index" 2677 | checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" 2678 | 2679 | [[package]] 2680 | name = "scopeguard" 2681 | version = "1.2.0" 2682 | source = "registry+https://github.com/rust-lang/crates.io-index" 2683 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 2684 | 2685 | [[package]] 2686 | name = "self_cell" 2687 | version = "1.0.4" 2688 | source = "registry+https://github.com/rust-lang/crates.io-index" 2689 | checksum = "d369a96f978623eb3dc28807c4852d6cc617fed53da5d3c400feff1ef34a714a" 2690 | 2691 | [[package]] 2692 | name = "serde" 2693 | version = "1.0.213" 2694 | source = "registry+https://github.com/rust-lang/crates.io-index" 2695 | checksum = "3ea7893ff5e2466df8d720bb615088341b295f849602c6956047f8f80f0e9bc1" 2696 | dependencies = [ 2697 | "serde_derive", 2698 | ] 2699 | 2700 | [[package]] 2701 | name = "serde_derive" 2702 | version = "1.0.213" 2703 | source = "registry+https://github.com/rust-lang/crates.io-index" 2704 | checksum = "7e85ad2009c50b58e87caa8cd6dac16bdf511bbfb7af6c33df902396aa480fa5" 2705 | dependencies = [ 2706 | "proc-macro2", 2707 | "quote", 2708 | "syn 2.0.85", 2709 | ] 2710 | 2711 | [[package]] 2712 | name = "serde_json" 2713 | version = "1.0.132" 2714 | source = "registry+https://github.com/rust-lang/crates.io-index" 2715 | checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" 2716 | dependencies = [ 2717 | "indexmap", 2718 | "itoa", 2719 | "memchr", 2720 | "ryu", 2721 | "serde", 2722 | ] 2723 | 2724 | [[package]] 2725 | name = "shlex" 2726 | version = "1.3.0" 2727 | source = "registry+https://github.com/rust-lang/crates.io-index" 2728 | checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 2729 | 2730 | [[package]] 2731 | name = "simd-adler32" 2732 | version = "0.3.7" 2733 | source = "registry+https://github.com/rust-lang/crates.io-index" 2734 | checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" 2735 | 2736 | [[package]] 2737 | name = "simplecss" 2738 | version = "0.2.1" 2739 | source = "registry+https://github.com/rust-lang/crates.io-index" 2740 | checksum = "a11be7c62927d9427e9f40f3444d5499d868648e2edbc4e2116de69e7ec0e89d" 2741 | dependencies = [ 2742 | "log", 2743 | ] 2744 | 2745 | [[package]] 2746 | name = "siphasher" 2747 | version = "0.3.11" 2748 | source = "registry+https://github.com/rust-lang/crates.io-index" 2749 | checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" 2750 | 2751 | [[package]] 2752 | name = "siphasher" 2753 | version = "1.0.1" 2754 | source = "registry+https://github.com/rust-lang/crates.io-index" 2755 | checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" 2756 | 2757 | [[package]] 2758 | name = "skrifa" 2759 | version = "0.22.3" 2760 | source = "registry+https://github.com/rust-lang/crates.io-index" 2761 | checksum = "8e1c44ad1f6c5bdd4eefed8326711b7dbda9ea45dfd36068c427d332aa382cbe" 2762 | dependencies = [ 2763 | "bytemuck", 2764 | "read-fonts", 2765 | ] 2766 | 2767 | [[package]] 2768 | name = "slab" 2769 | version = "0.4.9" 2770 | source = "registry+https://github.com/rust-lang/crates.io-index" 2771 | checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 2772 | dependencies = [ 2773 | "autocfg", 2774 | ] 2775 | 2776 | [[package]] 2777 | name = "slotmap" 2778 | version = "1.0.7" 2779 | source = "registry+https://github.com/rust-lang/crates.io-index" 2780 | checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" 2781 | dependencies = [ 2782 | "version_check", 2783 | ] 2784 | 2785 | [[package]] 2786 | name = "smallvec" 2787 | version = "1.13.2" 2788 | source = "registry+https://github.com/rust-lang/crates.io-index" 2789 | checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" 2790 | 2791 | [[package]] 2792 | name = "smithay-client-toolkit" 2793 | version = "0.19.2" 2794 | source = "registry+https://github.com/rust-lang/crates.io-index" 2795 | checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016" 2796 | dependencies = [ 2797 | "bitflags 2.6.0", 2798 | "bytemuck", 2799 | "calloop 0.13.0", 2800 | "calloop-wayland-source", 2801 | "cursor-icon", 2802 | "libc", 2803 | "log", 2804 | "memmap2 0.9.5", 2805 | "pkg-config", 2806 | "rustix", 2807 | "thiserror", 2808 | "wayland-backend", 2809 | "wayland-client", 2810 | "wayland-csd-frame", 2811 | "wayland-cursor", 2812 | "wayland-protocols", 2813 | "wayland-protocols-wlr", 2814 | "wayland-scanner", 2815 | "xkbcommon", 2816 | "xkeysym", 2817 | ] 2818 | 2819 | [[package]] 2820 | name = "smithay-clipboard" 2821 | version = "0.8.0" 2822 | source = "git+https://github.com/pop-os/smithay-clipboard?tag=pop-dnd-5#5a3007def49eb678d1144850c9ee04b80707c56a" 2823 | dependencies = [ 2824 | "libc", 2825 | "raw-window-handle", 2826 | "smithay-client-toolkit", 2827 | "wayland-backend", 2828 | ] 2829 | 2830 | [[package]] 2831 | name = "smol_str" 2832 | version = "0.2.2" 2833 | source = "registry+https://github.com/rust-lang/crates.io-index" 2834 | checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead" 2835 | dependencies = [ 2836 | "serde", 2837 | ] 2838 | 2839 | [[package]] 2840 | name = "softbuffer" 2841 | version = "0.4.1" 2842 | source = "git+https://github.com/pop-os/softbuffer?tag=cosmic-4.0#6e75b1ad7e98397d37cb187886d05969bc480995" 2843 | dependencies = [ 2844 | "as-raw-xcb-connection", 2845 | "bytemuck", 2846 | "cfg_aliases 0.2.1", 2847 | "cocoa", 2848 | "core-graphics", 2849 | "drm", 2850 | "fastrand", 2851 | "foreign-types", 2852 | "js-sys", 2853 | "log", 2854 | "memmap2 0.9.5", 2855 | "objc", 2856 | "raw-window-handle", 2857 | "redox_syscall 0.4.1", 2858 | "rustix", 2859 | "tiny-xlib", 2860 | "wasm-bindgen", 2861 | "wayland-backend", 2862 | "wayland-client", 2863 | "wayland-sys", 2864 | "web-sys", 2865 | "windows-sys 0.52.0", 2866 | "x11rb", 2867 | ] 2868 | 2869 | [[package]] 2870 | name = "spin" 2871 | version = "0.9.8" 2872 | source = "registry+https://github.com/rust-lang/crates.io-index" 2873 | checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 2874 | dependencies = [ 2875 | "lock_api", 2876 | ] 2877 | 2878 | [[package]] 2879 | name = "spirv" 2880 | version = "0.3.0+sdk-1.3.268.0" 2881 | source = "registry+https://github.com/rust-lang/crates.io-index" 2882 | checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844" 2883 | dependencies = [ 2884 | "bitflags 2.6.0", 2885 | ] 2886 | 2887 | [[package]] 2888 | name = "static_assertions" 2889 | version = "1.1.0" 2890 | source = "registry+https://github.com/rust-lang/crates.io-index" 2891 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 2892 | 2893 | [[package]] 2894 | name = "strict-num" 2895 | version = "0.1.1" 2896 | source = "registry+https://github.com/rust-lang/crates.io-index" 2897 | checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" 2898 | dependencies = [ 2899 | "float-cmp", 2900 | ] 2901 | 2902 | [[package]] 2903 | name = "strsim" 2904 | version = "0.11.1" 2905 | source = "registry+https://github.com/rust-lang/crates.io-index" 2906 | checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" 2907 | 2908 | [[package]] 2909 | name = "svg_fmt" 2910 | version = "0.4.3" 2911 | source = "registry+https://github.com/rust-lang/crates.io-index" 2912 | checksum = "20e16a0f46cf5fd675563ef54f26e83e20f2366bcf027bcb3cc3ed2b98aaf2ca" 2913 | 2914 | [[package]] 2915 | name = "svgtypes" 2916 | version = "0.15.2" 2917 | source = "registry+https://github.com/rust-lang/crates.io-index" 2918 | checksum = "794de53cc48eaabeed0ab6a3404a65f40b3e38c067e4435883a65d2aa4ca000e" 2919 | dependencies = [ 2920 | "kurbo 0.11.1", 2921 | "siphasher 1.0.1", 2922 | ] 2923 | 2924 | [[package]] 2925 | name = "swash" 2926 | version = "0.1.19" 2927 | source = "registry+https://github.com/rust-lang/crates.io-index" 2928 | checksum = "cbd59f3f359ddd2c95af4758c18270eddd9c730dde98598023cdabff472c2ca2" 2929 | dependencies = [ 2930 | "skrifa", 2931 | "yazi", 2932 | "zeno", 2933 | ] 2934 | 2935 | [[package]] 2936 | name = "swayipc" 2937 | version = "3.0.2" 2938 | source = "registry+https://github.com/rust-lang/crates.io-index" 2939 | checksum = "daa5d19f881f372e225095e297072e2e3ee1c4e9e3a46cafe5f5cf70f1313f29" 2940 | dependencies = [ 2941 | "serde", 2942 | "serde_json", 2943 | "swayipc-types", 2944 | ] 2945 | 2946 | [[package]] 2947 | name = "swayipc-types" 2948 | version = "1.4.0" 2949 | source = "registry+https://github.com/rust-lang/crates.io-index" 2950 | checksum = "150570ddeab049ddd51930539fe05834054795d5db1a6735285e9534a5f56931" 2951 | dependencies = [ 2952 | "serde", 2953 | "serde_json", 2954 | "thiserror", 2955 | ] 2956 | 2957 | [[package]] 2958 | name = "syn" 2959 | version = "1.0.109" 2960 | source = "registry+https://github.com/rust-lang/crates.io-index" 2961 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 2962 | dependencies = [ 2963 | "proc-macro2", 2964 | "quote", 2965 | "unicode-ident", 2966 | ] 2967 | 2968 | [[package]] 2969 | name = "syn" 2970 | version = "2.0.85" 2971 | source = "registry+https://github.com/rust-lang/crates.io-index" 2972 | checksum = "5023162dfcd14ef8f32034d8bcd4cc5ddc61ef7a247c024a33e24e1f24d21b56" 2973 | dependencies = [ 2974 | "proc-macro2", 2975 | "quote", 2976 | "unicode-ident", 2977 | ] 2978 | 2979 | [[package]] 2980 | name = "sys-locale" 2981 | version = "0.3.1" 2982 | source = "registry+https://github.com/rust-lang/crates.io-index" 2983 | checksum = "e801cf239ecd6ccd71f03d270d67dd53d13e90aab208bf4b8fe4ad957ea949b0" 2984 | dependencies = [ 2985 | "libc", 2986 | ] 2987 | 2988 | [[package]] 2989 | name = "taffy" 2990 | version = "0.3.11" 2991 | source = "git+https://github.com/DioxusLabs/taffy?rev=7781c70#7781c70241f7f572130c13106f2a869a9cf80885" 2992 | dependencies = [ 2993 | "arrayvec", 2994 | "grid", 2995 | "num-traits", 2996 | "slotmap", 2997 | ] 2998 | 2999 | [[package]] 3000 | name = "tempfile" 3001 | version = "3.13.0" 3002 | source = "registry+https://github.com/rust-lang/crates.io-index" 3003 | checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" 3004 | dependencies = [ 3005 | "cfg-if", 3006 | "fastrand", 3007 | "once_cell", 3008 | "rustix", 3009 | "windows-sys 0.59.0", 3010 | ] 3011 | 3012 | [[package]] 3013 | name = "termcolor" 3014 | version = "1.4.1" 3015 | source = "registry+https://github.com/rust-lang/crates.io-index" 3016 | checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" 3017 | dependencies = [ 3018 | "winapi-util", 3019 | ] 3020 | 3021 | [[package]] 3022 | name = "thiserror" 3023 | version = "1.0.65" 3024 | source = "registry+https://github.com/rust-lang/crates.io-index" 3025 | checksum = "5d11abd9594d9b38965ef50805c5e469ca9cc6f197f883f717e0269a3057b3d5" 3026 | dependencies = [ 3027 | "thiserror-impl", 3028 | ] 3029 | 3030 | [[package]] 3031 | name = "thiserror-impl" 3032 | version = "1.0.65" 3033 | source = "registry+https://github.com/rust-lang/crates.io-index" 3034 | checksum = "ae71770322cbd277e69d762a16c444af02aa0575ac0d174f0b9562d3b37f8602" 3035 | dependencies = [ 3036 | "proc-macro2", 3037 | "quote", 3038 | "syn 2.0.85", 3039 | ] 3040 | 3041 | [[package]] 3042 | name = "tiff" 3043 | version = "0.9.1" 3044 | source = "registry+https://github.com/rust-lang/crates.io-index" 3045 | checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e" 3046 | dependencies = [ 3047 | "flate2", 3048 | "jpeg-decoder", 3049 | "weezl", 3050 | ] 3051 | 3052 | [[package]] 3053 | name = "tiny-keccak" 3054 | version = "2.0.2" 3055 | source = "registry+https://github.com/rust-lang/crates.io-index" 3056 | checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" 3057 | dependencies = [ 3058 | "crunchy", 3059 | ] 3060 | 3061 | [[package]] 3062 | name = "tiny-skia" 3063 | version = "0.11.4" 3064 | source = "registry+https://github.com/rust-lang/crates.io-index" 3065 | checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab" 3066 | dependencies = [ 3067 | "arrayref", 3068 | "arrayvec", 3069 | "bytemuck", 3070 | "cfg-if", 3071 | "log", 3072 | "png", 3073 | "tiny-skia-path", 3074 | ] 3075 | 3076 | [[package]] 3077 | name = "tiny-skia-path" 3078 | version = "0.11.4" 3079 | source = "registry+https://github.com/rust-lang/crates.io-index" 3080 | checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93" 3081 | dependencies = [ 3082 | "arrayref", 3083 | "bytemuck", 3084 | "strict-num", 3085 | ] 3086 | 3087 | [[package]] 3088 | name = "tiny-xlib" 3089 | version = "0.2.3" 3090 | source = "registry+https://github.com/rust-lang/crates.io-index" 3091 | checksum = "1d52f22673960ad13af14ff4025997312def1223bfa7c8e4949d099e6b3d5d1c" 3092 | dependencies = [ 3093 | "as-raw-xcb-connection", 3094 | "ctor-lite", 3095 | "libloading", 3096 | "pkg-config", 3097 | "tracing", 3098 | ] 3099 | 3100 | [[package]] 3101 | name = "tinyvec" 3102 | version = "1.8.0" 3103 | source = "registry+https://github.com/rust-lang/crates.io-index" 3104 | checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" 3105 | dependencies = [ 3106 | "tinyvec_macros", 3107 | ] 3108 | 3109 | [[package]] 3110 | name = "tinyvec_macros" 3111 | version = "0.1.1" 3112 | source = "registry+https://github.com/rust-lang/crates.io-index" 3113 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 3114 | 3115 | [[package]] 3116 | name = "tracing" 3117 | version = "0.1.40" 3118 | source = "registry+https://github.com/rust-lang/crates.io-index" 3119 | checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" 3120 | dependencies = [ 3121 | "log", 3122 | "pin-project-lite", 3123 | "tracing-attributes", 3124 | "tracing-core", 3125 | ] 3126 | 3127 | [[package]] 3128 | name = "tracing-attributes" 3129 | version = "0.1.27" 3130 | source = "registry+https://github.com/rust-lang/crates.io-index" 3131 | checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" 3132 | dependencies = [ 3133 | "proc-macro2", 3134 | "quote", 3135 | "syn 2.0.85", 3136 | ] 3137 | 3138 | [[package]] 3139 | name = "tracing-core" 3140 | version = "0.1.32" 3141 | source = "registry+https://github.com/rust-lang/crates.io-index" 3142 | checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" 3143 | dependencies = [ 3144 | "once_cell", 3145 | ] 3146 | 3147 | [[package]] 3148 | name = "ttf-parser" 3149 | version = "0.20.0" 3150 | source = "registry+https://github.com/rust-lang/crates.io-index" 3151 | checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4" 3152 | 3153 | [[package]] 3154 | name = "ttf-parser" 3155 | version = "0.21.1" 3156 | source = "registry+https://github.com/rust-lang/crates.io-index" 3157 | checksum = "2c591d83f69777866b9126b24c6dd9a18351f177e49d625920d19f989fd31cf8" 3158 | 3159 | [[package]] 3160 | name = "unicode-bidi" 3161 | version = "0.3.17" 3162 | source = "registry+https://github.com/rust-lang/crates.io-index" 3163 | checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" 3164 | 3165 | [[package]] 3166 | name = "unicode-bidi-mirroring" 3167 | version = "0.2.0" 3168 | source = "registry+https://github.com/rust-lang/crates.io-index" 3169 | checksum = "23cb788ffebc92c5948d0e997106233eeb1d8b9512f93f41651f52b6c5f5af86" 3170 | 3171 | [[package]] 3172 | name = "unicode-ccc" 3173 | version = "0.2.0" 3174 | source = "registry+https://github.com/rust-lang/crates.io-index" 3175 | checksum = "1df77b101bcc4ea3d78dafc5ad7e4f58ceffe0b2b16bf446aeb50b6cb4157656" 3176 | 3177 | [[package]] 3178 | name = "unicode-ident" 3179 | version = "1.0.13" 3180 | source = "registry+https://github.com/rust-lang/crates.io-index" 3181 | checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" 3182 | 3183 | [[package]] 3184 | name = "unicode-linebreak" 3185 | version = "0.1.5" 3186 | source = "registry+https://github.com/rust-lang/crates.io-index" 3187 | checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" 3188 | 3189 | [[package]] 3190 | name = "unicode-normalization" 3191 | version = "0.1.24" 3192 | source = "registry+https://github.com/rust-lang/crates.io-index" 3193 | checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" 3194 | dependencies = [ 3195 | "tinyvec", 3196 | ] 3197 | 3198 | [[package]] 3199 | name = "unicode-properties" 3200 | version = "0.1.3" 3201 | source = "registry+https://github.com/rust-lang/crates.io-index" 3202 | checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" 3203 | 3204 | [[package]] 3205 | name = "unicode-script" 3206 | version = "0.5.7" 3207 | source = "registry+https://github.com/rust-lang/crates.io-index" 3208 | checksum = "9fb421b350c9aff471779e262955939f565ec18b86c15364e6bdf0d662ca7c1f" 3209 | 3210 | [[package]] 3211 | name = "unicode-segmentation" 3212 | version = "1.12.0" 3213 | source = "registry+https://github.com/rust-lang/crates.io-index" 3214 | checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" 3215 | 3216 | [[package]] 3217 | name = "unicode-vo" 3218 | version = "0.1.0" 3219 | source = "registry+https://github.com/rust-lang/crates.io-index" 3220 | checksum = "b1d386ff53b415b7fe27b50bb44679e2cc4660272694b7b6f3326d8480823a94" 3221 | 3222 | [[package]] 3223 | name = "unicode-width" 3224 | version = "0.1.14" 3225 | source = "registry+https://github.com/rust-lang/crates.io-index" 3226 | checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" 3227 | 3228 | [[package]] 3229 | name = "unicode-xid" 3230 | version = "0.2.6" 3231 | source = "registry+https://github.com/rust-lang/crates.io-index" 3232 | checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" 3233 | 3234 | [[package]] 3235 | name = "url" 3236 | version = "2.5.2" 3237 | source = "registry+https://github.com/rust-lang/crates.io-index" 3238 | checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" 3239 | dependencies = [ 3240 | "form_urlencoded", 3241 | "idna", 3242 | "percent-encoding", 3243 | ] 3244 | 3245 | [[package]] 3246 | name = "ustr" 3247 | version = "1.0.0" 3248 | source = "registry+https://github.com/rust-lang/crates.io-index" 3249 | checksum = "7e904a2279a4a36d2356425bb20be271029cc650c335bc82af8bfae30085a3d0" 3250 | dependencies = [ 3251 | "ahash", 3252 | "byteorder", 3253 | "lazy_static", 3254 | "parking_lot 0.12.3", 3255 | "serde", 3256 | ] 3257 | 3258 | [[package]] 3259 | name = "usvg" 3260 | version = "0.42.0" 3261 | source = "registry+https://github.com/rust-lang/crates.io-index" 3262 | checksum = "b84ea542ae85c715f07b082438a4231c3760539d902e11d093847a0b22963032" 3263 | dependencies = [ 3264 | "base64 0.22.1", 3265 | "data-url", 3266 | "flate2", 3267 | "fontdb 0.18.0", 3268 | "imagesize", 3269 | "kurbo 0.11.1", 3270 | "log", 3271 | "pico-args", 3272 | "roxmltree", 3273 | "rustybuzz", 3274 | "simplecss", 3275 | "siphasher 1.0.1", 3276 | "strict-num", 3277 | "svgtypes", 3278 | "tiny-skia-path", 3279 | "unicode-bidi", 3280 | "unicode-script", 3281 | "unicode-vo", 3282 | "xmlwriter", 3283 | ] 3284 | 3285 | [[package]] 3286 | name = "version_check" 3287 | version = "0.9.5" 3288 | source = "registry+https://github.com/rust-lang/crates.io-index" 3289 | checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 3290 | 3291 | [[package]] 3292 | name = "walkdir" 3293 | version = "2.5.0" 3294 | source = "registry+https://github.com/rust-lang/crates.io-index" 3295 | checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 3296 | dependencies = [ 3297 | "same-file", 3298 | "winapi-util", 3299 | ] 3300 | 3301 | [[package]] 3302 | name = "wasi" 3303 | version = "0.11.0+wasi-snapshot-preview1" 3304 | source = "registry+https://github.com/rust-lang/crates.io-index" 3305 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 3306 | 3307 | [[package]] 3308 | name = "wasm-bindgen" 3309 | version = "0.2.95" 3310 | source = "registry+https://github.com/rust-lang/crates.io-index" 3311 | checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" 3312 | dependencies = [ 3313 | "cfg-if", 3314 | "once_cell", 3315 | "wasm-bindgen-macro", 3316 | ] 3317 | 3318 | [[package]] 3319 | name = "wasm-bindgen-backend" 3320 | version = "0.2.95" 3321 | source = "registry+https://github.com/rust-lang/crates.io-index" 3322 | checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" 3323 | dependencies = [ 3324 | "bumpalo", 3325 | "log", 3326 | "once_cell", 3327 | "proc-macro2", 3328 | "quote", 3329 | "syn 2.0.85", 3330 | "wasm-bindgen-shared", 3331 | ] 3332 | 3333 | [[package]] 3334 | name = "wasm-bindgen-futures" 3335 | version = "0.4.45" 3336 | source = "registry+https://github.com/rust-lang/crates.io-index" 3337 | checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" 3338 | dependencies = [ 3339 | "cfg-if", 3340 | "js-sys", 3341 | "wasm-bindgen", 3342 | "web-sys", 3343 | ] 3344 | 3345 | [[package]] 3346 | name = "wasm-bindgen-macro" 3347 | version = "0.2.95" 3348 | source = "registry+https://github.com/rust-lang/crates.io-index" 3349 | checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" 3350 | dependencies = [ 3351 | "quote", 3352 | "wasm-bindgen-macro-support", 3353 | ] 3354 | 3355 | [[package]] 3356 | name = "wasm-bindgen-macro-support" 3357 | version = "0.2.95" 3358 | source = "registry+https://github.com/rust-lang/crates.io-index" 3359 | checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" 3360 | dependencies = [ 3361 | "proc-macro2", 3362 | "quote", 3363 | "syn 2.0.85", 3364 | "wasm-bindgen-backend", 3365 | "wasm-bindgen-shared", 3366 | ] 3367 | 3368 | [[package]] 3369 | name = "wasm-bindgen-shared" 3370 | version = "0.2.95" 3371 | source = "registry+https://github.com/rust-lang/crates.io-index" 3372 | checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" 3373 | 3374 | [[package]] 3375 | name = "wasm-timer" 3376 | version = "0.2.5" 3377 | source = "registry+https://github.com/rust-lang/crates.io-index" 3378 | checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" 3379 | dependencies = [ 3380 | "futures", 3381 | "js-sys", 3382 | "parking_lot 0.11.2", 3383 | "pin-utils", 3384 | "wasm-bindgen", 3385 | "wasm-bindgen-futures", 3386 | "web-sys", 3387 | ] 3388 | 3389 | [[package]] 3390 | name = "wayland-backend" 3391 | version = "0.3.7" 3392 | source = "registry+https://github.com/rust-lang/crates.io-index" 3393 | checksum = "056535ced7a150d45159d3a8dc30f91a2e2d588ca0b23f70e56033622b8016f6" 3394 | dependencies = [ 3395 | "cc", 3396 | "downcast-rs", 3397 | "rustix", 3398 | "scoped-tls", 3399 | "smallvec", 3400 | "wayland-sys", 3401 | ] 3402 | 3403 | [[package]] 3404 | name = "wayland-client" 3405 | version = "0.31.7" 3406 | source = "registry+https://github.com/rust-lang/crates.io-index" 3407 | checksum = "b66249d3fc69f76fd74c82cc319300faa554e9d865dab1f7cd66cc20db10b280" 3408 | dependencies = [ 3409 | "bitflags 2.6.0", 3410 | "rustix", 3411 | "wayland-backend", 3412 | "wayland-scanner", 3413 | ] 3414 | 3415 | [[package]] 3416 | name = "wayland-csd-frame" 3417 | version = "0.3.0" 3418 | source = "registry+https://github.com/rust-lang/crates.io-index" 3419 | checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" 3420 | dependencies = [ 3421 | "bitflags 2.6.0", 3422 | "cursor-icon", 3423 | "wayland-backend", 3424 | ] 3425 | 3426 | [[package]] 3427 | name = "wayland-cursor" 3428 | version = "0.31.7" 3429 | source = "registry+https://github.com/rust-lang/crates.io-index" 3430 | checksum = "32b08bc3aafdb0035e7fe0fdf17ba0c09c268732707dca4ae098f60cb28c9e4c" 3431 | dependencies = [ 3432 | "rustix", 3433 | "wayland-client", 3434 | "xcursor", 3435 | ] 3436 | 3437 | [[package]] 3438 | name = "wayland-protocols" 3439 | version = "0.32.5" 3440 | source = "registry+https://github.com/rust-lang/crates.io-index" 3441 | checksum = "7cd0ade57c4e6e9a8952741325c30bf82f4246885dca8bf561898b86d0c1f58e" 3442 | dependencies = [ 3443 | "bitflags 2.6.0", 3444 | "wayland-backend", 3445 | "wayland-client", 3446 | "wayland-scanner", 3447 | ] 3448 | 3449 | [[package]] 3450 | name = "wayland-protocols-wlr" 3451 | version = "0.3.5" 3452 | source = "registry+https://github.com/rust-lang/crates.io-index" 3453 | checksum = "782e12f6cd923c3c316130d56205ebab53f55d6666b7faddfad36cecaeeb4022" 3454 | dependencies = [ 3455 | "bitflags 2.6.0", 3456 | "wayland-backend", 3457 | "wayland-client", 3458 | "wayland-protocols", 3459 | "wayland-scanner", 3460 | ] 3461 | 3462 | [[package]] 3463 | name = "wayland-scanner" 3464 | version = "0.31.5" 3465 | source = "registry+https://github.com/rust-lang/crates.io-index" 3466 | checksum = "597f2001b2e5fc1121e3d5b9791d3e78f05ba6bfa4641053846248e3a13661c3" 3467 | dependencies = [ 3468 | "proc-macro2", 3469 | "quick-xml", 3470 | "quote", 3471 | ] 3472 | 3473 | [[package]] 3474 | name = "wayland-sys" 3475 | version = "0.31.5" 3476 | source = "registry+https://github.com/rust-lang/crates.io-index" 3477 | checksum = "efa8ac0d8e8ed3e3b5c9fc92c7881406a268e11555abe36493efabe649a29e09" 3478 | dependencies = [ 3479 | "dlib", 3480 | "log", 3481 | "once_cell", 3482 | "pkg-config", 3483 | ] 3484 | 3485 | [[package]] 3486 | name = "web-sys" 3487 | version = "0.3.72" 3488 | source = "registry+https://github.com/rust-lang/crates.io-index" 3489 | checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" 3490 | dependencies = [ 3491 | "js-sys", 3492 | "wasm-bindgen", 3493 | ] 3494 | 3495 | [[package]] 3496 | name = "web-time" 3497 | version = "1.1.0" 3498 | source = "registry+https://github.com/rust-lang/crates.io-index" 3499 | checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" 3500 | dependencies = [ 3501 | "js-sys", 3502 | "wasm-bindgen", 3503 | ] 3504 | 3505 | [[package]] 3506 | name = "weezl" 3507 | version = "0.1.8" 3508 | source = "registry+https://github.com/rust-lang/crates.io-index" 3509 | checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" 3510 | 3511 | [[package]] 3512 | name = "wgpu" 3513 | version = "22.1.0" 3514 | source = "registry+https://github.com/rust-lang/crates.io-index" 3515 | checksum = "e1d1c4ba43f80542cf63a0a6ed3134629ae73e8ab51e4b765a67f3aa062eb433" 3516 | dependencies = [ 3517 | "arrayvec", 3518 | "cfg_aliases 0.1.1", 3519 | "document-features", 3520 | "js-sys", 3521 | "log", 3522 | "naga", 3523 | "parking_lot 0.11.2", 3524 | "profiling", 3525 | "raw-window-handle", 3526 | "smallvec", 3527 | "static_assertions", 3528 | "wasm-bindgen", 3529 | "wasm-bindgen-futures", 3530 | "web-sys", 3531 | "wgpu-core", 3532 | "wgpu-hal", 3533 | "wgpu-types", 3534 | ] 3535 | 3536 | [[package]] 3537 | name = "wgpu-core" 3538 | version = "22.1.0" 3539 | source = "registry+https://github.com/rust-lang/crates.io-index" 3540 | checksum = "0348c840d1051b8e86c3bcd31206080c5e71e5933dabd79be1ce732b0b2f089a" 3541 | dependencies = [ 3542 | "arrayvec", 3543 | "bit-vec", 3544 | "bitflags 2.6.0", 3545 | "cfg_aliases 0.1.1", 3546 | "document-features", 3547 | "indexmap", 3548 | "log", 3549 | "naga", 3550 | "once_cell", 3551 | "parking_lot 0.11.2", 3552 | "profiling", 3553 | "raw-window-handle", 3554 | "rustc-hash 1.1.0", 3555 | "smallvec", 3556 | "thiserror", 3557 | "wgpu-hal", 3558 | "wgpu-types", 3559 | ] 3560 | 3561 | [[package]] 3562 | name = "wgpu-hal" 3563 | version = "22.0.0" 3564 | source = "registry+https://github.com/rust-lang/crates.io-index" 3565 | checksum = "f6bbf4b4de8b2a83c0401d9e5ae0080a2792055f25859a02bf9be97952bbed4f" 3566 | dependencies = [ 3567 | "android_system_properties", 3568 | "arrayvec", 3569 | "ash", 3570 | "bit-set", 3571 | "bitflags 2.6.0", 3572 | "block", 3573 | "cfg_aliases 0.1.1", 3574 | "core-graphics-types", 3575 | "d3d12", 3576 | "glow", 3577 | "glutin_wgl_sys", 3578 | "gpu-alloc", 3579 | "gpu-allocator", 3580 | "gpu-descriptor", 3581 | "hassle-rs", 3582 | "js-sys", 3583 | "khronos-egl", 3584 | "libc", 3585 | "libloading", 3586 | "log", 3587 | "metal", 3588 | "naga", 3589 | "ndk-sys", 3590 | "objc", 3591 | "once_cell", 3592 | "parking_lot 0.11.2", 3593 | "profiling", 3594 | "range-alloc", 3595 | "raw-window-handle", 3596 | "renderdoc-sys", 3597 | "rustc-hash 1.1.0", 3598 | "smallvec", 3599 | "thiserror", 3600 | "wasm-bindgen", 3601 | "web-sys", 3602 | "wgpu-types", 3603 | "winapi", 3604 | ] 3605 | 3606 | [[package]] 3607 | name = "wgpu-types" 3608 | version = "22.0.0" 3609 | source = "registry+https://github.com/rust-lang/crates.io-index" 3610 | checksum = "bc9d91f0e2c4b51434dfa6db77846f2793149d8e73f800fa2e41f52b8eac3c5d" 3611 | dependencies = [ 3612 | "bitflags 2.6.0", 3613 | "js-sys", 3614 | "web-sys", 3615 | ] 3616 | 3617 | [[package]] 3618 | name = "widestring" 3619 | version = "1.1.0" 3620 | source = "registry+https://github.com/rust-lang/crates.io-index" 3621 | checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" 3622 | 3623 | [[package]] 3624 | name = "winapi" 3625 | version = "0.3.9" 3626 | source = "registry+https://github.com/rust-lang/crates.io-index" 3627 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 3628 | dependencies = [ 3629 | "winapi-i686-pc-windows-gnu", 3630 | "winapi-x86_64-pc-windows-gnu", 3631 | ] 3632 | 3633 | [[package]] 3634 | name = "winapi-i686-pc-windows-gnu" 3635 | version = "0.4.0" 3636 | source = "registry+https://github.com/rust-lang/crates.io-index" 3637 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 3638 | 3639 | [[package]] 3640 | name = "winapi-util" 3641 | version = "0.1.9" 3642 | source = "registry+https://github.com/rust-lang/crates.io-index" 3643 | checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" 3644 | dependencies = [ 3645 | "windows-sys 0.59.0", 3646 | ] 3647 | 3648 | [[package]] 3649 | name = "winapi-x86_64-pc-windows-gnu" 3650 | version = "0.4.0" 3651 | source = "registry+https://github.com/rust-lang/crates.io-index" 3652 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 3653 | 3654 | [[package]] 3655 | name = "window_clipboard" 3656 | version = "0.4.1" 3657 | source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-0.13#a83bf83784276aaa882ef13555295a2ad9edd265" 3658 | dependencies = [ 3659 | "clipboard-win", 3660 | "clipboard_macos", 3661 | "clipboard_wayland", 3662 | "clipboard_x11", 3663 | "dnd", 3664 | "mime", 3665 | "raw-window-handle", 3666 | "thiserror", 3667 | ] 3668 | 3669 | [[package]] 3670 | name = "windows" 3671 | version = "0.52.0" 3672 | source = "registry+https://github.com/rust-lang/crates.io-index" 3673 | checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" 3674 | dependencies = [ 3675 | "windows-core", 3676 | "windows-targets 0.52.6", 3677 | ] 3678 | 3679 | [[package]] 3680 | name = "windows-core" 3681 | version = "0.52.0" 3682 | source = "registry+https://github.com/rust-lang/crates.io-index" 3683 | checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" 3684 | dependencies = [ 3685 | "windows-targets 0.52.6", 3686 | ] 3687 | 3688 | [[package]] 3689 | name = "windows-sys" 3690 | version = "0.48.0" 3691 | source = "registry+https://github.com/rust-lang/crates.io-index" 3692 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 3693 | dependencies = [ 3694 | "windows-targets 0.48.5", 3695 | ] 3696 | 3697 | [[package]] 3698 | name = "windows-sys" 3699 | version = "0.52.0" 3700 | source = "registry+https://github.com/rust-lang/crates.io-index" 3701 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 3702 | dependencies = [ 3703 | "windows-targets 0.52.6", 3704 | ] 3705 | 3706 | [[package]] 3707 | name = "windows-sys" 3708 | version = "0.59.0" 3709 | source = "registry+https://github.com/rust-lang/crates.io-index" 3710 | checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 3711 | dependencies = [ 3712 | "windows-targets 0.52.6", 3713 | ] 3714 | 3715 | [[package]] 3716 | name = "windows-targets" 3717 | version = "0.48.5" 3718 | source = "registry+https://github.com/rust-lang/crates.io-index" 3719 | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 3720 | dependencies = [ 3721 | "windows_aarch64_gnullvm 0.48.5", 3722 | "windows_aarch64_msvc 0.48.5", 3723 | "windows_i686_gnu 0.48.5", 3724 | "windows_i686_msvc 0.48.5", 3725 | "windows_x86_64_gnu 0.48.5", 3726 | "windows_x86_64_gnullvm 0.48.5", 3727 | "windows_x86_64_msvc 0.48.5", 3728 | ] 3729 | 3730 | [[package]] 3731 | name = "windows-targets" 3732 | version = "0.52.6" 3733 | source = "registry+https://github.com/rust-lang/crates.io-index" 3734 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 3735 | dependencies = [ 3736 | "windows_aarch64_gnullvm 0.52.6", 3737 | "windows_aarch64_msvc 0.52.6", 3738 | "windows_i686_gnu 0.52.6", 3739 | "windows_i686_gnullvm", 3740 | "windows_i686_msvc 0.52.6", 3741 | "windows_x86_64_gnu 0.52.6", 3742 | "windows_x86_64_gnullvm 0.52.6", 3743 | "windows_x86_64_msvc 0.52.6", 3744 | ] 3745 | 3746 | [[package]] 3747 | name = "windows_aarch64_gnullvm" 3748 | version = "0.48.5" 3749 | source = "registry+https://github.com/rust-lang/crates.io-index" 3750 | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 3751 | 3752 | [[package]] 3753 | name = "windows_aarch64_gnullvm" 3754 | version = "0.52.6" 3755 | source = "registry+https://github.com/rust-lang/crates.io-index" 3756 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 3757 | 3758 | [[package]] 3759 | name = "windows_aarch64_msvc" 3760 | version = "0.48.5" 3761 | source = "registry+https://github.com/rust-lang/crates.io-index" 3762 | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 3763 | 3764 | [[package]] 3765 | name = "windows_aarch64_msvc" 3766 | version = "0.52.6" 3767 | source = "registry+https://github.com/rust-lang/crates.io-index" 3768 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 3769 | 3770 | [[package]] 3771 | name = "windows_i686_gnu" 3772 | version = "0.48.5" 3773 | source = "registry+https://github.com/rust-lang/crates.io-index" 3774 | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 3775 | 3776 | [[package]] 3777 | name = "windows_i686_gnu" 3778 | version = "0.52.6" 3779 | source = "registry+https://github.com/rust-lang/crates.io-index" 3780 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 3781 | 3782 | [[package]] 3783 | name = "windows_i686_gnullvm" 3784 | version = "0.52.6" 3785 | source = "registry+https://github.com/rust-lang/crates.io-index" 3786 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 3787 | 3788 | [[package]] 3789 | name = "windows_i686_msvc" 3790 | version = "0.48.5" 3791 | source = "registry+https://github.com/rust-lang/crates.io-index" 3792 | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 3793 | 3794 | [[package]] 3795 | name = "windows_i686_msvc" 3796 | version = "0.52.6" 3797 | source = "registry+https://github.com/rust-lang/crates.io-index" 3798 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 3799 | 3800 | [[package]] 3801 | name = "windows_x86_64_gnu" 3802 | version = "0.48.5" 3803 | source = "registry+https://github.com/rust-lang/crates.io-index" 3804 | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 3805 | 3806 | [[package]] 3807 | name = "windows_x86_64_gnu" 3808 | version = "0.52.6" 3809 | source = "registry+https://github.com/rust-lang/crates.io-index" 3810 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 3811 | 3812 | [[package]] 3813 | name = "windows_x86_64_gnullvm" 3814 | version = "0.48.5" 3815 | source = "registry+https://github.com/rust-lang/crates.io-index" 3816 | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 3817 | 3818 | [[package]] 3819 | name = "windows_x86_64_gnullvm" 3820 | version = "0.52.6" 3821 | source = "registry+https://github.com/rust-lang/crates.io-index" 3822 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 3823 | 3824 | [[package]] 3825 | name = "windows_x86_64_msvc" 3826 | version = "0.48.5" 3827 | source = "registry+https://github.com/rust-lang/crates.io-index" 3828 | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 3829 | 3830 | [[package]] 3831 | name = "windows_x86_64_msvc" 3832 | version = "0.52.6" 3833 | source = "registry+https://github.com/rust-lang/crates.io-index" 3834 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 3835 | 3836 | [[package]] 3837 | name = "x11rb" 3838 | version = "0.13.1" 3839 | source = "registry+https://github.com/rust-lang/crates.io-index" 3840 | checksum = "5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12" 3841 | dependencies = [ 3842 | "as-raw-xcb-connection", 3843 | "gethostname", 3844 | "libc", 3845 | "libloading", 3846 | "once_cell", 3847 | "rustix", 3848 | "x11rb-protocol", 3849 | ] 3850 | 3851 | [[package]] 3852 | name = "x11rb-protocol" 3853 | version = "0.13.1" 3854 | source = "registry+https://github.com/rust-lang/crates.io-index" 3855 | checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d" 3856 | 3857 | [[package]] 3858 | name = "xcursor" 3859 | version = "0.3.8" 3860 | source = "registry+https://github.com/rust-lang/crates.io-index" 3861 | checksum = "0ef33da6b1660b4ddbfb3aef0ade110c8b8a781a3b6382fa5f2b5b040fd55f61" 3862 | 3863 | [[package]] 3864 | name = "xdg" 3865 | version = "2.5.2" 3866 | source = "registry+https://github.com/rust-lang/crates.io-index" 3867 | checksum = "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546" 3868 | 3869 | [[package]] 3870 | name = "xkbcommon" 3871 | version = "0.7.0" 3872 | source = "registry+https://github.com/rust-lang/crates.io-index" 3873 | checksum = "13867d259930edc7091a6c41b4ce6eee464328c6ff9659b7e4c668ca20d4c91e" 3874 | dependencies = [ 3875 | "libc", 3876 | "memmap2 0.8.0", 3877 | "xkeysym", 3878 | ] 3879 | 3880 | [[package]] 3881 | name = "xkeysym" 3882 | version = "0.2.1" 3883 | source = "registry+https://github.com/rust-lang/crates.io-index" 3884 | checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56" 3885 | dependencies = [ 3886 | "bytemuck", 3887 | ] 3888 | 3889 | [[package]] 3890 | name = "xml-rs" 3891 | version = "0.8.22" 3892 | source = "registry+https://github.com/rust-lang/crates.io-index" 3893 | checksum = "af4e2e2f7cba5a093896c1e150fbfe177d1883e7448200efb81d40b9d339ef26" 3894 | 3895 | [[package]] 3896 | name = "xmlwriter" 3897 | version = "0.1.0" 3898 | source = "registry+https://github.com/rust-lang/crates.io-index" 3899 | checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9" 3900 | 3901 | [[package]] 3902 | name = "yansi" 3903 | version = "1.0.1" 3904 | source = "registry+https://github.com/rust-lang/crates.io-index" 3905 | checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" 3906 | 3907 | [[package]] 3908 | name = "yazi" 3909 | version = "0.1.6" 3910 | source = "registry+https://github.com/rust-lang/crates.io-index" 3911 | checksum = "c94451ac9513335b5e23d7a8a2b61a7102398b8cca5160829d313e84c9d98be1" 3912 | 3913 | [[package]] 3914 | name = "zeno" 3915 | version = "0.2.3" 3916 | source = "registry+https://github.com/rust-lang/crates.io-index" 3917 | checksum = "dd15f8e0dbb966fd9245e7498c7e9e5055d9e5c8b676b95bd67091cd11a1e697" 3918 | 3919 | [[package]] 3920 | name = "zerocopy" 3921 | version = "0.7.35" 3922 | source = "registry+https://github.com/rust-lang/crates.io-index" 3923 | checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" 3924 | dependencies = [ 3925 | "zerocopy-derive", 3926 | ] 3927 | 3928 | [[package]] 3929 | name = "zerocopy-derive" 3930 | version = "0.7.35" 3931 | source = "registry+https://github.com/rust-lang/crates.io-index" 3932 | checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" 3933 | dependencies = [ 3934 | "proc-macro2", 3935 | "quote", 3936 | "syn 2.0.85", 3937 | ] 3938 | 3939 | [[package]] 3940 | name = "zune-inflate" 3941 | version = "0.2.54" 3942 | source = "registry+https://github.com/rust-lang/crates.io-index" 3943 | checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02" 3944 | dependencies = [ 3945 | "simd-adler32", 3946 | ] 3947 | -------------------------------------------------------------------------------- /sway/cosmic-ext-sway-daemon/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "cosmic-ext-sway-daemon" 3 | version = "0.1.0" 4 | edition = "2021" 5 | authors = ["Victoria Brekenfeld "] 6 | license = "GPL-3.0-only" 7 | 8 | [dependencies] 9 | anyhow = "1.0.91" 10 | calloop = "0.14.1" 11 | libcosmic = { git = "https://github.com/pop-os/libcosmic.git" } 12 | cosmic-config = { git = "https://github.com/pop-os/libcosmic.git" } 13 | cosmic-theme = { git = "https://github.com/pop-os/libcosmic.git" } 14 | swayipc = "3.0.2" 15 | -------------------------------------------------------------------------------- /sway/cosmic-ext-sway-daemon/README.md: -------------------------------------------------------------------------------- 1 | # cosmic-ext-sway-daemon 2 | 3 | Little daemon to sync cosmic-config settings over to a running sway instance. -------------------------------------------------------------------------------- /sway/cosmic-ext-sway-daemon/justfile: -------------------------------------------------------------------------------- 1 | name := 'cosmic-ext-sway-daemon' 2 | rootdir := '' 3 | prefix := '/usr' 4 | 5 | base-dir := absolute_path(clean(rootdir / prefix)) 6 | 7 | cargo-target-dir := env('CARGO_TARGET_DIR', 'target') 8 | bin-src := cargo-target-dir / 'release' / name 9 | bin-dst := base-dir / 'bin' / name 10 | 11 | # Default recipe which runs `just build-release` 12 | default: build-release 13 | 14 | # Runs `cargo clean` 15 | clean: 16 | cargo clean 17 | 18 | # `cargo clean` and removes vendored dependencies 19 | clean-dist: clean 20 | rm -rf .cargo vendor vendor.tar 21 | 22 | # Compiles with debug profile 23 | build-debug *args: 24 | cargo build {{args}} 25 | 26 | # Compiles with release profile 27 | build-release *args: (build-debug '--release' args) 28 | 29 | # Compiles release profile with vendored dependencies 30 | build-vendored *args: vendor-extract (build-release '--frozen --offline' args) 31 | 32 | # Runs a clippy check 33 | check *args: 34 | cargo clippy --all-features {{args}} -- -W clippy::pedantic 35 | 36 | # Runs a clippy check with JSON message format 37 | check-json: (check '--message-format=json') 38 | 39 | # Installs files 40 | install: 41 | install -Dm0755 {{bin-src}} {{bin-dst}} 42 | 43 | # Uninstalls installed files 44 | uninstall: 45 | rm {{bin-dst}} 46 | 47 | # Vendor dependencies locally 48 | vendor: 49 | mkdir -p .cargo 50 | cargo vendor --sync Cargo.toml \ 51 | | head -n -1 > .cargo/config 52 | echo 'directory = "vendor"' >> .cargo/config 53 | tar pcf vendor.tar vendor 54 | rm -rf vendor 55 | 56 | # Extracts vendored dependencies 57 | vendor-extract: 58 | #!/usr/bin/env sh 59 | rm -rf vendor 60 | tar pxf vendor.tar -------------------------------------------------------------------------------- /sway/cosmic-ext-sway-daemon/src/main.rs: -------------------------------------------------------------------------------- 1 | use anyhow::Context; 2 | use cosmic_theme::{Theme, ThemeMode}; 3 | 4 | pub struct State { 5 | ipc: swayipc::Connection, 6 | theme: cosmic::theme::Theme, 7 | } 8 | 9 | fn update_theme(ipc: &mut swayipc::Connection, theme: &Theme) { 10 | let active_hint = if let Some(hint) = theme.window_hint { 11 | hint.into() 12 | } else { 13 | theme.accent_color() 14 | }; 15 | let _ = ipc.run_command(format!( 16 | "client.focused #{:X?}{:X?}{:X?} #{:02X?}{:02X?}{:02X?} #{:02X?}{:02X?}{:02X?}", 17 | (active_hint.red * 255.0).round() as u32, 18 | (active_hint.green * 255.0).round() as u32, 19 | (active_hint.blue * 255.0).round() as u32, 20 | (theme.accent_color().red * 255.0).round() as u32, 21 | (theme.accent_color().green * 255.0).round() as u32, 22 | (theme.accent_color().blue * 255.0).round() as u32, 23 | (theme.on_accent_color().red * 255.0).round() as u32, 24 | (theme.on_accent_color().green * 255.0).round() as u32, 25 | (theme.on_accent_color().blue * 255.0).round() as u32, 26 | )); 27 | let _ = ipc.run_command(format!("border normal {}", theme.active_hint)); 28 | let _ = ipc.run_command(format!("default_border normal {}", theme.active_hint)); 29 | let _ = ipc.run_command(format!("gaps outer all set {}", theme.gaps.0)); 30 | let _ = ipc.run_command(format!("gaps inner all set {}", theme.gaps.1)); 31 | } 32 | 33 | fn main() -> anyhow::Result<()> { 34 | let mut evlh = calloop::EventLoop::<'static, State>::try_new() 35 | .context("Failed to create event loop")?; 36 | let (ping_tx, ping_rx) = calloop::ping::make_ping().context("Failed to create ping source")?; 37 | 38 | let config_mode_helper = ThemeMode::config()?; 39 | let config_dark_helper = Theme::dark_config()?; 40 | let config_light_helper = Theme::light_config()?; 41 | 42 | evlh.handle().insert_source(ping_rx, move |_, _, state| { 43 | let new_theme = cosmic::theme::system_preference(); 44 | 45 | if state.theme.theme_type != new_theme.theme_type { 46 | state.theme = new_theme; 47 | update_theme(&mut state.ipc, state.theme.cosmic()); 48 | } 49 | }).context("Failed to setup ping source")?; 50 | 51 | let ping_tx_clone = ping_tx.clone(); 52 | let theme_watcher_mode = config_mode_helper.watch(move |_, _keys| { 53 | ping_tx_clone.ping(); 54 | })?; 55 | let ping_tx_clone = ping_tx.clone(); 56 | let theme_watcher_light = config_light_helper.watch(move |_, _keys| { 57 | ping_tx_clone.ping(); 58 | })?; 59 | let theme_watcher_dark = config_dark_helper.watch(move |_, _keys| { 60 | ping_tx.ping(); 61 | })?; 62 | 63 | std::mem::forget(theme_watcher_dark); 64 | std::mem::forget(theme_watcher_light); 65 | std::mem::forget(theme_watcher_mode); 66 | 67 | let mut ipc = swayipc::Connection::new().context("Failed to connect to sway")?; 68 | let theme = cosmic::theme::system_preference(); 69 | update_theme(&mut ipc, theme.cosmic()); 70 | let mut state = State { 71 | ipc, 72 | theme, 73 | }; 74 | 75 | evlh.run(None, &mut state, |_| {}).context("Event loop broke")?; 76 | 77 | Ok(()) 78 | } 79 | -------------------------------------------------------------------------------- /sway/cosmic-ext-sway.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=COSMIC on sway 3 | Comment=This session logs you into the COSMIC desktop on sway 4 | Exec=/usr/bin/start-cosmic-ext-sway 5 | Type=Application 6 | DesktopNames=sway 7 | -------------------------------------------------------------------------------- /sway/start-cosmic-ext-sway: -------------------------------------------------------------------------------- 1 | #!/usr/bin/bash 2 | 3 | set -e 4 | 5 | # From: https://people.debian.org/~mpitt/systemd.conf-2016-graphical-session.pdf 6 | 7 | if command -v systemctl >/dev/null; then 8 | # robustness: if the previous graphical session left some failed units, 9 | # reset them so that they don't break this startup 10 | for unit in $(systemctl --user --no-legend --state=failed --plain list-units | cut -f1 -d' '); do 11 | partof="$(systemctl --user show -p PartOf --value "$unit")" 12 | for target in cosmic-session.target graphical-session.target; do 13 | if [ "$partof" = "$target" ]; then 14 | systemctl --user reset-failed "$unit" 15 | break 16 | fi 17 | done 18 | done 19 | fi 20 | 21 | # use the user's preferred shell to acquire environment variables 22 | # see: https://github.com/pop-os/cosmic-session/issues/23 23 | if [ -n "${SHELL}" ]; then 24 | # --in-login-shell: our flag to indicate that we don't need to recurse any further 25 | if [ "${1}" != "--in-login-shell" ]; then 26 | # `exec -l`: like `login`, prefixes $SHELL with a hyphen to start a login shell 27 | exec bash -c "exec -l '${SHELL}' -c '${0} --in-login-shell'" 28 | fi 29 | fi 30 | 31 | export XDG_CURRENT_DESKTOP="${XDG_CURRENT_DESKTOP:=sway}" 32 | export XDG_SESSION_TYPE="${XDG_SESSION_TYPE:=wayland}" 33 | export XCURSOR_THEME="${XCURSOR_THEME:=Cosmic}" 34 | export _JAVA_AWT_WM_NONREPARENTING=1 35 | export GDK_BACKEND=wayland,x11 36 | export MOZ_ENABLE_WAYLAND=1 37 | export QT_QPA_PLATFORM="wayland;xcb" 38 | export QT_AUTO_SCREEN_SCALE_FACTOR=1 39 | export QT_ENABLE_HIGHDPI_SCALING=1 40 | 41 | if command -v systemctl >/dev/null; then 42 | # set environment variables for new units started by user service manager 43 | systemctl --user import-environment XDG_SESSION_TYPE XDG_CURRENT_DESKTOP 44 | fi 45 | # Run cosmic-session 46 | if [[ -z "${DBUS_SESSION_BUS_ADDRESS}" ]]; then 47 | exec /usr/bin/dbus-run-session -- /usr/bin/cosmic-session sway -c /etc/sway/config-cosmic 48 | else 49 | exec /usr/bin/cosmic-session sway -c /etc/sway/config-cosmic 50 | fi 51 | --------------------------------------------------------------------------------