About Chuck

Human being, geek, nerd, genuinely goodwilled individual.

Going from an unscaled to scaled Decryption screen in Pop!_OS

If you are like me, you began using Linux back when the GRUB command was the rage and things were not quite as fast as they are in boot today with the startup routine in Pop!_OS or any other Debian-based derivative. When I found Ubuntu years ago, that was a god-send of joy, but upgrades were always pretty much a wipe and reinstall for safety sake. When I became a System76 user and they announced the tightly integrated Pop!_OS system based on Ubuntu which is based on Debian, I gave it a try and have never looked back.

My choice has been rewarded over the years with great hardware and even better software and support. Case in point, I recently ran into an oddball issue wherein my decryption screen was huge. I mean like monstrously HUGE. I am taking the kind of huge that seems like the system is YELLING AT YOU:

1

Now, I not a dope, i’ve been around the old block a time or two but his one had me stumped. Many an hour of searching through Google, DuckDuckGo didn’t yield much. almost every solution expected that I would be running Grub and it would be an easy-as-pie fix with a few simple steps.

Well, the problem is that “I ain’t got no stinkin’ grub here” so none of those were going to solve the issue. No, this was going to need something a little different to solve. After a few days, I remembered that actual live human beings who can provide technical support were available at System76, the company where I’ve been buying my machines.

So I hit on plan to ask the dumb technical question to solve my issue. I opened a ticket with the support team there. They got right back to me an ask the qualifying questions. They gathered a few bits of evidence and determined which issue I was having with the boot decryption screen. After a few days of me traveling out to the farm and back we finally got it all described appropriately and I got a response on how to fix the issue.

On the hopes that someone might need to solve a similar issue, I wanted to share that with you now.

The Solution

In my case, I run an Nvidia 3050 card, so I wasn’t’ getting the modules to run at startup, leading to an impossibly large decryption prompt on my 4K TV monitor. The TV’s are far cheaper to run and easier for me to see at scale anyway.

Edit the modules file like so:

sudo nano /etc/initramfs-tools/modules

This will open the nano editor as a superuser to allow you to modify the drivers to load earlier within the boot sequence and provide the desired output at the decryption screen.

Once that is done, add the following lines at the end of the file:

nvidia
nvidia_drm
nvidia_modeset

Save the file, then close the editor. Next run the following command on the terminal:

sudo update-initramfs -c -k all

What this will do is tell the system to add those Nvidia kernel modules to the boot image (also known as the “initramfs”), which will allow them to load before the drive is decrypted. This should change the behavior of the decryption prompt so it renders at the correct resolution. Reboot the system to verify the change.

Remove the change

If this doesn’t work, simply edit the file and remove the module lines. Save the file and reboot the system. No harm, no foul.

Thanks to Christian Wagner of System76 Support for the solution and for being so helpful. Truly appreciate all that the team at System76 do.

Guns do not matter, lives matter

I know this will offend those whose identity is wrapped around their guns, but people’s lives matter more than any right to ‘bear arms’. There are common -sense things that can be done to control the level of gun violence, and complaining of the ‘politicization’ of these tragedies is just whining that you cannot justify the need for high-capacity magazine in assault weapons unless you want to justify violence.

There is no need for a high-capacity magazine in hunting. Bambi isn’t going to attack you with weaponry, and if you can’t hit what you’re aiming it with any more than 5 rounds, you should think about another hobby frankly. Your poor aim is not an excuse for high-capacity magazines. you may argue that is is ‘fun’ and ‘I am responsible’ in one breath, but the reality is that the ease of access to weapons only promotes further violence.

If Mothers Against Drunk Driving can make it harder to drive under the influence then we should damn well be able to make it harder for people to keep killing with the AR-15 and high-capacity magazines. Innocent lives being lost should mean enough is enough but some loonies seem to think teachers are now supposed to be police as well as educators. That is a non-starter unless you seek a police state.

There are many practical, workable solutions, but when lawmakers protest that they are ‘willing to sacrifice the lives of children’ rather the give on the issue of gun rights, then we are truly in need of serious reform for such predators to hold any public office ever again. If you value guns more than people, we have no room to speak or debate. I’m through with you. You’ve shown me that you value guns over people; I count you as the problem.

Common sense ideas

Idea number one: License all gun owners. You have to have a driver’s license, you should have a gun license to own and operate a weapon. If you need a hunting or fishing license, you should have a weapon license. If you are too paranoid to get that need, then you might consider seeking help from the medical profession. It is necessary to regulate firearms as stated within the second amendment folks: a well-regulated militia was intended to prevent lunatics from running rampant and killing innocent people.

Idea number two: Safe gun storage. My grand-nephew would be alive today if this were a law on the books. Loaded guns should never be stored openly and ammo and guns should be stored separately. There is never a need to have a loaded gun on hand in a home. If you are that paranoid – maybe you should hire personal security instead. Loaded weapons lead to accidents that cause tragedy. We need safe gun storage to prevent easy access to weapons.

Idea number three: Certification that takes time and has meaning. As of now, the concealed carry laws in Texas are a joke. I’ve seen some really messed up folks get a concealed carry certificate – and openly discuss how easy it is to do so with a nod a wink and a little money to the certifier. That is not acceptable to me, as it means that concealed carry is an inside joke perpetrated on us all. If the nuts can just get a certificate – then that means that there is no value in the permit.

Idea number four: You must obtain liability insurance for these weapons. If you want to own a dangerous weapon, you should obtain liability insurance to cover the possible misuse of same by yourself or family members. We do that for vehicles, why not guns as well? This would allow for victims to sue for damages from the responsible parties that supply these weapons. If you say ‘it’s not my fault’ – well, there are more ideas on that front.

