WM рд╡рд┐рд╕реНрдордпрдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдкрд░рд┐рдЪрд┐рддред рднрд╛рдЧ рей

рдореЗрд░реА рдкреЛрд╕реНрдЯ рдХрд╛ рддреАрд╕рд░рд╛ рднрд╛рдЧ (рдкрд┐рдЫрд▓реЗ рдПрдХ рдпрд╣рд╛рдБ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ )

рдЗрд╕ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ, рдорд╛рдЙрд╕ рдФрд░ рдХреАрдмреЛрд░реНрдб рдмрдЯрди рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВред рдПрдХ рдЫреЛрдЯрд╛ рдиреЛрдЯ: Mod4 + PrntScr рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЪрдпрдирд┐рдд рдХреНрд╖реЗрддреНрд░ рдХрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл PtntScrn рдкреВрд░реА рд╕реНрдХреНрд░реАрди рдХрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджреВрд╕рд░рд╛ рдорд╛рдорд▓рд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдЖрдк рдЗрд╕ рдкрд░ рдЕрдкрдирд╛ рд╣рд╛рде рдирд╣реАрдВ рдЬрдорд╛рддреЗ рд╣реИрдВ (рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ xsnap рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ


рдмрдЯрди рдФрд░ рд╕рдВрдпреЛрдЬрди рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ
----------------------------------- ---   --- ----------------------------------- root.buttons(awful.util.table.join( --   -   awful.button({ }, right_button, function() main_menu:toggle() end), --   -     awful.button({ }, plus_button, awful.tag.viewnext ), awful.button({ }, minus_button, awful.tag.viewprev ) )) ------------------------------------------- ---   --- ------------------------------------------- --    globalkeys = awful.util.table.join( --    awful.key( { modkey, }, key_Left, awful.tag.viewprev ), awful.key( { modkey, }, key_Right, awful.tag.viewnext ), awful.key( { modkey, }, key_Esc, awful.tag.history.restore ), --awful.key( { }, key_Alt_R, function () kbdcfg.switch() end), --    ( ) awful.key( { modkey, }, key_Tab, function() awful.client.focus.history.previous() if client.focus then client.focus:raise() end end ), --    --  awful.key( { modkey, }, key_X, function() awful.util.spawn(terminal) end ), --   awful.key( { modkey, }, key_R, function() bottom_prompt_box[mouse.screen]:run() end ), awful.key( { }, key_Home, function() awful.util.spawn_with_shell("google-chrome-stable") end ), --  awesome awful.key( { modkey, "Control" }, key_R, awesome.restart), awful.key( { modkey }, key_F1, function () awful.util.spawn('slimlock') end), awful.key( { }, key_Print, function () awful.util.spawn_with_shell("DATE=`date +%d%m%Y_%H%M%S`; xsnap -file $HOME/Snapshots/snap$DATE") end), awful.key( { modkey }, key_Print, function () awful.util.spawn_with_shell("DATE=`date +%d%m%Y_%H%M%S`; xsnap -nogui -file $HOME/Snapshots/snap$DATE") end), awful.key( { }, key_Vol_Up, function () volumecfg.up() end), awful.key( { }, key_Vol_Down, function () volumecfg.down() end), awful.key( { }, key_Mute, function () volumecfg.toggle() end) ) ------------------------------------------------------ ---    --- ------------------------------------------------------ clientkeys = awful.util.table.join( --     awful.key( { modkey, }, key_F, function(c) c.fullscreen = not c.fullscreen end ), --   awful.key( { modkey, "Shift" }, key_C, function(c) c:kill() end ), --      awful.key( { modkey, "Control" }, key_Space, awful.client.floating.toggle ), --      awful.key( { modkey, "Control" }, key_Return, function(c) c:swap( awful.client.getmaster() ) end ), --     ??? awful.key( { modkey, }, key_O, awful.client.movetoscreen ), --     awful.key( { modkey, }, key_T, function(c) c.ontop = not c.ontop end ), --   awful.key( { modkey, }, key_N, function(c) c.minimized = true end ), --   awful.key( { modkey, }, key_M, function(c) c.maximized_horizontal = not c.maximized_horizontal c.maximized_vertical = not c.maximized_vertical end ) ) 



рдЯреИрдЧ, рднреВрдорд┐рдХрд╛ рдФрд░ рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдВрдпреЛрдЬрди рдпрд╣рд╛рдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдкрд┐рдЬрд┐рди рдХреЗрд╡рд▓ 4 рдЯреИрдЧ рдкрд░ рдЦреБрд▓рддрд╛ рд╣реИ, рдФрд░ рдореИрдВ рд╕рд┐рдЧреНрдирд▓ рдореЗрдВ рд▓рд┐рдЦрддрд╛ рд╣реВрдВ - рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдкрд░ рдЕрдзрд┐рдХрддрдо, рдХрд░реАрдм, рд╡рд┐рдВрдбреЛ рдЖрдЗрдХрди рдФрд░ рд╡рд┐рдВрдбреЛ рд╢реАрд░реНрд╖рдХ рдмрдЯрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рд╡рд┐рдВрдбреЛ рд╕рдВрдпреЛрдЬрди, рдирд┐рдпрдо рдФрд░ рд╕рдВрдХреЗрдд
 ----------------------------------------------------------------------------------------------------------------------- ---             --- ----------------------------------------------------------------------------------------------------------------------- for i = 1, 9 do -- modkey + < > --     globalkeys = awful.util.table.join( globalkeys, awful.key({ modkey }, "#" .. i + 9, function() local screen = mouse.screen local tag = awful.tag.gettags(screen)[i] if tag then awful.tag.viewonly(tag) end end), -- modkey + Ctrl + < > --      awful.key({ modkey, "Control" }, "#" .. i + 9, function() local screen = mouse.screen local tag = awful.tag.gettags(screen)[i] if tag then awful.tag.viewtoggle(tag) end end), -- modkey + < > --        awful.key({ modkey, "Shift" }, "#" .. i + 9, function() local tag = awful.tag.gettags(client.focus.screen)[i] if client.focus and tag then awful.client.movetotag(tag) end end), -- modkey + < > --       ,       awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9, function() local tag = awful.tag.gettags(client.focus.screen)[i] if client.focus and tag then awful.client.toggletag(tag) end end) ) end ---------------------------------------------------------------------------- ---       --- ---------------------------------------------------------------------------- clientbuttons = awful.util.table.join( --   awful.button( { }, left_button, function(c) client.focus = c; c:raise() end), --  awful.button( { modkey }, left_button, awful.mouse.client.move), --   awful.button( { modkey }, right_button, awful.mouse.client.resize) ) --    root.keys(globalkeys) ---------------------------------- ---   --- ---------------------------------- awful.rules.rules = { { --      rule = { }, properties = { border_width = beautiful.border_width, --     border_color = beautiful.border_normal, --       focus = awful.client.focus.filter, --     :( keys = clientkeys, --   buttons = clientbuttons} --   }, --{ rule = { class = "MPlayer" }, -- properties = { floating = true } }, --{ rule = { class = "pinentry" }, -- properties = { floating = true } }, --{ rule = { class = "Gimp" }, -- properties = { floating = true } }, -- Set Firefox to always map on tags number 5 of screen 1. --{ rule = { class = "Firefox" }, -- properties = { tag = tags[1][5] } } -- "":     { rule = { class = "Conky"}, properties = { border_width = 0, floating = true } }, { rule = { instance = "Pidgin" }, properties = { tag = tags[1][4], floating = false, maximized_horizontal = false, maximized_vertical = false } }, { rule = { instance = "Skype" }, properties = { floating = true, maximized_horizontal = false, maximized_vertical = false } } } -------------------- ---  --- -------------------- client.connect_signal("manage", function (c, startup) -- Enable sloppy focus c:connect_signal("mouse::enter", function(c) if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier and awful.client.focus.filter(c) then client.focus = c end end) if not startup then -- Set the windows at the slave, -- ie put it at the end of others instead of setting it master. -- awful.client.setslave(c) -- Put windows in a smart way, only if they does not set an initial position. if not c.size_hints.user_position and not c.size_hints.program_position then awful.placement.no_overlap(c) awful.placement.no_offscreen(c) end end end) --     client.connect_signal("focus", function(c) --    c.border_color = beautiful.border_focus --    --      local left_layout = wibox.layout.fixed.horizontal() left_layout:add(awful.titlebar.widget.iconwidget(c)) --       local right_layout = wibox.layout.fixed.horizontal() --right_layout:add(kbdcfg.widget) right_layout:add(awful.titlebar.widget.maximizedbutton(c)) right_layout:add(awful.titlebar.widget.closebutton(c)) --   local middle_layout = wibox.layout.flex.horizontal() local title = awful.titlebar.widget.titlewidget(c) title:set_align("center") middle_layout:add(title) --      local layout = wibox.layout.align.horizontal() layout:set_left(left_layout) layout:set_right(right_layout) layout:set_middle(middle_layout) --      awful.titlebar(c):set_widget(layout) --     awful.titlebar(c, {size = 18}) end) client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal awful.titlebar(c, {size = 18}) end) 



