In Windows you get Explorer. Not so fast in Linux, where you can go a little crazy. The whole desktop paradigm is pointing and clicking a pretty interface instead of typing into the blackness.
Cool. I like pretty, too.
Because the Linux ecosystem is wide open a lot of people have different ideas about how you get the pretty all tied together to give you push button functionality and folders and whatnot. Not only do you have KDE, which is a desktop environment, giving you everything you need in a cohesive package, but you have Unity, and a bunch of others. Desktop environments are akin to Explorer, and they include the look, function, commands, utilities - all the configuration stuff, their own programs, everything you need for a pretty and functional desktop.
A window manager is different. You don't get all the cohesiveness, the utilities, apps, blah blah blah. You only get a manager for your windows, a bit of desktop function (autostart, but, you don't need to get autostart on linux from a desktop environment or window manager), logoff command, a bit of 'desktop' configuration. You get a menu. What you don't get is a status bar. RIght away that precludes use for a bunch of people. With a window manager you get more than enough, though. I mean, Xorg is already giving you the pretty...there are a few handy status bar apps that you can use with any window manager, so, it's not that big a deal. Tint2 is popular. I use lxpanel.
Openbox gives me what I need with so little overhead. Sure, it's not for everybody, I have to create/config some stuff to get the most out of it, and I did that years ago, just the one time, but, it's exceedingly easy and handy. OPenbox gives me a menu, keybindings, limited theming, autostart, and manages my windows. Debian, bash, and xorg give me everything else. In the ~/.config/openbox directory you get the 3 files: rc.xml, menu.xml, and autostart.xml - you open them and do your thing. Fast, rock solid, error free - for always.
if you want to try openbox you should know that it's pretty barren by default. In fact, when you log into your desktop for the first time using openbox, all you will see is nothing. If you right-click, though, there you go. Here is a bit of syntax and a couple entries in my 3 files:
rc.xml
<keybind key="W-m">
<action name="Execute">
<execute>claws-mail</execute>
</action>
</keybind>
menu.xml
<menu id="root-menu" label="Openbox 3">
<menu id="desktop-app-menu" label="LXDE Menu" execute="/usr/bin/openbox-menu lxde-applications.menu" icon="/usr/share/icons/Tango/scalable/apps/help-browser.svg"/> ......
the above line shows that you may incorporate a different 'system' menu. I use a couple lxde apps so it puts a menu on my system for me to use, as well. This is not necessary at all.
<!--local menu-->
<menu id="mine" label="Local" icon="/usr/share/icons/Tango/scalable/places/distributor-logo.svg">
<item label="ObConf">
<action name="Execute">
<execute>obconf</execute>
</action>
</item>
<item label="UG Chrome">
<action name="Execute">
<execute>~/Downloads/ungoogled-chromium_91.0.4472.77-1.1_linux/chrome-wrapper</execute>
</action>
</item>
<item label="Nextcloud Desktop">
<action name="Execute">
<execute>~/Downloads/Nextcloud-3.3.4-x86_64.AppImage</execute>
</action>
</item>
<item label="Vcode">
<action name="Execute">
<execute>/usr/share/code/code --unity-launch</execute>
</action>
</item>
<item label="MySQLDumps">
<action name="Execute">
<execute>sh ~/.config/scripts/sql-dumps2.sh</execute>
</action>
</item>
<!--<item label="email to Kirsi">
<action name="Execute">
<execute>exo-open mailto:[email protected]</execute>
</action
</item>-->
<item label="websiteauditor">
<action name="Execute">
<execute>sh /opt/link-assistantcom/websiteauditor/bin/websiteauditor.sh</execute>
</action>
</item>
<item label="ScreamingFrog SEOSPider">
<action name="Execute">
<execute>/usr/bin/screamingfrogseospider</execute>
</action>
</item>
<item label="freemind">
<action name="Execute">
<execute>sh ~/Downloads/freemind-bin-max-1.1.0_Beta_2/freemind.sh</execute>
</action>
</item>
<item label="bleachbit">
<action name="Execute">
<execute>bleachbit</execute>
</action>
</item>
<item label="sublime">
<action name="Execute">
<execute>subl</execute>
</action>
</item>
<!-- <item label="Eclipse">
<action name="Execute">
<execute>~/eclipse/java-2019-03/eclipse/eclipse</execute>
</action>
</item> -->
<!--<item label="Android Studio">
<action name="Execute">
<execute>sh ~/Projects/tools/development/android-studio/bin/studio.sh</execute>
</action>
</item>-->
<item label="Bootstrap Studio">
<action name="Execute">
<execute>
/opt/bootstrapstudio/Bootstrap\ Studio
</execute>
</action>
</item>
<item label="zotero">
<action name="Execute">
<execute>sh ~/Downloads/Zotero_linux-x86_64/zotero</execute>
</action>
</item>
<item label="rasterizer">
<action name="Execute">
<execute>
java -jar ~/Downloads/rasterizergui/rasterizergui.jar
</execute>
</action>
</item>
<item label="KeePassXC">
<action name="Execute">
<execute>~/Downloads/KeePassXC-2.6.2-x86_64.AppImage
</execute>
</action>
</item>
</menu>
<!-- end local menu-->
autostart.xml
thunar --daemon &
lxpanel &
numlockx &
#------------------------------------------////
# Delayed Startup Handiness:
#------------------------------------------////
(sleep 1s && sh ~/.fehbg) &
(sleep 4s && compton -bcC) &
(sleep 9s && unclutter) &
There are a couple apps out there that give you a pretty GUI to manage openbox, obconf is a handy one that will be installed by default. I know there are a couple for the menu. It's just as easy to open the file directly. Remember, in Linux, everything is a file - even devices. That's cool.
I have been a Linux user for the last 4 years and I would suggest (in my opinion) using Window Manager ( I use XmonadWM in ArchLinux) than any DE. DEs are resource hungry.
Related
I am Adding Lux app icon in my Apex launcher theme
What I did is I added
<item component="ComponentInfo{com.vito.lux/com.vito.lux.DashBoard}" drawable="com_vito_lux"/>
in theme but i am little confused in Activity name
here is androidmanifest of LUX app
lots of activity names which one i choose
Code:
<?xml version="1.0" encoding="utf-8"?>
<manifest android:versionCode="51" android:versionName="0.51" package="com.vito.lux"
xmlns:android="http://schemas.android.com/apk/res/android">
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="14" android:installLocation="internalOnly" />
<application android:label="@string/app_name" android:icon="@drawable/icon" android:name=".LuxApp" android:logo="@drawable/icon" android:hardwareAccelerated="true">
<activity android:theme="@style/Theme.PopupWindow" android:label="Lux Dash" android:name=".Dashboard" android:launchMode="singleInstance">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:theme="@style/PreferencesTheme" android:label="Settings" android:name=".Preferences">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:theme="@style/Theme.Welcome" android:label="Debug" android:name=".Debug">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<receiver android:name=".Widget">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
<action android:name="android.appwidget.action.APPWIDGET_ENABLED" />
<action android:name="com.vito.lux.Widget.adjustLabel" />
<action android:name="com.vito.lux.Widget.setPrimaryListener" />
</intent-filter>
<meta-data android:name="android.appwidget.provider" android:resource="@xml/widget" />
</receiver>
<activity android:theme="@style/Theme.PopupWindow" android:label="Configure" android:name=".Configure">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:theme="@style/Theme.Welcome" android:label="Lux Splash Screen" android:name=".Splash">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:theme="@style/Theme.Welcome" android:label="Lux Tutorial" android:name=".Tutorial" android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:theme="@style/Theme.PopupWindow" android:label="Lux Calibrate" android:name=".Calibrate" android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<receiver android:name=".IntentManager">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.ACTION_PACKAGE_REPLACED" />
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
</intent-filter>
<meta-data android:name="android.appwidget.provider" android:resource="@xml/widget" />
</receiver>
<activity android:theme="@style/PreferencesTheme" android:label="General Settings" android:name=".PreferencesGeneral" android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:theme="@style/PreferencesTheme" android:label="Advanced" android:name=".PreferencesAdvanced">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:theme="@style/PreferencesTheme" android:label="Sample Collection" android:name=".PreferencesDataCollection" android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:label="Backup and Restore" android:name=".BackupRestore">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:theme="@style/Theme.Clear" android:label="" android:name=".ChangeBright" android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:theme="@style/Theme.Welcome" android:label="Edit Samples" android:name=".EditLux" android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:label="" android:name=".LuxLumaList" android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:theme="@style/LuxPage" android:label="" android:name=".CompatModeList">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:theme="@style/LuxListDialog" android:label="" android:name=".CompatModeAddDialog">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:label="" android:name=".ActivityOverlay" android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:theme="@style/Theme.Welcome" android:label="" android:name=".Wizard" android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<service android:name=".AutobrightService">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</service>
<service android:name=".LuxApp">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</service>
<service android:name="com.vito.lux.Widget$Update" android:configChanges="orientation|screenLayout|uiMode">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</service>
<service android:name=".CompatibilityCheck">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</service>
<service android:name=".ScreenCheck">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</service>
<service android:name=".NightModeService">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</service>
<meta-data android:name="com.google.android.backup.api_key" android:value="AEdPqrEAAAAIhUIV218r51g-xwWV1BeqBZ0FUUTfHFHWSUHirQ" />
</application>
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-feature android:name="android.hardware.sensor.light" android:required="true" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
</manifest>
...or you could just program the icon to the program. I cant help how but i do know that you dont need all that code just to change an icon. Ask your Best friend...g00gle
Sent from the phone of Gamers
nitinvaid said:
I am Adding Lux app icon in my Apex launcher theme
What I did is I added
<item component="ComponentInfo{com.vito.lux/com.vito.lux.DashBoard}" drawable="com_vito_lux"/>
in theme but i am little confused in Activity name
here is androidmanifest of LUX app
lots of activity names which one i choose
Code:
<?xml version="1.0" encoding="utf-8"?>
<manifest android:versionCode="51" android:versionName="0.51" package="com.vito.lux"
xmlns:android="http://schemas.android.com/apk/res/android">
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="14" android:installLocation="internalOnly" />
<application android:label="@string/app_name" android:icon="@drawable/icon" android:name=".LuxApp" android:logo="@drawable/icon" android:hardwareAccelerated="true">
<activity android:theme="@style/Theme.PopupWindow" android:label="Lux Dash" android:name=".Dashboard" android:launchMode="singleInstance">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:theme="@style/PreferencesTheme" android:label="Settings" android:name=".Preferences">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:theme="@style/Theme.Welcome" android:label="Debug" android:name=".Debug">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<receiver android:name=".Widget">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
<action android:name="android.appwidget.action.APPWIDGET_ENABLED" />
<action android:name="com.vito.lux.Widget.adjustLabel" />
<action android:name="com.vito.lux.Widget.setPrimaryListener" />
</intent-filter>
<meta-data android:name="android.appwidget.provider" android:resource="@xml/widget" />
</receiver>
<activity android:theme="@style/Theme.PopupWindow" android:label="Configure" android:name=".Configure">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:theme="@style/Theme.Welcome" android:label="Lux Splash Screen" android:name=".Splash">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:theme="@style/Theme.Welcome" android:label="Lux Tutorial" android:name=".Tutorial" android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:theme="@style/Theme.PopupWindow" android:label="Lux Calibrate" android:name=".Calibrate" android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<receiver android:name=".IntentManager">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.ACTION_PACKAGE_REPLACED" />
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
</intent-filter>
<meta-data android:name="android.appwidget.provider" android:resource="@xml/widget" />
</receiver>
<activity android:theme="@style/PreferencesTheme" android:label="General Settings" android:name=".PreferencesGeneral" android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:theme="@style/PreferencesTheme" android:label="Advanced" android:name=".PreferencesAdvanced">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:theme="@style/PreferencesTheme" android:label="Sample Collection" android:name=".PreferencesDataCollection" android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:label="Backup and Restore" android:name=".BackupRestore">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:theme="@style/Theme.Clear" android:label="" android:name=".ChangeBright" android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:theme="@style/Theme.Welcome" android:label="Edit Samples" android:name=".EditLux" android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:label="" android:name=".LuxLumaList" android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:theme="@style/LuxPage" android:label="" android:name=".CompatModeList">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:theme="@style/LuxListDialog" android:label="" android:name=".CompatModeAddDialog">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:label="" android:name=".ActivityOverlay" android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<activity android:theme="@style/Theme.Welcome" android:label="" android:name=".Wizard" android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</activity>
<service android:name=".AutobrightService">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</service>
<service android:name=".LuxApp">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</service>
<service android:name="com.vito.lux.Widget$Update" android:configChanges="orientation|screenLayout|uiMode">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</service>
<service android:name=".CompatibilityCheck">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</service>
<service android:name=".ScreenCheck">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</service>
<service android:name=".NightModeService">
<intent-filter>
<action android:name="android.intent.action.RUN" />
<category android:name="android.intent.category.RUN" />
</intent-filter>
</service>
<meta-data android:name="com.google.android.backup.api_key" android:value="AEdPqrEAAAAIhUIV218r51g-xwWV1BeqBZ0FUUTfHFHWSUHirQ" />
</application>
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-feature android:name="android.hardware.sensor.light" android:required="true" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
</manifest>
Click to expand...
Click to collapse
why don't use logcat :good: it's more helpful :victory:
I have made theme which works awesomely on Nova and ADW launcher, But apex launcher doesn't pick my themes and Go launcher even doesn't try to show my theme.
Here it is my manifest.xml, any idea what i'm missing?
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ark.aeroglasstheme"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="14" />
<application android:icon="@drawable/icon" android:label="@string/theme_title">
<activity android:name="com.ark.aeroglasstheme.MainActivity" android:label="@string/theme_title">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="com.anddoes.launcher.THEME" />
<action android:name="android.intent.action.MAIN" />
<action android:name="com.gau.go.launcherex.theme" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.INFO" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="com.anddoes.launcher.THEME" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="com.fede.launcher.THEME_ICONPACK" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<action android:name="org.adw.launcher.THEMES"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
</application>
</manifest>
I am trying to understand intents better and have spent several hours trying to figure them out. I have been able to get several to work, but I am stuck on trying to activate the screensaver from the stock Clock app. Long pressing the app shows a "start screensaver" shortcut, but I can't seem to activate it by intent. Nova Launcher shortcuts don't list it. The manifest.xml file for the clock app has these two sections (excerpts below) that I assume should have the answer, but I can't seem to make any of these intents work.
<service
android:name=".Screensaver"
android:label="@string/app_label"
androidermission="android.permission.BIND_DREAM_SERVICE">
<intent-filter>
<action android:name="android.service.dreams.DreamService" />
<action android:name="android.app.action.NEXT_ALARM_CLOCK_CHANGED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="android.service.dream"
android:resource="@xml/screensaver_info" />
</service>
Click to expand...
Click to collapse
<receiver
android:name="com.android.alarmclock.DigitalAppWidgetProvider"
android:label="@string/digital_gadget">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
<action android:name="android.app.action.NEXT_ALARM_CLOCK_CHANGED" />
<action android:name="android.intent.action.DATE_CHANGED" />
<action android:name="android.intent.action.LOCALE_CHANGED" />
<action android:name="android.intent.action.SCREEN_ON" />
<action android:name="android.intent.action.TIME_SET" />
<action android:name="android.intent.action.TIMEZONE_CHANGED" />
<action android:name="com.android.deskclock.ALARM_CHANGED" />
<action android:name="com.android.deskclock.ON_DAY_CHANGE" />
<action android:name="com.android.deskclock.WORLD_CITIES_CHANGED" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/digital_appwidget" />
</receiver>
Click to expand...
Click to collapse
Is it possible to launch the screensaver by send intent on Tasker based on the information above? If so, could someone point me in the right direction?
The entire manifest.xml is online, but I don't have enough posts to share the link.
I don't think the clock app launches the screensaver. I think that's done via the screensaver (daydream). I think the intent in the clock app is to bind the clock screensaver to the daydream app. You may realize, the screen saver only functions when idle and charging or docked. The screen has to time out by itself, not by a power button press.
"Good judgment comes from experience, and a lot of that comes from bad judgment." - Will Rogers
Hi guys,
If you are using Google Camera mods, you probably already know that portrait mode is creating individual folders inside of /sdcard/DCIM/Camera
This is anoying for me because I have so many dummy albums in Galery (or QuicPic or whatever) with 1 or 2 photos per album and cannot list and scrol all my photos at once.
I have made a Tasker profile for autocleaning and want to share with you. To be more precise, I giving it to you as Tasker project.
View attachment camera.prj.xml
View attachment camera.prj.xml.zip
What does it do?
After every exit from G camera, shell command goes through /sdcard/DCIM/Camera , looking for files inside all subfolders, moving them one folder up aka into /sdcard/DCIM/Camera and after that deleting (empty) subfolders.
For some reason (God knows why) I am using some 3 versions of G camera mods, so profile is configured to run shell command task when I exit from some of those three particular apps, I am pretty sure that you need to reconfigure profile according to particular version(s) of G Cam which you are using.
Note: If I run task from Tasker (play button) I getting some error (paste at the end of post), but it's working as expected for me. According this and according what task is doing -
deleting some stuffs on place where are your dear photos, plaese use this with your own responsibility and don't blame me if you screw something. Once again, it's working flawlessly for me
However, you always can backup your photos on safe place, then make few dummy test folders inside /sdcard/DCIM/Camera , put few photos inside each folder and run a task for testing purpose.
Error:
12.19.28/E Run Shell: ->
12.19.28/E Run Shell: ->
12.19.28/E Run Shell: ->
12.19.28/Shell runBackground cd /sdcard/DCIM/Camera
find . -mindepth 1 -type f -exec mv {} . \;
find . -type d -exec rmdir {} . \; root: false timeout: -1
12.19.28/Shell start process-thread ID 1345
12.19.28/E add wait type Shell13 time 2147483647
12.19.28/E add wait type Shell13 done
12.19.28/E add wait task
12.19.35/E Error: 1
The camera.prj.xml seems to also hide the Camera folder in DCIM.
I'm using QuickPic 4.5.2 and often have to unhide that folder.
stiw47 said:
Hi guys,
If you are using Google Camera mods, you probably already know that portrait mode is creating individual folders inside of /sdcard/DCIM/Camera
This is anoying for me because I have so many dummy albums in Galery (or QuicPic or whatever) with 1 or 2 photos per album and cannot list and scrol all my photos at once.
I have made a Tasker profile for autocleaning and want to share with you. To be more precise, I giving it to you as Tasker project.
What does it do?
After every exit from G camera, shell command goes through /sdcard/DCIM/Camera , looking for files inside all subfolders, moving them one folder up aka into /sdcard/DCIM/Camera and after that deleting (empty) subfolders.
For some reason (God knows why) I am using some 3 versions of G camera mods, so profile is configured to run shell command task when I exit from some of those three particular apps, I am pretty sure that you need to reconfigure profile according to particular version(s) of G Cam which you are using.
Note: If I run task from Tasker (play button) I getting some error (paste at the end of post), but it's working as expected for me. According this and according what task is doing -
deleting some stuffs on place where are your dear photos, plaese use this with your own responsibility and don't blame me if you screw something. Once again, it's working flawlessly for me
However, you always can backup your photos on safe place, then make few dummy test folders inside /sdcard/DCIM/Camera , put few photos inside each folder and run a task for testing purpose.
Error:
12.19.28/E Run Shell: ->
12.19.28/E Run Shell: ->
12.19.28/E Run Shell: ->
12.19.28/Shell runBackground cd /sdcard/DCIM/Camera
find . -mindepth 1 -type f -exec mv {} . \;
find . -type d -exec rmdir {} . \; root: false timeout: -1
12.19.28/Shell start process-thread ID 1345
12.19.28/E add wait type Shell13 time 2147483647
12.19.28/E add wait type Shell13 done
12.19.28/E add wait task
12.19.35/E Error: 1
Click to expand...
Click to collapse
I dont know how to use shell cammand...can u please help me??
Is there a way to always Unhide the Camera folder.
When I take pics as stated above, the Tasker profile gets rid of the annoying folders and correctly puts the photo in DCIM camera folder but it's often hidden.
I use QuickPic to unhide it all the time. I'd prefer this profile to always make sure it's unhidden. Thanks.
I figured a way to unhide the folder:
Code:
<TaskerData sr="" dvi="1" tv="5.9.3.beta.2">
<Task sr="task158">
<cdate>1558232266194</cdate>
<edate>1584123061374</edate>
<id>158</id>
<nme>Google Camera Folder Fix</nme>
<pri>1006</pri>
<Action sr="act0" ve="7">
<code>123</code>
<se>false</se>
<Str sr="arg0" ve="3">cd /sdcard/DCIM/Camera
find . -mindepth 1 -type f -exec mv {} . \;
find . -type d -exec rmdir {} . \;</Str>
<Int sr="arg1" val="0"/>
<Int sr="arg2" val="0"/>
<Str sr="arg3" ve="3"/>
<Str sr="arg4" ve="3"/>
<Str sr="arg5" ve="3"/>
</Action>
<Action sr="act1" ve="7">
<code>342</code>
<Int sr="arg0" val="5"/>
<Str sr="arg1" ve="3">DCIM/Camera/.nomedia</Str>
<Str sr="arg2" ve="3">%fileexists</Str>
<Int sr="arg3" val="0"/>
</Action>
<Action sr="act2" ve="7">
<code>406</code>
<se>false</se>
<Str sr="arg0" ve="3">DCIM/Camera/.nomedia</Str>
<Int sr="arg1" val="0"/>
<Int sr="arg2" val="0"/>
<ConditionList sr="if">
<Condition sr="c0" ve="3">
<lhs>%fileexists</lhs>
<op>2</op>
<rhs>true</rhs>
</Condition>
</ConditionList>
</Action>
<Action sr="act3" ve="7">
<code>548</code>
<Str sr="arg0" ve="3">Finished processing Portrait Mode folders....</Str>
<Int sr="arg1" val="1"/>
<ConditionList sr="if">
<Condition sr="c0" ve="3">
<lhs>%fileexists</lhs>
<op>2</op>
<rhs>true</rhs>
</Condition>
</ConditionList>
</Action>
<Action sr="act4" ve="7">
<code>548</code>
<on>false</on>
<Str sr="arg0" ve="3">Finished processing. Nothing to fix.</Str>
<Int sr="arg1" val="1"/>
<ConditionList sr="if">
<Condition sr="c0" ve="3">
<lhs>%fileexists</lhs>
<op>2</op>
<rhs>false</rhs>
</Condition>
</ConditionList>
</Action>
<Img sr="icn" ve="2">
<nme>mw_image_camera</nme>
</Img>
</Task>
</TaskerData>
Hope this helps. (I tried multiple times to paste the Task as a description but the XDA board formatting kept replacing things like "on" as "eek", when a colon was in front of the word. Decided to paste and attach the XML file instead).
ROG II Owners,
In Armoury Crate - There is an option to connect to two WiFi networks at the same time.
It's enabled at boot, But after connecting to a WiFi, the option gets disabled saying it's still in beta.
(In Chinese : 陬 Fi 当 前 内 测 中 , 敬 请 期 待 。)
Any idea on how to keep it running?
I have attached screenshots of the feature for exact details.
Furthermore I think I may have found the file that controls this feature.
In Data/Data/com.asus.gamecenter/shared_prefs/pref_storm_network.xml
The file contents when it is enabled
Code:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<int name="user_dual_wifi_new" value="-1" />
<int name="last_power_dualwifi_enable" value="-1" />
<int name="user_storm_network_new" value="-1" />
<int name="last_power_stormnetwork_enable" value="-1" />
<int name="last_backend_stormnetwork_enable" value="1" />
<int name="last_backend_dualwifi_enable" value="1" />
</map>
The file contents after it gets disabled
Code:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<int name="last_power_stormnetwork_enable" value="-1" />
<int name="backend_version_dualwifi" value="45" />
<int name="user_dual_wifi_new" value="1" />
<int name="last_power_dualwifi_enable" value="-1" />
<int name="user_storm_network_new" value="-1" />
<int name="poweruser_config_version" value="2" />
<int name="last_backend_dualwifi_enable" value="0" />
<string name="desc_storm_network_power"></string>
<int name="last_backend_stormnetwork_enable" value="1" />
<string name="desc_storm_network">由于加速服务维护中,暂时需要关闭您的Storm网络。</string>
<string name="desc_dual_wifi">双Wi-Fi当前内测中,敬请期待。</string>
<string name="desc_dual_wifi_power">双Wi-Fi当前内测中,敬请期待。</string>
<int name="backend_version_storm" value="45" />
</map>
I use this method. It's kinda worked.
https://forum.xda-developers.com/rog-phone-2/how-to/change-languge-armoury-crate-device-t3958699
rwonderz said:
I use this method. It's kinda worked.
https://forum.xda-developers.com/rog-phone-2/how-to/change-languge-armoury-crate-device-t3958699
Click to expand...
Click to collapse
Thanks a lot!
JazonX said:
ROG II Owners,
In Armoury Crate - There is an option to connect to two WiFi networks at the same time.
It's enabled at boot, But after connecting to a WiFi, the option gets disabled saying it's still in beta.
(In Chinese : 陬 Fi 当 前 内 测
Click to expand...
Click to collapse
dungnghien said:
In Armoury Crate - There is an option to connect to two WiFi networks at the same time.
It's enabled at boot, But after connecting to a WiFi, the option gets disabled saying it's still in beta.
(In Chinese : 陬 Fi 当 前 内 测
Click to expand...
Click to collapse
I found the location already, Thanks.
Do you know how to keep it permanently enabled?
In CN Rom, download setedit and set same picture, change 0 to 1. Reboot.
Does this only work for CN rom or is it available on WW rom?