Idea number five: Remove the immunity from Gun manufacturers. If they sell weapons to the public, they should carry liability insurance for their products’ misuse. We do it for other products when they can cause harm or injury – there is no need to shield a manufacturer that sells a product to the public that causes death and destruction from being sued. No reason at all, other than wanting more violence and mayhem.

Idea number six: Red flag laws – making a threat of violence should immediately remove firearms from the access of individuals with a strike for a period of not less than 10 years. You say that’s too harsh? What about those who die from these individuals? Where do their rights come into play?

Idea number seven: Mental evaluation for all persons seeking to purchase firearms. It shouldn’t be that hard to do. Determine if they are a danger to themselves or others. Increase the time from purchase intent to receipt of weapons. Stop the impulse-buy killers and provide time to investigate.

Idea number eight: Background checks. This should be a no-brainer, except a lot of brainless politicians seem to want to prevent this one, lest they be cut off from their money train from the NRA and Russia. 90% of Americans want stronger background checks and it is time to remember that at the ballot box folks.

You may have other ideas, and that is okay. We all have the right to opinions. What we don’t have however, is the right to threaten, harass or kill others because of those opinions. That is going beyond opinion to violence and that is unacceptable. My opinion is mine, and it is my right to express it. If you don’t like it – you are free to express your own. However, I don’t want to talk to you if you have more love of guns than people. You’re not my kind of person a’tall.

Have a nice day all. Don’t worry, be happy. Till next time.

Come to your senses – the lies are useless

Think for yourself.

I saw a recent quote that said “I am always disappointed when an actual liar’s pants don’t catch on fire” – and I wholeheartedly agree. Lies don’t help anyone, sure there are harmless fictions such as holiday traditions. Those don’t cause harm. They aren’t so much a problem as a ‘preservation of innocence” for children to allow them time to grow.

The real lies are those that are spread to cause division, mistrust, hatred and fear. They are the most harmful of all, as they are meant to cause pain to someone else. If someone wants to harm themselves – they are free to do so, but when they lash out at others to stoke the worst of us, they are enabling their own insecurities to come to life for malintent.

I’ve seen enough hatred in my lifetime to know that people who engage in such seek to surround themselves with people who will agree with their dark vision. Those people are the easily misled, the ones who will follow without question the crazed insecurities that drive their ‘leaders’ – often nothing more than sycophants and lesser beings themselves who can’t think their way out of a cul-de-sac.

It’s truly painful to realize that someone who needs assistance will do everything that they can to prevent themselves from receiving same. It’s as bad as watching someone dying of thirst refuse a drink of water because they’d rather die than take any help from a stranger. These same folks will eat a crap sandwich if their conspiracy cult leaders tell them it is the best tasting sandwich in the world and then smile at you with their shit-eating grin as if they were proud of consuming manure.

We owe ourselves the benefit of using our own brains to think critically. If you don’t do that, you are wasting the talents you were given, and instead choosing to go back to the stone age because you would rather be dense. I will miss you on your way down, but it is your choice. You can choose to question the motivation of the speakers or simply swallow crap whole. No one will work to stop you from doing so, you are free to be stupid and always behind, going deeper into that dark hole of idiocy.

While certain people think they are forgotten, they really need to wake up from the stupor and realize that there is a need to change with the times or get left behind. When in Rome, do as the Romans. When in the future that you knew would come, don’t seek a u-turn to the past, the past is gone. It will not return, no matter how stupid you choose to be.

Do yourself a favor and ask “is this really who I want to be? Do I really believe the bullshit being spouted by these people, or do I want to live in peace?”

The answer you choose will be your choice, no one holds a gun to your head telling you what to believe. However, the consequences of your choosing are yours as well. Don’t be surprised if choosing hatred and lies doesn’t work out so well. The world has a way to standing up to that, and every loser eventually pays the piper.

Have a nice day. Don’t worry, be happy.

Till next time: Now, just how is that Un-American, bubba?

There is no compromise

My hopes for my country never included the regression of the achievements we’ve built over the last fifty years to that of a polarized, dimwitted, and non-thinking populace. Never thought I would say that there was a time when the country had the ability to have its self respect and the ability to recognize the right of all to peacefully coexist taken away so quickly by a conman and an easily lead crowd of non-thinking hate-mongers. However, here we are today in 2022 faced with such outcomes. Everyday gun violence is so common that we’ve had nearly one mass shooting a day this year and no one seems to do anything to stop it. It is not America, the land that I love anymore. It is the land of the fearful, hateful and ideologically incoherent morons.

The blame is quite simple for this mess. We all are to blame. We allowed the ideology of hate to remain on air, we allowed a corrupt minority to buy the government and overturn the laws that kept our government in the hands of people and not the wealthy alone. We allowed the false ideology that money is more powerful than the rights of individuals. We allowed the wealthy to buy out the members of the elected offices and to steal the control of the once revered Supreme Court and make a mockery of our laws. We allowed the hate mongers to stir the crazies into violent actions, blaming their poor choices on everyone else in their phony victimhood. We allowed the covert racists to build their networks of domestic terror and we allowed the weapons dealers to sell weapons of war to everyone, giving the weapons more value than human life. Women in my state have fewer rights than weapons, viruses and domestic animals. We’ve allowed the corruption and it needs to end.

When people tell you that your bad circumstances are due to someone else’s choices or lives, you’re being lied to. They want to manipulate you into becoming a weapon of their ideology. Much like Osama Bin Laden, they radicalize you to do their murder, their violence and their hateful acts. If you do that, you are no different than the homicide bombers who feel so entitled as to take other people’s lives because they need someone to blame for their misfortunes in life. I refuse to call them suicide bombers, because they are the worst form of killers, narcissists. They feel that everyone else must die because they feel like the world is to blame for their outcomes. 

