[Q&A] [XAP][Source] WPTweaker: registry tweaker for WP8.1 - Windows Phone 8 Q&A, Help & Troubleshooting

Q&A for [XAP][Source] WPTweaker: registry tweaker for WP8.1
Some developers prefer that questions remain separate from their main development thread to help keep things organized. Placing your question within this thread will increase its chances of being answered by a member of the community or by the developer.
Before posting, please use the forum search and read through the discussion thread for [XAP][Source] WPTweaker: registry tweaker for WP8.1. If you can't find an answer, post it here, being sure to give as much information as possible (firmware version, steps to reproduce, logcat if available) so that you can get help.
Thanks for understanding and for helping to keep XDA neat and tidy!

app problem
sensboston said:
"OMG, yet another registry editor!" you'll say and of course you are right - yes, it is!
However (I hope so!) it will be a final WP tweaker, not because of the latest rumors about MS is going to drop WP platform but 'cause of the app's architecture.
It's a first XML-based registry tweaker for WP8.1; instead of waiting of the existing tweakers modification, you may easily add your own hack (and contribute it for community of course!).
This app should work on the interop-unlocked Lumias and Samsung handsets ONLY.
View attachment 3385544
I don't have enough time to create a functional tweak file; currently (in this release) app came with the very small example XML (but this will be changed soon, I hope so).
The WPTweaker's user interface is pretty simple and doesn't require explanation.
The XML data file format is kinda more complicated (but nothing close to the "rocket science" of course )
So, here an example (it came with the current build, ver 1.0.0)
Code:
<?xml version="1.0" encoding="utf-8" ?>
<tweaks>
<contributors>
<contributor>sensboston</contributor>
</contributors>
<tweak category="System" name="Unlimited sideloading" type="toggle" description="Max number of unsigned apps" >
<entry path="HKLM\Software\Microsoft\DeviceReg\Install" name="MaxUnsignedApp" type="dword" default="0000000A" comparer=">">
<value>7fffffff</value>
</entry>
</tweak>
<tweak category="System" name="Unlimited sideloading #1" type="input" description="Max number of unsigned apps">
<entry path="HKLM\Software\Microsoft\DeviceReg\Install" name="MaxUnsignedApp" type="dword" default="0000000A"/>
</tweak>
<tweak category="System" name="Unlimited sideloading #2" type="enum" description="Max number of unsigned apps">
<entry path="HKLM\Software\Microsoft\DeviceReg\Install" name="MaxUnsignedApp" type="dword" default="0000000A">
<value name="Student">2</value>
<value name="Developer">A</value>
<value name="Unlimited">7fffffff</value>
</entry>
</tweak>
<tweak category="User interface" name="Haptic feedback (toggle)" type="toggle" description="Enable or disable haptic feedback" reboot="true">
<entry path="HKEY_LOCAL_MACHINE\System\Touch\Buttons" name="Vibrate" type="dword" default="0">
<value>1</value>
</entry>
</tweak>
<tweak category="User interface" name="Haptic feedback (input)" type="input" description="Enable or disable haptic feedback" reboot="true">
<entry path="HKEY_LOCAL_MACHINE\System\Touch\Buttons" name="Vibrate" type="dword" default="0">
<value>1</value>
</entry>
</tweak>
<tweak category="User interface" name="Haptic feedback (enum)" type="enum" description="Enable or disable haptic feedback" reboot="true">
<entry path="HKEY_LOCAL_MACHINE\System\Touch\Buttons" name="Vibrate" type="dword" default="0">
<value name="Enabled">1</value>
<value name="Disabled">0</value>
</entry>
</tweak>
<tweak category="User interface" name="Touch buttons intensity" type="input" description="Increase or decrease intensity of touch buttons" min="100" max="1000">
<entry path="HKLM\System\Touch\Buttons" name="Intensity" type="dword" default="36"/>
</tweak>
<tweak category="User interface" name="Touch buttons intensity #2" type="enum" description="Increase or decrease intensity of touch buttons">
<entry path="HKLM\System\Touch\Buttons" name="Intensity" type="dword" default="36">
<value name="Default">36</value>
<value name="Longer">72</value>
<value name="Long">120</value>
</entry>
</tweak>
<tweak category="System" name="Enable internet sharing" type="toggle" description="Enable internet sharing, disabled by cell provider" reboot="true">
<entry path="HKEY_LOCAL_MACHINE\System\ControlSet001\Services\ICSSVC\Settings" name="Enabled" type="dword" default="0">
<value>1</value>
</entry>
<entry path="HKEY_LOCAL_MACHINE\System\ControlSet001\Services\ICSSVC\Settings" name="EntitlementRequired" type="dword" default="1">
<value>0</value>
</entry>
<entry path="HKEY_LOCAL_MACHINE\Software\Microsoft\Settings\{1DEF9B7D-2322-40eb-A007-16A75D5CDA6F}" name="@" type="string">
<value>Soft AP</value>
</entry>
<entry path="HKEY_LOCAL_MACHINE\Software\Microsoft\Settings\{1DEF9B7D-2322-40eb-A007-16A75D5CDA6F}" name="Location" type="string">
<value>app://5B04B775-356B-4AA0-AAF8-6491FFEA5629/Default</value>
</entry>
<entry path="HKEY_LOCAL_MACHINE\Software\Microsoft\Settings\{1DEF9B7D-2322-40eb-A007-16A75D5CDA6F}" name="Plugin" type="string">
<value>{09c51652-2cbc-49d5-883e-20606f9a47ff}</value>
</entry>
<entry path="HKEY_LOCAL_MACHINE\Software\Microsoft\Settings\{1DEF9B7D-2322-40eb-A007-16A75D5CDA6F}" name="QuickSettingsIconURI" type="string">
<value>res://UIXMobileAssets{ScreenResolution}!actioncenter.hotspot.tier25.png</value>
</entry>
<entry path="HKEY_LOCAL_MACHINE\Software\Microsoft\Settings\{1DEF9B7D-2322-40eb-A007-16A75D5CDA6F}" name="QuickSettingsTitle" type="string">
<value>@\\windows\\system32\\Settings3Res.dll,-535</value>
</entry>
<entry path="HKEY_LOCAL_MACHINE\Software\Microsoft\Settings\{1DEF9B7D-2322-40eb-A007-16A75D5CDA6F}" name="Title" type="string">
<value>@\\windows\\system32\\Settings3Res.dll,-242</value>
</entry>
<entry path="HKEY_LOCAL_MACHINE\Software\Microsoft\Settings\{1DEF9B7D-2322-40eb-A007-16A75D5CDA6F}" name="Type" type="dword" default="0">
<value>1</value>
</entry>
<entry path="HKEY_LOCAL_MACHINE\Software\Microsoft\Settings\{69DAA7D1-09EA-4eae-A67E-56E4B0B4CA5B}\SecureItems" name="{1DEF9B7D-2322-40eb-A007-16A75D5CDA6F}" type="dword">
<value>b0</value>
</entry>
<entry path="HKEY_LOCAL_MACHINE\Software\Microsoft\Settings\QuickSettingElements" name="{1DEF9B7D-2322-40eb-A007-16A75D5CDA6F}" type="dword">
<value>7</value>
</entry>
</tweak>
<tweak category="User interface" name="Boot screen logo" type="input" description="Change boot screen logo">
<entry path="HKEY_LOCAL_MACHINE\SYSTEM\Shell\BootScreens" name="WPBootScreenOverride" type="string"/>
</tweak>
</tweaks>
Let me explain for a little this XML data.
=====================================================================================================================
<contributors> element is a tweak contributors list, I'll be glad to add you to this list.
Element <tweak> must have some attributes and may have some...
required attributes
- category="User interface": it's a tweak category, all tweaks will be grouped by categories, and these categories become a pivot pages headers
- name="Touch buttons intensity": short tweak description
- type="enum": tweak type. There are 3 types of tweaks currently serving: toggle, input and enum
optional attributes
- description="Increase or decrease intensity of touch buttons": detailed tweak description
- reboot="true": does reboot required for this tweak?
- min="100", max="1000": minimal and maximal value limits (for numeric input, currently not implemented)
Element <entry> represents registry entry.
required attributes
- path="HKLM\Software\Microsoft\DeviceReg\Install" : registry path
- name="MaxUnsignedApp": registry key name
- type="dword": registry data type, can be "dword", "qword", "string", "strings" and "binary"
- default="0000000A" : default registry value. Can be omitted but definitely good to have one...
optional attributes
- comparer=">": determines how to check tweak state. Logical operation for the value comparer (with default value). By default it's "!=" (not equal), also can be ">" or "<"
Element <value> it's a registry entry value.
This element may have an optional attribute "name", to specify how this value should appear in the combo box.
=====================================================================================================================
"WPTweaker" is an open source project; download solution from the GitHub
Source code isn't elegant, or clean, or well commented but at least you may use it without any license restrictions (I still thinking about applicable open source license and still unsure).
If you want to contribute tweaks and hacks to the project, I'll be glad to list your name/nick/email in the app's "about box"! But please check your hacks first, and ask me (here, in this thread) if you have any questions.
If you like this project, you may buy me a couple bottles of beer by donating, or by installing and rating "5 stars" my apps from the store
This app should work on the interop-unlocked Lumias and Samsung handsets ONLY.
Disclaimer: you are using this app at your own risk; I'm not responsible for any damages caused by usage of the WPTweaker!
Credits: I wanna say big "thanks" to @vcfan and @-W_O_L_F- for their work (I used their RPC libraries), and to all whitehats from xda-dev!
Click to expand...
Click to collapse
after Enable internet sharing it's disappear from the setting menu....i can;t access...plz help me
also notification+action also disappear from setting menu'

