From c2e05869e9679bff4159338e60b6ef0d121c43db Mon Sep 17 00:00:00 2001 From: Clay Gomera Date: Sat, 24 Jun 2023 10:15:08 -0400 Subject: [PATCH] fully lua awesome setup now, 0 bash scripts --- user/.bash_profile | 9 +- user/.bashrc | 2 - .../Gruvbox-Dark-Brown.kvconfig | 527 ++ .../Gruvbox-Dark-Brown/Gruvbox-Dark-Brown.svg | 5597 +++++++++++++++++ user/.config/Kvantum/kvantum.kvconfig | 2 + user/.config/awesome/apps.lua | 46 +- user/.config/awesome/autostart.lua | 14 +- user/.config/awesome/helpers.lua | 42 +- user/.config/awesome/keymaps/keyboard.lua | 8 + user/.config/awesome/rc.lua | 22 +- user/.config/awesome/ui/bar.lua | 58 +- user/.config/awesome/ui/rules.lua | 7 +- user/.config/awesome/ui/theme.lua | 4 +- user/.config/awesome/ui/widgets/battery | 102 - user/.config/awesome/ui/widgets/battery.lua | 110 + user/.config/awesome/ui/widgets/brightness | 24 - .../.config/awesome/ui/widgets/brightness.lua | 47 + user/.config/awesome/ui/widgets/layout | 3 - user/.config/awesome/ui/widgets/layout.lua | 23 + user/.config/awesome/ui/widgets/volume | 14 - user/.config/awesome/ui/widgets/volume.lua | 35 + user/.config/awesome/ui/widgets/wifi | 34 - user/.config/awesome/ui/widgets/wifi.lua | 70 + user/.config/doom/config.el | 2 + user/.config/doom/config.org | 6 + user/.config/dunst/critical.png | Bin 35927 -> 0 bytes user/.config/dunst/dunstrc | 359 -- user/.config/dunst/normal.png | Bin 3895 -> 0 bytes user/.config/fish/config.fish | 8 +- user/.config/hilbish/init.lua | 118 - user/.config/lvim/config.lua | 128 - user/.config/picom/picom.conf | 16 +- user/.config/qt5ct/qt5ct.conf | 31 - user/.config/qt6ct/qt6ct.conf | 32 - user/.config/qutebrowser/bookmarks/urls | 11 - user/.config/qutebrowser/config.py | 251 - user/.config/qutebrowser/gruvbox.py | 332 - user/.config/rofi/config.rasi | 2 +- user/.config/rofi/scripts/rofi_scrot | 28 +- user/.config/vifm/vifmrc | 2 +- user/.config/wezterm/wezterm.lua | 2 +- user/.xinitrc | 11 +- 42 files changed, 6548 insertions(+), 1591 deletions(-) create mode 100644 user/.config/Kvantum/Gruvbox-Dark-Brown/Gruvbox-Dark-Brown.kvconfig create mode 100644 user/.config/Kvantum/Gruvbox-Dark-Brown/Gruvbox-Dark-Brown.svg create mode 100644 user/.config/Kvantum/kvantum.kvconfig delete mode 100755 user/.config/awesome/ui/widgets/battery create mode 100644 user/.config/awesome/ui/widgets/battery.lua delete mode 100755 user/.config/awesome/ui/widgets/brightness create mode 100644 user/.config/awesome/ui/widgets/brightness.lua delete mode 100755 user/.config/awesome/ui/widgets/layout create mode 100644 user/.config/awesome/ui/widgets/layout.lua delete mode 100755 user/.config/awesome/ui/widgets/volume create mode 100644 user/.config/awesome/ui/widgets/volume.lua delete mode 100755 user/.config/awesome/ui/widgets/wifi create mode 100644 user/.config/awesome/ui/widgets/wifi.lua delete mode 100644 user/.config/dunst/critical.png delete mode 100644 user/.config/dunst/dunstrc delete mode 100644 user/.config/dunst/normal.png delete mode 100644 user/.config/hilbish/init.lua delete mode 100644 user/.config/lvim/config.lua delete mode 100644 user/.config/qt5ct/qt5ct.conf delete mode 100644 user/.config/qt6ct/qt6ct.conf delete mode 100644 user/.config/qutebrowser/bookmarks/urls delete mode 100644 user/.config/qutebrowser/config.py delete mode 100644 user/.config/qutebrowser/gruvbox.py diff --git a/user/.bash_profile b/user/.bash_profile index 5cc161f76..bf0d9b073 100644 --- a/user/.bash_profile +++ b/user/.bash_profile @@ -13,8 +13,9 @@ then logout fi -### ENVIRONMENT VARIABLES -export EDITOR="lvim" # $EDITOR use lunarvim in terminal +# environment variables +export EDITOR="emacsclient -t -a ''" +export VISUAL="emacsclient -c -a 'emacs'" # clean home export XDG_DATA_HOME="$HOME/.local/share" @@ -26,5 +27,5 @@ export WGETRC="$HOME/.config/wget/wgetrc" export INPUTRC="$HOME/.config/inputrc" export GNUPGHOME="$HOME/.local/share/gnupg" -### BASHRC -source "$HOME"/.bashrc # Load the bashrc +# bashrc +source "$HOME"/.bashrc diff --git a/user/.bashrc b/user/.bashrc index ed7e16819..93cd3fabc 100644 --- a/user/.bashrc +++ b/user/.bashrc @@ -8,8 +8,6 @@ ### EXPORT ### export TERM="xterm-256color" # getting proper colors export HISTCONTROL=ignoredups:erasedups # no duplicate entries -export EDITOR="$HOME/.local/bin/lvim" -export VISUAL="wezterm start --class editor -- $HOME/.local/bin/lvim" ### "bat" as manpager export MANPAGER="sh -c 'col -bx | bat -l man -p'" diff --git a/user/.config/Kvantum/Gruvbox-Dark-Brown/Gruvbox-Dark-Brown.kvconfig b/user/.config/Kvantum/Gruvbox-Dark-Brown/Gruvbox-Dark-Brown.kvconfig new file mode 100644 index 000000000..87cb82f5e --- /dev/null +++ b/user/.config/Kvantum/Gruvbox-Dark-Brown/Gruvbox-Dark-Brown.kvconfig @@ -0,0 +1,527 @@ +[%General] +author=sachnr, based on KvAdapta +comment=Gruvbox Dark theme with brown highlights +x11drag=menubar_and_primary_toolbar +alt_mnemonic=true +left_tabs=true +attach_active_tab=false +mirror_doc_tabs=true +group_toolbar_buttons=false +toolbar_item_spacing=0 +toolbar_interior_spacing=2 +spread_progressbar=true +composite=true +menu_shadow_depth=5 +tooltip_shadow_depth=2 +splitter_width=4 +scroll_width=9 +scroll_arrows=false +scroll_min_extent=60 +slider_width=2 +slider_handle_width=22 +slider_handle_length=22 +center_toolbar_handle=true +check_size=14 +textless_progressbar=false +progressbar_thickness=2 +menubar_mouse_tracking=true +toolbutton_style=1 +double_click=false +translucent_windows=false +blurring=false +popup_blurring=false +vertical_spin_indicators=false +spin_button_width=24 +fill_rubberband=false +merge_menubar_with_toolbar=true +small_icon_size=16 +large_icon_size=32 +button_icon_size=16 +toolbar_icon_size=22 +combo_as_lineedit=true +animate_states=true +button_contents_shift=false +combo_menu=true +hide_combo_checkboxes=true +combo_focus_rect=false +groupbox_top_label=true +inline_spin_indicators=true +joined_inactive_tabs=true +layout_spacing=6 +layout_margin=9 +scrollbar_in_view=true +transient_scrollbar=true +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 +reduce_window_opacity=0 +respect_DE=true +scrollable_menu=false +submenu_delay=250 + +[GeneralColors] +window.color=#232323 +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 +tooltip.text.color=#fbf1c7 +highlight.text.color=#3c3836 +link.color=#b8bb26 +link.visited.color=#98971a +progress.indicator.text.color=#fbf1c7 + +[Hacks] +transparent_ktitle_label=true +transparent_dolphin_view=false +transparent_pcmanfm_sidepane=true +blur_translucent=false +transparent_menutitle=true +respect_darkness=false +kcapacitybar_as_progressbar=true +force_size_grip=true +iconless_pushbutton=true +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 + +[PanelButtonCommand] +frame=true +frame.element=button +frame.top=4 +frame.bottom=4 +frame.left=4 +frame.right=4 +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.shadow=0 +text.margin=1 +text.iconspacing=4 +indicator.element=arrow +text.margin.top=2 +text.margin.bottom=4 +text.margin.left=2 +text.margin.right=2 +min_width=+0.3font +min_height=+0.3font +frame.expansion=14 + +[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 +interior.element=dock +frame.element=dock +frame.top=1 +frame.bottom=1 +frame.left=1 +frame.right=1 +text.normal.color=#ebdbb2 + +[DockTitle] +inherits=PanelButtonCommand +frame=false +interior=false +text.normal.color=#ebdbb2 +text.focus.color=#fbf1c7 +text.bold=false + +[IndicatorSpinBox] +inherits=PanelButtonCommand +frame=true +interior=true +frame.top=2 +frame.bottom=2 +frame.left=2 +frame.right=2 +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 + +[RadioButton] +inherits=PanelButtonCommand +frame=false +interior.element=radio +text.normal.color=#ebdbb2 +text.focus.color=#fbf1c7 +min_width=+0.3font +min_height=+0.3font + +[CheckBox] +inherits=PanelButtonCommand +frame=false +interior.element=checkbox +text.normal.color=#ebdbb2 +text.focus.color=#fbf1c7 +min_width=+0.3font +min_height=+0.3font + +[Focus] +inherits=PanelButtonCommand +frame=true +frame.element=focus +frame.top=1 +frame.bottom=1 +frame.left=1 +frame.right=1 +frame.patternsize=20 + +[GenericFrame] +inherits=PanelButtonCommand +frame=true +interior=false +frame.element=common +interior.element=common +frame.top=3 +frame.bottom=3 +frame.left=3 +frame.right=3 + +[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 + +[DropDownButton] +inherits=PanelButtonCommand +indicator.element=arrow-down + +[IndicatorArrow] +indicator.element=arrow +indicator.size=8 + +[ToolboxTab] +inherits=PanelButtonCommand +text.normal.color=#ebdbb2 +text.press.color=#ebdbb2 +text.focus.color=#fbf1c7 + +[Tab] +inherits=PanelButtonCommand +interior.element=tab +text.margin.left=8 +text.margin.right=8 +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.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 + +[TreeExpander] +inherits=PanelButtonCommand +indicator.size=8 +indicator.element=tree + +[HeaderSection] +inherits=PanelButtonCommand +interior.element=header +frame.element=header +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 +frame.expansion=0 + +[SizeGrip] +indicator.element=resize-grip + +[Toolbar] +inherits=PanelButtonCommand +indicator.element=toolbar +indicator.size=5 +text.margin=0 +interior.element=menubar +frame.element=menubar +text.normal.color=#ebdbb2 +text.focus.color=#fbf1c7 +frame.left=0 +frame.right=0 +frame.top=0 +frame.bottom=4 +frame.expansion=0 + +[Slider] +inherits=PanelButtonCommand +frame.element=slider +interior.element=slider +frame.top=3 +frame.bottom=3 +frame.left=3 +frame.right=3 + +[SliderCursor] +inherits=PanelButtonCommand +frame=false +interior.element=slidercursor + +[Progressbar] +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.bold=false +frame.expansion=8 + +[ProgressbarContents] +inherits=PanelButtonCommand +frame=true +frame.element=progress-pattern +interior.element=progress-pattern + +[ItemView] +inherits=PanelButtonCommand +text.margin=0 +frame.element=itemview +interior.element=itemview +frame.top=2 +frame.bottom=2 +frame.left=2 +frame.right=2 +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 +min_width=+0.3font +min_height=+0.3font +frame.expansion=0 + +[Splitter] +indicator.size=48 + +[Scrollbar] +inherits=PanelButtonCommand +indicator.element=arrow +indicator.size=8 + +[ScrollbarSlider] +inherits=PanelButtonCommand +interior.element=scrollbarslider +interior=true +frame=false +indicator.element=grip +indicator.size=13 +frame.expansion=48 + +[ScrollbarGroove] +inherits=PanelButtonCommand +interior=false +frame=false + +[MenuItem] +inherits=PanelButtonCommand +frame=true +frame.element=menuitem +interior.element=menuitem +indicator.element=menuitem +text.normal.color=#ebdbb2 +text.focus.color=#fbf1c7 +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 +text.bold=false +min_width=+0.3font +min_height=+0.3font +frame.expansion=0 + +[MenuBar] +inherits=PanelButtonCommand +frame.element=menubar +interior.element=menubar +frame.bottom=0 +text.normal.color=#ebdbb2 +frame.expansion=0 +text.bold=false + +[MenuBarItem] +inherits=PanelButtonCommand +interior=true +interior.element=menubaritem +frame.element=menubaritem +frame.top=2 +frame.bottom=2 +frame.left=2 +frame.right=2 +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 +frame.expansion=0 + +[TitleBar] +inherits=PanelButtonCommand +frame=false +text.margin.top=2 +text.margin.bottom=2 +text.margin.left=2 +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 +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 + +[Menu] +inherits=PanelButtonCommand +frame.top=1 +frame.bottom=1 +frame.left=1 +frame.right=1 +frame.element=menu +interior.element=menu +text.normal.color=#ebdbb2 +text.shadow=false +frame.expansion=0 + +[GroupBox] +inherits=GenericFrame +frame=false +text.shadow=0 +text.margin=0 +text.normal.color=#ebdbb2 +text.focus.color=#fbf1c7 +text.bold=false +frame.expansion=0 + +[TabBarFrame] +inherits=GenericFrame +frame=true +frame.element=tabBarFrame +interior=false +frame.top=2 +frame.bottom=2 +frame.left=2 +frame.right=2 + +[ToolTip] +inherits=GenericFrame +frame.top=3 +frame.bottom=3 +frame.left=3 +frame.right=3 +interior=true +text.shadow=0 +text.margin=0 +interior.element=tooltip +frame.element=tooltip +frame.expansion=0 + +[StatusBar] +inherits=GenericFrame +frame=false +interior=false + +[Window] +interior=true +interior.element=window diff --git a/user/.config/Kvantum/Gruvbox-Dark-Brown/Gruvbox-Dark-Brown.svg b/user/.config/Kvantum/Gruvbox-Dark-Brown/Gruvbox-Dark-Brown.svg new file mode 100644 index 000000000..3c29a5f27 --- /dev/null +++ b/user/.config/Kvantum/Gruvbox-Dark-Brown/Gruvbox-Dark-Brown.svg @@ -0,0 +1,5597 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/user/.config/Kvantum/kvantum.kvconfig b/user/.config/Kvantum/kvantum.kvconfig new file mode 100644 index 000000000..62defb799 --- /dev/null +++ b/user/.config/Kvantum/kvantum.kvconfig @@ -0,0 +1,2 @@ +[General] +theme=Gruvbox-Dark-Brown diff --git a/user/.config/awesome/apps.lua b/user/.config/awesome/apps.lua index e8a2c28ed..bb3d89e1d 100644 --- a/user/.config/awesome/apps.lua +++ b/user/.config/awesome/apps.lua @@ -1,31 +1,35 @@ -- Apps config, see keymaps/keyboard.lua to see how this is handled in keybindings local apps = { - terminal = "wezterm", -- Selected terminal emulator - -- Rofi settings - drunner = "rofi -show drun -show-icons", -- Desktop runner - runner = "rofi -show run", -- Normal runner - runner_power = "$HOME/.config/rofi/scripts/rofi_power", -- Power manager - runner_mount = "$HOME/.config/rofi/scripts/rofi_mount", -- Drive mounter - runner_blue = "$HOME/.config/rofi/scripts/rofi_blue", -- Bluetooth manager - runner_wifi = "$HOME/.config/rofi/scripts/rofi_wifi", -- Wifi manager - runner_scrot = "$HOME/.config/rofi/scripts/rofi_scrot", -- Screenshots manager - runner_emoji = "$HOME/.config/rofi/scripts/rofi_emoji", -- Emojis manager - runner_wall = "$HOME/.config/rofi/scripts/rofi_wall", -- Wallpapers manager - -- Other scripts - vidytfzf = "wezterm start --class vidytfzf -- ytfzf -flstT chafa", -- Youtube - musytfzf = "wezterm start --class musytfzf -- ytfzf -mlstT chafa", -- Youtube Music - ani_cli = "wezterm start --class ani-cli -- ani-cli", -- Anime - flix_cli = "wezterm start --class flix-cli -- flix-cli", -- Movies - newsboat = "wezterm start --class newsboat -- newsboat", -- Newsboat - -- Selected apps - editor = "neovide --neovim-bin .local/bin/lvim", -- TAG 1 + terminal = "wezterm", -- terminal emulator + -- rofi settings + drunner = "rofi -show drun -show-icons", -- desktop runner + runner = "rofi -show run", -- normal runner + runner_power = "$HOME/.config/rofi/scripts/rofi_power", -- power manager + runner_mount = "$HOME/.config/rofi/scripts/rofi_mount", -- drive mounter + runner_blue = "$HOME/.config/rofi/scripts/rofi_blue", -- bluetooth manager + runner_wifi = "$HOME/.config/rofi/scripts/rofi_wifi", -- wifi manager + runner_scrot = "$HOME/.config/rofi/scripts/rofi_scrot", -- screenshots manager + runner_emoji = "$HOME/.config/rofi/scripts/rofi_emoji", -- emojis manager + runner_wall = "$HOME/.config/rofi/scripts/rofi_wall", -- wallpapers manager + -- terminal scripts + vidytfzf = "wezterm start --class vidytfzf -- ytfzf -flstT chafa", -- youtube + musytfzf = "wezterm start --class musytfzf -- ytfzf -mlstT chafa", -- youtube music + ani_cli = "wezterm start --class ani-cli -- ani-cli", -- anime + flix_cli = "wezterm start --class flix-cli -- flix-cli", -- movies + newsboat = "wezterm start --class newsboat -- newsboat", -- newsboat + btop = "wezterm start --class btop -- btop", -- btop + htop = "wezterm start --class htop -- htop", -- htop + pulsemixer = "wezterm start --class pulsemixer -- pulsemixer", -- pulsemixer + alsamixer = "wezterm start --class alsamixer -- alsamixer", -- alsamixer + -- default apps per tag + editor = "emacsclient -c -a emacs", -- TAG 1 file = "wezterm start --class vifm -- vifm", -- TAG 2 browser = "firefox", -- TAG 3 - chat = "signal-desktop", -- TAG 4 + chat = "org.signal.Signal", -- TAG 4 music = "wezterm start --class cmus -- cmus", -- TAG 5 videoeditor = "org.kde.kdenlive", -- TAG 6 imageeditor = "org.kde.krita", -- TAG 7 noteapp = "com.notesnook.Notesnook", -- TAG 8 - game = "retroarch" -- TAG 9 + game = "org.libretro.Retroarch" -- TAG 9 } return apps diff --git a/user/.config/awesome/autostart.lua b/user/.config/awesome/autostart.lua index 5249b0724..2d4d4dd61 100644 --- a/user/.config/awesome/autostart.lua +++ b/user/.config/awesome/autostart.lua @@ -1,21 +1,17 @@ local awful = require("awful") --- Session manager +-- session manager awful.util.spawn_with_shell( - "lxpolkit &" + "/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &" ) --- Wallpapers manager +-- set wallpaper awful.util.spawn_with_shell( "$HOME/.fehbg &" ) --- Automatically hide the cursor +-- automatically hide the cursor awful.util.spawn_with_shell( "unclutter --hide-on-touch &" ) --- Compositor +-- compositor awful.util.spawn_with_shell( "picom --experimental-backends --config ~/.config/picom/picom.conf &" ) --- Power manager -awful.util.spawn_with_shell( - "xfce4-power-manager &" -) diff --git a/user/.config/awesome/helpers.lua b/user/.config/awesome/helpers.lua index 528c4be4f..1ec793dcc 100644 --- a/user/.config/awesome/helpers.lua +++ b/user/.config/awesome/helpers.lua @@ -4,32 +4,32 @@ local beautiful = require("beautiful") -- {{{ Error handling naughty.connect_signal( - "request::display_error", - function(message, startup) - naughty.notification { - urgency = "critical", - title = "Oops, an error happened".. ( startup and " during startup!" or "!" ), - message = message - } - end + "request::display_error", + function(message, startup) + naughty.notification { + urgency = "critical", + title = "Oops, an error happened" .. (startup and " during startup!" or "!"), + message = message + } + end ) -- }}} -- {{{ Signals --- No borders when rearranging only 1 non-floating or maximized client +-- no borders when rearranging only 1 non-floating or maximized client screen.connect_signal( - "arrange", - function (s) - local max = s.selected_tag.layout.name == "max" - local only_one = #s.tiled_clients == 1 -- use tiled_clients so that other floating windows don't affect the count - -- but iterate over clients instead of tiled_clients as tiled_clients doesn't include maximized windows - for _, c in pairs(s.clients) do - if (max or only_one) and not c.floating or c.maximized then - c.border_width = 0 - else - c.border_width = beautiful.border_width - end - end + "arrange", + function(s) + local max = s.selected_tag.layout.name == "max" + local only_one = #s.tiled_clients == 1 -- use tiled_clients so that other floating windows don't affect the count + -- but iterate over clients instead of tiled_clients as tiled_clients doesn't include maximized windows + for _, c in pairs(s.clients) do + if (max or only_one) and not c.floating or c.maximized then + c.border_width = 0 + else + c.border_width = beautiful.border_width + end end + end ) -- }}} diff --git a/user/.config/awesome/keymaps/keyboard.lua b/user/.config/awesome/keymaps/keyboard.lua index a004905b5..f614565c7 100644 --- a/user/.config/awesome/keymaps/keyboard.lua +++ b/user/.config/awesome/keymaps/keyboard.lua @@ -763,6 +763,14 @@ awful.keyboard.append_global_keybindings( awful.util.spawn(apps.flix_cli) elseif key == "r" then awful.util.spawn(apps.newsboat) + elseif key == "b" then + awful.util.spawn(apps.btop) + elseif key == "h" then + awful.util.spawn(apps.htop) + elseif key == "p" then + awful.util.spawn(apps.pulsemixer) + elseif key == "o" then + awful.util.spawn(apps.alsamixer) end awful.keygrabber.stop(grabber) end diff --git a/user/.config/awesome/rc.lua b/user/.config/awesome/rc.lua index 5008444a6..5bdf39218 100644 --- a/user/.config/awesome/rc.lua +++ b/user/.config/awesome/rc.lua @@ -1,12 +1,12 @@ --- Imports +-- imports local beautiful = require("beautiful") -beautiful.init(string.format("%s/.config/awesome/ui/theme.lua", os.getenv("HOME"))) -- Selected theme -require("helpers") -- Some aditional code for handling -require("apps") -- Selected apps & scripts -require("ui.layouts") -- Predifined tiling layouts -require("ui.bar") -- The bar on the top -require("ui.notif") -- The notification manager -require("keymaps.keyboard") -- Keyboard shortcuts -require("keymaps.mouse") -- Mouse shortcuts -require("ui.rules") -- Window manager rules -require("autostart") -- Startup applications +beautiful.init(string.format("%s/.config/awesome/ui/theme.lua", os.getenv("HOME"))) -- selected theme +require("helpers") -- some aditional code for handling +require("apps") -- selected apps & scripts +require("ui.layouts") -- predifined tiling layouts +require("ui.bar") -- the bar on the top +require("ui.notif") -- the notification manager +require("keymaps.keyboard") -- keyboard shortcuts +require("keymaps.mouse") -- mouse shortcuts +require("ui.rules") -- window manager rules +require("autostart") -- startup applications diff --git a/user/.config/awesome/ui/bar.lua b/user/.config/awesome/ui/bar.lua index 3b79a6592..d9e277401 100644 --- a/user/.config/awesome/ui/bar.lua +++ b/user/.config/awesome/ui/bar.lua @@ -3,6 +3,12 @@ local wibox = require("wibox") local gears = require("gears") local awful = require("awful") local theme = require("ui.theme") +local battery = require("ui.widgets.battery") +local brightness = require("ui.widgets.brightness") +local layout = require("ui.widgets.layout") +local wifi = require("ui.widgets.wifi") +local volume = require("ui.widgets.volume") + -- Textclock widget local mytextclock = wibox.widget.textclock() screen.connect_signal("request::desktop_decoration", function(s) @@ -17,7 +23,7 @@ screen.connect_signal("request::desktop_decoration", function(s) "󰯜", -- VIDEO "󱇤", -- IMAGE/EDIT TOOLS "󰧮", -- OFFICE - "󰸶" -- GAMES + "󰸶", -- GAMES }, s, awful.layout.layouts[1] @@ -67,7 +73,7 @@ screen.connect_signal("request::desktop_decoration", function(s) s.mytaglist = { widget = wibox.container.background, bg = theme.taglist_bg, - shape = gears.shape.rounded_rect, + shape = gears.shape.octogon, awful.widget.taglist { screen = s, filter = awful.widget.taglist.filter.all, @@ -120,59 +126,27 @@ screen.connect_signal("request::desktop_decoration", function(s) } } - -- Prepare custom widgets - -- Volume widget - s.volume = - awful.widget.watch( - ".config/awesome/ui/widgets/volume", - 2 -- Update time in seconds - ) - -- Battery widget - s.battery = - awful.widget.watch( - ".config/awesome/ui/widgets/battery", - 60 -- update time in seconds - ) - -- Wifi widget - s.wifi = - awful.widget.watch( - ".config/awesome/ui/widgets/wifi", - 30 -- Update time in seconds - ) - -- Brightness widget - s.brightness = - awful.widget.watch( - ".config/awesome/ui/widgets/brightness", - 5 -- Update time in seconds - ) - -- Keyboard layout widget - s.layout = - awful.widget.watch( - ".config/awesome/ui/widgets/layout", - 2 -- Update time in seconds - ) - -- Prepare custom widgets container local custom_widget_container = { -- Keyboard layout widget wibox.container.background(wibox.widget.textbox(" "), theme.bar_bg_one), - wibox.container.background(s.layout, theme.bar_bg_one), + wibox.container.background(layout, theme.bar_bg_one), wibox.container.background(wibox.widget.textbox(" "), theme.bar_bg_one), -- Volume widget wibox.container.background(wibox.widget.textbox(" "), theme.bar_bg_two), - wibox.container.background(s.volume, theme.bar_bg_two), + wibox.container.background(volume, theme.bar_bg_two), wibox.container.background(wibox.widget.textbox(" "), theme.bar_bg_two), -- Brightness widget wibox.container.background(wibox.widget.textbox(" "), theme.bar_bg_tre), - wibox.container.background(s.brightness, theme.bar_bg_tre), + wibox.container.background(brightness, theme.bar_bg_tre), wibox.container.background(wibox.widget.textbox(" "), theme.bar_bg_tre), -- Battery widget wibox.container.background(wibox.widget.textbox(" "), theme.bar_bg_for), - wibox.container.background(s.battery, theme.bar_bg_for), + wibox.container.background(battery, theme.bar_bg_for), wibox.container.background(wibox.widget.textbox(" "), theme.bar_bg_for), -- Wifi widget wibox.container.background(wibox.widget.textbox(" "), theme.bar_bg_fiv), - wibox.container.background(s.wifi, theme.bar_bg_fiv), + wibox.container.background(wifi, theme.bar_bg_fiv), layout = wibox.layout.fixed.horizontal, } @@ -180,14 +154,14 @@ screen.connect_signal("request::desktop_decoration", function(s) local right_widgets = { custom_widget_container, widget = wibox.container.background, - shape = gears.shape.rounded_rect, + shape = gears.shape.octogon, } -- Wibar s.mywibox = awful.wibar { position = "top", height = (30), - border_width = (8), + border_width = (6), border_color = theme.bg_normal, screen = s, widget = { @@ -213,7 +187,7 @@ screen.connect_signal("request::desktop_decoration", function(s) { -- [[ Center widgets ]] -- Clock widget - wibox.container.background(mytextclock, theme.bar_clock, gears.shape.rounded_rect), + wibox.container.background(mytextclock, theme.bar_clock, gears.shape.octogon), valign = "center", halign = "center", layout = wibox.container.place, diff --git a/user/.config/awesome/ui/rules.lua b/user/.config/awesome/ui/rules.lua index f45da09d0..63e08a4d1 100644 --- a/user/.config/awesome/ui/rules.lua +++ b/user/.config/awesome/ui/rules.lua @@ -25,6 +25,7 @@ ruled.client.connect_signal( hinstance = { "copyq", "pinentry" }, class = { "Galculator", + "Qalculate-gtk", "Blueman-manager", "Gpick", "Kruler", @@ -56,6 +57,8 @@ ruled.client.connect_signal( "lvim", "Godot", "neovim", + "htop", + "btop", "Virt-manager" } }, @@ -114,7 +117,9 @@ ruled.client.connect_signal( "Audacity", "Ardour", "Carla2", - "Carla2-Control" + "Carla2-Control", + "alsamixer", + "pulsemixer" } }, properties = { tag = "󰲹" } diff --git a/user/.config/awesome/ui/theme.lua b/user/.config/awesome/ui/theme.lua index 6d70a0758..ebc3408e0 100644 --- a/user/.config/awesome/ui/theme.lua +++ b/user/.config/awesome/ui/theme.lua @@ -11,7 +11,7 @@ local theme = {} -- }}} -- {{{ theme font -theme.font = "mononoki Nerd Font 12" +theme.font = "mononoki Nerd Font 12.5" --- }}} -- {{{ bar colors @@ -42,7 +42,7 @@ theme.border_marked = "#cc241d" -- }}} -- {{{ Taglist -theme.taglist_font = "Symbols Nerd Font Mono 14" +theme.taglist_font = "Symbols Nerd Font Mono 15" theme.taglist_bg = "#3c3836" theme.taglist_fg_focus = "#fb4934" theme.taglist_fg_occupied = "#8ec07c" diff --git a/user/.config/awesome/ui/widgets/battery b/user/.config/awesome/ui/widgets/battery deleted file mode 100755 index 9716086bd..000000000 --- a/user/.config/awesome/ui/widgets/battery +++ /dev/null @@ -1,102 +0,0 @@ -#!/bin/bash -# Loop through all attached batteries and format the info -currntpwr=$(powerprofilesctl get) -if [ "${currntpwr}" = "performance" ]; then - pwr=" - 󰓅 Performance" -elif [ "${currntpwr}" = "balanced" ]; then - pwr=" - 󰾅 Balanced" -elif [ "${currntpwr}" = "power-saver" ]; then - pwr=" - 󰾆 PowerSaver" -fi - -for battery in /sys/class/power_supply/BAT?*; do - # If non-first battery, print a space separator. - [ -n "${capacity+x}" ] && printf " " - - # Sets up the status and capacity - case "$(cat "$battery/status" 2>&1)" in - "Full") - status=" 󰁹" - ;; - "Discharging") - # Calculates the percentage of remaining charge - percentage="$(cat "$battery/capacity" 2>&1)" - # Updates the status icon based on the battery percentage - if [ "$percentage" -le 20 ] - then - status="󰁻" - elif [ "$percentage" -le 30 ] - then - status="󰁼" - elif [ "$percentage" -le 40 ] - then - status="󰁽" - elif [ "$percentage" -le 50 ] - then - status="󰁾" - elif [ "$percentage" -le 60 ] - then - status="󰁿" - elif [ "$percentage" -le 70 ] - then - status="󰂀" - elif [ "$percentage" -le 80 ] - then - status="󰂁" - elif [ "$percentage" -le 90 ] - then - status="󰂂" - else - status="󰁹" - fi - ;; - "Charging") - # Calculates the percentage of remaining charge - percentage="$(cat "$battery/capacity" 2>&1)" - # Updates the status icon based on the battery percentage while charging - if [ "$percentage" -le 10 ] - then - status="󰢜" - elif [ "$percentage" -le 20 ] - then - status="󰂆" - elif [ "$percentage" -le 30 ] - then - status="󰂇" - elif [ "$percentage" -le 40 ] - then - status="󰂈" - elif [ "$percentage" -le 50 ] - then - status="󰢝" - elif [ "$percentage" -le 60 ] - then - status="󰂉" - elif [ "$percentage" -le 70 ] - then - status="󰢞" - elif [ "$percentage" -le 80 ] - then - status="󰂊" - elif [ "$percentage" -le 90 ] - then - status="󰂋" - else - status="󰂅" - fi - ;; - "Not charging") - status="󰂃" - ;; - "Unknown") - status="󰂃" - ;; - *) exit 1 ;; - esac - - # Will make a warn variable if discharging and low - [ "$status" = "󰁺" ] && [ "$percentage" -le 10 ] && warn="󱈸" - - # Prints the info - printf "%s%s%d%%%s" "$status" "$warn " "$percentage" "$pwr"; unset warn -done && printf "\\n" diff --git a/user/.config/awesome/ui/widgets/battery.lua b/user/.config/awesome/ui/widgets/battery.lua new file mode 100644 index 000000000..4571f4594 --- /dev/null +++ b/user/.config/awesome/ui/widgets/battery.lua @@ -0,0 +1,110 @@ +local wibox = require("wibox") +local awful = require("awful") + +-- Create a text widget to display the battery percentage and power profile +local battery_text = wibox.widget.textbox() + +local function update_battery_widget(widget, stdout) + -- Get the current battery percentage and charging status + local battery_percentage = tonumber(string.match(stdout, "(%d?%d?%d)%%")) + local ac_adapter_status = io.popen("cat /sys/class/power_supply/AC/online"):read("*line") + + -- Get the current power profile + local currntpwr = io.popen("powerprofilesctl get"):read("*line") + + -- Set the appropriate power profile symbol based on the current power profile + local pwr_symbol = "" + if currntpwr == "performance" then + pwr_symbol = " - 󰓅 Performance" + elseif currntpwr == "balanced" then + pwr_symbol = " - 󰾅 Balanced" + elseif currntpwr == "power-saver" then + pwr_symbol = " - 󰾆 PowerSaver" + end + + -- Set the appropriate battery icon based on the current battery percentage and charging status + local icon = "󰁹" + if ac_adapter_status == "1" then + if battery_percentage >= 100 then + icon = "󰂅" + elseif battery_percentage >= 90 then + icon = "󰂋" + elseif battery_percentage >= 80 then + icon = "󰂊" + elseif battery_percentage >= 70 then + icon = "󰢞" + elseif battery_percentage >= 60 then + icon = "󰂉" + elseif battery_percentage >= 50 then + icon = "󰢝" + elseif battery_percentage >= 40 then + icon = "󰂈" + elseif battery_percentage >= 30 then + icon = "󰂇" + elseif battery_percentage >= 20 then + icon = "󰂆" + else + icon = "󰢜" + end + else + if battery_percentage >= 100 then + icon = "󰁹" + elseif battery_percentage >= 90 then + icon = "󰂂" + elseif battery_percentage >= 80 then + icon = "󰂁" + elseif battery_percentage >= 70 then + icon = "󰂀" + elseif battery_percentage >= 60 then + icon = "󰁿" + elseif battery_percentage >= 50 then + icon = "󰁾" + elseif battery_percentage >= 40 then + icon = "󰁽" + elseif battery_percentage >= 30 then + icon = "󰁼" + elseif battery_percentage >= 20 then + icon = "󰁻" + else + icon = "󰂃" + end + end + + -- Set the text of the battery_text widget with the battery icon, battery percentage, and power profile symbol + battery_text:set_markup("" .. + icon .. "" .. " " .. battery_percentage .. "%" .. pwr_symbol) +end + +-- Use the acpi command to get the battery information and call the update_battery_widget function +awful.widget.watch('acpi', 10, function(widget, stdout) + update_battery_widget(widget, stdout) +end) + +-- Create a battery widget that contains the text widget +local battery_widget = wibox.widget { + battery_text, + layout = wibox.layout.align.horizontal +} + +-- Add a tooltip to the battery widget +battery_widget.tooltip = awful.tooltip { + objects = { battery_widget }, + timer_function = function() + local remaining_time = "Unknown" + local status = io.popen("acpi -b"):read("*line") + local percentage = tonumber(string.match(status, "(%d?%d?%d)%%")) + if percentage ~= nil then + local time = string.match(status, "%d+:%d+:%d+") + if time ~= nil then + if string.match(status, "Discharging") then + remaining_time = "Time remaining: " .. time + else + remaining_time = "Time until fully charged: " .. time + end + end + end + return remaining_time + end, +} + +return battery_widget diff --git a/user/.config/awesome/ui/widgets/brightness b/user/.config/awesome/ui/widgets/brightness deleted file mode 100755 index e0e74f042..000000000 --- a/user/.config/awesome/ui/widgets/brightness +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -brt=$(xbacklight -get) -if [ "${brt%.*}" -eq 100 ]; then - icon="󰛨" -elif [ "${brt%.*}" -ge 90 ]; then - icon="󱩖" -elif [ "${brt%.*}" -ge 80 ]; then - icon="󱩕" -elif [ "${brt%.*}" -ge 70 ]; then - icon="󱩔" -elif [ "${brt%.*}" -ge 60 ]; then - icon="󱩓" -elif [ "${brt%.*}" -ge 50 ]; then - icon="󱩒" -elif [ "${brt%.*}" -ge 40 ]; then - icon="󱩑" -elif [ "${brt%.*}" -ge 30 ]; then - icon="󱩐" -elif [ "${brt%.*}" -ge 20 ]; then - icon="󱩏" -else - icon="󱩎" -fi -echo "$icon ${brt%.*}%" diff --git a/user/.config/awesome/ui/widgets/brightness.lua b/user/.config/awesome/ui/widgets/brightness.lua new file mode 100644 index 000000000..5362672c7 --- /dev/null +++ b/user/.config/awesome/ui/widgets/brightness.lua @@ -0,0 +1,47 @@ +local wibox = require("wibox") +local awful = require("awful") + +-- Create a textbox widget +local brightness_text = wibox.widget.textbox() + +-- Function to update the brightness value +local function update_brightness() + awful.spawn.easy_async_with_shell("xbacklight -get", function(stdout) + local brightness = stdout:gsub("\n", "") + local icon + + if tonumber(brightness) == 100 then + icon = "󰛨" + elseif tonumber(brightness) >= 90 then + icon = "󱩖" + elseif tonumber(brightness) >= 80 then + icon = "󱩕" + elseif tonumber(brightness) >= 70 then + icon = "󱩔" + elseif tonumber(brightness) >= 60 then + icon = "󱩓" + elseif tonumber(brightness) >= 50 then + icon = "󱩒" + elseif tonumber(brightness) >= 40 then + icon = "󱩑" + elseif tonumber(brightness) >= 30 then + icon = "󱩐" + elseif tonumber(brightness) >= 20 then + icon = "󱩏" + else + icon = "󱩎" + end + + brightness_text:set_markup(icon .. " " .. math.floor(tonumber(brightness)) .. "%") + end) +end + +-- Update the brightness initially +update_brightness() + +-- Refresh the brightness every 5 seconds +awful.widget.watch("bash -c 'xbacklight -get'", 10, function(widget, stdout) + update_brightness() +end) + +return brightness_text diff --git a/user/.config/awesome/ui/widgets/layout b/user/.config/awesome/ui/widgets/layout deleted file mode 100755 index 94650ee9c..000000000 --- a/user/.config/awesome/ui/widgets/layout +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -layout=$(setxkbmap -query | grep -oP 'layout:\s*\K\w+'); -echo "󰌌 $layout" | tr '[:lower:]' '[:upper:]'; diff --git a/user/.config/awesome/ui/widgets/layout.lua b/user/.config/awesome/ui/widgets/layout.lua new file mode 100644 index 000000000..1606139f3 --- /dev/null +++ b/user/.config/awesome/ui/widgets/layout.lua @@ -0,0 +1,23 @@ +local wibox = require("wibox") +local awful = require("awful") + +-- Create a textbox widget +local layout_text = wibox.widget.textbox() + +-- Function to update the layout value +local function update_layout() + awful.spawn.easy_async_with_shell("setxkbmap -query | grep -oP 'layout:\\s*\\K\\w+'", function(stdout) + local layout = stdout:gsub("\n", "") + layout_text:set_markup("󰌌 " .. layout:upper()) + end) +end + +-- Update the layout initially +update_layout() + +-- Refresh the layout every 5 seconds +awful.widget.watch("bash -c 'setxkbmap -query | grep -oP \"layout:\\\\s*\\\\K\\\\w+\"'", 10, function(widget, stdout) + update_layout() +end) + +return layout_text diff --git a/user/.config/awesome/ui/widgets/volume b/user/.config/awesome/ui/widgets/volume deleted file mode 100755 index f4ae852c7..000000000 --- a/user/.config/awesome/ui/widgets/volume +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -# Prints the current volume or 🔇 if muted. -[ "$(pamixer --get-mute)" = true ] && echo "󰕿x" && exit -vol="$(pamixer --get-volume)" -if [ "$vol" -gt "50" ]; then - icon="󰕾" -elif [ "$vol" -gt "10" ]; then - icon="󰖀" -elif [ "$vol" -gt "0" ]; then - icon="󰕿" -else - echo "󰕿x" && exit -fi -echo -e "$icon $vol%" diff --git a/user/.config/awesome/ui/widgets/volume.lua b/user/.config/awesome/ui/widgets/volume.lua new file mode 100644 index 000000000..4ce37c267 --- /dev/null +++ b/user/.config/awesome/ui/widgets/volume.lua @@ -0,0 +1,35 @@ +-- Required libraries +local awful = require("awful") +local wibox = require("wibox") + +-- Create text widget +local volume_widget = wibox.widget.textbox() + +-- Function to update the text widget +local function update_volume(widget) + local mute = io.popen("pamixer --get-mute"):read() + if mute == "true\n" then + widget:set_text("󰕿x") + else + local vol = tonumber(io.popen("pamixer --get-volume"):read()) + local icon + if vol > 50 then + icon = "󰕾" + elseif vol > 10 then + icon = "󰖀" + elseif vol > 0 then + icon = "󰕿" + else + widget:set_text("󰕿x") + return + end + widget:set_text(icon .. " " .. vol .. "%") + end +end + +-- Update the widget every 5 seconds +awful.widget.watch("bash -c 'pamixer --get-volume'", 10, function(widget, stdout) + update_volume(widget) +end, volume_widget) + +return volume_widget diff --git a/user/.config/awesome/ui/widgets/wifi b/user/.config/awesome/ui/widgets/wifi deleted file mode 100755 index c8d97e791..000000000 --- a/user/.config/awesome/ui/widgets/wifi +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash - -get_wifi_strength() { - # Retrieves the wifi signal strength in dBm - strength=$(nmcli -t -f active,ssid,signal dev wifi | grep yes | cut -d ":" -f3) - # Converts dBm to percentage (0% to 100%) - if [ "$strength" -le 30 ]; then - echo "1" - elif [ "$strength" -le 60 ]; then - echo "2" - elif [ "$strength" -le 90 ]; then - echo "3" - else - echo "4" - fi -} - -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) - -if [ "$constate" = "disconnected" ]; then - echo " 󰤮 " -elif [ "$constate" = "connected" ]; then - strength=$(get_wifi_strength) - case "$strength" in - "1") icon="󰤟 " ;; - "2") icon="󰤢 " ;; - "3") icon="󰤥 " ;; - "4") icon="󰤨 " ;; - esac - echo "$icon$currentwfi" -else - echo "󰤮 " -fi diff --git a/user/.config/awesome/ui/widgets/wifi.lua b/user/.config/awesome/ui/widgets/wifi.lua new file mode 100644 index 000000000..5eb2cd353 --- /dev/null +++ b/user/.config/awesome/ui/widgets/wifi.lua @@ -0,0 +1,70 @@ +local awful = require("awful") +local wibox = require("wibox") + +local wifi_widget = wibox.widget { + widget = wibox.widget.textbox +} + +local function get_wifi_strength() + local cmd = [[nmcli -t -f active,ssid,signal dev wifi | grep yes | cut -d ":" -f3]] + local f = io.popen(cmd) + local strength = f:read("*all") + f:close() + strength = tonumber(strength) + + if strength <= 30 then + return 1 + elseif strength <= 60 then + return 2 + elseif strength <= 90 then + return 3 + else + return 4 + end +end + +local function update_wifi_widget() + local constate = "" + local currentwfi = "" + + -- Get connection state and SSID + local cmd = [[nmcli dev | grep wifi | sed 's/ \{2,\}/|/g' | cut -d '|' -f3,4 | head -1]] + local f = io.popen(cmd) + local output = f:read("*all") + f:close() + + for token in string.gmatch(output, "[^|\n]+") do + if constate == "" then + constate = token + else + currentwfi = token + end + end + + -- Update wifi widget + if constate == "disconnected" then + wifi_widget:set_text("󰤮 ") + elseif constate == "connected" then + local strength = get_wifi_strength() + local icon = "" + if strength == 1 then + icon = "󰤟 " + elseif strength == 2 then + icon = "󰤢 " + elseif strength == 3 then + icon = "󰤥 " + elseif strength == 4 then + icon = "󰤨 " + end + wifi_widget:set_text(icon .. currentwfi) + else + wifi_widget:set_text("󰤮 ") + end +end + +-- Update the widget every five seconds +awful.widget.watch("bash -c 'source $HOME/.profile; wifi-widget'", 10, function(widget, stdout) + update_wifi_widget() +end) + +return wifi_widget diff --git a/user/.config/doom/config.el b/user/.config/doom/config.el index 220fd289b..c8ff9d6c5 100644 --- a/user/.config/doom/config.el +++ b/user/.config/doom/config.el @@ -563,3 +563,5 @@ List of keybindings (SPC h b b)") (set-frame-parameter (selected-frame) 'alpha '(98 . 80)) (add-to-list 'default-frame-alist '(alpha . (98 . 80))) + +(add-hook 'prog-mode-hook #'lsp) diff --git a/user/.config/doom/config.org b/user/.config/doom/config.org index 52524cca8..209981ef7 100644 --- a/user/.config/doom/config.org +++ b/user/.config/doom/config.org @@ -52,6 +52,7 @@ - [[#winner-mode][Winner mode]] - [[#zap-to-char][Zap to char]] - [[#transparency][Transparency]] +- [[#autostart-lsp][Autostart lsp]] * About this config This is my personal Doom Emacs config. Doom Emacs is a distribution of Emacs @@ -1128,3 +1129,8 @@ the second occurrence of 'e'. (set-frame-parameter (selected-frame) 'alpha '(98 . 80)) (add-to-list 'default-frame-alist '(alpha . (98 . 80))) #+END_SRC + +* Autostart lsp +#+BEGIN_SRC emacs-lisp +(add-hook 'prog-mode-hook #'lsp) +#+END_SRC diff --git a/user/.config/dunst/critical.png b/user/.config/dunst/critical.png deleted file mode 100644 index b36d5b22a20e64ebccc255f41e6a4fc5114c7482..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35927 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 P00000NkvXXu0mjf^B0Xh diff --git a/user/.config/dunst/dunstrc b/user/.config/dunst/dunstrc deleted file mode 100644 index 3cbe6d6f8..000000000 --- a/user/.config/dunst/dunstrc +++ /dev/null @@ -1,359 +0,0 @@ -[global] - ### Display ### - - # Which monitor should the notifications be displayed on. - monitor = 0 - - # Display notification on focused monitor. Possible modes are: - # mouse: follow mouse pointer - # keyboard: follow window with keyboard focus - # none: don't follow anything - # - # "keyboard" needs a window manager that exports the - # _NET_ACTIVE_WINDOW property. - # This should be the case for almost all modern window managers. - # - # If this option is set to mouse or keyboard, the monitor option - # will be ignored. - follow = mouse - - # Show how many messages are currently hidden (because of geometry). - indicate_hidden = yes - - # Shrink window if it's smaller than the width. Will be ignored if - # width is 0. - shrink = no - - # The transparency of the window. Range: [0; 100]. - # This option will only work if a compositing window manager is - # present (e.g. xcompmgr, compiz, etc.). - transparency = 30 - - # Draw a line of "separator_height" pixel height between two - # notifications. - # Set to 0 to disable. - separator_height = 2 - - # Padding between text and separator. - padding = 8 - - # Horizontal padding. - horizontal_padding = 8 - - # Defines width in pixels of frame around the notification window. - # Set to 0 to disable. - frame_width = 3 - - # Defines color of the frame around the notification window. - frame_color = "#fb4934" - - # Define a color for the separator. - # possible values are: - # * auto: dunst tries to find a color fitting to the background; - # * foreground: use the same color as the foreground; - # * frame: use the same color as the frame; - # * anything else will be interpreted as a X color. - separator_color = auto - - # Sort messages by urgency. - sort = yes - - # Don't remove messages, if the user is idle (no mouse or keyboard input) - # for longer than idle_threshold seconds. - # Set to 0 to disable. - # A client can set the 'transient' hint to bypass this. See the rules - # section for how to disable this if necessary - idle_threshold = 120 - - ### Text ### - font = mononoki Nerd Font 10 - - # The spacing between lines. If the height is smaller than the - # font height, it will get raised to the font height. - line_height = 0 - - # Possible values are: - # full: Allow a small subset of html markup in notifications: - # bold - # italic - # strikethrough - # underline - # - # For a complete reference see - # . - # - # strip: This setting is provided for compatibility with some broken - # clients that send markup even though it's not enabled on the - # server. Dunst will try to strip the markup but the parsing is - # simplistic so using this option outside of matching rules for - # specific applications *IS GREATLY DISCOURAGED*. - # - # no: Disable markup parsing, incoming notifications will be treated as - # plain text. Dunst will not advertise that it has the body-markup - # capability if this is set as a global setting. - # - # It's important to note that markup inside the format option will be parsed - # regardless of what this is set to. - markup = full - - # The format of the message. Possible variables are: - # %a appname - # %s summary - # %b body - # %i iconname (including its path) - # %I iconname (without its path) - # %p progress value if set ([ 0%] to [100%]) or nothing - # %n progress value if set without any extra characters - # %% Literal % - # Markup is allowed - format = "%s\n%b" - - # Alignment of message text. - # Possible values are "left", "center" and "right". - alignment = center - - # Show age of message if message is older than show_age_threshold - # seconds. - # Set to -1 to disable. - show_age_threshold = 60 - - # Split notifications into multiple lines if they don't fit into - # geometry. - word_wrap = yes - - # When word_wrap is set to no, specify where to make an ellipsis in long lines. - # Possible values are "start", "middle" and "end". - ellipsize = middle - - # Ignore newlines '\n' in notifications. - ignore_newline = no - - # Stack together notifications with the same content - stack_duplicates = true - - # Hide the count of stacked notifications with the same content - hide_duplicate_count = false - - # Display indicators for URLs (U) and actions (A). - show_indicators = yes - - ### Icons ### - - # Align icons left/right/off - icon_position = left - - # Scale larger icons down to this size, set to 0 to disable - max_icon_size = 32 - - # Paths to default icons. - icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/ - - ### History ### - - # Should a notification popped up from history be sticky or timeout - # as if it would normally do. - sticky_history = yes - - # Maximum amount of notifications kept in history - history_length = 20 - - ### Misc/Advanced ### - - # dmenu path. - dmenu = /usr/bin/dmenu -p dunst: - - # Browser for opening urls in context menu. - browser = /usr/bin/firefox - - # Always run rule-defined scripts, even if the notification is suppressed - always_run_script = true - - # Define the title of the windows spawned by dunst - title = Dunst - - # Define the class of the windows spawned by dunst - class = Dunst - - # Define the corner radius of the notification window - # in pixel size. If the radius is 0, you have no rounded - # corners. - # The radius will be automatically lowered if it exceeds half of the - # notification height to avoid clipping text and/or icons. - corner_radius = 7 - - ### Legacy - - # Use the Xinerama extension instead of RandR for multi-monitor support. - # This setting is provided for compatibility with older nVidia drivers that - # do not support RandR and using it on systems that support RandR is highly - # discouraged. - # - # By enabling this setting dunst will not be able to detect when a monitor - # is connected or disconnected which might break follow mode if the screen - # layout changes. - force_xinerama = false - - ### mouse - - # Defines action of mouse event - # Possible values are: - # * none: Don't do anything. - # * do_action: If the notification has exactly one action, or one is marked as default, - # invoke it. If there are multiple and no default, open the context menu. - # * close_current: Close current notification. - # * close_all: Close all notifications. - mouse_left_click = do_action - mouse_middle_click = close_all - mouse_right_click = close_current - -# Experimental features that may or may not work correctly. Do not expect them -# to have a consistent behaviour across releases. -[experimental] - # Calculate the dpi to use on a per-monitor basis. - # If this setting is enabled the Xft.dpi value will be ignored and instead - # dunst will attempt to calculate an appropriate dpi value for each monitor - # using the resolution and physical size. This might be useful in setups - # where there are multiple screens with very different dpi values. - per_monitor_dpi = false - -[urgency_low] - # IMPORTANT: colors have to be defined in quotation marks. - # Otherwise the "#" and following would be interpreted as a comment. - background = "#282828" - foreground = "#ebdbd2" - timeout = 5 - # Icon for notifications with low urgency, uncomment to enable - icon = /home/drk/.config/dunst/normal.png - -[urgency_normal] - background = "#282828" - foreground = "#ebdbd2" - timeout = 5 - # Icon for notifications with normal urgency, uncomment to enable - icon = /home/drk/.config/dunst/normal.png - -[urgency_critical] - background = "#900000" - foreground = "#ebdbd2" - frame_color = "#ff0000" - timeout = 5 - # Icon for notifications with critical urgency, uncomment to enable - icon = /home/drk/.config/dunst/critical.png - -# Every section that isn't one of the above is interpreted as a rules to -# override settings for certain messages. -# -# Messages can be matched by -# appname (discouraged, see desktop_entry) -# body -# category -# desktop_entry -# icon -# match_transient -# msg_urgency -# stack_tag -# summary -# -# and you can override the -# background -# foreground -# format -# frame_color -# fullscreen -# new_icon -# set_stack_tag -# set_transient -# timeout -# urgency -# -# Shell-like globbing will get expanded. -# -# Instead of the appname filter, it's recommended to use the desktop_entry filter. -# GLib based applications export their desktop-entry name. In comparison to the appname, -# the desktop-entry won't get localized. -# -# SCRIPTING -# You can specify a script that gets run when the rule matches by -# setting the "script" option. -# The script will be called as follows: -# script appname summary body icon urgency -# where urgency can be "LOW", "NORMAL" or "CRITICAL". -# -# NOTE: if you don't want a notification to be displayed, set the format -# to "". -# NOTE: It might be helpful to run dunst -print in a terminal in order -# to find fitting options for rules. - -# Disable the transient hint so that idle_threshold cannot be bypassed from the -# client -#[transient_disable] -# match_transient = yes -# set_transient = no -# -# Make the handling of transient notifications more strict by making them not -# be placed in history. -#[transient_history_ignore] -# match_transient = yes -# history_ignore = yes - -# fullscreen values -# show: show the notifications, regardless if there is a fullscreen window opened -# delay: displays the new notification, if there is no fullscreen window active -# If the notification is already drawn, it won't get undrawn. -# pushback: same as delay, but when switching into fullscreen, the notification will get -# withdrawn from screen again and will get delayed like a new notification -#[fullscreen_delay_everything] -# fullscreen = delay -#[fullscreen_show_critical] -# msg_urgency = critical -# fullscreen = show - -#[espeak] -# summary = "*" -# script = dunst_espeak.sh - -#[script-test] -# summary = "*script*" -# script = dunst_test.sh - -#[ignore] -# # This notification will not be displayed -# summary = "foobar" -# format = "" - -#[history-ignore] -# # This notification will not be saved in history -# summary = "foobar" -# history_ignore = yes - -#[skip-display] -# # This notification will not be displayed, but will be included in the history -# summary = "foobar" -# skip_display = yes - -#[signed_on] -# appname = Pidgin -# summary = "*signed on*" -# urgency = low -# -#[signed_off] -# appname = Pidgin -# summary = *signed off* -# urgency = low -# -#[says] -# appname = Pidgin -# summary = *says* -# urgency = critical -# -#[twitter] -# appname = Pidgin -# summary = *twitter.com* -# urgency = normal -# -#[stack-volumes] -# appname = "some_volume_notifiers" -# set_stack_tag = "volume" -# -# vim: ft=cfg - diff --git a/user/.config/dunst/normal.png b/user/.config/dunst/normal.png deleted file mode 100644 index 505e12c93392262f693add945b7fdf9e671f7dd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3895 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 diff --git a/user/.config/fish/config.fish b/user/.config/fish/config.fish index 979162e9a..55a1ef528 100644 --- a/user/.config/fish/config.fish +++ b/user/.config/fish/config.fish @@ -14,8 +14,8 @@ set -U fish_user_paths $HOME/.bin $HOME/.local/bin $HOME/.config/emacs/bin $HOM ### EXPORT ### set fish_greeting # Supresses fish's intro message set TERM "xterm-256color" # Sets the terminal type -set EDITOR "$HOME/.local/bin/lvim" -set VISUAL "wezterm start --class editor -- $HOME/.local/bin/lvim" +set EDITOR "emacsclient -t -a ''" +set VISUAL "emacsclient -c -a 'emacs'" ### SET BAT AS MANPAGER set -x MANPAGER "sh -c 'col -bx | bat -l man -p'" @@ -125,8 +125,8 @@ alias .3='cd ../../..' alias .4='cd ../../../..' alias .5='cd ../../../../..' -# neovim as vim -alias vim="$HOME/.local/bin/lvim" +# emacs as vim +alias vim="emacsclient -t -a ''" # newsboat alias newsboat='newsboat -u ~/.config/newsboat/urls' diff --git a/user/.config/hilbish/init.lua b/user/.config/hilbish/init.lua deleted file mode 100644 index 0a5cc79d5..000000000 --- a/user/.config/hilbish/init.lua +++ /dev/null @@ -1,118 +0,0 @@ --- Default Hilbish config -local hilbish = require 'hilbish' -local lunacolors = require 'lunacolors' -local bait = require 'bait' -local ansikit = require 'ansikit' - -local function doPrompt(fail) - hilbish.prompt( - lunacolors.format( - '{yellow}%u {white}in {red}%h {white}in {italic}{blue}%d ' .. (fail and '{red}' or '{green}') .. ' ' - ) - ) -end - -doPrompt() - -bait.catch('command.exit', function(code) - doPrompt(code ~= 0) -end) - - -bait.catch( - 'hilbish.vimMode', - function(mode) - if mode ~= 'insert' then - ansikit.cursorStyle(ansikit.blockCursor) - else - ansikit.cursorStyle(ansikit.lineCursor) - end -end -) - -local aliases = { - cat = "bat", - vim = "lvim", - ls = 'exa -al --icons --color=always --group-directories-first', - la = 'exa -a --icons --color=always --group-directories-first', - ll = 'exa -l --icons --color=always --group-directories-first', - lt = 'exa -aT --icons --color=always --group-directories-first', - pkupd = 'paru -Syyu', - pkget = 'paru -S', - pkrmv = 'paru -Rcns', - pksrc = 'paru -Ss', - pkcln = 'paru -Scc', - tree = 'ls --tree', - grep = 'grep --color=auto', - egrep = 'egrep --color=auto', - fgrep = 'fgrep --color=auto', - neofetch = 'pfetch', - addup = 'git add -u', - addall = 'git add .', - branch = 'git branch', - checkout = 'git checkout', - clone = 'git clone', - commit = 'git commit -m', - fetch = 'git fetch', - pull = 'git pull origin', - push = 'git push origin', - stat = 'git status', - tag = 'git tag', - newtag = 'git tag -a', - df = 'df -h', - free = 'free -m', - newsboat = 'newsboat -u ~/.config/newsboat/urls', - fli = 'flix-cli', - ani = 'ani-cli', - aniq = 'ani-cli -q', - mx = 'pulsemixer', - amx = 'alsamixer', - mk = 'cmus', - ms = 'cmus', - music = 'cmus', - po = 'systemctl poweroff', - sp = 'systemctl suspend', - rb = 'systemctl reboot', - fm ='$HOME/.config/vifm/scripts/vifmrun', - file ='$HOME/.config/vifm/scripts/vifmrun', - flm = '$HOME/.config/vifm/scripts/vifmrun', - vifm = '$HOME/.config/vifm/scripts/vifmrun', - rm = 'rm -vI', - mv = 'mv -iv', - cp = 'cp -iv', - mkd = 'mkdir -pv', - psa = 'ps auxf', - psgrep = 'ps aux | grep -v grep | grep -i -e VSZ -e', - psmem = 'ps auxf | sort -nr -k 4', - pscpu = 'ps auxf | sort -nr -k 3', - yta_aac = 'yt-dlp --extract-audio --audio-format aac', - yta_best = 'yt-dlp --extract-audio --audio-format best', - yta_flac = 'yt-dlp --extract-audio --audio-format flac', - yta_m4a = 'yt-dlp --extract-audio --audio-format m4a', - yta_mp3 = 'yt-dlp --extract-audio --audio-format mp3', - yta_opus = 'yt-dlp --extract-audio --audio-format opus', - yta_vorbis = 'yt-dlp --extract-audio --audio-format vorbis', - yta_wav = 'yt-dlp --extract-audio --audio-format wav', - ytv_best = 'yt-dlp -f bestvideo+bestaudio', - yt = 'ytfzf -ftsl', - ytm = 'ytfzf -mts', - netstats = 'nmcli dev', - wfi = 'nmtui-connect', - wfi_scan = 'nmcli dev wifi rescan && nmcli dev wifi list', - wfi_edit = 'nmtui-edit', - wfi_on = 'nmcli radio wifi on', - wfi_off = 'nmcli radio wifi off', - blt = 'bluetoothct', -} - -local function load_table (table) - for cmd, new_cmd in pairs(table) do - hilbish.alias(cmd, new_cmd) - end -end - -local function load_aliases () - load_table(aliases) -end - -load_aliases() diff --git a/user/.config/lvim/config.lua b/user/.config/lvim/config.lua deleted file mode 100644 index fac60da46..000000000 --- a/user/.config/lvim/config.lua +++ /dev/null @@ -1,128 +0,0 @@ --- neovide options -vim.o.guifont = "mononoki Nerd Font:h08" -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 = 2 -vim.opt.tabstop = 2 -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/bash' - --- general -lvim.use_icons = false -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" }, - { "OmniSharp/omnisharp-vim" }, - { "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/picom/picom.conf b/user/.config/picom/picom.conf index 3508ec61f..14d2490f7 100644 --- a/user/.config/picom/picom.conf +++ b/user/.config/picom/picom.conf @@ -56,16 +56,16 @@ focus-exclude = [ "class_g = 'Cairo-clock'" ]; # opaity-rule = [] ## Blur -blur-background = true; -blur-background-frame = true; -blur-background-fixed = true; -#blur-method = "dual_kawase"; -blur-kern = "3x3box"; -blur-method = "kawase"; -blur-strength = 2; +# blur-background = true; +# blur-background-frame = true; +# blur-background-fixed = true; +# #blur-method = "dual_kawase"; +# blur-kern = "3x3box"; +# blur-method = "kawase"; +# blur-strength = 2; ## General Settings -backend = "glx"; +backend = "xrender"; vsync = true; dbe = false; detect-client-opacity = true; diff --git a/user/.config/qt5ct/qt5ct.conf b/user/.config/qt5ct/qt5ct.conf deleted file mode 100644 index 08368ab5c..000000000 --- a/user/.config/qt5ct/qt5ct.conf +++ /dev/null @@ -1,31 +0,0 @@ -[Appearance] -color_scheme_path=/usr/share/qt5ct/colors/airy.conf -custom_palette=false -standard_dialogs=gtk2 -style=gtk2 - -[Fonts] -fixed="Mononoki Nerd Font,10,-1,5,50,0,0,0,0,0,Regular" -general="Cantarell,10,-1,5,50,0,0,0,0,0,Regular" - -[Interface] -activate_item_on_single_click=1 -buttonbox_layout=0 -cursor_flash_time=1000 -dialog_buttons_have_icons=1 -double_click_interval=400 -gui_effects=@Invalid() -keyboard_scheme=2 -menus_have_icons=true -show_shortcuts_in_context_menus=true -stylesheets=@Invalid() -toolbutton_style=4 -underline_shortcut=1 -wheel_scroll_lines=3 - -[SettingsWindow] -geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\am\0\0\x3\xfc\0\0\0\0\0\0\0\0\0\0\x2\xde\0\0\x2\x84\0\0\0\0\x2\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\am\0\0\x3\xfc) - -[Troubleshooting] -force_raster_widgets=1 -ignored_applications=@Invalid() diff --git a/user/.config/qt6ct/qt6ct.conf b/user/.config/qt6ct/qt6ct.conf deleted file mode 100644 index 6f85a8818..000000000 --- a/user/.config/qt6ct/qt6ct.conf +++ /dev/null @@ -1,32 +0,0 @@ -[Appearance] -color_scheme_path=/usr/share/qt6ct/colors/airy.conf -custom_palette=false -icon_theme=gruvbox-dark-icons-gtk -standard_dialogs=gtk2 -style=qt6gtk2 - -[Fonts] -fixed="Mononoki Nerd Font,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,Regular" -general="Cantarell,12,-1,5,400,0,0,0,0,0,0,0,0,0,0,1,Regular" - -[Interface] -activate_item_on_single_click=1 -buttonbox_layout=0 -cursor_flash_time=1000 -dialog_buttons_have_icons=1 -double_click_interval=400 -gui_effects=@Invalid() -keyboard_scheme=2 -menus_have_icons=true -show_shortcuts_in_context_menus=true -stylesheets=@Invalid() -toolbutton_style=4 -underline_shortcut=1 -wheel_scroll_lines=3 - -[SettingsWindow] -geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\am\0\0\x3\xfc\0\0\0\0\0\0\0\0\0\0\am\0\0\x3\xfc\0\0\0\0\0\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\am\0\0\x3\xfc) - -[Troubleshooting] -force_raster_widgets=1 -ignored_applications=@Invalid() diff --git a/user/.config/qutebrowser/bookmarks/urls b/user/.config/qutebrowser/bookmarks/urls deleted file mode 100644 index fe7e82c62..000000000 --- a/user/.config/qutebrowser/bookmarks/urls +++ /dev/null @@ -1,11 +0,0 @@ -https://mail.google.com/ gmail -https://mail.tutanota.com/ tutanota -https://odysee.com/ odysee -https://youtube.com/ youtube -https://fosstodon.org/ mastodon -https://gitlab.com/ gitlab -https://app.element.io/ element -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 diff --git a/user/.config/qutebrowser/config.py b/user/.config/qutebrowser/config.py deleted file mode 100644 index 90660e8bd..000000000 --- a/user/.config/qutebrowser/config.py +++ /dev/null @@ -1,251 +0,0 @@ -## ____ __ -## / __ \_________ _/ /_____ -## / / / / ___/ __ `/ //_/ _ \ -## / /_/ / / / /_/ / ,< / __/ Clay Gomera (Drake) -## /_____/_/ \__,_/_/|_|\___/ My custom qutebrowser config -## - -# Autogenerated config.py -# -# 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://*/*') - -# Type: BoolAsk -# Valid values: -# - true -# - false -# - ask -# config.set('content.notifications.enabled', True, 'https://www.youtube.com') - -# Directory to save downloads to. If unset, a sensible OS-specific -# default is used. -# Type: Directory -c.downloads.location.directory = '~/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') diff --git a/user/.config/qutebrowser/gruvbox.py b/user/.config/qutebrowser/gruvbox.py deleted file mode 100644 index e2704fcd5..000000000 --- a/user/.config/qutebrowser/gruvbox.py +++ /dev/null @@ -1,332 +0,0 @@ -# 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 index a4a28cbc8..1221f416e 100644 --- a/user/.config/rofi/config.rasi +++ b/user/.config/rofi/config.rasi @@ -1,7 +1,7 @@ configuration{ modi: "run,drun,window"; lines: 10; - font: "mononoki Nerd Font 14"; + font: "mononoki Nerd Font 13"; show-icons: true; icon-theme: "gruvbox-dark-icons-gtk"; terminal: "alacritty"; diff --git a/user/.config/rofi/scripts/rofi_scrot b/user/.config/rofi/scripts/rofi_scrot index a9d188834..f6678adc8 100755 --- a/user/.config/rofi/scripts/rofi_scrot +++ b/user/.config/rofi/scripts/rofi_scrot @@ -11,10 +11,9 @@ cd "$HOME/Pictures/Screenshots" || exit 0 ## CHOICES ## cho1="󱣴 Entire screen" cho2="󱎫 Entire screen with delay" -cho3=" Focused window" -cho4="󱕻 Select area" -cho5="󱎘 Exit" -chos="$cho1\n$cho2\n$cho3\n$cho4\n$cho5" +cho3="󱕻 Select window or area" +cho4="󱎘 Exit" +chos="$cho1\n$cho2\n$cho3\n$cho4" ## DELAY OPTIONS ## del1="󱑀 3 sec delay" @@ -27,27 +26,22 @@ delays() { del=$(echo -e "$dels" | rofi -dmenu -i -p "  Select Delay "); case $del in "$del1") - scrot -d 3 && notify-send "Screenshot saved";; + escrotum -d 3 -C && notify-send "Screenshot saved";; "$del2") - scrot -d 5 && notify-send "Screenshot saved";; + escrotum -d 5 -C && notify-send "Screenshot saved";; "$del3") - scrot -d 10 && notify-send "Screenshot saved" + escrotum -d 10 -C && notify-send "Screenshot saved" esac } ## ENTIRE SCREEN FUNCTION ## screen() { - scrot && notify-send "Screenshot saved" -} - -## FOCUSED WINDOW FUNCTION -window() { - scrot -u -b && notify-send "Screenshot saved." + escrotum && notify-send "Screenshot saved" } ## SELECTED AREA FUNCTION ## -area() { - scrot -s && notify-send "Screenshot saved." +selectw() { + escrotum -s && notify-send "Screenshot saved." } ## MAIN ACTION ## @@ -58,9 +52,7 @@ case $choice in "$cho2") delays;; "$cho3") - window;; + selectw;; "$cho4") - area;; - "$cho5") exit 0 esac diff --git a/user/.config/vifm/vifmrc b/user/.config/vifm/vifmrc index 6be34863e..8a9132834 100644 --- a/user/.config/vifm/vifmrc +++ b/user/.config/vifm/vifmrc @@ -13,7 +13,7 @@ " Since emacs is a GUI app and not a terminal app like vim, append the command " with an ampersand (&). -set vicmd=~/.local/bin/lvim +set vicmd=nvim " This makes vifm perform file operations on its own instead of relying on " standard utilities like `cp`. While using `cp` and alike is a more universal diff --git a/user/.config/wezterm/wezterm.lua b/user/.config/wezterm/wezterm.lua index 3dd04cd31..d1e5d4dce 100644 --- a/user/.config/wezterm/wezterm.lua +++ b/user/.config/wezterm/wezterm.lua @@ -28,5 +28,5 @@ return { exit_behavior = "Close", window_close_confirmation = 'NeverPrompt', tab_bar_at_bottom = false, - window_background_opacity = 0.9, + window_background_opacity = 0.95, } diff --git a/user/.xinitrc b/user/.xinitrc index 5f7d7cc98..bb73f141d 100755 --- a/user/.xinitrc +++ b/user/.xinitrc @@ -12,7 +12,6 @@ sysresources=/etc/X11/xinit/.Xresources sysmodmap=/etc/X11/xinit/.Xmodmap # merge in defaults and keymaps - if [ -f $sysresources ]; then xrdb -merge $sysresources fi @@ -29,9 +28,9 @@ if [ -f "$usermodmap" ]; then xmodmap "$usermodmap" fi -### ENVIRONMENT VARIABLES +# environment variables export MOZ_USE_XINPUT2=1 -export QT_QPA_PLATFORMTHEME=qt5ct +export QT_STYLE_OVERRIDE=kvantum # clean home export XDG_DATA_HOME="$HOME/.local/share" @@ -44,10 +43,10 @@ export INPUTRC="$HOME/.config/inputrc" export GNUPGHOME="$HOME/.local/share/gnupg" # default apps -export EDITOR="$HOME/.local/bin/lvim" # $EDITOR use lunarvim in terminal -export VISUAL="wezterm start --class editor -- $HOME/.local/bin/lvim" # $VISUAL use lunarvim in new terminal window +export EDITOR="emacsclient -t -a ''" +export VISUAL="emacsclient -c -a 'emacs'" export BROWSER="firefox" export VIEWER="zathura" # start window manager / desktop environment -exec awesome +dbus-launch awesome