Skip to content

Commit

Permalink
break lines apart for pipeline
Browse files Browse the repository at this point in the history
  • Loading branch information
primalbeing committed Feb 7, 2025
1 parent ed0643a commit 9fe29eb
Show file tree
Hide file tree
Showing 28 changed files with 571 additions and 248 deletions.
5 changes: 4 additions & 1 deletion Desktop Entries/Images/LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
The Creative Commons Attribution (CC BY) license is a widely used open license that allows others to distribute, remix, adapt, and build upon your work, even commercially, as long as they give appropriate credit to the original creator. Here's the full text of the CC BY license:
The Creative Commons Attribution (CC BY) license is a widely used open license
that allows others to distribute, remix, adapt, and build upon your work, even
commercially, as long as they give appropriate credit to the original creator.
Here's the full text of the CC BY license:

```
Creative Commons Legal Code
Expand Down
102 changes: 73 additions & 29 deletions Desktop Entries/README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,28 @@
# Custom Desktop Entries

Desktop entries are the graphical icons and names in your app menu and other areas. They follow [the Freedesktop specification](https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html) and are used by all apps (not AppImages) and in other areas.
Desktop entries are the graphical icons and names in your app menu and other
areas. They follow [the Freedesktop
specification](https://specifications.freedesktop.org/desktop-entry-spec/desktop
-entry-spec-latest.html) and are used by all apps (not AppImages) and in other
areas.

## System Actions

Some useful system actions can be "GUI-fied" using desktop entries. They will show up as apps.
Some useful system actions can be "GUI-fied" using desktop entries. They will
show up as apps.

If you want to run `sudo` actions, use `pkexec` instead, which shows a GUI password prompt.
If you want to run `sudo` actions, use `pkexec` instead, which shows a GUI
password prompt.

### Bluetooth Toggle

If you want to disable Bluetooth permanently but keep the ability to enable it when needed, use the user variant. However, it requires these steps before:
If you want to disable Bluetooth permanently but keep the ability to enable it
when needed, use the user variant. However, it requires these steps before:

```sh
# Copy system service to user dir
sudo cp /usr/lib/systemd/system/bluetooth.service /etc/systemd/user/bluetooth-user.service
sudo cp /usr/lib/systemd/system/bluetooth.service
/etc/systemd/user/bluetooth-user.service

