i3 window manager: black screen, no mouse - archlinux

I installed i3-gaps on my arch running with a nvidia card. A gnome-session works fine using the nvidia.
After the installation i added to the xinitrc file:
exec i3
however when I execute startx in a tty, the X Server starts successfully, but i3 shows nothing else but black screen (no shortcuts are working)

Since there can be multiple reasons for the observed behavior, I'm suggesting some checkpoints.
Please make sure you have installed all the required packages for i3 (or i3-gaps whichever you have installed).
Please make sure the exec call (that is "exec i3") is at the bottom / end of the xinitrc file.
Also please have a look at the config file located at ~/.config/i3/config.
You can also remove the packages, install them, then run i3-config-wizard to configure the first run behavior of i3wm.

Related

WSL can't detect VS code

At first, I tried to fix my problem of npm instruction
so I added
[interop]
appendWindowsPath = false
to /etc/wsl.conf
It works, but another problem happen.
When I type code .
Command 'code' not found, did you mean:
command 'node' from deb nodejs (12.22.9~dfsg-1ubuntu3)
command 'cdde' from deb cdde (0.3.1-1build1)
command 'ode' from deb plotutils (2.6-11)
command 'tcode' from deb emboss (6.6.0+dfsg-11ubuntu1)
command 'cde' from deb cde (0.1+git9-g551e54d-1.2)
Try: sudo apt install <deb name>
The above Error message appear.
I tried the following instruction
export PATH=$PATH:"/mnt/c/Users/%USERNAME%/AppData/Local/Programs/Microsoft VS Code/bin"
It also works properly.
Whenever I restarted WSL, npm instruction still worked well, but code instruction lost its function again.
What should I do to fix the problem?
Thanks in advance!
My main suggestion would be to not use appendWindowsPath = false to fix your NPM problem. That's like using a sledgehammer as a flyswatter. As I said in this answer:
Please do not follow the recommendations (like this answer) to completely remove all Windows paths from WSL, as that will severely limit your ability to run Windows applications in WSL (one of its great features).
You'll also lose access to the ability to run PowerShell scripts and commands in WSL easily. You won't have direct access to wsl.exe itself from inside WSL (which comes in handy).
You can type the full paths to these commands, of course, but most instructions and other answers you find here are going to assume that you've left the Windows path intact.
Instead, figure out where npm is installed in your WSL distribution and then determine why it is further toward the end of the PATH than your Windows directories. Windows paths are added at the end of the Linux PATH for a reason. If something in your startup files is adding to the path, it should put it at the beginning, so it has precedence. E.g.:
export PATH="newdir:$PATH"
Note that I'm not saying that you should change your export statement above since, as mentioned, that Windows path would normally come at the end anyway. It's really not going to matter unless you put another code executable somewhere else in your path.
Whenever I restarted WSL, npm instruction still worked well, but code instruction lost its function again.
If you do want the "quick and dirty" (not recommended) solution, then you can simply add that export command that "makes it work" to your ~/.bashrc. That file is processed each time the Bash shell starts interactively.

Plank Dock - wrong icons/wmclass

