From bdcbb88e4595eacd5ee0a73c642805eceb66880e Mon Sep 17 00:00:00 2001 From: Buliway Date: Tue, 5 Aug 2025 15:45:24 +0300 Subject: [PATCH] fix for qemu --- NOTES.md | 116 ++++++++++++++++ README.md | 15 +- SOFTWARE.md | 0 nvim/lazy-lock.json | 15 +- nvim/lua/kickstart/plugins/themes.lua | 190 +++++++++++++------------- 5 files changed, 225 insertions(+), 111 deletions(-) delete mode 100644 SOFTWARE.md diff --git a/NOTES.md b/NOTES.md index 082b35f..7c23988 100644 --- a/NOTES.md +++ b/NOTES.md @@ -202,3 +202,119 @@ xrandr --output HDMI-A-0 --mode 1920x1080 --rate 100 --right-of DisplayPort-2 - Потом `waydroid show-full-ui` На weston всё работает сразу как надо. Но стоит изменить размеры окна, как waydroid ui пропадает. Приходится стопать и по новой запускать отображение + +## Как я тестирую разный новый софт + +Для этого создаю каталог, а в нём файл `flake.nix` с таким содержимым: +```nix +{ + description = "Development shell for my project"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.11"; + }; + + outputs = { self, nixpkgs, ... }@inputs: + let + system = "x86_64-linux"; + # pkgs = nixpkgs.legacyPackages.${system}; + config = { + allowUnfree = true; + rocmSupport = true; + permittedInsecurePackages = [ + "python-2.7.18.8" + "electron-25.9.0" + ]; + }; + pkgs = import nixpkgs { + inherit system; + inherit config; + }; + spkgs = import inputs.nixpkgs-stable { + inherit system; + inherit config; + }; + in { + devShells.${system}.default = + pkgs.mkShell { + buildInputs = with pkgs; [ + planify + ]; + + shellHook = '' + echo "Welcome to Dev Shell" + ''; + }; + }; +} +``` +Сюда можно ставить разный софт из нужной версии репы. Чтоб зайти в этот шел, заходишь в каталог с этим файлом и пишешь `nix develop`. Теперь весь софт из этого `flake.nix` будет доступен именно в этом терминале. Если хочется обновить весь софт в этом шеле до последней версии, то я просто удаляю файл `flake.lock` и снова пишу `nix develop`. Чтоб выйти из шела, можно написать `exit`. Если shell использует стандартный bash, то зайти в zsh можно командой `zsh`. + +Например, я разрабатывал GUI на fyne. Это либа для golang, чтоб GUI приложения делать. Она на nixos требует пробрасывть зависимости через nix shell, который в конечном итоге выглядел так: +```nix +{ + description = "Development shell for my project"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + }; + + outputs = { self, nixpkgs }: + let + system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; + in { + devShells.${system}.default = + pkgs.mkShell { + buildInputs = with pkgs; [ + # Fyne + libGL + pkg-config + xorg.libX11.dev + xorg.libXcursor + xorg.libXi + xorg.libXinerama + xorg.libXrandr + xorg.libXxf86vm + fyne + + # Avif + libaom + + # Video + glib + glib.dev + gst_all_1.gstreamer + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + gst_all_1.gst-plugins-bad + gst_all_1.gst-plugins-ugly + gst_all_1.gst-libav + ]; + + # Чтобы pkg-config видел .pc-файлы, и GStreamer загружал плагины + PKG_CONFIG_PATH = pkgs.lib.concatStringsSep ":" [ + "${pkgs.glib.dev}/lib/pkgconfig" + "${pkgs.gst_all_1.gstreamer}/lib/pkgconfig" + "${pkgs.gst_all_1.gst-plugins-base}/lib/pkgconfig" + "${pkgs.gst_all_1.gst-plugins-good}/lib/pkgconfig" + "${pkgs.gst_all_1.gst-plugins-bad}/lib/pkgconfig" + "${pkgs.gst_all_1.gst-plugins-ugly}/lib/pkgconfig" + "${pkgs.gst_all_1.gst-libav}/lib/pkgconfig" + ]; + + NIX_CFLAGS_COMPILE = [ "-I${pkgs.glib.dev}/include" ]; + NIX_LDFLAGS = [ "-L${pkgs.glib.out}/lib" ]; + + shellHook = '' + zsh + echo "Welcome to Dev Shell" + export LD_LIBRARY_PATH=${pkgs.wayland}/lib:${pkgs.lib.getLib pkgs.libGL}/lib:${pkgs.lib.getLib pkgs.libGL}/lib:$LD_LIBRARY_PATH + ''; + + }; + }; +} +``` +Необходимые пакеты я подбирал методом тыка, читая ошибки при попытке компилировать diff --git a/README.md b/README.md index b064447..d78bba8 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ ## Другие README файлы в этих дотсах - [Бинды системы](./BINDINGS.md) -- [Список базового софта в системе](./SOFTWARE.md) +- [Список базового софта в системе и доп информация](./NOTES.md) - [Цвета и иконки тем, храню для себя](./THEMES.md) - [Список известных проблем при настройке системы](./PROBLEMS.md) - [Копия man page для bspwm с доп инфой](./modules/home-manager/wm/bspwm/bspwm.md) @@ -29,7 +29,7 @@ ## Процесс установки -Сначала качаем nixos kde или nixos gnome вариант и устанавливаем систему через визуальный установщик. При установке выбираем минимальный вариант, без DE. +Сначала качаем NixOS GUI вариант и устанавливаем систему через визуальный установщик. При установке выбираем минимальный вариант, без DE. Кто-то говорит, что потом достаточно просто забилдить одной командой чужой конфиг, но это не так. Будет ошибка, что нет гита. Если использовать nix-shell для гита, то скажет, что нет экспериментальной функции. Либо писать огромную команду, либо, как советую сделать я, изменить стоковый конфиг никса. Для этого пишем следующее: @@ -74,7 +74,7 @@ sudo nixos-rebuild switch А это можно донастроить уже в готовой системе - Путь до `home` в `shit/qt5ct/qt5ct.conf` и `shit/qt6ct/qt6ct.conf`. - Параметры мониторов закомментированы в файле `modules/home-manager/wm/bspwm/bspwm.nix`. Можно указать по желанию. Команда xrandr покажет доступные значения и имена мониторов. -- Если видеокарта не от amd, то, возможно, надо удалить `videoDrivers` в `modules/nixos/xserver.nix`, `boot.initrd.kernelModules` и всю категорию настроек `amdgpu` в `modules/nixos/hardware.nix`. Это настройки для amd gpu, чтоб не было тиринга на x11 +- Если видеокарта не от amd, то, надо удалить `videoDrivers` в `modules/nixos/xserver.nix`, `boot.initrd.kernelModules` и всю категорию настроек `amdgpu` в `modules/nixos/hardware.nix`. Это настройки для amd gpu, чтоб не было тиринга на x11 - Если надо задать симлинки, то для этого есть файл `modules/home-manager/symlinks.nix`. Там сейчас мои симлинки, их лучше удалить. Чтоб файл заработал, надо раскомментировать `./symlinks.nix` в файле `modules/home-manager/bundle.nix`. - Если надо монтировать другие диски, то для этого есть файл `modules/nixos/filesystems.nix`. Там сейчас мой второй ссд. Чтоб файл заработал, надо раскомментировать `./filesystems.nix` в файле `modules/nixos/bundle.nix`. - Если нужна гибернация, то её можно настроить в `modules/nixos/hibernate.nix`. Там надо указать uuid и офсет для swap файла. Чтоб файл заработал, надо раскомментировать `./hibernate.nix` в файле `modules/nixos/bundle.nix`. @@ -129,6 +129,8 @@ gpg --edit-key ID-ключа ## Изменения для виртуалок +Виртуалка требует минимум 100гб памяти. Если хочешь меньше, то удали огромную кучу софта из конфигов, который тебе не нужен на виртуалке. + Это надо, чтоб включить коннект по ssh к виртуалке и сделать с ней общий буфер обмена. Ну и ещё параметры экрана меняю на один 1080p монитор на 60 герц. В файле `modules/nixos/virtualisation.nix` раскомментировать эти строки: @@ -150,3 +152,10 @@ gpg --edit-key ID-ключа + xrandr --output Virtual-1 --mode 1920x1080 --rate 60 ''; ``` +В файле `modules/nixos/xserver.nix` закомментировать эти строки, даже если amd gpu на хосте: +```diff +- videoDrivers = [ "amdgpu" ]; # https://nixos.wiki/wiki/AMD_GPU +- deviceSection = ''Option "TearFree" "True"''; ++ # videoDrivers = [ "amdgpu" ]; # https://nixos.wiki/wiki/AMD_GPU ++ # deviceSection = ''Option "TearFree" "True"''; +``` diff --git a/SOFTWARE.md b/SOFTWARE.md deleted file mode 100644 index e69de29..0000000 diff --git a/nvim/lazy-lock.json b/nvim/lazy-lock.json index 3023d9a..a3dd169 100644 --- a/nvim/lazy-lock.json +++ b/nvim/lazy-lock.json @@ -1,21 +1,16 @@ { "LuaSnip": { "branch": "master", "commit": "c9b9a22904c97d0eb69ccb9bab76037838326817" }, "blink.cmp": { "branch": "main", "commit": "cb5e346d9e0efa7a3eee7fd4da0b690c48d2a98e" }, - "catppuccin": { "branch": "main", "commit": "5b5e3aef9ad7af84f463d17b5479f06b87d5c429" }, "conform.nvim": { "branch": "master", "commit": "db8a4a9edb217067b1d7a2e0362c74bfe9cc944d" }, "diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" }, - "edge": { "branch": "master", "commit": "04b2e25fa08b81e071ad512bdec6e5af114b01b3" }, - "everforest": { "branch": "master", "commit": "29d1f4f8b63dc91db277e977068f912939c8cae8" }, "fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" }, "friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" }, "gitsigns.nvim": { "branch": "main", "commit": "011dc6718bcebdf92a5336bb0da79189c3afe621" }, "go.nvim": { "branch": "master", "commit": "da15ca55705c57ca10de1fbc1f0b6d6327c13e55" }, - "gruvbox-material": { "branch": "master", "commit": "146f40fd42cbef30fed69b4ef51329aeeaceb909" }, "gruvbox.nvim": { "branch": "main", "commit": "15958f5ee43e144856cd2084ce6c571bfdb44504" }, "guihua.lua": { "branch": "master", "commit": "d783191eaa75215beae0c80319fcce5e6b3beeda" }, "image.nvim": { "branch": "master", "commit": "6ffafab2e98b5bda46bf227055aa84b90add8cdc" }, "indent-blankline.nvim": { "branch": "master", "commit": "e10626f7fcd51ccd56d7ffc00883ba7e0aa28f78" }, - "kanagawa.nvim": { "branch": "master", "commit": "cfd67b0e1eeaa04302b8c7eb072253d24bf22d84" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" }, "luvit-meta": { "branch": "main", "commit": "1df30b60b1b4aecfebc785aa98943db6c6989716" }, @@ -24,11 +19,8 @@ "mason-nvim-dap.nvim": { "branch": "main", "commit": "09220b99d63d5363f219daa2785242ee5fddba7f" }, "mason-tool-installer.nvim": { "branch": "main", "commit": "5639d58a3d11ff7c05c8e31e159bfedae55d7961" }, "mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" }, - "mini.nvim": { "branch": "main", "commit": "2d873a0eaa9f37b105c7751bb0a2e30eb448120d" }, - "monokai-pro.nvim": { "branch": "master", "commit": "872f774303f79416000e8049630052f4124d9534" }, + "mini.nvim": { "branch": "main", "commit": "03387f53f1cb8c6a8ba0798041c6aa3525ed11ba" }, "neo-tree.nvim": { "branch": "v3.x", "commit": "1ef260eb4f54515fe121a2267b477efb054d108a" }, - "nightfox.nvim": { "branch": "main", "commit": "ba47d4b4c5ec308718641ba7402c143836f35aa9" }, - "nordic.nvim": { "branch": "main", "commit": "62acfd4eb008153180670daf81874eb47dd37739" }, "nui.nvim": { "branch": "main", "commit": "8d3bce9764e627b62b07424e0df77f680d47ffdb" }, "nvim-autopairs": { "branch": "master", "commit": "68f0e5c3dab23261a945272032ee6700af86227a" }, "nvim-colorizer.lua": { "branch": "master", "commit": "517df88cf2afb36652830df2c655df2da416a0ae" }, @@ -43,14 +35,11 @@ "nvim-treesitter-context": { "branch": "master", "commit": "129fcc94fa986692926366e940a46f00d2a4abbe" }, "nvim-web-devicons": { "branch": "master", "commit": "d0cafff5c4347a604a07edf7bb9a91fda7eb577e" }, "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, - "rose-pine": { "branch": "main", "commit": "7d1b5c7dcd274921f0f58e90a8bf935f6a95fbf3" }, "rustaceanvim": { "branch": "master", "commit": "2b0f0b7e03751cf8ed123322f9b02d8f73fa9df7" }, - "sonokai": { "branch": "master", "commit": "9679341d4141ed81376f2bdf5e69b78dc348d212" }, "symbol-usage.nvim": { "branch": "main", "commit": "e07c07dfe7504295a369281e95a24e1afa14b243" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" }, "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, - "telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" }, + "telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" }, "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" }, - "tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" }, "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" } } diff --git a/nvim/lua/kickstart/plugins/themes.lua b/nvim/lua/kickstart/plugins/themes.lua index 9a92e28..296d9fb 100644 --- a/nvim/lua/kickstart/plugins/themes.lua +++ b/nvim/lua/kickstart/plugins/themes.lua @@ -29,67 +29,67 @@ for _, variant in ipairs(variants) do end return { - { - 'folke/tokyonight.nvim', - priority = 1000, - init = function() - -- 'tokyonight-storm', 'tokyonight-moon', 'tokyonight-day', 'tokyonight-night' - -- vim.cmd.colorscheme 'tokyonight-night' - vim.cmd.hi 'Comment gui=none' -- Убрать курсив у коммента в коде - end, - }, - { - 'rose-pine/neovim', - name = 'rose-pine', - priority = 1000, - init = function() - -- 'rose-pine-moon', 'rose-pine-main', 'rose-pine-dawn' - -- vim.cmd.colorscheme 'rose-pine-main' - end, - }, - { - 'loctvl842/monokai-pro.nvim', - priority = 1000, - config = function() - -- 'monokai-pro', 'monokai-pro-classic', 'monokai-pro-default', 'monokai-pro-machine', - -- 'monokai-pro-octagon', 'monokai-pro-spectrum', 'monokai-pro-ristretto' - -- vim.cmd.colorscheme 'monokai-pro' - end, - }, - { - 'catppuccin/nvim', - name = 'catppuccin', - priority = 1000, - config = function() - -- 'catppuccin', 'catppuccin-latte', 'catppuccin-frappe', - -- 'catppuccin-macchiato', 'catppuccin-mocha' - -- vim.cmd.colorscheme 'catppuccin' - end, - }, - { - 'rebelot/kanagawa.nvim', - priority = 1000, - config = function() - -- 'kanagawa-wave', 'kanagawa-dragon', 'kanagawa-lotus', - -- vim.cmd.colorscheme 'kanagawa-dragon' - end, - }, - { - 'EdenEast/nightfox.nvim', - priority = 1000, - config = function() - -- 'nightfox', 'dayfox', 'dawnfox', 'duskfox' - -- 'nordfox', 'terafox', 'carbonfox' - -- vim.cmd.colorscheme 'carbonfox' - end, - }, - { - 'AlexvZyl/nordic.nvim', - priority = 1000, - config = function() - -- vim.cmd.colorscheme 'nordic' - end, - }, + -- { + -- 'folke/tokyonight.nvim', + -- priority = 1000, + -- init = function() + -- -- 'tokyonight-storm', 'tokyonight-moon', 'tokyonight-day', 'tokyonight-night' + -- -- vim.cmd.colorscheme 'tokyonight-night' + -- vim.cmd.hi 'Comment gui=none' -- Убрать курсив у коммента в коде + -- end, + -- }, + -- { + -- 'rose-pine/neovim', + -- name = 'rose-pine', + -- priority = 1000, + -- init = function() + -- -- 'rose-pine-moon', 'rose-pine-main', 'rose-pine-dawn' + -- -- vim.cmd.colorscheme 'rose-pine-main' + -- end, + -- }, + -- { + -- 'loctvl842/monokai-pro.nvim', + -- priority = 1000, + -- config = function() + -- -- 'monokai-pro', 'monokai-pro-classic', 'monokai-pro-default', 'monokai-pro-machine', + -- -- 'monokai-pro-octagon', 'monokai-pro-spectrum', 'monokai-pro-ristretto' + -- -- vim.cmd.colorscheme 'monokai-pro' + -- end, + -- }, + -- { + -- 'catppuccin/nvim', + -- name = 'catppuccin', + -- priority = 1000, + -- config = function() + -- -- 'catppuccin', 'catppuccin-latte', 'catppuccin-frappe', + -- -- 'catppuccin-macchiato', 'catppuccin-mocha' + -- -- vim.cmd.colorscheme 'catppuccin' + -- end, + -- }, + -- { + -- 'rebelot/kanagawa.nvim', + -- priority = 1000, + -- config = function() + -- -- 'kanagawa-wave', 'kanagawa-dragon', 'kanagawa-lotus', + -- -- vim.cmd.colorscheme 'kanagawa-dragon' + -- end, + -- }, + -- { + -- 'EdenEast/nightfox.nvim', + -- priority = 1000, + -- config = function() + -- -- 'nightfox', 'dayfox', 'dawnfox', 'duskfox' + -- -- 'nordfox', 'terafox', 'carbonfox' + -- -- vim.cmd.colorscheme 'carbonfox' + -- end, + -- }, + -- { + -- 'AlexvZyl/nordic.nvim', + -- priority = 1000, + -- config = function() + -- -- vim.cmd.colorscheme 'nordic' + -- end, + -- }, ---------------------------------------------------------- -- Гандоны не дают выбрать тему нормально -- @@ -149,38 +149,38 @@ return { vim.cmd.colorscheme 'gruvbox' end, }, - { - 'sainnhe/everforest', - priority = 1000, - init = function() - -- 'hard', 'medium', 'soft' - vim.g.everforest_background = 'hard' - vim.g.everforest_better_performance = 1 - -- vim.g.everforest_enable_italic = true - -- vim.cmd.colorscheme 'everforest' - end, - }, - { - 'sainnhe/sonokai', - priority = 1000, - init = function() - -- Очень разные темы - -- 'default', 'atlantis', 'andromeda', 'shusia', 'maia', 'espresso' - vim.g.sonokai_style = 'shusia' - vim.g.sonokai_better_performance = 1 - -- vim.g.sonokai_enable_italic = true - -- vim.cmd.colorscheme 'sonokai' - end, - }, - { - 'sainnhe/edge', - priority = 1000, - init = function() - -- 'default', 'aura', 'neon' - vim.g.edge_style = 'default' - vim.g.edge_better_performance = 1 - -- vim.g.edge_enable_italic = true - -- vim.cmd.colorscheme 'edge' - end, - }, + -- { + -- 'sainnhe/everforest', + -- priority = 1000, + -- init = function() + -- -- 'hard', 'medium', 'soft' + -- vim.g.everforest_background = 'hard' + -- vim.g.everforest_better_performance = 1 + -- -- vim.g.everforest_enable_italic = true + -- -- vim.cmd.colorscheme 'everforest' + -- end, + -- }, + -- { + -- 'sainnhe/sonokai', + -- priority = 1000, + -- init = function() + -- -- Очень разные темы + -- -- 'default', 'atlantis', 'andromeda', 'shusia', 'maia', 'espresso' + -- vim.g.sonokai_style = 'shusia' + -- vim.g.sonokai_better_performance = 1 + -- -- vim.g.sonokai_enable_italic = true + -- -- vim.cmd.colorscheme 'sonokai' + -- end, + -- }, + -- { + -- 'sainnhe/edge', + -- priority = 1000, + -- init = function() + -- -- 'default', 'aura', 'neon' + -- vim.g.edge_style = 'default' + -- vim.g.edge_better_performance = 1 + -- -- vim.g.edge_enable_italic = true + -- -- vim.cmd.colorscheme 'edge' + -- end, + -- }, }