# Disable and mask the system service
sudo systemctl disable --now bluetooth
Expand All @@ -24,31 +32,42 @@ sudo systemctl mask bluetooth
systemctl --user daemon-reload
```

The user variant does not require `wheel` group permissions and does not display a password prompt.
The user variant does not require `wheel` group permissions and does not
display a password prompt.

### Execute or Install Files

Some files, like `.jar` archives or Android `.apk` packages, don't have a graphical "app" registered to execute them.
Some files, like `.jar` archives or Android `.apk` packages, don't have a
graphical "app" registered to execute them.

Most others, like system packages or `.flatpakref`, `.flatpakrepo`, normally have a graphical app store assigned to open them.
Most others, like system packages or `.flatpakref`, `.flatpakrepo`, normally
have a graphical app store assigned to open them.

### Journalctl Errors

Sometimes you may need to get some logs of your system. Systemd's `journalctl` is pretty standardized as the way to retrieve them.
Sometimes you may need to get some logs of your system. Systemd's `journalctl`
is pretty standardized as the way to retrieve them.

That entry uses multiple actions for the log types.

![Screenshot of the journalctl error entry](https://raw.githubusercontent.com/boredsquirrel/Linux/main/Desktop%20Entries/Images/journalctl-entry.jpg)
![Screenshot of the journalctl error
entry](https://raw.githubusercontent.com/boredsquirrel/Linux/main/Desktop%20Entr
ies/Images/journalctl-entry.jpg)

## Applications

System-wide installed applications have their `.desktop` entry in `/usr/share/applications/`. To edit them, copy them to `~/.local/share/applications/`. These will be preferred over the system entries, practically overwriting them.
System-wide installed applications have their `.desktop` entry in
`/usr/share/applications/`. To edit them, copy them to
`~/.local/share/applications/`. These will be preferred over the system
entries, practically overwriting them.

### Konsole

![Screenshot](https://raw.githubusercontent.com/trytomakeyouprivate/Linux/main/Desktop%20Entries/Images/konsole-desktop-entry.jpg)
![Screenshot](https://raw.githubusercontent.com/trytomakeyouprivate/Linux/main/D
esktop%20Entries/Images/konsole-desktop-entry.jpg)

Konsole has a few annoyances that can be easily fixed. It always opens in a new window, even though it supports tabs.
Konsole has a few annoyances that can be easily fixed. It always opens in a new
window, even though it supports tabs.

You may also want to add custom actions and profiles for certain tasks.

Expand All @@ -73,15 +92,20 @@ You can do the same for:
- Running as root
- Running over SSH

Now place my desktop entry in the correct location, and it will change immediately.
Now place my desktop entry in the correct location, and it will change
immediately.

### Firefox

![Screenshot](https://raw.githubusercontent.com/trytomakeyouprivate/Linux/main/Desktop%20Entries/Images/firefox-desktop-entry.jpg)
![Screenshot](https://raw.githubusercontent.com/trytomakeyouprivate/Linux/main/D
esktop%20Entries/Images/firefox-desktop-entry.jpg)

Firefox can use profiles too. You might want to run it in private browsing mode or exclude it from a VPN (here, MullvadVPN as an example).
Firefox can use profiles too. You might want to run it in private browsing mode
or exclude it from a VPN (here, MullvadVPN as an example).

Use `firefox -p` or `flatpak run org.mozilla.firefox -p`, respectively. Create a new profile, use a custom location, and use a folder with a dedicated name. Otherwise, it will be a cryptic sequence of symbols.
Use `firefox -p` or `flatpak run org.mozilla.firefox -p`, respectively. Create
a new profile, use a custom location, and use a folder with a dedicated name.
Otherwise, it will be a cryptic sequence of symbols.

Run that profile but in private browsing:

Expand All @@ -101,37 +125,53 @@ Open a link in such an excluded browser:
mullvad-exclude firefox -p INSECURE http://insecure.link.com
```

This is needed for logging into captive portals (yes, they suck...) or using sites that block VPN servers.
This is needed for logging into captive portals (yes, they suck...) or using
sites that block VPN servers.

Edit the Firefox desktop entry like this:

```sh
cp /usr/share/applications/org.mozilla.firefox.desktop ~/.local/share/applications/
cp /usr/share/applications/org.mozilla.firefox.desktop
~/.local/share/applications/
```

### Delete App Data After Launching

