├── .Xresources ├── .config ├── bspwm │ └── bspwmrc ├── dunst │ └── dunstrc ├── i3 │ └── config ├── kitty │ └── kitty.conf ├── neofetch │ └── config.conf ├── nvim │ ├── init.vim │ ├── luafiles │ │ ├── bufferline.lua │ │ ├── colors.lua │ │ ├── compe.lua │ │ ├── completion.lua │ │ ├── dashboard.lua │ │ ├── galaxy.lua │ │ ├── gitsign.lua │ │ ├── neogit.lua │ │ ├── nvimtree.lua │ │ └── telescope.lua │ ├── plugins.vim │ └── vimscript │ │ ├── bindings.vim │ │ ├── colors.vim │ │ ├── floatterm.vim │ │ ├── lsp.vim │ │ ├── other.vim │ │ └── zen.vim ├── picom.conf ├── polybar │ └── config ├── qutebrowser │ ├── config.py │ └── css │ │ ├── apprentice-all-sites.css │ │ ├── modus-all-sites.css │ │ ├── solarized-dark-all-sites.css │ │ └── solarized-light-all-sites.css ├── ranger │ └── rc.conf ├── rofi │ ├── materia.rasi │ └── materia_wd.rasi ├── sxhkd │ └── sxhkdrc ├── zathura │ └── zathurarc └── zsh │ ├── .zprofile │ ├── .zshrc │ └── exports ├── .mozilla └── firefox │ └── bp35q76x.default-release │ └── chrome │ └── userChrome.css ├── .resources ├── main.png ├── qute_1.png ├── qute_2.png ├── vim_1.png └── vim_2.png ├── .vim ├── after │ └── syntax │ │ └── python.vim └── vimrc ├── .xinitrc ├── Pictures └── arch_senko.png ├── README.org └── scripts └── bash ├── autostart.sh ├── compiler.sh ├── opout.sh └── wallpaper_automation.sh /.Xresources: -------------------------------------------------------------------------------- 1 | !Copy paste bindings 2 | URxvt.keysym.Shift-Control-V: eval:paste_clipboard 3 | URxvt.keysym.Shift-Control-C: eval:selection_to_clipboard 4 | URxvt.keysym.Control-Meta-C: builtin-string: 5 | URxvt.keysym.Control-Meta-V: builtin-string: 6 | URxvt.iso14755: false 7 | 8 | !General settings 9 | URxvt.scrollBar: false 10 | URxvt.internalBorder: 40 11 | URxvt*font: xft:Hack Nerd Font Mono:size=11, xft:Symbola:style=Regular:size=14,xft:M+ 1c 12 | URxvt.cursorBlink: True 13 | URxvt*iconFile: /usr/share/icons/custom/urxvt_ico.png 14 | !ROFI SETUP 15 | rofi.hide-scrollbar: true 16 | rofi.show-icons: True 17 | URxvt*depth: 32 18 | URxvt.background: [80]#1d1f21 19 | !COLORSCHMES 20 | ! special 21 | *.foreground: #ffffff 22 | *.background: #000000 23 | 24 | *.solid-background: #000000 25 | *.cursorColor: #ffffff 26 | 27 | !*.highlight: #fb3d66 28 | *.highlight: #00d8b4 29 | 30 | ! black 31 | *.color0: #000000 32 | *.color8: #282828 33 | 34 | !red 35 | *.color1: #a60000 36 | *.color9: #972500 37 | 38 | !green 39 | *.color2: #005e00 40 | *.color10: #315b00 41 | 42 | !yellow 43 | *.color3: #813e00 44 | *.color11: #70480f 45 | 46 | ! blue 47 | !*.color4: #003497 48 | *.color4: #00d8b4 49 | *.color12: #0f3d8c 50 | 51 | ! magenta 52 | *.color5: #721045 53 | *.color13: #8f0075 54 | 55 | ! cyan 56 | *.color6: #00538b 57 | *.color14: #30517f 58 | 59 | ! white 60 | *.color7: #ffffff 61 | *.color15: #f0f0f0 62 | -------------------------------------------------------------------------------- /.config/bspwm/bspwmrc: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # autostart 3 | exec $HOME/scripts/bash/autostart.sh & 4 | exec $HOME/scripts/bash/wpp -c $HOME/Pictures/Wallpapers/saturn_4k.jpg & 5 | exec sudo powertop --auto-tune & 6 | exec emacs --daemon &> /dev/null & 7 | ffplay -nodisp -autoexit -volume 15 $HOME/.resources/boot_sound.mp3 >/dev/null 2>&1 & 8 | 9 | killall picom 10 | picom --experimental-backends & 11 | 12 | # setup workspaces 13 | bspc monitor eDP1 -d I II III IV V 14 | 15 | killall mpd 16 | mpd & 17 | 18 | # get xrdb colors 19 | highlight=$(xrdb -query | grep "*.highlight" | cut -f 2) 20 | background=$(xrdb -query | grep "*.background" | cut -f 2) 21 | 22 | # config bindings 23 | bspc config pointer_modifier mod4 24 | bspc config pointer_action1 move 25 | bspc config pointer_action2 resize_corner 26 | # config window properties 27 | bspc config border_width 0 28 | bspc config window_gap 0 29 | bspc config top_padding 35 30 | bspc config border_radius 0 31 | # more configs 32 | bspc config focus_follows_pointer true 33 | bspc config focused_border_color "$highlight" 34 | bspc config normal_border_color "$background" 35 | bspc config split_ratio 0.52 36 | bspc config borderless_monocle true 37 | bspc config gapless_monocle false 38 | 39 | # rules 40 | bspc rule -a "Emacs" state=fullscreen 41 | bspc rule -a "*:*:emacs-run-launcher" state=floating 42 | bspc rule -a "pinentry-qt" state=floating 43 | -------------------------------------------------------------------------------- /.config/dunst/dunstrc: -------------------------------------------------------------------------------- 1 | n pixels. If the width is omitted but the height is given 2 | # ("-geometry x2"), the message window expands over the whole screen 3 | # (dmenu-like). If width is 0, the window expands to the longest 4 | # message displayed. A positive x is measured from the left, a 5 | # negative from the right side of the screen. Y is measured from 6 | # the top and down respectively. 7 | # The width can be negative. In this case the actual width is the 8 | # screen width minus the width defined in within the geometry option. 9 | geometry = "x5" 10 | 11 | # Show how many messages are currently hidden (because of geometry). 12 | indicate_hidden = yes 13 | 14 | # Shrink window if it's smaller than the width. Will be ignored if 15 | # width is 0. 16 | shrink = no 17 | 18 | # The transparency of the window. Range: [0; 100]. 19 | # This option will only work if a compositing window manager is 20 | # present (e.g. xcompmgr, compiz, etc.). 21 | transparency = 0 22 | 23 | # The height of the entire notification. If the height is smaller 24 | # than the font height and padding combined, it will be raised 25 | # to the font height and padding. 26 | notification_height = 0 27 | 28 | # Draw a line of "separator_height" pixel height between two 29 | # notifications. 30 | # Set to 0 to disable. 31 | separator_height = 2 32 | 33 | # Padding between text and separator. 34 | padding = 8 35 | 36 | # Horizontal padding. 37 | horizontal_padding = 8 38 | 39 | # Defines width in pixels of frame around the notification window. 40 | # Set to 0 to disable. 41 | frame_width = 0 42 | 43 | # Defines color of the frame around the notification window. 44 | frame_color = "#fb3d66" 45 | 46 | # Define a color for the separator. 47 | # possible values are: 48 | # * auto: dunst tries to find a color fitting to the background; 49 | # * foreground: use the same color as the foreground; 50 | # * frame: use the same color as the frame; 51 | # * anything else will be interpreted as a X color. 52 | separator_color = frame 53 | 54 | # Sort messages by urgency. 55 | sort = yes 56 | 57 | # Don't remove messages, if the user is idle (no mouse or keyboard input) 58 | # for longer than idle_threshold seconds. 59 | # Set to 0 to disable. 60 | # A client can set the 'transient' hint to bypass this. See the rules 61 | # section for how to disable this if necessary 62 | idle_threshold = 120 63 | 64 | ### Text ### 65 | 66 | font = Monospace 10 67 | 68 | # The spacing between lines. If the height is smaller than the 69 | # font height, it will get raised to the font height. 70 | line_height = 0 71 | 72 | # Possible values are: 73 | # full: Allow a small subset of html markup in notifications: 74 | # bold 75 | # italic 76 | # strikethrough 77 | # underline 78 | # 79 | # For a complete reference see 80 | # . 81 | # 82 | # strip: This setting is provided for compatibility with some broken 83 | # clients that send markup even though it's not enabled on the 84 | # server. Dunst will try to strip the markup but the parsing is 85 | # simplistic so using this option outside of matching rules for 86 | # specific applications *IS GREATLY DISCOURAGED*. 87 | # 88 | # no: Disable markup parsing, incoming notifications will be treated as 89 | # plain text. Dunst will not advertise that it has the body-markup 90 | # capability if this is set as a global setting. 91 | # 92 | # It's important to note that markup inside the format option will be parsed 93 | # regardless of what this is set to. 94 | markup = full 95 | 96 | # The format of the message. Possible variables are: 97 | # %a appname 98 | # %s summary 99 | # %b body 100 | # %i iconname (including its path) 101 | # %I iconname (without its path) 102 | # %p progress value if set ([ 0%] to [100%]) or nothing 103 | # %n progress value if set without any extra characters 104 | # %% Literal % 105 | # Markup is allowed 106 | format = "%s\n%b" 107 | 108 | # Alignment of message text. 109 | # Possible values are "left", "center" and "right". 110 | alignment = center 111 | 112 | # Vertical alignment of message text and icon. 113 | # Possible values are "top", "center" and "bottom". 114 | vertical_alignment = center 115 | 116 | # Show age of message if message is older than show_age_threshold 117 | # seconds. 118 | # Set to -1 to disable. 119 | show_age_threshold = 60 120 | 121 | # Split notifications into multiple lines if they don't fit into 122 | # geometry. 123 | word_wrap = yes 124 | 125 | # When word_wrap is set to no, specify where to make an ellipsis in long lines. 126 | # Possible values are "start", "middle" and "end". 127 | ellipsize = middle 128 | 129 | # Ignore newlines '\n' in notifications. 130 | ignore_newline = no 131 | 132 | # Stack together notifications with the same content 133 | stack_duplicates = true 134 | 135 | # Hide the count of stacked notifications with the same content 136 | hide_duplicate_count = false 137 | 138 | # Display indicators for URLs (U) and actions (A). 139 | show_indicators = yes 140 | 141 | ### Icons ### 142 | 143 | # Align icons left/right/off 144 | icon_position = left 145 | 146 | # Scale small icons up to this size, set to 0 to disable. Helpful 147 | # for e.g. small files or high-dpi screens. In case of conflict, 148 | # max_icon_size takes precedence over this. 149 | min_icon_size = 0 150 | 151 | # Scale larger icons down to this size, set to 0 to disable 152 | max_icon_size = 32 153 | 154 | # Paths to default icons. 155 | icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/ 156 | 157 | ### History ### 158 | 159 | # Should a notification popped up from history be sticky or timeout 160 | # as if it would normally do. 161 | sticky_history = yes 162 | 163 | # Maximum amount of notifications kept in history 164 | history_length = 20 165 | 166 | ### Misc/Advanced ### 167 | 168 | # dmenu path. 169 | dmenu = /usr/bin/dmenu -p dunst: 170 | 171 | # Browser for opening urls in context menu. 172 | browser = /usr/bin/firefox -new-tab 173 | 174 | # Always run rule-defined scripts, even if the notification is suppressed 175 | always_run_script = true 176 | 177 | # Define the title of the windows spawned by dunst 178 | title = Dunst 179 | 180 | # Define the class of the windows spawned by dunst 181 | class = Dunst 182 | 183 | # Print a notification on startup. 184 | # This is mainly for error detection, since dbus (re-)starts dunst 185 | # automatically after a crash. 186 | startup_notification = false 187 | 188 | # Manage dunst's desire for talking 189 | # Can be one of the following values: 190 | # crit: Critical features. Dunst aborts 191 | # warn: Only non-fatal warnings 192 | # mesg: Important Messages 193 | # info: all unimportant stuff 194 | # debug: all less than unimportant stuff 195 | verbosity = mesg 196 | 197 | # Define the corner radius of the notification window 198 | # in pixel size. If the radius is 0, you have no rounded 199 | # corners. 200 | # The radius will be automatically lowered if it exceeds half of the 201 | # notification height to avoid clipping text and/or icons. 202 | corner_radius = 20 203 | 204 | # Ignore the dbus closeNotification message. 205 | # Useful to enforce the timeout set by dunst configuration. Without this 206 | # parameter, an application may close the notification sent before the 207 | # user defined timeout. 208 | ignore_dbusclose = false 209 | 210 | ### Legacy 211 | 212 | # Use the Xinerama extension instead of RandR for multi-monitor support. 213 | # This setting is provided for compatibility with older nVidia drivers that 214 | # do not support RandR and using it on systems that support RandR is highly 215 | # discouraged. 216 | # 217 | # By enabling this setting dunst will not be able to detect when a monitor 218 | # is connected or disconnected which might break follow mode if the screen 219 | # layout changes. 220 | force_xinerama = false 221 | 222 | ### mouse 223 | 224 | # Defines list of actions for each mouse event 225 | # Possible values are: 226 | # * none: Don't do anything. 227 | # * do_action: If the notification has exactly one action, or one is marked as default, 228 | # invoke it. If there are multiple and no default, open the context menu. 229 | # * close_current: Close current notification. 230 | # * close_all: Close all notifications. 231 | # These values can be strung together for each mouse event, and 232 | # will be executed in sequence. 233 | mouse_left_click = close_current 234 | mouse_middle_click = do_action, close_current 235 | mouse_right_click = close_all 236 | 237 | # Experimental features that may or may not work correctly. Do not expect them 238 | # to have a consistent behaviour across releases. 239 | [experimental] 240 | # Calculate the dpi to use on a per-monitor basis. 241 | # If this setting is enabled the Xft.dpi value will be ignored and instead 242 | # dunst will attempt to calculate an appropriate dpi value for each monitor 243 | # using the resolution and physical size. This might be useful in setups 244 | # where there are multiple screens with very different dpi values. 245 | per_monitor_dpi = false 246 | 247 | [shortcuts] 248 | 249 | # Shortcuts are specified as [modifier+][modifier+]...key 250 | # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2", 251 | # "mod3" and "mod4" (windows-key). 252 | # Xev might be helpful to find names for keys. 253 | 254 | # Close notification. 255 | close = ctrl+space 256 | 257 | # Close all notifications. 258 | close_all = ctrl+shift+space 259 | 260 | # Redisplay last message(s). 261 | # On the US keyboard layout "grave" is normally above TAB and left 262 | # of "1". Make sure this key actually exists on your keyboard layout, 263 | # e.g. check output of 'xmodmap -pke' 264 | history = ctrl+grave 265 | 266 | # Context menu. 267 | context = ctrl+shift+period 268 | 269 | [urgency_low] 270 | # IMPORTANT: colors have to be defined in quotation marks. 271 | # Otherwise the "#" and following would be interpreted as a comment. 272 | background = "#222222" 273 | foreground = "#888888" 274 | timeout = 10 275 | # Icon for notifications with low urgency, uncomment to enable 276 | #icon = /path/to/icon 277 | 278 | [urgency_normal] 279 | background = "#282828" 280 | foreground = "#ffffff" 281 | timeout = 10 282 | # Icon for notifications with normal urgency, uncomment to enable 283 | #icon = /path/to/icon 284 | 285 | [urgency_critical] 286 | background = "#900000" 287 | foreground = "#ffffff" 288 | frame_color = "#ff0000" 289 | timeout = 0 290 | # Icon for notifications with critical urgency, uncomment to enable 291 | #icon = /path/to/icon 292 | 293 | # Every section that isn't one of the above is interpreted as a rules to 294 | # override settings for certain messages. 295 | # 296 | # Messages can be matched by 297 | # appname (discouraged, see desktop_entry) 298 | # body 299 | # category 300 | # desktop_entry 301 | # icon 302 | # match_transient 303 | # msg_urgency 304 | # stack_tag 305 | # summary 306 | # 307 | # and you can override the 308 | # background 309 | # foreground 310 | # format 311 | # frame_color 312 | # fullscreen 313 | # new_icon 314 | # set_stack_tag 315 | # set_transient 316 | # timeout 317 | # urgency 318 | # 319 | # Shell-like globbing will get expanded. 320 | # 321 | # Instead of the appname filter, it's recommended to use the desktop_entry filter. 322 | # GLib based applications export their desktop-entry name. In comparison to the appname, 323 | # the desktop-entry won't get localized. 324 | # 325 | # SCRIPTING 326 | # You can specify a script that gets run when the rule matches by 327 | # setting the "script" option. 328 | # The script will be called as follows: 329 | # script appname summary body icon urgency 330 | # where urgency can be "LOW", "NORMAL" or "CRITICAL". 331 | # 332 | # NOTE: if you don't want a notification to be displayed, set the format 333 | # to "". 334 | # NOTE: It might be helpful to run dunst -print in a terminal in order 335 | # to find fitting options for rules. 336 | 337 | # Disable the transient hint so that idle_threshold cannot be bypassed from the 338 | # client 339 | #[transient_disable] 340 | # match_transient = yes 341 | # set_transient = no 342 | # 343 | # Make the handling of transient notifications more strict by making them not 344 | # be placed in history. 345 | #[transient_history_ignore] 346 | # match_transient = yes 347 | # history_ignore = yes 348 | 349 | # fullscreen values 350 | # show: show the notifications, regardless if there is a fullscreen window opened 351 | # delay: displays the new notification, if there is no fullscreen window active 352 | # If the notification is already drawn, it won't get undrawn. 353 | # pushback: same as delay, but when switching into fullscreen, the notification will get 354 | # withdrawn from screen again and will get delayed like a new notification 355 | #[fullscreen_delay_everything] 356 | # fullscreen = delay 357 | #[fullscreen_show_critical] 358 | # msg_urgency = critical 359 | # fullscreen = show 360 | 361 | #[espeak] 362 | # summary = "*" 363 | # script = dunst_espeak.sh 364 | 365 | #[script-test] 366 | # summary = "*script*" 367 | # script = dunst_test.sh 368 | 369 | #[ignore] 370 | # # This notification will not be displayed 371 | # summary = "foobar" 372 | # format = "" 373 | 374 | #[history-ignore] 375 | # # This notification will not be saved in history 376 | # summary = "foobar" 377 | # history_ignore = yes 378 | 379 | #[skip-display] 380 | # # This notification will not be displayed, but will be included in the history 381 | # summary = "foobar" 382 | # skip_display = yes 383 | 384 | #[signed_on] 385 | # appname = Pidgin 386 | # summary = "*signed on*" 387 | # urgency = low 388 | # 389 | #[signed_off] 390 | # appname = Pidgin 391 | # summary = *signed off* 392 | # urgency = low 393 | # 394 | #[says] 395 | # appname = Pidgin 396 | # summary = *says* 397 | # urgency = critical 398 | # 399 | #[twitter] 400 | # appname = Pidgin 401 | # summary = *twitter.com* 402 | # urgency = normal 403 | # 404 | #[stack-volumes] 405 | # appname = "some_volume_notifiers" 406 | # set_stack_tag = "volume" 407 | # 408 | # vim: ft=cfg 409 | -------------------------------------------------------------------------------- /.config/i3/config: -------------------------------------------------------------------------------- 1 | # __ ___ 2 | # __ /'__`\ /'___\ __ 3 | #/\_\/\_\L\ \ ___ ___ ___ /\ \__//\_\ __ 4 | #\/\ \/_/_\_<_ /'___\ / __`\ /' _ `\ \ ,__\/\ \ /'_ `\ 5 | # \ \ \/\ \L\ \ /\ \__//\ \L\ \/\ \/\ \ \ \_/\ \ \/\ \L\ \ 6 | # \ \_\ \____/ \ \____\ \____/\ \_\ \_\ \_\ \ \_\ \____ \ 7 | # \/_/\/___/ \/____/\/___/ \/_/\/_/\/_/ \/_/\/___L\ \ 8 | # /\____/ 9 | # \_/__/ 10 | # 11 | #Please see https://i3wm.org/docs/userguide.html for a complete reference! 12 | 13 | # MAIN PART (Important Bindings) 14 | set $mod Mod4 15 | 16 | # Font for window titles. Will also be used by the bar unless a different font 17 | # is used in the bar {} block below. 18 | font pango:monospace 8 19 | 20 | # The combination of xss-lock, nm-applet and pactl is a popular choice, so 21 | # they are included here as an example. Modify as you see fit. 22 | 23 | # xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the 24 | # screen before suspend. Use loginctl lock-session to lock your screen. 25 | exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork 26 | 27 | # Use pactl to adjust volume in PulseAudio. 28 | set $refresh_i3status killall -SIGUSR1 i3status 29 | bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status 30 | bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status 31 | bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status 32 | bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status 33 | 34 | # Laptop screen brightness control 35 | bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight -inc 10 36 | bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -dec 10 37 | 38 | # Use Mouse+$mod to drag floating windows to their wanted position 39 | floating_modifier $mod 40 | 41 | # start a terminal 42 | bindsym $mod+Return exec i3-sensible-terminal 43 | 44 | # kill focused window 45 | bindsym $mod+Shift+q kill 46 | 47 | # start rofi(a program launcher) 48 | bindsym $mod+d exec rofi -show run -lines 3 -eh 2 -width 20 -theme /usr/share/rofi/themes/materia.rasi 49 | 50 | # change focus 51 | bindsym $mod+j focus left 52 | bindsym $mod+k focus down 53 | bindsym $mod+l focus up 54 | bindsym $mod+semicolon focus right 55 | 56 | # alternatively, you can use the cursor keys: 57 | bindsym $mod+Left focus left 58 | bindsym $mod+Down focus down 59 | bindsym $mod+Up focus up 60 | bindsym $mod+Right focus right 61 | 62 | # move focused window 63 | bindsym $mod+Shift+j move left 64 | bindsym $mod+Shift+k move down 65 | bindsym $mod+Shift+l move up 66 | bindsym $mod+Shift+semicolon move right 67 | 68 | # alternatively, you can use the cursor keys: 69 | bindsym $mod+Shift+Left move left 70 | bindsym $mod+Shift+Down move down 71 | bindsym $mod+Shift+Up move up 72 | bindsym $mod+Shift+Right move right 73 | 74 | # split in horizontal orientation 75 | bindsym $mod+h split h 76 | 77 | # split in vertical orientation 78 | bindsym $mod+v split v 79 | 80 | # enter fullscreen mode for the focused container 81 | bindsym $mod+f fullscreen toggle 82 | 83 | # change container layout (stacked, tabbed, toggle split) 84 | bindsym $mod+s layout stacking 85 | bindsym $mod+w layout tabbed 86 | bindsym $mod+e layout toggle split 87 | 88 | # toggle tiling / floating 89 | bindsym $mod+Shift+space floating toggle 90 | 91 | # change focus between tiling / floating windows 92 | bindsym $mod+space focus mode_toggle 93 | 94 | # focus the parent container 95 | bindsym $mod+a focus parent 96 | 97 | #WINDOW COSMETICS 98 | gaps inner 30 99 | gaps outer 30 100 | new_window pixel 0 101 | default_border pixel 3 102 | default_floating_border pixel 3 103 | 104 | #BORDER COLORS 105 | #class border bground text indicator child_border 106 | client.focused #966fbc #FF6C110 #FFFFFF #966fbc #966fbc 107 | client.unfocused #373B41 #373B41 #373B41 #373B41 #373B41 108 | client.urgent #7F130E #900000 #FFFFFF #900000 #900000 109 | 110 | # Define names for default workspaces for which we configure key bindings later on. 111 | # We use variables to avoid repeating the names in multiple places. 112 | set $ws1 "DEV" 113 | set $ws2 "WWW" 114 | set $ws3 "DOC" 115 | set $ws4 "ETC" 116 | set $ws5 "MEDIA" 117 | set $ws6 "6" 118 | set $ws7 "7" 119 | set $ws8 "8" 120 | set $ws9 "9" 121 | set $ws10 "10" 122 | 123 | # switch to workspace 124 | bindsym $mod+1 workspace $ws1 125 | bindsym $mod+2 workspace $ws2 126 | bindsym $mod+3 workspace $ws3 127 | bindsym $mod+4 workspace $ws4 128 | bindsym $mod+5 workspace $ws5 129 | bindsym $mod+6 workspace number $ws6 130 | bindsym $mod+7 workspace number $ws7 131 | bindsym $mod+8 workspace number $ws8 132 | bindsym $mod+9 workspace number $ws9 133 | bindsym $mod+0 workspace number $ws10 134 | 135 | # move focused container to workspace 136 | bindsym $mod+Shift+1 move container to workspace $ws1 137 | bindsym $mod+Shift+2 move container to workspace $ws2 138 | bindsym $mod+Shift+3 move container to workspace $ws3 139 | bindsym $mod+Shift+4 move container to workspace $ws4 140 | bindsym $mod+Shift+5 move container to workspace $ws5 141 | bindsym $mod+Shift+6 move container to workspace number $ws6 142 | bindsym $mod+Shift+7 move container to workspace number $ws7 143 | bindsym $mod+Shift+8 move container to workspace number $ws8 144 | bindsym $mod+Shift+9 move container to workspace number $ws9 145 | bindsym $mod+Shift+0 move container to workspace number $ws10 146 | 147 | # reload the configuration file 148 | bindsym $mod+Shift+c reload 149 | # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) 150 | bindsym $mod+Shift+r restart 151 | # exit i3 (logs you out of your X session) 152 | bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'" 153 | 154 | #AUTOEXCECS 155 | exec_always compton 156 | exec_always $HOME/scripts/bash/wallpaper_automation.sh 157 | exec_always --no-startup-id /usr/bin/alternating_layouts.py 158 | exec_always --no-startup-id $HOME/scripts/bash/autostart.sh 159 | exec_always mpd 160 | 161 | # resize window (you can also use the mouse for that) 162 | mode "resize" { 163 | # These bindings trigger as soon as you enter the resize mode 164 | 165 | # Pressing left will shrink the window’s width. 166 | # Pressing right will grow the window’s width. 167 | # Pressing up will shrink the window’s height. 168 | # Pressing down will grow the window’s height. 169 | bindsym j resize shrink width 10 px or 10 ppt 170 | bindsym k resize grow height 10 px or 10 ppt 171 | bindsym l resize shrink height 10 px or 10 ppt 172 | bindsym semicolon resize grow width 10 px or 10 ppt 173 | 174 | # same bindings, but for the arrow keys 175 | bindsym Left resize shrink width 10 px or 10 ppt 176 | bindsym Down resize grow height 10 px or 10 ppt 177 | bindsym Up resize shrink height 10 px or 10 ppt 178 | bindsym Right resize grow width 10 px or 10 ppt 179 | 180 | # back to normal: Enter or Escape or $mod+r 181 | bindsym Return mode "default" 182 | bindsym Escape mode "default" 183 | bindsym $mod+r mode "default" 184 | } 185 | 186 | bindsym $mod+r mode "resize" 187 | -------------------------------------------------------------------------------- /.config/neofetch/config.conf: -------------------------------------------------------------------------------- 1 | # ___ __ __ 2 | # /'___\ /\ \__ /\ \ 3 | # ___ __ ___ /\ \__/ __\ \ ,_\ ___\ \ \___ 4 | #/' _ `\ /'__`\ / __`\ \ ,__\/'__`\ \ \/ /'___\ \ _ `\ 5 | #/\ \/\ \/\ __//\ \L\ \ \ \_/\ __/\ \ \_/\ \__/\ \ \ \ \ 6 | #\ \_\ \_\ \____\ \____/\ \_\\ \____\\ \__\ \____\\ \_\ \_\ 7 | # \/_/\/_/\/____/\/___/ \/_/ \/____/ \/__/\/____/ \/_/\/_/ 8 | # 9 | # See this wiki page for more info: 10 | # https://github.com/dylanaraps/neofetch/wiki/Customizing-Info 11 | print_info() { 12 | info title 13 | info underline 14 | 15 | prin "$(color 1)OS$(color 8): CH42_N!X" 16 | #info "OS" distro 17 | info "Kern" kernel 18 | info "Up" uptime 19 | info "Shell" shell 20 | info "WM" wm 21 | info "Term" term 22 | info "Font" term_font 23 | prin 24 | prin "$(color 9)$(fortune -s -n 40)" 25 | info cols 26 | } 27 | 28 | 29 | # Kernel 30 | 31 | 32 | # Shorten the output of the kernel function. 33 | # 34 | # Default: 'on' 35 | # Values: 'on', 'off' 36 | # Flag: --kernel_shorthand 37 | # Supports: Everything except *BSDs (except PacBSD and PC-BSD) 38 | # 39 | # Example: 40 | # on: '4.8.9-1-ARCH' 41 | # off: 'Linux 4.8.9-1-ARCH' 42 | kernel_shorthand="on" 43 | 44 | 45 | # Distro 46 | 47 | 48 | # Shorten the output of the distro function 49 | # 50 | # Default: 'off' 51 | # Values: 'on', 'tiny', 'off' 52 | # Flag: --distro_shorthand 53 | # Supports: Everything except Windows and Haiku 54 | distro_shorthand="tiny" 55 | 56 | # Show/Hide OS Architecture. 57 | # Show 'x86_64', 'x86' and etc in 'Distro:' output. 58 | # 59 | # Default: 'on' 60 | # Values: 'on', 'off' 61 | # Flag: --os_arch 62 | # 63 | # Example: 64 | # on: 'Arch Linux x86_64' 65 | # off: 'Arch Linux' 66 | os_arch="on" 67 | 68 | 69 | # Uptime 70 | 71 | 72 | # Shorten the output of the uptime function 73 | # 74 | # Default: 'on' 75 | # Values: 'on', 'tiny', 'off' 76 | # Flag: --uptime_shorthand 77 | # 78 | # Example: 79 | # on: '2 days, 10 hours, 3 mins' 80 | # tiny: '2d 10h 3m' 81 | # off: '2 days, 10 hours, 3 minutes' 82 | uptime_shorthand="on" 83 | 84 | 85 | # Memory 86 | 87 | 88 | # Show memory pecentage in output. 89 | # 90 | # Default: 'off' 91 | # Values: 'on', 'off' 92 | # Flag: --memory_percent 93 | # 94 | # Example: 95 | # on: '1801MiB / 7881MiB (22%)' 96 | # off: '1801MiB / 7881MiB' 97 | memory_percent="off" 98 | 99 | 100 | # Packages 101 | 102 | 103 | # Show/Hide Package Manager names. 104 | # 105 | # Default: 'tiny' 106 | # Values: 'on', 'tiny' 'off' 107 | # Flag: --package_managers 108 | # 109 | # Example: 110 | # on: '998 (pacman), 8 (flatpak), 4 (snap)' 111 | # tiny: '908 (pacman, flatpak, snap)' 112 | # off: '908' 113 | package_managers="on" 114 | 115 | 116 | # Shell 117 | 118 | 119 | # Show the path to $SHELL 120 | # 121 | # Default: 'off' 122 | # Values: 'on', 'off' 123 | # Flag: --shell_path 124 | # 125 | # Example: 126 | # on: '/bin/bash' 127 | # off: 'bash' 128 | shell_path="off" 129 | 130 | # Show $SHELL version 131 | # 132 | # Default: 'on' 133 | # Values: 'on', 'off' 134 | # Flag: --shell_version 135 | # 136 | # Example: 137 | # on: 'bash 4.4.5' 138 | # off: 'bash' 139 | shell_version="on" 140 | 141 | 142 | # CPU 143 | 144 | 145 | # CPU speed type 146 | # 147 | # Default: 'bios_limit' 148 | # Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'. 149 | # Flag: --speed_type 150 | # Supports: Linux with 'cpufreq' 151 | # NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value. 152 | speed_type="bios_limit" 153 | 154 | # CPU speed shorthand 155 | # 156 | # Default: 'off' 157 | # Values: 'on', 'off'. 158 | # Flag: --speed_shorthand 159 | # NOTE: This flag is not supported in systems with CPU speed less than 1 GHz 160 | # 161 | # Example: 162 | # on: 'i7-6500U (4) @ 3.1GHz' 163 | # off: 'i7-6500U (4) @ 3.100GHz' 164 | speed_shorthand="off" 165 | 166 | # Enable/Disable CPU brand in output. 167 | # 168 | # Default: 'on' 169 | # Values: 'on', 'off' 170 | # Flag: --cpu_brand 171 | # 172 | # Example: 173 | # on: 'Intel i7-6500U' 174 | # off: 'i7-6500U (4)' 175 | cpu_brand="on" 176 | 177 | # CPU Speed 178 | # Hide/Show CPU speed. 179 | # 180 | # Default: 'on' 181 | # Values: 'on', 'off' 182 | # Flag: --cpu_speed 183 | # 184 | # Example: 185 | # on: 'Intel i7-6500U (4) @ 3.1GHz' 186 | # off: 'Intel i7-6500U (4)' 187 | cpu_speed="on" 188 | 189 | # CPU Cores 190 | # Display CPU cores in output 191 | # 192 | # Default: 'logical' 193 | # Values: 'logical', 'physical', 'off' 194 | # Flag: --cpu_cores 195 | # Support: 'physical' doesn't work on BSD. 196 | # 197 | # Example: 198 | # logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores) 199 | # physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores) 200 | # off: 'Intel i7-6500U @ 3.1GHz' 201 | cpu_cores="logical" 202 | 203 | # CPU Temperature 204 | # Hide/Show CPU temperature. 205 | # Note the temperature is added to the regular CPU function. 206 | # 207 | # Default: 'off' 208 | # Values: 'C', 'F', 'off' 209 | # Flag: --cpu_temp 210 | # Supports: Linux, BSD 211 | # NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable 212 | # coretemp kernel module. This only supports newer Intel processors. 213 | # 214 | # Example: 215 | # C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]' 216 | # F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]' 217 | # off: 'Intel i7-6500U (4) @ 3.1GHz' 218 | cpu_temp="off" 219 | 220 | 221 | # GPU 222 | 223 | 224 | # Enable/Disable GPU Brand 225 | # 226 | # Default: 'on' 227 | # Values: 'on', 'off' 228 | # Flag: --gpu_brand 229 | # 230 | # Example: 231 | # on: 'AMD HD 7950' 232 | # off: 'HD 7950' 233 | gpu_brand="on" 234 | 235 | # Which GPU to display 236 | # 237 | # Default: 'all' 238 | # Values: 'all', 'dedicated', 'integrated' 239 | # Flag: --gpu_type 240 | # Supports: Linux 241 | # 242 | # Example: 243 | # all: 244 | # GPU1: AMD HD 7950 245 | # GPU2: Intel Integrated Graphics 246 | # 247 | # dedicated: 248 | # GPU1: AMD HD 7950 249 | # 250 | # integrated: 251 | # GPU1: Intel Integrated Graphics 252 | gpu_type="all" 253 | 254 | 255 | # Resolution 256 | 257 | 258 | # Display refresh rate next to each monitor 259 | # Default: 'off' 260 | # Values: 'on', 'off' 261 | # Flag: --refresh_rate 262 | # Supports: Doesn't work on Windows. 263 | # 264 | # Example: 265 | # on: '1920x1080 @ 60Hz' 266 | # off: '1920x1080' 267 | refresh_rate="off" 268 | 269 | 270 | # Gtk Theme / Icons / Font 271 | 272 | 273 | # Shorten output of GTK Theme / Icons / Font 274 | # 275 | # Default: 'off' 276 | # Values: 'on', 'off' 277 | # Flag: --gtk_shorthand 278 | # 279 | # Example: 280 | # on: 'Numix, Adwaita' 281 | # off: 'Numix [GTK2], Adwaita [GTK3]' 282 | gtk_shorthand="off" 283 | 284 | 285 | # Enable/Disable gtk2 Theme / Icons / Font 286 | # 287 | # Default: 'on' 288 | # Values: 'on', 'off' 289 | # Flag: --gtk2 290 | # 291 | # Example: 292 | # on: 'Numix [GTK2], Adwaita [GTK3]' 293 | # off: 'Adwaita [GTK3]' 294 | gtk2="on" 295 | 296 | # Enable/Disable gtk3 Theme / Icons / Font 297 | # 298 | # Default: 'on' 299 | # Values: 'on', 'off' 300 | # Flag: --gtk3 301 | # 302 | # Example: 303 | # on: 'Numix [GTK2], Adwaita [GTK3]' 304 | # off: 'Numix [GTK2]' 305 | gtk3="on" 306 | 307 | 308 | # IP Address 309 | 310 | 311 | # Website to ping for the public IP 312 | # 313 | # Default: 'http://ident.me' 314 | # Values: 'url' 315 | # Flag: --ip_host 316 | public_ip_host="http://ident.me" 317 | 318 | # Public IP timeout. 319 | # 320 | # Default: '2' 321 | # Values: 'int' 322 | # Flag: --ip_timeout 323 | public_ip_timeout=2 324 | 325 | 326 | # Disk 327 | 328 | 329 | # Which disks to display. 330 | # The values can be any /dev/sdXX, mount point or directory. 331 | # NOTE: By default we only show the disk info for '/'. 332 | # 333 | # Default: '/' 334 | # Values: '/', '/dev/sdXX', '/path/to/drive'. 335 | # Flag: --disk_show 336 | # 337 | # Example: 338 | # disk_show=('/' '/dev/sdb1'): 339 | # 'Disk (/): 74G / 118G (66%)' 340 | # 'Disk (/mnt/Videos): 823G / 893G (93%)' 341 | # 342 | # disk_show=('/'): 343 | # 'Disk (/): 74G / 118G (66%)' 344 | # 345 | disk_show=('/') 346 | 347 | # Disk subtitle. 348 | # What to append to the Disk subtitle. 349 | # 350 | # Default: 'mount' 351 | # Values: 'mount', 'name', 'dir' 352 | # Flag: --disk_subtitle 353 | # 354 | # Example: 355 | # name: 'Disk (/dev/sda1): 74G / 118G (66%)' 356 | # 'Disk (/dev/sdb2): 74G / 118G (66%)' 357 | # 358 | # mount: 'Disk (/): 74G / 118G (66%)' 359 | # 'Disk (/mnt/Local Disk): 74G / 118G (66%)' 360 | # 'Disk (/mnt/Videos): 74G / 118G (66%)' 361 | # 362 | # dir: 'Disk (/): 74G / 118G (66%)' 363 | # 'Disk (Local Disk): 74G / 118G (66%)' 364 | # 'Disk (Videos): 74G / 118G (66%)' 365 | disk_subtitle="mount" 366 | 367 | 368 | # Song 369 | 370 | 371 | # Manually specify a music player. 372 | # 373 | # Default: 'auto' 374 | # Values: 'auto', 'player-name' 375 | # Flag: --music_player 376 | # 377 | # Available values for 'player-name': 378 | # 379 | # amarok 380 | # audacious 381 | # banshee 382 | # bluemindo 383 | # clementine 384 | # cmus 385 | # deadbeef 386 | # deepin-music 387 | # dragon 388 | # elisa 389 | # exaile 390 | # gnome-music 391 | # gmusicbrowser 392 | # gogglesmm 393 | # guayadeque 394 | # iTunes 395 | # juk 396 | # lollypop 397 | # mocp 398 | # mopidy 399 | # mpd 400 | # netease-cloud-music 401 | # pogo 402 | # pragha 403 | # qmmp 404 | # quodlibet 405 | # rhythmbox 406 | # sayonara 407 | # smplayer 408 | # spotify 409 | # strawberry 410 | # tomahawk 411 | # vlc 412 | # xmms2d 413 | # xnoise 414 | # yarock 415 | music_player="auto" 416 | 417 | # Format to display song information. 418 | # 419 | # Default: '%artist% - %album% - %title%' 420 | # Values: '%artist%', '%album%', '%title%' 421 | # Flag: --song_format 422 | # 423 | # Example: 424 | # default: 'Song: Jet - Get Born - Sgt Major' 425 | song_format="%artist% - %album% - %title%" 426 | 427 | # Print the Artist, Album and Title on separate lines 428 | # 429 | # Default: 'off' 430 | # Values: 'on', 'off' 431 | # Flag: --song_shorthand 432 | # 433 | # Example: 434 | # on: 'Artist: The Fratellis' 435 | # 'Album: Costello Music' 436 | # 'Song: Chelsea Dagger' 437 | # 438 | # off: 'Song: The Fratellis - Costello Music - Chelsea Dagger' 439 | song_shorthand="off" 440 | 441 | # 'mpc' arguments (specify a host, password etc). 442 | # 443 | # Default: '' 444 | # Example: mpc_args=(-h HOST -P PASSWORD) 445 | mpc_args=() 446 | 447 | 448 | # Text Colors 449 | 450 | 451 | # Text Colors 452 | # 453 | # Default: 'distro' 454 | # Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num' 455 | # Flag: --colors 456 | # 457 | # Each number represents a different part of the text in 458 | # this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info' 459 | # 460 | # Example: 461 | # colors=(distro) - Text is colored based on Distro colors. 462 | # colors=(4 6 1 8 8 6) - Text is colored in the order above. 463 | colors=(9 6 8 1 6 6) 464 | 465 | 466 | # Text Options 467 | 468 | 469 | # Toggle bold text 470 | # 471 | # Default: 'on' 472 | # Values: 'on', 'off' 473 | # Flag: --bold 474 | bold="on" 475 | 476 | # Enable/Disable Underline 477 | # 478 | # Default: 'on' 479 | # Values: 'on', 'off' 480 | # Flag: --underline 481 | underline_enabled="on" 482 | 483 | # Underline character 484 | # 485 | # Default: '-' 486 | # Values: 'string' 487 | # Flag: --underline_char 488 | underline_char="-" 489 | 490 | 491 | # Info Separator 492 | # Replace the default separator with the specified string. 493 | # 494 | # Default: ':' 495 | # Flag: --separator 496 | # 497 | # Example: 498 | # separator="->": 'Shell-> bash' 499 | # separator=" =": 'WM = dwm' 500 | separator=":" 501 | 502 | 503 | # Color Blocks 504 | 505 | 506 | # Color block range 507 | # The range of colors to print. 508 | # 509 | # Default: '0', '15' 510 | # Values: 'num' 511 | # Flag: --block_range 512 | # 513 | # Example: 514 | # 515 | # Display colors 0-7 in the blocks. (8 colors) 516 | # neofetch --block_range 0 7 517 | # 518 | # Display colors 0-15 in the blocks. (16 colors) 519 | # neofetch --block_range 0 15 520 | block_range=(0 15) 521 | 522 | # Toggle color blocks 523 | # 524 | # Default: 'on' 525 | # Values: 'on', 'off' 526 | # Flag: --color_blocks 527 | color_blocks="on" 528 | 529 | # Color block width in spaces 530 | # 531 | # Default: '3' 532 | # Values: 'num' 533 | # Flag: --block_width 534 | block_width=3 535 | 536 | # Color block height in lines 537 | # 538 | # Default: '1' 539 | # Values: 'num' 540 | # Flag: --block_height 541 | block_height=1 542 | 543 | 544 | # Progress Bars 545 | 546 | 547 | # Bar characters 548 | # 549 | # Default: '-', '=' 550 | # Values: 'string', 'string' 551 | # Flag: --bar_char 552 | # 553 | # Example: 554 | # neofetch --bar_char 'elapsed' 'total' 555 | # neofetch --bar_char '-' '=' 556 | bar_char_elapsed="-" 557 | bar_char_total="=" 558 | 559 | # Toggle Bar border 560 | # 561 | # Default: 'on' 562 | # Values: 'on', 'off' 563 | # Flag: --bar_border 564 | bar_border="on" 565 | 566 | # Progress bar length in spaces 567 | # Number of chars long to make the progress bars. 568 | # 569 | # Default: '15' 570 | # Values: 'num' 571 | # Flag: --bar_length 572 | bar_length=15 573 | 574 | # Progress bar colors 575 | # When set to distro, uses your distro's logo colors. 576 | # 577 | # Default: 'distro', 'distro' 578 | # Values: 'distro', 'num' 579 | # Flag: --bar_colors 580 | # 581 | # Example: 582 | # neofetch --bar_colors 3 4 583 | # neofetch --bar_colors distro 5 584 | bar_color_elapsed="distro" 585 | bar_color_total="distro" 586 | 587 | 588 | # Info display 589 | # Display a bar with the info. 590 | # 591 | # Default: 'off' 592 | # Values: 'bar', 'infobar', 'barinfo', 'off' 593 | # Flags: --cpu_display 594 | # --memory_display 595 | # --battery_display 596 | # --disk_display 597 | # 598 | # Example: 599 | # bar: '[---=======]' 600 | # infobar: 'info [---=======]' 601 | # barinfo: '[---=======] info' 602 | # off: 'info' 603 | cpu_display="off" 604 | memory_display="off" 605 | battery_display="off" 606 | disk_display="off" 607 | 608 | 609 | # Backend Settings 610 | 611 | 612 | # Image backend. 613 | # 614 | # Default: 'ascii' 615 | # Values: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'off', 616 | # 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty' 617 | # Flag: --backend 618 | image_backend='kitty' 619 | 620 | # Image Source 621 | # 622 | # Which image or ascii file to display. 623 | # 624 | # Default: 'auto' 625 | # Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/' 626 | # 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")' 627 | # Flag: --source 628 | # 629 | # NOTE: 'auto' will pick the best image source for whatever image backend is used. 630 | # In ascii mode, distro ascii art will be used and in an image mode, your 631 | # wallpaper will be used. 632 | image_source="/home/lukas/Pictures/mlem.png" 633 | 634 | 635 | # Ascii Options 636 | 637 | 638 | # Ascii distro 639 | # Which distro's ascii art to display. 640 | # 641 | # Default: 'auto' 642 | # Values: 'auto', 'distro_name' 643 | # Flag: --ascii_distro 644 | # 645 | # NOTE: Arch and Ubuntu have 'old' logo variants. 646 | # Change this to 'arch_old' or 'ubuntu_old' to use the old logos. 647 | # NOTE: Ubuntu has flavor variants. 648 | # Change this to 'Lubuntu', 'Xubuntu', 'Ubuntu-GNOME' or 'Ubuntu-Budgie' to use the flavors. 649 | # NOTE: Arch, Crux and Gentoo have a smaller logo variant. 650 | # Change this to 'arch_small', 'crux_small' or 'gentoo_small' to use the small logos. 651 | ascii_distro="arch_small" 652 | 653 | # Ascii Colors 654 | # 655 | # Default: 'distro' 656 | # Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num' 657 | # Flag: --ascii_colors 658 | # 659 | # Example: 660 | # ascii_colors=(distro) - Ascii is colored based on Distro colors. 661 | # ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors. 662 | ascii_colors=(9) 663 | 664 | # Bold ascii logo 665 | # Whether or not to bold the ascii logo. 666 | # 667 | # Default: 'on' 668 | # Values: 'on', 'off' 669 | # Flag: --ascii_bold 670 | ascii_bold="on" 671 | 672 | 673 | # Image Options 674 | 675 | 676 | # Image loop 677 | # Setting this to on will make neofetch redraw the image constantly until 678 | # Ctrl+C is pressed. This fixes display issues in some terminal emulators. 679 | # 680 | # Default: 'off' 681 | # Values: 'on', 'off' 682 | # Flag: --loop 683 | image_loop="off" 684 | 685 | # Thumbnail directory 686 | # 687 | # Default: '~/.cache/thumbnails/neofetch' 688 | # Values: 'dir' 689 | thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch" 690 | 691 | # Crop mode 692 | # 693 | # Default: 'normal' 694 | # Values: 'normal', 'fit', 'fill' 695 | # Flag: --crop_mode 696 | # 697 | # See this wiki page to learn about the fit and fill options. 698 | # https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F 699 | crop_mode="normal" 700 | 701 | # Crop offset 702 | # Note: Only affects 'normal' crop mode. 703 | # 704 | # Default: 'center' 705 | # Values: 'northwest', 'north', 'northeast', 'west', 'center' 706 | # 'east', 'southwest', 'south', 'southeast' 707 | # Flag: --crop_offset 708 | crop_offset="center" 709 | 710 | # Image size 711 | # The image is half the terminal width by default. 712 | # 713 | # Default: 'auto' 714 | # Values: 'auto', '00px', '00%', 'none' 715 | # Flags: --image_size 716 | # --size 717 | image_size="auto" 718 | 719 | # Gap between image and text 720 | # 721 | # Default: '3' 722 | # Values: 'num', '-num' 723 | # Flag: --gap 724 | gap=3 725 | 726 | # Image offsets 727 | # Only works with the w3m backend. 728 | # 729 | # Default: '0' 730 | # Values: 'px' 731 | # Flags: --xoffset 732 | # --yoffset 733 | yoffset=0 734 | xoffset=0 735 | 736 | # Image background color 737 | # Only works with the w3m backend. 738 | # 739 | # Default: '' 740 | # Values: 'color', 'blue' 741 | # Flag: --bg_color 742 | background_color= 743 | 744 | 745 | # Misc Options 746 | 747 | # Stdout mode 748 | # Turn off all colors and disables image backend (ASCII/Image). 749 | # Useful for piping into another command. 750 | # Default: 'off' 751 | # Values: 'on', 'off' 752 | stdout="off" 753 | -------------------------------------------------------------------------------- /.config/nvim/init.vim: -------------------------------------------------------------------------------- 1 | " TODO: 2 | " - centralize color config for all plugins 3 | " - vim-rooter not working when opening files from dashboard 4 | " - decide if cterm colors will be kept 5 | " - clean up configs some more (comments, formatting) 6 | 7 | let &packpath = &runtimepath 8 | 9 | " SOURCE CONFIGS 10 | 11 | " vim script files 12 | source ~/.config/nvim/plugins.vim 13 | source ~/.config/nvim/vimscript/bindings.vim 14 | source ~/.config/nvim/vimscript/lsp.vim 15 | source ~/.config/nvim/vimscript/floatterm.vim 16 | source ~/.config/nvim/vimscript/zen.vim 17 | source ~/.config/nvim/vimscript/other.vim 18 | 19 | " lua files 20 | luafile ~/.config/nvim/luafiles/colors.lua 21 | luafile ~/.config/nvim/luafiles/compe.lua 22 | luafile ~/.config/nvim/luafiles/dashboard.lua 23 | luafile ~/.config/nvim/luafiles/completion.lua 24 | luafile ~/.config/nvim/luafiles/nvimtree.lua 25 | luafile ~/.config/nvim/luafiles/galaxy.lua 26 | luafile ~/.config/nvim/luafiles/neogit.lua 27 | luafile ~/.config/nvim/luafiles/telescope.lua 28 | luafile ~/.config/nvim/luafiles/bufferline.lua 29 | luafile ~/.config/nvim/luafiles/gitsign.lua 30 | 31 | " add debugging 32 | packadd termdebug 33 | 34 | " general settings 35 | syntax enable 36 | set mouse=a 37 | set hidden 38 | set splitbelow 39 | set splitright 40 | set number relativenumber 41 | set encoding=utf-8 42 | set backspace=indent,eol,start 43 | set cursorline 44 | set complete+=kspell 45 | set termguicolors 46 | set nospell 47 | set clipboard+=unnamedplus 48 | " versplit char 49 | set fillchars+=vert:\▏ 50 | set expandtab 51 | set shiftwidth=4 52 | set softtabstop=4 53 | set smartindent 54 | set autoindent 55 | set updatetime=300 56 | set conceallevel=0 57 | set shortmess+=c 58 | set tags=./tags,tags;$HOME 59 | set timeout 60 | 61 | " change this for which-key delay 62 | " also change g:which_key_timeout 63 | " in vimscript/bindings.vim 64 | set timeoutlen=250 65 | 66 | " AUTOCOMMANDS 67 | " make dahsboard look clean (toggle off tab- and statusbar as well as EOB 68 | " tilde '~' 69 | autocmd FileType dashboard set showtabline=0 | autocmd WinLeave set showtabline=2 70 | autocmd FileType dashboard set fillchars+=eob:\ | autocmd WinLeave set fillchars+=vert:\▏,eob:\~ 71 | autocmd FileType dashboard set laststatus=0 ruler | autocmd WinLeave set laststatus=2 ruler 72 | 73 | " other autocommands 74 | autocmd BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,*.md set ft=markdown 75 | autocmd BufNewFile,BufRead *.ino set ft=c 76 | autocmd FileType c,cpp,html,css,ino setlocal expandtab shiftwidth=2 softtabstop=2 cindent nofoldenable 77 | autocmd FileType tex setlocal tw=100 78 | autocmd FileType python setlocal expandtab shiftwidth=4 softtabstop=4 autoindent 79 | autocmd VimLeave *.tex !bash $HOME/scripts/bash/texclear.sh % 80 | autocmd VimLeave *.md :!pkill grip & 81 | -------------------------------------------------------------------------------- /.config/nvim/luafiles/bufferline.lua: -------------------------------------------------------------------------------- 1 | local colors = { 2 | bg= '#1d1f21', 3 | red= '#fb3d66', 4 | green= '#6d8c63', 5 | yellow= '#e4cd7', 6 | orange= '#bf946b', 7 | blue= '#8b9eb2', 8 | violet= '#cdafd9', 9 | magenta= '#796e7f', 10 | darkblue= '#55648', 11 | cyan= '#7b8e93', 12 | bg_light= "#323b3e", 13 | bg_alt= "#202325", 14 | bg_red = '#182332', 15 | fg= '#f7f8f8', 16 | clear= 'None', 17 | } 18 | 19 | 20 | -- colors for active , inactive uffer tabs 21 | require "bufferline".setup { 22 | options = { 23 | buffer_close_icon = "", 24 | modified_icon = "●", 25 | close_icon = "", 26 | left_trunc_marker = "", 27 | right_trunc_marker = "", 28 | max_name_length = 14, 29 | max_prefix_length = 13, 30 | tab_size = 18, 31 | enforce_regular_tabs = false, 32 | view = "multiwindow", 33 | show_buffer_close_icons = true, 34 | separator_style = "slant" 35 | }, 36 | highlights = { 37 | background = { 38 | guifg = comment_fg, 39 | guibg = colors.bg_alt 40 | }, 41 | fill = { 42 | guifg = comment_fg, 43 | guibg = colors.bg 44 | }, 45 | tab = { 46 | guifg = colors.bg, 47 | guibg = 'None' 48 | }, 49 | tab_selected = { 50 | guifg = colors.bg, 51 | guibg = 'None' 52 | }, 53 | 54 | buffer_selected = { 55 | guifg = normal_fg, 56 | guibg = colors.bg_light, 57 | gui = "bold" 58 | }, 59 | buffer_visible = { 60 | guifg = colors.color6, 61 | guibg = colors.bg_alt 62 | }, 63 | separator_visible = { 64 | guifg = colors.bg, 65 | guibg = colors.bg_alt 66 | }, 67 | separator_selected = { 68 | guifg = colors.bg, 69 | guibg = colors.bg_light 70 | }, 71 | separator = { 72 | guifg = colors.bg, 73 | guibg = colors.bg 74 | }, 75 | indicator_selected = { 76 | guifg = colors.bg, 77 | guibg = colors.bg 78 | }, 79 | modified_selected = { 80 | guifg = string_fg, 81 | guibg = colors.bg_light 82 | } 83 | } 84 | } 85 | 86 | local opt = {silent = true} 87 | 88 | --command that adds new buffer and moves to it 89 | vim.api.nvim_command "com -nargs=? -complete=file_in_path New badd | blast" 90 | vim.api.nvim_set_keymap("n", "", ":New ", opt) 91 | 92 | --removing a buffer 93 | vim.api.nvim_set_keymap("n", "", [[bdelete]], opt) 94 | 95 | -- tabnew and tabprev 96 | vim.api.nvim_set_keymap("n", "", [[BufferLineCycleNext]], opt) 97 | vim.api.nvim_set_keymap("n", "", [[BufferLineCyclePrev]], opt) 98 | -------------------------------------------------------------------------------- /.config/nvim/luafiles/colors.lua: -------------------------------------------------------------------------------- 1 | vim.cmd('set termguicolors') 2 | vim.cmd('set background=dark') 3 | vim.cmd('colorscheme tokyonight') 4 | 5 | -- colors 6 | local colors = { 7 | color0= '#1d1f22', 8 | color8= '#323b3e', 9 | color1= '#f8818e', 10 | color9= '#fb3d66', 11 | color2= '#7b9679', 12 | color10= '#6d8c63', 13 | color3= '#bf946b', 14 | color11= '#e4cd7b', 15 | color4= '#8b9eb2', 16 | color12= '#b0ecee', 17 | color5= '#796e7f', 18 | color13= '#cdafd9', 19 | color6= '#7b8e93', 20 | color14= '#556468', 21 | color7= '#b3bec1', 22 | color15= '#f7f8f8', 23 | } 24 | 25 | --[[ 26 | local colors = { 27 | bg= '#141022', 28 | red= '#FF5555', 29 | green= '#50FA7B', 30 | yellow= '#F1FA8C', 31 | orange= '#F4F99D', 32 | blue= '#BD93F9', 33 | violet= '#CAA9FA', 34 | magenta= '#FF79C6', 35 | darkblue= '#7957B9', 36 | cyan= '#8BE9FD', 37 | fg= '#E6E6E6', 38 | } 39 | ]]-- 40 | 41 | -- general 42 | vim.cmd('au ColorScheme * hi Normal ctermbg=None gui=None guibg=None') 43 | vim.cmd('au ColorScheme * hi SignColumn ctermbg=None gui=None guibg=None') 44 | vim.cmd('au ColorScheme * hi NonText ctermbg=None guibg=None') 45 | vim.cmd('au ColorScheme * hi VertSplit cterm=None guibg=None guifg='.. colors.color8) 46 | vim.cmd('au ColorScheme * hi CursorLineNr cterm=None guibg=None ctermfg=5 guifg='.. colors.color9) 47 | vim.cmd('au ColorScheme * hi CursorLine ctermbg=0 ctermfg=None guifg=None guibg=' .. colors.color0) 48 | vim.cmd('au ColorScheme * hi EndOfBuffer ctermfg=magenta guibg=None guifg='.. colors.color8) 49 | vim.cmd('au ColorScheme * hi StatusLine guifg=None guibg=None') 50 | vim.cmd('au ColorScheme * hi StatusLineNC gui=underline guibg=NONE guifg='.. colors.color8) 51 | 52 | --git signs 53 | vim.cmd('au ColorScheme * hi GitSignsAdd guibg=None guifg='.. colors.color2) 54 | vim.cmd('au ColorScheme * hi GitSignsChange guibg=None guifg='.. colors.color3) 55 | vim.cmd('au ColorScheme * hi GitSignsDelete guibg=None guifg='.. colors.color1) 56 | 57 | -- lsp virt text hl 58 | vim.cmd('au ColorScheme * hi! LspDiagnosticsDefaultError ctermfg=1 guifg='.. colors.color1) 59 | vim.cmd('au ColorScheme * hi! LspDiagnosticsVirtualTextWarning ctermfg=3 guifg='.. colors.color3) 60 | vim.cmd('au ColorScheme * hi! LspDiagnosticsDefaultWarning ctermfg=3 guifg='.. colors.color3) 61 | 62 | -- floaterm lh 63 | vim.cmd('au ColorScheme * hi FloatermBorder ctermfg=magenta ctermbg=None guibg=None guifg='.. colors.color9) 64 | vim.cmd('au ColorScheme * hi Floaterm ctermbg=None guibg=None') 65 | 66 | -- debug 67 | vim.cmd('au ColorScheme * hi debugBreakpoint ctermbg=None ctermfg=red guibg=None guifg='.. colors.color1) 68 | vim.cmd('au ColorScheme * hi debugPC ctermfg=black ctermbg=5 guifg='.. colors.color0 .. ' guibg='.. colors.color5) 69 | 70 | -- dashboard 71 | vim.cmd('au ColorScheme * hi DashboardHeader cterm=None guibg=None ctermfg=5 guifg='.. colors.color9) 72 | vim.cmd('au ColorScheme * hi DashboardCenter cterm=None guibg=None ctermfg=3 guifg='.. colors.color3) 73 | vim.cmd('au ColorScheme * hi DashboardShortcut cterm=None guibg=None ctermfg=3 guifg='.. colors.color3) 74 | vim.cmd('au ColorScheme * hi DashboardFooter cterm=None guibg=None ctermfg=2 guifg=' .. colors.color2) 75 | 76 | -- nvim tree 77 | vim.cmd('au ColorScheme * hi NvimTreeFolderIcon ctermbg=None guibg=None ctermfg=4 guifg='.. colors.color1) 78 | vim.cmd('au ColorScheme * hi NvimTreeIndentMarker ctermbg=None guibg=None ctermfg=4 guifg='.. colors.color8) 79 | vim.cmd('au ColorScheme * hi NvimTreeExecFile ctermbg=None guibg=None ctermfg=2 guifg='.. colors.color3) 80 | vim.cmd('au ColorScheme * hi NvimTreePythonIcon ctermbg=None guibg=None ctermfg=3 guifg='.. colors.color3) 81 | vim.cmd('au ColorScheme * hi NvimTreeLicenseIcon ctermbg=None guibg=None ctermfg=4') 82 | vim.cmd('au ColorScheme * hi NvimTreeFolderName ctermbg=None guibg=None ctermfg=4 guifg='.. colors.color1) 83 | vim.cmd('au ColorScheme * hi NvimTreeEmptyFolderName ctermbg=None guibg=None ctermfg=4 guifg='.. colors.color6) 84 | vim.cmd('au ColorScheme * hi NvimTreeRootFolder ctermbg=None guibg=None ctermfg=4 guifg='.. colors.color9) 85 | 86 | -- neogit 87 | vim.cmd('au ColorScheme * hi NeogitDiffAdd cterm=None guibg=None ctermfg=2 guifg='.. colors.color2) 88 | vim.cmd('au ColorScheme * hi NeogitDiffDelete cterm=None guibg=None ctermfg=1 guifg='.. colors.color1) 89 | vim.cmd('au ColorScheme * hi NeogitDiffContext cterm=None guibg=None ctermfg=1 guifg='.. colors.color1) 90 | vim.cmd('au ColorScheme * hi NeogitHunkHeader cterm=None guibg=None ctermfg=1 guifg='.. colors.color1) 91 | vim.cmd('au ColorScheme * hi NeogitHunkHeaderHighlight cterm=None guibg=None ctermfg=6 guifg='.. colors.color6) 92 | -------------------------------------------------------------------------------- /.config/nvim/luafiles/compe.lua: -------------------------------------------------------------------------------- 1 | vim.o.completeopt = "menuone,noselect" 2 | 3 | require'compe'.setup { 4 | enabled = true, 5 | autocomplete = true, 6 | debug = false, 7 | min_length = 1, 8 | preselect = 'enable', 9 | throttle_time = 80, 10 | source_timeout = 200, 11 | incomplete_delay = 400, 12 | max_abbr_width = 100, 13 | max_kind_width = 100, 14 | max_menu_width = 100, 15 | documentation = true, 16 | 17 | source = { 18 | path = {kind = "  "}, 19 | buffer = {kind = " ﬘ "}, 20 | calc = {kind = "  "}, 21 | vsnip = {kind = "  "}, 22 | nvim_lsp = {kind = "  "}, 23 | -- nvim_lua = {kind = "  "}, 24 | nvim_lua = false, 25 | spell = {kind = " 暈 "}, 26 | tags = false, 27 | vim_dadbod_completion = true, 28 | vsnip = true, 29 | -- snippets_nvim = {kind = "  "}, 30 | -- ultisnips = {kind = "  "}, 31 | treesitter = {kind = "  "}, 32 | } 33 | } 34 | local t = function(str) 35 | return vim.api.nvim_replace_termcodes(str, true, true, true) 36 | end 37 | 38 | local check_back_space = function() 39 | local col = vim.fn.col('.') - 1 40 | if col == 0 or vim.fn.getline('.'):sub(col, col):match('%s') then 41 | return true 42 | else 43 | return false 44 | end 45 | end 46 | 47 | -- Use (s-)tab to: 48 | --- move to prev/next item in completion menuone 49 | --- jump to prev/next snippet's placeholder 50 | _G.tab_complete = function() 51 | if vim.fn.pumvisible() == 1 then 52 | return t "" 53 | elseif vim.fn.call("vsnip#available", {1}) == 1 then 54 | return t "(vsnip-expand-or-jump)" 55 | elseif check_back_space() then 56 | return t "" 57 | else 58 | return vim.fn['compe#complete']() 59 | end 60 | end 61 | _G.s_tab_complete = function() 62 | if vim.fn.pumvisible() == 1 then 63 | return t "" 64 | elseif vim.fn.call("vsnip#jumpable", {-1}) == 1 then 65 | return t "(vsnip-jump-prev)" 66 | else 67 | return t "" 68 | end 69 | end 70 | 71 | vim.api.nvim_set_keymap("i", "", "v:lua.tab_complete()", {expr = true}) 72 | vim.api.nvim_set_keymap("s", "", "v:lua.tab_complete()", {expr = true}) 73 | vim.api.nvim_set_keymap("i", "", "v:lua.s_tab_complete()", {expr = true}) 74 | vim.api.nvim_set_keymap("s", "", "v:lua.s_tab_complete()", {expr = true}) 75 | -------------------------------------------------------------------------------- /.config/nvim/luafiles/completion.lua: -------------------------------------------------------------------------------- 1 | local capabilities = vim.lsp.protocol.make_client_capabilities() 2 | local util = require 'lspconfig/util' 3 | local lsp = require 'lspconfig' 4 | capabilities.textDocument.completion.completionItem.snippetSupport = true 5 | 6 | lsp.ccls.setup{ 7 | capabilities = capabilities, 8 | init_options = { client = {snippetSupport = true}, completion = {placeholder = true} }, 9 | filetypes = { "c", "cpp", "objc", "objcpp" }, 10 | root_dir = util.root_pattern("compile_commands.json", "compile_flags.txt", "platformio.ini"), 11 | } 12 | 13 | lsp.clangd.setup { 14 | capabilities = capabilities, 15 | filetypes = { "c", "cpp", "objc", "objcpp" }, 16 | } 17 | 18 | lsp.pyls.setup { 19 | capabilities = capabilities, 20 | } 21 | 22 | lsp.texlab.setup{ 23 | capabilities = capabilities, 24 | lint = { 25 | onChange = true 26 | } 27 | } 28 | 29 | 30 | require'nvim-treesitter.configs'.setup { 31 | ensure_installed = {"c", "bash", "cpp", "css", "html", "python", "regex", "lua"}, 32 | highlight = { 33 | enable = true 34 | }, 35 | } 36 | -------------------------------------------------------------------------------- /.config/nvim/luafiles/dashboard.lua: -------------------------------------------------------------------------------- 1 | -- custom header 2 | vim.g.dashboard_custom_header = vim.g.asc_head 3 | -- search plugin 4 | vim.g.dashboard_default_executive = 'fzf.vim' 5 | vim.g.dashboard_session_directory = '~/.local/share/nvim/session' 6 | -- dashboard sections 7 | vim.g.dashboard_custom_section = { 8 | a = {description = {' new file '}, command = 'DashboardNewFile'}, 9 | b = {description = {' find file '}, command = 'Telescope find_files'}, 10 | c = {description = {' recently used files'}, command = 'Telescope oldfiles'}, 11 | d = {description = {' load last session '}, command = 'SessionLoad'}, 12 | e = {description = {' find word '}, command = 'Telescope live_grep'}, 13 | f = {description = {' settings '}, command = ':e ~/.config/nvim/init.vim'}, 14 | g = {description = {' quit '}, command = 'qa!'}, 15 | } 16 | -- footer 17 | vim.g.dashboard_custom_footer = {'made with  by channel-42'} 18 | -------------------------------------------------------------------------------- /.config/nvim/luafiles/galaxy.lua: -------------------------------------------------------------------------------- 1 | -- imports 2 | local gl = require('galaxyline') 3 | local condition = require('galaxyline.condition') 4 | local gls = gl.section 5 | 6 | -- short bar types 7 | --gl.short_line_list = {'NvimTree','vista','dbui','packer'} 8 | gl.short_line_list = {" "} 9 | 10 | -- custom colors 11 | local colors = { 12 | bg= '#1d1f21', 13 | red= '#fb3d66', 14 | green= '#6d8c63', 15 | yellow= '#e4cd7', 16 | orange= '#bf946b', 17 | blue= '#8b9eb2', 18 | violet= '#cdafd9', 19 | magenta= '#796e7f', 20 | darkblue= '#55648', 21 | cyan= '#7b8e93', 22 | bg_light= "#4a4b4d", 23 | bg_blue = '#182332', 24 | fg= '#f7f8f8', 25 | clear= 'None', 26 | } 27 | 28 | -- left bar 29 | gls.left[1] = { 30 | RoundLeftLight= { 31 | provider = function() return "" end, 32 | highlight = {colors.bg_light,colors.bg} 33 | }, 34 | } 35 | gls.left[2] = { 36 | ViMode = { 37 | provider = function() 38 | -- auto change color according the vim mode 39 | local mode_color = {n = colors.red, i = colors.green,v=colors.blue, 40 | [''] = colors.blue,V=colors.blue, 41 | c = colors.magenta,no = colors.red,s = colors.orange, 42 | S=colors.orange,[''] = colors.orange, 43 | ic = colors.yellow,R = colors.violet,Rv = colors.violet, 44 | cv = colors.red,ce=colors.red, r = colors.cyan, 45 | rm = colors.cyan, ['r?'] = colors.cyan, 46 | ['!'] = colors.red,t = colors.red 47 | } 48 | vim.api.nvim_command('hi GalaxyViMode guifg='..mode_color[vim.fn.mode()]) 49 | return '  ' 50 | end, 51 | highlight = {colors.red,colors.bg_light,'bold'}, 52 | }, 53 | } 54 | 55 | gls.left[3] = { 56 | PaddingBlue = { 57 | provider = function() return " " end, 58 | highlight = {colors.bg_blue,colors.bg_blue} 59 | }, 60 | } 61 | 62 | gls.left[4] = { 63 | FileSize = { 64 | provider = 'FileSize', 65 | condition = condition.buffer_not_empty, 66 | highlight = {colors.fg,colors.bg_blue} 67 | } 68 | } 69 | 70 | 71 | gls.left[5] ={ 72 | FileIcon = { 73 | provider = 'FileIcon', 74 | condition = condition.buffer_not_empty, 75 | highlight = {require('galaxyline.provider_fileinfo').get_file_icon_color,colors.bg_blue}, 76 | }, 77 | } 78 | 79 | gls.left[6] = { 80 | FileName = { 81 | provider = 'FileName', 82 | condition = condition.buffer_not_empty, 83 | highlight = {colors.red,colors.bg_blue,'bold'} 84 | } 85 | } 86 | 87 | 88 | gls.left[7] = { 89 | PerCent = { 90 | provider = 'LinePercent', 91 | highlight = {colors.fg,colors.bg_blue,'bold'}, 92 | } 93 | } 94 | 95 | -- LSP stuff 96 | 97 | gls.left[8] = { 98 | DiagnosticError = { 99 | provider = 'DiagnosticError', 100 | icon = '  ', 101 | highlight = {colors.red,colors.bg_blue} 102 | } 103 | } 104 | gls.left[9] = { 105 | DiagnosticWarn = { 106 | provider = 'DiagnosticWarn', 107 | icon = '  ', 108 | highlight = {colors.orange,colors.bg_blue}, 109 | } 110 | } 111 | 112 | gls.left[10] = { 113 | DiagnosticHint = { 114 | provider = 'DiagnosticHint', 115 | icon = '  ', 116 | highlight = {colors.cyan,colors.bg_blue}, 117 | } 118 | } 119 | 120 | gls.left[11] = { 121 | DiagnosticInfo = { 122 | provider = 'DiagnosticInfo', 123 | icon = '  ', 124 | highlight = {colors.blue,colors.bg_blue}, 125 | } 126 | } 127 | gls.left[12] = { 128 | RoundRightBlue = { 129 | provider = function() return "" end, 130 | highlight = {colors.bg_blue,colors.bg} 131 | }, 132 | } 133 | 134 | -- right bar 135 | 136 | gls.right[1] = { 137 | RoundLeftBlue = { 138 | provider = function() return "" end, 139 | highlight = {colors.bg_blue,colors.bg} 140 | }, 141 | } 142 | 143 | gls.right[2] = { 144 | FileEncode = { 145 | provider = 'FileEncode', 146 | condition = condition.hide_in_width, 147 | highlight = {colors.red,colors.bg_blue,'bold'} 148 | } 149 | } 150 | gls.right[4] = { 151 | PaddingBlue = {provider = function() return " " end} 152 | } 153 | 154 | gls.right[5] = { 155 | FileFormat = { 156 | provider = 'FileFormat', 157 | condition = condition.hide_in_width, 158 | separator = ' ', 159 | separator_highlight = {'NONE',colors.bg_light}, 160 | highlight = {colors.red,colors.bg_light,'bold'} 161 | } 162 | } 163 | 164 | -- git stuff 165 | 166 | gls.right[6] = { 167 | GitIcon = { 168 | provider = function() return '  ' end, 169 | condition = condition.check_git_workspace, 170 | separator = ' ', 171 | separator_highlight = {'NONE',colors.bg_light}, 172 | highlight = {colors.violet,colors.bg_light,'bold'}, 173 | } 174 | } 175 | 176 | gls.right[7] = { 177 | GitBranch = { 178 | provider = 'GitBranch', 179 | condition = condition.check_git_workspace, 180 | highlight = {colors.violet,colors.bg_light,'bold'}, 181 | } 182 | } 183 | 184 | gls.right[8] = { 185 | DiffAdd = { 186 | provider = 'DiffAdd', 187 | condition = condition.hide_in_width, 188 | icon = '  ', 189 | highlight = {colors.green,colors.bg_light}, 190 | } 191 | } 192 | gls.right[9] = { 193 | DiffModified = { 194 | provider = 'DiffModified', 195 | condition = condition.hide_in_width, 196 | icon = ' 柳', 197 | highlight = {colors.orange,colors.bg_light}, 198 | } 199 | } 200 | 201 | gls.right[10] = { 202 | DiffRemove = { 203 | provider = 'DiffRemove', 204 | condition = condition.hide_in_width, 205 | icon = '  ', 206 | highlight = {colors.red,colors.bg_light}, 207 | } 208 | } 209 | 210 | -- spell checking display 211 | gls.right[11] = { 212 | PaddingLight= { 213 | provider = function() 214 | local spell = vim.wo.spell 215 | if spell then 216 | return " " 217 | else 218 | return "" 219 | end 220 | end, 221 | condition = condition.hide_in_width, 222 | highlight = {colors.bg_light,colors.bg_light} 223 | }, 224 | } 225 | 226 | gls.right[12] = { 227 | Spellcheck = { 228 | provider = function() 229 | local spell = vim.wo.spell 230 | local lang = vim.o.spelllang 231 | if spell then 232 | return "暈".. lang 233 | else 234 | return "" 235 | end 236 | end, 237 | condition = condition.hide_in_width, 238 | highlight = {colors.cyan,colors.bg_light}, 239 | } 240 | } 241 | 242 | gls.right[13] = { 243 | RoundRightLight = { 244 | provider = function() return "" end, 245 | highlight = {colors.bg_light,colors.bg} 246 | }, 247 | } 248 | 249 | --[[ bar short left 250 | 251 | gls.short_line_left[1] = { 252 | RoundLeftLight = {provider = function() return ' ' end}, 253 | } 254 | 255 | gls.short_line_left[2] = { 256 | FileIconGrey = { 257 | provider = 'FileIcon', 258 | condition = condition.buffer_not_empty, 259 | highlight = {require('galaxyline.provider_fileinfo').get_file_icon_color,colors.bg_light}, 260 | }, 261 | } 262 | 263 | gls.short_line_left[3] = { 264 | SFileName = { 265 | provider = 'SFileName', 266 | condition = condition.buffer_not_empty, 267 | highlight = {colors.fg,colors.bg_light,'bold'} 268 | } 269 | } 270 | 271 | gls.short_line_left[4] = { 272 | RoundRightLight = {provider = function() return "" end}, 273 | } 274 | --]] 275 | -------------------------------------------------------------------------------- /.config/nvim/luafiles/gitsign.lua: -------------------------------------------------------------------------------- 1 | require('gitsigns').setup { 2 | signs = { 3 | add = {hl = 'GitSignsAdd' , text = '│', numhl='GitSignsAdd' , linehl='GitSignsAddLn'}, 4 | change = {hl = 'GitSignsChange', text = '│', numhl='GitSignsChange', linehl='GitSignsChangeLn'}, 5 | delete = {hl = 'GitSignsDelete', text = '_', numhl='GitSignsDelete', linehl='GitSignsDeleteLn'}, 6 | topdelete = {hl = 'GitSignsDelete', text = '‾', numhl='GitSignsDelete', linehl='GitSignsDeleteLn'}, 7 | changedelete = {hl = 'GitSignsChange', text = '~', numhl='GitSignsChange', linehl='GitSignsChangeLn'}, 8 | }, 9 | numhl = true, 10 | linehl = false, 11 | watch_index = { 12 | interval = 1000 13 | }, 14 | current_line_blame = flase, 15 | sign_priority = 6, 16 | update_debounce = 100, 17 | status_formatter = nil, -- Use default 18 | use_decoration_api = true, 19 | use_internal_diff = true, -- If luajit is present 20 | } 21 | -------------------------------------------------------------------------------- /.config/nvim/luafiles/neogit.lua: -------------------------------------------------------------------------------- 1 | local neogit = require("neogit") 2 | 3 | neogit.setup { 4 | disable_signs = false, 5 | disable_context_highlighting = false, 6 | -- customize displayed signs 7 | signs = { 8 | -- { CLOSED, OPENED } 9 | section = { ">", "v" }, 10 | item = { ">", "v" }, 11 | hunk = { "", "" }, 12 | }, 13 | } 14 | -------------------------------------------------------------------------------- /.config/nvim/luafiles/nvimtree.lua: -------------------------------------------------------------------------------- 1 | local tree_cb = require'nvim-tree.config'.nvim_tree_callback 2 | vim.g.nvim_tree_bindings = { 3 | -- default mappings 4 | [""] = tree_cb("edit"), 5 | ["o"] = tree_cb("edit"), 6 | ["<2-LeftMouse>"] = tree_cb("edit"), 7 | ["<2-RightMouse>"] = tree_cb("cd"), 8 | [""] = tree_cb("cd"), 9 | ["s"] = tree_cb("vsplit"), 10 | ["i"] = tree_cb("split"), 11 | ["t"] = tree_cb("tabnew"), 12 | [""] = tree_cb("close_node"), 13 | [""] = tree_cb("close_node"), 14 | [""] = tree_cb("preview"), 15 | ["I"] = tree_cb("toggle_ignored"), 16 | ["H"] = tree_cb("toggle_dotfiles"), 17 | ["R"] = tree_cb("refresh"), 18 | ["a"] = tree_cb("create"), 19 | ["d"] = tree_cb("remove"), 20 | ["r"] = tree_cb("rename"), 21 | [""] = tree_cb("full_rename"), 22 | ["x"] = tree_cb("cut"), 23 | ["c"] = tree_cb("copy"), 24 | ["p"] = tree_cb("paste"), 25 | ["[c"] = tree_cb("prev_git_item"), 26 | ["]c"] = tree_cb("next_git_item"), 27 | ["-"] = tree_cb("dir_up"), 28 | ["q"] = tree_cb("close"), 29 | } 30 | -------------------------------------------------------------------------------- /.config/nvim/luafiles/telescope.lua: -------------------------------------------------------------------------------- 1 | local actions = require('telescope.actions') 2 | require('telescope').setup{ 3 | defaults = { 4 | vimgrep_arguments = { 5 | 'rg', 6 | '--color=never', 7 | '--no-heading', 8 | '--with-filename', 9 | '--line-number', 10 | '--column', 11 | '--smart-case' 12 | }, 13 | prompt_position = "bottom", prompt_prefix = "> ", selection_caret = "> ", 14 | entry_prefix = " ", 15 | initial_mode = "insert", 16 | selection_strategy = "reset", 17 | sorting_strategy = "descending", 18 | layout_strategy = "horizontal", 19 | layout_defaults = { 20 | horizontal = { 21 | mirror = false, 22 | }, 23 | vertical = { 24 | mirror = false, 25 | }, 26 | }, 27 | file_sorter = require'telescope.sorters'.get_fuzzy_file, 28 | file_ignore_patterns = {}, 29 | generic_sorter = require'telescope.sorters'.get_generic_fuzzy_sorter, 30 | shorten_path = true, 31 | winblend = 0, 32 | width = 1, 33 | preview_cutoff = 120, 34 | results_height = 1, 35 | results_width = 0.6, 36 | border = {}, 37 | borderchars = { '─', '│', '─', '│', '╭', '╮', '╯', '╰' }, 38 | color_devicons = true, 39 | use_less = true, 40 | set_env = { ['COLORTERM'] = 'truecolor' }, -- default = nil, 41 | file_previewer = require'telescope.previewers'.vim_buffer_cat.new, 42 | grep_previewer = require'telescope.previewers'.vim_buffer_vimgrep.new, 43 | qflist_previewer = require'telescope.previewers'.vim_buffer_qflist.new, 44 | 45 | -- Developer configurations: Not meant for general override 46 | buffer_previewer_maker = require'telescope.previewers'.buffer_previewer_maker, 47 | mappings = { 48 | i = { 49 | [""] = actions.move_selection_next, 50 | [""] = actions.move_selection_previous, 51 | [""] = actions.smart_send_to_qflist + actions.open_qflist, 52 | [""] = actions.close, 53 | [""] = actions.select_default + actions.center 54 | }, 55 | n = { 56 | [""] = actions.move_selection_next, 57 | [""] = actions.move_selection_previous, 58 | [""] = actions.smart_send_to_qflist + actions.open_qflist, 59 | } 60 | } 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /.config/nvim/plugins.vim: -------------------------------------------------------------------------------- 1 | call plug#begin(stdpath('data') . '/plugged') 2 | 3 | " coding helpers ---------- 4 | "Plug 'Yggdroot/indentLine' 5 | Plug 'lukas-reineke/indent-blankline.nvim', {'branch': 'lua'} 6 | Plug 'Raimondi/delimitMate' 7 | Plug 'ap/vim-css-color' 8 | Plug 'lewis6991/gitsigns.nvim' 9 | 10 | " completion -------------- 11 | Plug 'neovim/nvim-lspconfig' 12 | Plug 'hrsh7th/nvim-compe' 13 | Plug 'rafamadriz/friendly-snippets' 14 | Plug 'hrsh7th/vim-vsnip' 15 | Plug 'hrsh7th/vim-vsnip-integ' 16 | Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} 17 | 18 | " Tools ------------------- 19 | Plug 'ryanoasis/vim-devicons' 20 | Plug 'nvim-lua/popup.nvim' 21 | Plug 'nvim-lua/plenary.nvim' 22 | Plug 'nvim-telescope/telescope.nvim' 23 | Plug 'airblade/vim-rooter' 24 | Plug 'voldikss/vim-floaterm' 25 | Plug 'liuchengxu/vim-which-key' 26 | Plug 'TimUntersberger/neogit' 27 | Plug 'airblade/vim-rooter' 28 | 29 | " aesthetics --------------- 30 | Plug 'junegunn/limelight.vim' 31 | Plug 'junegunn/goyo.vim' 32 | Plug 'kyazdani42/nvim-web-devicons' 33 | Plug 'kyazdani42/nvim-tree.lua' 34 | Plug 'ghifarit53/tokyonight-vim' 35 | Plug 'glepnir/galaxyline.nvim' , {'branch': 'main'} 36 | Plug 'glepnir/dashboard-nvim' 37 | Plug 'akinsho/nvim-bufferline.lua' 38 | 39 | call plug#end() 40 | filetype plugin indent on "required 41 | -------------------------------------------------------------------------------- /.config/nvim/vimscript/bindings.vim: -------------------------------------------------------------------------------- 1 | command! Format execute 'lua vim.lsp.buf.formatting()' 2 | "Bindings 3 | 4 | " space is leader 5 | map 6 | map sb :Telescope file_browser 7 | 8 | " register leader key 9 | call which_key#register('', "g:which_key_map") 10 | nnoremap :silent :silent WhichKey '' 11 | vnoremap :silent :silent WhichKeyVisual '' 12 | 13 | " some defaults 14 | let g:which_key_display_names = {'': '↵', '': '⇆', " ": 'SPC'} 15 | let g:which_key_map = {} 16 | let g:which_key_sep = '→' 17 | 18 | let g:which_key_use_floating_win = 0 19 | let g:which_key_max_size = 0 20 | let g:which_key_timeout = 250 21 | 22 | " Hide status line 23 | autocmd! FileType which_key 24 | autocmd FileType which_key set laststatus=0 noshowmode noruler 25 | \| autocmd BufLeave set laststatus=2 noshowmode ruler 26 | 27 | " first layer 28 | let g:which_key_map['z'] = [ ':call ToggleCoding()' , 'zen' ] 29 | let g:which_key_map['H'] = [ ':Dashboard', 'home screen' ] 30 | let g:which_key_map['e'] = [ ':NvimTreeToggle', 'explorer' ] 31 | let g:which_key_map['?'] = [ ':NvimTreeFindFile', 'find current file' ] 32 | let g:which_key_map['r'] = [ ':FloatermNew ranger', 'ranger' ] 33 | let g:which_key_map['M'] = [ ':call MaximizeToggle()', 'maximize buffer' ] 34 | let g:which_key_map['G'] = [ 'gf', 'goto file' ] 35 | let g:which_key_map['F'] = [ 'Format', 'format code' ] 36 | let g:which_key_map[' '] = [ 'za', 'toggle fold' ] 37 | 38 | " nested bindings 39 | 40 | " g is for git 41 | let g:which_key_map.g = { 42 | \ 'name' : '+git' , 43 | \ 't' : [':FloatermNew lazygit', 'lazygit'], 44 | \ 'g' : [':Neogit', 'status'], 45 | \ 'l' : [':Neogit log', 'log'], 46 | \ 'c' : [':Neogit commit', 'commit'], 47 | \ 'r' : { 48 | \ 'name' : '+remote', 49 | \ 'p' : [':Neogit push', 'push'], 50 | \ 'P' : [':Neogit pull', 'pull'], 51 | \ }, 52 | \ 's' : { 53 | \ 'name' : '+stage', 54 | \ 'h' : [':Gitsigns stage_bunk', 'stage hunk'], 55 | \ 'a' : [':Gitsigns stage_buffer', 'stage buffer'], 56 | \ 'u' : [':Gitsigns undo_stage_bunk', 'unstage hunk'], 57 | \ }, 58 | \ 'b' : [':Gitsigns blame_line', 'blame'], 59 | \ 'p' : [':Gitsigns preview_hunk', 'preview hunk'], 60 | \ 'i' : [':Gitsigns toggle_current_line_blame', 'toggle blame'], 61 | \ 'd' : [':Gitsigns toggle_signs', 'toggle signs'], 62 | \ } 63 | 64 | " S is for Session 65 | let g:which_key_map.S = { 66 | \ 'name' : '+Session' , 67 | \ 's' : [':SessionSave', 'save session'], 68 | \ 'l' : [':SessionLoad', 'load Session'], 69 | \ } 70 | 71 | " s is for search 72 | let g:which_key_map.s = { 73 | \ 'name': '+search', 74 | \ 'f': [':Telescope find_files', 'files'], 75 | \ 'l': [':Telescope live_grep', 'lines'], 76 | \ 'h': [':Telescope oldfiles', 'history'], 77 | \ 'b': [':Telescope file_browser', 'buffers'], 78 | \ } 79 | 80 | " t is for terminal 81 | let g:which_key_map.t = { 82 | \ 'name' : '+terminal' , 83 | \ 't' : [':FloatermNew --wintype=normal --height=10', 'split'], 84 | \ 'f' : [':FloatermNew', 'floating'], 85 | \ 'g' : [':FloatermNew lazygit', 'lazygit'], 86 | \ } 87 | 88 | " b is for buffer 89 | let g:which_key_map.b = { 90 | \ 'name' : '+buffer' , 91 | \ 'd' : [':BufferClose', 'delete-buffer'], 92 | \ 'n' : ['bnext', 'next-buffer'], 93 | \ 'p' : ['bprevious', 'previous-buffer'], 94 | \ 'm' : [ ':call MaximizeToggle()', 'maximize' ], 95 | \ '?' : ['Buffers', 'fzf-buffer'], 96 | \ } 97 | " l is for lsp 98 | let g:which_key_map.l = { 99 | \ 'name' : '+lsp' , 100 | \ 'i' : [ 'LspInfo', 'show lsp info' ], 101 | \ 's' : { 102 | \ 'name' : '+stop', 103 | \ '1': [':call v:lua.StopLsp(1)', 'client 1'], 104 | \ '2': [':call v:lua.StopLsp(2)', 'client 2'], 105 | \ '3': [':call v:lua.StopLsp(3)', 'client 3'], 106 | \ '4': [':call v:lua.StopLsp(3)', 'client 4'], 107 | \ }, 108 | \ 'S' : { 109 | \ 'name' : '+start', 110 | \ '1': [':call v:lua.StartLsp(1)', 'client 1'], 111 | \ '2': [':call v:lua.StartLsp(2)', 'client 2'], 112 | \ '3': [':call v:lua.StartLsp(3)', 'client 3'], 113 | \ }, 114 | \ } 115 | 116 | " c is for compile, WIP 117 | let g:which_key_map.c = { 118 | \ 'name' : '+compile' , 119 | \ 'c' : [':w! \|:silent !$HOME/scripts/bash/compiler.sh %', 'compiler script'], 120 | \ 'm' : [':w! \|:silent !$HOME/scripts/bash/make.sh %', 'make script'], 121 | \ 'v' : [':silent !$HOME/scripts/bash/opout.sh %', 'view output'], 122 | \ } 123 | " d is for debug 124 | let g:which_key_map.d = { 125 | \ 'name' : '+debug' , 126 | \ 'b' : ['Break', 'add breakpoint'], 127 | \ } 128 | 129 | " OTHER BINDINGS (partially) NOT SHOWN IN WHICH_KEY 130 | " autosave/compile 131 | nnoremap :w! \|:silent !$HOME/scripts/bash/compiler.sh % 132 | nnoremap :w! \|:silent !$HOME/scripts/bash/make.sh % 133 | 134 | " completion navigation 135 | inoremap compe#complete() 136 | inoremap compe#confirm({ 'keys': "\delimitMateCR", 'mode': '' }) 137 | inoremap compe#close('') 138 | inoremap compe#scroll({ 'delta': +4 }) 139 | inoremap compe#scroll({ 'delta': -4 }) 140 | 141 | "show lsp hover info 142 | nnoremap K lua vim.lsp.buf.hover() 143 | 144 | "spellcheck suggestions 145 | inoremap 146 | 147 | "Better tabbing 148 | vnoremap < >gv 150 | 151 | "Better window navigation 152 | nnoremap h 153 | nnoremap j 154 | nnoremap k 155 | nnoremap l 156 | nnoremap :call MaximizeToggle() 157 | 158 | " Use alt + hjkl to resize windows, r to swap buffers 159 | nnoremap :resize -5 160 | nnoremap :resize +5 161 | nnoremap :vertical resize -5 162 | nnoremap :vertical resize +5 163 | nnoremap :wincmd r 164 | 165 | " stop lsp server 166 | lua < Move to somewhere else ! 175 | function! MaximizeToggle() 176 | if exists("s:maximize_session") 177 | exec "source " . s:maximize_session 178 | call delete(s:maximize_session) 179 | unlet s:maximize_session 180 | let &hidden=s:maximize_hidden_save 181 | unlet s:maximize_hidden_save 182 | else 183 | let s:maximize_hidden_save = &hidden 184 | let s:maximize_session = tempname() 185 | set hidden 186 | exec "mksession! " . s:maximize_session 187 | only 188 | endif 189 | endfunction 190 | -------------------------------------------------------------------------------- /.config/nvim/vimscript/colors.vim: -------------------------------------------------------------------------------- 1 | "colorscheme 2 | set background=dark 3 | colorscheme tokyonight 4 | 5 | "general hl settings 6 | au ColorScheme * hi Normal ctermbg=None 7 | au ColorScheme * hi VertSplit ctermbg=None ctermfg=9 8 | au ColorScheme * hi SignColumn ctermbg=None 9 | au ColorScheme * hi CursorLineNr ctermbg=None ctermfg=9 10 | au ColorScheme * hi CursorLine ctermbg=0 ctermfg=None 11 | au ColorScheme * hi Directory ctermbg=None ctermfg=1 12 | au ColorScheme * hi EndOfBuffer ctermfg=9 ctermbg=None 13 | 14 | "lsp virt text hl 15 | au ColorScheme * hi! LspDiagnosticsDefaultError ctermfg=1 16 | au ColorScheme * hi! LspDiagnosticsVirtualTextWarning ctermfg=3 17 | au ColorScheme * hi! LspDiagnosticsDefaultWarning ctermfg=3 18 | 19 | " floaterm lh 20 | au ColorScheme * hi FloatermBorder ctermfg=9 ctermbg=None 21 | au ColorScheme * hi Floaterm ctermbg=None 22 | 23 | "debug 24 | au ColorScheme * hi debugBreakpoint ctermbg=None ctermfg=red 25 | au ColorScheme * hi debugPC ctermbg=None ctermfg=black ctermbg=5 26 | 27 | " dashboard 28 | au ColorScheme * hi DashboardHeader ctermbg=None ctermfg=9 29 | au ColorScheme * hi DashboardCenter ctermbg=None ctermfg=3 30 | au ColorScheme * hi DashboardShortcut ctermbg=None ctermfg=3 31 | au ColorScheme * hi DashboardFooter ctermbg=None ctermfg=4 32 | 33 | " nvim tree 34 | au ColorScheme * hi NvimTreeFolderIcon ctermbg=None ctermfg=1 35 | au ColorScheme * hi NvimTreeIndentMarker ctermbg=None ctermfg=1 36 | au ColorScheme * hi NvimTreeExecFile ctermbg=None ctermfg=2 37 | au ColorScheme * hi NvimTreePythonIcon ctermbg=None ctermfg=3 38 | au ColorScheme * hi NvimTreeLicenseIcon ctermbg=None ctermfg=4 39 | -------------------------------------------------------------------------------- /.config/nvim/vimscript/floatterm.vim: -------------------------------------------------------------------------------- 1 | " Floaterm 2 | let g:floaterm_keymap_toggle = '' 3 | let g:floaterm_keymap_next = '' 4 | let g:floaterm_keymap_prev = '' 5 | let g:floaterm_keymap_new = '' 6 | let g:floaterm_gitcommit='floaterm' 7 | let g:floaterm_autoinsert=1 8 | let g:floaterm_width=0.8 9 | let g:floaterm_height=0.8 10 | let g:floaterm_wintitle=0 11 | let g:floaterm_autoclose=1 12 | -------------------------------------------------------------------------------- /.config/nvim/vimscript/lsp.vim: -------------------------------------------------------------------------------- 1 | " custom signs (nerdfonts needed) 2 | sign define LspDiagnosticsSignError text= texthl=LspDiagnosticsSignError 3 | sign define LspDiagnosticsSignWarning text= texthl=LspDiagnosticsSignWarning 4 | sign define LspDiagnosticsSignInformation text= texthl=LspDiagnosticsSignInformation 5 | sign define LspDiagnosticsSignHint text= texthl=LspDiagnosticsSignHint 6 | 7 | " text prefix 8 | lua <goyo_enter() 36 | autocmd! User GoyoLeave nested call goyo_leave() 37 | -------------------------------------------------------------------------------- /.config/picom.conf: -------------------------------------------------------------------------------- 1 | # __ 2 | # /\ \__ 3 | # ___ ___ ___ ___ _____\ \ ,_\ ___ ___ 4 | # /'___\ / __`\ /' __` __`\/\ '__`\ \ \/ / __`\ /' _ `\ 5 | #/\ \__//\ \L\ \/\ \/\ \/\ \ \ \L\ \ \ \_/\ \L\ \/\ \/\ \ 6 | #\ \____\ \____/\ \_\ \_\ \_\ \ ,__/\ \__\ \____/\ \_\ \_\ 7 | # \/____/\/___/ \/_/\/_/\/_/\ \ \/ \/__/\/___/ \/_/\/_/ 8 | # \ \_\ 9 | # \/_/ 10 | 11 | # Basic compton config with fade transition and shadows 12 | # Full list of options at: https://github.com/chjj/compton/blob/master/man/compton.1.asciidoc 13 | backend = "glx"; 14 | # Performance tweak options, more info at https://github.com/chjj/compton/wiki 15 | paint-on-overlay = true; # Paint on X Composite overlay window instead of on root window 16 | glx-no-stencil = true; 17 | glx-no-rebind-pixmap = true; 18 | #SHADOWS 19 | shadow=true; 20 | no-dock-shadow = true; # Avoid drawing shadows on dock/panel windows 21 | no-dnd-shadow = false; # Don't draw shadows on drag-and-drop windows 22 | clear-shadow = false; 23 | shadow-radius = 15; # The blur radius for shadows (default 12) 24 | shadow-offset-x = 5; # The left offset for shadows (default -15) 25 | shadow-offset-y = 5; 26 | shadow-opacity = 0.5; 27 | #enable blur 28 | blur-background = true; 29 | blur-method = "kawase"; 30 | blur-strength = 5; 31 | detect-rounded-corners = true; 32 | #TRANSITIONS 33 | # Fading transitions 34 | fading = true; # Fade windows during opacity changes 35 | fade-delta = 4; # The time between steps in a fade in milliseconds (default 10) 36 | fade-in-step = 0.028; # Opacity change between steps while fading in (default 0.028) 37 | fade-out-step = 0.028; # Opacity change between steps while fading out (default 0.03) 38 | no-fading-openclose = true; # Fade windows in/out when opening/closing 39 | transition-length = 300 40 | transition-pow-x = 0.1 41 | transition-pow-y = 0.1 42 | transition-pow-w = 0.1 43 | transition-pow-h = 0.1 44 | size-transition = true 45 | #make tranparent 46 | opacity-rule = [ 47 | "100:class_g = 'Rofi'", 48 | ]; 49 | shadow-exclude = [ 50 | "class_g = 'Rofi'", 51 | "class_g = 'Peek'", 52 | "class_g = 'Polybar'" 53 | ]; 54 | #excluding from kawase blur 55 | blur-background-exclude = [ 56 | "class_g = 'Peek'", 57 | ]; 58 | 59 | wintypes: 60 | { 61 | tooltip = { fade = true; shadow = false; }; 62 | dock = { opacity = 1.0; shadow = false; }; 63 | }; 64 | -------------------------------------------------------------------------------- /.config/polybar/config: -------------------------------------------------------------------------------- 1 | [colors] 2 | ;background = ${xrdb:color0:#222} 3 | background = ${xrdb:background} 4 | background-alt = ${xrdb:highlight} 5 | ;foreground = ${xrdb:color7:#222} 6 | foreground = #dfdfdf 7 | foreground-alt = #555 8 | primary = #ffb52a 9 | secondary = #00538b 10 | alert = #bd2c40 11 | 12 | [bar/wm] 13 | monitor = ${env:MONITOR:eDP1} 14 | width = 100%:-20 15 | height = 35 16 | fixed-center = true 17 | override-redirect = true 18 | wm-restack = bspwm 19 | background = ${colors.background} 20 | foreground = ${colors.foreground} 21 | 22 | radius = 0 23 | 24 | line-size = 0 25 | line-color = #f00 26 | 27 | border-color = #00000000 28 | 29 | offset-x = 0%:10 30 | offset-y = 5 31 | 32 | padding-left = 5 33 | padding-right = 5 34 | 35 | module-margin-left = 2 36 | module-margin-right = 3 37 | 38 | font-0 = Noto Sans:pixelsize=14;2 39 | font-1 = unifont:fontformat=truetype:size=8:antialias=false;1 40 | font-2 = FiraCode Nerd Font:pixelsize=14;1 41 | font-3 = FontAwesome5Free:style=Solid:pixelsize=15:antialias=true;3 42 | font-4 = FontAwesome:pixelsize=10 43 | 44 | modules-left = battery separator wlan separator backlight separator xwindow 45 | modules-center= bspwm 46 | modules-right= pulseaudio separator cpu separator date 47 | 48 | cursor-click = pointer 49 | cursor-scroll = ns-resize 50 | 51 | [module/xwindow] 52 | type = internal/xwindow 53 | ; Available tags: 54 | ;