Yooo... I can use this app by patching it to extre e info... Works fine.... Awesome... Thanks for this wonderful app.

Related

Internet Tab and Opera 10 Beta 2u...??

I am running WM 6.5 for t-mobile and I have installed the Opera 10 Beta 2u.
I can launch the browser from ever location except the "Internet Tab" on Touch Flo 3d
It will always launch the Opera 9 Browser.
I have confirmed my registry entry:
Code:
0 Opera Browser
1 "\Program Files\Opera Mobile 10\Opera10-armv4i.exe"
How do I get Opera 10 to Launch from the Internet Tab??
I have also tried editing the .xml file as well....??
It reads:
Code:
<?xml version="1.0" encoding="utf-16"?>
<InternetPortal>
<BrowserExe>\ProgramFiles\OperaMobile10\Opera10-armv4i.exe</BrowserExe>
<IncludeUserFavorites>False</IncludeUserFavorites>
<Banner DefaultImagePath="\Windows\HTC\Assets\Images\InternetPortal\banner.qtc"
SelectedImagePath="\Windows\HTC\Assets\Images\InternetPortal\banner_selected.qtc"
Text="Launch Browser"
NavigateUrl="http"
UrlText="Google"
Width="480"
Height="215" />
<OperatorLinks>
<Link
Text="XDTalk"
NavigateUrl=""
ImagePath="\Windows\_Bookmark_icon.qtc" />
<Link
Text="USAA"
NavigateUrl="/"
ImagePath="\Windows\_Bookmark_icon.qtc" />
<Link
Text="CNN"
NavigateUrl=""
ImagePath="\Windows\_Bookmark_icon.qtc" />
<Link
Text="eBay"
NavigateUrl=""
ImagePath="\Windows\_Bookmark_icon.qtc" />
</OperatorLinks>
</InternetPortal>
When I try to start Opera 10 from the internet tab I get the following Error:
The file cannot be opened. Either it is not signed with a trusted certificate ... etc
Click to expand...
Click to collapse
Additionally, I can manually navigate to the \ProgramFiles\OperaMobile10\Opera10-armv4i.exe file and Run Opera 10 without an issue using File Explorer....
Please Help!
try to uninstall opera 9 and set opera 10 beta as ur default when you open it...hope this works
when u installed 10B2 did it ask you to set it as your default browser?
thats all i did was check yes in the setup and my internet tab launches 10 now and my 9 is integrated
I did select Opera 10 as my default browser during the install.
I cannot "uninstall" Opera9 as it was cooked into the Rom from t-mobile.
Any other suggestions?

