(6 gnome 桌面)nixos 从0实现全集 梦中情os
nixos
#输入法
添加到 configuration.nix
nix
i18n.inputMethod = {
enabled = "fcitx5";
fcitx5.addons = with pkgs; [
fcitx5-chinese-addons
fcitx5-gtk
];
};
#启用桌面
添加到 configuration.nix
nix
services.xserver.enable = true;
services.xserver.displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome.enable = true;
#去掉一些不需要的包
这些包都会被排除
nix
environment.gnome.excludePackages = (with pkgs; [
gnome-photos
gnome-tour
yelp
]) ++ (with pkgs.gnome; [
gnome-maps
gnome-contacts
gnome-calendar
cheese # webcam tool
gnome-music
gnome-terminal
gedit # text editor
epiphany # web browser
geary # email reader
evince # document viewer
gnome-characters
totem # video player
tali # poker game
iagno # go game
hitori # sudoku game
atomix # puzzle game
]);
#一些可能的错
如果你使用了unstable 一些的包和配置名称可能会变化,比如 gnome-text-editor gedit=> pkgs.gedit
#构建
plasma6 目前还在unstable阶段,并且确实很多插件都有问题,建议先用plasma5
nix
sudo nixos-rebuild switch --option substituters https://mirror.sjtu.edu.cn/nix-channels/store
但是 国内源很多有有问题,所以最好还是科学上网
如果构建中出问题需要更换源码,可以运行下面的命令清理后重新运行
sh
sudo nix-collect-garbage -d
#进阶
flake + home-manager 管理gnome
#gnome-flake.nix
nix
{
options,
config,
lib,
pkgs,
...
}:
with lib;
with lib.plusultra; let
in {
services.xserver.enable = true;
services.xserver.displayManager.gdm = {
enable = true;
autoSuspend = false;
wayland = true;
};
services.xserver.desktopManager.gnome = {
enable = true;
extraGSettingsOverridePackages = [pkgs.gnome.gnome-settings-daemon];
};
# gsettings set org.gnome.desktop.wm.preferences resize-with-right-button true
services.udev.packages = with pkgs; [ gnome.gnome-settings-daemon ];
# 可以和 kde-connect 协议连接的 gnome 软件
programs.kdeconnect = {
enable = true;
package = pkgs.gnomeExtensions.gsconnect;
};
# 需要屏蔽的gnome 软件
environment.gnome.excludePackages = (with pkgs; [
gnome-photos
gnome-tour
yelp
gnome-text-editor
snapshot #摄像头Camera
xterm
]) ++ (with pkgs.gnome; [
simple-scan
gnome-maps
gnome-contacts
gnome-calendar
cheese # webcam tool
gnome-music
gnome-terminal
#gedit # text editor
pkgs.gedit
epiphany # web browser
geary # email reader
evince # document viewer
gnome-characters
totem # video player
tali # poker game
iagno # go game
hitori # sudoku game
atomix # puzzle game
]);
}
#gnome-home-manager.nix
nix
{ config, pkgs, ... }:
let
wallpaper = "${../../../pkgs/wallpaper-hm/pics/butterfly_surface_wooden_116623_3840x2160.jpg}";
avatar = "${../../../staticFile/avatar.jpg}";
in
{
imports = [
# ../../../pkgs/wallpaper-hm
];
home.file.".face".source = avatar; #头像
home.packages = with pkgs;[
gnome.gnome-tweaks
gnome.gnome-themes-extra
wl-clipboard
gnome.adwaita-icon-theme
pkgs.whitesur-gtk-theme
gnome.dconf-editor
gnomeExtensions.appindicator
#gnomeExtensions.dash-to-dock
gnomeExtensions.clipboard-history
#gnomeExtensions.kimpanel #输入法样式,注释掉 使用 fcitx5.pkgs的配置
gnomeExtensions.blur-my-shell
#gnomeExtensions.paperwm #不太好用 alt+tab 还可以
#gnomeExtensions.material-shell 不兼容最新版
gnomeExtensions.bing-wallpaper-changer
];
gtk = {
enable = true;
font = {
package = pkgs.cantarell-fonts;
name = "Cantarell 11";
};
#theme = {
# name = "vimix-dark-ruby";
# package = pkgs.vimix-gtk-themes.override {
# themeVariants = ["beryl"];#[doder|beryl|ruby|amethyst|jade|grey|all]
# colorVariants = ["dark"];
# tweaks = ["flat" "grey"];
# };
# };
#Adwaita-dark
#theme.name = "Adwaita-dark";
theme = {
name = "Adwaita-dark";
package = pkgs.gnome3.gnome-themes-extra;
};
#cursorTheme = {
# name = "Vanilla-DMZ";
# package = pkgs.vanilla-dmz;
#};
#iconTheme = {
# name = "Vanilla-DMZ";
# package = pkgs.vanilla-dmz; # gnome3.adwaita-icon-theme;
#};
iconTheme = {
package = pkgs.papirus-icon-theme;
name = "Papirus-Dark";
};
gtk3.extraConfig = {
#gtk-decoration-layout = "appmenu:";
#gtk-decoration-layout = "appmenu:minimize,close"; #去掉最大化按钮 没啥卵用
};
};
dconf = {
enable = true;
settings = {
"org/gnome/shell" = {
disable-user-extensions = false;
enabled-extensions = [
"[email protected]" #系统托盘
#"[email protected]"
"[email protected]" # 剪切板
#"[email protected]"
"blur-my-shell@aunetx" #毛玻璃
"[email protected]"
"[email protected]"
#"[email protected]"
#"[email protected]"
#"[email protected]"
#"[email protected]"
#"native-window-placement@gnome-shell-extensions.gcampax.github.com"
#"[email protected]"
"screenshot-window-sizer@gnome-shell-extensions.gcampax.github.com"
"[email protected]"
"[email protected]"
"[email protected]"
#"[email protected]"
#"[email protected]"
#"material-shell@papyelgringo"
];
favorite-apps = [
"firefox.desktop"
"chromium-browser.desktop"
"microsoft-edge.desktop"
"brave-browser.desktop"
"com.vivaldi.Vivaldi.desktop"
"terminator.desktop"
"org.gnome.Terminal.desktop"
"org.gnome.Nautilus.desktop"
"code.desktop"
"sublime_text.desktop"
"nixos-manual.desktop"
"gparted.desktop"
"idea-ultimate.desktop"
"rust-rover.desktop"
"goland.desktop"
"pycharm-professional.desktop"
"goland.desktop"
"jetbrains-toolbox.desktop"
"AnotherRedisDesktopManager.desktop"
"Hiddify-next.desktop"
"virtualbox.desktop"
];
};
"org/gnome/desktop/background" = {
# 壁纸
picture-uri = wallpaper;
picture-uri-dark = wallpaper;
};
"org/gnome/mutter" = {
# 新窗口在屏幕中心打开
center-new-windows = true;
};
"org/gnome/desktop/interface" = {
# gtk-theme="Adwaita-dark";
clock-show-date = true;
clock-show-weekday = true;
color-scheme = "prefer-dark";
};
#电源和做锁屏 ===============
"org/gnome/desktop/screensaver" = {
lock-delay = 0;
lock-enabled = true;
};
"org/gnome/desktop/session" = {
idle-delay = 0;
};
#gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'
#gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'nothing'
"org.gnome.settings-daemon.plugins.power" = {
sleep-inactive-ac-type = "nothing";
sleep-inactive-battery-type = "nothing";
};
"org/gnome/settings-daemon/plugins/power" = {
idle-dim = false;
power-button-action = "suspend";
sleep-inactive-ac-type = "nothing";
sleep-inactive-battery-timeout = 1800;
sleep-inactive-battery-type = "hibernate";
};
#电源和做锁屏 ===============
"org/gnome/desktop/wm/preferences" = {
resize-with-right-button = true; #win+右键 修改窗口大小
button-layout = "appmenu:minimize,close"; #去掉最大化按钮 没啥卵用
focus-mode = "sloppy";
};
"org/gnome/desktop/wm/keybindings" = {
close = [ "<Alt>F4" "<Super><Shift>q" ]; # 关闭窗口
show-desktop = [ "<Super>d" ]; # win+d 显示桌面壁纸
};
"org/gnome/settings-daemon/plugins/media-keys" = {
custom-keybindings = [
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/"
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/"
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/"
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3/"
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4/"
];
home = [ "<Super>e" ]; # 打开文件home 使用默认文件管理器
};
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
binding = "<Super>Return";
command = "terminator";
name = "Open terminator";
};
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = {
binding = "<Super>p";
command = "flameshot gui";
name = "Open flameshot gui";
};
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2" = {
binding = "<Shift><Ctrl>Escape";
command = "gnome-system-monitor";
name = "gnome-system-monitor";
};
# 毛玻璃效果 ============================================================ start
"org/gnome/shell/extensions/blur-my-shell" = { hacks-level = 3; };
"org/gnome/shell/extensions/blur-my-shell/applications" = {
whitelist = [ "terminator" "kitty" "emacs" ];
blur-on-overview = true;
sigma = 44;
opacity = 241;
};
"org/gnome/shell/extensions/blur-my-shell/appfolder" = {
blur = true;
dialog-opacity = 1;
};
# 毛玻璃效果 ============================================================ end
"org/gnome/desktop/notifications/application/com-tencent-wechat" = {
force-expanded = true;
show-banners = true;
};
};
};
}