Linux all users desktop

Desktop entries

The XDG Desktop Entry specification defines a standard for applications to integrate into application menus of desktop environments implementing the XDG Desktop Menu specification.

Contents

Basics

Each desktop entry must have a Type and a Name key and can optionally define its appearance in the application menu.

The three available types are:

Application Defines how to launch an application and what MIME types it supports (used by XDG MIME Applications). With XDG Autostart Application entries can be started automatically by placing them in specific directories. Application entries use the .desktop file extension. See #Application entry. Link Defines a shortcut to a URL . Link entries use the .desktop file extension. Directory Defines the appearance of a submenu in the application menu. Directory entries use the .directory file extension.

The following sections will roughly explain how these are created and validated.

Application entry

Desktop entries for applications, or .desktop files, are generally a combination of meta information resources and a shortcut of an application. These files usually reside in /usr/share/applications/ or /usr/local/share/applications/ for applications installed system-wide, or

/.local/share/applications/ for user-specific applications. User entries take precedence over system entries.

File example

Following is an example of its structure with additional comments. The example is only meant to give a quick impression, and does not show how to utilize all possible entry keys. The complete list of keys can be found in the freedesktop specification.

Key definition

All recognized entries can be found on the freedesktop site. For example, the Type key defines three types of desktop entries: Application (type 1), Link (type 2) and Directory (type 3).

  • Version key does not stand for the version of the application, but for the version of the desktop entry specification to which this file complies.
  • Name , GenericName and Comment often contain redundant values in the form of combinations of them, like:

This should be avoided, as it will only be confusing to users. The Name key should only contain the name, or maybe an abbreviation/acronym if available.

  • GenericName should state what you would generally call an application that does what this specific application offers (i.e. Firefox is a «Web Browser»).
  • Comment is intended to contain any useful additional information.

Validation

As some keys have become deprecated over time, you may want to validate your desktop entries using desktop-file-validate(1) which is part of the desktop-file-utils package. To validate, run:

Читайте также:  Активация windows 10 mac ключом

This will give you very verbose and useful warnings and error messages.

Installation

Use desktop-file-install(1) to install desktop file into target directory. For example:

Update database of desktop entries

To make desktop entries defined in

/.local/share/applications work, run the following command:

Icons

Common image formats

Here is a short overview of image formats commonly used for icons.

Support for image formats for icons as specified by the freedesktop.org standard.

Extension Full Name and/or Description Graphics Type Container Format Supported
.png Portable Network Graphics Raster No Yes
.svg(z) Scalable Vector Graphics Vector No Yes (optional)
.xpm X PixMap Raster No Yes (deprecated)
.gif Graphics Interchange Format Raster No No
.ico MS Windows Icon Format Raster Yes No
.icns Apple Icon Image Raster Yes No

Converting icons

This article or section is a candidate for merging with ImageMagick#Usage.

If you stumble across an icon which is in a format that is not supported by the freedesktop.org standard (like gif or ico ), you can use the convert tool (which is part of the imagemagick package) to convert it to a supported/recommended format, e.g.:

If you convert from a container format like ico , you will get all images that were encapsulated in the ico file in the form — .png . If you want to know the size of the image, or the number of images in a container file like ico you can use the identify tool (also part of the imagemagick package):

As you can see, the example ico file, although its name might suggest a single image of size 48×48, contains no less than 6 different sizes, of which one is even greater than 48×48, namely 128×128.

Alternatively, you can use icotool (from icoutils ) to extract png images from ico container:

For extracting images from .icns container, you can use icns2png (provided by libicns ):

Obtaining icons

Although packages that already ship with a .desktop file most certainly contain an icon or a set of icons, there is sometimes the case when a developer has not created a .desktop file, but may ship icons, nonetheless. So a good start is to look for icons in the source package. You can i.e. first filter for the extension with find and then use grep to filter further for certain buzzwords like the package name, «icon», «logo», etc, if there are quite a lot of images in the source package.

If the developers of an application do not include icons in their source packages, the next step would be to search on their web sites. Some projects, like i.e. tvbrowser AUR have an artwork/logo page where additional icons may be found. If a project is multi-platform, there may be the case that even if the linux/unix package does not come with an icon, the Windows package might provide one. If the project uses a Version control system like CVS/SVN/etc. and you have some experience with it, you also might consider browsing it for icons. If everything fails, the project might simply have no icon/logo yet.

Читайте также:  Современный браузер для windows виста 32 bit

Icon path

The freedesktop.org standard specifies in which order and directories programs should look for icons:

  1. $HOME/.icons (for backwards compatibility)
  2. $XDG_DATA_DIRS/icons
  3. /usr/share/pixmaps

Tools

gendesk

gendesk started as an Arch Linux-specific tool for generating .desktop files by fetching the needed information directly from PKGBUILD files. Now it is a general tool that takes command-line arguments.

Icons can be automatically downloaded from openiconlibrary, if available. (The source for icons is configurable).

