├── .gitmodules ├── README.md ├── config ├── Kvantum │ ├── kvantum-cat.kvconfig │ ├── kvantum-nord.kvconfig │ └── kvantum.kvconfig ├── alacritty │ └── alacritty.toml ├── bat │ ├── config │ ├── config-cat │ ├── config-nord │ └── themes │ │ └── Catppuccin-frappe.tmTheme ├── bottom │ ├── bottom-cat.toml │ ├── bottom-nord.toml │ └── bottom.toml ├── dunst │ ├── dunstrc │ ├── dunstrc-cat │ └── dunstrc-nord ├── fcitx5 │ ├── conf │ │ ├── classicui-cat.conf │ │ ├── classicui-nord.conf │ │ ├── classicui.conf │ │ └── notifications.conf │ ├── config │ └── profile ├── gitui │ ├── theme-cat.ron │ ├── theme-nord.ron │ └── theme.ron ├── gtk-2.0 │ └── gtkfilechooser.ini ├── gtk-3.0 │ ├── assets │ │ ├── close-active.svg │ │ ├── close-backdrop-active.svg │ │ ├── close-backdrop-hover.svg │ │ ├── close-backdrop-normal.svg │ │ ├── close-hover.svg │ │ ├── close-normal.svg │ │ ├── maximize-active.svg │ │ ├── maximize-backdrop-active.svg │ │ ├── maximize-backdrop-hover.svg │ │ ├── maximize-backdrop-normal.svg │ │ ├── maximize-hover.svg │ │ ├── maximize-normal.svg │ │ ├── maximized-active.svg │ │ ├── maximized-backdrop-active.svg │ │ ├── maximized-backdrop-hover.svg │ │ ├── maximized-backdrop-normal.svg │ │ ├── maximized-hover.svg │ │ ├── maximized-normal.svg │ │ ├── minimize-active.svg │ │ ├── minimize-backdrop-active.svg │ │ ├── minimize-backdrop-hover.svg │ │ ├── minimize-backdrop-normal.svg │ │ ├── minimize-hover.svg │ │ └── minimize-normal.svg │ ├── bookmarks │ ├── colors.css │ ├── gtk.css │ ├── settings-cat.ini │ ├── settings-nord.ini │ └── settings.ini ├── gtk-4.0 │ ├── colors.css │ ├── gtk-cat.css │ ├── gtk-dark-cat.css │ ├── gtk-dark-nord.css │ ├── gtk-dark.css │ ├── gtk-nord.css │ ├── gtk.css │ └── settings.ini ├── i3 │ ├── brightness.sh │ ├── cat.sh │ ├── config │ ├── gummy.sh │ ├── lock.sh │ ├── mon.sh │ ├── nord.sh │ ├── start.sh │ └── volume.sh ├── networkmanager-dmenu │ └── config.ini ├── nvim │ ├── after │ │ └── ftplugin │ │ │ └── rust.lua │ ├── init.lua │ ├── lazy-lock.json │ └── lua │ │ ├── .luarc.json │ │ └── user │ │ ├── cmp │ │ ├── autopairs.lua │ │ ├── cmp.lua │ │ ├── guard.lua │ │ ├── handlersmason.lua │ │ ├── installlsp │ │ ├── lsp-sign.lua │ │ ├── lsp.lua │ │ ├── lspsaga.lua │ │ └── luasnip.lua │ │ ├── editor │ │ ├── colorsizer.lua │ │ ├── comment.lua │ │ ├── illuminate.lua │ │ └── treesitter.lua │ │ ├── keymaps.lua │ │ ├── lang │ │ └── image.lua │ │ ├── lazy.lua │ │ ├── options.lua │ │ ├── other │ │ ├── flash.lua │ │ ├── hlslen.lua │ │ └── ufo.lua │ │ ├── tool │ │ ├── nvim-tree.lua │ │ ├── telescope.lua │ │ ├── whichkey.lua │ │ └── wilder.lua │ │ └── ui │ │ ├── alpha.lua │ │ ├── bufferline.lua │ │ ├── catppuccin.lua │ │ ├── colorscheme.lua │ │ ├── icons.lua │ │ ├── indentline.lua │ │ ├── lualine.lua │ │ └── nordic.lua ├── polybar │ ├── config-cat.ini │ ├── config-nord.ini │ ├── config.ini │ ├── launch.sh │ ├── launchleft.sh │ └── scripts │ │ ├── cava.py │ │ ├── nvidia-mem.sh │ │ ├── nvidia-tem.sh │ │ ├── nvidia-use.sh │ │ └── yay.sh ├── ranger │ ├── commands.py │ ├── commands_full.py │ ├── plugins │ │ ├── __init__.py │ │ └── __pycache__ │ │ │ └── __init__.cpython-310.opt-1.pyc │ ├── rc.conf │ ├── rifle.conf │ └── scope.sh ├── rofi │ ├── catppuccin-frappe.rasi │ ├── colors.rasi │ ├── config-cat.rasi │ ├── config-nord.rasi │ ├── config.rasi │ ├── launcher.sh │ ├── lock_i3.sh │ ├── nord.rasi │ ├── off.sh │ └── powermenu.sh └── zathura │ ├── zathurarc │ ├── zathurarc-cat │ └── zathurarc-nord ├── packages.txt ├── shots ├── 2023-02-02_20-56.png └── 2023-02-02_21-06.png ├── startpage ├── README.md ├── css │ └── style.css ├── icons │ ├── Nord │ │ ├── 01d.png │ │ ├── 01n.png │ │ ├── 02d.png │ │ ├── 02n.png │ │ ├── 03d.png │ │ ├── 03n.png │ │ ├── 04d.png │ │ ├── 04n.png │ │ ├── 09d.png │ │ ├── 09n.png │ │ ├── 10d.png │ │ ├── 10n.png │ │ ├── 11d.png │ │ ├── 11n.png │ │ ├── 13d.png │ │ ├── 13n.png │ │ ├── 50d.png │ │ ├── 50n.png │ │ └── unknown.png │ ├── White │ │ ├── 01d.png │ │ ├── 01n.png │ │ ├── 02d.png │ │ ├── 02n.png │ │ ├── 03d.png │ │ ├── 03n.png │ │ ├── 04d.png │ │ ├── 04n.png │ │ ├── 09d.png │ │ ├── 09n.png │ │ ├── 10d.png │ │ ├── 10n.png │ │ ├── 11d.png │ │ ├── 11n.png │ │ ├── 13d.png │ │ ├── 13n.png │ │ ├── 50d.png │ │ ├── 50n.png │ │ └── unknown.png │ └── g.png ├── img │ └── gnu-linux.png ├── index.html ├── js │ ├── greeting.js │ ├── theme.js │ ├── time.js │ └── weather.js └── sass │ └── main.scss ├── theme ├── Kvantum.tar.xz ├── README.md ├── icons │ ├── Nordic-cursors.tar.xz │ └── Zafiro-Nord-Black.tar.xz ├── sddm │ └── Nor.tar.xz └── theme │ ├── Catppuccin-Frappe-Standard-Blue-Dark.tar.xz │ ├── Nordic-darker-v40.zip │ └── Nordic-darker.tar.xz ├── user ├── README.md ├── Xresources ├── gtkrc-2.0 ├── xprofile └── zshrc ├── vim └── vimrc ├── wallpaper ├── 2.png ├── arch.png ├── archlinux.png ├── cutppuccin.png ├── nord1.png └── others.md └── zsh ├── cache ├── fzfhistory └── zsh_history ├── file_preview.sh ├── fzf.zsh ├── img_preview └── p10k.zsh /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "p10k"] 2 | path = zsh/powerlevel10k 3 | url = https://github.com/romkatv/powerlevel10k 4 | [submodule "fzf-tab"] 5 | path = zsh/fzf-tab 6 | url = https://github.com/Aloxaf/fzf-tab 7 | [submodule "fastsh"] 8 | path = zsh/fast-syntax-highlighting 9 | url = https://github.com/zdharma-continuum/fast-syntax-highlighting 10 | [submodule "ranger-devicons"] 11 | path = config/ranger/plugins/ranger_devicons 12 | url = https://github.com/alexanderjeurissen/ranger_devicons 13 | [submodule "ranger-archives"] 14 | path = config/ranger/plugins/ranger-archives 15 | url = https://github.com/maximtrp/ranger-archives 16 | [submodule "zshas"] 17 | path = zsh/zsh-autosuggestions 18 | url = https://github.com/zsh-users/zsh-autosuggestions 19 | 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Personal Dotfile 2 | 3 | I use ArchLinux as Linux distribution and i3 as windows manager, this repo is my config. The packages I explicitly installed are in packages.txt. 4 | You can use config/i3/nord.sh([nord](https://www.nordtheme.com/)) and config/i3/cat.sh ([catppuccin](https://github.com/catppuccin)) to change the theme. 5 | 6 | ## Shot 7 | 8 | ![](https://raw.githubusercontent.com/charleschetty/dotfile/main/shots/2023-02-02_21-06.png) 9 | 10 | ![](https://raw.githubusercontent.com/charleschetty/dotfile/main/shots/2023-02-02_20-56.png) 11 | 12 | 13 | ## Some tools I use 14 | 15 | - Font: 16 | - [ttf-iosevka-nerd](https://archlinux.org/packages/community/any/ttf-iosevka-nerd/) 17 | - [ttf-jetbrains-mono-nerd](https://archlinux.org/packages/community/any/ttf-jetbrains-mono-nerd/) 18 | - [ttf-jetbrains-mono](https://archlinux.org/packages/community/any/ttf-jetbrains-mono/) 19 | - Launcher: 20 | - [rofi](https://archlinux.org/packages/community/x86_64/rofi/) 21 | - [rofi-bluetooth](https://github.com/nickclyde/rofi-bluetooth) 22 | - [Rofi Power Menu](https://github.com/jluttine/rofi-power-menu) 23 | - [Networkmanager-dmenu](https://github.com/firecat53/networkmanager-dmenu) 24 | - Terminal: [alacritty](https://archlinux.org/packages/community/x86_64/alacritty/) 25 | - Editor: 26 | - [neovim](https://archlinux.org/packages/community/x86_64/neovim/) 27 | - [neovide](https://archlinux.org/packages/community/x86_64/neovide/) 28 | - [vscode](visual-studio-code-bin) 29 | - [qtcreator](https://archlinux.org/packages/extra/x86_64/qtcreator/) 30 | - Compositor: [picom-ftlabs](https://aur.archlinux.org/packages/picom-ftlabs-git) 31 | - Shell: 32 | - [fish](https://archlinux.org/packages/community/x86_64/fish/) 33 | - [zsh](https://archlinux.org/packages/extra/x86_64/zsh/) 34 | - [fzf-tab](https://github.com/Aloxaf/fzf-tab) 35 | - [zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions) 36 | - [fast-syntax-highlighting](https://github.com/zdharma-continuum/fast-syntax-highlighting) 37 | - [Powerlevel10k](https://aur.archlinux.org/packages/zsh-theme-powerlevel10k-git) 38 | - [zoxide](https://archlinux.org/packages/community/x86_64/zoxide/) 39 | - PDF reader: 40 | - [zathura](https://archlinux.org/packages/community/x86_64/zathura/) 41 | - [zathura-pdf-mupdf](https://archlinux.org/packages/community/x86_64/zathura-pdf-mupdf/) 42 | - [zathura-djvu](https://archlinux.org/packages/community/x86_64/zathura-djvu/) 43 | - Notification daemon: [dunst](https://archlinux.org/packages/community/x86_64/dunst/) 44 | - Volume notificator: [xob](https://aur.archlinux.org/packages/xob) 45 | - Screen locker: 46 | - [i3lock-fancy](https://aur.archlinux.org/packages/i3lock-fancy-git) 47 | - [betterlockscreen](https://aur.archlinux.org/packages/betterlockscreen-git) 48 | - [xautolock](https://archlinux.org/packages/community/x86_64/xautolock/) 49 | - Theme controler: 50 | - [kvantum](https://archlinux.org/packages/community/x86_64/kvantum/) 51 | - [qt5ct](https://archlinux.org/packages/community/x86_64/qt5ct/) 52 | - See details in [archwiki-qt](https://wiki.archlinux.org/title/Qt#Configuration_of_Qt_5_applications_under_environments_other_than_KDE_Plasma) and [archwiki-gtk](https://wiki.archlinux.org/title/GTK#Configuration) 53 | - Gtk and Qt themes: 54 | - [Nordic](https://github.com/EliverLara/Nordic) 55 | - [catppuccin-gtk](https://github.com/catppuccin/gtk) 56 | - [catppuccin-kvantum](https://github.com/catppuccin/Kvantum) 57 | - Icon theme: [Zafiro-Nord-Dark-Black](https://www.gnome-look.org/p/1166289/) 58 | - Cursor Theme: [Nordic cursors](https://store.kde.org/p/1662218/) See details in [archwiki-cursor](https://wiki.archlinux.org/title/Cursor_themes) 59 | - ~~Firefox Theme: [minimal-functional-fox ](https://github.com/mut-ex/minimal-functional-fox)~~(bugs after version 113.0) 60 | - Fcitx5 Theme: 61 | - [nord](https://github.com/tonyfettes/fcitx5-nord) 62 | - [catppuccin](https://github.com/catppuccin/fcitx5) 63 | - Wallpaper Manage: [feh](https://archlinux.org/packages/extra/x86_64/feh/) 64 | - Bar: [polybar](https://archlinux.org/packages/community/x86_64/polybar/) 65 | - File browser: 66 | - [ranger](https://archlinux.org/packages/community/any/ranger/) 67 | - [dolphin](https://archlinux.org/packages/extra/x86_64/dolphin/) 68 | - Screen shot: [flameshot](https://archlinux.org/packages/community/x86_64/flameshot/) 69 | - Startpage: [Bento](https://github.com/migueravila/Bento) 70 | - Temperature manager: [gummy](https://github.com/Fushko/gummy) 71 | -------------------------------------------------------------------------------- /config/Kvantum/kvantum-cat.kvconfig: -------------------------------------------------------------------------------- 1 | [General] 2 | theme=Catppuccin-Frappe-Blue 3 | -------------------------------------------------------------------------------- /config/Kvantum/kvantum-nord.kvconfig: -------------------------------------------------------------------------------- 1 | [General] 2 | theme=Nordic-Darker 3 | -------------------------------------------------------------------------------- /config/Kvantum/kvantum.kvconfig: -------------------------------------------------------------------------------- 1 | [General] 2 | theme=Nordic-Darker 3 | -------------------------------------------------------------------------------- /config/alacritty/alacritty.toml: -------------------------------------------------------------------------------- 1 | [font] 2 | normal = {family = "JetBrainsMono NF" ,style = "Regular"} 3 | bold = {family = "JetBrainsMono NF" ,style = "Bold"} 4 | italic = {family = "JetBrainsMono NF" ,style = "Italic "} 5 | bold_italic = {family = "JetBrainsMono NF" ,style = "Bold Italic "} 6 | size = 12 7 | 8 | [window] 9 | dimensions = {columns = 110 , lines = 25} 10 | 11 | [keyboard] 12 | bindings = [{key = "N", mods = "Control | Shift" , action = "CreateNewWindow" }] 13 | 14 | 15 | # Colors (Nord) 16 | 17 | # Default colors 18 | [colors.primary] 19 | background = '#2E3440' 20 | foreground = '#D8DEE9' 21 | 22 | # Normal colors 23 | [colors.normal] 24 | black = '#3B4252' 25 | red = '#BF616A' 26 | green = '#A3BE8C' 27 | yellow = '#EBCB8B' 28 | blue = '#81A1C1' 29 | magenta = '#B48EAD' 30 | cyan = '#88C0D0' 31 | white = '#E5E9F0' 32 | 33 | # Bright colors 34 | [colors.bright] 35 | black = '#4C566A' 36 | red = '#BF616A' 37 | green = '#A3BE8C' 38 | yellow = '#EBCB8B' 39 | blue = '#81A1C1' 40 | magenta = '#B48EAD' 41 | cyan = '#8FBCBB' 42 | white = '#ECEFF4' 43 | 44 | [env] 45 | WINIT_X11_SCALE_FACTOR = "1.0" 46 | -------------------------------------------------------------------------------- /config/bat/config: -------------------------------------------------------------------------------- 1 | # This is `bat`s configuration file. Each line either contains a comment or 2 | # a command-line option that you want to pass to `bat` by default. You can 3 | # run `bat --help` to get a list of all possible configuration options. 4 | 5 | # Specify desired highlighting theme (e.g. "TwoDark"). Run `bat --list-themes` 6 | # for a list of all available themes 7 | --theme="Nord" 8 | 9 | # Enable this to use italic text on the terminal. This is not supported on all 10 | # terminal emulators (like tmux, by default): 11 | #--italic-text=always 12 | 13 | # Uncomment the following line to disable automatic paging: 14 | #--paging=never 15 | 16 | # Uncomment the following line if you are using less version >= 551 and want to 17 | # enable mouse scrolling support in `bat` when running inside tmux. This might 18 | # disable text selection, unless you press shift. 19 | #--pager="less --RAW-CONTROL-CHARS --quit-if-one-screen --mouse" 20 | 21 | # Syntax mappings: map a certain filename pattern to a language. 22 | # Example 1: use the C++ syntax for Arduino .ino files 23 | # Example 2: Use ".gitignore"-style highlighting for ".ignore" files 24 | #--map-syntax "*.ino:C++" 25 | #--map-syntax ".ignore:Git Ignore" 26 | -------------------------------------------------------------------------------- /config/bat/config-cat: -------------------------------------------------------------------------------- 1 | # This is `bat`s configuration file. Each line either contains a comment or 2 | # a command-line option that you want to pass to `bat` by default. You can 3 | # run `bat --help` to get a list of all possible configuration options. 4 | 5 | # Specify desired highlighting theme (e.g. "TwoDark"). Run `bat --list-themes` 6 | # for a list of all available themes 7 | --theme="Catppuccin-frappe" 8 | 9 | # Enable this to use italic text on the terminal. This is not supported on all 10 | # terminal emulators (like tmux, by default): 11 | #--italic-text=always 12 | 13 | # Uncomment the following line to disable automatic paging: 14 | #--paging=never 15 | 16 | # Uncomment the following line if you are using less version >= 551 and want to 17 | # enable mouse scrolling support in `bat` when running inside tmux. This might 18 | # disable text selection, unless you press shift. 19 | #--pager="less --RAW-CONTROL-CHARS --quit-if-one-screen --mouse" 20 | 21 | # Syntax mappings: map a certain filename pattern to a language. 22 | # Example 1: use the C++ syntax for Arduino .ino files 23 | # Example 2: Use ".gitignore"-style highlighting for ".ignore" files 24 | #--map-syntax "*.ino:C++" 25 | #--map-syntax ".ignore:Git Ignore" 26 | -------------------------------------------------------------------------------- /config/bat/config-nord: -------------------------------------------------------------------------------- 1 | # This is `bat`s configuration file. Each line either contains a comment or 2 | # a command-line option that you want to pass to `bat` by default. You can 3 | # run `bat --help` to get a list of all possible configuration options. 4 | 5 | # Specify desired highlighting theme (e.g. "TwoDark"). Run `bat --list-themes` 6 | # for a list of all available themes 7 | --theme="Nord" 8 | 9 | # Enable this to use italic text on the terminal. This is not supported on all 10 | # terminal emulators (like tmux, by default): 11 | #--italic-text=always 12 | 13 | # Uncomment the following line to disable automatic paging: 14 | #--paging=never 15 | 16 | # Uncomment the following line if you are using less version >= 551 and want to 17 | # enable mouse scrolling support in `bat` when running inside tmux. This might 18 | # disable text selection, unless you press shift. 19 | #--pager="less --RAW-CONTROL-CHARS --quit-if-one-screen --mouse" 20 | 21 | # Syntax mappings: map a certain filename pattern to a language. 22 | # Example 1: use the C++ syntax for Arduino .ino files 23 | # Example 2: Use ".gitignore"-style highlighting for ".ignore" files 24 | #--map-syntax "*.ino:C++" 25 | #--map-syntax ".ignore:Git Ignore" 26 | -------------------------------------------------------------------------------- /config/bottom/bottom-nord.toml: -------------------------------------------------------------------------------- 1 | # This is a default config file for bottom. All of the settings are commented 2 | # out by default; if you wish to change them uncomment and modify as you see 3 | # fit. 4 | 5 | # This group of options represents a command-line flag/option. Flags explicitly 6 | # added when running (ie: btm -a) will override this config file if an option 7 | # is also set here. 8 | 9 | [flags] 10 | # Whether to hide the average cpu entry. 11 | #hide_avg_cpu = false 12 | # Whether to use dot markers rather than braille. 13 | #dot_marker = false 14 | # The update rate of the application. 15 | #rate = 1000 16 | # Whether to put the CPU legend to the left. 17 | #left_legend = false 18 | # Whether to set CPU% on a process to be based on the total CPU or just current usage. 19 | #current_usage = false 20 | # Whether to group processes with the same name together by default. 21 | #group_processes = false 22 | # Whether to make process searching case sensitive by default. 23 | #case_sensitive = false 24 | # Whether to make process searching look for matching the entire word by default. 25 | #whole_word = false 26 | # Whether to make process searching use regex by default. 27 | #regex = false 28 | # Defaults to Celsius. Temperature is one of: 29 | #temperature_type = "k" 30 | #temperature_type = "f" 31 | #temperature_type = "c" 32 | #temperature_type = "kelvin" 33 | #temperature_type = "fahrenheit" 34 | #temperature_type = "celsius" 35 | # The default time interval (in milliseconds). 36 | #default_time_value = 60000 37 | # The time delta on each zoom in/out action (in milliseconds). 38 | #time_delta = 15000 39 | # Hides the time scale. 40 | #hide_time = false 41 | # Override layout default widget 42 | #default_widget_type = "proc" 43 | #default_widget_count = 1 44 | # Use basic mode 45 | #basic = false 46 | # Use the old network legend style 47 | #use_old_network_legend = false 48 | # Remove space in tables 49 | #hide_table_gap = false 50 | # Show the battery widgets 51 | #battery = false 52 | # Disable mouse clicks 53 | #disable_click = false 54 | # Built-in themes. Valid values are "default", "default-light", "gruvbox", "gruvbox-light", "nord", "nord-light" 55 | color = "nord" 56 | # Show memory values in the processes widget as values by default 57 | mem_as_value = true 58 | # Show tree mode by default in the processes widget. 59 | #tree = false 60 | # Shows an indicator in table widgets tracking where in the list you are. 61 | #show_table_scroll_position = false 62 | # Show processes as their commands by default in the process widget. 63 | #process_command = false 64 | # Displays the network widget with binary prefixes. 65 | #network_use_binary_prefix = false 66 | # Displays the network widget using bytes. 67 | #network_use_bytes = false 68 | # Displays the network widget with a log scale. 69 | #network_use_log = false 70 | # Hides advanced options to stop a process on Unix-like systems. 71 | #disable_advanced_kill = false 72 | 73 | # These are all the components that support custom theming. Note that colour support 74 | # will depend on terminal support. 75 | 76 | #[colors] # Uncomment if you want to use custom colors 77 | # Represents the colour of table headers (processes, CPU, disks, temperature). 78 | #table_header_color="LightBlue" 79 | # Represents the colour of the label each widget has. 80 | #widget_title_color="Gray" 81 | # Represents the average CPU color. 82 | #avg_cpu_color="Red" 83 | # Represents the colour the core will use in the CPU legend and graph. 84 | #cpu_core_colors=["LightMagenta", "LightYellow", "LightCyan", "LightGreen", "LightBlue", "LightRed", "Cyan", "Green", "Blue", "Red"] 85 | # Represents the colour RAM will use in the memory legend and graph. 86 | #ram_color="LightMagenta" 87 | # Represents the colour SWAP will use in the memory legend and graph. 88 | #swap_color="LightYellow" 89 | # Represents the colour rx will use in the network legend and graph. 90 | #rx_color="LightCyan" 91 | # Represents the colour tx will use in the network legend and graph. 92 | #tx_color="LightGreen" 93 | # Represents the colour of the border of unselected widgets. 94 | #border_color="Gray" 95 | # Represents the colour of the border of selected widgets. 96 | #highlighted_border_color="LightBlue" 97 | # Represents the colour of most text. 98 | #text_color="Gray" 99 | # Represents the colour of text that is selected. 100 | #selected_text_color="Black" 101 | # Represents the background colour of text that is selected. 102 | #selected_bg_color="LightBlue" 103 | # Represents the colour of the lines and text of the graph. 104 | #graph_color="Gray" 105 | # Represents the colours of the battery based on charge 106 | #high_battery_color="green" 107 | #medium_battery_color="yellow" 108 | #low_battery_color="red" 109 | 110 | # Layout - layouts follow a pattern like this: 111 | # [[row]] represents a row in the application. 112 | # [[row.child]] represents either a widget or a column. 113 | # [[row.child.child]] represents a widget. 114 | # 115 | # All widgets must have the type value set to one of ["cpu", "mem", "proc", "net", "temp", "disk", "empty"]. 116 | # All layout components have a ratio value - if this is not set, then it defaults to 1. 117 | # The default widget layout: 118 | #[[row]] 119 | # ratio=30 120 | # [[row.child]] 121 | # type="cpu" 122 | #[[row]] 123 | # ratio=40 124 | # [[row.child]] 125 | # ratio=4 126 | # type="mem" 127 | # [[row.child]] 128 | # ratio=3 129 | # [[row.child.child]] 130 | # type="temp" 131 | # [[row.child.child]] 132 | # type="disk" 133 | #[[row]] 134 | # ratio=30 135 | # [[row.child]] 136 | # type="net" 137 | # [[row.child]] 138 | # type="proc" 139 | # default=true 140 | 141 | 142 | # Filters - you can hide specific temperature sensors, network interfaces, and disks using filters. This is admittedly 143 | # a bit hard to use as of now, and there is a planned in-app interface for managing this in the future: 144 | #[disk_filter] 145 | #is_list_ignored = true 146 | #list = ["/dev/sda\\d+", "/dev/nvme0n1p2"] 147 | #regex = true 148 | #case_sensitive = false 149 | #whole_word = false 150 | 151 | #[mount_filter] 152 | #is_list_ignored = true 153 | #list = ["/mnt/.*", "/boot"] 154 | #regex = true 155 | #case_sensitive = false 156 | #whole_word = false 157 | 158 | #[temp_filter] 159 | #is_list_ignored = true 160 | #list = ["cpu", "wifi"] 161 | #regex = false 162 | #case_sensitive = false 163 | #whole_word = false 164 | 165 | #[net_filter] 166 | #is_list_ignored = true 167 | #list = ["virbr0.*"] 168 | #regex = true 169 | #case_sensitive = false 170 | #whole_word = false 171 | -------------------------------------------------------------------------------- /config/bottom/bottom.toml: -------------------------------------------------------------------------------- 1 | # This is a default config file for bottom. All of the settings are commented 2 | # out by default; if you wish to change them uncomment and modify as you see 3 | # fit. 4 | 5 | # This group of options represents a command-line flag/option. Flags explicitly 6 | # added when running (ie: btm -a) will override this config file if an option 7 | # is also set here. 8 | 9 | [flags] 10 | # Whether to hide the average cpu entry. 11 | #hide_avg_cpu = false 12 | # Whether to use dot markers rather than braille. 13 | #dot_marker = false 14 | # The update rate of the application. 15 | #rate = 1000 16 | # Whether to put the CPU legend to the left. 17 | #left_legend = false 18 | # Whether to set CPU% on a process to be based on the total CPU or just current usage. 19 | #current_usage = false 20 | # Whether to group processes with the same name together by default. 21 | #group_processes = false 22 | # Whether to make process searching case sensitive by default. 23 | #case_sensitive = false 24 | # Whether to make process searching look for matching the entire word by default. 25 | #whole_word = false 26 | # Whether to make process searching use regex by default. 27 | #regex = false 28 | # Defaults to Celsius. Temperature is one of: 29 | #temperature_type = "k" 30 | #temperature_type = "f" 31 | #temperature_type = "c" 32 | #temperature_type = "kelvin" 33 | #temperature_type = "fahrenheit" 34 | #temperature_type = "celsius" 35 | # The default time interval (in milliseconds). 36 | #default_time_value = 60000 37 | # The time delta on each zoom in/out action (in milliseconds). 38 | #time_delta = 15000 39 | # Hides the time scale. 40 | #hide_time = false 41 | # Override layout default widget 42 | #default_widget_type = "proc" 43 | #default_widget_count = 1 44 | # Use basic mode 45 | #basic = false 46 | # Use the old network legend style 47 | #use_old_network_legend = false 48 | # Remove space in tables 49 | #hide_table_gap = false 50 | # Show the battery widgets 51 | #battery = false 52 | # Disable mouse clicks 53 | #disable_click = false 54 | # Built-in themes. Valid values are "default", "default-light", "gruvbox", "gruvbox-light", "nord", "nord-light" 55 | color = "nord" 56 | # Show memory values in the processes widget as values by default 57 | mem_as_value = true 58 | # Show tree mode by default in the processes widget. 59 | #tree = false 60 | # Shows an indicator in table widgets tracking where in the list you are. 61 | #show_table_scroll_position = false 62 | # Show processes as their commands by default in the process widget. 63 | #process_command = false 64 | # Displays the network widget with binary prefixes. 65 | #network_use_binary_prefix = false 66 | # Displays the network widget using bytes. 67 | #network_use_bytes = false 68 | # Displays the network widget with a log scale. 69 | #network_use_log = false 70 | # Hides advanced options to stop a process on Unix-like systems. 71 | #disable_advanced_kill = false 72 | 73 | # These are all the components that support custom theming. Note that colour support 74 | # will depend on terminal support. 75 | 76 | #[colors] # Uncomment if you want to use custom colors 77 | # Represents the colour of table headers (processes, CPU, disks, temperature). 78 | #table_header_color="LightBlue" 79 | # Represents the colour of the label each widget has. 80 | #widget_title_color="Gray" 81 | # Represents the average CPU color. 82 | #avg_cpu_color="Red" 83 | # Represents the colour the core will use in the CPU legend and graph. 84 | #cpu_core_colors=["LightMagenta", "LightYellow", "LightCyan", "LightGreen", "LightBlue", "LightRed", "Cyan", "Green", "Blue", "Red"] 85 | # Represents the colour RAM will use in the memory legend and graph. 86 | #ram_color="LightMagenta" 87 | # Represents the colour SWAP will use in the memory legend and graph. 88 | #swap_color="LightYellow" 89 | # Represents the colour rx will use in the network legend and graph. 90 | #rx_color="LightCyan" 91 | # Represents the colour tx will use in the network legend and graph. 92 | #tx_color="LightGreen" 93 | # Represents the colour of the border of unselected widgets. 94 | #border_color="Gray" 95 | # Represents the colour of the border of selected widgets. 96 | #highlighted_border_color="LightBlue" 97 | # Represents the colour of most text. 98 | #text_color="Gray" 99 | # Represents the colour of text that is selected. 100 | #selected_text_color="Black" 101 | # Represents the background colour of text that is selected. 102 | #selected_bg_color="LightBlue" 103 | # Represents the colour of the lines and text of the graph. 104 | #graph_color="Gray" 105 | # Represents the colours of the battery based on charge 106 | #high_battery_color="green" 107 | #medium_battery_color="yellow" 108 | #low_battery_color="red" 109 | 110 | # Layout - layouts follow a pattern like this: 111 | # [[row]] represents a row in the application. 112 | # [[row.child]] represents either a widget or a column. 113 | # [[row.child.child]] represents a widget. 114 | # 115 | # All widgets must have the type value set to one of ["cpu", "mem", "proc", "net", "temp", "disk", "empty"]. 116 | # All layout components have a ratio value - if this is not set, then it defaults to 1. 117 | # The default widget layout: 118 | #[[row]] 119 | # ratio=30 120 | # [[row.child]] 121 | # type="cpu" 122 | #[[row]] 123 | # ratio=40 124 | # [[row.child]] 125 | # ratio=4 126 | # type="mem" 127 | # [[row.child]] 128 | # ratio=3 129 | # [[row.child.child]] 130 | # type="temp" 131 | # [[row.child.child]] 132 | # type="disk" 133 | #[[row]] 134 | # ratio=30 135 | # [[row.child]] 136 | # type="net" 137 | # [[row.child]] 138 | # type="proc" 139 | # default=true 140 | 141 | 142 | # Filters - you can hide specific temperature sensors, network interfaces, and disks using filters. This is admittedly 143 | # a bit hard to use as of now, and there is a planned in-app interface for managing this in the future: 144 | #[disk_filter] 145 | #is_list_ignored = true 146 | #list = ["/dev/sda\\d+", "/dev/nvme0n1p2"] 147 | #regex = true 148 | #case_sensitive = false 149 | #whole_word = false 150 | 151 | #[mount_filter] 152 | #is_list_ignored = true 153 | #list = ["/mnt/.*", "/boot"] 154 | #regex = true 155 | #case_sensitive = false 156 | #whole_word = false 157 | 158 | #[temp_filter] 159 | #is_list_ignored = true 160 | #list = ["cpu", "wifi"] 161 | #regex = false 162 | #case_sensitive = false 163 | #whole_word = false 164 | 165 | #[net_filter] 166 | #is_list_ignored = true 167 | #list = ["virbr0.*"] 168 | #regex = true 169 | #case_sensitive = false 170 | #whole_word = false 171 | -------------------------------------------------------------------------------- /config/dunst/dunstrc: -------------------------------------------------------------------------------- 1 | # 2 | # ____ _ _ _ 3 | # | _ \ _ _ _ __ ___| |_ __| |_ _ _ __ ___| |_ _ __ ____ 4 | # | | | | | | | '_ \/ __| __| _____ / _` | | | | '_ \/ __| __| '__/ ___| 5 | # | |_| | |_| | | | \__ \ |_ |_____| | (_| | |_| | | | \__ \ |_| | | (___ 6 | # |____/ \__,_|_| |_|___/\__| \__,_|\__,_|_| |_|___/\__|_| \____| 7 | # 8 | # 9 | 10 | # 11 | 12 | 13 | [global] 14 | monitor = 0 15 | follow = mouse 16 | geometry = "320x6-30+60" 17 | indicate_hidden = yes 18 | shrink = no 19 | notification_height = 15 20 | separator_height = 1 21 | padding = 10 22 | horizontal_padding = 10 23 | frame_width = 0 24 | frame_color = "#232323" 25 | separator_color = frame 26 | sort = yes 27 | idle_threshold = 120 28 | # font = PingFang SC 12 29 | font = monospace Bold 12 30 | line_height = 0 31 | markup = full 32 | format = "%s %p\n%b" 33 | alignment = left 34 | show_age_threshold = 60 35 | word_wrap = yes 36 | ellipsize = middle 37 | ignore_newline = no 38 | stack_duplicates = true 39 | hide_duplicate_count = false 40 | show_indicators = yes 41 | icon_position = left 42 | max_icon_size = 48 43 | icon_path = /home/charles/.local/share/icons/Nordic-Darker/status/16/:/home/charles/.local/share/icons/Nordic-Darker/devices/16/:/home/charles/.local/share/icons/Nordic-Darker/apps/scalable/ 44 | # icon_path = /usr/share/icons/Arc/status/48/:/usr/share/icons/Arc/devices/48/:/usr/share/icons/Papirus/48x48/apps/ 45 | sticky_history = yes 46 | history_length = 20 47 | always_run_script = true 48 | startup_notification = false 49 | verbosity = mesg 50 | corner_radius = 2 51 | force_xinerama = false 52 | mouse_left_click = do_action 53 | mouse_middle_click = close_all 54 | mouse_right_click = close_current 55 | 56 | 57 | [shortcuts] 58 | close = ctrl+space 59 | history = ctrl+shift+space 60 | context = ctrl+shift+period 61 | 62 | 63 | [urgency_low] 64 | # IMPORTANT: colors have to be defined in quotation marks. 65 | # Otherwise the '#' and following would be interpreted as a comment. 66 | background="#2e3440" 67 | foreground="#d8dee9" 68 | timeout = 3 69 | 70 | 71 | [urgency_normal] 72 | background="#2e3440" 73 | foreground="#d8dee9" 74 | timeout = 3 75 | 76 | 77 | [urgency_critical] 78 | background="#2e3440" 79 | foreground="#d8dee9" 80 | timeout = 0 81 | -------------------------------------------------------------------------------- /config/dunst/dunstrc-cat: -------------------------------------------------------------------------------- 1 | # 2 | # ____ _ _ _ 3 | # | _ \ _ _ _ __ ___| |_ __| |_ _ _ __ ___| |_ _ __ ____ 4 | # | | | | | | | '_ \/ __| __| _____ / _` | | | | '_ \/ __| __| '__/ ___| 5 | # | |_| | |_| | | | \__ \ |_ |_____| | (_| | |_| | | | \__ \ |_| | | (___ 6 | # |____/ \__,_|_| |_|___/\__| \__,_|\__,_|_| |_|___/\__|_| \____| 7 | # 8 | # 9 | 10 | # 11 | 12 | 13 | [global] 14 | monitor = 0 15 | follow = mouse 16 | geometry = "320x6-30+60" 17 | indicate_hidden = yes 18 | shrink = no 19 | notification_height = 15 20 | separator_height = 1 21 | padding = 10 22 | horizontal_padding = 10 23 | frame_width = 0 24 | frame_color = "#8CAAEE" 25 | separator_color = frame 26 | sort = yes 27 | idle_threshold = 120 28 | # font = PingFang SC 12 29 | font = monospace Bold 12 30 | line_height = 0 31 | markup = full 32 | format = "%s %p\n%b" 33 | alignment = left 34 | show_age_threshold = 60 35 | word_wrap = yes 36 | ellipsize = middle 37 | ignore_newline = no 38 | stack_duplicates = true 39 | hide_duplicate_count = false 40 | show_indicators = yes 41 | icon_position = left 42 | max_icon_size = 48 43 | icon_path = /home/charles/.local/share/icons/Nordic-Darker/status/16/:/home/charles/.local/share/icons/Nordic-Darker/devices/16/:/home/charles/.local/share/icons/Nordic-Darker/apps/scalable/ 44 | # icon_path = /usr/share/icons/Arc/status/48/:/usr/share/icons/Arc/devices/48/:/usr/share/icons/Papirus/48x48/apps/ 45 | sticky_history = yes 46 | history_length = 20 47 | always_run_script = true 48 | startup_notification = false 49 | verbosity = mesg 50 | corner_radius = 2 51 | force_xinerama = false 52 | mouse_left_click = do_action 53 | mouse_middle_click = close_all 54 | mouse_right_click = close_current 55 | 56 | 57 | [shortcuts] 58 | close = ctrl+space 59 | history = ctrl+shift+space 60 | context = ctrl+shift+period 61 | 62 | 63 | [urgency_low] 64 | # IMPORTANT: colors have to be defined in quotation marks. 65 | # Otherwise the '#' and following would be interpreted as a comment. 66 | background = "#303446" 67 | foreground = "#C6D0F5" 68 | timeout = 3 69 | 70 | 71 | [urgency_normal] 72 | background = "#303446" 73 | foreground = "#C6D0F5" 74 | timeout = 3 75 | 76 | 77 | [urgency_critical] 78 | background = "#303446" 79 | foreground = "#C6D0F5" 80 | frame_color = "#EF9F76" 81 | timeout = 0 82 | -------------------------------------------------------------------------------- /config/dunst/dunstrc-nord: -------------------------------------------------------------------------------- 1 | # 2 | # ____ _ _ _ 3 | # | _ \ _ _ _ __ ___| |_ __| |_ _ _ __ ___| |_ _ __ ____ 4 | # | | | | | | | '_ \/ __| __| _____ / _` | | | | '_ \/ __| __| '__/ ___| 5 | # | |_| | |_| | | | \__ \ |_ |_____| | (_| | |_| | | | \__ \ |_| | | (___ 6 | # |____/ \__,_|_| |_|___/\__| \__,_|\__,_|_| |_|___/\__|_| \____| 7 | # 8 | # 9 | 10 | # 11 | 12 | 13 | [global] 14 | monitor = 0 15 | follow = mouse 16 | geometry = "320x6-30+60" 17 | indicate_hidden = yes 18 | shrink = no 19 | notification_height = 15 20 | separator_height = 1 21 | padding = 10 22 | horizontal_padding = 10 23 | frame_width = 0 24 | frame_color = "#232323" 25 | separator_color = frame 26 | sort = yes 27 | idle_threshold = 120 28 | # font = PingFang SC 12 29 | font = monospace Bold 12 30 | line_height = 0 31 | markup = full 32 | format = "%s %p\n%b" 33 | alignment = left 34 | show_age_threshold = 60 35 | word_wrap = yes 36 | ellipsize = middle 37 | ignore_newline = no 38 | stack_duplicates = true 39 | hide_duplicate_count = false 40 | show_indicators = yes 41 | icon_position = left 42 | max_icon_size = 48 43 | icon_path = /home/charles/.local/share/icons/Nordic-Darker/status/16/:/home/charles/.local/share/icons/Nordic-Darker/devices/16/:/home/charles/.local/share/icons/Nordic-Darker/apps/scalable/ 44 | # icon_path = /usr/share/icons/Arc/status/48/:/usr/share/icons/Arc/devices/48/:/usr/share/icons/Papirus/48x48/apps/ 45 | sticky_history = yes 46 | history_length = 20 47 | always_run_script = true 48 | startup_notification = false 49 | verbosity = mesg 50 | corner_radius = 2 51 | force_xinerama = false 52 | mouse_left_click = do_action 53 | mouse_middle_click = close_all 54 | mouse_right_click = close_current 55 | 56 | 57 | [shortcuts] 58 | close = ctrl+space 59 | history = ctrl+shift+space 60 | context = ctrl+shift+period 61 | 62 | 63 | [urgency_low] 64 | # IMPORTANT: colors have to be defined in quotation marks. 65 | # Otherwise the '#' and following would be interpreted as a comment. 66 | background="#2e3440" 67 | foreground="#d8dee9" 68 | timeout = 3 69 | 70 | 71 | [urgency_normal] 72 | background="#2e3440" 73 | foreground="#d8dee9" 74 | timeout = 3 75 | 76 | 77 | [urgency_critical] 78 | background="#2e3440" 79 | foreground="#d8dee9" 80 | timeout = 0 81 | -------------------------------------------------------------------------------- /config/fcitx5/conf/classicui-cat.conf: -------------------------------------------------------------------------------- 1 | # https://github.com/catppuccin/fcitx5 2 | Theme=catppuccin-frappe 3 | -------------------------------------------------------------------------------- /config/fcitx5/conf/classicui-nord.conf: -------------------------------------------------------------------------------- 1 | ## https://github.com/tonyfettes/fcitx5-nord 2 | Theme=Nord-Dark 3 | -------------------------------------------------------------------------------- /config/fcitx5/conf/classicui.conf: -------------------------------------------------------------------------------- 1 | ## https://github.com/tonyfettes/fcitx5-nord 2 | Theme=Nord-Dark 3 | -------------------------------------------------------------------------------- /config/fcitx5/conf/notifications.conf: -------------------------------------------------------------------------------- 1 | # Hidden Notifications 2 | HiddenNotifications= 3 | 4 | -------------------------------------------------------------------------------- /config/fcitx5/config: -------------------------------------------------------------------------------- 1 | [Hotkey] 2 | # Enumerate when press trigger key repeatedly 3 | EnumerateWithTriggerKeys=True 4 | # Skip first input method while enumerating 5 | EnumerateSkipFirst=False 6 | 7 | [Hotkey/TriggerKeys] 8 | 0=Control+space 9 | 1=Zenkaku_Hankaku 10 | 2=Hangul 11 | 12 | [Hotkey/AltTriggerKeys] 13 | 0=Shift_L 14 | 15 | [Hotkey/EnumerateForwardKeys] 16 | 0=Control+Shift_L 17 | 18 | [Hotkey/EnumerateBackwardKeys] 19 | 0=Control+Shift_R 20 | 21 | [Hotkey/EnumerateGroupForwardKeys] 22 | 0=Super+space 23 | 24 | [Hotkey/EnumerateGroupBackwardKeys] 25 | 0=Shift+Super+space 26 | 27 | [Hotkey/ActivateKeys] 28 | 0=Hangul_Hanja 29 | 30 | [Hotkey/DeactivateKeys] 31 | 0=Hangul_Romaja 32 | 33 | [Hotkey/PrevPage] 34 | 0=Up 35 | 36 | [Hotkey/NextPage] 37 | 0=Down 38 | 39 | [Hotkey/PrevCandidate] 40 | 0=Shift+Tab 41 | 42 | [Hotkey/NextCandidate] 43 | 0=Tab 44 | 45 | [Hotkey/TogglePreedit] 46 | 0=Control+Alt+P 47 | 48 | [Behavior] 49 | # Active By Default 50 | ActiveByDefault=False 51 | # Share Input State 52 | ShareInputState=No 53 | # Show preedit in application 54 | PreeditEnabledByDefault=True 55 | # Show Input Method Information when switch input method 56 | ShowInputMethodInformation=True 57 | # Show Input Method Information when changing focus 58 | showInputMethodInformationWhenFocusIn=False 59 | # Show compact input method information 60 | CompactInputMethodInformation=True 61 | # Show first input method information 62 | ShowFirstInputMethodInformation=True 63 | # Default page size 64 | DefaultPageSize=5 65 | # Override Xkb Option 66 | OverrideXkbOption=False 67 | # Custom Xkb Option 68 | CustomXkbOption= 69 | # Force Enabled Addons 70 | EnabledAddons= 71 | # Force Disabled Addons 72 | DisabledAddons= 73 | # Preload input method to be used by default 74 | PreloadInputMethod=True 75 | 76 | -------------------------------------------------------------------------------- /config/fcitx5/profile: -------------------------------------------------------------------------------- 1 | [Groups/0] 2 | # Group Name 3 | Name=Default 4 | # Layout 5 | Default Layout=us 6 | # Default Input Method 7 | DefaultIM=rime 8 | 9 | [Groups/0/Items/0] 10 | # Name 11 | Name=keyboard-us 12 | # Layout 13 | Layout= 14 | 15 | [Groups/0/Items/1] 16 | # Name 17 | Name=rime 18 | # Layout 19 | Layout= 20 | 21 | [GroupOrder] 22 | 0=Default 23 | 24 | -------------------------------------------------------------------------------- /config/gitui/theme-cat.ron: -------------------------------------------------------------------------------- 1 | 2 | ( 3 | selected_tab: Reset, 4 | command_fg: Rgb(198, 208, 245), 5 | selection_bg: Rgb(98, 104, 128), 6 | selection_fg: Rgb(198, 208, 245), 7 | cmdbar_bg: Rgb(41, 44, 60), 8 | cmdbar_extra_lines_bg: Rgb(41, 44, 60), 9 | disabled_fg: Rgb(131, 139, 167), 10 | diff_line_add: Rgb(166, 209, 137), 11 | diff_line_delete: Rgb(231, 130, 132), 12 | diff_file_added: Rgb(229, 200, 144), 13 | diff_file_removed: Rgb(234, 153, 156), 14 | diff_file_moved: Rgb(202, 158, 230), 15 | diff_file_modified: Rgb(239, 159, 118), 16 | commit_hash: Rgb(186, 187, 241), 17 | commit_time: Rgb(181, 191, 226), 18 | commit_author: Rgb(133, 193, 220), 19 | danger_fg: Rgb(231, 130, 132), 20 | push_gauge_bg: Rgb(140, 170, 238), 21 | push_gauge_fg: Rgb(48, 52, 70), 22 | tag_fg: Rgb(242, 213, 207), 23 | branch_fg: Rgb(129, 200, 190) 24 | ) 25 | -------------------------------------------------------------------------------- /config/gitui/theme-nord.ron: -------------------------------------------------------------------------------- 1 | ( 2 | selected_tab: Reset, 3 | command_fg: Rgb(236,239,244), 4 | selection_bg: Rgb(94,129,172), 5 | selection_fg: Rgb(236,239,244), 6 | cmdbar_bg: Rgb(94,129,172), 7 | cmdbar_extra_lines_bg: Rgb(94,129,172), 8 | disabled_fg: DarkGray, 9 | diff_line_add: Rgb(143,188,187), 10 | diff_line_delete: Rgb(191,97,106), 11 | diff_file_added: Rgb(163,190,140), 12 | diff_file_removed: LightRed, 13 | diff_file_moved: Rgb(180,142,173), 14 | diff_file_modified: Rgb(235,203,139), 15 | commit_hash: Rgb(180,142,173), 16 | commit_time: LightCyan, 17 | commit_author: Rgb(163,190,140), 18 | danger_fg: Rgb(191,97,106), 19 | push_gauge_bg: Rgb(94,129,172), 20 | push_gauge_fg: Reset, 21 | tag_fg: Rgb(180,142,173), 22 | branch_fg: LightYellow, 23 | ) 24 | -------------------------------------------------------------------------------- /config/gitui/theme.ron: -------------------------------------------------------------------------------- 1 | ( 2 | selected_tab: Reset, 3 | command_fg: Rgb(236,239,244), 4 | selection_bg: Rgb(94,129,172), 5 | selection_fg: Rgb(236,239,244), 6 | cmdbar_bg: Rgb(94,129,172), 7 | cmdbar_extra_lines_bg: Rgb(94,129,172), 8 | disabled_fg: DarkGray, 9 | diff_line_add: Rgb(143,188,187), 10 | diff_line_delete: Rgb(191,97,106), 11 | diff_file_added: Rgb(163,190,140), 12 | diff_file_removed: LightRed, 13 | diff_file_moved: Rgb(180,142,173), 14 | diff_file_modified: Rgb(235,203,139), 15 | commit_hash: Rgb(180,142,173), 16 | commit_time: LightCyan, 17 | commit_author: Rgb(163,190,140), 18 | danger_fg: Rgb(191,97,106), 19 | push_gauge_bg: Rgb(94,129,172), 20 | push_gauge_fg: Reset, 21 | tag_fg: Rgb(180,142,173), 22 | branch_fg: LightYellow, 23 | ) 24 | -------------------------------------------------------------------------------- /config/gtk-2.0/gtkfilechooser.ini: -------------------------------------------------------------------------------- 1 | [Filechooser Settings] 2 | LocationMode=path-bar 3 | ShowHidden=false 4 | ShowSizeColumn=true 5 | GeometryX=486 6 | GeometryY=147 7 | GeometryWidth=948 8 | GeometryHeight=815 9 | SortColumn=name 10 | SortOrder=ascending 11 | StartupMode=recent 12 | -------------------------------------------------------------------------------- /config/gtk-3.0/assets/close-active.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | Qt SVG Document 5 | Generated with Qt 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /config/gtk-3.0/assets/close-backdrop-active.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | Qt SVG Document 5 | Generated with Qt 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /config/gtk-3.0/assets/close-backdrop-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | Qt SVG Document 5 | Generated with Qt 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /config/gtk-3.0/assets/close-backdrop-normal.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | Qt SVG Document 5 | Generated with Qt 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /config/gtk-3.0/assets/close-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | Qt SVG Document 5 | Generated with Qt 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /config/gtk-3.0/assets/close-normal.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | Qt SVG Document 5 | Generated with Qt 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /config/gtk-3.0/assets/maximize-active.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | Qt SVG Document 5 | Generated with Qt 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /config/gtk-3.0/assets/maximize-backdrop-active.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | Qt SVG Document 5 | Generated with Qt 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /config/gtk-3.0/assets/maximize-backdrop-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | Qt SVG Document 5 | Generated with Qt 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /config/gtk-3.0/assets/maximize-backdrop-normal.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | Qt SVG Document 5 | Generated with Qt 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /config/gtk-3.0/assets/maximize-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | Qt SVG Document 5 | Generated with Qt 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /config/gtk-3.0/assets/maximize-normal.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | Qt SVG Document 5 | Generated with Qt 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /config/gtk-3.0/assets/maximized-active.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | Qt SVG Document 5 | Generated with Qt 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /config/gtk-3.0/assets/maximized-backdrop-active.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | Qt SVG Document 5 | Generated with Qt 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /config/gtk-3.0/assets/maximized-backdrop-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | Qt SVG Document 5 | Generated with Qt 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /config/gtk-3.0/assets/maximized-backdrop-normal.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | Qt SVG Document 5 | Generated with Qt 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /config/gtk-3.0/assets/maximized-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | Qt SVG Document 5 | Generated with Qt 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /config/gtk-3.0/assets/maximized-normal.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | Qt SVG Document 5 | Generated with Qt 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /config/gtk-3.0/assets/minimize-active.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | Qt SVG Document 5 | Generated with Qt 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /config/gtk-3.0/assets/minimize-backdrop-active.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | Qt SVG Document 5 | Generated with Qt 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /config/gtk-3.0/assets/minimize-backdrop-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | Qt SVG Document 5 | Generated with Qt 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /config/gtk-3.0/assets/minimize-backdrop-normal.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | Qt SVG Document 5 | Generated with Qt 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /config/gtk-3.0/assets/minimize-hover.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | Qt SVG Document 5 | Generated with Qt 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /config/gtk-3.0/assets/minimize-normal.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | Qt SVG Document 5 | Generated with Qt 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /config/gtk-3.0/bookmarks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/config/gtk-3.0/bookmarks -------------------------------------------------------------------------------- /config/gtk-3.0/colors.css: -------------------------------------------------------------------------------- 1 | @define-color borders_breeze #5f6265; 2 | @define-color content_view_bg_breeze #1b1e20; 3 | @define-color error_color_backdrop_breeze #da4453; 4 | @define-color error_color_breeze #da4453; 5 | @define-color error_color_insensitive_backdrop_breeze #592930; 6 | @define-color error_color_insensitive_breeze #592930; 7 | @define-color insensitive_base_color_breeze #1a1d1f; 8 | @define-color insensitive_base_fg_color_breeze #656768; 9 | @define-color insensitive_bg_color_breeze #282c30; 10 | @define-color insensitive_borders_breeze #3a3d41; 11 | @define-color insensitive_fg_color_breeze #6e7173; 12 | @define-color insensitive_selected_bg_color_breeze #282c30; 13 | @define-color insensitive_selected_fg_color_breeze #6e7173; 14 | @define-color insensitive_unfocused_bg_color_breeze #282c30; 15 | @define-color insensitive_unfocused_fg_color_breeze #6e7173; 16 | @define-color insensitive_unfocused_selected_bg_color_breeze #282c30; 17 | @define-color insensitive_unfocused_selected_fg_color_breeze #6e7173; 18 | @define-color link_color_breeze #1d99f3; 19 | @define-color link_visited_color_breeze #9b59b6; 20 | @define-color success_color_backdrop_breeze #27ae60; 21 | @define-color success_color_breeze #27ae60; 22 | @define-color success_color_insensitive_backdrop_breeze #1e4d34; 23 | @define-color success_color_insensitive_breeze #1e4d34; 24 | @define-color theme_base_color_breeze #1b1e20; 25 | @define-color theme_bg_color_breeze #2a2e32; 26 | @define-color theme_button_background_backdrop_breeze #31363b; 27 | @define-color theme_button_background_backdrop_insensitive_breeze #2f3338; 28 | @define-color theme_button_background_insensitive_breeze #2f3338; 29 | @define-color theme_button_background_normal_breeze #31363b; 30 | @define-color theme_button_decoration_focus_backdrop_breeze #3daee9; 31 | @define-color theme_button_decoration_focus_backdrop_insensitive_breeze #335c72; 32 | @define-color theme_button_decoration_focus_breeze #3daee9; 33 | @define-color theme_button_decoration_focus_insensitive_breeze #335c72; 34 | @define-color theme_button_decoration_hover_backdrop_breeze #3daee9; 35 | @define-color theme_button_decoration_hover_backdrop_insensitive_breeze #335c72; 36 | @define-color theme_button_decoration_hover_breeze #3daee9; 37 | @define-color theme_button_decoration_hover_insensitive_breeze #335c72; 38 | @define-color theme_button_foreground_active_backdrop_breeze #fcfcfc; 39 | @define-color theme_button_foreground_active_backdrop_insensitive_breeze #6e7173; 40 | @define-color theme_button_foreground_active_breeze #fcfcfc; 41 | @define-color theme_button_foreground_active_insensitive_breeze #6e7173; 42 | @define-color theme_button_foreground_backdrop_breeze #fcfcfc; 43 | @define-color theme_button_foreground_backdrop_insensitive_breeze #727679; 44 | @define-color theme_button_foreground_insensitive_breeze #727679; 45 | @define-color theme_button_foreground_normal_breeze #fcfcfc; 46 | @define-color theme_fg_color_breeze #fcfcfc; 47 | @define-color theme_header_background_backdrop_breeze #2a2e32; 48 | @define-color theme_header_background_breeze #31363b; 49 | @define-color theme_header_background_light_breeze #2a2e32; 50 | @define-color theme_header_foreground_backdrop_breeze #fcfcfc; 51 | @define-color theme_header_foreground_breeze #fcfcfc; 52 | @define-color theme_header_foreground_insensitive_backdrop_breeze #fcfcfc; 53 | @define-color theme_header_foreground_insensitive_breeze #fcfcfc; 54 | @define-color theme_hovering_selected_bg_color_breeze #3daee9; 55 | @define-color theme_selected_bg_color_breeze #3daee9; 56 | @define-color theme_selected_fg_color_breeze #fcfcfc; 57 | @define-color theme_text_color_breeze #fcfcfc; 58 | @define-color theme_titlebar_background_backdrop_breeze #2a2e32; 59 | @define-color theme_titlebar_background_breeze #31363b; 60 | @define-color theme_titlebar_background_light_breeze #2a2e32; 61 | @define-color theme_titlebar_foreground_backdrop_breeze #fcfcfc; 62 | @define-color theme_titlebar_foreground_breeze #fcfcfc; 63 | @define-color theme_titlebar_foreground_insensitive_backdrop_breeze #fcfcfc; 64 | @define-color theme_titlebar_foreground_insensitive_breeze #fcfcfc; 65 | @define-color theme_unfocused_base_color_breeze #1b1e20; 66 | @define-color theme_unfocused_bg_color_breeze #2a2e32; 67 | @define-color theme_unfocused_fg_color_breeze #fcfcfc; 68 | @define-color theme_unfocused_selected_bg_color_alt_breeze #1f485e; 69 | @define-color theme_unfocused_selected_bg_color_breeze #1f485e; 70 | @define-color theme_unfocused_selected_fg_color_breeze #fcfcfc; 71 | @define-color theme_unfocused_text_color_breeze #fcfcfc; 72 | @define-color theme_unfocused_view_bg_color_breeze #1a1d1f; 73 | @define-color theme_unfocused_view_text_color_breeze #656768; 74 | @define-color theme_view_active_decoration_color_breeze #3daee9; 75 | @define-color theme_view_hover_decoration_color_breeze #3daee9; 76 | @define-color tooltip_background_breeze #31363b; 77 | @define-color tooltip_border_breeze #64686b; 78 | @define-color tooltip_text_breeze #fcfcfc; 79 | @define-color unfocused_borders_breeze #5f6265; 80 | @define-color unfocused_insensitive_borders_breeze #3a3d41; 81 | @define-color warning_color_backdrop_breeze #f67400; 82 | @define-color warning_color_breeze #f67400; 83 | @define-color warning_color_insensitive_backdrop_breeze #633914; 84 | @define-color warning_color_insensitive_breeze #633914; 85 | -------------------------------------------------------------------------------- /config/gtk-3.0/gtk.css: -------------------------------------------------------------------------------- 1 | @import 'colors.css'; -------------------------------------------------------------------------------- /config/gtk-3.0/settings-cat.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | gtk-application-prefer-dark-theme=true 3 | gtk-button-images=1 4 | gtk-cursor-theme-name=Catppuccin-Frappe-Dark-Cursors 5 | gtk-cursor-theme-size=24 6 | gtk-decoration-layout=icon:minimize,maximize,close 7 | gtk-enable-animations=true 8 | gtk-enable-event-sounds=1 9 | gtk-enable-input-feedback-sounds=1 10 | gtk-font-name=Noto Sans, 10 11 | gtk-icon-theme-name=Nordic-Darker 12 | gtk-menu-images=1 13 | gtk-primary-button-warps-slider=false 14 | gtk-theme-name=Catppuccin-Frappe-Standard-Blue-Dark 15 | gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR 16 | gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ 17 | gtk-xft-antialias=1 18 | gtk-xft-hinting=1 19 | gtk-xft-hintstyle=hintfull 20 | -------------------------------------------------------------------------------- /config/gtk-3.0/settings-nord.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | gtk-application-prefer-dark-theme=true 3 | gtk-button-images=1 4 | gtk-cursor-theme-name=Nordic-cursors 5 | gtk-cursor-theme-size=24 6 | gtk-decoration-layout=icon:minimize,maximize,close 7 | gtk-enable-animations=true 8 | gtk-enable-event-sounds=1 9 | gtk-enable-input-feedback-sounds=1 10 | gtk-font-name=Noto Sans, 10 11 | gtk-icon-theme-name=Nordic-Darker 12 | gtk-menu-images=1 13 | gtk-primary-button-warps-slider=false 14 | gtk-theme-name=Nordic-darker-v40 15 | gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR 16 | gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ 17 | gtk-xft-antialias=1 18 | gtk-xft-hinting=1 19 | gtk-xft-hintstyle=hintfull 20 | -------------------------------------------------------------------------------- /config/gtk-3.0/settings.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | gtk-application-prefer-dark-theme=true 3 | gtk-button-images=true 4 | gtk-cursor-theme-name=Nordic-cursors 5 | gtk-cursor-theme-size=24 6 | gtk-decoration-layout=icon:minimize,maximize,close 7 | gtk-enable-animations=true 8 | gtk-enable-event-sounds=1 9 | gtk-enable-input-feedback-sounds=1 10 | gtk-font-name=Noto Sans, 10 11 | gtk-icon-theme-name=Zafiro-Nord-Dark-Black 12 | gtk-menu-images=true 13 | gtk-modules=colorreload-gtk-module 14 | gtk-primary-button-warps-slider=false 15 | gtk-theme-name=Nordic-darker-v40 16 | gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR 17 | gtk-toolbar-style=3 18 | gtk-xft-antialias=1 19 | gtk-xft-dpi=98304 20 | gtk-xft-hinting=1 21 | gtk-xft-hintstyle=hintfull 22 | -------------------------------------------------------------------------------- /config/gtk-4.0/colors.css: -------------------------------------------------------------------------------- 1 | @define-color borders_breeze #5f6265; 2 | @define-color content_view_bg_breeze #1b1e20; 3 | @define-color error_color_backdrop_breeze #da4453; 4 | @define-color error_color_breeze #da4453; 5 | @define-color error_color_insensitive_backdrop_breeze #592930; 6 | @define-color error_color_insensitive_breeze #592930; 7 | @define-color insensitive_base_color_breeze #1a1d1f; 8 | @define-color insensitive_base_fg_color_breeze #656768; 9 | @define-color insensitive_bg_color_breeze #282c30; 10 | @define-color insensitive_borders_breeze #3a3d41; 11 | @define-color insensitive_fg_color_breeze #6e7173; 12 | @define-color insensitive_selected_bg_color_breeze #282c30; 13 | @define-color insensitive_selected_fg_color_breeze #6e7173; 14 | @define-color insensitive_unfocused_bg_color_breeze #282c30; 15 | @define-color insensitive_unfocused_fg_color_breeze #6e7173; 16 | @define-color insensitive_unfocused_selected_bg_color_breeze #282c30; 17 | @define-color insensitive_unfocused_selected_fg_color_breeze #6e7173; 18 | @define-color link_color_breeze #1d99f3; 19 | @define-color link_visited_color_breeze #9b59b6; 20 | @define-color success_color_backdrop_breeze #27ae60; 21 | @define-color success_color_breeze #27ae60; 22 | @define-color success_color_insensitive_backdrop_breeze #1e4d34; 23 | @define-color success_color_insensitive_breeze #1e4d34; 24 | @define-color theme_base_color_breeze #1b1e20; 25 | @define-color theme_bg_color_breeze #2a2e32; 26 | @define-color theme_button_background_backdrop_breeze #31363b; 27 | @define-color theme_button_background_backdrop_insensitive_breeze #2f3338; 28 | @define-color theme_button_background_insensitive_breeze #2f3338; 29 | @define-color theme_button_background_normal_breeze #31363b; 30 | @define-color theme_button_decoration_focus_backdrop_breeze #3daee9; 31 | @define-color theme_button_decoration_focus_backdrop_insensitive_breeze #335c72; 32 | @define-color theme_button_decoration_focus_breeze #3daee9; 33 | @define-color theme_button_decoration_focus_insensitive_breeze #335c72; 34 | @define-color theme_button_decoration_hover_backdrop_breeze #3daee9; 35 | @define-color theme_button_decoration_hover_backdrop_insensitive_breeze #335c72; 36 | @define-color theme_button_decoration_hover_breeze #3daee9; 37 | @define-color theme_button_decoration_hover_insensitive_breeze #335c72; 38 | @define-color theme_button_foreground_active_backdrop_breeze #fcfcfc; 39 | @define-color theme_button_foreground_active_backdrop_insensitive_breeze #6e7173; 40 | @define-color theme_button_foreground_active_breeze #fcfcfc; 41 | @define-color theme_button_foreground_active_insensitive_breeze #6e7173; 42 | @define-color theme_button_foreground_backdrop_breeze #fcfcfc; 43 | @define-color theme_button_foreground_backdrop_insensitive_breeze #727679; 44 | @define-color theme_button_foreground_insensitive_breeze #727679; 45 | @define-color theme_button_foreground_normal_breeze #fcfcfc; 46 | @define-color theme_fg_color_breeze #fcfcfc; 47 | @define-color theme_header_background_backdrop_breeze #2a2e32; 48 | @define-color theme_header_background_breeze #31363b; 49 | @define-color theme_header_background_light_breeze #2a2e32; 50 | @define-color theme_header_foreground_backdrop_breeze #fcfcfc; 51 | @define-color theme_header_foreground_breeze #fcfcfc; 52 | @define-color theme_header_foreground_insensitive_backdrop_breeze #fcfcfc; 53 | @define-color theme_header_foreground_insensitive_breeze #fcfcfc; 54 | @define-color theme_hovering_selected_bg_color_breeze #3daee9; 55 | @define-color theme_selected_bg_color_breeze #3daee9; 56 | @define-color theme_selected_fg_color_breeze #fcfcfc; 57 | @define-color theme_text_color_breeze #fcfcfc; 58 | @define-color theme_titlebar_background_backdrop_breeze #2a2e32; 59 | @define-color theme_titlebar_background_breeze #31363b; 60 | @define-color theme_titlebar_background_light_breeze #2a2e32; 61 | @define-color theme_titlebar_foreground_backdrop_breeze #fcfcfc; 62 | @define-color theme_titlebar_foreground_breeze #fcfcfc; 63 | @define-color theme_titlebar_foreground_insensitive_backdrop_breeze #fcfcfc; 64 | @define-color theme_titlebar_foreground_insensitive_breeze #fcfcfc; 65 | @define-color theme_unfocused_base_color_breeze #1b1e20; 66 | @define-color theme_unfocused_bg_color_breeze #2a2e32; 67 | @define-color theme_unfocused_fg_color_breeze #fcfcfc; 68 | @define-color theme_unfocused_selected_bg_color_alt_breeze #1f485e; 69 | @define-color theme_unfocused_selected_bg_color_breeze #1f485e; 70 | @define-color theme_unfocused_selected_fg_color_breeze #fcfcfc; 71 | @define-color theme_unfocused_text_color_breeze #fcfcfc; 72 | @define-color theme_unfocused_view_bg_color_breeze #1a1d1f; 73 | @define-color theme_unfocused_view_text_color_breeze #656768; 74 | @define-color theme_view_active_decoration_color_breeze #3daee9; 75 | @define-color theme_view_hover_decoration_color_breeze #3daee9; 76 | @define-color tooltip_background_breeze #31363b; 77 | @define-color tooltip_border_breeze #64686b; 78 | @define-color tooltip_text_breeze #fcfcfc; 79 | @define-color unfocused_borders_breeze #5f6265; 80 | @define-color unfocused_insensitive_borders_breeze #3a3d41; 81 | @define-color warning_color_backdrop_breeze #f67400; 82 | @define-color warning_color_breeze #f67400; 83 | @define-color warning_color_insensitive_backdrop_breeze #633914; 84 | @define-color warning_color_insensitive_breeze #633914; 85 | -------------------------------------------------------------------------------- /config/gtk-4.0/settings.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | gtk-application-prefer-dark-theme=true 3 | gtk-cursor-theme-name=Nordic-cursors 4 | gtk-cursor-theme-size=24 5 | gtk-decoration-layout=icon:minimize,maximize,close 6 | gtk-enable-animations=true 7 | gtk-font-name=Noto Sans, 10 8 | gtk-icon-theme-name=Zafiro-Nord-Dark-Black 9 | gtk-modules=colorreload-gtk-module 10 | gtk-primary-button-warps-slider=false 11 | gtk-theme-name=Nordic-darker-v40 12 | gtk-xft-dpi=98304 13 | -------------------------------------------------------------------------------- /config/i3/brightness.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Change below to suit your system 4 | BACKLIGHT="/sys/class/backlight/amdgpu_bl0" 5 | BRIGHTNESS="$BACKLIGHT/brightness" 6 | MAX_BRIGHTNESS=$(cat "$BACKLIGHT/max_brightness") 7 | 8 | inotifywait -m -e modify "$BRIGHTNESS" \ 9 | | while IFS= read -r line; do cat $BRIGHTNESS; done \ 10 | | xob -m "$MAX_BRIGHTNESS" 11 | -------------------------------------------------------------------------------- /config/i3/cat.sh: -------------------------------------------------------------------------------- 1 | feh ~/Pictures/cutppuccin.png --bg-fill 2 | 3 | cp ~/.config/alacritty/alacritty-cat.yml ~/.config/alacritty/alacritty.yml 4 | 5 | cp ~/.config/nvim/lua/user/colorscheme-cat.lua ~/.config/nvim/lua/user/colorscheme.lua 6 | 7 | cp ~/.config/nvim/lua/user/lualine-cat.lua ~/.config/nvim/lua/user/lualine.lua 8 | 9 | cp ~/.gtkrc-2.0-cat ~/.gtkrc-2.0 10 | 11 | cp ~/.config/bat/config-cat ~/.config/bat/config 12 | 13 | cp ~/.config/bottom/bottom-cat.toml ~/.config/bottom/bottom.toml 14 | 15 | cp ~/.config/dunst/dunstrc-cat ~/.config/dunst/dunstrc 16 | 17 | cp ~/.config/fcitx5/conf/classicui-cat.conf ~/.config/fcitx5/conf/classicui.conf 18 | 19 | cp ~/.config/gitui/theme-cat.ron ~/.config/gitui/theme.ron 20 | 21 | cp ~/.config/gtk-3.0/settings-cat.ini ~/.config/gtk-3.0/settings.ini 22 | 23 | cp ~/.config/gtk-4.0/gtk-dark-cat.css ~/.config/gtk-4.0/gtk-dark.css 24 | 25 | cp ~/.config/gtk-4.0/gtk-cat.css ~/.config/gtk-4.0/gtk.css 26 | 27 | cp ~/.config/polybar/config-cat.ini ~/.config/polybar/config.ini 28 | 29 | sh ~/.config/polybar/launch.sh 30 | 31 | cp ~/.config/rofi/config-cat.rasi ~/.config/rofi/config.rasi 32 | 33 | cp ~/.config/zathura/zathurarc-cat ~/.config/zathura/zathurarc 34 | 35 | cp ~/.config/xob/styles-cat.cfg ~/.config/xob/styles.cfg 36 | 37 | cp ~/.config/Kvantum/kvantum-cat.kvconfig ~/.config/Kvantum/kvantum.kvconfig 38 | 39 | pkill fcitx5 40 | 41 | fcitx5 & diswon 42 | 43 | pkill xob 44 | 45 | sh ~/.config/i3/start.sh 46 | 47 | pkill dunst 48 | -------------------------------------------------------------------------------- /config/i3/gummy.sh: -------------------------------------------------------------------------------- 1 | gummy start 2 | -------------------------------------------------------------------------------- /config/i3/lock.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | blank='#00000000' # blank 4 | #background='#1A6785FF' 5 | background='#2e3440' 6 | foreground='#D8DEE9FF' # text 7 | 8 | primary='#4c566a' # default 9 | alert='#81a1c1' # wrong 10 | verifying='#A3BE8CFF' # verifying 11 | 12 | i3lock \ 13 | --color=$background \ 14 | \ 15 | --screen \ 16 | --indicator \ 17 | --keylayout \ 18 | --force-clock \ 19 | \ 20 | --insidever-color=$background \ 21 | --insidewrong-color=$background \ 22 | --inside-color=$background \ 23 | \ 24 | --ringver-color=$primary \ 25 | --ringwrong-color=$alert \ 26 | --ring-color=$primary \ 27 | \ 28 | --line-color=$primary \ 29 | --line-uses-inside \ 30 | \ 31 | --keyhl-color=$alert \ 32 | --bshl-color=$alert \ 33 | \ 34 | --separator-color=$primary \ 35 | \ 36 | --verif-color=$foreground \ 37 | --wrong-color=$foreground \ 38 | --time-color=$foreground \ 39 | --date-color=$foreground \ 40 | --layout-color=$foreground \ 41 | \ 42 | --time-align=0 \ 43 | --date-align=0 \ 44 | --layout-align=0 \ 45 | --verif-align=0 \ 46 | --wrong-align=0 \ 47 | --modif-align=0 \ 48 | \ 49 | # --blur 5 \ 50 | --indicator \ 51 | --keylayout 2 \ 52 | \ 53 | --verif-text="" \ 54 | --wrong-text="" \ 55 | # --clock \ 56 | # --timestr="%H:%M:%S" \ 57 | # --line-uses-inside \ 58 | # --datestr="%A, %m %Y" \ 59 | # --textsize=20 60 | # --modsize=10 61 | #--time-font=noto-sans \ 62 | #--datefont=noto-sans \ 63 | # etc 64 | 65 | -------------------------------------------------------------------------------- /config/i3/mon.sh: -------------------------------------------------------------------------------- 1 | xrandr --output HDMI-A-0 --same-as eDP & 2 | -------------------------------------------------------------------------------- /config/i3/nord.sh: -------------------------------------------------------------------------------- 1 | feh ~/Pictures/nord1.png --bg-fill 2 | 3 | cp ~/.config/alacritty/alacritty-nord.yml ~/.config/alacritty/alacritty.yml 4 | 5 | cp ~/.config/nvim/lua/user/colorscheme-nord.lua ~/.config/nvim/lua/user/colorscheme.lua 6 | 7 | cp ~/.config/nvim/lua/user/lualine-nord.lua ~/.config/nvim/lua/user/lualine.lua 8 | 9 | cp ~/.gtkrc-2.0-nord ~/.gtkrc-2.0 10 | 11 | cp ~/.config/bat/config-nord ~/.config/bat/config 12 | 13 | cp ~/.config/bottom/bottom-nord.toml ~/.config/bottom/bottom.toml 14 | 15 | cp ~/.config/dunst/dunstrc-nord ~/.config/dunst/dunstrc 16 | 17 | cp ~/.config/fcitx5/conf/classicui-nord.conf ~/.config/fcitx5/conf/classicui.conf 18 | 19 | cp ~/.config/gitui/theme-nord.ron ~/.config/gitui/theme.ron 20 | 21 | cp ~/.config/gtk-3.0/settings-nord.ini ~/.config/gtk-3.0/settings.ini 22 | 23 | cp ~/.config/gtk-4.0/gtk-dark-nord.css ~/.config/gtk-4.0/gtk-dark.css 24 | 25 | cp ~/.config/gtk-4.0/gtk-nord.css ~/.config/gtk-4.0/gtk.css 26 | 27 | cp ~/.config/polybar/config-nord.ini ~/.config/polybar/config.ini 28 | 29 | sh ~/.config/polybar/launch.sh 30 | 31 | cp ~/.config/rofi/config-nord.rasi ~/.config/rofi/config.rasi 32 | 33 | cp ~/.config/zathura/zathurarc-nord ~/.config/zathura/zathurarc 34 | 35 | cp ~/.config/xob/styles-nord.cfg ~/.config/xob/styles.cfg 36 | 37 | cp ~/.config/Kvantum/kvantum-nord.kvconfig ~/.config/Kvantum/kvantum.kvconfig 38 | 39 | pkill fcitx5 40 | 41 | fcitx5 & diswon 42 | 43 | pkill xob 44 | 45 | sh ~/.config/i3/start.sh 46 | 47 | pkill dunst 48 | -------------------------------------------------------------------------------- /config/i3/start.sh: -------------------------------------------------------------------------------- 1 | sh /home/charles/.config/i3/volume.sh & 2 | 3 | sh /home/charles/.config/i3/brightness.sh & 4 | -------------------------------------------------------------------------------- /config/i3/volume.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Wait for amixer to become available 4 | until [ "$(amixer)" ]; do sleep 0.1; done 5 | 6 | # `amixer events` always emits 1 event from the start, so we must skip it 7 | skip=1 8 | stdbuf -oL amixer events | 9 | while IFS= read -r line; do 10 | case ${line%%,*} in 11 | ('event value: numid='[34]) 12 | if [ "$skip" -eq 0 ]; then 13 | # The `0+$2` below is to remove the '%' sign 14 | # amixer sget Master | 15 | # awk -F'[][]' '/Left:/ {print 0+$2 ($4 == "off" ? "!" : "")}' 16 | 17 | # Using Pipewire/Wireplumber: 18 | wpctl get-volume @DEFAULT_AUDIO_SINK@ | 19 | awk '{ gsub(/\./, "", $2); print $2 ($3 == "[MUTED]" ? "!" : "")}' 20 | else 21 | skip=$(( skip - 1 )) 22 | fi 23 | esac 24 | done | xob 25 | -------------------------------------------------------------------------------- /config/networkmanager-dmenu/config.ini: -------------------------------------------------------------------------------- 1 | 2 | [dmenu] 3 | # dmenu_command = /usr/bin/dmenu 4 | dmenu_command = rofi -dmenu -l 10 5 | # # Note that dmenu_command can contain arguments as well like: 6 | # # `dmenu_command = rofi -dmenu -i -theme nmdm` 7 | # # `dmenu_command = rofi -dmenu -width 30 -i` 8 | # dmenu_command = rofi -dmenu -width 30 -i 9 | # dmenu_command = dmenu -i -l 25 -b -nb #909090 -nf #303030 10 | # rofi_highlight = # (Default: False) use rofi highlighting instead of '==' 11 | # compact = # (Default: False). Remove extra spacing from display 12 | # compact = False 13 | compact = False 14 | # pinentry = # (Default: None) e.g. `pinentry-gtk` 15 | # wifi_chars = 16 | # wifi_chars = ▂▄▆█ 17 | # list_saved = # (Default: False) list saved connections 18 | 19 | [dmenu_passphrase] 20 | # # Uses the -password flag for Rofi, -x for bemenu. For dmenu, sets -nb and 21 | # # -nf to the same color or uses -P if the dmenu password patch is applied 22 | # # https://tools.suckless.org/dmenu/patches/password/ 23 | # obscure = True 24 | # obscure_color = #222222 25 | 26 | [editor] 27 | # terminal = 28 | # gui_if_available = (Default: True) 29 | -------------------------------------------------------------------------------- /config/nvim/after/ftplugin/rust.lua: -------------------------------------------------------------------------------- 1 | local bufnr = vim.api.nvim_get_current_buf() 2 | vim.keymap.set( 3 | "n", 4 | "a", 5 | function() 6 | vim.cmd.RustLsp('codeAction') -- supports rust-analyzer's grouping 7 | -- or vim.lsp.buf.codeAction() if you don't want grouping. 8 | end, 9 | { silent = true, buffer = bufnr } 10 | ) 11 | vim.keymap.set( 12 | "n", 13 | "K", -- Override Neovim's built-in hover keymap with rustaceanvim's hover actions 14 | function() 15 | vim.cmd.RustLsp({'hover', 'actions'}) 16 | end, 17 | { silent = true, buffer = bufnr } 18 | ) 19 | -------------------------------------------------------------------------------- /config/nvim/init.lua: -------------------------------------------------------------------------------- 1 | vim.loader.enable() 2 | vim.g.loaded_netrw = 1 3 | vim.g.loaded_netrwPlugin = 1 4 | vim.opt.termguicolors = true 5 | 6 | 7 | vim.diagnostic.config({ 8 | signs = { text = { [vim.diagnostic.severity.WARN] = "cahac", ... } }, 9 | }) 10 | 11 | require("user.lazy") 12 | require("user.options") 13 | require("user.keymaps") 14 | -------------------------------------------------------------------------------- /config/nvim/lazy-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, 3 | "LuaSnip": { "branch": "master", "commit": "faf3c94a44508cec1b961406d36cc65113ff3b98" }, 4 | "alpha-nvim": { "branch": "main", "commit": "a35468cd72645dbd52c0624ceead5f301c566dff" }, 5 | "bigfile.nvim": { "branch": "main", "commit": "33eb067e3d7029ac77e081cfe7c45361887a311a" }, 6 | "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, 7 | "catppuccin": { "branch": "main", "commit": "a0c769bc7cd04bbbf258b3d5f01e2bdce744108d" }, 8 | "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" }, 9 | "cmp-latex-symbols": { "branch": "main", "commit": "86b68e6d6c550442d4a3f826e1b8358c5300824c" }, 10 | "cmp-nvim-lsp": { "branch": "main", "commit": "a8912b88ce488f411177fc8aed358b04dc246d7b" }, 11 | "cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" }, 12 | "cmp-path": { "branch": "main", "commit": "c6635aae33a50d6010bf1aa756ac2398a2d54c32" }, 13 | "cmp-spell": { "branch": "master", "commit": "694a4e50809d6d645c1ea29015dad0c293f019d6" }, 14 | "cmp-treesitter": { "branch": "master", "commit": "c8e3a74b51597d69d240085a258636972ce98e15" }, 15 | "cmp-under-comparator": { "branch": "master", "commit": "6857f10272c3cfe930cece2afa2406e1385bfef8" }, 16 | "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, 17 | "flash.nvim": { "branch": "main", "commit": "3c942666f115e2811e959eabbdd361a025db8b63" }, 18 | "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, 19 | "fzy-lua-native": { "branch": "master", "commit": "9d720745d5c2fb563c0d86c17d77612a3519c506" }, 20 | "guard-collection": { "branch": "main", "commit": "7e87ae9c3758221ec6dbd24bb44ee8ff400f3940" }, 21 | "guard.nvim": { "branch": "main", "commit": "37e2a5bcc10169b78537f7279afe6bdca85c3446" }, 22 | "image.nvim": { "branch": "master", "commit": "4c51d6202628b3b51e368152c053c3fb5c5f76f2" }, 23 | "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, 24 | "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, 25 | "lsp_signature.nvim": { "branch": "master", "commit": "d50e40b3bf9324128e71b0b7e589765ce89466d2" }, 26 | "lspsaga.nvim": { "branch": "main", "commit": "920b1253e1a26732e53fac78412f6da7f674671d" }, 27 | "lualine.nvim": { "branch": "master", "commit": "0c6cca9f2c63dadeb9225c45bc92bb95a151d4af" }, 28 | "nord.nvim": { "branch": "master", "commit": "80c1e5321505aeb22b7a9f23eb82f1e193c12470" }, 29 | "nvim-autopairs": { "branch": "master", "commit": "4d74e75913832866aa7de35e4202463ddf6efd1b" }, 30 | "nvim-bufdel": { "branch": "main", "commit": "523d58e94e7212fff3e05c247b962dc8f93bcfde" }, 31 | "nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" }, 32 | "nvim-colorizer.lua": { "branch": "master", "commit": "517df88cf2afb36652830df2c655df2da416a0ae" }, 33 | "nvim-hlslens": { "branch": "main", "commit": "1e650c136f9f9d5fefe34947ad27c80010d3321f" }, 34 | "nvim-lspconfig": { "branch": "master", "commit": "8adb3b5938f6074a1bcc36d3c3916f497d2e8ec4" }, 35 | "nvim-spider": { "branch": "main", "commit": "99df646eab60df0b948dd2532ef5f5512707a9a4" }, 36 | "nvim-tree.lua": { "branch": "master", "commit": "be5b788f2dc1522c73fb7afad9092331c8aebe80" }, 37 | "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, 38 | "nvim-treesitter-textobjects": { "branch": "master", "commit": "0f051e9813a36481f48ca1f833897210dbcfffde" }, 39 | "nvim-ts-context-commentstring": { "branch": "main", "commit": "1b212c2eee76d787bbea6aa5e92a2b534e7b4f8f" }, 40 | "nvim-ufo": { "branch": "main", "commit": "3c7a3570e9c9dc198a2ad4491b0b0e51c4d4ba08" }, 41 | "nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" }, 42 | "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, 43 | "promise-async": { "branch": "main", "commit": "119e8961014c9bfaf1487bf3c2a393d254f337e2" }, 44 | "render-markdown.nvim": { "branch": "main", "commit": "dd620561843d5a62c917fffe77f2923c965d12c7" }, 45 | "rustaceanvim": { "branch": "master", "commit": "5120207f90846704a74cbf043295698b009bd5de" }, 46 | "statuscol.nvim": { "branch": "main", "commit": "c46172d0911aa5d49ba5f39f4351d1bb7aa289cc" }, 47 | "telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" }, 48 | "telescope-live-grep-args.nvim": { "branch": "master", "commit": "b80ec2c70ec4f32571478b501218c8979fab5201" }, 49 | "telescope-media-files.nvim": { "branch": "master", "commit": "0826c7a730bc4d36068f7c85cf4c5b3fd9fb570a" }, 50 | "telescope-thesaurus.nvim": { "branch": "master", "commit": "0bd7f7c2ce67c8b86b98b80dd42ec597bea72c7c" }, 51 | "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, 52 | "telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" }, 53 | "trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" }, 54 | "typst.vim": { "branch": "main", "commit": "323539709e29a537ff39dfce6c05f175a8921504" }, 55 | "vim-illuminate": { "branch": "master", "commit": "0d1e93684da00ab7c057410fecfc24f434698898" }, 56 | "vim-matchup": { "branch": "master", "commit": "56c714495ec7f40cf2c7e92fb124067c7951e650" }, 57 | "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }, 58 | "wilder.nvim": { "branch": "master", "commit": "679f348dc90d80ff9ba0e7c470c40a4d038dcecf" } 59 | } 60 | -------------------------------------------------------------------------------- /config/nvim/lua/.luarc.json: -------------------------------------------------------------------------------- 1 | { 2 | "diagnostics.disable": [ 3 | "different-requires" 4 | ], 5 | "diagnostics.globals": [ 6 | "vim" 7 | ] 8 | } -------------------------------------------------------------------------------- /config/nvim/lua/user/cmp/autopairs.lua: -------------------------------------------------------------------------------- 1 | return function() 2 | local npairs = require("nvim-autopairs") 3 | npairs.setup { 4 | check_ts = true, 5 | ts_config = { 6 | lua = { "string", "source" }, 7 | javascript = { "string", "template_string" }, 8 | java = false, 9 | }, 10 | disable_filetype = { "TelescopePrompt", "spectre_panel" }, 11 | fast_wrap = { 12 | map = "", 13 | chars = { "{", "[", "(", '"', "'" }, 14 | pattern = string.gsub([[ [%'%"%)%>%]%)%}%,] ]], "%s+", ""), 15 | offset = 0, -- Offset from pattern match 16 | end_key = "$", 17 | keys = "qwertyuiopzxcvbnmasdfghjkl", 18 | check_comma = true, 19 | highlight = "PmenuSel", 20 | highlight_grey = "LineNr", 21 | }, 22 | } 23 | 24 | local cmp_autopairs = require "nvim-autopairs.completion.cmp" 25 | local cmp_status_ok, cmp = pcall(require, "cmp") 26 | if not cmp_status_ok then 27 | return 28 | end 29 | cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done { map_char = { tex = "" } }) 30 | end 31 | -------------------------------------------------------------------------------- /config/nvim/lua/user/cmp/cmp.lua: -------------------------------------------------------------------------------- 1 | -- find more here: https://www.nerdfonts.com/cheat-sheet 2 | return function() 3 | local cmp = require("cmp") 4 | local luasnip = require("luasnip") 5 | local icons = { 6 | kind = require("user.ui.icons").get("kind"), 7 | type = require("user.ui.icons").get("type"), 8 | cmp = require("user.ui.icons").get("cmp"), 9 | } 10 | cmp.setup({ 11 | sorting = { 12 | comparators = { 13 | cmp.config.compare.offset, 14 | cmp.config.compare.exact, 15 | cmp.config.compare.recently_used, 16 | --[[ require("clangd_extensions.cmp_scores"), ]] 17 | cmp.config.compare.score, 18 | require("cmp-under-comparator").under, 19 | cmp.config.compare.kind, 20 | cmp.config.compare.sort_text, 21 | cmp.config.compare.length, 22 | cmp.config.compare.order, 23 | }, 24 | }, 25 | snippet = { 26 | expand = function(args) 27 | luasnip.lsp_expand(args.body) -- For `luasnip` users. 28 | end, 29 | }, 30 | mapping = { 31 | [""] = cmp.mapping.select_prev_item(), 32 | [""] = cmp.mapping.select_next_item(), 33 | [""] = cmp.mapping(cmp.mapping.scroll_docs(-1), { "i", "c" }), 34 | [""] = cmp.mapping(cmp.mapping.scroll_docs(1), { "i", "c" }), 35 | [""] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }), 36 | [""] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `` mapping. 37 | [""] = cmp.mapping({ 38 | i = cmp.mapping.abort(), 39 | c = cmp.mapping.close(), 40 | }), 41 | -- Accept currently selected item. If none selected, `select` first item. 42 | -- Set `select` to `false` to only confirm explicitly selected items. 43 | [""] = cmp.mapping.confirm({ select = true }), 44 | [""] = cmp.mapping(function(fallback) 45 | if cmp.visible() then 46 | cmp.select_next_item() 47 | elseif luasnip.expandable() then 48 | luasnip.expand() 49 | elseif luasnip.expand_or_jumpable() then 50 | luasnip.expand_or_jump() 51 | else 52 | fallback() 53 | end 54 | end, { 55 | "i", 56 | "s", 57 | }), 58 | [""] = cmp.mapping(function(fallback) 59 | if cmp.visible() then 60 | cmp.select_prev_item() 61 | elseif luasnip.jumpable(-1) then 62 | luasnip.jump(-1) 63 | else 64 | fallback() 65 | end 66 | end, { 67 | "i", 68 | "s", 69 | }), 70 | }, 71 | formatting = { 72 | fields = { "kind", "abbr", "menu" }, 73 | format = function(entry, vim_item) 74 | -- Kind icons 75 | --[[ vim_item.kind = string.format("%s", kind_icons[vim_item.kind]) ]] 76 | 77 | local lspkind_icons = vim.tbl_deep_extend("force", icons.kind, icons.type, icons.cmp) 78 | -- load lspkind icons 79 | vim_item.kind = 80 | string.format("%s %s", lspkind_icons[vim_item.kind] or icons.cmp.undefined, vim_item.kind or "") 81 | -- vim_item.kind = string.format('%s %s', kind_icons[vim_item.kind], vim_item.kind) -- This concatonates the icons with the name of the item kind 82 | vim_item.menu = ({ 83 | nvim_lsp = "[LSP]", 84 | nvim_lua = "[NVIM_LUA]", 85 | luasnip = "[Snippet]", 86 | buffer = "[Buffer]", 87 | path = "[Path]", 88 | spell = "[SPELL]", 89 | latex_symbols = "[LTEX]", 90 | treesitter = "[TS]", 91 | })[entry.source.name] 92 | return vim_item 93 | end, 94 | }, 95 | sources = { 96 | { name = "nvim_lsp" }, 97 | { name = "nvim_lua" }, 98 | { name = "luasnip" }, 99 | { name = "buffer" }, 100 | { name = "path" }, 101 | { name = "treesitter" }, 102 | { name = "spell" }, 103 | { name = "latex_symbols" }, 104 | }, 105 | confirm_opts = { 106 | behavior = cmp.ConfirmBehavior.Replace, 107 | select = false, 108 | }, 109 | window = { 110 | documentation = { 111 | border = { "╭", "─", "╮", "│", "╯", "─", "╰", "│" }, 112 | }, 113 | }, 114 | experimental = { 115 | ghost_text = false, 116 | native_menu = false, 117 | }, 118 | }) 119 | end 120 | -------------------------------------------------------------------------------- /config/nvim/lua/user/cmp/guard.lua: -------------------------------------------------------------------------------- 1 | return function() 2 | --[[ require("guard").setup({ ]] 3 | --[[ -- the only options for the setup function ]] 4 | --[[ fmt_on_save = false, ]] 5 | --[[ -- Use lsp if no formatter was defined for this filetype ]] 6 | --[[ lsp_as_default_formatter = false, ]] 7 | --[[ }) ]] 8 | local ft_gu = require("guard.filetype") 9 | vim.g.guard_config = { 10 | -- format on write to buffer 11 | fmt_on_save = false, 12 | -- use lsp if no formatter was defined for this filetype 13 | lsp_as_default_formatter = false, 14 | -- whether or not to save the buffer after formatting 15 | save_on_fmt = false, 16 | } 17 | 18 | ft_gu("c") 19 | :fmt({ 20 | cmd = "clang-format", 21 | args = { "--style=Google" }, 22 | stdin = true, 23 | }) 24 | :lint("clang-tidy") 25 | ft_gu("cpp") 26 | :fmt({ 27 | cmd = "clang-format", 28 | args = { "--style=Google" }, 29 | stdin = true, 30 | }) 31 | :lint("clang-tidy") 32 | ft_gu("cuda"):fmt({ 33 | cmd = "clang-format", 34 | args = { "--style=Microsoft" }, 35 | stdin = true, 36 | }) 37 | 38 | ft_gu("typescript,javascript,typescriptreact,markdown,html,json,jsonc,vue"):fmt("prettier") 39 | ft_gu("rust"):fmt("rustfmt") 40 | ft_gu("python"):fmt("ruff"):lint("ruff") 41 | ft_gu("lua"):fmt("stylua") 42 | ft_gu("bash"):fmt("shfmt") 43 | ft_gu("java"):fmt("google-java-format") 44 | 45 | ft_gu("go"):fmt("gofmt") 46 | end 47 | -------------------------------------------------------------------------------- /config/nvim/lua/user/cmp/handlersmason.lua: -------------------------------------------------------------------------------- 1 | local M = {} 2 | 3 | local status_cmp_ok, cmp_nvim_lsp = pcall(require, "cmp_nvim_lsp") 4 | if not status_cmp_ok then 5 | return 6 | end 7 | 8 | M.capabilities = vim.lsp.protocol.make_client_capabilities() 9 | M.capabilities.textDocument.completion.completionItem.snippetSupport = true 10 | M.capabilities = cmp_nvim_lsp.default_capabilities(M.capabilities) 11 | 12 | M.setup = function() 13 | local signs = { 14 | { name = "DiagnosticSignError", text = "" }, 15 | { name = "DiagnosticSignWarn", text = "" }, 16 | { name = "DiagnosticSignHint", text = "󰌵" }, 17 | { name = "DiagnosticSignInfo", text = "" }, 18 | } 19 | --[[]] 20 | --[[ for _, sign in ipairs(signs) do ]] 21 | --[[ vim.fn.sign_define(sign.name, { texthl = sign.name, text = sign.text, numhl = "" }) ]] 22 | --[[ end ]] 23 | 24 | local config = { 25 | virtual_text = false, -- disable virtual text 26 | signs = { 27 | text = { 28 | [vim.diagnostic.severity.ERROR] = "", 29 | [vim.diagnostic.severity.WARN] = "", 30 | [vim.diagnostic.severity.INFO] = "", 31 | [vim.diagnostic.severity.HINT] = "󰌵", 32 | }, 33 | }, 34 | update_in_insert = true, 35 | underline = true, 36 | severity_sort = true, 37 | float = { 38 | focusable = true, 39 | style = "minimal", 40 | border = "rounded", 41 | source = "always", 42 | header = "", 43 | prefix = "", 44 | }, 45 | } 46 | 47 | vim.diagnostic.config(config) 48 | 49 | vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { 50 | border = "rounded", 51 | }) 52 | 53 | vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, { 54 | border = "rounded", 55 | }) 56 | end 57 | 58 | M.on_attach = function(client, bufnr) 59 | if client.name == "tsserver" then 60 | client.server_capabilities.documentFormattingProvider = false 61 | end 62 | 63 | if client.name == "sumneko_lua" then 64 | client.server_capabilities.documentFormattingProvider = false 65 | end 66 | 67 | --[[ lsp_keymaps(bufnr) ]] 68 | local status_ok, illuminate = pcall(require, "illuminate") 69 | if not status_ok then 70 | return 71 | end 72 | illuminate.on_attach(client) 73 | end 74 | 75 | --[[ require('goto-preview').setup {} ]] 76 | --[[ vim.keymap.set("n", "gp", "lua require('goto-preview').goto_preview_definition()", {noremap=true}) ]] 77 | --[[]] 78 | return M 79 | -------------------------------------------------------------------------------- /config/nvim/lua/user/cmp/installlsp: -------------------------------------------------------------------------------- 1 | npm i -g vscode-langservers-extracted 2 | 3 | yay -S clangd 4 | 5 | yay -S cmake-language-server 6 | 7 | yay -S jdtls 8 | 9 | yay -S jedi-language-server 10 | 11 | yay -S lua-language-server 12 | 13 | yay -S marksman 14 | 15 | yay -S pyright 16 | 17 | yay -S python-lsp-server 18 | 19 | r :install.packages("languageserver") 20 | 21 | yay -S rust-analyzer 22 | 23 | yay -S texlab 24 | 25 | npm i -g grammarly-languageserver 26 | 27 | yay typst-lsp 28 | -------------------------------------------------------------------------------- /config/nvim/lua/user/cmp/lsp-sign.lua: -------------------------------------------------------------------------------- 1 | return function() 2 | local opts = { 3 | bind = true, 4 | -- TODO: Remove the following line when nvim-cmp#1613 gets resolved 5 | check_completion_visible = false, 6 | floating_window = true, 7 | floating_window_above_cur_line = true, 8 | hi_parameter = "Search", 9 | hint_enable = true, 10 | transparency = nil, -- disabled by default, allow floating win transparent value 1~100 11 | wrap = true, 12 | zindex = 45, -- avoid overlap with nvim.cmp 13 | handler_opts = { border = "single" }, 14 | } 15 | require("lsp_signature").setup(opts) 16 | end 17 | -------------------------------------------------------------------------------- /config/nvim/lua/user/cmp/lsp.lua: -------------------------------------------------------------------------------- 1 | return function() 2 | require("lspconfig").html.setup({}) 3 | require("user.cmp.handlersmason").setup() 4 | require("lspconfig").clangd.setup({}) 5 | --[[ require("lspconfig").ccls.setup({}) ]] 6 | require("lspconfig").cmake.setup({}) 7 | require("lspconfig").jdtls.setup({}) 8 | --[[ require 'lspconfig'.jedi_language_server.setup {} ]] 9 | require("lspconfig").lua_ls.setup({}) 10 | require("lspconfig").marksman.setup({}) 11 | require("lspconfig").pyright.setup({}) 12 | --[[ require("lspconfig").jedi_language_server.setup({}) ]] 13 | --[[ require 'lspconfig'.pylsp.setup {} ]] 14 | require("lspconfig").r_language_server.setup({}) 15 | require("lspconfig").cssls.setup({ 16 | 17 | single_file_support = true, 18 | }) 19 | require("lspconfig").texlab.setup({ 20 | --[[ cmd = { "/home/charles/SourceFile/bin/texlab" }, ]] 21 | }) 22 | 23 | --[[ require("lspconfig").grammarly.setup({ ]] 24 | --[[ cmd = { "grammarly-languageserver", "--stdio" }, ]] 25 | --[[ filetypes = { "tex", "markdown", "text" }, ]] 26 | --[[ init_options = { ]] 27 | --[[ clientId = "client_BaDkMgx4X19X9UxxYRCXZo", ]] 28 | --[[ }, ]] 29 | --[[ single_file_support = true, ]] 30 | --[[ root_dir = util.find_git_ancestor, ]] 31 | --[[ }) ]] 32 | 33 | require("lspconfig").tinymist.setup({}) 34 | --[[ require("lspconfig").rust_analyzer.setup({ ]] 35 | --[[ }) ]] 36 | 37 | require("lspconfig").ruff.setup({ 38 | init_options = { 39 | settings = { 40 | -- Any extra CLI arguments for `ruff` go here. 41 | args = {}, 42 | }, 43 | }, 44 | }) 45 | 46 | require("lspconfig").r_language_server.setup({}) 47 | require("lspconfig").gopls.setup({}) 48 | end 49 | -------------------------------------------------------------------------------- /config/nvim/lua/user/cmp/lspsaga.lua: -------------------------------------------------------------------------------- 1 | return function() 2 | --[[ require("modules.utils").gen_lspkind_hl() ]] 3 | 4 | local icons = { 5 | cmp = require("user.ui.icons").get("cmp", true), 6 | diagnostics = require("user.ui.icons").get("diagnostics", true), 7 | kind = require("user.ui.icons").get("kind", true), 8 | type = require("user.ui.icons").get("type", true), 9 | ui = require("user.ui.icons").get("ui", true), 10 | } 11 | 12 | local function set_sidebar_icons() 13 | vim.diagnostic.config({ 14 | signs = { 15 | text = { 16 | [vim.diagnostic.severity.ERROR] = "", 17 | [vim.diagnostic.severity.WARN] = "", 18 | [vim.diagnostic.severity.INFO] = "", 19 | [vim.diagnostic.severity.HINT] = "󰌵", 20 | }, 21 | }, 22 | }) 23 | end 24 | 25 | set_sidebar_icons() 26 | 27 | require("lspsaga").setup({ 28 | -- Breadcrumbs: https://dev.neovim.pro/lspsaga/breadcrumbs/ 29 | symbol_in_winbar = { 30 | enable = true, 31 | separator = " " .. icons.ui.Separator, 32 | hide_keyword = false, 33 | show_file = false, 34 | folder_level = 1, 35 | color_mode = true, 36 | delay = 100, 37 | }, 38 | -- https://dev.neovim.pro/lspsaga/callhierarchy/ 39 | callhierarchy = { 40 | layout = "float", 41 | --[[ keys = { ]] 42 | --[[ edit = "e", ]] 43 | --[[ vsplit = "v", ]] 44 | --[[ split = "s", ]] 45 | --[[ tabe = "t", ]] 46 | --[[ quit = "q", ]] 47 | --[[ shuttle = "[]", ]] 48 | --[[ toggle_or_req = "u", ]] 49 | --[[ close = "", ]] 50 | --[[ }, ]] 51 | }, 52 | -- https://dev.neovim.pro/lspsaga/codeaction/ 53 | code_action = { 54 | num_shortcut = true, 55 | only_in_cursor = false, 56 | show_server_name = true, 57 | extend_gitsigns = false, 58 | --[[ keys = { ]] 59 | --[[ quit = "q", ]] 60 | --[[ exec = "", ]] 61 | --[[ }, ]] 62 | }, 63 | -- https://dev.neovim.pro/lspsaga/diagnostic/ 64 | diagnostic = { 65 | show_code_action = true, 66 | jump_num_shortcut = true, 67 | max_width = 0.5, 68 | max_height = 0.6, 69 | text_hl_follow = true, 70 | border_follow = true, 71 | extend_relatedInformation = true, 72 | show_layout = "float", 73 | show_normal_height = 10, 74 | max_show_width = 0.9, 75 | max_show_height = 0.6, 76 | diagnostic_only_current = false, 77 | --[[ keys = { ]] 78 | --[[ exec_action = "r", ]] 79 | --[[ quit = "q", ]] 80 | --[[ toggle_or_jump = "", ]] 81 | --[[ quit_in_show = { "q", "" }, ]] 82 | --[[ }, ]] 83 | }, 84 | -- https://dev.neovim.pro/lspsaga/hover/ 85 | hover = { 86 | max_width = 0.45, 87 | max_height = 0.7, 88 | open_link = "gl", 89 | --[[ open_cmd = "silent !" .. require("core.settings").external_browser, ]] 90 | }, 91 | -- https://dev.neovim.pro/lspsaga/implement/ 92 | implement = { 93 | enable = true, 94 | sign = true, 95 | virtual_text = false, 96 | priority = 100, 97 | }, 98 | -- https://dev.neovim.pro/lspsaga/lightbulb/ 99 | lightbulb = { 100 | enable = false, 101 | sign = true, 102 | virtual_text = false, 103 | debounce = 10, 104 | sign_priority = 20, 105 | }, 106 | -- https://dev.neovim.pro/lspsaga/rename/ 107 | rename = { 108 | in_select = false, 109 | auto_save = false, 110 | project_max_width = 0.5, 111 | project_max_height = 0.5, 112 | --[[ keys = { ]] 113 | --[[ quit = "", ]] 114 | --[[ exec = "", ]] 115 | --[[ select = "x", ]] 116 | --[[ }, ]] 117 | }, 118 | -- https://dev.neovim.pro/lspsaga/misc/#beacon 119 | beacon = { 120 | enable = true, 121 | frequency = 12, 122 | }, 123 | -- https://dev.neovim.pro/lspsaga/misc/#generic-ui-options 124 | ui = { 125 | border = "single", -- Can be single, double, rounded, solid, shadow. 126 | devicon = true, 127 | title = true, 128 | expand = icons.ui.ArrowClosed, 129 | collapse = icons.ui.ArrowOpen, 130 | code_action = icons.ui.CodeAction, 131 | actionfix = icons.ui.Spell, 132 | lines = { "┗", "┣", "┃", "━", "┏" }, 133 | imp_sign = icons.kind.Implementation, 134 | kind = require("catppuccin.groups.integrations.lsp_saga").custom_kind(), 135 | --[[ kind = { ]] 136 | --[[ -- Kind ]] 137 | --[[ Class = { icons.kind.Class, "LspKindClass" }, ]] 138 | --[[ Constant = { icons.kind.Constant, "LspKindConstant" }, ]] 139 | --[[ Constructor = { icons.kind.Constructor, "LspKindConstructor" }, ]] 140 | --[[ Enum = { icons.kind.Enum, "LspKindEnum" }, ]] 141 | --[[ EnumMember = { icons.kind.EnumMember, "LspKindEnumMember" }, ]] 142 | --[[ Event = { icons.kind.Event, "LspKindEvent" }, ]] 143 | --[[ Field = { icons.kind.Field, "LspKindField" }, ]] 144 | --[[ File = { icons.kind.File, "LspKindFile" }, ]] 145 | --[[ Function = { icons.kind.Function, "LspKindFunction" }, ]] 146 | --[[ Interface = { icons.kind.Interface, "LspKindInterface" }, ]] 147 | --[[ Key = { icons.kind.Keyword, "LspKindKey" }, ]] 148 | --[[ Method = { icons.kind.Method, "LspKindMethod" }, ]] 149 | --[[ Module = { icons.kind.Module, "LspKindModule" }, ]] 150 | --[[ Namespace = { icons.kind.Namespace, "LspKindNamespace" }, ]] 151 | --[[ Number = { icons.kind.Number, "LspKindNumber" }, ]] 152 | --[[ Operator = { icons.kind.Operator, "LspKindOperator" }, ]] 153 | --[[ Package = { icons.kind.Package, "LspKindPackage" }, ]] 154 | --[[ Property = { icons.kind.Property, "LspKindProperty" }, ]] 155 | --[[ Struct = { icons.kind.Struct, "LspKindStruct" }, ]] 156 | --[[ TypeParameter = { icons.kind.TypeParameter, "LspKindTypeParameter" }, ]] 157 | --[[ Variable = { icons.kind.Variable, "LspKindVariable" }, ]] 158 | --[[ -- Type ]] 159 | --[[ Array = { icons.type.Array, "LspKindArray" }, ]] 160 | --[[ Boolean = { icons.type.Boolean, "LspKindBoolean" }, ]] 161 | --[[ Null = { icons.type.Null, "LspKindNull" }, ]] 162 | --[[ Object = { icons.type.Object, "LspKindObject" }, ]] 163 | --[[ String = { icons.type.String, "LspKindString" }, ]] 164 | --[[ -- ccls-specific icons. ]] 165 | --[[ TypeAlias = { icons.kind.TypeAlias, "LspKindTypeAlias" }, ]] 166 | --[[ Parameter = { icons.kind.Parameter, "LspKindParameter" }, ]] 167 | --[[ StaticMethod = { icons.kind.StaticMethod, "LspKindStaticMethod" }, ]] 168 | --[[ -- Microsoft-specific icons. ]] 169 | --[[ Text = { icons.kind.Text, "LspKindText" }, ]] 170 | --[[ Snippet = { icons.kind.Snippet, "LspKindSnippet" }, ]] 171 | --[[ Folder = { icons.kind.Folder, "LspKindFolder" }, ]] 172 | --[[ Unit = { icons.kind.Unit, "LspKindUnit" }, ]] 173 | --[[ Value = { icons.kind.Value, "LspKindValue" }, ]] 174 | --[[ }, ]] 175 | }, 176 | -- https://dev.neovim.pro/lspsaga/misc/#scrolling-keymaps 177 | scroll_preview = { 178 | scroll_down = "", 179 | scroll_up = "", 180 | }, 181 | request_timeout = 3000, 182 | }) 183 | end 184 | -------------------------------------------------------------------------------- /config/nvim/lua/user/cmp/luasnip.lua: -------------------------------------------------------------------------------- 1 | return function() 2 | require("luasnip").setup({ 3 | history = true, 4 | update_events = "TextChanged,TextChangedI", 5 | delete_check_events = "TextChanged,InsertLeave", 6 | }) 7 | require("luasnip.loaders.from_lua").lazy_load() 8 | require("luasnip.loaders.from_vscode").lazy_load() 9 | require("luasnip.loaders.from_snipmate").lazy_load() 10 | end 11 | -------------------------------------------------------------------------------- /config/nvim/lua/user/editor/colorsizer.lua: -------------------------------------------------------------------------------- 1 | 2 | return function() 3 | local color1 = require("colorizer") 4 | color1.setup( 5 | 6 | 7 | ) 8 | end 9 | -------------------------------------------------------------------------------- /config/nvim/lua/user/editor/comment.lua: -------------------------------------------------------------------------------- 1 | 2 | return function() 3 | local comment = require("Comment") 4 | comment.setup { 5 | pre_hook = function(ctx) 6 | local U = require "Comment.utils" 7 | local location = nil 8 | if ctx.ctype == U.ctype.block then 9 | location = require("ts_context_commentstring.utils").get_cursor_location() 10 | elseif ctx.cmotion == U.cmotion.v or ctx.cmotion == U.cmotion.V then 11 | location = require("ts_context_commentstring.utils").get_visual_start_location() 12 | end 13 | -- 14 | return require("ts_context_commentstring.internal").calculate_commentstring { 15 | key = ctx.ctype == U.ctype.line and "__default" or "__multiline", 16 | location = location, 17 | } 18 | end, 19 | } 20 | end 21 | -------------------------------------------------------------------------------- /config/nvim/lua/user/editor/illuminate.lua: -------------------------------------------------------------------------------- 1 | return function() 2 | require('illuminate').configure({ 3 | providers = { 4 | "lsp", 5 | "treesitter", 6 | "regex", 7 | }, 8 | delay = 100, 9 | filetypes_denylist = { 10 | "dirvish", 11 | "fugitive", 12 | "alpha", 13 | "NvimTree", 14 | "packer", 15 | "neogitstatus", 16 | "Trouble", 17 | "lir", 18 | "Outline", 19 | "spectre_panel", 20 | "toggleterm", 21 | "DressingSelect", 22 | "TelescopePrompt", 23 | }, 24 | under_cursor = false, 25 | }) 26 | end 27 | -------------------------------------------------------------------------------- /config/nvim/lua/user/editor/treesitter.lua: -------------------------------------------------------------------------------- 1 | return function() 2 | local configs = require("nvim-treesitter.configs") 3 | configs.setup({ 4 | ensure_installed = { 5 | "bash", 6 | "bibtex", 7 | "c", 8 | "cpp", 9 | "cmake", 10 | "commonlisp", 11 | "css", 12 | "cuda", 13 | "go", 14 | "gomod", 15 | "html", 16 | "haskell", 17 | "javascript", 18 | "java", 19 | "json", 20 | "latex", 21 | "lua", 22 | "make", 23 | "markdown", 24 | "markdown_inline", 25 | "python", 26 | "rust", 27 | "r", 28 | "typescript", 29 | "vimdoc", 30 | "vim", 31 | "vue", 32 | "yaml", 33 | }, 34 | 35 | --[[ ensure_installed = "maintained", ]] 36 | -- ensure_installed = "maintained", 37 | sync_install = true, 38 | ignore_install = { "" }, -- List of parsers to ignore installing 39 | highlight = { 40 | enable = true, -- false will disable the whole extension 41 | disable = { "typst" }, -- list of language that will be disabled 42 | additional_vim_regex_highlighting = false, 43 | }, 44 | indent = { enable = true, disable = { "yaml" } }, 45 | matchup = { 46 | enable = true, -- mandatory, false will disable the whole extension 47 | --[[ disable = { "c", "ruby" }, -- optional, list of language that will be disabled ]] 48 | -- [options] 49 | }, 50 | }) 51 | end 52 | -------------------------------------------------------------------------------- /config/nvim/lua/user/keymaps.lua: -------------------------------------------------------------------------------- 1 | local opts = { noremap = true, silent = true } 2 | 3 | local term_opts = { silent = true } 4 | 5 | -- Shorten function name 6 | local keymap = vim.api.nvim_set_keymap 7 | 8 | --Remap space as leader key 9 | keymap("", "", "", opts) 10 | vim.g.mapleader = " " 11 | vim.g.maplocalleader = " " 12 | 13 | -- Normal -- 14 | -- Better window navigation 15 | keymap("n", "", "h", opts) 16 | keymap("n", "", "j", opts) 17 | keymap("n", "", "k", opts) 18 | keymap("n", "", "l", opts) 19 | 20 | -- Resize with arrows 21 | keymap("n", "", ":resize -2", opts) 22 | keymap("n", "", ":resize +2", opts) 23 | keymap("n", "", ":vertical resize -2", opts) 24 | keymap("n", "", ":vertical resize +2", opts) 25 | 26 | -- Navigate buffers 27 | keymap("n", "", ":bnext", opts) 28 | keymap("n", "", ":bprevious", opts) 29 | 30 | -- Move text up and down 31 | keymap("n", "", ":m .+1==gi", opts) 32 | keymap("n", "", ":m .-2==gi", opts) 33 | 34 | -- Insert -- 35 | -- Press jk fast to exit insert mode 36 | keymap("i", "jk", "", opts) 37 | 38 | -- Visual -- 39 | -- Stay in indent mode 40 | keymap("v", "<", "", ">gv", opts) 42 | 43 | -- Move text up and down 44 | keymap("v", "", ":m .+1==", opts) 45 | keymap("v", "", ":m .-2==", opts) 46 | keymap("v", "p", '"_dP', opts) 47 | 48 | -- Visual Block -- 49 | -- Move text up and down 50 | keymap("x", "J", ":move '>+1gv-gv", opts) 51 | keymap("x", "K", ":move '<-2gv-gv", opts) 52 | keymap("x", "", ":move '>+1gv-gv", opts) 53 | keymap("x", "", ":move '<-2gv-gv", opts) 54 | 55 | vim.api.nvim_create_user_command("RustEnableInlayHints", "lua require('rust-tools').inlay_hints.set()", {}) 56 | vim.api.nvim_create_user_command("RustDisableInlayHints", "lua require('rust-tools').inlay_hints.unset()", {}) 57 | 58 | keymap("n", "gh", "Lspsaga lsp_finder", opts) 59 | keymap("n", "K", "Lspsaga hover_doc", opts) 60 | keymap("n", "gp", "Lspsaga peek_definition", opts) 61 | keymap("n", "gd", "Lspsaga goto_definition", opts) 62 | keymap("n", "gf", "Guard fmt", opts) 63 | keymap("n", "o", "Lspsaga outline", opts) 64 | keymap("n", "", "Lspsaga term_toggle", opts) 65 | keymap("t", "", "Lspsaga term_toggle", opts) 66 | 67 | vim.api.nvim_set_keymap("i", "", "(TaboutMulti)", { silent = true }) 68 | vim.api.nvim_set_keymap("i", "", "(TaboutBackMulti)", { silent = true }) 69 | -------------------------------------------------------------------------------- /config/nvim/lua/user/lang/image.lua: -------------------------------------------------------------------------------- 1 | return function() 2 | require("image").setup({ 3 | backend = "ueberzug", 4 | processor = "magick_cli", -- or "magick_cli" 5 | integrations = { 6 | markdown = { 7 | enabled = true, 8 | clear_in_insert_mode = false, 9 | download_remote_images = true, 10 | only_render_image_at_cursor = false, 11 | floating_windows = false, -- if true, images will be rendered in floating markdown windows 12 | filetypes = { "markdown", "vimwiki" }, -- markdown extensions (ie. quarto) can go here 13 | }, 14 | neorg = { 15 | enabled = true, 16 | filetypes = { "norg" }, 17 | }, 18 | typst = { 19 | enabled = true, 20 | filetypes = { "typst" }, 21 | }, 22 | html = { 23 | enabled = false, 24 | }, 25 | css = { 26 | enabled = false, 27 | }, 28 | }, 29 | max_width = nil, 30 | max_height = nil, 31 | max_width_window_percentage = nil, 32 | max_height_window_percentage = 50, 33 | window_overlap_clear_enabled = false, -- toggles images when windows are overlapped 34 | window_overlap_clear_ft_ignore = { "cmp_menu", "cmp_docs", "" }, 35 | editor_only_render_when_focused = false, -- auto show/hide images when the editor gains/looses focus 36 | tmux_show_only_in_active_window = false, -- auto show/hide images in the correct Tmux window (needs visual-activity off) 37 | hijack_file_patterns = { "*.png", "*.jpg", "*.jpeg", "*.gif", "*.webp", "*.avif" }, -- render image files as images when opened 38 | }) 39 | end 40 | -------------------------------------------------------------------------------- /config/nvim/lua/user/options.lua: -------------------------------------------------------------------------------- 1 | local options = { 2 | backup = false, -- creates a backup file 3 | clipboard = "unnamedplus", -- allows neovim to access the system clipboard 4 | cmdheight = 2, -- more space in the neovim command line for displaying messages 5 | completeopt = { "menuone", "noselect" }, -- mostly just for cmp 6 | conceallevel = 0, -- so that `` is visible in markdown files 7 | fileencoding = "utf-8", -- the encoding written to a file 8 | hlsearch = true, -- highlight all matches on previous search pattern 9 | ignorecase = true, -- ignore case in search patterns 10 | mouse = "a", -- allow the mouse to be used in neovim 11 | pumheight = 10, -- pop up menu height 12 | showmode = true, -- we don't need to see things like -- INSERT -- anymore 13 | showtabline = 2, -- always show tabs 14 | smartcase = true, -- smart case 15 | smartindent = true, -- make indenting smarter again 16 | splitbelow = true, -- force all horizontal splits to go below current window 17 | splitright = true, -- force all vertical splits to go to the right of current window 18 | swapfile = false, -- creates a swapfile 19 | termguicolors = true, -- set term gui colors (most terminals support this) 20 | timeoutlen = 1000, -- time to wait for a mapped sequence to complete (in milliseconds) 21 | undofile = true, -- enable persistent undo 22 | updatetime = 300, -- faster completion (4000ms default) 23 | writebackup = false, -- if a file is being edited by another program (or was written to file while editing with another program), it is not allowed to be edited 24 | expandtab = true, -- convert tabs to spaces 25 | shiftwidth = 2, -- the number of spaces inserted for each indentation 26 | tabstop = 2, -- insert 2 spaces for a tab 27 | cursorline = true, -- highlight the current line 28 | number = true, -- set numbered lines 29 | relativenumber = true, -- set relative numbered lines 30 | numberwidth = 4, -- set number column width to 2 {default 4} 31 | signcolumn = "yes", -- always show the sign column, otherwise it would shift the text each time 32 | wrap = false, -- display lines as one long line 33 | scrolloff = 8, -- is one of my fav 34 | sidescrolloff = 8, 35 | -- guifont = "monospace:h17", -- the font used in graphical neovim applications 36 | guifont = "JetBrains_Mono:h12", -- the font used in graphical neovim applications 37 | --[[ foldmethod = "expr", ]] 38 | --[[ foldenable = false, ]] 39 | } 40 | 41 | vim.opt.shortmess:append "c" 42 | vim.opt.spell = true 43 | vim.opt.spelllang = "en" 44 | for k, v in pairs(options) do 45 | vim.opt[k] = v 46 | end 47 | 48 | vim.cmd "set whichwrap+=<,>,[,],h,l" 49 | vim.cmd [[set iskeyword+=-]] 50 | vim.cmd [[set formatoptions-=cro]] -- TODO: this doesn't seem to work 51 | vim.cmd [[syntax on]] 52 | 53 | if vim.g.neovide then 54 | vim.opt.guifont = { "JetBrains_Mono", "h12" } 55 | -- 56 | end 57 | -------------------------------------------------------------------------------- /config/nvim/lua/user/other/flash.lua: -------------------------------------------------------------------------------- 1 | return function() 2 | vim.api.nvim_set_hl(0, "FlashMatch", { 3 | bg = "#a3be8c", 4 | fg = "#2e3440", 5 | bold = true, 6 | }) 7 | 8 | vim.api.nvim_set_hl(0, "FlashLabel", { 9 | bg = "#bf616a", 10 | fg = "#FFFFFF", 11 | bold = true, 12 | }) 13 | 14 | vim.api.nvim_set_hl(0, "FlashPrompt", { 15 | bg = "#eceff4", 16 | fg = "#b48ead", 17 | bold = true, 18 | }) 19 | require("flash").setup({ 20 | { 21 | -- options used when flash is activated through 22 | -- `f`, `F`, `t`, `T`, `;` and `,` motions 23 | char = { 24 | enabled = true, 25 | multi_line = false, 26 | search = { wrap = false }, 27 | jump_labels = true, 28 | highlight = { backdrop = true, groups = { backdrop = "FlashLabel" } }, 29 | jump = { register = false }, 30 | }, 31 | }, 32 | }) 33 | end 34 | -------------------------------------------------------------------------------- /config/nvim/lua/user/other/hlslen.lua: -------------------------------------------------------------------------------- 1 | return function() 2 | 3 | local kopts = { noremap = true, silent = true } 4 | 5 | vim.api.nvim_set_keymap('n', 'n', 6 | [[execute('normal! ' . v:count1 . 'n')lua require('hlslens').start()]], 7 | kopts) 8 | vim.api.nvim_set_keymap('n', 'N', 9 | [[execute('normal! ' . v:count1 . 'N')lua require('hlslens').start()]], 10 | kopts) 11 | vim.api.nvim_set_keymap('n', '*', [[*lua require('hlslens').start()]], kopts) 12 | vim.api.nvim_set_keymap('n', '#', [[#lua require('hlslens').start()]], kopts) 13 | vim.api.nvim_set_keymap('n', 'g*', [[g*lua require('hlslens').start()]], kopts) 14 | vim.api.nvim_set_keymap('n', 'g#', [[g#lua require('hlslens').start()]], kopts) 15 | 16 | vim.api.nvim_set_keymap('n', 'l', 'noh', kopts) 17 | require('hlslens').setup() 18 | 19 | end 20 | -------------------------------------------------------------------------------- /config/nvim/lua/user/other/ufo.lua: -------------------------------------------------------------------------------- 1 | return function() 2 | vim.o.fillchars = [[eob: ,fold: ,foldopen:,foldsep: ,foldclose:]] 3 | vim.o.foldcolumn = "1" -- '0' is not bad 4 | vim.o.foldlevel = 99 -- Using ufo provider need a large value, feel free to decrease the value 5 | vim.o.foldlevelstart = 99 6 | vim.o.foldenable = true 7 | 8 | local capabilities = vim.lsp.protocol.make_client_capabilities() 9 | capabilities.textDocument.foldingRange = { 10 | dynamicRegistration = false, 11 | lineFoldingOnly = true, 12 | } 13 | local language_servers = vim.lsp.get_clients() 14 | for _, ls in ipairs(language_servers) do 15 | require("lspconfig")[ls].setup({ 16 | capabilities = capabilities, 17 | -- you can add other fields for setting up lsp server in this table 18 | }) 19 | end 20 | require("ufo").setup() 21 | --[[ require("ufo").setup({ ]] 22 | --[[ provider_selector = function(bufnr, filetype, buftype) ]] 23 | --[[ return { "treesitter", "indent" } ]] 24 | --[[ end, ]] 25 | --[[ }) ]] 26 | end 27 | -------------------------------------------------------------------------------- /config/nvim/lua/user/tool/nvim-tree.lua: -------------------------------------------------------------------------------- 1 | local status_ok, nvim_tree = pcall(require, "nvim-tree") 2 | if not status_ok then 3 | return 4 | end 5 | 6 | return function() 7 | local opts = { 8 | open_on_stepup = true, 9 | update_focused_file = { 10 | enable = true, 11 | update_cwd = true, 12 | }, 13 | sort_by = "case_sensitive", 14 | 15 | filters = { 16 | dotfiles = false, 17 | }, 18 | renderer = { 19 | root_folder_modifier = ":t", 20 | -- webdev_colors = true, 21 | group_empty = true, 22 | icons = { 23 | glyphs = { 24 | default = "", 25 | symlink = "", 26 | folder = { 27 | arrow_open = "", 28 | arrow_closed = ">", 29 | empty = "", 30 | empty_open = "", 31 | default = "", 32 | open = "", 33 | 34 | symlink = "", 35 | symlink_open = "", 36 | }, 37 | git = { 38 | unstaged = "", 39 | staged = "S", 40 | unmerged = "", 41 | renamed = "➜", 42 | untracked = "U", 43 | deleted = "", 44 | ignored = "◌", 45 | }, 46 | }, 47 | }, 48 | }, 49 | 50 | view = { 51 | width = 30, 52 | side = "left", 53 | 54 | }, 55 | } 56 | 57 | require 'nvim-web-devicons'.setup { 58 | 59 | override = { 60 | zsh = { 61 | icon = "", 62 | color = "#428850", 63 | cterm_color = "65", 64 | name = "Zsh" 65 | } 66 | }, 67 | default = true, 68 | } 69 | require("nvim-tree").setup(opts) 70 | end 71 | -------------------------------------------------------------------------------- /config/nvim/lua/user/tool/telescope.lua: -------------------------------------------------------------------------------- 1 | return function() 2 | local telescope = require("telescope") 3 | telescope.load_extension('media_files') 4 | 5 | local actions = require "telescope.actions" 6 | 7 | local lga_actions = require("telescope-live-grep-args.actions") 8 | local dropdown_configs = { 9 | --[[ layout_strategy = "vertical", ]] 10 | layout_strategy = "cursor", 11 | layout_config = { 12 | --[[ prompt_position = "bottom", ]] 13 | vertical = { 14 | width = 0.4, 15 | height = 0.6, 16 | }, 17 | }, 18 | } 19 | 20 | telescope.setup { 21 | defaults = { 22 | prompt_prefix = " ", 23 | selection_caret = " ", 24 | path_display = { "smart" }, 25 | mappings = { 26 | i = { 27 | [""] = actions.cycle_history_next, 28 | [""] = actions.cycle_history_prev, 29 | [""] = actions.move_selection_next, 30 | [""] = actions.move_selection_previous, 31 | [""] = actions.close, 32 | [""] = actions.move_selection_next, 33 | [""] = actions.move_selection_previous, 34 | [""] = actions.select_default, 35 | [""] = actions.select_horizontal, 36 | [""] = actions.select_vertical, 37 | [""] = actions.select_tab, 38 | [""] = actions.preview_scrolling_up, 39 | [""] = actions.preview_scrolling_down, 40 | [""] = actions.results_scrolling_up, 41 | [""] = actions.results_scrolling_down, 42 | [""] = actions.toggle_selection + actions.move_selection_worse, 43 | [""] = actions.toggle_selection + actions.move_selection_better, 44 | [""] = actions.send_to_qflist + actions.open_qflist, 45 | [""] = actions.send_selected_to_qflist + actions.open_qflist, 46 | [""] = actions.complete_tag, 47 | [""] = actions.which_key, -- keys from pressing 48 | }, 49 | n = { 50 | [""] = actions.close, 51 | [""] = actions.select_default, 52 | [""] = actions.select_horizontal, 53 | [""] = actions.select_vertical, 54 | [""] = actions.select_tab, 55 | [""] = actions.toggle_selection + actions.move_selection_worse, 56 | [""] = actions.toggle_selection + actions.move_selection_better, 57 | [""] = actions.send_to_qflist + actions.open_qflist, 58 | [""] = actions.send_selected_to_qflist + actions.open_qflist, 59 | ["j"] = actions.move_selection_next, 60 | ["k"] = actions.move_selection_previous, 61 | ["H"] = actions.move_to_top, 62 | ["M"] = actions.move_to_middle, 63 | ["L"] = actions.move_to_bottom, 64 | [""] = actions.move_selection_next, 65 | [""] = actions.move_selection_previous, 66 | ["gg"] = actions.move_to_top, 67 | ["G"] = actions.move_to_bottom, 68 | [""] = actions.preview_scrolling_up, 69 | [""] = actions.preview_scrolling_down, 70 | [""] = actions.results_scrolling_up, 71 | [""] = actions.results_scrolling_down, 72 | ["?"] = actions.which_key, 73 | }, 74 | }, 75 | }, 76 | pickers = { 77 | }, 78 | extensions = { 79 | ["ui-select"] = { 80 | require("telescope.themes").get_dropdown(dropdown_configs), 81 | }, 82 | media_files = { 83 | filetypes = { "png", "webp", "jpg", "jpeg" }, 84 | find_cmd = "rg" -- find command (defaults to `fd`) 85 | }, 86 | fzf = { 87 | fuzzy = true, -- false will only do exact matching 88 | override_generic_sorter = true, -- override the generic sorter 89 | override_file_sorter = true, -- override the file sorter 90 | case_mode = "smart_case", -- or "ignore_case" or "respect_case" 91 | -- the default case_mode is "smart_case" 92 | }, 93 | live_grep_args = { 94 | auto_quoting = true, -- enable/disable auto-quoting 95 | -- define mappings, e.g. 96 | mappings = { -- extend mappings 97 | i = { 98 | [""] = lga_actions.quote_prompt(), 99 | [""] = lga_actions.quote_prompt({ postfix = " --iglob " }), 100 | }, 101 | }, 102 | }, 103 | thesaurus = { 104 | provider = 'freedictionaryapi', 105 | }, 106 | }, 107 | } 108 | require("telescope").load_extension("ui-select") 109 | require('telescope').load_extension('fzf') 110 | require("telescope").load_extension("live_grep_args") 111 | --[[ require("telescope").load_extension("undo") ]] 112 | --[[ require "telescope".load_extension("frecency") ]] 113 | end 114 | -------------------------------------------------------------------------------- /config/nvim/lua/user/tool/whichkey.lua: -------------------------------------------------------------------------------- 1 | return function() 2 | local wk = require("which-key") 3 | wk.add({ 4 | 5 | { 6 | "f", 7 | "lua require'telescope.builtin'.find_files(require('telescope.themes').get_dropdown({ previewer = false }))", 8 | mode = "n", 9 | desc = "find file", 10 | }, 11 | { "", "Telescope live_grep", mode = "n", desc = "live grep" }, 12 | { "e", ":NvimTreeToggle", mode = "n", desc = "Explorer" }, 13 | 14 | { "/", "(comment_toggle_linewise_current)", mode = "n", desc = "Comment" }, 15 | { "/", "(comment_toggle_linewise_visual)", mode = "v", desc = "Comment" }, 16 | { "a", " Alpha", mode = "n", desc = "Alpha" }, 17 | { 18 | "b", 19 | "lua require('telescope.builtin').buffers(require('telescope.themes').get_dropdown{previewer = false})", 20 | mode = "n", 21 | desc = "find buffers", 22 | }, 23 | { "c", "BufDel", mode = "n", desc = "Close Buffer" }, 24 | { "w", "w!", mode = "n", desc = "Save" }, 25 | { "q", "q!", mode = "n", desc = "Quit" }, 26 | { "h", "nohlsearch", mode = "n", desc = "No Highlight" }, 27 | { "F", "Telescope live_grep theme=ivy", mode = "n", desc = "Find Text" }, 28 | { "P", "Telescope projects", mode = "n", desc = "Projects" }, 29 | 30 | { "p", group = "Lazy" }, -- group 31 | { "pc", "Lazy clean", mode = "n", desc = "clean" }, 32 | { "ps", "Lazy sync", mode = "n", desc = "sync" }, 33 | { "pS", "Lazy show", mode = "n", desc = "show" }, 34 | 35 | { "l", group = "lsp" }, -- group 36 | { "la", "Lspsaga code_action", mode = "n", desc = "Code Action" }, 37 | { "ld", "Lspsaga show_buf_diagnostics", mode = "n", desc = "Document Diagnostics" }, 38 | { "lw", "Lspsaga show_workspace_diagnostics", mode = "n", desc = "Workspace Diagnostics" }, 39 | { "li", "LspInfo", mode = "n", desc = " Info" }, 40 | { "lf", "Lspsaga finder def+ref", mode = "n", desc = "finder" }, 41 | { "lI", "LspInstallInfo", mode = "n", desc = "Installer Info" }, 42 | { "lj", "Lspsaga diagnostic_jump_next", mode = "n", desc = "Next Diagnostic" }, 43 | { "lk", "Lspsaga diagnostic_jump_prev", mode = "n", desc = "Prev Diagnostic" }, 44 | { "lr", "Lspsaga rename", mode = "n", desc = "Rename" }, 45 | { "ls", "Telescope lsp_document_symbols", mode = "n", desc = "Document Symbols" }, 46 | { "lS", "Telescope lsp_dynamic_workspace_symbols", mode = "n", desc = "Workspace Symbols" }, 47 | }) 48 | end 49 | -------------------------------------------------------------------------------- /config/nvim/lua/user/tool/wilder.lua: -------------------------------------------------------------------------------- 1 | return function() 2 | local wilder = require('wilder') 3 | wilder.setup({ modes = { ':', '/', '?' } }) 4 | 5 | wilder.set_option('pipeline', { 6 | wilder.branch( 7 | wilder.cmdline_pipeline({fuzzy = 1, fuzzy_filter = wilder.lua_fzy_filter() }), 8 | wilder.search_pipeline() 9 | ), 10 | }) 11 | 12 | wilder.set_option('renderer', wilder.wildmenu_renderer({ 13 | --[[ highlighter = wilder.basic_highlighter(), ]] 14 | highlighter = wilder.lua_fzy_highlighter(), 15 | })) 16 | end 17 | -------------------------------------------------------------------------------- /config/nvim/lua/user/ui/alpha.lua: -------------------------------------------------------------------------------- 1 | local function capture(cmd, raw) 2 | local f = assert(io.popen(cmd, "r")) 3 | local s = assert(f:read("*a")) 4 | f:close() 5 | if raw then 6 | return s 7 | end 8 | s = string.gsub(s, "^%s+", "") 9 | s = string.gsub(s, "%s+$", "") 10 | s = string.gsub(s, "[\n\r]+", " ") 11 | return s 12 | end 13 | 14 | local function split(source, sep) 15 | local result, i = {}, 1 16 | while true do 17 | local a, b = source:find(sep) 18 | if not a then 19 | break 20 | end 21 | local candidat = source:sub(1, a - 1) 22 | if candidat ~= "" then 23 | result[i] = candidat 24 | end 25 | i = i + 1 26 | source = source:sub(b + 1) 27 | end 28 | if source ~= "" then 29 | result[i] = source 30 | end 31 | return result 32 | end 33 | 34 | return function() 35 | local alpha = require("alpha") 36 | local dashboard = require("alpha.themes.dashboard") 37 | 38 | dashboard.section.footer.val = "Total plugins: " .. require("lazy").stats().count 39 | dashboard.section.header.opts.hl = "Question" 40 | dashboard.section.buttons.val = { 41 | dashboard.button("f", " Find file", ":Telescope find_files"), 42 | dashboard.button("e", " New file", ":enew"), 43 | dashboard.button("r", " Recently used files", ":Telescope oldfiles "), 44 | dashboard.button("t", " Find text", ":Telescope live_grep "), 45 | dashboard.button("c", " Configuration", ":e ~/.config/nvim/init.lua "), 46 | dashboard.button("p", " Update plugins", ":Lazy sync"), 47 | dashboard.button("q", " Exit", ":qa"), 48 | } 49 | alpha.setup(dashboard.config) 50 | vim.api.nvim_create_augroup("vimrc_alpha", { clear = true }) 51 | vim.api.nvim_create_autocmd({ "User" }, { 52 | group = "vimrc_alpha", 53 | pattern = "AlphaReady", 54 | callback = function() 55 | if vim.fn.executable("onefetch") == 1 then 56 | local header = split( 57 | capture( 58 | [[onefetch 2>/dev/null | sed 's/\x1B[@A-Z\\\]^_]\|\x1B\[[0-9:;<=>?]*[-!"#$%&'"'"'()*+,.\/]*[][\\@A-Z^_`a-z{|}~]//g']], 59 | true 60 | ), 61 | "\n" 62 | ) 63 | if next(header) ~= nil then 64 | require("alpha.themes.dashboard").section.header.val = header 65 | require("alpha").redraw() 66 | end 67 | end 68 | end, 69 | once = true, 70 | }) 71 | end 72 | -------------------------------------------------------------------------------- /config/nvim/lua/user/ui/bufferline.lua: -------------------------------------------------------------------------------- 1 | local function diagnostics_indicator(num, _, diagnostics, _) 2 | local result = {} 3 | local symbols = { 4 | error = "", 5 | warning = "", 6 | info = "", 7 | } 8 | for name, count in pairs(diagnostics) do 9 | if symbols[name] and count > 0 then 10 | table.insert(result, symbols[name] .. " " .. count) 11 | end 12 | end 13 | result = table.concat(result, " ") 14 | return #result > 0 and result or "" 15 | end 16 | -- 17 | return function() 18 | --[[ local highlights = require("nord").bufferline.highlights({ ]] 19 | --[[ italic = true, ]] 20 | --[[ bold = true, ]] 21 | --[[ }) ]] 22 | -- 23 | local highlights = require("catppuccin.groups.integrations.bufferline").get() 24 | local opts = { 25 | options = { 26 | mode = "buffers", -- set to "tabs" to only show tabpages instead 27 | numbers = "none", -- can be "none" | "ordinal" | "buffer_id" | "both" | function 28 | right_mouse_command = "vert sbuffer %d", -- can be a string | function, see "Mouse actions" 29 | left_mouse_command = "buffer %d", -- can be a string | function, see "Mouse actions" 30 | middle_mouse_command = nil, -- can 31 | indicator = { 32 | icon = "▎", -- this should be omitted if indicator style is not 'icon' 33 | style = "icon", 34 | }, 35 | buffer_close_icon = "", 36 | modified_icon = "●", 37 | close_icon = "", 38 | left_trunc_marker = "", 39 | right_trunc_marker = "", 40 | max_name_length = 14, 41 | max_prefix_length = 13, -- prefix used when a buffer is de-duplicated 42 | truncate_names = true, -- whether or not tab names should be truncated 43 | tab_size = 20, 44 | diagnostics = "nvim_lsp", 45 | diagnostics_update_in_insert = false, 46 | diagnostics_indicator = diagnostics_indicator, 47 | offsets = { 48 | { 49 | filetype = "NvimTree", 50 | text = "Explorer", 51 | highlight = "PanelHeading", 52 | padding = 1, 53 | }, 54 | }, 55 | color_icons = true, -- whether or not to add the filetype icon highlights 56 | show_buffer_icons = true, 57 | show_buffer_close_icons = true, 58 | show_close_icon = true, 59 | --[[ show_buffer_default_icon = true, ]] 60 | show_tab_indicators = true, 61 | persist_buffer_sort = true, -- whether or not custom sorted buffers should persist 62 | -- can also be a table containing 2 custom separators 63 | -- [focused and unfocused]. eg: { '|', '|' } 64 | separator_style = "thin", 65 | enforce_regular_tabs = true, 66 | always_show_bufferline = true, 67 | hover = { 68 | enabled = false, -- requires nvim 0.8+ 69 | delay = 200, 70 | reveal = { "close" }, 71 | }, 72 | sort_by = "id", 73 | }, 74 | highlights = highlights, 75 | } 76 | require("bufferline").setup(opts) 77 | end 78 | -------------------------------------------------------------------------------- /config/nvim/lua/user/ui/catppuccin.lua: -------------------------------------------------------------------------------- 1 | return function() 2 | require("catppuccin").setup({ 3 | integrations = { 4 | cmp = true, 5 | gitsigns = true, 6 | nvimtree = true, 7 | treesitter = true, 8 | treesitter_context = false, 9 | notify = false, 10 | alpha = true, 11 | flash = true, 12 | lsp_saga = false, 13 | indent_blankline = { 14 | enabled = true, 15 | scope_color = "", -- catppuccin color (eg. `lavender`) Default: text 16 | colored_indent_levels = false, 17 | }, 18 | which_key = false, 19 | lsp_trouble = false, 20 | telescope = { 21 | enabled = true, 22 | -- style = "nvchad" 23 | }, 24 | native_lsp = { 25 | enabled = true, 26 | virtual_text = { 27 | errors = { "italic" }, 28 | hints = { "italic" }, 29 | warnings = { "italic" }, 30 | information = { "italic" }, 31 | }, 32 | underlines = { 33 | errors = { "underline" }, 34 | hints = { "underline" }, 35 | warnings = { "underline" }, 36 | information = { "underline" }, 37 | }, 38 | inlay_hints = { 39 | background = true, 40 | }, 41 | }, 42 | ufo = true, 43 | }, 44 | }) 45 | end 46 | -------------------------------------------------------------------------------- /config/nvim/lua/user/ui/colorscheme.lua: -------------------------------------------------------------------------------- 1 | --[[ local colorscheme = "nord" ]] 2 | vim.cmd.colorscheme "catppuccin" 3 | -- 4 | local status_ok, _ = pcall(vim.cmd, "colorscheme " .. colorscheme) 5 | if not status_ok then 6 | vim.notify("colorscheme " .. colorscheme .. " not found!") 7 | return 8 | end 9 | -------------------------------------------------------------------------------- /config/nvim/lua/user/ui/icons.lua: -------------------------------------------------------------------------------- 1 | local icons = {} 2 | 3 | local data = { 4 | kind = { 5 | Class = "󰠱", 6 | Color = "󰏘", 7 | Constant = "󰏿", 8 | Constructor = "", 9 | Enum = "", 10 | EnumMember = "", 11 | Event = "", 12 | Field = "󰇽", 13 | File = "󰈙", 14 | Folder = "󰉋", 15 | Fragment = "", 16 | Function = "󰊕", 17 | Interface = "", 18 | Implementation = "", 19 | Keyword = "󰌋", 20 | Method = "󰆧", 21 | Module = "", 22 | Namespace = "󰌗", 23 | Number = "", 24 | Operator = "󰆕", 25 | Package = "", 26 | Property = "󰜢", 27 | Reference = "", 28 | Snippet = "", 29 | Struct = "", 30 | Text = "󰉿", 31 | TypeParameter = "󰅲", 32 | Undefined = "", 33 | Unit = "", 34 | Value = "󰎠", 35 | Variable = "", 36 | -- ccls-specific icons. 37 | TypeAlias = "", 38 | Parameter = "", 39 | StaticMethod = "", 40 | Macro = "", 41 | }, 42 | type = { 43 | Array = "󰅪", 44 | Boolean = "", 45 | Null = "󰟢", 46 | Number = "", 47 | Object = "󰅩", 48 | String = "󰉿", 49 | }, 50 | documents = { 51 | Default = "", 52 | File = "", 53 | Files = "", 54 | FileTree = "󰙅", 55 | Import = "", 56 | Symlink = "", 57 | }, 58 | git = { 59 | Add = "", 60 | Branch = "", 61 | Diff = "", 62 | Git = "󰊢", 63 | Ignore = "", 64 | Mod = "M", 65 | Mod_alt = "", 66 | Remove = "", 67 | Rename = "", 68 | Repo = "", 69 | Unmerged = "󰘬", 70 | Untracked = "󰞋", 71 | Unstaged = "", 72 | Staged = "", 73 | Conflict = "", 74 | }, 75 | ui = { 76 | Accepted = "", 77 | ArrowClosed = "", 78 | ArrowOpen = "", 79 | BigCircle = "", 80 | BigUnfilledCircle = "", 81 | BookMark = "󰃃", 82 | Bug = "", 83 | Calendar = "", 84 | Check = "󰄳", 85 | ChevronRight = "", 86 | Circle = "", 87 | Close = "󰅖", 88 | Close_alt = "", 89 | CloudDownload = "", 90 | Comment = "󰅺", 91 | CodeAction = "󰌵", 92 | Dashboard = "", 93 | Emoji = "󰱫", 94 | EmptyFolder = "", 95 | EmptyFolderOpen = "", 96 | File = "󰈤", 97 | Fire = "", 98 | Folder = "", 99 | FolderOpen = "", 100 | FolderWithHeart = "󱃪", 101 | Gear = "", 102 | History = "󰄉", 103 | Incoming = "󰏷", 104 | Indicator = "", 105 | Keyboard = "", 106 | Left = "", 107 | List = "", 108 | Square = "", 109 | SymlinkFolder = "", 110 | Lock = "󰍁", 111 | Modified = "✥", 112 | Modified_alt = "", 113 | NewFile = "", 114 | Newspaper = "", 115 | Note = "󰍨", 116 | Outgoing = "󰏻", 117 | Package = "", 118 | Pencil = "󰏫", 119 | Perf = "󰅒", 120 | Play = "", 121 | Project = "", 122 | Right = "", 123 | RootFolderOpened = "", 124 | Search = "󰍉", 125 | Separator = "", 126 | DoubleSeparator = "󰄾", 127 | SignIn = "", 128 | SignOut = "", 129 | Sort = "", 130 | Spell = "󰓆", 131 | Symlink = "", 132 | Tab = "", 133 | Table = "", 134 | Telescope = "", 135 | }, 136 | diagnostics = { 137 | Error = "", 138 | Warning = "", 139 | Information = "", 140 | Question = "", 141 | Hint = "󰌵", 142 | -- Holo version 143 | Error_alt = "󰅚", 144 | Warning_alt = "󰀪", 145 | Information_alt = "", 146 | Question_alt = "", 147 | Hint_alt = "󰌶", 148 | }, 149 | misc = { 150 | Campass = "󰀹", 151 | Code = "", 152 | Gavel = "", 153 | Glass = "󰂖", 154 | NoActiveLsp = "󱚧", 155 | PyEnv = "󰢩", 156 | Squirrel = "", 157 | Tag = "", 158 | Tree = "", 159 | Watch = "", 160 | Lego = "", 161 | LspAvailable = "󱜙", 162 | Vbar = "│", 163 | Add = "+", 164 | Added = "", 165 | Ghost = "󰊠", 166 | ManUp = "", 167 | Vim = "", 168 | }, 169 | cmp = { 170 | Codeium = "", 171 | TabNine = "", 172 | Copilot = "", 173 | Copilot_alt = "", 174 | -- Add source-specific icons here 175 | buffer = "", 176 | cmp_tabnine = "", 177 | codeium = "", 178 | copilot = "", 179 | copilot_alt = "", 180 | latex_symbols = "", 181 | luasnip = "󰃐", 182 | nvim_lsp = "", 183 | nvim_lua = "", 184 | orgmode = "", 185 | path = "", 186 | spell = "󰓆", 187 | tmux = "", 188 | treesitter = "", 189 | undefined = "", 190 | }, 191 | dap = { 192 | Breakpoint = "󰝥", 193 | BreakpointCondition = "󰟃", 194 | BreakpointRejected = "", 195 | LogPoint = "", 196 | Pause = "", 197 | Play = "", 198 | RunLast = "↻", 199 | StepBack = "", 200 | StepInto = "󰆹", 201 | StepOut = "󰆸", 202 | StepOver = "󰆷", 203 | Stopped = "", 204 | Terminate = "󰝤", 205 | }, 206 | } 207 | 208 | ---Get a specific icon set. 209 | ---@param category "kind"|"type"|"documents"|"git"|"ui"|"diagnostics"|"misc"|"cmp"|"dap" 210 | ---@param add_space? boolean @Add trailing space after the icon. 211 | function icons.get(category, add_space) 212 | if add_space then 213 | return setmetatable({}, { 214 | __index = function(_, key) 215 | return data[category][key] .. " " 216 | end, 217 | }) 218 | else 219 | return data[category] 220 | end 221 | end 222 | 223 | return icons 224 | -------------------------------------------------------------------------------- /config/nvim/lua/user/ui/indentline.lua: -------------------------------------------------------------------------------- 1 | return function() 2 | local opts = { 3 | 4 | indent = { 5 | char = "│", 6 | tab_char = "│", 7 | smart_indent_cap = true, 8 | priority = 2, 9 | }, 10 | exclude = { 11 | filetypes = { 12 | "", -- for all buffers without a file type 13 | "alpha", 14 | "big_file_disabled_ft", 15 | "dashboard", 16 | "dotooagenda", 17 | "flutterToolsOutline", 18 | "fugitive", 19 | "git", 20 | "gitcommit", 21 | "help", 22 | "json", 23 | "log", 24 | "markdown", 25 | "NvimTree", 26 | "Outline", 27 | "peekaboo", 28 | "startify", 29 | "TelescopePrompt", 30 | "todoist", 31 | "txt", 32 | "undotree", 33 | "vimwiki", 34 | "vista", 35 | }, 36 | buftypes = { "terminal", "nofile", "quickfix", "prompt" }, 37 | }, 38 | scope = { 39 | enabled = true, 40 | char = "┃", 41 | show_start = false, 42 | show_end = false, 43 | injected_languages = true, 44 | priority = 1000, 45 | include = { 46 | node_type = { 47 | ["*"] = { 48 | "argument_list", 49 | "arguments", 50 | "assignment_statement", 51 | "Block", 52 | "chunk", 53 | "class", 54 | "ContainerDecl", 55 | "dictionary", 56 | "do_block", 57 | "do_statement", 58 | "element", 59 | "except", 60 | "FnCallArguments", 61 | "for", 62 | "for_statement", 63 | "function", 64 | "function_declaration", 65 | "function_definition", 66 | "if_statement", 67 | "IfExpr", 68 | "IfStatement", 69 | "import", 70 | "InitList", 71 | "list_literal", 72 | "method", 73 | "object", 74 | "ParamDeclList", 75 | "repeat_statement", 76 | "selector", 77 | "SwitchExpr", 78 | "table", 79 | "table_constructor", 80 | "try", 81 | "tuple", 82 | "type", 83 | "var", 84 | "while", 85 | "while_statement", 86 | "with", 87 | }, 88 | }, 89 | }, 90 | }, 91 | 92 | --[[ space_char_blankline = " ", ]] 93 | } -- 94 | require("ibl").setup(opts) 95 | -- } 96 | end 97 | -------------------------------------------------------------------------------- /config/nvim/lua/user/ui/lualine.lua: -------------------------------------------------------------------------------- 1 | -- local status_ok, lualine = pcall(require, "lualine") 2 | -- if not status_ok then 3 | -- return 4 | -- end 5 | -- 6 | return function() 7 | local colors = { 8 | nord1 = "#3B4252", 9 | nord3 = "#4C566A", 10 | nord5 = "#E5E9F0", 11 | nord6 = "#ECEFF4", 12 | nord7 = "#8FBCBB", 13 | nord8 = "#88C0D0", 14 | nord13 = "#EBCB8B", 15 | } 16 | 17 | local nordic = { 18 | normal = { 19 | a = { fg = colors.nord1, bg = colors.nord8, gui = "bold" }, 20 | b = { fg = colors.nord5, bg = colors.nord1 }, 21 | c = { fg = colors.nord5, bg = colors.nord3 }, 22 | }, 23 | insert = { a = { fg = colors.nord1, bg = colors.nord6, gui = "bold" } }, 24 | visual = { a = { fg = colors.nord1, bg = colors.nord7, gui = "bold" } }, 25 | replace = { a = { fg = colors.nord1, bg = colors.nord13, gui = "bold" } }, 26 | inactive = { 27 | a = { fg = colors.nord1, bg = colors.nord8, gui = "bold" }, 28 | b = { fg = colors.nord5, bg = colors.nord1 }, 29 | c = { fg = colors.nord5, bg = colors.nord1 }, 30 | }, 31 | } 32 | 33 | -- cool function for progress 34 | local progress = function() 35 | local current_line = vim.fn.line(".") 36 | local total_lines = vim.fn.line("$") 37 | local chars = { "__", "▁▁", "▂▂", "▃▃", "▄▄", "▅▅", "▆▆", "▇▇", "██" } 38 | local line_ratio = current_line / total_lines 39 | local index = math.ceil(line_ratio * #chars) 40 | return chars[index] 41 | end 42 | 43 | local spaces = function() 44 | return "spaces: " .. vim.api.nvim_buf_get_option(0, "shiftwidth") 45 | end 46 | 47 | local opts = { 48 | options = { 49 | icons_enabled = true, 50 | --theme = 'auto', 51 | --[[ theme = nordic, ]] 52 | theme = "catppuccin", 53 | --[[ theme = 'onenord', ]] 54 | component_separators = { left = "", right = "" }, 55 | section_separators = { left = "", right = "" }, 56 | disabled_filetypes = {}, 57 | always_divide_middle = true, 58 | globalstatus = false, 59 | }, 60 | sections = { 61 | lualine_a = { "mode" }, 62 | lualine_b = { "branch", "diff", "diagnostics" }, 63 | lualine_c = { "filename" }, 64 | lualine_x = { "encoding", "fileformat", "filetype" }, 65 | lualine_y = { "progress" }, 66 | lualine_z = { "location" }, 67 | }, 68 | inactive_sections = { 69 | lualine_a = {}, 70 | lualine_b = {}, 71 | lualine_c = { "filename" }, 72 | lualine_x = { "location" }, 73 | lualine_y = {}, 74 | lualine_z = {}, 75 | }, 76 | tabline = {}, 77 | extensions = {}, 78 | } 79 | require("lualine").setup(opts) 80 | end 81 | -------------------------------------------------------------------------------- /config/nvim/lua/user/ui/nordic.lua: -------------------------------------------------------------------------------- 1 | 2 | --[[ vim.g.nord_borders = true ]] 3 | --[[ vim.g.nord_italic = true ]] 4 | --[[ vim.g.nord_bold = true ]] 5 | return function() 6 | require('nord').set() 7 | end 8 | 9 | 10 | -------------------------------------------------------------------------------- /config/polybar/launch.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Add this script to your wm startup file. 4 | 5 | DIR="$HOME/.config/polybar" 6 | 7 | # Terminate already running bar instances 8 | killall -q polybar 9 | 10 | # Wait until the processes have been shut down 11 | while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done 12 | 13 | # if type "xrandr"; then 14 | # for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do 15 | # MONITOR=$m polybar -reload main -c ~/.config/polybar/1/config.ini & 16 | # done 17 | # else 18 | # polybar -reload main -c ~/.config/polybar/1/config.ini & 19 | # fi 20 | # Launch the bar 21 | polybar -q main -c "$DIR"/config.ini & 22 | -------------------------------------------------------------------------------- /config/polybar/launchleft.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Add this script to your wm startup file. 4 | 5 | DIR="$HOME/.config/polybar/1" 6 | 7 | # Terminate already running bar instances 8 | killall -q polybar 9 | 10 | # Wait until the processes have been shut down 11 | while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done 12 | 13 | # Launch the bar 14 | polybar -q main -c "$DIR"/configleft.ini & 15 | -------------------------------------------------------------------------------- /config/polybar/scripts/cava.py: -------------------------------------------------------------------------------- 1 | #!/bin/env python3 2 | import argparse 3 | import os 4 | import signal 5 | import subprocess 6 | import sys 7 | import tempfile 8 | 9 | if len(sys.argv) > 1 and sys.argv[1] == '--subproc': 10 | ramp_list = [' ', '▁', '▂', '▃', '▄', '▅', '▆', '▇', '█'] 11 | ramp_list.extend( 12 | f'%{{F#{color.strip(" #")}}}█%{{F-}}' 13 | for color in sys.argv[2].split(',') 14 | if color 15 | ) 16 | while True: 17 | cava_input = input().strip().split() 18 | cava_input = [int(i) for i in cava_input] 19 | output = '' 20 | for bar in cava_input: 21 | if bar < len(ramp_list): 22 | output += ramp_list[bar] 23 | 24 | else: 25 | output += ramp_list[-1] 26 | 27 | print(output) 28 | 29 | parser = argparse.ArgumentParser() 30 | parser.add_argument('-f', '--framerate', type=int, default=60, 31 | help='Framerate to be used by cava, default is 60') 32 | parser.add_argument('-b', '--bars', type=int, default=8, 33 | help='Amount of bars, default is 8') 34 | parser.add_argument('-e', '--extra_colors', default='fdd,fcc,fbb,faa', 35 | help='Color gradient used on higher values, separated by commas, default is') 36 | parser.add_argument('-c', '--channels', choices=['stereo', 'left', 'right', 'average'], 37 | help='Audio channels to be used, defaults to stereo') 38 | 39 | opts = parser.parse_args() 40 | conf_channels = '' 41 | if opts.channels != 'stereo': 42 | conf_channels = ( 43 | 'channels=mono\n' 44 | f'mono_option={opts.channels}' 45 | ) 46 | 47 | conf_ascii_max_range = 12 + len([i for i in opts.extra_colors.split(',') if i]) 48 | 49 | cava_conf = tempfile.mkstemp('','polybar-cava-conf.')[1] 50 | with open(cava_conf, 'w') as cava_conf_file: 51 | cava_conf_file.write( 52 | '[general]\n' 53 | f'framerate={opts.framerate}\n' 54 | f'bars={opts.bars}\n' 55 | '[output]\n' 56 | 'method=raw\n' 57 | 'data_format=ascii\n' 58 | f'ascii_max_range={conf_ascii_max_range}\n' 59 | 'bar_delimiter=32\n' 60 | + conf_channels 61 | ) 62 | 63 | cava_proc = subprocess.Popen(['cava', '-p', cava_conf], stdout=subprocess.PIPE) 64 | self_proc = subprocess.Popen(['python3', __file__, '--subproc', opts.extra_colors], stdin=cava_proc.stdout) 65 | 66 | def cleanup(sig, frame): 67 | os.remove(cava_conf) 68 | cava_proc.kill() 69 | self_proc.kill() 70 | sys.exit(0) 71 | 72 | signal.signal(signal.SIGTERM, cleanup) 73 | signal.signal(signal.SIGINT, cleanup) 74 | 75 | self_proc.wait() 76 | -------------------------------------------------------------------------------- /config/polybar/scripts/nvidia-mem.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # nvidia-smi --query-gpu=memory.used --format=csv,noheader,nounits | awk '{ print "󰍛 ", ""$1"","%"}' 3 | # nvidia_mem(){ 4 | MEM_USE=$(nvidia-smi --query-gpu=memory.used --format=csv,noheader,nounits) 5 | MEM_TOTAL=$(nvidia-smi --query-gpu=memory.total --format=csv,noheader,nounits) 6 | MEM_USE_PERCENT=$(($MEM_USE/$MEM_TOTAL)) 7 | per=100 8 | echo "$MEM_USE $MEM_TOTAL $per"| awk '{printf("󰍛 %d %\n" , $1/$2*$3) }' 9 | # } 10 | 11 | # nvidia-mem() 12 | -------------------------------------------------------------------------------- /config/polybar/scripts/nvidia-tem.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits | awk '{ print " ", ""$1"","%"}' 3 | -------------------------------------------------------------------------------- /config/polybar/scripts/nvidia-use.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader,nounits | awk '{ print "󰻠 ", ""$1"","%"}' 3 | -------------------------------------------------------------------------------- /config/polybar/scripts/yay.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if ! updates_arch=$(checkupdates 2> /dev/null | wc -l ); then 4 | updates_arch=0 5 | fi 6 | 7 | if ! updates_aur=$(yay -Qum 2> /dev/null | wc -l); then 8 | # if ! updates_aur=$(paru -Qum 2> /dev/null | wc -l); then 9 | # if ! updates_aur=$(cower -u 2> /dev/null | wc -l); then 10 | # if ! updates_aur=$(trizen -Su --aur --quiet | wc -l); then 11 | # if ! updates_aur=$(pikaur -Qua 2> /dev/null | wc -l); then 12 | # if ! updates_aur=$(rua upgrade --printonly 2> /dev/null | wc -l); then 13 | updates_aur=0 14 | fi 15 | 16 | updates=$((updates_arch + updates_aur)) 17 | 18 | if [ "$updates" -gt 0 ]; then 19 | echo "# $updates" 20 | else 21 | echo "" 22 | fi 23 | -------------------------------------------------------------------------------- /config/ranger/commands.py: -------------------------------------------------------------------------------- 1 | # This is a sample commands.py. You can add your own commands here. 2 | # 3 | # Please refer to commands_full.py for all the default commands and a complete 4 | # documentation. Do NOT add them all here, or you may end up with defunct 5 | # commands when upgrading ranger. 6 | 7 | # A simple command for demonstration purposes follows. 8 | # ----------------------------------------------------------------------------- 9 | 10 | from __future__ import absolute_import, division, print_function 11 | 12 | # You can import any python module as needed. 13 | import os 14 | 15 | # You always need to import ranger.api.commands here to get the Command class: 16 | from ranger.api.commands import Command 17 | 18 | 19 | # Any class that is a subclass of "Command" will be integrated into ranger as a 20 | # command. Try typing ":my_edit" in ranger! 21 | class my_edit(Command): 22 | # The so-called doc-string of the class will be visible in the built-in 23 | # help that is accessible by typing "?c" inside ranger. 24 | """:my_edit 25 | 26 | A sample command for demonstration purposes that opens a file in an editor. 27 | """ 28 | 29 | # The execute method is called when you run this command in ranger. 30 | def execute(self): 31 | # self.arg(1) is the first (space-separated) argument to the function. 32 | # This way you can write ":my_edit somefilename". 33 | if self.arg(1): 34 | # self.rest(1) contains self.arg(1) and everything that follows 35 | target_filename = self.rest(1) 36 | else: 37 | # self.fm is a ranger.core.filemanager.FileManager object and gives 38 | # you access to internals of ranger. 39 | # self.fm.thisfile is a ranger.container.file.File object and is a 40 | # reference to the currently selected file. 41 | target_filename = self.fm.thisfile.path 42 | 43 | # This is a generic function to print text in ranger. 44 | self.fm.notify("Let's edit the file " + target_filename + "!") 45 | 46 | # Using bad=True in fm.notify allows you to print error messages: 47 | if not os.path.exists(target_filename): 48 | self.fm.notify("The given file does not exist!", bad=True) 49 | return 50 | 51 | # This executes a function from ranger.core.acitons, a module with a 52 | # variety of subroutines that can help you construct commands. 53 | # Check out the source, or run "pydoc ranger.core.actions" for a list. 54 | self.fm.edit_file(target_filename) 55 | 56 | # The tab method is called when you press tab, and should return a list of 57 | # suggestions that the user will tab through. 58 | # tabnum is 1 for and -1 for by default 59 | def tab(self, tabnum): 60 | # This is a generic tab-completion function that iterates through the 61 | # content of the current directory. 62 | return self._tab_directory_content() 63 | 64 | 65 | class fzf_select(Command): 66 | """ 67 | :fzf_select 68 | Find a file using fzf. 69 | With a prefix argument to select only directories. 70 | 71 | See: https://github.com/junegunn/fzf 72 | """ 73 | 74 | def execute(self): 75 | import subprocess 76 | import os 77 | from ranger.ext.get_executables import get_executables 78 | 79 | if "fzf" not in get_executables(): 80 | self.fm.notify("Could not find fzf in the PATH.", bad=True) 81 | return 82 | 83 | fd = None 84 | if "fdfind" in get_executables(): 85 | fd = "fdfind" 86 | elif "fd" in get_executables(): 87 | fd = "fd" 88 | 89 | if fd is not None: 90 | hidden = "--hidden" if self.fm.settings.show_hidden else "" 91 | exclude = "--no-ignore-vcs --exclude={.wine,.git,.idea,.vscode,.sass-cache,node_modules,build,.local,.steam,.m2,.rangerdir,.ssh,.ghidra,.mozilla} --exclude '*.py[co]' --exclude '__pycache__'" 92 | only_directories = "--type directory" if self.quantifier else "" 93 | fzf_default_command = "{} --follow {} {} {} --color=always".format( 94 | fd, hidden, exclude, only_directories 95 | ) 96 | else: 97 | hidden = ( 98 | "-false" if self.fm.settings.show_hidden else r"-path '*/\.*' -prune" 99 | ) 100 | exclude = r"\( -name '\.git' -o -iname '\.*py[co]' -o -fstype 'dev' -o -fstype 'proc' \) -prune" 101 | only_directories = "-type d" if self.quantifier else "" 102 | fzf_default_command = ( 103 | "find -L . -mindepth 1 {} -o {} -o {} -print | cut -b3-".format( 104 | hidden, exclude, only_directories 105 | ) 106 | ) 107 | 108 | env = os.environ.copy() 109 | env["FZF_DEFAULT_COMMAND"] = fzf_default_command 110 | env[ 111 | "FZF_DEFAULT_OPTS" 112 | ] = '--height=100% --layout=reverse --ansi --preview="{}"'.format( 113 | """ 114 | ( 115 | ~/Tools/Other/fzf-scope.sh {} || 116 | #batcat --color=always {} || 117 | #bat --color=always {} || 118 | #cat {} || 119 | tree -ahpCL 3 -I '.git' -I '*.py[co]' -I '__pycache__' {} 120 | ) 2>/dev/null | head -n 100 121 | """ 122 | ) 123 | 124 | fzf = self.fm.execute_command( 125 | "fzf --no-multi", env=env, universal_newlines=True, stdout=subprocess.PIPE 126 | ) 127 | stdout, _ = fzf.communicate() 128 | if fzf.returncode == 0: 129 | selected = os.path.abspath(stdout.strip()) 130 | if os.path.isdir(selected): 131 | self.fm.cd(selected) 132 | else: 133 | self.fm.select_file(selected) 134 | -------------------------------------------------------------------------------- /config/ranger/plugins/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/config/ranger/plugins/__init__.py -------------------------------------------------------------------------------- /config/ranger/plugins/__pycache__/__init__.cpython-310.opt-1.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/config/ranger/plugins/__pycache__/__init__.cpython-310.opt-1.pyc -------------------------------------------------------------------------------- /config/rofi/catppuccin-frappe.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * Nordic rofi theme 3 | * Adapted by undiabler 4 | * 5 | * Nord Color palette imported from https://www.nordtheme.com/ 6 | * 7 | */ 8 | 9 | configuration { 10 | font: "JetBrainsMono NL Medium 10"; 11 | 12 | drun { 13 | display-name: ""; 14 | } 15 | 16 | run { 17 | display-name: ""; 18 | } 19 | 20 | window { 21 | display-name: ""; 22 | } 23 | 24 | timeout { 25 | delay: 10; 26 | action: "kb-cancel"; 27 | } 28 | } 29 | 30 | * { 31 | border: 0; 32 | margin: 0; 33 | padding: 0; 34 | spacing: 0; 35 | 36 | /* bg: #2E3440; */ 37 | /* bg-alt: #3B4252; */ 38 | /* fg: #81A1C1; */ 39 | /* fg-alt: #EBCB8B; */ 40 | bg: #303446; 41 | bg-alt: #414559; 42 | /* border-col: #303446; */ 43 | /* selected-col: #303446; */ 44 | blue: #8caaee; 45 | fg: #c6d0f5; 46 | fg-alt: #e78284; 47 | grey: #737994; 48 | 49 | background-color: @bg; 50 | text-color: @fg; 51 | transparent: rgba(46,52,64,0); 52 | } 53 | 54 | 55 | window { 56 | location: center; 57 | anchor: center; 58 | transparency: "screenshot"; 59 | /* padding: 10px; */ 60 | border: 0px; 61 | /* border-radius: 6px; */ 62 | width: 700px; 63 | 64 | background-color: @transparent; 65 | spacing: 0; 66 | children: [mainbox]; 67 | orientation: horizontal; 68 | } 69 | 70 | mainbox { 71 | children: [inputbar, listview]; 72 | } 73 | 74 | inputbar { 75 | background-color: @bg-alt; 76 | children: [prompt, entry]; 77 | } 78 | 79 | entry { 80 | background-color: inherit; 81 | padding: 12px 3px; 82 | } 83 | 84 | prompt { 85 | background-color: inherit; 86 | padding: 12px; 87 | } 88 | 89 | listview { 90 | lines: 8; 91 | } 92 | 93 | element { 94 | children: [element-icon, element-text]; 95 | } 96 | 97 | element-icon { 98 | padding: 10px 10px; 99 | } 100 | 101 | element-text { 102 | padding: 10px 0; 103 | } 104 | 105 | element-text selected { 106 | text-color: @fg-alt; 107 | } 108 | -------------------------------------------------------------------------------- /config/rofi/colors.rasi: -------------------------------------------------------------------------------- 1 | /* colors */ 2 | 3 | * { 4 | al: #00000000; 5 | bg: #24273A; 6 | se: #1E1E2E; 7 | fg: #BF616A; 8 | ac: #24273A; 9 | } 10 | -------------------------------------------------------------------------------- /config/rofi/config-cat.rasi: -------------------------------------------------------------------------------- 1 | /** Basic config file **/ 2 | 3 | configuration { 4 | show-icons: true; 5 | modi: "window,drun,ssh,run,filebrowser,file-browser-extended"; 6 | } 7 | 8 | @theme "catppuccin-frappe" 9 | 10 | -------------------------------------------------------------------------------- /config/rofi/config-nord.rasi: -------------------------------------------------------------------------------- 1 | /** Basic config file **/ 2 | 3 | configuration { 4 | show-icons: true; 5 | modi: "window,drun,ssh,run,filebrowser,file-browser-extended"; 6 | } 7 | 8 | @theme "nord" 9 | 10 | -------------------------------------------------------------------------------- /config/rofi/config.rasi: -------------------------------------------------------------------------------- 1 | /** Basic config file **/ 2 | 3 | configuration { 4 | show-icons: true; 5 | modi: "window,drun,ssh,run,filebrowser"; 6 | } 7 | 8 | @theme "nord" 9 | 10 | -------------------------------------------------------------------------------- /config/rofi/launcher.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | theme="nord" 3 | dir="$HOME/.config/rofi/" 4 | 5 | # catppuccin 6 | ALPHA="#00000000" 7 | BG="#24273A" 8 | FG="#BF616A" 9 | SELECT="#1E1E2E" 10 | ACCENT="#24273A" 11 | 12 | # nord 13 | #ALPHA="#00000000" 14 | #BG="#3B4253" 15 | #FG="#BF616A" 16 | #SELECT="#343a46" 17 | #ACCENT="#3B4252" 18 | 19 | # overwrite colors file 20 | cat > $dir/colors.rasi <<- EOF 21 | /* colors */ 22 | 23 | * { 24 | al: $ALPHA; 25 | bg: $BG; 26 | se: $SELECT; 27 | fg: $FG; 28 | ac: $ACCENT; 29 | } 30 | EOF 31 | 32 | rofi -no-lazy-grab -show drun -modi drun -theme $dir/"$theme" 33 | 34 | -------------------------------------------------------------------------------- /config/rofi/lock_i3.sh: -------------------------------------------------------------------------------- 1 | #betterlockscreen --lock 2 | i3lock \ 3 | -------------------------------------------------------------------------------- /config/rofi/nord.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * Nordic rofi theme 3 | * Adapted by undiabler 4 | * 5 | * Nord Color palette imported from https://www.nordtheme.com/ 6 | * 7 | */ 8 | 9 | configuration { 10 | font: "JetBrainsMono NL Medium 10"; 11 | 12 | drun { 13 | display-name: ""; 14 | } 15 | 16 | run { 17 | display-name: ""; 18 | } 19 | 20 | window { 21 | display-name: ""; 22 | } 23 | 24 | timeout { 25 | delay: 10; 26 | action: "kb-cancel"; 27 | } 28 | } 29 | 30 | * { 31 | border: 0; 32 | margin: 0; 33 | padding: 0; 34 | spacing: 0; 35 | 36 | bg: #2E3440; 37 | bg-alt: #3B4252; 38 | fg: #81A1C1; 39 | fg-alt: #EBCB8B; 40 | 41 | background-color: @bg; 42 | text-color: @fg; 43 | transparent: rgba(46,52,64,0); 44 | } 45 | 46 | 47 | window { 48 | location: center; 49 | anchor: center; 50 | transparency: "screenshot"; 51 | /* padding: 10px; */ 52 | border: 0px; 53 | /* border-radius: 6px; */ 54 | width: 700px; 55 | 56 | background-color: @transparent; 57 | spacing: 0; 58 | children: [mainbox]; 59 | orientation: horizontal; 60 | } 61 | 62 | mainbox { 63 | children: [inputbar, listview]; 64 | } 65 | 66 | inputbar { 67 | background-color: @bg-alt; 68 | children: [prompt, entry]; 69 | } 70 | 71 | entry { 72 | background-color: inherit; 73 | padding: 12px 3px; 74 | } 75 | 76 | prompt { 77 | background-color: inherit; 78 | padding: 12px; 79 | } 80 | 81 | listview { 82 | lines: 8; 83 | } 84 | 85 | element { 86 | children: [element-icon, element-text]; 87 | } 88 | 89 | element-icon { 90 | padding: 10px 10px; 91 | } 92 | 93 | element-text { 94 | padding: 10px 0; 95 | } 96 | 97 | element-text selected { 98 | text-color: @fg-alt; 99 | } 100 | -------------------------------------------------------------------------------- /config/rofi/off.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e 3 | set -u 4 | 5 | # All supported choices 6 | # all=(shutdown reboot suspend hibernate logout lockscreen) 7 | all=(shutdown reboot suspend hibernate logout ) 8 | 9 | # By default, show all (i.e., just copy the array) 10 | show=("${all[@]}") 11 | 12 | declare -A texts 13 | #texts[lockscreen]="lock screen" 14 | texts[logout]="logout" 15 | texts[suspend]="suspend" 16 | texts[hibernate]="hibernate" 17 | texts[reboot]="reboot" 18 | texts[shutdown]="shutdown" 19 | 20 | declare -A icons 21 | # icons[lockscreen]="\uf023" 22 | icons[logout]="󰍃" 23 | icons[suspend]="󰏦" 24 | icons[hibernate]="" 25 | icons[reboot]="󰑓" 26 | icons[shutdown]="⏻" 27 | icons[cancel]="\u00d7" 28 | 29 | declare -A actions 30 | #actions[lockscreen]="sh $HOME/.config/sway/swaylock.sh" 31 | actions[logout]="i3-msg exit, mode \"default\"" 32 | #actions[logout]="loginctl terminate-session ${XDG_SESSION_ID-}" 33 | actions[suspend]="systemctl suspend" 34 | actions[hibernate]="systemctl hibernate" 35 | actions[reboot]="systemctl reboot" 36 | actions[shutdown]="systemctl poweroff" 37 | 38 | # By default, ask for confirmation for actions that are irreversible 39 | confirmations=(reboot shutdown logout) 40 | 41 | # By default, no dry run 42 | dryrun=false 43 | showsymbols=true 44 | 45 | function check_valid { 46 | option="$1" 47 | shift 1 48 | for entry in "${@}" 49 | do 50 | if [ -z "${actions[$entry]+x}" ] 51 | then 52 | echo "Invalid choice in $1: $entry" >&2 53 | exit 1 54 | fi 55 | done 56 | } 57 | 58 | 59 | # Define the messages after parsing the CLI options so that it is possible to 60 | # configure them in the future. 61 | 62 | function write_message { 63 | icon="$1" 64 | text="$2" 65 | if [ "$showsymbols" = "true" ] 66 | then 67 | echo -n "\u200e$icon \u2068$text\u2069" 68 | else 69 | echo -n "$text" 70 | fi 71 | } 72 | 73 | function print_selection { 74 | echo -e "$1" | $(read -r -d '' entry; echo "echo $entry") 75 | } 76 | 77 | declare -A messages 78 | declare -A confirmationMessages 79 | for entry in "${all[@]}" 80 | do 81 | messages[$entry]=$(write_message "${icons[$entry]}" "${texts[$entry]^}") 82 | done 83 | for entry in "${all[@]}" 84 | do 85 | confirmationMessages[$entry]=$(write_message "${icons[$entry]}" "Yes, ${texts[$entry]}") 86 | done 87 | confirmationMessages[cancel]=$(write_message "${icons[cancel]}" "No, cancel") 88 | 89 | if [ $# -gt 0 ] 90 | then 91 | # If arguments given, use those as the selection 92 | selection="${@}" 93 | else 94 | # Otherwise, use the CLI passed choice if given 95 | if [ -n "${selectionID+x}" ] 96 | then 97 | selection="${messages[$selectionID]}" 98 | fi 99 | fi 100 | 101 | # Don't allow custom entries 102 | echo -e "\0no-custom\x1ftrue" 103 | # Use markup 104 | echo -e "\0markup-rows\x1ftrue" 105 | 106 | if [ -z "${selection+x}" ] 107 | then 108 | echo -e "\0prompt\x1fPower menu" 109 | for entry in "${show[@]}" 110 | do 111 | echo -e "${messages[$entry]}\0icon\x1f${icons[$entry]}" 112 | done 113 | else 114 | for entry in "${show[@]}" 115 | do 116 | if [ "$selection" = "$(print_selection "${messages[$entry]}")" ] 117 | then 118 | # Check if the selected entry is listed in confirmation requirements 119 | for confirmation in "${confirmations[@]}" 120 | do 121 | if [ "$entry" = "$confirmation" ] 122 | then 123 | # Ask for confirmation 124 | echo -e "\0prompt\x1fAre you sure" 125 | echo -e "${confirmationMessages[$entry]}\0icon\x1f${icons[$entry]}" 126 | echo -e "${confirmationMessages[cancel]}\0icon\x1f${icons[cancel]}" 127 | exit 0 128 | fi 129 | done 130 | # If not, then no confirmation is required, so mark confirmed 131 | selection=$(print_selection "${confirmationMessages[$entry]}") 132 | fi 133 | if [ "$selection" = "$(print_selection "${confirmationMessages[$entry]}")" ] 134 | then 135 | if [ $dryrun = true ] 136 | then 137 | # Tell what would have been done 138 | echo "Selected: $entry" >&2 139 | else 140 | # Perform the action 141 | ${actions[$entry]} 142 | fi 143 | exit 0 144 | fi 145 | if [ "$selection" = "$(print_selection "${confirmationMessages[cancel]}")" ] 146 | then 147 | # Do nothing 148 | exit 0 149 | fi 150 | done 151 | # The selection didn't match anything, so raise an error 152 | echo "Invalid selection: $selection" >&2 153 | exit 1 154 | fi 155 | -------------------------------------------------------------------------------- /config/rofi/powermenu.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | rofi -show p -modi p:~/.config/rofi/off.sh -theme ~/.config/rofi/nord.rasi 3 | -------------------------------------------------------------------------------- /config/zathura/zathurarc: -------------------------------------------------------------------------------- 1 | set selection-clipboard clipboard 2 | 3 | set recolor true 4 | set guioptions "" 5 | 6 | 7 | set notification-error-bg "#2E3440" 8 | set notification-error-fg "#BF616A" 9 | set notification-warning-bg "#2E3440" 10 | set notification-warning-fg "#D08770" 11 | set notification-bg "#2E3440" 12 | set notification-fg "#D8DEE9" 13 | 14 | set completion-bg "#2E3440" 15 | set completion-fg "#D8DEE9" 16 | set completion-group-bg "#3B4252" 17 | set completion-group-fg "#D8DEE9" 18 | set completion-highlight-bg "#88C0D0" 19 | set completion-highlight-fg "#3B4252" 20 | 21 | set index-bg "#2E3440" 22 | set index-fg "#8FBCBB" 23 | set index-active-bg "#8FBCBB" 24 | set index-active-fg "#2E3440" 25 | 26 | set inputbar-bg "#2E3440" 27 | set inputbar-fg "#E5E9F0" 28 | 29 | set statusbar-bg "#2E3440" 30 | set statusbar-fg "#E5E9F0" 31 | 32 | set highlight-color "#D08770" 33 | set highlight-active-color "#BF616A" 34 | 35 | set default-bg "#2E3440" 36 | set default-fg "#D8DEE9" 37 | set render-loading "true" 38 | set render-loading-bg "#2E3440" 39 | set render-loading-fg "#434C5E" 40 | 41 | set recolor-lightcolor "#2E3440" 42 | set recolor-darkcolor "#ECEFF4" 43 | -------------------------------------------------------------------------------- /config/zathura/zathurarc-cat: -------------------------------------------------------------------------------- 1 | set selection-clipboard clipboard 2 | 3 | set recolor true 4 | set guioptions "" 5 | 6 | set default-fg "#C6D0F5" 7 | set default-bg "#303446" 8 | 9 | set completion-bg "#414559" 10 | set completion-fg "#C6D0F5" 11 | set completion-highlight-bg "#575268" 12 | set completion-highlight-fg "#C6D0F5" 13 | set completion-group-bg "#414559" 14 | set completion-group-fg "#8CAAEE" 15 | 16 | set statusbar-fg "#C6D0F5" 17 | set statusbar-bg "#414559" 18 | 19 | set notification-bg "#414559" 20 | set notification-fg "#C6D0F5" 21 | set notification-error-bg "#414559" 22 | set notification-error-fg "#E78284" 23 | set notification-warning-bg "#414559" 24 | set notification-warning-fg "#FAE3B0" 25 | 26 | set inputbar-fg "#C6D0F5" 27 | set inputbar-bg "#414559" 28 | 29 | set recolor-lightcolor "#303446" 30 | set recolor-darkcolor "#C6D0F5" 31 | 32 | set index-fg "#C6D0F5" 33 | set index-bg "#303446" 34 | set index-active-fg "#C6D0F5" 35 | set index-active-bg "#414559" 36 | 37 | set render-loading-bg "#303446" 38 | set render-loading-fg "#C6D0F5" 39 | 40 | set highlight-color "#575268" 41 | set highlight-fg "#F4B8E4" 42 | set highlight-active-color "#F4B8E4" 43 | -------------------------------------------------------------------------------- /config/zathura/zathurarc-nord: -------------------------------------------------------------------------------- 1 | set selection-clipboard clipboard 2 | 3 | set recolor true 4 | set guioptions "" 5 | 6 | 7 | set notification-error-bg "#2E3440" 8 | set notification-error-fg "#BF616A" 9 | set notification-warning-bg "#2E3440" 10 | set notification-warning-fg "#D08770" 11 | set notification-bg "#2E3440" 12 | set notification-fg "#D8DEE9" 13 | 14 | set completion-bg "#2E3440" 15 | set completion-fg "#D8DEE9" 16 | set completion-group-bg "#3B4252" 17 | set completion-group-fg "#D8DEE9" 18 | set completion-highlight-bg "#88C0D0" 19 | set completion-highlight-fg "#3B4252" 20 | 21 | set index-bg "#2E3440" 22 | set index-fg "#8FBCBB" 23 | set index-active-bg "#8FBCBB" 24 | set index-active-fg "#2E3440" 25 | 26 | set inputbar-bg "#2E3440" 27 | set inputbar-fg "#E5E9F0" 28 | 29 | set statusbar-bg "#2E3440" 30 | set statusbar-fg "#E5E9F0" 31 | 32 | set highlight-color "#D08770" 33 | set highlight-active-color "#BF616A" 34 | 35 | set default-bg "#2E3440" 36 | set default-fg "#D8DEE9" 37 | set render-loading "true" 38 | set render-loading-bg "#2E3440" 39 | set render-loading-fg "#434C5E" 40 | 41 | set recolor-lightcolor "#2E3440" 42 | set recolor-darkcolor "#ECEFF4" 43 | -------------------------------------------------------------------------------- /packages.txt: -------------------------------------------------------------------------------- 1 | acpi 2 | acpi_call 3 | acpid 4 | adobe-source-code-pro-fonts 5 | adobe-source-han-serif-cn-fonts 6 | aichat 7 | alacritty 8 | aliyundrive-webdav 9 | alsa-utils 10 | amd-ucode 11 | android-tools 12 | arch-audit 13 | ark 14 | asar 15 | base 16 | base-devel 17 | bat 18 | betterlockscreen 19 | boost 20 | bottom 21 | brave-bin 22 | btrfs-progs 23 | cadaver 24 | cmake-language-server 25 | deluge 26 | deluge-gtk 27 | dex 28 | dnsmasq 29 | docker 30 | downgrade 31 | dua-cli 32 | duf 33 | dunst 34 | dust 35 | efibootmgr 36 | exa 37 | fastfetch 38 | fcitx5 39 | fcitx5-configtool 40 | fcitx5-gtk 41 | fcitx5-qt 42 | fcitx5-rime 43 | fd 44 | firefox 45 | firewalld 46 | fish 47 | flake8 48 | flameshot 49 | fzf 50 | gimp 51 | git 52 | git-delta 53 | gitui 54 | glm 55 | glmark2 56 | go 57 | gping 58 | grub 59 | gst-plugin-pipewire 60 | gummy 61 | gvfs 62 | gvfs-smb 63 | i3-wm 64 | i3blocks 65 | i3status 66 | icalingua++ 67 | inkscape 68 | iptables-nft 69 | iwd 70 | jdk-openjdk 71 | jdtls 72 | jedi-language-server 73 | jre-openjdk 74 | jre-openjdk-headless 75 | kcolorchooser 76 | kdeconnect 77 | kdenlive 78 | kvantum 79 | libpulse 80 | libreoffice-still 81 | libva-mesa-driver 82 | libvirt 83 | light 84 | lightdm 85 | linux 86 | linux-firmware 87 | lldb 88 | llvm 89 | lsd 90 | lua-language-server 91 | marksman-bin 92 | meson 93 | miniconda3 94 | mpv 95 | mysql-workbench 96 | neofetch 97 | neovide 98 | neovim 99 | netease-cloud-music-gtk4 100 | networkmanager 101 | networkmanager-dmenu-git 102 | ninja 103 | noto-fonts-cjk 104 | noto-fonts-emoji 105 | noto-fonts-extra 106 | npm 107 | ntfs-3g 108 | nvm 109 | obs-studio 110 | opencv 111 | opencv-samples 112 | openjdk-doc 113 | openmp 114 | openmpi 115 | openssh 116 | packagekit 117 | packagekit-qt5 118 | pandoc-bin 119 | paru 120 | pdfmod 121 | pdftk 122 | picom 123 | pipewire 124 | pipewire-alsa 125 | pipewire-jack 126 | pipewire-pulse 127 | plasma-framework 128 | playerctl 129 | polybar 130 | prettier 131 | procs 132 | psensor 133 | pyright 134 | python-beautifulsoup4 135 | python-black 136 | python-installer 137 | python-lsp-server 138 | python-pip 139 | python-pynvim 140 | qemu-desktop 141 | qt5-doc 142 | qt5ct 143 | qtcreator 144 | r 145 | radian 146 | ranger 147 | rime-cloverpinyin 148 | ripgrep 149 | ristretto 150 | rofi 151 | rofi-bluetooth-git 152 | rustdesk-bin 153 | rustup 154 | samba 155 | scrcpy 156 | screenkey 157 | sd 158 | sddm 159 | shotcut 160 | sshfs 161 | starship 162 | steam 163 | tealdeer 164 | telegram-desktop 165 | texlab 166 | texlive-basic 167 | texlive-bibtexextra 168 | texlive-fontsextra 169 | texlive-formatsextra 170 | texlive-langchinese 171 | texlive-langother 172 | texlive-latexextra 173 | texlive-mathscience 174 | texlive-pictures 175 | texlive-publishers 176 | thunar 177 | thunar-archive-plugin 178 | thunar-volman 179 | timeshift 180 | tlp 181 | tor-browser 182 | trash-cli 183 | ttf-iosevka-nerd 184 | ttf-jetbrains-mono 185 | ttf-jetbrains-mono-nerd 186 | ttf-ms-win11-auto-zh_cn 187 | typora 188 | typst 189 | typst-lsp-bin 190 | unrar 191 | v2ray 192 | v2raya-bin 193 | vim 194 | virt-manager 195 | virtualbox 196 | visual-studio-code-bin 197 | vlc 198 | vulkan-radeon 199 | w3m 200 | webkit2gtk 201 | wemeet-bin 202 | wget 203 | wireplumber 204 | wqy-zenhei 205 | xautolock 206 | xclip 207 | xf86-video-amdgpu 208 | xf86-video-ati 209 | xob 210 | xorg-server 211 | xorg-xinit 212 | xournalpp 213 | xss-lock 214 | yapf 215 | yarn 216 | yay 217 | yesplaymusic 218 | yt-dlp 219 | zathura 220 | zathura-cb 221 | zathura-djvu 222 | zathura-pdf-poppler 223 | zathura-ps 224 | zellij 225 | zoom 226 | zoxide 227 | zram-generator 228 | zsh 229 | -------------------------------------------------------------------------------- /shots/2023-02-02_20-56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/shots/2023-02-02_20-56.png -------------------------------------------------------------------------------- /shots/2023-02-02_21-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/shots/2023-02-02_21-06.png -------------------------------------------------------------------------------- /startpage/README.md: -------------------------------------------------------------------------------- 1 | **This is my Nordic fork of [Bento by MiguelRAvila](https://github.com/MiguelRAvila/Bento), more details can be seen in original repo.** 2 | -------------------------------------------------------------------------------- /startpage/css/style.css: -------------------------------------------------------------------------------- 1 | @import url("https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;700&display=swap"); 2 | 3 | /* V A R I A B L E S */ 4 | 5 | :root { 6 | /* Fonts */ 7 | --fsg: 135px; /* Time and Greetings */ 8 | --fsm: 75px; /* Date */ 9 | --fss: 25px; /* Greetings and Weather widger */ 10 | --fses: 16px; /* Links List */ 11 | 12 | /* Light theme */ 13 | --accent: #88c0d0; /* Hover color */ 14 | --bg: #eceff4; /* Background color */ 15 | --sbg: #d8dee9; /* Cards color */ 16 | --fg: #2e3440; /* Foreground color */ 17 | --sfg: #3b4252; /* Sceondary Foreground color */ 18 | 19 | /* Image background */ 20 | 21 | /* Uncoment this section to get the 22 | image wallpaper. You can also 23 | change the --imgcol value 24 | to make the filter to your own */ 25 | 26 | /* --imgbg: url(/img/wal.jpg); */ 27 | --imgcol: linear-gradient( 28 | rgba(255, 255, 255, 0.7), 29 | rgba(255, 255, 255, 0.7) 30 | ); /* Filter color */ 31 | } 32 | 33 | /* Dark theme */ 34 | .darktheme { 35 | --accent: #5e81ac; /* Hover color */ 36 | --bg: #2e3440; /* Background color */ 37 | --sbg: #3b4252; /* Cards color */ 38 | --fg: #eceff4; /* Foreground color */ 39 | --sfg: #d8dee9; /* Secondary Foreground color */ 40 | --imgcol: linear-gradient( 41 | rgba(0, 0, 0, 0.7), 42 | rgba(0, 0, 0, 0.7) 43 | ); /* Filter color */ 44 | } 45 | 46 | /* S T Y L E S */ 47 | 48 | * { 49 | margin: 0; 50 | padding: 0; 51 | box-sizing: border-box; 52 | font-family: "Open Sans", sans-serif; 53 | transition: 0.2s ease-in-out; 54 | } 55 | 56 | body { 57 | width: 100vw; 58 | height: 100vh; 59 | background-color: var(--bg); 60 | background-image: var(--imgcol), var(--imgbg); 61 | display: flex; 62 | align-items: center; 63 | justify-content: center; 64 | } 65 | 66 | #themeButton { 67 | position: absolute; 68 | margin: 2em 2em 0 0; 69 | right: 0; 70 | top: 0; 71 | color: var(--fg); 72 | border: none; 73 | cursor: pointer; 74 | background-color: #00000000; 75 | } 76 | 77 | #themeButton__icon { 78 | width: 25px; 79 | height: 25px; 80 | } 81 | 82 | .container { 83 | width: 145vh; 84 | height: 85vh; 85 | display: grid; 86 | grid-template-columns: repeat(4, 1fr); 87 | grid-template-rows: repeat(4, 1fr); 88 | grid-gap: 30px; 89 | padding: 20px; 90 | } 91 | 92 | .card { 93 | background-color: var(--sbg); 94 | box-shadow: 0 5px 7px rgba(0, 0, 0, 0.35); 95 | border-radius: 5px; 96 | } 97 | .card:hover { 98 | transform: translateY(-0.2rem); 99 | box-shadow: 0 10px 10px rgba(0, 0, 0, 0.35); 100 | } 101 | 102 | .timeBlock { 103 | grid-row: 1 / span 2; 104 | grid-column: 1 / span 2; 105 | display: flex; 106 | flex-direction: column; 107 | align-items: center; 108 | justify-content: center; 109 | } 110 | 111 | .weatherBlock { 112 | grid-column: 3 / span 2; 113 | grid-row: 1 / span 2; 114 | display: flex; 115 | flex-direction: column; 116 | align-items: center; 117 | justify-content: center; 118 | } 119 | .weatherBlock__date { 120 | display: flex; 121 | align-items: center; 122 | justify-content: center; 123 | margin-top: 30px; 124 | } 125 | .weatherBlock__weather { 126 | display: flex; 127 | align-items: center; 128 | justify-content: center; 129 | } 130 | 131 | .clock { 132 | display: flex; 133 | align-items: center; 134 | justify-content: center; 135 | } 136 | 137 | #hour, 138 | #separator, 139 | #minutes { 140 | font-size: var(--fsg); 141 | font-weight: bolder; 142 | color: var(--fg); 143 | } 144 | 145 | #month, 146 | #day { 147 | font-size: var(--fsm); 148 | font-weight: bold; 149 | color: var(--fg); 150 | } 151 | 152 | #day { 153 | margin-left: 20px; 154 | } 155 | 156 | #greetings { 157 | font-size: var(--fss); 158 | color: var(--fg); 159 | } 160 | 161 | .weather-icon img { 162 | width: 70px; 163 | height: 70px; 164 | } 165 | 166 | .temperature-value p { 167 | font-size: var(--fss); 168 | font-weight: bolder; 169 | margin-left: 15px; 170 | color: var(--fg); 171 | } 172 | 173 | .temperature-description p { 174 | font-size: var(--fss); 175 | margin-left: 15px; 176 | color: var(--fg); 177 | } 178 | 179 | .buttonLink { 180 | grid-row: 3 / span 2; 181 | grid-column: 1 / span 2; 182 | display: grid; 183 | grid-template-columns: repeat(3, 1fr); 184 | grid-template-rows: repeat(2, 1fr); 185 | grid-gap: 30px; 186 | padding: 20px; 187 | } 188 | 189 | .buttonLink__link { 190 | display: flex; 191 | justify-content: center; 192 | align-items: center; 193 | width: 100%; 194 | } 195 | 196 | .buttonLink__icon { 197 | width: 23px; 198 | height: 23px; 199 | color: var(--fg); 200 | } 201 | 202 | .buttonLink__link-1 { 203 | grid-row: 1; 204 | grid-column: 1; 205 | } 206 | .buttonLink__link-2 { 207 | grid-row: 1; 208 | grid-column: 2; 209 | } 210 | .buttonLink__link-3 { 211 | grid-row: 2; 212 | grid-column: 1; 213 | } 214 | .buttonLink__link-4 { 215 | grid-row: 2; 216 | grid-column: 2; 217 | } 218 | .buttonLink__link-5 { 219 | grid-row: 1; 220 | grid-column: 3; 221 | } 222 | .buttonLink__link-6 { 223 | grid-row: 2; 224 | grid-column: 3; 225 | } 226 | .buttonLink__link:hover { 227 | background-color: var(--accent); 228 | } 229 | .buttonLink__link:hover svg { 230 | stroke: var(--sfg); 231 | } 232 | 233 | .list { 234 | display: flex; 235 | align-items: center; 236 | flex-direction: column; 237 | } 238 | 239 | .list__1 { 240 | grid-column: 3; 241 | grid-row: 3 / span 2; 242 | } 243 | .list__2 { 244 | grid-column: 4; 245 | grid-row: 3 / span 2; 246 | } 247 | .list__head { 248 | margin-top: 30px; 249 | margin-bottom: 10px; 250 | width: 30px; 251 | color: var(--fg); 252 | height: 30px; 253 | } 254 | .list__link { 255 | text-decoration: none; 256 | font-size: var(--fses); 257 | color: var(--fg); 258 | margin-top: 1px; 259 | padding: 6px 12px; 260 | border-radius: 5px; 261 | font-weight: bold; 262 | } 263 | .list__link:hover { 264 | background-color: var(--accent); 265 | color: var(--sfg); 266 | } 267 | 268 | /* M E D I A - Q U E R I E S */ 269 | 270 | @media only screen and (max-width: 68.75em) { 271 | :root { 272 | --fsg: 100px; 273 | --fsm: 65px; 274 | --fss: 20px; 275 | } 276 | 277 | .container { 278 | grid-gap: 20px; 279 | padding: 40px; 280 | } 281 | 282 | .timeBlock { 283 | grid-row: 1 / span 2; 284 | grid-column: 1 / span 4; 285 | } 286 | 287 | .weatherBlock { 288 | display: none; 289 | } 290 | 291 | #greetings { 292 | font-size: var(--fss); 293 | } 294 | 295 | .list { 296 | display: none; 297 | } 298 | 299 | .buttonLink { 300 | grid-column: 1 / span 4; 301 | grid-gap: 20px; 302 | padding-left: 100px; 303 | padding-right: 100px; 304 | } 305 | } 306 | -------------------------------------------------------------------------------- /startpage/icons/Nord/01d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/Nord/01d.png -------------------------------------------------------------------------------- /startpage/icons/Nord/01n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/Nord/01n.png -------------------------------------------------------------------------------- /startpage/icons/Nord/02d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/Nord/02d.png -------------------------------------------------------------------------------- /startpage/icons/Nord/02n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/Nord/02n.png -------------------------------------------------------------------------------- /startpage/icons/Nord/03d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/Nord/03d.png -------------------------------------------------------------------------------- /startpage/icons/Nord/03n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/Nord/03n.png -------------------------------------------------------------------------------- /startpage/icons/Nord/04d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/Nord/04d.png -------------------------------------------------------------------------------- /startpage/icons/Nord/04n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/Nord/04n.png -------------------------------------------------------------------------------- /startpage/icons/Nord/09d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/Nord/09d.png -------------------------------------------------------------------------------- /startpage/icons/Nord/09n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/Nord/09n.png -------------------------------------------------------------------------------- /startpage/icons/Nord/10d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/Nord/10d.png -------------------------------------------------------------------------------- /startpage/icons/Nord/10n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/Nord/10n.png -------------------------------------------------------------------------------- /startpage/icons/Nord/11d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/Nord/11d.png -------------------------------------------------------------------------------- /startpage/icons/Nord/11n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/Nord/11n.png -------------------------------------------------------------------------------- /startpage/icons/Nord/13d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/Nord/13d.png -------------------------------------------------------------------------------- /startpage/icons/Nord/13n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/Nord/13n.png -------------------------------------------------------------------------------- /startpage/icons/Nord/50d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/Nord/50d.png -------------------------------------------------------------------------------- /startpage/icons/Nord/50n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/Nord/50n.png -------------------------------------------------------------------------------- /startpage/icons/Nord/unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/Nord/unknown.png -------------------------------------------------------------------------------- /startpage/icons/White/01d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/White/01d.png -------------------------------------------------------------------------------- /startpage/icons/White/01n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/White/01n.png -------------------------------------------------------------------------------- /startpage/icons/White/02d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/White/02d.png -------------------------------------------------------------------------------- /startpage/icons/White/02n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/White/02n.png -------------------------------------------------------------------------------- /startpage/icons/White/03d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/White/03d.png -------------------------------------------------------------------------------- /startpage/icons/White/03n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/White/03n.png -------------------------------------------------------------------------------- /startpage/icons/White/04d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/White/04d.png -------------------------------------------------------------------------------- /startpage/icons/White/04n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/White/04n.png -------------------------------------------------------------------------------- /startpage/icons/White/09d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/White/09d.png -------------------------------------------------------------------------------- /startpage/icons/White/09n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/White/09n.png -------------------------------------------------------------------------------- /startpage/icons/White/10d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/White/10d.png -------------------------------------------------------------------------------- /startpage/icons/White/10n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/White/10n.png -------------------------------------------------------------------------------- /startpage/icons/White/11d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/White/11d.png -------------------------------------------------------------------------------- /startpage/icons/White/11n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/White/11n.png -------------------------------------------------------------------------------- /startpage/icons/White/13d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/White/13d.png -------------------------------------------------------------------------------- /startpage/icons/White/13n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/White/13n.png -------------------------------------------------------------------------------- /startpage/icons/White/50d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/White/50d.png -------------------------------------------------------------------------------- /startpage/icons/White/50n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/White/50n.png -------------------------------------------------------------------------------- /startpage/icons/White/unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/White/unknown.png -------------------------------------------------------------------------------- /startpage/icons/g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/icons/g.png -------------------------------------------------------------------------------- /startpage/img/gnu-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/startpage/img/gnu-linux.png -------------------------------------------------------------------------------- /startpage/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Charles's StartPage 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 18 |
19 | 20 | 21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | 30 | 31 | 32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 | 40 |
41 |
42 |

