├── .Xresources ├── .Xresources.d └── urxvt-unicode ├── .config ├── cava │ └── config ├── cmus │ └── rc ├── dunst │ └── dunstrc ├── eww │ ├── eww.scss │ ├── eww.yuck │ ├── images │ │ ├── bg.png │ │ ├── fox.png │ │ ├── icons │ │ │ ├── code.svg │ │ │ ├── discord.svg │ │ │ ├── files.svg │ │ │ ├── firefox.svg │ │ │ ├── geany.svg │ │ │ ├── gimp.svg │ │ │ ├── krita.svg │ │ │ ├── neovim.svg │ │ │ ├── obsidian.svg │ │ │ ├── telegram.svg │ │ │ ├── terminal.svg │ │ │ ├── virtualbox.svg │ │ │ └── vivaldi.svg │ │ ├── music.png │ │ ├── profile.jpg │ │ └── spotify.jpg │ ├── launch_eww │ ├── launch_eww_cal │ └── scripts │ │ ├── mails │ │ ├── music_info │ │ ├── open_apps │ │ ├── open_folders │ │ ├── open_links │ │ ├── sys_info │ │ └── weather_info ├── flameshot │ └── flameshot.ini ├── gtk-3.0 │ ├── bookmarks │ └── settings.ini ├── i3 │ └── config ├── kitty │ └── kitty.conf ├── lemonbar │ └── bar ├── nvim │ └── init.vim ├── picom │ └── picom.conf ├── ranger │ ├── commands.py │ ├── rc.conf │ └── scope.sh ├── rofi │ ├── active_apps.rasi │ ├── colors.rasi │ ├── config.rasi │ ├── powermenu.rasi │ ├── powermenu.sh │ └── searcher.rasi ├── wallpaper │ ├── 1ttvv79apo851.png │ ├── 64m36y0xpf561.png │ ├── Abstract-Nord.png │ ├── BirdNord.png │ ├── BirdNordDark.png │ ├── BirdNordDarker.png │ ├── BirdNordic.png │ ├── Chemical Nord.png │ ├── Minimal-Nord.png │ ├── Nordic-Heroin.png │ ├── archlinux-darker.png │ ├── archlinux.png │ ├── covers.png │ ├── earth-in-space.png │ ├── ign-0001.png │ ├── ign-0002.png │ ├── ign_black.jpg │ ├── ign_chineseIG.png │ ├── ign_nordhills.png │ ├── ign_soupKong.png │ ├── ign_stuff.png │ ├── ign_vaporWave.png │ ├── japanese-food.png │ ├── linux-be-good-4k.png │ ├── nixos.png │ ├── nord-arctic-fox.png │ ├── nord_buildings.png │ ├── nordtheme.png │ ├── pixelmoon.png │ ├── prime-number-spiral.png │ └── sleepy_mountains_dark_v02.png └── zathura │ └── zathurarc ├── .xinitrc ├── .zshrc ├── LICENSE ├── README.md ├── fonts └── feather.ttf ├── install.sh └── screenshots ├── betterlockscreen.png ├── eww.png ├── powermenu.png ├── searcher.png ├── terminal.png ├── thunar.png └── zathura.png /.Xresources: -------------------------------------------------------------------------------- 1 | #include ".Xresources.d/urxvt-unicode" 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | Xcursor.theme: Breeze 9 | Xcursor.size: 16 10 | -------------------------------------------------------------------------------- /.Xresources.d/urxvt-unicode: -------------------------------------------------------------------------------- 1 | ! +------------------------------------------+ 2 | ! | :: M A I N C O N F I G U R A T I O N :: | 3 | ! +------------------------------------------+ 4 | 5 | ! Set as login shell 6 | URxvt*loginShell: true 7 | 8 | ! Border 9 | 10 | URxvt.internalBorder: 3 11 | 12 | ! Blur 13 | 14 | !URxvt*.transparent: true 15 | !URxvt*.shading: 30 16 | !URxvt*.blurRadius: 10 17 | 18 | !URxvt.background-expr: rootalign keep { blur 10, root } 19 | 20 | ! transparency - true or false (default) 21 | !URxvt*transparent: true 22 | 23 | ! scrollback buffer lines - 65535 is max on most machines (64 is default) 24 | URxvt*saveLines: 12000 25 | 26 | ! double-click to select whole URLs :D 27 | XTerm*charClass: 33:48,36-47:48,58-59:48,61:48,63-64:48,95:48,126:48 28 | 29 | ! scrollbar - true (default) or false 30 | URxvt*scrollBar: false 31 | 32 | ! scrollbar position - left=false (default) or right=true 33 | !URxvt*scrollBar_right: true 34 | 35 | ! scrollbar style - rxvt (default), plain, next, or xterm 36 | !URxvt*scrollstyle: rxvt 37 | 38 | 39 | ! +-------------------+ 40 | ! | :: C U R S O R :: | 41 | ! +-------------------+ 42 | 43 | URxvt.cursorBlink: 1 44 | URxvt.cursorUnderline: 1 45 | 46 | 47 | ! +-----------------+ 48 | ! | :: F O N T S :: | 49 | ! +-----------------+ 50 | 51 | URxvt*font: xft:Iosevka Medium Extended:pixelsize=14:antialias=true:hinting=true,xft:Hack Nerd Font:pixelsize=8:antialias=true:minspace=true:antialias=true:hinting=true 52 | URxvt*boldFont: xft:Iosevka Extended:style=Bold Extended:pixelsize=14:antialias=true:hinting=true 53 | URxvt*lineSpace: 0 54 | 55 | ! Xft (X FreeType) with Bitstream, DejaVu, Liberation, or Terminus fonts: 56 | ! Fedora/debian packages: libXft/libxft2 57 | ! An anti-aliased font setup with Xft looks fantastic! it can be a bit choppy 58 | ! on older systems. You can always turn off anti-aliasing (antialias=false) if 59 | ! your terminal is sluggish. Use only ONE of the Xft pairs below: 60 | ! 61 | ! Xft: Bitstream fonts 62 | ! Fedora/debian packages: bitstream-vera-sans-mono-fonts/ttf-bitstream-vera 63 | !URxvt*font: xft:Bitstream DejaVu Sans Mono Book:pixelsize=12:antialias=true:hinting=true 64 | !URxvt*boldFont: xft:Bitstream DejaVu Sans Mono Book:bold:pixelsize=12:antialias=true:hinting=true 65 | !URxvt*font: xft:Bitstream Vera Sans Mono:pixelsize=13:antialias=true:hinting=true 66 | !URxvt*boldFont: xft:Bitstream Vera Sans Mono:bold:pixelsize=13:antialias=true:hinting=true 67 | 68 | ! Xft: DejaVu fonts 69 | ! Fedora/debian packages: dejavu-sans-mono-fonts/ttf-dejavu 70 | !URxvt*font: xft:DejaVu Sans Mono:pixelsize=13:antialias=true:hinting=true 71 | !URxvt*boldFont: xft:DejaVu Sans Mono:bold:pixelsize=13:antialias=true:hinting=true 72 | ! 73 | ! Xft: Liberation fonts 74 | ! Fedora/debian packages: liberation-mono-fonts/ttf-liberation 75 | !URxvt*font: xft:Liberation Mono:pixelsize=14:antialias=true:hinting=true 76 | !URxvt*boldFont: xft:Liberation Mono:bold:pixelsize=14:antialias=true:hinting=true 77 | ! 78 | ! Xft: Terminus fonts 79 | ! Fedora/debian packages: terminus-fonts/xfonts-terminus 80 | !URxvt*font: xft:terminus:pixelsize=14 81 | !URxvt*boldFont: xft:terminus:bold:pixelsize=14 82 | 83 | ! Traditional fonts - a more traditional font setup in lieu of xft 84 | !URxvt*font:-*-courier-medium-r-normal-*-14-*-*-*-*-*-iso8859-1 85 | !URxvt*boldFont:-*-courier-bold-r-normal-*-14-*-*-*-*-*-iso8859-1 86 | 87 | !! yay -S urxvt-resize-font-git 88 | !URxvt.resize-font.smaller: C-Down 89 | !URxvt.resize-font.bigger: C-Up 90 | 91 | 92 | !! From ARch-Installer-1 93 | !xterm*faceName: Dejavu Sans Mono:style=Book:antialias=true:hinting=medium 94 | !xterm*faceSize: 10 95 | !URxvt.font: xft:Dejavu Sans Mono:bold:size=12:antialias=true:hinting=true 96 | !URxvt.letterSpace: -2 97 | ! 98 | !! USING THESE FONTS 99 | !URxvt.font: xft:Dejavu Sans Mono:bold:style=Book:size=10:antialias=true:hinting=true 100 | !URxvt.font: xft:Px437 ATI 8x16:style=Regular:size=12:antialias=true:hinting=true 101 | !URxvt.font: xft:Px437 IBM VGA9:style=Regular:size=12:antialias=true:hinting=true 102 | 103 | 104 | ! +-------------------------------------------------+ 105 | ! | :: P E R L C O M M O N E X T E N S I O N S :: | 106 | ! +-------------------------------------------------+ 107 | 108 | !! Settings from arch wiki https://wiki.archlinux.org/index.php/Rxvt-unicode 109 | !! installed yay -S rxvt-unicode-patched-9.21-3 110 | !! installed pacman -S urxvt-perls 111 | !! To enable extensions place the following in ~/.Xresources 112 | !! Common settingd for URxvt.perl.-ext-common, set more features in succession 113 | 114 | URxvt.perl-ext-common:default,clipboard,keyboard-select,url-select,tabbedex,font-size 115 | 116 | 117 | ! +-------------------------------+ 118 | ! | :: C U T A N D P A S T E :: | 119 | ! +-------------------------------+ 120 | 121 | !! Default key bindings 122 | !! Default X key bindings will still work for copying and pasting. 123 | !! After selecting the text Ctrl+Insert or Ctrl+Alt+C 124 | !! can be used to copy and Shift+Insert or Ctrl+Alt+V to paste. 125 | 126 | URxvt.iso14755: false 127 | URxvt.iso14755_52: false 128 | 129 | URxvt.keysym.Shift-Control-C: eval:selection_to_clipboard 130 | URxvt.keysym.Shift-Control-V: eval:paste_clipboard 131 | 132 | !! pacman -S urxvt-clipboard 133 | !! for cut and paste 134 | !! ctlr+c ctrl+v, middle mouse 135 | 136 | 137 | ! +------------------------------------+ 138 | ! | :: F O N T S I Z E O N F L Y :: | 139 | ! +------------------------------------+ 140 | 141 | ! Allowes you to change font size 142 | ! installed yay -S urxvt-font-size-git 143 | 144 | URxvt.keysym.C-Up: font-size:increase 145 | URxvt.keysym.C-Down: font-size:decrease 146 | URxvt.keysym.C-S-Up: font-size:incglobal 147 | URxvt.keysym.C-S-Down: font-size:decglobal 148 | URxvt.keysym.C-equal: font-size:reset 149 | URxvt.keysym.C-slash: font-size:show 150 | 151 | ! Resize amount 152 | 153 | URxvt.font-size.step: 4 154 | 155 | 156 | ! +--------------------------+ 157 | ! | :: U R L S E L E C T :: | 158 | ! +--------------------------+ 159 | 160 | URxvt.url-select.launcher: vivaldi-stable 161 | URxvt.url-select.underline: true 162 | URxvt.url-select.url_button: 1 163 | URxvt.keysym.Control-Tab: perl:url-select:select_next 164 | URxvt.keysym.Control-Escape: perl:keyboard-select:activate 165 | URxvt.keysym.Control-s: perl:keyboard-select:search 166 | 167 | 168 | ! +---------------+ 169 | ! | :: T A B S :: | 170 | ! +---------------+ 171 | 172 | !! installed yay -S urxvt-tabbedex-git 173 | !! unset the default shortkeys 174 | !URxvt.tabbed.no-tabbedex-keys: true 175 | !! disable closing last tab 176 | 177 | !! Normal tabbed default shortkeys 178 | !! - Shift+Up : Rename 179 | !! - Shift+Down : New tab 180 | !! - Shift+Left : Go to left tab 181 | !! - Shift+Right : Go to right tab 182 | !! - Ctrl+Left : Move tab to the left 183 | !! - Ctrl+Right : Move tab to the right 184 | !! - Ctrl+d : Close tab 185 | !! tabbedex extension shortkeys 186 | 187 | !URxvt.keysym.Control-t: perl:tabbedex:new_tab 188 | !URxvt.keysym.Control-Tab: perl:tabbedex:next_tab 189 | !URxvt.keysym.Control-M-Tab: perl:tabbedex:prev_tab 190 | 191 | 192 | !! Tabs URxvt.perl-ext-common:...,tabbed.... 193 | !! Tab colors : 194 | URxvt.tabbedex.tabbar-fg: 3 195 | URxvt.tabbedex.tabbar-bg: 237 196 | URxvt.tabbedex.tab-fg: 0 197 | URxvt.tabbedex.tab-bg: 2 198 | 199 | URxvt.tabbedex.autohide: true 200 | URxvt.tabbedex.title: no 201 | 202 | ! +-------------------+ 203 | ! | :: C O L O R S :: | 204 | ! +-------------------+ 205 | 206 | ! Pointer 207 | 208 | URxvt.pointerBlank: true 209 | 210 | ! Fix font space 211 | 212 | URxvt.letterSpace: 0 213 | URxvt.intensityStyles: false 214 | 215 | ! Common 216 | 217 | #define S_yellow #b58900 218 | #define S_orange #cb4b16 219 | #define S_red #dc322f 220 | #define S_magenta #d33682 221 | #define S_violet #6c71c4 222 | #define S_blue #268bd2 223 | #define S_cyan #2aa198 224 | #define S_green #859900 225 | 226 | 227 | ! Dark 228 | 229 | #define S_base03 #282c34 230 | #define S_base02 #4b5263 231 | #define S_base01 #586e75 232 | #define S_base00 #657b83 233 | #define S_base0 #839496 234 | #define S_base1 #93a1a1 235 | #define S_base2 #eee8d5 236 | #define S_base3 #fdf6e3 237 | 238 | 239 | ! Light 240 | 241 | !#define S_base03 #fdf6e3 242 | !#define S_base02 #eee8d5 243 | !#define S_base01 #93a1a1 244 | !#define S_base00 #839496 245 | !#define S_base0 #657b83 246 | !#define S_base1 #586e75 247 | !#define S_base2 #4b5263 248 | !#define S_base3 #282c34 249 | 250 | 251 | ! To only apply colors to your terminal, for example, prefix 252 | ! the color assignment statement with its name. Example: 253 | ! 254 | ! URxvt*background: S_base03 255 | 256 | URxvt*depth: 32 257 | *background: S_base03 258 | *foreground: S_base0 259 | *fading: 40 260 | *fadeColor: S_base03 261 | *cursorColor: S_base1 262 | *pointerColorBackground: S_base01 263 | *pointerColorForeground: S_base1 264 | 265 | *color0: S_base02 266 | *color1: S_red 267 | *color2: S_green 268 | *color3: S_yellow 269 | *color4: S_blue 270 | *color5: S_magenta 271 | *color6: S_cyan 272 | *color7: S_base2 273 | *color8: #BBBBBB 274 | *color9: S_orange 275 | *color10: S_base01 276 | *color11: S_base00 277 | *color12: S_base0 278 | *color13: S_violet 279 | *color14: S_base1 280 | *color15: S_base3 281 | -------------------------------------------------------------------------------- /.config/cava/config: -------------------------------------------------------------------------------- 1 | ## Configuration file for CAVA. Default values are commented out. Use either ';' or '#' for commenting. 2 | 3 | 4 | [general] 5 | 6 | # Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0 7 | ; mode = waves 8 | 9 | # Accepts only non-negative values. 10 | ; framerate = 60 11 | 12 | # 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off 13 | # new as of 0.6.0 autosens of low values (dynamic range) 14 | # 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0 15 | ; autosens = 1 16 | ; overshoot = 20 17 | 18 | # Manual sensitivity in %. If autosens is enabled, this will only be the initial value. 19 | # 200 means double height. Accepts only non-negative values. 20 | ; sensitivity = 100 21 | 22 | # The number of bars (0-200). 0 sets it to auto (fill up console). 23 | # Bars' width and space between bars in number of characters. 24 | ; bars = 0 25 | ; bar_width = 2 26 | ; bar_spacing = 1 27 | 28 | # For SDL width and space between bars is in pixels, defaults are: 29 | ; bar_width = 20 30 | ; bar_spacing = 5 31 | 32 | 33 | # Lower and higher cutoff frequencies for lowest and highest bars 34 | # the bandwidth of the visualizer. 35 | # Note: there is a minimum total bandwidth of 43Mhz x number of bars. 36 | # Cava will automatically increase the higher cutoff if a too low band is specified. 37 | ; lower_cutoff_freq = 50 38 | ; higher_cutoff_freq = 10000 39 | 40 | 41 | # Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and 42 | # only check for input once per second. Cava will wake up once input is detected. 0 = disable. 43 | ; sleep_timer = 0 44 | 45 | 46 | [input] 47 | 48 | # Audio capturing method. Possible methods are: 'pulse', 'alsa', 'fifo', 'sndio' or 'shmem' 49 | # Defaults to 'pulse', 'alsa' or 'fifo', in that order, dependent on what support cava was built with. 50 | # 51 | # All input methods uses the same config variable 'source' 52 | # to define where it should get the audio. 53 | # 54 | # For pulseaudio 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink 55 | # (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them). 56 | # 57 | # For alsa 'source' will be the capture device. 58 | # For fifo 'source' will be the path to fifo-file. 59 | # For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address 60 | ; method = pulse 61 | ; source = auto 62 | 63 | method = alsa 64 | source = hw:Loopback,1 65 | 66 | ; method = fifo 67 | ; source = /tmp/mpd.fifo 68 | ; sample_rate = 44100 69 | ; sample_bits = 16 70 | 71 | ; method = shmem 72 | ; source = /squeezelite-AA:BB:CC:DD:EE:FF 73 | 74 | ; method = portaudio 75 | ; source = auto 76 | 77 | 78 | [output] 79 | 80 | # Output method. Can be 'ncurses', 'noncurses', 'raw' or 'sdl'. 81 | # 'noncurses' uses a custom framebuffer technique and prints only changes 82 | # from frame to frame in the terminal. 'ncurses' is default if supported. 83 | # 84 | # 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data 85 | # stream of the bar heights that can be used to send to other applications. 86 | # 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above. 87 | # 88 | # 'sdl' uses the Simple DirectMedia Layer to render in a graphical context. 89 | ; method = ncurses 90 | 91 | # Visual channels. Can be 'stereo' or 'mono'. 92 | # 'stereo' mirrors both channels with low frequencies in center. 93 | # 'mono' outputs left to right lowest to highest frequencies. 94 | # 'mono_option' set mono to either take input from 'left', 'right' or 'average'. 95 | ; channels = stereo 96 | ; mono_option = average 97 | 98 | # Raw output target. A fifo will be created if target does not exist. 99 | ; raw_target = /dev/stdout 100 | 101 | # Raw data format. Can be 'binary' or 'ascii'. 102 | ; data_format = binary 103 | 104 | # Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530). 105 | ; bit_format = 16bit 106 | 107 | # Ascii max value. In 'ascii' mode range will run from 0 to value specified here 108 | ; ascii_max_range = 1000 109 | 110 | # Ascii delimiters. In ascii format each bar and frame is separated by a delimiters. 111 | # Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)). 112 | ; bar_delimiter = 59 113 | ; frame_delimiter = 10 114 | 115 | # sdl window size and position. -1,-1 is centered. 116 | ; sdl_width = 1000 117 | ; sdl_height = 500 118 | ; sdl_x = -1 119 | ; sdl_y= -1 120 | 121 | [color] 122 | 123 | # Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow. 124 | # Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires 125 | # ncurses output method and a terminal that can change color definitions such as Gnome-terminal or rxvt. 126 | # if supported, ncurses mode will be forced on if user defined colors are used. 127 | # default is to keep current terminal color 128 | background = default 129 | foreground = default 130 | 131 | # SDL only support hex code colors, these are the default: 132 | ; background = '#111111' 133 | ; foreground = '#33cccc' 134 | 135 | 136 | # Gradient mode, only hex defined colors (and thereby ncurses mode) are supported, 137 | # background must also be defined in hex or remain commented out. 1 = on, 0 = off. 138 | # You can define as many as 8 different colors. They range from bottom to top of screen 139 | gradient = 1 140 | gradient_count = 8 141 | gradient_color_1 = '#d70000' 142 | gradient_color_2 = '#d75f00' 143 | gradient_color_3 = '#af8700' 144 | gradient_color_4 = '#5f8700' 145 | gradient_color_5 = '#00afaf' 146 | gradient_color_6 = '#cc8033' 147 | gradient_color_7 = '#0087ff' 148 | gradient_color_8 = '#5f5faf' 149 | 150 | 151 | 152 | [smoothing] 153 | 154 | # Percentage value for integral smoothing. Takes values from 0 - 100. 155 | # Higher values means smoother, but less precise. 0 to disable. 156 | integral = 77 157 | 158 | # Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable. 159 | monstercat = 1 160 | waves = 1 161 | 162 | # Set gravity percentage for "drop off". Higher values means bars will drop faster. 163 | # Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off". 164 | gravity = 100 165 | 166 | 167 | # In bar height, bars that would have been lower that this will not be drawn. 168 | ignore = 0 169 | 170 | 171 | [eq] 172 | 173 | # This one is tricky. You can have as much keys as you want. 174 | # Remember to uncomment more then one key! More keys = more precision. 175 | # Look at readme.md on github for further explanations and examples. 176 | 1 = 1 # bass 177 | 2 = 1 178 | 3 = 1 # midtone 179 | 4 = 1 180 | 5 = 1 # treble 181 | -------------------------------------------------------------------------------- /.config/cmus/rc: -------------------------------------------------------------------------------- 1 | ## Base16 OneDark 2 | ## Author: Lalit Magant (http://github.com/tilal6991) 3 | 4 | ## 5 | # The following matchup is only true if you also changed your terminal emulator 6 | # colors to the same as the scheme you are using. 7 | # 0: #282c34 8 | # 1: #e06c75 9 | # 2: #98c379 10 | # 3: #e5c07b 11 | # 4: #61afef 12 | # 5: #c678dd 13 | # 6: #56b6c2 14 | # 7: #abb2bf 15 | # 8: #545862 16 | # 9: #d19a66 17 | # 10: #353b45 18 | # 11: #3e4451 19 | # 12: #565c64 20 | # 13: #b6bdca 21 | # 14: #be5046 22 | # 15: #c8ccd4 23 | # 16: #000000 24 | ## 25 | 26 | # overall background and foreground color 27 | set color_win_fg=default 28 | set color_win_bg=default 29 | 30 | # bottom status line 31 | set color_statusline_fg=2 32 | set color_statusline_bg=default 33 | 34 | # bottom title line 35 | set color_titleline_fg=2 36 | set color_titleline_bg=default 37 | 38 | # top title area 39 | set color_win_title_fg=2 40 | set color_win_title_bg=default 41 | set color_win_title_attr=bold 42 | 43 | # command-line colors 44 | set color_cmdline_bg=default 45 | set color_cmdline_fg=default 46 | set color_error=1 47 | set color_info=6 48 | 49 | # separator of windows 50 | # should be black 51 | set color_separator=10 52 | 53 | # unselected currently playing track's text 54 | set color_win_cur=13 55 | 56 | # active selection for currently playing track 57 | set color_win_cur_sel_bg=default 58 | set color_win_cur_sel_fg=3 59 | set color_win_cur_sel_attr=underline 60 | 61 | # inactive selection for currently playing track 62 | set color_win_inactive_cur_sel_bg=default 63 | set color_win_inactive_cur_sel_fg=13 64 | 65 | # active selection 66 | set color_win_sel_bg=default 67 | set color_win_sel_fg=3 68 | set color_win_sel_attr=underline 69 | 70 | # inactive selection 71 | set color_win_inactive_sel_bg=default 72 | set color_win_inactive_sel_fg=1 73 | 74 | # directory listing color 75 | set color_win_dir=default 76 | 77 | set output_plugin=alsa 78 | set dsp.alsa.device=default 79 | set mixer.alsa.device=default 80 | set mixer.alsa.channel=Master 81 | -------------------------------------------------------------------------------- /.config/dunst/dunstrc: -------------------------------------------------------------------------------- 1 | [global] 2 | font = "Iosevka 10" 3 | allow_markup = yes 4 | format = "%s\n%b" 5 | sort = yes 6 | indicate_hidden = yes 7 | alignment = center 8 | bounce_freq = 0 9 | show_age_threshold = 60 10 | word_wrap = yes 11 | ignore_newline = no 12 | geometry = "200x5-6+30" 13 | transparency = 0 14 | idle_threshold = 120 15 | monitor = 0 16 | follow = mouse 17 | sticky_history = yes 18 | line_height = 0 19 | separator_height = 2 20 | padding = 8 21 | horizontal_padding = 8 22 | separator_color = "#58585822" 23 | startup_notification = false 24 | corner_radius = 6 25 | # https://github.com/knopwob/dunst/issues/26#issuecomment-36159395 26 | #icon_position = left 27 | #icon_folders = /usr/share/icons/elementary/actions/16/ 28 | frame_width = 1 29 | frame_color = "#abb2bf66" 30 | 31 | [shortcuts] 32 | close = ctrl+space 33 | close_all = ctrl+shift+space 34 | history = ctrl+grave 35 | context = ctrl+shift+period 36 | 37 | [urgency_low] 38 | background = "#282c3422" 39 | foreground = "#abb2bf" 40 | timeout = 5 41 | 42 | [urgency_normal] 43 | background = "#4b526322" 44 | foreground = "#abb2bf" 45 | timeout = 20 46 | 47 | [urgency_critical] 48 | background = "#dc322f22" 49 | foreground = "#abb2bf" 50 | timeout = 0 51 | -------------------------------------------------------------------------------- /.config/eww/eww.scss: -------------------------------------------------------------------------------- 1 | /** Global *******************************************/ 2 | *{ 3 | all : unset; 4 | font-family : feather; 5 | font-family : Iosevka; 6 | } 7 | 8 | /** Vars *********************************************/ 9 | 10 | $bg-color : #282c34; 11 | 12 | /** Background ***************************************/ 13 | .bg { 14 | background-image : url("images/bg.png"); 15 | background-color : #474D59; 16 | background-size : 117%; 17 | background-position : center; 18 | background-repeat : no-repeat; 19 | opacity : 1; 20 | } 21 | 22 | /** Generic window ***********************************/ 23 | .genwin, .genwina, .genwinb, .genwinc, .genwind, .genwine, .genwinf, .genwing, .genwinh { 24 | background-color : $bg-color; //#252933; #2E3440; 25 | } 26 | 27 | .genwin { 28 | border-radius : 16px; 29 | } 30 | 31 | .genwina { 32 | border-radius : 16px 16px 0 0; 33 | } 34 | 35 | .genwinb { 36 | border-radius : 0 16px 16px 16px; 37 | } 38 | 39 | .genwinh { 40 | border-radius : 16px 0 0 16px; 41 | } 42 | 43 | .genwinc { 44 | border-radius : 16px 16px 0 16px; 45 | } 46 | 47 | .genwind { 48 | border-radius : 46px 16px 16px 16px; 49 | } 50 | 51 | .genwine { 52 | border-radius : 16px 46px 16px 16px; 53 | } 54 | 55 | .genwinf { 56 | border-radius : 16px 16px 16px 46px; 57 | } 58 | 59 | .genwing { 60 | border-radius : 16px 16px 46px 16px; 61 | } 62 | 63 | /** rxyhn's calendar *********************************/ 64 | .cal-holder { 65 | padding : 1rem 1rem .2rem; 66 | font-size : 1em; 67 | font-weight : bold; 68 | } 69 | 70 | .cal_title_right, .cal_title_left { 71 | font-size : 32px; 72 | color : #EBCB8B; 73 | } 74 | 75 | .cal_title { 76 | margin : 16px 72px 4px 72px; 77 | font-size : 16px; 78 | color : #A3BE8C; 79 | } 80 | 81 | .cal { 82 | padding : .8rem .25rem 0rem; 83 | margin-left : 10px; 84 | 85 | &.highlight { 86 | padding : 10rem; 87 | } 88 | } 89 | 90 | calendar:selected { 91 | color : #88C0D0; 92 | } 93 | 94 | calendar.header { 95 | color : #88C0D0; 96 | font-weight : bold; 97 | } 98 | 99 | calendar.button { 100 | color : #D46389; 101 | } 102 | 103 | calendar.highlight { 104 | color : #D46389; 105 | font-weight : bold; 106 | } 107 | 108 | calendar:indeterminate { 109 | color : $bg-color; 110 | } 111 | 112 | /** Profile ******************************************/ 113 | .face { 114 | background-image : url('images/fox.png'); 115 | background-size : 175px; 116 | background-position : 50% 35%; 117 | min-height : 175px; 118 | min-width : 175px; 119 | margin : 40px 0px 0px 2px; 120 | border-radius : 100%; 121 | } 122 | 123 | .fullname { 124 | color : #D46389; 125 | font-size : 30px; 126 | font-weight : bold; 127 | } 128 | 129 | .username { 130 | color : #8FBCBB; 131 | font-size : 22px; 132 | font-weight : bold; 133 | margin : -15px 0px 0px 0px; 134 | } 135 | 136 | /** System ********************************************/ 137 | .iconcpu, .iconmem, .iconbright, .iconbat { 138 | font-size : 22px; 139 | font-weight : normal; 140 | } 141 | .iconcpu { 142 | color : #BF616A; 143 | } 144 | .iconmem { 145 | color : #A3BE8C; 146 | } 147 | .iconbright { 148 | color : #EBCB8B; 149 | } 150 | .iconbat { 151 | color : #88C0D0; 152 | } 153 | 154 | .cpu_bar, .mem_bar, .bright_bar, .bat_bar, scale trough { 155 | all : unset; 156 | background-color : #3A404C; 157 | border-radius : 16px; 158 | min-height : 12px; 159 | min-width : 170px; 160 | } 161 | 162 | .cpu_bar, .mem_bar, .bright_bar, .bat_bar, scale trough highlight { 163 | all : unset; 164 | border-radius : 16px; 165 | } 166 | 167 | .cpu_bar scale trough highlight { 168 | background-color : #BF616A; 169 | } 170 | .mem_bar scale trough highlight { 171 | background-color : #A3BE8C; 172 | } 173 | .bright_bar scale trough highlight { 174 | background-color : #EBCB8B; 175 | } 176 | .bat_bar scale trough highlight { 177 | background-color : #88C0D0; 178 | } 179 | 180 | /** Clock ********************************************/ 181 | .time_hour, .time_min { 182 | color : #81A1C1; 183 | font-size : 45px; 184 | font-weight : bold; 185 | } 186 | .time_hour { 187 | margin : 10px 0px 0px 10px; 188 | } 189 | .time_min { 190 | margin : 0px 0px 10px 0px; 191 | } 192 | 193 | .time_mer { 194 | color : #A3BE8C; 195 | font-size : 30px; 196 | font-weight : bold; 197 | margin : 10px 0px 0px 0px; 198 | } 199 | 200 | .time_day { 201 | color : #EBCB8B; 202 | font-size : 17px; 203 | font-weight : normal; 204 | margin : 0px 0px -30px 10px; 205 | } 206 | 207 | /** Uptime ********************************************/ 208 | .icontimer { 209 | color : #B48EAD; 210 | font-size : 50px; 211 | font-weight : normal; 212 | } 213 | 214 | /** Music ***************************************/ 215 | .album_art { 216 | background-size : cover; 217 | background-position : center; 218 | min-height : 184px; 219 | min-width : 184px; 220 | margin : 20px; 221 | border-radius : 14px; 222 | } 223 | 224 | .song { 225 | color : #8FBCBB; 226 | font-size : 18px; 227 | font-weight : bold; 228 | margin : 15px 0px 0px 0px; 229 | } 230 | 231 | .artist { 232 | color : #EBCB8B; 233 | font-size : 14px; 234 | font-weight : normal; 235 | margin : 0px 0px 0px 0px; 236 | } 237 | 238 | .btn_prev, .btn_play, .btn_next { 239 | font-family : Iosevka Nerd Font; 240 | } 241 | .btn_prev { 242 | color : #EBCB8B; 243 | font-size : 32px; 244 | font-weight : normal; 245 | } 246 | .btn_play { 247 | color : #A3BE8C; 248 | font-size : 40px; 249 | font-weight : bold; 250 | } 251 | .btn_next { 252 | color : #EBCB8B; 253 | font-size : 32px; 254 | font-weight : normal; 255 | } 256 | 257 | .music_bar scale trough highlight { 258 | all : unset; 259 | background-color : #B48EAD; 260 | border-radius : 8px; 261 | } 262 | .music_bar scale trough { 263 | all : unset; 264 | background-color : #3A404C; 265 | border-radius : 8px; 266 | min-height : 10px; 267 | min-width : 180px; 268 | margin : 0px 10px 0px 0px; 269 | } 270 | 271 | /** Weather ***************************************/ 272 | .iconweather { 273 | font-family : Iosevka Nerd Font; 274 | font-size : 58px; 275 | font-weight : normal; 276 | margin : 10px 0px 0px 30px; 277 | } 278 | 279 | .label_temp { 280 | color : #A6D1DD; 281 | font-size : 54px; 282 | font-weight : bold; 283 | margin : 15px 25px 0px 0px; 284 | } 285 | 286 | .label_stat { 287 | color : #BF616A; 288 | font-size : 30px; 289 | font-weight : bold; 290 | margin : 10px 0px 0px 0px; 291 | } 292 | 293 | .label_quote { 294 | color : #E5E5E5; 295 | font-size : 18px; 296 | font-weight : normal; 297 | } 298 | 299 | /** Applications ***************************************/ 300 | .appbox { 301 | margin : 10px 0px 0px 12px; 302 | } 303 | 304 | .app_vivaldi, .app_telegram, .app_discord, .app_terminal, .app_obsidian, 305 | .app_files, .app_neovim, .app_code, .app_krita, .app_vbox { 306 | background-repeat : no-repeat; 307 | background-size : 42px; 308 | min-height : 42px; 309 | min-width : 42px; 310 | margin : 0 3px 0 3px; 311 | } 312 | 313 | .app_vivaldi {} 314 | .app_telegram {} 315 | .app_discord {} 316 | .app_terminal {} 317 | .app_files {} 318 | .app_obsidian { 319 | } 320 | .app_neovim { 321 | background-size : 36px; 322 | background-position : center; 323 | } 324 | .app_code {} 325 | .app_krita {} 326 | .app_vbox {} 327 | 328 | /** Links ***************************************/ 329 | .iconweb, .iconmail { 330 | color : #FFFFFF; 331 | font-family : Iosevka Nerd Font; 332 | font-size : 60px; 333 | font-weight : normal; 334 | } 335 | .iconmail { 336 | color : #DF584E; 337 | } 338 | 339 | .github { 340 | background-color : #24292E; 341 | border-radius : 16px; 342 | } 343 | .reddit { 344 | background-color : #E46231; 345 | border-radius : 16px; 346 | } 347 | .twitter { 348 | background-color : #61AAD6; 349 | border-radius : 16px; 350 | } 351 | .youtube { 352 | background-color : #DF584E; 353 | border-radius : 16px; 354 | } 355 | .mail { 356 | background-color : #FFFFFF; 357 | border-radius : 16px; 358 | } 359 | 360 | .mailbox { 361 | background-color : #E5E5E5; 362 | border-radius : 10px; 363 | margin : 24px 0px 24px 0px; 364 | } 365 | .label_mails { 366 | color : #404040; 367 | font-size : 24px; 368 | font-weight : bold; 369 | margin : 0px 6px 0px 6px; 370 | } 371 | 372 | /** Power buttons ***************************************/ 373 | .btn_logout, .btn_sleep, .btn_reboot, .btn_poweroff { 374 | font-size : 48px; 375 | font-weight : bold; 376 | } 377 | 378 | .btn_logout { 379 | color : #BF616A; 380 | } 381 | .btn_sleep { 382 | color : #A3BE8C; 383 | } 384 | .btn_reboot { 385 | color : #EBCB8B; 386 | } 387 | .btn_poweroff { 388 | color : #88C0D0; 389 | } 390 | 391 | /** Home folders ***************************************/ 392 | .hddbox { 393 | background-color : #3A404C; 394 | border-radius : 10px; 395 | margin : 15px; 396 | } 397 | .hddicon { 398 | color : #81A1C1; 399 | font-family : Iosevka Nerd Font; 400 | font-size : 70px; 401 | font-weight : normal; 402 | margin : 5px 10px 5px 15px; 403 | } 404 | .hdd_label { 405 | color : #E5E9F0; 406 | font-size : 32px; 407 | font-weight : bold; 408 | margin : 0px 0px 0px 10px; 409 | } 410 | .fs_sep { 411 | color : #2E3440; 412 | font-size : 34px; 413 | font-weight : bold; 414 | } 415 | 416 | .iconfolder1, .iconfolder2, .iconfolder3, .iconfolder4, .iconfolder5, .iconfolder6 { 417 | font-family : Iosevka Nerd Font; 418 | font-size : 24px; 419 | font-weight : normal; 420 | margin : 0px 0px 0px 25px; 421 | } 422 | .iconfolder1 { 423 | color : #BF616A; 424 | } 425 | .iconfolder2 { 426 | color : #A3BE8C; 427 | } 428 | .iconfolder3 { 429 | color : #EBCB8B; 430 | } 431 | .iconfolder4 { 432 | color : #81A1C1; 433 | } 434 | .iconfolder5 { 435 | color : #B48EAD; 436 | } 437 | .iconfolder6 { 438 | color : #88C0D0; 439 | } 440 | 441 | .label_folder1, .label_folder2, .label_folder3, .label_folder4, .label_folder5, .label_folder6 { 442 | font-size : 22px; 443 | font-weight : normal; 444 | margin : 0px 0px 0px 30px; 445 | } 446 | .label_folder1 { 447 | color : #BF616A; 448 | } 449 | .label_folder2 { 450 | color : #A3BE8C; 451 | } 452 | .label_folder3 { 453 | color : #EBCB8B; 454 | } 455 | .label_folder4 { 456 | color : #81A1C1; 457 | } 458 | .label_folder5 { 459 | color : #B48EAD; 460 | } 461 | .label_folder6 { 462 | color : #88C0D0; 463 | } 464 | 465 | /*--|> NeoMusic <|--*/ 466 | 467 | .art { 468 | background-size : 62%; 469 | background-repeat : no-repeat; 470 | background-position : 100% 50%; 471 | border-radius : 18px 16px 16px 18px; 472 | } 473 | 474 | .music_main, .art { 475 | min-width : 396px; 476 | } 477 | 478 | .music_main { 479 | border-radius : 16px; 480 | } 481 | 482 | .music_main .song { 483 | font-size : 24px; 484 | } 485 | 486 | .music_main .artist { 487 | margin : 0 0 32px 0; 488 | font-size : 16px; 489 | } 490 | 491 | .music_main .artist { 492 | color : #E5C07b; 493 | } 494 | 495 | .music_main .song { 496 | color : #61AFEF; 497 | } 498 | 499 | .music_main .btn_next, .music_main .btn_prev { 500 | font-size : 30px; 501 | color : #E5C07b; 502 | } 503 | 504 | .music_main .btn_play { 505 | font-size : 40px; 506 | color : #98c379; 507 | } 508 | 509 | .music_main .control, .music_main .song, .music_main .artist { 510 | padding : 4px 0 4px 10px; 511 | letter-spacing : 2px; 512 | } 513 | 514 | .music_main { 515 | background : linear-gradient(120deg, $bg-color /*#282c34*/ 55%, transparent); 516 | padding : 4px 10px 4px 10px; 517 | } 518 | 519 | /*--> NeoProfile <--*/ 520 | 521 | .avatar{ 522 | border-radius : 18px; 523 | background-size : cover; 524 | background-position : 50% 100%; 525 | } 526 | 527 | .profile_main { 528 | border-radius : 16px; 529 | } 530 | 531 | .profile_main { 532 | background : linear-gradient(-5deg, $bg-color 10%, transparent, $bg-color 75%); 533 | min-width : 246px; 534 | } 535 | 536 | .fullname { 537 | margin : 10px 0 0 0; 538 | color : #D46389; 539 | font-size : 28px; 540 | font-weight : bold; 541 | } 542 | 543 | .username { 544 | color : #8FBCBB; 545 | font-size : 22px; 546 | font-weight : bold; 547 | margin : -15px 0px 0px 0px; 548 | } 549 | 550 | /*--|> NeoClock <|--*/ 551 | 552 | .uptitle { 553 | color : #EBCB8B; 554 | font-size : 22px; 555 | } 556 | 557 | .updays { 558 | color : #81A1C1; 559 | font-size : 28px; 560 | font-weight : bold; 561 | } 562 | 563 | .uptime { 564 | color : #61AFEF; 565 | //color : #E5E9F0; 566 | font-size : 24px; 567 | font-weight : bold; 568 | } 569 | 570 | .nclock { 571 | margin : 0px 0px 0px 26px; 572 | } 573 | 574 | .ntime_hour, .ntime_min { 575 | color : #81A1C1; 576 | font-size : 45px; 577 | font-weight : bold; 578 | } 579 | .ntime_hour { 580 | margin : 0px; 581 | } 582 | .ntime_min { 583 | margin : 0px 0px 0px 2px; 584 | } 585 | 586 | .ntime_date { 587 | margin : 6px 0px -6px 0px; 588 | color : #61AFEF; 589 | font-size : 17px; 590 | font-weight : bold; 591 | } 592 | 593 | .ntime_mers *:nth-child(1) { 594 | margin : 8px 0px 0px 0px; 595 | } 596 | 597 | .ntime_mer { 598 | color : #A3BE8C; 599 | font-size : 16px; 600 | font-weight : bold; 601 | } 602 | 603 | .ntime_day { 604 | margin : -8px 0px 0px 0px; 605 | color : #EBCB8B; 606 | font-size : 18px; 607 | font-weight : normal; 608 | } 609 | 610 | /*--> Workspaces <--*/ 611 | .ws1, .ws2, .ws3, .ws4, .ws5, .ws6, .ws7, .ws8, .ws9, .ws10 { 612 | font-size : 24px; 613 | } 614 | .ws1 { 615 | color : #52E080; 616 | } 617 | 618 | .ws2 { 619 | color : #D70040; 620 | } 621 | 622 | .ws3 { 623 | color : #117dca; 624 | } 625 | 626 | .ws4 { 627 | color : #32a7d9; 628 | } 629 | 630 | .ws5 { 631 | color : #23cf5f; 632 | } 633 | 634 | .ws6 { 635 | color : #80461b; 636 | } 637 | 638 | .ws7 { 639 | color : #f4c430; 640 | } 641 | 642 | .ws8 { 643 | color : #DA70D6; 644 | } 645 | 646 | .ws9 { 647 | color : #800020; 648 | } 649 | 650 | .ws10 { 651 | color : #F5F5F5; 652 | } 653 | 654 | .ws_holder { 655 | margin : 24px 0 0 0; 656 | } 657 | 658 | /** EOF *************************************************/ 659 | -------------------------------------------------------------------------------- /.config/eww/eww.yuck: -------------------------------------------------------------------------------- 1 | ;; ** 2 | ;; ** Widgets config for EWW 3 | ;; ** Created by : @adi1090x 4 | ;; ** Modified by : Dusty 5 | 6 | 7 | 8 | 9 | ;; Profile vars 10 | (defvar IMAGE "images/fox.png") 11 | (defvar NAME "Dustyn Senior") 12 | (defpoll UNAME :interval "5m" "whoami") 13 | 14 | ;; System vars 15 | (defpoll HOST :interval "5s" "hostname") 16 | (defpoll CPU_USAGE :interval "1s" "~/.config/eww/scripts/sys_info --cpu") 17 | (defpoll MEM_USAGE :interval "1s" "~/.config/eww/scripts/sys_info --mem") 18 | (defpoll BLIGHT :interval "1s" "~/.config/eww/scripts/sys_info --blight") 19 | (defpoll BATTERY :interval "5s" "~/.config/eww/scripts/sys_info --bat") 20 | 21 | ;; Time vars 22 | (defpoll HOUR :interval "5s" "date +\"%I\"") 23 | (defpoll MIN :interval "5s" "date +\"%M\"") 24 | (defpoll MERA :interval "5s" "date +\"%p\" | cut -b 1") 25 | (defpoll MERB :interval "5s" "date +\"%p\" | cut -b 2") 26 | (defpoll DAY :interval "5s" "date +\"%A\"") 27 | (defpoll DATE :interval "5s" "date +\"%d.%m.%Y\"") 28 | 29 | ;; Uptime vars 30 | (defpoll UPDAYS :interval "5s" "echo $(($(cat /proc/uptime | cut -d \".\" -f 1) / 60 / 60 / 24))d") 31 | (defpoll UPTIME :interval "5s" "printf %02d:%02d $(($(cat /proc/uptime | cut -d \".\" -f 1) / 60 / 60 % 24)) $(($(cat /proc/uptime | cut -d \".\" -f 1) / 60 % 60))") 32 | ;; (defpoll UPHOUR :interval "5s" "uptime -p | awk '{print $2 \" \" $3}' | sed 's/,//g'") 33 | ;; (defpoll UPMIN :interval "5s" "uptime -p | awk '{print $4 \" \" $5}'") 34 | 35 | ;; Music vars 36 | (defpoll SONG :interval "1s" "~/.config/eww/scripts/music_info --song") 37 | (defpoll ARTIST :interval "1s" "~/.config/eww/scripts/music_info --artist") 38 | (defpoll STATUS :interval "1s" "~/.config/eww/scripts/music_info --status") 39 | (defpoll COVER :interval "1s" "~/.config/eww/scripts/music_info --cover") 40 | 41 | ;; Weather vars 42 | (defpoll ICON :interval "15m" "~/.config/eww/scripts/weather_info --icon") 43 | (defpoll STAT :interval "15m" "~/.config/eww/scripts/weather_info --stat") 44 | (defpoll TEMP :interval "15m" "~/.config/eww/scripts/weather_info --temp") 45 | (defpoll HEX :interval "15m" "~/.config/eww/scripts/weather_info --hex") 46 | (defpoll QUOTE :interval "15m" "~/.config/eww/scripts/weather_info --quote") 47 | (defpoll QUOTE2 :interval "15m" "~/.config/eww/scripts/weather_info --quote2") 48 | 49 | ;; Apps vars 50 | (defpoll MAILS :interval "5m" "~/.config/eww/scripts/mails") 51 | 52 | ;; Files vars 53 | (defpoll FREE :interval "5s" "df -h / | awk '{print $4}' | tail -n 1 | sed 's/G/GB/'") 54 | 55 | ;; Calendar 56 | (defpoll CALDAY :interval "10h" "date '+%d'") 57 | (defpoll CALMONTH :interval "10h" "$(($(date +%m)-1))") 58 | (defpoll CALYEAR :interval "10h" "date '+%Y'") 59 | 60 | 61 | 62 | 63 | ;; ******************************************************************************** 64 | 65 | 66 | 67 | ;; background 68 | (defwidget bg [] 69 | (box :class "bg")) 70 | 71 | ;; profile 72 | (defwidget user [] 73 | (box :class "genwin" :orientation "v" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false" 74 | (box :class "face" :halign "center" :style "background-image: url('${IMAGE}');") 75 | (label :class "fullname" :halign "center" :wrap "true" :limit-width 25 :text NAME) 76 | (label :class "username" :halign "center" :wrap "true" :limit-width 25 :text UNAME))) 77 | 78 | ;; NeoProfile 79 | (defwidget nuser [] 80 | (box :class "genwina" :space-evenly "false" :vexpand "false" :hexpand "false" 81 | (box :class "avatar" :vexpand "false" :hexpand "false" :style "background-image: url('${IMAGE}');" 82 | (box :class "profile_main" :orientation "v" :spacing 15 :space-evenly "false" :vexpand "false" :hexpand "false" 83 | (label :class "fullname" :halign "center" :wrap "true" :limit-width 25 :text NAME) 84 | (label :class "username" :halign "center" :wrap "true" :limit-width 25 :text UNAME))))) 85 | 86 | ;; system 87 | (defwidget system [] 88 | (box :class "genwin" :vexpand "false" :hexpand "false" 89 | (box :orientation "v" :spacing 25 :halign "center" :valign "center" :space-evenly "false" :vexpand "false" :hexpand "false" 90 | (box :class "cpu_bar" :orientation "h" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false" 91 | (label :class "iconcpu" :text "") 92 | (scale :min 0 :max 100 :value CPU_USAGE :active "false")) 93 | (box :class "mem_bar" :orientation "h" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false" 94 | (label :class "iconmem" :text "") 95 | (scale :min 0 :max 100 :value MEM_USAGE :active "false")) 96 | (box :class "bright_bar" :orientation "h" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false" 97 | (label :class "iconbright" :text "") 98 | (scale :min 0 :max 100 :value BLIGHT :active "false")) 99 | (box :class "bat_bar" :orientation "h" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false" 100 | (label :class "iconbat" :text "") 101 | (scale :min 0 :max 100 :value BATTERY :active "false"))))) 102 | 103 | ;; clock 104 | (defwidget clock [] 105 | (box :class "genwin" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" 106 | (label :class "time_hour" :valign "start" :wrap "true" :limit-width 25 :text HOUR) 107 | (label :class "time_min" :valign "end" :wrap "true" :limit-width 25 :text MIN) 108 | (box :orientation "v" :spacing 10 :space-evenly "false" :vexpand "false" :hexpand "false" 109 | (label :class "time_mer" :halign "end" :wrap "true" :limit-width 25 :text "${MERA}${MERB}") 110 | (label :class "time_day" :halign "end" :wrap "true" :limit-width 25 :text DAY)))) 111 | 112 | ;; NeoClock 113 | (defwidget nclock [] 114 | (box :class "genwinc" :orientation "h" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false" 115 | (box :orientation "v" :class "nclock" :valign "center" :spacing 0 :space-evenly "false" :vexpand "false" :hexpand "false" 116 | (label :class "uptitle" :halign "center" :wrap "true" :limit-width 25 :text "Uptime") 117 | (label :class "updays" :halign "center" :wrap "true" :limit-width 25 :text "祥 ${UPDAYS}") 118 | (label :class "uptime" :halign "center" :wrap "true" :limit-width 25 :text UPTIME)) 119 | (box :orientation "v" :valign "center" :spacing 0 :space-evenly "false" :vexpand "false" :hexpand "false" 120 | (label :class "ntime_date" :halign "center" :wrap "true" :limit-width 25 :text DATE) 121 | (box :orientation "h" :halign "center" :spacing 8 :space-evenly "false" :vexpand "false" :hexpand "false" 122 | (label :class "ntime_hour" :valign "start" :wrap "true" :limit-width 25 :text HOUR) 123 | (box :orientation "v" :class "ntime_mers" :spacing 0 :space-evenly "false" :vexpand "false" :hexpand "false" 124 | (label :class "ntime_mer" :halign "end" :wrap "true" :limit-width 25 :text MERA) 125 | (label :class "ntime_mer" :halign "end" :wrap "true" :limit-width 25 :text MERB)) 126 | (label :class "ntime_min" :valign "end" :wrap "true" :limit-width 25 :text MIN)) 127 | (label :class "ntime_day" :halign "center" :wrap "true" :limit-width 25 :text DAY)))) 128 | 129 | ;; NeoCalendar (rxyhn's calendar) 130 | (defwidget cal [] 131 | (box :class "genwin" :orientation "v" :space-evenly "false" :vexpand "false" :hexpand "false" 132 | (box :class "cal_holder" :orientation "v" :space-evenly "false" :vexpand "false" :hexpand "false" 133 | (box :class "title_holder" :orientation "h" :space-evenly "false" :halign "center" :vexpand "false" :hexpand "false" 134 | (label :class "cal_title_left" :halign "start" :wrap "true" :text "·") 135 | (label :class "cal_title" :halign "center" :wrap "true" :text "Calendar") 136 | (label :class "cal_title_right" :halign "end" :wrap "true" :text "·")) 137 | (calendar :class "cal" :day CALDAY :month CALMONTH :year CALYEAR)))) 138 | 139 | ;; uptime 140 | (defwidget uptime [] 141 | (box :class "genwin" 142 | (box :orientation "h" :halign "center" :spacing 30 :space-evenly "false" :vexpand "false" :hexpand "false" 143 | (label :class "icontimer" :valign "center" :text "祥") 144 | (box :orientation "v" :valign "center" :spacing 0 :space-evenly "false" :vexpand "false" :hexpand "false" 145 | (label :class "updays" :halign "center" :wrap "true" :limit-width 25 :text UPDAYS) 146 | (label :class "uptime" :halign "center" :wrap "true" :limit-width 25 :text UPTIME))))) 147 | 148 | ;; Music 149 | (defwidget music [] 150 | (box :class "genwin" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" 151 | (box :class "album_art" :vexpand "false" :hexpand "false" :style "background-image: url('${COVER}');") 152 | (box :orientation "v" :spacing 29 :space-evenly "false" :vexpand "false" :hexpand "false" 153 | (label :halign "center" :class "song" :wrap "true" :limit-width 15 :text SONG) 154 | (label :halign "center" :class "artist" :wrap "true" :limit-width 18 :text ARTIST) 155 | (box :orientation "h" :spacing 15 :halign "center" :space-evenly "true" :vexpand "false" :hexpand "false" 156 | (button :class "btn_prev" :onclick "~/.config/eww/scripts/music_info --prev" "玲") 157 | (button :class "btn_play" :onclick "~/.config/eww/scripts/music_info --toggle" STATUS) 158 | (button :class "btn_next" :onclick "~/.config/eww/scripts/music_info --next" "怜")) 159 | (box :class "music_bar" :halign "center" :vexpand "false" :hexpand "false" 160 | ;; (scale :onscroll "mpc -q seek +1" :min 0 :active "true" :max 100 :value CURRENT) 161 | )))) 162 | 163 | ;; Spotify 164 | (defwidget spotify [] 165 | (box :class "genwinb" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" 166 | (box :class "art" :vexpand "false" :hexpand "false" :style "background-image: url('${COVER}');" 167 | (box :class "music_main" :orientation "v" :spacing 15 :space-evenly "false" :vexpand "false" :hexpand "false" 168 | (label :halign "start" :class "song" :wrap "false" :limit-width 15 :text SONG) 169 | (label :halign "start" :class "artist" :wrap "false" :limit-width 15 :text ARTIST) 170 | (box :orientation "h" :class "control" :spacing 20 :halign "start" :valign "end" :space-evenly "true" :vexpand "false" :hexpand "false" 171 | (button :class "btn_prev" :onclick "~/.config/eww/scripts/music_info --prev" "玲") 172 | (button :class "btn_play" :onclick "~/.config/eww/scripts/music_info --toggle" STATUS) 173 | (button :class "btn_next" :onclick "~/.config/eww/scripts/music_info --next" "怜")))))) 174 | 175 | ;; github 176 | (defwidget github [] 177 | (box :class "github" :vexpand "false" :hexpand "false" 178 | (button :class "iconweb" :onclick "~/.config/eww/scripts/open_links --gh" ""))) 179 | 180 | ;; reddit 181 | (defwidget reddit [] 182 | (box :class "reddit" :vexpand "false" :hexpand "false" 183 | (button :class "iconweb" :onclick "~/.config/eww/scripts/open_links --rd" "樓"))) 184 | 185 | ;; twitter 186 | (defwidget twitter [] 187 | (box :class "twitter" :vexpand "false" :hexpand "false" 188 | (button :class "iconweb" :onclick "~/.config/eww/scripts/open_links --tw" ""))) 189 | 190 | ;; youtube 191 | (defwidget youtube [] 192 | (box :class "youtube" :vexpand "false" :hexpand "false" 193 | (button :class "iconweb" :onclick "~/.config/eww/scripts/open_links --yt" ""))) 194 | 195 | ;; mail 196 | (defwidget mail [] 197 | (box :class "mail" 198 | (box :orientation "h" :halign "center" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false" 199 | (button :class "iconmail" :onclick "~/.config/eww/scripts/open_links --mail" "") 200 | (box :class "mailbox" :space-evenly "false" :vexpand "false" :hexpand "false" 201 | (button :class "label_mails" :onclick "~/.config/eww/scripts/open_links --mail" MAILS))))) 202 | 203 | ;; weather 204 | (defwidget weather_info [] 205 | (box :orientation "h" :vexpand "false" :hexpand "false" 206 | (label :class "iconweather" :halign "start" :style "color: ${HEX};" :text ICON) 207 | (label :class "label_stat" :valign "center" :text STAT) 208 | (label :class "label_temp" :halign "end" :text TEMP))) 209 | (defwidget weather_quotes [] 210 | (box :orientation "v" :spacing 15 :halign "center" :space-evenly "false" :vexpand "false" :hexpand "false" 211 | (label :class "label_quote" :text QUOTE) 212 | (label :class "label_quote" :text QUOTE2))) 213 | 214 | ;; apps 215 | (defwidget apps [] 216 | (box :class "genwinh" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" 217 | (box :class "appbox" :orientation "v" :spacing 18 :space-evenly "false" :vexpand "false" :hexpand "false" 218 | (button :style "background-image: url('images/icons/vivaldi.svg');" :class "app_vivaldi" :onclick "~/.config/eww/scripts/open_apps --vd") 219 | (button :style "background-image: url('images/icons/telegram.svg');" :class "app_telegram" :onclick "~/.config/eww/scripts/open_apps --tg") 220 | (button :style "background-image: url('images/icons/discord.svg');" :class "app_discord" :onclick "~/.config/eww/scripts/open_apps --dc") 221 | (button :style "background-image: url('images/icons/terminal.svg');" :class "app_terminal" :onclick "~/.config/eww/scripts/open_apps --tr") 222 | (button :style "background-image: url('images/icons/files.svg');" :class "app_files" :onclick "~/.config/eww/scripts/open_apps --fm")) 223 | (box :class "appbox" :orientation "v" :spacing 18 :space-evenly "false" :vexpand "false" :hexpand "false" 224 | (button :style "background-image: url('images/icons/code.svg');" :class "app_code" :onclick "~/.config/eww/scripts/open_apps --cd") 225 | (button :style "background-image: url('images/icons/krita.svg');" :class "app_krita" :onclick "~/.config/eww/scripts/open_apps --kr") 226 | (button :style "background-image: url('images/icons/virtualbox.svg');" :class "app_vbox" :onclick "~/.config/eww/scripts/open_apps --vb") 227 | (button :style "background-image: url('images/icons/obsidian.svg');" :class "app_obsidian" :onclick "~/.config/eww/scripts/open_apps --ob") 228 | (button :style "background-image: url('images/icons/neovim.svg');" :class "app_neovim" :onclick "~/.config/eww/scripts/open_apps --nv")))) 229 | 230 | ;; power buttons 231 | (defwidget logout [] 232 | (box :class "genwind" :vexpand "false" :hexpand "false" 233 | (button :class "btn_logout" :onclick "openbox --exit" ""))) 234 | (defwidget sleep [] 235 | (box :class "genwine" :vexpand "false" :hexpand "false" 236 | (button :class "btn_sleep" :onclick "systemctl suspend" ""))) 237 | (defwidget reboot [] 238 | (box :class "genwinf" :vexpand "false" :hexpand "false" 239 | (button :class "btn_reboot" :onclick "systemctl reboot" ""))) 240 | (defwidget poweroff [] 241 | (box :class "genwing" :vexpand "false" :hexpand "false" 242 | (button :class "btn_poweroff" :onclick "systemctl poweroff" ""))) 243 | 244 | ;; folders 245 | (defwidget folders [] 246 | (box :class "genwinb" :orientation "v" :spacing 4 :space-evenly "false" :vexpand "false" :hexpand "false" 247 | (box :class "hddbox" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" 248 | (box :space-evenly "false" :vexpand "false" :hexpand "false" 249 | (button :class "hddicon" :onclick "~/.config/eww/scripts/open_apps --fm" "")) 250 | (label :class "fs_sep" :text "|") 251 | (box :space-evenly "false" :vexpand "false" :hexpand "false" 252 | (label :class "hdd_label" :wrap "true" :limit-width 25 :text FREE))) 253 | (box :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" 254 | (button :class "iconfolder1" :onclick "~/.config/eww/scripts/open_folders --docs" "") 255 | (button :class "label_folder1" :onclick "~/.config/eww/scripts/open_folders --docs" "Documents")) 256 | (box :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" 257 | (button :class "iconfolder2" :onclick "~/.config/eww/scripts/open_folders --dl" "") 258 | (button :class "label_folder2" :onclick "~/.config/eww/scripts/open_folders --dl" "Downloads")) 259 | (box :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" 260 | (button :class "iconfolder3" :onclick "~/.config/eww/scripts/open_folders --music" "") 261 | (button :class "label_folder3" :onclick "~/.config/eww/scripts/open_folders --music" "Music")) 262 | (box :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" 263 | (button :class "iconfolder4" :onclick "~/.config/eww/scripts/open_folders --pics" "") 264 | (button :class "label_folder4" :onclick "~/.config/eww/scripts/open_folders --pics" "Pictures")) 265 | (box :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" 266 | (button :class "iconfolder5" :onclick "~/.config/eww/scripts/open_folders --cfg" "ﮛ") 267 | (button :class "label_folder5" :onclick "~/.config/eww/scripts/open_folders --cfg" "~/.config")) 268 | (box :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" 269 | (button :class "iconfolder6" :onclick "~/.config/eww/scripts/open_folders --local" "ﮛ") 270 | (button :class "label_folder6" :onclick "~/.config/eww/scripts/open_folders --local" "~/.local")))) 271 | 272 | ;; workspaces 273 | (defwidget workspaces[] 274 | (box :class "genwinb" :orientation "v" :spacing 25 :space-evenly "false" :vexpand "false" :hexpand "false" 275 | (box :orientation "h" :class "ws_holder" :spacing 18 :halign "center" :space-evenly "false" :vexpand "false" :hexpand "false" 276 | (button :class "ws1" :halign "center" :wrap "true" :onclick "./launch_eww && i3-msg workspace \"1 : \"" "") 277 | (button :class "ws2" :halign "center" :wrap "true" :onclick "./launch_eww && i3-msg workspace \"2 : \"" "") 278 | (button :class "ws3" :halign "center" :wrap "true" :onclick "./launch_eww && i3-msg workspace \"3 : \"" "") 279 | (button :class "ws4" :halign "center" :wrap "true" :onclick "./launch_eww && i3-msg workspace \"4 : 切\"" "切") 280 | (button :class "ws5" :halign "center" :wrap "true" :onclick "./launch_eww && i3-msg workspace \"5 : \"" "")) 281 | (box :orientation "h" :spacing 15 :halign "center" :space-evenly "false" :vexpand "false" :hexpand "false" 282 | (button :class "ws6" :halign "center" :wrap "true" :onclick "./launch_eww && i3-msg workspace \"6 : \"" "") 283 | (button :class "ws7" :halign "center" :wrap "true" :onclick "./launch_eww && i3-msg workspace \"7 : \"" "") 284 | (button :class "ws8" :halign "center" :wrap "true" :onclick "./launch_eww && i3-msg workspace \"8 : \"" "") 285 | (button :class "ws9" :halign "center" :wrap "true" :onclick "./launch_eww && i3-msg workspace \"9 : \"" "") 286 | (button :class "ws10" :halign "center" :wrap "true" :onclick "./launch_eww && i3-msg workspace \"10 : \"" "")))) 287 | 288 | 289 | ;; outers 290 | (defwidget outera[] 291 | (box :style "background:transparent;border-radius:20px;box-shadow:16px 16px 0 0 #282c34;")) 292 | 293 | (defwidget outerb[] 294 | (box :style "background:transparent;border-radius:20px;box-shadow:-16px 16px 0 0 #282c34;")) 295 | 296 | (defwidget outerc[] 297 | (box :style "background:transparent;border-radius:20px;box-shadow:16px -16px 0 0 #282c34;")) 298 | 299 | 300 | ;; ******************************************************************************** 301 | 302 | 303 | 304 | ;; background 305 | (defwindow background :stacking "fg" :focusable "false" :screen 1 306 | :geometry (geometry :x 0 :y 0 :width "1360px" :height "768px") 307 | (bg)) 308 | 309 | ;; profile 310 | (defwindow profile :stacking "fg" :focusable "false" :screen 1 311 | :geometry (geometry :x 109 :y 109 :width 246 :height 326) 312 | (nuser)) 313 | 314 | ;; system 315 | (defwindow system :stacking "fg" :focusable "false" :screen 1 316 | :geometry (geometry :x 365 :y 109 :width 246 :height 204) 317 | (system)) 318 | 319 | ;; clock 320 | (defwindow clock :stacking "fg" :focusable "false" :screen 1 321 | :geometry (geometry :x 365 :y 323 :width 246 :height 102) 322 | (nclock)) 323 | 324 | ;; uptime 325 | (defwindow uptime :stacking "fg" :focusable "false" :screen 1 326 | :geometry (geometry :x 365 :y 221 :width 206 :height 102) 327 | (uptime)) 328 | 329 | ;; music 330 | (defwindow music :stacking "fg" :focusable "false" :screen 1 331 | :geometry (geometry :x 109 :y 434 :width 416 :height 224) 332 | (spotify)) 333 | 334 | ;; github 335 | (defwindow github :stacking "fg" :focusable "false" :screen 1 336 | :geometry (geometry :x 535 :y 567 :width 96 :height 92) 337 | (github)) 338 | 339 | ;; reddit 340 | (defwindow reddit :stacking "fg" :focusable "false" :screen 1 341 | :geometry (geometry :x 641 :y 567 :width 96 :height 92) 342 | (reddit)) 343 | 344 | ;; twitter 345 | (defwindow twitter :stacking "fg" :focusable "false" :screen 1 346 | :geometry (geometry :x 747 :y 567 :width 96 :height 92) 347 | (twitter)) 348 | 349 | ;; youtube 350 | (defwindow youtube :stacking "fg" :focusable "false" :screen 1 351 | :geometry (geometry :x 853 :y 567 :width 96 :height 92) 352 | (youtube)) 353 | 354 | ;; weather 355 | (defwindow weather_info :stacking "fg" :focusable "false" :screen 1 356 | :geometry (geometry :x 341 :y 10 :width 438 :height 59) 357 | (weather_info)) 358 | (defwindow weather_quotes :stacking "fg" :focusable "false" :screen 1 359 | :geometry (geometry :x 461 :y 679 :width 438 :height 99) 360 | (weather_quotes)) 361 | 362 | ;; apps 363 | (defwindow apps :stacking "fg" :focusable "false" :screen 1 364 | :geometry (geometry :x 621 :y 109 :width 126 :height 306) 365 | (apps)) 366 | 367 | ;; mail 368 | (defwindow mail :stacking "fg" :focusable "false" :screen 1 369 | :geometry (geometry :x 747 :y 465 :width 202 :height 92) 370 | (mail)) 371 | 372 | ;; logout 373 | (defwindow logout :stacking "fg" :focusable "false" :screen 1 374 | :geometry (geometry :x 1032 :y 109 :width 104 :height 102) 375 | (logout)) 376 | 377 | ;; sleep 378 | (defwindow sleep :stacking "fg" :focusable "false" :screen 1 379 | :geometry (geometry :x 1147 :y 109 :width 104 :height 102) 380 | (sleep)) 381 | 382 | ;; reboot 383 | (defwindow reboot :stacking "fg" :focusable "false" :screen 1 384 | :geometry (geometry :x 1032 :y 221 :width 104 :height 102) 385 | (reboot)) 386 | 387 | ;; poweroff 388 | (defwindow poweroff :stacking "fg" :focusable "false" :screen 1 389 | :geometry (geometry :x 1147 :y 221 :width 104 :height 102) 390 | (poweroff)) 391 | 392 | ;; folders 393 | (defwindow folders :stacking "fg" :focusable "false" :screen 1 394 | :geometry (geometry :x 747 :y 109 :width 202 :height 346) 395 | (folders)) 396 | 397 | ;; workspaces 398 | (defwindow workspaces :stacking "fg" :focusable "false" :screen 1 399 | :geometry (geometry :x 535 :y 425 :width 202 :height 132) 400 | (workspaces)) 401 | 402 | ;; calendar 403 | (defwindow calendar :stacking "fg" :focusable "false" :screen 1 404 | :geometry (geometry :x 530 :y 38 :width 270 :height 60) 405 | (cal)) 406 | 407 | ;; calendar outer 1 408 | (defwindow roundeda :stacking "fg" :focusable "false" :screen 1 409 | :geometry (geometry :x "630px" :y "7px" :width "32px" :height "32px") 410 | (outera)) 411 | 412 | ;; calendar outer 2 413 | (defwindow roundedb :stacking "fg" :focusable "false" :screen 1 414 | :geometry (geometry :x "662px" :y "7px" :width "32px" :height "32px") 415 | (outerb)) 416 | 417 | ;; profile outer 1 418 | (defwindow roundedc :stacking "fg" :focusable "false" :screen 1 419 | :geometry (geometry :x "355px" :y "403px" :width "32px" :height "32px") 420 | (outerb)) 421 | 422 | ;; clock outer 1 423 | (defwindow roundedd :stacking "fg" :focusable "false" :screen 1 424 | :geometry (geometry :x 611 :y 393 :width 32 :height 32) 425 | (outerb)) 426 | 427 | ;; clock outer 2 428 | (defwindow roundede :stacking "fg" :focusable "false" :screen 1 429 | :geometry (geometry :x 503 :y 425 :width 32 :height 32) 430 | (outerc)) 431 | 432 | ;; apps outer 1 433 | (defwindow roundedf :stacking "fg" :focusable "false" :screen 1 434 | :geometry (geometry :x 715 :y 415 :width 32 :height 32) 435 | (outerc)) 436 | -------------------------------------------------------------------------------- /.config/eww/images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/eww/images/bg.png -------------------------------------------------------------------------------- /.config/eww/images/fox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/eww/images/fox.png -------------------------------------------------------------------------------- /.config/eww/images/icons/code.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.config/eww/images/icons/discord.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/eww/images/icons/files.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /.config/eww/images/icons/firefox.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.config/eww/images/icons/geany.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.config/eww/images/icons/gimp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /.config/eww/images/icons/krita.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.config/eww/images/icons/neovim.svg: -------------------------------------------------------------------------------- 1 | Created with Sketch (http://www.bohemiancoding.com/sketch) -------------------------------------------------------------------------------- /.config/eww/images/icons/obsidian.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /.config/eww/images/icons/telegram.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /.config/eww/images/icons/terminal.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.config/eww/images/icons/virtualbox.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.config/eww/images/icons/vivaldi.svg: -------------------------------------------------------------------------------- 1 | 2 | 13 | 15 | 16 | 18 | image/svg+xml 19 | 21 | 22 | 23 | 24 | 25 | 27 | 33 | 36 | 40 | 41 | 47 | 50 | 54 | 55 | 61 | 64 | 68 | 69 | 75 | 78 | 82 | 83 | 89 | 92 | 96 | 97 | 103 | 106 | 110 | 111 | 117 | 120 | 124 | 125 | 131 | 134 | 138 | 139 | 145 | 148 | 152 | 153 | 154 | 158 | 162 | 166 | 170 | 174 | 175 | -------------------------------------------------------------------------------- /.config/eww/images/music.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/eww/images/music.png -------------------------------------------------------------------------------- /.config/eww/images/profile.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/eww/images/profile.jpg -------------------------------------------------------------------------------- /.config/eww/images/spotify.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/eww/images/spotify.jpg -------------------------------------------------------------------------------- /.config/eww/launch_eww: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ## Files and cmd 4 | FILE="$HOME/.cache/eww_launch.xyz" 5 | EWW="/usr/bin/eww" 6 | 7 | ## Run eww daemon if not running already 8 | if [[ ! `pidof eww` ]]; then 9 | ${EWW} daemon 10 | sleep 1 11 | fi 12 | 13 | ## Open widgets 14 | run_eww() { 15 | ${EWW} open-many \ 16 | background \ 17 | profile \ 18 | system \ 19 | clock \ 20 | music \ 21 | github \ 22 | reddit \ 23 | twitter \ 24 | youtube \ 25 | apps \ 26 | workspaces \ 27 | logout \ 28 | mail \ 29 | sleep \ 30 | reboot \ 31 | poweroff \ 32 | weather_info \ 33 | weather_quotes \ 34 | roundedc \ 35 | roundedd \ 36 | roundede \ 37 | roundedf \ 38 | folders \ 39 | } 40 | 41 | ## Launch or close widgets accordingly 42 | if [[ ! -f "$FILE" ]]; then 43 | touch "$FILE" 44 | run_eww 45 | else 46 | ${EWW} close-all 47 | rm "$FILE" 48 | fi 49 | -------------------------------------------------------------------------------- /.config/eww/launch_eww_cal: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ## Files and cmd 4 | FILE="$HOME/.cache/eww_launch.xyz" 5 | EWW="/usr/bin/eww" 6 | 7 | ## Run eww daemon if not running already 8 | if [[ ! `pidof eww` ]]; then 9 | ${EWW} daemon 10 | sleep 1 11 | fi 12 | 13 | ## Open widgets 14 | run_eww() { 15 | ${EWW} open-many \ 16 | roundeda \ 17 | roundedb \ 18 | calendar 19 | } 20 | 21 | ## Launch or close widgets accordingly 22 | if [[ ! -f "$FILE" ]]; then 23 | touch "$FILE" 24 | run_eww 25 | else 26 | ${EWW} close-all 27 | rm "$FILE" 28 | fi 29 | -------------------------------------------------------------------------------- /.config/eww/scripts/mails: -------------------------------------------------------------------------------- 1 | #!/bin/python 2 | 3 | import imaplib 4 | obj = imaplib.IMAP4_SSL('imap.gmail.com',993) 5 | obj.login('MAIL','PASSWORD') # write your email and password 6 | obj.select() 7 | print(len(obj.search(None, 'UnSeen')[1][0].split())) 8 | -------------------------------------------------------------------------------- /.config/eww/scripts/music_info: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ## Get data 4 | # STATUS="$(mpc status)" 5 | # COVER="/tmp/.music_cover.jpg" 6 | # MUSIC_DIR="$HOME/Music" 7 | 8 | # DATA = `dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:org.mpris.MediaPlayer2.Player string:Metadata` 9 | 10 | # Playing, Paused or Stopped 11 | # album = `dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:org.mpris.MediaPlayer2.Player string:Metadata | sed -n '/album/{n;p}' | cut -d '"' -f 2 | head -n 1` 12 | 13 | ## Get status 14 | get_status() { 15 | status=`dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:'org.mpris.MediaPlayer2.Player' string:'PlaybackStatus'|egrep -A 1 "string"|cut -b 26-|cut -d '"' -f 1|egrep -v ^$` 16 | if [[ "$(pidof spotify || echo 1)" != "1" ]]; then 17 | if [[ "$status" == "Playing" ]]; then 18 | echo "" 19 | else 20 | echo "喇" 21 | fi 22 | else 23 | echo "" 24 | fi 25 | } 26 | 27 | ## Get song 28 | get_song() { 29 | title=`dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:org.mpris.MediaPlayer2.Player string:Metadata | sed -n '/title/{n;p}' | cut -d '"' -f 2` 30 | if [[ "$(pidof spotify || echo 1)" != "1" ]]; then 31 | echo "$title" 32 | else 33 | echo "Offline" 34 | fi 35 | } 36 | 37 | ## Get artist 38 | get_artist() { 39 | artist=`dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:org.mpris.MediaPlayer2.Player string:Metadata | sed -n '/artist/{n;n;p}' | cut -d '"' -f 2` 40 | if [[ "$(pidof spotify || echo 1)" != "1" ]]; then 41 | echo "$artist" 42 | else 43 | echo "Offline" 44 | fi 45 | } 46 | 47 | ## Get time 48 | get_time() { 49 | time=`mpc status | grep "%)" | awk '{print $4}' | tr -d '(%)'` 50 | if [[ -z "$time" ]]; then 51 | echo "0" 52 | else 53 | echo "$time" 54 | fi 55 | } 56 | get_ctime() { 57 | ctime=`mpc status | grep "#" | awk '{print $3}' | sed 's|/.*||g'` 58 | if [[ -z "$ctime" ]]; then 59 | echo "0:00" 60 | else 61 | echo "$ctime" 62 | fi 63 | } 64 | get_ttime() { 65 | ttime=`mpc -f %time% current` 66 | if [[ -z "$ttime" ]]; then 67 | echo "0:00" 68 | else 69 | echo "$ttime" 70 | fi 71 | } 72 | 73 | ## Get cover 74 | get_cover() { 75 | art=`dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:org.mpris.MediaPlayer2.Player string:Metadata | sed -n '/artUrl/{n;p}' | cut -d '"' -f 2` 76 | if [[ "$(pidof spotify || echo 1)" != "1" ]]; then 77 | echo "$art" 78 | else 79 | echo "images/spotify.jpg" 80 | fi 81 | } 82 | 83 | # Toggle 84 | toggle() { 85 | if [[ "$(pidof spotify || echo 1)" != "1" ]]; then 86 | dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause 87 | fi 88 | } 89 | 90 | ## Execute accordingly 91 | if [[ "$1" == "--song" ]]; then 92 | get_song 93 | elif [[ "$1" == "--artist" ]]; then 94 | get_artist 95 | elif [[ "$1" == "--status" ]]; then 96 | get_status 97 | elif [[ "$1" == "--time" ]]; then 98 | get_time 99 | elif [[ "$1" == "--ctime" ]]; then 100 | get_ctime 101 | elif [[ "$1" == "--ttime" ]]; then 102 | get_ttime 103 | elif [[ "$1" == "--cover" ]]; then 104 | get_cover 105 | elif [[ "$1" == "--toggle" ]]; then 106 | toggle 107 | elif [[ "$1" == "--next" ]]; then 108 | { dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next; get_cover; } 109 | elif [[ "$1" == "--prev" ]]; then 110 | { dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous; get_cover; } 111 | fi 112 | -------------------------------------------------------------------------------- /.config/eww/scripts/open_apps: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ## Open Applications 4 | FILE="$HOME/.cache/eww_launch.xyz" 5 | EWW="/usr/bin/eww" 6 | 7 | if [[ "$1" == "--vd" ]]; then 8 | ${EWW} close-all && rm -rf "$FILE" && vivaldi-stable & 9 | 10 | elif [[ "$1" == "--tg" ]]; then 11 | ${EWW} close-all && rm -rf "$FILE" && telegram-desktop & 12 | 13 | elif [[ "$1" == "--dc" ]]; then 14 | ${EWW} close-all && rm -rf "$FILE" && discord & 15 | 16 | elif [[ "$1" == "--tr" ]]; then 17 | ${EWW} close-all && rm -rf "$FILE" && urxvt & 18 | 19 | elif [[ "$1" == "--fm" ]]; then 20 | ${EWW} close-all && rm -rf "$FILE" && thunar ~ & 21 | 22 | elif [[ "$1" == "--nv" ]]; then 23 | ${EWW} close-all && rm -rf "$FILE" && urxvt -e sh -c "nvim" & 24 | 25 | elif [[ "$1" == "--cd" ]]; then 26 | ${EWW} close-all && rm -rf "$FILE" && code & 27 | 28 | elif [[ "$1" == "--kr" ]]; then 29 | ${EWW} close-all && rm -rf "$FILE" && krita & 30 | 31 | elif [[ "$1" == "--vb" ]]; then 32 | ${EWW} close-all && rm -rf "$FILE" && virtualbox & 33 | 34 | fi 35 | -------------------------------------------------------------------------------- /.config/eww/scripts/open_folders: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ## Open folders in thunar 4 | FILE="$HOME/.cache/eww_launch.xyz" 5 | EWW="/usr/bin/eww" 6 | 7 | if [[ "$1" == "--dl" ]]; then 8 | ${EWW} close-all && rm -rf "$FILE" && thunar ~/Downloads & 9 | 10 | elif [[ "$1" == "--docs" ]]; then 11 | ${EWW} close-all && rm -rf "$FILE" && thunar ~/Documents & 12 | 13 | elif [[ "$1" == "--music" ]]; then 14 | ${EWW} close-all && rm -rf "$FILE" && thunar ~/Music & 15 | 16 | elif [[ "$1" == "--pics" ]]; then 17 | ${EWW} close-all && rm -rf "$FILE" && thunar ~/Pictures & 18 | 19 | elif [[ "$1" == "--cfg" ]]; then 20 | ${EWW} close-all && rm -rf "$FILE" && thunar ~/.config & 21 | 22 | elif [[ "$1" == "--local" ]]; then 23 | ${EWW} close-all && rm -rf "$FILE" && thunar ~/.local/share & 24 | 25 | fi 26 | -------------------------------------------------------------------------------- /.config/eww/scripts/open_links: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ## Open links in firefox 4 | FILE="$HOME/.cache/eww_launch.xyz" 5 | EWW="/usr/bin/eww" 6 | cmd="xdg-open" 7 | 8 | if [[ "$1" == "--mail" ]]; then 9 | ${EWW} close-all && rm -rf "$FILE" && $cmd "https://mail.google.com" 10 | 11 | elif [[ "$1" == "--gh" ]]; then 12 | ${EWW} close-all && rm -rf "$FILE" && $cmd "https://github.com" 13 | 14 | elif [[ "$1" == "--rd" ]]; then 15 | ${EWW} close-all && rm -rf "$FILE" && $cmd "https://reddit.com" 16 | 17 | elif [[ "$1" == "--tw" ]]; then 18 | ${EWW} close-all && rm -rf "$FILE" && $cmd "https://twitter.com" 19 | 20 | elif [[ "$1" == "--yt" ]]; then 21 | ${EWW} close-all && rm -rf "$FILE" && $cmd "https://youtube.com" 22 | 23 | fi 24 | -------------------------------------------------------------------------------- /.config/eww/scripts/sys_info: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ## Files and Data 4 | PREV_TOTAL=0 5 | PREV_IDLE=0 6 | cpuFile="/tmp/.cpu_usage" 7 | 8 | ## Get CPU usage 9 | get_cpu() { 10 | if [[ -f "${cpuFile}" ]]; then 11 | fileCont=$(cat "${cpuFile}") 12 | PREV_TOTAL=$(echo "${fileCont}" | head -n 1) 13 | PREV_IDLE=$(echo "${fileCont}" | tail -n 1) 14 | fi 15 | 16 | CPU=(`cat /proc/stat | grep '^cpu '`) # Get the total CPU statistics. 17 | unset CPU[0] # Discard the "cpu" prefix. 18 | IDLE=${CPU[4]} # Get the idle CPU time. 19 | 20 | # Calculate the total CPU time. 21 | TOTAL=0 22 | 23 | for VALUE in "${CPU[@]:0:4}"; do 24 | let "TOTAL=$TOTAL+$VALUE" 25 | done 26 | 27 | if [[ "${PREV_TOTAL}" != "" ]] && [[ "${PREV_IDLE}" != "" ]]; then 28 | # Calculate the CPU usage since we last checked. 29 | let "DIFF_IDLE=$IDLE-$PREV_IDLE" 30 | let "DIFF_TOTAL=$TOTAL-$PREV_TOTAL" 31 | let "DIFF_USAGE=(1000*($DIFF_TOTAL-$DIFF_IDLE)/$DIFF_TOTAL+5)/10" 32 | echo "${DIFF_USAGE}" 33 | else 34 | echo "?" 35 | fi 36 | 37 | # Remember the total and idle CPU times for the next check. 38 | echo "${TOTAL}" > "${cpuFile}" 39 | echo "${IDLE}" >> "${cpuFile}" 40 | } 41 | 42 | ## Get Used memory 43 | get_mem() { 44 | printf "%.0f\n" $(free -m | grep Mem | awk '{print ($3/$2)*100}') 45 | } 46 | 47 | ## Get Brightness 48 | get_blight() { 49 | CARD=`ls /sys/class/backlight | head -n 1` 50 | 51 | if [[ "$CARD" == *"intel_"* ]]; then 52 | BNESS=`xbacklight -get` 53 | LIGHT=${BNESS%.*} 54 | else 55 | BNESS=`blight -d $CARD get brightness` 56 | PERC="$(($BNESS*100/255))" 57 | LIGHT=${PERC%.*} 58 | fi 59 | 60 | echo "$LIGHT" 61 | } 62 | 63 | ## Get Battery 64 | get_battery() { 65 | BAT=`ls /sys/class/power_supply | grep BAT | head -n 1` 66 | cat /sys/class/power_supply/${BAT}/capacity 67 | } 68 | 69 | ## Execute accordingly 70 | if [[ "$1" == "--cpu" ]]; then 71 | get_cpu 72 | elif [[ "$1" == "--mem" ]]; then 73 | get_mem 74 | elif [[ "$1" == "--blight" ]]; then 75 | get_blight 76 | elif [[ "$1" == "--bat" ]]; then 77 | get_battery 78 | fi 79 | -------------------------------------------------------------------------------- /.config/eww/scripts/weather_info: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ## Collect data 4 | cache_dir="$HOME/.cache/eww/weather" 5 | cache_weather_stat=${cache_dir}/weather-stat 6 | cache_weather_degree=${cache_dir}/weather-degree 7 | cache_weather_quote=${cache_dir}/weather-quote 8 | cache_weather_hex=${cache_dir}/weather-hex 9 | cache_weather_icon=${cache_dir}/weather-icon 10 | 11 | ## Weather data 12 | KEY="API_KEY" 13 | ID="CITY_ID" 14 | UNIT="metric" # Available options : 'metric' or 'imperial' 15 | 16 | ## Make cache dir 17 | if [[ ! -d "$cache_dir" ]]; then 18 | mkdir -p ${cache_dir} 19 | fi 20 | 21 | ## Get data 22 | get_weather_data() { 23 | weather=`curl -sf "http://api.openweathermap.org/data/2.5/weather?APPID=$KEY&id=$ID&units=$UNIT"` 24 | echo ${weather} 25 | 26 | if [ ! -z "$weather" ]; then 27 | weather_temp=`echo "$weather" | jq ".main.temp" | cut -d "." -f 1` 28 | weather_icon_code=`echo "$weather" | jq -r ".weather[].icon" | head -1` 29 | weather_description=`echo "$weather" | jq -r ".weather[].description" | head -1 | sed -e "s/\b\(.\)/\u\1/g"` 30 | 31 | #Big long if statement of doom 32 | if [ "$weather_icon_code" == "50d" ]; then 33 | weather_icon=" " 34 | weather_quote="Forecast says it's misty \nMake sure you don't get lost on your way..." 35 | weather_hex="#84afdb" 36 | elif [ "$weather_icon_code" == "50n" ]; then 37 | weather_icon=" " 38 | weather_quote="Forecast says it's a misty night \nDon't go anywhere tonight or you might get lost..." 39 | weather_hex="#84afdb" 40 | elif [ "$weather_icon_code" == "01d" ]; then 41 | weather_icon=" " 42 | weather_quote="It's a sunny day, gonna be fun! \nDon't go wandering all by yourself though..." 43 | weather_hex="#ffd86b" 44 | elif [ "$weather_icon_code" == "01n" ]; then 45 | weather_icon=" " 46 | weather_quote="It's a clear night \nYou might want to take a evening stroll to relax..." 47 | weather_hex="#fcdcf6" 48 | elif [ "$weather_icon_code" == "02d" ]; then 49 | weather_icon=" " 50 | weather_quote="It's cloudy, sort of gloomy \nYou'd better get a book to read..." 51 | weather_hex="#adadff" 52 | elif [ "$weather_icon_code" == "02n" ]; then 53 | weather_icon=" " 54 | weather_quote="It's a cloudy night \nHow about some hot chocolate and a warm bed?" 55 | weather_hex="#adadff" 56 | elif [ "$weather_icon_code" == "03d" ]; then 57 | weather_icon=" " 58 | weather_quote="It's cloudy, sort of gloomy \nYou'd better get a book to read..." 59 | weather_hex="#adadff" 60 | elif [ "$weather_icon_code" == "03n" ]; then 61 | weather_icon=" " 62 | weather_quote="It's a cloudy night \nHow about some hot chocolate and a warm bed?" 63 | weather_hex="#adadff" 64 | elif [ "$weather_icon_code" == "04d" ]; then 65 | weather_icon=" " 66 | weather_quote="It's cloudy, sort of gloomy \nYou'd better get a book to read..." 67 | weather_hex="#adadff" 68 | elif [ "$weather_icon_code" == "04n" ]; then 69 | weather_icon=" " 70 | weather_quote="It's a cloudy night \nHow about some hot chocolate and a warm bed?" 71 | weather_hex="#adadff" 72 | elif [ "$weather_icon_code" == "09d" ]; then 73 | weather_icon=" " 74 | weather_quote="It's rainy, it's a great day! \nGet some ramen and watch as the rain falls..." 75 | weather_hex="#6b95ff" 76 | elif [ "$weather_icon_code" == "09n" ]; then 77 | weather_icon=" " 78 | weather_quote=" It's gonna rain tonight it seems \nMake sure your clothes aren't still outside..." 79 | weather_hex="#6b95ff" 80 | elif [ "$weather_icon_code" == "10d" ]; then 81 | weather_icon=" " 82 | weather_quote="It's rainy, it's a great day! \nGet some ramen and watch as the rain falls..." 83 | weather_hex="#6b95ff" 84 | elif [ "$weather_icon_code" == "10n" ]; then 85 | weather_icon=" " 86 | weather_quote=" It's gonna rain tonight it seems \nMake sure your clothes aren't still outside..." 87 | weather_hex="#6b95ff" 88 | elif [ "$weather_icon_code" == "11d" ]; then 89 | weather_icon="" 90 | weather_quote="There's storm for forecast today \nMake sure you don't get blown away..." 91 | weather_hex="#ffeb57" 92 | elif [ "$weather_icon_code" == "11n" ]; then 93 | weather_icon="" 94 | weather_quote="There's gonna be storms tonight \nMake sure you're warm in bed and the windows are shut..." 95 | weather_hex="#ffeb57" 96 | elif [ "$weather_icon_code" == "13d" ]; then 97 | weather_icon=" " 98 | weather_quote="It's gonna snow today \nYou'd better wear thick clothes and make a snowman as well!" 99 | weather_hex="#e3e6fc" 100 | elif [ "$weather_icon_code" == "13n" ]; then 101 | weather_icon=" " 102 | weather_quote="It's gonna snow tonight \nMake sure you get up early tomorrow to see the sights..." 103 | weather_hex="#e3e6fc" 104 | elif [ "$weather_icon_code" == "40d" ]; then 105 | weather_icon=" " 106 | weather_quote="Forecast says it's misty \nMake sure you don't get lost on your way..." 107 | weather_hex="#84afdb" 108 | elif [ "$weather_icon_code" == "40n" ]; then 109 | weather_icon=" " 110 | weather_quote="Forecast says it's a misty night \nDon't go anywhere tonight or you might get lost..." 111 | weather_hex="#84afdb" 112 | else 113 | weather_icon=" " 114 | weather_quote="Sort of odd, I don't know what to forecast \nMake sure you have a good time!" 115 | weather_hex="#adadff" 116 | fi 117 | echo "$weather_icon" > ${cache_weather_icon} 118 | echo "$weather_description" > ${cache_weather_stat} 119 | echo "$weather_temp""°C" > ${cache_weather_degree} 120 | echo -e "$weather_quote" > ${cache_weather_quote} 121 | echo "$weather_hex" > ${cache_weather_hex} 122 | else 123 | echo "Weather Unavailable" > ${cache_weather_stat} 124 | echo " " > ${cache_weather_icon} 125 | echo -e "Ah well, no weather huh? \nEven if there's no weather, it's gonna be a great day!" > ${cache_weather_quote} 126 | echo "-" > ${cache_weather_degree} 127 | echo "#adadff" > ${tcache_weather_hex} 128 | fi 129 | } 130 | 131 | ## Execute 132 | if [[ "$1" == "--getdata" ]]; then 133 | get_weather_data 134 | elif [[ "$1" == "--icon" ]]; then 135 | cat ${cache_weather_icon} 136 | elif [[ "$1" == "--temp" ]]; then 137 | cat ${cache_weather_degree} 138 | elif [[ "$1" == "--hex" ]]; then 139 | cat ${cache_weather_hex} 140 | elif [[ "$1" == "--stat" ]]; then 141 | cat ${cache_weather_stat} 142 | elif [[ "$1" == "--quote" ]]; then 143 | cat ${cache_weather_quote} | head -n1 144 | elif [[ "$1" == "--quote2" ]]; then 145 | cat ${cache_weather_quote} | tail -n1 146 | fi 147 | 148 | -------------------------------------------------------------------------------- /.config/flameshot/flameshot.ini: -------------------------------------------------------------------------------- 1 | [General] 2 | checkForUpdates=false 3 | contrastOpacity=188 4 | contrastUiColor=#5c5c5c 5 | disabledTrayIcon=false 6 | drawColor=#ff0000 7 | drawThickness=3 8 | savePath=/home/dustyn/Pictures 9 | savePathFixed=false 10 | showStartupLaunchMessage=false 11 | startupLaunch=false 12 | uiColor=#292929 13 | 14 | [Shortcuts] 15 | TYPE_ARROW=A 16 | TYPE_CIRCLE=C 17 | TYPE_CIRCLECOUNT= 18 | TYPE_COMMIT_CURRENT_TOOL=Ctrl+Return 19 | TYPE_COPY=Ctrl+C 20 | TYPE_DELETE_CURRENT_TOOL=Del 21 | TYPE_DRAWER=D 22 | TYPE_EXIT=Ctrl+Q 23 | TYPE_MARKER=M 24 | TYPE_MOVESELECTION=Ctrl+M 25 | TYPE_MOVE_DOWN=Down 26 | TYPE_MOVE_LEFT=Left 27 | TYPE_MOVE_RIGHT=Right 28 | TYPE_MOVE_UP=Up 29 | TYPE_OPEN_APP=Ctrl+O 30 | TYPE_PENCIL=P 31 | TYPE_PIN= 32 | TYPE_PIXELATE=B 33 | TYPE_RECTANGLE=R 34 | TYPE_REDO=Ctrl+Shift+Z 35 | TYPE_RESIZE_DOWN=Shift+Down 36 | TYPE_RESIZE_LEFT=Shift+Left 37 | TYPE_RESIZE_RIGHT=Shift+Right 38 | TYPE_RESIZE_UP=Shift+Up 39 | TYPE_SAVE=Ctrl+S 40 | TYPE_SELECTION=S 41 | TYPE_SELECTIONINDICATOR= 42 | TYPE_SELECT_ALL=Ctrl+A 43 | TYPE_TEXT=T 44 | TYPE_TOGGLE_PANEL=Space 45 | TYPE_UNDO=Ctrl+Z 46 | -------------------------------------------------------------------------------- /.config/gtk-3.0/bookmarks: -------------------------------------------------------------------------------- 1 | file:///home/dustyn/Downloads 2 | file:///home/dustyn/Books 3 | file:///home/dustyn/Pictures 4 | file:///home/dustyn/Music 5 | file:///home/dustyn/Videos 6 | -------------------------------------------------------------------------------- /.config/gtk-3.0/settings.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | gtk-theme-name=Qogir 3 | gtk-application-prefer-dark-theme=true 4 | gtk-enable-animations=true 5 | gtk-font-name=Iosevka 10 6 | gtk-icon-theme-name=candy-icons 7 | gtk-toolbar-style=GTK_TOOLBAR_BOTH 8 | gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR 9 | gtk-button-images=1 10 | gtk-menu-images=1 11 | gtk-enable-event-sounds=1 12 | gtk-enable-input-feedback-sounds=1 13 | gtk-xft-antialias=1 14 | gtk-xft-hinting=1 15 | gtk-xft-hintstyle=hintfull 16 | gtk-xft-rgba=none 17 | -------------------------------------------------------------------------------- /.config/i3/config: -------------------------------------------------------------------------------- 1 | # This file has been auto-generated by i3-config-wizard(1). 2 | # It will not be overwritten, so edit it as you like. 3 | # 4 | # Should you change your keyboard layout some time, delete 5 | # this file and re-run i3-config-wizard(1). 6 | # 7 | 8 | # class border backgr. text indicator child_border 9 | client.focused #4c7899 #285577 #ffffff #2e9ef4 #285577 10 | client.focused_inactive #333333 #5f676a #ffffff #484e50 #5f676a 11 | client.unfocused #333333 #222222 #888888 #292d2e #222222 12 | client.urgent #2f343a #900000 #ffffff #900000 #900000 13 | client.placeholder #000000 #0c0c0c #ffffff #000000 #0c0c0c 14 | 15 | client.background #ffffff 16 | 17 | # i3 config file (v4) 18 | # 19 | # Please see https://i3wm.org/docs/userguide.html for a complete reference! 20 | 21 | focus_on_window_activation focus 22 | 23 | # Main 24 | set $rofi ~/.config/rofi 25 | set $term urxvt 26 | set $eww $HOME/.config/eww 27 | set $wallpaper $HOME/.config/wallpaper 28 | set $dunst $HOME/.config/dunst 29 | set $picom $HOME/.config/picom 30 | set $lemonbar "~/.config/lemonbar/bar | lemonbar -p -n 'Lemonbar' -a 25 -f 'Iosevka Medium:pixelsize=14' -f 'Hack Nerd Font:pixelsize=15' | while read line; do eval '${line}'; done && notify-send -u low 'Lemonbar' 'Your statusbar was stopped' || notify-send -u low 'Lemonbar' 'Something went wrong'" 31 | 32 | # Use super/alt/control key 33 | set $mod Mod4 34 | set $alt Mod1 35 | set $control Control 36 | set $shift Shift 37 | set $larrow Left 38 | set $rarrow Right 39 | 40 | # GTK theme 41 | set $theme Dracula 42 | set $icon Flatery-Dark 43 | set $cursor Breeze 44 | set $font Roboto 45 | set $mono Terminus 46 | set $size_font 9 47 | 48 | # Font 49 | font pango:$font $size_font 50 | 51 | # Font for window titles. Will also be used by the bar unless a different font 52 | # is used in the bar {} block below. 53 | font pango:monospace 8 54 | 55 | # Wallpapers 56 | exec --no-startup-id feh -z --bg-scale $wallpaper 57 | 58 | # This font is widely installed, provides lots of unicode glyphs, right-to-left 59 | # text rendering and scalability on retina/hidpi displays (thanks to pango). 60 | # font pango:DejaVu Sans Mono 8 61 | 62 | # Start XDG autostart .desktop files using dex. See also 63 | # https://wiki.archlinux.org/index.php/XDG_Autostart 64 | exec --no-startup-id dex --autostart --environment i3 65 | 66 | # The combination of xss-lock, nm-applet and pactl is a popular choice, so 67 | # they are included here as an example. Modify as you see fit. 68 | 69 | # xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the 70 | # screen before suspend. Use loginctl lock-session to lock your screen. 71 | # exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork 72 | 73 | # NetworkManager is the most popular way to manage wireless networks on Linux, 74 | # and nm-applet is a desktop environment-independent system tray GUI for it. 75 | exec_always --no-startup-id pkill picom; picom --experimental-backends --backend glx --no-use-damage --config $picom/picom.conf & 76 | exec --no-startup-id nm-applet 77 | exec_always --no-startup-id dunst -config $dunst/dunstrc 78 | 79 | # Use pactl to adjust volume in PulseAudio. 80 | set $refresh_i3status killall -SIGUSR1 i3status 81 | # bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status 82 | # bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status 83 | # bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status 84 | # bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status 85 | 86 | # Use Mouse+$mod to drag floating windows to their wanted position 87 | floating_modifier $mod 88 | 89 | # start a terminal 90 | bindsym $mod+Return exec i3-sensible-terminal 91 | 92 | # kill focused window 93 | bindsym $mod+Shift+q kill 94 | 95 | # change focus 96 | bindsym $mod+j focus left 97 | bindsym $mod+k focus down 98 | bindsym $mod+l focus up 99 | bindsym $mod+semicolon focus right 100 | 101 | # alternatively, you can use the cursor keys: 102 | bindsym $mod+Left focus left 103 | bindsym $mod+Down focus down 104 | bindsym $mod+Up focus up 105 | bindsym $mod+Right focus right 106 | 107 | # move focused window 108 | bindsym $mod+Shift+j move left 109 | bindsym $mod+Shift+k move down 110 | bindsym $mod+Shift+l move up 111 | bindsym $mod+Shift+semicolon move right 112 | 113 | # alternatively, you can use the cursor keys: 114 | bindsym $mod+Shift+Left move left 115 | bindsym $mod+Shift+Down move down 116 | bindsym $mod+Shift+Up move up 117 | bindsym $mod+Shift+Right move right 118 | 119 | # split in horizontal orientation 120 | bindsym $mod+h split h 121 | 122 | # split in vertical orientation 123 | bindsym $mod+v split v 124 | 125 | # enter fullscreen mode for the focused container 126 | bindsym $mod+f fullscreen toggle 127 | 128 | # change container layout (stacked, tabbed, toggle split) 129 | bindsym $mod+s layout stacking 130 | bindsym $mod+w layout tabbed 131 | bindsym $mod+e layout toggle split 132 | 133 | # toggle tiling / floating 134 | bindsym $mod+Shift+space floating toggle 135 | 136 | # change focus between tiling / floating windows 137 | bindsym $mod+space focus mode_toggle 138 | 139 | # focus the parent container 140 | bindsym $mod+a focus parent 141 | 142 | # focus the child container 143 | bindsym $mod+d focus child 144 | 145 | # Define names for default workspaces for which we configure key bindings later on. 146 | # We use variables to avoid repeating the names in multiple places. 147 | set $ws1 "1 : " 148 | set $ws2 "2 : " 149 | set $ws3 "3 : " 150 | set $ws4 "4 : " 151 | set $ws5 "5 : " 152 | set $ws6 "6 : " 153 | set $ws7 "7 : " 154 | set $ws8 "8 : " 155 | set $ws9 "9 : " 156 | set $ws10 "10 : " 157 | 158 | # switch to workspace (workspace number) 159 | bindsym $mod+1 workspace $ws1 160 | bindsym $mod+2 workspace $ws2 161 | bindsym $mod+3 workspace $ws3 162 | bindsym $mod+4 workspace $ws4 163 | bindsym $mod+5 workspace $ws5 164 | bindsym $mod+6 workspace $ws6 165 | bindsym $mod+7 workspace $ws7 166 | bindsym $mod+8 workspace $ws8 167 | bindsym $mod+9 workspace $ws9 168 | bindsym $mod+0 workspace $ws10 169 | 170 | # move focused container to workspace 171 | bindsym $mod+Shift+1 move container to workspace $ws1 172 | bindsym $mod+Shift+2 move container to workspace $ws2 173 | bindsym $mod+Shift+3 move container to workspace $ws3 174 | bindsym $mod+Shift+4 move container to workspace $ws4 175 | bindsym $mod+Shift+5 move container to workspace $ws5 176 | bindsym $mod+Shift+6 move container to workspace $ws6 177 | bindsym $mod+Shift+7 move container to workspace $ws7 178 | bindsym $mod+Shift+8 move container to workspace $ws8 179 | bindsym $mod+Shift+9 move container to workspace $ws9 180 | bindsym $mod+Shift+0 move container to workspace $ws10 181 | 182 | bindsym $alt+Control+D workspace next 183 | bindsym $alt+Control+A workspace prev 184 | # reload the configuration file 185 | bindsym $mod+Shift+c reload 186 | # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) 187 | bindsym $mod+Shift+r restart 188 | 189 | # resize window (you can also use the mouse for that) 190 | mode "resize" { 191 | # These bindings trigger as soon as you enter the resize mode 192 | 193 | # Pressing left will shrink the window’s width. 194 | # Pressing right will grow the window’s width. 195 | # Pressing up will shrink the window’s height. 196 | # Pressing down will grow the window’s height. 197 | bindsym j resize shrink width 10 px or 10 ppt 198 | bindsym k resize grow height 10 px or 10 ppt 199 | bindsym l resize shrink height 10 px or 10 ppt 200 | bindsym semicolon resize grow width 10 px or 10 ppt 201 | 202 | # same bindings, but for the arrow keys 203 | bindsym Left resize shrink width 10 px or 10 ppt 204 | bindsym Down resize grow height 10 px or 10 ppt 205 | bindsym Up resize shrink height 10 px or 10 ppt 206 | bindsym Right resize grow width 10 px or 10 ppt 207 | 208 | bindsym $shift+j resize shrink width 1 px or 1 ppt 209 | bindsym $shift+k resize grow height 1 px or 1 ppt 210 | bindsym $shift+l resize shrink height 1 px or 1 ppt 211 | bindsym $shift+semicolon resize grow width 1 px or 1 ppt 212 | 213 | bindsym $shift+Left resize shrink width 1 px or 1 ppt 214 | bindsym $shift+Down resize grow height 1 px or 1 ppt 215 | bindsym $shift+Up resize shrink height 1 px or 1 ppt 216 | bindsym $shift+Right resize grow width 1 px or 1 ppt 217 | # back to normal: Enter or Escape or $mod+r 218 | bindsym Return mode "default" 219 | bindsym Escape mode "default" 220 | bindsym $mod+r mode "default" 221 | } 222 | 223 | bindsym $mod+r mode "resize" 224 | 225 | ########## 226 | # Lemonbar 227 | ########## 228 | 229 | # On start 230 | exec_always --no-startup-id pkill lemonbar 231 | exec_always --no-startup-id $lemonbar 232 | 233 | # Start lemonbar 234 | bindsym $mod+$shift+A exec --no-startup-id $lemonbar 235 | 236 | # Close lemonbar 237 | bindsym $mod+$shift+D exec --no-startup-id pkill lemonbar 238 | 239 | ################# 240 | # Spitify hotkeys 241 | ################# 242 | 243 | # Next 244 | bindsym $mod+F8 exec --no-startup-id ~/.config/eww/scripts/music_info --next 245 | 246 | # Prev 247 | bindsym $mod+F6 exec --no-startup-id ~/.config/eww/scripts/music_info --prev 248 | 249 | # Toggle 250 | bindsym $mod+F7 exec --no-startup-id ~/.config/eww/scripts/music_info --toggle 251 | 252 | ################ 253 | # Screen Capture 254 | ################ 255 | 256 | # Fullscreen screenshot 257 | bindsym Print exec --no-startup-id maim --hidecursor | tee ~/Pictures/Screenshots/$(date "+Screenshot-%G-%m-%d_%H.%M.%S").png | xclip -selection clipboard -t image/png 258 | 259 | # App or area screenshot 260 | bindsym $control+Print exec --no-startup-id maim -s --hidecursor | tee ~/Pictures/Screenshots/$(date "+Screenshot-%G-%m-%d_%H.%M.%S").png | xclip -selection clipboard -t image/png 261 | 262 | # Flameshot binding 263 | bindsym $control+$shift+Print exec --no-startup-id flameshot gui 264 | 265 | ############################## 266 | # Scratchpad and window hiding 267 | ############################## 268 | 269 | # bindsym $mod+/ move scratchpad 270 | # bindsym $mod+$shift+/ scratchpad show 271 | 272 | # Workspace 1 [terminal] 273 | for_window [class="urxvt"] focus 274 | 275 | # Workspace 2 [browser] 276 | for_window [class="Vivaldi|Tor Browser|Tor Browser Launcher Settings"] move to workspace $ws2, focus 277 | 278 | # Workspace 3 [VScode] 279 | for_window [class="code"] move to workspace $ws3, focus 280 | 281 | # Workspace 4 [telegram] 282 | for_window [class="TelegramDesktop"] move to workspace $ws4, focus 283 | 284 | # Workspace 5 [media] 285 | for_window [class="Spotify"] move to workspace $ws5, focus 286 | 287 | # Workspace 6 [office] 288 | for_window [class="Wpspdf|Wpp|Wps|Et|obsidian"] move to workspace $ws6, focus 289 | 290 | # Workspace 7 [pc] 291 | for_window [class="lxappearance"] move to workspace $ws7, floating enable, focus 292 | for_window [class="Thunar|thunar|transmission-gtk"] move to workspace $ws7, floating enable, resize set 800 px 550 px, move right -190px, focus 293 | for_window [class="Filezilla"] move to workspace $ws7, focus 294 | for_window [class="qBittorrent"] move to workspace $ws7, focus 295 | 296 | # Workspace 8 [tools: {art, build, etc}] 297 | for_window [class="imv|krita|Blender"] move to workspace $ws8, focus 298 | for_window [class="discord"] move to workspace $ws8, focus 299 | 300 | # Workspace 9 [games] 301 | for_window [class="Steam|steam_proton*|steam_app*|Zenity|Lutris|league*|explorer*"] move to workspace $ws9, focus 302 | 303 | for_window [title="Steam*|Rockstar Games Launcher"] move to workspace $ws9, focus 304 | for_window [class="osu*"] move to workspace $ws9, focus 305 | for_window [title="Steam Library Folders|Create or select new Steam library folder:*|Criar/Selecionar nova pasta de biblioteca Steam:*|Pastas de biblioteca Steam*"] move to workspace $ws9, floating enable, focus 306 | 307 | ############### 308 | # Rofi bindings 309 | ############### 310 | 311 | # Launch an app 312 | bindsym $mod+F3 exec rofi -no-lazy-grab -show drun -theme "${rofi}/searcher.rasi" -show-icons 313 | 314 | # Active apps 315 | bindsym $alt+Tab exec rofi -no-lazy-grab -show window -theme "${rofi}/active_apps.rasi" -show-icons 316 | 317 | # Powermenu 318 | bindsym $mod+Shift+e exec rofi -modi 'Powermenu:$rofi/powermenu.sh' -theme "${rofi}/powermenu.rasi" -show Powermenu 319 | 320 | bindsym $mod+Shift+p exec i3lock -c 000000 321 | 322 | # Swap between current and last workspace (Mod+Tab) 323 | bindcode $mod+23 workspace back_and_forth 324 | 325 | # Borders for windows 326 | for_window [class=".*"] border pixel 0 327 | 328 | ###### 329 | # Gaps 330 | ###### 331 | 332 | gaps inner 20 333 | gaps outer 4 334 | 335 | hide_edge_borders smart 336 | 337 | smart_gaps on 338 | 339 | smart_borders on 340 | 341 | ###################################### 342 | # color settings for bar and windows # 343 | ###################################### 344 | 345 | # Set colors from Xresources 346 | # Change 'color7' and 'color2' to whatever colors you want i3 to use 347 | # from the generated scheme. 348 | # NOTE: The '#f0f0f0' in the lines below is the color i3 will use if 349 | # it fails to get colors from Xresources. 350 | 351 | # set_from_resource $color0 i3wm.color0 #f0f0f0 352 | # set_from_resource $color2 i3wm.color2 #f0f0f0 353 | # set_from_resource $color7 i3wm.color7 #f0f0f0 354 | # set_from_resource $color8 i3wm.color8 #f0f0f0 355 | 356 | 357 | # class border backgr. text indicator child_border 358 | #client.focused #4C7899 $color2 #FFFFFF #2E9EF4 #ff833a 359 | #client.focused_inactive #333333 #5F676A #FFFFFF #484E50 #5F676A 360 | #client.unfocused #333333 #color0 #888888 #292D2E #222222 361 | #client.urgent #2F343A #900000 #FFFFFF #900000 #900000 362 | #client.placeholder #000000 #0C0C0C #FFFFFF #000000 #0C0C0C 363 | 364 | #end of bar section 365 | 366 | #start of window title bars & borders section 367 | 368 | # green gruvbox 369 | # class border|backgr|text|indicator|child_border 370 | #client.focused $green $green $darkgray $purple $darkgray 371 | #client.focused_inactive $darkgray $darkgray $yellow $purple $darkgray 372 | #client.unfocused $darkgray $darkgray $yellow $purple $darkgray 373 | #client.urgent $red $red $white $red $red 374 | 375 | # blue gruvbox 376 | # class border|backgr|text|indicator|child_border 377 | #client.focused $blue $blue $darkgray $purple $darkgray 378 | #client.focused_inactive $darkgray $darkgray $yellow $purple $darkgray 379 | #client.unfocused $darkgray $darkgray $yellow $purple $darkgray 380 | #client.urgent $red $red $white $red $red 381 | 382 | # end of window title bars & borders section 383 | 384 | ############# 385 | # Volume ctrl 386 | ############# 387 | 388 | # mute/unmute 389 | bindsym $mod+F9 exec --no-startup-id amixer set Master toggle 390 | 391 | # down 392 | bindsym $mod+F10 exec --no-startup-id amixer set Master 5%- 393 | bindsym $mod+$shift+F10 exec --no-startup-id amixer set Master 1%- 394 | 395 | # up 396 | bindsym $mod+F11 exec --no-startup-id amixer set Master 5%+ 397 | bindsym $mod+$shift+F11 exec --no-startup-id amixer set Master 1%+ 398 | 399 | #################### 400 | # Change gaps on fly 401 | #################### 402 | 403 | set $mode_gaps Gaps: (o) outer, (i) inner 404 | set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global) 405 | set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global) 406 | bindsym $mod+Shift+g mode "$mode_gaps" 407 | 408 | mode "$mode_gaps" { 409 | bindsym o mode "$mode_gaps_outer" 410 | bindsym i mode "$mode_gaps_inner" 411 | bindsym Return mode "default" 412 | bindsym Escape mode "default" 413 | } 414 | mode "$mode_gaps_inner" { 415 | bindsym plus gaps inner current plus 5 416 | bindsym minus gaps inner current minus 5 417 | bindsym 0 gaps inner current set 0 418 | 419 | bindsym Shift+plus gaps inner all plus 5 420 | bindsym Shift+minus gaps inner all minus 5 421 | bindsym Shift+0 gaps inner all set 0 422 | 423 | bindsym Return mode "default" 424 | bindsym Escape mode "default" 425 | } 426 | mode "$mode_gaps_outer" { 427 | bindsym plus gaps outer current plus 5 428 | bindsym minus gaps outer current minus 5 429 | bindsym 0 gaps outer current set 0 430 | 431 | bindsym Shift+plus gaps outer all plus 5 432 | bindsym Shift+minus gaps outer all minus 5 433 | bindsym Shift+0 gaps outer all set 0 434 | 435 | bindsym Return mode "default" 436 | bindsym Escape mode "default" 437 | } 438 | 439 | ################# 440 | # Launch terminal 441 | ################# 442 | 443 | bindsym $mod+$shift+t exec $term 444 | 445 | #################### 446 | # Launch eww widgets 447 | #################### 448 | 449 | bindsym $mod+F1 exec --no-startup-id $eww/launch_eww 450 | 451 | ############## 452 | # Hide windows 453 | ############## 454 | 455 | bindsym $mod+q move scratchpad 456 | bindsym $mod+z scratchpad show 457 | 458 | ####### 459 | # DMenu 460 | ####### 461 | 462 | bindsym $mod+$shift+s exec dmenu_run -fn "Iosevka" -nb "#282c34" -nf "#839496" -sb "#839496" -sf "#282c34" 463 | 464 | ######## 465 | # Locker 466 | ######## 467 | 468 | # --ignore-sleep to disable locking on suspend 469 | 470 | exec_always --no-startup-id xss-lock -- betterlockscreen -l blur | while read line; do echo "[$(date '+%D %H:%m:%S')] MESSAGE: ${line}" >> ~/.cache/lock_logs.log; done 471 | 472 | bindsym $mod+$control+l exec --no-startup-id loginctl lock-session 473 | -------------------------------------------------------------------------------- /.config/kitty/kitty.conf: -------------------------------------------------------------------------------- 1 | # Colors 2 | 3 | foreground #839496 4 | background #282c34 5 | 6 | color0 #4b5263 7 | color1 #dc322f 8 | color2 #859900 9 | color3 #b58900 10 | color4 #268bd2 11 | color5 #d33682 12 | color6 #2aa198 13 | color7 #4b5263 14 | color8 #BBBBBB 15 | color9 #cb4b16 16 | color10 #586e75 17 | color11 #657b83 18 | color12 #839496 19 | color13 #6c71c4 20 | color14 #93a1a1 21 | color15 #fdf6e3 22 | 23 | # Tab Bar 24 | 25 | active_tab_foreground #282c34 26 | active_tab_background #979eab 27 | inactive_tab_foreground #abb2bf 28 | inactive_tab_background #282c34 29 | 30 | # Fonts 31 | 32 | font_family Iosevka Expanded 33 | bold_font Iosevka Medium 34 | italic_font Iosevka Italic 35 | bold_italic_font Iosevka Bold Italic 36 | 37 | disable_ligatures never 38 | font_features none 39 | 40 | detect_urls yes 41 | 42 | url_color #7B8887 43 | url_style curly 44 | 45 | url_prefixes http https file ftp gemini irc gopher mailto news git 46 | 47 | open_url_with default 48 | 49 | copy_on_select no 50 | -------------------------------------------------------------------------------- /.config/lemonbar/bar: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ### 4 | # Custom bash bar script for lemonbar-xft 5 | # Created by : Dusty 6 | # From author: 7 | # About Lemonbar. It's a simple, flexible, lightwieght and powerful tool 8 | # that allows you using only a script, a binary and a loop 9 | # to modify all the bar options, manipulate with output and handle commands with external vars and additional scripts 10 | # you may add logs in command handler loop and if conditions 11 | # and it also allows you to create as much bars, as you want each with a specified custom functionality and outlook 12 | ### 13 | 14 | ###### 15 | # Vars 16 | ###### 17 | 18 | ### 19 | # Spotify control 20 | # is binded to eww scripts, so if you want to delete them, then move script and rebind vars 21 | # or just replace them with dbus or playerctl commands 22 | # script already checks, if Spotify is running 23 | eww_scripts="$HOME/.config/eww/scripts" 24 | next="$eww_scripts/music_info --next" 25 | toggle="$eww_scripts/music_info --toggle" 26 | prev="$eww_scripts/music_info --prev" 27 | 28 | # Volume change rate and method 29 | vol_ch="5%" 30 | sound_up="amixer set Master $vol_ch+" 31 | sound_down="amixer set Master $vol_ch-" 32 | sound_toggle="amixer set Master toggle" 33 | 34 | # Arch icon action (you may change icon in main loop) 35 | launch_menu="$HOME/.config/eww/launch_eww" 36 | launch_cal="$HOME/.config/eww/launch_eww_cal" 37 | 38 | # Scroll move 39 | workspace_prev="i3-msg workspace prev" 40 | workspace_next="i3-msg workspace next" 41 | 42 | # Main colors 43 | fg="#abb2bf" 44 | bg="#282c34" 45 | red="#FF0800" #"#dc322f" 46 | yellow="#FFC40C" #"#b58900" 47 | ws_bg="#554b5263" 48 | ws_urgent="#aadc322f" 49 | ws_color=( 50 | "#52E080" 51 | "#DA1212" 52 | "#117dca" 53 | "#32a7d9" 54 | "#23cf5f" 55 | "#B3541E" 56 | "#FFC600" 57 | "#A267AC" 58 | "#B33030" 59 | "#F5F5F5" 60 | ) 61 | 62 | ####### 63 | # Clock 64 | ####### 65 | 66 | ### 67 | # time ;; Time 68 | 69 | mode=`i3-msg -t get_binding_state | cut -d '"' -f 4` 70 | ch_mode="i3-msg mode \"default\"" 71 | clock_out="" 72 | 73 | clock() { 74 | local tmp_mode=$(i3-msg -t get_binding_state | cut -d '"' -f 4) 75 | if [[ $mode != $tmp_mode ]]; then 76 | clock_out="%{A:$ch_mode:} %{F$red}$tmp_mode%{F$fg}%{A}" 77 | mode=$tmp_mode 78 | else 79 | if [[ $mode != "default" ]]; then 80 | clock_out="%{A:$ch_mode:} %{F$yellow}$tmp_mode%{F$fg}%{A}" 81 | else 82 | clock_out="%{A:$launch_cal:} $(date "+%a %b %d, %T")%{A}" 83 | fi 84 | fi 85 | # echo -n "$time" # Clock output 86 | } 87 | 88 | ######### 89 | # Spotify 90 | ######### 91 | 92 | ### 93 | # All actions are binded to eww scripts, so if you want to delete them, then move script and rebind vars 94 | ### 95 | 96 | ### 97 | # artist ;; Artist 98 | # song ;; Song 99 | # music ;; Output info 100 | 101 | get_music() { 102 | if [[ "$(pidof spotify || echo 1)" != "1" ]]; then 103 | artist=`$eww_scripts/music_info --artist` 104 | song=`$eww_scripts/music_info --song` 105 | if [[ -n $artist ]]; then 106 | music="%{A:$toggle:}%{A4:$next:}%{A5:$prev:}  ${artist:0:15}$(if [[ ${#artist} -gt 15 ]]; then echo "..."; fi) - ${song:0:15}$(if [[ ${#song} -gt 15 ]]; then echo "..."; fi) %{A}%{A}%{A}" # Song output 107 | else 108 | music="%{A:$toggle:}%{A4:$next:}%{A5:$prev:}  $song %{A}%{A}%{A}" 109 | fi 110 | else 111 | # if Spotify isn't running 112 | # music="%{A:spotify:}  %{A}" 113 | music="" 114 | fi 115 | echo -n "${music}" 116 | } 117 | 118 | ################### 119 | # Workspace section 120 | ################### 121 | 122 | ### 123 | # x ;; Iterator 124 | # ws_info ;; i3 workspaces info keeper (JSON) 125 | # ws_info_filt ;; Filtred info (ws_info exists on purpose if you'd like to replace my calculation method with jq) 126 | # end ;; Amount of active workspaces 127 | # names_a ;; Workspaces names 128 | # nums_a ;; Workspaces number 129 | # active_a ;; Info about currently selected and visible workspaces (bool) 130 | # ws_name ;; Workspace name (loop var) 131 | # Ws_num ;; Workspace number (loop var) 132 | # is_active ;; Is workspace visible? (loop var) (bool) 133 | # ws ;; Output info 134 | 135 | workspaces() { 136 | local x=1; ws=" " 137 | 138 | local ws_info=$(i3-msg -t get_workspaces) 139 | local ws_info_filt=$(echo "$ws_info" | sed "s/\[//; s/\]//; s/},{/}\n{/g") 140 | 141 | # Faster, but more unstable and looks scary 142 | names_a=$(echo "$ws_info_filt" | cut -d '"' -f 8 | sed "s/://; s/,//") 143 | nums_a=$(echo "$ws_info_filt" | cut -d '"' -f 5 | sed "s/://; s/,//; s/\n/ /") 144 | active_a=$(echo "$ws_info_filt" | cut -d '"' -f 11 | sed "s/://; s/,//") 145 | urgent_a=$(echo "$ws_info_filt" | cut -d '"' -f 29 | sed "s/://; s/}//") 146 | 147 | # More slowly and needs jq, but maybe more stable :) 148 | # names_a=$(echo "$ws_info" | jq ".[].name") 149 | # nums_a=$(echo "$ws_info" | jq ".[].num") 150 | # active_a=$(echo "$ws_info" | jq ".[].visible") 151 | # urgent_a=$(echo "$ws_info" | jq ".[].urgent") 152 | 153 | # Length 154 | end=$(wc -l <<< "$names_a") 155 | while [[ x -le $end ]]; do 156 | ws_name=$(head -n $x <<< $names_a | tail -n 1) 157 | ws_num=$(head -n $x <<< $nums_a | tail -n 1) 158 | is_urgent=$(head -n $x <<< $urgent_a | tail -n 1) 159 | is_active=$(head -n $x <<< $active_a | tail -n 1) 160 | if [[ $is_active == "true" ]]; then 161 | # if is visible 162 | ws="$ws%{A:i3-msg workspace number $ws_num:}%{B$ws_bg}%{F${ws_color[((ws_num-1))]}}%{U${ws_color[((ws_num-1))]}}%{+o} ${ws_name:(-1)} %{-o}%{U-}%{F$fg}%{B-}%{A}" 163 | else 164 | # if isn't visible 165 | if [[ $is_urgent == "true" ]]; then 166 | ws="$ws%{A:i3-msg workspace number $ws_num:}%{B${ws_color[((ws_num-1))]}}%{F$ws_bg} ${ws_name:(-1)} %{F$fg}%{B-}%{A}" 167 | else 168 | ws="$ws%{A:i3-msg workspace number $ws_num:} ${ws_name:(-1)} %{A}" 169 | fi 170 | fi 171 | ((x++)) 172 | done 173 | echo -n $ws # Workspace output 174 | } 175 | 176 | ######## 177 | # Volume 178 | ######## 179 | 180 | ### 181 | # Uses amixer (by wish rewrite on your prefer commands) 182 | # Popups on change 183 | ### 184 | 185 | ### 186 | # l_vol ;; Left 187 | # r_vol ;; Right 188 | # l_state ;; On or off (left) 189 | # r_state ;; On or off (right) 190 | # sym ;; Volume symbol 191 | # t_vol ;; Temp value 192 | # vol ;; Last value 193 | # vol_out ;; Output info 194 | # vol_d ;; Popup volume visibility duration (in cycles) 195 | 196 | vol_popup_delay=3 # in cycles (1 cycle = 0.25sec) 197 | vol_ico=( 198 | "" 199 | "" 200 | "" 201 | ) 202 | 203 | volume() { 204 | local vol_info=$(amixer sget Master) 205 | local l_vol=$(awk -F"[][]" '/Left:/ { print $2 }' <(echo "$vol_info") | sed "s/%//") 206 | local r_vol=$(awk -F"[][]" '/Right:/ { print $2 }' <(echo "$vol_info") | sed "s/%//") 207 | local l_state=$(awk -F"[][]" '/Left:/ { print $4 }' <(echo "$vol_info")) 208 | local r_state=$(awk -F"[][]" '/Right:/ { print $4 }' <(echo "$vol_info")) 209 | if [[ $l_vol == $r_vol ]]; then 210 | t_vol="$l_vol" 211 | else 212 | t_vol="$l_vol/$r_vol" 213 | fi 214 | local sym=$vol_ico[2] 215 | if [[ $l_state == "on" ]] && [[ $r_state == "on" ]]; then 216 | local len=${#vol_ico[@]} 217 | local i=0 218 | while [[ $i -lt $len ]]; do 219 | if [[ $l_vol -le $(((100/($len-1))*$i)) ]]; then 220 | local sym=${vol_ico[i]} 221 | break 222 | fi; 223 | ((i++)) 224 | done 225 | else 226 | local sym="%{F$yellow}ﱝ" 227 | fi 228 | if [[ $vol == $t_vol ]]; then 229 | if [[ $vol_d -lt $vol_popup_delay ]]; then 230 | vol_out="$sym $t_vol%" 231 | ((vol_d++)) 232 | else 233 | vol_out="$sym" 234 | fi 235 | else 236 | vol_out="$sym $t_vol%" 237 | vol_d=1 238 | fi 239 | vol=$t_vol 240 | # echo -n "$output" 241 | } 242 | 243 | ########### 244 | # CPU Usage 245 | ########### 246 | 247 | ### 248 | # It takes 1 second to calculate current usage (4 cycles = 0.25 * 4 = 1 sec) / don't blame me please for making handmade cpu usage calculation usage, it's all in the name of optimization and delayless loop 249 | # It skips some cycles, keeping the last value and after some period of time calculates the general cpu usage (also system and kernel usage included) 250 | # Popups on high change rate (change popup_cpu on 0, if you want always to see cpu usage) 251 | ### 252 | 253 | ### 254 | # cpu_out ;; Output info 255 | 256 | popup_cpu=7 # pop up on overcoming this difference rate between last and current usage (in %) 257 | a_cpu=70 # dangerous usage level (in %) 258 | w_cpu=40 # yellow icon if bigger than this value (in %) 259 | t_cpu=1 # iterator (1 cycle = 0.25 sec) 260 | c_cpu=4 # iteration amound (in cycles) 261 | l_cpu=0 # last cpu usage value (in %) / set average usage if you want to avoid meanless usage showing on start 262 | cpu_out=" " # preinitialization for cpu output 263 | p_cpu=$(grep 'cpu ' /proc/stat) # previous cpu usage value 264 | 265 | cpu_stat() { 266 | if [[ $t_cpu -gt $c_cpu ]]; then 267 | cpu=$(awk '{u=$2+$4; t=$2+$4+$5; if (NR==1){u1=u; t1=t;} else print ($2+$4-u1) * 100 / (t-t1); }' <(grep 'cpu ' /proc/stat) <(echo "$p_cpu") | cut -d "." -f 1) 268 | p_cpu=$(grep 'cpu ' /proc/stat) 269 | t_cpu=1 270 | if [[ $cpu -ge $a_cpu ]]; then 271 | cpu_out="%{F$red} $(echo "$cpu")% %{F$fg}" 272 | else 273 | if [[ $(echo $((cpu-popup_cpu))) -ge $l_cpu ]]; then 274 | cpu_out=" $(echo "$cpu")% " 275 | else 276 | cpu_out=" " 277 | fi 278 | if [[ $cpu -ge $w_cpu ]]; then 279 | cpu_out="%{F$yellow}${cpu_out}%{F$fg}" 280 | fi 281 | fi 282 | l_cpu="$cpu" 283 | else 284 | ((t_cpu++)) 285 | fi 286 | # echo -n " $cpu%" 287 | } 288 | 289 | ########### 290 | # RAM 291 | ########### 292 | 293 | l_ram=$(free -t | awk 'NR == 2 {printf("%.0f"), $3/$2*100}') 294 | ram_popup_delay=4 295 | ram_x=1 296 | a_ram=60 297 | w_ram=40 298 | 299 | ram_stat() { 300 | ram_out=" " 301 | ram=$(free -t | awk 'NR == 2 {printf("%.0f"), $3/$2*100}') 302 | if [[ $(echo $ram | cut -d "." -f 1) -ge $a_ram ]]; then 303 | ram_out="%{F$red}${ram_out}$ram% %{F$fg}" 304 | l_ram=$ram 305 | else 306 | if [[ $l_ram != $ram ]]; then 307 | l_ram=$ram 308 | ram_x=1 309 | fi 310 | if [[ $ram_x -le $ram_popup_delay ]]; then 311 | ram_out="${ram_out}$ram% " 312 | ((ram_x++)) 313 | fi 314 | if [[ $(echo $ram | cut -d "." -f 1) -ge $w_ram ]]; then 315 | ram_out="%{F$yellow}$ram_out%{F$fg}" 316 | fi 317 | fi 318 | } 319 | 320 | 321 | ########### 322 | # Main loop 323 | ########### 324 | 325 | ### 326 | # clock ;; Time 327 | # get_music ;; Spotify 328 | # workspaces ;; Workspaces 329 | # volume ;; Volume 330 | # cpu_stat ;; CPU Usage 331 | 332 | while true; do 333 | volume; cpu_stat; ram_stat; clock; # Used externally to keep and change global vars like last value, iterations and etc. (Output is stored in vars, not via echo) 334 | 335 | # Taskbar 336 | echo "%{c}%{F$fg}%{B-} $clock_out \ 337 | %{l}%{A:$launch_menu:}  %{A}%{A4:$workspace_prev:}%{A5:$workspace_next:}$(workspaces)%{A}%{A}\ 338 | %{r}$(get_music) $cpu_out $ram_out%{A:$sound_toggle:}%{A4:$sound_up:}%{A5:$sound_down:} $vol_out %{A}%{A}%{A}%{F-}%{B-}" 339 | 340 | # Delay (in seconds) 341 | sleep .25 342 | done 343 | 344 | ### 345 | # For more lemonbar-xft info and documentation check this link below: 346 | # https://github.com/drscream/lemonbar-xft 347 | ### 348 | -------------------------------------------------------------------------------- /.config/nvim/init.vim: -------------------------------------------------------------------------------- 1 | :set number 2 | :set relativenumber 3 | :set autoindent 4 | :set tabstop=4 5 | :set shiftwidth=4 6 | :set smarttab 7 | :set softtabstop=4 8 | :set mouse=a 9 | 10 | syntax on 11 | let g:onedark_hide_endofbuffer = 1 12 | let g:airline_theme='onedark' 13 | " air-line 14 | let g:airline_powerline_fonts = 1 15 | 16 | if !exists('g:airline_symbols') 17 | let g:airline_symbols = {} 18 | endif 19 | 20 | " unicode symbols 21 | let g:airline_left_sep = '»' 22 | let g:airline_left_sep = '▶' 23 | let g:airline_right_sep = '«' 24 | let g:airline_right_sep = '◀' 25 | let g:airline_symbols.linenr = '␊' 26 | let g:airline_symbols.linenr = '␤' 27 | let g:airline_symbols.linenr = '¶' 28 | let g:airline_symbols.branch = '⎇' 29 | let g:airline_symbols.paste = 'ρ' 30 | let g:airline_symbols.paste = 'Þ' 31 | let g:airline_symbols.paste = '∥' 32 | let g:airline_symbols.whitespace = 'Ξ' 33 | 34 | " airline symbols 35 | let g:airline_left_sep = '' 36 | let g:airline_left_alt_sep = '' 37 | let g:airline_right_sep = '' 38 | let g:airline_right_alt_sep = '' 39 | let g:airline_symbols.branch = '' 40 | let g:airline_symbols.readonly = '' 41 | let g:airline_symbols.linenr = '' 42 | 43 | let g:mkdp_port = '8020' 44 | let g:mkdp_filetypes = ['markdown'] 45 | 46 | call plug#begin() 47 | 48 | Plug 'https://github.com/vim-airline/vim-airline' 49 | Plug 'https://github.com/vim-airline/vim-airline-themes' 50 | Plug 'https://github.com/preservim/nerdtree' 51 | Plug 'https://github.com/tpope/vim-surround' 52 | Plug 'https://github.com/tpope/vim-commentary' 53 | Plug 'https://github.com/ap/vim-css-color' 54 | Plug 'https://github.com/rafi/awesome-vim-colorschemes' 55 | Plug 'https://github.com/ryanoasis/vim-devicons' 56 | Plug 'https://github.com/tc50cal/vim-terminal' 57 | Plug 'https://github.com/terryma/vim-multiple-cursors' 58 | Plug 'https://github.com/preservim/tagbar' 59 | Plug 'https://github.com/joshdick/onedark.vim' 60 | Plug 'https://github.com/preservim/vim-markdown' 61 | Plug 'https://github.com/vimwiki/vimwiki' 62 | Plug 'https://github.com/iamcco/markdown-preview.nvim', { 'do': 'cd app & yarn install' } 63 | Plug 'https://github.com/neoclide/coc.nvim', {'branch': 'master', 'do': 'yarn install --frozen-lockfile'} 64 | 65 | set encoding=UTF-8 66 | 67 | nmap :TagbarToggle 68 | 69 | :set completeopt-=preview 70 | 71 | call plug#end() 72 | 73 | colorscheme onedark 74 | set termguicolors 75 | 76 | " Better tab experience - from https://webdevetc.com/ 77 | map tn :tabnew 78 | map t :tabnext 79 | map tm :tabmove 80 | map tc :tabclose 81 | map to :tabonly 82 | 83 | " nnoremap :NERDTree 84 | " nnoremap :NERDTreeToggle 85 | 86 | let g:vimwiki_list = [{'path': '~/vimwiki/', 87 | \ 'syntax': 'markdown', 'ext': '.md'}] 88 | let g:vimwiki_global_ext = 0 89 | -------------------------------------------------------------------------------- /.config/picom/picom.conf: -------------------------------------------------------------------------------- 1 | # Thank you code_nomad: http://9m.no/ꪯ鵞 2 | # and Arch Wiki contributors: https://wiki.archlinux.org/index.php/Compton 3 | 4 | ################################# 5 | # 6 | # Backend 7 | # 8 | ################################# 9 | 10 | # Backend to use: "xrender" or "glx". 11 | # GLX backend is typically much faster but depends on a sane driver. 12 | backend = "glx"; 13 | 14 | ################################# 15 | # 16 | # GLX backend 17 | # 18 | ################################# 19 | 20 | glx-no-stencil = true; 21 | 22 | # GLX backend: Copy unmodified regions from front buffer instead of redrawing them all. 23 | # My tests with nvidia-drivers show a 10% decrease in performance when the whole screen is modified, 24 | # but a 20% increase when only 1/4 is. 25 | # My tests on nouveau show terrible slowdown. 26 | glx-copy-from-front = false; 27 | 28 | # GLX backend: Use MESA_copy_sub_buffer to do partial screen update. 29 | # My tests on nouveau shows a 200% performance boost when only 1/4 of the screen is updated. 30 | # May break VSync and is not available on some drivers. 31 | # Overrides --glx-copy-from-front. 32 | # glx-use-copysubbuffermesa = true; 33 | 34 | # GLX backend: Avoid rebinding pixmap on window damage. 35 | # Probably could improve performance on rapid window content changes, but is known to break things on some drivers (LLVMpipe). 36 | # Recommended if it works. 37 | # glx-no-rebind-pixmap = true; 38 | 39 | # GLX backend: GLX buffer swap method we assume. 40 | # Could be undefined (0), copy (1), exchange (2), 3-6, or buffer-age (-1). 41 | # undefined is the slowest and the safest, and the default value. 42 | # copy is fastest, but may fail on some drivers, 43 | # 2-6 are gradually slower but safer (6 is still faster than 0). 44 | # Usually, double buffer means 2, triple buffer means 3. 45 | # buffer-age means auto-detect using GLX_EXT_buffer_age, supported by some drivers. 46 | # Useless with --glx-use-copysubbuffermesa. 47 | # Partially breaks --resize-damage. 48 | # Defaults to undefined. 49 | #glx-swap-method = "undefined"; 50 | 51 | ################################# 52 | # 53 | # Shadows 54 | # 55 | ################################# 56 | 57 | # Enabled client-side shadows on windows. 58 | shadow = false; 59 | # The blur radius for shadows. (default 12) 60 | shadow-radius = 5; 61 | # The left offset for shadows. (default -15) 62 | shadow-offset-x = -5; 63 | # The top offset for shadows. (default -15) 64 | shadow-offset-y = -5; 65 | # The translucency for shadows. (default .75) 66 | shadow-opacity = 0.5; 67 | 68 | # Set if you want different colour shadows 69 | # shadow-red = 0.0; 70 | # shadow-green = 0.0; 71 | # shadow-blue = 0.0; 72 | 73 | # The shadow exclude options are helpful if you have shadows enabled. Due to the way picom draws its shadows, certain applications will have visual glitches 74 | # (most applications are fine, only apps that do weird things with xshapes or argb are affected). 75 | # This list includes all the affected apps I found in my testing. The "! name~=''" part excludes shadows on any "Unknown" windows, this prevents a visual glitch with the XFWM alt tab switcher. 76 | shadow-exclude = [ 77 | "! name~=''", 78 | "name = 'Notification'", 79 | "name = 'Plank'", 80 | "name = 'Docky'", 81 | "name = 'Kupfer'", 82 | "name = 'xfce4-notifyd'", 83 | "name *= 'VLC'", 84 | "name *= 'compton'", 85 | "name *= 'picom'", 86 | "name *= 'Chromium'", 87 | "name *= 'Chrome'", 88 | "class_g = 'Firefox' && argb", 89 | "class_g = 'Conky'", 90 | "class_g = 'Kupfer'", 91 | "class_g = 'Synapse'", 92 | "class_g = 'osu!'", 93 | "class_g ?= 'Notify-osd'", 94 | "class_g ?= 'Cairo-dock'", 95 | "class_g ?= 'Xfce4-notifyd'", 96 | "class_g ?= 'Xfce4-power-manager'", 97 | "_GTK_FRAME_EXTENTS@:c", 98 | "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'" 99 | ]; 100 | # Avoid drawing shadow on all shaped windows (see also: --detect-rounded-corners) 101 | shadow-ignore-shaped = false; 102 | 103 | ################################# 104 | # 105 | # Opacity 106 | # 107 | ################################# 108 | 109 | inactive-opacity = 0.95; 110 | active-opacity = 1; 111 | frame-opacity = 1; 112 | inactive-opacity-override = false; 113 | 114 | blur: { 115 | method = "dual_kawase"; 116 | strength = 12; 117 | background = false; 118 | background-frame = false; 119 | background-fixed = false; 120 | } 121 | 122 | # Dim inactive windows. (0.0 - 1.0) 123 | inactive-dim = 0.1; 124 | # Do not let dimness adjust based on window opacity. 125 | # inactive-dim-fixed = true; 126 | # Blur background of transparent windows. Bad performance with X Render backend. GLX backend is preferred. 127 | #blur-background = true; 128 | # Blur background of opaque windows with transparent frames as well. 129 | #blur-background-frame = true; 130 | # Do not let blur radius adjust based on window opacity. 131 | #blur-background-fixed = false; 132 | blur-background-exclude = [ 133 | # "window_type = 'dock'", 134 | "window_type = 'desktop'", 135 | "name = 'maim'", 136 | "class_g = 'slop'", 137 | "class_g = 'osu!'", 138 | "name = 'Eww - background'", 139 | "name = 'Eww - weather_info'", 140 | "name = 'Eww - weather_quotes'", 141 | "name = 'Eww - clock'", 142 | "name = 'Eww - uptime'", 143 | "name = 'Eww - profile'", 144 | "name = 'Eww - system'", 145 | "name = 'Eww - music'", 146 | "name = 'Eww - github'", 147 | "name = 'Eww - reddit'", 148 | "name = 'Eww - twitter'", 149 | "name = 'Eww - youtube'", 150 | "name = 'Eww - mail'", 151 | "name = 'Eww - apps'", 152 | "name = 'Eww - folders'", 153 | "name = 'Eww - reboot'", 154 | "name = 'Eww - poweroff'", 155 | "name = 'Eww - sleep'", 156 | "name = 'Eww - logout'", 157 | "name = 'Eww - calendar'", 158 | "name = 'Eww - workspaces'", 159 | "name = 'Eww - roundeda'", 160 | "name = 'Eww - roundedb'", 161 | "name = 'Eww - roundedc'", 162 | "name = 'Eww - roundedd'", 163 | "name = 'Eww - roundede'", 164 | "name = 'Eww - roundedf'", 165 | "_NET_WM_WINDOW_TYPE:a *= '_KDE_NET_WM_WINDOW_TYPE_OVERRIDE'" 166 | ]; 167 | 168 | focus-exclude = [ 169 | "class_g = 'i3bar'" 170 | ]; 171 | 172 | opacity-rule = [ 173 | "100:class_g = 'i3bar'", 174 | "95:class_g = 'URxvt' && focused", 175 | "90:class_g = 'URxvt' && !focused", 176 | # "95:class_g = 'URxvt' && !_NET_WM_STATE@:32a", 177 | "0:_NET_WM_STATE@[0]:32a = '_NET_WM_STATE_HIDDEN'", 178 | "0:_NET_WM_STATE@[1]:32a = '_NET_WM_STATE_HIDDEN'", 179 | "0:_NET_WM_STATE@[2]:32a = '_NET_WM_STATE_HIDDEN'", 180 | "0:_NET_WM_STATE@[3]:32a = '_NET_WM_STATE_HIDDEN'", 181 | "0:_NET_WM_STATE@[4]:32a = '_NET_WM_STATE_HIDDEN'" 182 | ]; 183 | 184 | ################################# 185 | # 186 | # Fading 187 | # 188 | ################################# 189 | 190 | # Fade windows during opacity changes. 191 | fading = true; 192 | # The time between steps in a fade in milliseconds. (default 10). 193 | fade-delta = 4; 194 | # Opacity change between steps while fading in. (default 0.028). 195 | fade-in-step = 0.03; 196 | # Opacity change between steps while fading out. (default 0.03). 197 | fade-out-step = 0.03; 198 | # Fade windows in/out when opening/closing 199 | # no-fading-openclose = true; 200 | 201 | # Specify a list of conditions of windows that should not be faded. 202 | fade-exclude = [ ]; 203 | 204 | ################################# 205 | # 206 | # Picom Fork Options 207 | # 208 | ################################# 209 | 210 | # Rounded corners 211 | corner-radius = 6.0; 212 | rounded-corners-exclude = [ 213 | # "class_g = 'Dunst'", 214 | "class_i = 'lemonbar'", 215 | # "class_g = 'i3bar'" 216 | "name = 'Eww - background'", 217 | "name = 'Eww - weather_info'", 218 | "name = 'Eww - weather_quotes'", 219 | "name = 'Eww - clock'", 220 | "name = 'Eww - uptime'", 221 | "name = 'Eww - profile'", 222 | "name = 'Eww - system'", 223 | "name = 'Eww - music'", 224 | "name = 'Eww - github'", 225 | "name = 'Eww - reddit'", 226 | "name = 'Eww - twitter'", 227 | "name = 'Eww - youtube'", 228 | "name = 'Eww - mail'", 229 | "name = 'Eww - apps'", 230 | "name = 'Eww - folders'", 231 | "name = 'Eww - reboot'", 232 | "name = 'Eww - poweroff'", 233 | "name = 'Eww - sleep'", 234 | "name = 'Eww - logout'", 235 | "name = 'Eww - calendar'", 236 | "name = 'Eww - workspaces'", 237 | "name = 'Eww - roundeda'", 238 | "name = 'Eww - roundedb'", 239 | "name = 'Eww - roundedc'", 240 | "name = 'Eww - roundedd'", 241 | "name = 'Eww - roundede'", 242 | "name = 'Eww - roundedf'", 243 | ]; 244 | 245 | ################################# 246 | # 247 | # Other 248 | # 249 | ################################# 250 | 251 | # Try to detect WM windows and mark them as active. 252 | mark-wmwin-focused = true; 253 | # Mark all non-WM but override-redirect windows active (e.g. menus). 254 | mark-ovredir-focused = true; 255 | # Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused instead of using FocusIn/Out events. 256 | # Usually more reliable but depends on a EWMH-compliant WM. 257 | use-ewmh-active-win = true; 258 | # Detect rounded corners and treat them as rectangular when --shadow-ignore-shaped is on. 259 | detect-rounded-corners = true; 260 | 261 | # Detect _NET_WM_OPACITY on client windows, useful for window managers not passing _NET_WM_OPACITY of client windows to frame windows. 262 | # This prevents opacity being ignored for some apps. 263 | # For example without this enabled my xfce4-notifyd is 100% opacity no matter what. 264 | detect-client-opacity = true; 265 | 266 | # Specify refresh rate of the screen. 267 | # If not specified or 0, picom will try detecting this with X RandR extension. 268 | refresh-rate = 0; 269 | 270 | # Vertical synchronization: match the refresh rate of the monitor 271 | # Enable/disable VSync. 272 | #vsync = true; 273 | vsync = false; 274 | 275 | # Enable DBE painting mode, intended to use with VSync to (hopefully) eliminate tearing. 276 | # Reported to have no effect, though. 277 | dbe = false; 278 | 279 | # Limit picom to repaint at most once every 1 / refresh_rate second to boost performance. 280 | # This should not be used with --vsync drm/opengl/opengl-oml as they essentially does --sw-opti's job already, 281 | # unless you wish to specify a lower refresh rate than the actual value. 282 | #sw-opti = true; 283 | 284 | # Unredirect all windows if a full-screen opaque window is detected, to maximize performance for full-screen windows, like games. 285 | # Known to cause flickering when redirecting/unredirecting windows. 286 | unredir-if-possible = false; 287 | 288 | # Specify a list of conditions of windows that should always be considered focused. 289 | focus-exclude = [ ]; 290 | 291 | # Use WM_TRANSIENT_FOR to group windows, and consider windows in the same group focused at the same time. 292 | detect-transient = true; 293 | # Use WM_CLIENT_LEADER to group windows, and consider windows in the same group focused at the same time. 294 | # WM_TRANSIENT_FOR has higher priority if --detect-transient is enabled, too. 295 | detect-client-leader = true; 296 | 297 | ################################# 298 | # 299 | # Window type settings 300 | # 301 | ################################# 302 | 303 | wintypes: 304 | { 305 | tooltip = 306 | { 307 | # fade: Fade the particular type of windows. 308 | fade = true; 309 | # shadow: Give those windows shadow 310 | shadow = false; 311 | # opacity: Default opacity for the type of windows. 312 | opacity = 0.85; 313 | # focus: Whether to always consider windows of this type focused. 314 | focus = true; 315 | }; 316 | }; 317 | 318 | ###################### 319 | # 320 | # XSync 321 | # See: https://github.com/yshui/picom/commit/b18d46bcbdc35a3b5620d817dd46fbc76485c20d 322 | # 323 | ###################### 324 | 325 | # Use X Sync fence to sync clients' draw calls. Needed on nvidia-drivers with GLX backend for some users. 326 | xrender-sync-fence = true; 327 | 328 | blur: 329 | { 330 | method = "dual_kawase"; 331 | strength = 4; 332 | } 333 | 334 | 335 | wintypes: 336 | { 337 | normal = {blur-background = true;}; 338 | splash = {blur-background = false;}; 339 | } 340 | 341 | # Animation settings 342 | # transition-length = 300; 343 | # transition-pow-x = 0.99; 344 | # transition-pow-y = 0.99; 345 | # transition-pow-w = 0.99; 346 | # transition-pow-h = 0.99; 347 | # size-transition = true; 348 | 349 | # Window type settings 350 | # wintypes: 351 | # { 352 | # tooltip = { fade = true; full-shadow = true; opacity = 1; }; 353 | # dock = { full-shadow = true;}; 354 | # popup_menu = { opacity = 1; full-shadow = true; }; 355 | # normal = {full-shadow = true;}; 356 | # dropdown_menu = { opacity = 1; full-shadow = true; } 357 | # }; 358 | -------------------------------------------------------------------------------- /.config/ranger/commands.py: -------------------------------------------------------------------------------- 1 | import os 2 | import subprocess 3 | 4 | import ranger.api.commands as ranger 5 | 6 | 7 | class fzf(ranger.Command): 8 | """ 9 | :fzf_select 10 | Find a file using fzf. 11 | With a prefix argument select only directories. 12 | """ 13 | 14 | def execute(self): 15 | if self.quantifier: 16 | # match only directories 17 | command = "find -L . \( -path '*/\.*' -o -fstype 'dev' -o -fstype 'proc' \) -prune \ 18 | -o -type d -print 2> /dev/null | sed 1d | cut -b3- | fzf +m" 19 | else: 20 | # match files and directories 21 | command = "find -L . \( -path '*/\.*' -o -fstype 'dev' -o -fstype 'proc' \) -prune \ 22 | -o -print 2> /dev/null | sed 1d | cut -b3- | fzf +m" 23 | fzf = self.fm.execute_command(command, stdout=subprocess.PIPE) 24 | stdout, _ = fzf.communicate() 25 | if fzf.returncode == 0: 26 | fzf_file = os.path.abspath(stdout.decode('utf-8').rstrip('\n')) 27 | if os.path.isdir(fzf_file): 28 | self.fm.cd(fzf_file) 29 | else: 30 | self.fm.select_file(fzf_file) 31 | -------------------------------------------------------------------------------- /.config/ranger/rc.conf: -------------------------------------------------------------------------------- 1 | set preview_images true 2 | set preview_images_method ueberzug 3 | # default_linemode devicons 4 | -------------------------------------------------------------------------------- /.config/ranger/scope.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | # ranger supports enhanced previews. If the option "use_preview_script" 3 | # is set to True and this file exists, this script will be called and its 4 | # output is displayed in ranger. ANSI color codes are supported. 5 | 6 | # NOTES: This script is considered a configuration file. If you upgrade 7 | # ranger, it will be left untouched. (You must update it yourself.) 8 | # Also, ranger disables STDIN here, so interactive scripts won't work properly 9 | 10 | # Meanings of exit codes: 11 | # code | meaning | action of ranger 12 | # -----+------------+------------------------------------------- 13 | # 0 | success | success. display stdout as preview 14 | # 1 | no preview | failure. display no preview at all 15 | # 2 | plain text | display the plain content of the file 16 | # 3 | fix width | success. Don't reload when width changes 17 | # 4 | fix height | success. Don't reload when height changes 18 | # 5 | fix both | success. Don't ever reload 19 | # 6 | image | success. display the image $cached points to as an image preview 20 | # 7 | image | success. display the file directly as an image 21 | 22 | # Meaningful aliases for arguments: 23 | path="$1" # Full path of the selected file 24 | width="$2" # Width of the preview pane (number of fitting characters) 25 | height="$3" # Height of the preview pane (number of fitting characters) 26 | cached="$4" # Path that should be used to cache image previews 27 | preview_images="$5" # "True" if image previews are enabled, "False" otherwise. 28 | 29 | maxln=200 # Stop after $maxln lines. Can be used like ls | head -n $maxln 30 | 31 | # Find out something about the file: 32 | mimetype=$(file --mime-type -Lb "$path") 33 | extension=$(/bin/echo "${path##*.}" | awk '{print tolower($0)}') 34 | 35 | # Functions: 36 | # runs a command and saves its output into $output. Useful if you need 37 | # the return value AND want to use the output in a pipe 38 | try() { output=$(eval '"$@"'); } 39 | 40 | # writes the output of the previously used "try" command 41 | dump() { /bin/echo "$output"; } 42 | 43 | # a common post-processing function used after most commands 44 | trim() { head -n "$maxln"; } 45 | 46 | # wraps highlight to treat exit code 141 (killed by SIGPIPE) as success 47 | safepipe() { "$@"; test $? = 0 -o $? = 141; } 48 | 49 | dtfe() { 50 | if [ "$2" = "f" ]; then 51 | dump | trim | fmt -s -w $width 52 | else 53 | dump | trm 54 | fi 55 | exit "$1" 56 | } 57 | 58 | # Image previews, if enabled in ranger. 59 | if [ "$preview_images" = "True" ] && [ "$DISPLAY" ]; then 60 | case "$mimetype" in 61 | # Image previews for SVG files, disabled by default. 62 | image/svg*) 63 | convert -size 1024x1024 "$path" png:"$cached" && exit 6 || exit 1;; 64 | # Image previews for image files. w3mimgdisplay will be called for all 65 | # image files (unless overriden as above), but might fail for 66 | # unsupported types. 67 | image/*) 68 | exit 7;; 69 | # Image preview for video, disabled by default.: 70 | video/*) 71 | ffmpegthumbnailer -i "$path" -o "$cached" -s 0 && exit 6 || exit 1;; 72 | esac 73 | fi 74 | 75 | case "$extension" in 76 | pdf) 77 | if [ "$preview_images" = "True" ] && [ "$DISPLAY" ]; then 78 | try gs -q -dNOPAUSE -dBATCH -sDEVICE=jpeg -sOutputFile="$cached" -dLastPage=1 -r100 "$path" && exit 6 79 | try evince-thumbnailer -s 1000 "$path" "$cached" && exit 6 80 | fi 81 | ;; 82 | # Archive extensions: 83 | a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\ 84 | rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip) 85 | try als "$path" && dtfe 0 86 | try acat "$path" && dtfe 3 87 | try bsdtar -lf "$path" && dtfe 0 88 | exit 1;; 89 | rar) 90 | # avoid password prompt by providing empty password 91 | try unrar -p- lt "$path" && dtfe 0 || exit 1;; 92 | 7z) 93 | # avoid password prompt by providing empty password 94 | try 7z -p l "$path" && dtfe 0 || exit 1;; 95 | doc) 96 | try antiword "$path" && dtfe 0 f || exit 1;; 97 | docx) 98 | try pandoc -f docx -t plain "$path" -o - && dtfe 0 99 | try docx2txt "$path" - && dtfe 0 100 | exit 1;; 101 | # PDF documents: 102 | pdf) 103 | try pdftotext -l 10 -nopgbrk -q "$path" - && \ 104 | dtfe 0 f || exit 1;; 105 | # BitTorrent Files 106 | torrent) 107 | try transmission-show "$path" && dtfe 5 || exit 1;; 108 | # ODT Files 109 | odt|ods|odp|sxw) 110 | try odt2txt "$path" && dtfe 5 || exit 1;; 111 | # Jupyter notebooks 112 | ipynb) 113 | # try jupyter nbconvert --to html --stdout "$path" | w3m -T text/html -dump && dtfe 0 || exit 1;; 114 | jupyter nbconvert --to html --stdout "$path" | w3m -T text/html -dump && dtfe 4 f 115 | # echo "$path" && dtfe 4 f 116 | exit 1;; 117 | # HTML Pages: 118 | htm|html|xhtml) 119 | try w3m -dump "$path" && dtfe 4 f 120 | try lynx -dump "$path" && dtfe 4 f 121 | try elinks -dump "$path" && dtfe 4 f 122 | ;; # fall back to highlight/cat if the text browsers fail 123 | esac 124 | 125 | case "$extension" in 126 | ipynb) 127 | # jupyter nbconvert --to html --stdout "$path" | w3m -T text/html -dump 128 | echo narf 129 | ;; 130 | esac 131 | 132 | case "$mimetype" in 133 | # Syntax highlight for text files: 134 | text/* | */xml) 135 | if [ "$(tput colors)" -ge 256 ]; then 136 | pygmentize_format=terminal256 137 | highlight_format=xterm256 138 | else 139 | pygmentize_format=terminal 140 | highlight_format=ansi 141 | fi 142 | try safepipe highlight --out-format=${highlight_format} "$path" && dtfe 5 143 | try safepipe pygmentize -f ${pygmentize_format} "$path" && dtfe 5 144 | exit 2;; 145 | # Ascii-previews of images: 146 | image/*) 147 | img2txt --gamma=0.6 --width="$width" "$path" && exit 4 || exit 1;; 148 | # Display information about media files: 149 | video/* | audio/*) 150 | exiftool "$path" && exit 5 151 | # Use sed to remove spaces so the output fits into the narrow window 152 | try mediainfo "$path" && { dump | trim | sed 's/ \+:/: /;'; exit 5; } || exit 1;; 153 | esac 154 | 155 | exit 1 156 | i 157 | -------------------------------------------------------------------------------- /.config/rofi/active_apps.rasi: -------------------------------------------------------------------------------- 1 | configuration { 2 | modi: "window"; 3 | show-icons: true; 4 | font: "Iosevka 10"; 5 | icon-theme: "candy-icons"; 6 | display-window: ""; 7 | window-format: "{c}"; 8 | } 9 | 10 | @import "colors.rasi" 11 | 12 | * { 13 | 14 | } 15 | 16 | window { 17 | transparency: "real"; 18 | background-color: @win-bg; 19 | width:50%; 20 | height:21%; 21 | } 22 | 23 | mainbox { 24 | margin : 15px 10px 0 10px; 25 | border: 0; 26 | padding: 0; 27 | background-color: @bg; 28 | children: [inputbar, listview]; 29 | background-color: transparent; 30 | spacing: 0.5%; 31 | } 32 | 33 | inputbar { 34 | border-radius-bottom-left: 10px; 35 | border-radius: 10px; 36 | background-color: @bg; 37 | children: [prompt, entry]; 38 | spacing:0; 39 | margin: 0px; 40 | } 41 | 42 | entry { 43 | background-color: @selected-bg; 44 | padding: 10px; 45 | placeholder: "Search..."; 46 | placeholder-color: @fg; 47 | text-color: @fg; 48 | } 49 | 50 | prompt { 51 | padding: 10px; 52 | background-color: @selected-bg; 53 | text-color: @fg; 54 | } 55 | 56 | listview { 57 | spacing : 0.5%; 58 | margin : 1.75% 0.75% 1.75% 0.75%; 59 | padding : 0.1%; 60 | orientation: horizontal; 61 | columns: 5; 62 | lines : 1; 63 | layout: vertical; 64 | background-color: transparent; 65 | } 66 | 67 | element { 68 | padding: 2.25% 0.75% 2.25% 0.75%; 69 | border-radius: 5px; 70 | width: 10px; 71 | margin: 0.5%; 72 | orientation: vertical; 73 | spacing: 1%; 74 | } 75 | 76 | element-icon { 77 | size: 36px; 78 | margin: 1px; 79 | horizontal-align: 0.5; 80 | vertical-align: 0.5; 81 | background-color: transparent; 82 | } 83 | 84 | element-text { 85 | horizontal-align: 0.5; 86 | vertical-align: 0.5; 87 | background-color: transparent; 88 | text-color: @fg; 89 | } 90 | 91 | /* --NORMAL-- */ 92 | 93 | element normal.normal { 94 | background-color: rgba(0, 0, 0, 0); 95 | text-color: @fg; 96 | } 97 | 98 | element selected.normal { 99 | background-color: @selected-bg; 100 | text-color: @selected-fg; 101 | border-color: #d07ef2; 102 | } 103 | 104 | element alternate.normal { 105 | background-color: rgba(0,0,0,0); 106 | text-color: @fg; 107 | } 108 | 109 | 110 | /* --ACTIVE-- */ 111 | 112 | element normal.active { 113 | background-color: @highlight-bg; 114 | } 115 | 116 | element selected.active { 117 | background-color: @selected-bg; 118 | text-color: @selected-fg; 119 | } 120 | 121 | element alternate.active { 122 | background-color: rgba(0,0,0,0); 123 | text-color: @fg; 124 | } 125 | 126 | 127 | /* --URGENT-- */ 128 | 129 | element normal.urgent { 130 | background-color: @urgent; 131 | text-color: @fg; 132 | } 133 | 134 | element selected.urgent { 135 | background-color: @urgent; 136 | text-color: @selected-bg; 137 | } 138 | 139 | element alternate.urgent { 140 | background-color: @urgent; 141 | text-color: @selected-bg; 142 | } 143 | 144 | /* 145 | mode-switcher { 146 | border: 0px 0px 0px ; 147 | border-color: @separatorcolor; 148 | } 149 | 150 | button { 151 | spacing: 0; 152 | text-color: @fg; 153 | } 154 | 155 | button.selected { 156 | background-color: @selected-bg; 157 | text-color: @selected-fg; 158 | } 159 | */ 160 | -------------------------------------------------------------------------------- /.config/rofi/colors.rasi: -------------------------------------------------------------------------------- 1 | * { 2 | /*#87b5d7;*/ 3 | /*#6eacda;*/ 4 | /*#deca72;*/ 5 | /*#39c9fe;*/ 6 | 7 | yellow: #b58900; 8 | orange: #cb4b16; 9 | red: #dc322f; 10 | magenta: #d33682; 11 | violet: #6c71c4; 12 | blue: #268bd2; 13 | cyan: #2aa198; 14 | green: #859900; 15 | fg: #abb2bfaa; 16 | bg: #282c3444; 17 | selected-bg: #4b5263aa; 18 | selected-fg: #abb2bf; 19 | win-bg : #282c34cc; 20 | highlight-bg: #4F576999; 21 | urgent: #E06C7555; 22 | } 23 | -------------------------------------------------------------------------------- /.config/rofi/config.rasi: -------------------------------------------------------------------------------- 1 | configuration { 2 | /* modi: "window,run,ssh";*/ 3 | /* font: "mono 12";*/ 4 | /* location: 0;*/ 5 | /* yoffset: 0;*/ 6 | /* xoffset: 0;*/ 7 | /* fixed-num-lines: true;*/ 8 | /* show-icons: false;*/ 9 | /* terminal: "rofi-sensible-terminal";*/ 10 | /* ssh-client: "ssh";*/ 11 | /* ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/ 12 | /* run-command: "{cmd}";*/ 13 | /* run-list-command: "";*/ 14 | /* run-shell-command: "{terminal} -e {cmd}";*/ 15 | /* window-command: "wmctrl -i -R {window}";*/ 16 | /* window-match-fields: "all";*/ 17 | /* icon-theme: ;*/ 18 | /* drun-match-fields: "name,generic,exec,categories,keywords";*/ 19 | /* drun-categories: ;*/ 20 | /* drun-show-actions: false;*/ 21 | /* drun-display-format: "{name} [({generic})]";*/ 22 | /* drun-url-launcher: "xdg-open";*/ 23 | /* disable-history: false;*/ 24 | /* ignored-prefixes: "";*/ 25 | /* sort: false;*/ 26 | /* sorting-method: "normal";*/ 27 | /* case-sensitive: false;*/ 28 | /* cycle: true;*/ 29 | /* sidebar-mode: false;*/ 30 | /* hover-select: false;*/ 31 | /* eh: 1;*/ 32 | /* auto-select: false;*/ 33 | /* parse-hosts: false;*/ 34 | /* parse-known-hosts: true;*/ 35 | /* combi-modi: "window,run";*/ 36 | /* matching: "normal";*/ 37 | /* tokenize: true;*/ 38 | /* m: "-5";*/ 39 | /* filter: ;*/ 40 | /* dpi: -1;*/ 41 | /* threads: 0;*/ 42 | /* scroll-method: 0;*/ 43 | /* window-format: "{w} {c} {t}";*/ 44 | /* click-to-exit: true;*/ 45 | /* theme: ;*/ 46 | /* max-history-size: 25;*/ 47 | /* combi-hide-mode-prefix: false;*/ 48 | /* matching-negate-char: '-' /* unsupported */;*/ 49 | /* cache-dir: ;*/ 50 | /* window-thumbnail: false;*/ 51 | /* drun-use-desktop-cache: false;*/ 52 | /* drun-reload-desktop-cache: false;*/ 53 | /* normalize-match: false;*/ 54 | /* steal-focus: false;*/ 55 | /* application-fallback-icon: ;*/ 56 | /* pid: "/run/user/1000/rofi.pid";*/ 57 | /* display-window: ;*/ 58 | /* display-windowcd: ;*/ 59 | /* display-run: ;*/ 60 | /* display-ssh: ;*/ 61 | /* display-drun: ;*/ 62 | /* display-combi: ;*/ 63 | /* display-keys: ;*/ 64 | /* display-filebrowser: ;*/ 65 | /* kb-primary-paste: "Control+V,Shift+Insert";*/ 66 | /* kb-secondary-paste: "Control+v,Insert";*/ 67 | /* kb-clear-line: "Control+w";*/ 68 | /* kb-move-front: "Control+a";*/ 69 | /* kb-move-end: "Control+e";*/ 70 | /* kb-move-word-back: "Alt+b,Control+Left";*/ 71 | /* kb-move-word-forward: "Alt+f,Control+Right";*/ 72 | /* kb-move-char-back: "Left,Control+b";*/ 73 | /* kb-move-char-forward: "Right,Control+f";*/ 74 | /* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/ 75 | /* kb-remove-word-forward: "Control+Alt+d";*/ 76 | /* kb-remove-char-forward: "Delete,Control+d";*/ 77 | /* kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/ 78 | /* kb-remove-to-eol: "Control+k";*/ 79 | /* kb-remove-to-sol: "Control+u";*/ 80 | /* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/ 81 | /* kb-accept-custom: "Control+Return";*/ 82 | /* kb-accept-custom-alt: "Control+Shift+Return";*/ 83 | /* kb-accept-alt: "Shift+Return";*/ 84 | /* kb-delete-entry: "Shift+Delete";*/ 85 | /* kb-mode-next: "Shift+Right,Control+Tab";*/ 86 | /* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/ 87 | /* kb-mode-complete: "Control+l";*/ 88 | /* kb-row-left: "Control+Page_Up";*/ 89 | /* kb-row-right: "Control+Page_Down";*/ 90 | /* kb-row-up: "Up,Control+p,ISO_Left_Tab";*/ 91 | /* kb-row-down: "Down,Control+n";*/ 92 | /* kb-row-tab: "Tab";*/ 93 | /* kb-page-prev: "Page_Up";*/ 94 | /* kb-page-next: "Page_Down";*/ 95 | /* kb-row-first: "Home,KP_Home";*/ 96 | /* kb-row-last: "End,KP_End";*/ 97 | /* kb-row-select: "Control+space";*/ 98 | /* kb-screenshot: "Alt+S";*/ 99 | /* kb-ellipsize: "Alt+period";*/ 100 | /* kb-toggle-case-sensitivity: "grave,dead_grave";*/ 101 | /* kb-toggle-sort: "Alt+grave";*/ 102 | /* kb-cancel: "Escape,Control+g,Control+bracketleft";*/ 103 | /* kb-custom-1: "Alt+1";*/ 104 | /* kb-custom-2: "Alt+2";*/ 105 | /* kb-custom-3: "Alt+3";*/ 106 | /* kb-custom-4: "Alt+4";*/ 107 | /* kb-custom-5: "Alt+5";*/ 108 | /* kb-custom-6: "Alt+6";*/ 109 | /* kb-custom-7: "Alt+7";*/ 110 | /* kb-custom-8: "Alt+8";*/ 111 | /* kb-custom-9: "Alt+9";*/ 112 | /* kb-custom-10: "Alt+0";*/ 113 | /* kb-custom-11: "Alt+exclam";*/ 114 | /* kb-custom-12: "Alt+at";*/ 115 | /* kb-custom-13: "Alt+numbersign";*/ 116 | /* kb-custom-14: "Alt+dollar";*/ 117 | /* kb-custom-15: "Alt+percent";*/ 118 | /* kb-custom-16: "Alt+dead_circumflex";*/ 119 | /* kb-custom-17: "Alt+ampersand";*/ 120 | /* kb-custom-18: "Alt+asterisk";*/ 121 | /* kb-custom-19: "Alt+parenleft";*/ 122 | /* kb-select-1: "Super+1";*/ 123 | /* kb-select-2: "Super+2";*/ 124 | /* kb-select-3: "Super+3";*/ 125 | /* kb-select-4: "Super+4";*/ 126 | /* kb-select-5: "Super+5";*/ 127 | /* kb-select-6: "Super+6";*/ 128 | /* kb-select-7: "Super+7";*/ 129 | /* kb-select-8: "Super+8";*/ 130 | /* kb-select-9: "Super+9";*/ 131 | /* kb-select-10: "Super+0";*/ 132 | /* ml-row-left: "ScrollLeft";*/ 133 | /* ml-row-right: "ScrollRight";*/ 134 | /* ml-row-up: "ScrollUp";*/ 135 | /* ml-row-down: "ScrollDown";*/ 136 | /* me-select-entry: "MousePrimary";*/ 137 | /* me-accept-entry: "MouseDPrimary";*/ 138 | /* me-accept-custom: "Control+MouseDPrimary";*/ 139 | timeout { 140 | action: "kb-cancel"; 141 | delay: 0; 142 | } 143 | filebrowser { 144 | directories-first: true; 145 | sorting-method: "name"; 146 | } 147 | } 148 | -------------------------------------------------------------------------------- /.config/rofi/powermenu.rasi: -------------------------------------------------------------------------------- 1 | /* 2 | * ROFI Powermenu template 3 | * Author: @BaptisteBdn 4 | */ 5 | 6 | configuration { 7 | modi: "window,run,drun"; 8 | show-icons: true; 9 | font: "Iosevka 10"; 10 | window-format: "{c}"; 11 | icon-theme: "candy-icons"; 12 | } 13 | 14 | @import "colors.rasi" 15 | 16 | * { 17 | 18 | } 19 | 20 | window { 21 | transparency : "real"; 22 | width: 450px; 23 | height: 120px; 24 | background-color: @win-bg; 25 | border-radius : 5px; 26 | padding: 5px; 27 | } 28 | 29 | mainbox { 30 | border: 0; 31 | padding: 0; 32 | children: [listview]; 33 | background-color: transparent; 34 | } 35 | 36 | listview { 37 | columns: 4; 38 | layout: vertical; 39 | background-color: transparent; 40 | } 41 | 42 | element { 43 | margin: 8px; 44 | padding: 10px; 45 | border-radius: 5px; 46 | orientation: vertical; 47 | } 48 | 49 | element-icon { 50 | size: 48px; 51 | margin: 2px; 52 | horizontal-align: 0.5; 53 | vertical-align: 0.5; 54 | background-color: transparent; 55 | } 56 | 57 | element-text { 58 | horizontal-align: 0.5; 59 | vertical-align: 0.5; 60 | background-color: transparent; 61 | text-color: @fg; 62 | } 63 | 64 | element.normal.normal { 65 | background-color: rgba(0, 0, 0, 0); 66 | text-color: @fg; 67 | } 68 | 69 | element.selected.normal { 70 | background-color: @selected-bg; 71 | text-color: @selected-fg; 72 | border-color: #d07ef2; 73 | } 74 | 75 | element.alternate.normal { 76 | background-color: rgba(0,0,0,0); 77 | text-color: @fg; 78 | } 79 | 80 | element-text.selected.normal { 81 | text-color: @selected-fg; 82 | } 83 | 84 | /* 85 | mode-switcher { 86 | border: 0px 0px 0px ; 87 | border-color: @separatorcolor; 88 | } 89 | 90 | button { 91 | spacing: 0; 92 | text-color: @fg; 93 | } 94 | 95 | button.selected { 96 | background-color: @selected-bg; 97 | text-color: @selected-fg; 98 | } 99 | */ 100 | -------------------------------------------------------------------------------- /.config/rofi/powermenu.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | 4 | if [ -z "$@" ]; then 5 | echo -en "Shutdown\0icon\x1fsystem-shutdown\n" 6 | echo -en "Logout\0icon\x1fsystem-log-out\n" 7 | echo -en "Suspend\0icon\x1fsystem-suspend\n" 8 | echo -en "Reboot\0icon\x1fsystem-reboot\n" 9 | echo -en "Lock\0icon\x1fsystem-lock-screen\n" 10 | else 11 | if [ "$1" = "Shutdown" ]; then 12 | systemctl poweroff 13 | elif [ "$1" = "Logout" ]; then 14 | i3-msg exit 15 | elif [ "$1" = "Reboot" ]; then 16 | systemctl reboot 17 | elif [ "$1" = "Suspend" ]; then 18 | systemctl suspend 19 | elif [ "$1" = "Lock" ]; then 20 | loginctl lock-session 21 | fi 22 | fi 23 | -------------------------------------------------------------------------------- /.config/rofi/searcher.rasi: -------------------------------------------------------------------------------- 1 | configuration { 2 | modi: "drun"; 3 | show-icons: true; 4 | font: "Iosevka 10"; 5 | icon-theme: "candy-icons"; 6 | display-drun: ""; 7 | drun-display-format: "{name} [({generic})]"; 8 | } 9 | 10 | @import "colors.rasi" 11 | 12 | * { 13 | 14 | } 15 | 16 | #window { 17 | transparency: "real"; 18 | fullscreen: true; 19 | background-color: @win-bg; 20 | } 21 | 22 | #mainbox { 23 | border: 0; 24 | padding: 0; 25 | padding : 10% 5% 5% 5%; 26 | children: [inputbar, listview]; 27 | background-color: transparent; 28 | spacing: 5%; 29 | } 30 | 31 | inputbar { 32 | border-radius: 50%; 33 | background-color: @bg; 34 | children: [prompt, entry]; 35 | margin: 5px 20% 5px 20%; 36 | } 37 | 38 | entry { 39 | background-color: @selected-bg; 40 | padding: 10px; 41 | placeholder: "Search..."; 42 | placeholder-color: @fg; 43 | text-color: @fg; 44 | } 45 | 46 | prompt { 47 | padding: 10px; 48 | background-color: @selected-bg; 49 | text-color: @fg; 50 | } 51 | 52 | #listview { 53 | orientation: horizontal; 54 | columns: 3; 55 | lines: 10; 56 | layout: vertical; 57 | background-color: transparent; 58 | } 59 | 60 | element { 61 | padding: 2%; 62 | border-radius: 5px; 63 | width: 5%; 64 | margin: 0.55%; 65 | } 66 | 67 | element-icon { 68 | size: 48px; 69 | margin: 2px; 70 | horizontal-align: 0.5; 71 | vertical-align: 0.5; 72 | background-color: transparent; 73 | } 74 | 75 | element-text { 76 | horizontal-align: 0.5; 77 | vertical-align: 0.5; 78 | background-color: transparent; 79 | text-color: @fg; 80 | } 81 | 82 | 83 | /* --NORMAL-- */ 84 | 85 | element normal.normal { 86 | background-color: rgba(0, 0, 0, 0); 87 | text-color: @fg; 88 | } 89 | 90 | element selected.normal { 91 | background-color: @selected-bg; 92 | text-color: @selected-fg; 93 | border-color: #d07ef2; 94 | } 95 | 96 | element alternate.normal { 97 | background-color: rgba(0,0,0,0); 98 | text-color: @fg; 99 | } 100 | 101 | 102 | /* --ACTIVE-- */ 103 | 104 | element normal.active { 105 | background-color: @highlight-bg; 106 | } 107 | 108 | element selected.active { 109 | background-color: @selected-bg; 110 | text-color: @selected-fg; 111 | } 112 | 113 | element alternate.active { 114 | background-color: rgba(0,0,0,0); 115 | text-color: @fg; 116 | } 117 | 118 | 119 | /* --URGENT-- */ 120 | 121 | element normal.urgent { 122 | background-color: @urgent; 123 | text-color: @fg; 124 | } 125 | 126 | element selected.urgent { 127 | background-color: @urgent; 128 | text-color: @selected-bg; 129 | } 130 | 131 | element alternate.urgent { 132 | background-color: @urgent; 133 | text-color: @selected-bg; 134 | } 135 | 136 | 137 | 138 | /* 139 | mode-switcher { 140 | border: 0px 0px 0px ; 141 | border-color: @separatorcolor; 142 | } 143 | 144 | button { 145 | spacing: 0; 146 | text-color: @fg; 147 | } 148 | 149 | button.selected { 150 | background-color: @selected-bg; 151 | text-color: @selected-fg; 152 | } 153 | */ 154 | -------------------------------------------------------------------------------- /.config/wallpaper/1ttvv79apo851.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/1ttvv79apo851.png -------------------------------------------------------------------------------- /.config/wallpaper/64m36y0xpf561.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/64m36y0xpf561.png -------------------------------------------------------------------------------- /.config/wallpaper/Abstract-Nord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/Abstract-Nord.png -------------------------------------------------------------------------------- /.config/wallpaper/BirdNord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/BirdNord.png -------------------------------------------------------------------------------- /.config/wallpaper/BirdNordDark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/BirdNordDark.png -------------------------------------------------------------------------------- /.config/wallpaper/BirdNordDarker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/BirdNordDarker.png -------------------------------------------------------------------------------- /.config/wallpaper/BirdNordic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/BirdNordic.png -------------------------------------------------------------------------------- /.config/wallpaper/Chemical Nord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/Chemical Nord.png -------------------------------------------------------------------------------- /.config/wallpaper/Minimal-Nord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/Minimal-Nord.png -------------------------------------------------------------------------------- /.config/wallpaper/Nordic-Heroin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/Nordic-Heroin.png -------------------------------------------------------------------------------- /.config/wallpaper/archlinux-darker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/archlinux-darker.png -------------------------------------------------------------------------------- /.config/wallpaper/archlinux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/archlinux.png -------------------------------------------------------------------------------- /.config/wallpaper/covers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/covers.png -------------------------------------------------------------------------------- /.config/wallpaper/earth-in-space.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/earth-in-space.png -------------------------------------------------------------------------------- /.config/wallpaper/ign-0001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/ign-0001.png -------------------------------------------------------------------------------- /.config/wallpaper/ign-0002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/ign-0002.png -------------------------------------------------------------------------------- /.config/wallpaper/ign_black.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/ign_black.jpg -------------------------------------------------------------------------------- /.config/wallpaper/ign_chineseIG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/ign_chineseIG.png -------------------------------------------------------------------------------- /.config/wallpaper/ign_nordhills.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/ign_nordhills.png -------------------------------------------------------------------------------- /.config/wallpaper/ign_soupKong.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/ign_soupKong.png -------------------------------------------------------------------------------- /.config/wallpaper/ign_stuff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/ign_stuff.png -------------------------------------------------------------------------------- /.config/wallpaper/ign_vaporWave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/ign_vaporWave.png -------------------------------------------------------------------------------- /.config/wallpaper/japanese-food.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/japanese-food.png -------------------------------------------------------------------------------- /.config/wallpaper/linux-be-good-4k.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/linux-be-good-4k.png -------------------------------------------------------------------------------- /.config/wallpaper/nixos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/nixos.png -------------------------------------------------------------------------------- /.config/wallpaper/nord-arctic-fox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/nord-arctic-fox.png -------------------------------------------------------------------------------- /.config/wallpaper/nord_buildings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/nord_buildings.png -------------------------------------------------------------------------------- /.config/wallpaper/nordtheme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/nordtheme.png -------------------------------------------------------------------------------- /.config/wallpaper/pixelmoon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/pixelmoon.png -------------------------------------------------------------------------------- /.config/wallpaper/prime-number-spiral.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/prime-number-spiral.png -------------------------------------------------------------------------------- /.config/wallpaper/sleepy_mountains_dark_v02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/.config/wallpaper/sleepy_mountains_dark_v02.png -------------------------------------------------------------------------------- /.config/zathura/zathurarc: -------------------------------------------------------------------------------- 1 | set selection-clipboard clipboard 2 | 3 | set window-title-basename "true" 4 | set selection-clipboard "clipboard" 5 | 6 | # Dracula color theme for Zathura 7 | # Swaps Foreground for Background to get a light version if the user prefers 8 | 9 | # 10 | # Dracula color theme 11 | # 12 | 13 | set notification-error-bg "#ff5555" # Red 14 | set notification-error-fg "#f8f8f2" # Foreground 15 | set notification-warning-bg "#ffb86c" # Orange 16 | set notification-warning-fg "#44475a" # Selection 17 | set notification-bg "#282a36" # Background 18 | set notification-fg "#f8f8f2" # Foreground 19 | 20 | set completion-bg "#282a36" # Background 21 | set completion-fg "#6272a4" # Comment 22 | set completion-group-bg "#282a36" # Background 23 | set completion-group-fg "#6272a4" # Comment 24 | set completion-highlight-bg "#44475a" # Selection 25 | set completion-highlight-fg "#f8f8f2" # Foreground 26 | 27 | set index-bg "#282a36" # Background 28 | set index-fg "#f8f8f2" # Foreground 29 | set index-active-bg "#44475a" # Current Line 30 | set index-active-fg "#f8f8f2" # Foreground 31 | 32 | set inputbar-bg "#282a36" # Background 33 | set inputbar-fg "#f8f8f2" # Foreground 34 | set statusbar-bg "#282a36" # Background 35 | set statusbar-fg "#f8f8f2" # Foreground 36 | 37 | set highlight-color "#ffb86c" # Orange 38 | set highlight-active-color "#ff79c6" # Pink 39 | 40 | set default-bg "#282a36" # Background 41 | set default-fg "#f8f8f2" # Foreground 42 | 43 | set render-loading true 44 | set render-loading-fg "#282a36" # Background 45 | set render-loading-bg "#f8f8f2" # Foreground 46 | 47 | # 48 | # Recolor mode settings 49 | # 50 | 51 | set recolor-lightcolor "#282a36" # Background 52 | set recolor-darkcolor "#f8f8f2" # Foreground 53 | 54 | # 55 | # Startup options 56 | # 57 | set adjust-open width 58 | set recolor true 59 | -------------------------------------------------------------------------------- /.xinitrc: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | userresources=$HOME/.Xresources 4 | usermodmap=$HOME/.Xmodmap 5 | sysresources=/etc/X11/xinit/.Xresources 6 | sysmodmap=/etc/X11/xinit/.Xmodmap 7 | 8 | # merge in defaults and keymaps 9 | 10 | if [ -f $sysresources ]; then 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | xrdb -merge $sysresources 19 | 20 | fi 21 | 22 | if [ -f $sysmodmap ]; then 23 | xmodmap $sysmodmap 24 | fi 25 | 26 | if [ -f "$userresources" ]; then 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | xrdb -merge "$userresources" 35 | 36 | fi 37 | 38 | if [ -f "$usermodmap" ]; then 39 | xmodmap "$usermodmap" 40 | fi 41 | 42 | # start some nice programs 43 | 44 | if [ -d /etc/X11/xinit/xinitrc.d ] ; then 45 | for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do 46 | [ -x "$f" ] && . "$f" 47 | done 48 | unset f 49 | fi 50 | 51 | twm & 52 | 53 | xsetroot -cursor_name Breeze 54 | # setxkbmap -model pc105 -layout us,ru -option grp:alt_shift_toggle 55 | exec i3 56 | -------------------------------------------------------------------------------- /.zshrc: -------------------------------------------------------------------------------- 1 | # Created by newuser for 5.8.1 2 | 3 | # If you come from bash you might have to change your $PATH. 4 | # export PATH=$HOME/bin:/usr/local/bin:$PATH 5 | 6 | # Path to your oh-my-zsh installation. 7 | export ZSH="$HOME/.oh-my-zsh" 8 | 9 | # Set name of the theme to load --- if set to "random", it will 10 | # load a random theme each time oh-my-zsh is loaded, in which case, 11 | # to know which specific one was loaded, run: echo $RANDOM_THEME 12 | # See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes 13 | ZSH_THEME="robbyrussell" 14 | 15 | # Set list of themes to pick from when loading at random 16 | # Setting this variable when ZSH_THEME=random will cause zsh to load 17 | # a theme from this variable instead of looking in $ZSH/themes/ 18 | # If set to an empty array, this variable will have no effect. 19 | # ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) 20 | 21 | # Uncomment the following line to use case-sensitive completion. 22 | # CASE_SENSITIVE="true" 23 | 24 | # Uncomment the following line to use hyphen-insensitive completion. 25 | # Case-sensitive completion must be off. _ and - will be interchangeable. 26 | # HYPHEN_INSENSITIVE="true" 27 | 28 | # Uncomment one of the following lines to change the auto-update behavior 29 | # zstyle ':omz:update' mode disabled # disable automatic updates 30 | # zstyle ':omz:update' mode auto # update automatically without asking 31 | # zstyle ':omz:update' mode reminder # just remind me to update when it's time 32 | 33 | # Uncomment the following line to change how often to auto-update (in days). 34 | # zstyle ':omz:update' frequency 13 35 | 36 | # Uncomment the following line if pasting URLs and other text is messed up. 37 | # DISABLE_MAGIC_FUNCTIONS="true" 38 | 39 | # Uncomment the following line to disable colors in ls. 40 | # DISABLE_LS_COLORS="true" 41 | 42 | # Uncomment the following line to disable auto-setting terminal title. 43 | # DISABLE_AUTO_TITLE="true" 44 | 45 | # Uncomment the following line to enable command auto-correction. 46 | # ENABLE_CORRECTION="true" 47 | 48 | # Uncomment the following line to display red dots whilst waiting for completion. 49 | # You can also set it to another string to have that shown instead of the default red dots. 50 | # e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f" 51 | # Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765) 52 | # COMPLETION_WAITING_DOTS="true" 53 | 54 | # Uncomment the following line if you want to disable marking untracked files 55 | # under VCS as dirty. This makes repository status check for large repositories 56 | # much, much faster. 57 | # DISABLE_UNTRACKED_FILES_DIRTY="true" 58 | 59 | # Uncomment the following line if you want to change the command execution time 60 | # stamp shown in the history command output. 61 | # You can set one of the optional three formats: 62 | # "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" 63 | # or set a custom format using the strftime function format specifications, 64 | # see 'man strftime' for details. 65 | # HIST_STAMPS="mm/dd/yyyy" 66 | 67 | # Would you like to use another custom folder than $ZSH/custom? 68 | # ZSH_CUSTOM=/path/to/new-custom-folder 69 | 70 | # Which plugins would you like to load? 71 | # Standard plugins can be found in $ZSH/plugins/ 72 | # Custom plugins may be added to $ZSH_CUSTOM/plugins/ 73 | # Example format: plugins=(rails git textmate ruby lighthouse) 74 | # Add wisely, as too many plugins slow down shell startup. 75 | plugins=( 76 | git 77 | zsh-autosuggestions 78 | zsh-syntax-highlighting 79 | ) 80 | 81 | source $ZSH/oh-my-zsh.sh 82 | 83 | # User configuration 84 | 85 | # export MANPATH="/usr/local/man:$MANPATH" 86 | 87 | # You may need to manually set your language environment 88 | # export LANG=en_US.UTF-8 89 | 90 | # Preferred editor for local and remote sessions 91 | # if [[ -n $SSH_CONNECTION ]]; then 92 | # export EDITOR='vim' 93 | # else 94 | # export EDITOR='mvim' 95 | # fi 96 | 97 | # Compilation flags 98 | # export ARCHFLAGS="-arch x86_64" 99 | 100 | # Set personal aliases, overriding those provided by oh-my-zsh libs, 101 | # plugins, and themes. Aliases can be placed here, though oh-my-zsh 102 | # users are encouraged to define aliases within the ZSH_CUSTOM folder. 103 | # For a full list of active aliases, run `alias`. 104 | # 105 | # Example aliases 106 | # alias zshconfig="mate ~/.zshrc" 107 | # alias ohmyzsh="mate ~/.oh-my-zsh" 108 | 109 | eval "$(starship init zsh)" 110 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # dotfiles 2 | > Linux config files (rxvt-unicode, flameshot, dunst, lemonbar-xft, picom, cava, cmus, eww, zathura, rofi, i3-gaps, nvim, ranger) 3 | ```text 4 | dP dP .8888b oo dP 5 | 88 88 88 " 88 6 | .d888b88 .d8888b. d8888P 88aaa dP 88 .d8888b. .d8888b. 7 | 88' `88 88' `88 88 88 88 88 88ooood8 Y8ooooo. 8 | 88. .88 88. .88 88 88 88 88 88. ... 88 9 | .------------ `88888P8 `88888P' dP dP dP dP `88888P' `88888P' ------------. 10 | |::::::::::::::.......::......::::..:::..:::::..:..::......:::......::::::::::::::| 11 | |:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::| 12 | |:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::| 13 | |---------------------------------------------------------------------------------| 14 | | cmus | c* music player cmus(1) | 15 | | dunst | notification daemon dunst(1) | 16 | | i3 | window manager i3(1) | 17 | | picom | a compositor for X11 picom(1) | 18 | | flameshot | powerful, simple-to-use screenshot software flameshot(1) | 19 | | lemonbar | featherweight lemon-scented bar lemonbar(1) | 20 | | eww | simple widgets | 21 | | neovim | text editor nvim(1) | 22 | | rxvt-unicode | a VT102 emulator for the X window system urxvt(1), urxvt(7) | 23 | | ranger | file manager ranger(1) | 24 | | rofi | run launcher, window switcher, etc. rofi(1) | 25 | | x11 | x window system x(7), xinit(1), xserver(1) | 26 | `---------------------------------------------------------------------------------' 27 | ``` 28 | 29 | ## Table of contents 30 | * [General info](#general-info) 31 | * [Screenshots](#screenshots) 32 | * [Steps for the installation](#steps-for-the-installation) 33 | * [Tips](#tips) 34 | * [Hotkeys](#hotkeys) 35 | * [ToDo List](#todo-list) 36 | * [Afterwords](#afterwords) 37 | 38 | # General info 39 | This dotfiles include `.Xresources` files for urxvt and `.config` files, with some commented code. You may uncomment and test it. 40 | Change keyboard layout in `.xinit` or delete it, if you use only one language. 41 | Hopefully I can improve these configs, add something and remove the useless code, so stay tuned for more updates. 42 | For additional info i suggest you to check Arch Wiki pages about this utils to set them correctly up. 43 | 44 | # Screenshots 45 | 46 | ![locker](screenshots/betterlockscreen.png) 47 | *BetterLockScreen*\ 48 | \ 49 | \ 50 | \ 51 | ![eww](screenshots/eww.png) 52 | *eww widgets*\ 53 | \ 54 | \ 55 | \ 56 | ![urxvt](screenshots/terminal.png) 57 | *terminal emulators and type test*\ 58 | \ 59 | \ 60 | \ 61 | ![zathura](screenshots/zathura.png) 62 | *zathura*\ 63 | \ 64 | \ 65 | \ 66 | ![thunar](screenshots/thunar.png) 67 | *dunst, thunar and eww calendar*\ 68 | \ 69 | \ 70 | \ 71 | ![rofi apps](screenshots/searcher.png) 72 | *rofi app search*\ 73 | \ 74 | \ 75 | \ 76 | ![powermenu](screenshots/powermenu.png) 77 | *rofi powermenu* 78 | 79 | # Steps for the installation 80 | 1. **Script :** 81 | ```bash 82 | ./install.sh pacman yay nvim set 83 | ``` 84 | _Requires yay installed_ 85 | > If something goes wrong, there's an instruction bellow for manual installation 86 | 87 | 2. **Utils list :** 88 | - WM : [i3-gaps](https://github.com/Airblader/i3) 89 | - Shell : zsh 90 | - [starship](https://github.com/starship/starship) 91 | - [zsh-autosuggestion](https://github.com/zsh-users/zsh-autosuggestions) 92 | - [zsh-syntax-highlighting](https://github.com/zsh-users/zsh-syntax-highlighting) 93 | - Fonts : [Iosevka](https://typeof.net/Iosevka/), [Hack Nerd Fonts](https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/Hack), [Feather](https://feathericons.com) ([ttf](fonts/feather.ttf)) 94 | - Locker : [BetterLockScreen](https://github.com/betterlockscreen/betterlockscreen) 95 | - Icons : [Candy Icons](https://github.com/EliverLara/candy-icons), [Papirus](https://github.com/PapirusDevelopmentTeam/papirus-icon-theme) 96 | - Music player : [cmus](https://github.com/cmus/cmus) ([some themes](https://github.com/averms/base16-cmus)) 97 | - Audio visualizer : [cava](https://github.com/karlstav/cava) 98 | - Notification daemon : [dunst](https://github.com/dunst-project/dunst) 99 | - Cursor : Breeze 100 | - GTK Theme : [Qogir](https://github.com/vinceliuice/Qogir-theme) 101 | - Terminal emulator : 102 | - URxvt : 103 | - [urxvt-perls](https://github.com/muennich/urxvt-perls) 104 | - [urxvt-font-size](https://github.com/majutsushi/urxvt-font-size) 105 | - [urxvt-tabbedex](https://github.com/stepb/urxvt-tabbedex) 106 | - Kitty 107 | - File manager : 108 | - Terminal : [ranger](https://github.com/ranger/ranger) 109 | - GUI : thunar 110 | - Screenshot software : [maim](https://github.com/naelstrof/maim), [flameshot](https://github.com/flameshot-org/flameshot) 111 | - Widgets : [eww](https://github.com/elkowar/eww) ([docs](https://elkowar.github.io/eww/)) 112 | - 1920x1080 : [adi1090x's widgets](https://github.com/adi1090x/widgets) 113 | - 1360x768 : [edited widgets](.config/eww) with Spotify 114 | - Statusbar : [lemonbar-xft](https://github.com/drscream/lemonbar-xft) 115 | - Text editor : 116 | - Terminal : [neovim](https://github.com/neovim/neovim) 117 | - [Plugin manager](https://github.com/junegunn/vim-plug) 118 | - Themes : 119 | - [Navarasu's onedark](https://github.com/navarasu/onedark.nvim) 120 | - [Joshdick's onedark](https://github.com/joshdick/onedark.vim) 121 | - [Crusoexia's monokai](https://github.com/crusoexia/vim-monokai) 122 | - GUI : [typora](https://typora.io), [xed](https://github.com/linuxmint/xed) 123 | - Compositor : [Ibhagwan's picom](https://github.com/ibhagwan/picom-ibhagwan-git) 124 | - App launcher : [rofi](https://github.com/davatorium/rofi) 125 | - Wallpapers : [lambda wallpapers](https://github.com/pagankeymaster/lambda-wallpapers), [Aenami](https://www.reddit.com/user/Aenami/) 126 | - Document viewer : [zathura](https://github.com/pwmt/zathura) ([Dracula theme](https://github.com/dracula/zathura)) 127 | - Type Test : [tt](https://github.com/lemnos/tt) 128 | - Terminal decoration : [pipes.sh](https://github.com/pipeseroni/pipes.sh), [cmatrix](https://github.com/abishekvashok/cmatrix), [cbonsai](https://gitlab.com/jallbrit/cbonsai) 129 | - Markdown Knowledge Vault : [obsidian](https://obsidian.md) 130 | 131 | ## Required packages : 132 | - AUR : 133 | - [Iosevka](https://aur.archlinux.org/ttf-iosevka/) 134 | - [Hack Nerd Fonts](https://aur.archlinux.org/nerd-fonts-hack/) 135 | - [Feather](fonts/feather.ttf) 136 | - [lemonbar-xft](https://aur.archlinux.org/lemonbar-xft-git/) 137 | - [eww](https://aur.archlinux.org/packages/eww-git/) 138 | - [cava](https://aur.archlinux.org/packages/cava/) 139 | - [picom](https://aur.archlinux.org/packages/picom-ibhagwan-git/) 140 | - [Candy icons](https://aur.archlinux.org/packages/candy-icons-git) 141 | - [Breeze](https://aur.archlinux.org/packages/breeze-default-cursor-theme) 142 | - [Qogir](https://aur.archlinux.org/packages/qogir-gtk-theme) 143 | - [betterlockscreen](https://aur.archlinux.org/betterlockscreen.git) 144 | - Pacman : 145 | - i3-gaps (may replace your current i3, won't occur any major changes except adding gaps) 146 | - cmus 147 | - maim 148 | - flameshot 149 | - neovim (ctags) 150 | - rofi 151 | - feh 152 | - xss-lock 153 | - rxvt-unicode 154 | - thunar 155 | - ranger (ueberzug) 156 | - zathura 157 | - dunst 158 | - papirus-icon-theme 159 |