We don’t have to look far to find these awful human beings. They are easy to spot. They blame everyone else for their outcomes. Never mind that they choose to eb bitter and spiteful, never mind that they are cruel to others and are reviled for their behavior – no, it must be someone else’s fault. Sorry, but that isn’t the case. We have on the biggest narcissists in the world with the entire world lining up against him now in Russia. He started a war over nothing other than his own choice to do so ‘because he wanted one’.

His troops are being ground to pieces fighting for a war that they don’t even understand. Many of them are poor conscripts but there are many vile thugs amongst them, shooting, torturing and killing civilians. They are war criminals and terrorists. They kill indiscriminately for the sport of it, because they are armed and have no discipline. When they come up against real resistance, they don’t make much progress – they get killed instead.

The same is what we have in our domestic, white supremacist terrorist. They are great at killing innocent people, but cower and cry when faced with real threats. They surrender quickly when they know that they can’t keep killing indiscriminately. I find them revolting thugs, and want them to know that there will be consequences for your actions. Life in prison won’t be so grand – if you live that long. There is nothing redeemable in that act, and you don’t just suddenly turn out that way. You have to have learned it either at home or in the family somewhere.

Racism should have consequences. I can remember back int the 1970’s as a teenager when a man was fired for using the N-word to describe his co-workers and thought he was talking in safe company when he saw me. He said “Can you believe they fired me for calling those n———, n———?” All I could think to myself was “what a loser” – anyone that could not treat folks as human beings and have some civility and decency was getting what they asked for – being treated as a failure to get along and be human. I hoped such actions would allow for some self-introspection and reflection on the error of those acts, but recent times have shown me that they learned nothing. They turned their own actions into their own ‘victimhood’ and blamed everyone else on the outcome they chose to live within. It’s not the fault of others that you failed to wise up and educate yourself to respect others.

In this day and age, there cannot be a return to those years of hateful racism and hostility. It isn’t acceptable now as it wasn’t then. There will be consequences for those who refuse to learn and they must not be allowed to thrive and expand their hate. If they lose employment, friends and cover – it is the outcome of their own choosing. I can’t and won’t compromise on that principal. There is only one human race, and you can either grow up and be a part of it, or you can suffer the consequences of your own actions. But get this straight: the fault lies within you, no one else is to blame.

Till next time. Have a nice day all. Don’t worry, be happy.

A Fool and his money seem to find real good friends

Thanks to Robin Trower’s Too Rolling Stoned for the title of today’s post. The lyrics are true today as they were then. A fool and his money do both seem to find real good friends. While the economy has been in a massive upheaval due to the pandemic, wars and other previously unthinkable occurrences, the old adages remain tried and true.

Looking at the obvious signs of economic insanity that has occurred over the last twenty two years or so, we can see from the Enron to the current Housing market/Crypto/NFT insanity that people will place their faith in absolutely meaningless objects over reasoned and continued progress.

The housing squeeze seems to be driven by a lot of untraceable investment financiers. The market is too hot to handle and removing the dream of home ownership from the next generation so fast that it is driving people to become renters without equity.

That is not a desirable outcome for a just society. If we want to have a nation where people care for and seek to improve their communities, we need to have people invested within their own community, not serfs of same feudal investor. Home ownership should not become some crazed party where everyone seeks to outbid and overpay for property. It should be an investment within the community for its residents.

I have been saying for some time that the Texas system of Robinhood is an anathema to the idea of local property tax valuations as the ideas of stealing the locally paid taxes to pay for extravagant facilities for smaller schools while preventing the local taxes staying local is an economic theft designed to destroy the services that people pay for within the city. It is an unjust and unfair system that allows some districts to build swim theme parks, while other districts had to create bake sales and other stupidity to fund their district activities for children. It is a quid pro quo, evidence of corrupt handling of taxes in exchange for the culture war voters to blame and bite the hands that feed in the form of political extortion.

As the prices of homes go ever higher, the insanity of taking the tax base away from its creators (the employed earning populace) to give to the willfully ignorant who are actively taking same creates an undeniable rift with reality. It makes the people who are earning resent those who are taking and it makes the takers resent those who are earning, believing that the earners owe them. It is not a sustainable civil society in this fashion. We can’t mend fences until we understand reality.

Property valuations are increasingly false, driven on the idea of “there will be no downturn” which history has shown us is not true. It will happen and it will be painful. I’d venture to say that it will location driven, and many will suffer. My advice would be to have no mortgage now -and never take a flexible rate mortgage at all. That causes a crush that will drive your out of your equity investment.

As for Crypto and NFTs – yeah, that’s going to be a shitshow. Some schemes will make their founders wealthy, but by and large, most will lose. When everyone is rushing to put their money into it, it has a red flashing warning sign that the person who exits first wins. When the values get ‘high enough’ for a substantial exit – it will crash. Those left holding the bag will feel the pinch of having lost their money.

I can’t tell you where to invest, but I would advise us that the future must be about building a sustainable world or we will be living underground as the planet surface boils away. I’d prefer children to have a chance, peace to grow, and people to actually understand that freedom takes work. Your ideas end at the tip of your nose. No one has the right to take away the freedom of others, through stupidity, legislation or just outright hatred.

Till next time, I’ll be eating popcorn and watching people stumble all over themselves with some really dumb ideas. I remember that Men In Black had it right : A person is smart. People are dumb, panicky dangerous animals and you know it.