- °c

43 |
44 |
45 |

46 |
47 |
48 |
49 | 50 | 51 | 52 | 90 | 91 | 92 | 93 |
94 | 95 | LeetCode 100 | Runoob 105 | Zhihu 110 | StackOverflow 115 |
116 | 117 |
118 | 119 | Reddit 122 | Arch 125 | Z-library 129 | Wallhaven 132 |
133 |
134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 144 | 145 | 146 | 147 | 148 | -------------------------------------------------------------------------------- /startpage/js/greeting.js: -------------------------------------------------------------------------------- 1 | // Get the hour 2 | const today = new Date(); 3 | const hour = today.getHours(); 4 | 5 | // Here you can change your name 6 | const name = ' Charles '; 7 | 8 | // Here you can change your greetings 9 | const gree1 = 'Go to Sleep! '; 10 | const gree2 = 'Good morning! '; 11 | const gree3 = 'Good afternoon '; 12 | const gree4 = 'Good evening, '; 13 | const gree5 = 'Good evening, '; 14 | const gree6 = 'Good evening, '; 15 | 16 | // Define the hours of the greetings 17 | if (hour >= 23 && hour < 5) { 18 | document.getElementById('greetings').innerText = gree1 + name; 19 | } else if (hour >= 6 && hour < 12) { 20 | document.getElementById('greetings').innerText = gree2 + name; 21 | } else if (hour >= 12 && hour < 19) { 22 | document.getElementById('greetings').innerText = gree3 + name; 23 | } else { 24 | document.getElementById('greetings').innerText = gree4 + name; 25 | } 26 | -------------------------------------------------------------------------------- /startpage/js/theme.js: -------------------------------------------------------------------------------- 1 | // Store the theme 2 | let darkTheme = localStorage.getItem("darkTheme"); 3 | const themeToggle = document.querySelector("#themeButton"); 4 | 5 | // Apply Dark theme 6 | const enableDark = () => { 7 | document.body.classList.add("darktheme"); 8 | localStorage.setItem("darkTheme", "enabled"); 9 | themeToggle.innerHTML = ``; 10 | feather.replace(); 11 | }; 12 | 13 | // Remove Dark theme 14 | const disableDark = () => { 15 | document.body.classList.remove("darktheme"); 16 | localStorage.setItem("darkTheme", null); 17 | themeToggle.innerHTML = ``; 18 | feather.replace(); 19 | }; 20 | 21 | //Toggle theme 22 | if (darkTheme === "enabled") { 23 | enableDark(); 24 | } else { 25 | disableDark(); 26 | } 27 | 28 | themeToggle.addEventListener("click", () => { 29 | darkTheme = localStorage.getItem("darkTheme"); 30 | if (darkTheme !== "enabled") { 31 | enableDark(); 32 | } else { 33 | disableDark(); 34 | } 35 | }); 36 | 37 | enableDark(); 38 | // Theme accordint the hour 39 | 40 | /* 41 | const today = new Date(); 42 | 43 | if (hour >= 19 || hour < 5) { 44 | enableDark(); 45 | } else { 46 | disableDark(); 47 | } 48 | */ 49 | -------------------------------------------------------------------------------- /startpage/js/time.js: -------------------------------------------------------------------------------- 1 | window.onload = displayClock(); 2 | function displayClock() { 3 | const monthNames = [ 4 | 'Jan', 5 | 'Feb', 6 | 'Mar', 7 | 'Apr', 8 | 'May', 9 | 'Jun', 10 | 'Jul', 11 | 'Aug', 12 | 'Sep', 13 | 'Oct', 14 | 'Nov', 15 | 'Dec', 16 | ]; 17 | 18 | // Set to true to use a 12 hour date format 19 | var format_12hour = false; 20 | 21 | var d = new Date(); 22 | var mm = monthNames[d.getMonth()]; 23 | var dd = d.getDate(); 24 | var min = (mins = ('0' + d.getMinutes()).slice(-2)); 25 | var hh = d.getHours(); 26 | var ampm = ''; 27 | 28 | if (format_12hour) { 29 | ampm = hh >= 12 ? ' pm' : ' am'; 30 | hh = hh % 12; 31 | hh = hh ? hh : 12; //show mod 0 as 12 32 | } 33 | 34 | document.getElementById('hour').innerText = hh; 35 | document.getElementById('separator').innerHTML = ' : '; 36 | document.getElementById('minutes').innerText = min + ampm; 37 | 38 | document.getElementById('month').innerText = mm; 39 | document.getElementById('day').innerText = dd; 40 | 41 | setTimeout(displayClock, 1000); 42 | } 43 | -------------------------------------------------------------------------------- /startpage/js/weather.js: -------------------------------------------------------------------------------- 1 | const iconElement = document.querySelector('.weather-icon'); 2 | const tempElement = document.querySelector('.temperature-value p'); 3 | const descElement = document.querySelector('.temperature-description p'); 4 | 5 | // App data 6 | const weather = {}; 7 | weather.temperature = { 8 | unit: 'celsius', 9 | }; 10 | 11 | // Change to 'F' for Fahrenheit 12 | var tempUnit = 'C'; 13 | 14 | const KELVIN = 273.15; 15 | // Use your own key for the Weather, Get it here: https://openweathermap.org/ 16 | const key = 'eaf0bf95962bd42471d02500acc89aa1'; 17 | 18 | // Set Position function 19 | setPosition(); 20 | 21 | function setPosition(position) { 22 | // Here you can change your position 23 | // You can use https://www.latlong.net/ to get it! (I use San Francisco as an example) 24 | let latitude = 22.129090; 25 | let longitude = 113.544140; 26 | 27 | getWeather(latitude, longitude); 28 | } 29 | 30 | // Get the Weather data 31 | function getWeather(latitude, longitude) { 32 | let api = `https://api.openweathermap.org/data/2.5/weather?lat=${latitude}&lon=${longitude}&appid=${key}`; 33 | 34 | console.log(api); 35 | 36 | fetch(api) 37 | .then(function (response) { 38 | let data = response.json(); 39 | return data; 40 | }) 41 | .then(function (data) { 42 | let celsius = Math.floor(data.main.temp - KELVIN); 43 | weather.temperature.value = 44 | tempUnit == 'C' ? celsius : (celsius * 9) / 5 + 32; 45 | weather.description = data.weather[0].description; 46 | weather.iconId = data.weather[0].icon; 47 | }) 48 | .then(function () { 49 | displayWeather(); 50 | }); 51 | } 52 | 53 | // Display Weather info 54 | function displayWeather() { 55 | iconElement.innerHTML = ``; 56 | tempElement.innerHTML = `${weather.temperature.value}°${tempUnit}`; 57 | descElement.innerHTML = weather.description; 58 | } 59 | -------------------------------------------------------------------------------- /theme/Kvantum.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/theme/Kvantum.tar.xz -------------------------------------------------------------------------------- /theme/README.md: -------------------------------------------------------------------------------- 1 | See 2 | [https://github.com/EliverLara/Nordic](https://github.com/EliverLara/Nordic) 3 | and 4 | [https://github.com/zayronxio/Zafiro-Nord-Dark](https://github.com/zayronxio/Zafiro-Nord-Dark) 5 | and[https://github.com/catppuccin](https://github.com/catppuccin) 6 | -------------------------------------------------------------------------------- /theme/icons/Nordic-cursors.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/theme/icons/Nordic-cursors.tar.xz -------------------------------------------------------------------------------- /theme/icons/Zafiro-Nord-Black.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/theme/icons/Zafiro-Nord-Black.tar.xz -------------------------------------------------------------------------------- /theme/sddm/Nor.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/theme/sddm/Nor.tar.xz -------------------------------------------------------------------------------- /theme/theme/Catppuccin-Frappe-Standard-Blue-Dark.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/theme/theme/Catppuccin-Frappe-Standard-Blue-Dark.tar.xz -------------------------------------------------------------------------------- /theme/theme/Nordic-darker-v40.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/theme/theme/Nordic-darker-v40.zip -------------------------------------------------------------------------------- /theme/theme/Nordic-darker.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/theme/theme/Nordic-darker.tar.xz -------------------------------------------------------------------------------- /user/README.md: -------------------------------------------------------------------------------- 1 | ``` 2 | ~/.zshrc 3 | ~/.xprofile 4 | ~/.gtkrc-2.0 5 | ~/.Xresources 6 | ``` 7 | -------------------------------------------------------------------------------- /user/Xresources: -------------------------------------------------------------------------------- 1 | ! Colours are in groups as the second one should be a brighter version. 2 | 3 | ! Background: black, dark grey 4 | #define _background #272822 5 | #define _color8 #303030 6 | 7 | ! Color1/foreground: light grey: standard files, cursor 8 | ! Color9: bright pink: soft link e.g. ln -s test1 imaginarytest 9 | #define _foreground #d0d0d0 10 | #define _color9 #ff0090 11 | 12 | ! Color2: dark green: world read/write dir e.g. /tmp 13 | ! Color10: bright green: binaries user can execute /bin 14 | #define _color2 #66AA11 15 | #define _color10 #80FF00 16 | 17 | ! Color3: medium brown: fifo e.g mkfifo fifotest 18 | ! Color11: light brown/sand: block special files e.g ls -l /dev/loop0 19 | #define _color3 #c47f2c 20 | #define _color11 #ffba68 21 | 22 | ! Color4: medium blue: FIXME: unused? 23 | ! Color12: light blue: directory 24 | #define _color4 #30309b 25 | #define _color12 #5f5fee 26 | 27 | ! Color5: dark purple: Not used in ls, in ranger (not sure where it gets it colors from though) 28 | ! Color13: light purple: socket file /var/run/dbus_system_bus_socket 29 | #define _color5 #7e40a5 30 | #define _color13 #bb88dd 31 | 32 | ! Color6: medium magenta: FIXME: unused? 33 | ! Color14: light magenta: symbolic links e.g. ~/Examples /bin/lsmod 34 | #define _color6 #3579A8 35 | #define _color14 #4eb4fa 36 | 37 | ! Color7: medium grey: setuid file e.g. /usr/bin/sudo 38 | ! Color15: light grey: background color for setuid files e.g /usr/bin/sudo 39 | #define _color7 #9999AA 40 | ! Trying white in case it helps 41 | #define _color15 #ffffff 42 | !#define _color15 #d0d0d0 43 | 44 | ! General - covering all X clients 45 | !*background: _background 46 | !*foreground: _foreground 47 | ! Not sure what this one does - Solarise had it at base3 48 | !*fadeColor: XXX ! Not sure what this does 49 | 50 | ! XTerm specific 51 | xterm*background: _background 52 | xterm*foreground: _foreground 53 | 54 | ! Not really required - XTerm defaults to using the foreground colour 55 | xterm*cursorColor: _foreground 56 | 57 | xterm*color0: _background 58 | xterm*color1: _foreground 59 | xterm*color2: _color2 60 | xterm*color3: _color3 61 | xterm*color4: _color4 62 | xterm*color5: _color5 63 | xterm*color6: _color6 64 | xterm*color7: _color7 65 | ! 8-15 are considered brighter colours of 1-7 66 | xterm*color8: _color8 67 | xterm*color9: _color9 68 | xterm*color10: _color10 69 | xterm*color11: _color11 70 | xterm*color12: _color12 71 | xterm*color13: _color13 72 | xterm*color14: _color14 73 | xterm*color15: _color15 74 | 75 | Xcursor.theme:Nordic-cursors 76 | -------------------------------------------------------------------------------- /user/gtkrc-2.0: -------------------------------------------------------------------------------- 1 | gtk-enable-animations=1 2 | gtk-primary-button-warps-slider=0 3 | # DO NOT EDIT! This file will be overwritten by LXAppearance. 4 | # Any customization should be done in ~/.gtkrc-2.0.mine instead. 5 | 6 | gtk-theme-name="Nordic-darker-v40" 7 | gtk-icon-theme-name="Nordic-Darker" 8 | gtk-font-name="Noto Sans, 10" 9 | 10 | gtk-cursor-theme-name="Nordic-cursors" 11 | gtk-cursor-theme-size=24 12 | gtk-toolbar-style=3 13 | gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR 14 | gtk-button-images=1 15 | gtk-menu-images=1 16 | gtk-enable-event-sounds=1 17 | gtk-enable-input-feedback-sounds=1 18 | gtk-xft-antialias=1 19 | gtk-xft-hinting=1 20 | gtk-xft-hintstyle="hintfull" 21 | -------------------------------------------------------------------------------- /user/xprofile: -------------------------------------------------------------------------------- 1 | Xcursor.theme:Nordic-cursors 2 | export XMODIFIERS=@im=fcitx 3 | QT_QPA_PLATFORMTHEME = qt5ct 4 | -------------------------------------------------------------------------------- /user/zshrc: -------------------------------------------------------------------------------- 1 | # zmodload zsh/zprof 2 | 3 | # export HISTSIZE=1000 4 | #export EDITOR="nvim" 5 | 6 | autoload -U compaudit compinit 7 | autoload -U compinit && compinit 8 | 9 | eval "$(zoxide init zsh)" 10 | [ -f /opt/miniconda3/etc/profile.d/conda.sh ] && source /opt/miniconda3/etc/profile.d/conda.sh 11 | 12 | # source /usr/share/nvm/init-nvm.sh 13 | 14 | export PATH="/home/charles/.local/bin:$PATH" 15 | export PATH="/home/charles/.npm-global/bin:$PATH" 16 | export PATH="/home/charles/go/bin/:$PATH" 17 | # export QT_QPA_PLATFORMTHEME=qt5ct 18 | export MKLROOT="/opt/intel/oneapi/mkl/latest/" 19 | alias icc="gcc -L${MKLROOT}/lib/intel64 -Wl,--no-as-needed -lmkl_intel_ilp64 -lmkl_gnu_thread -lmkl_core -lgomp -lpthread -lm -ldl" 20 | alias i++="g++ -L${MKLROOT}/lib/intel64 -Wl,--no-as-needed -lmkl_intel_ilp64 -lmkl_gnu_thread -lmkl_core -lgomp -lpthread -lm -ldl" 21 | # 22 | source ~/.zsh/fzf-tab/fzf-tab.plugin.zsh 23 | source ~/.zsh/fzf.zsh 24 | source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh 25 | source ~/.zsh/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh 26 | 27 | alias n=neofetch 28 | alias aliyun=' aliyundrive-webdav --refresh-token="" --port=8080 --auth-user=chahsa --auth-password=password' 29 | alias pw=poweroff 30 | alias rb=reboot 31 | alias vs="systemctl status v2raya.service" 32 | alias sv="systemctl start v2raya.service" 33 | alias dv="systemctl stop v2raya.service" 34 | alias ls="lsd" 35 | alias c="clear" 36 | alias cn="clear;n" 37 | alias du="dust" #dua 38 | alias vi3="vim ~/.config/i3/config" 39 | alias top="btm" 40 | alias p="procs" 41 | alias t="tldr" 42 | alias nv="nvim" 43 | alias find="fd --exclude ~/SourceFile --exclude ~/go " 44 | alias cat="bat" 45 | alias grep="rg" 46 | alias mon="xrandr --output HDMI-A-0 --same-as eDP --auto " 47 | alias diff="delta" 48 | alias sed="sd" 49 | alias yt-dlp="yt-dlp -f bestvideo+bestaudio --merge-output-format mp4 " 50 | alias df="duf" 51 | alias cd="z" 52 | alias g="gitui" 53 | alias ter="zellij" 54 | alias st="gummy start" 55 | alias rt="gummy -t 6500 -b 4" 56 | alias dt="gummy -t 5400 -b 4" 57 | alias clean-pac="yay -Qqdt | yay -Rs -" 58 | alias sudo="sudo env PATH=$PATH" 59 | n 60 | 61 | 62 | open-pdf() { 63 | IFS=$'\n' currentpath=($(pwd)) 64 | cd ~/Documents/BOOK/ 65 | IFS=$'\n' files=($(fzf-tmux --query="$1" --multi --select-1 --exit-0 --height 40%)) 66 | [[ -n "$files" ]] && zathura 2>/dev/null "${files[@]}" & disown 67 | cd "${currentpath}" 68 | } 69 | 70 | open-pdf-cd() { 71 | IFS=$'\n' files=($(fzf-tmux --query="$1" --multi --select-1 --exit-0 --height 40%)) 72 | [[ -n "$files" ]] && zathura 2>/dev/null "${files[@]}" & disown 73 | } 74 | alias op="open-pdf" 75 | alias opc="open-pdf-cd" 76 | 77 | if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then 78 | source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" 79 | fi 80 | 81 | 82 | HISTFILE=$HOME/.zsh/cache/zsh_history 83 | HISTSIZE=5000 84 | SAVEHIST=5000 85 | ## Settings for umask 86 | setopt appendhistory 87 | setopt appendhistory 88 | setopt INC_APPEND_HISTORY 89 | setopt SHARE_HISTORY 90 | 91 | 92 | 93 | source ~/.zsh/powerlevel10k/powerlevel10k.zsh-theme 94 | [[ ! -f ~/.zsh/p10k.zsh ]] || source ~/.zsh/p10k.zsh 95 | autoload -U promptinit; promptinit 96 | #prompt spaceship 97 | 98 | 99 | # eval "$(starship init zsh)" 100 | # 101 | -------------------------------------------------------------------------------- /vim/vimrc: -------------------------------------------------------------------------------- 1 | call plug#begin() 2 | Plug 'https://github.com/enml/nord-vim.git' 3 | Plug 'https://github.com/itchyny/vim-cursorword.git' 4 | Plug 'godlygeek/tabular' 5 | Plug 'preservim/vim-markdown' 6 | Plug 'rust-lang/rust.vim' 7 | Plug 'mhinz/vim-startify' 8 | Plug 'vim-airline/vim-airline' 9 | Plug 'preservim/nerdtree' 10 | Plug 'tiagofumo/vim-nerdtree-syntax-highlight' 11 | Plug 'Yggdroot/LeaderF', { 'do': ':LeaderfInstallCExtension' } 12 | Plug 'ryanoasis/vim-devicons' 13 | Plug 'junegunn/vim-slash' 14 | call plug#end() 15 | 16 | 17 | colorscheme nord 18 | 19 | set number 20 | set noerrorbells 21 | set nocompatible 22 | syntax on 23 | set showmode 24 | set showcmd 25 | set mouse=a 26 | set t_Co=256 27 | filetype indent on 28 | set autoindent 29 | set tabstop=2 30 | set shiftwidth=4 31 | set expandtab 32 | set softtabstop=2 33 | set relativenumber 34 | set cursorline 35 | set wrap 36 | set linebreak 37 | set wrapmargin=2 38 | set scrolloff=5 39 | set laststatus=2 40 | set ruler 41 | set showmatch 42 | set hlsearch 43 | set incsearch 44 | set ignorecase 45 | set smartcase 46 | set autoread 47 | set listchars=tab:»·,trail:· 48 | set list 49 | set wildmenu 50 | set wildmode=longest:list,full 51 | let mapleader = " " 52 | map n :NERDTreeToggle 53 | -------------------------------------------------------------------------------- /wallpaper/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/wallpaper/2.png -------------------------------------------------------------------------------- /wallpaper/arch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/wallpaper/arch.png -------------------------------------------------------------------------------- /wallpaper/archlinux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/wallpaper/archlinux.png -------------------------------------------------------------------------------- /wallpaper/cutppuccin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/wallpaper/cutppuccin.png -------------------------------------------------------------------------------- /wallpaper/nord1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/wallpaper/nord1.png -------------------------------------------------------------------------------- /wallpaper/others.md: -------------------------------------------------------------------------------- 1 | There are still two wallpapers I use but their size is a little big. 2 | See the links below : 3 | 4 | [https://wallhaven.cc/w/3z2med](https://wallhaven.cc/w/3z2med) 5 | 6 | [https://wallhaven.cc/w/6oxgp6](https://wallhaven.cc/w/6oxgp6) 7 | 8 | A collection of wallpapers that may fit the Nordic Theme: [https://github.com/linuxdotexe/nordic-wallpapers](https://github.com/linuxdotexe/nordic-wallpapers) 9 | -------------------------------------------------------------------------------- /zsh/cache/fzfhistory: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/zsh/cache/fzfhistory -------------------------------------------------------------------------------- /zsh/cache/zsh_history: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/charleschetty/dotfile/036361cfae65c8403a2e6a4ded7e629969dcded3/zsh/cache/zsh_history -------------------------------------------------------------------------------- /zsh/file_preview.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env sh 2 | 3 | mime=$(file -bL --mime-type "$1") 4 | category=${mime%%/*} 5 | if [ -d "$1" ]; then 6 | exa -l --no-user --no-time --icons --no-permissions --no-filesize "$1" 2>/dev/null 7 | elif [ "$category" = text ]; then 8 | (bat -p --style numbers --color=always "$1" ) 2>/dev/null | head -1000 9 | elif [ "$mime" = application/pdf ]; then 10 | pdftotext $1 - |less 11 | elif [ "$category" = image ]; then 12 | (~/.zsh/img_preview $1) 2>/dev/null 13 | # chafa "$1" 14 | else 15 | echo $1 is a $category file 16 | fi 17 | -------------------------------------------------------------------------------- /zsh/fzf.zsh: -------------------------------------------------------------------------------- 1 | export RUNEWIDTH_EASTASIAN=0 2 | # export FZF_PREVIEW_COMMAND='bash /home/charles/.zsh/file_preview.sh {}' 3 | # export FZF_DEFAULT_OPTS="--height 12 --layout=reverse --history=/home/charles/.zsh/cache/fzfhistory" 4 | export FZF_DEFAULT_OPTS="--preview 'bash ~/.zsh/file_preview.sh {}' --height 12 --layout=reverse --history=/home/charles/.zsh/cache/fzfhistory" 5 | export FZF_DEFAULT_COMMAND="fd --exclude={.git,.idea,.vscode,.sass-cache,node_modules,build,dist,vendor} --type f" 6 | 7 | zstyle ':completion:complete:*:options' sort false 8 | zstyle ':fzf-tab:complete:cd:*' query-string input 9 | zstyle ':completion:*:descriptions' format "[%d]" 10 | zstyle ':fzf-tab:*' group-colors $'\033[15m' $'\033[14m' $'\033[33m' $'\033[35m' $'\033[15m' $'\033[14m' $'\033[33m' $'\033[35m' 11 | zstyle ':fzf-tab:*' prefix '' 12 | zstyle ':completion:*:*:*:*:processes' command "ps -u $USER -o pid,user,comm -w -w" 13 | zstyle ':fzf-tab:complete:(kill|ps):argument-rest' fzf-preview '[ "$group" = "process ID" ] && ps --pid=$word -o cmd --no-headers -w -w' 14 | zstyle ':fzf-tab:complete:(kill|ps):argument-rest' fzf-flags --preview-window=down:3:wrap 15 | zstyle ':fzf-tab:complete:*:options' fzf-flags --preview-window=down:0:wrap 16 | zstyle ':fzf-tab:complete:(docker|cargo):*' fzf-flags --preview-window=down:0:wrap 17 | zstyle ':fzf-tab:complete:systemctl:*' fzf-flags --preview-window=down:0:wrap 18 | zstyle ':fzf-tab:complete:systemctl-(status|(re|)start|(dis|en)able):*' fzf-preview 'SYSTEMD_COLORS=1 systemctl status $word' 19 | # zstyle ':fzf-tab:complete:systemctl-*:*' fzf-preview 'SYSTEMD_COLORS=1 systemctl status $word' 20 | zstyle ':fzf-tab:complete:yay:*' fzf-preview 'yay -Qi $word || yay -Si $word' 21 | zstyle ':fzf-tab:complete:pacman:*' fzf-preview 'pacman -Qi $word || pacman -Si $word' 22 | zstyle ':fzf-tab:complete:(\\|)run-help:*' fzf-preview 'run-help $word' 23 | zstyle ':fzf-tab:complete:(\\|*/|)man:*' fzf-preview 'man $word' 24 | zstyle ':fzf-tab:complete:git-(add|diff|restore):*' fzf-preview 'git diff --color=always $word' 25 | zstyle ':fzf-tab:complete:git-log:*' fzf-preview 'git log --color=always $word' 26 | zstyle ':fzf-tab:complete:git-show:*' fzf-preview 'git show --color=always $word' 27 | zstyle ':fzf-tab:complete:git-checkout:*' fzf-preview '[ -f "$realpath" ] && git diff --color=always $word || git log --color=always $word' 28 | zstyle ':fzf-tab:complete:*:*' fzf-preview 'bash ~/.zsh/file_preview.sh ${(Q)realpath}' 29 | zstyle ':fzf-tab:complete:*:*' fzf-flags --height=12 30 | zstyle ':fzf-tab:complete:tldr:argument-1' fzf-preview 'tldr --color always $word' 31 | -------------------------------------------------------------------------------- /zsh/img_preview: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | FIFO="/tmp/preview_fifo" 4 | [ -p "$FIFO" ] || mkfifo "$FIFO" 5 | x=$(($(tput cols) / 2 + 1)) 6 | # y=$(($(tput rows) / 2 + 1)) 7 | # x=1 8 | y=1 9 | width=$FZF_PREVIEW_COLUMNS 10 | height=$FZF_PREVIEW_LINES 11 | start_ueberzugpp() { 12 | ueberzugpp layer --silent <"$FIFO" & 13 | exec 3>"${FIFO}" 14 | } 15 | 16 | cleanup() { 17 | rm -f "$FIFO" 18 | } 19 | trap cleanup HUP INT QUIT TERM PWR EXIT 20 | 21 | preview_image() { 22 | echo '{"path": "'"$1"'", "action": "add", "identifier": "fzfpreview", "x": "'"$x"'", "y": "'"$y"'", "width": "'"$width"'", "height": "'"$height"'"}' >"$FIFO" 23 | # echo '{"path": "'"$1"'", "action": "add", "identifier": "img-fifo", "x": "'"$x"'", "y": "'"$y"'", "width": "'"$width"'", "height": "'"$height"'"}' >"$FIFO" 24 | } 25 | 26 | start_ueberzugpp 27 | preview_image "$1" 28 | wait 29 | 30 | --------------------------------------------------------------------------------