From 1cbef56a5abe29793565e1cc7f6c438767b5f194 Mon Sep 17 00:00:00 2001 From: Ward from fusion-voyager-3 Date: Wed, 28 Aug 2024 02:17:57 +0300 Subject: [PATCH] begin rust rewrite --- .gitignore | 1 + Cargo.lock | 1312 +++++++++++++++++ Cargo.toml | 12 + build.rs | 9 + ...thub.pikaos-linux.pikagnomelayouts.desktop | 0 ....pikaos-linux.pikagnomelayouts.gschema.xml | 24 + .../layout-scripts/gnome2.sh | 0 .../layout-scripts/macos.sh | 0 .../layout-scripts/reset.sh | 0 .../layout-scripts/unity.sh | 0 .../layout-scripts/win10.sh | 0 .../layout-scripts/win11.sh | 0 data/polkit-1/actions/fkm.change.scx.policy | 19 + .../actions/fkm.kernel.cachyos.init.policy | 19 + .../actions/fkm.modify.package.policy | 19 + .../rules.d/99-fkm.kernel.cachyos.init.rules | 6 + debian/changelog | 6 + debian/control | 10 +- debian/pika-gnome-layouts.postinst | 10 +- debian/pika-gnome-layouts.postrm | 10 +- .../accent-color-icons}/blue.svg | 0 .../accent-color-icons}/gray.svg | 0 .../accent-color-icons}/green.svg | 0 .../accent-color-icons}/orange.svg | 0 .../accent-color-icons}/pink.svg | 0 .../accent-color-icons}/purple.svg | 0 .../accent-color-icons}/red.svg | 0 .../accent-color-icons}/teal.svg | 0 .../accent-color-icons}/yellow.svg | 0 .../previews/eleven.svg | 0 .../previews/gnome.svg | 0 .../previews/gnome2.svg | 0 .../previews/pineapple.svg | 0 .../previews/traditional.svg | 0 .../previews/unity.svg | 0 resources/resources.gresource.xml | 20 + src/build_ui.rs | 81 + src/config.rs | 4 + src/content/mod.rs | 64 + src/main.rs | 51 + usr/bin/pika-gnome-layouts | 7 - usr/lib/pika/gnome-layouts/all.sh | 10 - usr/lib/pika/gnome-layouts/dconf-accent.sh | 19 - usr/lib/pika/gnome-layouts/main.py | 150 -- usr/lib/pika/gnome-layouts/main.ui | 835 ----------- usr/lib/pika/gnome-layouts/papirus-folders | 533 ------- .../gnome-layouts/previews/gnome-theme.png | Bin 40134 -> 0 bytes .../gnome-layouts/previews/pika-theme.png | Bin 69356 -> 0 bytes usr/lib/pika/gnome-layouts/reload.sh | 8 - usr/lib/pika/gnome-layouts/theme.sh | 56 - .../schemas/org.pika.layouts.gschema.xml | 18 - 51 files changed, 1674 insertions(+), 1639 deletions(-) create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 build.rs rename usr/share/applications/pika-gnome-layouts.desktop => data/com.github.pikaos-linux.pikagnomelayouts.desktop (100%) create mode 100644 data/com.github.pikaos-linux.pikagnomelayouts.gschema.xml rename {usr/lib/pika/gnome-layouts => data}/layout-scripts/gnome2.sh (100%) rename {usr/lib/pika/gnome-layouts => data}/layout-scripts/macos.sh (100%) rename {usr/lib/pika/gnome-layouts => data}/layout-scripts/reset.sh (100%) rename {usr/lib/pika/gnome-layouts => data}/layout-scripts/unity.sh (100%) rename {usr/lib/pika/gnome-layouts => data}/layout-scripts/win10.sh (100%) rename {usr/lib/pika/gnome-layouts => data}/layout-scripts/win11.sh (100%) create mode 100644 data/polkit-1/actions/fkm.change.scx.policy create mode 100644 data/polkit-1/actions/fkm.kernel.cachyos.init.policy create mode 100644 data/polkit-1/actions/fkm.modify.package.policy create mode 100644 data/polkit-1/rules.d/99-fkm.kernel.cachyos.init.rules rename {usr/lib/pika/gnome-layouts/accent-colors => resources/accent-color-icons}/blue.svg (100%) rename {usr/lib/pika/gnome-layouts/accent-colors => resources/accent-color-icons}/gray.svg (100%) rename {usr/lib/pika/gnome-layouts/accent-colors => resources/accent-color-icons}/green.svg (100%) rename {usr/lib/pika/gnome-layouts/accent-colors => resources/accent-color-icons}/orange.svg (100%) rename {usr/lib/pika/gnome-layouts/accent-colors => resources/accent-color-icons}/pink.svg (100%) rename {usr/lib/pika/gnome-layouts/accent-colors => resources/accent-color-icons}/purple.svg (100%) rename {usr/lib/pika/gnome-layouts/accent-colors => resources/accent-color-icons}/red.svg (100%) rename {usr/lib/pika/gnome-layouts/accent-colors => resources/accent-color-icons}/teal.svg (100%) rename {usr/lib/pika/gnome-layouts/accent-colors => resources/accent-color-icons}/yellow.svg (100%) rename usr/lib/pika/gnome-layouts/previews/win11.svg => resources/previews/eleven.svg (100%) rename {usr/lib/pika/gnome-layouts => resources}/previews/gnome.svg (100%) rename {usr/lib/pika/gnome-layouts => resources}/previews/gnome2.svg (100%) rename usr/lib/pika/gnome-layouts/previews/macos.svg => resources/previews/pineapple.svg (100%) rename usr/lib/pika/gnome-layouts/previews/win10.svg => resources/previews/traditional.svg (100%) rename {usr/lib/pika/gnome-layouts => resources}/previews/unity.svg (100%) create mode 100644 resources/resources.gresource.xml create mode 100644 src/build_ui.rs create mode 100644 src/config.rs create mode 100644 src/content/mod.rs create mode 100644 src/main.rs delete mode 100755 usr/bin/pika-gnome-layouts delete mode 100755 usr/lib/pika/gnome-layouts/all.sh delete mode 100755 usr/lib/pika/gnome-layouts/dconf-accent.sh delete mode 100644 usr/lib/pika/gnome-layouts/main.py delete mode 100644 usr/lib/pika/gnome-layouts/main.ui delete mode 100755 usr/lib/pika/gnome-layouts/papirus-folders delete mode 100644 usr/lib/pika/gnome-layouts/previews/gnome-theme.png delete mode 100644 usr/lib/pika/gnome-layouts/previews/pika-theme.png delete mode 100755 usr/lib/pika/gnome-layouts/reload.sh delete mode 100755 usr/lib/pika/gnome-layouts/theme.sh delete mode 100644 usr/share/glib-2.0/schemas/org.pika.layouts.gschema.xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..73774f7 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,1312 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "arc-swap" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" + +[[package]] +name = "autocfg" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" + +[[package]] +name = "base62" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f879ef8fc74665ed7f0e6127cb106315888fc2744f68e14b74f83edbb2a08992" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" + +[[package]] +name = "bstr" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "cairo-rs" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8a0ea147c94108c9613235388f540e4d14c327f7081c9e471fc8ee8a2533e69" +dependencies = [ + "bitflags 2.6.0", + "cairo-sys-rs", + "glib 0.20.2", + "libc", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "428290f914b9b86089f60f5d8a9f6e440508e1bcff23b25afd51502b0a2da88f" +dependencies = [ + "glib-sys 0.20.2", + "libc", + "system-deps 7.0.2", +] + +[[package]] +name = "cfg-expr" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" +dependencies = [ + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cfg-expr" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "345c78335be0624ed29012dc10c49102196c6882c12dde65d9f35b02da2aada8" +dependencies = [ + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" + +[[package]] +name = "either" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "fastrand" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" + +[[package]] +name = "field-offset" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" +dependencies = [ + "memoffset", + "rustc_version", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-core", + "futures-macro", + "futures-task", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8730751991b97419fc3f0c2dca2c9e45b48edf46e48e0f965964ecf33889812f" +dependencies = [ + "gdk-pixbuf-sys", + "gio 0.20.1", + "glib 0.20.2", + "libc", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ffbf649fd5b1c8c0f0feeb015b7533c3ef92da2887fb95ddd338bc2b1644a7c" +dependencies = [ + "gio-sys 0.20.1", + "glib-sys 0.20.2", + "gobject-sys 0.20.1", + "libc", + "system-deps 7.0.2", +] + +[[package]] +name = "gdk4" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b7d7237c1487ed4b300aac7744efcbf1319e12d60d7afcd6f505414bd5b5dea" +dependencies = [ + "cairo-rs", + "gdk-pixbuf", + "gdk4-sys", + "gio 0.20.1", + "glib 0.20.2", + "libc", + "pango", +] + +[[package]] +name = "gdk4-sys" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a67576c8ec012156d7f680e201a807b4432a77babb3157e0555e990ab6bcd878" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys 0.20.1", + "glib-sys 0.20.2", + "gobject-sys 0.20.1", + "libc", + "pango-sys", + "pkg-config", + "system-deps 7.0.2", +] + +[[package]] +name = "gio" +version = "0.19.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c49f117d373ffcc98a35d114db5478bc223341cff53e39a5d6feced9e2ddffe" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "gio-sys 0.19.8", + "glib 0.19.9", + "libc", + "pin-project-lite", + "smallvec", + "thiserror", +] + +[[package]] +name = "gio" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcacaa37401cad0a95aadd266bc39c72a131d454fc012f6dfd217f891d76cc52" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-util", + "gio-sys 0.20.1", + "glib 0.20.2", + "libc", + "pin-project-lite", + "smallvec", +] + +[[package]] +name = "gio-sys" +version = "0.19.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cd743ba4714d671ad6b6234e8ab2a13b42304d0e13ab7eba1dcdd78a7d6d4ef" +dependencies = [ + "glib-sys 0.19.8", + "gobject-sys 0.19.8", + "libc", + "system-deps 6.2.2", + "windows-sys 0.52.0", +] + +[[package]] +name = "gio-sys" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5237611e97e9b86ab5768adc3eef853ae713ea797aa3835404acdfacffc9fb38" +dependencies = [ + "glib-sys 0.20.2", + "gobject-sys 0.20.1", + "libc", + "system-deps 7.0.2", + "windows-sys 0.52.0", +] + +[[package]] +name = "glib" +version = "0.19.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39650279f135469465018daae0ba53357942a5212137515777d5fdca74984a44" +dependencies = [ + "bitflags 2.6.0", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys 0.19.8", + "glib-macros 0.19.9", + "glib-sys 0.19.8", + "gobject-sys 0.19.8", + "libc", + "memchr", + "smallvec", + "thiserror", +] + +[[package]] +name = "glib" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c1ea829497810f8e87f5ee6d05c4879af641704add879e6b6080607cceeefe4" +dependencies = [ + "bitflags 2.6.0", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys 0.20.1", + "glib-macros 0.20.2", + "glib-sys 0.20.2", + "gobject-sys 0.20.1", + "libc", + "memchr", + "smallvec", +] + +[[package]] +name = "glib-build-tools" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "108f374fff60efd14b0d70d8916e7213aed18d7dd071ba3e9334ed2dac1dc86a" +dependencies = [ + "gio 0.19.8", +] + +[[package]] +name = "glib-macros" +version = "0.19.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4429b0277a14ae9751350ad9b658b1be0abb5b54faa5bcdf6e74a3372582fad7" +dependencies = [ + "heck", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "glib-macros" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "951aa19c5e89555c0ca5e94ee874b24b2594ece8412b387bd84ee3266b8a3ea0" +dependencies = [ + "heck", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "glib-sys" +version = "0.19.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c2dc18d3a82b0006d470b13304fbbb3e0a9bd4884cf985a60a7ed733ac2c4a5" +dependencies = [ + "libc", + "system-deps 6.2.2", +] + +[[package]] +name = "glib-sys" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92eee4531c1c9abba945d19378b205031b5890e1f99c319ba0503b6e0c06a163" +dependencies = [ + "libc", + "system-deps 7.0.2", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "globset" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" +dependencies = [ + "aho-corasick", + "bstr", + "log", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "globwalk" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93e3af942408868f6934a7b85134a3230832b9977cf66125df2f9edcfce4ddcc" +dependencies = [ + "bitflags 1.3.2", + "ignore", + "walkdir", +] + +[[package]] +name = "gobject-sys" +version = "0.19.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e697e252d6e0416fd1d9e169bda51c0f1c926026c39ca21fbe8b1bb5c3b8b9e" +dependencies = [ + "glib-sys 0.19.8", + "libc", + "system-deps 6.2.2", +] + +[[package]] +name = "gobject-sys" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa3d1dcd8a1eb2e7c22be3d5e792b14b186f3524f79b25631730f9a8c169d49a" +dependencies = [ + "glib-sys 0.20.2", + "libc", + "system-deps 7.0.2", +] + +[[package]] +name = "graphene-rs" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80aac87f74e81c0e13433e892a047237abdc37945c86887f5eed905038356e69" +dependencies = [ + "glib 0.20.2", + "graphene-sys", + "libc", +] + +[[package]] +name = "graphene-sys" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc2f91ecd32989efad60326cc20a8fb252bd2852239a08e4e70cde8c100de9ca" +dependencies = [ + "glib-sys 0.20.2", + "libc", + "pkg-config", + "system-deps 7.0.2", +] + +[[package]] +name = "gsk4" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3cf2091e1af185b347b3450817d93dea6fe435df7abd4c2cd7fb5bcb4cfda8" +dependencies = [ + "cairo-rs", + "gdk4", + "glib 0.20.2", + "graphene-rs", + "gsk4-sys", + "libc", + "pango", +] + +[[package]] +name = "gsk4-sys" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6aa69614a26d8760c186c3690f1b0fbb917572ca23ef83137445770ceddf8cde" +dependencies = [ + "cairo-sys-rs", + "gdk4-sys", + "glib-sys 0.20.2", + "gobject-sys 0.20.1", + "graphene-sys", + "libc", + "pango-sys", + "system-deps 7.0.2", +] + +[[package]] +name = "gtk4" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4fe572bf318e5dbc6f5a2f8a25d853f1ae3f42768c0b08af6ca20a18f4057e1" +dependencies = [ + "cairo-rs", + "field-offset", + "futures-channel", + "gdk-pixbuf", + "gdk4", + "gio 0.20.1", + "glib 0.20.2", + "graphene-rs", + "gsk4", + "gtk4-macros", + "gtk4-sys", + "libc", + "pango", +] + +[[package]] +name = "gtk4-macros" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9e7b362c8fccd2712297903717d65d30defdab2b509bc9d209cbe5ffb9fabaf" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "gtk4-sys" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1114a207af8ada02cf4658a76692f4190f06f093380d5be07e3ca8b43aa7c666" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk4-sys", + "gio-sys 0.20.1", + "glib-sys 0.20.2", + "gobject-sys 0.20.1", + "graphene-sys", + "gsk4-sys", + "libc", + "pango-sys", + "system-deps 7.0.2", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "ignore" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1" +dependencies = [ + "crossbeam-deque", + "globset", + "log", + "memchr", + "regex-automata", + "same-file", + "walkdir", + "winapi-util", +] + +[[package]] +name = "indexmap" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libadwaita" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ff9c222b5c783729de45185f07b2fec2d43a7f9c63961e777d3667e20443878" +dependencies = [ + "gdk4", + "gio 0.20.1", + "glib 0.20.2", + "gtk4", + "libadwaita-sys", + "libc", + "pango", +] + +[[package]] +name = "libadwaita-sys" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c44d8bdbad31d6639e1f20cc9c1424f1a8e02d751fc28d44659bf743fb9eca6" +dependencies = [ + "gdk4-sys", + "gio-sys 0.20.1", + "glib-sys 0.20.2", + "gobject-sys 0.20.1", + "gtk4-sys", + "libc", + "pango-sys", + "system-deps 7.0.2", +] + +[[package]] +name = "libc" +version = "0.2.158" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" + +[[package]] +name = "libyml" +version = "0.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64804cc6a5042d4f05379909ba25b503ec04e2c082151d62122d5dcaa274b961" + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "log" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "normpath" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8911957c4b1549ac0dc74e30db9c8b0e66ddcd6d7acc33098f4c63a64a6d7ed" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "pango" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5764e5a174a5a0ec054fe5962ce6d4fc7052e2d0dcc23bbc77202b40a4a403d3" +dependencies = [ + "gio 0.20.1", + "glib 0.20.2", + "libc", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd317e1de76b14b3d3efe05518c08b360327f1ab7fec150473a89ffcad4b072d" +dependencies = [ + "glib-sys 0.20.2", + "gobject-sys 0.20.1", + "libc", + "system-deps 7.0.2", +] + +[[package]] +name = "pika-gnome-layouts" +version = "4.0.0" +dependencies = [ + "glib-build-tools", + "gtk4", + "libadwaita", + "rust-i18n", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "proc-macro-crate" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" +dependencies = [ + "toml_edit 0.22.20", +] + +[[package]] +name = "proc-macro2" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "regex" +version = "1.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" + +[[package]] +name = "rust-i18n" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "039f57d22229db401af3458ca939300178e99e88b938573cea12b7c2b0f09724" +dependencies = [ + "globwalk", + "once_cell", + "regex", + "rust-i18n-macro", + "rust-i18n-support", + "smallvec", +] + +[[package]] +name = "rust-i18n-macro" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dde5c022360a2e54477882843d56b6f9bcb4bc62f504b651a2f497f0028d174f" +dependencies = [ + "glob", + "once_cell", + "proc-macro2", + "quote", + "rust-i18n-support", + "serde", + "serde_json", + "serde_yml", + "syn", +] + +[[package]] +name = "rust-i18n-support" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75d2844d36f62b5d6b66f9cf8f8cbdbbbdcdb5fd37a473a9cc2fb45fdcf485d2" +dependencies = [ + "arc-swap", + "base62", + "globwalk", + "itertools", + "lazy_static", + "normpath", + "once_cell", + "proc-macro2", + "regex", + "serde", + "serde_json", + "serde_yml", + "siphasher", + "toml 0.7.8", + "triomphe", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.38.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a85d50532239da68e9addb745ba38ff4612a242c1c7ceea689c4bc7c2f43c36f" +dependencies = [ + "bitflags 2.6.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "semver" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" + +[[package]] +name = "serde" +version = "1.0.209" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.209" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.127" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_spanned" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_yml" +version = "0.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e76bab63c3fd98d27c17f9cbce177f64a91f5e69ac04cafe04e1bb25d1dc3c" +dependencies = [ + "indexmap", + "itoa", + "libyml", + "log", + "memchr", + "ryu", + "serde", + "serde_json", + "tempfile", +] + +[[package]] +name = "siphasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "syn" +version = "2.0.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578e081a14e0cefc3279b0472138c513f37b41a08d5a3cca9b6e4e8ceb6cd525" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "system-deps" +version = "6.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" +dependencies = [ + "cfg-expr 0.15.8", + "heck", + "pkg-config", + "toml 0.8.19", + "version-compare", +] + +[[package]] +name = "system-deps" +version = "7.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "070a0a5e7da2d24be457809c4b3baa57a835fd2829ad8b86f9a049052fe71031" +dependencies = [ + "cfg-expr 0.16.0", + "heck", + "pkg-config", + "toml 0.8.19", + "version-compare", +] + +[[package]] +name = "target-lexicon" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + +[[package]] +name = "tempfile" +version = "3.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" +dependencies = [ + "cfg-if", + "fastrand", + "once_cell", + "rustix", + "windows-sys 0.59.0", +] + +[[package]] +name = "thiserror" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "toml" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.19.15", +] + +[[package]] +name = "toml" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.20", +] + +[[package]] +name = "toml_datetime" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.18", +] + +[[package]] +name = "triomphe" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6631e42e10b40c0690bf92f404ebcfe6e1fdb480391d15f17cc8e96eeed5369" +dependencies = [ + "arc-swap", + "serde", + "stable_deref_trait", +] + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "version-compare" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" +dependencies = [ + "memchr", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..b1cf0e5 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "pika-gnome-layouts" +version = "4.0.0" +edition = "2021" + +[dependencies] +adw = { version = "0.7.0", package = "libadwaita", features = ["v1_5"] } +gtk = { version = "0.9.0", package = "gtk4", features = ["v4_14"] } +rust-i18n = "3.0.1" + +[build-dependencies] +glib-build-tools = "0.19.0" \ No newline at end of file diff --git a/build.rs b/build.rs new file mode 100644 index 0000000..a8b3513 --- /dev/null +++ b/build.rs @@ -0,0 +1,9 @@ +// R1 + +fn main() { + glib_build_tools::compile_resources( + &["resources"], + "resources/resources.gresource.xml", + "resources.gresource", + ); +} diff --git a/usr/share/applications/pika-gnome-layouts.desktop b/data/com.github.pikaos-linux.pikagnomelayouts.desktop similarity index 100% rename from usr/share/applications/pika-gnome-layouts.desktop rename to data/com.github.pikaos-linux.pikagnomelayouts.desktop diff --git a/data/com.github.pikaos-linux.pikagnomelayouts.gschema.xml b/data/com.github.pikaos-linux.pikagnomelayouts.gschema.xml new file mode 100644 index 0000000..5b958d8 --- /dev/null +++ b/data/com.github.pikaos-linux.pikagnomelayouts.gschema.xml @@ -0,0 +1,24 @@ + + + + + 700 + Default window width + + + 500 + Default window height + + + false + Default window maximized behaviour + + + 0 + What layout is selected. + + What layout is selected. + + + + diff --git a/usr/lib/pika/gnome-layouts/layout-scripts/gnome2.sh b/data/layout-scripts/gnome2.sh similarity index 100% rename from usr/lib/pika/gnome-layouts/layout-scripts/gnome2.sh rename to data/layout-scripts/gnome2.sh diff --git a/usr/lib/pika/gnome-layouts/layout-scripts/macos.sh b/data/layout-scripts/macos.sh similarity index 100% rename from usr/lib/pika/gnome-layouts/layout-scripts/macos.sh rename to data/layout-scripts/macos.sh diff --git a/usr/lib/pika/gnome-layouts/layout-scripts/reset.sh b/data/layout-scripts/reset.sh similarity index 100% rename from usr/lib/pika/gnome-layouts/layout-scripts/reset.sh rename to data/layout-scripts/reset.sh diff --git a/usr/lib/pika/gnome-layouts/layout-scripts/unity.sh b/data/layout-scripts/unity.sh similarity index 100% rename from usr/lib/pika/gnome-layouts/layout-scripts/unity.sh rename to data/layout-scripts/unity.sh diff --git a/usr/lib/pika/gnome-layouts/layout-scripts/win10.sh b/data/layout-scripts/win10.sh similarity index 100% rename from usr/lib/pika/gnome-layouts/layout-scripts/win10.sh rename to data/layout-scripts/win10.sh diff --git a/usr/lib/pika/gnome-layouts/layout-scripts/win11.sh b/data/layout-scripts/win11.sh similarity index 100% rename from usr/lib/pika/gnome-layouts/layout-scripts/win11.sh rename to data/layout-scripts/win11.sh diff --git a/data/polkit-1/actions/fkm.change.scx.policy b/data/polkit-1/actions/fkm.change.scx.policy new file mode 100644 index 0000000..e8d1d49 --- /dev/null +++ b/data/polkit-1/actions/fkm.change.scx.policy @@ -0,0 +1,19 @@ + + + + + + Authentication is required to change the SCX Scheduler + com.github.cosmicfusion.fedora-kernel-manager + + auth_admin + auth_admin + auth_admin + + /usr/lib/fedora-kernel-manager/scripts/change_scx.sh + true + + + \ No newline at end of file diff --git a/data/polkit-1/actions/fkm.kernel.cachyos.init.policy b/data/polkit-1/actions/fkm.kernel.cachyos.init.policy new file mode 100644 index 0000000..a0d8b34 --- /dev/null +++ b/data/polkit-1/actions/fkm.kernel.cachyos.init.policy @@ -0,0 +1,19 @@ + + + + + + Authentication is required to initialize the Cachyos kernel repo + com.github.cosmicfusion.fedora-kernel-manager + + auth_admin + auth_admin + auth_admin + + /usr/lib/fedora-kernel-manager/scripts/kernel-cachyos-init.sh + true + + + \ No newline at end of file diff --git a/data/polkit-1/actions/fkm.modify.package.policy b/data/polkit-1/actions/fkm.modify.package.policy new file mode 100644 index 0000000..f40a4d8 --- /dev/null +++ b/data/polkit-1/actions/fkm.modify.package.policy @@ -0,0 +1,19 @@ + + + + + + Authentication is required to modify system packages + com.github.cosmicfusion.fedora-kernel-manager + + auth_admin + auth_admin + auth_admin + + /usr/lib/fedora-kernel-manager/scripts/modify_package.sh + true + + + \ No newline at end of file diff --git a/data/polkit-1/rules.d/99-fkm.kernel.cachyos.init.rules b/data/polkit-1/rules.d/99-fkm.kernel.cachyos.init.rules new file mode 100644 index 0000000..9d3ffe1 --- /dev/null +++ b/data/polkit-1/rules.d/99-fkm.kernel.cachyos.init.rules @@ -0,0 +1,6 @@ +/* Allow passwordless auth for fkm.kernel.cachyos.init +polkit.addRule(function(action, subject) { + if (action.id == "fkm.kernel.cachyos.init") { + return polkit.Result.YES; + } +}); \ No newline at end of file diff --git a/debian/changelog b/debian/changelog index 4d76b91..2ab1ff5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +pika-gnome-layouts (4.0.0-100pika1) pika; urgency=low + + * Port OS 4/Rust/GTK4/Libadwaita + + -- Ward Nakchbandi Sat, 01 Oct 2022 14:50:00 +0200 + pika-gnome-layouts (3.0-100pika2) pikauwu; urgency=low * Refine UI diff --git a/debian/control b/debian/control index b55bdc6..d3d4ba8 100644 --- a/debian/control +++ b/debian/control @@ -3,7 +3,15 @@ Section: misc Priority: optional Maintainer: Ward Nakchbandi Standards-Version: 4.6.1 -Build-Depends: debhelper-compat (= 13) +Build-Depends: + debhelper-compat (= 13), + build-essential, + debhelper, +# cargo, + libadwaita-1-dev, + libgtk-4-dev, + desktop-file-utils, + make, Package: pika-gnome-layouts Architecture: all diff --git a/debian/pika-gnome-layouts.postinst b/debian/pika-gnome-layouts.postinst index 52075e6..aae74ef 100755 --- a/debian/pika-gnome-layouts.postinst +++ b/debian/pika-gnome-layouts.postinst @@ -1,2 +1,10 @@ -glib-compile-schemas /usr/share/glib-2.0/schemas/ +#!/bin/sh + + +set -e + + update-mime-database /usr/share/mime + update-desktop-database + glib-compile-schemas /usr/share/glib-2.0/schemas + diff --git a/debian/pika-gnome-layouts.postrm b/debian/pika-gnome-layouts.postrm index 52075e6..aae74ef 100755 --- a/debian/pika-gnome-layouts.postrm +++ b/debian/pika-gnome-layouts.postrm @@ -1,2 +1,10 @@ -glib-compile-schemas /usr/share/glib-2.0/schemas/ +#!/bin/sh + + +set -e + + update-mime-database /usr/share/mime + update-desktop-database + glib-compile-schemas /usr/share/glib-2.0/schemas + diff --git a/usr/lib/pika/gnome-layouts/accent-colors/blue.svg b/resources/accent-color-icons/blue.svg similarity index 100% rename from usr/lib/pika/gnome-layouts/accent-colors/blue.svg rename to resources/accent-color-icons/blue.svg diff --git a/usr/lib/pika/gnome-layouts/accent-colors/gray.svg b/resources/accent-color-icons/gray.svg similarity index 100% rename from usr/lib/pika/gnome-layouts/accent-colors/gray.svg rename to resources/accent-color-icons/gray.svg diff --git a/usr/lib/pika/gnome-layouts/accent-colors/green.svg b/resources/accent-color-icons/green.svg similarity index 100% rename from usr/lib/pika/gnome-layouts/accent-colors/green.svg rename to resources/accent-color-icons/green.svg diff --git a/usr/lib/pika/gnome-layouts/accent-colors/orange.svg b/resources/accent-color-icons/orange.svg similarity index 100% rename from usr/lib/pika/gnome-layouts/accent-colors/orange.svg rename to resources/accent-color-icons/orange.svg diff --git a/usr/lib/pika/gnome-layouts/accent-colors/pink.svg b/resources/accent-color-icons/pink.svg similarity index 100% rename from usr/lib/pika/gnome-layouts/accent-colors/pink.svg rename to resources/accent-color-icons/pink.svg diff --git a/usr/lib/pika/gnome-layouts/accent-colors/purple.svg b/resources/accent-color-icons/purple.svg similarity index 100% rename from usr/lib/pika/gnome-layouts/accent-colors/purple.svg rename to resources/accent-color-icons/purple.svg diff --git a/usr/lib/pika/gnome-layouts/accent-colors/red.svg b/resources/accent-color-icons/red.svg similarity index 100% rename from usr/lib/pika/gnome-layouts/accent-colors/red.svg rename to resources/accent-color-icons/red.svg diff --git a/usr/lib/pika/gnome-layouts/accent-colors/teal.svg b/resources/accent-color-icons/teal.svg similarity index 100% rename from usr/lib/pika/gnome-layouts/accent-colors/teal.svg rename to resources/accent-color-icons/teal.svg diff --git a/usr/lib/pika/gnome-layouts/accent-colors/yellow.svg b/resources/accent-color-icons/yellow.svg similarity index 100% rename from usr/lib/pika/gnome-layouts/accent-colors/yellow.svg rename to resources/accent-color-icons/yellow.svg diff --git a/usr/lib/pika/gnome-layouts/previews/win11.svg b/resources/previews/eleven.svg similarity index 100% rename from usr/lib/pika/gnome-layouts/previews/win11.svg rename to resources/previews/eleven.svg diff --git a/usr/lib/pika/gnome-layouts/previews/gnome.svg b/resources/previews/gnome.svg similarity index 100% rename from usr/lib/pika/gnome-layouts/previews/gnome.svg rename to resources/previews/gnome.svg diff --git a/usr/lib/pika/gnome-layouts/previews/gnome2.svg b/resources/previews/gnome2.svg similarity index 100% rename from usr/lib/pika/gnome-layouts/previews/gnome2.svg rename to resources/previews/gnome2.svg diff --git a/usr/lib/pika/gnome-layouts/previews/macos.svg b/resources/previews/pineapple.svg similarity index 100% rename from usr/lib/pika/gnome-layouts/previews/macos.svg rename to resources/previews/pineapple.svg diff --git a/usr/lib/pika/gnome-layouts/previews/win10.svg b/resources/previews/traditional.svg similarity index 100% rename from usr/lib/pika/gnome-layouts/previews/win10.svg rename to resources/previews/traditional.svg diff --git a/usr/lib/pika/gnome-layouts/previews/unity.svg b/resources/previews/unity.svg similarity index 100% rename from usr/lib/pika/gnome-layouts/previews/unity.svg rename to resources/previews/unity.svg diff --git a/resources/resources.gresource.xml b/resources/resources.gresource.xml new file mode 100644 index 0000000..ea73474 --- /dev/null +++ b/resources/resources.gresource.xml @@ -0,0 +1,20 @@ + + + + accent-color-icons/blue.svg + accent-color-icons/gray.svg + accent-color-icons/green.svg + accent-color-icons/orange.svg + accent-color-icons/pink.svg + accent-color-icons/purple.svg + accent-color-icons/red.svg + accent-color-icons/teal.svg + accent-color-icons/yellow.svg + previews/gnome.svg + previews/gnome2.svg + previews/pineapple.svg + previews/unity.svg + previews/traditional.svg + previews/eleven.svg + + diff --git a/src/build_ui.rs b/src/build_ui.rs new file mode 100644 index 0000000..bf7c70a --- /dev/null +++ b/src/build_ui.rs @@ -0,0 +1,81 @@ +use gtk::{gio as gio, glib as glib, prelude::*}; +use glib::clone; +use crate::{content, config::{APP_ID, APP_ICON, APP_GITHUB, VERSION}}; + +pub fn build_ui(app: &adw::Application) { + gtk::glib::set_prgname(Some(t!("app_name").to_string())); + glib::set_application_name(&t!("app_name").to_string()); + let glib_settings = gio::Settings::new(APP_ID); + + let window_headerbar = adw::HeaderBar::builder() + .title_widget( + &adw::WindowTitle::builder() + .title(t!("application_name")) + .build(), + ) + .build(); + + let content_stack = gtk::Stack::builder() + .build(); + + content::content(&content_stack); + + let window_toolbar = adw::ToolbarView::builder().content(&content_stack).build(); + + let window = adw::ApplicationWindow::builder() + .title(t!("app_name")) + .application(app) + .content(&window_toolbar) + .icon_name(APP_ICON) + .default_width(glib_settings.int("window-width")) + .default_height(glib_settings.int("window-height")) + .width_request(700) + .height_request(500) + .startup_id(APP_ID) + .build(); + + if glib_settings.boolean("is-maximized") == true { + window.maximize() + } + + window_toolbar.add_top_bar(&window_headerbar); + + window.connect_close_request(move |window| { + if let Some(application) = window.application() { + save_window_size(&window, &glib_settings); + application.remove_window(window); + } + glib::Propagation::Proceed + }); + + let credits_button = gtk::Button::builder() + .icon_name("dialog-information-symbolic") + .build(); + + let credits_window = adw::AboutWindow::builder() + .application_icon(APP_ICON) + .application_name(t!("application_name")) + .transient_for(&window) + .version(VERSION) + .hide_on_close(true) + .developer_name(t!("developer_name")) + .license_type(gtk::License::Mpl20) + .issue_url(APP_GITHUB.to_owned() + "/issues") + .build(); + + window_headerbar.pack_end(&credits_button); + credits_button.connect_clicked( + move |_| + credits_window.present() + ); + + window.present(); +} + +fn save_window_size(window: &adw::ApplicationWindow, glib_settings: &gio::Settings) { + let size = window.default_size(); + + let _ = glib_settings.set_int("window-width", size.0); + let _ = glib_settings.set_int("window-height", size.1); + let _ = glib_settings.set_boolean("is-maximized", window.is_maximized()); +} \ No newline at end of file diff --git a/src/config.rs b/src/config.rs new file mode 100644 index 0000000..a194a26 --- /dev/null +++ b/src/config.rs @@ -0,0 +1,4 @@ +pub const APP_ID: &str = "com.github.pikaos-linux.pikagnomelayouts"; +pub const VERSION: &str = env!("CARGO_PKG_VERSION"); +pub const APP_ICON: &str = "com.github.pikaos-linux.pikagnomelayouts"; +pub const APP_GITHUB: &str = "https://git.pika-os.com/gnome-packages/pika-gnome-layouts"; \ No newline at end of file diff --git a/src/content/mod.rs b/src/content/mod.rs new file mode 100644 index 0000000..c70477e --- /dev/null +++ b/src/content/mod.rs @@ -0,0 +1,64 @@ +use gtk::prelude::*; + +struct DesktopLayout { + name: String, + id: i32, +} + +pub fn content( + content_stack: >k::Stack, +) { + let content_box = gtk::Box::builder() + .orientation(gtk::Orientation::Vertical) + .vexpand(true) + .hexpand(true) + .build(); + + let desktop_layouts = [ + &DesktopLayout { + name: "gnome".to_string(), + id: 0 + }, + &DesktopLayout { + name: "traditional".to_string(), + id: 0 + }, + &DesktopLayout { + name: "eleven".to_string(), + id: 0 + }, + &DesktopLayout { + name: "pineapple".to_string(), + id: 0 + }, + &DesktopLayout { + name: "gnome2".to_string(), + id: 0 + }, + &DesktopLayout { + name: "unity".to_string(), + id: 0 + }, + ]; + + let null_checkbutton = gtk::CheckButton::builder() + .build(); + + for layout in desktop_layouts { + let layout_name = layout.name.clone(); + let layout_id = layout.id; + + let layout_box = gtk::Box::builder() + .orientation(gtk::Orientation::Horizontal) + .build(); + let layout_preview = gtk::Image::builder() + .resource(format!("/com/github/pikaos-linux/pikagnomelayouts/previews/{}.svg", &layout_name)) + .build(); + content_box.append(&layout_preview); + } + + content_stack.add_named( + &content_box, + Some("content_page"), + ); +} \ No newline at end of file diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..fc24b6e --- /dev/null +++ b/src/main.rs @@ -0,0 +1,51 @@ +mod config; +mod build_ui; +mod content; + +use std::env; +use gtk::{gio,gdk,CssProvider,prelude::*, glib as glib}; +use config::APP_ID; + +use crate::gdk::Display; + +#[macro_use] +extern crate rust_i18n; +i18n!("locales", fallback = "en_US"); + +fn main() -> glib::ExitCode { + let current_locale = match env::var_os("LANG") { + Some(v) => v.into_string().unwrap().chars() + .take_while(|&ch| ch != '.') + .collect::(), + None => panic!("$LANG is not set"), + }; + rust_i18n::set_locale(¤t_locale); + + let app = adw::Application::builder().application_id(APP_ID).build(); + + app.connect_startup(|app| { + load_gresource(); + load_css(); + app.connect_activate(build_ui::build_ui); + }); + + // Run the application + app.run() +} + +fn load_gresource() { + gio::resources_register_include!("resources.gresource").expect("Failed to register resources."); +} + +fn load_css() { + // Load the CSS file and add it to the provider + /*let provider = CssProvider::new(); + provider.load_from_resource("/com/github/cosmicfusion/fedora-kernel-manager/css/style.css"); + + // Add the provider to the default screen + gtk::style_context_add_provider_for_display( + &Display::default().expect("Could not connect to a display."), + &provider, + gtk::STYLE_PROVIDER_PRIORITY_APPLICATION, + );*/ +} diff --git a/usr/bin/pika-gnome-layouts b/usr/bin/pika-gnome-layouts deleted file mode 100755 index 864a7ca..0000000 --- a/usr/bin/pika-gnome-layouts +++ /dev/null @@ -1,7 +0,0 @@ -#! /bin/bash -if echo $XDG_SESSION_DESKTOP | grep -i ubuntu -then - python3 /usr/lib/pika/gnome-layouts/main.py -else - zenity --error --text="current session isn't gnome" -fi diff --git a/usr/lib/pika/gnome-layouts/all.sh b/usr/lib/pika/gnome-layouts/all.sh deleted file mode 100755 index f1d1b38..0000000 --- a/usr/lib/pika/gnome-layouts/all.sh +++ /dev/null @@ -1,10 +0,0 @@ -#! /bin/bash -export ALL=True - -for f in /etc/nobara/scripts/nobara-layouts/settings-scripts/*.sh; do - bash "$f" enable -done - -export RELOG_NEEDED=1 - -/etc/nobara/scripts/nobara-layouts/reload.sh diff --git a/usr/lib/pika/gnome-layouts/dconf-accent.sh b/usr/lib/pika/gnome-layouts/dconf-accent.sh deleted file mode 100755 index 69d92cf..0000000 --- a/usr/lib/pika/gnome-layouts/dconf-accent.sh +++ /dev/null @@ -1,19 +0,0 @@ -#! /usr/bin/bash -gnome-extensions enable user-theme@gnome-shell-extensions.gcampax.github.com -if [[ $1 == Teal ]] -then - if dconf read /org/gnome/desktop/interface/color-scheme | grep dark - then - gdbus call --session --dest 'org.gnome.Shell' --object-path '/org/gnome/Shell' --method 'org.gnome.Shell.ScreenTransition' & gsettings set org.gnome.shell.extensions.user-theme name "Jasper-Dark" && gsettings set org.gnome.desktop.interface gtk-theme "Jasper-Dark" && cp -rfv "/usr/share/themes/Jasper-Dark"/gtk-4.0 "$HOME"/.config/ - - else - gdbus call --session --dest 'org.gnome.Shell' --object-path '/org/gnome/Shell' --method 'org.gnome.Shell.ScreenTransition' & gsettings set org.gnome.shell.extensions.user-theme name "Jasper-Light" && gsettings set org.gnome.desktop.interface gtk-theme "Jasper-Light" && cp -rfv "/usr/share/themes/Jasper-Light"/gtk-4.0 "$HOME"/.config/ - fi -else - if dconf read /org/gnome/desktop/interface/color-scheme | grep dark - then - gdbus call --session --dest 'org.gnome.Shell' --object-path '/org/gnome/Shell' --method 'org.gnome.Shell.ScreenTransition' & gsettings set org.gnome.shell.extensions.user-theme name "Jasper-$1-Dark" && gsettings set org.gnome.desktop.interface gtk-theme "Jasper-$1-Dark" && cp -rfv "/usr/share/themes/Jasper-$1-Dark"/gtk-4.0 "$HOME"/.config/ - else - gdbus call --session --dest 'org.gnome.Shell' --object-path '/org/gnome/Shell' --method 'org.gnome.Shell.ScreenTransition' & gsettings set org.gnome.shell.extensions.user-theme name "Jasper-$1-Light" && gsettings set org.gnome.desktop.interface gtk-theme "Jasper-$1-Light" && cp -rfv "/usr/share/themes/Jasper-$1-Light"/gtk-4.0 "$HOME"/.config/ - fi -fi diff --git a/usr/lib/pika/gnome-layouts/main.py b/usr/lib/pika/gnome-layouts/main.py deleted file mode 100644 index 6c2da44..0000000 --- a/usr/lib/pika/gnome-layouts/main.py +++ /dev/null @@ -1,150 +0,0 @@ -import gi -gi.require_version("Gtk", "3.0") -from gi.repository import Gtk, Gio -import subprocess -import os -import os.path -from pathlib import Path - -import time -import threading - -class Application: - - ### MAIN WINDOW ### - def __init__(self): - self.column_names = False - self.drop_nan = False - self.df = None - application_id="org.pika.layouts" - - self.builder = Gtk.Builder() - self.builder.add_from_file("/usr/lib/pika/gnome-layouts/main.ui") - self.builder.connect_signals(self) - win = self.builder.get_object("main_window") - - - ### Enable Extensions - - subprocess.run(["gsettings set org.gnome.shell disable-user-extensions false"], shell=True, stdout=subprocess.DEVNULL) - - accent_box = self.builder.get_object("accent_box") - - accent_output = subprocess.run(["dconf read /org/pika/layouts/pika-theme | grep 1"], shell=True) - - if (accent_output.returncode) != 0: - accent_box.hide() - - ### Window props ### - - win.connect("destroy", Gtk.main_quit) - - self.window = self.builder.get_object("main_window") - self.window.show() - - settings = Gio.Settings.new("org.pika.layouts") - - - ### Themes - def on_pika_theme_button_pressed(self, widget): - accent_box = self.builder.get_object("accent_box") - subprocess.run(["/usr/lib/pika/gnome-layouts/theme.sh pika"], shell=True) - accent_box.show() - def on_gnome_theme_button_pressed(self, widget): - accent_box = self.builder.get_object("accent_box") - subprocess.run(["/usr/lib/pika/gnome-layouts/theme.sh gnome"], shell=True) - accent_box.hide() - - - if settings.get_int("layout-num") == 1: - win10toggle = self.builder.get_object("win10_button") - win10toggle.set_active(True) - - if settings.get_int("layout-num") == 2: - win11toggle = self.builder.get_object("win11_button") - win11toggle.set_active(True) - - if settings.get_int("layout-num") == 3: - gnometoggle = self.builder.get_object("gnome_button") - gnometoggle.set_active(True) - - if settings.get_int("layout-num") == 4: - macostoggle = self.builder.get_object("macos_button") - macostoggle.set_active(True) - if settings.get_int("layout-num") == 5: - macostoggle = self.builder.get_object("gnome2_button") - macostoggle.set_active(True) - if settings.get_int("layout-num") == 6: - macostoggle = self.builder.get_object("unity_button") - macostoggle.set_active(True) - - ### Layouts ### - - def on_win10_button_pressed(self, widget): - settings = Gio.Settings.new("org.pika.layouts") - settings.set_int("layout-num", 1) - subprocess.run(["/usr/lib/pika/gnome-layouts/layout-scripts/win10.sh"], shell=True) - - def on_win11_button_pressed(self, widget): - settings = Gio.Settings.new("org.pika.layouts") - settings.set_int("layout-num", 2) - subprocess.run(["/usr/lib/pika/gnome-layouts/layout-scripts/win11.sh"], shell=True) - def on_gnome_button_pressed(self, widget): - settings = Gio.Settings.new("org.pika.layouts") - settings.set_int("layout-num", 3) - subprocess.run(["/usr/lib/pika/gnome-layouts/layout-scripts/reset.sh"], shell=True) - def on_macos_button_pressed(self, widget): - settings = Gio.Settings.new("org.pika.layouts") - settings.set_int("layout-num", 4) - subprocess.run(["/usr/lib/pika/gnome-layouts/layout-scripts/macos.sh"], shell=True) - def on_gnome2_button_pressed(self, widget): - settings = Gio.Settings.new("org.pika.layouts") - settings.set_int("layout-num", 5) - subprocess.run(["/usr/lib/pika/gnome-layouts/layout-scripts/gnome2.sh"], shell=True) - def on_unity_button_pressed(self, widget): - settings = Gio.Settings.new("org.pika.layouts") - settings.set_int("layout-num", 6) - subprocess.run(["/usr/lib/pika/gnome-layouts/layout-scripts/unity.sh"], shell=True) - ### Settings ### - - ### Accent Colors - - def blue_accent_button_pressed_cb (self, widget): - subprocess.run(["/usr/lib/pika/gnome-layouts/dconf-accent.sh Blue"], shell=True) - subprocess.run(["pkexec /usr/lib/pika/gnome-layouts/papirus-folders -u -C blue"], shell=True) - subprocess.run(["echo 'theme change done!'"], shell=True) - def green_accent_button_pressed_cb (self, widget): - subprocess.run(["/usr/lib/pika/gnome-layouts/dconf-accent.sh Green"], shell=True) - subprocess.run(["pkexec /usr/lib/pika/gnome-layouts/papirus-folders -u -C green"], shell=True) - subprocess.run(["echo 'theme change done!'"], shell=True) - def yellow_accent_button_pressed_cb (self, widget): - subprocess.run(["/usr/lib/pika/gnome-layouts/dconf-accent.sh Yellow"], shell=True) - subprocess.run(["pkexec /usr/lib/pika/gnome-layouts/papirus-folders -u -C yellow"], shell=True) - subprocess.run(["echo 'theme change done!'"], shell=True) - def orange_accent_button_pressed_cb (self, widget): - subprocess.run(["/usr/lib/pika/gnome-layouts/dconf-accent.sh Orange"], shell=True) - subprocess.run(["pkexec /usr/lib/pika/gnome-layouts/papirus-folders -u -C orange"], shell=True) - subprocess.run(["echo 'theme change done!'"], shell=True) - def red_accent_button_pressed_cb (self, widget): - subprocess.run(["/usr/lib/pika/gnome-layouts/dconf-accent.sh Red"], shell=True) - subprocess.run(["pkexec /usr/lib/pika/gnome-layouts/papirus-folders -u -C red"], shell=True) - subprocess.run(["echo 'theme change done!'"], shell=True) - def pink_accent_button_pressed_cb (self, widget): - subprocess.run(["/usr/lib/pika/gnome-layouts/dconf-accent.sh Pink"], shell=True) - subprocess.run(["pkexec /usr/lib/pika/gnome-layouts/papirus-folders -u -C pink"], shell=True) - subprocess.run(["echo 'theme change done!'"], shell=True) - def purple_accent_button_pressed_cb (self, widget): - subprocess.run(["/usr/lib/pika/gnome-layouts/dconf-accent.sh Purple"], shell=True) - subprocess.run(["pkexec /usr/lib/pika/gnome-layouts/papirus-folders -u -C violet"], shell=True) - subprocess.run(["echo 'theme change done!'"], shell=True) - def teal_accent_button_pressed_cb (self, widget): - subprocess.run(["/usr/lib/pika/gnome-layouts/dconf-accent.sh Teal"], shell=True) - subprocess.run(["pkexec /usr/lib/pika/gnome-layouts/papirus-folders -u -C teal"], shell=True) - subprocess.run(["echo 'theme change done!'"], shell=True) - def gray_accent_button_pressed_cb (self, widget): - subprocess.run(["/usr/lib/pika/gnome-layouts/dconf-accent.sh Grey"], shell=True) - subprocess.run(["pkexec /usr/lib/pika/gnome-layouts/papirus-folders -u -C grey"], shell=True) - subprocess.run(["echo 'theme change done!'"], shell=True) - -Application() -Gtk.main() diff --git a/usr/lib/pika/gnome-layouts/main.ui b/usr/lib/pika/gnome-layouts/main.ui deleted file mode 100644 index 20e0cde..0000000 --- a/usr/lib/pika/gnome-layouts/main.ui +++ /dev/null @@ -1,835 +0,0 @@ - - - - - - radiobutton - True - True - False - True - True - - - 700 - 520 - False - 700 - 512 - False - - - True - False - vertical - - - True - False - crossfade - - - True - True - never - in - - - True - False - - - True - False - 5 - 5 - 5 - 5 - vertical - - - - True - False - 10 - 10 - True - - - True - False - vertical - 2 - - - True - False - center - center - 10 - 10 - 10 - 10 - 10 - 10 - ../../../../../../../../../usr/lib/pika/gnome-layouts/previews/win10.svg - - - False - True - 0 - - - - - Traditional - True - True - False - The good old michealsoft binbows layout: -* A Bottom taskbar. -* An Application Menu binded to the "Super Key". -* Desktop Icons. -* Full window controls on the right side of the window. - center - center - True - radiobutton1 - - - - True - True - 1 - - - - - 0 - 0 - - - - - True - False - vertical - 2 - - - True - False - center - center - 10 - 10 - 10 - 10 - 10 - 10 - ../../../../../../../../../usr/lib/pika/gnome-layouts/previews/win11.svg - - - False - True - 0 - - - - - Eleven - True - True - False - The michealsoft binbows layout but newer: -* A Bottom taskbar with centered icons. -* A More modern Application Menu binded to the "Super Key". -* Desktop Icons. -* Full window controls on the right side of the window. -* "Activities" button for wasy workspace management. - center - center - True - radiobutton1 - - - - True - True - 1 - - - - - 1 - 0 - - - - - True - False - vertical - 2 - - - True - False - center - center - 10 - 10 - 10 - 10 - 10 - 10 - ../../../../../../../../../usr/lib/pika/gnome-layouts/previews/macos.svg - - - False - True - 0 - - - - - Pineapple - True - True - False - The Ma....... i mean the PearOS layout: -* A Bottom Dock and a top panel. -* A Fullscreen Application grid. -* Desktop Icons. -* Full window controls on the left side of the window. -* "Activities" button for wasy workspace management. - center - center - True - radiobutton1 - - - - True - True - 1 - - - - - 2 - 0 - - - - - True - False - vertical - 2 - - - True - False - center - center - 10 - 10 - 10 - 10 - 10 - 10 - ../../../../../../../../../usr/lib/pika/gnome-layouts/previews/unity.svg - - - False - True - 0 - - - - - Unity - True - True - False - The Ubuntu Unity Experience: -* A Leftside Dock and a top panel. -* Desktop Icons. -* Full window controls on the left side of the window. - center - center - True - radiobutton1 - - - - True - True - 1 - - - - - 2 - 1 - - - - - True - False - vertical - 2 - - - True - False - center - center - 10 - 10 - 10 - 10 - 10 - 10 - ../../../../../../../../../usr/lib/pika/gnome-layouts/previews/gnome2.svg - - - False - True - 0 - - - - - GNOME 2 - True - True - False - The Old Gnome/Mate Experience. - center - center - True - radiobutton1 - - - - True - True - 1 - - - - - 1 - 1 - - - - - True - False - vertical - 2 - - - True - False - center - center - 10 - 10 - 10 - 10 - 10 - 10 - ../../../../../../../../../usr/lib/pika/gnome-layouts/previews/gnome.svg - - - False - True - 0 - - - - - GNOME - True - True - False - The Stock GNOME Experience. - center - center - True - radiobutton1 - - - - True - True - 1 - - - - - 0 - 1 - - - - - False - True - 1 - - - - - - - - - Layouts - Layouts - - - - - True - True - never - in - - - True - False - - - True - False - 5 - 5 - 5 - 5 - vertical - 10 - - - accent_box - True - False - center - start - - - True - True - True - center - center - none - - - - True - False - Blue - ../../../../../../../../../usr/lib/pika/gnome-layouts/accent-colors/blue.svg - - - - - False - True - 0 - - - - - True - True - True - center - center - none - - - - True - False - Green - ../../../../../../../../../usr/lib/pika/gnome-layouts/accent-colors/green.svg - - - - - False - True - 1 - - - - - True - True - True - center - center - none - - - - True - False - Yellow - ../../../../../../../../../usr/lib/pika/gnome-layouts/accent-colors/yellow.svg - - - - - False - True - 2 - - - - - True - True - True - center - center - none - - - - True - False - Orange - ../../../../../../../../../usr/lib/pika/gnome-layouts/accent-colors/orange.svg - - - - - False - True - 3 - - - - - True - True - True - center - center - none - - - - True - False - Red - ../../../../../../../../../usr/lib/pika/gnome-layouts/accent-colors/red.svg - - - - - False - True - 4 - - - - - True - True - True - center - center - none - - - - True - False - Pink - ../../../../../../../../../usr/lib/pika/gnome-layouts/accent-colors/pink.svg - - - - - False - True - 5 - - - - - True - True - True - center - center - none - - - - True - False - Purple - ../../../../../../../../../usr/lib/pika/gnome-layouts/accent-colors/purple.svg - - - - - False - True - 6 - - - - - True - True - True - center - center - none - - - - True - False - Teal - ../../../../../../../../../usr/lib/pika/gnome-layouts/accent-colors/teal.svg - - - - - False - True - 7 - - - - - True - True - True - center - center - none - - - - True - False - Gray - ../../../../../../../../../usr/lib/pika/gnome-layouts/accent-colors/gray.svg - - - - - False - True - 8 - - - - - False - True - 15 - 0 - - - - - - True - False - 5 - True - - - True - True - True - center - center - 5 - 5 - 15 - 5 - - - - True - False - vertical - - - True - False - 36 - pika-logo - - - False - True - 0 - - - - - True - False - PikaOS Theming - - - False - True - 1 - - - - - - - 0 - 1 - - - - - True - True - True - center - center - 5 - 5 - 15 - 5 - - - - True - False - vertical - - - True - False - 36 - gnome-foot - - - False - True - 0 - - - - - True - False - Gnome Theming - - - False - True - 1 - - - - - - - 1 - 1 - - - - - True - False - ../../../../../../../../../usr/lib/pika/gnome-layouts/previews/pika-theme.png - - - 0 - 0 - - - - - True - False - ../../../../../../../../../usr/lib/pika/gnome-layouts/previews/gnome-theme.png - 96 - - - 1 - 0 - - - - - False - True - 1 - - - - - - - - - themes - Themes & Colors - 1 - - - - - True - True - 1 - - - - - - - True - False - True - - - True - False - center - vertical - True - - - True - False - True - main_stack - - - False - True - 0 - - - - - - - - diff --git a/usr/lib/pika/gnome-layouts/papirus-folders b/usr/lib/pika/gnome-layouts/papirus-folders deleted file mode 100755 index 223babd..0000000 --- a/usr/lib/pika/gnome-layouts/papirus-folders +++ /dev/null @@ -1,533 +0,0 @@ -#!/usr/bin/env bash -# This script allows changing the color of folders in Papirus icon theme -# -# @author: Sergei Eremenko (https://github.com/SmartFinn) -# @license: MIT license (MIT) -# @link: https://github.com/PapirusDevelopmentTeam/papirus-folders - -if test -z "$BASH_VERSION"; then - printf "Error: this script only works in bash.\n" >&2 - exit 1 -fi - -if (( BASH_VERSINFO[0] * 10 + BASH_VERSINFO[1] < 40 )); then - printf "Error: this script requires bash version >= 4.0\n" >&2 - exit 1 -fi - -# set -x # Uncomment to debug this shell script -set -o errexit \ - -o noclobber \ - -o pipefail - -readonly THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")" -readonly PROGNAME="$(basename "${BASH_SOURCE[0]}")" -readonly VERSION="1.12.0" -readonly -a ARGS=("$@") - -msg() { - printf "%s: %b\n" "$PROGNAME" "$*" -} - -verbose() { - [ -t 4 ] || return 0 - msg "$@" >&4 -} - -err() { - msg "Error:" "$*" >&2 -} - -_exit() { - msg "$*" "Exiting ..." - exit 0 -} - -fatal() { - err "$*" - exit 1 -} - -usage() { - cat <<- EOF - USAGE - $ $PROGNAME [options] -t {-C --color} - $ $PROGNAME [options] -t {-D --default} - $ $PROGNAME [options] -t {-R --restore} - OPERATIONS - -C --color change color of folders - -D --default back to the default color - -R --restore restore the last used color from the config file - OPTIONS - -l --list show available colors - -o --once do not save the changes to the config file - -t --theme make changes to the specified theme (Default: Papirus) - -u --update-caches update icon caches for Papirus and siblings - -V --version print $PROGNAME version and exit - -v --verbose be verbose - -h --help show this help - EOF - - exit "${1:-0}" -} - -_is_root_user() { - if [ "$(id -u)" -eq 0 ]; then - return 0 - fi - - return 1 -} - -_is_user_dir() { - [ -n "$USER_HOME" ] || return 1 - - # if $THEME_DIR is placed in home dir - if [ -z "${THEME_DIR##"$USER_HOME"/*}" ]; then - return 0 - fi - - return 1 -} - -_is_writable() { - if [ -w "$THEME_DIR/48x48/places/folder.svg" ]; then - return 0 - fi - - return 1 -} - -_is_valid_color() { - local color="$1" - - eval "$(declare_colors)" - - for i in "${colors[@]}"; do - [ "$i" == "$color" ] || continue - return 0 - done - - return 1 -} - -declare_colors() { - local color='' - local -a colors=() - local -a valid_colors=("adwaita" "black" "blue" "bluegrey" "breeze" "brown" - "carmine" "cyan" "darkcyan" "deeporange" "green" "grey" - "indigo" "magenta" "nordic" "orange" "palebrown" "paleorange" - "pink" "purple" "red" "teal" "violet" "white" "yaru" "yellow") - - for color in "${valid_colors[@]}"; do - if [ -e "$THEME_DIR/48x48/places/folder-$color.svg" ]; then - colors=( "${colors[@]}" "$color" ) - fi - done - - # return array of colors - declare -p colors -} - -declare_current_color() { - local icon_file icon_name current_color='' - - icon_file=$(readlink -f "$THEME_DIR/48x48/places/folder.svg") - icon_name=$(basename "$icon_file" .svg) - current_color="${icon_name##*-}" - - declare -p current_color -} - -get_theme_dir() { - local data_dir icons_dir - local -a data_dirs=() - local -a icons_dirs=( - "$USER_HOME/.icons" - "${XDG_DATA_HOME:-$USER_HOME/.local/share}/icons" - ) - - # Get data directories from XDG_DATA_DIRS variable and - # convert colon-separated list into bash array - IFS=: read -ra data_dirs <<< "${XDG_DATA_DIRS:-/usr/local/share:/usr/share}" - - for data_dir in "${data_dirs[@]}"; do - [ -d "$data_dir/icons" ] || continue - icons_dirs=( "${icons_dirs[@]}" "${data_dir%/}/icons" ) - done - - for icons_dir in "${icons_dirs[@]}"; do - [ -f "$icons_dir/$THEME_NAME/index.theme" ] || continue - printf '%s' "$icons_dir/$THEME_NAME" - verbose "'$THEME_NAME' is found in '$icons_dir'." - return 0 - done - - return 1 -} - -get_real_user() { - # return name of the user that runs the script - local user='' - - if [ -n "$PKEXEC_UID" ]; then - user="$(id -nu "$PKEXEC_UID")" - elif [ -n "$SUDO_USER" ]; then - user="$SUDO_USER" - else - user="$(id -nu)" - fi - - printf '%s' "$user" -} - -get_user_home() { - local user="$1" - - getent passwd "$user" | awk -F: '{print $(NF-1)}' -} - -config() { - # usage: config [{-n --new}] {-s --set} key=value... | {-g --get} key... - local config_dir - local config_file - - if _is_user_dir; then - config_dir="${XDG_CONFIG_HOME:-$USER_HOME/.config}/$PROGNAME" - else - config_dir="/var/lib/$PROGNAME" - fi - - config_file="$config_dir/keep" - - while (( "$#" )); do - case "$1" in - -g|--get) shift; - [ -f "$config_file" ] || return 1 - - for key; do - [ -n "$key" ] || continue - awk -F= -v key="$key" ' - $1 == key { - print $2 - exit - } - ' "$config_file" - done - - break - ;; - -n|--new) shift; - rm -f "$config_file" - ;; - -e|--exists) shift; - # return 1 if test config_file not exist or empty - if [ -f "$config_file" ] && [ -s "$config_file" ]; then - return 0 - else - return 1 - fi - ;; - -s|--set) shift; - [ "$ONCE" -eq "1" ] && break - [ -d "$config_dir" ] || mkdir -p "$config_dir" - [ -f "$config_file" ] || touch "$config_file" - - verbose "Saving params to '$config_file' ..." - cat >> "$config_file" <<- EOF - $(for key_value; do echo "$key_value"; done) - EOF - - break - ;; - *) - err "illegal option -- '$1'" - return 1 - esac - done - - return 0 -} - -change_color() { - local color="${1:?${FUNCNAME[-1]}: color is not set}" - local size prefix file_path file_name symlink_path - local -a sizes=(22x22 24x24 32x32 48x48 64x64) - local -a prefixes=("folder-$color" "user-$color") - - for size in "${sizes[@]}"; do - for prefix in "${prefixes[@]}"; do - for file_path in "$THEME_DIR/$size/places/$prefix"{-*,}.svg; do - [ -f "$file_path" ] || continue # is a file - [ -L "$file_path" ] && continue # is not a symlink - - file_name="${file_path##*/}" - symlink_path="${file_path/-$color/}" # remove color suffix - - ln -sf "$file_name" "$symlink_path" || { - fatal "Fail to create '$symlink_path' symlink" - } - done - done - done -} - -list_colors() { - local color='' prefix='' - - eval "$(declare_colors)" - eval "$(declare_current_color)" - - for color in "${colors[@]}"; do - if [ "$current_color" == "$color" ]; then - prefix='>' - else - prefix='' - fi - - printf '%2s %s\n' "$prefix" "$color" - done -} - -do_change_color() { - _is_valid_color "$SELECTED_COLOR" || { - fatal "Unable to find '$SELECTED_COLOR' color in '$THEME_NAME'" - } - - verify_privileges - - msg "Changing color of folders to '$SELECTED_COLOR' for '$THEME_NAME' ..." - change_color "$SELECTED_COLOR" - config --new --set "theme=$THEME_NAME" "color=$SELECTED_COLOR" - update_icon_cache -} - -do_revert_default() { - verify_privileges - - msg "Restoring default folder color for '$THEME_NAME' ..." - change_color "${DEFAULT_COLORS[$THEME_NAME]:-blue}" - config --new - update_icon_cache -} - -do_restore_color() { - local saved_color='' - - if config --exists; then - THEME_NAME="$(config --get theme)" - saved_color="$(config --get color)" - else - _exit "Unable to find config file." - fi - - THEME_DIR="$(get_theme_dir)" || { - _exit "Unable to find '$THEME_NAME' icon theme." - } - - _is_valid_color "$saved_color" || { - _exit "Unable to find '$saved_color' color in '$THEME_NAME'." - } - - verify_privileges - - change_color "$saved_color" - msg "'$saved_color' color of the folders has been restored." -} - -delete_icon_caches() { - local icon_cache real_user='' real_home='' - - real_user="$(get_real_user)" - real_home="$(get_user_home "$real_user")" - - declare -a icon_caches=( - # KDE 5 icon caches - "$real_home/.cache/icon-cache.kcache" - "/var/tmp/kdecache-$real_user/icon-cache.kcache" - ) - - verbose "Deleting icon caches ..." - for icon_cache in "${icon_caches[@]}"; do - [ -e "$icon_cache" ] || continue - rm -f "$icon_cache" - done -} - -update_icon_cache() { - [ -z "$DISABLE_UPDATE_ICON_CACHE" ] || return 0 - - delete_icon_caches - - verbose "Rebuilding icon cache for '$THEME_NAME' ..." - gtk-update-icon-cache -qf "$THEME_DIR" || true -} - -update_icon_caches() { - local theme='' - - delete_icon_caches - - for theme in "${!DEFAULT_COLORS[@]}"; do - [ -f "$THEME_DIR/../$theme/index.theme" ] || continue - verbose "Rebuilding icon cache for '$theme' ..." - gtk-update-icon-cache -qf "$THEME_DIR/../$theme" || true - done -} - -verify_privileges() { - _is_root_user && return 0 - _is_user_dir && return 0 - _is_writable && return 0 - - verbose "This operation requires root privileges." - - if command -v sudo > /dev/null; then - exec sudo USER_HOME="$USER_HOME" XDG_DATA_DIRS="$XDG_DATA_DIRS" \ - "$THIS_SCRIPT" "${ARGS[@]}" - else - fatal "You need to be root to run this command." - fi -} - -parse_args() { - local arg='' opt='' - local -a args=() - - # Show help if no argument is passed - if [ -z "$1" ]; then - usage 2 - fi - - # Translate --gnu-long-options to -g (short options) - for arg; do - case "$arg" in - --help) args+=( -h ) ;; - --list) args+=( -l ) ;; - --once) args+=( -o ) ;; - --theme) args+=( -t ) ;; - --update-caches) args+=( -u ) ;; - --verbose) args+=( -v ) ;; - --color|--colour) args+=( -C ) ;; - --default) args+=( -D ) ;; - --restore) args+=( -R ) ;; - --version) args+=( -V ) ;; - --[0-9a-Z]*) - err "illegal option -- '$arg'" - usage 2 - ;; - *) args+=("$arg") - esac - done - - # Reset the positional parameters to the short options - set -- "${args[@]}" - - while getopts ":C:DRlot:uvVh" opt; do - case "$opt" in - C ) OPERATIONS+=("change-color") - SELECTED_COLOR="$OPTARG" - ;; - D ) OPERATIONS+=("revert-default") ;; - R ) OPERATIONS+=("restore-color") ;; - l ) OPERATIONS+=("list-colors") ;; - o ) ONCE=1 ;; - t ) THEME_NAME="$OPTARG" ;; - u ) OPERATIONS+=("update-icon-caches") ;; - v ) VERBOSE=1 ;; - V ) printf "%s %s\n" "$PROGNAME" "$VERSION" - exit 0 - ;; - h ) usage 0 ;; - : ) err "option requires an argument -- '-$OPTARG'" - usage 2 - ;; - \?) err "illegal option -- '-$OPTARG'" - usage 2 - ;; - esac - done - - shift $((OPTIND-1)) - - # Return an error if any positional parameters are found - if [ -n "$1" ]; then - err "illegal parameter -- '$1'" - usage 2 - fi -} - -main() { - # default values of options - declare THEME_NAME="${THEME_NAME:-Papirus}" - declare -i VERBOSE="${VERBOSE:-0}" - declare -i ONCE="${ONCE:-0}" - declare -A DEFAULT_COLORS=( - ['ePapirus']='blue' - ['Papirus']='blue' - ['Papirus-Dark']='blue' - ) - - declare SELECTED_COLOR='' - declare -a OPERATIONS=() - - parse_args "${ARGS[@]}" - - if [ "$VERBOSE" -eq "1" ]; then - # open a file descriptor for verbose messages - exec 4>&1 - # close the file descriptor before exiting - trap 'exec 4>&-' EXIT HUP INT TERM - fi - - # set USER_HOME variable instead HOME to prevent changing user's icons - # when running with sudo - [ -n "$USER_HOME" ] || USER_HOME="$(get_user_home "$(id -nu)")" - - if [ -f "$THEME_NAME/index.theme" ]; then - # THEME_NAME is a path to an icon theme - THEME_DIR="$(readlink -f "$THEME_NAME")" - THEME_NAME="$(basename "$THEME_DIR")" - verbose "The path to '$THEME_DIR' theme is specified." - else - THEME_DIR="$(get_theme_dir)" || { - fatal "Fail to find '$THEME_NAME' icon theme." - } - fi - - for operation in "${OPERATIONS[@]}"; do - case "$operation" in - change-color) - do_change_color - ;; - revert-default) - do_revert_default - ;; - restore-color) - do_restore_color - ;; - list-colors) - if [ -t 1 ]; then - cat <<- EOF - List of available colors: - $(list_colors) - EOF - else - list_colors - fi - ;; - update-icon-caches) - verify_privileges - update_icon_caches - ;; - esac - done - - verbose "Done!" - - exit 0 -} - -main - -exit 1 diff --git a/usr/lib/pika/gnome-layouts/previews/gnome-theme.png b/usr/lib/pika/gnome-layouts/previews/gnome-theme.png deleted file mode 100644 index 942732b7d4aa010985ed76c807d9a28339b25503..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40134 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νq%n)om1 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

Q&C%DE7-|MLP%jVf8I!DPM<5sH6&H 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 KMNUMnLSTYoF@T}~ diff --git a/usr/lib/pika/gnome-layouts/previews/pika-theme.png b/usr/lib/pika/gnome-layouts/previews/pika-theme.png deleted file mode 100644 index 237a25e15ad7a5c18461e05252fbd78969e4608d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69356 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 S%XB#a0000 $HOME/.config/pika_theme || touch $HOME/.config/pika_theme && echo '#! /bin/bash' > $HOME/.config/pika_theme -echo 'KVANTUM_THEME_DARK=Orchis-dark#' >> $HOME/.config/pika_theme -echo 'KVANTUM_THEME_LIGHT=Orchis#' >> $HOME/.config/pika_theme -echo 'GTK_THEME_DARK=$(dconf read /org/gnome/desktop/interface/gtk-theme | 'sed \"s+\'++\"' | 'sed \"s+\'++\"' | 'sed \"s+-Dark++\"' | 'sed \"s+-Light++\"')'-Dark >> $HOME/.config/pika_theme -echo 'GTK_THEME_LIGHT=$(dconf read /org/gnome/desktop/interface/gtk-theme | 'sed \"s+\'++\"' | 'sed \"s+\'++\"' | 'sed \"s+-Dark++\"' | 'sed \"s+-Light++\"')'-Light >> $HOME/.config/pika_theme -echo 'GTK_THEME_PATH_DARK=/usr/share/themes/$GTK_THEME_DARK' >> $HOME/.config/pika_theme -echo 'GTK_THEME_PATH_LIGHT=/usr/share/themes/GTK_THEME_LIGHT' >> $HOME/.config/pika_theme -dconf write /org/gnome/desktop/interface/color-scheme "'prefer-dark'" -pika-gnome-theme dark -pkexec /usr/lib/pika/gnome-layouts/papirus-folders -u -C yellow - if dconf read /org/gnome/desktop/interface/color-scheme | grep dark - then - pika-gnome-theme dark - else - pika-gnome-theme - fi -fi - -if [[ $1 == gnome ]] -then -dconf write /org/pika/layouts/pika-theme 0 -dconf write /org/gnome/shell/extensions/user-theme/name "''" -dconf write /org/gnome/desktop/wm/preferences/titlebar-font "'Cantarell Bold 11'" -dconf write /org/gnome/desktop/sound/theme-name "'freedesktop'" -dconf write /org/gnome/desktop/interface/icon-theme "'Adwaita'" -dconf write /org/gnome/desktop/interface/monospace-font-name "'Monospace 11'" -dconf write /org/gnome/desktop/interface/document-font-name "'Sans 11'" -dconf write /org/gnome/desktop/interface/font-name "'Cantarell 11'" -dconf write /org/gnome/shell/extensions/nightthemeswitcher/commands/enabled false -dconf write /org/gnome/shell/extensions/nightthemeswitcher/gtk-variants/day "'adw-gtk3'" -dconf write /org/gnome/shell/extensions/nightthemeswitcher/gtk-variants/night "'adw-gtk3-dark'" -dconf write /org/gnome/shell/extensions/nightthemeswitcher/shell-variants/day "''" -dconf write /org/gnome/shell/extensions/nightthemeswitcher/shell-variants/night "''" -echo '#! /bin/bash' > $HOME/.config/pika_theme || touch $HOME/.config/pika_theme && echo '#! /bin/bash' > $HOME/.config/pika_theme -echo 'KVANTUM_THEME_DARK=' >> $HOME/.config/pika_theme -echo 'KVANTUM_THEME_LIGHT=' >> $HOME/.config/pika_theme -echo 'GTK_THEME_DARK=' >> $HOME/.config/pika_theme -echo 'GTK_THEME_LIGHT=' >> $HOME/.config/pika_theme -echo 'GTK_THEME_PATH_DARK=' >> $HOME/.config/pika_theme -echo 'GTK_THEME_PATH_LIGHT=' >> $HOME/.config/pika_theme -fi diff --git a/usr/share/glib-2.0/schemas/org.pika.layouts.gschema.xml b/usr/share/glib-2.0/schemas/org.pika.layouts.gschema.xml deleted file mode 100644 index 31d763b..0000000 --- a/usr/share/glib-2.0/schemas/org.pika.layouts.gschema.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - 3 -

What layout is selected. - - What layout is selected. - - - - 1 - What Theme is being used. - - What Theme is being used. - - - -