I have a problem with plank. Unfortunately I could not find any entries here on stackoverflow nor anywhere else that address my problem.
Because of this, I decided to open a new question here.
My Problem:
Some appliactions (.desktop files) show the wrong icon on plank dock. And its not only that, its also happen, that its link to the wrong application.
For example visual studio code. If I run code (terminal or albert) then a electron icon apears on the plank dock, but if I zoom out (gnome 40) the right icon shows on the vs code window.
Here a screenshot:
Screenshot of plank and vs code
If I use the middle mousebutton to start a new window, then an electron window apears, not a second vs code.
Question:
How can this be fixed? Is there a workaround?
I had the same problem in arch linux. Unfortunately, the solution I found is only temporary (unless they fix the bug), but it works as long as you re-implement it every time vs code is updated
Delete the electron launcher from plank.
Change the StartupWMClass value in the desktop file to be set to code-oss. This is the step that has to be repeated on every upgrade to vs code.
Run vs code and then persist the launcher in plank with "Keep in Dock".
/usr/share/applications/code-oss.desktop
[Desktop Entry]
Name=Code - OSS
Comment=Code Editing. Redefined.
GenericName=Text Editor
Exec=/usr/bin/code-oss --no-sandbox --unity-launch %F
Icon=com.visualstudio.code.oss
Type=Application
StartupNotify=false
StartupWMClass=code-oss
Categories=Utility;TextEditor;Development;IDE;
MimeType=text/plain;application/x-code-oss-workspace;
Actions=new-empty-window;
Keywords=vscode;
[Desktop Action new-empty-window]
Name=New Empty Window
Exec=/usr/bin/code-oss --no-sandbox --new-window %F
Icon=com.visualstudio.code.oss
Dealing with upgrades
Any time you upgrade vs code, the desktop file will probably have StartupWMClass reset. You have a few options.
Change the desktop file every time vs code upgrades. You can script this and run it automatically after every system upgrade. Here's a basic example:
~/.bashrc
my_upgrade() {
sudo pacman -Syu
sudo sed -i 's/^StartupWMClass.*/StartupWMClass=code-oss/g' /usr/share/applications/code-oss.desktop
}
Alternatively, you can add a pacman hook to automate this within pacman itself so you don't need a custom wrapper for pacman (credit tdy):
/etc/pacman.d/hooks/code-oss-desktop.hook
[Trigger]
Operation = Install
Operation = Upgrade
Type = Package
Target = code
[Action]
Depends = sed
Depends = sudo
When = PostTransaction
Exec = /bin/bash -c '/usr/bin/sudo /usr/bin/sed -i "s/^StartupWMClass.*/StartupWMClass=code-oss/g" /usr/share/applications/code-oss.desktop'
Uninstall code and create your own PKGBUILD for vs code that patches this issue and make sure it tracks upgrades. There are several approaches for this, but it can get complicated and is probably not in scope for this answer.
Block upgrades to code so it is not unexpectedly reset, and periodically upgrade the package explicitly when you are ready to fix the issue.
/etc/pacman.conf
...
IgnorePkg = code
...
Expanding on Drew's answer, the post-upgrade modification of code-oss.desktop can be automated natively with pacman as a PostTransaction hook. That way you don't need the my_upgrade bash wrapper -- pacman will just automatically fix the file when you -Syu.
For example this hook will automatically fix code-oss.desktop whenever pacman installs/upgrades the code package:
#
# /etc/pacman.d/hooks/code-oss-desktop.hook
#
[Trigger]
Operation = Install
Operation = Upgrade
Type = Package
Target = code
[Action]
Depends = sed
Depends = sudo
When = PostTransaction
Exec = /bin/bash -c '/usr/bin/sudo /usr/bin/sed -i "s/^StartupWMClass.*/StartupWMClass=code-oss/g" /usr/share/applications/code-oss.desktop'

Pamac will not load any apps

So I did a fresh install of Arch Linux on my desktop and installed i3wm with it. After updating the repo's following the first reboot I began to add some packages I am familiar with that I can remember off the top of my head. After making sure my wireless internet was working I began to add apps to install to get me all set up and 'pamac-aur' was one of them. After I couldn't remember anymore apps to install I turned to pamac to help me with the rest, only it wouldn't start. I got a "Authentication failed" error. So I did some research and 95% of the posts I read mentioned adding 2 lines to my i3 startup config.
exec /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &
I currently have tried both of those lines and each one separately as well since they are almost identical and pamac is still giving me the "Authentication failed" error message. I can 'sudo pacman -Syu' and 'yay -Syu' from the command line but since I am still new with i3 and linux in general, I like referring to an application that shows pictures of different packages and a 'one-stop-shop' to install everything in one go.
So beyond those two lines in my i3 config, I don't know what else to try. Any help is greatly appreciated!
Have you already checked if you have polkit-gnome installed?
This is the package that provides the binary you are trying to execute with the lines you mentioned in you config:
pacman -Syu polkit-gnome
After installing it I would check if it works when starting the agent manually by executing the following in the terminal:
/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
Then run pamac and try to install/remove/update a package with it. When a popup appears that wants you to authenticate yourself it was a success.
Then you can add the line to your i3 config.
Also the the second line without the ampersand at the end is enough for your i3 config:
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
For the new line in the config to take effect you would have to, after saving the file, logout and login again.