[Dev][Guide][All-About-Aroma][For-Tab2]

guys i started a new thread for devs that still don't use the aroma installer binary
Click to expand...
Click to collapse
okay 1 step what is aroma
aroma installer: Is an excutable binary that is based on the edify scripting that contains 2 excutables in meta-inf/com/google/android 1.is the ordinary update-binary (know as update binary installer) and the 2.is the aroma binary that split into two parts a.the aroma config and the b.the binary the config is which instructs the binary to make the ui like alert box and the menu box..
Click to expand...
Click to collapse
LETS DIG DEEPER NOW
Setting Rom/Mod Name in Aroma-config
Use these codes to show the name of your rom /mod
copy pasta this code just under the license
Code:
ini_set("rom_name", "example rom");
ini_set("rom_version", "you rom version");
ini_set("rom_author", "mythi");
ini_set("rom_device", "GT-P31XX");
ini_set("rom_date", "date");
Then we need to Show this info so follow and some more typing !!
add this just beneath the lines added previously
Code:
###################################################################################################################
#
# STEP 1 - SHOW ROM INFORMATION
#
viewbox(
#-- Title
"Hello!", <<------ This can be changed
#-- Text
"You are about to install <b>"+ <<--------- this can be changed
#-- Get Config Value
ini_get("rom_name")+
"</b> for <b>"+ini_get("rom_device")+"</b>.\n\n"+
" VERSION\t: <b><#selectbg_g>"+ini_get("rom_version")+"</#></b>\n"+
" UPDATED\t: <b><#selectbg_g>"+ini_get("rom_date")+"</#></b>\n\n\n"+
"Press <b>Next</b> to continue the installation.",
^^^
| <----- this can be changed !!
|
#-- Icon
"@welcome"
); <<----------- Remmeber this one
We are not done yet !!
ADD CREDITS SECTION !!
TYPE THESE IN AROMA CONFIG
Code:
###################################################################################################################
#
# STEP 3 - CREDITS
#
textbox(
#-- Title
"Thanks To", << THIS CAN BE CHANGED--------------
#-- Subtitle
"", << THIS CAN BE CHANGED--------------
#-- Icon
"@update", << THIS CAN BE CHANGED--------------
#-- Arg 4
resread("thanks.txt") << THIS CAN BE CHANGED--------------
); << REMMEBER THIS--------------
NOW GOTO META-INF\COM\GOOGLE\ANDROID\AROMA\HERE AND MAKE A NEW NOTE PAD FILE CALLED thanks AND SAVE AS TXT THEN TYPE WHAT YOU WANT OR USE A TEMPLETE BY ME IN ATTACHMENT NOW YOU ADDED CREDITS PAGE HAVE FUN
ADD LICENCE PAGE IN AROMA
TYPE THESE
Code:
###################################################################################################################
#
# STEP 2 - TERMS OF USE
#
agreebox(
#-- Title
"Important notes!",
#-- Subtitle / Description
"",
#-- Icon
"@quarantine",
#-- Text Content
resread("agreement.txt"), <<------------------ THIS CAN BE CHANGED
#-- Checkbox Text
"I agree with these and I am not high,drunk,mad !!.", <<------------- THIS TEXT SHOWS BEHIND THE CHECK BOX !!
#-- Unchecked Alert Message
"You need to agree with the Terms of Use..." <<---------------- THIS SHOWS WHEN BOX IS NOT CHECKED
); <<--------------- REMMBER THIS
NOW GO TO META-INF\COM\GOOGLE\ANDROID\AROMA\HERE CALLED agreement AND SAVE AS TXT ANDWHAT YOU WANT TO BE DISPLAYED OR USE TEPELATE BE ME !! IN ATTACHMENT :silly:
INSTALLING PROCESS
TYPE THESE
Code:
###################################################################################################################
#
# STEP 4 - INSTALLING
#
ini_set("text_next", "Install now");
viewbox(
"Almost Done !!",
"You are now ready to begin installation.\n\n"+
"Press <b>GOGOGO</b> to start.\n\n"+
"If you want to review or change any of your installation settings, press <b>Back</b> Button.",
"@install"
);
ini_set("text_next", "GOGOGO"); <<----------- THIS CAN BE CUSTOMIZED
install(
"Installing",
"Flashing <b>"+ini_get("rom_name")+"</b>...\n"+
"Please Wait...",
"icons/install",
"Done! Press <b>Next</b> button"
);
viewbox(
"Installation was successful!",
"You are now running <b>"+ini_get("rom_name")+"</b>.\n\n"+
"<b>If installation sucsess please reboot your tab and don't touch any thing</b>\n\n"+
"<b>Leave the tab for 5minutes</b>\n\n"+
"<b>After that setup basic installation</b>\n\n"+
"<b>Don't setup google account !</b>\n\n"+
"<b>If you choose to flash anything on top of the rom you may loose the mods included in it !</b>\n\n"+
"<#selectbg_g><b>Please hit thanks to support the author of this ROM is greatly appreciated!</b></#>\n\n",
"@Welcome To FastDream HD"
ALL OF THE ABOVE CAN BE CUSTOMIZED !!
); <<------------- REMMBER THIS
COMING UP
1.ADD COMPLICATED MENU BOXES
2.ADD SIMPLE MENU BOXES
3.MAKE CUSTOM THEMES FOR AROMA
now going to sleep more later
reserved

