LINUX.ORG.RU

Сообщения yukiome

 
Форум — Admin

Не понимаю работу cron, или не получается настроить его

 , ,

На данный момент у меня Debian Trixie, не могу никак понять работу демона cron и как его правильно настроить.

Для теста решил написать cron job, который выводит каждую минуту уведомление с фразой «Hello World».

Логи демона cronie выводят предположительно то, что мне и нужно, но уведомление не отображается.

Nov 14 11:23:00 trixie-sid CROND[1859]: (gramevar) CMD (/usr/bin/dunstify "Hello" "World")
Nov 14 11:23:00 trixie-sid CROND[1856]: (gramevar) CMDEND (/usr/bin/dunstify "Hello" "World")
Nov 14 11:23:00 trixie-sid CROND[1856]: pam_unix(cronie:session): session closed for user gramevar

Решил попробовать по совету https://stackoverflow.com/a/53524203, но и это не дало своих плодов.

yukiome
()
Форум — Development

Странное поведение venv

 

Когда виртуальное окружение создается через

python -m venv venv
source venv/bin/activate

проблем никаких нет, но после условного ребута системы окружение как бы и активируется, но как будто и нет. Причем никаких перемещений и переименований venv/ не было.

pip freeze возвращает в окружении все пакеты, установленные лишь в системе, но среду он даже не затронул.

Сам я новичок в программировании на python, только изучаю азы.

yukiome
()
Форум — Desktop

Не могу в Xorg переключаться по рабочим столам

 , , ,

Проблема заключается в том, что нет возможности переключения на рабочие пространства посредством alt+{0-9}, когда на условный alt+d работает прекрасно.

Даже dwm vanilla попробовал поставить, все равно не получалось

Эксперимента ради попробовал переключиться по Win+{0-9}. Работает, но до жути неудобно.

Дистрибутив Debian Trixie Sid, впервые у меня подобное.

yukiome
()
Форум — Admin

Authentification failure, или почему не получается войти в систему?

 , ,

На Fedora Linux 40, kernel 6.10.12-200.fc40.x86_64 не получается войти в систему в связи с ошибкой, представленной ниже

"System is booting up. Unprivileged users are not permitted to log in yet. Please come back later. For technical details, see pam_nologin(8)."

Authentication failure

На данный момент резервная ОС Void Linux.

Прочитав немного man-страницу и немного проведя эксперименты с файлом /etc/pam.d/login были изменения, но они никакого результата не дали, разве что получалось так, что логин правильный, но система думает об обратном.

Вот так выглядит структура файла у Fedora

#%PAM-1.0
auth       substack     system-auth
auth       include      postlogin
account    required     pam_nologin.so
account    include      system-auth
password   include      system-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    include      system-auth
session    include      postlogin
session   optional     pam_ck_connector.so

У Void Linux в этом плане гораздо проще

#%PAM-1.0

auth 		required 	pam_securetty.so
auth 		requisite 	pam_nologin.so
auth 		include 	system-local-login
account 	include 	system-local-login
session 	include 	system-local-login

Точной причины не могу знать, разве что последним действием было sudo chmod 1777 /tmp, либо же один из демонов systemd, как systemd-tmpfiles-setup (или один из), не дает войти.

yukiome
()
Форум — Multimedia

ffmpeg - Почему gif и прочие форматы видео не отображаются в Telegram на телефоне?

 , , ,

Бывает такое, что не у каждого есть возможность посмотреть видео с ПК, у большинства пользователей есть смартфоны.

Правда видео, полученное с ffmpeg, оно будет хорошо отображаться на desktop-версии, когда на мобильной - требует стороннего плеера (как в случае с mkv) или вовсе не открывает (как в случае с gif).

Надеюсь есть подобные опции вроде -support (поддержка мобильных и прочих).

yukiome
()
Форум — Multimedia

Как в imagemagick получить метаданные выделенной области экрана?

 , ,

Для чего мне это нужно?

  1. Зачем другие программы, когда есть imagick
  2. Для ffmpeg, чтобы снимать выделенную область

Возникает мысль, что все это можно организовать через import, ведь он и отвечает как раз за выделение

Сейчас пока мысли в псевдокоде

$ изображение="/tmp/png.png"
$ import $изображение

# решение из <https://askubuntu.com/questions/120234/how-can-i-read-image-info-on-the-command-line>
$ identify -format "%wx%h" $изображение

$ ffmpeg -f x11grab область экрана $изображение выходной_файл

Звучит как что-то неправильное, но это единственное, что могло мне прийти в голову.

yukiome
()
Форум — Development

Как установить phpactor в neovim, или что выбрать вместо него?

 ,

Возникла ситуация, что не получается установить phpactor в neovim посредством пакетного менеджера Lazy.

Многочисленные поиски сводятся к тому, что вместо него устанавливается intelephense через npm

npm i intelephense -g

Но это условно-бесплатная альтернатива, т.е. больше функционала доступно лишь по подписке, а оно мне не нужно.

Версии исполняемых файлов

  • Composer 2.7.8
  • PHP 8.3.11
  • Phpactor 2024.06.30.0

Cтруктура init.lua

-- Basic
require('core.plugins')
require('core.mappings')
require('core.configs')

-- Plugins
require('plugins.treesitter')
require('plugins.lspconfig')
require('plugins.cmp')
require('plugins.lint')
require('plugins.mason')
require('plugins.lualine')

Cтруктура lspconfig.lua