Having trouble with Osmocom source in gnuradio

I'm having trouble running a simple flowgraph with an osmocom source and a qt gui sink. If I run the file with a waveform generator instead of the osmocom source, all is well, the plots appear as they should, no problem.
When the osmocom source is hooked up, everything runs and there is no immediate error message... the gui window just never opens. If I run it from the terminal with verbose output, the output ends with and that's where it hangs.
import 'osmosdr._osmosdr_swig' # <_frozen_importlib_external.ExtensionFileLoader object at 0x7f5e0cae23c8>
import 'osmosdr.osmosdr_swig' # <_frozen_importlib_external.SourceFileLoader object at 0x7f5e0cdda978>
import 'osmosdr' # <_frozen_importlib_external.SourceFileLoader object at 0x7f5e0cdc9dd8>
Not sure what those errors mean but it just hangs there. Eventually it ends up using 100% of CPU and I have to CTRL + \ it to get it to stop. Is it a library maybe in the wrong place that it's not finding?
OS : Ubuntu 18.04
Gnuradio-config-info -version : 3.8.0.0-rc2
gr-osmosdr was installed from the git repo and the gr3.8 branch (which worked for me previously) so as to be ok with gnuradio 3.8. I had initially installed gr-osmosdr from the master branch and instead of doing make uninstall, I deleted the directory. I think installed from the gr3.8 branch, did a make uninstall to see if that maybe might have helped (?) and then reinstalled. No dice.
If there's any more info I can supply, let me know - any and all help is greatly appreciated, thanks!

Decompiling MCP error (version 9.18) returns 'Decompile Failed'