Yes, yes I do know it. Have a nice day, Don’t worry, be happy!

Pop!_OS GDM Background changer

There will always be a workaround when working with Linux. Things just don’t stay static and the idea of a walled garden for users isn’t much of an impediment to adaptation. As a Pop!_OS user, I’ve come to know the brown of the GDM login screen as a de-facto part of the OS. It’s okay and not awful, but it isn’t the most appealing color and doesn’t allow for choice.

Imagine my happiness to find a script out on github which promised to reset the GDM theme (image, color or gradient) on Github thanks to the team at UbuntuHandbook who delivered the news about this fine script from Pratak Kumar. Of course, the author went to pains to point out that the script only supported Ubuntu, and the script tested for that condition.

Unlike a lot of folks, I prefer to verify that scripts have only the intended outcome and use my Crash Test VM for all such scripting as I work my way through any modification when I find something interesting that can provide some joy. I never recommend running scripts without a sheep dip or crash test machine. Same holds for anything modifying kernels or untrusted sources.

However, a script can be torn down and reviewed, simply because you can read the source and alter as needed. If you aren’t aware of what a script does, don’t use it. Seriously.

Below is my modified script to set the GDM Background for Pop!_OS 22.04 Jammy Jellyfish. I modified the script and tested it out and it works well for me.

What not to expect: This will not change the background on the drive encryption screen. I wouldn’t even begin to want that to happen.

What to expect: This will allow you to change the default GDM login screen to something of your choosing. If using a background image, I suggest a hard-coded path to a locally stored image to ensure that nothing goes wrong. Relative paths or remote images do not work and may cause a broken login screen.

The script must be run with sudo privileges (you don’t run anything as root, right?) and you should read through it thoroughly to understand the options and recovery procedure. The main difference here is that you are calling the script pop-gdm-set-background NOT ubuntu-gdm-set-background and I have only written this for Pop!_OS 22.04, but you can expand it to include other releases if you wish.

So, without further ado, I give you pop-gdm-set-background:

#!/bin/bash

#Based off the work of Pratak Kumar for Ubuntu, but adapted specifically for Pop!_OS 22.04 Jammy

# Colors
Red='\e[0;31m';     
BRed='\e[1;31m'; 
BIRed='\e[1;91m';
Gre='\e[0;32m';     
BGre='\e[1;32m';
BBlu='\e[1;34m';
BWhi='\e[1;37m';
RCol='\e[0m';

codename=$(cat /etc/os-release | grep UBUNTU_CODENAME | cut -d = -f 2)
osname=$(cat /etc/os-release | grep '="Pop!_OS"' | cut -d = -f 2)

if [ "$codename" == "jammy" ] && [ "$osname" == '"Pop!_OS"' ]; then
  source="/usr/share/gnome-shell/theme/Pop/gnome-shell-theme.gresource"
  GDM_RESOURCE_CONFIG_NAME="gdm"

else
  echo -e "${Red}
------------------------------------------------------------------
Sorry, Script is only for Pop!_OS ${BWhi}22.04${Red} Only
Exiting...
------------------------------------------------------------------
${RCol}"
  exit 1
fi

pkg=$(dpkg -l | grep libglib2.0-dev-bin >/dev/null && echo "yes" || echo "no")
if [ "$pkg" == "no" ]; then
  echo -e "${Red}
-----------------------------------------------------------------------------------------------------
Sorry, the package ${BWhi}'libglib2.0-dev-bin'${Red} is not installed. 
Run ${BGre}sudo apt-get install libglib2.0-dev-bin${Red} to install.
For now, Exiting...
-----------------------------------------------------------------------------------------------------${RCol}"
  exit 1
fi

dest="/usr/local/share/gnome-shell/custom-gdm"
color='#456789'

###################################################
HELP() {

  echo -e "
${BGre}pop-gdm-set-background${BGre} script (for changing Pop!_OS ${BWhi}22.04${RCol} GDM Background) HELP

there are four options
1. background with image
2. background with color
3. background with gradient horizontal ( requires two valid hex color inputs)
4. background with gradient vertical ( requires two valid hex color inputs)

${BWhi}Tip:${RCol} be ready with valid hex color code in place of below example like #aAbBcC or #dDeEfF. Change them to your preffered hex color codes.
you may choose colors from ${BBlu}https://www.color-hex.com/${RCol}

Example Commands:

1. ${BWhi}sudo ./pop-gdm-set-background --image ${BGre}/home/user/backgrounds/image.jpg${RCol}
2. ${BWhi}sudo ./pop-gdm-set-background --color \#aAbBcC${RCol}
3. ${BWhi}sudo ./pop-gdm-set-background --gradient horizontal \#aAbBcC \#dDeEfF${RCol}
4. ${BWhi}sudo ./pop-gdm-set-background --gradient vertical \#aAbBcC \#dDeEfF${RCol}
5. ${BWhi}sudo ./pop-gdm-set-background --reset${RCol}
6. ./pop-gdm-set-background --help

RESCUE_MODE, Example Commands:

1. ${BWhi}$ sudo ./pop-gdm-set-background --image ${BGre}/home/user/backgrounds/image.jpg ${BWhi}rescue${RCol}
2. ${BWhi}$ sudo ./pop-gdm-set-background --color \#aAbBcC rescue ${RCol}
3. ${BWhi}$ sudo ./pop-gdm-set-background --gradient horizontal \#aAbBcC \#dDeEfF rescue${RCol}
4. ${BWhi}$ sudo ./pop-gdm-set-background --gradient vertical \#aAbBcC \#dDeEfF rescue${RCol}

${BWhi}Why RESCUE_MODE?${RCol}
It is when you try to change the background with some other scripts and then interacted with this script,
there will be some conflicts. In case you ran other scripts to change the background and then tried this script,
found conflicts? then add 'rescue' to the end of the command as mentiond above.

${BRed}Please note that for 'RESCUE_MODE' active internet connection is necessary ${RCol}
"

}
###################################################

