3

Running lubuntu desktop on samsung N145 netbook.

I got so far as /etc/xdg/lxsession/Lubuntu/autostart and added the line

@home/magpie/touchpad_settings.sh

Where the name of my file is touchpad_settings.sh and it does execute and work if clicked then executed.

This meant I could no longer login and get my panels though, so I undid it with my USB booter and came here to see if anyone could clarify.

Lubuntu does not use a startup manager and this is a home-made file so it won't be in Desktop session settings either.

As suggested in answers below I tried

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
/bin/sh /home/magpie/touchpad_settings.sh
exit 0

I also tried the lines:

/bin/bash /home/magpie/touchpad_settings.sh

and

sh /home/magpie/touchpad_settings.sh

which did not work.

Magpie
  • 1,295

5 Answers5

6

In the file manager, go to /usr/share/applications. Open it with root access (Tools -> Open Current Folder as Root)

Open as root

In your root access file manager window, create a new file (File -> Create New -> Blank File)

blank file

Name the new file touchpad.desktop.

file name

Find your newly created file, right-click it, edit it with leafpad.

enter image description here

In leafpad, paste the following:

[Desktop Entry]
Name=Touchpad Autostart
Exec=/home/magpie/touchpad_settings.sh
Type=Application
Terminal=false

Save it. If you can't save it, you are not in the window with root access. Start over again and follow the directions really carefully.

Again, find your file in the root access file manager window. Right-click and copy.

Copy

Now navigate your root window to the autostart folder:

/etc/xdg/autostart/

Finally, paste in your desktop file you created earlier.

Autostart File

If you did everything correctly, you should see a lot of other autostart files, but you will also see the file, "Touchpad Autostart"

It's there...

This is not the fastest way to do things, but you seemed to be struggling with a lot of steps in the other answers, so I wanted to take it slow with a lot of details. If your script is still not running after rebooting (do not simply logout and back in), it's a problem with your script. Maybe double check?

algebralives
  • 683
  • 6
  • 12
4

Open /etc/rc.local in your editor with root permission and add the command you want to execute at startup before the line exit 0 in that file.

In your case it is

sh home/magpie/myfile.sh
Anwar
  • 77,855
Sarowar
  • 336
  • 4
  • 8
1

There are several ways of doing it; the easiest may be to follow these instructions at this page and this one and create a folder called autostart to go in the .config folder and then create a .desktop entry with your text editor and save it in the autostart folder. The desktop entry should have the following lines

  [Desktop Entry]
  Name=script.sh
  Exec=/home/mike/script.sh
  Type=Application
  Terminal=false

Another way is by using the rc.local file:

You usually add the complete path of your script to the rc.local file at /etc/rc.local; rc.local is executed only after everything else has started up, and must be made executable (sudo chmod +x), if it isn't already. (Sudo is necessary as the script is owned by root, and that is why some may see it as a security issue for root to start a users's script, but for home desktop users it is reasonable to use the rc.local method.)

However, make sure that you leave the exit 0 as the last line of the rc.local script: for example, my rc.local file contains the location of a script and two other commands. If you want to make sure your script is run by /bin/sh or /bin/bash, put that in front of the path; e.g. /bin/bash /home/mike/script.

Finally, use either sudo vi /etc/rc.local or gksudo gedit /etc/rc.local to edit the file.

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing
# my script here
/bin/bash /home/mike/bin/script
exit 0
1

Here is the simplest way i've been adding autostart programs in LXDE environment.

  1. make 'the.sh' to execute the program you want and save it to /home/user/.config/autostart/the.sh (remember tomake it executeable)
  2. now add to the /home/user/.config/lxsession/LXDE/autostart file a line @sh /home/user/.config/autostart/the.sh and restart the computer. thats it.

NB! some programs need to be delayed at startup so for an example the 'conky.sh' must be

#!/bin/sh

sleep 3
conky

--so maybe the first way you tried to autostart 'touchpad_settings.sh' just needs a delay in .sh file.

0

You just used a wrong path in /etc/xdg/lxsession/Lubuntu/autostart:
In the line:

@home/magpie/touchpad_settings.sh 

the @ will be removed, and the rest executed as a shell command.

It uses a relative path:

home/magpie/touchpad_settings.sh 

So if the current working directory is /home/magpie, the script it runs is /home/magpie/home/magpie/touchpad_settings.sh

Add a / to fix it, and make sure the script has the execute permission:

@/home/magpie/touchpad_settings.sh

(The @ means it will get restarted if it exits.)

Volker Siegel
  • 13,295