最近我发现我的笔记本电脑不够强大。 它没有足够的能力将所有内容整合在一起:Vim(+ 20 个插件)、VSCode(+ 相同数量的扩展)、Google Chrome(+ 20 个选项卡)等。 这似乎是 4 GB RAM 笔记本电脑上的常见问题,但我并没有放弃。 我喜欢笔记本电脑,因为它们结构紧凑,而且可以在任何地方使用电池供电。 我只需要弄清楚如何释放额外的内存并提高能源效率。
如果您立即需要配置,请向下滚动到“解析安装”部分
操作系统
由于我需要一个消耗最少 RAM 和电池的操作系统,所以我选择了 Arch Linux。 经典,没什么新意。 他的存储库将使我能够自动化许多不必要的工作,并且 AUR 将节省更多时间。
窗口管理器
我决定使用窗口管理器而不是成熟的环境。 虽然我喜欢运动鞋(KDE),但它们仍然消耗很多资源,因为它们需要大量的库和依赖项。 好吧,由于各种不必要的小部件,DE 本身消耗了相当多的资源。
我们来拆解安装
首先我们需要安装所有主要软件包(我们需要配置一些东西)
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
这是一切如何运作的粗略图表
需要哪些软件包来做什么?
包
我们为什么需要
xwinwrap
需要安装扩展名为 .gif 的文件作为动画壁纸
多棒
需要在窗口管理器中显示顶栏
i3
窗口管理器本身
i3隙
窗口管理器扩展
基本开发
安装 Polybar 所需的组件
rofi
应用程序启动器
秋葵
文档查看器
迷走星球
文档查看器(不支持很多扩展,但更简约)
FEH
一个用于查看图片和设置背景图像的程序
VIM
主编
码
附加编辑
皮康
Composer(创建阴影、透明度、背景模糊的程序)
猫咪
主航站楼
虚拟机
附加航站楼
护林员
文件管理器
混帐
版本控制系统
工具
一个有助于开发脚本和与窗口交互的实用程序
自动锁
一个实用程序,可在不活动时锁定计算机并启动 i3-lock
i3lock-颜色
i3lock的改进版本。 需要该程序来锁定计算机并输入密码
rot
用于截屏的极简应用程序
ImageMagick的
一个可以帮助您与图片交互的程序(提前模糊它们、转换它们、更改分辨率)
配置 i3
i3 - 一个不消耗大量资源的窗口管理器,因此它对我们“模拟”其他常规窗口管理器很有用。 (当然,这项礼物还包括平铺功能 - 窗口管理器能够将应用程序打开到屏幕的整个空闲部分)
我将提供配置 i3 分成部分,这样即使初学者也能理解一切。 让我们从最重要的东西开始——按钮 $模组。 它的作用是与 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 个)的缩进(彼此之间)。
接下来,我们来绑定所有主要应用程序。 所有热键都尝试匹配此方案
## 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隙 是 i3 版本,添加了许多新功能。 其中之一是添加缩进(间隙),视觉上看起来非常好。
### 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 .
更多截图
来源: habr.com