This is just for myself. So ignore, or use as you please, but at your own risk. This list will grow as I figure out more shortcuts. Ktnxbai.
The script ran when logging in can be found in
~/.bash_profile
, however the script ran when you open a new terminal is
~/.bashrc
. You can do bash commands there, but you could also use node there (provided that it's installed).
#!/bin/sh
# comment
stuff
#!/usr/local/bin/node
require("jasmine-node");
Add and show stuff to paths and other variables (put this in a login script):
export NODE_PATH="~/node_modules/jasmine-node/lib:$NODE_PATH"
echo "$NODE_PATH"
To run a command from terminal without "locking it" as long as the app runs, add
&
at the end. All output will still flow to this terminal (can become a little confusing).
gedit /etc/some.file
gedit /etc/some.file &
After doing so (or pressing ctrl+z to freeze a running app), to switch back to that task "thread":
fg
You can then (for instance)
ctrl+c
to kill that thread or
ctrl+z
to freeze the thread and return to the terminal.
To launch some file with the Ubuntu associated file based on extension
gnome-open /etc/some.file
To run a script or such, prefix it with
./
, it must have execution permissions
// set execution permission
chmod +x bar
// run
./bar
Show all processes
ps -A
Search for specific process
ps -A | grep sshd
Kill a process
kill 1234
// kill++
kill -9 1234
Process tree (ascii)
pstree
Check for specific programs listening to incoming ports
sudo ss -lnp | grep sshd
SSH into somewhere (ok, duh)
ssh localhost
Start sshd
sudo /etc/init.d/ssh restart
SSH and SSHd configs
gedit /etc/ssh/sshd_config
gedit /etc/ssh/ssh_config
Get your ips
ifconfig | egrep "inet|Link"
Simple network speed monitor tool:
bwm-ng
Advanced monitoring tool (see which app is using network, requires root):
nethogs
Search files for string
// straightforward
grep -r -i needle ./path
// only list files+line
grep -r -i -n -l needle ./path
// recursive, case insensitive, line numbers, ignore css files
grep -r -i -n --exclude=*.css* logg .
// ignore files, ignore dirs, find dot
grep -r -n --exclude=*css* --exclude=*json* --exclude-dir="*framework*" navigator\\. .
// content of file
grep -R '^FWS' *
// just the matching part
grep -h -o -P -r 'abc.*?def"' *
Mounting windows share:
http://industriousone.com/blog/mounting-windows-shares-linuxOr on desktop, go to
file
,
connect to server
or
open location
(the last one being
ctrl+L
) to do it once but simpler.
To ping hostnames, append
.local
behind their "Windows" hostnames (or
fix it properly ;)
Using
scp
(
source, target must run
ssh-server)
//This is the Linux scp command syntax to send file or directory to a remote computer:
scp -r /path/filename login@ip:.
// This is the Linux scp command syntax to retrieve file or directory from a remote computer:
scp -r login@ip:/path/filename .
// copy all dirs from current pwd to target (targetdir
must exist)
scp -r ./* targethost:~/targetdir
Using
rsync
to copy two dirs while ignoring symlinks (impossible with
scp
). Note that this is not secure, but you can read the
source to find out how to do that).
rsync -lav [user@host:]path/* [user@host:]path
Apache2 stuff (this'll need admin rights). Setup a new config file and load it. These days you'll need to install it first (
sudo apt-get install apache2
).
// vhost config path
/etc/apache2/sites-available/
// remove default config (or edit it and skip new file step below)
rm 000-default.conf
// create new file, dont forget .conf or it wont be picked up!
touch my-sites.conf
// edit config.
// then enable it...
cd ../sites-enabled
// remove old link (if you did it above)
rm 000-default.conf
// link to the file (maybe we can skip this step and just put the file here, i dunno)
ln -s ../sites-available/my-sites.conf
// restart
/etc/init.d/apache2 restart
// or
service apache2 restart
// or
restart apache2
Example alias config (not very safe, use with caution), also set permissions correctly where needed:
Alias /~ /some/dir/name
<Directory "/some/dir/name">
Options Indexes FollowSymLinks MultiViews SymLinksIfOwnerMatch
AllowOverride All
Require all granted
</Directory>
Keys:
Open terminal:
ctrl+alt+t
Lock workstation:
ctrl+alt+l
Toggle hidden files in file manager:
ctrl+h
Toggle location bar input/crumb path in file manager:
ctrl+l
Gnome tweaker
gconf-editor
Ubuntu Tweaker
http://ubuntu-tweak.com/Check if 3d is working (
Not a benchmark..), part of
mesa-utils
package.
glxgears
GTK perf test suite
gtkperf
If you have installers with a
.run
extension, you need to set their permissions to be executable. In properties of the file, in permissions, tick the box. Then double click. Or from console:
chmod +x foo.sh
OpenAL package is
libopenal-dev
Fix aptana 2 installation:
sudo apt-get install xulrunner-1.9.2
(very specific, I know :)
Clean up aptana 2 folder trash:
check hereLag after suspend fix:
http://www.nvnews.net/vbulletin/showthread.php?t=158091The equivalent to
netstat
in windows
sudo netstat -ntupl
Installing
nodejs (do not use debian package, clone git instead!)
Make sure you replace the path in the last line to the proper path, where you checked out node to (try
pwd
at that point).
Also note that the node repo is no longer Ryan's sub repo, but that of Joyent. Old tutorials list
/ry
.
sudo apt-get install g++ curl libssl-dev apache2-utils
sudo apt-get install git-core
git clone https://github.com/joyent/node
cd node
./configure
make
sudo make install
export PATH="path-to-node-bin:$PATH"
Installing
npm on top of that (note, you need to be root, that's why
sudo
is added to the
sh
):
curl http://npmjs.org/install.sh | sudo sh
Jshint after npm:
sudo npm install jshint
Next
jasminenpm install jasmine-node
After which you can require it in node
var jasmine = require("jasmine-node");
If you ever get the error
configure: error: "no (requires X development libraries)"
, then this is the library you need to include (Which is also included in the
gtk+-3.0
package btw.):
sudo apt-get install xorg-dev
Reset sound after it becomes digitally wonky (happens a lot on my system, root problem seems to be some kind of system load..):
alsa force-reload
Reset microphone volume. Works around bug where one channel of microphone is reset after suspend. (
source):
pactl set-source-volume 1 0dB 0dB
// can verify in `alsamixer` or whatever, level should update immediately
Create microphone loopback (
source):
pactl load-module module-loopback latency_msec=1
// you can now find the loopback under "recording" tab in sound (`pavucontrol`)
// to remove:
pactl unload-module module-loopback
Mount ssh connection as local drive ("sftp") (
source). You need some kind of root for this. I'll use
sudo
for this.
sudo cd /media
sudo mkdir sftpdir
sudo chown your-user-name /media/sftpdir
sudo adduser your-user-name fuse
sshfs user@example.com:/stuff /media/sftpdir
Read/write clipboard (hexdump for analyzing bytes)
xclip -o | hexdump -C
echo -n $'a\r\nb' | xclip -i -selection clip-board
Find correct drive and format SD card (or whatever)
df
Find the device that holds your SD card. It'll look something like
/dev/sdd1
. The descriptions are of course quite important here ;) Once you have it, unmount and format the drive (since it's for a camera, I'm formatting it in fat32). You need root for this (or sudo).
sudo umount /dev/sdd1
sudo mkdosfs -F 32 -v /dev/sdd1
June 2014: Had problems creating bootable usb drives. Only way I could seem to do it was by
gnome-disks
, which is installed with
gnome-disk-utility
. When
gnome-disks
is open, select the usb drive, click the "options" icon (top-right corner or whatever) and select "restore disk image". This allows you to select an image and restore it to the usb drive, make it bootable (if the image is). Alternative ways seemed to fail for me right now, randomly freezing in the process.
Old: To "burn" an iso to usb (or to create a bootabla usb drive from an image). This one's pretty damn hard to find unless you know where to look...
usb-creator-gtk
usb-creator-kde
(There's actually a bug where you might end up with the message: "An uncaught exception was raised:Invalid version string 'GNU/Linux'" when trying to build a linux disk this way, in that case you need to add a flag. It will still throw the error, but the usb will actually work after it. Note that this option actually allows you to pick ANY drive, so be very careful and make sure you pick the usb drive!
source)
sudo usb-creator-gtk --allow-system-internal
Rename a drive:
sudo mlabel -i /dev/sdc1 ::<new_label>
Combine multiple pdfs into one... (yeah, needed that once).
Sourcesudo apt-get install gs pdftk
gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=combinedpdf.pdf -dBATCH 1.pdf 2.pdf 3.pdf
To get rid of certain default entries in the notifier (the envelope), here's what you do (reboot afterwards). For other entries, you'll have to go to
/usr/share/indicators/messages/applications
and remove (
sudo rm ...
) entries manually.
// broadcast accounts (facebook, twitter, etc)
sudo apt-get remove evolution
// default instant messenger (yahoo, msn, etc)
sudo apt-get remove empathy
// remove the envelope icon from systray
sudo apt-get remove indicator-messages
Codec stuff. Actually just from
here.
sudo apt-get install libxine1-ffmpeg gxine mencoder mpeg2dec vorbis-tools id3v2 mpg321 mpg123 libflac++6 ffmpeg libmp4v2-0 totem-mozilla icedax tagtool easytag id3tool lame nautilus-script-audio-convert libmad0 libjpeg-progs libquicktime1 flac faac faad sox ffmpeg2theora libmpeg2-4 uudeview flac libmpeg3-1 mpeg3-utils mpegdemux liba52-dev
sudo apt-get install gstreamer0.10-ffmpeg gstreamer0.10-fluendo-mp3 gstreamer0.10-gnonlin gstreamer0.10-sdl gstreamer0.10-plugins-bad-multiverse gstreamer0.10-schroedinger gstreamer0.10-plugins-ugly-multiverse totem-gstreamer
Other stuff (for me) to install: dropbox, pidgin, deluge (dont forget to disable DHT!), keepassx, chrome, (firefox), opera, htop, gkrellm, mint-menu, flash, xchat, skype, webstorm.
Ubuntu tweak, if that's still relevant:
sudo add-apt-repository ppa:ubuntu-tweak-testing/ppa
sudo apt-get update
sudo apt-get install ubuntu-tweak
sudo apt-get install compizconfig-settings-manager
Enable case-insensitive file/directory tabbing. I needed to open a new terminal for this setting to take effect. Afterwards you can do
cd de
and tab to jump to
Desktop
.
sudo nano /etc/inputrc // can also be ~/.inputrc
...
// now add the next line at the end of the file
set completion-ignore-case on
Enabling
.htaccess
in Apache2 (for Ubuntu). Simply edit
/etc/apache2/sites.enabled/default
and change
Override None
to
Override All
. (
Source)
Change and flush DNS settings:
sudo vi /etc/resolv.conf
sudo /etc/init.d/dns-clean start
Set up vpn... First install
sudo apt-get install network-manager-openvpn
, then go to network icon in systray. Go to VPN connections. In VPN tab, import magic settings (sorry, I received these from other people). Close the popup. Reconnect your current connection (otherwise the vpn option wont show). In the systray, open the network icon, go to vpn and there should be your new VPN connection. To use the VPN only for specific domains, go to the network panel, vpn tab, ip4 settings, click routes button, and select "Use this connection only for resources on its network". Now you can keep skyping and googling while still able to reach resources on your vpn :)
Screen sharing:
http://www.mikogo.de/download/linux-download/Browser page (only) sharing:
surflyInstall a BNC (ZNC):
https://gist.github.com/1409670Compare two binary files with
vbindiff
.
Make OSD (system) notifications use active screen:
gconftool-2 -s -t string /apps/notify-osd/multihead_mode focus-follow
Check audio channels (sends sound to each speaker consecutively) (
source):
speaker-test -Dplug:surround51 -c6 -l1 -twav
Fix flash player inverted colors on youtube et.al. (
source, worked for me)
sudo mkdir /etc/adobe
echo -e "EnableLinuxHWVideoDecode=1\nOverrideGPUValidation=true" | sudo tee /etc/adobe/mms.cfg > /dev/null
Fix Deluge (bittorrent client) from crashing your router, especially if it only affects your cable but not your wireless: Disable
dht in settings. This probably causes your router to crash your NAT table.
Update DNS to be faster. In
/etc/nsswitch.conf
move the
dns
entry forward:
hosts: files dns wins mdns4_minimal [NOTFOUND=return] mdns4
Fix a very broken package that blocks
apt-get
. In my case, I tried reverting to an older version of
gnome-screenshot
, but that kind of backfired because it broke
apt-get
due to a cyclic dependency. So I could not update the system and could not use the update system to fix that. In fact, it turned out
apt-get
could not be used to fix the problem (even though it caused it) and I had to fall back to
dpkg
. This was the only way for me to remove the bad package (immediately added after that). Ps. the
source lists an even more extreme method if this doesn't work for ya...
dpkg --remove --force-all gnome-screenshot
Python webserver onliner:
python -c "import SimpleHTTPServer;SimpleHTTPServer.test()"
Enable line-in as sound output (
source):
pactl load-module module-loopback
Convert movie to animated gif, using ffmpeg and gifsicle:
Note: the
-r 30
is the converted frame rate of the movie, gif is max 30 fps and
--delay=1
should be set to an integer such that
delay*fps=30
.
sudo apt-get install ffmpeg
sudo apt-get install gifsicle
ffmpeg -i input.ogv -pix_fmt rgb24 -r 30 -f gif - | gifsicle --optimize=3 --delay=1 > output.gif
Remove
^M
from files (to get
^M
as a char in terminal press
ctrl+v
and then
ctrl+M
). (Note that
-i
means "inline" editing, so no output file part required...) :
sed -i 's/^M$//' inputfile
Stop a service from starting after boot (I needed the port
php5-fm
was listening to):
sudo update-rc.d -f php5-fm remove
// the actual scripts can be found in /etc/init.d/*
Add custom app to launcher favorites (ubuntu 12.12, gnome3). Big clusterfuck, but here we go (
source):
sudo gnome-desktop-item-edit /usr/share/applications/ --create-new
// create the launcher (dont forget to set the icon). After that
// search for the launcher name in applications. Right-mouse on
// the search result and select "add to favorites". Done
Colored syslog:
gtc tail -f /var/log/syslog
Remove dupes from Banshee playlist, using sqlite3 (
source). Groups by track and artist title, lowercased.
// Show what you're about to remove (count, title, artist):
select c,t,n from (select count(trackid) as c, coretracks.titlelowered as t, coreartists.namelowered as n from coretracks left join coreartists where coretracks.artistid = coreartists.artistid group by t,n) where c > 1;
// Delete dupes (one dupe per group at a time, so repeat a few times):
delete from coretracks where trackid in (select i from (select trackid as i, count(trackid) as c, coretracks.titlelowered as t, coreartists.namelowered as n from coretracks left join coreartists where coretracks.artistid = coreartists.artistid group by t,n) where c > 1);
// Exit from sqlite3
.exit
Fixed network hoo-ha at some point:
sudo ifdown eth0
sudo ifup eth0 -v
Set fancy terminal prompt. I also use this to clarify ssh prompts on remote servers, to make them stand out from a local prompt (has to be done on the remote server in that case). Edit
~/.bashrc
, find the
$color_prompt
part and use the following. It will print the current dir from
~
prefixed by the current branch if in a git repo. Modify to your own likings/colors:
# find this line and enable it
force_color_prompt=yes
# then find this line later and replace the whole if-else
if [ "$color_prompt" = yes ]; then
#export PS1='\u:\W$(__git_ps1 " (\[\033[0;35m\]git:\[\033[0;34m\]%s\[\033[0m\])")\$ '
# PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
PS1='$(__git_ps1 "(\[\033[01;32m\]%s\[\033[0m\]) ")\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
Quick monitor setup scripts: arandr then bind them in config.
Suspend from cli:
sudo pm-suspend
Burn image to usb, easy GUI way. Two different programs doing the same thing. For me the GTK version isn't working properly, but your results may vary. For the KDE version the UI doesn't update when it's done (so mouse keeps stuck in waiting mode) but after a while you can just select one of the few (same) usb entries it creates and burn the image. That does work and creates a bootable usb.
sudo usb-creator-kde
// or
sudo usb-creator-gtk
Burn image to usb, CLI way (
source). Confirmed to work as well and create bootable usb.
// find usb using
sudo fdisk -l
// (probably something like /dev/sde or /dev/sdf but it depends on your disks/system/config,
// ALWAYS MAKE SURE TO FIND THE USB! Consider yourself warned.)
// Umount _that_ device
sudo umount /dev/sdf1
// format if new drive, but you probably dont need to do this
sudo mkdosfs -n 'USB-Drive-Name' -I /dev/sdf -F 32
// copy the image, note: make sure you use the usb disk here!
sudo dd if=filename.iso of=/dev/sfc bs=4k
// make OS flush all pending writes to disk (/usb)
sync
// unmount and safely remove disk
sudo eject /dev/sdf
resolve windows hostnames (
source):
# maybe not, it only worked for me after installing the next one so not sure if you need this
sudo apt-get install winbind
sudo apt-get install libnss-winbind
# if ping doesnt work yet, update conf:
sudo nano /etc/nsswitch.cfg
# update hosts line to something like this (must contain winbind somewhere)
hosts files dns winbind
ping foo
Determine bandwidth usage per process:
sudo apt-get install nethogs
sudo nethogs
Remount something and change read/write state:
sudo mount -o remount,rw /media/endpoint
Network seems capped at 1mbs but wifi on same router is faster? Check and set eth0 speed (
source):
sudo ethtool -s eth0 speed 100 duplex full
sudo ethtool eth0
// maybe also
sudo ethtool -s eth0 speed 10 autoneg off
Reduce mouse sensitivity (
source):
// find your mouse
xinput list
// below "10" is the id of the mouse, "5" is the value
xinput --set-prop 10 "Device Accel Constant Deceleration" 5
Auto clicker. For... reasons. May need to apt-get it. Probably.
xdotool click --repeat 100000 1
Record screencast in gif using byzanz (
source, also has nice gui script):
sudo apt-get install byzanz
byzanz-record -v -d DURATION --delay=DELAY -x X-COORDINATE -y Y-COORDINATE -w WIDTH -h HEIGHT FILENAME
byzanz-record -v -d 10 --delay=5 -x 0 -y 0 -w 1440 -h 900 desktop-animation.gif
Crop an animated gif with gifsicle:
sudo apt-get install gifsicle
gifsicle --crop 50,50-100,100 input.gif > output.gif
Remap audio ports (
source):
sudo apt-get install alsa-tools-gui
hdajackretask
Run script on thaw (
source and example):
sudo nano /etc/pm/sleep.d/99_some_name
sudo chmod +x /etc/pm/sleep.d/99_some_name
#!/bin/sh
PATH=/sbin:/usr/sbin:/bin:/usr/bin
case "${1}" in
hibernate)
# this is where you put something you want to run before hibernating
;;
resume|thaw)
# this is where you put something you want to run on resume/thaw
;;
esac
ffmpeg stuff:
// Use ffmpeg to merge two audio tracks of a video together and mix them to mono...
// (source and source)
ffmpeg -i in.mkv -c:v copy -ac 1 -filter_complex "[0:2] [0:3] amerge" out.mkv
// same as above and also set volumes per input stream (source)
// (note that `-ac 1` makes the tracks mix into stereo)
// (note that the audio must be re-encoded or otherwise the volume filters will be ignored)
// (source)
ffmpeg -i in.mkv -ac 1 -filter_complex "[0:2]volume=0.3:precision=float[A]; [0:3]volume=0.8:precision=float[B]; [A][B]amerge" -y out.mkv
// mute part of one audio track while keeping other audio track as is, mix them together. result has 1 video and 1 audio
ffmpeg -i in.mkv -c:v:0 copy -filter_complex "[0:a:1]volume=enable='between(t,300,390)':volume=0[A]; [A][0:a:2]amix[out]" -map 0:v -map [out] -y out.mkv
// partially slipstream the audio of one file into the audio/video of another. like adding an outro message after recording.
// in this case the main video ran for about 17 minutes and after that i replaced the remaining audio of only one track with that of outro.mkv
// - extract target audio track, partially (-ss is start, -t is duration, -to is stop)
// - concat replacement audio track to it
// - remux new track into video, resulting in 1 video and 1 audio track
// - ... profit
ffmpeg -i in.mkv -ss 0 -t 1126 -map 0:a:1 -y track.mp3
ffmpeg -i track.mp3 -i outro.mkv -filter_complex "[0:a:0] [1:a:2] concat=n=2:v=0:a=1 [A]" -map [A] -y mixed.mkv
// "original movie, mixed mic track, copy video, merge second audio track of original with mixed mic track into out"
// Note that it's using `amix`! The `amerge` method was causing the mic track to get a lower volume. Whatever.
ffmpeg -i in.mkv -i mixed.mkv -to 00:20:15 -c:v:0 copy -filter_complex "[0:a:1][1:a:0]amix" -y out.mkv
// BUT, we can combine the first two into in a single line
ffmpeg -i in.mkv -i outro.mkv -filter_complex "[0:a:2]atrim=duration=1126[A]; [A] [1:a:2] concat=n=2:v=0:a=1 [B]" -map [B] -y mixed.mkv
// and by the same logic we can combine the whole thing into a one liner:
// this:
// - has two input files (the original video and the a video with the outro), both have 1v and 3a
// - cuts the video at 20:15, the original video ran longer than that but i don't need the trailing part
// - copies the video as is. This speeds things up considerably.
// - copies the first 18 minutes of mic audio track into a stream A
// - concats the A stream to the outro, forming stream B
// - mixes the new mic stream B into the background audio of the original video into stream C
// - outputs a new file with video as first stream and our mixed audio stream C in second place
ffmpeg -i in.mkv -i outro.mkv -to 00:20:15 -c:v:0 copy -filter_complex "[0:a:2]atrim=duration=1126[A]; [A] [1:a:2] concat=n=2:v=0:a=1 [B]; [0:a:1][B]amix[C]" -map 0:v -map [C] -y out.mkv
// quickly split up an mkv of, say two hours into four half hours
mkvmerge -o 1.mkv --split parts:-00:30:00 in.mkv
mkvmerge -o 2.mkv --split parts:00:30:00-01:00:00 in.mkv
mkvmerge -o 3.mkv --split parts:01:00:00-01:30:00 in.mkv
mkvmerge -o 4.mkv --split parts:01:30:00- in.mkv
// to merge two files with specific offsets use mkvmerge as ffmpeg gives me crap for it.
// note that the timestamps in --split are for the entire duration of all inputs concat.
// this way you can cut away some trailing/leading time to glue it properly together
mkvmerge -o out.mkv --split parts:-00:06:34,+00:07:28- a.mkv +b.mkv
// add a black area to your video
//ffmpeg -i in.mkv -vf "color=black:WIDTHxHEIGHT [over]; [in][over] overlay=X:Y [out]" out.mkv
ffmpeg -i in.mkv -vf "color=black:1920x100 [over]; [in][over] overlay=0:1000 [out]" out.mkv
// then use mkvmerge to recombine them
// simply merge multiple mkvs
mkvmerge -o out.mkv 1.mkv +2.mkv +3.mkv +4.mkv
// or with ffmpeg
ffmpeg -isync -i "concat:1.mkv|2.mkv|3.mkv|4.mkv" -c copy out.mkv
// from a mkv with multiple audio tracks, get a mkv with only one of those tracks
// (in this case the second one, see -map 0:a:1
for track selection)
ffmpeg -i in.mkv -c:v:0 copy -map 0:v -map 0:a:1 -y out.mkv
Update screen backlight from cli:
xbacklight -set 100
xbacklight -set 10
xbacklight -inc 10
xbacklight -dec 10
// or if that doesnt work we can use xrandr
// but that seems to be a software only approach
// use auto complete for --output to find right display arg
xrandr --output DP-0 --brightness 0.8
Diff on a binary file (
source):
// xxd dumps a file in standard binary, just send that output to diff
diff -y <(xxd A) <(xxd B) | colordiff
// or
vbindiff A B
Create network share. Impossible in Thunar (it's 2017 ffs). Install samba
then:
net usershare add sharename path "desc" Everyone:F guest_ok=y
net usershare delete sharename
net usershare info --long
If you have problems with write-access make sure the file-system permissions for the folder are set properly (they trump smb's permissions). No root required for this.
In Thunar go to "edit, configure custom actions". Add a new entry to add a share.
net usershare add %n %f "" Everyone:F guest_ok=y
. Add another to remove that share
net usershare delete %n
. You can check in terminal whether it worked through
net usershare info --long
. For each set the "appearance conditions" (second tab) to folder. Check the actual line for details. Also make sure path permissions are ok. From linux getting write access seems problematic.
Workaround to wakeup your network when suspend/thaw did not (requires root but will prompt you if you didn't sudo):
systemctl restart network-manager.service
Read keys (the white square popup must be focussed to receive keys):
xev
Make super key work as an individual key AND as modifier. I had to build this first. (Also, with a Logitech G710+, you'll need to press the joystick button on the keyboard to make the super key work at all ...). Run, once, without root:
xfce-superkey
Restarting the bluetooth discover module helps me with connecting my bose headset (xfce 19.10). It will be paired but when trying to connect it'll say something like "Connection Failed: blueman.bluez.errors.DBusFailedError: Protocol not available...". Restarting the module and then connecting to it helped for me.
Without root:
pactl unload-module module-bluetooth-discover
pactl load-module module-bluetooth-discover
Setup ssh auth (
source):
// Confirm you need it...
ssh foo@192.168.6.16
> password for foo:
// (On local machine) Create key
// Follow the steps, for this example I store the key in ~/key_rsa_id
// Note: If you set a passphrase here you'll need to type that to login ...
ssh-keygen
// For clarity update the file name
mv ~/key_rsa_id ~/key_rsa_id.priv
// Copy private key to own ssh folder
mv ~/key_rsa_id.priv ~/.ssh/key_rsa_id.priv
// Append public key to server through ssh
cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
// Set own ssh config to match this
nano ~/.ssh/config
// Add the following to this file:
// > Host github.com
// > IdentityFile /home/user/.ssh/key_rsa.priv
// Save and exit nano (that's it, the key is now automatically picked up)
// Confirm you can connect without password now
ssh foo@192.168.6.16
> Welcome to Ubuntu
Optional after setting up key auth: disable ssh password access on the server, making key auth mandatory
sudo nano /etc/ssh/sshd_config
// Enable this line:
// > PasswordAuthentication no
// Save, exit nano, restart ssh service
sudo service ssh restart
// Confirm you can login with key
ssh foo@192.168.6.16
> Welcome to Ubuntu
// Confirm you cannot login without key anymore
ssh fake@192.168.6.16
> fake@192.168.6.16: Permission denied (publickey).