OpenSUSE Leap 15.5 で chrome remote desktop 2024年版
以前もOpenSUSE用のchrome remote desktopの記事を書きましたが、最近はその方法でうまく起動できなくなっていたので、最新版(2024年2月)を自分用のメモとして残しておきます。 過去記事は以下です。
OpenSUSE で chrome-remote-desktop host を自動起動 - Harukaのnote
目次
- 目次
- 事前に必要なソフトウェアの準備
- Display Managerの変更
- pam権限の変更
- chrome remote desktopのインストール
- chrome remote desktopの起動
- エラーが発生する場合
事前に必要なソフトウェアの準備
以下のソフトウェアは必要なので、インストールしておきます。
Google Chrome
Google Chromeの公式サイトより、rpm
版をインストールします。
alien
.deb
パッケージ(Ubnutu/Debian用)を.rpm
パッケージに変換するためのソフトウェアです。
以下のOpenSUSEのsoftwareページからバイナリパッケージを直接取得するを選択し、15.5用のバイナリパッケージをインストールします。
このとき、「依存関係に問題があります」と表示されますが、リポジトリを追加しないバイナリインストールのときは大抵言われますので、「無視」で大丈夫です。
https://software.opensuse.org/download/package?package=alien&project=system%3Apackagemanager:embed:cixdpyinfote
その他依存するソフトウェア
以下のパッケージも必要ですが、デフォルトのリポジトリに含まれているのでzypper install
で一括インストールします。
sudo zypper install xorg-x11-server-Xvfb cairo libdrm-tools gtk3 libpango-1_0-0 pkexec xdpyinfo xdg-utils python3-pyxdg lightdm
Display Managerの変更
デスクトップにGnomeを使っている場合、Gnome標準のgdm
はchrome remote desktopと相性が悪いので、変更する必要があります。
今回は、先程インストールしたlightdm
に切り替えます。yast経由で簡単に変更できます。
使用したいdmの番号を入力してEnterキーを押します。
sudo update-alternatives --config default-displaymanager 選択肢 パス 優先度 状態 ------------------------------------------------------------ 0 /usr/lib/X11/displaymanagers/gdm 25 自動モード 1 /usr/lib/X11/displaymanagers/console 5 手動モード 2 /usr/lib/X11/displaymanagers/gdm 25 手動モード * 3 /usr/lib/X11/displaymanagers/lightdm 15 手動モード 4 /usr/lib/X11/displaymanagers/xdm 10 手動モード 現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してください: 3
pam権限の変更
chrome remote のpam権限を変更します。
sudo vim /etc/pam.d/chrome-remote-desktop
以下のように変更します。
# Copyright (c) 2012 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. #@include common-auth #@include common-account #@include common-password #session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close #session required pam_limits.so #@include common-session #session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open #session required pam_env.so readenv=1 #session required pam_env.so readenv=1 user_readenv=1 envfile=/etc/default/locale # 以下を追加 auth required pam_permit.so account required pam_permit.so password required pam_permit.so session required pam_permit.so session optional pam_umask.so
ここで、pam権限とdmの変更を反映させるために一度、再起動します。
chrome remote desktopのインストール
chrome remote dektopのサイトから、「リモート アクセスの設定」を押して.deb
のパッケージを取得します。
remotedesktop.google.com
rpmに変換
alienを使って.rpm
に変換します。
sudo alien -r --scripts ./chrome-remote-desktop_current_amd64.deb
インストール
rpmコマンドを使ってインストールします。
120.0.6099.24-2
の部分はバージョンなので、都度変化します。
sudo rpm -ivh --replacefiles ./chrome-remote-desktop-120.0.6099.24-2.x86_64.rpm
設定ファイルの準備
ホームに設定ファイルを作成します。
vim ~/.chrome-remote-desktop-session
以下のように設定します。これはgnomeの例で、cinnamonを使う場合はexec /usr/bin/cinnamon-session
のように変更します。
export $(dbus-launch) exec /usr/bin/gnome-session
画面解像度を指定したい場合、以下のようなファイルを作成します。
mkdir ~/.config/chrome-remote-desktop vim ~/.config/chrome-remote-desktop/Size
以下のように書くことで任意の解像度に設定できます。
1920x1080
Groupの追加
groupにchrome-remote-desktop
を追加し、そこに自分を追加します。
sudo groupadd chrome-remote-desktop
sudo usermod -a -G chrome-remote-desktop $USER
chrome remote desktopの起動
以前はsystemctl
で起動していましたが、今はhttps://remotedesktop.google.com/headlessより、起動コマンドを取得するようです。
「開始」→「次へ」→「承認」と進め、Debian Linux用のコマンドをコピーして、ターミナルより実行します。
DISPLAY= /opt/google/chrome-remote-desktop/start-host --code="XXXXXX" --redirect-url="https://remotedesktop.google.com/_/oauthredirect" --name=$(hostname)
--code="XXXXXX"
の部分が時間により変化するので、失敗したときは再度サイトにアクセスして発行します。
確認
https://remotedesktop.google.com/accessからマシンがオンラインとなっていることが確認できたら成功です。
エラーが発生する場合
大抵は依存するソフトウェアが足りていない状況です。 以下のコマンドでログを確認して、足りないソフトウェアを追加します。
sudo journalctl | grep chrome-remote-desktop
NZXT Function Mini TKLのレビュー
また更新間隔が空いてしまいました。
今回は、最近買ったNZXTのキーボードを大変気に入ったので、紹介したいと思います。 NZXTって有名なブランドと思いますが、Amazonや価格.comのレビューが全然ないです。 海外のレビューがほとんどですが、評判は良さそうだったので購入しました。
NZXTとは
すでにPCケース等で十分に有名かと思いますが、一応紹介します。
「NZXT」はアメリカの企業で、カスタムPCケース、冷却システム、関連アクセサリーを製造しており、特にゲーマーやPC愛好家に人気です。彼らの製品はユニークなデザインと高い品質で知られています。
自分はこのキーボードから入ったのでレアケースと思います。 自作PCではいつもかっこいいケースだな、と感じつつまだ購入したことはありませんでした。 ちなみに、現在はLian Li Alpha 550という激重の3面ガラスのケースを使用しています。
NZXTのキーボード Functionシリーズ
NZXTの「Function」シリーズとは、メカニカル構造の機械式キーボードです。このシリーズにはフルサイズ、テンキーレス(TKL)、MiniTKLなどの異なるサイズがあり、カスタマイズに重点を置いて設計されています。 MiniTKLブラックの価格は¥10,700でした。 優先のみでMiniTKL以外にはリストレストが付属します。 アメリカで購入する場合はすべてカスタマイズすることができ、軸やケーブルの色を指定してオーダーできます。 国内代理店はタイムリーで、Gateron pro赤軸と黒の編み込みケーブルが付属しています。 筐体はホットスワップに対応していて、5pinタイプのCherryMX互換の軸と交換することができます。 timely.ne.jp
レビュー
気に入ったので、ホワイトとブラックの両方を購入しました。 既にどちらもキーキャップは交換済みです。
まず、デザインが非常にかっこいいです。白筐体に黒のキーキャップはモダンです。 黒筐体に黒のキーキャップも落ち着いたデザインで道具としてのかっこよさがあります。 筐体表面はアルミプレートをマットに塗装したもので、高級感があります。 また、白を選んでもプラスチックと比較して焼けや黄ばみに強そうな点も良さそうです。 白を選ぶときにそれが原因でためらうことが多かったので助かります。
左側面に以下の機能があります。
- ボリュームノブ
- ミュートボタン
- Winキー無効ボタン
- RGB光量調節ボタン
ゲーミング用途や一般用途でも役立つ機能が有り、ボリュームノブはデザイン的にも良いアクセントになっています。 多機能でボタンがたくさんあっても使いこなせないので、上記ボタン量が自分にはちょうど良いです。
価格帯はFILCOのMajestouchシリーズ(有線)と同等か少し安いくらいの価格帯の製品かと思います。 白のほうが人気のようで、オンライン価格が若干高い傾向です。 黒の場合はMiniTKLであればAmazonで約1万円で購入できます。 安くて中華メーカー以外のメカニカルキーボードでホットスワップ対応となると、なかなか市場に無い製品です。
打鍵感はGateron赤軸でスムーズです。若干大きめの反響音が鳴ります。 キーキャップはXVXのキーキャップに変更していますが、標準はABSなのでテカリがあります。
カスタマイズ
キーキャップ
キーキャップは上の画像のように、XVXのPBTキーキャップに変更しています。
側面印字だと、印字が目立たなくてスマートな印象と思います。
キースイッチ(軸)
軸は標準がGateron Pro 赤軸で、白は自宅でゲームにも使用するのでそのまま運用しています。
黒はEPOMAKER Sea Salt リニア メカニカル軸に変更しています。 赤軸よりはほんの少し打鍵感があり、しっとり感があるように感じます。 こちらの方がコーディング時に気持ちが良いので研究室で使っています。 ホットスワップだとこのあたりを好みに変更できるのが良いです。 個人的には、e元素やYunzii等のように筐体が安すぎると、ホットスワップ対応でも気分が乗らない(わざわざ自分用にチューニングする気が起きない)ので、そのベースとしてちょうどよい値段と感じました。
NZXT CAM
NZXTの管理ソフトウェアでRGBやキーの変更ができます。 キー変更できる自由度が高く、変更やスワップができないキーが少ないのが良いと思います。 以前ROCCAT VULCAN Mini IIを使用していたときは、Caps Lockキーに他のキーを割り当てられない点に不満がありました。 しかし、本製品では割当が可能なのでESCを割り当てています。
特に気に入った点
特に気に入った点をまとめます。
- デザイン:ゲーミング過ぎず、でもLEDもあってゲーミングぽくできる。特にアルミ白筐体がかっこいい。左側のボリュームノブのアクセントも。
- キーマップの自由度が高い:sshやWSL2でVimを使うことが多いのでコーディング中はCaps Lock→ESCにしたい。
- テンキーレス:テンキー不要。コンパクトだがFunキーは独立の75%キーボード。
- ホットスワップ対応:軸を自由に変更可能。キーキャップも汎用の十字タイプ。
- サイドのボタン:ミュートやWinキーロックなど、十分な機能
残念な点
残念な点は以下です。
- 金属反響音:そこそこあります。
- 価格:求める機能によっては高いと感じる人がいるかも。無線ではなく、ラピッドトリガー対応でもない。
- ABSキーキャップ:テカりやすい。
おわりに
NZXTのケースは有名ですが、キーボードのレビューがあまりに見られなかったので今回レビューして見ました。 今回でNZXTというブランドをめちゃくちゃ気に入ったので、次のPCケースはNZXTにしたいと思います。 RazerやLogicool等の他の大手ブランドのキーボードほどの知名度はありませんが、物は良いので今後も展開していってほしいと思います。
NZXTのアンバサダーの動画しか見つからないキーボードのレビューでした(笑) ただの備忘録ブロガーですが、自分もNZXTのアンバサダーにしてください…。
ROG Zephyrus G14 (2022) Radeon GPUでStable Diffussion WEB UIを実行
久しぶりのブログ更新になりました。
今回は自分のノートPCであるROG Zephyrus G14 (2022) GA402にLinuxをデュアルブートして、Stable Diffusion WEB UIの実行が確認できたので残して置きたいと思います。
ROG Zephyrus G14 (2022) はノートでは珍しくRadeon RX6700s(VRAM: 8GB)を搭載するPCです。そのためNVIDIAのCUDAではなくAMDのROCm(CUDAに相当するライブラリ)を使用する必要があります。
今回の備忘録はROG Zephyrus G14に限らず、Radeon eGPUを搭載するデスクトップでも同等の手順で再現できるかと思います。
前提として、WSL等のWinodws環境では実行していません。がLinuxの方が対応しているためです。 そのため、実行環境はデュアルブートしたManjaro Linuxとなります。ちなみにOpenSUSE Leap 15.5で試しましたがうまくROCm環境を整えることができませんでした…
「個人PCはUbuntu以外のLinuxを使う」という縛りプレイを自分に課しているため、Ubuntuは試していません。申し訳ございません。
Manjaro Linuxのインストール(デュアルブート)
Manjaroのインストール記事はネット上に多数存在するため、そちらを参考に願います。 もしくは多少古いですが過去記事(Windows 11 と Manjaro をデュアルブートする際のメモ - Harukaのnote)を参照ください。
手順:
- UEFIでSecure bootをdisableに変更
- Windows 11のコントロールパネルから、パーティション設定を呼び出して空き容量を作成(プライマリパーティションの縮小)
- Rufus等でManjaroのLive USBを作成
- Shiftを押しながら再起動 → 回復メニュー → UEFIの起動(起動時のDel長押しでUEFIに入れなかったため)
- F8でboot menuに入りUSBを選択してManjaroのLive USBを起動
- 空けたスペースにManjaroをインストール
ROCmの準備
ROCmのインストール
sudo pacman -Sy && sudo pacman -S rocm-hip-sdk rocm-opencl-sdk rocm-llvm rocm-hip-runtime rocminfo
参考: stable-diffusion-webuiをインストールする (Arch Linux, AMD ROCm)
環境変数の設定
環境変数にHSA_OVERRIDE_GFX_VERSION=10.3.0
を設定します。
HSA_OVERRIDE_GFX_VERSION=10.3.0
はgfx1030を意味し、gfx1030とは異なるコードネームを持つRDNA2 GPU(gfx1031、gfx1032など)を正しくROCmを実行できるようにします。RX6700sはgfx1032に該当します。
sudo vim /etc/environment # 以下を記入 HSA_OVERRIDE_GFX_VERSION=10.3.0
参考: Does ROCm support the RX 6700S (laptop GPU) · Issue #1756 · RadeonOpenCompute/ROCm · GitHub
pyenvの設定
Python venvを使ってもいいですが、自分はpyenvの方が好みのためインストールします。
まず、依存ライブラリをインストールします。
sudo pacman -S git readline sqlite3 zlib openssl libffi gcc tk cairo pkgconf make cmake
pyenv、pyenv-virtualenv、pyenv-updateを以下の長いコマンドでインストールします。
git clone https://github.com/yyuu/pyenv.git ~/.pyenv && git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv && git clone https://github.com/yyuu/pyenv-update.git ~/.pyenv/plugins/pyenv-update
pathを通します。最新のManjaroはデフォルトシェルがzshになっていたので、.zshrc
を編集します。
sudo vim ~/.zshrc # 以下を追記 # pyenv settings export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init --path)" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)"
pathを反映させます。
source ~/.zshrc
pyenvのインストールが完了したので、pyenvを使ってpython 3.10をインストールします。
pyenv install -list | grep 3.10 # インストール可能な3.10系一覧を取得 ︙ 3.10.11 3.10.12 3.10.13 ←最新 ︙
python 3.10.13をインストールします。
pyenv install 3.10.13
3.10.13をもとにStable Diffusion用の仮想環境を作成します。
pyenv virtualenv 3.10.13 sd-webui
この手順とその他のpyenvの概要は以下の過去記事にあります。
参考: Linux(OpenSUSE)にPyenvをインストールする - Harukaのnote
Stable Diffusionの実行
Stable Diffusionを落としてきて、ディレクトリを移動します。
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui cd stable-diffusion-webui
ここで作った仮想環境(sd-webui
)を使えるようにします。
pyenv local sd-webui
pip等を最新の状態に更新し、pytorchのROCm版をインストールします。
python -m pip install --upgrade pip wheel && pip install torch torchvision --index-url https://download.pytorch.org/whl/rocm5.4.2
WEB UIの起動
以下のコマンドでWEB UIが実行されます。
TORCH_COMMAND='pip install torch torchvision --index-url https://download.pytorch.org/whl/rocm5.4.2' python launch.py --precision full --no-half
http://127.0.0.1:7860
にアクセスすると以下のような画面になります。
以上です。うまく動かせられましたら幸いです。 ノートPC用AMD GPUというニッチな環境下のため、なかなか情報がなく大変でしたがManjaroはデフォルトリポジトリにROCmがあったりとサポートが行き届いている印象です。
GPU対応のDockerイメージに対してリモートデスクトップ(noVNC)
研究室の後輩のために、cuda対応かつリモートデスクトップ可能なDockerイメージを作成したので公開します。
Docker Hub: haruka0000/cuda_vnc
以下を参考に作成しました。
ブラウザで動かせる「Linux」の「Ubuntu 22.04」のデスクトップ版(Xfce)のDockerイメージ「docker-ubuntu-desktop」を作りました - Qiita
事前にnvidia-docker2がインストールされている必要があります。
以下のコマンドを実行します。
sudo docker run -it --gpus all --platform=linux/amd64 -p 6080:6080 haruka0000/cuda_vnc:xfce_v0.1
以下のリンクを開くと接続できると思います。
http://localhost:6080/vnc.html
内部でもpytorchでcudaが使えることは確認済みです。
これをサーバーのk8sでpodとして動かして、アクセスしたいのですがk8sは素人で全然わかりません… 知っている人がいましたら教えてください🙇
使用したDockerfileです。
FROM --platform=linux/amd64 nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04 ENV DEBIAN_FRONTEND=noninteractive ########################################### # VNCの設定 ########################################### RUN apt update -y && apt install --no-install-recommends -y xfce4 xfce4-goodies tigervnc-standalone-server novnc websockify sudo xterm init systemd snapd vim net-tools curl wget git tzdata RUN apt update -y && apt install -y dbus-x11 x11-utils x11-xserver-utils x11-apps RUN apt install software-properties-common -y RUN add-apt-repository ppa:mozillateam/ppa -y RUN echo 'Package: *' >> /etc/apt/preferences.d/mozilla-firefox RUN echo 'Pin: release o=LP-PPA-mozillateam' >> /etc/apt/preferences.d/mozilla-firefox RUN echo 'Pin-Priority: 1001' >> /etc/apt/preferences.d/mozilla-firefox RUN echo 'Unattended-Upgrade::Allowed-Origins:: "LP-PPA-mozillateam:jammy";' | tee /etc/apt/apt.conf.d/51unattended-upgrades-firefox RUN apt update -y && apt install -y firefox RUN apt update -y && apt install -y xubuntu-icon-theme RUN touch /root/.Xauthority EXPOSE 5901 EXPOSE 6080 CMD bash -c "vncserver -localhost no -SecurityTypes None -geometry 1024x768 --I-KNOW-THIS-IS-INSECURE && openssl req -new -subj "/C=JP" -x509 -days 365 -nodes -out self.pem -keyout self.pem && websockify -D --web=/usr/share/novnc/ --cert=self.pem 6080 localhost:5901 && tail -f /dev/null" ########################################## # 開発環境 ########################################### # Ubuntu のタイムゾーンの設定(一部ソフトのインストールに必要) RUN apt-get install -y tzdata ENV TZ=Asia/Tokyo # 必要なライブラリの追加 RUN apt-get install -y tmux gcc build-essential libssl-dev zlib1g-dev \ libbz2-dev libreadline-dev libsqlite3-dev \ wget curl llvm libncurses5-dev libncursesw5-dev \ xz-utils libffi-dev liblzma-dev python3 python3-pip # OpenCV に必要なソフトの追加 RUN apt-get install -y libgl1-mesa-dev libglib2.0-0 libsm6 libxrender1 libxext6 # フォントのインストール RUN apt-get install -y fonts-ipafont fonts-noto-cjk fonts-noto-mono # Anacondaの環境作成 ARG version="2023.03-1" RUN set -x && \ wget https://repo.anaconda.com/archive/Anaconda3-${version}-Linux-x86_64.sh && \ bash Anaconda3-${version}-Linux-x86_64.sh -b && \ rm Anaconda3-${version}-Linux-x86_64.sh ENV PATH $PATH:/root/anaconda3/bin RUN conda init bash RUN conda update conda # Python 3.9を使いたい場合 RUN conda create -n myenv python=3.9 RUN echo "conda activate myenv" >> ~/.bashrc ENV CONDA_DEFAULT_ENV myenv && \ PATH /root/conda/envs/myenv/bin:$PATH SHELL ["conda", "run", "-n", "myenv", "/bin/bash", "-c"] RUN python -m pip install --upgrade pip RUN python -m pip install torch
Windows11 + Radeon GPU + WSL2 + pyenv +PoetryでPyTorchを使う方法
DirectMLを使うとPyTorchでRadeon GPUが使えるという話を耳にしたので試してみました。 以下のサイトを参考に、Windows11 + Radeon GPU + WSL2 + pyenv +PoetryでPyTorchの環境を作成しました。 Anacondaはcondaとpipが混ざるのが嫌で普段使わないので、 公式には記載がないpyenv + poetryを試しました。ニッチな環境すぎるので自分のメモ程度に残します。 learn.microsoft.com
WSLの準備
WSLを事前に最新版にしてストアからUbuntuをインストールし、セットアップを完了します。
$ wsl --update
Pyenv
Pyenvは以下のページを参考にインストールします。 haruka0000.hatenablog.com
今回はPython 3.9で環境を作るので3.9.16をインストールします。
$ pyenv install 3.9.16
作業フォルダに移動し、pyenvのvirtualenvで環境を作り、有効化します。
$ pyenv virtualenv 3.9.16 test $ pyenv local test # Poetry
Poetryはpipでインストールします。
$ pip install --upgrade pip && pip install poetry
torch_directml
torch_directmlをpoetry経由でインストールします。以下のようなpyproject.toml
ファイルを作成します。
[tool.poetry.dependencies]
には公式(conda版)でインストールしていたパッケージを記載しています。
torchはCUDAを使わないのでCPUの方でいいらしく、[[tool.poetry.source]]
にCPU版のソースを指定しています。
CUDAも使いたい場合は普通のtorchを入れたらいいみたいです。
# pyproject.toml [tool.poetry] name = "Project Name" version = "0.1" description = "プロジェクトの説明" authors = ["自分の名前"] [tool.poetry.dependencies] python = ">=3.9,<3.10" torch = {version = "2.0.0", source = "torch_cpu"} torch-directml = "^0.2.0.dev230426" opencv-python = "^4.8.0.74" wget = "^3.2" tqdm = "^4.65.0" pyyaml = "^6.0" tensorboard = "^2.13.0" matplotlib = "^3.7.2" pandas = "^2.0.3" [[tool.poetry.source]] name = "torch_cpu" url = "https://download.pytorch.org/whl/cpu" priority = "explicit" [build-system] requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api"
以下のコマンドでtomlファイルに従ってパッケージをインストールします。
$ poetry install
GPUの確認
最後にGPUが読み込まれているかを確認します。
以下のファイルをtest.py
等の名前で作成してください。
# test.py import torch import torch_directml for n in range(torch_directml.device_count()): device = torch_directml.device(n) print(device, torch_directml.device_name(n))
$ python test.py 認識されたGPUの名前と製品名が表示されます。 privateuseone:0 AMD Radeon RX 6700S privateuseone:1 AMD Radeon(TM) Graphics
以上で終わりです。 なかなかスムーズに環境構築はできましたが、実際に学習や推論はしていないのでどの程度使えるかはわからないです。 今度、時間があれば試してみたいと思います。
UbuntuやWSLでafp, smbをマウント
Gioを使います。
Gioのインストール
$ sudo apt install gvfs-fuse gvfs-backends libglib2.0-bin
マウント
$ gio mount smb://192.169.XXX.XXX/home # afpの場合 $ gio mount afp://192.169.XXX.XXX/home #以下を入力 Enter user and password for share “home” on “192.169.XXX.XXX”: User [username]: Your Name Domain [WORKGROUP]: WORKGROUP Password: Your Password
アンマウント
$ gio mount -u smb://192.169.XXX.XXX/home
マウント一覧
$ gio mount -l
マウントされるパスは以下になります。
chrome os flexでLinuxソフト(Flatpak)
Flathub公式に従って、chrome os flexでのflatpak
環境を整えます。
最後の本体の再起動まで完了したら、以下のコマンドでgnome-software
をインストールします。
$ sudo apt update && sudo apt upgrade
$ sudo apt install gnome-software gnome-packagekit gnome-software-plugin-flatpak
インストールが完了したら、アプリ一覧からGNOMEソフトウェア(ショッピングバッグのアイコン)を起動すると、一般的なLinuxのソフトウェアに加えてFlathubのソフトウェアがインストールできるようになると思います。
これで、ソフトウェア版のSlackやDiscord等をインストールできるようになります。