160 | - For AUR : 161 | - `yay -S "package"` or `git clone "AUR_git_link"; cd "AUR_package"; makepkg -si` 162 | - For Pacman : 163 | - `pacman -S "package"` 164 | 165 | 2. **Adding configs :** 166 | - Clone this repository. `https://github.com/CodeHeister/dotfiles` 167 | - If there's still no `.config` or other directories in your home directory (`~`), you may move all directories to your `~`. Otherwise just copy or include files of your interest. Respect file disposition to save configs from path error or replace all paths with your. 168 | - If everything is correctly installed and configs are added, all may work without troubles. 169 | 170 | # Tips 171 | 172 | - Don't forget to add your API keys to `.config/eww/scripts`. 173 | - Add your keyboard layouts to `.xinitrc`. 174 | - You can easily configure lemonbar output in `.config/lemonbar/bar` and add your own functionality. There's also an array of colors. Each color is binded to workspace number, so change workspace's names correctly. 175 | - If you want to move rofi configs, don't forget to move colors.rasi with them in the same directory. Overwise you'll get default colors. 176 | 177 | # Hotkeys 178 | 179 |
180 | i3-gaps 181 | 182 | - `.config/i3/config` : 183 | - `Mod+[0-9]` : go to workspace 184 | - `Mod+Shift+[0-9]` : move active window to workspace 185 | - `Alt+Ctrl+[A/D]` : move to the left/right workspace 186 | - `Mod+Tab` : swap between current and last used workspace 187 | - `Mod+Shift+C` : reload i3 config file 188 | - `Mod+[Left/Right/Up/Down]` : change focus 189 | - `Mod+Shift+[Left/Right/Up/Down]` : move focused window (floating), swap windows (tilling) 190 | - `Mod+H` : split in horizontal orientation 191 | - `Mod+V` : split in vertical orientation 192 | - `Mod+F` : fullscreen toggle 193 | - `Mod+E` : layout reverse (toggle split) 194 | - `Mod+W` : layout tabbed 195 | - `Mod+S` : layout stacking 196 | - `Mod+D` : focus child 197 | - `Mod+A` : focus parent 198 | - `Mod+Shift+Space` : toggle tiling/floating for current window 199 | - `Mod+Space` : change focus between tiling/floating windows 200 | - `Mod+Shift+R` : restart i3 201 | - `Mod+R` : resize mode 202 | - `[Left/Right/Up/Down]` : resize 203 | - `Esc` : exit resize mode (don't forget to press it) 204 | - `Mod+Shift+A` : start lemonbar 205 | - `Mod+Shift+D` : close lemonbar 206 | - `Print` : fullscreen screenshot (saves to ~/Pictures/Screenshots) 207 | - `Ctrl+Print` : area or app screenshot (saves to ~/Pictures/Screenshots) 208 | - `Ctrl+Shift+Print` : flameshot (interactive screen software with utils) 209 | - `Mod+F3` : app searcher 210 | - `Alt+Tab` : active apps searcher 211 | - `Mod+Shift+E` : powermenu 212 | - `Mod+F6` : prev Spotify song 213 | - `Mod+F7` : pause/resume Spotify song 214 | - `Mod+F8` : next Spotify song 215 | - `Mod+F9` : mute/unmute 216 | - `Mod+F10` : volume down 217 | - `Mod+F11` : volume up 218 | - `Mod+Shift+G` : change gaps 219 | - `O` : outer gaps 220 | - `+` : +5 to current value of the current workspace 221 | - `-` : -5 to current value of the current workspace 222 | - `0` : set gaps 0 223 | - `Shift++` : +5 to current value for all workspaces 224 | - `Shift+-` : -5 to current value for all workspaces 225 | - `Shift+0` : set all gaps 0 226 | - `Esc` : exit gaps editor 227 | - `I` : inner gaps 228 | - `+` : +5 to current value of the current workspace 229 | - `-` : -5 to current value of the current workspace 230 | - `0` : set gaps 0 231 | - `Shift++` : +5 to current value for all workspaces 232 | - `Shift+-` : -5 to current value for all workspaces 233 | - `Shift+0` : set all gaps 0 234 | - `Esc` : exit gaps editor 235 | - `Mod+Shift+T` or `Mod+Enter` : launch terminal 236 | - `Mod+Q` : hide current window 237 | - `Mod+Z` : roll through hidden windows 238 | - `Mod+Shift+Q` : close current window 239 | - `Mod+F1` : launch/exit eww 240 | - `Mod+DragMouseLeftButton` : drag floating windows 241 | - `Mod+DragMouseRightButton` : resize non-floating windows and gaps between them 242 |
243 | 244 |

245 | 246 |
247 | X11 248 | 249 | - `.xinitrc` : 250 | - `Alt+Tab` : change keyboard layout (disabled) uncomment `setxkbmap` and add your layouts) 251 |
252 | 253 |