###################################################
ROUTINE_CHECK() {
  if [ "$UID" != "0" ]; then
    echo -e "${BRed}This script must be run with sudo${RCol}"
    exit 1
  fi

  cd /tmp
  if [ -d /tmp/theme/ ]; then
    rm -r /tmp/theme
  fi

  if ! [ -d $dest ]; then
    install -d $dest
  fi

}
###################################################

###################################################
RESCUE_MODE() {
  echo -e "
>>>>> Trying to ${BWhi}reinstall${RCol} the package yaru-theme-gnome-shell,
if the reinstallation of the package is succesful, background change will be done
otherwise No changes will be made <<<<<<<<<
"
  apt install --reinstall yaru-theme-gnome-shell
  if [ $? != 0 ]; then
    echo -e "${BIRed}
SCRIPT COULD NOT FINISH THE JOB, FAILURE, NO CHANGES WERE DONE.${RCol}"
    exit 1
  fi
}
###################################################

###################################################
EXTRACT() {
  for r in $(gresource list $source); do
    t="${r/#\/org\/gnome\/shell\//}"
    mkdir -p $(dirname $t)
    gresource extract $source $r >$t
  done
}
###################################################

###################################################
CREATE_XML() {
  extractedFiles=$(find "theme" -type f -printf "%P\n" | xargs -i echo "    <file>{}</file>")
  cat <<EOF >"theme/custom-gdm-background.gresource.xml"
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
  <gresource prefix="/org/gnome/shell/theme">
$extractedFiles
  </gresource>
</gresources>
EOF
}
###################################################

###################################################
SET_GRESOURCE() {
  cd $dest
  update-alternatives --quiet --install /usr/share/gnome-shell/$GDM_RESOURCE_CONFIG_NAME-theme.gresource $GDM_RESOURCE_CONFIG_NAME-theme.gresource $dest/custom-gdm-background.gresource 0
  update-alternatives --quiet --set $GDM_RESOURCE_CONFIG_NAME-theme.gresource $dest/custom-gdm-background.gresource

  check=$(update-alternatives --query $GDM_RESOURCE_CONFIG_NAME-theme.gresource | grep Value | grep $dest/custom-gdm-background.gresource >/dev/null && echo "pass" || echo "fail")
  if [ "$check" == "pass" ]; then
    echo -e "
😕 ${BGre}Seems 'background change is successful'${RCol}
Changes will be effective after a Reboot (${BWhi}CTRL+ALT+F1${RCol} may show the changes immediately)
If something went wrong, log on to tty and run the below command
${BWhi}$ sudo update-alternatives --quiet --set $GDM_RESOURCE_CONFIG_NAME-theme.gresource /usr/share/gnome-shell/theme/Pop/gnome-shell-theme.gresource${RCol}
"
  else
    echo Failure
    exit 1
  fi
}
###################################################

############################################################################################
case "$1" in 
  --help)
    HELP
    exit 1
  ;;
  --reset)
    ROUTINE_CHECK
    if ! [ -f $dest/custom-gdm-background.gresource ]; then
      echo -e "
-----------------------------------------------------------------------------
No need, Already Reset. ${Red}(or unlikely background is not set using this Script.)${RCol}
-----------------------------------------------------------------------------"
      exit 1
    elif [ "$UID" != "0" ]; then
      echo -e "${BRed}This Script must be run with sudo${RCol}"
      exit 1
    else
      rm $dest/custom-gdm-background.gresource
      update-alternatives --quiet --set $GDM_RESOURCE_CONFIG_NAME-theme.gresource "$source"
      cd /usr/local/share
      rmdir --ignore-fail-on-non-empty -p gnome-shell/custom-gdm
      echo -e "${Gre}
      		---------------
		  		|Reset Success|
		  		---------------
		  		Changes will be effective after a Reboot ${RCol}"
      exit 1
    fi
  ;;
  --image)
    if [ -z "$2" ]; then
      echo -e "${BRed}Image path is not provided${RCol}"
      exit 1
    fi
    if
      file "$2" | grep -qE 'image|bitmap'
    then
      ROUTINE_CHECK
    if [ "$3" == "rescue" ]; then
      RESCUE_MODE
    fi
    EXTRACT
    cd theme
    cp "$2" ./gdm-background
    mv $GDM_RESOURCE_CONFIG_NAME.css original.css
    echo '@import url("resource:///org/gnome/shell/theme/original.css");
#lockDialogGroup {
background: '$color' url("resource:///org/gnome/shell/theme/gdm-background");
background-repeat: no-repeat;
background-size: cover;
background-position: center; }' >$GDM_RESOURCE_CONFIG_NAME.css
    cd /tmp
    CREATE_XML
    cd theme
    glib-compile-resources custom-gdm-background.gresource.xml
    mv custom-gdm-background.gresource $dest

    SET_GRESOURCE

    exit 1

  else
    echo -e "${BRed}
Absolute path to image is neither provided nor is it valid.
see help with below command${BWhi}
$ ./pop-gdm-set-background --help${RCol}"
    exit 1
  fi
  ;;
  --color)
    if [ -z "$2" ]; then
      echo -e "${Red}Color is not provided.
      Use ${BWhi}\$ sudo ./pop-gdm-set-background --color #aee02a${RCol} to set ${BWhi}#aee02a${RCol} as the background color.${RCol}"
      exit 1
    fi
    if ! [[ $2 =~ ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ ]]; then
      echo -e "${BRed}Provided color is not a valid 'HEX Color Code'${RCol}