How to use

  • Add gendesk to makedepends
  • Start the prepare() function with:
  • Alternatively, if an icon is already provided ($pkgname.png, for instance). The -n flag is for not downloading an icon or using the default icon. Example:
  • $srcdir/$pkgname.desktop will be created and can be installed in the package() function with:
  • The icon can be installed with:
  • Use —name=’Program Name’ for choosing a name for the menu entry.
  • Use —exec=’/opt/some_app/elf —some-arg —other-arg’ for setting the exec field.
  • See the gendesk project for more information.

lsdesktopf

lsdesktopf AUR can list available .desktop files or search their contents.

It can also perform MIME-type-related searches. See XDG MIME Applications#lsdesktopf.

fbrokendesktop

The fbrokendesktop AUR Bash script detects broken Exec values pointing to non-existent paths. Without any arguments it uses preset directories in the DskPath array. It shows only broken .desktop with full path and filename that is missing.

Tips and tricks

Run a desktop file from a terminal

If gtk3 is installed, run gtk-launch application.desktop .

Or install the dex package and run dex /path/to/application.desktop .

Hide desktop entries

Firstly, copy the desktop entry file in question to

/.local/share/applications to avoid your changes being overwritten.

Then, to hide the entry in all environments, open the desktop entry file in a text editor and add the following line: NoDisplay=true .

To hide the entry in a specific desktop, add the following line to the desktop entry file: NotShowIn=desktop-name

where desktop-name can be option such as GNOME, Xfce, KDE etc. A desktop entry can be hidden in more than desktop at once — simply separate the desktop names with a semi-colon.

Modify environment variables

To set environment variables, copy the .desktop file from /usr/share/applications/ to $XDG_DATA_HOME/ (

/.local/share/applications/ ) and edit the Exec= command line by prepending env. For example:

Источник

Linux List All Users In The System Command

Table of contents

Linux list all users account using the /etc/passwd file

In order to list all users on Linux, use the cat command as follows:
$ cat /etc/passwd
Here is what I see:

Each line in the file has seven fields as follows. For example, consider the following line:
vnstat:x:131:137:vnstat daemon. /var/lib/vnstat:/usr/sbin/nologin
Where,

  • No ads and tracking
  • In-depth guides for developers and sysadmins at Opensourceflare✨
  • Join my Patreon to support independent content creators and start reading latest guides:
    • How to set up Redis sentinel cluster on Ubuntu or Debian Linux
    • How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
    • How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
    • A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
    • How to protect Linux against rogue USB devices using USBGuard

Join Patreon

  • vnstat – The user name or login name.
  • x – Encrypted password is stored in the /etc/shadow file.
  • 131 – UID (user ID number)
  • 137 – Primary GID (group ID number)
  • vnstat daemon – GECOS. It may includes user’s full name (or application name, if the account is for a program), building and room number or contact person, office telephone number, home telephone number and any other contact information.
  • /var/lib/vnstat – Home directory for the user.
  • /usr/sbin/nologin – Login shell for the user. Pathnames of valid login shells comes from the /etc/shells file.

How to list users in Linux using pagers

Of course we can use pagers such as more/less commands as follows to view the /etc/passwd file:
$ more /etc/passwd
$ less /etc/passwd
Sample outputs:

Fig.01: List users using /etc/passwd

Linux list user names only

To list only usernames type the following awk command:
$ awk -F’:’ ‘< print $1>‘ /etc/passwd
Sample outputs:

Another option is to use the cut command:
$ cut -d: -f1 /etc/passwd

Get a list of all users using the getent command

To get a list of all Linux users you can type the following getent command:
$ getent passwd
$ getent passwd | grep tom
## get a list all users ##
$ getent passwd | cut -d: -f1
## count all user accounts using the wc ##
$ getent passwd | wc -l
One can use the compgen command on Linux to list users and other resources too:
$ compgen -u

Find out whether a user account exists in the Linux server

We can use above commands to see whether a user exists in the Linux machine as follows using the grep command:

A simplified command would be:

How to count user accounts in the Linux server

Want to get user accounts count on your system? Try the wc command as follows:
$ compgen -u | wc -l
$ getent passwd | wc -l

A Note About System and General Users

Each user has numerical user ID called UID. It is defined in /etc/passwd file. The UID for each user is automatically selected using /etc/login.defs file when you use useradd command. To see current value, enter:
$ grep «^UID_MIN» /etc/login.defs
$ grep UID_MIN /etc/login.defs
Sample outputs:

1000 is minimum values for automatic uid selection in useradd command. In other words all normal system users must have UID >= 1000 and only those users are allowed to login into system if shell is bash/csh/tcsh/ksh etc as defined /etc/shells file. Type the following command to list all login users:

To see maximum values for automatic uid selection in the useradd command, enter:
$ grep «^UID_MAX» /etc/login.defs
Sample outputs:

In other words, all normal system users must have UID >= 1000 (MIN) and UID /etc/shells file. Here is an updated code to get details:

Источник

Читайте также:  Solid works mac os
Оцените статью
Tutorial requirements
Requirements Linux
Root privileges No
Difficulty Easy
Est. reading time 5 mintues