254 | 255 |
256 | URxvt 257 | 258 | - `.Xresources.d/urxvt-unicode` : 259 | - `Tab` : autofill 260 | - `Shift+Tab` : autofill (backwards) 261 | - `Ctrl+Shift+C` : copy 262 | - `Ctrl+Shift+V` : paste 263 | - `Ctrl+Up` : increase font size 264 | - `Ctrl+Down` : decrease font size 265 | - `Ctrl+Shift+Up` : increase font size (global) 266 | - `Ctrl+Shift+Down` : decrease font size (global) 267 | - `Ctrl+=` : reset font size 268 | - `Ctrl+/` : show font size 269 | - `Ctrl+Tab` : select urls 270 | - `Ctrl+s` : search in terminal 271 | - `Ctrl+Esc` : activate selection mode 272 | - `[h/j/k/l]` : Move cursor left/down/up/right (also with arrow keys) 273 | - `[g/G/0/^/$/H/M/L/f/F/;/,/w/W/b/B/e/E]` : More vi-like cursor movement keys 274 | - `['/'/?]` : Start forward/backward search 275 | - `[n/N]`: Repeat last search, N: in reverse direction 276 | - `Ctrl+[f/b]` : Scroll down/up one screen 277 | - `Ctrl+[d/u]` : Scroll down/up half a screen 278 | - `[v/V/Ctrl+v]` : Toggle normal/linewise/blockwise selection 279 | - `[y/Return]` : Copy selection to primary buffer, Return: quit afterwards 280 | - `Y` : Copy selected lines to primary buffer or cursor line and quit 281 | - `[q/Escape]` : Quit keyboard selection mode 282 | - `Shift+Down` : open new tab 283 | - `Ctrl+d` : close tab 284 | - `Shift+Up` : rename 285 | - `Ctrl+[Left/Right]` : move tabs (left/right) 286 | - `Shift+[Left/Right]` : go to tab (left/right) 287 |
288 | 289 | # ToDo List 290 | 291 | - [x] Onedark Thunar 292 | - [x] Change eww widgets 293 | - [x] Add startpage 294 | - [x] Better urxvt 295 | 296 | # Afterwords 297 | 298 | I'm looking forward for your tips and i'm ready to help you or add some info here, if you'll consider it necessary. I'll necessary clear and improve configs to make it more flexible and convenient. 299 | -------------------------------------------------------------------------------- /fonts/feather.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/fonts/feather.ttf -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | configs=( 2 | ".xinitrc" 3 | ".Xresources" 4 | ".Xresources.d" 5 | ".config" 6 | ".zshrc" 7 | ) 8 | 9 | paks_pacman=( 10 | "i3-gaps" 11 | "cmus" 12 | "maim" 13 | "flameshot" 14 | "neovim" 15 | "rofi" 16 | "feh" 17 | "xss-lock" 18 | "rxvt-unicode" 19 | "thunar" 20 | "ranger" 21 | "ueberzug" 22 | "zathura" 23 | "dunst" 24 | "papirus-icon-theme" 25 | "yarn" 26 | ) 27 | 28 | paks_yay=( 29 | "betterlockscreen" 30 | "breeze-default-cursor-theme" 31 | "qogir-gtk-theme" 32 | "candy-icons-git" 33 | "picom-ibhagwan-git" 34 | "cava" 35 | "eww-git" 36 | "lemonbar-xft-git" 37 | "ttf-hack-nerd" 38 | "ttf-iosevka" 39 | ) 40 | 41 | function install_pacman() { 42 | local paks_install="" 43 | 44 | for i in "${paks_pacman[@]}"; do 45 | paks_install="$paks_install$i " 46 | done 47 | echo -n $paks_install 48 | 49 | if [ "$EUID" -ne 0 ]; then 50 | sudo pacman -Sy $paks_install 51 | else 52 | printf "\033[31mpacman\033[39m: Already \033[36mroot\033[39m (--noconfirm)\n" 53 | pacman -Sy $paks_install --noconfirm 54 | fi 55 | } 56 | 57 | function install_aur() { 58 | local paks_install="" 59 | 60 | for i in "${paks_yay[@]}"; do 61 | paks_install="$paks_install$i " 62 | done 63 | 64 | if [ "$EUID" -ne 0 ]; then 65 | if [ ! command -v yay &> /dev/null ]; then 66 | printf "\033[31myay\033[39m: no yay" 67 | else 68 | yay -Sy $paks_install 69 | fi 70 | else 71 | printf "\033[31myay\033[39m: Already \033[36mroot\033[39m (not allowed)\n" 72 | fi 73 | } 74 | 75 | function move_configs() { 76 | for i in ${configs[@]}; do 77 | if [ -e "./${i}" ]; then 78 | if [ -d "./${i}" ]; then 79 | mkdir -p "$HOME/${i}" 80 | find "./${i}" -maxdepth 1 -mindepth 1 | { 81 | while read line; do 82 | save="$HOME/${i}/${line##*/}" 83 | if [ -e "${save}" ]; then 84 | mv "${save}" "${save}.save" 85 | if [ $? -ne 0 ]; then 86 | printf "\033[31m%s\033[39m: initial config not saved\n" \ 87 | "$HOME/${i}" >&2 88 | else 89 | printf "\033[36m%s\033[39m: initial config source \033[36m%s\033[39m saved as \033[36m%s.save\033[39m\n" \ 90 | "$HOME/${i}" "${line##*/}" "${line##*/}" 91 | fi 92 | fi 93 | cp -r "./${i}/${line##*/}" "$HOME/${i}" 94 | if [ $? -ne 0 ]; then 95 | printf "\033[31m$HOME/${i}\033[39m: failed to add \033[36m${line##*/}\033[39m\n" >&2 96 | else 97 | printf "\033[36m$HOME/${i}\033[39m: added \033[36m${line##*/}\033[39m\n" 98 | fi 99 | done 100 | } 101 | else 102 | save="$HOME/${i}" 103 | if [ -e "${save}" ]; then 104 | mv "${save}" "${save}.save" 105 | if [ $? -ne 0 ]; then 106 | printf "\033[31m%s\033[39m: initial config not saved\n" \ 107 | "$HOME" >&2 108 | else 109 | printf "\033[36m%s\033[39m: initial config source \033[36m%s\033[39m saved as \033[36m%s.save\033[39m\n" \ 110 | "$HOME" "${i}" "${i}" 111 | fi 112 | fi 113 | cp -r "./${i}" "$HOME" 114 | if [ $? -ne 0 ]; then 115 | printf "\033[31m$HOME\033[39m: failed to add \033[36m${i}\033[39m\n" 116 | else 117 | printf "\033[36m$HOME\033[39m: added \033[36m${i}\033[39m\n" 118 | fi 119 | fi 120 | else 121 | printf "$i: \033[31minvalid path\033[39m\n" 122 | fi 123 | done 124 | } 125 | 126 | function make_nvim() { 127 | if [ ! -e "$HOME/.local/share/nvim/site/autoload/plug.vim" ]; then 128 | sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' 129 | fi 130 | nvim -c 'PlugUpdate' -c 'PlugInstall' -c 'qa!' 131 | } 132 | 133 | function show_help() { 134 | printf "Usage: ./install.sh [SUB-COMMAND]\n\n help\t\tshow this message\n yay\t\tinstall aur packages\n pacman\tinstall pacman packages\n nvim\t\tinstall nvim plugins\n set\t\tmove configs to home\n\nOn no sub-commands script will use default settings.\n\n" 135 | } 136 | 137 | if [ $# -lt 1 ]; then 138 | install_pacman 139 | install_aur 140 | move_configs 141 | make_nvim 142 | fi 143 | 144 | while (( "$#" )); do 145 | arg=$1 146 | case $arg in 147 | pacman) 148 | install_pacman ;; 149 | yay) 150 | install_aur ;; 151 | set) 152 | move_configs ;; 153 | nvim) 154 | make_nvim ;; 155 | help) 156 | show_help ;; 157 | *) 158 | printf "\033[31m%s\033[39m: No such sub-command\n" "$arg" >&2 159 | esac 160 | shift 161 | done 162 | 163 | 164 | -------------------------------------------------------------------------------- /screenshots/betterlockscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/screenshots/betterlockscreen.png -------------------------------------------------------------------------------- /screenshots/eww.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/screenshots/eww.png -------------------------------------------------------------------------------- /screenshots/powermenu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/screenshots/powermenu.png -------------------------------------------------------------------------------- /screenshots/searcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/screenshots/searcher.png -------------------------------------------------------------------------------- /screenshots/terminal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/screenshots/terminal.png -------------------------------------------------------------------------------- /screenshots/thunar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/screenshots/thunar.png -------------------------------------------------------------------------------- /screenshots/zathura.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodeHeister/dotfiles/5a30bcab9a7f6a8557dc770b86b908b358140b79/screenshots/zathura.png --------------------------------------------------------------------------------