I have decided to take on MCP and have downloaded it, however, when running the decompile.bat, it returns an error.
(I'm running 32-bit Windows 10)
Here is what it returned:
'"C:\Program Files\Java\jdk1.8.0_65\bin\java" -jar runtime\bin\fernflower.jar -din=1 -rbr=1 -dgs=1 -asc=1 -rsy=1 -iec=1 -jvn=1 -log=WARN "-e=jars\libraries\net/java/jinput\jinput\2.0.5\jinput-2.0.5.jar" "-e=jars\libraries\org/lwjgl/lwjgl\lwjgl-platform\2.9.4-nightly-20150209\lwjgl-platform-2.9.4-nightly-20150209-natives-windows.jar" "-e=jars\libraries\com/ibm/icu\icu4j-core-mojang\51.2\icu4j-core-mojang-51.2.jar" "-e=jars\libraries\tv/twitch\twitch-external-platform\4.5\twitch-external-platform-4.5-natives-windows-32.jar" "-e=jars\libraries\org/apache/httpcomponents\httpcore\4.3.2\httpcore-4.3.2.jar" "-e=jars\libraries\org/apache/logging/log4j\log4j-api\2.0-beta9\log4j-api-2.0-beta9.jar" "-e=jars\libraries\org/apache/commons\commons-lang3\3.3.2\commons-lang3-3.3.2.jar" "-e=jars\libraries\net/java/jutils\jutils\1.0.0\jutils-1.0.0.jar" "-e=jars\libraries\net/java/dev/jna\jna\3.4.0\jna-3.4.0.jar" "-e=jars\libraries\com/paulscode\libraryjavasound\20101123\libraryjavasound-20101123.jar" "-e=jars\libraries\net/sf/jopt-simple\jopt-simple\4.6\jopt-simple-4.6.jar" "-e=jars\libraries\com/google/guava\guava\17.0\guava-17.0.jar" "-e=jars\libraries\oshi-project\oshi-core\1.1\oshi-core-1.1.jar" "-e=jars\libraries\commons-logging\commons-logging\1.1.3\commons-logging-1.1.3.jar" "-e=jars\libraries\org/apache/commons\commons-compress\1.8.1\commons-compress-1.8.1.jar" "-e=jars\libraries\net/java/dev/jna\platform\3.4.0\platform-3.4.0.jar" "-e=jars\libraries\com/paulscode\codecjorbis\20101023\codecjorbis-20101023.jar" "-e=jars\libraries\com/paulscode\soundsystem\20120107\soundsystem-20120107.jar" "-e=jars\libraries\com/paulscode\librarylwjglopenal\20100824\librarylwjglopenal-20100824.jar" "-e=jars\libraries\org/lwjgl/lwjgl\lwjgl_util\2.9.4-nightly-20150209\lwjgl_util-2.9.4-nightly-20150209.jar" "-e=jars\libraries\commons-codec\commons-codec\1.9\commons-codec-1.9.jar" "-e=jars\libraries\org/apache/httpcomponents\httpclient\4.3.3\httpclient-4.3.3.jar" "-e=jars\libraries\org/lwjgl/lwjgl\lwjgl\2.9.4-nightly-20150209\lwjgl-2.9.4-nightly-20150209.jar" "-e=jars\libraries\commons-io\commons-io\2.4\commons-io-2.4.jar" "-e=jars\libraries\com/mojang\realms\1.7.39\realms-1.7.39.jar" "-e=jars\libraries\com/mojang\authlib\1.5.21\authlib-1.5.21.jar" "-e=jars\libraries\com/google/code/gson\gson\2.2.4\gson-2.2.4.jar" "-e=jars\libraries\tv/twitch\twitch\6.5\twitch-6.5.jar" "-e=jars\libraries\com/paulscode\codecwav\20101023\codecwav-20101023.jar" "-e=jars\libraries\tv/twitch\twitch-platform\6.5\twitch-platform-6.5-natives-windows-32.jar" "-e=jars\libraries\net/java/jinput\jinput-platform\2.0.5\jinput-platform-2.0.5-natives-windows.jar" "-e=jars\libraries\org/apache/logging/log4j\log4j-core\2.0-beta9\log4j-core-2.0-beta9.jar" "-e=jars\libraries\io/netty\netty-all\4.0.23.Final\netty-all-4.0.23.Final.jar" temp/minecraft_ff_in.jar temp\src\minecraft' failed : 1
Decompile failed
This is caused by the decompilation system running out of RAM. I'm not entirely sure why it's happening, but it also was happening to me.
If you're using Minecraft Forge's ForgeGradle, see this. You can either edit the gradle options file ( .gradle/gradle.properties in your user folder) and add org.gradle.jvmargs=-Xmx2G to it, or you can set the options variable to -Xmx2G (in a command prompt, run set GRADLE_OPTS=-Xmx2G and then gradlew setupDecompWorkspace).
However, given that you referenced decompile.bat, you probably are using MCP without Forge. (Which is fine but forge does make mods easier/more compatible; you may want to consider doing this if you're making a more permanent mod rather than just messing about.) In this case, you can edit MCP's configuration to increase the given RAM.
In the MCP folder, open the conf folder and then open mcp.cfg with a text editor of your choice. Then, find this line (near the bottom)
CmdFernflower = %s -jar %s -din=1 -rbr=0 -dgs=1 -asc=1 -log=WARN {indir} {outdir}
and replace it with this:
CmdFernflower = %s -Xmx2G -jar %s -din=1 -rbr=0 -dgs=1 -asc=1 -log=WARN {indir} {outdir}
(You may need to change other lines also adding -Xmx2G before -jar but it doesn't seem to be needed from my experience).
This will run the decompiler with additional RAM.
Alternatively, if you don't want to mess around with the MCP configuration, MCP910 doesn't seem to have this issue. It works with 1.8.0 instead of 1.8.8, but should still do everything you want.
I know, this answer comes very late, but you should install the 64-bit Version of Java. With the 32-Bit Version, it doesn't work...
I don't know if you can install this on your 32-Bit System, but you can try it. On my 86-Bit System (Windows 8) it works!