рд▓реЗрдЖрдЙрдЯ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВред



рдореБрдЭреЗ рддреБрд░рдВрдд рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ 1.2.3 рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ xkbcomp рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ 1.2.4 рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИ (рдЬрдм рд▓реЗрдЖрдЙрдЯреНрд╕ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдорд╛рдЙрд╕ рдмрдЯрди рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ)

рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд▓реЗрдЖрдЙрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдЖрдк рдЗрд╕ рддрд░рд╣ рд╕реЗ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ gentoo wiki рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рддрдм рд╣реЙрдЯ рдХреАрдЬрд╝ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧреА (рд╕рд┐рд╕реНрдЯрдо рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рдХреБрдВрдЬреА рдХреЛрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ), рд▓реЗрдХрд┐рди рдЬреИрд╕реЗ ctn + C, рдЖрджрд┐ред ред рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

Xorg рд╕рд░реНрд╡рд░ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ xorg.conf рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛, рдЕрдм рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдПрдХ рдЕрд▓рдЧ рд╕реНрдерд╛рди рдкрд░ рд╣реИред рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдБ
sudo mkdir /etc/X11/xorg.conf.d

рдФрд░ рдЗрд╕рдореЗрдВ рд╣рдо 2 рдлрд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ, 01-рдХреАрдмреЛрд░реНрдб-рд▓реЗрдЖрдЙрдЯ.рдХреЙрдиреНрдл рдФрд░ 01-рдЗрдиреЗрдмрд▓-рдкреЙрдЗрдВрдЯрд░рд┐рд╕реЗрдХреЙрдирдл
рдкрд╣рд▓реЗ рдореЗрдВ:
 Section "InputClass" Identifier "keyboard-layout" MatchIsKeyboard "on" Option "XkbLayout" "us,ru" Option "XkbOptions" "grp:ctrl_shift_toggle,terminate:ctrl_alt_bksp EndSection 

