diff --git a/user/.bash_profile b/user/.bash_profile index 2d1714f8f..ee100ca48 100644 --- a/user/.bash_profile +++ b/user/.bash_profile @@ -9,13 +9,13 @@ ### STARTING XSESSION if [ -z "$DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ] then - sh $HOME/.winitrc + sh "$HOME/.winitrc" logout fi # environment variables -export EDITOR="emacsclient -t -a ''" -export VISUAL="emacsclient -c -a 'emacs'" +export EDITOR="$HOME/.local/bin/lvim" +export VISUAL="neovide --neovim-bin $HOME/.local/bin/lvim" # clean home export XDG_DATA_HOME="$HOME/.local/share" @@ -25,8 +25,12 @@ export W3M_DIR="$XDG_DATA_HOME/w3m" export GTK2_RC_FILES="$HOME/.config/gtk-2.0/gtkrc-2.0" export WGETRC="$HOME/.config/wget/wgetrc" export INPUTRC="$HOME/.config/inputrc" -export GNUPGHOME="$HOME/.local/share/gnupg" export LESSHISTFILE=- +export MEDIA_DIR="$HOME/Media" +export TEMP_DIR="$HOME/Temporal" +export RUNNER="wofi --dmenu" +export RUNNER_EX="wofi -p ' Run'" + ### BASHRC source "$HOME"/.bashrc # Load the bashrc diff --git a/user/.bashrc b/user/.bashrc index 93cd3fabc..53c18a2f8 100644 --- a/user/.bashrc +++ b/user/.bashrc @@ -35,9 +35,6 @@ fi if [ -d "$HOME/.local/bin" ] ; then PATH="$HOME/.local/bin:$PATH" fi -if [ -d "$HOME/Applications" ] ; - then PATH="$HOME/Applications:$PATH" -fi ### CHANGE TITLE OF TERMINALS ### case ${TERM} in @@ -125,9 +122,6 @@ alias \ # bat as cat [ -x "$(command -v bat)" ] && alias cat="bat" -# pfetch as neofetch -[ -x "$(command -v pfetch)" ] && alias neofetch="pfetch" - # Changing "ls" to "exa" alias \ ls="exa -al --icons --color=always --group-directories-first" \ diff --git a/user/.config/Kvantum/Gruvbox-Dark-Brown/Gruvbox-Dark-Brown.svg b/user/.config/Kvantum/Gruvbox-Dark-Brown/Gruvbox-Dark-Brown.svg deleted file mode 100644 index 3c29a5f27..000000000 --- a/user/.config/Kvantum/Gruvbox-Dark-Brown/Gruvbox-Dark-Brown.svg +++ /dev/null @@ -1,5597 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/user/.config/Kvantum/Gruvbox-Dark-Brown/Gruvbox-Dark-Brown.kvconfig b/user/.config/Kvantum/gruvbox-fallnn/gruvbox-fallnn.kvconfig similarity index 63% rename from user/.config/Kvantum/Gruvbox-Dark-Brown/Gruvbox-Dark-Brown.kvconfig rename to user/.config/Kvantum/gruvbox-fallnn/gruvbox-fallnn.kvconfig index 87cb82f5e..beaf6b56e 100644 --- a/user/.config/Kvantum/Gruvbox-Dark-Brown/Gruvbox-Dark-Brown.kvconfig +++ b/user/.config/Kvantum/gruvbox-fallnn/gruvbox-fallnn.kvconfig @@ -1,25 +1,26 @@ [%General] -author=sachnr, based on KvAdapta -comment=Gruvbox Dark theme with brown highlights +author=Sourav Gope +comment=Medium Dark Gruvbox kvantum theme x11drag=menubar_and_primary_toolbar alt_mnemonic=true left_tabs=true -attach_active_tab=false +attach_active_tab=true mirror_doc_tabs=true group_toolbar_buttons=false -toolbar_item_spacing=0 -toolbar_interior_spacing=2 +toolbar_item_spacing=1 +toolbar_interior_spacing=3 spread_progressbar=true composite=true menu_shadow_depth=5 -tooltip_shadow_depth=2 +menu_separator_height=6 +tooltip_shadow_depth=6 splitter_width=4 -scroll_width=9 +scroll_width=6 scroll_arrows=false scroll_min_extent=60 slider_width=2 -slider_handle_width=22 -slider_handle_length=22 +slider_handle_width=18 +slider_handle_length=18 center_toolbar_handle=true check_size=14 textless_progressbar=false @@ -27,11 +28,11 @@ progressbar_thickness=2 menubar_mouse_tracking=true toolbutton_style=1 double_click=false -translucent_windows=false -blurring=false -popup_blurring=false +translucent_windows=true +blurring=true +popup_blurring=true vertical_spin_indicators=false -spin_button_width=24 +spin_button_width=32 fill_rubberband=false merge_menubar_with_toolbar=true small_icon_size=16 @@ -39,14 +40,14 @@ large_icon_size=32 button_icon_size=16 toolbar_icon_size=22 combo_as_lineedit=true -animate_states=true +animate_states=false button_contents_shift=false combo_menu=true hide_combo_checkboxes=true -combo_focus_rect=false +combo_focus_rect=true groupbox_top_label=true -inline_spin_indicators=true -joined_inactive_tabs=true +inline_spin_indicators=false +joined_inactive_tabs=false layout_spacing=6 layout_margin=9 scrollbar_in_view=true @@ -55,96 +56,91 @@ transient_groove=false submenu_overlap=0 tooltip_delay=-1 tree_branch_line=true -no_window_pattern=false -opaque=kaffeine,kmplayer,subtitlecomposer,kdenlive,vlc,smplayer,smplayer2,avidemux,avidemux2_qt4,avidemux3_qt4,avidemux3_qt5,kamoso,QtCreator,VirtualBox,trojita,dragon,digikam +dark_titlebar=true +opaque=QMPlay2,kaffeine,kmplayer,subtitlecomposer,kdenlive,vlc,avidemux,avidemux2_qt4,avidemux3_qt4,avidemux3_qt5,kamoso,QtCreator,VirtualBox,trojita,dragon,digikam reduce_window_opacity=0 -respect_DE=true scrollable_menu=false submenu_delay=250 +no_inactiveness=false +no_window_pattern=false +reduce_menu_opacity=0 +respect_DE=true +contrast=1.00 +dialog_button_layout=0 +intensity=1.00 +saturation=1.00 [GeneralColors] -window.color=#232323 +window.color=#282828 base.color=#282828 alt.base.color=#282828 -button.color=#2e2e2e -light.color=#504945 -mid.light.color=#3f3f3f -dark.color=#1d2021 -mid.color=##202324 -highlight.color=#665c54cc -inactive.highlight.color=#665c54bb -text.color=#ebdbb2 -window.text.color=#ebdbb2 -button.text.color=#ebdbb2 -disabled.text.color=#a89984 +button.color=#fbf1c7 +light.color=#282828 +mid.light.color=#282828 +dark.color=#282828 +mid.color=#282828 +highlight.color=#a89984 +inactive.highlight.color=#282828 +text.color=#fbf1c7 +window.text.color=#fbf1c7 +button.text.color=#fbf1c7 +disabled.text.color=#d5c4a1 tooltip.text.color=#fbf1c7 -highlight.text.color=#3c3836 -link.color=#b8bb26 -link.visited.color=#98971a -progress.indicator.text.color=#fbf1c7 +highlight.text.color=#ebdbb2 +link.color=#fbf1c7 +link.visited.color=#7f8c8d +progress.indicator.text.color=#d5c4a1 [Hacks] transparent_ktitle_label=true -transparent_dolphin_view=false +transparent_dolphin_view=true transparent_pcmanfm_sidepane=true -blur_translucent=false +blur_translucent=true transparent_menutitle=true -respect_darkness=false +respect_darkness=true kcapacitybar_as_progressbar=true force_size_grip=true -iconless_pushbutton=true +iconless_pushbutton=false iconless_menu=false disabled_icon_opacity=70 lxqtmainmenu_iconsize=22 normal_default_pushbutton=true single_top_toolbar=true tint_on_mouseover=0 -transparent_pcmanfm_view=false -no_selection_tint=true -transparent_arrow_button=true +transparent_pcmanfm_view=true +middle_click_scroll=false +no_selection_tint=false +opaque_colors=false +scroll_jump_workaround=false [PanelButtonCommand] frame=true frame.element=button -frame.top=4 -frame.bottom=4 -frame.left=4 -frame.right=4 +frame.top=3 +frame.bottom=3 +frame.left=3 +frame.right=3 interior=true interior.element=button indicator.size=8 -text.normal.color=#ebdbb2 -text.focus.color=#3c3836 -text.press.color=#ebdbb2 -text.toggle.color=#fbf1c7 +text.normal.color=#d8dee9 +text.focus.color=#d8dee9 +text.press.color=#d8dee9 +text.toggle.color=#d8dee9 text.shadow=0 text.margin=1 text.iconspacing=4 indicator.element=arrow text.margin.top=2 -text.margin.bottom=4 +text.margin.bottom=2 text.margin.left=2 text.margin.right=2 min_width=+0.3font min_height=+0.3font -frame.expansion=14 +frame.expansion=6 [PanelButtonTool] inherits=PanelButtonCommand -text.normal.color=#ebdbb2 -text.bold=false -indicator.element=arrow -indicator.size=0 - -[ToolbarButton] -frame.element=tbutton -interior.element=tbutton -indicator.element=tarrow -text.normal.color=#ebdbb2 -text.focus.color=#fbf1c7 -text.press.color=#fbf1c7 -text.toggle.color=#fbf1c7 -text.bold=false [Dock] inherits=PanelButtonCommand @@ -154,49 +150,38 @@ frame.top=1 frame.bottom=1 frame.left=1 frame.right=1 -text.normal.color=#ebdbb2 +text.normal.color=#d8dee9 [DockTitle] inherits=PanelButtonCommand frame=false interior=false -text.normal.color=#ebdbb2 -text.focus.color=#fbf1c7 +text.normal.color=#d8dee9 +text.focus.color=#c8c8ca text.bold=false [IndicatorSpinBox] inherits=PanelButtonCommand frame=true interior=true -frame.top=2 -frame.bottom=2 -frame.left=2 -frame.right=2 +frame.left=1 indicator.element=spin -indicator.size=8 -text.normal.color=#ebdbb2 -text.margin.top=2 -text.margin.bottom=2 -text.margin.left=2 -text.margin.right=2 +indicator.size=10 +text.normal.color=#d8dee9 [RadioButton] inherits=PanelButtonCommand frame=false interior.element=radio -text.normal.color=#ebdbb2 -text.focus.color=#fbf1c7 -min_width=+0.3font -min_height=+0.3font +text.normal.color=#d8dee9 +text.focus.color=#c8c8ca [CheckBox] inherits=PanelButtonCommand frame=false interior.element=checkbox -text.normal.color=#ebdbb2 -text.focus.color=#fbf1c7 -min_width=+0.3font -min_height=+0.3font +text.normal.color=#d8dee9 +text.focus.color=#c8c8ca [Focus] inherits=PanelButtonCommand @@ -214,25 +199,17 @@ frame=true interior=false frame.element=common interior.element=common -frame.top=3 -frame.bottom=3 -frame.left=3 -frame.right=3 +frame.top=1 +frame.bottom=1 +frame.left=1 +frame.right=1 [LineEdit] inherits=PanelButtonCommand frame.element=lineedit interior.element=lineedit -interior=false -frame.top=2 -frame.bottom=2 -frame.left=2 -frame.right=2 -text.margin.top=2 -text.margin.bottom=2 -text.margin.left=2 -text.margin.right=2 -frame.expansion=0 +text.margin.left=0 +text.margin.right=0 [DropDownButton] inherits=PanelButtonCommand @@ -244,9 +221,9 @@ indicator.size=8 [ToolboxTab] inherits=PanelButtonCommand -text.normal.color=#ebdbb2 -text.press.color=#ebdbb2 -text.focus.color=#fbf1c7 +text.normal.color=#d8dee9 +text.focus.color=#c8c8ca +text.press.color=#d2d2d4 [Tab] inherits=PanelButtonCommand @@ -257,28 +234,27 @@ text.margin.top=2 text.margin.bottom=2 frame.element=tab indicator.element=tab -frame.top=2 -frame.bottom=2 -frame.left=2 -frame.right=2 -text.normal.color=#ebdbb2 -text.focus.color=#ebdbb2 -text.toggle.color=#ebdbb2 +frame.top=4 +frame.bottom=4 +frame.left=4 +frame.right=4 +text.normal.color=#d8dee9 +text.focus.color=#d8dee9 +text.toggle.color=#d8dee9 frame.expansion=0 -text.bold=false [TabFrame] inherits=PanelButtonCommand frame.element=tabframe interior.element=tabframe -frame.top=2 -frame.bottom=2 -frame.left=2 -frame.right=2 +frame.top=4 +frame.bottom=4 +frame.left=4 +frame.right=4 [TreeExpander] inherits=PanelButtonCommand -indicator.size=8 +indicator.size=12 indicator.element=tree [HeaderSection] @@ -289,10 +265,11 @@ frame.top=1 frame.bottom=1 frame.left=1 frame.right=1 -text.normal.color=#ebdbb2 -text.focus.color=#fbf1c7 -text.press.color=#fbf1c7 -text.toggle.color=#fbf1c7 +text.bold=false +text.normal.color=#d8dee9 +text.focus.color=#c8c8ca +text.press.color=#d2d2d4 +text.toggle.color=#d2d2d4 frame.expansion=0 [SizeGrip] @@ -303,14 +280,15 @@ inherits=PanelButtonCommand indicator.element=toolbar indicator.size=5 text.margin=0 +frame=true interior.element=menubar frame.element=menubar -text.normal.color=#ebdbb2 -text.focus.color=#fbf1c7 +text.normal.color=#d8dee9 +text.focus.color=#c8c8ca frame.left=0 frame.right=0 frame.top=0 -frame.bottom=4 +frame.bottom=1 frame.expansion=0 [Slider] @@ -332,10 +310,10 @@ inherits=PanelButtonCommand frame.element=progress interior.element=progress text.margin=0 -text.normal.color=#ebdbb2 -text.focus.color=#ebdbb2 -text.press.color=#ebdbb2 -text.toggle.color=#cfd8dc +text.normal.color=#d8dee9 +text.focus.color=#c8c8ca +text.press.color=#d2d2d4 +text.toggle.color=#d8dee9 text.bold=false frame.expansion=8 @@ -358,10 +336,10 @@ text.margin.top=2 text.margin.bottom=2 text.margin.left=4 text.margin.right=4 -text.normal.color=#ebdbb2 -text.focus.color=#fbf1c7 -text.press.color=#fbf1c7 -text.toggle.color=#fbf1c7 +text.normal.color=#d8dee9 +text.focus.color=#c8c8ca +text.press.color=#d8dee9 +text.toggle.color=#d8dee9 min_width=+0.3font min_height=+0.3font frame.expansion=0 @@ -379,14 +357,14 @@ inherits=PanelButtonCommand interior.element=scrollbarslider interior=true frame=false -indicator.element=grip -indicator.size=13 frame.expansion=48 [ScrollbarGroove] inherits=PanelButtonCommand -interior=false +interior.element=scrollbargroove +interior=true frame=false +frame.expansion=48 [MenuItem] inherits=PanelButtonCommand @@ -394,16 +372,16 @@ frame=true frame.element=menuitem interior.element=menuitem indicator.element=menuitem -text.normal.color=#ebdbb2 -text.focus.color=#fbf1c7 +text.normal.color=#d8dee9 +text.focus.color=#c8c8ca text.margin.top=1 text.margin.bottom=1 text.margin.left=4 text.margin.right=4 -frame.top=0 -frame.bottom=0 -frame.left=0 -frame.right=0 +frame.top=3 +frame.bottom=3 +frame.left=3 +frame.right=3 text.bold=false min_width=+0.3font min_height=+0.3font @@ -413,10 +391,9 @@ frame.expansion=0 inherits=PanelButtonCommand frame.element=menubar interior.element=menubar +text.normal.color=#d8dee9 frame.bottom=0 -text.normal.color=#ebdbb2 frame.expansion=0 -text.bold=false [MenuBarItem] inherits=PanelButtonCommand @@ -431,11 +408,8 @@ text.margin.left=4 text.margin.right=4 text.margin.top=0 text.margin.bottom=0 -text.normal.color=#ebdbb2 -text.focus.color=#fbf1c7 -text.bold=false -min_width=+0.3font -min_height=+0.3font +text.normal.color=#d8dee9 +text.focus.color=#c8c8ca frame.expansion=0 [TitleBar] @@ -448,29 +422,18 @@ text.margin.right=2 interior.element=titlebar indicator.size=16 indicator.element=mdi -text.normal.color=#d5c4a1 -text.focus.color=#ebdbb2 -text.bold=false -text.italic=true +text.normal.color=#d8dee9 +text.focus.color=#c8c8ca +text.bold=true +text.italic=false frame.expansion=0 [ComboBox] inherits=PanelButtonCommand -frame.element=combo interior.element=combo -interior=false -frame.top=2 -frame.bottom=2 -frame.left=2 -frame.right=2 -text.margin.top=2 -text.margin.bottom=2 -text.margin.left=2 -text.margin.right=2 -text.focus.color=#fbf1c7 -text.press.color=#ebdbb2 -text.toggle.color=#fbf1c7 -frame.expansion=0 +frame.element=combo +text.press.color=#d2d2d4 +indicator.element=carrow [Menu] inherits=PanelButtonCommand @@ -480,7 +443,7 @@ frame.left=1 frame.right=1 frame.element=menu interior.element=menu -text.normal.color=#ebdbb2 +text.normal.color=#d8dee9 text.shadow=false frame.expansion=0 @@ -489,9 +452,9 @@ inherits=GenericFrame frame=false text.shadow=0 text.margin=0 -text.normal.color=#ebdbb2 -text.focus.color=#fbf1c7 -text.bold=false +text.normal.color=#d8dee9 +text.focus.color=#c8c8ca +text.bold=true frame.expansion=0 [TabBarFrame] @@ -499,10 +462,10 @@ inherits=GenericFrame frame=true frame.element=tabBarFrame interior=false -frame.top=2 -frame.bottom=2 -frame.left=2 -frame.right=2 +frame.top=4 +frame.bottom=4 +frame.left=4 +frame.right=4 [ToolTip] inherits=GenericFrame @@ -521,6 +484,7 @@ frame.expansion=0 inherits=GenericFrame frame=false interior=false +interior=false [Window] interior=true diff --git a/user/.config/Kvantum/gruvbox-fallnn/gruvbox-fallnn.svg b/user/.config/Kvantum/gruvbox-fallnn/gruvbox-fallnn.svg new file mode 100644 index 000000000..ee2dcb899 --- /dev/null +++ b/user/.config/Kvantum/gruvbox-fallnn/gruvbox-fallnn.svg @@ -0,0 +1,6796 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/user/.config/Kvantum/kvantum.kvconfig b/user/.config/Kvantum/kvantum.kvconfig index 62defb799..f75f53a75 100644 --- a/user/.config/Kvantum/kvantum.kvconfig +++ b/user/.config/Kvantum/kvantum.kvconfig @@ -1,2 +1,2 @@ [General] -theme=Gruvbox-Dark-Brown +theme=gruvbox-fallnn diff --git a/user/.config/btop/btop.conf b/user/.config/btop/btop.conf index cf427fc49..c1669d15c 100644 --- a/user/.config/btop/btop.conf +++ b/user/.config/btop/btop.conf @@ -54,7 +54,7 @@ update_ms = 200 #* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct", #* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly. -proc_sorting = "cpu lazy" +proc_sorting = "pid" #* Reverse sorting order, True or False. proc_reversed = False @@ -209,4 +209,4 @@ selected_battery = "Auto" #* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". #* The level set includes all lower levels, i.e. "DEBUG" will show all logging info. -log_level = "WARNING" +log_level = "WARNING" \ No newline at end of file diff --git a/user/.config/doom/config.el b/user/.config/doom/config.el deleted file mode 100644 index 6cd90196a..000000000 --- a/user/.config/doom/config.el +++ /dev/null @@ -1,562 +0,0 @@ -(beacon-mode 1) - -(map! :leader - (:prefix ("b". "buffer") - :desc "List bookmarks" "L" #'list-bookmarks - :desc "Save current bookmarks to bookmark file" "w" #'bookmark-save)) - -(global-auto-revert-mode 1) -(setq global-auto-revert-non-file-buffers t) - -(evil-define-key 'normal ibuffer-mode-map - (kbd "f c") 'ibuffer-filter-by-content - (kbd "f d") 'ibuffer-filter-by-directory - (kbd "f f") 'ibuffer-filter-by-filename - (kbd "f m") 'ibuffer-filter-by-mode - (kbd "f n") 'ibuffer-filter-by-name - (kbd "f x") 'ibuffer-filter-disable - (kbd "g h") 'ibuffer-do-kill-lines - (kbd "g H") 'ibuffer-update) - -;; https://stackoverflow.com/questions/9547912/emacs-calendar-show-more-than-3-months -(defun dt/year-calendar (&optional year) - (interactive) - (require 'calendar) - (let* ( - (current-year (number-to-string (nth 5 (decode-time (current-time))))) - (month 0) - (year (if year year (string-to-number (format-time-string "%Y" (current-time)))))) - (switch-to-buffer (get-buffer-create calendar-buffer)) - (when (not (eq major-mode 'calendar-mode)) - (calendar-mode)) - (setq displayed-month month) - (setq displayed-year year) - (setq buffer-read-only nil) - (erase-buffer) - ;; horizontal rows - (dotimes (j 4) - ;; vertical columns - (dotimes (i 3) - (calendar-generate-month - (setq month (+ month 1)) - year - ;; indentation / spacing between months - (+ 5 (* 25 i)))) - (goto-char (point-max)) - (insert (make-string (- 10 (count-lines (point-min) (point-max))) ?\n)) - (widen) - (goto-char (point-max)) - (narrow-to-region (point-max) (point-max))) - (widen) - (goto-char (point-min)) - (setq buffer-read-only t))) - -(defun dt/scroll-year-calendar-forward (&optional arg event) - "Scroll the yearly calendar by year in a forward direction." - (interactive (list (prefix-numeric-value current-prefix-arg) - last-nonmenu-event)) - (unless arg (setq arg 0)) - (save-selected-window - (if (setq event (event-start event)) (select-window (posn-window event))) - (unless (zerop arg) - (let* ( - (year (+ displayed-year arg))) - (dt/year-calendar year))) - (goto-char (point-min)) - (run-hooks 'calendar-move-hook))) - -(defun dt/scroll-year-calendar-backward (&optional arg event) - "Scroll the yearly calendar by year in a backward direction." - (interactive (list (prefix-numeric-value current-prefix-arg) - last-nonmenu-event)) - (dt/scroll-year-calendar-forward (- (or arg 1)) event)) - -(map! :leader - :desc "Scroll year calendar backward" "" #'dt/scroll-year-calendar-backward - :desc "Scroll year calendar forward" "" #'dt/scroll-year-calendar-forward) - -(defalias 'year-calendar 'dt/year-calendar) - -(use-package! calfw) -(use-package! calfw-org) - -(use-package dashboard - :init ;; tweak dashboard config before loading it - (setq dashboard-set-heading-icons t) - (setq dashboard-set-file-icons t) - (setq dashboard-banner-logo-title "\nKEYBINDINGS:\ -\nFind file (SPC .) \ -Open buffer list (SPC b i)\ -\nFind recent files (SPC f r) \ -Open the eshell (SPC e s)\ -\nOpen dired file manager (SPC d d) \ -List of keybindings (SPC h b b)") - ;;(setq dashboard-startup-banner 'logo) ;; use standard emacs logo as banner - (setq initial-buffer-choice (lambda () (get-buffer "*dashboard*"))) - (setq dashboard-startup-banner "~/.config/doom/emacs-dash.txt") ;; use custom image as banner - (setq dashboard-center-content nil) ;; set to 't' for centered content - (setq dashboard-items '((recents . 5) - (agenda . 5 ) - (bookmarks . 5) - (projects . 5) - (registers . 5))) - :config - (dashboard-setup-startup-hook) - (dashboard-modify-heading-icons '((recents . "file-text") - (bookmarks . "book")))) - -(setq doom-fallback-buffer "*dashboard*") - -(map! :leader - (:prefix ("d" . "dired") - :desc "Open dired" "d" #'dired - :desc "Dired jump to current" "j" #'dired-jump) - (:after dired - (:map dired-mode-map - :desc "Peep-dired image previews" "d p" #'peep-dired - :desc "Dired view file" "d v" #'dired-view-file))) - -(evil-define-key 'normal dired-mode-map - (kbd "M-RET") 'dired-display-file - (kbd "h") 'dired-up-directory - (kbd "l") 'dired-open-file ; use dired-find-file instead of dired-open. - (kbd "m") 'dired-mark - (kbd "t") 'dired-toggle-marks - (kbd "u") 'dired-unmark - (kbd "C") 'dired-do-copy - (kbd "D") 'dired-do-delete - (kbd "J") 'dired-goto-file - (kbd "M") 'dired-do-chmod - (kbd "O") 'dired-do-chown - (kbd "P") 'dired-do-print - (kbd "R") 'dired-do-rename - (kbd "T") 'dired-do-touch - (kbd "Y") 'dired-copy-filenamecopy-filename-as-kill ; copies filename to kill ring. - (kbd "+") 'dired-create-directory - (kbd "-") 'dired-up-directory - (kbd "% l") 'dired-downcase - (kbd "% u") 'dired-upcase - (kbd "; d") 'epa-dired-do-decrypt - (kbd "; e") 'epa-dired-do-encrypt) -;; Get file icons in dired -(add-hook 'dired-mode-hook 'all-the-icons-dired-mode) -;; With dired-open plugin, you can launch external programs for certain extensions -;; For example, I set all .png files to open in 'sxiv' and all .mp4 files to open in 'mpv' -(setq dired-open-extensions '(("gif" . "sxiv") - ("jpg" . "sxiv") - ("png" . "sxiv") - ("mkv" . "mpv") - ("mp4" . "mpv"))) - -(evil-define-key 'normal peep-dired-mode-map - (kbd "j") 'peep-dired-next-file - (kbd "k") 'peep-dired-prev-file) -(add-hook 'peep-dired-hook 'evil-normalize-keymaps) - -(setq delete-by-moving-to-trash t - trash-directory "~/.local/share/Trash/files/") - -(setq doom-theme 'doom-gruvbox) -(map! :leader - :desc "Load new theme" "h t" #'counsel-load-theme) - -(use-package emojify - :hook (after-init . global-emojify-mode)) - -(map! :leader - (:prefix ("e". "evaluate/EWW") - :desc "Evaluate elisp in buffer" "b" #'eval-buffer - :desc "Evaluate defun" "d" #'eval-defun - :desc "Evaluate elisp expression" "e" #'eval-expression - :desc "Evaluate last sexpression" "l" #'eval-last-sexp - :desc "Evaluate elisp in region" "r" #'eval-region)) - -(setq browse-url-browser-function 'eww-browse-url) -(map! :leader - :desc "Search web for text between BEG/END" - "s w" #'eww-search-words - (:prefix ("e" . "evaluate/EWW") - :desc "Eww web browser" "w" #'eww - :desc "Eww reload page" "R" #'eww-reload)) - -(setq doom-font (font-spec :family "mononoki Nerd Font" :size 15) - doom-variable-pitch-font (font-spec :family "mononoki Nerd Font" :size 15) - doom-big-font (font-spec :family "mononoki Nerd Font" :size 20)) -(after! doom-themes - (setq doom-themes-enable-bold t - doom-themes-enable-italic t)) -(custom-set-faces! - '(font-lock-comment-face :slant italic) - '(font-lock-keyword-face :slant italic)) - -(setq imenu-list-focus-after-activation t) - -(map! :leader - (:prefix ("s" . "Search") - :desc "Menu to jump to places in buffer" "i" #'counsel-imenu)) - -(map! :leader - (:prefix ("t" . "Toggle") - :desc "Toggle imenu shown in a sidebar" "i" #'imenu-list-smart-toggle)) - -(defun dt/insert-todays-date (prefix) - (interactive "P") - (let ((format (cond - ((not prefix) "%A, %B %d, %Y") - ((equal prefix '(4)) "%m-%d-%Y") - ((equal prefix '(16)) "%Y-%m-%d")))) - (insert (format-time-string format)))) - -(require 'calendar) -(defun dt/insert-any-date (date) - "Insert DATE using the current locale." - (interactive (list (calendar-read-date))) - (insert (calendar-date-string date))) - -(map! :leader - (:prefix ("i d" . "Insert date") - :desc "Insert any date" "a" #'dt/insert-any-date - :desc "Insert todays date" "t" #'dt/insert-todays-date)) - -(setq ivy-posframe-display-functions-alist - '((swiper . ivy-posframe-display-at-point) - (complete-symbol . ivy-posframe-display-at-point) - (counsel-M-x . ivy-display-function-fallback) - (counsel-esh-history . ivy-posframe-display-at-window-center) - (counsel-describe-function . ivy-display-function-fallback) - (counsel-describe-variable . ivy-display-function-fallback) - (counsel-find-file . ivy-display-function-fallback) - (counsel-recentf . ivy-display-function-fallback) - (counsel-register . ivy-posframe-display-at-frame-bottom-window-center) - (dmenu . ivy-posframe-display-at-frame-top-center) - (nil . ivy-posframe-display)) - ivy-posframe-height-alist - '((swiper . 20) - (dmenu . 20) - (t . 10))) -(ivy-posframe-mode 1) ; 1 enables posframe-mode, 0 disables it. - -(map! :leader - (:prefix ("v" . "Ivy") - :desc "Ivy push view" "v p" #'ivy-push-view - :desc "Ivy switch view" "v s" #'ivy-switch-view)) - -(setq display-line-numbers-type t) -(map! :leader - :desc "Comment or uncomment lines" "TAB TAB" #'comment-line - (:prefix ("t" . "toggle") - :desc "Toggle line numbers" "l" #'doom/toggle-line-numbers - :desc "Toggle line highlight in frame" "h" #'hl-line-mode - :desc "Toggle line highlight globally" "H" #'global-hl-line-mode - :desc "Toggle truncate lines" "t" #'toggle-truncate-lines)) - -(custom-set-faces - '(markdown-header-face ((t (:inherit font-lock-function-name-face :weight bold :family "variable-pitch")))) - '(markdown-header-face-1 ((t (:inherit markdown-header-face :height 1.7)))) - '(markdown-header-face-2 ((t (:inherit markdown-header-face :height 1.6)))) - '(markdown-header-face-3 ((t (:inherit markdown-header-face :height 1.5)))) - '(markdown-header-face-4 ((t (:inherit markdown-header-face :height 1.4)))) - '(markdown-header-face-5 ((t (:inherit markdown-header-face :height 1.3)))) - '(markdown-header-face-6 ((t (:inherit markdown-header-face :height 1.2))))) - -(setq minimap-window-location 'right) -(map! :leader - (:prefix ("t" . "toggle") - :desc "Toggle minimap-mode" "m" #'minimap-mode)) - -(set-face-attribute 'mode-line nil :font "mononoki Nerd Font-13") -(setq doom-modeline-height 30 ;; sets modeline height - doom-modeline-bar-width 5 ;; sets right bar width - doom-modeline-persp-name t ;; adds perspective name to modeline - doom-modeline-persp-icon t) ;; adds folder icon next to persp name - -(xterm-mouse-mode 1) - -(after! neotree - (setq neo-smart-open t - neo-window-fixed-size nil)) -(after! doom-themes - (setq doom-neotree-enable-variable-pitch t)) -(map! :leader - :desc "Toggle neotree file viewer" "t n" #'neotree-toggle - :desc "Open directory in neotree" "d n" #'neotree-dir) - -(map! :leader - (:prefix ("=" . "open file") - :desc "Edit agenda file" "a" #'(lambda () (interactive) (find-file "~/Org/agenda.org")) - :desc "Edit doom config.org" "c" #'(lambda () (interactive) (find-file "~/.config/doom/config.org")) - :desc "Edit doom init.el" "i" #'(lambda () (interactive) (find-file "~/.config/doom/init.el")) - :desc "Edit doom packages.el" "p" #'(lambda () (interactive) (find-file "~/.config/doom/packages.el")))) -(map! :leader - (:prefix ("= e" . "open eshell files") - :desc "Edit eshell aliases" "a" #'(lambda () (interactive) (find-file "~/.config/doom/eshell/aliases")) - :desc "Edit eshell profile" "p" #'(lambda () (interactive) (find-file "~/.config/doom/eshell/profile")))) - -(map! :leader - :desc "Org babel tangle" "m B" #'org-babel-tangle) -(after! org - (setq org-directory "~/nc/Org/" - org-agenda-files '("~/nc/Org/agenda.org") - org-default-notes-file (expand-file-name "notes.org" org-directory) - org-ellipsis " ▼ " - org-superstar-headline-bullets-list '("◉" "●" "○" "◆" "●" "○" "◆") - org-superstar-item-bullet-alist '((?+ . ?➤) (?- . ?✦)) ; changes +/- symbols in item lists - org-log-done 'time - org-hide-emphasis-markers t - ;; ex. of org-link-abbrev-alist in action - ;; [[arch-wiki:Name_of_Page][Description]] - org-link-abbrev-alist ; This overwrites the default Doom org-link-abbrev-list - '(("google" . "http://www.google.com/search?q=") - ("arch-wiki" . "https://wiki.archlinux.org/index.php/") - ("ddg" . "https://duckduckgo.com/?q=") - ("wiki" . "https://en.wikipedia.org/wiki/")) - org-todo-keywords ; This overwrites the default Doom org-todo-keywords - '((sequence - "TODO(t)" ; A task that is ready to be tackled - "BLOG(b)" ; Blog writing assignments - "GYM(g)" ; Things to accomplish at the gym - "PROJ(p)" ; A project that contains other tasks - "VIDEO(v)" ; Video assignments - "WAIT(w)" ; Something is holding up this task - "|" ; The pipe necessary to separate "active" states and "inactive" states - "DONE(d)" ; Task has been completed - "CANCELLED(c)" )))) ; Task has been cancelled - -(defun dt/org-colors-doom-one () - "Enable Doom One colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#51afef" ultra-bold) - (org-level-2 1.6 "#c678dd" extra-bold) - (org-level-3 1.5 "#98be65" bold) - (org-level-4 1.4 "#da8548" semi-bold) - (org-level-5 1.3 "#5699af" normal) - (org-level-6 1.2 "#a9a1e1" normal) - (org-level-7 1.1 "#46d9ff" normal) - (org-level-8 1.0 "#ff6c6b" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-dracula () - "Enable Dracula colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#8be9fd" ultra-bold) - (org-level-2 1.6 "#bd93f9" extra-bold) - (org-level-3 1.5 "#50fa7b" bold) - (org-level-4 1.4 "#ff79c6" semi-bold) - (org-level-5 1.3 "#9aedfe" normal) - (org-level-6 1.2 "#caa9fa" normal) - (org-level-7 1.1 "#5af78e" normal) - (org-level-8 1.0 "#ff92d0" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-gruvbox-dark () - "Enable Gruvbox Dark colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#458588" ultra-bold) - (org-level-2 1.6 "#b16286" extra-bold) - (org-level-3 1.5 "#98971a" bold) - (org-level-4 1.4 "#fb4934" semi-bold) - (org-level-5 1.3 "#83a598" normal) - (org-level-6 1.2 "#d3869b" normal) - (org-level-7 1.1 "#d79921" normal) - (org-level-8 1.0 "#8ec07c" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-monokai-pro () - "Enable Monokai Pro colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#78dce8" ultra-bold) - (org-level-2 1.6 "#ab9df2" extra-bold) - (org-level-3 1.5 "#a9dc76" bold) - (org-level-4 1.4 "#fc9867" semi-bold) - (org-level-5 1.3 "#ff6188" normal) - (org-level-6 1.2 "#ffd866" normal) - (org-level-7 1.1 "#78dce8" normal) - (org-level-8 1.0 "#ab9df2" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-nord () - "Enable Nord colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#81a1c1" ultra-bold) - (org-level-2 1.6 "#b48ead" extra-bold) - (org-level-3 1.5 "#a3be8c" bold) - (org-level-4 1.4 "#ebcb8b" semi-bold) - (org-level-5 1.3 "#bf616a" normal) - (org-level-6 1.2 "#88c0d0" normal) - (org-level-7 1.1 "#81a1c1" normal) - (org-level-8 1.0 "#b48ead" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-oceanic-next () - "Enable Oceanic Next colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#6699cc" ultra-bold) - (org-level-2 1.6 "#c594c5" extra-bold) - (org-level-3 1.5 "#99c794" bold) - (org-level-4 1.4 "#fac863" semi-bold) - (org-level-5 1.3 "#5fb3b3" normal) - (org-level-6 1.2 "#ec5f67" normal) - (org-level-7 1.1 "#6699cc" normal) - (org-level-8 1.0 "#c594c5" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-palenight () - "Enable Palenight colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#82aaff" ultra-bold) - (org-level-2 1.6 "#c792ea" extra-bold) - (org-level-3 1.5 "#c3e88d" bold) - (org-level-4 1.4 "#ffcb6b" semi-bold) - (org-level-5 1.3 "#a3f7ff" normal) - (org-level-6 1.2 "#e1acff" normal) - (org-level-7 1.1 "#f07178" normal) - (org-level-8 1.0 "#ddffa7" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-solarized-dark () - "Enable Solarized Dark colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#268bd2" ultra-bold) - (org-level-2 1.6 "#d33682" extra-bold) - (org-level-3 1.5 "#859900" bold) - (org-level-4 1.4 "#b58900" semi-bold) - (org-level-5 1.3 "#cb4b16" normal) - (org-level-6 1.2 "#6c71c4" normal) - (org-level-7 1.1 "#2aa198" normal) - (org-level-8 1.0 "#657b83" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-solarized-light () - "Enable Solarized Light colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#268bd2" ultra-bold) - (org-level-2 1.6 "#d33682" extra-bold) - (org-level-3 1.5 "#859900" bold) - (org-level-4 1.4 "#b58900" semi-bold) - (org-level-5 1.3 "#cb4b16" normal) - (org-level-6 1.2 "#6c71c4" normal) - (org-level-7 1.1 "#2aa198" normal) - (org-level-8 1.0 "#657b83" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-tomorrow-night () - "Enable Tomorrow Night colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#81a2be" ultra-bold) - (org-level-2 1.6 "#b294bb" extra-bold) - (org-level-3 1.5 "#b5bd68" bold) - (org-level-4 1.4 "#e6c547" semi-bold) - (org-level-5 1.3 "#cc6666" normal) - (org-level-6 1.2 "#70c0ba" normal) - (org-level-7 1.1 "#b77ee0" normal) - (org-level-8 1.0 "#9ec400" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -;; Load our desired dt/org-colors-* theme on startup -(dt/org-colors-tomorrow-night) - -(use-package ox-man) -(use-package ox-gemini) - -(setq org-journal-dir "~/nc/Org/journal/" - org-journal-date-prefix "* " - org-journal-time-prefix "** " - org-journal-date-format "%B %d, %Y (%A) " - org-journal-file-format "%Y-%m-%d.org") - -(setq org-publish-use-timestamps-flag nil) -(setq org-export-with-broken-links t) - -(use-package! org-auto-tangle - :defer t - :hook (org-mode . org-auto-tangle-mode) - :config - (setq org-auto-tangle-default t)) - -(map! :leader - :desc "Switch to perspective NAME" "DEL" #'persp-switch - :desc "Switch to buffer in perspective" "," #'persp-switch-to-buffer - :desc "Switch to next perspective" "]" #'persp-next - :desc "Switch to previous perspective" "[" #'persp-prev - :desc "Add a buffer current perspective" "+" #'persp-add-buffer - :desc "Remove perspective by name" "-" #'persp-remove-by-name) - -(define-globalized-minor-mode global-rainbow-mode rainbow-mode - (lambda () (rainbow-mode 1))) -(global-rainbow-mode 1 ) - -(map! :leader - (:prefix ("r" . "registers") - :desc "Copy to register" "c" #'copy-to-register - :desc "Frameset to register" "f" #'frameset-to-register - :desc "Insert contents of register" "i" #'insert-register - :desc "Jump to register" "j" #'jump-to-register - :desc "List registers" "l" #'list-registers - :desc "Number to register" "n" #'number-to-register - :desc "Interactively choose a register" "r" #'counsel-register - :desc "View a register" "v" #'view-register - :desc "Window configuration to register" "w" #'window-configuration-to-register - :desc "Increment register" "+" #'increment-register - :desc "Point to register" "SPC" #'point-to-register)) - -(setq shell-file-name "/bin/bash" - vterm-max-scrollback 5000) -(setq eshell-rc-script "~/.config/doom/eshell/profile" - eshell-aliases-file "~/.config/doom/eshell/aliases" - eshell-history-size 5000 - eshell-buffer-maximum-lines 5000 - eshell-hist-ignoredups t - eshell-scroll-to-bottom-on-input t - eshell-destroy-buffer-when-process-dies t - eshell-visual-commands'("bash" "fish" "htop" "ssh" "top" "zsh")) -(map! :leader - :desc "Eshell" "e s" #'eshell - :desc "Eshell popup toggle" "e t" #'+eshell/toggle - :desc "Counsel eshell history" "e h" #'counsel-esh-history - :desc "Vterm popup toggle" "v t" #'+vterm/toggle) - -(defun prefer-horizontal-split () - (set-variable 'split-height-threshold nil t) - (set-variable 'split-width-threshold 40 t)) ; make this as low as needed -(add-hook 'markdown-mode-hook 'prefer-horizontal-split) -(map! :leader - :desc "Clone indirect buffer other window" "b c" #'clone-indirect-buffer-other-window) - -(map! :leader - (:prefix ("w" . "window") - :desc "Winner redo" "" #'winner-redo - :desc "Winner undo" "" #'winner-undo)) - -(map! :leader - :desc "Zap to char" "z" #'zap-to-char - :desc "Zap up to char" "Z" #'zap-up-to-char) diff --git a/user/.config/doom/config.org b/user/.config/doom/config.org deleted file mode 100644 index 2fec5f2c7..000000000 --- a/user/.config/doom/config.org +++ /dev/null @@ -1,1123 +0,0 @@ -#+TITLE: DRK's Doom Emacs Config -#+AUTHOR: Clay Gomera (Drake) -#+DESCRIPTION: DRK's personal Doom Emacs config. -#+STARTUP: showeverything -#+PROPERTY: header-args :tangle config.el - -* TABLE OF CONTENTS :toc: -- [[#about-this-config][About this config]] -- [[#beacon][Beacon]] -- [[#bookmarks-and-buffers][Bookmarks and buffers]] - - [[#bookmarks][Bookmarks]] - - [[#buffers][Buffers]] - - [[#global-auto-revert][Global Auto Revert]] - - [[#keybindings-within-ibuffer-mode][Keybindings within ibuffer mode]] -- [[#calendar][Calendar]] -- [[#dashboard][Dashboard]] - - [[#configuring-dashboard][Configuring Dashboard]] - - [[#dashboard-in-emacsclient][Dashboard in Emacsclient]] -- [[#dired][Dired]] - - [[#keybindings-to-open-dired][Keybindings To Open Dired]] - - [[#keybindings-within-dired][Keybindings Within Dired]] - - [[#keybindings-within-dired-with-peep-dired-mode-enabled][Keybindings Within Dired With Peep-Dired-Mode Enabled]] - - [[#making-deleted-files-go-to-trash-can][Making deleted files go to trash can]] -- [[#doom-theme][Doom theme]] -- [[#emojis][Emojis]] -- [[#evaluate-elisp-expressions][Evaluate elisp expressions]] -- [[#eww][Eww]] -- [[#fonts][Fonts]] -- [[#imenu][Imenu]] -- [[#insert-date][Insert date]] -- [[#ivy][Ivy]] - - [[#ivy-posframe][Ivy-posframe]] - - [[#ivy-keybindings][Ivy keybindings]] -- [[#line-settings][Line settings]] -- [[#markdown][Markdown]] -- [[#minimap][Minimap]] -- [[#modeline][Modeline]] -- [[#mouse-support][Mouse support]] -- [[#neotree][Neotree]] -- [[#open-specific-files][Open specific files]] -- [[#org-mode][Org mode]] - - [[#org-fonts][Org fonts]] - - [[#org-export][Org-export]] - - [[#org-journal][Org-journal]] - - [[#org-publish][Org-publish]] - - [[#org-auto-tangle][Org-auto-tangle]] -- [[#perspective][Perspective]] -- [[#rainbow-mode][Rainbow mode]] -- [[#registers][Registers]] -- [[#shells][Shells]] -- [[#splits][Splits]] -- [[#winner-mode][Winner mode]] -- [[#zap-to-char][Zap to char]] - -* About this config -This is my personal Doom Emacs config. Doom Emacs is a distribution of Emacs -that uses the "evil" keybindings (Vim keybindings) and includes a number of nice -extensions and a bit of configuration out of the box. I am maintaining this -config not just for myself, but also for those that want to explore some of what -is possible with Emacs. I will add a lot of examples of plugins and settings, -some of them I may not even use personally. This config is a fork of -DistroTube's config. - -* Beacon -Never lose your cursor. When you scroll, your cursor will shine! This is a -global minor-mode. Turn it on everywhere with: - -#+begin_src emacs-lisp -(beacon-mode 1) -#+end_src - -* Bookmarks and buffers -Doom Emacs uses 'SPC b' for keybindings related to bookmarks and buffers. - -** Bookmarks -Bookmarks are somewhat like registers in that they record positions you can jump -to. Unlike registers, they have long names, and they persist automatically from -one Emacs session to the next. The prototypical use of bookmarks is to record -where you were reading in various files. - -#+BEGIN_SRC emacs-lisp -(map! :leader - (:prefix ("b". "buffer") - :desc "List bookmarks" "L" #'list-bookmarks - :desc "Save current bookmarks to bookmark file" "w" #'bookmark-save)) -#+END_SRC - -** Buffers -Regarding /buffers/, the text you are editing in Emacs resides in an object called -a /buffer/. Each time you visit a file, a buffer is used to hold the file’s text. -Each time you invoke Dired, a buffer is used to hold the directory listing. -/Ibuffer/ is a program that lists all of your Emacs /buffers/, allowing you to -navigate between them and filter them. - -| COMMAND | DESCRIPTION | KEYBINDING | -|-----------------+----------------------+------------| -| ibuffer | Launch ibuffer | SPC b i | -| kill-buffer | Kill current buffer | SPC b k | -| next-buffer | Goto next buffer | SPC b n | -| previous-buffer | Goto previous buffer | SPC b p | -| save-buffer | Save current buffer | SPC b s | - -** Global Auto Revert -A buffer can get out of sync with respect to its visited file on disk if that -file is changed by another program. To keep it up to date, you can enable Auto -Revert mode by typing M-x auto-revert-mode, or you can set it to be turned on -globally with 'global-auto-revert-mode'. I have also turned on Global Auto -Revert on non-file buffers, which is especially useful for 'dired' buffers. - -#+begin_src emacs-lisp -(global-auto-revert-mode 1) -(setq global-auto-revert-non-file-buffers t) -#+end_src - -** Keybindings within ibuffer mode -| COMMAND | DESCRIPTION | KEYBINDING | -|-----------------------------------+----------------------------------------+------------| -| ibuffer-mark-forward | Mark the buffer | m | -| ibuffer-unmark-forward | Unmark the buffer | u | -| ibuffer-do-kill-on-deletion-marks | Kill the marked buffers | x | -| ibuffer-filter-by-content | Ibuffer filter by content | f c | -| ibuffer-filter-by-directory | Ibuffer filter by directory | f d | -| ibuffer-filter-by-filename | Ibuffer filter by filename (full path) | f f | -| ibuffer-filter-by-mode | Ibuffer filter by mode | f m | -| ibuffer-filter-by-name | Ibuffer filter by name | f n | -| ibuffer-filter-disable | Disable ibuffer filter | f x | -| ibuffer-do-kill-lines | Hide marked buffers | g h | -| ibuffer-update | Restore hidden buffers | g H | - -#+begin_src emacs-lisp -(evil-define-key 'normal ibuffer-mode-map - (kbd "f c") 'ibuffer-filter-by-content - (kbd "f d") 'ibuffer-filter-by-directory - (kbd "f f") 'ibuffer-filter-by-filename - (kbd "f m") 'ibuffer-filter-by-mode - (kbd "f n") 'ibuffer-filter-by-name - (kbd "f x") 'ibuffer-filter-disable - (kbd "g h") 'ibuffer-do-kill-lines - (kbd "g H") 'ibuffer-update) -#+end_src - -* Calendar -Let's make a 12-month calendar available so we can have a calendar app that, -when we click on time/date in xmobar, we get a nice 12-month calendar to view. - -This is a modification of: http://homepage3.nifty.com/oatu/emacs/calendar.html -See also: https://stackoverflow.com/questions/9547912/emacs-calendar-show-more-than-3-months - -#+begin_src emacs-lisp -;; https://stackoverflow.com/questions/9547912/emacs-calendar-show-more-than-3-months -(defun dt/year-calendar (&optional year) - (interactive) - (require 'calendar) - (let* ( - (current-year (number-to-string (nth 5 (decode-time (current-time))))) - (month 0) - (year (if year year (string-to-number (format-time-string "%Y" (current-time)))))) - (switch-to-buffer (get-buffer-create calendar-buffer)) - (when (not (eq major-mode 'calendar-mode)) - (calendar-mode)) - (setq displayed-month month) - (setq displayed-year year) - (setq buffer-read-only nil) - (erase-buffer) - ;; horizontal rows - (dotimes (j 4) - ;; vertical columns - (dotimes (i 3) - (calendar-generate-month - (setq month (+ month 1)) - year - ;; indentation / spacing between months - (+ 5 (* 25 i)))) - (goto-char (point-max)) - (insert (make-string (- 10 (count-lines (point-min) (point-max))) ?\n)) - (widen) - (goto-char (point-max)) - (narrow-to-region (point-max) (point-max))) - (widen) - (goto-char (point-min)) - (setq buffer-read-only t))) - -(defun dt/scroll-year-calendar-forward (&optional arg event) - "Scroll the yearly calendar by year in a forward direction." - (interactive (list (prefix-numeric-value current-prefix-arg) - last-nonmenu-event)) - (unless arg (setq arg 0)) - (save-selected-window - (if (setq event (event-start event)) (select-window (posn-window event))) - (unless (zerop arg) - (let* ( - (year (+ displayed-year arg))) - (dt/year-calendar year))) - (goto-char (point-min)) - (run-hooks 'calendar-move-hook))) - -(defun dt/scroll-year-calendar-backward (&optional arg event) - "Scroll the yearly calendar by year in a backward direction." - (interactive (list (prefix-numeric-value current-prefix-arg) - last-nonmenu-event)) - (dt/scroll-year-calendar-forward (- (or arg 1)) event)) - -(map! :leader - :desc "Scroll year calendar backward" "" #'dt/scroll-year-calendar-backward - :desc "Scroll year calendar forward" "" #'dt/scroll-year-calendar-forward) - -(defalias 'year-calendar 'dt/year-calendar) -#+end_src - -Let's also play around with calfw. -#+begin_src emacs-lisp -(use-package! calfw) -(use-package! calfw-org) -#+end_src - -* Dashboard -Emacs Dashboard is an extensible startup screen showing you recent files, -bookmarks, agenda items and an Emacs banner. - -** Configuring Dashboard -#+begin_src emacs-lisp -(use-package dashboard - :init ;; tweak dashboard config before loading it - (setq dashboard-set-heading-icons t) - (setq dashboard-set-file-icons t) - (setq dashboard-banner-logo-title "\nKEYBINDINGS:\ -\nFind file (SPC .) \ -Open buffer list (SPC b i)\ -\nFind recent files (SPC f r) \ -Open the eshell (SPC e s)\ -\nOpen dired file manager (SPC d d) \ -List of keybindings (SPC h b b)") - ;;(setq dashboard-startup-banner 'logo) ;; use standard emacs logo as banner - (setq initial-buffer-choice (lambda () (get-buffer "*dashboard*"))) - (setq dashboard-startup-banner "~/.config/doom/emacs-dash.txt") ;; use custom image as banner - (setq dashboard-center-content nil) ;; set to 't' for centered content - (setq dashboard-items '((recents . 5) - (agenda . 5 ) - (bookmarks . 5) - (projects . 5) - (registers . 5))) - :config - (dashboard-setup-startup-hook) - (dashboard-modify-heading-icons '((recents . "file-text") - (bookmarks . "book")))) -#+end_src - -** Dashboard in Emacsclient -This setting ensures that emacsclient always opens on *dashboard* rather than *scratch*. -#+begin_src emacs-lisp -(setq doom-fallback-buffer "*dashboard*") -#+end_src - -* Dired -Dired is the file manager within Emacs. Below, I setup keybindings for image -previews (peep-dired). Doom Emacs does not use 'SPC d' for any of its -keybindings, so I've chosen the format of 'SPC d' plus 'key'. - -** Keybindings To Open Dired - -| COMMAND | DESCRIPTION | KEYBINDING | -|------------+------------------------------------+------------| -| dired | /Open dired file manager/ | SPC d d | -| dired-jump | /Jump to current directory in dired/ | SPC d j | - -** Keybindings Within Dired -*** Basic dired commands - -| COMMAND | DESCRIPTION | KEYBINDING | -|-------------------------+---------------------------------------------+------------| -| dired-view-file | /View file in dired/ | SPC d v | -| dired-up-directory | /Go up in directory tree/ | h | -| dired-find-file | /Go down in directory tree (or open if file)/ | l | -| dired-next-line | Move down to next line | j | -| dired-previous-line | Move up to previous line | k | -| dired-mark | Mark file at point | m | -| dired-unmark | Unmark file at point | u | -| dired-do-copy | Copy current file or marked files | C | -| dired-do-rename | Rename current file or marked files | R | -| dired-hide-details | Toggle detailed listings on/off | ( | -| dired-git-info-mode | Toggle git information on/off | ) | -| dired-create-directory | Create new empty directory | + | -| dired-diff | Compare file at point with another | = | -| dired-subtree-toggle | Toggle viewing subtree at point | TAB | - -*** Dired commands using regex - -| COMMAND | DESCRIPTION | KEYBINDING | -|-------------------------+----------------------------+------------| -| dired-mark-files-regexp | Mark files using regex | % m | -| dired-do-copy-regexp | Copy files using regex | % C | -| dired-do-rename-regexp | Rename files using regex | % R | -| dired-mark-files-regexp | Mark all files using regex | * % | - -*** File permissions and ownership - -| COMMAND | DESCRIPTION | KEYBINDING | -|-----------------+----------------------------------+------------| -| dired-do-chgrp | Change the group of marked files | g G | -| dired-do-chmod | Change the mode of marked files | M | -| dired-do-chown | Change the owner of marked files | O | -| dired-do-rename | Rename file or all marked files | R | - -#+begin_src emacs-lisp -(map! :leader - (:prefix ("d" . "dired") - :desc "Open dired" "d" #'dired - :desc "Dired jump to current" "j" #'dired-jump) - (:after dired - (:map dired-mode-map - :desc "Peep-dired image previews" "d p" #'peep-dired - :desc "Dired view file" "d v" #'dired-view-file))) - -(evil-define-key 'normal dired-mode-map - (kbd "M-RET") 'dired-display-file - (kbd "h") 'dired-up-directory - (kbd "l") 'dired-open-file ; use dired-find-file instead of dired-open. - (kbd "m") 'dired-mark - (kbd "t") 'dired-toggle-marks - (kbd "u") 'dired-unmark - (kbd "C") 'dired-do-copy - (kbd "D") 'dired-do-delete - (kbd "J") 'dired-goto-file - (kbd "M") 'dired-do-chmod - (kbd "O") 'dired-do-chown - (kbd "P") 'dired-do-print - (kbd "R") 'dired-do-rename - (kbd "T") 'dired-do-touch - (kbd "Y") 'dired-copy-filenamecopy-filename-as-kill ; copies filename to kill ring. - (kbd "+") 'dired-create-directory - (kbd "-") 'dired-up-directory - (kbd "% l") 'dired-downcase - (kbd "% u") 'dired-upcase - (kbd "; d") 'epa-dired-do-decrypt - (kbd "; e") 'epa-dired-do-encrypt) -;; Get file icons in dired -(add-hook 'dired-mode-hook 'all-the-icons-dired-mode) -;; With dired-open plugin, you can launch external programs for certain extensions -;; For example, I set all .png files to open in 'sxiv' and all .mp4 files to open in 'mpv' -(setq dired-open-extensions '(("gif" . "sxiv") - ("jpg" . "sxiv") - ("png" . "sxiv") - ("mkv" . "mpv") - ("mp4" . "mpv"))) -#+end_src - -** Keybindings Within Dired With Peep-Dired-Mode Enabled -If peep-dired is enabled, you will get image previews as you go up/down with 'j' -and 'k' - -| COMMAND | DESCRIPTION | KEYBINDING | -|----------------------+------------------------------------------+------------| -| peep-dired | /Toggle previews within dired/ | SPC d p | -| peep-dired-next-file | /Move to next file in peep-dired-mode/ | j | -| peep-dired-prev-file | /Move to previous file in peep-dired-mode/ | k | - -#+BEGIN_SRC emacs-lisp -(evil-define-key 'normal peep-dired-mode-map - (kbd "j") 'peep-dired-next-file - (kbd "k") 'peep-dired-prev-file) -(add-hook 'peep-dired-hook 'evil-normalize-keymaps) -#+END_SRC - -** Making deleted files go to trash can -#+begin_src emacs-lisp -(setq delete-by-moving-to-trash t - trash-directory "~/.local/share/Trash/files/") -#+end_src - -* Doom theme -Setting the theme to doom-gruvbox. To try out new themes, I set a keybinding for -counsel-load-theme with 'SPC h t'. - -#+BEGIN_SRC emacs-lisp -(setq doom-theme 'doom-gruvbox) -(map! :leader - :desc "Load new theme" "h t" #'counsel-load-theme) -#+END_SRC - -* Emojis -Emojify is an Emacs extension to display emojis. It can display github style -emojis like :smile: or plain ascii ones like :). - -#+begin_src emacs-lisp -(use-package emojify - :hook (after-init . global-emojify-mode)) -#+end_src - -* Evaluate elisp expressions -Changing some keybindings from their defaults to better fit with Doom Emacs, and -to avoid conflicts with my window managers which sometimes use the control key -in their keybindings. By default, Doom Emacs does not use 'SPC e' for anything, -so I choose to use the format 'SPC e' plus 'key' for these (I also use 'SPC e' -for 'eww' keybindings). - -| COMMAND | DESCRIPTION | KEYBINDING | -|-----------------+----------------------------------------------+------------| -| eval-buffer | /Evaluate elisp in buffer/ | SPC e b | -| eval-defun | /Evaluate the defun containing or after point/ | SPC e d | -| eval-expression | /Evaluate an elisp expression/ | SPC e e | -| eval-last-sexp | /Evaluate elisp expression before point/ | SPC e l | -| eval-region | /Evaluate elisp in region/ | SPC e r | - -#+Begin_src emacs-lisp -(map! :leader - (:prefix ("e". "evaluate/EWW") - :desc "Evaluate elisp in buffer" "b" #'eval-buffer - :desc "Evaluate defun" "d" #'eval-defun - :desc "Evaluate elisp expression" "e" #'eval-expression - :desc "Evaluate last sexpression" "l" #'eval-last-sexp - :desc "Evaluate elisp in region" "r" #'eval-region)) -#+END_SRC - -* Eww -EWW is the Emacs Web Wowser, the builtin browser in Emacs. Below I set urls to -open in a specific browser (eww) with browse-url-browser-function. By default, -Doom Emacs does not use 'SPC e' for anything, so I choose to use the format 'SPC -e' plus 'key' for these (I also use 'SPC e' for 'eval' keybindings). I chose to -use 'SPC s w' for eww-search-words because Doom Emacs uses 'SPC s' for 'search' -commands. - -#+BEGIN_SRC emacs-lisp -(setq browse-url-browser-function 'eww-browse-url) -(map! :leader - :desc "Search web for text between BEG/END" - "s w" #'eww-search-words - (:prefix ("e" . "evaluate/EWW") - :desc "Eww web browser" "w" #'eww - :desc "Eww reload page" "R" #'eww-reload)) -#+END_SRC - -* Fonts -Settings related to fonts within Doom Emacs: -+ 'doom-font' -- standard monospace font that is used for most things in Emacs. -+ 'doom-variable-pitch-font' -- variable font which is useful in some Emacs plugins. -+ 'doom-big-font' -- used in doom-big-font-mode; useful for presentations. -+ 'font-lock-comment-face' -- for comments. -+ 'font-lock-keyword-face' -- for keywords with special significanclike 'setq' in elisp. - -#+BEGIN_SRC emacs-lisp -(setq doom-font (font-spec :family "mononoki Nerd Font" :size 15) - doom-variable-pitch-font (font-spec :family "mononoki Nerd Font" :size 15) - doom-big-font (font-spec :family "mononoki Nerd Font" :size 20)) -(after! doom-themes - (setq doom-themes-enable-bold t - doom-themes-enable-italic t)) -(custom-set-faces! - '(font-lock-comment-face :slant italic) - '(font-lock-keyword-face :slant italic)) -#+END_SRC - -* Imenu -Imenu produces menus for accessing locations in documents, typically in the -current buffer. You can access the locations using an ordinary menu (menu bar or -other) or using minibuffer completion, or you can install 'imenu-list' and have -the imenu displayed as a vertical split that you can toggle show/hide. - -| COMMAND | DESCRIPTION | KEYBINDING | -|-------------------------+----------------------------------+------------| -| counsel-imenu | /Menu to jump to places in buffer/ | SPC s i | -| imenu-list-smart-toggle | /Toggle imenu shown in a sidebar/ | SPC t i | - -#+BEGIN_SRC emacs-lisp -(setq imenu-list-focus-after-activation t) - -(map! :leader - (:prefix ("s" . "Search") - :desc "Menu to jump to places in buffer" "i" #'counsel-imenu)) - -(map! :leader - (:prefix ("t" . "Toggle") - :desc "Toggle imenu shown in a sidebar" "i" #'imenu-list-smart-toggle)) - -#+END_SRC - -* Insert date -Some custom functions to insert the date. The function 'insert-todays-date' can -be used one of three different ways: (1) just the keybinding without the -universal argument prefix, (2) with one universal argument prefix, or (3) with -two universal argument prefixes. The universal argument prefix is 'SPC-u' in -Doom Emacs (C-u in standard GNU Emacs). The function 'insert-any-date' only -outputs to one format, which is the same format as 'insert-todays-date' without -a prefix. - -| COMMAND | EXAMPLE OUTPUT | KEYBINDING | -|-----------------------+---------------------------+-----------------------| -| dt/insert-todays-date | Friday, November 19, 2021 | SPC i d t | -| dt/insert-todays-date | 11-19-2021 | SPC u SPC i d t | -| dt/insert-todays-date | 2021-11-19 | SPC u SPC u SPC i d t | -| dt/insert-any-date | Friday, November 19, 2021 | SPC i d a | - -#+begin_src emacs-lisp -(defun dt/insert-todays-date (prefix) - (interactive "P") - (let ((format (cond - ((not prefix) "%A, %B %d, %Y") - ((equal prefix '(4)) "%m-%d-%Y") - ((equal prefix '(16)) "%Y-%m-%d")))) - (insert (format-time-string format)))) - -(require 'calendar) -(defun dt/insert-any-date (date) - "Insert DATE using the current locale." - (interactive (list (calendar-read-date))) - (insert (calendar-date-string date))) - -(map! :leader - (:prefix ("i d" . "Insert date") - :desc "Insert any date" "a" #'dt/insert-any-date - :desc "Insert todays date" "t" #'dt/insert-todays-date)) -#+end_src - -* Ivy -Ivy is a generic completion mechanism for Emacs. - -** Ivy-posframe -Ivy-posframe is an ivy extension, which lets ivy use posframe to show its -candidate menu. Some of the settings below involve: -+ ivy-posframe-display-functions-alist -- sets the display position for specific - programs -+ ivy-posframe-height-alist -- sets the height of the list displayed for - specific programs - -# Available functions (positions) for 'ivy-posframe-display-functions-alist' -+ ivy-posframe-display-at-frame-center -+ ivy-posframe-display-at-window-center -+ ivy-posframe-display-at-frame-bottom-left -+ ivy-posframe-display-at-window-bottom-left -+ ivy-posframe-display-at-frame-bottom-window-center -+ ivy-posframe-display-at-point -+ ivy-posframe-display-at-frame-top-center - -=NOTE:= If the setting for 'ivy-posframe-display' is set to 'nil' (false), -anything that is set to 'ivy-display-function-fallback' will just default to -their normal position in Doom Emacs (usually a bottom split). However, if this -is set to 't' (true), then the fallback position will be centered in the window. - -#+BEGIN_SRC emacs-lisp -(setq ivy-posframe-display-functions-alist - '((swiper . ivy-posframe-display-at-point) - (complete-symbol . ivy-posframe-display-at-point) - (counsel-M-x . ivy-display-function-fallback) - (counsel-esh-history . ivy-posframe-display-at-window-center) - (counsel-describe-function . ivy-display-function-fallback) - (counsel-describe-variable . ivy-display-function-fallback) - (counsel-find-file . ivy-display-function-fallback) - (counsel-recentf . ivy-display-function-fallback) - (counsel-register . ivy-posframe-display-at-frame-bottom-window-center) - (dmenu . ivy-posframe-display-at-frame-top-center) - (nil . ivy-posframe-display)) - ivy-posframe-height-alist - '((swiper . 20) - (dmenu . 20) - (t . 10))) -(ivy-posframe-mode 1) ; 1 enables posframe-mode, 0 disables it. -#+END_SRC - -** Ivy keybindings -By default, Doom Emacs does not use 'SPC v', so the format I use for these -bindings is 'SPC v' plus 'key'. - -#+BEGIN_SRC emacs-lisp -(map! :leader - (:prefix ("v" . "Ivy") - :desc "Ivy push view" "v p" #'ivy-push-view - :desc "Ivy switch view" "v s" #'ivy-switch-view)) -#+END_SRC - -* Line settings -I set comment-line to 'SPC TAB TAB' which is a rather comfortable keybinding for -me on my ZSA Moonlander keyboard. The standard Emacs keybinding for -comment-line is 'C-x C-;'. The other keybindings are for commands that toggle -on/off various line-related settings. Doom Emacs uses 'SPC t' for "toggle" -commands, so I choose 'SPC t' plus 'key' for those bindings. - -| COMMAND | DESCRIPTION | KEYBINDING | -|--------------------------+-------------------------------------------+-------------| -| comment-line | /Comment or uncomment lines/ | SPC TAB TAB | -| hl-line-mode | /Toggle line highlighting in current frame/ | SPC t h | -| global-hl-line-mode | /Toggle line highlighting globally/ | SPC t H | -| doom/toggle-line-numbers | /Toggle line numbers/ | SPC t l | -| toggle-truncate-lines | /Toggle truncate lines/ | SPC t t | - -#+BEGIN_SRC emacs-lisp -(setq display-line-numbers-type t) -(map! :leader - :desc "Comment or uncomment lines" "TAB TAB" #'comment-line - (:prefix ("t" . "toggle") - :desc "Toggle line numbers" "l" #'doom/toggle-line-numbers - :desc "Toggle line highlight in frame" "h" #'hl-line-mode - :desc "Toggle line highlight globally" "H" #'global-hl-line-mode - :desc "Toggle truncate lines" "t" #'toggle-truncate-lines)) -#+END_SRC - -* Markdown - -#+begin_src emacs-lisp -(custom-set-faces - '(markdown-header-face ((t (:inherit font-lock-function-name-face :weight bold :family "variable-pitch")))) - '(markdown-header-face-1 ((t (:inherit markdown-header-face :height 1.7)))) - '(markdown-header-face-2 ((t (:inherit markdown-header-face :height 1.6)))) - '(markdown-header-face-3 ((t (:inherit markdown-header-face :height 1.5)))) - '(markdown-header-face-4 ((t (:inherit markdown-header-face :height 1.4)))) - '(markdown-header-face-5 ((t (:inherit markdown-header-face :height 1.3)))) - '(markdown-header-face-6 ((t (:inherit markdown-header-face :height 1.2))))) -#+end_src - -* Minimap -A minimap sidebar displaying a smaller version of the current buffer on either -the left or right side. It highlights the currently shown region and updates its -position automatically. Be aware that this minimap program does not work in Org -documents. This is not unusual though because I have tried several minimap -programs and none of them can handle Org. - -| COMMAND | DESCRIPTION | KEYBINDING | -|--------------+-------------------------------------------+------------| -| minimap-mode | /Toggle minimap-mode/ | SPC t m | - -#+begin_src emacs-lisp -(setq minimap-window-location 'right) -(map! :leader - (:prefix ("t" . "toggle") - :desc "Toggle minimap-mode" "m" #'minimap-mode)) -#+end_src - -* Modeline -The modeline is the bottom status bar that appears in Emacs windows. For more -information on what is available to configure in the Doom modeline, check out: -https://github.com/seagle0128/doom-modeline - -#+begin_src emacs-lisp -(set-face-attribute 'mode-line nil :font "mononoki Nerd Font-13") -(setq doom-modeline-height 30 ;; sets modeline height - doom-modeline-bar-width 5 ;; sets right bar width - doom-modeline-persp-name t ;; adds perspective name to modeline - doom-modeline-persp-icon t) ;; adds folder icon next to persp name -#+end_src - -* Mouse support -Adding mouse support in the terminal version of Emacs. - -#+begin_src emacs-lisp -(xterm-mouse-mode 1) -#+end_src - -* Neotree -Neotree is a file tree viewer. When you open neotree, it jumps to the current -file thanks to neo-smart-open. The neo-window-fixed-size setting makes the -neotree width be adjustable. Doom Emacs had no keybindings set for neotree. -Since Doom Emacs uses 'SPC t' for 'toggle' keybindings, I used 'SPC t n' for -toggle-neotree. - -| COMMAND | DESCRIPTION | KEYBINDING | -|----------------+---------------------------+------------| -| neotree-toggle | /Toggle neotree/ | SPC t n | -| neotree- dir | /Open directory in neotree/ | SPC d n | - -#+BEGIN_SRC emacs-lisp -(after! neotree - (setq neo-smart-open t - neo-window-fixed-size nil)) -(after! doom-themes - (setq doom-neotree-enable-variable-pitch t)) -(map! :leader - :desc "Toggle neotree file viewer" "t n" #'neotree-toggle - :desc "Open directory in neotree" "d n" #'neotree-dir) -#+END_SRC - -* Open specific files -Keybindings to open files that I work with all the time using the find-file -command, which is the interactive file search that opens with 'C-x C-f' in GNU -Emacs or 'SPC f f' in Doom Emacs. These keybindings use find-file -non-interactively since we specify exactly what file to open. The format I use -for these bindings is 'SPC =' plus 'key' since Doom Emacs does not use 'SPC ='. - -| PATH TO FILE | DESCRIPTION | KEYBINDING | -|--------------------------------+-----------------------+------------| -| ~/Org/agenda.org | /Edit agenda file/ | SPC = a | -| ~/.config/doom/config.org" | /Edit doom config.org/ | SPC = c | -| ~/.config/doom/init.el" | /Edit doom init.el/ | SPC = i | -| ~/.config/doom/packages.el" | /Edit doom packages.el/ | SPC = p | -| ~/.config/doom/eshell/aliases" | /Edit eshell aliases/ | SPC = e a | -| ~/.config/doom/eshell/profile" | /Edit eshell profile/ | SPC = e p | - -#+BEGIN_SRC emacs-lisp -(map! :leader - (:prefix ("=" . "open file") - :desc "Edit agenda file" "a" #'(lambda () (interactive) (find-file "~/Org/agenda.org")) - :desc "Edit doom config.org" "c" #'(lambda () (interactive) (find-file "~/.config/doom/config.org")) - :desc "Edit doom init.el" "i" #'(lambda () (interactive) (find-file "~/.config/doom/init.el")) - :desc "Edit doom packages.el" "p" #'(lambda () (interactive) (find-file "~/.config/doom/packages.el")))) -(map! :leader - (:prefix ("= e" . "open eshell files") - :desc "Edit eshell aliases" "a" #'(lambda () (interactive) (find-file "~/.config/doom/eshell/aliases")) - :desc "Edit eshell profile" "p" #'(lambda () (interactive) (find-file "~/.config/doom/eshell/profile")))) -#+END_SRC - -* Org mode -I wrapped most of this block in (after! org). Without this, my settings might -be evaluated too early, which will result in my settings being overwritten by -Doom's defaults. I have also enabled org-journal, org-superstar and org-roam by -adding (+journal +pretty +roam2) to the org section of my Doom Emacs init.el. - -=NOTE:= I have the location of my Org directory and Roam directory in $HOME/nc/ -which is a Nextcloud folder that allows me to instantly sync all of my Org work -between my home computer and my office computer. - -#+BEGIN_SRC emacs-lisp -(map! :leader - :desc "Org babel tangle" "m B" #'org-babel-tangle) -(after! org - (setq org-directory "~/nc/Org/" - org-agenda-files '("~/nc/Org/agenda.org") - org-default-notes-file (expand-file-name "notes.org" org-directory) - org-ellipsis " ▼ " - org-superstar-headline-bullets-list '("◉" "●" "○" "◆" "●" "○" "◆") - org-superstar-item-bullet-alist '((?+ . ?➤) (?- . ?✦)) ; changes +/- symbols in item lists - org-log-done 'time - org-hide-emphasis-markers t - ;; ex. of org-link-abbrev-alist in action - ;; [[arch-wiki:Name_of_Page][Description]] - org-link-abbrev-alist ; This overwrites the default Doom org-link-abbrev-list - '(("google" . "http://www.google.com/search?q=") - ("arch-wiki" . "https://wiki.archlinux.org/index.php/") - ("ddg" . "https://duckduckgo.com/?q=") - ("wiki" . "https://en.wikipedia.org/wiki/")) - org-todo-keywords ; This overwrites the default Doom org-todo-keywords - '((sequence - "TODO(t)" ; A task that is ready to be tackled - "BLOG(b)" ; Blog writing assignments - "GYM(g)" ; Things to accomplish at the gym - "PROJ(p)" ; A project that contains other tasks - "VIDEO(v)" ; Video assignments - "WAIT(w)" ; Something is holding up this task - "|" ; The pipe necessary to separate "active" states and "inactive" states - "DONE(d)" ; Task has been completed - "CANCELLED(c)" )))) ; Task has been cancelled -#+END_SRC - -** Org fonts -I have created an interactive function for each color scheme (M-x -dt/org-colors-*). These functions will set appropriate colors and font -attributes for org-level fonts and the org-table font. - -#+begin_src emacs-lisp - -(defun dt/org-colors-doom-one () - "Enable Doom One colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#51afef" ultra-bold) - (org-level-2 1.6 "#c678dd" extra-bold) - (org-level-3 1.5 "#98be65" bold) - (org-level-4 1.4 "#da8548" semi-bold) - (org-level-5 1.3 "#5699af" normal) - (org-level-6 1.2 "#a9a1e1" normal) - (org-level-7 1.1 "#46d9ff" normal) - (org-level-8 1.0 "#ff6c6b" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-dracula () - "Enable Dracula colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#8be9fd" ultra-bold) - (org-level-2 1.6 "#bd93f9" extra-bold) - (org-level-3 1.5 "#50fa7b" bold) - (org-level-4 1.4 "#ff79c6" semi-bold) - (org-level-5 1.3 "#9aedfe" normal) - (org-level-6 1.2 "#caa9fa" normal) - (org-level-7 1.1 "#5af78e" normal) - (org-level-8 1.0 "#ff92d0" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-gruvbox-dark () - "Enable Gruvbox Dark colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#458588" ultra-bold) - (org-level-2 1.6 "#b16286" extra-bold) - (org-level-3 1.5 "#98971a" bold) - (org-level-4 1.4 "#fb4934" semi-bold) - (org-level-5 1.3 "#83a598" normal) - (org-level-6 1.2 "#d3869b" normal) - (org-level-7 1.1 "#d79921" normal) - (org-level-8 1.0 "#8ec07c" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-monokai-pro () - "Enable Monokai Pro colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#78dce8" ultra-bold) - (org-level-2 1.6 "#ab9df2" extra-bold) - (org-level-3 1.5 "#a9dc76" bold) - (org-level-4 1.4 "#fc9867" semi-bold) - (org-level-5 1.3 "#ff6188" normal) - (org-level-6 1.2 "#ffd866" normal) - (org-level-7 1.1 "#78dce8" normal) - (org-level-8 1.0 "#ab9df2" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-nord () - "Enable Nord colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#81a1c1" ultra-bold) - (org-level-2 1.6 "#b48ead" extra-bold) - (org-level-3 1.5 "#a3be8c" bold) - (org-level-4 1.4 "#ebcb8b" semi-bold) - (org-level-5 1.3 "#bf616a" normal) - (org-level-6 1.2 "#88c0d0" normal) - (org-level-7 1.1 "#81a1c1" normal) - (org-level-8 1.0 "#b48ead" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-oceanic-next () - "Enable Oceanic Next colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#6699cc" ultra-bold) - (org-level-2 1.6 "#c594c5" extra-bold) - (org-level-3 1.5 "#99c794" bold) - (org-level-4 1.4 "#fac863" semi-bold) - (org-level-5 1.3 "#5fb3b3" normal) - (org-level-6 1.2 "#ec5f67" normal) - (org-level-7 1.1 "#6699cc" normal) - (org-level-8 1.0 "#c594c5" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-palenight () - "Enable Palenight colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#82aaff" ultra-bold) - (org-level-2 1.6 "#c792ea" extra-bold) - (org-level-3 1.5 "#c3e88d" bold) - (org-level-4 1.4 "#ffcb6b" semi-bold) - (org-level-5 1.3 "#a3f7ff" normal) - (org-level-6 1.2 "#e1acff" normal) - (org-level-7 1.1 "#f07178" normal) - (org-level-8 1.0 "#ddffa7" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-solarized-dark () - "Enable Solarized Dark colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#268bd2" ultra-bold) - (org-level-2 1.6 "#d33682" extra-bold) - (org-level-3 1.5 "#859900" bold) - (org-level-4 1.4 "#b58900" semi-bold) - (org-level-5 1.3 "#cb4b16" normal) - (org-level-6 1.2 "#6c71c4" normal) - (org-level-7 1.1 "#2aa198" normal) - (org-level-8 1.0 "#657b83" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-solarized-light () - "Enable Solarized Light colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#268bd2" ultra-bold) - (org-level-2 1.6 "#d33682" extra-bold) - (org-level-3 1.5 "#859900" bold) - (org-level-4 1.4 "#b58900" semi-bold) - (org-level-5 1.3 "#cb4b16" normal) - (org-level-6 1.2 "#6c71c4" normal) - (org-level-7 1.1 "#2aa198" normal) - (org-level-8 1.0 "#657b83" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -(defun dt/org-colors-tomorrow-night () - "Enable Tomorrow Night colors for Org headers." - (interactive) - (dolist - (face - '((org-level-1 1.7 "#81a2be" ultra-bold) - (org-level-2 1.6 "#b294bb" extra-bold) - (org-level-3 1.5 "#b5bd68" bold) - (org-level-4 1.4 "#e6c547" semi-bold) - (org-level-5 1.3 "#cc6666" normal) - (org-level-6 1.2 "#70c0ba" normal) - (org-level-7 1.1 "#b77ee0" normal) - (org-level-8 1.0 "#9ec400" normal))) - (set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face))) - (set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf")) - -;; Load our desired dt/org-colors-* theme on startup -(dt/org-colors-tomorrow-night) - -#+end_src - -** Org-export -We need ox-man for "Org eXporting" to manpage format and ox-gemini for exporting -to gemtext (for the gemini protocol). - -=NOTE:= I also enable ox-publish for converting an Org site into an HTML site, -but that is done in init.el (org +publish). - -#+BEGIN_SRC emacs-lisp -(use-package ox-man) -(use-package ox-gemini) -#+END_SRC - -** Org-journal -#+begin_src emacs-lisp -(setq org-journal-dir "~/nc/Org/journal/" - org-journal-date-prefix "* " - org-journal-time-prefix "** " - org-journal-date-format "%B %d, %Y (%A) " - org-journal-file-format "%Y-%m-%d.org") -#+end_src - -** Org-publish -#+begin_src emacs-lisp -(setq org-publish-use-timestamps-flag nil) -(setq org-export-with-broken-links t) -#+end_src - -** Org-auto-tangle -=org-auto-tangle= allows you to add the option =#+auto_tangle: t= in your Org file so that it automatically tangles when you save the document. - -#+begin_src emacs-lisp -(use-package! org-auto-tangle - :defer t - :hook (org-mode . org-auto-tangle-mode) - :config - (setq org-auto-tangle-default t)) - -#+end_src - -* Perspective -Perspective provides multiple named workspaces (or "perspectives") in Emacs, -similar to having multiple desktops in window managers like Awesome and XMonad. -Each perspective has its own buffer list and its own window layout, making it -easy to work on many separate projects without getting lost in all the buffers. -Switching to a perspective activates its window configuration, and when in a -perspective, only its buffers are available (by default). Doom Emacs uses 'SPC -some_key' for binding some of the perspective commands, so I used this binging -format for the perspective bindings that I created.. - -| COMMAND | DESCRIPTION | KEYBINDING | -|----------------------------+-------------------------------------+------------| -| persp-switch | Switch to perspective NAME | SPC DEL | -| persp-switch-to-buffer | Switch to buffer in perspective | SPC , | -| persp-next | Switch to next perspective | SPC ] | -| persp-prev | Switch to previous perspective | SPC [ | -| persp-add-buffer | Add a buffer to current perspective | SPC + | -| persp-remove-by-name | Remove perspective by name | SPC - | -| +workspace/switch-to-{0-9} | Switch to workspace /n/ | SPC 0-9 | - -#+begin_src emacs-lisp -(map! :leader - :desc "Switch to perspective NAME" "DEL" #'persp-switch - :desc "Switch to buffer in perspective" "," #'persp-switch-to-buffer - :desc "Switch to next perspective" "]" #'persp-next - :desc "Switch to previous perspective" "[" #'persp-prev - :desc "Add a buffer current perspective" "+" #'persp-add-buffer - :desc "Remove perspective by name" "-" #'persp-remove-by-name) -#+end_src - -* Rainbow mode -Rainbox mode displays the actual color for any hex value color. It's such a -nice feature that I wanted it turned on all the time, regardless of what mode I -am in. The following creates a global minor mode for rainbow-mode and enables -it. - -#+begin_src emacs-lisp -(define-globalized-minor-mode global-rainbow-mode rainbow-mode - (lambda () (rainbow-mode 1))) -(global-rainbow-mode 1 ) -#+end_src - -* Registers -Emacs registers are compartments where you can save text, rectangles and -positions for later use. Once you save text or a rectangle in a register, you -can copy it into the buffer once or many times; once you save a position in a -register, you can jump back to that position once or many times. The default -GNU Emacs keybindings for these commands (with the exception of -counsel-register) involves 'C-x r' followed by one or more other keys. I wanted -to make this a little more user friendly, and since I am using Doom Emacs, I -choose to replace the 'C-x r' part of the key chords with 'SPC r'. - -| COMMAND | DESCRIPTION | KEYBINDING | -|----------------------------------+----------------------------------+------------| -| copy-to-register | /Copy to register/ | SPC r c | -| frameset-to-register | /Frameset to register/ | SPC r f | -| insert-register | /Insert contents of register/ | SPC r i | -| jump-to-register | /Jump to register/ | SPC r j | -| list-registers | /List registers/ | SPC r l | -| number-to-register | /Number to register/ | SPC r n | -| counsel-register | /Interactively choose a register/ | SPC r r | -| view-register | /View a register/ | SPC r v | -| window-configuration-to-register | /Window configuration to register/ | SPC r w | -| increment-register | /Increment register/ | SPC r + | -| point-to-register | /Point to register/ | SPC r SPC | - -#+BEGIN_SRC emacs-lisp -(map! :leader - (:prefix ("r" . "registers") - :desc "Copy to register" "c" #'copy-to-register - :desc "Frameset to register" "f" #'frameset-to-register - :desc "Insert contents of register" "i" #'insert-register - :desc "Jump to register" "j" #'jump-to-register - :desc "List registers" "l" #'list-registers - :desc "Number to register" "n" #'number-to-register - :desc "Interactively choose a register" "r" #'counsel-register - :desc "View a register" "v" #'view-register - :desc "Window configuration to register" "w" #'window-configuration-to-register - :desc "Increment register" "+" #'increment-register - :desc "Point to register" "SPC" #'point-to-register)) -#+END_SRC - -* Shells -Settings for the various shells and terminal emulators within Emacs. -+ 'shell-file-name' -- sets the shell to be used in M-x shell, M-x term, M-x - ansi-term and M-x vterm. -+ 'eshell-aliases-file' -- sets an aliases file for the eshell. - -#+BEGIN_SRC emacs-lisp -(setq shell-file-name "/bin/bash" - vterm-max-scrollback 5000) -(setq eshell-rc-script "~/.config/doom/eshell/profile" - eshell-aliases-file "~/.config/doom/eshell/aliases" - eshell-history-size 5000 - eshell-buffer-maximum-lines 5000 - eshell-hist-ignoredups t - eshell-scroll-to-bottom-on-input t - eshell-destroy-buffer-when-process-dies t - eshell-visual-commands'("bash" "fish" "htop" "ssh" "top" "zsh")) -(map! :leader - :desc "Eshell" "e s" #'eshell - :desc "Eshell popup toggle" "e t" #'+eshell/toggle - :desc "Counsel eshell history" "e h" #'counsel-esh-history - :desc "Vterm popup toggle" "v t" #'+vterm/toggle) -#+END_SRC - -* Splits -I set splits to default to opening on the right using 'prefer-horizontal-split'. -I set a keybinding for 'clone-indirect-buffer-other-window' for when I want to -have the same document in two splits. The text of the indirect buffer is always -identical to the text of its base buffer; changes made by editing either one are -visible immediately in the other. But in all other respects, the indirect -buffer and its base buffer are completely separate. For example, I can fold one -split but other will be unfolded. - -#+BEGIN_SRC emacs-lisp -(defun prefer-horizontal-split () - (set-variable 'split-height-threshold nil t) - (set-variable 'split-width-threshold 40 t)) ; make this as low as needed -(add-hook 'markdown-mode-hook 'prefer-horizontal-split) -(map! :leader - :desc "Clone indirect buffer other window" "b c" #'clone-indirect-buffer-other-window) -#+END_SRC - -* Winner mode -Winner mode has been included with GNU Emacs since version 20. This is a global -minor mode and, when activated, it allows you to “undo” (and “redo”) changes in -the window configuration with the key commands 'SCP w ' and 'SPC w -'. - -#+BEGIN_SRC emacs-lisp -(map! :leader - (:prefix ("w" . "window") - :desc "Winner redo" "" #'winner-redo - :desc "Winner undo" "" #'winner-undo)) -#+END_SRC - -* Zap to char -Emacs provides a 'zap-to-char' command that kills from the current point to a -character. It is bound to 'M-z' in standard GNU Emacs but since Doom Emacs uses -'SPC' as its leader key and does not have 'SPC z' binded to anything, it just -makes since to use it for 'zap-to-char'. Note that 'zap-to-char' can be used -with the universal argument 'SPC u' to modify its behavior. Examples of -'zap-to-char' usage are listed in the table below: - -| KEYBINDING | WHAT IS DOES | -|---------------------------+------------------------------------------------------------| -| SPC z e | deletes all chars to the next occurrence of 'e' | -| SPC u 2 SPC z e | deletes all chars to the second occurrence of 'e' | -| SPC u - SPC z e | deletes all chars to the previous occurrence of 'e' | -| SPC u -2 SPC z e | deletes all chars to the fourth previous occurrence of 'e' | -| SPC u 1 0 0 SPC u SPC z e | deletes all chars to the 100th occurrence of 'e' | - -=TIP:= The universal argument (SPC u) can only take a single integer by default. -If you need to use a multi-digit number (like 100 in the last example in the -table above), then you must terminate the universal argument with another 'SPC -u' after typing the number. - -'zap-up-to-char' is an alternative command that does not zap the char specified. -It is binded to 'SPC Z'. It can also be used in conjunction with the universal -argument 'SPC u' in similar fashion to the the 'zap-to-char' examples above. - -=NOTE:= Vim (evil mode) has similar functionality builtin. You can delete to -the next occurrence of 'e' by using 'dte' in normal. To delete to the next -occurrence of 'e' including the 'e', then you would use 'dfe'. And you can -modify 'dt' and 'df' by prefixing them with numbers, so '2dte' would delete to -the second occurrence of 'e'. - -#+BEGIN_SRC emacs-lisp -(map! :leader - :desc "Zap to char" "z" #'zap-to-char - :desc "Zap up to char" "Z" #'zap-up-to-char) -#+END_SRC diff --git a/user/.config/doom/emacs-dash.txt b/user/.config/doom/emacs-dash.txt deleted file mode 100644 index 5d5f70293..000000000 --- a/user/.config/doom/emacs-dash.txt +++ /dev/null @@ -1,19 +0,0 @@ - ================= =============== =============== ======== ======== - \\ . . . . . . .\\ //. . . . . . .\\ //. . . . . . .\\ \\. . .\\// . . // - ||. . ._____. . .|| ||. . ._____. . .|| ||. . ._____. . .|| || . . .\/ . . .|| - || . .|| ||. . || || . .|| ||. . || || . .|| ||. . || ||. . . . . . . || - ||. . || || . .|| ||. . || || . .|| ||. . || || . .|| || . | . . . . .|| - || . .|| ||. _-|| ||-_ .|| ||. . || || . .|| ||. _-|| ||-_.|\ . . . . || - ||. . || ||-' || || `-|| || . .|| ||. . || ||-' || || `|\_ . .|. .|| - || . _|| || || || || ||_ . || || . _|| || || || |\ `-_/| . || - ||_-' || .|/ || || \|. || `-_|| ||_-' || .|/ || || | \ / |-_.|| - || ||_-' || || `-_|| || || ||_-' || || | \ / | `|| - || `' || || `' || || `' || || | \ / | || - || .===' `===. .==='.`===. .===' /==. | \/ | || - || .==' \_|-_ `===. .===' _|_ `===. .===' _-|/ `== \/ | || - || .==' _-' `-_ `=' _-' `-_ `=' _-' `-_ /| \/ | || - || .==' _-' '-__\._-' '-_./__-' `' |. /| | || - ||.==' _-' `' | /==.|| - ==' _-' EMACS \/ `== - \ _-' `-_ / - `'' ``' diff --git a/user/.config/doom/eshell/aliases b/user/.config/doom/eshell/aliases deleted file mode 100644 index ef5aa3a9e..000000000 --- a/user/.config/doom/eshell/aliases +++ /dev/null @@ -1,26 +0,0 @@ -# Aliases for emacs commands -alias ff find-file $1 - -# Changing "ls" to "exa" -alias ls exa -al --color=always --group-directories-first $* # my preferred listing -alias la exa -a --color=always --group-directories-first $* # all files and dirs -alias ll exa -l --color=always --group-directories-first $* # long format -alias lt exa -aT --color=always --group-directories-first $* # tree listing -alias l. exa -a1 $* | grep "^\." # list hidden files - -# Merge Xresources -alias merge xrdb -merge ~/.Xresources - -# Aliases for doom emacs utilties -alias doomsync ~/.emacs.d/bin/doom sync -alias doomdoctor ~/.emacs.d/bin/doom doctor -alias doomupgrade ~/.emacs.d/bin/doom upgrade -alias doompurge ~/.emacs.d/bin/doom purge - -# Confirm before overwriting something -alias cp cp -i $1 -alias mv mv -i $1 -alias rm rm -i $1 - -# bare git repo alias for dotfiles -alias config /usr/bin/git --git-dir=$HOME/dotfiles --work-tree=$HOME $* diff --git a/user/.config/doom/eshell/profile b/user/.config/doom/eshell/profile deleted file mode 100644 index 3c871d69c..000000000 --- a/user/.config/doom/eshell/profile +++ /dev/null @@ -1 +0,0 @@ -colorscript random \ No newline at end of file diff --git a/user/.config/doom/init.el b/user/.config/doom/init.el deleted file mode 100644 index 07422364e..000000000 --- a/user/.config/doom/init.el +++ /dev/null @@ -1,191 +0,0 @@ -;;; init.el -*- lexical-binding: t; -*- - -;; This file controls what Doom modules are enabled and what order they load -;; in. Remember to run 'doom sync' after modifying it! - -;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's -;; documentation. There you'll find a "Module Index" link where you'll find -;; a comprehensive list of Doom's modules and what flags they support. - -;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or -;; 'C-c c k' for non-vim users) to view its documentation. This works on -;; flags as well (those symbols that start with a plus). -;; -;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its -;; directory (for easy access to its source code). - -(doom! :input - ;;chinese - ;;japanese - ;;layout ; auie,ctsrnm is the superior home row - - :completion - company ; the ultimate code completion backend - ;;helm ; the *other* search engine for love and life - ;;ido ; the other *other* search engine... - (ivy +fonts +childframe) ; a search engine for love and life - - :ui - ;;deft ; notational velocity for Emacs - doom ; what makes DOOM look the way it does - ;;doom-dashboard ; a nifty splash screen for Emacs - doom-quit ; DOOM quit-message prompts when you quit Emacs - (emoji +unicode) ; 🙂 - ;;fill-column ; a `fill-column' indicator - hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW - ;;hydra - ;;indent-guides ; highlighted indent columns - (ligatures +extras) ; ligatures and symbols to make your code pretty again - ;;minimap ; show a map of the code on the side - modeline ; snazzy, Atom-inspired modeline, plus API - ;;nav-flash ; blink cursor line after big motions - neotree ; a project drawer, like NERDTree for vim - ophints ; highlight the region an operation acts on - (popup +defaults) ; tame sudden yet inevitable temporary windows - ;;tabs ; a tab bar for Emacs - ;;treemacs ; a project drawer, like neotree but cooler - ;;unicode ; extended unicode support for various languages - vc-gutter ; vcs diff in the fringe - vi-tilde-fringe ; fringe tildes to mark beyond EOB - window-select ; visually switch windows - workspaces ; tab emulation, persistence & separate workspaces - zen ; distraction-free coding or writing - - :editor - (evil +everywhere) ; come to the dark side, we have cookies - file-templates ; auto-snippets for empty files - fold ; (nigh) universal code folding - ;;(format +onsave) ; automated prettiness - ;;god ; run Emacs commands without modifier keys - lispy ; vim for lisp, for people who don't like vim - ;;multiple-cursors ; editing in many places at once - ;;objed ; text object editing for the innocent - ;;parinfer ; turn lisp into python, sort of - ;;rotate-text ; cycle region at point between text candidates - snippets ; my elves. They type so I don't have to - ;;word-wrap ; soft wrapping with language-aware indent - - :emacs - (dired +icons) ; making dired pretty [functional] - electric ; smarter, keyword-based electric-indent - (ibuffer +icons) ; interactive buffer management - undo ; persistent, smarter undo for your inevitable mistakes - vc ; version-control and Emacs, sitting in a tree - - :term - eshell ; the elisp shell that works everywhere - shell ; simple shell REPL for Emacs - ;;term ; basic terminal emulator for Emacs - vterm ; the best terminal emulation in Emacs - - :checkers - syntax ; tasing you for every semicolon you forget - ;;(spell +aspell) ; tasing you for misspelling mispelling - ;;grammar ; tasing grammar mistake every you make - - :tools - ;;ansible - ;;debugger ; FIXME stepping through code, to help you add bugs - ;;direnv - ;;docker - ;;editorconfig ; let someone else argue about tabs vs spaces - ;;ein ; tame Jupyter notebooks with emacs - (eval +overlay) ; run code, run (also, repls) - ;;gist ; interacting with github gists - lookup ; navigate your code and its documentation - lsp - magit ; a git porcelain for Emacs - ;;make ; run make tasks from Emacs - ;;pass ; password manager for nerds - pdf ; pdf enhancements - ;;prodigy ; FIXME managing external services & code builders - ;;rgb ; creating color strings - ;;taskrunner ; taskrunner for all your projects - ;;terraform ; infrastructure as code - ;;tmux ; an API for interacting with tmux - ;;upload ; map local to remote projects via ssh/ftp - - :os - (:if IS-MAC macos) ; improve compatibility with macOS - ;;tty ; improve the terminal Emacs experience - - :lang - ;;agda ; types of types of types of types... - cc ; C/C++/Obj-C madness - ;;clojure ; java with a lisp - common-lisp ; if you've seen one lisp, you've seen them all - ;;coq ; proofs-as-programs - ;;crystal ; ruby at the speed of c - csharp ; unity, .NET, and mono shenanigans - ;;data ; config/data formats - ;;(dart +flutter) ; paint ui and not much else - ;;elixir ; erlang done right - ;;elm ; care for a cup of TEA? - emacs-lisp ; drown in parentheses - ;;erlang ; an elegant language for a more civilized age - ;;ess ; emacs speaks statistics - ;;faust ; dsp, but you get to keep your soul - ;;fsharp ; ML stands for Microsoft's Language - ;;fstar ; (dependent) types and (monadic) effects and Z3 - ;;gdscript ; the language you waited for - ;;(go +lsp) ; the hipster dialect - ;;(haskell +dante) ; a language that's lazier than I am - ;;hy ; readability of scheme w/ speed of python - ;;idris ; a language you can depend on - json ; At least it ain't XML - ;;(java +meghanada) ; the poster child for carpal tunnel syndrome - javascript ; all(hope(abandon(ye(who(enter(here)))))) - ;;julia ; a better, faster MATLAB - ;;kotlin ; a better, slicker Java(Script) - latex ; writing papers in Emacs has never been so fun - ;;lean - ;;factor - ;;ledger ; an accounting system in Emacs - lua ; one-based indices? one-based indices - markdown ; writing docs for people to ignore - ;;nim ; python + lisp at the speed of c - ;;nix ; I hereby declare "nix geht mehr!" - ;;ocaml ; an objective camel - (org - +journal ; enable org journal - +pretty ; replace asterisks with pretty org bullets - +publish ; create static websites with org - +roam2) ; org roam v2 - php ; perl's insecure younger brother - ;;plantuml ; diagrams for confusing people more - ;;purescript ; javascript, but functional - python ; beautiful is better than ugly - ;;qt ; the 'cutest' gui framework ever - ;;racket ; a DSL for DSLs - ;;raku ; the artist formerly known as perl6 - ;;rest ; Emacs as a REST client - ;;rst ; ReST in peace - ;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} - ;;rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap() - ;;scala ; java, but good - scheme ; a fully conniving family of lisps - sh ; she sells {ba,z,fi}sh shells on the C xor - ;;sml - ;;solidity ; do you need a blockchain? No. - ;;swift ; who asked for emoji variables? - ;;terra ; Earth and Moon in alignment for performance. - web ; the tubes - yaml ; JSON, but readable - - :email - ;;mu4e - ;;smtpmail - ;;notmuch - ;;(wanderlust +gmail) - - :app - ;;calendar - ;; emms - ;;everywhere ; *leave* Emacs!? You must be joking - ;;irc ; how neckbeards socialize - ;;rss ; emacs as an RSS reader - ;;twitter ; twitter client https://twitter.com/vnought - - :config - literate - (default +bindings +smartparens)) diff --git a/user/.config/doom/packages.el b/user/.config/doom/packages.el deleted file mode 100644 index 791d18aa3..000000000 --- a/user/.config/doom/packages.el +++ /dev/null @@ -1,90 +0,0 @@ -;; -*- no-byte-compile: t; -*- -;;; $DOOMDIR/packages.el - -;; To install a package with Doom you must declare them here and run 'doom sync' -;; on the command line, then restart Emacs for the changes to take effect -- or -;; use 'M-x doom/reload'. - - -;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror: -;(package! some-package) - -;; To install a package directly from a remote git repo, you must specify a -;; `:recipe'. You'll find documentation on what `:recipe' accepts here: -;; https://github.com/raxod502/straight.el#the-recipe-format -;(package! another-package -; :recipe (:host github :repo "username/repo")) - -;; If the package you are trying to install does not contain a PACKAGENAME.el -;; file, or is located in a subdirectory of the repo, you'll need to specify -;; `:files' in the `:recipe': -;(package! this-package -; :recipe (:host github :repo "username/repo" -; :files ("some-file.el" "src/lisp/*.el"))) - -;; If you'd like to disable a package included with Doom, you can do so here -;; with the `:disable' property: -;(package! builtin-package :disable t) - -;; You can override the recipe of a built in package without having to specify -;; all the properties for `:recipe'. These will inherit the rest of its recipe -;; from Doom or MELPA/ELPA/Emacsmirror: -;(package! builtin-package :recipe (:nonrecursive t)) -;(package! builtin-package-2 :recipe (:repo "myfork/package")) - -;; Specify a `:branch' to install a package from a particular branch or tag. -;; This is required for some packages whose default branch isn't 'master' (which -;; our package manager can't deal with; see raxod502/straight.el#279) -;(package! builtin-package :recipe (:branch "develop")) - -;; Use `:pin' to specify a particular commit to install. -;(package! builtin-package :pin "1a2b3c4d5e") - - -;; Doom's packages are pinned to a specific commit and updated from release to -;; release. The `unpin!' macro allows you to unpin single packages... -;(unpin! pinned-package) -;; ...or multiple packages -;(unpin! pinned-package another-pinned-package) -;; ...Or *all* packages (NOT RECOMMENDED; will likely break things) -;(unpin! t) - -(package! gitconfig-mode - :recipe (:host github :repo "magit/git-modes" - :files ("gitconfig-mode.el"))) -(package! gitignore-mode - :recipe (:host github :repo "magit/git-modes" - :files ("gitignore-mode.el"))) -(package! flycheck-aspell) -(package! async) -(package! calfw) -(package! calfw-org) -(package! dashboard) -(package! dired-open) -(package! dired-subtree) -(package! dmenu) -(package! elpher) -(package! emojify) -(package! esxml) -(package! evil-tutor) -(package! imenu-list) -(package! ivy-posframe) -(package! mw-thesaurus) -(package! org-board) -(package! org-web-tools) -(package! org-auto-tangle) -(package! ox-gemini) -(package! pacmacs) -(package! peep-dired) -(package! rainbow-mode) -(package! request) -(package! resize-window) -(package! s) -(package! tldr) -(package! wc-mode) -(package! beacon) -(package! minimap) -(package! olivetti) -(package! sharper) -(package! csproj-mode) -(package! dap-mode) diff --git a/user/.config/fish/config.fish b/user/.config/fish/config.fish index b29cc5a6a..b37685cc0 100644 --- a/user/.config/fish/config.fish +++ b/user/.config/fish/config.fish @@ -9,13 +9,13 @@ # First line removes the path; second line sets it. Without the first line, # your path gets massive and fish becomes very slow. set -e fish_user_paths -set -U fish_user_paths $HOME/.bin $HOME/.local/bin $HOME/.config/emacs/bin $HOME/Applications /var/lib/flatpak/exports/bin/ $fish_user_paths +set -U fish_user_paths $HOME/.bin $HOME/.local/bin /var/lib/flatpak/exports/bin/ $fish_user_paths ### EXPORT ### set fish_greeting # Supresses fish's intro message set TERM "xterm-256color" # Sets the terminal type -set EDITOR "emacsclient -t -a ''" -set VISUAL "emacsclient -c -a 'emacs'" +set EDITOR "~/.local/bin/lvim" +set VISUAL "neovide --neovim-bin ~/.local/bin/lvim" ### SET BAT AS MANPAGER set -x MANPAGER "sh -c 'col -bx | bat -l man -p'" @@ -126,14 +126,11 @@ alias .4='cd ../../../..' alias .5='cd ../../../../..' # emacs as vim -alias vim="emacsclient -t -a ''" +alias vim="~/.local/bin/lvim" # bat as cat alias cat='bat' -# pfetch as neofetch -alias neofetch='pfetch' - # Changing "ls" to "exa" alias ls='exa -al --color=always --group-directories-first' # my preferred listing alias la='exa -a --color=always --group-directories-first' # all files and dirs @@ -219,12 +216,6 @@ alias youtube='ytfzf -ftsl' alias ytm='ytfzf -mtsl' alias youtube-music='ytfzf -mtsl' -# the terminal rickroll -alias rr='curl -s -L https://raw.githubusercontent.com/keroserene/rickrollrc/master/roll.sh | bash' - -# Mocp must be launched with bash instead of Fish! -alias mocp="bash -c mocp" - # network and bluetooth alias netstats='nmcli dev' alias wfi='nmtui-connect' diff --git a/user/.config/git/config b/user/.config/git/config index 8e67ea8a3..f7effc496 100644 --- a/user/.config/git/config +++ b/user/.config/git/config @@ -1,4 +1,4 @@ [user] mail = misterclay@tutanota.com - name = Darius Drake + name = Clay Gomera email = misterclay@tutanota.com diff --git a/user/.config/gtk-2.0/gtkfilechooser.ini b/user/.config/gtk-2.0/gtkfilechooser.ini index 65fa2a6e5..3de31bfd5 100644 --- a/user/.config/gtk-2.0/gtkfilechooser.ini +++ b/user/.config/gtk-2.0/gtkfilechooser.ini @@ -4,8 +4,8 @@ ShowHidden=false ShowSizeColumn=true GeometryX=0 GeometryY=0 -GeometryWidth=772 -GeometryHeight=560 +GeometryWidth=780 +GeometryHeight=585 SortColumn=name SortOrder=ascending StartupMode=recent diff --git a/user/.config/gtk-2.0/gtkrc-2.0 b/user/.config/gtk-2.0/gtkrc-2.0 index 385c75acc..baac8dd86 100644 --- a/user/.config/gtk-2.0/gtkrc-2.0 +++ b/user/.config/gtk-2.0/gtkrc-2.0 @@ -1,19 +1,14 @@ -# DO NOT EDIT! This file will be overwritten by nwg-look. -# Any customization should be done in ~/.gtkrc-2.0.mine instead. - -include "/home/drk/.gtkrc-2.0.mine" gtk-theme-name="gruvbox-dark-gtk" gtk-icon-theme-name="gruvbox-dark-icons-gtk" gtk-font-name="Cantarell 10" gtk-cursor-theme-name="Simp1e-Gruvbox-Dark" -gtk-cursor-theme-size=24 +gtk-cursor-theme-size=0 gtk-toolbar-style=GTK_TOOLBAR_BOTH gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR gtk-button-images=1 gtk-menu-images=1 gtk-enable-event-sounds=1 -gtk-enable-input-feedback-sounds=0 +gtk-enable-input-feedback-sounds=1 gtk-xft-antialias=1 gtk-xft-hinting=1 -gtk-xft-hintstyle="hintslight" -gtk-xft-rgba="rgb" +gtk-xft-hintstyle="hintfull" diff --git a/user/.config/gtk-3.0/settings.ini b/user/.config/gtk-3.0/settings.ini index 7b4e43bc1..22c394419 100644 --- a/user/.config/gtk-3.0/settings.ini +++ b/user/.config/gtk-3.0/settings.ini @@ -3,15 +3,13 @@ gtk-theme-name=gruvbox-dark-gtk gtk-icon-theme-name=gruvbox-dark-icons-gtk gtk-font-name=Cantarell 10 gtk-cursor-theme-name=Simp1e-Gruvbox-Dark -gtk-cursor-theme-size=24 +gtk-cursor-theme-size=0 gtk-toolbar-style=GTK_TOOLBAR_BOTH gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR gtk-button-images=1 gtk-menu-images=1 gtk-enable-event-sounds=1 -gtk-enable-input-feedback-sounds=0 +gtk-enable-input-feedback-sounds=1 gtk-xft-antialias=1 gtk-xft-hinting=1 -gtk-xft-hintstyle=hintslight -gtk-xft-rgba=rgb -gtk-application-prefer-dark-theme=1 +gtk-xft-hintstyle=hintfull diff --git a/user/.config/hypr/hyprland.conf b/user/.config/hypr/hyprland.conf index 207ee775a..298d70444 100644 --- a/user/.config/hypr/hyprland.conf +++ b/user/.config/hypr/hyprland.conf @@ -29,7 +29,6 @@ exec-once = dunst --config ~/.config/dunst/dunstrc exec-once = waybar ## Set wallpaper exec-once = swww init -exec-once = $HOME/.wbg ## Clipboard history exec-once = wl-paste --type text --watch cliphist store #Stores only text data exec-once = wl-paste --type image --watch cliphist store #Stores only image data @@ -52,19 +51,15 @@ input { general { gaps_in = 2 gaps_out = 4 - border_size = 2 - col.active_border = rgb(cc241d) rgb(d79921) 45deg + border_size = 3 + col.active_border = rgb(cc241d) #rgb(d79921) 45deg col.inactive_border = rgb(504945) layout = master } # DECORATIONS decoration { - rounding = 10 # Rounded corners - blur = yes # Window background blur - blur_size = 4 - blur_passes = 1.5 - blur_new_optimizations = yes + rounding = 0 # Rounded corners drop_shadow = yes shadow_range = 5 shadow_render_power = 3 @@ -140,95 +135,123 @@ device:epic mouse V1 { # WINDOW RULES windowrule = float, ^(qalculate-gtk)$ -## Workspace 1 - Web -windowrule = workspace 1, ^(org.qutebrowser.qutebrowser)$ -windowrule = workspace 1, ^(newsboat)$ -windowrule = workspace 1, ^(firefox)$ -windowrule = workspace 1, ^(LibreWolf)$ -windowrule = workspace 1, ^(Chromium)$ -windowrule = workspace 1, ^(Brave-browser)$ +## Workspace 1 - Editors +windowrule = workspace 1, ^(neovim)$ +windowrule = workspace 1, ^(goneovim)$ +windowrule = workspace 1, ^(Code)$ +windowrule = workspace 1, ^(emacs)$ +windowrule = workspace 1, ^(neovide)$ + +## Workspace 2 - Debug/Test Tools +windowrule = workspace 2, ^(gnome-boxes)$ +windowrule = workspace 2, ^(virt-manager)$ ## Workspace 2 - File management -windowrule = workspace 2, ^(vifm)$ -windowrule = workspace 2, ^(Pcmanfm)$ +windowrule = workspace 3, ^(file_manager)$ +windowrule = workspace 3, ^(pcmanfm)$ -## Workspace 3 - Editors -windowrule = workspace 3, ^(neovim)$ -windowrule = workspace 3, ^(goneovim)$ -windowrule = workspace 3, ^(Code)$ -windowrule = workspace 3, ^(emacs)$ -windowrule = workspace 3, ^(Notesnook)$ +## Workspace 4 - Web +windowrule = workspace 4, ^(org.qutebrowser.qutebrowser)$ +windowrule = workspace 4, ^(firefox)$ +windowrule = workspace 4, ^(LibreWolf)$ +windowrule = workspace 4, ^(Chromium)$ +windowrule = workspace 4, ^(Brave-browser)$ -## Workspace 4 - Chat -windowrule = workspace 4, ^(gomuks)$ -windowrule = workspace 4, ^(Signal)$ -windowrule = workspace 4, ^(revolt-desktop)$ -windowrule = workspace 4, ^(Element)$ +## Workspace 5 - Chat +windowrule = workspace 5, ^(gomuks)$ +windowrule = workspace 5, ^(Signal)$ +windowrule = workspace 5, ^(revolt-desktop)$ +windowrule = workspace 5, ^(Element)$ -## Workspace 5 - Audio -windowrule = workspace 5, ^(music_player)$ -windowrule = workspace 5, ^(ytfzf_music)$ -windowrule = workspace 5, ^(audacity)$ -windowrule = workspace 5, ^(Ardour)$ -windowrule = workspace 5, ^(carla)$ -windowrule = workspace 5, ^(carla-control)$ -windowrule = workspace 5, ^(hydrogen)$ -windowrule = workspace 5, ^(guitarix)$ -windowrule = workspace 5, ^(lsp-plugins)$ -windowrule = workspace 5, ^(QjackCtl)$ -windowrule = workspace 5, ^(org.rncbc.qpwgraph)$ -windowrule = workspace 5, ^(soundconverter)$ -windowrule = workspace 5, ^(kid3-qt)$ +## Workspace 6 - Mail +windowrule = workspace 6, ^(tutanota-desktop)$ +windowrule = workspace 6, ^(thunderbird)$ -## Workspace 6 - Video -windowrule = workspace 6, ^(pitivi)$ -windowrule = workspace 6, ^(org.kde.kdenlive)$ -windowrule = workspace 6, ^(mpv)$ -windowrule = workspace 6, ^(ytfzf)$ -windowrule = workspace 6, ^(flix_cli)$ -windowrule = workspace 6, ^(ani_cli)$ -windowrule = workspace 6, ^(blender)$ -windowrule = workspace 6, ^(com.obsproject.Studio)$ -windowrule = workspace 6, ^(fr.handbrake.ghb)$ +## Workspace 7 - News +windowrule = workspace 7, ^(newsboat)$ +windowrule = workspace 7, ^(org.kde.akregator)$ +windowrule = workspace 7, ^(io.gitlab.news_flash.NewsFlash)$ +windowrule = workspace 7, ^(liferea)$ +windowrule = workspace 7, ^(io.github.martinrotter.rssguard)$ -## Workspace 7 - Graphics -windowrule = workspace 7, ^(org.inkscape.Inkscape)$ -windowrule = workspace 7, ^(Gimp-2.10)$ -windowrule = workspace 7, ^(xournalpp)$ -windowrule = workspace 7, ^(krita)$ -windowrule = workspace 7, ^(darktable)$ -windowrule = workspace 7, ^(org.kde.digikam)$ +## Workspace 8 - Mastodon +windowrule = workspace 8, ^(tut)$ +windowrule = workspace 8, ^(org.kde.tokodon)$ -## Workspace 8 - Office -windowrule = workspace 8, ^(libreoffice-writer)$ -windowrule = workspace 8, ^(libreoffice-calc)$ -windowrule = workspace 8, ^(libreoffice-impress)$ -windowrule = workspace 8, ^(libreoffice-base)$ -windowrule = workspace 8, ^(libreoffice-draw)$ -windowrule = workspace 8, ^(libreoffice-math)$ -windowrule = workspace 8, ^(soffice)$ -windowrule = workspace 8, ^(GeoGebra)$ +## Workspace 9 - Audio +windowrule = workspace 9, ^(music_player)$ +windowrule = workspace 9, ^(ytfzf_music)$ +windowrule = workspace 9, ^(audacity)$ +windowrule = workspace 9, ^(Ardour)$ +windowrule = workspace 9, ^(carla)$ +windowrule = workspace 9, ^(carla-control)$ +windowrule = workspace 9, ^(hydrogen)$ +windowrule = workspace 9, ^(guitarix)$ +windowrule = workspace 9, ^(lsp-plugins)$ +windowrule = workspace 9, ^(QjackCtl)$ +windowrule = workspace 9, ^(org.rncbc.qpwgraph)$ +windowrule = workspace 9, ^(soundconverter)$ +windowrule = workspace 9, ^(kid3-qt)$ -## Workspace 9 - Games -windowrule = workspace 9, ^(org.libretro.RetroArch)$ -windowrule = workspace 9, ^(com.github.tkashkin.gamehub)$ -windowrule = workspace 9, ^(DarkPlaces)$ -windowrule = workspace 9, ^(pyrogenesis)$ -windowrule = workspace 9, ^(wesnoth)$ -windowrule = workspace 9, ^(Steam)$ -windowrule = workspace 9, ^(Minetest)$ +## Workspace 10 - Video +windowrule = workspace 10, ^(pitivi)$ +windowrule = workspace 10, ^(org.kde.kdenlive)$ +windowrule = workspace 10, ^(mpv)$ +windowrule = workspace 10, ^(ytfzf)$ +windowrule = workspace 10, ^(flix_cli)$ +windowrule = workspace 10, ^(ani_cli)$ +windowrule = workspace 10, ^(blender)$ +windowrule = workspace 10, ^(com.obsproject.Studio)$ +windowrule = workspace 10, ^(fr.handbrake.ghb)$ + +## Workspace 11 - Graphics +windowrule = workspace 11, ^(org.inkscape.Inkscape)$ +windowrule = workspace 11, ^(Gimp-2.10)$ +windowrule = workspace 11, ^(xournalpp)$ +windowrule = workspace 11, ^(krita)$ +windowrule = workspace 11, ^(darktable)$ +windowrule = workspace 11, ^(org.kde.digikam)$ + +## Workspace 12 - Office +windowrule = workspace 12, ^(libreoffice-writer)$ +windowrule = workspace 12, ^(libreoffice-calc)$ +windowrule = workspace 12, ^(libreoffice-impress)$ +windowrule = workspace 12, ^(libreoffice-base)$ +windowrule = workspace 12, ^(libreoffice-draw)$ +windowrule = workspace 12, ^(libreoffice-math)$ +windowrule = workspace 12, ^(soffice)$ +windowrule = workspace 12, ^(GeoGebra)$ +windowrule = workspace 12, ^(Notesnook)$ + +## Workspace 13 - PDF Readers +windowrule = workspace 13, ^(org.pwmt.zathura)$ + +## Workspace 14 - Games +windowrule = workspace 14, ^(org.libretro.RetroArch)$ +windowrule = workspace 14, ^(com.github.tkashkin.gamehub)$ +windowrule = workspace 14, ^(DarkPlaces)$ +windowrule = workspace 14, ^(pyrogenesis)$ +windowrule = workspace 14, ^(wesnoth)$ +windowrule = workspace 14, ^(Steam)$ +windowrule = workspace 14, ^(Minetest)$ + +# Workspace 15 - Password Manager +windowrule = workspace 15, ^(org.keepassxc.KeePassXC)$ + +# Workspace 16 - Audio Tools +windowrule = workspace 16, ^(pulsemixer)$ +windowrule = workspace 16, ^(alsamixer)$ +windowrule = workspace 16, ^(com.github.wwmm.easyeffects)$ + +## Workspace 19 - System Monitor +windowrule = workspace 19, ^(btop)$ +windowrule = workspace 19, ^(htop)$ + +## Workspace 20 - Tools +windowrule = workspace 20, ^(wdisplays)$ +windowrule = workspace 20, ^(font-manager)$ +windowrule = workspace 20, ^(org.qbittorrent.qBittorrent)$ -## Workspace 10 - Extras -windowrule = workspace 10, ^(Todoist)$ -windowrule = workspace 10, ^(btop)$ -windowrule = workspace 10, ^(htop)$ -windowrule = workspace 10, ^(pulsemixer)$ -windowrule = workspace 10, ^(alsamixer)$ -windowrule = workspace 10, ^(wdisplays)$ -windowrule = workspace 10, ^(font-manager)$ -windowrule = workspace 10, ^(org.qbittorrent.qBittorrent)$ -windowrule = workspace 10, ^(org.keepassxc.KeePassXC)$ -windowrule = workspace 10, ^(virt-manager)$ ################################### ### end___ __ ____ ________ ### @@ -300,6 +323,16 @@ bind = $supMod, 7, workspace, 7 bind = $supMod, 8, workspace, 8 bind = $supMod, 9, workspace, 9 bind = $supMod, 0, workspace, 10 +bind = $supMod_$conMod, 1, workspace, 11 +bind = $supMod_$conMod, 2, workspace, 12 +bind = $supMod_$conMod, 3, workspace, 13 +bind = $supMod_$conMod, 4, workspace, 14 +bind = $supMod_$conMod, 5, workspace, 15 +bind = $supMod_$conMod, 6, workspace, 16 +bind = $supMod_$conMod, 7, workspace, 17 +bind = $supMod_$conMod, 8, workspace, 18 +bind = $supMod_$conMod, 9, workspace, 19 +bind = $supMod_$conMod, 0, workspace, 20 ## Move active window to a workspace with supmod + shift + [0-9] bind = $supMod_SHIFT, 1, movetoworkspace, 1 bind = $supMod_SHIFT, 2, movetoworkspace, 2 @@ -311,6 +344,16 @@ bind = $supMod_SHIFT, 7, movetoworkspace, 7 bind = $supMod_SHIFT, 8, movetoworkspace, 8 bind = $supMod_SHIFT, 9, movetoworkspace, 9 bind = $supMod_SHIFT, 0, movetoworkspace, 10 +bind = $supMod_$conMod_SHIFT, 1, movetoworkspace, 11 +bind = $supMod_$conMod_SHIFT, 2, movetoworkspace, 12 +bind = $supMod_$conMod_SHIFT, 3, movetoworkspace, 13 +bind = $supMod_$conMod_SHIFT, 4, movetoworkspace, 14 +bind = $supMod_$conMod_SHIFT, 5, movetoworkspace, 15 +bind = $supMod_$conMod_SHIFT, 6, movetoworkspace, 16 +bind = $supMod_$conMod_SHIFT, 7, movetoworkspace, 17 +bind = $supMod_$conMod_SHIFT, 8, movetoworkspace, 18 +bind = $supMod_$conMod_SHIFT, 9, movetoworkspace, 19 +bind = $supMod_$conMod_SHIFT, 0, movetoworkspace, 20 ## Scroll through existing workspaces with supmod + scroll bind = $supMod, mouse_down, workspace, e+1 bind = $supMod, mouse_up, workspace, e-1 @@ -341,31 +384,32 @@ bindl=, XF86MonBrightnessDown, exec, brightnessctl s 10%- # Decrease br bindl=, XF86Display, exec, wdisplays # Open the display config tool (wdisplays) # ROFI -binde = $supMod_SHIFT, d, exec, pkill rofi || rofi -show drun # Desktop launcher -binde = $supMod_SHIFT, r, exec, pkill rofi || rofi -show run # Standard launcher -binde = $supMod_SHIFT, w, exec, pkill rofi || $HOME/.config/rofi/scripts/rofi_wall # Wallpaper setup -binde = $supMod_SHIFT, i, exec, pkill rofi || $HOME/.config/rofi/scripts/rofi_wifi # Wifi setup -binde = $supMod_SHIFT, e, exec, pkill rofi || $HOME/.config/rofi/scripts/rofi_emoji # Emoji picker -binde = $supMod_SHIFT, s, exec, pkill rofi || $HOME/.config/rofi/scripts/rofi_scrot # Screenshot tool -binde = $supMod_$conMod, s, exec, pkill rofi || $HOME/.config/rofi/scripts/rofi_scrot -s # Stop recording (for the screenshot tool) -binde = $supMod_SHIFT, q, exec, pkill rofi || $HOME/.config/rofi/scripts/rofi_power # Power setup -binde = $supMod_SHIFT, b, exec, pkill rofi || $HOME/.config/rofi/scripts/rofi_blue # Bluetooth setup -binde = $supMod_SHIFT, m, exec, pkill rofi || $HOME/.config/rofi/scripts/rofi_mount # External drive mount utility -binde = $supMod_SHIFT, c, exec, pkill rofi || cliphist list | rofi -dmenu -p "  Clipboard " | cliphist decode | wl-copy # Clipboard history +binde = $supMod_SHIFT, d, exec, pkill wofi || $RUNNER_EX --show drun # Desktop launcher +binde = $supMod_SHIFT, r, exec, pkill wofi || $RUNNER_EX --show run # Standard launcher +binde = $supMod_SHIFT, w, exec, pkill wofi || $HOME/.local/bin/rs_wall # Wallpaper setup +binde = $supMod_SHIFT, i, exec, pkill wofi || $HOME/.local/bin/rs_wifi # Wifi setup +binde = $supMod_SHIFT, e, exec, pkill wofi || $HOME/.local/bin/rs_emoji # Emoji picker +binde = $supMod_SHIFT, s, exec, pkill wofi || $HOME/.local/bin/rs_scrot # Screenshot tool +binde = $supMod_$conMod, s, exec, pkill wofi || $HOME/.local/bin/rs_scrot -s # Stop recording (for the screenshot tool) +binde = $supMod_SHIFT, q, exec, pkill wofi || $HOME/.local/bin/rs_power # Power setup +binde = $supMod_SHIFT, b, exec, pkill wofi || $HOME/.local/bin/rs_blue # Bluetooth setup +binde = $supMod_SHIFT, m, exec, pkill wofi || $HOME/.local/bin/rs_mount # External drive mount utility +binde = $supMod_SHIFT, c, exec, pkill wofi || cliphist list | $RUNNER -p "  Clipboard " | cliphist decode | wl-copy # Clipboard history # COLOR PICKER binde = $supMod_$conMod, c, exec, hyprpicker -n -a # QUICK TERMINAL SCRIPTS/COMMANDS -## Workspace 1 - Web +## Workspace 3 - Web binde = $supMod_$altMod, r, exec, wezterm start --class newsboat -- newsboat # RSS feed reader +binde = $supMod_$altMod, t, exec, wezterm start --class tut -- tut # Mastodon client ## Workspace 5 - Audio binde = $supMod_$altMod, m, exec, wezterm start --class ytfzf_music -- ytfzf -mlstT chafa # Listen to YouTube Music on the terminal ## Workspace 6 - Video binde = $supMod_$altMod, f, exec, wezterm start --class flix_cli -- flix-cli # Watch movies on the terminal binde = $supMod_$altMod, a, exec, wezterm start --class ani_cli -- ani-cli # Watch anime on the terminal binde = $supMod_$altMod, y, exec, wezterm start --class ytfzf -- ytfzf -flstT chafa # Watch YouTube on the terminal -## Workspace 10 - Extras +## Workspace 9 - Extras binde = $supMod_$altMod, p, exec, wezterm start --class pulsemixer -- pulsemixer # Open the volume mixer (pulsemixer) binde = $supMod_$altMod, o, exec, wezterm start --class alsamixer -- alsamixer # Open the volume mixer (alsamixer) binde = $supMod_$altMod, b, exec, wezterm start --class btop -- btop # Open the system monitor (btop) @@ -373,20 +417,19 @@ binde = $supMod_$altMod, h, exec, wezterm start --class htop -- htop # MAIN APPS ## Workspace 1 - Web -binde = $supMod, w, exec, io.gitlab.librewolf-community +binde = $supMod, w, exec, firefox ## Workspace 2 - File management -binde = $supMod, f, exec, wezterm start --class vifm -- vifm +binde = $supMod, f, exec, wezterm start --class file_manager -- vifm ## Workspace 3 - Editors -binde = $supMod, e, exec, emacsclient -c -a emacs -binde = $supMod, n, exec, com.notesnook.Notesnook +binde = $supMod, e, exec, neovide --neovim-bin $HOME/.local/bin/lvim ## Workspace 4 - Chat -binde = $supMod, c, exec, org.signal.Signal +binde = $supMod, c, exec, signal-desktop ## Workspace 5 - Audio binde = $supMod, m, exec, wezterm start --class music_player -- cmus ## Workspace 9 - Games -binde = $supMod, g, exec, org.libretro.RetroArch +binde = $supMod, g, exec, retroarch ## Workspace 10 - Extras -binde = $supMod, p, exec, org.keepassxc.KeePassXC +binde = $supMod, p, exec, keepassxc ################################## ### end___ _____ _____ ____ ### diff --git a/user/.config/lvim/config.lua b/user/.config/lvim/config.lua new file mode 100644 index 000000000..73bdc512f --- /dev/null +++ b/user/.config/lvim/config.lua @@ -0,0 +1,129 @@ +-- neovide options +vim.o.guifont = "mononoki Nerd Font:h12" +vim.g.neovide_hide_mouse_when_typing = true +vim.g.neovide_input_macos_alt_is_meta = true +vim.g.neovide_hide_mouse_when_typing = false +vim.g.neovide_refresh_rate = 60 +vim.g.neovide_refresh_rate_idle = 5 +vim.g.neovide_no_idle = true +vim.g.neovide_confirm_quit = true +vim.g.neovide_input_use_logo = true + +vim.g.neovide_cursor_antialiasing = true +vim.g.neovide_cursor_animate_in_insert_mode = true +vim.g.neovide_cursor_vfx_mode = "pixiedust" +vim.g.neovide_cursor_vfx_particle_speed = 20.0 + +vim.g.neovide_padding_top = 0 +vim.g.neovide_padding_bottom = 0 +vim.g.neovide_padding_right = 0 +vim.g.neovide_padding_left = 0 + +-- Helper function for transparency formatting +local alpha = function() + return string.format("%x", math.floor(255 * (vim.g.transparency or 0.9))) +end +vim.g.neovide_transparency = 0.9 +vim.g.transparency = 0.9 +vim.g.neovide_background_color = "#1d2021" .. alpha() + +-- nvim options +vim.opt.shiftwidth = 4 +vim.opt.tabstop = 4 +vim.opt.relativenumber = true +vim.cmd('autocmd FileType markdown setlocal nospell') +vim.opt.wrap = true -- wrap lines +vim.opt.spell = false +vim.o.shell = '/usr/bin/fish' +vim.o.autochdir = true +vim.cmd('autocmd BufEnter * lcd %:p:h') + +-- general +lvim.use_icons = true +lvim.log.level = "info" +lvim.format_on_save = { + enabled = true, + pattern = "*.lua", + timeout = 1000, +} + +-- change theme settings +lvim.colorscheme = "gruvbox" +lvim.transparent_window = false +lvim.builtin.alpha.active = true +lvim.builtin.alpha.mode = "dashboard" +lvim.builtin.terminal.active = true +lvim.builtin.nvimtree.setup.view.side = "left" +lvim.builtin.nvimtree.setup.renderer.icons.show.git = false + +-- automatically install missing parsers when entering buffer +lvim.builtin.treesitter.auto_install = true + +-- additional Plugins +lvim.plugins = { + { "lunarvim/colorschemes" }, + { "ellisonleao/gruvbox.nvim" }, + { "puremourning/vimspector" }, + { "SirVer/ultisnips" }, + { "CRAG666/code_runner.nvim" }, +} + +-- configuring colorscheme +require("gruvbox").setup({ + undercurl = true, + underline = true, + bold = false, + italic = { + strings = true, + comments = true, + operators = false, + folds = true, + }, + strikethrough = true, + invert_selection = false, + invert_signs = false, + invert_tabline = false, + invert_intend_guides = false, + inverse = true, -- invert background for search, diffs, statuslines and errors + contrast = "hard", -- can be "hard", "soft" or empty string + palette_overrides = {}, + overrides = {}, + dim_inactive = false, + transparent_mode = false, +}) + +-- vimspector options +vim.g.vimspector_enable_mappings = 'HUMAN' +vim.g.vimspector_enable_mappings_for_mode = { + [''] = { 'n', 'v' }, +} + +-- code runner options +require('code_runner').setup({ + filetype = { + java = { + "cd $dir &&", + "javac $fileName &&", + "java $fileNameWithoutExt" + }, + python = "python3 -u", + typescript = "deno run", + rust = { + "cd $dir &&", + "rustc $fileName &&", + "$dir/$fileNameWithoutExt" + }, + cs = { + "cd '$dir' &&", + "dotnet run" + } + }, +}) + +lvim.keys.normal_mode["r"] = ":RunCode" +lvim.keys.normal_mode["rf"] = ":RunFile" +lvim.keys.normal_mode["rft"] = ":RunFile tab" +lvim.keys.normal_mode["rp"] = ":RunProject" +lvim.keys.normal_mode["rc"] = ":RunClose" +lvim.keys.normal_mode["crf"] = ":CRFiletype" +lvim.keys.normal_mode["crp"] = ":CRProjects" diff --git a/user/.config/neofetch/config.conf b/user/.config/neofetch/config.conf new file mode 100644 index 000000000..6365d291f --- /dev/null +++ b/user/.config/neofetch/config.conf @@ -0,0 +1,118 @@ +print_info() { + prin " " + prin "┌─────────\n Hardware Information \n─────────┐" + info " ​ ​ 󰟀 " model + info " ​ ​ 󰍛 " cpu + info " ​ ​ 󰘚 " gpu + info " ​ ​ 󰍛 " memory + info " ​ ​ 󱑆 " uptime + prin "├─────────\n Software Information \n─────────┤" + info " ​ ​ 󰌽 " distro + info " ​ ​  " kernel + info " ​ ​ 󰏖 " packages + info " ​ ​ 󰧨 " wm + info " ​ ​ 󰆍 " shell + info " ​ ​ 󰉼 " theme + info " ​ ​  " icons + info " ​ ​ 󰝚 " song + # [[ "$player" ]] && prin "Music Player" "$player" +# info " ​ ​  " local_ip +# info " ​ ​  " public_ip +# info " ​ ​  " locale # This only works on glibc systems. + prin "└───────────────────────────────────────┘" + info cols +prin "\n \n \n \n \n ${cl3} \n \n ${cl5} \n \n ${cl2} \n \n ${cl6} \n \n ${cl4} \n \n ${cl1} \n \n ${cl7} \n \n ${cl0}" +} + +kernel_shorthand="on" +distro_shorthand="off" +os_arch="off" +uptime_shorthand="on" +memory_percent="on" +package_managers="on" +shell_path="off" +shell_version="on" +speed_type="bios_limit" +speed_shorthand="on" +cpu_brand="off" +cpu_speed="off" +cpu_cores="logical" +cpu_temp="off" +gpu_brand="off" +gpu_type="all" +refresh_rate="on" +gtk_shorthand="on" +gtk2="on" +gtk3="on" +public_ip_host="http://ident.me" +public_ip_timeout=2 +disk_show=('/') +music_player="cmus" +song_format="%artist% - %title%" +song_shorthand="off" +colors=(distro) +bold="on" +underline_enabled="on" +underline_char="-" +separator="  " +color_blocks="off" +block_range=(0 15) # Colorblocks + +# Colors for custom colorblocks +magenta="\033[1;35m" +green="\033[1;32m" +white="\033[1;37m" +blue="\033[1;34m" +red="\033[1;31m" +black="\033[1;40;30m" +yellow="\033[1;33m" +cyan="\033[1;36m" +reset="\033[0m" +bgyellow="\033[1;43;33m" +bgwhite="\033[1;47;37m" +cl0="${reset}" +cl1="${magenta}" +cl2="${green}" +cl3="${white}" +cl4="${blue}" +cl5="${red}" +cl6="${yellow}" +cl7="${cyan}" +cl8="${black}" +cl9="${bgyellow}" +cl10="${bgwhite}" + +block_width=4 +block_height=1 + +bar_char_elapsed="-" +bar_char_total="=" +bar_border="on" +bar_length=15 +bar_color_elapsed="distro" +bar_color_total="distro" + +cpu_display="on" +memory_display="on" +battery_display="on" +disk_display="on" + +image_backend="chafa" +image_source="$HOME/.config/neofetch/img1.png" +image_size="320px" +image_loop="off" + +aascii_distro="auto" +ascii_colors=(distro) +ascii_bold="on" + +thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch" +crop_mode="normal" +crop_offset="center" + +gap=2 + +yoffset=0 +xoffset=0 + +stdout="off" diff --git a/user/.config/neofetch/img1.png b/user/.config/neofetch/img1.png new file mode 100644 index 000000000..876a1bb3f Binary files /dev/null and b/user/.config/neofetch/img1.png differ diff --git a/user/.config/qutebrowser/bookmarks/urls b/user/.config/qutebrowser/bookmarks/urls new file mode 100644 index 000000000..728019a0f --- /dev/null +++ b/user/.config/qutebrowser/bookmarks/urls @@ -0,0 +1,21 @@ +https://mail.google.com/ gmail +https://mail.tutanota.com/ tutanota +https://mail.proton.me/ proton-mail +https://outlook.live.com/mail outlook +https://odysee.com/ odysee +https://inv.vern.cc/ youtube +https://https://beatbump.io/ youtube-music +https://fosstodon.org/ mastodon +https://beehaw.org/ beehaw +https://pixelfed.social/ pixelfed +https://github.com/ github +https://codeberg.org/ codeberg +https://app.element.io/ element +https://app.revolt.chat/ revolt +https://web.whatsapp.com/ whatsapp +https://outlook.office.com/ intec-correo +https://campusvirtual.intec.edu.do/ intec-aula-virtual +https://procesos.intec.edu.do/ intec-procesos +https://amazon.com/ amazon +https://mega.nz/ mega +https://drive.google.com/drive/my-drive google-drive diff --git a/user/.config/qutebrowser/config.py b/user/.config/qutebrowser/config.py new file mode 100644 index 000000000..7a50a7c4e --- /dev/null +++ b/user/.config/qutebrowser/config.py @@ -0,0 +1,248 @@ +## ____ __ +## / __ \_________ _/ /_____ +## / / / / ___/ __ `/ //_/ _ \ +## / /_/ / / / /_/ / ,< / __/ Clay Gomera (Drake) +## /_____/_/ \__,_/_/|_|\___/ My custom qutebrowser config +## + +# NOTE: config.py is intended for advanced users who are comfortable +# with manually migrating the config file on qutebrowser upgrades. If +# you prefer, you can also configure qutebrowser using the +# :set/:bind/:config-* commands without having to write a config.py +# file. +# +# Documentation: +# qute://help/configuring.html +# qute://help/settings.html + +# Uncomment this to still load settings configured via autoconfig.yml +# config.load_autoconfig() +# Or uncomment this line to load settings from config.py +config.load_autoconfig(False) + +# Aliases for commands. The keys of the given dictionary are the +# aliases, while the values are the commands they map to. +# Type: Dict +c.aliases = {'q': 'quit', 'w': 'session-save', 'wq': 'quit --save'} + +# Setting dark mode +#config.set("colors.webpage.darkmode.enabled", True) + +# Which cookies to accept. With QtWebEngine, this setting also controls +# other features with tracking capabilities similar to those of cookies; +# including IndexedDB, DOM storage, filesystem API, service workers, and +# AppCache. Note that with QtWebKit, only `all` and `never` are +# supported as per-domain values. Setting `no-3rdparty` or `no- +# unknown-3rdparty` per-domain on QtWebKit will have the same effect as +# `all`. +# Type: String +# Valid values: +# - all: Accept all cookies. +# - no-3rdparty: Accept cookies from the same origin only. This is known to break some sites, such as GMail. +# - no-unknown-3rdparty: Accept cookies from the same origin only, unless a cookie is already set for the domain. On QtWebEngine, this is the same as no-3rdparty. +# - never: Don't accept cookies at all. +config.set('content.cookies.accept', 'all', 'chrome-devtools://*') + +# Which cookies to accept. With QtWebEngine, this setting also controls +# other features with tracking capabilities similar to those of cookies; +# including IndexedDB, DOM storage, filesystem API, service workers, and +# AppCache. Note that with QtWebKit, only `all` and `never` are +# supported as per-domain values. Setting `no-3rdparty` or `no- +# unknown-3rdparty` per-domain on QtWebKit will have the same effect as +# `all`. +# Type: String +# Valid values: +# - all: Accept all cookies. +# - no-3rdparty: Accept cookies from the same origin only. This is known to break some sites, such as GMail. +# - no-unknown-3rdparty: Accept cookies from the same origin only, unless a cookie is already set for the domain. On QtWebEngine, this is the same as no-3rdparty. +# - never: Don't accept cookies at all. +config.set('content.cookies.accept', 'all', 'devtools://*') + +# User agent to send. The following placeholders are defined: * +# `{os_info}`: Something like "X11; Linux x86_64". * `{webkit_version}`: +# The underlying WebKit version (set to a fixed value with +# QtWebEngine). * `{qt_key}`: "Qt" for QtWebKit, "QtWebEngine" for +# QtWebEngine. * `{qt_version}`: The underlying Qt version. * +# `{upstream_browser_key}`: "Version" for QtWebKit, "Chrome" for +# QtWebEngine. * `{upstream_browser_version}`: The corresponding +# Safari/Chrome version. * `{qutebrowser_version}`: The currently +# running qutebrowser version. The default value is equal to the +# unchanged user agent of QtWebKit/QtWebEngine. Note that the value +# read from JavaScript is always the global value. With QtWebEngine +# between 5.12 and 5.14 (inclusive), changing the value exposed to +# JavaScript requires a restart. +# Type: FormatString +config.set('content.headers.user_agent', 'Mozilla/5.0 ({os_info}) AppleWebKit/{webkit_version} (KHTML, like Gecko) {upstream_browser_key}/{upstream_browser_version} Safari/{webkit_version}', 'https://web.whatsapp.com/') + +# User agent to send. The following placeholders are defined: * +# `{os_info}`: Something like "X11; Linux x86_64". * `{webkit_version}`: +# The underlying WebKit version (set to a fixed value with +# QtWebEngine). * `{qt_key}`: "Qt" for QtWebKit, "QtWebEngine" for +# QtWebEngine. * `{qt_version}`: The underlying Qt version. * +# `{upstream_browser_key}`: "Version" for QtWebKit, "Chrome" for +# QtWebEngine. * `{upstream_browser_version}`: The corresponding +# Safari/Chrome version. * `{qutebrowser_version}`: The currently +# running qutebrowser version. The default value is equal to the +# unchanged user agent of QtWebKit/QtWebEngine. Note that the value +# read from JavaScript is always the global value. With QtWebEngine +# between 5.12 and 5.14 (inclusive), changing the value exposed to +# JavaScript requires a restart. +# Type: FormatString +config.set('content.headers.user_agent', 'Mozilla/5.0 ({os_info}; rv:71.0) Gecko/20100101 Firefox/71.0', 'https://accounts.google.com/*') + +# User agent to send. The following placeholders are defined: * +# `{os_info}`: Something like "X11; Linux x86_64". * `{webkit_version}`: +# The underlying WebKit version (set to a fixed value with +# QtWebEngine). * `{qt_key}`: "Qt" for QtWebKit, "QtWebEngine" for +# QtWebEngine. * `{qt_version}`: The underlying Qt version. * +# `{upstream_browser_key}`: "Version" for QtWebKit, "Chrome" for +# QtWebEngine. * `{upstream_browser_version}`: The corresponding +# Safari/Chrome version. * `{qutebrowser_version}`: The currently +# running qutebrowser version. The default value is equal to the +# unchanged user agent of QtWebKit/QtWebEngine. Note that the value +# read from JavaScript is always the global value. With QtWebEngine +# between 5.12 and 5.14 (inclusive), changing the value exposed to +# JavaScript requires a restart. +# Type: FormatString +config.set('content.headers.user_agent', 'Mozilla/5.0 ({os_info}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99 Safari/537.36', 'https://*.slack.com/*') + +# User agent to send. The following placeholders are defined: * +# `{os_info}`: Something like "X11; Linux x86_64". * `{webkit_version}`: +# The underlying WebKit version (set to a fixed value with +# QtWebEngine). * `{qt_key}`: "Qt" for QtWebKit, "QtWebEngine" for +# QtWebEngine. * `{qt_version}`: The underlying Qt version. * +# `{upstream_browser_key}`: "Version" for QtWebKit, "Chrome" for +# QtWebEngine. * `{upstream_browser_version}`: The corresponding +# Safari/Chrome version. * `{qutebrowser_version}`: The currently +# running qutebrowser version. The default value is equal to the +# unchanged user agent of QtWebKit/QtWebEngine. Note that the value +# read from JavaScript is always the global value. With QtWebEngine +# between 5.12 and 5.14 (inclusive), changing the value exposed to +# JavaScript requires a restart. +# Type: FormatString +config.set('content.headers.user_agent', 'Mozilla/5.0 ({os_info}; rv:71.0) Gecko/20100101 Firefox/71.0', 'https://docs.google.com/*') + +# User agent to send. The following placeholders are defined: * +# `{os_info}`: Something like "X11; Linux x86_64". * `{webkit_version}`: +# The underlying WebKit version (set to a fixed value with +# QtWebEngine). * `{qt_key}`: "Qt" for QtWebKit, "QtWebEngine" for +# QtWebEngine. * `{qt_version}`: The underlying Qt version. * +# `{upstream_browser_key}`: "Version" for QtWebKit, "Chrome" for +# QtWebEngine. * `{upstream_browser_version}`: The corresponding +# Safari/Chrome version. * `{qutebrowser_version}`: The currently +# running qutebrowser version. The default value is equal to the +# unchanged user agent of QtWebKit/QtWebEngine. Note that the value +# read from JavaScript is always the global value. With QtWebEngine +# between 5.12 and 5.14 (inclusive), changing the value exposed to +# JavaScript requires a restart. +# Type: FormatString +config.set('content.headers.user_agent', 'Mozilla/5.0 ({os_info}; rv:71.0) Gecko/20100101 Firefox/71.0', 'https://drive.google.com/*') + +# Load images automatically in web pages. +# Type: Bool +config.set('content.images', True, 'chrome-devtools://*') + +# Load images automatically in web pages. +# Type: Bool +config.set('content.images', True, 'devtools://*') + +# Enable JavaScript. +# Type: Bool +config.set('content.javascript.enabled', True, 'chrome-devtools://*') + +# Enable JavaScript. +# Type: Bool +config.set('content.javascript.enabled', True, 'devtools://*') + +# Enable JavaScript. +# Type: Bool +config.set('content.javascript.enabled', True, 'chrome://*/*') + +# Enable JavaScript. +# Type: Bool +config.set('content.javascript.enabled', True, 'qute://*/*') + +# Directory to save downloads to. If unset, a sensible OS-specific +# default is used. +# Type: Directory +c.downloads.location.directory = '~/Temporal/Downloads' + +# When to show the tab bar. +# Type: String +# Valid values: +# - always: Always show the tab bar. +# - never: Always hide the tab bar. +# - multiple: Hide the tab bar if only one tab is open. +# - switching: Show the tab bar when switching tabs. +c.tabs.show = 'always' + +# Setting default page for when opening new tabs or new windows with +# commands like :open -t and :open -w . +c.url.default_page = 'https://start.duckduckgo.com' +c.url.start_pages = 'https://start.duckduckgo.com' + +# Search engines which can be used via the address bar. Maps a search +# engine name (such as `DEFAULT`, or `ddg`) to a URL with a `{}` +# placeholder. The placeholder will be replaced by the search term, use +# `{{` and `}}` for literal `{`/`}` braces. The following further +# placeholds are defined to configure how special characters in the +# search terms are replaced by safe characters (called 'quoting'): * +# `{}` and `{semiquoted}` quote everything except slashes; this is the +# most sensible choice for almost all search engines (for the search +# term `slash/and&` this placeholder expands to `slash/and%26amp`). +# * `{quoted}` quotes all characters (for `slash/and&` this +# placeholder expands to `slash%2Fand%26amp`). * `{unquoted}` quotes +# nothing (for `slash/and&` this placeholder expands to +# `slash/and&`). The search engine named `DEFAULT` is used when +# `url.auto_search` is turned on and something else than a URL was +# entered to be opened. Other search engines can be used by prepending +# the search engine name to the search term, e.g. `:open google +# qutebrowser`. +# Type: Dict +c.url.searchengines = {'DEFAULT': 'https://duckduckgo.com/?q={}', 'aw': 'https://wiki.archlinux.org/?search={}', 'ub': 'https://www.urbandictionary.com/define.php?term={}', 'wiki': 'https://en.wikipedia.org/wiki/{}'} + +# Default font families to use. Whenever "default_family" is used in a +# font setting, it's replaced with the fonts listed here. If set to an +# empty value, a system-specific monospace default is used. +# Type: List of Font, or Font +c.fonts.default_family = '"mononoki Nerd Font"' + +# Default font size to use. Whenever "default_size" is used in a font +# setting, it's replaced with the size listed here. Valid values are +# either a float value with a "pt" suffix, or an integer value with a +# "px" suffix. +# Type: String +c.fonts.default_size = '10pt' + +# Font used in the completion widget. +# Type: Font +c.fonts.completion.entry = '10pt "mononoki Nerd Font"' + +# Font used for the debugging console. +# Type: Font +c.fonts.debug_console = '10pt "mononoki Nerd Font"' + +# Font used for prompts. +# Type: Font +c.fonts.prompts = 'default_size sans-serif' + +# Font used in the statusbar. +# Type: Font +c.fonts.statusbar = '10pt "mononoki Nerd Font"' + +config.source('gruvbox.py') + +# Bindings for normal mode +config.bind('M', 'hint links spawn mpv {hint-url}') +config.bind('Z', 'hint links spawn st -e youtube-dl {hint-url}') +config.bind('t', 'set-cmd-text -s :open -t') +config.bind('xb', 'config-cycle statusbar.show always never') +config.bind('xt', 'config-cycle tabs.show always never') +config.bind('xx', 'config-cycle statusbar.show always never;; config-cycle tabs.show always never') + +# configs +config.set('content.notifications.enabled', False) +config.set('content.blocking.method', 'both') +config.set('content.blocking.enabled', True) +config.set('content.autoplay', False) +config.set('content.register_protocol_handler', False) diff --git a/user/.config/qutebrowser/gruvbox.py b/user/.config/qutebrowser/gruvbox.py new file mode 100644 index 000000000..e800f689f --- /dev/null +++ b/user/.config/qutebrowser/gruvbox.py @@ -0,0 +1,333 @@ +# gruvbox dark hard qutebrowser theme by Florian Bruhin +# +# Originally based on: +# base16-qutebrowser (https://github.com/theova/base16-qutebrowser) +# Base16 qutebrowser template by theova and Daniel Mulford +# Gruvbox dark, hard scheme by Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox) + +bg0_hard = "#1d2021" +bg0_soft = '#32302f' +bg0_normal = '#282828' + +bg0 = bg0_normal +bg1 = "#3c3836" +bg2 = "#504945" +bg3 = "#665c54" +bg4 = "#7c6f64" + +fg0 = "#fbf1c7" +fg1 = "#ebdbb2" +fg2 = "#d5c4a1" +fg3 = "#bdae93" +fg4 = "#a89984" + +bright_red = "#fb4934" +bright_green = "#b8bb26" +bright_yellow = "#fabd2f" +bright_blue = "#83a598" +bright_purple = "#d3869b" +bright_aqua = "#8ec07c" +bright_gray = "#928374" +bright_orange = "#fe8019" + +dark_red = "#cc241d" +dark_green = "#98971a" +dark_yellow = "#d79921" +dark_blue = "#458588" +dark_purple = "#b16286" +dark_aqua = "#689d6a" +dark_gray = "#a89984" +dark_orange = "#d65d0e" + +### Completion + +# Text color of the completion widget. May be a single color to use for +# all columns or a list of three colors, one for each column. +c.colors.completion.fg = [fg1, bright_aqua, bright_yellow] + +# Background color of the completion widget for odd rows. +c.colors.completion.odd.bg = bg0 + +# Background color of the completion widget for even rows. +c.colors.completion.even.bg = c.colors.completion.odd.bg + +# Foreground color of completion widget category headers. +c.colors.completion.category.fg = bright_blue + +# Background color of the completion widget category headers. +c.colors.completion.category.bg = bg1 + +# Top border color of the completion widget category headers. +c.colors.completion.category.border.top = c.colors.completion.category.bg + +# Bottom border color of the completion widget category headers. +c.colors.completion.category.border.bottom = c.colors.completion.category.bg + +# Foreground color of the selected completion item. +c.colors.completion.item.selected.fg = fg0 + +# Background color of the selected completion item. +c.colors.completion.item.selected.bg = bg4 + +# Top border color of the selected completion item. +c.colors.completion.item.selected.border.top = bg2 + +# Bottom border color of the selected completion item. +c.colors.completion.item.selected.border.bottom = c.colors.completion.item.selected.border.top + +# Foreground color of the matched text in the selected completion item. +c.colors.completion.item.selected.match.fg = bright_orange + +# Foreground color of the matched text in the completion. +c.colors.completion.match.fg = c.colors.completion.item.selected.match.fg + +# Color of the scrollbar handle in the completion view. +c.colors.completion.scrollbar.fg = c.colors.completion.item.selected.fg + +# Color of the scrollbar in the completion view. +c.colors.completion.scrollbar.bg = c.colors.completion.category.bg + +### Context menu + +# Background color of disabled items in the context menu. +c.colors.contextmenu.disabled.bg = bg3 + +# Foreground color of disabled items in the context menu. +c.colors.contextmenu.disabled.fg = fg3 + +# Background color of the context menu. If set to null, the Qt default is used. +c.colors.contextmenu.menu.bg = bg0 + +# Foreground color of the context menu. If set to null, the Qt default is used. +c.colors.contextmenu.menu.fg = fg2 + +# Background color of the context menu's selected item. If set to null, the Qt default is used. +c.colors.contextmenu.selected.bg = bg2 + +#Foreground color of the context menu's selected item. If set to null, the Qt default is used. +c.colors.contextmenu.selected.fg = c.colors.contextmenu.menu.fg + +### Downloads + +# Background color for the download bar. +c.colors.downloads.bar.bg = bg0 + +# Color gradient start for download text. +c.colors.downloads.start.fg = bg0 + +# Color gradient start for download backgrounds. +c.colors.downloads.start.bg = bright_blue + +# Color gradient end for download text. +c.colors.downloads.stop.fg = c.colors.downloads.start.fg + +# Color gradient stop for download backgrounds. +c.colors.downloads.stop.bg = bright_aqua + +# Foreground color for downloads with errors. +c.colors.downloads.error.fg = bright_red + +### Hints + +# Font color for hints. +c.colors.hints.fg = bg0 + +# Background color for hints. +c.colors.hints.bg = 'rgba(250, 191, 47, 200)' # bright_yellow + +# Font color for the matched part of hints. +c.colors.hints.match.fg = bg4 + +### Keyhint widget + +# Text color for the keyhint widget. +c.colors.keyhint.fg = fg4 + +# Highlight color for keys to complete the current keychain. +c.colors.keyhint.suffix.fg = fg0 + +# Background color of the keyhint widget. +c.colors.keyhint.bg = bg0 + +### Messages + +# Foreground color of an error message. +c.colors.messages.error.fg = bg0 + +# Background color of an error message. +c.colors.messages.error.bg = bright_red + +# Border color of an error message. +c.colors.messages.error.border = c.colors.messages.error.bg + +# Foreground color of a warning message. +c.colors.messages.warning.fg = bg0 + +# Background color of a warning message. +c.colors.messages.warning.bg = bright_purple + +# Border color of a warning message. +c.colors.messages.warning.border = c.colors.messages.warning.bg + +# Foreground color of an info message. +c.colors.messages.info.fg = fg2 + +# Background color of an info message. +c.colors.messages.info.bg = bg0 + +# Border color of an info message. +c.colors.messages.info.border = c.colors.messages.info.bg + +### Prompts + +# Foreground color for prompts. +c.colors.prompts.fg = fg2 + +# Border used around UI elements in prompts. +c.colors.prompts.border = f'1px solid {bg1}' + +# Background color for prompts. +c.colors.prompts.bg = bg3 + +# Background color for the selected item in filename prompts. +c.colors.prompts.selected.bg = bg2 + +### Statusbar + +# Foreground color of the statusbar. +c.colors.statusbar.normal.fg = fg2 + +# Background color of the statusbar. +c.colors.statusbar.normal.bg = bg0 + +# Foreground color of the statusbar in insert mode. +c.colors.statusbar.insert.fg = bg0 + +# Background color of the statusbar in insert mode. +c.colors.statusbar.insert.bg = dark_aqua + +# Foreground color of the statusbar in passthrough mode. +c.colors.statusbar.passthrough.fg = bg0 + +# Background color of the statusbar in passthrough mode. +c.colors.statusbar.passthrough.bg = dark_blue + +# Foreground color of the statusbar in private browsing mode. +c.colors.statusbar.private.fg = bright_purple + +# Background color of the statusbar in private browsing mode. +c.colors.statusbar.private.bg = bg0 + +# Foreground color of the statusbar in command mode. +c.colors.statusbar.command.fg = fg3 + +# Background color of the statusbar in command mode. +c.colors.statusbar.command.bg = bg1 + +# Foreground color of the statusbar in private browsing + command mode. +c.colors.statusbar.command.private.fg = c.colors.statusbar.private.fg + +# Background color of the statusbar in private browsing + command mode. +c.colors.statusbar.command.private.bg = c.colors.statusbar.command.bg + +# Foreground color of the statusbar in caret mode. +c.colors.statusbar.caret.fg = bg0 + +# Background color of the statusbar in caret mode. +c.colors.statusbar.caret.bg = dark_purple + +# Foreground color of the statusbar in caret mode with a selection. +c.colors.statusbar.caret.selection.fg = c.colors.statusbar.caret.fg + +# Background color of the statusbar in caret mode with a selection. +c.colors.statusbar.caret.selection.bg = bright_purple + +# Background color of the progress bar. +c.colors.statusbar.progress.bg = bright_blue + +# Default foreground color of the URL in the statusbar. +c.colors.statusbar.url.fg = fg4 + +# Foreground color of the URL in the statusbar on error. +c.colors.statusbar.url.error.fg = dark_red + +# Foreground color of the URL in the statusbar for hovered links. +c.colors.statusbar.url.hover.fg = bright_orange + +# Foreground color of the URL in the statusbar on successful load +# (http). +c.colors.statusbar.url.success.http.fg = bright_red + +# Foreground color of the URL in the statusbar on successful load +# (https). +c.colors.statusbar.url.success.https.fg = fg0 + +# Foreground color of the URL in the statusbar when there's a warning. +c.colors.statusbar.url.warn.fg = bright_purple + +### tabs + +# Background color of the tab bar. +c.colors.tabs.bar.bg = bg0 + +# Color gradient start for the tab indicator. +c.colors.tabs.indicator.start = bright_blue + +# Color gradient end for the tab indicator. +c.colors.tabs.indicator.stop = bright_aqua + +# Color for the tab indicator on errors. +c.colors.tabs.indicator.error = bright_red + +# Foreground color of unselected odd tabs. +c.colors.tabs.odd.fg = fg2 + +# Background color of unselected odd tabs. +c.colors.tabs.odd.bg = bg2 + +# Foreground color of unselected even tabs. +c.colors.tabs.even.fg = c.colors.tabs.odd.fg + +# Background color of unselected even tabs. +c.colors.tabs.even.bg = bg3 + +# Foreground color of selected odd tabs. +c.colors.tabs.selected.odd.fg = fg2 + +# Background color of selected odd tabs. +c.colors.tabs.selected.odd.bg = bg0 + +# Foreground color of selected even tabs. +c.colors.tabs.selected.even.fg = c.colors.tabs.selected.odd.fg + +# Background color of selected even tabs. +c.colors.tabs.selected.even.bg = bg0 + +# Background color of pinned unselected even tabs. +c.colors.tabs.pinned.even.bg = bright_green + +# Foreground color of pinned unselected even tabs. +c.colors.tabs.pinned.even.fg = bg2 + +# Background color of pinned unselected odd tabs. +c.colors.tabs.pinned.odd.bg = bright_green + +# Foreground color of pinned unselected odd tabs. +c.colors.tabs.pinned.odd.fg = c.colors.tabs.pinned.even.fg + +# Background color of pinned selected even tabs. +c.colors.tabs.pinned.selected.even.bg = bg0 + +# Foreground color of pinned selected even tabs. +c.colors.tabs.pinned.selected.even.fg = c.colors.tabs.selected.odd.fg + +# Background color of pinned selected odd tabs. +c.colors.tabs.pinned.selected.odd.bg = c.colors.tabs.pinned.selected.even.bg + +# Foreground color of pinned selected odd tabs. +c.colors.tabs.pinned.selected.odd.fg = c.colors.tabs.selected.odd.fg + +# Background color for webpages if unset (or empty to use the theme's +# color). +c.colors.webpage.bg = bg4 + diff --git a/user/.config/rofi/config.rasi b/user/.config/rofi/config.rasi deleted file mode 100644 index a4a28cbc8..000000000 --- a/user/.config/rofi/config.rasi +++ /dev/null @@ -1,104 +0,0 @@ -configuration{ - modi: "run,drun,window"; - lines: 10; - font: "mononoki Nerd Font 14"; - show-icons: true; - icon-theme: "gruvbox-dark-icons-gtk"; - terminal: "alacritty"; - drun-display-format: "{icon} {name}"; - location: 0; - disable-history: false; - hide-scrollbar: true; - display-drun: " 󰀻 Apps "; - display-run: "  Run "; - display-window: " 󰖯 Window "; - display-Network: " 󰤨 Network "; - sidebar-mode: true; - dpi: 100; -} - -@theme "gruvbox-dark" - -element-text, element-icon , mode-switcher { - background-color: inherit; - text-color: inherit; -} - -window { - height: 380; - width: 1000; - border: 3px; - border-color: @border-col; - background-color: @bg-col; -} - -mainbox { - background-color: @bg-col; -} - -inputbar { - children: [prompt,entry]; - background-color: @bg-col; - border-radius: 5px; - padding: 2px; -} - -prompt { - background-color: @red; - padding: 3px; - text-color: @bg-col; - border-radius: 3px; - margin: 20px 0px 0px 20px; -} - -textbox-prompt-colon { - expand: false; - str: ":"; -} - -entry { - padding: 6px; - margin: 20px 0px 0px 10px; - text-color: @fg-col; - background-color: @bg-col; -} - -listview { - border: 0px 0px 0px; - padding: 2px 2px 2px; - margin: 10px 20px 0px 20px; - columns: 1; - background-color: @bg-col; -} - -element { - padding: 5px; - background-color: @bg-col; - text-color: @grey; -} - -element-icon { - size: 28px; -} - -element selected { - background-color: @selected-col; - text-color: @fg-col2; -} - -mode-switcher { - spacing: 0; - } - -button { - padding: 10px; - background-color: @bg-col; - text-color: @inactive; - vertical-align: 0.5; - horizontal-align: 0.5; -} - -button selected { - background-color: @selected-col; - text-color: @red; -} diff --git a/user/.config/rofi/scripts/rofi_power b/user/.config/rofi/scripts/rofi_power deleted file mode 100755 index 3f5658903..000000000 --- a/user/.config/rofi/scripts/rofi_power +++ /dev/null @@ -1,68 +0,0 @@ -#!/usr/bin/env bash - -# ***This script was made by Clay Gomera (Drake)*** -# - Description: A simple power menu rofi script -# - Dependencies: rofi, power-profiles-daemon, swaylock -# - -## MENU PROMPT ## -menu="rofi -dmenu -i -p" - -## CURRENT WALLPAPER FOR LOCKSCREEN ## -currwall=$(tail --l 1 "$HOME/.wbg" | awk '{print $3}') - -## OPTIONS ## -option1=" Logout" -option2=" Reboot" -option3=" Power off" -option4="󰒲 Suspend" -option5=" Lock" -option6=" Change power profile" -option7=" Cancel" -options="$option1\n$option2\n$option3\n$option4\n$option5\n$option6\n$option7" - -## POWER PROFILE OPTIONS ## -pwr1="󰓅 Performance" -pwr2="󰾅 Balanced" -pwr3="󰾆 Power Saver" -pwr4=" Cancel" -pwrs="$pwr1\n$pwr2\n$pwr3\n$pwr4" - -## MAIN ACTION COMMAND ## -action=$(echo -e "$options" | $menu "  Power Options ") -case "$action" in - $option1) - pkill Hyprland;; - $option2) - systemctl reboot || loginctl reboot;; - $option3) - systemctl poweroff || loginctl poweroff;; - $option4) - swaylock -i "$currwall" & - sleep 0.1 - systemctl suspend;; - $option5) - swaylock -i "$currwall";; - $option6) - currentpwr=$(powerprofilesctl get) - if [ "$currentpwr" = "performance" ]; then - currentpwr="$pwr1" - elif [ "$currentpwr" = "balanced" ]; then - currentpwr="$pwr2" - elif [ "$currentpwr" = "power-saver" ]; then - currentpwr="$pwr3" - fi - pwraction=$(echo -e "$pwrs" | $menu "  Power Profile Menu - Currently set to: ${currentpwr} ") - case "$pwraction" in - $pwr1*) - powerprofilesctl set performance && notify-send "Power profile switched to performance";; - $pwr2*) - powerprofilesctl set balanced && notify-send "Power profile switched to balanced";; - $pwr3*) - powerprofilesctl set power-saver && notify-send "Power profile switched to power saver";; - $pwr4*) - exit 0 - esac;; - $option7) - exit 0 -esac diff --git a/user/.config/rofi/scripts/rofi_scrot b/user/.config/rofi/scripts/rofi_scrot deleted file mode 100755 index f57c257be..000000000 --- a/user/.config/rofi/scripts/rofi_scrot +++ /dev/null @@ -1,93 +0,0 @@ -#!/usr/bin/env bash - -# ***This script was made by Clay Gomera (Drake)*** -# - Description: A simple screenshot menu rofi script -# - Dependencies: rofi, grim, slurp, wf-recorder -# - -# screenshot directory -scrdir="$HOME/Pictures/Screenshots" -mkdir -p "$scrdir" -cd "$scrdir" || exit 1 -filename=$(date "+%d-%m-%Y_%H:%M:%S") - -# options array -option1=" Capture the screen" -option2=" Capture region" -option3="󰕧 Record the screen" -option4="󰕩 Record region" -option5="󰕧 Record the screen and audio" -option6="Exit" -options="$option1\n$option2\n$option3\n$option4\n$option5\n$option6" - -# countdown function -countdown() { - notify-send "Screenshot" "Executing in 3 seconds" -t 1000 - sleep 1 - notify-send "Screenshot" "Executing in 2 seconds" -t 1000 - sleep 1 - notify-send "Screenshot" "Executing in 1 seconds" -t 1000 - sleep 2 -} - -# show the help output with --help or -h arguments -if [[ $1 == '--help' ]] || [[ $1 = '-h' ]] - then - echo ### rofi-screenshot - echo USAGE: rofi-screenshot [OPTION] - echo \(no option\) - echo " show the screenshot menu" - echo -s, --stop - echo " stop recording" - echo -h, --help - echo " this screen" - exit 1 -fi - -# stop recording with -s or --stop arguments -if [[ $1 = '--stop' ]] || [[ $1 = '-s' ]] - then - killall -s SIGINT wf-recorder - exit 1 -fi - -# run the selected command -choice=$(echo -e "$options" | rofi -dmenu -p " 󰄀 Screenshot " ) -case $choice in - $option1) - countdown - grim "$filename.jpg" - notify-send "Screenshot" "Screenshot saved to $scrdir" - ;; - $option2) - notify-send "Screenshot" "Select a region to capture" - grim -g "$(slurp)" "$filename.jpg" - notify-send "Screenshot" "Region saved to $scrdir" - ;; - $option3) - countdown - wf-recorder --codec=h264_vaapi -d /dev/dri/renderD128 -f "$filename.mp4" - notify-send "Screenshot" "Recording saved to $scrdir" - ;; - $option4) - notify-send "Screenshot" "Select a region to record" - wf-recorder --codec=h264_vaapi -d /dev/dri/renderD128 -g "$(slurp)" -f "$filename.mp4" - notify-send "Screenshot" "Recording saved to $scrdir" - ;; - $option5) - devices=$(pactl list sources | grep "Name" | awk '{print $2}') - chosendevice=$(echo -e "$devices" | rofi -dmenu -p " Select audio input ") - if [ "$chosendevice" ]; then - device="$chosendevice" - countdown - wf-recorder --audio="$device" --codec=h264_vaapi -d /dev/dri/renderD128 -f "$filename.mp4" - else - notify-send "Please select an audio input device" - exit 1 - fi - notify-send "Screenshot" "Recording saved to $scrdir" - ;; - $option6) - exit 0 - ;; -esac diff --git a/user/.config/rofi/scripts/rofi_wall b/user/.config/rofi/scripts/rofi_wall deleted file mode 100755 index 2f4147398..000000000 --- a/user/.config/rofi/scripts/rofi_wall +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash - -# ***This script was made by Clay Gomera (Drake)*** -# - Description: A simple wallpaper changer script -# - Dependencies: rofi, fd, swaybg - -## MENU PROMPT ## -menu="rofi -dmenu -i -p" - -## WALLPAPER DIRECTORY ## -walldir="$HOME/Pictures/Wallpapers" # wallpapers folder, change it to yours - -## SELECT PICTURE ## -cd "$walldir" || exit 1 -wallpaper=$(fd -p "$walldir" | $menu " 󰋩 Wallpaper Selector ") -if [ "$wallpaper" ]; then - chosenwall=$wallpaper -else - exit 0 -fi - -swww img "$chosenwall" -echo -e "#!/bin/sh\nswww img $walldir/$chosenwall" > "$HOME/.wbg" -chmod +x "$HOME/.wbg" -exit 0 diff --git a/user/.config/rofi/scripts/rofi_wifi b/user/.config/rofi/scripts/rofi_wifi deleted file mode 100755 index 92eb351c7..000000000 --- a/user/.config/rofi/scripts/rofi_wifi +++ /dev/null @@ -1,99 +0,0 @@ -#!/usr/bin/env bash - -# ***This script was made by Clay Gomera (Drake)*** -# - Description: A simple wifi rofi script -# - Dependencies: rofi, NetworkManager, io.elementary.capnet-assist - -## MENU PROMPT ## -menu="rofi -dmenu -i -p" - -## MAIN OPTIONS ## -option1=" Turn on WiFi" -option2=" Turn off WiFi" -option3="󱛅 Disconnect WiFi" -option4="󱛃 Connect WiFi" -option5="󱛆 Setup captive portal" -option6=" Exit" -options="$option1\n$option2\n$option3\n$option4\n$option5\n$option6" - -## GRAB WIFI INTERFACE ## -wlan=$(nmcli dev | grep wifi | sed 's/ \{2,\}/|/g' | cut -d '|' -f1 | head -1) - -## TURN OFF WIFI FUNCTION ## -turnoff() { - nmcli radio wifi off - notify-send "WiFi has been turned off" -} - -## TURN ON WIFI FUNCTION ## -turnon() { - nmcli radio wifi on - notify-send "WiFi has been turned on" -} - -## DISCONNECT WIFI FUNCTION ## -disconnect() { - nmcli device disconnect "$wlan" - sleep 1 - constate=$(nmcli dev | grep wifi | sed 's/ \{2,\}/|/g' | cut -d '|' -f3 | head -1) - if [ "$constate" = "disconnected" ]; then - notify-send "WiFi has been disconnected" - fi -} - -## CONNECT FUNCTION ## -connect() { - notify-send "Scannig networks, please wait" - sleep 1 - bssid=$(nmcli device wifi list | sed -n '1!p' | cut -b 9- | $menu " Select a Wifi Network  " | cut -d' ' -f1) -} - -## SELECT PASSWORD FUNCTION ## -password() { - pass=$(echo " " | $menu " Enter Password  " -password) -} - -## MAIN CONNECTION COMMAND ## -action() { - nmcli device wifi connect "$bssid" password "$pass" || nmcli device wifi connect "$bssid" -} - -## CHECKING IF WIFI IS WORKING -check() { - notify-send "Checking if connection was successful" - sleep 1 - currentwfi=$(nmcli dev | grep wifi | sed 's/ \{2,\}/|/g' | cut -d '|' -f4 | head -1) - if ping -q -c 2 -W 2 google.com >/dev/null; then - notify-send "You are now connected to $currentwfi and internet is working properly" - else - notify-send "Your internet is not working :(" - fi -} - -## MAIN ACTION COMMANDS ## -cases=$(echo -e "$options" | $menu "  Wifi Settings " ) -if [ -n "$cases" ]; then - case "$cases" in - $option1) - turnon;; - $option2) - turnoff;; - $option3) - disconnect;; - $option4) - connect; - if [ -n "$bssid" ]; then - password; - action; - check; - else - exit 0; - fi;; - $option5) - io.elementary.capnet-assist;; - $option6) - exit 0; - esac -else - exit 0; -fi diff --git a/user/.config/rofi/themes/gruvbox-dark.rasi b/user/.config/rofi/themes/gruvbox-dark.rasi deleted file mode 100644 index 15ffb4d0b..000000000 --- a/user/.config/rofi/themes/gruvbox-dark.rasi +++ /dev/null @@ -1,16 +0,0 @@ -* { - bg-col: #1d2021; - bg-col-light: #282828; - border-col: #504945; - selected-col: #3c3836; - blue: #458588; - fg-col: #ebdbb2; - fg-col2: #ebdbb2; - grey: #928374; - width: 600; - selected: #ebdbb2; - red: #fb4934; - green: #98971a; - empty: #3c3836; - inactive: #928374; -} diff --git a/user/.config/tut/config.toml b/user/.config/tut/config.toml new file mode 100644 index 000000000..ead2516e6 --- /dev/null +++ b/user/.config/tut/config.toml @@ -0,0 +1,1284 @@ +# Configuration file for tut + +[general] +# What editor to use. TUT_USE_INTERNAL will use the editor that comes with tut. +# If you want you can set this to $EDITOR to use your environment variable or +# vim if you want to specify the program directly. +# default="TUT_USE_INTERNAL" +editor="~/.local/bin/lvim" + +# You need to press yes in a confirmation dialog before favoriting, boosting, +# etc. +# default=true +confirmation=true + +# Enable mouse support in tut. +# default=false +mouse-support=false + +# The date format to be used. See https://pkg.go.dev/time#pkg-constants +# default="2006-01-02 15:04" +date-format="2006-01-02 15:04" + +# Format for dates the same day. See date-format for more info. +# default="15:04" +date-tody-format="15:04" + +# This displays relative dates instead for statuses that are one day or older +# the output is 1y2m1d (1 year 2 months and 1 day) +# +# The value is an integer +# -1 = don't use relative dates +# 0 = always use relative dates, except for dates < 1 day +# 1 - ∞ = number of days to use relative dates +# +# Value: 28 will display a relative date for toots that are between 1-28 days +# old. Otherwise it will use the short or long format. +# default=-1 +date-relative=-1 + +# The max with of text before it wraps when displaying a toot. +# default=0 +max-width=0 + +# The placement of your panes. +# valid: left, right, top, bottom +# default="left" +list-placement="left" + +# How should panes be split? +# valid: row, column +# default="row" +list-split="row" + +# The proportion of panes vs. content. 1 on this and 3 on content below results +# in content taking up 3 times more space. +# default=1 +list-proportion=1 + +# See previous. +# default=2 +content-proportion=2 + +# Hide notifications of this type in your notification timelines. +# valid: mention, status, boost, follow, follow_request, favorite, poll, edit +# default=[] +notifications-to-hide=[] + +# Always include a quote of the message you're replying to. +# default=false +quote-reply=false + +# If you want to show icons in timelines. +# default=true +show-icons=true + +# If you only want to you the letter of keys instead of the full hint. +# default=false +short-hints=false + +# If you want to display the filter that filtered a toot. +# default=true +show-filter-phrase=true + +# Display a message in the commandbar on how to access the help text. +# default=true +show-help=true + +# Always jump to the newest post. May ruin your reading experience. +# default=false +stick-to-top=false + +# Display the username of the person being boosted instead of the person that +# boosted. +# default=false +show-boosted-user=false + +# Open a new pane when you run a command like :timeline home. +# default=true +commands-in-new-pane=true + +# Set a default name for the timeline if the name is empty. So if you run :tag +# linux the title of the pane will be set to #linux +# default=true +dynamic-timeline-name=true + +# 0 = No terminal title +# 1 = Show title in terminal and top bar +# 2 = Only show terminal title, and no top bar in tut +# 3 = No terminal title and no top bar in tut. +# valid: 0, 1, 2, 3 +# default=0 +terminal-title=0 + +# If you don't want the whole UI to update, and only update the text content you +# can disable this. This will lead to some artifacts being left on the screen +# when emojis are present. +# default=true +redraw-ui=true + +# The leader is used as a shortcut to run commands as you can do in Vim. By +# default this is disabled and you enable it by setting a key here. It can only +# consist of one char, so set it to something like a comma. +# default="" +leader-key="" + +# Number of milliseconds before the leader command resets. So if you tap the +# leader-key by mistake or are to slow it empties all the input after X +# milliseconds. +# default=1000 +leader-timeout=1000 + +# [[general.timelines]] +# Timelines adds panes of feeds. You can customize the number of feeds, what +# they should show and the key to activate them. + +# --- START OF EXAMPLE --- +# [[general.timelines]] +# name="home" +# type="home" +# hide-boosts=false +# hide-replies=false +# +# [[general.timelines]] +# name="Notifications" +# type="notifications" +# keys=["n", "N"] +# closed=true +# on-creation-closed="new-pane" +# on-focus="focus-self" +# --- END OF EXAMPLE --- + +# The name to display above the timeline +# default="" +# name="" + +# The type of the timeline +# valid: home, direct, local, federated, bookmarks, saved, favorited, notifications, +# lists, mentions, tag +# default="" +# type="" + +# Used for the tag type, so here you set the tag. If you have multiple you +# separate them with a space. +# default="" +# data="" + +# A list of keys to give this timeline focus. See under the input section to +# learn more about keys. +# default=[] +# keys=[] + +# A list of special-keys to give this timeline focus. See under the input +# section to learn more about special-keys. +# default=[] +# special-keys=[] + +# A shortcut to give this timeline focus with your leader-key + this shortcut. +# default="" +# shortcut="" + +# Hide boosts in this timeline. +# default="false" +# hide-boosts="false" + +# Hide replies in this timeline. +# default="false" +# hide-replies="false" + +# Don't open this timeline when you start tut. Use your keys or shortcut to open +# it. +# default="false" +# closed="false" + +# Don't open this timeline when you start tut. Use your keys or shortcut to open +# it. +# valid: new-pane, current-pane +# default="new-pane" +# on-creation-closed="new-pane" + +# Don't open this timeline when you start tut. Use your keys or shortcut to open +# it. +# valid: focus-pane, focus-self +# default="focus-pane" +# on-focus="focus-pane" + +# [[general.leader-actions]] +# You set actions leader-key with one or more leader-actions. +# +# The shortcuts are up to you, but keep them quite short and make sure they +# don't collide. If you have one shortcut that is "f" and an other one that is +# "fav", the one with "f" will always run and "fav" will never run. +# +# Some special actions that requires data to be set: +# pane is special as it's a shortcut for switching between the panes you've set +# under general and they are zero indexed. pane 0 = your first timeline, pane 1 +# = your second and so on. +# list-placement as it takes the argument top, right, bottom or left +# list-split as it takes the argument column or row +# proportions takes the arguments [int] [int], where the first integer is the +# list and the other content, e.g. proportions 1 3. See list-proportion above +# for more information. + +# --- START OF EXAMPLE --- +# [[general.leader-actions]] +# type="close-pane" +# shortcut="q" +# +# [[general.leader-actions]] +# type="list-split" +# data="row" +# shortcut="r" +# +# [[general.leader-actions]] +# type="list-split" +# data="column" +# shortcut="c" +# --- END OF EXAMPLE --- + +# The action you want to run. +# valid: blocking, boosts, clear-notifications, close-pane, compose, edit, favorited, +# favorites, followers, following, history, list-placement, list-split, lists, +# move-pane-left, move-pane-right, move-pane-up, move-pane-down, move-pane-home, +# move-pane-end, muting, newer, pane, preferences, profile, proportions, +# refetch, stick-to-top, tags +# default="" +# type="" + +# Data to pass to the action. +# default="" +# data="" + +# A shortcut to run this action with your leader-key + this shortcut. +# default="" +# shortcut="" + +[media] +# Media files will be removed directly after they've been opened. Some programs +# doesn't like this, so if your media doesn't open, try set this to false. Tut +# will remove all files once you close the program. +# default=true +delete-temp-files=true + +[media.image] +# The program to open images. TUT_OS_DEFAULT equals xdg-open on Linux, open on +# MacOS and start on Windows. +# default="TUT_OS_DEFAULT" +program="nsxiv" + +# Arguments to pass to the program. +# default="" +args="" + +# If the program runs in the terminal set this to true. +# default=false +terminal=false + +# If the program should be called multiple times when there is multiple files. +# If set to false all files will be passed as an argument, but not all programs +# support this. +# default=true +single=true + +# If the files should be passed in reverse order. This will make some programs +# display the files in the correct order. +# default=false +reverse=false + +[media.video] +# The program to open videos. TUT_OS_DEFAULT equals xdg-open on Linux, open on +# MacOS and start on Windows. +# default="TUT_OS_DEFAULT" +program="mpv" + +# Arguments to pass to the program. +# default="" +args="" + +# If the program runs in the terminal set this to true. +# default=false +terminal=false + +# If the program should be called multiple times when there is multiple files. +# If set to false all files will be passed as an argument, but not all programs +# support this. +# default=true +single=true + +# If the files should be passed in reverse order. This will make some programs +# display the files in the correct order. +# default=false +reverse=false + +[media.audio] +# The program to open audio. TUT_OS_DEFAULT equals xdg-open on Linux, open on +# MacOS and start on Windows. +# default="TUT_OS_DEFAULT" +program="TUT_OS_DEFAULT" + +# Arguments to pass to the program. +# default="" +args="" + +# If the program runs in the terminal set this to true. +# default=false +terminal=false + +# If the program should be called multiple times when there is multiple files. +# If set to false all files will be passed as an argument, but not all programs +# support this. +# default=true +single=true + +# If the files should be passed in reverse order. This will make some programs +# display the files in the correct order. +# default=false +reverse=false + +[media.link] +# The program to open links. TUT_OS_DEFAULT equals xdg-open on Linux, open on +# MacOS and start on Windows. +# default="TUT_OS_DEFAULT" +program="TUT_OS_DEFAULT" + +# Arguments to pass to the program. +# default="" +args="" + +# If the program runs in the terminal set this to true. +# default=false +terminal=false + +[desktop-notification] +# Enable notifications when someone follows you. +# default=false +followers=false + +# Enable notifications when one of your toots gets favorited. +# default=false +favorite=false + +# Enable notifications when someone mentions you. +# default=false +mention=false + +# Enable notifications when a post you have interacted with gets edited. +# default=false +update=false + +# Enable notifications when one of your toots gets boosted. +# default=false +boost=false + +# Enable notifications when a poll ends. +# default=false +poll=false + +# Enable notifications for new posts. +# default=false +posts=false + +[open-custom] +# --- START OF EXAMPLE --- +# [[open-custom.programs]] +# program = 'chromium' +# terminal = false +# hint = "[C]hrome" +# keys = ["c", "C"] +# +# [[open-custom.programs]] +# program = 'imv' +# terminal = false +# hint = "[I]mv" +# keys = ["i", "I"]" +# --- END OF EXAMPLE --- + +# [[open-custom.programs]] +# The program to open the file with. +# default="" +# program="" + +# Arguments to pass to the program. +# default="" +# args="" + +# If the program runs in the terminal set this to true. +# default=false +# terminal=false + +# What should the key hint in tut be for this program. See under the input +# section to learn more about hint. +# default="" +# hint="" + +# A list of keys to to open files with this program. See under the input section +# to learn more about keys. +# default=[] +# keys=[] + +# A list of special-keys to open files with this program. See under the input +# section to learn more about special-keys. +# default=[] +# special-keys=[] + +[open-pattern] +# [[open-pattern.programs]] +# Here you can set your own glob patterns for opening matching URLs in the +# program you want them to open up in. You could for example open Youtube videos +# in your video player instead of your default browser. To see the syntax for +# glob pattern you can follow this URL https://github.com/gobwas/glob#syntax. +# default="" +# matching="" + +# The program to open the file with. +# default="" +# program="" + +# Arguments to pass to the program. +# default="" +# args="" + +# If the program runs in the terminal set this to true. +# default=false +# terminal=false + +[style] +# All styles can be represented in their HEX value like #ffffff or with their +# name, so in this case white. The only special value is "default" which equals +# to transparent, so it will be the same color as your terminal. +# You can also use xrdb colors like this xrdb:color1 The program will use colors +# prefixed with an * first then look for URxvt or XTerm if it can't find any +# color prefixed with an asterisk. If you don't want tut to guess the prefix you +# can set the prefix yourself. If the xrdb color can't be found a preset color +# will be used. You'll have to set theme="none" for this to work. + +# The theme to use. You can use some themes that comes bundled with tut. Check +# out the themes available on the URL below. If a theme is named nord.toml you +# just write theme="nord". +# +# https://github.com/RasmusLindroth/tut/tree/master/config/themes +# +# You can also create a theme file in your config directory e.g. +# ~/.config/tut/themes/foo.toml and then set theme=foo. +# +# If you want to use your own theme but don't want to create a new file, set +# theme="none" and then you can create your own theme below. +# +# default="default" +theme="none" + +# The xrdb prefix used for colors in .Xresources. +# default="guess" +xrdb-prefix="guess" + +# The background color used on most elements. +# default="" +background="" + +# The text color used on most of the text. +# default="" +text="" + +# The color to display subtle elements or subtle text. Like lines and help text. +# default="" +subtle="" + +# The color for errors or warnings +# default="" +warning-text="" + +# This color is used to display username. +# default="" +text-special-one="" + +# This color is used to display username and key hints. +# default="" +text-special-two="" + +# The color of the bar at the top +# default="" +top-bar-background="" + +# The color of the text in the bar at the top. +# default="" +top-bar-text="" + +# The color of the bar at the bottom +# default="" +status-bar-background="" + +# The color of the text in the bar at the bottom. +# default="" +status-bar-text="" + +# The color of the bar at the bottom in view mode. +# default="" +status-bar-view-background="" + +# The color of the text in the bar at the bottom in view mode. +# default="" +status-bar-view-text="" + +# The color of the text in the command bar at the bottom. +# default="" +command-text="" + +# Background of selected list items. +# default="" +list-selected-background="" + +# The text color of selected list items. +# default="" +list-selected-text="" + +# The background color of selected list items that are out of focus. +# default="" +list-selected-inactive-background="" + +# The text color of selected list items that are out of focus. +# default="" +list-selected-inactive-text="" + +# The main color of the text for key hints +# default="" +controls-text="" + +# The highlight color of for key hints +# default="" +controls-highlight="" + +# The background color in drop-downs and autocompletions +# default="" +autocomplete-background="" + +# The text color in drop-downs at autocompletions +# default="" +autocomplete-text="" + +# The background color for selected value in drop-downs and autocompletions +# default="" +autocomplete-selected-background="" + +# The text color for selected value in drop-downs and autocompletions +# default="" +autocomplete-selected-text="" + +# The background color on selected button and the text color of unselected +# buttons +# default="" +button-color-one="" + +# The text color on selected button and the background color of unselected +# buttons +# default="" +button-color-two="" + +# The background on named timelines. +# default="" +timeline-name-background="" + +# The text color on named timelines +# default="" +timeline-name-text="" + +[input] +# In this section you set the keys to be used in tut. +# +# The hint option lets you set which part of the hint that will be highlighted +# in tut. E.g. [F]avorite results in a highlighted F and the rest of the text is +# displayed normally. +# Some of the options can be in two states, like favorites, so there you can set +# the hint-alt option to something like Un[F]avorite. +# +# Examples: +# "[D]elete" = Delete with a highlighted D +# "Un[F]ollow" = UnFollow with a highlighted F +# "[Enter]" = Enter where everything is highlighted +# "Yan[K]" = YanK with a highlighted K +# +# The keys option lets you define what key that should be pressed. This is +# limited to on character only and they are case sensitive. +# Example: +# keys=["j","J"] +# +# You can also set special-keys and they're for keys like Escape and Enter. To +# find the names of special keys you have to go to the following site and look +# for "var KeyNames = map[Key]string{" +# +# https://github.com/gdamore/tcell/blob/master/key.go + +[input.global-down] +# Keys for moving down + +# default=["j", "J"] +keys=["j","J"] + +# default=["Down"] +special-keys=["Down"] + +[input.global-up] +# Keys for moving down + +# default=["k", "K"] +keys=["k","K"] + +# default=["Up"] +special-keys=["Up"] + +[input.global-enter] +# To select items + +# default=["Enter"] +special-keys=["Enter"] + +[input.global-back] +# To go back + +# default="[Esc]" +hint="[Esc]" + +# default=["Esc"] +special-keys=["Esc"] + +[input.global-exit] +# To go back or exit + +# default="[Q]uit" +hint="[Q]uit" + +# default=["q", "Q"] +keys=["q","Q"] + +[input.main-home] +# Move to the top + +# default=["g"] +keys=["g"] + +# default=["Home"] +special-keys=["Home"] + +[input.main-end] +# Move to the bottom + +# default=["G"] +keys=["G"] + +# default=["End"] +special-keys=["End"] + +[input.main-prev-feed] +# Go to previous feed + +# default=["h", "H"] +keys=["h","H"] + +# default=["Left"] +special-keys=["Left"] + +[input.main-next-feed] +# Go to next feed + +# default=["l", "L"] +keys=["l","L"] + +# default=["Right"] +special-keys=["Right"] + +[input.main-prev-pane] +# Focus on the previous feed pane + +# default=["Backtab"] +special-keys=["Backtab"] + +[input.main-next-pane] +# Focus on the next feed pane + +# default=["Tab"] +special-keys=["Tab"] + +[input.main-next-account] +# Focus on the next account + +# default=["Ctrl-N"] +special-keys=["Ctrl-N"] + +[input.main-prev-account] +# Focus on the previous account + +# default=["Ctrl-P"] +special-keys=["Ctrl-P"] + +[input.main-compose] +# Compose a new toot + +# default=["c", "C"] +keys=["c","C"] + +[input.status-avatar] +# Open avatar + +# default="[A]vatar" +hint="[A]vatar" + +# default=["a", "A"] +keys=["a","A"] + +[input.status-boost] +# Boost a toot + +# default="[B]oost" +hint="[B]oost" + +# default=["b", "B"] +keys=["b","B"] + +[input.status-edit] +# Edit a toot + +# default="[E]dit" +hint="[E]dit" + +# default=["e", "E"] +keys=["e","E"] + +[input.status-delete] +# Delete a toot + +# default="[D]elete" +hint="[D]elete" + +# default=["d", "D"] +keys=["d","D"] + +[input.status-favorite] +# Favorite a toot + +# default="[F]avorite" +hint="[F]avorite" + +# default=["f", "F"] +keys=["f","F"] + +[input.status-media] +# Open toots media files + +# default="[M]edia" +hint="[M]edia" + +# default=["m", "M"] +keys=["m","M"] + +[input.status-links] +# Open links + +# default="[O]pen" +hint="[O]pen" + +# default=["o", "O"] +keys=["o","O"] + +[input.status-poll] +# Open poll + +# default="[P]oll" +hint="[P]oll" + +# default=["p", "P"] +keys=["p","P"] + +[input.status-reply] +# Reply to toot + +# default="[R]eply" +hint="[R]eply" + +# default=["r", "R"] +keys=["r","R"] + +[input.status-bookmark] +# Save/bookmark a toot + +# default="[S]ave" +hint="[S]ave" + +# default="Un[S]ave" +hint-alt="Un[S]ave" + +# default=["s", "S"] +keys=["s","S"] + +[input.status-thread] +# View thread + +# default="[T]hread" +hint="[T]hread" + +# default=["t", "T"] +keys=["t","T"] + +[input.status-user] +# Open user profile + +# default="[U]ser" +hint="[U]ser" + +# default=["u", "U"] +keys=["u","U"] + +[input.status-view-focus] +# Open the view mode + +# default="[V]iew" +hint="[V]iew" + +# default=["v", "V"] +keys=["v","V"] + +[input.status-yank] +# Yank the url of the toot + +# default="[Y]ank" +hint="[Y]ank" + +# default=["y", "Y"] +keys=["y","Y"] + +[input.status-toggle-cw] +# Show the content in a content warning + +# default="Press [Z] to toggle cw" +hint="Press [Z] to toggle cw" + +# default=["z", "Z"] +keys=["z","Z"] + +[input.status-show-filtered] +# Show the content of a filtered toot + +# default="Press [Z] to view filtered toot" +hint="Press [Z] to view filtered toot" + +# default=["z", "Z"] +keys=["z","Z"] + +[input.user-avatar] +# View avatar + +# default="[A]vatar" +hint="[A]vatar" + +# default=["a", "A"] +keys=["a","A"] + +[input.user-block] +# Block the user + +# default="[B]lock" +hint="[B]lock" + +# default="Un[B]lock" +hint-alt="Un[B]lock" + +# default=["b", "B"] +keys=["b","B"] + +[input.user-follow] +# Follow user + +# default="[F]ollow" +hint="[F]ollow" + +# default="Un[F]ollow" +hint-alt="Un[F]ollow" + +# default=["f", "F"] +keys=["f","F"] + +[input.user-follow-request-decide] +# Follow user + +# default="Follow [R]equest" +hint="Follow [R]equest" + +# default="Follow [R]equest" +hint-alt="Follow [R]equest" + +# default=["r", "R"] +keys=["r","R"] + +[input.user-mute] +# Mute user + +# default="[M]ute" +hint="[M]ute" + +# default="Un[M]ute" +hint-alt="Un[M]ute" + +# default=["m", "M"] +keys=["m","M"] + +[input.user-links] +# Open links + +# default="[O]pen" +hint="[O]pen" + +# default=["o", "O"] +keys=["o","O"] + +[input.user-user] +# View user profile + +# default="[U]ser" +hint="[U]ser" + +# default=["u", "U"] +keys=["u","U"] + +[input.user-view-focus] +# Open view mode + +# default="[V]iew" +hint="[V]iew" + +# default=["v", "V"] +keys=["v","V"] + +[input.user-yank] +# Yank the user URL + +# default="[Y]ank" +hint="[Y]ank" + +# default=["y", "Y"] +keys=["y","Y"] + +[input.list-open-feed] +# Open list + +# default="[O]pen" +hint="[O]pen" + +# default=["o", "O"] +keys=["o","O"] + +[input.list-user-list] +# List all users in a list + +# default="[U]sers" +hint="[U]sers" + +# default=["u", "U"] +keys=["u","U"] + +[input.list-user-add] +# Add user to list + +# default="[A]dd" +hint="[A]dd" + +# default=["a", "A"] +keys=["a","A"] + +[input.list-user-delete] +# Delete user from list + +# default="[D]elete" +hint="[D]elete" + +# default=["d", "D"] +keys=["d","D"] + +[input.link-open] +# Open URL + +# default="[O]pen" +hint="[O]pen" + +# default=["o", "O"] +keys=["o","O"] + +[input.link-yank] +# Yank the URL + +# default="[Y]ank" +hint="[Y]ank" + +# default=["y", "Y"] +keys=["y","Y"] + +[input.tag-open-feed] +# Open tag feed + +# default="[O]pen" +hint="[O]pen" + +# default=["o", "O"] +keys=["o","O"] + +[input.tag-follow] +# Toggle follow on tag + +# default="[F]ollow" +hint="[F]ollow" + +# default="Un[F]ollow" +hint-alt="Un[F]ollow" + +# default=["f", "F"] +keys=["f","F"] + +[input.compose-edit-cw] +# Edit content warning text on new toot + +# default="[C]W text" +hint="[C]W text" + +# default=["c", "C"] +keys=["c","C"] + +[input.compose-edit-text] +# Edit the text on new toot + +# default="[E]dit text" +hint="[E]dit text" + +# default=["e", "E"] +keys=["e","E"] + +[input.compose-include-quote] +# Include a quote when replying + +# default="[I]nclude quote" +hint="[I]nclude quote" + +# default=["i", "I"] +keys=["i","I"] + +[input.compose-media-focus] +# Focus on adding media to toot + +# default="[M]edia" +hint="[M]edia" + +# default=["m", "M"] +keys=["m","M"] + +[input.compose-post] +# Post the new toot + +# default="[P]ost" +hint="[P]ost" + +# default=["p", "P"] +keys=["p","P"] + +[input.compose-toggle-content-warning] +# Toggle content warning on toot + +# default="[T]oggle CW" +hint="[T]oggle CW" + +# default=["t", "T"] +keys=["t","T"] + +[input.compose-visibility] +# Edit the visibility on new toot + +# default="[V]isibility" +hint="[V]isibility" + +# default=["v", "V"] +keys=["v","V"] + +[input.compose-language] +# Edit the language of a toot + +# default="[L]ang" +hint="[L]ang" + +# default=["l", "L"] +keys=["l","L"] + +[input.compose-poll] +# Switch to creating a poll + +# default="P[O]ll" +hint="P[O]ll" + +# default=["o", "O"] +keys=["o","O"] + +[input.media-delete] +# Delete media file + +# default="[D]elete" +hint="[D]elete" + +# default=["d", "D"] +keys=["d","D"] + +[input.media-edit-desc] +# Edit the description on media file + +# default="[E]dit desc" +hint="[E]dit desc" + +# default=["e", "E"] +keys=["e","E"] + +[input.media-add] +# Add a new media file + +# default="[A]dd" +hint="[A]dd" + +# default=["a", "A"] +keys=["a","A"] + +[input.vote-vote] +# Vote on poll + +# default="[V]ote" +hint="[V]ote" + +# default=["v", "V"] +keys=["v","V"] + +[input.vote-select] +# Select item to vote on + +# default="[Enter] to select" +hint="[Enter] to select" + +# default=["Enter"] +special-keys=["Enter"] + +[input.poll-add] +# Add a new poll option + +# default="[A]dd" +hint="[A]dd" + +# default=["a", "A"] +keys=["a","A"] + +[input.poll-edit] +# Edit a poll option + +# default="[E]dit" +hint="[E]dit" + +# default=["e", "E"] +keys=["e","E"] + +[input.poll-delete] +# Delete a poll option + +# default="[D]elete" +hint="[D]elete" + +# default=["d", "D"] +keys=["d","D"] + +[input.poll-multi-toggle] +# Toggle voting on multiple options + +# default="Toggle [M]ultiple" +hint="Toggle [M]ultiple" + +# default=["m", "M"] +keys=["m","M"] + +[input.poll-expiration] +# Change the expiration of poll + +# default="E[X]pires" +hint="E[X]pires" + +# default=["x", "X"] +keys=["x","X"] + +[input.preference-name] +# Change display name + +# default="[N]ame" +hint="[N]ame" + +# default=["n", "N"] +keys=["n","N"] + +[input.preference-visibility] +# Change default visibility of toots + +# default="[V]isibility" +hint="[V]isibility" + +# default=["v", "V"] +keys=["v","V"] + +[input.preference-bio] +# Change bio in profile + +# default="[B]io" +hint="[B]io" + +# default=["b", "B"] +keys=["b","B"] + +[input.preference-save] +# Save your preferences + +# default="[S]ave" +hint="[S]ave" + +# default=["s", "S"] +keys=["s","S"] + +[input.preference-fields] +# Edit profile fields + +# default="[F]ields" +hint="[F]ields" + +# default=["f", "F"] +keys=["f","F"] + +[input.preference-fields-add] +# Add new field + +# default="[A]dd" +hint="[A]dd" + +# default=["a", "A"] +keys=["a","A"] + +[input.preference-fields-edit] +# Edit current field + +# default="[E]dit" +hint="[E]dit" + +# default=["e", "E"] +keys=["e","E"] + +[input.preference-fields-delete] +# Delete current field + +# default="[D]elete" +hint="[D]elete" + +# default=["d", "D"] +keys=["d","D"] + +[input.editor-exit] +# Exit the editor + +# default="[Esc] when done" +hint="[Esc] when done" + +# default=["Esc"] +special-keys=["Esc"] + diff --git a/user/.config/waybar/config b/user/.config/waybar/config index 843c27697..739c0b2df 100644 --- a/user/.config/waybar/config +++ b/user/.config/waybar/config @@ -5,30 +5,40 @@ "layer": "top", // Choose the order of the modules - "modules-left": ["wlr/workspaces"], + "modules-left": ["hyprland/workspaces"], // "modules-center": ["clock"], "modules-right": ["idle_inhibitor", "hyprland/language", "pulseaudio", "backlight", "battery", "custom/powerprofiles", "network", "clock"], - "wlr/workspaces": { + "hyprland/workspaces": { "on-click": "activate", "sort-by-number": true, "on-scroll-up": "hyprctl dispatch workspace e+1", "on-scroll-down": "hyprctl dispatch workspace e-1", - "format": "{icon}", + "format": "{icon}", "format-icons": { - "1": "\uf269", - "2": "\uf07b", - "3": "\ue632", - "4": "\uf075", - "5": "\uf001", - "6": "\uf03d", - "7": "\ue22b", - "8": "\uf15c", - "9": "\udb80\ude96", - "10": "\ue20f", - "urgent": "\uf12a", - "focused": "\uf192", - "default": "\uf10c" + "1": "\ue7c5", + "2": "\uf188", + "3": "\uf07c", + "4": "\uf0ac", + "5": "\udb82\udf79", + "6": "\uf01c", + "7": "\udb84\udc02", + "8": "\udb82\uded1", + "9": "\udb81\udf5a", + "10": "\uf03d", + "11": "\udb80\udfd8", + "12": "\udb80\ude19", + "13": "\uf02d", + "14": "\udb80\ude96", + "15": "\udb80\udf0b", + "16": "\udb86\udc6b", + "17": "\udb81\ude91", + "18": "\ue638", + "19": "\udb80\ude9a", + "20": "\udb84\udc64", + "urgent": "\uf12a", + "focused": "\uf192", + "default": "\uf444" } }, diff --git a/user/.config/wofi/config b/user/.config/wofi/config new file mode 100644 index 000000000..cbb3e7370 --- /dev/null +++ b/user/.config/wofi/config @@ -0,0 +1,9 @@ +style=/home/drk/.config/wofi/style.css +show=drun +width=960 +height=320 +always_parse_args=true +show_all=true +print_command=true +layer=overlay +prompt= diff --git a/user/.config/wofi/style.css b/user/.config/wofi/style.css new file mode 100644 index 000000000..4de8b7ed8 --- /dev/null +++ b/user/.config/wofi/style.css @@ -0,0 +1,56 @@ +window { +margin: 5px; +border: 2px solid #cc241d; +/* border-radius: 15px; */ +background-color: #282828; +font-family: mononoki Nerd Font; +font-size: 16px; +} + +#input { +margin: 10px; +margin-bottom: 1px; +border: 5px solid #3c3836; +color: #ebdbb2; +background-color: #3c3836; +} + +#input > image.left { + -gtk-icon-transform:scaleX(0); +} + +#inner-box { +margin: 15px; +margin-top: 15px; +border: none; +background-color: #282828; +} + +#outer-box { +margin: 10px; +border: none; +background-color: #282828; +} + +#scroll { +margin: 0px; +border: none; +} + +#text { +margin: 5px; +border: none; +color: #ebdbb2; +} + +#entry:selected { + background-color: #cc241d; + color: #3c3836; + font-weight: normal; +} + +#text:selected { + background-color: #cc241d; + color: #fbf1c7; + font-weight: bold; +} diff --git a/user/.config/rofi/scripts/rofi_blue b/user/.local/bin/rs_blue similarity index 97% rename from user/.config/rofi/scripts/rofi_blue rename to user/.local/bin/rs_blue index 7285efe67..e7d10165d 100755 --- a/user/.config/rofi/scripts/rofi_blue +++ b/user/.local/bin/rs_blue @@ -232,7 +232,7 @@ device_menu() { 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")" + chosen="$(echo -e "$options" | $RUNNER -i -L 8 -p "$device_name")" # Match chosen option to command case "$chosen" in @@ -277,7 +277,7 @@ show_menu() { fi # Open rofi menu, read chosen option - chosen="$(echo -e "$options" | $rofi_command "  Bluetooth ")" + chosen="$(echo -e "$options" | $RUNNER -i -L 10 -p " Bluetooth")" # Match chosen option to command case "$chosen" in @@ -304,9 +304,6 @@ show_menu() { esac } -# Rofi command to pipe into, can add any options here -rofi_command="rofi -dmenu $* -p" - case "$1" in --status) print_status diff --git a/user/.config/rofi/scripts/rofi_emoji b/user/.local/bin/rs_emoji similarity index 99% rename from user/.config/rofi/scripts/rofi_emoji rename to user/.local/bin/rs_emoji index e90268c05..32784acc0 100755 --- a/user/.config/rofi/scripts/rofi_emoji +++ b/user/.local/bin/rs_emoji @@ -2,9 +2,9 @@ wtype 0 if [ $? -eq 0 ] then - sed '1,/^### DATA ###$/d' $0 | rofi -dmenu -i -p " 󰙃 Select Emoji " | cut -d ' ' -f 1 | tr -d '\n' | wtype - + sed '1,/^### DATA ###$/d' $0 | $RUNNER -i -p " 󰙃 Select Emoji " | cut -d ' ' -f 1 | tr -d '\n' | wtype - else - sed '1,/^### DATA ###$/d' $0 | rofi -dmenu -i -p " 󰙃 Select Emoji " | cut -d ' ' -f 1 | tr -d '\n' | wl-copy + sed '1,/^### DATA ###$/d' $0 | $RUNNER -i -p " 󰙃 Select Emoji " | cut -d ' ' -f 1 | tr -d '\n' | wl-copy fi exit ### DATA ### diff --git a/user/.config/rofi/scripts/rofi_mount b/user/.local/bin/rs_mount similarity index 88% rename from user/.config/rofi/scripts/rofi_mount rename to user/.local/bin/rs_mount index 3f2bd2258..7fc48eb36 100755 --- a/user/.config/rofi/scripts/rofi_mount +++ b/user/.local/bin/rs_mount @@ -2,8 +2,8 @@ # List of available drives devices=$(lsblk -lpo "name,size,type,mountpoint" --noheadings | grep -v -e "disk" -e "lvm" -e "nvme" | awk '{if ($4=="") {print $1, "(" $2 ")", "[unmounted]"} else {print $1, "(" $2 ")", "[" $4 "]"}}') -# Rofi menu -selected_device=$(echo -e "${devices}" | rofi -dmenu -i -p "Drive manager" | awk '{print $1}') +# menu +selected_device=$(echo -e "${devices}" | $RUNNER -i -p "Drive manager" | awk '{print $1}') # Verify if the drive is mounted if [ -n "$selected_device" ]; then @@ -24,7 +24,7 @@ if [ -n "$selected_device" ]; then # If it's not mounted, check if it's an encrypted drive if [ "$(lsblk -n -o FSTYPE "${selected_device}")" == "crypto_LUKS" ]; then # If it's an encrypted drive, prompt for the passphrase and mount it - passphrase=$(rofi -dmenu -p "Enter passphrase for ${selected_device}" -password) + passphrase=$($RUNNER -p "Enter passphrase for ${selected_device}" --password) if [ -n "$passphrase" ]; then echo "$passphrase" | pkexec cryptsetup open "${selected_device}" encrypted_"${selected_device##*/}" udisksctl mount -b /dev/mapper/encrypted_"${selected_device##*/}" diff --git a/user/.local/bin/rs_power b/user/.local/bin/rs_power new file mode 100755 index 000000000..c68a38a7e --- /dev/null +++ b/user/.local/bin/rs_power @@ -0,0 +1,103 @@ +#!/usr/bin/env bash + +# ***This script was made by Clay Gomera (Drake)*** +# - Description: A simple power menu script for rofi/dmenu/wofi +# - Dependencies: {rofi||dmenu||wofi}, power-profiles-daemon, swaylock +# + +####################### +## Main manu options ## +####################### +option1=" Logout" +option2=" Reboot" +option3=" Power off" +option4="󰒲 Suspend" +option5=" Lock" +option6=" Change power profile" +option7=" Exit" +options="$option1\n$option2\n$option3\n$option4\n$option5\n$option6\n$option7" + +#################################### +## Power profiles submenu options ## +#################################### +pwr1="󰓅 Performance" +pwr2="󰾅 Balanced" +pwr3="󰾆 Power Saver" +pwr4=" Cancel" +pwrs="$pwr1\n$pwr2\n$pwr3\n$pwr4" + +##### +## This variable will store the current wallpaper +##### +currwall=$(swww query | awk '{print $8}') + +##### +## This variable will store the current power profile +##### +currentpwr=$(powerprofilesctl get) + +########## +## main ## +########## +action=$(echo -e "$options" | $RUNNER -i -L 9 -p " Power Options") # main menu prompt +case "$action" in + "$option1") + pkill Hyprland; + ;; + "$option2") + systemctl reboot; + ;; + "$option3") + systemctl poweroff; + ;; + "$option4") + swaylock -i "$currwall" & + sleep 0.1; + systemctl suspend; + ;; + "$option5") + swaylock -i "$currwall"; + ;; + "$option6") + ##### + ## These conditions will be used for the prompt + ##### + if [ "$currentpwr" = "performance" ]; then + currentpwr="$pwr1"; + elif [ "$currentpwr" = "balanced" ]; then + currentpwr="$pwr2"; + elif [ "$currentpwr" = "power-saver" ]; then + currentpwr="$pwr3"; + fi + pwraction=$(echo -e "$pwrs" | $RUNNER -L 6 -i -p " Power Profile Menu - Currently set to: $currentpwr") # power profiles submenu prompt + case "$pwraction" in + "$pwr1") + if [ "$currentpwr" = "$pwr1" ]; then # if the power profile is already set to performance + notify-send "The power profile is already set to performance"; + exit 1; + else + powerprofilesctl set performance && notify-send "Power profile switched to performance"; # if not, set the powerprofile to performance + fi + ;; + "$pwr2") + if [ "$currentpwr" = "$pwr2" ]; then # if the power profile is already set to balanced + notify-send "The power profile is already set to balanced"; + exit 1; + else + powerprofilesctl set balanced && notify-send "Power profile switched to balanced"; # if not, set the powerprofile to balanced + fi + ;; + "$pwr3") + if [ "$currentpwr" = "$pwr3" ]; then # if the power profile is already set to power saver + notify-send "The power profile is already set to power saver"; + exit 1; + else + powerprofilesctl set power-saver && notify-send "Power profile switched to power saver"; # if not, set the powerprofile to power saver + fi + ;; + "$pwr4") + exit 0; + esac;; + "$option7") + exit 0; +esac diff --git a/user/.local/bin/rs_scrot b/user/.local/bin/rs_scrot new file mode 100755 index 000000000..1938401bf --- /dev/null +++ b/user/.local/bin/rs_scrot @@ -0,0 +1,331 @@ +#!/usr/bin/env bash + +# ***This script was made by Clay Gomera (Drake)*** +# - Description: A simple screenshot menu script for rofi/dmenu/wofi +# - Dependencies: {rofi||dmenu||wofi}, wayshot, slurp, wf-recorder + +########################### +## Screenshots Directory ## +########################### +SHOTDIR="$MEDIA_DIR/Pictures/Screenshots" # $MEDIA_DIR reffers to a global variable in .xinitrc/.bash_profile +VCAPDIR="$MEDIA_DIR/Videos/Screencasts" # $MEDIA_DIR reffers to a global variable in .xinitrc/.bash_profile +[ ! -d "$SHOTDIR" ] && [ ! -d "$VCAPDIR" ] && mkdir -p "$SHOTDIR" "$VCAPDIR" || echo + +##### +## This variable will store the +## available audio input devices +##### +devices=$(pactl list sources | grep "Name" | awk '{print $2}') + +####################### +## Main menu choices ## +####################### +mcho1="󰹑 Take an screenshot" +mcho2="󰻃 Record the screen" +mcho3=" Exit" +mchos="$mcho1\n$mcho2\n$mcho3" + +############################# +## Screenshot menu choices ## +############################# +scho1="󱣴 Entire screen" +scho2="󱎫 Entire screen with delay" +scho3="󱕻 Select region" +scho4="󰖯 Active window" +scho5="󱎘 Exit" +schos="$scho1\n$scho2\n$scho3\n$scho4\n$scho5" + +############################# +## Screenshot menu choices ## +############################# +vcho1="󰕧 Record the screen" +vcho2="󰕩 Record region" +vcho3="󰕧 Record the screen and audio" +vcho4="󱎘 Exit" +vchos="$vcho1\n$vcho2\n$vcho3\n$vcho4" + +######################## +## Screenshot submenu ## +######################## +sscho1="󰆏 Copy to clipboard" +sscho2="󰠘 Save to ~/Media/Pictures/Screenshots" +sscho3="󱎘 Exit" +sschos="$sscho1\n$sscho2\n$sscho3" + +################################# +## Screenshot delay subsubmenu ## +################################# +del1="󱑀 3 sec delay" +del2="󱑂 5 sec delay" +del3="󱑇 10 sec delay" +del4="󱎘 Exit" +dels="$del1\n$del2\n$del3\n$del4" + +##### +## This function uses the sschos variable +## to ask the user what to do with the +## screenshot +##### +## param: none +## return: string +##### +fsschos() { + sschoice=$(echo -e "$sschos" | $RUNNER -i -L 4 -p " What do you want to do with this screenshot?") +} + +##### +## This function uses the dels variable +## to ask the user which delay option to +## choose +##### +## param: none +## return: string +##### +fdel() { + del=$(echo -e "$dels" | $RUNNER -L 5 -i -p " Select Delay") +} + +# countdown function +countdown() { + notify-send "Screenshot" "Executing in 3 seconds" -t 1000 + sleep 1 + notify-send "Screenshot" "Executing in 2 seconds" -t 1000 + sleep 1 + notify-send "Screenshot" "Executing in 1 seconds" -t 1000 + sleep 2 +} + +##### +## This function does a full screen +## screenshot without delay, depending on +## what the user chooses on the fsschos +## function, the screenshot will be saved +## to the clipboard or to $SHOTDIR +##### +## param: none +## return: void +##### +shot_screen() { + fsschos + if [ "$sschoice" = "$sscho1" ]; then + sleep 0.5 && wayshot --stdout | wl-copy && notify-send "Screenshot copied to clipboard" + elif [ "$sschoice" = "$sscho2" ]; then + sleep 0.5 && wayshot -f "$SHOTDIR/$(date +%s).jpg" && notify-send "Screenshot saved to $SHOTDIR" + else + exit 0 + fi +} + +##### +## This function does a full screen +## screenshot with delay, depending on +## what the user chooses on the fsschos +## function, the screenshot will be saved +## to the clipboard or to $SHOTDIR. And +## depending on what the user chooses on +## the fdel function, the delay will be +## between 3 and 10 seconds +##### +## param: none +## return: void +##### +shot_screen_delay() { + fsschos; + if [ "$sschoice" = "$sscho1" ]; then + fdel; + case $del in + "$del1") + sleep 3 && wayshot --stdout | wl-copy && notify-send "Screenshot saved to clipboard"; + ;; + "$del2") + sleep 5 && wayshot --stdout | wl-copy && notify-send "Screenshot saved to clipboard"; + ;; + "$del3") + sleep 10 && wayshot --stdout | wl-copy && notify-send "Screenshot saved to clipboard"; + ;; + "$del4") + exit 0; + esac + elif [ "$sschoice" = "$sscho2" ]; then + fdel; + case $del in + "$del1") + sleep 3 && wayshot -f "$SHOTDIR/$(date +%s)" && notify-send "Screenshot saved to $SHOTDIR"; + ;; + "$del2") + sleep 5 && wayshot -f "$SHOTDIR/$(date +%s)" && notify-send "Screenshot saved to $SHOTDIR"; + ;; + "$del3") + sleep 10 && wayshot -f "$SHOTDIR/$(date +%s)" && notify-send "Screenshot saved to $SHOTDIR"; + ;; + "$del4") + exit 0; + esac + else + exit 0 + fi +} + + +##### +## This function allows the user to select +## the area on screen to screenshot +## depending on what the user chooses on +## the fsschos function, the screenshot +## will be saved to the clipboard or to +## $SHOTDIR +##### +## param: none +## return: void +##### +shot_area() { + fsschos; + if [ "$sschoice" = "$sscho1" ]; then + sleep 0.5 && wayshot -s "$(slurp)" --stdout | wl-copy && notify-send "Screenshot saved to clipboard"; + elif [ "$sschoice" = "$sscho2" ]; then + sleep 0.5 && wayshot -f "$SHOTDIR/$(date +%s).jpg" && notify-send "Screenshot saved to $SHOTDIR"; + else + exit 0 + fi +} + +##### +## This function does an screnshot of the +## currently active window, depending on +## what the user chooses on the fsschos +## function, the screenshot will be saved +## to the clipboard or to $SHOTDIR +##### +## param: none +## return: void +##### +shot_window() { + fsschos; + if [ "$sschoice" = "$sscho1" ]; then + wayshot -s "$(hyprctl activewindow -j | jq -c -r '.at,.size | .[]' | tr '\n' ' ')" --stdout | wl-copy && notify-send "Screenshot saved to clipboard"; + elif [ "$sschoice" = "$sscho2" ]; then + wayshot -s "$(hyprctl activewindow -j | jq -c -r '.at,.size | .[]' | tr '\n' ' ')" --stdout -f "$SHOTDIR/$(date +%s).jpg" && notify-send "Screenshot saved to $SHOTDIR"; + else + exit 0 + fi +} + +##### +## This function starts recording the whole screen, +## with mp4 format and no audio. The recording will +## continue until the user stops it with the -s +## option, when that happens, the video will be +## saved to $VCAPDIR. +##### +## param: none +## return: void +##### +vshot_screen() { + for ((i = 3; i >= 1; i--)); do + notify-send -t 1000 "Starting in $i seconds"; + sleep 1; + done + wf-recorder --codec=h264_vaapi -d /dev/dri/renderD128 -f "$VCAPDIR/$(date +%s).mp4" + notify-send "Screenshot" "Recording saved to $VCAPDIR" +} + +##### +## This function will execute slurp to get the area, +## to record, and then starts the recording with mp4 +## format and no audio. The recording will continue +## until the user stops it with the -s option, when +## that happens, the video will be saved to $VCAPDIR. +##### +## param: none +## return: void +##### +vshot_area() { + wf-recorder --codec=h264_vaapi -d /dev/dri/renderD128 -g "$(slurp)" -f "$VCAPDIR/$(date +%s).mp4" + notify-send "Screenshot" "Recording saved to $VCAPDIR" +} + +##### +## This function starts recording the whole screen, +## with mp4 format and with audio. The recording will +## continue until the user stops it with the -s +## option, when that happens, the video will be +## saved to $VCAPDIR. +##### +## param: none +## return: void +##### +vshot_screen_audio() { + chosendevice=$(echo -e "$devices" | $RUNNER -i -L 10 -p "Select audio input:") + if [ -n "$chosendevice" ]; then + device="$chosendevice" + for ((i = 3; i >= 1; i--)); do + notify-send -t 1000 "Starting in $i seconds"; + sleep 1; + done + wf-recorder --audio="$device" --codec=h264_vaapi -d /dev/dri/renderD128 -f "$VCAPDIR/$(date +%s).mp4" + else + exit 1 + fi + notify-send "Screenshot" "Recording saved to $VCAPDIR" +} + +# show the help output with --help or -h arguments +if [ "$1" == '--help' ] || [ "$1" = '-h' ]; then + echo "rs-scrot" + echo "USAGE: rs-scrot [OPTION]" + echo -e "(no option)\tshow the screenshot menu" + echo -e "-s, --stop\tstop recording" + echo -e "-h, --help\tthis screen" + exit 1 +fi + +# stop recording with -s or --stop arguments +if [ "$1" = '--stop' ] || [ "$1" = '-s' ]; then + killall -s SIGINT wf-recorder + exit 1 +fi + +########## +## main ## +########## +mchoice=$(echo -e "$mchos" | $RUNNER -i -L 5 -p " Screenshot/Screen-Capture Utility") # main menu prompt +case $mchoice in + "$mcho1") + schoice=$(echo -e "$schos" | $RUNNER -i -L 7 -p " Sreenshot Menu") # screenshot menu prompt + case $schoice in + "$scho1") + shot_screen; + ;; + "$scho2") + shot_screen_delay; + ;; + "$scho3") + shot_area; + ;; + "$scho4") + shot_window; + ;; + "$scho5") + exit 0 + esac + ;; + "$mcho2") + vchoice=$(echo -e "$vchos" | $RUNNER -i -L 6 -p "󰕧 Screen-Capture Menu") + case $vchoice in + "$vcho1") + vshot_screen; + ;; + "$vcho2") + vshot_area; + ;; + "$vcho3") + vshot_screen_audio; + ;; + "$vcho4") + exit 0; + esac + ;; + "$mcho3") + exit 0 + ;; +esac diff --git a/user/.local/bin/rs_wall b/user/.local/bin/rs_wall new file mode 100755 index 000000000..41f2c77b0 --- /dev/null +++ b/user/.local/bin/rs_wall @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +# ***This script was made by Clay Gomera (Drake)*** +# - Description: A simple wallpaper changer script for rofi/dmenu/wofi +# - Dependencies: {rofi||dmenu||wofi}, fd, swaybg + +## WALLPAPER DIRECTORY ## +walldir="$MEDIA_DIR/Pictures/Wallpapers" # wallpapers folder, change it to yours + +## SELECT PICTURE ## +cd "$walldir" || exit 1 +wallpaper=$(fd -p "$walldir" | $RUNNER -p "󰋩 Wallpaper Selector") +if [ -n "$wallpaper" ]; then + swww img "$wallpaper" +else + exit 0 +fi +exit 0 diff --git a/user/.local/bin/rs_wifi b/user/.local/bin/rs_wifi new file mode 100755 index 000000000..99f2d38e9 --- /dev/null +++ b/user/.local/bin/rs_wifi @@ -0,0 +1,166 @@ +#!/usr/bin/env bash + +# ***This script was made by Clay Gomera (Drake)*** +# - Description: A simple wifi script for rofi/dmenu/wofi +# - Dependencies: {rofi||dmenu||wofi}, NetworkManager, io.elementary.capnet-assist + +####################### +## Main manu options ## +####################### +option1=" Turn on WiFi" +option2=" Turn off WiFi" +option3="󱛅 Disconnect WiFi" +option4="󱛃 Connect WiFi" +option5="󱛆 Setup captive portal" +option6=" Exit" +options="$option1\n$option2\n$option3\n$option4\n$option5\n$option6" + +##### +## These variables will store specific +## information about the wireless +## interface +##### +wlan=$(nmcli dev | grep wifi | sed 's/ \{2,\}/|/g' | cut -d '|' -f1 | head -1) +constate=$(nmcli dev | grep wifi | sed 's/ \{2,\}/|/g' | cut -d '|' -f3 | head -1) +currentwfi=$(nmcli dev | grep wifi | sed 's/ \{2,\}/|/g' | cut -d '|' -f4 | head -1) + +##### +## This function uses nmcli to turn +## off wifi and then sends a +## notification +##### +## param: none +## return: void +##### +turnoff() { + nmcli radio wifi off && notify-send "WiFi has been turned off"; +} + +##### +## This function uses nmcli to turn +## on wifi and then sends a +## notification +##### +## param: none +## return: void +##### +turnon() { + nmcli radio wifi on && notify-send "WiFi has been turned on"; +} + +##### +## This function uses nmcli and the +## $wlan and $constate variables to +## disconnect from the wifi network +## and then sends a notification +##### +## param: none +## return: void +##### +disconnect() { + if [ "$constate" = "disconnected" ]; then + notify-send "WiFi is already disconnected"; + elif [ "$constate" = "connected" ]; then + nmcli device disconnect "$wlan" && notify-send "Wifi has been disconnected"; + else + exit 1; + fi +} + +##### +## This function uses nmcli to first scan +## for available networks and then the +## $bssid variable will store the SSID +## of the network that the user chooses +##### +## param: none +## return: string +##### +connect() { + notify-send "Scannig networks..." && nmcli dev wifi rescan; + bssid=$(nmcli device wifi list | sed -n '1!p' | cut -b 9- | $RUNNER -i -p " Select a Wifi Network" | cut -d' ' -f1); +} + +##### +## This function will store the WiFi +## password in the $pass variable +##### +## param: none +## return: string +##### +password() { + # TODO Create a condition to check if the chosen network is open or not, that + # way this will be skipped of it's open + # TODO What if the network is already saved? The user doesn't need to type the + # password again + pass=$($RUNNER -i -W 250 -L 1 -p "Enter Password " --password); +} + +##### +## This function will actually connect +## to the chosen WiFi network using the +## $bssid and $pass variables +##### +## param: none +## return: void +##### +action() { + nmcli device wifi connect "$bssid" password "$pass" || nmcli device wifi connect "$bssid"; +} + +##### +## This function will check if the +## connection works +##### +## param: none +## return: void +##### +check() { + notify-send "Checking if connection was successful"; + sleep 1; + if ping -q -c 2 -W 2 google.com >/dev/null; then + notify-send "You are now connected to $currentwfi and internet is working properly"; + else + notify-send "Your internet is not working :("; + fi +} + +########## +## main ## +########## +cases=$(echo -e "$options" | $RUNNER -i -L 8 -p " Wifi Settings" ) # main menu prompt +case "$cases" in + "$option1") + turnon; + ;; + "$option2") + turnoff; + ;; + "$option3") + disconnect; + ;; + "$option4") + connect; + if [ -n "$bssid" ]; then # if the user chooses a network + password; + if [ -n "$pass" ]; then # if the user typed a password + action; + if [ "$constate" = "connected" ]; then # if the connection was successful + check; + else + notify-send "Connection error"; # if not, connection error + exit 1; + fi + else + exit 1; # if not, exit the script + fi + else + exit 1; # if not, exit the script + fi + ;; + "$option5") + io.elementary.capnet-assist; + ;; + "$option6") + exit 0; +esac diff --git a/user/.winitrc b/user/.winitrc index ea558e5ee..cfb8d11e5 100755 --- a/user/.winitrc +++ b/user/.winitrc @@ -41,9 +41,14 @@ export GNUPGHOME="$HOME/.local/share/gnupg" export LESSHISTFILE=- # default apps -export EDITOR="emacsclient -t -a ''" -export VISUAL="emacsclient -c -a 'emacs'" -export BROWSER="librewolf" +export EDITOR="$HOME/.local/bin/lvim" +export VISUAL="neovide --neovim-bim $HOME/.local/bin/lvim" +export BROWSER="qutebrowser" export VIEWER="zathura" +export MEDIA_DIR="$HOME/Media" +export TEMP_DIR="$HOME/Temporal" +export RUNNER="wofi --dmenu" +export RUNNER_EX="wofi -p ' Run'" + exec Hyprland diff --git a/user/dependencies.md b/user/dependencies.md index a147ab9ca..624ec659f 100644 --- a/user/dependencies.md +++ b/user/dependencies.md @@ -1,54 +1,8 @@ # Dependencies -- ttf-mononoki-nerd -- ttf-nerd-fonts-symbols-mono -- rofi-lboon-wayland-git -- waybar-hyprland -- swww-git -- dunst -- xdg-desktop-portal -- xdg-desktop-portal-gtk -- xdg-desktop-portal-hyprland -- polkit-gnome -- qt5-wayland -- qt6-wayland -- swaylock -- slurp -- grim -- wl-clipboard -- wf-recorder -- wezterm -- hyprland-git -- hyprpicker-git -- cmus -- tut-bin -- ani-cli-git -- ytfzf-git -- mpv -- newsboat -- pulsemixer -- alsamixer -- vifm -- power-profiles-daemon -- gruvbox-dark-gtk -- gruvbox-dark-icons-gtk -- xcursor-simp1e-gruvbox-dark -- pipewire -- pipewire-v4l2 -- pipewire-alsa -- pipewire-pulse -- pipewire-jack -- pipewire-audio -- wireplumber -- imv -- wdisplays -- bluez -- bluez-utils -- btop -- htop -- brightnessctl -- cliphist -- emacs + +paru -S --needed hyrpland swww wezterm hyprpicker wofi waybar-hyprland swaylock dunst wayshot slurp wf-recorder wl-clipboard cliphist wdisplays polkit-gnome pipewire wireplumber pipewire-alsa pipewire-pulse pipewire-jack pipewire-audio pipewire-v4l2 xdg-desktop-portal xdg-desktop-portal-hyprland ttf-mononoki-nerd ttf-nerd-fonts-symbols ttf-nerd-fonts-symbols-mono brightnessctl playerctl udisks2 power-profiles-daemon bluez bluez-utils noto-fonts noto-fonts-extra noto-fonts-emoji neovide nvim btop htop pulsemixer alsa-utils tut newsboat cmus vifm w3m mpv zathura zathura-pdf-poppler zathura-cb imv fd ripgrep jq fish bat exa starship capnet-assist gruvbox-dark-gtk gruvbox-dark-icons-gtk xcursor-simp1e-gruvbox-dark gtk-engine-murrine qt5-wayland qt6-wayland kvantum ytfzf ani-cli # not managed by the package manager -- doom emacs +- lunarvim - flix-cli +