ラップトップの i3 構成: パフォーマンスを 100% に下げるにはどうすればよいですか?

最近、私のラップトップの性能が十分ではないことに気づきました。 Vim (+ 20 個のプラグイン)、VSCode (+ 同数の拡張機能)、Google Chrome (+ 20 個のタブ) など、すべてを統合するには十分な機能がありません。 4 GB の RAM を搭載したラップトップではよくある問題のようですが、私は諦めませんでした。 私はラップトップが大好きです。なぜなら、ラップトップはコンパクトで、どこでもバッテリー電源で動作できるからです。 余分な RAM を解放し、エネルギー効率を高める方法を理解する必要がありました。

ラップトップの i3 構成: パフォーマンスを 100% に下げるにはどうすればよいですか?

すぐに設定が必要な場合は、「インストールの解析」セクションまで下にスクロールしてください。

オペレーティングシステム

RAMとバッテリーの消費量が最小限のOSが必要なので、 アーチのLinux。 古典的で、何も新しいものではありません。 彼のリポジトリを使用すると、多くの不必要な作業を自動化できます。 AUR さらに時間を節約できます。

ウィンドウマネージャー

本格的な環境ではなく、ウィンドウマネージャーを使用することにしました。 私はスニーカー (KDE) が好きですが、かなり多くのライブラリと依存関係を取得するため、それでもかなりの量を消費します。 まあ、DE自体は色々な不要なウィジェットのせいでかなりの消費をします。

ラップトップの i3 構成: パフォーマンスを 100% に下げるにはどうすればよいですか?

インストールを分解しましょう

まず、すべてのメインパッケージをインストールする必要があります(何かを設定する必要があります)

sudo pacman -Sy --noconfirm i3 i3-gaps base-devel rofi okular feh vim code picom kitty ranger git xdotool xautolock i3lock-color scrot imagemagick rxvt-unicode urxvt-perls

すべてがどのように機能するかを示す大まかな図は次のとおりです

ラップトップの i3 構成: パフォーマンスを 100% に下げるにはどうすればよいですか?

どのパッケージが何のために必要なのか?

パッケージ
必要なもの

xwinwrap
拡張子が .gif のファイルをアニメーション壁紙としてインストールする必要があります

ポリバー
ウィンドウマネージャーにトップバーを表示するために必要です

i3
ウィンドウマネージャー自体

i3-gap
ウィンドウマネージャー拡張機能

ベース開発
ポリバーの取り付けに必要なコンポーネント

ロフィ
アプリケーションランチャー

大丈夫
ドキュメントビューア

ザトゥラ
ドキュメント ビューア (多くの拡張機能はサポートしていませんが、よりミニマルです)

FEH
写真を表示し、背景画像を設定するためのプログラム

活力
メインエディター

コード
追加のエディタ

ピコム
Composer (影、透明度、背景のぼかしを作成するプログラム)

キティ
メインターミナル

ウルクスブト
追加端子

レンジャー
ファイルマネージャー

git
バージョン管理システム

xdotool
スクリプトの開発とウィンドウとの対話に役立つユーティリティ

xオートロック
非アクティブ時にコンピュータをロックし、i3-lock を起動するユーティリティ

i3ロックカラー
i3lockの改良版。 コンピュータをロックしてパスワードを入力するにはプログラムが必要です

スクロール
スクリーンショットを撮るためのシンプルなアプリ

imagemagick
画像を操作するのに役立つプログラム (事前に画像をぼかしたり、変換したり、解像度を変更したりする)

i3の構成

i3 - 多くのリソースを消費しないウィンドウ マネージャー。したがって、他の通常のウィンドウ マネージャーを「エミュレート」するのに役立ちます。 (もちろん、タイル機能も付属しています。これは、画面の空き部分全体にアプリケーションを開くウィンドウ マネージャーの機能です。)

構成を提供します i3 初心者でもすべて理解できるように部分的に説明します。 最も重要なボタンから始めましょう $Mod。 と対話する役割を果たします。 i3。 すべての主要なホットキーはそれを通過します。

### Tweaks ###
# Set main key (Win)
set $mod Mod4

次に、クリックされたときにマウスでウィンドウを移動するようにウィンドウマネージャーに教えます。 $mod

# Press MOD key and click on mouse to move your window
floating_modifier $mod

# Focus doesn't follow the mouse
focus_follows_mouse no

私たちのアプリケーションと、それに依存するアプリケーションのフォントをインストールします。 i3

# Fonts
font pango: JetBrains Mono 10

私のアイデアは、最初はすべての窓を作ることでした 飛行 (結局のところ、これは非常に便利です)。 明確にするために: i3 たくさんの種類があります ドッキング ウィンドウ (ティリング、フルスクリーン、タブ、フロート、スタッキング) はどれもさまざまな状況で便利ですが、そうする意味がわかりません すべて 画面全体を埋めるウィンドウ。 押されたときに記入させたほうがいいです $mod + fですが、デフォルトでは空中に停止します。これは、次のコード部分で実行したことです。

# Maximum width for floating windows
floating_minimum_size 400 x 350
floating_maximum_size 1800 x 900

# (1920 - 10)/2 and (1080 - 10)/2
for_window [class=".*"] floating enable
for_window [class=".*"] resize set 955 535
for_window [class=".*"] focus

表現に惑わされないように (1920 - 10)/2 and (1080 - 10)/2 これは、各ウィンドウが画面の 5 分の 5 を占め、ちょうど XNUMX ピクセル (四辺で XNUMX ピクセル) の (相互に) インデントが存在することを意味します。