This is Flatpak-specific and very useful. For example, the app [Decoder](https://flathub.org/apps/com.belmoussaoui.Decoder) will keep a history of all copied elements, even though this may not be desired (i.e., sending passwords).
This is Flatpak-specific and very useful. For example, the app
[Decoder](https://flathub.org/apps/com.belmoussaoui.Decoder) will keep a
history of all copied elements, even though this may not be desired (i.e.,
sending passwords).

Flatpaks have their desktop entries in `/var/lib/flatpak/app/APPNAME/current/active/export/share/applications/`. Copy that to `~/.local/share/applications/` and edit it here.
Flatpaks have their desktop entries in
`/var/lib/flatpak/app/APPNAME/current/active/export/share/applications/`. Copy
that to `~/.local/share/applications/` and edit it here.

Flatpaks store their app data in `~/.var/app/APPNAME/`, which makes deleting it easy. Just add `&& rm -rf ~/.var/app/APPNAME` after the `Exec=` command, and it will delete itself after closing the app.
Flatpaks store their app data in `~/.var/app/APPNAME/`, which makes deleting it
easy. Just add `&& rm -rf ~/.var/app/APPNAME` after the `Exec=` command, and it
will delete itself after closing the app.

## Tips

If you want to find system icons or mimetypes (the name a file is recognized by), you can do both graphically in KDE.
If you want to find system icons or mimetypes (the name a file is recognized
by), you can do both graphically in KDE.

### Finding System Icons

| Open the app menu | Find the icon name in the list |
|------------------|------------------------------|
| ![App launcher](https://raw.githubusercontent.com/boredsquirrel/Linux/main/Desktop%20Entries/Images/applauncher-find-icons.jpg) | ![App icon list](https://raw.githubusercontent.com/boredsquirrel/Linux/main/Desktop%20Entries/Images/find-icons.jpg) |
| ![App
launcher](https://raw.githubusercontent.com/boredsquirrel/Linux/main/Desktop%20E
ntries/Images/applauncher-find-icons.jpg) | ![App icon
list](https://raw.githubusercontent.com/boredsquirrel/Linux/main/Desktop%20Entri
es/Images/find-icons.jpg) |

Change "programs" to "all" to display all icons. These names can directly be used in the `Icon=` line.
Change "programs" to "all" to display all icons. These names can directly be
used in the `Icon=` line.

### Finding Mimetypes

To associate an "app" with a specific file type (see "adb install" and "java execute"), in the terminal, you can use:
To associate an "app" with a specific file type (see "adb install" and "java
execute"), in the terminal, you can use:

```sh
cat /etc/mime.types | grep FILEEXTENSION
Expand All @@ -140,9 +180,12 @@ cat /etc/mime.types | grep FILEEXTENSION
cat /etc/mime.types | grep jar
```

Or you can use KDE's "File Association" settings page and search for the file extension (here, "jar").
Or you can use KDE's "File Association" settings page and search for the file
extension (here, "jar").

![System settings page for mimetypes](https://raw.githubusercontent.com/boredsquirrel/Linux/main/Desktop%20Entries/Images/file-names.jpg)
![System settings page for
mimetypes](https://raw.githubusercontent.com/boredsquirrel/Linux/main/Desktop%20
Entries/Images/file-names.jpg)

Here, the mimetype is `application/x-java-archive`.

Expand All @@ -151,6 +194,7 @@ As an example, see KDE Discover's associated mimetypes:
```sh
$ cat /usr/share/applications/org.kde.discover.desktop | grep Mime

MimeType=application/x-rpm;application/vnd.flatpak;application/vnd.flatpak.repo;application/vnd.flatpak.ref;
MimeType=application/x-rpm;application/vnd.flatpak;application/vnd.flatpak.repo;
application/vnd.flatpak.ref;
```

12 changes: 8 additions & 4 deletions Fedora Atomic Desktops/Common-Apps/Qgis.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,12 @@

Use the upstream instructions instead.

- [Flatpak](https://qgis.org/resources/installation-guide/#flatpak) (recommended, you can install plugins with a trick!)
- [Fedora and Atomic Desktops](https://qgis.org/resources/installation-guide/#fedora)
- [Distrobox and Toolbx](https://qgis.org/resources/installation-guide/#distrobox--toolbx)
- [Flatpak](https://qgis.org/resources/installation-guide/#flatpak)
(recommended, you can install plugins with a trick!)
- [Fedora and Atomic
Desktops](https://qgis.org/resources/installation-guide/#fedora)
- [Distrobox and
Toolbx](https://qgis.org/resources/installation-guide/#distrobox--toolbx)

## Trick: Run the App with XWayland

Expand All @@ -22,7 +25,8 @@ Categories=Education;Science;Geography;
Exec=env QT_QPA_PLATFORM=xcb /usr/bin/distrobox-enter Fedora -- qgis %F
Icon=qgis
Keywords=map;globe;postgis;wms;wfs;ogc;osgeo;
MimeType=image/tiff;image/jpeg;image/jp2;application/vnd.google-earth.kmz;application/vnd.google-earth.kml+xml;
MimeType=image/tiff;image/jpeg;image/jp2;application/vnd.google-earth.kmz;applic
ation/vnd.google-earth.kml+xml;
Name=QGIS Desktop (Distrobox)
StartupWMClass=QGIS3
Type=Application
Expand Down
3 changes: 2 additions & 1 deletion Fedora Atomic Desktops/Common-Apps/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Install common apps on any Linux Distro

There are many ways to install many apps, I will take the solutions that work best for me.
There are many ways to install many apps, I will take the solutions that work
best for me.

- Work on an immutable System as well as possible
- Flatpak
Expand Down
16 changes: 11 additions & 5 deletions Fedora Atomic Desktops/Common-Apps/RStudio.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

Create a Distrobox for Fedora
```
distrobox-create Fedora -i registry.fedoraproject.org/fedora-toolbox:$(rpm -E %fedora) #or enter version manually
distrobox-create Fedora -i registry.fedoraproject.org/fedora-toolbox:$(rpm -E
%fedora) #or enter version manually
distrobox-enter Fedora
```

Expand All @@ -13,17 +14,22 @@ sudo dnf install -y rstudio-desktop R-CoprManager
distrobox-export --app rstudio-desktop
```

[List of available R modules](https://copr.fedorainfracloud.org/coprs/iucar/cran/packages/)
[List of available R
modules](https://copr.fedorainfracloud.org/coprs/iucar/cran/packages/)

This is the best method to install RStudio on Linux in general, as they [don't seem to manage keeping their software up to date at all](https://posit.co/download/rstudio-desktop/)
This is the best method to install RStudio on Linux in general, as they [don't
seem to manage keeping their software up to date at
all](https://posit.co/download/rstudio-desktop/)

> [!NOTE]
> RStudio was rewritten from Qt to Electron.
> A very stupid move, according to many people.
> Electron uses an often insecure version of Chromium, with degraded Security, is huge, rarely kept up to date etc.
> Electron uses an often insecure version of Chromium, with degraded Security,
is huge, rarely kept up to date etc.
> You might want to look out for an alternative.
> Installing R and the CRAN modules is still recommended using this method.
> [!WARNING]
> Fedora is not made to be ran inside containers.
> The dnf system updater does not work within a podman container, so when the current version goes EOL (max. 13 months) you need to recreate a new container.
> The dnf system updater does not work within a podman container, so when the
current version goes EOL (max. 13 months) you need to recreate a new container.
17 changes: 12 additions & 5 deletions Fedora Atomic Desktops/Icons/README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
You can place these icons somewhere, for example in `/var/usrlocal/share/icons` and use them for a cooler launcher icon!
You can place these icons somewhere, for example in `/var/usrlocal/share/icons`
and use them for a cooler launcher icon!

[see this thread](https://discussion.fedoraproject.org/t/kinoite-logo-for-kickoff/107398)
[see this
thread](https://discussion.fedoraproject.org/t/kinoite-logo-for-kickoff/107398)

![How it looks on Kinoite](https://us1.discourse-cdn.com/fedoraproject/optimized/3X/b/1/b11590665b1a3e07027e6db62f074abda07bd282_2_690x130.jpeg)
![How it looks on
Kinoite](https://us1.discourse-cdn.com/fedoraproject/optimized/3X/b/1/b11590665b
1a3e07027e6db62f074abda07bd282_2_690x130.jpeg)

### Sources

[Asahi Linux icon](https://raw.githubusercontent.com/AsahiLinux/artwork/refs/heads/main/logos/svg/AsahiLinux_logo.svg)
[Asahi Linux
icon](https://raw.githubusercontent.com/AsahiLinux/artwork/refs/heads/main/logos
/svg/AsahiLinux_logo.svg)

The CoreOS and Atomic Desktop Logos were extracted from distros, so copyright goes to the Fedora Project.
The CoreOS and Atomic Desktop Logos were extracted from distros, so copyright
goes to the Fedora Project.
26 changes: 18 additions & 8 deletions Fedora Atomic Desktops/KDE/SDDM Themes.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
If you want to install SDDM themes on Fedora Atomic Desktops, there are multiple ways to do so.
If you want to install SDDM themes on Fedora Atomic Desktops, there are
multiple ways to do so.

By default, the SDDM themes are installed in a system-reserved location, which also breaks global themes.
By default, the SDDM themes are installed in a system-reserved location, which
also breaks global themes.

## Edit the config file

Discussion Topics
- [Topic 1](https://discussion.fedoraproject.org/t/another-way-to-customize-sddm-under-kinoite/37773)
- [Topic 2](https://discussion.fedoraproject.org/t/sddm-themeing-or-lack-thereof/32695/2)
- [Topic
1](https://discussion.fedoraproject.org/t/another-way-to-customize-sddm-under-ki
noite/37773)
- [Topic
2](https://discussion.fedoraproject.org/t/sddm-themeing-or-lack-thereof/32695/2)

Create an override conf where you change the `ThemeDir` variable:

Expand All @@ -15,11 +20,14 @@ runo sh -c '
mkdir -p /var/usrlocal/share/sddm/themes
cp -R /usr/share/sddm/themes/* /var/usrlocal/share/sddm/themes/
mkdir /etc/sddm.conf.d
echo "ThemeDir='/var/usrlocal/share/sddm/themes'" > /etc/sddm.conf.d/mutable-themes.conf
echo "ThemeDir='/var/usrlocal/share/sddm/themes'" >
/etc/sddm.conf.d/mutable-themes.conf
'
```

This will make the KDE Settings work, you can install custom themes, but you will not get theme updates by the distribution. To get updated themes from the distribution, use
This will make the KDE Settings work, you can install custom themes, but you
will not get theme updates by the distribution. To get updated themes from the
distribution, use

```
run0 cp -Rf /usr/share/sddm/themes/* /var/usrlocal/share/sddm/themes/
Expand All @@ -41,10 +49,12 @@ cargo init
cargo install sddm2rpm
```

Download an RPM theme archive, and convert it using the tool. Then layer the RPM using `rpm-ostree install theme.rpm`
Download an RPM theme archive, and convert it using the tool. Then layer the
RPM using `rpm-ostree install theme.rpm`

## The real solution

[see this Github issue on SDDM to support multiple theme directories](https://github.com/sddm/sddm/issues/1561)
[see this Github issue on SDDM to support multiple theme
directories](https://github.com/sddm/sddm/issues/1561)

[the matching merge request](https://github.com/sddm/sddm/pull/1739)
15 changes: 10 additions & 5 deletions Fedora Atomic Desktops/auto-updates/Distrobox-Updater.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
Distrobox makes using Podman containers of various Linux Distributions very easy.
Distrobox makes using Podman containers of various Linux Distributions very
easy.

Normally those containers are not updated using package managers, but by pulling new complete container images.
Normally those containers are not updated using package managers, but by
pulling new complete container images.

For the use case of installing apps inside containers, we need to use the builtin package managers though.
For the use case of installing apps inside containers, we need to use the
builtin package managers though.

Distrobox makes this extremely easy:

```
distrobox upgrade --all
```

We can create a simple systemd service that does this every 3 days automatically:
We can create a simple systemd service that does this every 3 days
automatically:

```
sudo cat > /etc/systemd/system/distrobox-upgrade.service <<EOF
Expand Down Expand Up @@ -41,4 +45,5 @@ systemctl enable --now distrobox-upgrade
- `OnActiveSec=3d`: after running once, it waits 3 days to run again
- `Persistent=true`: if that delay is missed, it will run as soon as it boots up

This will make sure that the service runs in the background, without annoying you.
This will make sure that the service runs in the background, without annoying
you.
Loading

0 comments on commit 9fe29eb

Please sign in to comment.