mirror of
https://github.com/olexsmir/dotfiles.git
synced 2026-01-15 08:41:34 +02:00
Add: i3, polybar, rofi, redshift config
This commit is contained in:
parent
68604c9c6a
commit
f8ffdbda2e
15 changed files with 1356 additions and 0 deletions
171
config/i3/config
Normal file
171
config/i3/config
Normal file
|
|
@ -0,0 +1,171 @@
|
|||
############# General #############
|
||||
# Bind $MOD(super) key
|
||||
set $mod Mod4
|
||||
# Font
|
||||
font monospace 10
|
||||
font pango:hack 10
|
||||
# Disable window title
|
||||
default_border pixel
|
||||
|
||||
############ Autostart ############
|
||||
exec --no-startup-id exec picom -b
|
||||
exec --no-startup-id exec feh --bg-scale ~/Imager/wallpaper.png
|
||||
exec --no-startup-id exec setxkbmap "us,ru,ua" ",winkeys" "grp:alt_shift_toggle"
|
||||
exec --no-startup-id exec org.telegram.desktop
|
||||
exec --no-startup-id exec discord
|
||||
|
||||
############ Key bindings #########
|
||||
# Terminal
|
||||
bindsym $mod+Return exec kitty
|
||||
#bindsym $mod+Return exec konsole
|
||||
|
||||
# Kill focus window
|
||||
bindsym $mod+q kill
|
||||
bindsym Mod1+F4 kill
|
||||
|
||||
# Program/Exit louncher
|
||||
bindsym $mod+space exec "rofi -show drun -show-icons -font 'hack 12' -show cobi -disable-history"
|
||||
bindsym $mod+Escape exec "rofi -show power-menu -show-icons -font 'hack 12' -width 30 -lines 6 -disable-history -modi power-menu:~/.config/rofi/rofi-power-menu"
|
||||
# Restart i3wm
|
||||
bindsym $mod+Shift+r restart
|
||||
|
||||
# Load program
|
||||
bindsym $mod+F1 exec dolphin
|
||||
bindsym $mod+F2 exec chromium
|
||||
bindsym $mod+b exec firefox
|
||||
bindsym $mod+F3 exec spotify
|
||||
bindsym $mod+F4 exec subl
|
||||
bindsym $mod+F5 exec notable
|
||||
|
||||
# Floating window
|
||||
floating_modifier $mod
|
||||
bindsym $mod+Shift+space floating toggle
|
||||
bindsym $mod+Shift+f focus mode_toggle
|
||||
|
||||
# Fullscreen mode
|
||||
bindsym $mod+f fullscreen toggle
|
||||
bindsym $mod+F11 fullscreen toggle
|
||||
|
||||
# Splits
|
||||
bindsym $mod+h split h
|
||||
bindsym $mod+v split v
|
||||
|
||||
# Focus the parent container
|
||||
bindsym $mod+a focus parent
|
||||
|
||||
# Change container layout(stacked, tabbed, toggle split)
|
||||
bindsym $mod+s layout stacking
|
||||
bindsym $mod+w layout tabbed
|
||||
bindsym $mod+e layout toggle split
|
||||
|
||||
# Scratchpad
|
||||
bindsym $mod+Shift+grave move scratchpad
|
||||
bindsym $mod+grave scratchpad show
|
||||
|
||||
######### Window preferens ########
|
||||
assign [class="(?i)konsole|kitty"] $ws1
|
||||
assign [class="(?i)chromium|firefox"] $ws2
|
||||
assign [class="(?i)subl|code|atom|typora|prepros"] $ws3
|
||||
assign [class="(?i)dolphin"] $ws4
|
||||
assign [class="(?i)telegram|discord"] $ws6
|
||||
assign [title="Notable|Simplenote"] $ws7
|
||||
assign [title="KeePassXC"] $ws8
|
||||
for_window [class="Spotify"] move to workspace $ws10
|
||||
|
||||
##### Change containet focus ######
|
||||
# Vim like keys container
|
||||
bindsym $mod+j focus left
|
||||
bindsym $mod+k focus down
|
||||
bindsym $mod+l focus up
|
||||
bindsym $mod+semicolon focus right
|
||||
|
||||
# Alternatively cursor keys
|
||||
bindsym $mod+Left focus left
|
||||
bindsym $mod+Down focus down
|
||||
bindsym $mod+Up focus up
|
||||
bindsym $mod+Right focus right
|
||||
|
||||
##### Move focused container ######
|
||||
# Vim like keys
|
||||
bindsym $mod+Shift+j move left
|
||||
bindsym $mod+Shift+k move down
|
||||
bindsym $mod+Shift+l move up
|
||||
bindsym $mod+Shift+colon move right
|
||||
|
||||
# Alternatively cursor keys
|
||||
bindsym $mod+Shift+Left move left
|
||||
bindsym $mod+Shift+Down move down
|
||||
bindsym $mod+Shift+Up move up
|
||||
bindsym $mod+Shift+Right move right
|
||||
|
||||
############ Workspaces ###########
|
||||
set $ws1 "1"
|
||||
set $ws2 "2"
|
||||
set $ws3 "3"
|
||||
set $ws4 "4"
|
||||
set $ws5 "5"
|
||||
set $ws6 "6"
|
||||
set $ws7 "7"
|
||||
set $ws8 "8"
|
||||
set $ws9 "9"
|
||||
set $ws10 "10"
|
||||
|
||||
# Switch workspace
|
||||
bindsym $mod+1 workspace $ws1
|
||||
bindsym $mod+2 workspace $ws2
|
||||
bindsym $mod+3 workspace $ws3
|
||||
bindsym $mod+4 workspace $ws4
|
||||
bindsym $mod+5 workspace $ws5
|
||||
bindsym $mod+6 workspace $ws6
|
||||
bindsym $mod+7 workspace $ws7
|
||||
bindsym $mod+8 workspace $ws8
|
||||
bindsym $mod+9 workspace $ws9
|
||||
bindsym $mod+0 workspace $ws10
|
||||
|
||||
# Move focused container to workspace
|
||||
bindsym $mod+Shift+1 move container to workspace $ws1
|
||||
bindsym $mod+Shift+2 move container to workspace $ws2
|
||||
bindsym $mod+Shift+3 move container to workspace $ws3
|
||||
bindsym $mod+Shift+4 move container to workspace $ws4
|
||||
bindsym $mod+Shift+5 move container to workspace $ws5
|
||||
bindsym $mod+Shift+6 move container to workspace $ws6
|
||||
bindsym $mod+Shift+7 move container to workspace $ws7
|
||||
bindsym $mod+Shift+8 move container to workspace $ws8
|
||||
bindsym $mod+Shift+9 move container to workspace $ws9
|
||||
bindsym $mod+Shift+0 move container to workspace $ws10
|
||||
|
||||
########### Resize mode ###########
|
||||
mode "resize" {
|
||||
bindsym j resize shrink width 10 px or 10 ppt
|
||||
bindsym k resize grow height 10 px or 10 ppt
|
||||
bindsym l resize shrink height 10 px or 10 ppt
|
||||
bindsym semicolon resize grow width 10 px or 10 ppt
|
||||
|
||||
# same bindings, but for the arrow keys
|
||||
bindsym Left resize shrink width 10 px or 10 ppt
|
||||
bindsym Down resize grow height 10 px or 10 ppt
|
||||
bindsym Up resize shrink height 10 px or 10 ppt
|
||||
bindsym Right resize grow width 10 px or 10 ppt
|
||||
|
||||
# back to normal: Enter or Escape or $mod+r
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym $mod+r mode "default"
|
||||
}
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
############### Bar ###############
|
||||
exec_always --no-startup-id $HOME/.config/polybar/launch.sh
|
||||
#bar {
|
||||
# status_command i3status
|
||||
# position top
|
||||
#}
|
||||
|
||||
############## Colors #############
|
||||
# class border backgr. text indicator child_border
|
||||
client.focused #268bd2 #268bd2 #ffffff #268bd2 #268bd2
|
||||
client.focused_inactive #000000 #000000 #ffffff #000000 #000000
|
||||
client.unfocused #000000 #000000 #888888 #000000 #000000
|
||||
client.urgent #000000 #000000 #ffffff #000000 #000000
|
||||
client.placeholder #000000 #000000 #ffffff #000000 #000000
|
||||
client.background #ffffff
|
||||
238
config/kitty/kitty.conf
Normal file
238
config/kitty/kitty.conf
Normal file
|
|
@ -0,0 +1,238 @@
|
|||
#: MOD
|
||||
kitty_mod ctrl+shift
|
||||
clear_all_shortcuts no
|
||||
|
||||
|
||||
|
||||
#: Font
|
||||
font_family Jetbrains Mono
|
||||
bold_font auto
|
||||
italic_font auto
|
||||
bold_italic_font auto
|
||||
|
||||
font_size 12.0
|
||||
|
||||
adjust_line_height 0
|
||||
adjust_column_width 0
|
||||
|
||||
disable_ligatures never
|
||||
font_features none
|
||||
box_drawing_scale 0.001, 1, 1.5, 2
|
||||
|
||||
|
||||
|
||||
#: Cursor
|
||||
cursor #dfdfdf
|
||||
cursor_text_color #7d7d7d
|
||||
|
||||
#cursor_shape block
|
||||
cursor_shape beam
|
||||
|
||||
cursor_beam_thickness 1.5
|
||||
cursor_underline_thickness 2.0
|
||||
|
||||
cursor_blink_interval 0
|
||||
cursor_stop_blinking_after 15.0
|
||||
|
||||
|
||||
|
||||
#: Bell
|
||||
enable_audio_bell no
|
||||
visual_bell_duration 0.0
|
||||
window_alert_on_bell no
|
||||
command_on_bell none
|
||||
bell_on_tab no
|
||||
|
||||
|
||||
|
||||
#: Scrollback (History)
|
||||
scrollback_lines 500
|
||||
scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER
|
||||
scrollback_pager_history_size 0
|
||||
wheel_scroll_multiplier 5.0
|
||||
touch_scroll_multiplier 1.0
|
||||
|
||||
|
||||
|
||||
#: Mouse
|
||||
mouse_hide_wait 2.5
|
||||
|
||||
url_color #4ecdc4
|
||||
url_style curly
|
||||
|
||||
open_url_modifiers kitty_mod
|
||||
open_url_with default
|
||||
url_prefixes http https file ftp
|
||||
copy_on_select yes
|
||||
strip_trailing_spaces never
|
||||
rectangle_select_modifiers ctrl+alt
|
||||
terminal_select_modifiers shift
|
||||
select_by_word_characters :@-./_~?&=%+#
|
||||
click_interval -1.0
|
||||
focus_follows_mouse yes
|
||||
pointer_shape_when_grabbed arrow
|
||||
|
||||
|
||||
|
||||
#: Perfomance
|
||||
repaint_delay 10
|
||||
input_delay 3
|
||||
sync_to_monitor yes
|
||||
command_on_bell none
|
||||
|
||||
|
||||
|
||||
#: Window
|
||||
remember_window_size yes
|
||||
initial_window_width 640
|
||||
initial_window_height 480
|
||||
enabled_layouts *
|
||||
|
||||
window_resize_step_cells 2
|
||||
window_resize_step_lines 2
|
||||
window_border_width 1.0
|
||||
draw_minimal_borders no
|
||||
window_margin_width 0.0
|
||||
single_window_margin_width -1000.0
|
||||
window_padding_width 0.0
|
||||
|
||||
placement_strategy center
|
||||
active_border_color #073642
|
||||
inactive_border_color #292f36
|
||||
bell_border_color #ff5a00
|
||||
inactive_text_alpha 1.0
|
||||
hide_window_decorations no
|
||||
resize_debounce_time 0.1
|
||||
resize_draw_strategy static
|
||||
resize_in_steps no
|
||||
|
||||
|
||||
|
||||
#: Tabs
|
||||
tab_bar_edge bottom
|
||||
tab_bar_margin_width 0.0
|
||||
tab_bar_style powerline
|
||||
tab_bar_min_tabs 2
|
||||
tab_switch_strategy previous
|
||||
tab_fade 0.25 0.5 0.75 1
|
||||
tab_separator " ┇"
|
||||
tab_title_template "{title}"
|
||||
active_tab_title_template none
|
||||
|
||||
active_tab_foreground #dfdfdf
|
||||
active_tab_background #073642
|
||||
active_tab_font_style bold-italic
|
||||
inactive_tab_foreground #dfdfdf
|
||||
inactive_tab_background #292f36
|
||||
inactive_tab_font_style normal
|
||||
|
||||
tab_bar_background none
|
||||
|
||||
|
||||
|
||||
#: Theming
|
||||
foreground #dfdfdf
|
||||
background_opacity 0.87
|
||||
background_image none
|
||||
background_image_layout tiled
|
||||
background_image_linear no
|
||||
dynamic_background_opacity no
|
||||
background_tint 0.0
|
||||
dim_opacity 0.75
|
||||
selection_foreground #edebd7
|
||||
selection_background #073642
|
||||
|
||||
|
||||
|
||||
#: Keyboard Shortcuts
|
||||
#: #: Clipboard
|
||||
map ctrl+shift+c copy_to_clipboard
|
||||
map ctrl+shift+v paste_from_clipboard
|
||||
map shift+insert paste_from_selection
|
||||
map kitty_mod+o pass_selection_to_program
|
||||
|
||||
#: #: Scroll
|
||||
map kitty_mod+up scroll_line_up
|
||||
map kitty_mod+k scroll_line_up
|
||||
map kitty_mod+down scroll_line_down
|
||||
map kitty_mod+j scroll_line_down
|
||||
map kitty_mod+page_up scroll_page_up
|
||||
map kitty_mod+page_down scroll_page_down
|
||||
map kitty_mod+home scroll_home
|
||||
map kitty_mod+end scroll_end
|
||||
map kitty_mod+h show_scrollback
|
||||
|
||||
#: #: Window
|
||||
map kitty_mod+F9 new_os_window
|
||||
map kitty_mod+enter new_window
|
||||
map kitty_mod+x close_window
|
||||
map kitty_mod+] next_window
|
||||
map kitty_mod+[ previous_window
|
||||
map kitty_mod+f move_window_forward
|
||||
map kitty_mod+b move_window_backward
|
||||
map kitty_mod+` move_window_to_top
|
||||
map kitty_mod+r start_resizing_window
|
||||
|
||||
#: #: Tab
|
||||
map kitty_mod+l next_tab
|
||||
map kitty_mod+h previous_tab
|
||||
map kitty_mod+t new_tab
|
||||
map kitty_mod+q close_tab
|
||||
map kitty_mod+. set_tab_title
|
||||
map kitty_mod+1 first_window
|
||||
map kitty_mod+2 second_window
|
||||
map kitty_mod+3 third_window
|
||||
map kitty_mod+4 fourth_window
|
||||
map kitty_mod+5 fifth_window
|
||||
map kitty_mod+6 sixth_window
|
||||
map kitty_mod+7 seventh_window
|
||||
map kitty_mod+8 eighth_window
|
||||
map kitty_mod+9 ninth_window
|
||||
map kitty_mod+0 tenth_window
|
||||
|
||||
#: #: Layouts
|
||||
map kitty_mod+l next_layout
|
||||
|
||||
#: #: Font Size
|
||||
map kitty_mod+equal change_font_size all +2.0
|
||||
map kitty_mod+minus change_font_size all -2.0
|
||||
map kitty_mod+backspace change_font_size all 0
|
||||
|
||||
#:#: Other
|
||||
map f11 toggle_fullscreen
|
||||
map kitty_mod+f10 toggle_maximized
|
||||
map kitty_mod+u kitten unicode_input
|
||||
map kitty_mod+f2 edit_config_file
|
||||
map kitty_mod+escape kitty_shell window
|
||||
|
||||
map kitty_mod+delete clear_terminal reset active
|
||||
|
||||
selection_background #073642
|
||||
selection_foreground #edebd7
|
||||
foreground #d2dae2
|
||||
background #1e272e
|
||||
cursorColor #d2dae2
|
||||
|
||||
color0 #1e272e
|
||||
color8 #485460
|
||||
|
||||
color1 #ff3f34
|
||||
color9 #ff5e57
|
||||
|
||||
color2 #05c46b
|
||||
color10 #0be881
|
||||
|
||||
color3 #ffa801
|
||||
color11 #ffc048
|
||||
|
||||
color4 #3c40c6
|
||||
color12 #575fcf
|
||||
|
||||
color5 #f53b57
|
||||
color13 #ef5777
|
||||
|
||||
color6 #0fbcf9
|
||||
color14 #4bcffa
|
||||
|
||||
color7 #808e9b
|
||||
color15 #d2dae2
|
||||
245
config/polybar/config
Normal file
245
config/polybar/config
Normal file
|
|
@ -0,0 +1,245 @@
|
|||
[settings]
|
||||
pseudo-transparency = true
|
||||
|
||||
[colors]
|
||||
background = #002B36
|
||||
background-alt = #073642
|
||||
foreground = #dfdfdf
|
||||
foreground-alt = #fdf6e3
|
||||
primary = #268bd2
|
||||
secondary = #218DC8
|
||||
alert = #268bd2
|
||||
;alert = #dc322f
|
||||
|
||||
############################################################################################################
|
||||
[bar/example]
|
||||
#monitor = ${env:MONITOR:HDMI-1}
|
||||
width = 100%
|
||||
height = 26
|
||||
fixed-center = true
|
||||
locale = en_US.UTF-8
|
||||
|
||||
background = ${colors.background}
|
||||
foreground = ${colors.foreground}
|
||||
|
||||
line-size = 1
|
||||
line-color = #f00
|
||||
|
||||
padding-left = 0
|
||||
padding-right = 0
|
||||
module-margin-left = 1
|
||||
module-margin-right = 1
|
||||
|
||||
; Fonts
|
||||
font-0 = Iosevka Nerd Font:style=Medium:size=8;3
|
||||
font-1 = FontAwesome5Free:style=Solid:size=7.5;2.5
|
||||
font-2 = Weather Icons:size=7;2
|
||||
font-3 = FontAwesome5Brands:style=Solid:size=7.5;2.5
|
||||
|
||||
############################################################################################################
|
||||
; Modules position
|
||||
modules-left = i3 sp2 openweathermap-simple updates-pacman
|
||||
;modules-center = title
|
||||
modules-center = spotify
|
||||
modules-right = pulseaudio xkeyboard powermenu sp2 calendar
|
||||
tray-position = right
|
||||
tray-padding = 2
|
||||
tray-detached = false
|
||||
|
||||
############################################################################################################
|
||||
# INCLUDE MODULES
|
||||
############################################################################################################
|
||||
[module/filesystem]
|
||||
type = internal/fs
|
||||
interval = 25
|
||||
mount-0 = /
|
||||
mount-1 = /home
|
||||
|
||||
label-mounted = %{F#c38611} %mountpoint%: %percentage_used%%
|
||||
label-unmounted = %mountpoint% not mounted
|
||||
label-unmounted-foreground = ${colors.foreground-alt}
|
||||
|
||||
############################################################################################################
|
||||
[settings]
|
||||
screenchange-reload = true
|
||||
|
||||
############################################################################################################
|
||||
; Used for top and bottom aligned bars
|
||||
[global/wm]
|
||||
margin-top = 5
|
||||
margin-bottom = 5
|
||||
cursor-click = pointer
|
||||
cursor-scroll = ns-resize
|
||||
wm-restack = i3
|
||||
|
||||
############################################################################################################
|
||||
; i3wm workspace indicator
|
||||
[module/i3]
|
||||
type = internal/i3
|
||||
format = <label-state><label-mode>
|
||||
index-sort = true
|
||||
wrapping-scroll = false
|
||||
label-mode-padding = 1
|
||||
label-mode-foreground = #000
|
||||
label-mode-background = ${colors.primary}
|
||||
label-focused = %icon%
|
||||
label-focused-background = 002873C0
|
||||
label-focused-foreground = ${colors.foreground}
|
||||
label-focused-padding = 1
|
||||
label-focused-underline = 018BFF
|
||||
#label-focused-overline = ${colors.primary}
|
||||
|
||||
label-unfocused = %icon%
|
||||
label-unfocused-background = 00255498
|
||||
label-unfocused-foreground = ${colors.foreground}
|
||||
label-unfocused-padding = 1
|
||||
#label-unfocused-underline = 255498
|
||||
#label-unfocused-overline = ${colors.background}
|
||||
|
||||
label-urgent = %icon%
|
||||
label-urgent-background = ${colors.alert}
|
||||
label-urgent-foreground = ${colors.foreground}
|
||||
label-urgent-padding = 1
|
||||
label-urgent-underline = ${colors.alert}
|
||||
#label-urgent-overline = ${colors.background}
|
||||
|
||||
label-visible = %icon%
|
||||
label-visible-background = ${colors.background}
|
||||
label-visible-foreground = ${colors.foreground}
|
||||
label-visible-padding = 1
|
||||
label-visible-underline = ${colors.background}
|
||||
#label-visible-overline = ${colors.background}
|
||||
|
||||
ws-icon-0 = "1;1 "
|
||||
ws-icon-1 = "2;2 "
|
||||
ws-icon-2 = "3;3 "
|
||||
ws-icon-3 = "4;4 "
|
||||
ws-icon-4 = "5;5 "
|
||||
ws-icon-5 = "6;6 "
|
||||
ws-icon-6 = "7;7 "
|
||||
ws-icon-7 = 8;8
|
||||
ws-icon-8 = "9;9 "
|
||||
ws-icon-9 = "10;10 "
|
||||
;label-separator = |
|
||||
|
||||
############################################################################################################
|
||||
# PulseAudio- https://github.com/polybar/polybar/wiki/Module:-pulseaudio
|
||||
[module/pulseaudio]
|
||||
type = internal/pulseaudio
|
||||
format-volume = %{F#61a8ff}<ramp-volume><label-volume>
|
||||
label-volume = %{F#61a8ff} %percentage%%
|
||||
label-volume-foreground = ${root.foreground}
|
||||
label-muted =
|
||||
label-muted-foreground = #e8793e
|
||||
|
||||
ramp-volume-0 =
|
||||
ramp-volume-1 =
|
||||
ramp-volume-2 =
|
||||
ramp-volume-3 =
|
||||
ramp-volume-4 =
|
||||
|
||||
############################################################################################################
|
||||
; CPU Loads - https://github.com/polybar/polybar/wiki/Module:-cpu
|
||||
[module/cpu]
|
||||
type = internal/cpu
|
||||
interval = 2
|
||||
format-prefix = " "
|
||||
format-prefix-foreground = ${colors.foreground-alt}
|
||||
label = %{F#1ecb0b} CPU %percentage%%
|
||||
|
||||
|
||||
############################################################################################################
|
||||
# Memmory(RAM) - https://github.com/polybar/polybar/wiki/Module:-memory
|
||||
[module/memory]
|
||||
type = internal/memory
|
||||
interval = 2
|
||||
format-prefix = " "
|
||||
#format-prefix-foreground = ${colors.foreground-alt}
|
||||
#format-overline = #61C07C
|
||||
#format-underline = #61C07C
|
||||
label = %{F#8d61ff} MEM %percentage_used%%
|
||||
|
||||
############################################################################################################
|
||||
; Weather
|
||||
[module/openweathermap-simple]
|
||||
type = custom/script
|
||||
exec = ~/.config/polybar/scripts/openweathermap-simple.sh
|
||||
interval = 60
|
||||
label-font = 3
|
||||
|
||||
############################################################################################################
|
||||
; Sporify inkator - https://github.com/Jvanrhijn/polybar-spotify
|
||||
[module/spotify]
|
||||
type = custom/script
|
||||
interval = 1
|
||||
format-prefix = " "
|
||||
format = <label>
|
||||
exec = python ~/.config/polybar/scripts/spotify_status.py -f '{artist} - {song}'
|
||||
line-size
|
||||
format-underline = #1db954
|
||||
|
||||
############################################################################################################
|
||||
; Updates cheacker (pacman)
|
||||
[module/updates-pacman]
|
||||
type = custom/script
|
||||
exec = ~/.config/polybar/scripts/updates-pacman.sh
|
||||
interval = 600
|
||||
|
||||
############################################################################################################
|
||||
; Keyboard layout - https://github.com/polybar/polybar/wiki/Module:-xkeyboard
|
||||
[module/xkeyboard]
|
||||
type = internal/xkeyboard
|
||||
blacklist-0 = num lock
|
||||
label-NAME-maxlen = 10
|
||||
format-prefix = ""
|
||||
label-layout = %layout%
|
||||
|
||||
label-indicator-padding = 2
|
||||
label-indicator-margin = 1
|
||||
label-indicator-background = 2B7DBC
|
||||
label-indicator-overline = 2B7DBC
|
||||
label-indicator-underline = 2B7DBC
|
||||
|
||||
############################################################################################################
|
||||
; Battery - https://github.com/polybar/polybar/wiki/Module:-battery
|
||||
[module/battery-combined-tlp]
|
||||
type = custom/script
|
||||
exec = ~/.config/polybar/scripts/battery-combined-tlp.sh
|
||||
interval = 10
|
||||
|
||||
############################################################################################################
|
||||
; Separator
|
||||
[module/sp2]
|
||||
type = custom/text
|
||||
content = "┇"
|
||||
; content-foreground = #93A1A1
|
||||
|
||||
############################################################################################################
|
||||
; Calendar
|
||||
[module/calendar]
|
||||
type = custom/script
|
||||
exec = ~/.config/polybar/scripts/popup-calendar.sh
|
||||
interval = 5
|
||||
click-left = ~/.config/polybar/scripts/popup-calendar.sh --popup &
|
||||
|
||||
############################################################################################################
|
||||
# Date & time - https://github.com/polybar/polybar/wiki/Module:-date
|
||||
[module/date]
|
||||
type = internal/date
|
||||
interval = 1
|
||||
dqate =
|
||||
time =%{F#E0D9FF} %H:%M:%S
|
||||
date-alt =%{F#E0D9FF} %a %e %B %Y
|
||||
time-alt = %H:%M
|
||||
format-prefix =
|
||||
label = %date% %time%
|
||||
|
||||
############################################################################################################
|
||||
; Focus window name - https://github.com/polybar/polybar/wiki/Module:-xwindow
|
||||
[module/title]
|
||||
type = internal/xwindow
|
||||
label = %{F#f0f0f0}%title:0:50:...%
|
||||
label-empty = Empty
|
||||
label-empty-foreground = #707880
|
||||
label-maxlen = 30
|
||||
label-padding = 0
|
||||
4
config/polybar/launch.sh
Executable file
4
config/polybar/launch.sh
Executable file
|
|
@ -0,0 +1,4 @@
|
|||
#!/bin/bash
|
||||
killall -q polybar
|
||||
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
|
||||
polybar example &
|
||||
5
config/polybar/scripts/battery-combined-tlp.sh
Executable file
5
config/polybar/scripts/battery-combined-tlp.sh
Executable file
|
|
@ -0,0 +1,5 @@
|
|||
#!/bin/sh
|
||||
|
||||
battery=$(sudo tlp-stat -b | tac | grep -m 1 "Charge" | tr -d -c "[:digit:],.")
|
||||
|
||||
echo " $battery %"
|
||||
25
config/polybar/scripts/btc
Executable file
25
config/polybar/scripts/btc
Executable file
|
|
@ -0,0 +1,25 @@
|
|||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import json,sys,urllib.request,time
|
||||
|
||||
if len(sys.argv) != 3:
|
||||
print("Usage: btc usd,eur,btc nok")
|
||||
sys.exit()
|
||||
|
||||
currencies = sys.argv[1]
|
||||
basecurrency = sys.argv[2]
|
||||
|
||||
currencyurl = "http://freecurrencyrates.com/api/action.php?do=cvals&iso=" + currencies.replace(',','') + "&f=" + basecurrency + "&v=1&s=cbr"
|
||||
f = urllib.request.urlopen(currencyurl)
|
||||
obj = json.loads(f.read())
|
||||
res="";
|
||||
for c in currencies.split(','):
|
||||
res += c.upper() + ":{:,.2f}".format(1/obj[c.upper()]).replace(',',' ')
|
||||
|
||||
# some unicode currency code replacement (optional)
|
||||
res = res.replace("USD", " $")
|
||||
res = res.replace("EUR", " €")
|
||||
res = res.replace("BTC", " ")
|
||||
|
||||
print(res);
|
||||
57
config/polybar/scripts/openweathermap-simple.sh
Executable file
57
config/polybar/scripts/openweathermap-simple.sh
Executable file
|
|
@ -0,0 +1,57 @@
|
|||
#!/bin/sh
|
||||
API="https://api.openweathermap.org/data/2.5"
|
||||
KEY="34e5d198afe8fb0303e3c3c37774d2ca"
|
||||
CITY="Horodnytsya, UA"
|
||||
UNITS="metric"
|
||||
SYMBOL="°С"
|
||||
|
||||
get_icon() {
|
||||
case $1 in
|
||||
# Icons for weather-icons
|
||||
01d) icon="";;
|
||||
01n) icon="";;
|
||||
02d) icon="";;
|
||||
02n) icon="";;
|
||||
03*) icon="";;
|
||||
04*) icon="";;
|
||||
09d) icon="";;
|
||||
09n) icon="";;
|
||||
10d) icon="";;
|
||||
10n) icon="";;
|
||||
11d) icon="";;
|
||||
11n) icon="";;
|
||||
13d) icon="";;
|
||||
13n) icon="";;
|
||||
50d) icon="";;
|
||||
50n) icon="";;
|
||||
*) icon="";
|
||||
esac
|
||||
|
||||
echo $icon
|
||||
}
|
||||
|
||||
if [ -n "$CITY" ]; then
|
||||
if [ "$CITY" -eq "$CITY" ] 2>/dev/null; then
|
||||
CITY_PARAM="id=$CITY"
|
||||
else
|
||||
CITY_PARAM="q=$CITY"
|
||||
fi
|
||||
|
||||
weather=$(curl -sf "$API/weather?appid=$KEY&$CITY_PARAM&units=$UNITS")
|
||||
else
|
||||
location=$(curl -sf https://location.services.mozilla.com/v1/geolocate?key=geoclue)
|
||||
|
||||
if [ -n "$location" ]; then
|
||||
location_lat="$(echo "$location" | jq '.location.lat')"
|
||||
location_lon="$(echo "$location" | jq '.location.lng')"
|
||||
|
||||
weather=$(curl -sf "$API/weather?appid=$KEY&lat=$location_lat&lon=$location_lon&units=$UNITS")
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "$weather" ]; then
|
||||
weather_temp=$(echo "$weather" | jq ".main.temp" | cut -d "." -f 1)
|
||||
weather_icon=$(echo "$weather" | jq -r ".weather[0].icon")
|
||||
|
||||
echo "$(get_icon "$weather_icon")" "$weather_temp$SYMBOL"
|
||||
fi
|
||||
41
config/polybar/scripts/popup-calendar.sh
Executable file
41
config/polybar/scripts/popup-calendar.sh
Executable file
|
|
@ -0,0 +1,41 @@
|
|||
#!/bin/sh
|
||||
|
||||
BAR_HEIGHT=22 # polybar height
|
||||
BORDER_SIZE=1 # border size from your wm settings
|
||||
YAD_WIDTH=222 # 222 is minimum possible value
|
||||
YAD_HEIGHT=193 # 193 is minimum possible value
|
||||
DATE="$(date +"%a %d %H:%M")"
|
||||
|
||||
case "$1" in
|
||||
--popup)
|
||||
if [ "$(xdotool getwindowfocus getwindowname)" = "yad-calendar" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
eval "$(xdotool getmouselocation --shell)"
|
||||
eval "$(xdotool getdisplaygeometry --shell)"
|
||||
|
||||
# X
|
||||
if [ "$((X + YAD_WIDTH / 2 + BORDER_SIZE))" -gt "$WIDTH" ]; then #Right side
|
||||
: $((pos_x = WIDTH - YAD_WIDTH - BORDER_SIZE))
|
||||
elif [ "$((X - YAD_WIDTH / 2 - BORDER_SIZE))" -lt 0 ]; then #Left side
|
||||
: $((pos_x = BORDER_SIZE))
|
||||
else #Center
|
||||
: $((pos_x = X - YAD_WIDTH / 2))
|
||||
fi
|
||||
|
||||
# Y
|
||||
if [ "$Y" -gt "$((HEIGHT / 2))" ]; then #Bottom
|
||||
: $((pos_y = HEIGHT - YAD_HEIGHT - BAR_HEIGHT - BORDER_SIZE))
|
||||
else #Top
|
||||
: $((pos_y = BAR_HEIGHT + BORDER_SIZE))
|
||||
fi
|
||||
|
||||
yad --calendar --undecorated --fixed --close-on-unfocus --no-buttons \
|
||||
--width="$YAD_WIDTH" --height="$YAD_HEIGHT" --posx="$pos_x" --posy="$pos_y" \
|
||||
--title="yad-calendar" --borders=0 >/dev/null &
|
||||
;;
|
||||
*)
|
||||
echo "$DATE"
|
||||
;;
|
||||
esac
|
||||
15
config/polybar/scripts/redshift.sh
Executable file
15
config/polybar/scripts/redshift.sh
Executable file
|
|
@ -0,0 +1,15 @@
|
|||
#!/bin/sh
|
||||
|
||||
if [ "$(pgrep -x redshift)" ]; then
|
||||
temp=$(redshift -p 2> /dev/null | grep temp | cut -d ":" -f 2 | tr -dc "[:digit:]")
|
||||
|
||||
if [ -z "$temp" ]; then
|
||||
echo "%{F#65737E} #"
|
||||
elif [ "$temp" -ge 5000 ]; then
|
||||
echo "%{F#8FA1B3} #"
|
||||
elif [ "$temp" -ge 4000 ]; then
|
||||
echo "%{F#EBCB8B} #"
|
||||
else
|
||||
echo "%{F#D08770} #"
|
||||
fi
|
||||
fi
|
||||
140
config/polybar/scripts/spotify_status.py
Normal file
140
config/polybar/scripts/spotify_status.py
Normal file
|
|
@ -0,0 +1,140 @@
|
|||
#!/usr/bin/env python
|
||||
import sys
|
||||
import dbus
|
||||
import argparse
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument(
|
||||
'-t',
|
||||
'--trunclen',
|
||||
type=int,
|
||||
metavar='trunclen'
|
||||
)
|
||||
parser.add_argument(
|
||||
'-f',
|
||||
'--format',
|
||||
type=str,
|
||||
metavar='custom format',
|
||||
dest='custom_format'
|
||||
)
|
||||
parser.add_argument(
|
||||
'-p',
|
||||
'--playpause',
|
||||
type=str,
|
||||
metavar='play-pause indicator',
|
||||
dest='play_pause'
|
||||
)
|
||||
parser.add_argument(
|
||||
'--font',
|
||||
type=str,
|
||||
metavar='the index of the font to use for the main label',
|
||||
dest='font'
|
||||
)
|
||||
parser.add_argument(
|
||||
'--playpause-font',
|
||||
type=str,
|
||||
metavar='the index of the font to use to display the playpause indicator',
|
||||
dest='play_pause_font'
|
||||
)
|
||||
parser.add_argument(
|
||||
'-q',
|
||||
'--quiet',
|
||||
action='store_true',
|
||||
help="if set, don't show any output when the current song is paused",
|
||||
dest='quiet',
|
||||
)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
|
||||
def fix_string(string):
|
||||
# corrects encoding for the python version used
|
||||
if sys.version_info.major == 3:
|
||||
return string
|
||||
else:
|
||||
return string.encode('utf-8')
|
||||
|
||||
|
||||
def truncate(name, trunclen):
|
||||
if len(name) > trunclen:
|
||||
name = name[:trunclen]
|
||||
name += '...'
|
||||
if ('(' in name) and (')' not in name):
|
||||
name += ')'
|
||||
return name
|
||||
|
||||
|
||||
|
||||
# Default parameters
|
||||
output = fix_string(u'{play_pause} {artist}: {song}')
|
||||
trunclen = 35
|
||||
play_pause = fix_string(u'\u25B6,\u23F8') # first character is play, second is paused
|
||||
|
||||
label_with_font = '%{{T{font}}}{label}%{{T-}}'
|
||||
font = args.font
|
||||
play_pause_font = args.play_pause_font
|
||||
|
||||
quiet = args.quiet
|
||||
|
||||
# parameters can be overwritten by args
|
||||
if args.trunclen is not None:
|
||||
trunclen = args.trunclen
|
||||
if args.custom_format is not None:
|
||||
output = args.custom_format
|
||||
if args.play_pause is not None:
|
||||
play_pause = args.play_pause
|
||||
|
||||
try:
|
||||
session_bus = dbus.SessionBus()
|
||||
spotify_bus = session_bus.get_object(
|
||||
'org.mpris.MediaPlayer2.spotify',
|
||||
'/org/mpris/MediaPlayer2'
|
||||
)
|
||||
|
||||
spotify_properties = dbus.Interface(
|
||||
spotify_bus,
|
||||
'org.freedesktop.DBus.Properties'
|
||||
)
|
||||
|
||||
metadata = spotify_properties.Get('org.mpris.MediaPlayer2.Player', 'Metadata')
|
||||
status = spotify_properties.Get('org.mpris.MediaPlayer2.Player', 'PlaybackStatus')
|
||||
|
||||
# Handle play/pause label
|
||||
|
||||
play_pause = play_pause.split(',')
|
||||
|
||||
if status == 'Playing':
|
||||
play_pause = play_pause[0]
|
||||
elif status == 'Paused':
|
||||
play_pause = play_pause[1]
|
||||
else:
|
||||
play_pause = str()
|
||||
|
||||
if play_pause_font:
|
||||
play_pause = label_with_font.format(font=play_pause_font, label=play_pause)
|
||||
|
||||
# Handle main label
|
||||
|
||||
artist = fix_string(metadata['xesam:artist'][0]) if metadata['xesam:artist'] else ''
|
||||
song = fix_string(metadata['xesam:title']) if metadata['xesam:title'] else ''
|
||||
album = fix_string(metadata['xesam:album']) if metadata['xesam:album'] else ''
|
||||
|
||||
if (quiet and status == 'Paused') or (not artist and not song and not album):
|
||||
print('')
|
||||
else:
|
||||
if font:
|
||||
artist = label_with_font.format(font=font, label=artist)
|
||||
song = label_with_font.format(font=font, label=song)
|
||||
album = label_with_font.format(font=font, label=album)
|
||||
|
||||
# Add 4 to trunclen to account for status symbol, spaces, and other padding characters
|
||||
print(truncate(output.format(artist=artist,
|
||||
song=song,
|
||||
play_pause=play_pause,
|
||||
album=album), trunclen + 4))
|
||||
|
||||
except Exception as e:
|
||||
if isinstance(e, dbus.exceptions.DBusException):
|
||||
print('')
|
||||
else:
|
||||
print(e)
|
||||
16
config/polybar/scripts/updates-pacman.sh
Executable file
16
config/polybar/scripts/updates-pacman.sh
Executable file
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
if ! updates_arch=$(checkupdates 2> /dev/null | wc -l ); then
|
||||
updates_arch=0
|
||||
fi
|
||||
|
||||
if ! updates_aur=$(yay -Qum 2> /dev/null | wc -l); then
|
||||
updates_aur=0
|
||||
fi
|
||||
|
||||
updates=$(("$updates_arch" + "$updates_aur"))
|
||||
|
||||
if [ "$updates" -gt 0 ]; then
|
||||
echo "# $updates"
|
||||
else
|
||||
echo ""
|
||||
fi
|
||||
16
config/redshift.conf
Normal file
16
config/redshift.conf
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
[redshift]
|
||||
temp-day=6500
|
||||
temp-night=4000
|
||||
transition=1
|
||||
brightness-day=1.0
|
||||
brightness-night=0.9
|
||||
gamma=0.8
|
||||
location-provider=manual
|
||||
adjustment-method=randr
|
||||
|
||||
[manual]
|
||||
lat=50.807
|
||||
lon= 27.3168
|
||||
|
||||
[randr]
|
||||
screen=0
|
||||
1
config/rofi/config
Normal file
1
config/rofi/config
Normal file
|
|
@ -0,0 +1 @@
|
|||
rofi.theme: solarized
|
||||
246
config/rofi/rofi-power-menu
Executable file
246
config/rofi/rofi-power-menu
Executable file
|
|
@ -0,0 +1,246 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# This script defines just a mode for rofi instead of being a self-contained
|
||||
# executable that launches rofi by itself. This makes it more flexible than
|
||||
# running rofi inside this script as now the user can call rofi as one pleases.
|
||||
# For instance:
|
||||
#
|
||||
# rofi -show powermenu -modi powermenu:./rofi-power-menu
|
||||
#
|
||||
# See README.md for more information.
|
||||
|
||||
set -e
|
||||
set -u
|
||||
|
||||
# All supported choices
|
||||
all=(shutdown reboot suspend hibernate logout lockscreen)
|
||||
|
||||
# By default, show all (i.e., just copy the array)
|
||||
show=("${all[@]}")
|
||||
|
||||
declare -A texts
|
||||
texts[lockscreen]="lock screen"
|
||||
texts[switchuser]="switch user"
|
||||
texts[logout]="log out"
|
||||
texts[suspend]="suspend"
|
||||
texts[hibernate]="hibernate"
|
||||
texts[reboot]="reboot"
|
||||
texts[shutdown]="shut down"
|
||||
|
||||
declare -A icons
|
||||
icons[lockscreen]="\uf023"
|
||||
icons[switchuser]="\uf518"
|
||||
icons[logout]="\uf842"
|
||||
icons[suspend]="\uf9b1"
|
||||
icons[hibernate]="\uf7c9"
|
||||
icons[reboot]="\ufc07"
|
||||
icons[shutdown]="\uf011"
|
||||
icons[cancel]="\u00d7"
|
||||
|
||||
declare -A actions
|
||||
actions[lockscreen]="loginctl lock-session $XDG_SESSION_ID"
|
||||
#actions[switchuser]="???"
|
||||
actions[logout]="loginctl terminate-session $XDG_SESSION_ID"
|
||||
actions[suspend]="systemctl suspend"
|
||||
actions[hibernate]="systemctl hibernate"
|
||||
actions[reboot]="systemctl reboot"
|
||||
actions[shutdown]="systemctl poweroff"
|
||||
|
||||
# By default, ask for confirmation for actions that are irreversible
|
||||
confirmations=(reboot shutdown logout)
|
||||
|
||||
# By default, no dry run
|
||||
dryrun=false
|
||||
showsymbols=true
|
||||
|
||||
function check_valid {
|
||||
option="$1"
|
||||
shift 1
|
||||
for entry in "${@}"
|
||||
do
|
||||
if [ -z "${actions[$entry]+x}" ]
|
||||
then
|
||||
echo "Invalid choice in $1: $entry" >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Parse command-line options
|
||||
parsed=$(getopt --options=h --longoptions=help,dry-run,confirm:,choices:,choose:,symbols,no-symbols --name "$0" -- "$@")
|
||||
if [ $? -ne 0 ]; then
|
||||
echo 'Terminating...' >&2
|
||||
exit 1
|
||||
fi
|
||||
eval set -- "$parsed"
|
||||
unset parsed
|
||||
while true; do
|
||||
case "$1" in
|
||||
"-h"|"--help")
|
||||
echo "rofi-power-menu - a power menu mode for Rofi"
|
||||
echo
|
||||
echo "Usage: rofi-power-menu [--choices CHOICES] [--confirm CHOICES]"
|
||||
echo " [--choose CHOICE] [--dry-run] [--symbols|--no-symbols]"
|
||||
echo
|
||||
echo "Use with Rofi in script mode. For instance, to ask for shutdown or reboot:"
|
||||
echo
|
||||
echo " rofi -show menu -modi \"menu:rofi-power-menu --choices=shutdown/reboot\""
|
||||
echo
|
||||
echo "Available options:"
|
||||
echo " --dry-run Don't perform the selected action but print it to stderr."
|
||||
echo " --choices CHOICES Show only the selected choices in the given order. Use / "
|
||||
echo " as the separator. Available choices are lockscreen, logout,"
|
||||
echo " suspend, hibernate, reboot and shutdown. By default, all"
|
||||
echo " available choices are shown."
|
||||
echo " --confirm CHOICES Require confirmation for the gives choices only. Use / as"
|
||||
echo " the separator. Available choices are lockscreen, logout,"
|
||||
echo " suspend, hibernate, reboot and shutdown. By default, only"
|
||||
echo " irreversible actions logout, reboot and shutdown require"
|
||||
echo " confirmation."
|
||||
echo " --choose CHOICE Preselect the given choice and only ask for a confirmation"
|
||||
echo " (if confirmation is set to be requested). It is strongly"
|
||||
echo " recommended to combine this option with --confirm=CHOICE"
|
||||
echo " if the choice wouldn't require confirmation by default."
|
||||
echo " Available choices are lockscreen, logout, suspend,"
|
||||
echo " hibernate, reboot and shutdown."
|
||||
echo " --[no-]symbols Show Unicode symbols or not. Requires a font with support"
|
||||
echo " for the symbols. Use, for instance, fonts from the"
|
||||
echo " Nerdfonts collection. By default, they are shown"
|
||||
echo " -h,--help Show this help text."
|
||||
exit 0
|
||||
;;
|
||||
"--dry-run")
|
||||
dryrun=true
|
||||
shift 1
|
||||
;;
|
||||
"--confirm")
|
||||
IFS='/' read -ra confirmations <<< "$2"
|
||||
check_valid "$1" "${confirmations[@]}"
|
||||
shift 2
|
||||
;;
|
||||
"--choices")
|
||||
IFS='/' read -ra show <<< "$2"
|
||||
check_valid "$1" "${show[@]}"
|
||||
shift 2
|
||||
;;
|
||||
"--choose")
|
||||
# Check that the choice is valid
|
||||
check_valid "$1" "$2"
|
||||
selectionID="$2"
|
||||
shift 2
|
||||
;;
|
||||
"--symbols")
|
||||
showsymbols=true
|
||||
shift 1
|
||||
;;
|
||||
"--no-symbols")
|
||||
showsymbols=false
|
||||
shift 1
|
||||
;;
|
||||
"--")
|
||||
shift
|
||||
break
|
||||
;;
|
||||
*)
|
||||
echo "Internal error" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Define the messages after parsing the CLI options so that it is possible to
|
||||
# configure them in the future.
|
||||
|
||||
function write_message {
|
||||
icon="<span font_size=\"medium\">$1</span>"
|
||||
text="<span font_size=\"medium\">$2</span>"
|
||||
if [ "$showsymbols" = "true" ]
|
||||
then
|
||||
echo -n "\u200e$icon \u2068$text\u2069"
|
||||
else
|
||||
echo -n "$text"
|
||||
fi
|
||||
}
|
||||
|
||||
function print_selection {
|
||||
echo -e "$1" | $(read -r -d '' entry; echo "echo $entry")
|
||||
}
|
||||
|
||||
declare -A messages
|
||||
declare -A confirmationMessages
|
||||
for entry in "${all[@]}"
|
||||
do
|
||||
messages[$entry]=$(write_message "${icons[$entry]}" "${texts[$entry]^}")
|
||||
done
|
||||
for entry in "${all[@]}"
|
||||
do
|
||||
confirmationMessages[$entry]=$(write_message "${icons[$entry]}" "Yes, ${texts[$entry]}")
|
||||
done
|
||||
confirmationMessages[cancel]=$(write_message "${icons[cancel]}" "No, cancel")
|
||||
|
||||
if [ $# -gt 0 ]
|
||||
then
|
||||
# If arguments given, use those as the selection
|
||||
selection="${@}"
|
||||
else
|
||||
# Otherwise, use the CLI passed choice if given
|
||||
if [ -n "${selectionID+x}" ]
|
||||
then
|
||||
selection="${messages[$selectionID]}"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Don't allow custom entries
|
||||
echo -e "\0no-custom\x1ftrue"
|
||||
# Use markup
|
||||
echo -e "\0markup-rows\x1ftrue"
|
||||
|
||||
if [ -z "${selection+x}" ]
|
||||
then
|
||||
echo -e "\0prompt\x1fPower menu"
|
||||
for entry in "${show[@]}"
|
||||
do
|
||||
echo -e "${messages[$entry]}\0icon\x1f${icons[$entry]}"
|
||||
done
|
||||
else
|
||||
for entry in "${show[@]}"
|
||||
do
|
||||
if [ "$selection" = "$(print_selection "${messages[$entry]}")" ]
|
||||
then
|
||||
# Check if the selected entry is listed in confirmation requirements
|
||||
for confirmation in "${confirmations[@]}"
|
||||
do
|
||||
if [ "$entry" = "$confirmation" ]
|
||||
then
|
||||
# Ask for confirmation
|
||||
echo -e "\0prompt\x1fAre you sure"
|
||||
echo -e "${confirmationMessages[$entry]}\0icon\x1f${icons[$entry]}"
|
||||
echo -e "${confirmationMessages[cancel]}\0icon\x1f${icons[cancel]}"
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
# If not, then no confirmation is required, so mark confirmed
|
||||
selection=$(print_selection "${confirmationMessages[$entry]}")
|
||||
fi
|
||||
if [ "$selection" = "$(print_selection "${confirmationMessages[$entry]}")" ]
|
||||
then
|
||||
if [ $dryrun = true ]
|
||||
then
|
||||
# Tell what would have been done
|
||||
echo "Selected: $entry" >&2
|
||||
else
|
||||
# Perform the action
|
||||
${actions[$entry]}
|
||||
fi
|
||||
exit 0
|
||||
fi
|
||||
if [ "$selection" = "$(print_selection "${confirmationMessages[cancel]}")" ]
|
||||
then
|
||||
# Do nothing
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
# The selection didn't match anything, so raise an error
|
||||
echo "Invalid selection: $selection" >&2
|
||||
exit 1
|
||||
fi
|
||||
136
config/rofi/solarized.rasi
Normal file
136
config/rofi/solarized.rasi
Normal file
|
|
@ -0,0 +1,136 @@
|
|||
* {
|
||||
selected-normal-foreground: rgba ( 129, 147, 150, 100 % );
|
||||
foreground: rgba ( 129, 147, 150, 100 % );
|
||||
normal-foreground: @foreground;
|
||||
alternate-normal-background: rgba ( 0, 43, 55, 100 % );
|
||||
red: rgba ( 220, 50, 47, 100 % );
|
||||
selected-urgent-foreground: rgba ( 218, 66, 129, 100 % );
|
||||
blue: rgba ( 38, 139, 210, 100 % );
|
||||
urgent-foreground: rgba ( 218, 66, 129, 100 % );
|
||||
alternate-urgent-background: rgba ( 0, 43, 55, 100 % );
|
||||
active-foreground: rgba ( 0, 142, 212, 100 % );
|
||||
lightbg: rgba ( 238, 232, 213, 100 % );
|
||||
selected-active-foreground: rgba ( 0, 142, 212, 100 % );
|
||||
alternate-active-background: rgba ( 0, 43, 55, 100 % );
|
||||
background: rgba ( 0, 43, 55, 100 % );
|
||||
bordercolor: rgba ( 0, 43, 55, 100 % );
|
||||
alternate-normal-foreground: @foreground;
|
||||
normal-background: rgba ( 0, 43, 55, 100 % );
|
||||
lightfg: rgba ( 88, 104, 117, 100 % );
|
||||
selected-normal-background: rgba ( 0, 54, 66, 100 % );
|
||||
border-color: @foreground;
|
||||
spacing: 2;
|
||||
separatorcolor: rgba ( 0, 54, 66, 100 % );
|
||||
urgent-background: rgba ( 0, 43, 55, 100 % );
|
||||
selected-urgent-background: rgba ( 0, 54, 66, 100 % );
|
||||
alternate-urgent-foreground: @urgent-foreground;
|
||||
background-color: rgba ( 0, 0, 0, 0 % );
|
||||
alternate-active-foreground: @active-foreground;
|
||||
active-background: rgba ( 0, 43, 55, 100 % );
|
||||
selected-active-background: rgba ( 0, 54, 66, 100 % );
|
||||
}
|
||||
#window {
|
||||
background-color: @background;
|
||||
border: 1;
|
||||
padding: 5;
|
||||
}
|
||||
#mainbox {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
#message {
|
||||
border: 1px dash 0px 0px ;
|
||||
border-color: @separatorcolor;
|
||||
padding: 1px ;
|
||||
}
|
||||
#textbox {
|
||||
text-color: @foreground;
|
||||
}
|
||||
#listview {
|
||||
fixed-height: 0;
|
||||
border: 2px dash 0px 0px ;
|
||||
border-color: @separatorcolor;
|
||||
spacing: 2px ;
|
||||
scrollbar: true;
|
||||
padding: 2px 0px 0px ;
|
||||
}
|
||||
#element {
|
||||
border: 0;
|
||||
padding: 1px ;
|
||||
}
|
||||
#element.normal.normal {
|
||||
background-color: @normal-background;
|
||||
text-color: @normal-foreground;
|
||||
}
|
||||
#element.normal.urgent {
|
||||
background-color: @urgent-background;
|
||||
text-color: @urgent-foreground;
|
||||
}
|
||||
#element.normal.active {
|
||||
background-color: @active-background;
|
||||
text-color: @active-foreground;
|
||||
}
|
||||
#element.selected.normal {
|
||||
background-color: @selected-normal-background;
|
||||
text-color: @selected-normal-foreground;
|
||||
}
|
||||
#element.selected.urgent {
|
||||
background-color: @selected-urgent-background;
|
||||
text-color: @selected-urgent-foreground;
|
||||
}
|
||||
#element.selected.active {
|
||||
background-color: @selected-active-background;
|
||||
text-color: @selected-active-foreground;
|
||||
}
|
||||
#element.alternate.normal {
|
||||
background-color: @alternate-normal-background;
|
||||
text-color: @alternate-normal-foreground;
|
||||
}
|
||||
#element.alternate.urgent {
|
||||
background-color: @alternate-urgent-background;
|
||||
text-color: @alternate-urgent-foreground;
|
||||
}
|
||||
#element.alternate.active {
|
||||
background-color: @alternate-active-background;
|
||||
text-color: @alternate-active-foreground;
|
||||
}
|
||||
#scrollbar {
|
||||
width: 4px ;
|
||||
border: 0;
|
||||
handle-width: 8px ;
|
||||
padding: 0;
|
||||
}
|
||||
#mode-switcher {
|
||||
border: 2px dash 0px 0px ;
|
||||
border-color: @separatorcolor;
|
||||
}
|
||||
#button.selected {
|
||||
background-color: @selected-normal-background;
|
||||
text-color: @selected-normal-foreground;
|
||||
}
|
||||
#inputbar {
|
||||
spacing: 0;
|
||||
text-color: @normal-foreground;
|
||||
padding: 1px ;
|
||||
}
|
||||
#case-indicator {
|
||||
spacing: 0;
|
||||
text-color: @normal-foreground;
|
||||
}
|
||||
#entry {
|
||||
spacing: 0;
|
||||
text-color: @normal-foreground;
|
||||
}
|
||||
#prompt {
|
||||
spacing: 0;
|
||||
text-color: @normal-foreground;
|
||||
}
|
||||
#inputbar {
|
||||
children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
|
||||
}
|
||||
#textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: ":";
|
||||
margin: 0px 0.3em 0em 0em ;
|
||||
text-color: @normal-foreground;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue