Ну что сказать, я на полпути к идеальному десктопу для меня. Старался сделать так, чтобы было ОЧЕНЬ удобно юзать, поэтому выбрал openbsd и spectrwm
.spectrwm.conf
spawn_position = first
border_width = 3
color_focus = white
color_focus_maximized = yellow
tile_gap = 6
bar_border_width = 0
bar_font_color[1] = white,yellow,rgb:a0/a0/a0,rgb:e9/e9/e9
bar_font = Ptmono:pixelsize=14:antialias=true
bar_action = /home/nightlord/baraction.sh
bar_action_expand = 1
bar_justify = left
bar_format = +@fg=2;+I +@fg=0;%R +@fg=3;%a(%d) %b(%m) %Y +A
bar_at_bottom = 1
modkey = Mod4
keyboard_mapping = ~/.spectrwm_us.conf
program[term] = urxvt
program[mpctoggle] = mpc toggle
bind[mpctoggle] = Control + space
program[mpcnext] = mpc next
bind[mpcnext] = Control + MOD + l
program[mpcprev] = mpc prev
bind[mpcprev] = Control + MOD + j
program[xlock] = /home/nightlord/scripts/mpv-pause-lock.sh
bind[xlock] = MOD + s
quirk[transmission] = WS[2]
quirk[KeePassXC] = WS[3]
quirk[.*] = FOCUSPREV
bind[bar_toggle_ws] = MOD+Shift+b
bind[button2] = MOD+v
bind[flip_layout] = MOD+Shift+backslash
bind[focus_main] = MOD+m
bind[focus_next] = MOD+l
bind[focus_next] = MOD+Tab
bind[focus_prev] = MOD+j
bind[focus_prev] = MOD+Shift+Tab
bind[focus_urgent] = MOD+u
bind[height_grow] = MOD+Shift+equal
bind[height_shrink] = MOD+Shift+minus
bind[initscr] = MOD+Shift+i
bind[maximize_toggle] = MOD+f
bind[maximize_toggle] = F11
bind[menu] = MOD+p
bind[move_down] = MOD+Shift+bracketright
bind[move_up] = MOD+Shift+bracketleft
bind[mvrg_1] = MOD+Shift+KP_End
bind[mvrg_2] = MOD+Shift+KP_Down
bind[mvrg_3] = MOD+Shift+KP_Next
bind[mvrg_4] = MOD+Shift+KP_Left
bind[mvrg_5] = MOD+Shift+KP_Begin
bind[mvrg_6] = MOD+Shift+KP_Right
bind[mvrg_7] = MOD+Shift+KP_Home
bind[mvrg_8] = MOD+Shift+KP_Up
bind[mvrg_9] = MOD+Shift+KP_Prior
bind[mvws_1] = MOD+Shift+1
bind[mvws_2] = MOD+Shift+2
bind[mvws_3] = MOD+Shift+3
bind[mvws_4] = MOD+Shift+4
bind[mvws_5] = MOD+Shift+5
bind[mvws_6] = MOD+Shift+6
bind[mvws_7] = MOD+Shift+7
bind[mvws_8] = MOD+Shift+8
bind[mvws_9] = MOD+Shift+9
bind[mvws_10] = MOD+Shift+0
bind[mvws_11] = MOD+Shift+F1
bind[mvws_12] = MOD+Shift+F2
bind[mvws_13] = MOD+Shift+F3
bind[mvws_14] = MOD+Shift+F4
bind[mvws_15] = MOD+Shift+F5
bind[mvws_16] = MOD+Shift+F6
bind[mvws_17] = MOD+Shift+F7
bind[mvws_18] = MOD+Shift+F8
bind[mvws_19] = MOD+Shift+F9
bind[mvws_20] = MOD+Shift+F10
bind[mvws_21] = MOD+Shift+F11
bind[mvws_22] = MOD+Shift+F12
bind[name_workspace] = MOD+Shift+slash
bind[raise_toggle] = MOD+Shift+r
bind[restart] = MOD+q
bind[rg_1] = MOD+KP_End
bind[rg_2] = MOD+KP_Down
bind[rg_3] = MOD+KP_Next
bind[rg_4] = MOD+KP_Left
bind[rg_5] = MOD+KP_Begin
bind[rg_6] = MOD+KP_Right
bind[rg_7] = MOD+KP_Home
bind[rg_8] = MOD+KP_Up
bind[rg_9] = MOD+KP_Prior
bind[screenshot_all] = MOD+w
bind[screenshot_wind] = MOD+Shift+w
bind[search_workspace] = MOD+slash
bind[stack_dec] = MOD+Shift+period
bind[stack_inc] = MOD+Shift+comma
bind[stack_reset] = MOD+Shift+space
bind[swap_main] = MOD+Return
bind[swap_next] = MOD+Shift+j
bind[swap_prev] = MOD+Shift+k
bind[term] = MOD+Shift+Return
bind[uniconify] = MOD+Shift+w
bind[version] = MOD+Shift+v
bind[wind_kill] = MOD+Shift+x
bind[ws_1] = MOD+1
bind[ws_2] = MOD+2
bind[ws_3] = MOD+3
bind[ws_4] = MOD+4
bind[ws_5] = MOD+5
bind[ws_6] = MOD+6
bind[ws_7] = MOD+7
bind[ws_8] = MOD+8
bind[ws_9] = MOD+9
bind[ws_10] = MOD+0
bind[ws_11] = MOD+F1
bind[ws_12] = MOD+F2
bind[ws_13] = MOD+F3
bind[ws_14] = MOD+F4
bind[ws_15] = MOD+F5
bind[ws_16] = MOD+F6
bind[ws_17] = MOD+F7
bind[ws_18] = MOD+F8
bind[ws_19] = MOD+F9
bind[ws_20] = MOD+F10
bind[ws_21] = MOD+F11
bind[ws_22] = MOD+F12
bind[ws_next_all] = MOD+Up
bind[ws_next_move] = MOD+Shift+Up
bind[ws_prev_all] = MOD+Down
bind[ws_prev_move] = MOD+Shift+Down
bind[ws_prior] = MOD+a
- Уведомления.
Показом уведомлений занимается dunst,
[global] monitor = 0 follow = none width = (400, 600) height = 300 origin = bottom-right offset = 10x50 scale = 0 notification_limit = 0 progress_bar = true progress_bar_height = 10 progress_bar_frame_width = 1 progress_bar_min_width = 150 progress_bar_max_width = 300 indicate_hidden = yes transparency = 30 separator_height = 2 padding = 8 horizontal_padding = 8 text_icon_padding = 0 frame_width = 3 separator_color = frame sort = yes idle_threshold = 120 font = PTMono 12 line_height = 0 markup = no format = "<b>%s</b>\n%b" alignment = left vertical_alignment = center show_age_threshold = -1 ellipsize = middle ignore_newline = no stack_duplicates = true hide_duplicate_count = true show_indicators = yes icon_position = off min_icon_size = 0 max_icon_size = 0 sticky_history = no history_length = 20 dmenu = /usr/local/bin/dmenu -p dunst: browser = /usr/local/bin/xdg-open always_run_script = true title = Dunst class = Dunst corner_radius = 10 ignore_dbusclose = false force_xwayland = false force_xinerama = false mouse_left_click = close_current mouse_middle_click = do_action, close_current mouse_right_click = close_all [experimental] per_monitor_dpi = false [urgency_low] timeout = 10 [urgency_normal] timeout = 10 [urgency_critical] timeout = 10 fullscreen = show [mail] summary = "Почта*" fullscreen = delay [inbox] body = "*INBOX*" fullscreen = show [yt] body = "*youtube*" fullscreen = show [uk_money] summary = "MONEY*" urgency = critical fullscreen = show [uk_water] summary = "WATER*" urgency = critical fullscreen = show
- Xbindkeys.
Всем хорош spectrwm, но он не понимает комбинацию alt+enter для максимизации окна, поэтому приходится держать запущенным xbindkeys с
"/home/nightlord/scripts/window_max.sh" m:0x80 + c:36
- Блокировка. Когда я ухожу из-за компа, его надо бы блокировать, для этого использую slock.
- Обоина - https://wallhaven.cc/w/lmgp6r
- Emacs и gnus. Конфиги показывать не буду, поскольку они очень большие и страшные :(
- Кино и сериалы.
Для просмотра использую mpv с конфигами -
mpv.conf
input.conf
demuxer-max-bytes=5128000 demuxer-max-back-bytes=0 write-filename-in-watch-later-config=yes save-position-on-quit=yes audio-channels=2 sub-ass-hinting=normal fullscreen=no alang=eng vo=gpu ao=sndio ytdl-format="bestvideo[height<=720][vcodec=vp9]+bestaudio/best" profile=gpu-hq loop-playlist=force sub-font-size=20 sub-pos=60 brightness=4 gamma=20 contrast=10 deinterlace=no osd-font-size=30 tone-mapping=hable override-display-fps=60 tscale=bicubic interpolation=yes video-sync=display-resample term-status-msg="AV: ${time-pos}" window-maximized=yes watch-later-options-remove=pause osd-font='Terminus' dither-depth=auto temporal-dither=yes dither=fruit video-output-levels=full af-add='dynaudnorm=g=5:f=250:r=0.9:p=0.5' hwdec=auto
ctrl+r write-watch-later-config ; show-text "Reloading file..." ; loadfile "${path}" MBTN_LEFT cycle pause nil MBTN_MID quit MBTN_RIGHT cycle window-maximized WHEEL_UP add volume 2 WHEEL_DOWN add volume -2 [ ignore ] ignore q quit-watch-later p set pause yes 1 ignore 2 ignore 3 ignore 4 ignore 5 ignore 6 ignore 7 ignore 8 ignore d ignore f cycle window-maximized s ignore w ignore e ignore
- Терминал (Нет, не фильм с Хэнксом) Использую eshell с алиасами.
Если чего забыл (наверняка) - спрашивайте в комментах.
>>> Просмотр (1920x1200, 749 Kb)