次に、すべてのメイン アプリケーションをバインドしましょう。 すべてのホットキーはこのスキームと一致しようとします

ラップトップの i3 構成: パフォーマンスを 100% に下げるにはどうすればよいですか?

## Keyboard Settings ##
# Apps
bindsym $mod+Return exec kitty
bindsym $mod+Mod1+r exec "kitty sh -c 'ranger'"
bindsym $mod+Mod1+g exec google-chrome-stable
bindsym $mod+Mod1+c exec code
bindsym $mod+Mod1+v exec dolphin
bindsym Print exec spectacle

また、私たちが何も考えずに実行するすべての主要な機能をバインドします。

# System / Volume
bindsym XF86AudioMute "exec amixer -D pulse sset Master toggle && notify-send "Volume" "Sound is (un)muted" --urgency low"
bindsym XF86AudioRaiseVolume "exec amixer -D pulse sset Master 5%+ && notify-send "Volume" "Volume added +5%n    Volume level is now $(amixer -D pulse get Master | awk -F 'Left:|[][]' 'BEGIN {RS=""}{ print $3 }')" --urgency low"
bindsym XF86AudioLowerVolume "exec amixer -D pulse sset Master 5%- && notify-send "Volume" "Volume added -5%n    Volume level is now $(amixer -D pulse get Master | awk -F 'Left:|[][]' 'BEGIN {RS=""}{ print $3 }')" --urgency low"

# System / Brightness
bindsym XF86MonBrightnessDown exec xbacklight -dec 5
bindsym XF86MonBrightnessUp exec xbacklight -inc 5

# Moving from one window to another
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right

# Choose one of your workspaces
bindsym $mod+1 workspace $workspace1
bindsym $mod+2 workspace $workspace2
bindsym $mod+3 workspace $workspace3
bindsym $mod+4 workspace $workspace4

# Move window to the workspace
bindsym $mod+Shift+1 move container to workspace $workspace1
bindsym $mod+Shift+2 move container to workspace $workspace2
bindsym $mod+Shift+3 move container to workspace $workspace3
bindsym $mod+Shift+4 move container to workspace $workspace4

## Floating manipulation ##
# Make window floating
bindsym $mod+f floating toggle
# Change focus
bindsym $mod+Shift+f focus mode_toggle

# Move windows
bindsym $mod+Shift+h move left 20px
bindsym $mod+Shift+j move down 20px
bindsym $mod+Shift+k move up 20px
bindsym $mod+Shift+l move right 20px

# Resizing Windows
bindsym $mod+Ctrl+l resize shrink width 10 px or 10 ppt
bindsym $mod+Ctrl+k resize grow height 10 px or 10 ppt
bindsym $mod+Ctrl+j resize shrink height 10 px or 10 ppt
bindsym $mod+Ctrl+h resize grow width 10 px or 10 ppt

# Make window fullscreen
bindcode 95 fullscreen toggle

# Reload Configuration
bindsym $mod+p reload

# Kill a window
bindsym $mod+x exec xdotool getwindowfocus windowkill

自動開始セクションを作ってみましょう

### Autostart ###
# Lockscreen after 10min delay
exec --no-startup-id "$HOME/.config/i3/lockscreen"
# Convert background gif to jpg
exec --no-startup-id convert -verbose $HOME/.config/i3/{gif.gif,gif.jpg}
# Generate Colorscheme
exec_always --no-startup-id wal -i $HOME/.config/i3/gif-0.jpg
# Compositor
exec_always --no-startup-id "killall -q picom; picom --config $HOME/.config/picom.conf"
# Language
exec --no-startup-id setxkbmap -model pc105 -layout us,ru -option grp:win_space_toggle
# Dunst
exec --no-startup-id dunst
# Kitty
exec kitty
# Dropbox
exec --no-startup-id dropbox &
# Polybar
exec_always --no-startup-id $HOME/.config/polybar/launch.sh
# Cursor
exec_always --no-startup-id xsetroot -cursor_name left_ptr

i3-gap は、多くの新機能を追加した i3 ビルドです。 その XNUMX つはインデント (ギャップ) を追加することで、視覚的に非常に見栄えが良くなります。

### i3-gaps ###
# Borders for windows
for_window [class=".*"] border pixel 5

# Gaps for i3bar
for_window [class="i3bar"] gaps outer current set 10

# Gaps
gaps inner 10
gaps outer 4

### Topbar and color theme ###
# Color theme of borders
client.focused              #bf616a #2f343f #d8dee8 #bf616a #d8dee8
client.focused_inactive     #2f343f #kf343f #d8dee8 #2f343f #2f343f
client.unfocused            #2f343f #2f343f #d8dee8 #2f343f #2f343f
client.urgent               #2f343f #2f343f #d8dee8 #2f343f #2f343f
client.placeholder          #2f343f #2f343f #d8dee8 #2f343f #2f343f
client.background           #2f343f

どうしたの?

その結果、i3 上ではかなりミニマルなアセンブリになり、ラップトップ上で非常に高速に動作し、優れたパフォーマンスが得られます。

ラップトップの i3 構成: パフォーマンスを 100% に下げるにはどうすればよいですか?

たくさんの設定を書いたので (スクリーンショットではっきりと確認できます)、それらはリポジトリにあります。 素晴らしい i3.

さらにいくつかのスクリーンショット

ラップトップの i3 構成: パフォーマンスを 100% に下げるにはどうすればよいですか?

ラップトップの i3 構成: パフォーマンスを 100% に下げるにはどうすればよいですか?

ラップトップの i3 構成: パフォーマンスを 100% に下げるにはどうすればよいですか?

出所: habr.com

コメントを追加します