-- Setup language servers.
local lspconfig = require('lspconfig')
lspconfig.pylsp.setup {}
lspconfig.clangd.setup {}
lspconfig.phpactor.setup {
	on_attach = on_attach,
    init_options = {
        ["language_server_phpstan.enabled"] = false,
        ["language_server_psalm.enabled"] = false,
    }
}
lspconfig.html.setup {}

-- Global mappings.
-- See `:help vim.diagnostic.*` for documentation on any of the below functions
vim.keymap.set('n', '<space>e', vim.diagnostic.open_float)
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev)
vim.keymap.set('n', ']d', vim.diagnostic.goto_next)
vim.keymap.set('n', '<space>q', vim.diagnostic.setloclist)

-- Use LspAttach autocommand to only map the following keys
-- after the language server attaches to the current buffer
vim.api.nvim_create_autocmd('LspAttach', {
  group = vim.api.nvim_create_augroup('UserLspConfig', {}),
  callback = function(ev)
    -- Enable completion triggered by <c-x><c-o>
    vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc'

    -- Buffer local mappings.
    -- See `:help vim.lsp.*` for documentation on any of the below functions
    local opts = { buffer = ev.buf }
    vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts)
    vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts)
    vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts)
    vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts)
    vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, opts)
    vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, opts)
    vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, opts)
    vim.keymap.set('n', '<space>wl', function()
      print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
    end, opts)
    vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, opts)
    vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, opts)
    vim.keymap.set({ 'n', 'v' }, '<space>ca', vim.lsp.buf.code_action, opts)
    vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts)
    vim.keymap.set('n', '<space>f', function()
      vim.lsp.buf.format { async = true }
    end, opts)
  end,
})

Конфигурация plugins.lua (конфигурация урезана в целях компактности)

require("lazy").setup({
{ 'nvim-treesitter/nvim-treesitter' },
{ 'neovim/nvim-lspconfig', },
-- mason
{ "williamboman/mason.nvim", },
{ "williamboman/mason-lspconfig.nvim" }
-- completion
{ 'hrsh7th/cmp-nvim-lsp' },
{ 'hrsh7th/cmp-buffer' },
{ 'hrsh7th/cmp-path' },
{ 'hrsh7th/cmp-cmdline' },
{ 'hrsh7th/nvim-cmp' },
})

Как можно заметить, у меня установлен mason.nvim, через него установлен phpactor, который лежит в ~/.local/share/nvim/mason/packages/phpactor/phpactor.

Исполняемый файл работает хорошо, видит команды, но не получилось запустить его так же гладко, как случилось с clangd, в котором автокомплит работает великолепно.

Фрагмент файла cmp.lua

local cmp = require'cmp'
cmp.setup({
    snippet = {
      expand = function(args)
        require('luasnip').lsp_expand(args.body) -- For `luasnip` users.
      end,
    },
    window = {
      -- completion = cmp.config.window.bordered(),
      -- documentation = cmp.config.window.bordered(),
    },
    mapping = cmp.mapping.preset.insert({
    ["<C-k>"] = cmp.mapping.select_prev_item(), -- previous suggestion
    ["<C-j>"] = cmp.mapping.select_next_item(), -- next suggestion
    ["<C-b>"] = cmp.mapping.scroll_docs(-4),
    ["<C-f>"] = cmp.mapping.scroll_docs(4),
    ["<C-Space>"] = cmp.mapping.complete(), -- show completion suggestions
    ["<C-e>"] = cmp.mapping.abort(), -- close completion window
    ["<CR>"] = cmp.mapping.confirm({ select = false }),
  }),
    sources = cmp.config.sources({
      { name = 'nvim_lsp' },
      { name = 'luasnip' }, -- For luasnip users.
      { name = 'buffer' },
      { name = 'path' }, -- For vsnip users. 
   }),
})


cmp.setup.cmdline({ '/', '?' }, {
    mapping = cmp.mapping.preset.cmdline(),
    sources = {
      { name = 'buffer' }
    }
  })

  cmp.setup.cmdline(':', {
    mapping = cmp.mapping.preset.cmdline(),
    sources = cmp.config.sources({ { name = 'path' } }, 
    { { name = 'cmdline' } })
  })

  -- Set up lspconfig.
  local capabilities = require('cmp_nvim_lsp').default_capabilities()
    
  local phpactor_capabilities = vim.lsp.protocol.make_client_capabilities()
        phpactor_capabilities.textDocument.foldingRange = {
        dynamicRegistration = false,
        lineFoldingOnly = true
    }

    phpactor_capabilities['textDocument']['codeAction'] = {}
  
    require('lspconfig')['phpactor'].setup {
        capabilities = phpactor_capabilities,
        on_attach = on_attach
  }

Структура configs.lua

vim.wo.number = true
vim.wo.relativenumber = true

vim.opt.shell = "/usr/bin/zsh"
vim.opt.number = true
vim.opt.swapfile = false
vim.opt.mouse = "a"
vim.opt.mousefocus = true
vim.opt.clipboard = "unnamedplus"

vim.opt.termguicolors = true
vim.cmd('colorscheme retrobox')

-- Indent Settings
vim.opt.expandtab = true
vim.opt.shiftwidth = 4
vim.opt.tabstop = 4
vim.opt.softtabstop = 4
vim.opt.smartindent = true

Послесловие. Возможно трудности с конфигурацией phpactor, которую так и не понял, либо composer.

yukiome
()

RSS подписка на новые темы