Ctrl + alt + backspace рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ X рд╕рд░реНрд╡рд░ рдХреЛ рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрд░рдирд╛ рдФрд░ ctrl + shift рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЗрдЖрдЙрдЯ рдмрджрд▓рдирд╛

рд▓реЗрдЖрдЙрдЯ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдорд╛рдЙрд╕ рдмрдЯрди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рджреВрд╕рд░реЗ рдореЗрдВ рд▓рд┐рдЦреЗрдВрдЧреЗ (рдпрд╣ xkbcomp-1.2.4 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ):
 Section "InputClass" Identifier "Keyboard Defaults" MatchIsKeyboard "yes" Option "XkbOptions" "keypad:pointerkeys" EndSection 


рдЕрдм рд╣рдо рдЕрдкрдиреЗ urxvt рдХреЛ рдЖрдБрдЦреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реБрдЦрдж рдмрдирд╛рдПрдВрдЧреЗ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВрдЧреЗ ~ / .Xdefaults (рдлрд┐рд░ рд╕реЗ, рдЕрдЧрд░ рдпрд╣ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ)
рдореЗрд░рд╛ ~ / .Xdefaults
 !darkgray *background: #212121 !silver *foreground: #C0C0C0 !black *color0: #251f1f *color8: #5e5e5e !red *color1: #eb4509 *color9: #eb4509 !green *color2: #94e76b *color10: #95e76b !yellow *color3: #ffac18 *color11: #ffac18 !blue *color4: #46aede *color12: #46aede !magenta *color5: #e32c57 *color13: #e32c57 !cyan *color6: #d6dbac *color14: #d6dbac !white *color7: #efefef *color15: #efefef !save 5000 lines URxvt*saveLines: 5000 !left button URxvt.matcher.button: 1 !default brauser google chrome URxvt.urlLauncher: google-chrome-stable !underline links URxvt.underlineURLs: true ! URxvt.keysym.Mu: perl:url-select:select_next !disabled button 'new tab' URxvt.tabbed.new-button:no !? URxvt.tabbed.tabbar-fg: 15 !? URxvt.tabbed.tabbar-bg: 8 !? URxvt.tabbed.tab-fg: 8 !? URxvt.tabbed.tab-bg: 14 Rxvt.font: -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-1 URxvt.boldFont: -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-1 !disable scrollbar URxvt*scrollBar: false 



рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдЕрдкрдиреЗ рдЯрд░реНрдорд┐рдирд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫреА рд░рдВрдЧ рдпреЛрдЬрдирд╛ рдорд┐рд▓рддреА рд╣реИред

рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдРрд╕реА рд╕реБрдЦрдж рдФрд░ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкреНрд░рдгрд╛рд▓реА рдорд┐рд▓рддреА рд╣реИ:




рдмреЗрд╢рдХ, рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕реНрддрд░ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рдкрд╛рдпрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдХреЙрдиреНрдлрд┐рдЧ рдХреЛ рдЕрднреА рднреА рдЕрдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд▓ рддрдХ рд╕реБрдзрд╛рд░рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдХреБрд╢рд▓ рдкреНрд░рдгрд╛рд▓реА рдорд┐рд▓ рдЧрдИ рд╣реИред

рдкреАрдПрд╕ рдИрдореЗрдХ рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдореЛрдиреЛрдХрд╛рдИ рд░рдВрдЧ рдпреЛрдЬрдирд╛ рд╣реИред
рдкреАрдкреАрдПрд╕ рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХреБрдЫ рднреА рд╡рд░реНрдгрди рдХрд░рдирд╛ рдирд╣реАрдВ рднреВрд▓реВрдВрдЧрд╛ред

Source: https://habr.com/ru/post/In214471/


All Articles