[Q] Porting ROM to Xperia Z

Hi,
I'm trying to port AOSPA to the Xperia Z ... for my own usage, but I'd also share it to the community.
I've never done this before and after days of trying and editing files I'm getting a bit tired at the moment.
It would be great if someone could help me to get into it. All Porting Guides are different and most of them are using already precompiled files.
At the moment I get the error
Code:
Traceback (most recent call last):
File "../../base/android/jni_generator/jni_generator.py", line 1065, in <module>
sys.exit(main(sys.argv))
File "../../base/android/jni_generator/jni_generator.py", line 1061, in main
options.optimize_generation)
File "../../base/android/jni_generator/jni_generator.py", line 996, in GenerateJNIHeader
jni_from_javap = JNIFromJavaP.CreateFromClass(input_file, namespace)
File "../../base/android/jni_generator/jni_generator.py", line 507, in CreateFromClass
stderr=subprocess.PIPE)
File "/usr/lib/python2.7/subprocess.py", line 709, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1326, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
make: *** [/home/pa/git/aospa/out/target/product/c6603/obj/GYP/shared_intermediates/ui/gl/jni/Surface_jni.h] Fehler 1
make: *** Warte auf noch nicht beendete Prozesse...
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Is this helpful? I can provide some more information if needed.
Some of the steps I did so far:
repo init -u git://github.com/AOSPA/manifest.git -b kitkat
repo sync -j48
Followed this Guide to add Sony BLOBS and edited '.repo/local_manifests/sonyxperiadev.xml' to the following (Deleted some 'remove-project' lines because they have been not present)
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="sony" fetch="git://github.com/sonyxperiadev/" />
<remove-project name="platform/hardware/invensense" />
<remove-project name="platform/hardware/akm" />
<project path="device/sony/lagan" name="device-sony-lagan" groups="device" remote="sony" revision="master" />
<project path="device/sony/c6603" name="device-sony-c6603" groups="device" remote="sony" revision="master" />
<project path="device/sony/sgp321" name="device-sony-sgp321" groups="device" remote="sony" revision="master" />
<project path="vendor/sony/dash" name="DASH.git" groups="device" revision="master" remote="sony" />
</manifest>
I also commented the following lines from 'device/sony/c6603/full_c6603.mk'
Code:
#TARGET_PREBUILT_KERNEL ?= kernel
#PRODUCT_COPY_FILES += $(LOCAL_PATH)/$(TARGET_PREBUILT_KERNEL):kernel
Compiling did not work with this lines. So i tried it without kernel. My idea would be to add other kernel sources like cm11 kernel. For my understanding this would mean, that I have to add 'device/sony/c6603/kernel' folder and insert the files from 'github.com/CyanogenMod/android_kernel_sony_apq8064/tree/cm-11.0'. After that I would edit the commented lines to
Code:
TARGET_KERNEL_SOURCE ?= kernel
PRODUCT_COPY_FILES += $(LOCAL_PATH)/$(TARGET_KERNEL_SOURCE):kernel
And uncomment them. Is this correct?
After that I copied 'vendor/pa/products/pa_mako.mk' to 'vendor/pa/products/pa_yuga.mk' and edited it to the following:
Code:
# Copyright (C) 2013 ParanoidAndroid Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Check for target product
ifeq (pa_yuga,$(TARGET_PRODUCT))
# Define PA bootanimation size
PARANOID_BOOTANIMATION_NAME := XHDPI
# OVERLAY_TARGET adds overlay asset source
OVERLAY_TARGET := pa_xhdpi
# Build paprefs from sources
PREFS_FROM_SOURCE ?= true
# Include ParanoidAndroid common configuration
include vendor/pa/main.mk
# Inherit AOSP device configuration
$(call inherit-product, device/sony/c6603/full_c6603.mk)
# Override AOSP build properties
PRODUCT_NAME := pa_yuga
PRODUCT_BRAND := Sony
PRODUCT_MODEL := C6603
PRODUCT_MANUFACTURER := Sony
PRODUCT_BUILD_PROP_OVERRIDES += PRODUCT_NAME=yuga BUILD_FINGERPRINT="Sony/C6603_1270-6697/C6603:42.2/10.3.A.0.423/WP5_rg:user/release-keys" PRIVATE_BUILD_DESC="C6603-user 4.2.2 10.3.A.0.423 WP5_rg test-keys"
endif
Now I added
Code:
add_lunch_combo pa_yuga-userdebug
to 'vendor/pa/vendorsetup.sh'
using make -j8 gives me:
Code:
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.4
TARGET_PRODUCT=pa_yuga
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
[COLOR="Red"]TARGET_ARCH_VARIANT=armv7-a-neon[/COLOR]
TARGET_CPU_VARIANT=krait
HOST_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-3.11.0-13-generic-x86_64-with-Ubuntu-13.10-saucy
HOST_BUILD_TYPE=release
BUILD_ID=KRT16S
OUT_DIR=/home/pa/git/aospa/out
============================================
I think the red line should be a bit different?