See help with below command
${BWhi}$ ./pop-gdm-set-background --help${RCol}"
      exit 1
    fi

  ROUTINE_CHECK
  if [ "$3" == 'rescue' ]; then
    RESCUE_MODE
  fi

  EXTRACT
  cd theme
  mv $GDM_RESOURCE_CONFIG_NAME.css original.css
  echo '@import url("resource:///org/gnome/shell/theme/original.css");
#lockDialogGroup {
background-color: '$2'; }' >$GDM_RESOURCE_CONFIG_NAME.css
  cd /tmp
  CREATE_XML
  cd theme
  glib-compile-resources custom-gdm-background.gresource.xml
  mv custom-gdm-background.gresource $dest

  SET_GRESOURCE

  exit 1
  ;;
  --gradient)
  if [ "$2" == "horizontal" ] || [ "$2" == "vertical" ]; then
    direction=$2
  else
    echo -e "${BRed}Gradient direction is not provided.${RCol}
    Use ${BWhi}$ sudo ./pop-gdm-set-background --gradient horizontal \#aa03af \#afa0ee${RCol} OR
    ${BWhi}$ sudo ./pop-gdm-set-background --gradient vertical \#aa03af \#afa0ee${RCol} to set a vertical gradient.
    See ${BWhi}./pop-gdm-set-background --help for more info${RCol}"
    exit 1
  fi
  if [[ -z "$3" || -z "$4" ]]; then
    echo -e "${BRed}color/colors is/are not provided${RCol}"
    exit 1
  fi

  if ! [[ $3 =~ ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ ]] || ! [[ $4 =~ ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ ]]; then
    echo -e "${BRed}Provided color/colors is/are not a valid 'HEX Color Code'${RCol}.
See help with below command
${BWhi}$ ./pop-gdm-set-background --help${RCol}"
    exit 1
  fi

  ROUTINE_CHECK

  if [ "$5" == "rescue" ]; then
    RESCUE_MODE
  fi

  EXTRACT
  cd theme
  mv $GDM_RESOURCE_CONFIG_NAME.css original.css
  echo '@import url("resource:///org/gnome/shell/theme/original.css");
#lockDialogGroup {
background-gradient-direction: '$direction';
background-gradient-start: '$3';
background-gradient-end: '$4'; }' >$GDM_RESOURCE_CONFIG_NAME.css
  cd /tmp
  CREATE_XML
  cd theme
  glib-compile-resources custom-gdm-background.gresource.xml
  mv custom-gdm-background.gresource $dest

  SET_GRESOURCE

  exit 1
  ;;
  *) 
    echo -e "Use the options ${BWhi}--image |--color | --gradient | --help | --reset${RCol}"
    exit 1
  ;;
esac
exit

I do hope that you find this useful if you are a fan of Pop!_OS like I am. I’m on my fourth System 76 machine and still a huge fan of System 76.

Have a nice day. Don’t worry, be happy!

On the Psychology of Bullies

If there is anything that I detest in life more than bullies, I am not sure what that would be. Bullies are the self-important narcissists that try to threaten, cajole, harass and otherwise impede all progress in life, social and working conditions. They are useless to everyone, but feel the need to inject themselves everywhere. No one really likes them, unless they too have tendencies to be bullies. They serve no legitimate purpose – there is nothing that a bully ever truly ‘wins’ – it is just that some people will not confront them. They are truly the masters of their own navels and as such, deserve as little attention as possible.

Unfortunately, when we fail to confront a bully, they only go on to impact others lives. There are reasons to avoid them rather than deal with them, but there are bullies that cannot be ignored and must be stopped. One such weak little man is creating a terrible, horrific war in Ukraine at present. He seems to think that everyone is afraid of him, but in reality, all he has succeeded in doing is bringing about the unification of the world in condemning his actions. The sad little man is so desperate for something he will never have – a public that loves him without being forced to do so. Anyone capable of independent thought sees through his charade easily. They know he’s a serial liar and a fool. He’s done so much to crush his public persona himself that he has made himself a topic of much mockery abroad.

Like all bullies, he claims something that does not exists is the cause of his actions. By arming the borders of his neighbor and building up his forces, he thought that fear alone would cause his victim to collapse from fright. Instead, all it has done is make his own cowardice, malice and insane behavior visible to the world. There is no strategic thinker there – there is just another narcissist incapable of rational thought who threatens the world with nukes because ‘he’s not getting his way’.

Like all such man-babies, he denies freedom of speech or independence of thought because he’s deeply fearful that if people speak the truth, he’ll lose his grip on reality. Hate to inform him: he already  has and his own downfall is ensured because he can’t control the genie of truth once it leaves the bottle – and it has left. One thing that makes it clear just how frightened that the little man is : his videos. He cannot hide his body language and anyone viewing him can see the very real fear and fright that he has lost his grip on power is becoming. The sad fact is that he doesn’t understand his own stupidity is what will keep him from ever winning any warfare. Sure, he will commit more crimes to cover the crimes he’s already committed. He will happily send his forces to their deaths if he believes it serves him.

He missed the main point of the argument: none of the Ukrainians are fighting with him – and his forces aren’t liberating anything.  The only thing they are doing is being slaughtered, committing murder, theft and rape. They have no clear mission or outcome, and they could never stand against NATO or even the Ukrainian armed forces fighting for their rights to self determination. No matter how badly his troops perform, he will always claim he’s ‘winning’ – much like the famous ‘winning meme’ – he’s smoked a little bit too much of his own crack here to have a grip on what is real.

