mirror of
https://github.com/ksyasuda/rice.git
synced 2024-11-22 03:19:58 -08:00
Merge branch 'dev' of github.com:ksyasuda/SudacodeRice into dev
This commit is contained in:
commit
18d2877376
@ -141,3 +141,8 @@
|
|||||||
;; (add-to-list 'company-backends 'company-jedi))
|
;; (add-to-list 'company-backends 'company-jedi))
|
||||||
|
|
||||||
(add-to-list 'company-backends 'company-shell)
|
(add-to-list 'company-backends 'company-shell)
|
||||||
|
|
||||||
|
(setq jedi:setup-keys t)
|
||||||
|
(setq jedi:complete-on-dot t)
|
||||||
|
(setq jedi:environment-virtualenv ["source", "env/bin/activate"])
|
||||||
|
(add-hook 'python-mode-hook 'jedi:setup)
|
||||||
|
@ -49,6 +49,7 @@
|
|||||||
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
|
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
|
||||||
;(unpin! t)
|
;(unpin! t)
|
||||||
|
|
||||||
|
(package! pyenv-mode)
|
||||||
(package! company-mode)
|
(package! company-mode)
|
||||||
(package! lsp-jedi)
|
(package! lsp-jedi)
|
||||||
(package! company-jedi)
|
(package! company-jedi)
|
||||||
|
@ -13,547 +13,3 @@ def_key "h"
|
|||||||
def_key "ctrl-l"
|
def_key "ctrl-l"
|
||||||
show_lyrics
|
show_lyrics
|
||||||
|
|
||||||
#def_key "mouse"
|
|
||||||
# mouse_event
|
|
||||||
#
|
|
||||||
#def_key "up"
|
|
||||||
# scroll_up
|
|
||||||
#
|
|
||||||
#def_key "shift-up"
|
|
||||||
# select_item
|
|
||||||
# scroll_up
|
|
||||||
#
|
|
||||||
#def_key "down"
|
|
||||||
# scroll_down
|
|
||||||
#
|
|
||||||
#def_key "shift-down"
|
|
||||||
# select_item
|
|
||||||
# scroll_down
|
|
||||||
#
|
|
||||||
#def_key "["
|
|
||||||
# scroll_up_album
|
|
||||||
#
|
|
||||||
#def_key "]"
|
|
||||||
# scroll_down_album
|
|
||||||
#
|
|
||||||
#def_key "{"
|
|
||||||
# scroll_up_artist
|
|
||||||
#
|
|
||||||
#def_key "}"
|
|
||||||
# scroll_down_artist
|
|
||||||
#
|
|
||||||
#def_key "page_up"
|
|
||||||
# page_up
|
|
||||||
#
|
|
||||||
#def_key "page_down"
|
|
||||||
# page_down
|
|
||||||
#
|
|
||||||
#def_key "home"
|
|
||||||
# move_home
|
|
||||||
#
|
|
||||||
#def_key "end"
|
|
||||||
# move_end
|
|
||||||
#
|
|
||||||
#def_key "insert"
|
|
||||||
# select_item
|
|
||||||
#
|
|
||||||
#def_key "enter"
|
|
||||||
# enter_directory
|
|
||||||
#
|
|
||||||
#def_key "enter"
|
|
||||||
# toggle_output
|
|
||||||
#
|
|
||||||
#def_key "enter"
|
|
||||||
# run_action
|
|
||||||
#
|
|
||||||
#def_key "enter"
|
|
||||||
# play_item
|
|
||||||
#
|
|
||||||
#def_key "space"
|
|
||||||
# add_item_to_playlist
|
|
||||||
#
|
|
||||||
#def_key "space"
|
|
||||||
# toggle_lyrics_update_on_song_change
|
|
||||||
#
|
|
||||||
#def_key "space"
|
|
||||||
# toggle_visualization_type
|
|
||||||
#
|
|
||||||
#def_key "delete"
|
|
||||||
# delete_playlist_items
|
|
||||||
#
|
|
||||||
#def_key "delete"
|
|
||||||
# delete_browser_items
|
|
||||||
#
|
|
||||||
#def_key "delete"
|
|
||||||
# delete_stored_playlist
|
|
||||||
#
|
|
||||||
#def_key "right"
|
|
||||||
# next_column
|
|
||||||
#
|
|
||||||
#def_key "right"
|
|
||||||
# slave_screen
|
|
||||||
#
|
|
||||||
#def_key "right"
|
|
||||||
# volume_up
|
|
||||||
#
|
|
||||||
#def_key "+"
|
|
||||||
# volume_up
|
|
||||||
#
|
|
||||||
#def_key "left"
|
|
||||||
# previous_column
|
|
||||||
#
|
|
||||||
#def_key "left"
|
|
||||||
# master_screen
|
|
||||||
#
|
|
||||||
#def_key "left"
|
|
||||||
# volume_down
|
|
||||||
#
|
|
||||||
#def_key "-"
|
|
||||||
# volume_down
|
|
||||||
#
|
|
||||||
#def_key ":"
|
|
||||||
# execute_command
|
|
||||||
#
|
|
||||||
#def_key "tab"
|
|
||||||
# next_screen
|
|
||||||
#
|
|
||||||
#def_key "shift-tab"
|
|
||||||
# previous_screen
|
|
||||||
#
|
|
||||||
#def_key "f1"
|
|
||||||
# show_help
|
|
||||||
#
|
|
||||||
#def_key "1"
|
|
||||||
# show_playlist
|
|
||||||
#
|
|
||||||
#def_key "2"
|
|
||||||
# show_browser
|
|
||||||
#
|
|
||||||
#def_key "2"
|
|
||||||
# change_browse_mode
|
|
||||||
#
|
|
||||||
#def_key "3"
|
|
||||||
# show_search_engine
|
|
||||||
#
|
|
||||||
#def_key "3"
|
|
||||||
# reset_search_engine
|
|
||||||
#
|
|
||||||
#def_key "4"
|
|
||||||
# show_media_library
|
|
||||||
#
|
|
||||||
#def_key "4"
|
|
||||||
# toggle_media_library_columns_mode
|
|
||||||
#
|
|
||||||
#def_key "5"
|
|
||||||
# show_playlist_editor
|
|
||||||
#
|
|
||||||
#def_key "6"
|
|
||||||
# show_tag_editor
|
|
||||||
#
|
|
||||||
#def_key "7"
|
|
||||||
# show_outputs
|
|
||||||
#
|
|
||||||
#def_key "8"
|
|
||||||
# show_visualizer
|
|
||||||
#
|
|
||||||
#def_key "="
|
|
||||||
# show_clock
|
|
||||||
#
|
|
||||||
#def_key "@"
|
|
||||||
# show_server_info
|
|
||||||
#
|
|
||||||
#def_key "s"
|
|
||||||
# stop
|
|
||||||
#
|
|
||||||
#def_key "p"
|
|
||||||
# pause
|
|
||||||
#
|
|
||||||
#def_key ">"
|
|
||||||
# next
|
|
||||||
#
|
|
||||||
#def_key "<"
|
|
||||||
# previous
|
|
||||||
#
|
|
||||||
#def_key "ctrl-h"
|
|
||||||
# jump_to_parent_directory
|
|
||||||
#
|
|
||||||
#def_key "ctrl-h"
|
|
||||||
# replay_song
|
|
||||||
#
|
|
||||||
#def_key "backspace"
|
|
||||||
# jump_to_parent_directory
|
|
||||||
#
|
|
||||||
#def_key "backspace"
|
|
||||||
# replay_song
|
|
||||||
#
|
|
||||||
#def_key "backspace"
|
|
||||||
# play
|
|
||||||
#
|
|
||||||
#def_key "f"
|
|
||||||
# seek_forward
|
|
||||||
#
|
|
||||||
#def_key "b"
|
|
||||||
# seek_backward
|
|
||||||
#
|
|
||||||
#def_key "r"
|
|
||||||
# toggle_repeat
|
|
||||||
#
|
|
||||||
#def_key "z"
|
|
||||||
# toggle_random
|
|
||||||
#
|
|
||||||
#def_key "y"
|
|
||||||
# save_tag_changes
|
|
||||||
#
|
|
||||||
#def_key "y"
|
|
||||||
# start_searching
|
|
||||||
#
|
|
||||||
#def_key "y"
|
|
||||||
# toggle_single
|
|
||||||
#
|
|
||||||
#def_key "R"
|
|
||||||
# toggle_consume
|
|
||||||
#
|
|
||||||
#def_key "Y"
|
|
||||||
# toggle_replay_gain_mode
|
|
||||||
#
|
|
||||||
#def_key "T"
|
|
||||||
# toggle_add_mode
|
|
||||||
#
|
|
||||||
#def_key "|"
|
|
||||||
# toggle_mouse
|
|
||||||
#
|
|
||||||
#def_key "#"
|
|
||||||
# toggle_bitrate_visibility
|
|
||||||
#
|
|
||||||
#def_key "Z"
|
|
||||||
# shuffle
|
|
||||||
#
|
|
||||||
#def_key "x"
|
|
||||||
# toggle_crossfade
|
|
||||||
#
|
|
||||||
#def_key "X"
|
|
||||||
# set_crossfade
|
|
||||||
#
|
|
||||||
#def_key "u"
|
|
||||||
# update_database
|
|
||||||
#
|
|
||||||
#def_key "ctrl-s"
|
|
||||||
# sort_playlist
|
|
||||||
#
|
|
||||||
#def_key "ctrl-s"
|
|
||||||
# toggle_browser_sort_mode
|
|
||||||
#
|
|
||||||
#def_key "ctrl-s"
|
|
||||||
# toggle_media_library_sort_mode
|
|
||||||
#
|
|
||||||
#def_key "ctrl-r"
|
|
||||||
# reverse_playlist
|
|
||||||
#
|
|
||||||
#def_key "ctrl-f"
|
|
||||||
# apply_filter
|
|
||||||
#
|
|
||||||
#def_key "ctrl-_"
|
|
||||||
# select_found_items
|
|
||||||
#
|
|
||||||
#def_key "/"
|
|
||||||
# find
|
|
||||||
#
|
|
||||||
#def_key "/"
|
|
||||||
# find_item_forward
|
|
||||||
#
|
|
||||||
#def_key "?"
|
|
||||||
# find
|
|
||||||
#
|
|
||||||
#def_key "?"
|
|
||||||
# find_item_backward
|
|
||||||
#
|
|
||||||
#def_key "."
|
|
||||||
# next_found_item
|
|
||||||
#
|
|
||||||
#def_key ","
|
|
||||||
# previous_found_item
|
|
||||||
#
|
|
||||||
#def_key "w"
|
|
||||||
# toggle_find_mode
|
|
||||||
#
|
|
||||||
#def_key "e"
|
|
||||||
# edit_song
|
|
||||||
#
|
|
||||||
#def_key "e"
|
|
||||||
# edit_library_tag
|
|
||||||
#
|
|
||||||
#def_key "e"
|
|
||||||
# edit_library_album
|
|
||||||
#
|
|
||||||
#def_key "e"
|
|
||||||
# edit_directory_name
|
|
||||||
#
|
|
||||||
#def_key "e"
|
|
||||||
# edit_playlist_name
|
|
||||||
#
|
|
||||||
#def_key "e"
|
|
||||||
# edit_lyrics
|
|
||||||
#
|
|
||||||
#def_key "i"
|
|
||||||
# show_song_info
|
|
||||||
#
|
|
||||||
#def_key "I"
|
|
||||||
# show_artist_info
|
|
||||||
#
|
|
||||||
#def_key "g"
|
|
||||||
# jump_to_position_in_song
|
|
||||||
#
|
|
||||||
#def_key "l"
|
|
||||||
# show_lyrics
|
|
||||||
#
|
|
||||||
#def_key "ctrl-v"
|
|
||||||
# select_range
|
|
||||||
#
|
|
||||||
#def_key "v"
|
|
||||||
# reverse_selection
|
|
||||||
#
|
|
||||||
#def_key "V"
|
|
||||||
# remove_selection
|
|
||||||
#
|
|
||||||
#def_key "B"
|
|
||||||
# select_album
|
|
||||||
#
|
|
||||||
#def_key "a"
|
|
||||||
# add_selected_items
|
|
||||||
#
|
|
||||||
#def_key "c"
|
|
||||||
# clear_playlist
|
|
||||||
#
|
|
||||||
#def_key "c"
|
|
||||||
# clear_main_playlist
|
|
||||||
#
|
|
||||||
#def_key "C"
|
|
||||||
# crop_playlist
|
|
||||||
#
|
|
||||||
#def_key "C"
|
|
||||||
# crop_main_playlist
|
|
||||||
#
|
|
||||||
#def_key "m"
|
|
||||||
# move_sort_order_up
|
|
||||||
#
|
|
||||||
#def_key "m"
|
|
||||||
# move_selected_items_up
|
|
||||||
#
|
|
||||||
#def_key "n"
|
|
||||||
# move_sort_order_down
|
|
||||||
#
|
|
||||||
#def_key "n"
|
|
||||||
# move_selected_items_down
|
|
||||||
#
|
|
||||||
#def_key "M"
|
|
||||||
# move_selected_items_to
|
|
||||||
#
|
|
||||||
#def_key "A"
|
|
||||||
# add
|
|
||||||
#
|
|
||||||
#def_key "S"
|
|
||||||
# save_playlist
|
|
||||||
#
|
|
||||||
#def_key "o"
|
|
||||||
# jump_to_playing_song
|
|
||||||
#
|
|
||||||
#def_key "G"
|
|
||||||
# jump_to_browser
|
|
||||||
#
|
|
||||||
#def_key "G"
|
|
||||||
# jump_to_playlist_editor
|
|
||||||
#
|
|
||||||
#def_key "~"
|
|
||||||
# jump_to_media_library
|
|
||||||
#
|
|
||||||
#def_key "E"
|
|
||||||
# jump_to_tag_editor
|
|
||||||
#
|
|
||||||
#def_key "U"
|
|
||||||
# toggle_playing_song_centering
|
|
||||||
#
|
|
||||||
#def_key "P"
|
|
||||||
# toggle_display_mode
|
|
||||||
#
|
|
||||||
#def_key "\\"
|
|
||||||
# toggle_interface
|
|
||||||
#
|
|
||||||
#def_key "!"
|
|
||||||
# toggle_separators_between_albums
|
|
||||||
#
|
|
||||||
#def_key "L"
|
|
||||||
# toggle_lyrics_fetcher
|
|
||||||
#
|
|
||||||
#def_key "F"
|
|
||||||
# fetch_lyrics_in_background
|
|
||||||
#
|
|
||||||
#def_key "alt-l"
|
|
||||||
# toggle_fetching_lyrics_in_background
|
|
||||||
#
|
|
||||||
#def_key "ctrl-l"
|
|
||||||
# toggle_screen_lock
|
|
||||||
#
|
|
||||||
#def_key "`"
|
|
||||||
# toggle_library_tag_type
|
|
||||||
#
|
|
||||||
#def_key "`"
|
|
||||||
# refetch_lyrics
|
|
||||||
#
|
|
||||||
#def_key "`"
|
|
||||||
# add_random_items
|
|
||||||
#
|
|
||||||
#def_key "ctrl-p"
|
|
||||||
# set_selected_items_priority
|
|
||||||
#
|
|
||||||
#def_key "q"
|
|
||||||
# quit
|
|
||||||
#
|
|
||||||
##### General rules #####
|
|
||||||
##
|
|
||||||
## 1) Because each action has runtime checks whether it's
|
|
||||||
## ok to run it, a few actions can be bound to one key.
|
|
||||||
## Actions will be bound in order given in configuration
|
|
||||||
## file. When a key is pressed, first action in order
|
|
||||||
## will test itself whether it's possible to run it. If
|
|
||||||
## test succeeds, action is executed and other actions
|
|
||||||
## bound to this key are ignored. If it doesn't, next
|
|
||||||
## action in order tests itself etc.
|
|
||||||
##
|
|
||||||
## 2) It's possible to bind more that one action at once
|
|
||||||
## to a key. It can be done using the following syntax:
|
|
||||||
##
|
|
||||||
## def_key "key"
|
|
||||||
## action1
|
|
||||||
## action2
|
|
||||||
## ...
|
|
||||||
##
|
|
||||||
## This creates a chain of actions. When such chain is
|
|
||||||
## executed, each action in chain is run until the end of
|
|
||||||
## chain is reached or one of its actions fails to execute
|
|
||||||
## due to its requirements not being met. If multiple actions
|
|
||||||
## and/or chains are bound to the same key, they will be
|
|
||||||
## consecutively run until one of them gets fully executed.
|
|
||||||
##
|
|
||||||
## 3) When ncmpcpp starts, bindings configuration file is
|
|
||||||
## parsed and then ncmpcpp provides "missing pieces"
|
|
||||||
## of default keybindings. If you want to disable some
|
|
||||||
## bindings, there is a special action called 'dummy'
|
|
||||||
## for that purpose. Eg. if you want to disable ability
|
|
||||||
## to crop playlists, you need to put the following
|
|
||||||
## into configuration file:
|
|
||||||
##
|
|
||||||
## def_key "C"
|
|
||||||
## dummy
|
|
||||||
##
|
|
||||||
## After that ncmpcpp will not bind any default action
|
|
||||||
## to this key.
|
|
||||||
##
|
|
||||||
## 4) To let you write simple macros, the following special
|
|
||||||
## actions are provided:
|
|
||||||
##
|
|
||||||
## - push_character "character" - pushes given special
|
|
||||||
## character into input queue, so it will be immediately
|
|
||||||
## picked by ncmpcpp upon next call to readKey function.
|
|
||||||
## Accepted values: mouse, up, down, page_up, page_down,
|
|
||||||
## home, end, space, enter, insert, delete, left, right,
|
|
||||||
## tab, ctrl-a, ctrl-b, ..., ctrl-z, ctrl-[, ctrl-\\,
|
|
||||||
## ctrl-], ctrl-^, ctrl-_, f1, f2, ..., f12, backspace.
|
|
||||||
## In addition, most of these names can be prefixed with
|
|
||||||
## alt-/ctrl-/shift- to be recognized with the appropriate
|
|
||||||
## modifier key(s).
|
|
||||||
##
|
|
||||||
## - push_characters "string" - pushes given string into
|
|
||||||
## input queue.
|
|
||||||
##
|
|
||||||
## - require_runnable "action" - checks whether given action
|
|
||||||
## is runnable and fails if it isn't. This is especially
|
|
||||||
## useful when mixed with previous two functions. Consider
|
|
||||||
## the following macro definition:
|
|
||||||
##
|
|
||||||
## def_key "key"
|
|
||||||
## push_characters "custom_filter"
|
|
||||||
## apply_filter
|
|
||||||
##
|
|
||||||
## If apply_filter can't be currently run, we end up with
|
|
||||||
## sequence of characters in input queue which will be
|
|
||||||
## treated just as we typed them. This may lead to unexpected
|
|
||||||
## results (in this case 'c' will most likely clear current
|
|
||||||
## playlist, 'u' will trigger database update, 's' will stop
|
|
||||||
## playback etc.). To prevent such thing from happening, we
|
|
||||||
## need to change above definition to this one:
|
|
||||||
##
|
|
||||||
## def_key "key"
|
|
||||||
## require_runnable "apply_filter"
|
|
||||||
## push_characters "custom_filter"
|
|
||||||
## apply_filter
|
|
||||||
##
|
|
||||||
## Here, first we test whether apply_filter can be actually run
|
|
||||||
## before we stuff characters into input queue, so if condition
|
|
||||||
## is not met, whole chain is aborted and we're fine.
|
|
||||||
##
|
|
||||||
## - require_screen "screen" - checks whether given screen is
|
|
||||||
## currently active. accepted values: browser, clock, help,
|
|
||||||
## media_library, outputs, playlist, playlist_editor,
|
|
||||||
## search_engine, tag_editor, visualizer, last_fm, lyrics,
|
|
||||||
## selected_items_adder, server_info, song_info,
|
|
||||||
## sort_playlist_dialog, tiny_tag_editor.
|
|
||||||
##
|
|
||||||
## - run_external_command "command" - runs given command using
|
|
||||||
## system() function.
|
|
||||||
##
|
|
||||||
## - run_external_console_command "command" - runs given console
|
|
||||||
## command using system() function.
|
|
||||||
##
|
|
||||||
##
|
|
||||||
## 5) In addition to binding to a key, you can also bind actions
|
|
||||||
## or chains of actions to a command. If it comes to commands,
|
|
||||||
## syntax is very similar to defining keys. Here goes example
|
|
||||||
## definition of a command:
|
|
||||||
##
|
|
||||||
## def_command "quit" [deferred]
|
|
||||||
## stop
|
|
||||||
## quit
|
|
||||||
##
|
|
||||||
## If you execute the above command (which can be done by
|
|
||||||
## invoking action execute_command, typing 'quit' and pressing
|
|
||||||
## enter), ncmpcpp will stop the player and then quit. Note the
|
|
||||||
## presence of word 'deferred' enclosed in square brackets. It
|
|
||||||
## tells ncmpcpp to wait for confirmation (ie. pressing enter)
|
|
||||||
## after you typed quit. Instead of 'deferred', 'immediate'
|
|
||||||
## could be used. Then ncmpcpp will not wait for confirmation
|
|
||||||
## (enter) and will execute the command the moment it sees it.
|
|
||||||
##
|
|
||||||
## Note: while command chains are executed, internal environment
|
|
||||||
## update (which includes current window refresh and mpd status
|
|
||||||
## update) is not performed for performance reasons. However, it
|
|
||||||
## may be desirable to do so in some situration. Therefore it's
|
|
||||||
## possible to invoke by hand by performing 'update enviroment'
|
|
||||||
## action.
|
|
||||||
##
|
|
||||||
## Note: There is a difference between:
|
|
||||||
##
|
|
||||||
## def_key "key"
|
|
||||||
## action1
|
|
||||||
##
|
|
||||||
## def_key "key"
|
|
||||||
## action2
|
|
||||||
##
|
|
||||||
## and
|
|
||||||
##
|
|
||||||
## def_key "key"
|
|
||||||
## action1
|
|
||||||
## action2
|
|
||||||
##
|
|
||||||
## First one binds two single actions to the same kmpc updateey whilst
|
|
||||||
## second one defines a chain of actions. The behavior of
|
|
||||||
## these two is different and is described in (1) and (2).
|
|
||||||
##
|
|
||||||
## Note: Function def_key accepts non-ascii characters.
|
|
||||||
##
|
|
||||||
##### List of unbound actions #####
|
|
||||||
##
|
|
||||||
## The following actions are not bound to any key/command:
|
|
||||||
##
|
|
||||||
## - set_volume
|
|
||||||
## - load
|
|
||||||
##
|
|
||||||
|
@ -117,9 +117,11 @@ fade-out-step = 0.03;
|
|||||||
|
|
||||||
|
|
||||||
# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
|
# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
|
||||||
# inactive-opacity = 1
|
# inactive-opacity = 0.94;
|
||||||
inactive-opacity = 0.9;
|
# active-opacity = 0.99;
|
||||||
active-opacity = 0.98;
|
|
||||||
|
active-opacity = 1;
|
||||||
|
inactive-opacity = 0.98;
|
||||||
|
|
||||||
# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
|
# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
|
||||||
# frame-opacity = 1.0
|
# frame-opacity = 1.0
|
||||||
@ -202,7 +204,8 @@ blur-kern = "3x3box";
|
|||||||
blur-background-exclude = [
|
blur-background-exclude = [
|
||||||
"window_type = 'dock'",
|
"window_type = 'dock'",
|
||||||
"window_type = 'desktop'",
|
"window_type = 'desktop'",
|
||||||
"_GTK_FRAME_EXTENTS@:c"
|
"_GTK_FRAME_EXTENTS@:c",
|
||||||
|
"name *= 'rect-overlay'"
|
||||||
];
|
];
|
||||||
|
|
||||||
#################################
|
#################################
|
||||||
@ -220,7 +223,7 @@ blur-background-exclude = [
|
|||||||
backend = "glx";
|
backend = "glx";
|
||||||
# Enable/disable VSync.
|
# Enable/disable VSync.
|
||||||
# vsync = false
|
# vsync = false
|
||||||
vsync = false
|
vsync = true
|
||||||
|
|
||||||
# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
|
# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
|
||||||
# dbus = false
|
# dbus = false
|
||||||
@ -426,7 +429,7 @@ unredir-if-possible = false;
|
|||||||
|
|
||||||
wintypes:
|
wintypes:
|
||||||
{
|
{
|
||||||
tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
|
tooltip = { fade = true; shadow = true; opacity = 0.95; focus = true; full-shadow = false; };
|
||||||
dock = { shadow = false; }
|
dock = { shadow = false; }
|
||||||
dnd = { shadow = false; }
|
dnd = { shadow = false; }
|
||||||
popup_menu = { opacity = 0.85; }
|
popup_menu = { opacity = 0.85; }
|
||||||
@ -435,20 +438,23 @@ wintypes:
|
|||||||
|
|
||||||
# ------------
|
# ------------
|
||||||
# ibhagwan
|
# ibhagwan
|
||||||
|
|
||||||
|
|
||||||
|
corner-radius = 11;
|
||||||
# corner-radius = 12;
|
# corner-radius = 12;
|
||||||
corner-radius = 15;
|
# corner-radius = 15;
|
||||||
rounded-corner-exclude = [
|
rounded-corners-exclude = [
|
||||||
#"window_type = 'normal'"
|
"class_g = 'Plasma'",
|
||||||
"class_g = 'Plasma'"
|
"class_g = 'plsama-desktop'",
|
||||||
"class_g = 'plsama-desktop'"
|
"class_g = 'win7'",
|
||||||
"class_g = 'win7'"
|
"class_g = 'krunner'",
|
||||||
"class_g = 'krunner'"
|
"class_g = 'Polybar'",
|
||||||
"class_g = 'plasmashell' window_type = 'notification'"
|
"class_g = 'plasmashell'"
|
||||||
]
|
]
|
||||||
|
|
||||||
blur: {
|
blur: {
|
||||||
# method = "dual_kawase";
|
method = "dual_kawase";
|
||||||
method = "kawase";
|
# method = "kawase";
|
||||||
strength = 7;
|
strength = 7;
|
||||||
background = false;
|
background = false;
|
||||||
background-frame = false;
|
background-frame = false;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
type = custom/script
|
type = custom/script
|
||||||
exec = rofi-bluetooth --status
|
exec = rofi-bluetooth --status
|
||||||
interval = 2
|
interval = 2
|
||||||
click-left = ~/scripts/rofi-bluetooth.desktop
|
click-left = ~/SudacodeRice/scripts/rofi-bluetooth.desktop
|
||||||
click-right = blueman-manager
|
click-right = blueman-manager
|
||||||
# format-foreground = #fc8353
|
# format-foreground = #fc8353
|
||||||
format-foreground = #A8D385
|
format-foreground = #A8D385
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
include-file = $HOME/i3/include-modules.ini
|
include-file = $HOME/SudacodeRice/include-modules.ini
|
||||||
|
|
||||||
[color]
|
[color]
|
||||||
|
|
||||||
@ -56,6 +56,8 @@ black = #000000
|
|||||||
;==========================================================
|
;==========================================================
|
||||||
|
|
||||||
[bar/main]
|
[bar/main]
|
||||||
|
; https://github.com/polybar/polybar/issues/763
|
||||||
|
monitor = ${env:MONITOR:}
|
||||||
width = 100%
|
width = 100%
|
||||||
height = 40
|
height = 40
|
||||||
offset-x = 2.5%
|
offset-x = 2.5%
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
configuration {
|
configuration {
|
||||||
font: "FantasqueSansMono Nerd Font 64";
|
font: "FantasqueSansMono Nerd Font 14";
|
||||||
show-icons: true;
|
show-icons: true;
|
||||||
icon-theme: "Papirus";
|
icon-theme: "Papirus";
|
||||||
display-drun: "";
|
display-drun: "";
|
||||||
|
135
rofi/rofidmenu.rasi
Normal file
135
rofi/rofidmenu.rasi
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
/*******************************************************
|
||||||
|
* ROFI configs i3 Apps menu for EndeavourOS
|
||||||
|
* Maintainer: joekamprad <joekamprad@endeavouros.com>
|
||||||
|
*******************************************************/
|
||||||
|
configuration {
|
||||||
|
font: "Sourcecode Pro Regular 10";
|
||||||
|
show-icons: true;
|
||||||
|
icon-theme: "Arc-X-D";
|
||||||
|
display-drun: "Apps";
|
||||||
|
drun-display-format: "{name}";
|
||||||
|
scroll-method: 0;
|
||||||
|
disable-history: false;
|
||||||
|
sidebar-mode: false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@import "~/.config/rofi/arc_dark_transparent_colors.rasi"
|
||||||
|
|
||||||
|
window {
|
||||||
|
background-color: @background;
|
||||||
|
border: 0;
|
||||||
|
padding: 30;
|
||||||
|
}
|
||||||
|
listview {
|
||||||
|
lines: 10;
|
||||||
|
columns: 3;
|
||||||
|
}
|
||||||
|
mainbox {
|
||||||
|
border: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
message {
|
||||||
|
border: 2px 0px 0px ;
|
||||||
|
border-color: @separatorcolor;
|
||||||
|
padding: 1px ;
|
||||||
|
}
|
||||||
|
textbox {
|
||||||
|
text-color: @foreground;
|
||||||
|
}
|
||||||
|
listview {
|
||||||
|
fixed-height: 0;
|
||||||
|
border: 8px 0px 0px ;
|
||||||
|
border-color: @separatorcolor;
|
||||||
|
spacing: 8px ;
|
||||||
|
scrollbar: false;
|
||||||
|
padding: 2px 0px 0px ;
|
||||||
|
}
|
||||||
|
element {
|
||||||
|
border: 0;
|
||||||
|
padding: 1px ;
|
||||||
|
}
|
||||||
|
element-text {
|
||||||
|
background-color: inherit;
|
||||||
|
text-color: inherit;
|
||||||
|
}
|
||||||
|
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-color: @normal-foreground;
|
||||||
|
handle-width: 8px ;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
mode-switcher {
|
||||||
|
border: 2px 0px 0px ;
|
||||||
|
border-color: @separatorcolor;
|
||||||
|
}
|
||||||
|
button {
|
||||||
|
spacing: 0;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
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;
|
||||||
|
}
|
56
rofi/rofimpd-desktop.rasi
Normal file
56
rofi/rofimpd-desktop.rasi
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
* {
|
||||||
|
background-color: #282C34;
|
||||||
|
border-color: #2e343f;
|
||||||
|
text-color: #8ca0aa;
|
||||||
|
spacing: 0;
|
||||||
|
width: 70%;
|
||||||
|
font: "mononoki Nerd Font 12";
|
||||||
|
lines: 10;
|
||||||
|
markup: true;
|
||||||
|
y-offset: 1.5%;
|
||||||
|
}
|
||||||
|
|
||||||
|
rofi {
|
||||||
|
border: 1px;
|
||||||
|
border-color: tomato;
|
||||||
|
}
|
||||||
|
|
||||||
|
inputbar {
|
||||||
|
border: 0 0 1px 0;
|
||||||
|
children: [prompt,entry];
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt {
|
||||||
|
padding: 8px;
|
||||||
|
border: 0 1px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
textbox {
|
||||||
|
background-color: #2e343f;
|
||||||
|
border: 0 0 1px 0;
|
||||||
|
border-color: #282C33;
|
||||||
|
padding: 8px 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
entry {
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
listview {
|
||||||
|
cycle: false;
|
||||||
|
margin: 0 0 -1px 0;
|
||||||
|
scrollbar: true;
|
||||||
|
border: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
element {
|
||||||
|
border: 0 1px 1px 0;
|
||||||
|
text-color: #a4ce82;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
element selected {
|
||||||
|
color: #a4ce82;
|
||||||
|
text-color: dodgerblue;
|
||||||
|
background-color: dodgerblue;
|
||||||
|
}
|
@ -8,5 +8,13 @@ killall -q polybar
|
|||||||
# Wait until the processes have been shut down
|
# Wait until the processes have been shut down
|
||||||
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
|
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
|
||||||
|
|
||||||
|
if type "xrandr"; then
|
||||||
|
for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do
|
||||||
|
MONITOR=$m polybar --reload -c ~/SudacodeRice/polybar/config.desktop.ini main &
|
||||||
|
done
|
||||||
|
else
|
||||||
|
polybar --reload example &
|
||||||
|
fi
|
||||||
|
|
||||||
# Launch bar1 and bar2
|
# Launch bar1 and bar2
|
||||||
polybar -c ~/i3/configs/config.desktop.ini main &
|
# polybar -c ~/SudacodeRice/polybar/config.desktop.ini main &
|
||||||
|
@ -46,23 +46,22 @@ fi
|
|||||||
res=$(pgrep -x picom)
|
res=$(pgrep -x picom)
|
||||||
if [[ $res != '' ]]; then
|
if [[ $res != '' ]]; then
|
||||||
pid=$(pidof picom)
|
pid=$(pidof picom)
|
||||||
if [[ $verbose -eq 1 ]]
|
if [[ $verbose -eq 1 ]]; then
|
||||||
then
|
|
||||||
echo 'killing process pid '$pid
|
echo 'killing process pid '$pid
|
||||||
fi
|
fi
|
||||||
kill -9 $pid
|
kill -9 $pid
|
||||||
while pgrep -x picom >/dev/null; do sleep 1;
|
while pgrep -x picom >/dev/null; do
|
||||||
|
sleep 1
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $verbose -eq 1 ]]; then
|
if [[ $verbose -eq 1 ]]; then
|
||||||
picom &
|
picom --config ~/.config/picom/picom.conf &
|
||||||
else
|
else
|
||||||
picom &>/dev/null &
|
picom --config ~/.config/picom/picom.conf &>/dev/null &
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $verbose -eq 1 ]]
|
if [[ $verbose -eq 1 ]]; then
|
||||||
then
|
|
||||||
pid=$(pidof picom)
|
pid=$(pidof picom)
|
||||||
echo 'launched new instance of picom with pid '$pid
|
echo 'launched new instance of picom with pid '$pid
|
||||||
fi
|
fi
|
||||||
|
311
scripts/rofi-bluetooth
Executable file
311
scripts/rofi-bluetooth
Executable file
@ -0,0 +1,311 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# __ _ _ _ _ _ _
|
||||||
|
# _ __ ___ / _(_) | |__ | |_ _ ___| |_ ___ ___ | |_| |__
|
||||||
|
# | '__/ _ \| |_| |_____| '_ \| | | | |/ _ \ __/ _ \ / _ \| __| '_ \
|
||||||
|
# | | | (_) | _| |_____| |_) | | |_| | __/ || (_) | (_) | |_| | | |
|
||||||
|
# |_| \___/|_| |_| |_.__/|_|\__,_|\___|\__\___/ \___/ \__|_| |_|
|
||||||
|
#
|
||||||
|
# Author: Nick Clyde (clydedroid)
|
||||||
|
#
|
||||||
|
# A script that generates a rofi menu that uses bluetoothctl to
|
||||||
|
# connect to bluetooth devices and display status info.
|
||||||
|
#
|
||||||
|
# Inspired by networkmanager-dmenu (https://github.com/firecat53/networkmanager-dmenu)
|
||||||
|
# Thanks to x70b1 (https://github.com/polybar/polybar-scripts/tree/master/polybar-scripts/system-bluetooth-bluetoothctl)
|
||||||
|
#
|
||||||
|
# Depends on:
|
||||||
|
# Arch repositories: rofi, bluez-utils (contains bluetoothctl)
|
||||||
|
|
||||||
|
# Constants
|
||||||
|
divider="---------"
|
||||||
|
goback="Back"
|
||||||
|
|
||||||
|
# Checks if bluetooth controller is powered on
|
||||||
|
power_on() {
|
||||||
|
if bluetoothctl show | grep -q "Powered: yes"; then
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Toggles power state
|
||||||
|
toggle_power() {
|
||||||
|
if power_on; then
|
||||||
|
bluetoothctl power off
|
||||||
|
show_menu
|
||||||
|
else
|
||||||
|
if rfkill list bluetooth | grep -q 'blocked: yes'; then
|
||||||
|
rfkill unblock bluetooth && sleep 3
|
||||||
|
fi
|
||||||
|
bluetoothctl power on
|
||||||
|
show_menu
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Checks if controller is scanning for new devices
|
||||||
|
scan_on() {
|
||||||
|
if bluetoothctl show | grep -q "Discovering: yes"; then
|
||||||
|
echo "Scan: on"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
echo "Scan: off"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Toggles scanning state
|
||||||
|
toggle_scan() {
|
||||||
|
if scan_on; then
|
||||||
|
kill $(pgrep -f "bluetoothctl scan on")
|
||||||
|
bluetoothctl scan off
|
||||||
|
show_menu
|
||||||
|
else
|
||||||
|
bluetoothctl scan on &
|
||||||
|
echo "Scanning..."
|
||||||
|
sleep 5
|
||||||
|
show_menu
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Checks if controller is able to pair to devices
|
||||||
|
pairable_on() {
|
||||||
|
if bluetoothctl show | grep -q "Pairable: yes"; then
|
||||||
|
echo "Pairable: on"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
echo "Pairable: off"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Toggles pairable state
|
||||||
|
toggle_pairable() {
|
||||||
|
if pairable_on; then
|
||||||
|
bluetoothctl pairable off
|
||||||
|
show_menu
|
||||||
|
else
|
||||||
|
bluetoothctl pairable on
|
||||||
|
show_menu
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Checks if controller is discoverable by other devices
|
||||||
|
discoverable_on() {
|
||||||
|
if bluetoothctl show | grep -q "Discoverable: yes"; then
|
||||||
|
echo "Discoverable: on"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
echo "Discoverable: off"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Toggles discoverable state
|
||||||
|
toggle_discoverable() {
|
||||||
|
if discoverable_on; then
|
||||||
|
bluetoothctl discoverable off
|
||||||
|
show_menu
|
||||||
|
else
|
||||||
|
bluetoothctl discoverable on
|
||||||
|
show_menu
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Checks if a device is connected
|
||||||
|
device_connected() {
|
||||||
|
device_info=$(bluetoothctl info "$1")
|
||||||
|
if echo "$device_info" | grep -q "Connected: yes"; then
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Toggles device connection
|
||||||
|
toggle_connection() {
|
||||||
|
if device_connected $1; then
|
||||||
|
bluetoothctl disconnect $1
|
||||||
|
device_menu "$device"
|
||||||
|
else
|
||||||
|
bluetoothctl connect $1
|
||||||
|
device_menu "$device"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Checks if a device is paired
|
||||||
|
device_paired() {
|
||||||
|
device_info=$(bluetoothctl info "$1")
|
||||||
|
if echo "$device_info" | grep -q "Paired: yes"; then
|
||||||
|
echo "Paired: yes"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
echo "Paired: no"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Toggles device paired state
|
||||||
|
toggle_paired() {
|
||||||
|
if device_paired $1; then
|
||||||
|
bluetoothctl remove $1
|
||||||
|
device_menu "$device"
|
||||||
|
else
|
||||||
|
bluetoothctl pair $1
|
||||||
|
device_menu "$device"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Checks if a device is trusted
|
||||||
|
device_trusted() {
|
||||||
|
device_info=$(bluetoothctl info "$1")
|
||||||
|
if echo "$device_info" | grep -q "Trusted: yes"; then
|
||||||
|
echo "Trusted: yes"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
echo "Trusted: no"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Toggles device connection
|
||||||
|
toggle_trust() {
|
||||||
|
if device_trusted $1; then
|
||||||
|
bluetoothctl untrust $1
|
||||||
|
device_menu "$device"
|
||||||
|
else
|
||||||
|
bluetoothctl trust $1
|
||||||
|
device_menu "$device"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Prints a short string with the current bluetooth status
|
||||||
|
# Useful for status bars like polybar, etc.
|
||||||
|
print_status() {
|
||||||
|
if power_on; then
|
||||||
|
printf ''
|
||||||
|
|
||||||
|
mapfile -t paired_devices < <(bluetoothctl paired-devices | grep Device | cut -d ' ' -f 2)
|
||||||
|
counter=0
|
||||||
|
|
||||||
|
for device in "${paired_devices[@]}"; do
|
||||||
|
if device_connected $device; then
|
||||||
|
device_alias=$(bluetoothctl info $device | grep "Alias" | cut -d ' ' -f 2-)
|
||||||
|
|
||||||
|
if [ $counter -gt 0 ]; then
|
||||||
|
printf ", %s" "$device_alias"
|
||||||
|
else
|
||||||
|
printf " %s" "$device_alias"
|
||||||
|
fi
|
||||||
|
|
||||||
|
((counter++))
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
printf "\n"
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# A submenu for a specific device that allows connecting, pairing, and trusting
|
||||||
|
device_menu() {
|
||||||
|
device=$1
|
||||||
|
|
||||||
|
# Get device name and mac address
|
||||||
|
device_name=$(echo $device | cut -d ' ' -f 3-)
|
||||||
|
mac=$(echo $device | cut -d ' ' -f 2)
|
||||||
|
|
||||||
|
# Build options
|
||||||
|
if device_connected $mac; then
|
||||||
|
connected="Connected: yes"
|
||||||
|
else
|
||||||
|
connected="Connected: no"
|
||||||
|
fi
|
||||||
|
paired=$(device_paired $mac)
|
||||||
|
trusted=$(device_trusted $mac)
|
||||||
|
options="$connected\n$paired\n$trusted\n$divider\n$goback\nExit"
|
||||||
|
|
||||||
|
# Open rofi menu, read chosen option
|
||||||
|
chosen="$(echo -e "$options" | $rofi_command "$device_name")"
|
||||||
|
|
||||||
|
# Match chosen option to command
|
||||||
|
case $chosen in
|
||||||
|
"" | $divider)
|
||||||
|
echo "No option chosen."
|
||||||
|
;;
|
||||||
|
$connected)
|
||||||
|
toggle_connection $mac
|
||||||
|
;;
|
||||||
|
$paired)
|
||||||
|
toggle_paired $mac
|
||||||
|
;;
|
||||||
|
$trusted)
|
||||||
|
toggle_trust $mac
|
||||||
|
;;
|
||||||
|
$goback)
|
||||||
|
show_menu
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Opens a rofi menu with current bluetooth status and options to connect
|
||||||
|
show_menu() {
|
||||||
|
# Get menu options
|
||||||
|
if power_on; then
|
||||||
|
power="Power: on"
|
||||||
|
|
||||||
|
# Human-readable names of devices, one per line
|
||||||
|
# If scan is off, will only list paired devices
|
||||||
|
devices=$(bluetoothctl devices | grep Device | cut -d ' ' -f 3-)
|
||||||
|
|
||||||
|
# Get controller flags
|
||||||
|
scan=$(scan_on)
|
||||||
|
pairable=$(pairable_on)
|
||||||
|
discoverable=$(discoverable_on)
|
||||||
|
|
||||||
|
# Options passed to rofi
|
||||||
|
options="$devices\n$divider\n$power\n$scan\n$pairable\n$discoverable\nExit"
|
||||||
|
else
|
||||||
|
power="Power: off"
|
||||||
|
options="$power\nExit"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Open rofi menu, read chosen option
|
||||||
|
chosen="$(echo -e "$options" | $rofi_command "Bluetooth")"
|
||||||
|
|
||||||
|
# Match chosen option to command
|
||||||
|
case $chosen in
|
||||||
|
"" | $divider)
|
||||||
|
echo "No option chosen."
|
||||||
|
;;
|
||||||
|
$power)
|
||||||
|
toggle_power
|
||||||
|
;;
|
||||||
|
$scan)
|
||||||
|
toggle_scan
|
||||||
|
;;
|
||||||
|
$discoverable)
|
||||||
|
toggle_discoverable
|
||||||
|
;;
|
||||||
|
$pairable)
|
||||||
|
toggle_pairable
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
device=$(bluetoothctl devices | grep "$chosen")
|
||||||
|
# Open a submenu if a device is selected
|
||||||
|
if [[ $device ]]; then device_menu "$device"; fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Rofi command to pipe into, can add any options here
|
||||||
|
rofi_command="rofi -dmenu -p"
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
--status)
|
||||||
|
print_status
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
show_menu
|
||||||
|
;;
|
||||||
|
esac
|
311
scripts/rofi-bluetooth.desktop
Executable file
311
scripts/rofi-bluetooth.desktop
Executable file
@ -0,0 +1,311 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# __ _ _ _ _ _ _
|
||||||
|
# _ __ ___ / _(_) | |__ | |_ _ ___| |_ ___ ___ | |_| |__
|
||||||
|
# | '__/ _ \| |_| |_____| '_ \| | | | |/ _ \ __/ _ \ / _ \| __| '_ \
|
||||||
|
# | | | (_) | _| |_____| |_) | | |_| | __/ || (_) | (_) | |_| | | |
|
||||||
|
# |_| \___/|_| |_| |_.__/|_|\__,_|\___|\__\___/ \___/ \__|_| |_|
|
||||||
|
#
|
||||||
|
# Author: Nick Clyde (clydedroid)
|
||||||
|
#
|
||||||
|
# A script that generates a rofi menu that uses bluetoothctl to
|
||||||
|
# connect to bluetooth devices and display status info.
|
||||||
|
#
|
||||||
|
# Inspired by networkmanager-dmenu (https://github.com/firecat53/networkmanager-dmenu)
|
||||||
|
# Thanks to x70b1 (https://github.com/polybar/polybar-scripts/tree/master/polybar-scripts/system-bluetooth-bluetoothctl)
|
||||||
|
#
|
||||||
|
# Depends on:
|
||||||
|
# Arch repositories: rofi, bluez-utils (contains bluetoothctl)
|
||||||
|
|
||||||
|
# Constants
|
||||||
|
divider="---------"
|
||||||
|
goback="Back"
|
||||||
|
|
||||||
|
# Checks if bluetooth controller is powered on
|
||||||
|
power_on() {
|
||||||
|
if bluetoothctl show | grep -q "Powered: yes"; then
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Toggles power state
|
||||||
|
toggle_power() {
|
||||||
|
if power_on; then
|
||||||
|
bluetoothctl power off
|
||||||
|
show_menu
|
||||||
|
else
|
||||||
|
if rfkill list bluetooth | grep -q 'blocked: yes'; then
|
||||||
|
rfkill unblock bluetooth && sleep 3
|
||||||
|
fi
|
||||||
|
bluetoothctl power on
|
||||||
|
show_menu
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Checks if controller is scanning for new devices
|
||||||
|
scan_on() {
|
||||||
|
if bluetoothctl show | grep -q "Discovering: yes"; then
|
||||||
|
echo "Scan: on"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
echo "Scan: off"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Toggles scanning state
|
||||||
|
toggle_scan() {
|
||||||
|
if scan_on; then
|
||||||
|
kill $(pgrep -f "bluetoothctl scan on")
|
||||||
|
bluetoothctl scan off
|
||||||
|
show_menu
|
||||||
|
else
|
||||||
|
bluetoothctl scan on &
|
||||||
|
echo "Scanning..."
|
||||||
|
sleep 5
|
||||||
|
show_menu
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Checks if controller is able to pair to devices
|
||||||
|
pairable_on() {
|
||||||
|
if bluetoothctl show | grep -q "Pairable: yes"; then
|
||||||
|
echo "Pairable: on"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
echo "Pairable: off"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Toggles pairable state
|
||||||
|
toggle_pairable() {
|
||||||
|
if pairable_on; then
|
||||||
|
bluetoothctl pairable off
|
||||||
|
show_menu
|
||||||
|
else
|
||||||
|
bluetoothctl pairable on
|
||||||
|
show_menu
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Checks if controller is discoverable by other devices
|
||||||
|
discoverable_on() {
|
||||||
|
if bluetoothctl show | grep -q "Discoverable: yes"; then
|
||||||
|
echo "Discoverable: on"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
echo "Discoverable: off"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Toggles discoverable state
|
||||||
|
toggle_discoverable() {
|
||||||
|
if discoverable_on; then
|
||||||
|
bluetoothctl discoverable off
|
||||||
|
show_menu
|
||||||
|
else
|
||||||
|
bluetoothctl discoverable on
|
||||||
|
show_menu
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Checks if a device is connected
|
||||||
|
device_connected() {
|
||||||
|
device_info=$(bluetoothctl info "$1")
|
||||||
|
if echo "$device_info" | grep -q "Connected: yes"; then
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Toggles device connection
|
||||||
|
toggle_connection() {
|
||||||
|
if device_connected $1; then
|
||||||
|
bluetoothctl disconnect $1
|
||||||
|
device_menu "$device"
|
||||||
|
else
|
||||||
|
bluetoothctl connect $1
|
||||||
|
device_menu "$device"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Checks if a device is paired
|
||||||
|
device_paired() {
|
||||||
|
device_info=$(bluetoothctl info "$1")
|
||||||
|
if echo "$device_info" | grep -q "Paired: yes"; then
|
||||||
|
echo "Paired: yes"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
echo "Paired: no"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Toggles device paired state
|
||||||
|
toggle_paired() {
|
||||||
|
if device_paired $1; then
|
||||||
|
bluetoothctl remove $1
|
||||||
|
device_menu "$device"
|
||||||
|
else
|
||||||
|
bluetoothctl pair $1
|
||||||
|
device_menu "$device"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Checks if a device is trusted
|
||||||
|
device_trusted() {
|
||||||
|
device_info=$(bluetoothctl info "$1")
|
||||||
|
if echo "$device_info" | grep -q "Trusted: yes"; then
|
||||||
|
echo "Trusted: yes"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
echo "Trusted: no"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Toggles device connection
|
||||||
|
toggle_trust() {
|
||||||
|
if device_trusted $1; then
|
||||||
|
bluetoothctl untrust $1
|
||||||
|
device_menu "$device"
|
||||||
|
else
|
||||||
|
bluetoothctl trust $1
|
||||||
|
device_menu "$device"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Prints a short string with the current bluetooth status
|
||||||
|
# Useful for status bars like polybar, etc.
|
||||||
|
print_status() {
|
||||||
|
if power_on; then
|
||||||
|
printf ''
|
||||||
|
|
||||||
|
mapfile -t paired_devices < <(bluetoothctl paired-devices | grep Device | cut -d ' ' -f 2)
|
||||||
|
counter=0
|
||||||
|
|
||||||
|
for device in "${paired_devices[@]}"; do
|
||||||
|
if device_connected $device; then
|
||||||
|
device_alias=$(bluetoothctl info $device | grep "Alias" | cut -d ' ' -f 2-)
|
||||||
|
|
||||||
|
if [ $counter -gt 0 ]; then
|
||||||
|
printf ", %s" "$device_alias"
|
||||||
|
else
|
||||||
|
printf " %s" "$device_alias"
|
||||||
|
fi
|
||||||
|
|
||||||
|
((counter++))
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
printf "\n"
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# A submenu for a specific device that allows connecting, pairing, and trusting
|
||||||
|
device_menu() {
|
||||||
|
device=$1
|
||||||
|
|
||||||
|
# Get device name and mac address
|
||||||
|
device_name=$(echo $device | cut -d ' ' -f 3-)
|
||||||
|
mac=$(echo $device | cut -d ' ' -f 2)
|
||||||
|
|
||||||
|
# Build options
|
||||||
|
if device_connected $mac; then
|
||||||
|
connected="Connected: yes"
|
||||||
|
else
|
||||||
|
connected="Connected: no"
|
||||||
|
fi
|
||||||
|
paired=$(device_paired $mac)
|
||||||
|
trusted=$(device_trusted $mac)
|
||||||
|
options="$connected\n$paired\n$trusted\n$divider\n$goback\nExit"
|
||||||
|
|
||||||
|
# Open rofi menu, read chosen option
|
||||||
|
chosen="$(echo -e "$options" | $rofi_command "$device_name")"
|
||||||
|
|
||||||
|
# Match chosen option to command
|
||||||
|
case $chosen in
|
||||||
|
"" | $divider)
|
||||||
|
echo "No option chosen."
|
||||||
|
;;
|
||||||
|
$connected)
|
||||||
|
toggle_connection $mac
|
||||||
|
;;
|
||||||
|
$paired)
|
||||||
|
toggle_paired $mac
|
||||||
|
;;
|
||||||
|
$trusted)
|
||||||
|
toggle_trust $mac
|
||||||
|
;;
|
||||||
|
$goback)
|
||||||
|
show_menu
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Opens a rofi menu with current bluetooth status and options to connect
|
||||||
|
show_menu() {
|
||||||
|
# Get menu options
|
||||||
|
if power_on; then
|
||||||
|
power="Power: on"
|
||||||
|
|
||||||
|
# Human-readable names of devices, one per line
|
||||||
|
# If scan is off, will only list paired devices
|
||||||
|
devices=$(bluetoothctl devices | grep Device | cut -d ' ' -f 3-)
|
||||||
|
|
||||||
|
# Get controller flags
|
||||||
|
scan=$(scan_on)
|
||||||
|
pairable=$(pairable_on)
|
||||||
|
discoverable=$(discoverable_on)
|
||||||
|
|
||||||
|
# Options passed to rofi
|
||||||
|
options="$devices\n$divider\n$power\n$scan\n$pairable\n$discoverable\nExit"
|
||||||
|
else
|
||||||
|
power="Power: off"
|
||||||
|
options="$power\nExit"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Open rofi menu, read chosen option
|
||||||
|
chosen="$(echo -e "$options" | $rofi_command "Bluetooth")"
|
||||||
|
|
||||||
|
# Match chosen option to command
|
||||||
|
case $chosen in
|
||||||
|
"" | $divider)
|
||||||
|
echo "No option chosen."
|
||||||
|
;;
|
||||||
|
$power)
|
||||||
|
toggle_power
|
||||||
|
;;
|
||||||
|
$scan)
|
||||||
|
toggle_scan
|
||||||
|
;;
|
||||||
|
$discoverable)
|
||||||
|
toggle_discoverable
|
||||||
|
;;
|
||||||
|
$pairable)
|
||||||
|
toggle_pairable
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
device=$(bluetoothctl devices | grep "$chosen")
|
||||||
|
# Open a submenu if a device is selected
|
||||||
|
if [[ $device ]]; then device_menu "$device"; fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Rofi command to pipe into, can add any options here
|
||||||
|
rofi_command="rofi -config ~/SudacodeRice/rofi/rofidmenu.rasi -dmenu -p"
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
--status)
|
||||||
|
print_status
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
show_menu
|
||||||
|
;;
|
||||||
|
esac
|
@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
m() { rofi -l 12 -markup -theme ~/SudacodeRice/rofi/rofi-mpd.rasi -dmenu -i "$@" ;}
|
m() { rofi -theme ~/SudacodeRice/rofi/rofimpd-desktop.rasi -dmenu -i "$@"; }
|
||||||
mb() { rofi -l 24 -markup -theme ~/SudacodeRice/rofi/rofi-mpd.rasi -dmenu -i -kb-custom-1 "Alt+q" "$@" ;}
|
mb() { rofi -theme ~/SudacodeRice/rofi/rofimpd-desktop.rasi -dmenu -i -kb-custom-1 "Alt+q" "$@"; }
|
||||||
|
|
||||||
artist() {
|
artist() {
|
||||||
lines="$(mpc list artist | wc -l)"
|
lines="$(mpc list artist | wc -l)"
|
||||||
|
18
scripts/rofi/rofi-picom.sh
Executable file
18
scripts/rofi/rofi-picom.sh
Executable file
@ -0,0 +1,18 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
ARGS=(
|
||||||
|
"Enable Picom"
|
||||||
|
"Disable Picom"
|
||||||
|
)
|
||||||
|
|
||||||
|
CHOICE=$(printf "%s\n" "${ARGS[@]}" | rofi -config ~/SudacodeRice/rofi/rofidmenu.rasi -dmenu -l 5 -i -p "Picom Options")
|
||||||
|
|
||||||
|
# printf '%s\n' {$CHOICE} | awk '{print $NF}'
|
||||||
|
|
||||||
|
echo "$CHOICE"
|
||||||
|
|
||||||
|
if [[ "$CHOICE" == "Enable Picom" ]]; then
|
||||||
|
~/SudacodeRice/scripts/picom.sh
|
||||||
|
elif [[ "$CHOICE" == "Disable Picom" ]]; then
|
||||||
|
~/SudacodeRice/scripts/picom.sh -k
|
||||||
|
fi
|
28
scripts/rofi/rofi-ssh.sh
Executable file
28
scripts/rofi/rofi-ssh.sh
Executable file
@ -0,0 +1,28 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
CMD=$(ssh)
|
||||||
|
|
||||||
|
ARGS=(
|
||||||
|
"Depot - root@dc1lxpdepot01.westlakefinancial.com"
|
||||||
|
"Depot02 - kyasuda@dc1lxsdepot02.westlakefinancial.com"
|
||||||
|
"Jobrunner01 - root@dc1vpjobrunner01.westlakefinancial.com"
|
||||||
|
"Jobrunner02 - root@mdr-s-jobrunner02.westlakefinancial.com"
|
||||||
|
"Jobrunner03 - kyasuda@dc1vsjobrunner03.westlakefinancial.com"
|
||||||
|
"Quit"
|
||||||
|
)
|
||||||
|
|
||||||
|
CHOICE=$(printf "%s\n" "${ARGS[@]}" | rofi -config ~/SudacodeRice/rofi/rofidmenu.rasi -dmenu -l 5 -i -p "SSH Helper")
|
||||||
|
|
||||||
|
if [[ "$CHOICE" == "Quit" ]]; then
|
||||||
|
printf "%s\n" "NICE" && exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$CHOICE" ]; then
|
||||||
|
TARGET=$(printf "%s\n" "${CHOICE}" | awk '{print $1}')
|
||||||
|
INFO=$(printf "%s\n" "${CHOICE}" | awk '{print $NF}')
|
||||||
|
echo "TARGET $TARGET"
|
||||||
|
python ~/Work/scripts/pass.py "$TARGET"
|
||||||
|
alacritty -e ssh "$INFO"
|
||||||
|
else
|
||||||
|
printf "%s\n" "DONE." && exit 0
|
||||||
|
fi
|
Loading…
Reference in New Issue
Block a user