[HELP] Xposed Installer 31-10-2017 not activated modules

it is not activated with the latest version of the xposed installer 31-10-2017 module: device emulator
Mensage Error:
Module is disabled in xposed
enabled_modules.xml
?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<int name="com.device.emulator.pro" value="1" />
</map>
Link installer: https://forum.xda-developers.com/devdb/project/?id=13191#downloads

My lightweight Debian Desktop

People generally have a hard time accepting change, understanding new things. It's too bad. THing is, people want things to operate by the parameters they have set instead of accepting what a thing is. Take Linux - people come from elsewhere, sit at a linux box, and lose their minds. Tha's the wrong atitude, of course it's a failure. You don't make toast with a radio.
Linux is a vast collection of stuff. There are many ways to set it up, configure it, many apps that do the one thing. It's a big deal and it's probably too much awesome for most. If your attitude going in is open, and you have no dogma or prejudice, before yuo know it you'll wonder why you suffered anything else for so long.
All that said - I run Debian since forever and I run a lightweight config. I don't use a 'desktop environment' like KDE or Gnome (say g-nome one time standing next to me....fuk'n...) because I don't need or want all that it includes. You might and that's cool. THis ain't for you, though. I'm not gonna hold your hand, but, this is easy to follow, it's basically right in front of you.
If you'd like to enjoy a similar desktop as I do then browse through one time and then get yourself ready. It doesn't take long at all and it's damned easy.
We'll use the net-installer iso because that's all we need and we have an internet connection. If you're not on a pipe, you can't do things this way. We will use the 64 bit net-install iso that includes non-free firmware so your wireless will work during installation. Here. To burn this to a usb stick on windows - go find an app for that. On Linux, use dd:
sudo dd if=firmware-11.2.0-amd64-netinst.iso of=/dev/sdc status="progress"
You can see from the command that my usb stick is /dev/sdc - this is the 'device' it is. It's important to get this right, dd don't care and will wipe whatever drive you put here. Make sure your usb stick is /dev/sdc or /dev/sdb. sudo fdisk -l will tell you, gparted will tell you. Whatever it is...After it's on the stick, reboot to it.
Debian install ain't pretty, but, it's fast and easy. You're gonna hit enter a lot. Chose a hostname, but, don't worry about a domain name in the next screen. If you have one, use it, if you don't, just leave it empty and go next.
Create a root user, this ain't ubuntu. Create your user next...
Partitioning is up to you, you can let debian do its thing with the default - guided (bye bye existing data), or, you can arrow down to manual, which is the right choice - I always use 4 primaries:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
all formatted ext4 (use as). I use a swap for hibernation, you don't really need it if you have over 4gb ram. Make one, anyway. Make swap at least 2ce your ram. My /root (sda3) partition is so large because I used to run a web server. You can make /root much smaller, say 50gb and put the rest into /home.
If you have data in your /home partition already - what are you doing here - then you can choose to keep it during partitioning. The installer will default to keep, so you're good. You have to tell it to erase the partition, for example in your /boot. You can use other drives or not during the installation, too. You may have a /dev/sdb drive in your box, maybe it's a dump. When you are partitioning you can enter on it and choose to use it or not - use as: ext4, or whatever. Just choose custom for the mount point and type in a name. /stuff... Make sure to make your /boot partition 'bootable' when you are partitioning. You will see it as a choice when you partition.
Your next real decision in the installer is choosing what to install. The installer defaults to: desktop environment, gnome, and at the bottom, standard system utilities. For our purposes, uncheck (arrow key and spacebar) everything except the bottom one, go next...The installer will install some basic tools and whatnot, maybe a hundred or so files. That's it, go next...keep going through the install, mostly hitting enter. Participate in popularity contest or not - hint: Debian doesn't care about you like facebook does, you're not selling your soul if you participate. It defaults to no, though, choose what you want and next...
Install that grub boot loader on your /dev/sda drive. You'll see drive choices when it asks you. Enter on your choice. In a second you will reboot into the vast blackness of a barebones debian install. Wicked.
It's installed and you can grow from here. On the one laptop I have pi-hole installed on - I did nothing else after this barebones install other than install pi-hole. It put dependencies on for me, lighttpd for example and supporting php. That laptop stays on foever and I ssh in if I need to. It's an appliance. For you, you want a desktop, you want programs and whatnot so you can do stuff.
Upon booting you'll land at a login prompt. Log in as root the one time. run: apt install aptitude xorg scrot lxrandr lxappearance openbox feh gpicview unclutter numlockx thunar xinit lxpanel sudo xfce4-terminal, hit enter. When it's finished, run this: visudo, enter. Scroll down to beneath the root user entry and type:
YOURUSERNAME ALL=(ALL:ALL) NOPASSWD:ALL, then, ctrl+x, y, enter.
You've just made yourself admin on the box without having to input a password ever again. Handy. log out from root, type: exit, hit enter.
As it stands now, you can log into a pretty gui desktop right now, so, let's do it. Remember, there's not much installed and we didn't config anything yet. You just have xorg for your display, openbox for window management a panel, a file manager, init, a terminal, and I like aptitude (package management) because I made .bash_aliases entries for it ages ago.
Log in as you. Your prompt might change color, don't worry if it doesn't. You're still logged into just that empty blackness because we didn't start anything yet. Let's do that. Do this first: nano .xinitrc, enter. In that file add this line: exec openbox-session, then save and close (ctrl+x, y, enter). Now, start the pretty by typing: startx, and hit enter.
Bam. You're in more emptiness. This is openbox and you know you're in something because if you right-click (right-click on all of the things) you will see a small menu. Now, this ain't KDE, remember, this is a fleet-footed light desktop and openbox is a window manager, because, that's all you need - the luxury we get we create, this is custom. I don't install too much because I'm just a commoner now, no web development, no audio/video stuff (well, a little) I don't need writing, research , project support anymore, or, anything, really. You might, though, and debian has it all - add your fancy stuff later, let's get openbox and the desktop useable and fancy first.
In linux, everything is a file. Everything, even your devices. That's so cool. OPenbox uses 3 files for configuration, to let you do stuff. rc.xml controls your fancy keyboard combos, menu.xml created and maintains your desktop menu, and autostart.sh does what it says. You can learn and try things as you go, but, for now, we want to edit autostart.sh. Do it: nano .config/openbox/autostart.sh, enter. I have only a few entries which are:
sh ~/.fehbg &
redshift &
lxpolkit &
numlockx &
lxpanel &
compton -bcC &
thunar --daemon &
xscreensaver -no-splash &
#------------------------------------------////
# Delayed Startup Handiness:
#------------------------------------------////
(sleep 2s && unclutter) &
(sleep 3s && volumeicon) &
(sleep 3s && diodon) &
See that first entry - feh? That's a script to tell feh what to present as my desktop background image. Here's the script:
#!/bin/sh
feh --no-fehbg --bg-fill '~/nick/nick-nazzaro-jungle-green.png'
The autostart entry is running the script from my home directory (~/). So, make the file for the script in your home directory (nano .FILENAME, enter). You can see from the autostart entry that my script is saved as .fehbg. Call it whatever you want, just make the file and after you save it, you'll need to make it executable so it will run, do, do this: chmod +x .fehbg, enter. DOn't forget to change the directory feh serves up the image from. You don't have an image in ~/nick... I also use a handy thunar action for the desktop background where I can right-click on any image and set it as the background and the feh script will update to the new choice. Handy.
You'll notice my autostart file has entries we didn't install yet. I'll tell you: redshift reduces the blue when it's dark, numlockx chooses it for you so when you log in you can use your number keys, lxpanel gives me a panel with a tray, compton makes things prettier, thunar is the file manager that you don't have to autolaunch as a daemon at all if you don't want to, xscreensaver does what it says. The entries with sleep are delayed for x seconds: unclutter makes the mouse disappear after 10 seconds - handy, volumeicon gives me mixer access in the panel, and diodon replaces clipit as a clipboard manager. Add whatever program or script that you want to autostart with your desktop.
I have a bunch of entries in the rc.xml file becasue hitting a key-combo is handy. For example I hit win+b to open firefox, win+t for the terminal, and so on. Here is the syntax:
<keybind key="W-b">
<action name="Execute">
<execute>~/Downloads/firefox/firefox</execute>
</action>
</keybind>
I make an entry for screenshots, too, because wtf - I can't be bothered to go clicking for an app when I want one. Most times, the print (screen) button is already employed as a handy full desktop screenshot. But, we are barebones here, no DE that will do that for us. I use scrot because it's magic and awesome. I have entries in rc.xml for key-combos, and I have antries in the menu.xml file as well, should I feel like clicking. IN rc.xml my scrot entries are as follows (yes, I had to make the folder 'scrots' in my ~/. Get used to knowing, and using this: ~/, as /home/YOU/
<!--SCROT-->
<keybind key="W-Print">
<action name="Execute">
<execute>scrot '%Y-%m-%d_$wx$h_%X.jpg' -s -e 'mv $f ~/scrots/ & gpicview ~/scrots/$f'</execute>
</action>
</keybind>
<keybind key="W-Insert">
<action name="Execute">
<execute>scrot '%Y-%m-%d_$wx$h_%X.jpg' -e 'mv $f ~/scrots/'</execute>
</action>
</keybind>
<keybind key="Print">
<action name="Execute">
<execute>scrot '%Y-%m-%d--%s_$wx$h_scrot.jpg' -e 'mv $f ~/scrots/ & gpicview ~/scrots/$f'</execute>
</action>
</keybind>
<!--END SCROT-->
The menu.xml file is just as simple. You can use a tool to make the menu for you, in fact there are a few, but, I don't mess with those. Have a look at one of my sub-menus:
<menu id="stuff" label="Utils" icon="/usr/share/icons/Tango/scalable/apps/system-config-users.svg">
<item label="Audio Settings" icon="/usr/share/icons/Tango/scalable/devices/stock_mic.svg">
<action name="Execute">
<command>pavucontrol</command>
</action>
</item>
<item label="Screensaver" icon="/usr/share/icons/Tango/scalable/apps/gnome-settings-accessibility-technologies.svg">
<action name="Execute">
<execute>
xscreensaver-demo
</execute>
</action>
</item>
<item icon="/usr/share/icons/Tango/scalable/apps/internet-web-browser.svg" label="Bleachbit-root" icon="/usr/share/icons/bleachbit.png">
<action name="Execute">
<execute>
<!-- su-to-root -X -c bleachbit -->
sudo bleachbit
</execute>
</action>
</item>
<item icon="/usr/share/icons/Tango/scalable/apps/utilities-system-monitor.svg" label="GParted" icon="/usr/share/icons/gparted.png">
<action name="Execute">
<execute>
sudo gparted
</execute>
</action>
</item>
<item label="Synaptic" icon="/usr/share/icons/Tango/scalable/apps/preferences-desktop-remote-desktop.svg">
<action name="Execute">
<execute>
sudo synaptic
</execute>
</action>
</item>
<item label="SystemProfiler" icon="/usr/share/icons/Tango/scalable/status/info.svg">
<action name="Execute">
<execute>
sudo hardinfo
</execute>
</action>
</item>
<item label="Timer" icon="/usr/share/icons/Tango/scalable/status/gnome-fs-loading-icon.svg">
<action name="Execute">
<execute>
~/bin/timer.sh
</execute>
</action>
</item>
</menu>
Openbox is pretty easy to set up and it's fast. I have used it for 15 years or so and never missed any fancy desktop environment. It's important to know that I support this lightweight install with ancillary procedures. For example, I employ .bash_aliases to a large degree, as, I am sure most linux users do, or, would, if they knew about it. I also employ a bunch of actions I can run on files and folders in Thunar. It's wicked.
Some entries in my ~/.bash_aliases file, for handiness:
alias 53='sudo lsof -i :53' (what's running on port 53, I have this one on the pi-hole box)
alias clients='sudo nmap -sn 192.168.1.0/24' (clients on my lan)
alias guts='sudo inxi -Fx -c24' (system hardware whatnot)
alias dim='redshift -O 4200K -r -P' (to take care of my eyes if I didn't set redshift up for auto)
alias nap='sudo /usr/sbin/pm-suspend' (to suspend my box when I leave for work, you can use systemctl)
alias again='sudo shutdown -r now' (reboot right now)
alias off='sudo shutdown -h now' (shutdown right now)
--package management --
alias sources='sudo nano /etc/apt/sources.list'
alias show='aptitude show'
alias list='dpkg -L'
alias cpf='sudo aptitude clean && sudo aptitude purge ~c && sudo aptitude -f install'
alias remove='sudo aptitude purge'
alias install='sudo aptitude --without-recommends install'
alias apps='sudo synaptic'
alias search='aptitude search'
alias update='sudo aptitude update'
alias upgrade='sudo aptitude full-upgrade'
alias orphans='sudo deborphan'
alias foster='sudo debfoster'
alias devs="aptitude -F '%p' search '~i -dev$'"
alias devsizes="aptitude -F '%I %p' search '~i -dev$'"
alias hold='sudo aptitude hold'
alias unhold='sudo aptitude unhold'
ssh to my pi box:
alias pi='ssh -p 22061 [email protected]' - I use a key, so, it's - BAM!
shut off the screen saver so I can watch a flick:
alias killx='killall -15 xscreensaver'
quick password:
alias pwgen='pwgen -ys 24 1'
when I'm in a terminal I might want to edit one of the openbox files:
alias auto='geany ~/.config/openbox/autostart.sh &'
alias menu='geany ~/.config/openbox/menu.xml &'
alias rc='geany ~/.config/openbox/rc.xml &'
I have lots more, some entries run an app, a script, do a thing. aliases are so handy.
Here are a couple entries from my thunar custom actions file (uac.xml I think in .config/thunar)
name: resize 640
command: ~/.config/scripts/resize 640 %N (that is a script)
appearance conditions (*) : image file,
Have ffmpeg installed. The script is:
Code:
#!/bin/bash
mkdir -p ./Resized/$1
for file
do
if [ ! -e "$file" ]
then
continue
fi
name=$( echo $file | cut -f1 -d.)
convert -geometry $1x$1 -quality 100 $file ./Resized/$1/${name}_$1.jpg
done
I use another one for resize, too, that's wicked. You can choose any size you want, check it out:
in thunar custom actions -
name: resize-options
command: ~/.config/scripts/resz %N
appearance conditions (*): images
Here's the resz script:
Code:
#!/bin/bash
# resize_img.sh -- An Imagemagick Resize Script
# Author: canci <[email protected]>
# License: GPL. See http://www.gnu.org/licenses/gpl.html
# Dependencies: Bash (duh!), Imagemagick, zenity
# 1. IFS and other delcarations
# Saving the old one
SAVEIFS=$IFS
# Declaring the new one
IFS=$(echo -en "\n\b")
# Files
FILES=`ls -1 [email protected]`
# Directory name in case files are not being overwritten
NEW_DIR=RESIZED__`date +%d-%b-%Y_%T`
# Integer file count for the progress bar
n=1
# 2. Get desired resolution; Exit if cancel button pressed, otherwise move on
RES=`zenity --title="Please enter a resoultion" --entry --text="Image Resizer -- Please enter a resoultion (e.g. 800x600)"`
if [ $? == 1 ]; then
exit
else
# 2.1. Should the resize disregard the current aspect ratio and resize strictly to the given resolution?
#
Q1=`zenity --title="Disregard aspect ratio?" --question --text="Disregard aspect ratio? If Yes, the images will be resized to the exact resolution you provided, which might skew images if the aspect ratio differs. If No, the aspect ratio will be preserved and only the width will be resized accurately."`
if [ $? == 0 ]; then
# 2.1.1. Should the file be overridden or should a new one be created? mogrify or convert will be used accordingly.
#
Q2=`zenity --title="Overwrite file?" --question --text="Overwrite file? If No, the resized images will be put inside a new directory called RESIZED with the date of creation appended to it."`
if [ $? == 0 ]; then
for f in $FILES
do
mogrify -resize `echo $RES`! $f
echo $n
echo "# Processing file: $f"
let "n = n+1"
done | (zenity --progress --title "Resizing..." --percentage=0 --auto-close --auto-kill)
zenity --info --text="Done!"
else
mkdir $NEW_DIR
for f in $FILES
do
convert -resize `echo $RES`! $f $NEW_DIR/$f
echo $n
echo "# Processing file: $f"
let "n = n+1"
done | (zenity --progress --title "Resizing..." --percentage=0 --auto-close --auto-kill)
zenity --info --text="Done!"
fi
# WHAT ELSE? HUH?
else
# 2.1.2. Same as in 2.1.1., but for aspect ratio resize.
#
Q3=`zenity --title="Overwrite file?" --question --text="Overwrite file? If No, the resized images will be put inside a new directory called RESIZED with the date of creation appended to it."`
if [ $? == 0 ]; then
for f in $FILES
do
mogrify -resize $RES $f
echo $n
echo "# Processing file: $f"
let "n = n+1"
done | (zenity --progress --title "Resizing..." --percentage=0 --auto-close --auto-kill)
zenity --info --text="Done!"
else
mkdir $NEW_DIR
for f in $FILES
do
convert -resize $RES $f $NEW_DIR/$f
echo $n
echo "# Processing file: $f"
let "n = n+1"
done | (zenity --progress --title "Resizing..." --percentage=0 --auto-close --auto-kill)
zenity --info --text="Done!"
fi
# Ending 2.1.
fi
# Ending 2
fi
# 3. Restore IFS (for possible future use)
#
IFS=$SAVEIFS
# EOF
exit 0
If you need a handy image resize script, that one is awesome. Put it into a file and make a custom action out of it in thunar, see how awesome it is.
There are so many more from encrypting stuff to flattening folders to mounting an iso..look them up and get some, so handy. Here's that handy right-click desktop wallpaper custom action for thunar:
command: feh --bg-fill %f
appearance conditions: image
You can see where I take advantage of built-in functionality of the system and some apps I choose in order to run and thrive in a lightweight desktop. Of course, I have a bunch of other programs installed: claws-mail, gimp, filezilla - tons of stuf. Actually not, I have 1326 packages installed. People that run with a DE will typically have 2500 packages installed. Debian has 60,000 packages from you to choose from, all config'd for the version release at the time, everything in the bullseye repos will work on your bullseye install.
My desktop is setup for the efficiency, or lack thereof, in which I function - in which I work, move. I like to use the keyboard, I like to use a terminal, I like having shortcuts and some auto stuff. I don't like introducing 19 programs to my machine to get a thing done, I don't jump on the next big app that needs 900 files installed to get it to work. I use what works and if I have to, I adapt myself to it.
The first sentence "People generally have a hard time accepting change, understanding new things. It's too bad. " Made me start laughing so hard my wife had to pause the tv. It's so true. I wanted to thank you for this amazing guide and read haha. I don't roll linux yet but I read the whole guide because your humor is a treat and have bookmarked this for when I do. Have a good day!
Rock ON, man! When/if you do take a poke at linux, I hope this write-up can be helpful. It's definitely not for eveybody, though, not the way I run stuff.
My keyboard sweats from the possibilities.

Categories

Resources