There is an out here for him. If he truly wants to de-Nazify Ukraine – he can simply remove all of his Nazi Stormtroopers and go home to Russia where they belong. There never was any threat to Russia, it’s all in his bullshit narcissistic personality disorder of a mind. He isn’t likely to do this, because he is a coward of a man, too afraid to admit his mistakes to realize he’s grinding his people for no good purpose. There will be no flowers for Russian soldiers and there will be no love for Russia ever in Ukraine. He’s burned up all of that past feeling for saving them from Hitler in just a few short weeks.

All he has done, is to waken the Ukrainian people and fill them with a terrible resolve to forever remember that Russia is their enemy and not their friend. The lies of the treaties of the past will not be forgotten, and Putin has shown that nothin he says will ever be honest. Cowards like him will die a thousand deaths from their own actions and inability to accept reality.

Слава Україні

I Stand With Ukraine

Given that fact that the people of Ukraine are under constant attack from Russian invaders, and given the Russians willingness to send their conscripts to their deaths, it is no surprise that the Internet is being trolled to try to sway opinion and facts about the unjust invasion. You can find them targeting areas for division, just as they have done for years under the guise of ‘different opinions’ which aren’t truth, but a propaganda machine in action. They know where the weak spots are, and target largely undereducated populations where they can spew bullshit without anyone calling them on it. The Internet Research Agency is nothing more than smoke and mirrors paid propaganda arm to send as many hateful messages as possible, hoping to delude the public, harm morale, and create division.

What gets me here, is the fact that we do not seem to have any real fact checking going on and calling bullshit other than the public. If you can think outside the box, you know immediately what the game is, and it is all about stoking those ‘echo chambers’ of the mind where your bias is confirmed. The truth is simple to see: a child in Ukraine is no threat to Vladimir Putin, but he’s certainly willing to ‘ethnically cleanse’ another country in his modern day take on the ideologies of Hitler. He has become the fascist dictator, using the same playbook, running the same lies. Much like America in the early days of World War II, there are American Bund here soaking up the lies and spreading false information to stoke division in hopes of creating or mimicking the fascists in Russia.

If Putin wanted to de-nazify Ukraine, all he has to do is to leave. The Nazis would not be there anymore as they’d have gone back home to Russia. His false flag of fear was driven more by the fact that the Ukrainian people are self-determining their own rule without his influence. Like most men of very diminished stature and over-inflated self worth, he believes that the world revolves around him. Here’s a clue – it doesn’t. He’s no genius, he’s a wimp of the first order. The proof was in his ‘war rally’ – which immediately clicked the light on – he and the former fool are cut from the same cloth. Very much full of dung, completely useless individuals who aren’t good for much of anything. In any polite society they would be better served in a sanitarium for those who need constant care and observation. They aren’t smart, they are extremely inept, socially compromised, and easily misled. In short, there is now way that they should ever be given any power or position as they are a danger to themselves and others.

There is a legal term that describes this, non-compos mentis (def): which under law means that they are not of sane mind or rational. Think about the sanity of continuing to send troops to their deaths or bombing hospitals, schools and killing children. It is not the act of sane person. Now imagine you need to ‘hold a rally’ because your ego is writing checks for the lives of others that you really can’t afford to cash. That’s not a master of the mind, that’s more like a person desperate for adoration that isn’t getting it. It’s plain to anyone who can see and think for themselves.

So sad he is, that he has unleashed his troll army to begin their campaign of attacks on the globe.It’s a pretty pathetic line of bullshit, and his enablers are just as pathetic to watch in action. Russia ‘didn’t attack Ukraine’ – it’s the world being mean to little Putin, they said mean things about him, etc. So much garbage.

I’d like to remind everyone of the truth of this statement. ‘Sticks and stones may break my bones, but words will never hurt me.’

Anyone who worries about what the trolls have to say is reminded that they are just words and are largely horse manure. Just think about having to spew that manure in front of the world and how really weak you must be to do so. Pathetic.

As for me, I believe that Ukraine will win. There is no way that Ukraine can be held by Russia that doesn’t erode it from within. It’s like eating a Lionfish – you’re most likely to die from the effort and better off not trying. Even if the Russians are able to take something from this war, it will be the end of this adventurism. The time being taken in Ukraine would only be about 1000 times worse if they cross into NATO territory, but frankly, I don’t think they will be able to cross Ukraine as the Ukrainians are stronger and fighting for their country and future.  Tell me which Russian soldiers are actually fighting for their country?

Have a nice day all. Don’t worry, be happy!

Слава україні!

An Embarrassment of Nerds, or when did whinging become a pastime?

It seems that I can’t get through a day without someone whinging on about how they failed an upgrade or something they tried to do failed in technology. I don’t mean to say that there aren’t bad experiences with technology – anyone who bought into Bob could likely tell you about that experience. I remember because we received tons of Bob at a local VAR only to ship it all back three days later.

I’ve recently run into issues myself such as all virtualization now failing due to the lack of proper drivers working in the kernel when virtualization products are in use. Yes, I was frustrated by this fact as it does not allow me to explore my curiosity in virtual environments or reproduce issues seamlessly in my workstation. However, I am not going to write that my frustration is anyone else’s issue. That is not the mature way to handle issues a’tall.

No, the better thing to do was to simply work with my supplier or my distribution (and hardware for that matter) System76, and begin a conversation. After all, there must be an answer to the issue, if only there is patience to find it. There is no need to demand gasoline with my hair on fire, but rather the proper course is to work with the professionals to resolve the issue calmly, cooly and with courtesy.

Having been in Support for many years, I know that you will get better service when you follow the simple rules of providing factual evidence without berating others or placing false blame over what are essentially functional gaps in technology. What benefit do you think will come from acting like a spoiled child?

Maybe it is just me, but when someone acts immature in the business world, it earns a reputation of being a bully, a whiner, or malcontent. Why some folk like to trumpet that is beyond me. There is not reason to do so if someone the other end is willing to listen and work with you as a human being. So, give the person a chance to address their mistake. If they ignore that, allows them the chance to rectify that issue. Some things may be beyond their control (oh, if only we all had a magic wand to fix everything), but as long as they are trying, I don’t see the need to berate the helpers.

What I do find telling is when there are those that will simply abuse their audience by attempting to do something with a beta or a pre-production article that isn’t ready for release and then grab a headline (clickbait) by slamming said developer for their work. That is neither fair, nor very much in the spirit of being anything more than a con. It’s a ‘hit piece’ designed in bad faith, meant to slander or sully someone for whatever emotional immaturity exists in the author. Well, we all have bad days, but we should remember that other people are doing their jobs as well.

My ask today: remember that technology is created by humans. Human beings work on same and are fallible. All technology (even AI or ML) will have mistakes because humans design it, build it and build in their perspectives. The real questions here should be, can I speak to a human, and will they listen to my inputs? If they refuse to listen, that is one thing. However, when you find a human responds, be kind. It shouldn’t be a second thought, it should be a first thought. Kindness if the source of all human progress. Aggression is the enemy of all humanity.

Thanks to the staff at System76 for all of their human kindness. They showed a perfect example of how to work cooperatively, and more companies can learn from that behavior. Maybe if the nerd journalists who prefer to whinge versus solve issues would reach out to the parties involved, we’d have more stories of success.

Now back to another day of play, where no doubt, more issues will arise. We are human and not machines.

Citizens United is a complete lie

I’ve often wondered how we came to the point of corporate ownership of what is supposed to be a citizen-led government “of the people, for the people, and by the people.” The answer is somewhat murky and a lot of people would prefer to obfuscate or deny the truth completely. This is not one of those statements. This is my opinion of how we are a disenfranchised voting public wherein dirty tricks are overtaking the needs of the governed in favor of the radical opinions of the few.

My thought was to expose the litany of the past mistakes, but I think that misses the point in the modern world of ‘just give me the needed information – I have not time to truly go through the past’ age of today. Therefore, let’s just get to the common sense of what needs to be said.

First, the idea that a corporation, a body of shareholders, employees, and investors, can be a person is on its face a complete fiction. It is so easy to prove that it boggles the mind that anyone could state otherwise, and the fact that the laws were amended to make it so is very clearly a mistake.

Argument number one is that a person can be placed in jail when they commit wrongdoing such as breaking laws meant for the governance of all. However, when a corporation commits a crime, they do not get thrown into jail. Arguably, if they could, who exactly should be the person going to jail? Is it the officers of the company? Is it the shareholders of the company? Is it the person or persons (note that take) who actually committed the crime, or the person or persons who either approved of or did nothing about said crime? How do you hold an organization of potentially hundreds of thousand of individuals responsible for a crime committed by a few?

If that isn’t an obvious argument for non-personhood, I am not sure you can truly understand what being a person actually entails.

Argument number two is that a corporation is comprised of a number of people and as such, any corporation providing funding to a political party, candidate or PAC to curry favor, set policy or initiate legislation on its behalf, is essentially bribery. It should not be so easily dismissed as ‘legitimate activity’ as the truth of the matter is that it creates an inequality wherein the governed are being exploited in the interest of the few. People (actual persons) cannot afford on their own to send millions of dollars to candidates to buy their votes and favor. Corporations making such donations are essentially doing just that. They are buying access to the legislators who are greedily taking their money in what is essentially a self-serving system of enrichment.

If you think bribery is just fine, then I suppose you either support wholesale graft or do not have a clear understanding of the great American social contract of Justice. No man or woman should be ‘above the law’. The greatest problem with the idea that anyone or anything is ‘above the law’ is that it immediately creates the problem: if anyone or anything is beyond the reach of Justice, then the laws are all invalidated and chaos and anarchy will follow. Such cannot be allowed to stand within an American representative democractic republic.

Argument number three is one that I am surprised no one had thought to argue before. That is that no donation by any corporation should be allowed as there is no representation of the actual values of aid corporations shareholders. The board members alone should not be allowed to decide what the values of the shareholders should be without a vote. The idea that a small, select group can act without the vote of the entire corporate body makes a mockery of the idea that the decisions of the few reflect a single person entity of the corporate organization. A few people at the top do not hold the thinking of the body as a whole. Such contributions are therefore ‘unaccountable influence’ that do not reflect the values of the whole.

If corporations were forced to make political contributions based on the values of shareholders in their entirety, then there might be a way to state that such were actually reflective of the persons in the corporate ownership chain. However, I know of no such restrictions that place corporate donations as anything more than a wink and a nod exercise wherein people on boards are allowed to make donations to candidates they like versus the corporate members have chosen as a whole. If they had to put it to a vote, the structure of the flow of money would fundamentally change and those making such decisions know that to be true.

I cannot see any reason to allow a corporation to act as a person when it sends money to any political candidate, committee or cause. The only result will always be inequity, inequality and injustice. This country was founded on the idea of ‘one person, one vote’, but the reality of corporate money in the political discourse is a never ending cycle of a ‘grab the money’ for campaigning versus actual representation for all of the actual people of the nation. It must end, in order to ensure that the needs of the governed are met for the governed citizens of the country.

Have a nice day. Don’t worry, be happy!