├── 2023-07-07-193611_hyprshot.png ├── 2023-07-07-193628_hyprshot.png ├── 2023-07-07-193644_hyprshot.png ├── README.md ├── eww ├── bar.yuck ├── bg-clock.yuck ├── dashboard │ ├── eww.scss │ ├── eww.yuck │ └── variables.yuck ├── eww.scss ├── eww.yuck ├── images │ ├── 01d.png │ ├── 01n.png │ ├── 02d.png │ ├── 02n.png │ ├── 03d.png │ ├── 04d.png │ ├── 04n.png │ ├── 09d.png │ ├── 09n.png │ ├── 10d.png │ ├── 10n.png │ ├── 11d.png │ ├── 11n.png │ ├── 13d.png │ ├── 13n.png │ ├── 50d.png │ ├── 50n.png │ └── placeholder.svg ├── powermenu.yuck └── scripts │ ├── change-active-workspace │ ├── get-active-workspace │ ├── get-workspaces │ ├── getmem │ ├── getvol │ ├── getweather │ ├── greeting │ ├── music │ ├── uptime.py │ └── weather.py ├── gtk-3.0 └── settings.ini ├── gtk-4.0 └── settings.ini ├── hypr ├── hyprland.conf ├── hyprland.conf.save ├── hyprpaper.conf └── wallpapers │ ├── aanime.png │ ├── anime.jpeg │ ├── arch.png │ ├── city.jpg │ ├── flowers.png │ ├── mountain.jpg │ └── mountain.png ├── nvim ├── init.lua ├── lazy-lock.json └── lua │ ├── core │ ├── bootstrap.lua │ ├── init.lua │ ├── keybinds.lua │ └── utils.lua │ └── plugins │ ├── configs │ ├── blankline.lua │ ├── bufferline.lua │ ├── cmp.lua │ ├── colorscheme.lua │ ├── gitsigns.lua │ ├── lazy_nvim.lua │ ├── lspconfig.lua │ ├── lspsaga.lua │ ├── lualine.lua │ ├── mason.lua │ ├── nvimtree.lua │ ├── telescope.lua │ ├── terminal.lua │ └── treesitter.lua │ └── init.lua └── rofi ├── config.rasi └── userconfig └── config.rasi /2023-07-07-193611_hyprshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxtaran2010/hyprland-rice/030b8e47b0bb795d71aaac845938ecd183d75a82/2023-07-07-193611_hyprshot.png -------------------------------------------------------------------------------- /2023-07-07-193628_hyprshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxtaran2010/hyprland-rice/030b8e47b0bb795d71aaac845938ecd183d75a82/2023-07-07-193628_hyprshot.png -------------------------------------------------------------------------------- /2023-07-07-193644_hyprshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxtaran2010/hyprland-rice/030b8e47b0bb795d71aaac845938ecd183d75a82/2023-07-07-193644_hyprshot.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Hyprland Rice 2 | Catppuccin hyprland theme by maxtaran2010 (aka tmasik.t) 3 | ## Things that I use 4 | ### Apps 5 | `eww` `hyprland` `hyprpaper` `rofi` `hyprshot` `swaylock` `neovim` `kitty` `swaync` 6 | ### Fonts 7 | `Nerd Fonts` `Belanosima` `Montserrat` 8 | ### Other things 9 | `mpd` (for music) `hyprctl` `upower` `python` 10 | ## Keybindings 11 | SUPER + {1-10} - workspace {1-10}
12 | SUPER + SHIFT + {1-10} - move window to workspace {1-10}
13 | SUPER + PRINT - screenshot (region)
14 | SUPER + Enter - terminal
15 | SUPER + C - kill window
16 | SUPER + SHIFT + q - exit HyprLand
17 | SUPER + S - toggle window floating
18 | SUPER + T - toggle window pseudo tiling
19 | SUPER + J - toggle split mode
20 | SUPER + D - wofi
21 | SUPER + scroll - switch between workspaces
22 | 23 | ## Music 24 | 25 | Music in bar and in dashboard is only working with mpd, but there is a branch with any player (using `playerctl`) 26 | 27 | ## Pics 28 | ![Screenshot](2023-07-07-193611_hyprshot.png) 29 | ![Screenshot](2023-07-07-193628_hyprshot.png) 30 | ![Screenshot](2023-07-07-193644_hyprshot.png) 31 | -------------------------------------------------------------------------------- /eww/bar.yuck: -------------------------------------------------------------------------------- 1 | (defwidget bar [] 2 | (centerbox :orientation "h" 3 | (box :class "left-content" :orienataion "h" :halign "start" :space-evenly false 4 | (box :class "arch-logo box" :orientation "h" 5 | "" 6 | ) 7 | (box :class "workspaces box" :orientation "h" 8 | (workspaces) 9 | ) 10 | ) 11 | (box :orientation "h" :space-evenly false 12 | (box :class "music box" :orientation "h" :space-evenly false 13 | (button :onclick "~/.config/eww/scripts/music --toggle" :class "fontawesome side-buttons2 left-side-button" (box 14 | music_status 15 | )) 16 | (button :onclick "./scripts/music --prev" :class "side-buttons bigger-font fontawesome" "") 17 | (box :class "music-box" :space-evenly false 18 | artist 19 | "- " 20 | song 21 | ) 22 | (button :onclick "./scripts/music --next" :class "side-buttons bigger-font fontawesome" "") 23 | (button :onclick "hyprctl dispatch workspace 6 && kitty ncmpcpp &" :class "side-buttons2 fontawesome right-side-button" '') 24 | 25 | ) 26 | ) 27 | (box :orientation "h" :halign "end" :space-evenly false 28 | (box :orientation "h" :class "box battery" :space-evenly false 29 | (box :class "fontawesome" " ") 30 | percentage 31 | "%" 32 | ) 33 | (box :orientation "h" :class "box time" :space-evenly false 34 | (box :class "fontawesome" " ") 35 | time 36 | ) 37 | (box :onclick `swaync-client -op` :class "box notifications" 38 | (box :class "fontawesome" " ") 39 | notifications 40 | ) 41 | (button :class "box toggledashboard fontawesome" :onclick `if [[ $(eww windows | grep clock) == "*clock" ]]; then eww close clock && eww open dashboard; else eww close dashboard && eww open clock; fi` :style "font-size: 20px" "") 42 | (button :style "all: unset" :onclick `if [[ "$(eww windows | grep volumemenu)" == "*volumemenu" ]]; then eww close volumemenu; else eww open volumemenu; fi 43 | ` 44 | (box :orientation "h" :class "box volume" :space-evenly false 45 | (box :class "fontawesome" " ") 46 | (box :space-evenly "false" 47 | volume 48 | '%') 49 | ) 50 | ) 51 | (button :onclick `if [[ $(eww windows) == *"*powermenu"* ]]; then eww close powermenu; else eww open powermenu; fi` :class "box fontawesome power" 52 | "" 53 | ) 54 | ) 55 | ) 56 | ) 57 | 58 | (defvar x false) 59 | (defpoll notifications :interval "1s" `swaync-client -c`) 60 | (defpoll time :interval "1s" "date +'%d %B, %H:%M'") 61 | (defpoll artist :interval "1s" "./scripts/music --artist") 62 | (defpoll song :interval "1s" "./scripts/music --song") 63 | (defpoll percentage :interval "5m" `echo $(($(upower -i /org/freedesktop/UPower/devices/battery_BAT1 | grep "percentage:" | awk '{print $2}' | sed 's/%//g')+1))`) 64 | (defpoll volume :interval "0.1s" `./scripts/getvol`) 65 | (defpoll music_status :interval "0.1s" `./scripts/music --status`) 66 | 67 | (defwidget volume [] 68 | (box :orientation "v" :class "volume-menu" 69 | (scale 70 | :class "volumeslider" 71 | :value volume 72 | :orientation "v" 73 | :flipped true 74 | :tooltip "${volume}%" 75 | :min 0 76 | :max 101 77 | :onchange "mpc volume {}" 78 | ) 79 | ) 80 | ) 81 | 82 | (defwidget workspaces [] 83 | (box :orientation "h" 84 | (button :onclick "hyprctl dispatch workspace 1" "") 85 | (button :onclick "hyprctl dispatch workspace 2" "") 86 | (button :onclick "hyprctl dispatch workspace 3" "") 87 | (button :onclick "hyprctl dispatch workspace 4" "") 88 | (button :onclick "hyprctl dispatch workspace 5" "") 89 | (button :onclick "hyprctl dispatch workspace 6" "") 90 | ) 91 | ) 92 | 93 | (defwindow bar 94 | :monitor 0 95 | :exclusive true 96 | :stacking "fg" 97 | :geometry (geometry :x "0%" 98 | :y "0%" 99 | :width "100%" 100 | :height "50px" 101 | :anchor "top center") 102 | (bar)) 103 | 104 | (defwindow volumemenu 105 | :monitor 0 106 | :stacking "overlay" 107 | :geometry (geometry :x "77px" 108 | :y "5px" 109 | :width "40px" 110 | :height "120px" 111 | :anchor "top right" 112 | ) 113 | (volume)) 114 | -------------------------------------------------------------------------------- /eww/bg-clock.yuck: -------------------------------------------------------------------------------- 1 | (defwindow clock 2 | :monitor 0 3 | :stacking "bg" 4 | :geometry (geometry :x "0%" 5 | :y "1%" 6 | :width "29%" 7 | :height "15%" 8 | :anchor "center" 9 | ) 10 | time2) 11 | (defpoll time2 :interval "1m" `date +'%H:%M'`) 12 | -------------------------------------------------------------------------------- /eww/dashboard/eww.scss: -------------------------------------------------------------------------------- 1 | .card { 2 | all: unset; 3 | border-radius: 7px; 4 | background-color: #11111b; 5 | margin-left: 10px; 6 | margin-bottom: 10px; 7 | padding: 20px; 8 | color: #cdd6f4; 9 | } 10 | .dashboard { 11 | background-color: rgba(#ffffff, 0.0); 12 | font-family: Montserrat; 13 | font-weight: bold; 14 | 15 | } 16 | .clock2 { 17 | padding: 5px 50px 5px 50px; 18 | } 19 | .applauncher { 20 | padding: 8px; 21 | } 22 | .applauncher > button { 23 | padding-top: 15px; 24 | padding-bottom: 15px; 25 | padding-left: 5px; 26 | padding-right: 0px; 27 | margin-left: 5px; 28 | font-size: 45px; 29 | font-family: "Font Awesome 6 Free"; 30 | color: #cdd6f4; 31 | } 32 | .music-song-name { 33 | margin-top: 15px; 34 | font-size: 25px; 35 | font-family: Belanosima; 36 | } 37 | .music-artist { 38 | font-size: 20px; 39 | font-family: Belanosima; 40 | font-weight: normal; 41 | color: #a6adc8; 42 | } 43 | .music3 > button { 44 | all: unset; 45 | color: #cdd6f4; 46 | font-size: 25px; 47 | font-family: "Font Awesome 6 Free" 48 | } 49 | .music3 { 50 | margin-top: 30px; 51 | } 52 | 53 | .thumbnail { 54 | all:unset; 55 | margin: 20px; 56 | padding-top: 200px; 57 | padding-left: 200px; 58 | background-size: 200px; 59 | border-radius: 15px; 60 | } 61 | .buttons { 62 | font-family: "Font Awesome 6 Free"; 63 | font-size: 45px; 64 | } 65 | .buttons > button { 66 | color: #cdd6f4; 67 | padding-top: 28px; 68 | padding-bottom: 28px; 69 | margin: 10px; 70 | background-color: #181825; 71 | } 72 | .cpu3 { 73 | color: #89b4fa; 74 | } 75 | .memory3 { 76 | color: #94e2d5 77 | } 78 | .uptime3 { 79 | color: #fab387 80 | } 81 | .volume3 { 82 | color: #a6e3a1 83 | } 84 | .brightness3 { 85 | color: #f9e2af 86 | } 87 | .battery3 { 88 | color: #f38ba8 89 | } 90 | .label { 91 | padding: 35px; 92 | } 93 | circular-progress { 94 | background-color: #181825; 95 | font-size: 45px; 96 | padding: 2.5rem; 97 | font-family: "Font Awesome 6 Free"; 98 | } 99 | .time2 { 100 | font-size: 180px; 101 | font-family: Belanosima; 102 | } 103 | .date { 104 | color: #bac2de; 105 | font-family: Belanosima; 106 | font-size: 30px; 107 | font-weight: bold; 108 | } 109 | .weather2 { 110 | font-family: Belanosima; 111 | font-size: 50px; 112 | } 113 | .weather1 { 114 | padding-left: 0px; 115 | padding-right: 15px; 116 | } 117 | -------------------------------------------------------------------------------- /eww/dashboard/eww.yuck: -------------------------------------------------------------------------------- 1 | (defpoll weather :interval "1h" "python ~/.config/eww/scripts/weather.py") 2 | (defpoll memory :interval "10s" "./scripts/getmem") 3 | (defpoll uptime :interval "10s" "python ./scripts/uptime.py") 4 | (defpoll brightness :interval "1s" `echo $(($(brightnessctl g)*100/$(brightnessctl m)))`) 5 | (defpoll cpu :interval "1s" `grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage}'`) 6 | (defpoll greeting :interval "1h" `./scripts/greeting`) 7 | (defwidget stats [name value label] 8 | (box :class "card $(name)2" :halgin "center" 9 | (circular-progress :value value :start-angle 0 :thickness 12 :class "${name}3" 10 | (label :text label 11 | :class "label ${name}4" 12 | :limit-width 2 13 | :show_truncated false 14 | :wrap false 15 | :angle 0.0) 16 | ) 17 | ) 18 | ) 19 | (defwidget dashboard [] 20 | (box :orientation "h" :space-evenly false 21 | (box :orientation "v" 22 | (box :orientation "h" 23 | (stats :name "cpu" :label "" :value cpu) 24 | (stats :name "memory" :label "" :value memory) 25 | )(box 26 | (stats :name "brightness" :label "" :value brightness) 27 | (stats :name "battery" :label "" :value percentage) 28 | )(box 29 | (stats :name "volume" :label "" :value volume) 30 | (stats :name "uptime" :label "" :value uptime) 31 | ) 32 | ) 33 | (box :orientation "v" :space-evenly false 34 | (box :class "card weather" 35 | (literal :content weather) 36 | ) 37 | (box :class "card clock2" 38 | (box :class "time2" time2) 39 | ) 40 | (box :class "card date" greeting) 41 | 42 | (box :class "card applauncher" 43 | (button :onclick "firefox &" "") 44 | (button :onclick "kitty &" "") 45 | (button :onclick "firefox --new-window https://youtube.com &" "") 46 | (button :onclick "discord &" "") 47 | (button :onclick "telegram-desktop &" "") 48 | ) 49 | ) 50 | (box :orientation "v" :space-evenly false 51 | (box :class "card buttons" 52 | (button :onclick "swaylock &" "") 53 | (button :onclick "pkill -U $USER" "") 54 | ) 55 | (box :orientation "v" :class "card music2" :space-evenly false 56 | (box :orientation "v" :space-evenly false 57 | (box :class "thumbnail" :style "background-image: url('./images/placeholder.svg')") 58 | (label :text song :class "music-song-name") 59 | (label :text artist :class "music-artist") 60 | ) 61 | (box :orientation "h" :class "music3" 62 | (button :onclick "./scripts/music --prev" "") 63 | (button :onclick "./scripts/music --toggle" music_status) 64 | (button :onclick "./scripts/music --next" "") 65 | ) 66 | ) 67 | ) 68 | ) 69 | 70 | ) 71 | 72 | (defwindow dashboard 73 | :monitor 0 74 | :stacking "bg" 75 | :geometry (geometry 76 | :x "0" 77 | :y "0" 78 | :anchor "center" 79 | ) 80 | (dashboard)) 81 | -------------------------------------------------------------------------------- /eww/dashboard/variables.yuck: -------------------------------------------------------------------------------- 1 | (defpoll date :interval "10h" "date +'%D'") 2 | 3 | -------------------------------------------------------------------------------- /eww/eww.scss: -------------------------------------------------------------------------------- 1 | //@import url("https://fonts.googleapis.com/css?family=Belanosima"); 2 | @import "./dashboard/eww.scss"; 3 | 4 | .powermenu { 5 | background-color: rgba(#11111b, 1.0); 6 | } 7 | .bar { 8 | background-color: rgba(#11111b, 1.0) 9 | } 10 | .clock { 11 | background-color: rgba(#11111b, 0.0); 12 | } 13 | .bigger-font { 14 | font-size: 20px 15 | } 16 | .toggledashboard { 17 | background-color: #e5c890; 18 | } 19 | .fontawesome { 20 | font-family: "Font Awesome 6 Free"; 21 | font-size: 15px; 22 | } 23 | .side-buttons { 24 | border-radius: 0px; 25 | background-color: #181825; 26 | margin-left: 0px; 27 | margin-right: 0px; 28 | padding-left: 15px; 29 | padding-right: 15px; 30 | font-size: 23px; 31 | } 32 | .notifications { 33 | background-color: #ef9f76; 34 | padding-left: 10px; 35 | padding-right: 10px; 36 | } 37 | .side-buttons2 { 38 | border-radius: 0px; 39 | background-color: #1e1e2e; 40 | margin-left: 0px; 41 | margin-right: 0px; 42 | padding-left: 15px; 43 | padding-right: 15px; 44 | } 45 | .arch-logo { 46 | padding-left: 12px; 47 | padding-right: 20px; 48 | background-color: #181825; 49 | font-size: 25px; 50 | color: #89b4fa; 51 | } 52 | .left-side-button { 53 | border-radius: 10px 0px 0px 10px; 54 | //border-radius-bottom: 10px; 55 | } 56 | 57 | .right-side-button { 58 | border-radius: 0px 10px 10px 0px; 59 | } 60 | .box { 61 | margin: 5px; 62 | border-radius: 10px; 63 | } 64 | .right { 65 | padding-right: 40px; 66 | } 67 | .workspaces { 68 | font-family: "Font Awesome 6 Free"; 69 | font-size: 15px; 70 | background-color: #1e1e2e; 71 | } 72 | 73 | scale trough { 74 | all: unset; 75 | background-color: #ffffff; 76 | border-radius: 5px; 77 | min-height: 80px; 78 | min-width: 12px; 79 | margin: 0 3px 0 10px; 80 | } 81 | scale trough highlight { 82 | all: unset; 83 | background-color: #8caaee; 84 | border-radius: 5px; 85 | border: 2px solid #ffffff; 86 | } 87 | scale trough slider { 88 | all: unset; 89 | } 90 | .volume-menu { 91 | padding: 10px 10px 10px 5px; 92 | } 93 | .volumemenu { 94 | border-radius: 5px; 95 | background-color: #8caaee; 96 | } 97 | button { 98 | padding-left: 12px; 99 | padding-right: 12px; 100 | background-color: rgba(#ffffff, 0.0); 101 | } 102 | .clock { 103 | border-radius: 7px; 104 | font-size: 200px; 105 | color: #cdd6f4; 106 | font-family: Belanosima; 107 | font-weight: bold; 108 | padding: 40px; 109 | } 110 | 111 | .bar, .powermenu{ 112 | font-family: Montserrat; 113 | font-weight: bold; 114 | } 115 | 116 | .music, .time { 117 | //font-family: "Font Awesome 6 Free"; 118 | background-color: #11111b; 119 | padding-left: 15px; 120 | padding-right: 15px; 121 | } 122 | .music { 123 | padding-left: 0px; 124 | padding-right: 0px; 125 | } 126 | .music-box { 127 | margin-left: 10px; 128 | margin-right: 10px; 129 | //width: 300px; 130 | } 131 | 132 | .time{ 133 | background-color: #ca9ee6; 134 | } 135 | .powermenu { 136 | font-size: 35px; 137 | border-radius: 7px; 138 | } 139 | .shutdown, .reboot, .logout, .lock { 140 | padding-left: 15px; 141 | margin-top: 7px; 142 | margin-left: 7px; 143 | margin-right: 7px; 144 | margin-bottom: 7px; 145 | padding-right: 20px; 146 | } 147 | .shutdown { 148 | background-color: #f38ba8; 149 | } 150 | .reboot { 151 | background-color: #cba6f7; 152 | } 153 | .logout { 154 | background-color: #89b4fa; 155 | } 156 | .lock { 157 | background-color: #a6e3a1; 158 | padding-right: 15px 159 | } 160 | .power { 161 | background-color: #e78284; 162 | padding-left: 12px; 163 | padding-right: 12px; 164 | font-size: 17px; 165 | } 166 | .battery { 167 | background-color: #a6d189; 168 | padding-left: 15px; 169 | padding-right: 15px; 170 | } 171 | 172 | .volume { 173 | background-color: #8caaee; 174 | padding-right: 15px; 175 | padding-left: 15px; 176 | } 177 | 178 | -------------------------------------------------------------------------------- /eww/eww.yuck: -------------------------------------------------------------------------------- 1 | (include "./bar.yuck") 2 | (include "./powermenu.yuck") 3 | (include "./bg-clock.yuck") 4 | (include "./dashboard/eww.yuck") 5 | -------------------------------------------------------------------------------- /eww/images/01d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxtaran2010/hyprland-rice/030b8e47b0bb795d71aaac845938ecd183d75a82/eww/images/01d.png -------------------------------------------------------------------------------- /eww/images/01n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxtaran2010/hyprland-rice/030b8e47b0bb795d71aaac845938ecd183d75a82/eww/images/01n.png -------------------------------------------------------------------------------- /eww/images/02d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxtaran2010/hyprland-rice/030b8e47b0bb795d71aaac845938ecd183d75a82/eww/images/02d.png -------------------------------------------------------------------------------- /eww/images/02n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxtaran2010/hyprland-rice/030b8e47b0bb795d71aaac845938ecd183d75a82/eww/images/02n.png -------------------------------------------------------------------------------- /eww/images/03d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxtaran2010/hyprland-rice/030b8e47b0bb795d71aaac845938ecd183d75a82/eww/images/03d.png -------------------------------------------------------------------------------- /eww/images/04d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxtaran2010/hyprland-rice/030b8e47b0bb795d71aaac845938ecd183d75a82/eww/images/04d.png -------------------------------------------------------------------------------- /eww/images/04n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxtaran2010/hyprland-rice/030b8e47b0bb795d71aaac845938ecd183d75a82/eww/images/04n.png -------------------------------------------------------------------------------- /eww/images/09d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxtaran2010/hyprland-rice/030b8e47b0bb795d71aaac845938ecd183d75a82/eww/images/09d.png -------------------------------------------------------------------------------- /eww/images/09n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxtaran2010/hyprland-rice/030b8e47b0bb795d71aaac845938ecd183d75a82/eww/images/09n.png -------------------------------------------------------------------------------- /eww/images/10d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxtaran2010/hyprland-rice/030b8e47b0bb795d71aaac845938ecd183d75a82/eww/images/10d.png -------------------------------------------------------------------------------- /eww/images/10n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxtaran2010/hyprland-rice/030b8e47b0bb795d71aaac845938ecd183d75a82/eww/images/10n.png -------------------------------------------------------------------------------- /eww/images/11d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxtaran2010/hyprland-rice/030b8e47b0bb795d71aaac845938ecd183d75a82/eww/images/11d.png -------------------------------------------------------------------------------- /eww/images/11n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxtaran2010/hyprland-rice/030b8e47b0bb795d71aaac845938ecd183d75a82/eww/images/11n.png -------------------------------------------------------------------------------- /eww/images/13d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxtaran2010/hyprland-rice/030b8e47b0bb795d71aaac845938ecd183d75a82/eww/images/13d.png -------------------------------------------------------------------------------- /eww/images/13n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxtaran2010/hyprland-rice/030b8e47b0bb795d71aaac845938ecd183d75a82/eww/images/13n.png -------------------------------------------------------------------------------- /eww/images/50d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxtaran2010/hyprland-rice/030b8e47b0bb795d71aaac845938ecd183d75a82/eww/images/50d.png -------------------------------------------------------------------------------- /eww/images/50n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxtaran2010/hyprland-rice/030b8e47b0bb795d71aaac845938ecd183d75a82/eww/images/50n.png -------------------------------------------------------------------------------- /eww/images/placeholder.svg: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | -------------------------------------------------------------------------------- /eww/powermenu.yuck: -------------------------------------------------------------------------------- 1 | (defwidget powermenu [] 2 | (box :orientation "v" 3 | (button :onclick "shutdown now" :class "box shutdown" "") 4 | (button :onclick "reboot" :class "box reboot" "󰑓") 5 | (button :onclick "pkill -U $USER" :class "box logout" "󰍃") 6 | (button :onclick "swaylock &" :class "box lock" "") 7 | ) 8 | ) 9 | 10 | (defwindow powermenu 11 | :monitor 0 12 | :stacking "overlay" 13 | :geometry (geometry :x '10px' 14 | :y '10px' 15 | :width "0%" 16 | :height "0%" 17 | :anchor "top right" 18 | ) 19 | (powermenu)) 20 | -------------------------------------------------------------------------------- /eww/scripts/change-active-workspace: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | function clamp { 3 | min=$1 4 | max=$2 5 | val=$3 6 | python -c "print(max($min, min($val, $max)))" 7 | } 8 | 9 | direction=$1 10 | current=$2 11 | if test "$direction" = "down" 12 | then 13 | target=$(clamp 1 10 $(($current+1))) 14 | echo "jumping to $target" 15 | hyprctl dispatch workspace $target 16 | elif test "$direction" = "up" 17 | then 18 | target=$(clamp 1 10 $(($current-1))) 19 | echo "jumping to $target" 20 | hyprctl dispatch workspace $target 21 | fi 22 | -------------------------------------------------------------------------------- /eww/scripts/get-active-workspace: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | hyprctl monitors -j | jq '.[] | select(.focused) | .activeWorkspace.id' 4 | 5 | socat -u UNIX-CONNECT:/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | 6 | stdbuf -o0 awk -F '>>|,' -e '/^workspace>>/ {print $2}' -e '/^focusedmon>>/ {print $3}' 7 | -------------------------------------------------------------------------------- /eww/scripts/get-workspaces: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | spaces (){ 4 | WORKSPACE_WINDOWS=$(hyprctl workspaces -j | jq 'map({key: .id | tostring, value: .windows}) | from_entries') 5 | echo "t 1\nf 2\ny 3\nt 4\nd 5\n. 6\n. 7\n. 8\n. 9\n. 10\n" | jq --argjson windows "${WORKSPACE_WINDOWS}" --slurp -Mc 'map(tostring) | map({name: "split(".")[0]", id: split(".")[1], windows: "."})' 6 | } 7 | 8 | spaces 9 | socat -u UNIX-CONNECT:/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | while read -r line; do 10 | spaces 11 | done 12 | -------------------------------------------------------------------------------- /eww/scripts/getmem: -------------------------------------------------------------------------------- 1 | free | grep Mem | awk '{print $3/$2 * 100.0}' 2 | -------------------------------------------------------------------------------- /eww/scripts/getvol: -------------------------------------------------------------------------------- 1 | VOL="$(mpc volume | awk '{print $2}' | sed 's/.$//' )" 2 | if [[ $(mpc volume) == "volume:100%" ]]; then 3 | echo "100" 4 | else 5 | echo $VOL 6 | fi; 7 | -------------------------------------------------------------------------------- /eww/scripts/getweather: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | curl -s "https://api.openweathermap.org/data/2.5/weather?q=$(curl -s ipinfo.io | jq -r .city)&appid=f1701e3880b7d049420daf94dc80af76" 4 | #echo '{"coord":{"lon":37.7583,"lat":55.4422},"weather":[{"id":800,"main":"Clear","description":"clear sky","icon":"01d"}],"base":"stations","main":{"temp":296.23,"feels_like":296.11,"temp_min":296.18,"temp_max":296.83,"pressure":1018,"humidity":58},"visibility":10000,"wind":{"speed":3,"deg":240},"clouds":{"all":0},"dt":1688577946,"sys":{"type":1,"id":9021,"country":"RU","sunrise":1688518469,"sunset":1688580724},"timezone":10800,"id":565381,"name":"Domodedovo","cod":200}' 5 | -------------------------------------------------------------------------------- /eww/scripts/greeting: -------------------------------------------------------------------------------- 1 | # Program to print Good Morning, 2 | # Good Afternoon, Good Evening 3 | $ and Good Night, according to 4 | $ system time. 5 | 6 | 7 | #!/bin/bash 8 | hour=`date +%H` 9 | if [ $hour -lt 12 ] # if hour is less than 12 10 | then 11 | echo "Good morning, tmasikt" 12 | elif [ $hour -le 16 ] # if hour is less than equal to 16 13 | then 14 | echo "Good afternoon, tmasikt" 15 | elif [ $hour -le 20 ] # if hour is less than equal to 20 16 | then 17 | echo "Good evening, tmasikt" 18 | else 19 | echo "Good night, tmasikt" 20 | fi 21 | -------------------------------------------------------------------------------- /eww/scripts/music: -------------------------------------------------------------------------------- 1 | 2 | #!/bin/bash 3 | 4 | ## Get data 5 | STATUS="$(mpc status)" 6 | COVER="/tmp/.music_cover.jpg" 7 | MUSIC_DIR="$HOME/Music" 8 | 9 | ## Get status 10 | get_status() { 11 | if [[ $STATUS == *"[playing]"* ]]; then 12 | echo "" 13 | else 14 | echo "" 15 | fi 16 | } 17 | 18 | ## Get song 19 | get_song() { 20 | song=`mpc -f %title% current` 21 | if [[ -z "$song" ]]; then 22 | echo "Offline" 23 | else 24 | echo "$song" 25 | fi 26 | } 27 | 28 | ## Get artist 29 | get_artist() { 30 | artist=`mpc -f %artist% current` 31 | if [[ -z "$artist" ]]; then 32 | echo "Offline" 33 | else 34 | echo "$artist " 35 | fi 36 | } 37 | 38 | ## Get time 39 | get_time() { 40 | time=`mpc status | grep "%)" | awk '{print $4}' | tr -d '(%)'` 41 | if [[ -z "$time" ]]; then 42 | echo "0" 43 | else 44 | echo "$time" 45 | fi 46 | } 47 | get_ctime() { 48 | ctime=`mpc status | grep "#" | awk '{print $3}' | sed 's|/.*||g'` 49 | if [[ -z "$ctime" ]]; then 50 | echo "0:00" 51 | else 52 | echo "$ctime" 53 | fi 54 | } 55 | get_ttime() { 56 | ttime=`mpc -f %time% current` 57 | if [[ -z "$ttime" ]]; then 58 | echo "0:00" 59 | else 60 | echo "$ttime" 61 | fi 62 | } 63 | 64 | ## Get cover 65 | get_cover() { 66 | ffmpeg -i "${MUSIC_DIR}/$(mpc current -f %file%)" "${COVER}" -y &> /dev/null 67 | STATUS=$? 68 | 69 | # Check if the file has a embbeded album art 70 | if [ "$STATUS" -eq 0 ];then 71 | echo "$COVER" 72 | else 73 | echo "images/music.png" 74 | fi 75 | } 76 | 77 | ## Execute accordingly 78 | if [[ "$1" == "--song" ]]; then 79 | get_song 80 | elif [[ "$1" == "--artist" ]]; then 81 | get_artist 82 | elif [[ "$1" == "--status" ]]; then 83 | get_status 84 | elif [[ "$1" == "--time" ]]; then 85 | get_time 86 | elif [[ "$1" == "--ctime" ]]; then 87 | get_ctime 88 | elif [[ "$1" == "--ttime" ]]; then 89 | get_ttime 90 | elif [[ "$1" == "--cover" ]]; then 91 | get_cover 92 | elif [[ "$1" == "--toggle" ]]; then 93 | mpc -q toggle 94 | elif [[ "$1" == "--next" ]]; then 95 | { mpc -q next; get_cover; } 96 | elif [[ "$1" == "--prev" ]]; then 97 | { mpc -q prev; get_cover; } 98 | fi 99 | -------------------------------------------------------------------------------- /eww/scripts/uptime.py: -------------------------------------------------------------------------------- 1 | def get_uptime(): 2 | with open('/proc/uptime', 'r') as f: 3 | uptime_seconds = float(f.readline().split()[0]) 4 | 5 | return uptime_seconds 6 | 7 | x = get_uptime() * 100 / 86400 8 | print(round(x)) 9 | -------------------------------------------------------------------------------- /eww/scripts/weather.py: -------------------------------------------------------------------------------- 1 | import subprocess, json, os 2 | 3 | def kelvinToCelsius(kelvin): 4 | return round(kelvin) - 273 5 | 6 | path = os.path.dirname(os.path.abspath(__file__)) 7 | res = subprocess.run([f'{path}/getweather'], stdout=subprocess.PIPE) 8 | decoded = json.loads(res.stdout.decode('utf-8')) 9 | 10 | temp_k = decoded["main"]["temp"] 11 | temp_c = round(kelvinToCelsius(temp_k)) 12 | weather = decoded["weather"][0]["main"] 13 | print(f''' 14 | (box :class "weather1" :space-evenly false :halign "center" 15 | (image :path "./images/{decoded["weather"][0]["icon"]}.png") 16 | (box :class "weather2" :orientation "v" 17 | "{temp_c}°, {weather}" 18 | ) 19 | ) 20 | ''') 21 | -------------------------------------------------------------------------------- /gtk-3.0/settings.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | gtk-application-prefer-dark-theme=0 3 | -------------------------------------------------------------------------------- /gtk-4.0/settings.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | gtk-application-prefer-dark-theme=0 3 | -------------------------------------------------------------------------------- /hypr/hyprland.conf: -------------------------------------------------------------------------------- 1 | 2 | ######################################################################################## 3 | AUTOGENERATED HYPR CONFIG. 4 | PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT, 5 | OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS. 6 | ######################################################################################## 7 | 8 | # 9 | # Please note not all available settings / options are set here. 10 | # For a full list, see the wiki 11 | # 12 | 13 | autogenerated = 0 # remove this line to remove the warning 14 | 15 | # See https://wiki.hyprland.org/Configuring/Monitors/ 16 | monitor=eDP-1,1920x1080@144,0x1080,1 17 | monitor=HDMI-A-1,1920x1080@50,0x0,1 18 | 19 | # See https://wiki.hyprland.org/Configuring/Keywords/ for more 20 | 21 | # Execute your favorite apps at launch 22 | exec-once = hyprpaper & eww open-many clock bar & exec swaync & 23 | 24 | # Source a file (multi-file configs) 25 | # source = ~/.config/hypr/myColors.conf 26 | 27 | # Some default env vars. 28 | env = XCURSOR_SIZE,24 29 | 30 | # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ 31 | input { 32 | kb_layout = us,ru 33 | kb_variant = 34 | kb_model = 35 | kb_options = grp:caps_toggle 36 | kb_rules = 37 | 38 | follow_mouse = 1 39 | 40 | touchpad { 41 | natural_scroll = no 42 | } 43 | 44 | sensitivity = 0 # -1.0 - 1.0, 0 means no modification. 45 | } 46 | 47 | general { 48 | # See https://wiki.hyprland.org/Configuring/Variables/ for more 49 | 50 | gaps_in = 5 51 | gaps_out = 8 52 | border_size = 0 53 | col.active_border = rgba(ffffffff) 54 | col.inactive_border = rgba(595959aa) 55 | 56 | layout = dwindle 57 | } 58 | 59 | decoration { 60 | # See https://wiki.hyprland.org/Configuring/Variables/ for more 61 | 62 | rounding = 7 63 | blur = yes 64 | blur_size = 2 65 | blur_passes = 3 66 | blur_new_optimizations = off 67 | 68 | drop_shadow = yes 69 | shadow_range = 7 70 | shadow_render_power = 3 71 | col.shadow = rgba(181825ee) 72 | } 73 | 74 | animations { 75 | enabled = yes 76 | 77 | # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more 78 | 79 | bezier = myBezier, 0.05, 0.9, 0.1, 1.05 80 | 81 | animation = windows, 1, 7, myBezier 82 | animation = windowsOut, 1, 7, default, popin 80% 83 | animation = border, 1, 10, default 84 | animation = borderangle, 1, 8, default 85 | animation = fade, 1, 7, default 86 | animation = workspaces, 1, 6, default 87 | } 88 | 89 | dwindle { 90 | # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more 91 | pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below 92 | preserve_split = yes # you probably want this 93 | } 94 | 95 | master { 96 | # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more 97 | new_is_master = true 98 | } 99 | 100 | gestures { 101 | # See https://wiki.hyprland.org/Configuring/Variables/ for more 102 | workspace_swipe = off 103 | } 104 | 105 | # Example per-device config 106 | # See https://wiki.hyprland.org/Configuring/Keywords/#executing for more 107 | device:epic-mouse-v1 { 108 | sensitivity = -0.5 109 | } 110 | 111 | # Example windowrule v1 112 | # windowrule = float, ^(kitty)$ 113 | # Example windowrule v2 114 | # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ 115 | # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more 116 | 117 | 118 | # See https://wiki.hyprland.org/Configuring/Keywords/ for more 119 | $mainMod = SUPER 120 | 121 | # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more 122 | #bind = $mainMod, F, exec, firefox 123 | bind = $mainMod, Return, exec, kitty 124 | bind = $mainMod, C, killactive, 125 | bind = $mainMod SHIFT, Q, exit, 126 | bind = $mainMod, E, exec, dolphin 127 | bind = $mainMod, S, togglefloating, 128 | bind = $mainMod, D, exec, rofi -show drun 129 | bind = $mainMod, T, pseudo, # dwindle 130 | bind = $mainMod, J, togglesplit, # dwindle 131 | bind = $mainMod, F, fullscreen 132 | 133 | # Move focus with mainMod + arrow keys 134 | bind = $mainMod, left, movefocus, l 135 | bind = $mainMod, right, movefocus, r 136 | bind = $mainMod, up, movefocus, u 137 | bind = $mainMod, down, movefocus, d 138 | 139 | # Switch workspaces with mainMod + [0-9] 140 | bind = $mainMod, 1, workspace, 1 141 | bind = $mainMod, 2, workspace, 2 142 | bind = $mainMod, 3, workspace, 3 143 | bind = $mainMod, 4, workspace, 4 144 | bind = $mainMod, 5, workspace, 5 145 | bind = $mainMod, 6, workspace, 6 146 | bind = $mainMod, 7, workspace, 7 147 | bind = $mainMod, 8, workspace, 8 148 | bind = $mainMod, 9, workspace, 9 149 | bind = $mainMod, 0, workspace, 10 150 | bind = $mainMod, PRINT, exec, hyprshot -m region 151 | bind = $mainMod SHIFT, t, exec, telegram-desktop 152 | 153 | # Move active window to a workspace with mainMod + SHIFT + [0-9] 154 | bind = $mainMod SHIFT, 1, movetoworkspace, 1 155 | bind = $mainMod SHIFT, 2, movetoworkspace, 2 156 | bind = $mainMod SHIFT, 3, movetoworkspace, 3 157 | bind = $mainMod SHIFT, 4, movetoworkspace, 4 158 | bind = $mainMod SHIFT, 5, movetoworkspace, 5 159 | bind = $mainMod SHIFT, 6, movetoworkspace, 6 160 | bind = $mainMod SHIFT, 7, movetoworkspace, 7 161 | bind = $mainMod SHIFT, 8, movetoworkspace, 8 162 | bind = $mainMod SHIFT, 9, movetoworkspace, 9 163 | bind = $mainMod SHIFT, 0, movetoworkspace, 10 164 | 165 | # Scroll through existing workspaces with mainMod + scroll 166 | bind = $mainMod, mouse_down, workspace, e+1 167 | bind = $mainMod, mouse_up, workspace, e-1 168 | 169 | # Move/resize windows with mainMod + LMB/RMB and dragging 170 | bindm = $mainMod, mouse:272, movewindow 171 | bindm = $mainMod, mouse:273, resizewindow 172 | -------------------------------------------------------------------------------- /hypr/hyprland.conf.save: -------------------------------------------------------------------------------- 1 | 2 | ######################################################################################## 3 | AUTOGENERATED HYPR CONFIG. 4 | PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT, 5 | OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS. 6 | ######################################################################################## 7 | 8 | # 9 | # Please note not all available settings / options are set here. 10 | # For a full list, see the wiki 11 | # 12 | 13 | autogenerated = 0 # remove this line to remove the warning 14 | 15 | # See https://wiki.hyprland.org/Configuring/Monitors/ 16 | monitor=eDP-1,1920x1080@144,0x0,1 17 | 18 | 19 | # See https://wiki.hyprland.org/Configuring/Keywords/ for more 20 | 21 | # Execute your favorite apps at launch 22 | exec-once = hyprpaper & firefox 23 | 24 | # Source a file (multi-file configs) 25 | # source = ~/.config/hypr/myColors.conf 26 | 27 | # Some default env vars. 28 | env = XCURSOR_SIZE,24 29 | 30 | # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ 31 | input { 32 | kb_layout = us 33 | kb_variant = 34 | kb_model = 35 | kb_options = 36 | kb_rules = 37 | 38 | follow_mouse = 1 39 | 40 | touchpad { 41 | natural_scroll = no 42 | } 43 | 44 | sensitivity = 0 # -1.0 - 1.0, 0 means no modification. 45 | } 46 | 47 | general { 48 | # See https://wiki.hyprland.org/Configuring/Variables/ for more 49 | 50 | gaps_in = 25 51 | gaps_out = 35 52 | border_size = 4 53 | col.active_border = rgba(8948d4ee) rgba(6213bdee) 45deg 54 | col.inactive_border = rgba(595959aa) 55 | 56 | layout = dwindle 57 | } 58 | 59 | decoration { 60 | # See https://wiki.hyprland.org/Configuring/Variables/ for more 61 | 62 | rounding = 10 63 | blur = yes 64 | blur_size = 3 65 | blur_passes = 1 66 | blur_new_optimizations = on 67 | 68 | drop_shadow = yes 69 | shadow_range = 4 70 | shadow_render_power = 3 71 | col.shadow = rgba(1a1a1aee) 72 | } 73 | 74 | animations { 75 | enabled = yes 76 | 77 | # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more 78 | 79 | bezier = myBezier, 0.05, 0.9, 0.1, 1.05 80 | 81 | animation = windows, 1, 7, myBezier 82 | animation = windowsOut, 1, 7, default, popin 80% 83 | animation = border, 1, 10, default 84 | animation = borderangle, 1, 8, default 85 | animation = fade, 1, 7, default 86 | animation = workspaces, 1, 6, default 87 | } 88 | 89 | dwindle { 90 | # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more 91 | pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below 92 | preserve_split = yes # you probably want this 93 | } 94 | 95 | master { 96 | # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more 97 | new_is_master = true 98 | } 99 | 100 | gestures { 101 | # See https://wiki.hyprland.org/Configuring/Variables/ for more 102 | workspace_swipe = off 103 | } 104 | 105 | # Example per-device config 106 | # See https://wiki.hyprland.org/Configuring/Keywords/#executing for more 107 | device:epic-mouse-v1 { 108 | sensitivity = -0.5 109 | } 110 | 111 | # Example windowrule v1 112 | # windowrule = float, ^(kitty)$ 113 | # Example windowrule v2 114 | # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ 115 | # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more 116 | 117 | 118 | # See https://wiki.hyprland.org/Configuring/Keywords/ for more 119 | $mainMod = SUPER 120 | 121 | # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more 122 | bind = $mainMod, F, exec, firefox 123 | bind = $mainMod, Return, exec, kitty 124 | bind = $mainMod, C, killactive, 125 | bind = $mainMod SHIFT, Q, exit, 126 | bind = $mainMod, E, exec, dolphin 127 | bind = $mainMod, S, togglefloating, 128 | bind = $mainMod, R, exec, wofi --show drun 129 | bind = $mainMod, T, pseudo, # dwindle 130 | bind = $mainMod, J, togglesplit, # dwindle 131 | 132 | # Move focus with mainMod + arrow keys 133 | bind = $mainMod, left, movefocus, l 134 | bind = $mainMod, right, movefocus, r 135 | bind = $mainMod, up, movefocus, u 136 | bind = $mainMod, down, movefocus, d 137 | 138 | # Switch workspaces with mainMod + [0-9] 139 | bind = $mainMod, 1, workspace, 1 140 | bind = $mainMod, 2, workspace, 2 141 | bind = $mainMod, 3, workspace, 3 142 | bind = $mainMod, 4, workspace, 4 143 | bind = $mainMod, 5, workspace, 5 144 | bind = $mainMod, 6, workspace, 6 145 | bind = $mainMod, 7, workspace, 7 146 | bind = $mainMod, 8, workspace, 8 147 | bind = $mainMod, 9, workspace, 9 148 | bind = $mainMod, 0, workspace, 10 149 | 150 | # Move active window to a workspace with mainMod + SHIFT + [0-9] 151 | bind = $mainMod SHIFT, 1, movetoworkspace, 1 152 | bind = $mainMod SHIFT, 2, movetoworkspace, 2 153 | bind = $mainMod SHIFT, 3, movetoworkspace, 3 154 | bind = $mainMod SHIFT, 4, movetoworkspace, 4 155 | bind = $mainMod SHIFT, 5, movetoworkspace, 5 156 | bind = $mainMod SHIFT, 6, movetoworkspace, 6 157 | bind = $mainMod SHIFT, 7, movetoworkspace, 7 158 | bind = $mainMod SHIFT, 8, movetoworkspace, 8 159 | bind = $mainMod SHIFT, 9, movetoworkspace, 9 160 | bind = $mainMod SHIFT, 0, movetoworkspace, 10 161 | 162 | # Scroll through existing workspaces with mainMod + scroll 163 | bind = $mainMod, mouse_down, workspace, e+1 164 | bind = $mainMod, mouse_up, workspace, e-1 165 | 166 | # Move/resize windows with mainMod + LMB/RMB and dragging 167 | bindm = $mainMod, mouse:272, movewindow 168 | bindm = $mainMod, mouse:273, resizewindow 169 | -------------------------------------------------------------------------------- /hypr/hyprpaper.conf: -------------------------------------------------------------------------------- 1 | preload=~/.config/hypr/wallpapers/flowers.png 2 | wallpaper=eDP-1, ~/.config/hypr/wallpapers/flowers.png 3 | wallpaper=HDMI-A-1, ~/.config/hypr/wallpapers/flowers.png 4 | -------------------------------------------------------------------------------- /hypr/wallpapers/aanime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxtaran2010/hyprland-rice/030b8e47b0bb795d71aaac845938ecd183d75a82/hypr/wallpapers/aanime.png -------------------------------------------------------------------------------- /hypr/wallpapers/anime.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxtaran2010/hyprland-rice/030b8e47b0bb795d71aaac845938ecd183d75a82/hypr/wallpapers/anime.jpeg -------------------------------------------------------------------------------- /hypr/wallpapers/arch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxtaran2010/hyprland-rice/030b8e47b0bb795d71aaac845938ecd183d75a82/hypr/wallpapers/arch.png -------------------------------------------------------------------------------- /hypr/wallpapers/city.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxtaran2010/hyprland-rice/030b8e47b0bb795d71aaac845938ecd183d75a82/hypr/wallpapers/city.jpg -------------------------------------------------------------------------------- /hypr/wallpapers/flowers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxtaran2010/hyprland-rice/030b8e47b0bb795d71aaac845938ecd183d75a82/hypr/wallpapers/flowers.png -------------------------------------------------------------------------------- /hypr/wallpapers/mountain.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxtaran2010/hyprland-rice/030b8e47b0bb795d71aaac845938ecd183d75a82/hypr/wallpapers/mountain.jpg -------------------------------------------------------------------------------- /hypr/wallpapers/mountain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxtaran2010/hyprland-rice/030b8e47b0bb795d71aaac845938ecd183d75a82/hypr/wallpapers/mountain.png -------------------------------------------------------------------------------- /nvim/init.lua: -------------------------------------------------------------------------------- 1 | require 'core' 2 | 3 | require 'core.keybinds' 4 | 5 | local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim' 6 | 7 | if not vim.loop.fs_stat(lazypath) then 8 | require('core.bootstrap').lazy(lazypath) 9 | else 10 | vim.opt.rtp:prepend(lazypath) 11 | require 'plugins' 12 | end 13 | -------------------------------------------------------------------------------- /nvim/lazy-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "LuaSnip": { "branch": "master", "commit": "c7984d1cca3d8615e4daefc196597872a0b8d590" }, 3 | "barbar.nvim": { "branch": "master", "commit": "b8ca6076f75e49cca1fa0288c080f3d10ec2152c" }, 4 | "bufferline.nvim": { "branch": "main", "commit": "bf2f6b7edd0abf6b0732f5e5c0a8f30e51611c75" }, 5 | "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, 6 | "cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" }, 7 | "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, 8 | "cmp_luasnip": { "branch": "master", "commit": "18095520391186d634a0045dacaa346291096566" }, 9 | "friendly-snippets": { "branch": "main", "commit": "5749f093759c29e3694053d048ceb940fe12c3d3" }, 10 | "gitsigns.nvim": { "branch": "main", "commit": "a36bc3360d584d39b4fb076d855c4180842d4444" }, 11 | "indent-blankline.nvim": { "branch": "master", "commit": "7075d7861f7a6bbf0de0298c83f8a13195e6ec01" }, 12 | "lazy.nvim": { "branch": "main", "commit": "b7043f2983d7aead78ca902f3f2053907081859a" }, 13 | "lspkind.nvim": { "branch": "master", "commit": "57610d5ab560c073c465d6faf0c19f200cb67e6e" }, 14 | "lspsaga.nvim": { "branch": "main", "commit": "4f075452c466df263e69ae142f6659dcf9324bf6" }, 15 | "lualine.nvim": { "branch": "master", "commit": "05d78e9fd0cdfb4545974a5aa14b1be95a86e9c9" }, 16 | "mason.nvim": { "branch": "main", "commit": "664c987c3b14d2262a4e580f993a3e5045baded0" }, 17 | "nvim-autopairs": { "branch": "master", "commit": "e8f7dd7a72de3e7b6626c050a802000e69d53ff0" }, 18 | "nvim-cmp": { "branch": "main", "commit": "e1f1b40790a8cb7e64091fb12cc5ffe350363aa0" }, 19 | "nvim-lspconfig": { "branch": "master", "commit": "b6b34b9acf84949f0ac1c00747765e62b81fb38d" }, 20 | "nvim-tree.lua": { "branch": "master", "commit": "3cc698b35b0a67792c61e1726830bb9ecfc4c9f4" }, 21 | "nvim-treesitter": { "branch": "master", "commit": "d49ba798c95398e62321b40041e8ac4654fea251" }, 22 | "nvim-web-devicons": { "branch": "master", "commit": "9ab9b0b894b2388a9dbcdee5f00ce72e25d85bf9" }, 23 | "plenary.nvim": { "branch": "master", "commit": "36aaceb6e93addd20b1b18f94d86aecc552f30c4" }, 24 | "telescope.nvim": { "branch": "master", "commit": "6074847b6ee4b725747c8fc540d9b6b128ac8a12" }, 25 | "toggleterm.nvim": { "branch": "main", "commit": "cf146a267a6a7db62b1e2aff40414b20081048a1" }, 26 | "tokyonight.nvim": { "branch": "main", "commit": "fd0a005fd8986ec0d98a1938dc570303e8d8444b" } 27 | } -------------------------------------------------------------------------------- /nvim/lua/core/bootstrap.lua: -------------------------------------------------------------------------------- 1 | local M = {} 2 | 3 | M.lazy = function (lazypath) 4 | vim.fn.system({ 5 | 'git', 6 | 'clone', 7 | '--filter=blob:none', 8 | 'https://github.com/folke/lazy.nvim.git', 9 | '--branch=stable', -- latest stable release 10 | lazypath, 11 | }) 12 | 13 | vim.opt.rtp:prepend(lazypath) 14 | 15 | require 'plugins' 16 | end 17 | 18 | return M 19 | -------------------------------------------------------------------------------- /nvim/lua/core/init.lua: -------------------------------------------------------------------------------- 1 | local set = vim.opt 2 | 3 | -- line configurations 4 | set.relativenumber = true 5 | set.number = true 6 | 7 | -- casing 8 | set.ignorecase = true 9 | set.smartcase = true 10 | 11 | -- text wrap 12 | set.wrap = false 13 | 14 | -- tabbing and indents 15 | set.tabstop = 2 16 | set.shiftwidth = 2 17 | set.smartindent = true 18 | 19 | -- term color 20 | set.termguicolors = true 21 | 22 | -- configure clipboard 23 | set.clipboard:append('unnamedplus') 24 | 25 | -- disable nvim intro 26 | set.shortmess:append('sI') 27 | 28 | -- reload on changed buffer 29 | set.autoread = true 30 | 31 | -- disable mouse inside nvim 32 | set.mouse = '' 33 | 34 | -- remove cmd on idle 35 | -- set.cmdheight = 0 36 | 37 | -- setup lcs 38 | set.list = true 39 | set.listchars = { tab = ' ', eol = '↲', trail = '•', space = '⋅', precedes = '←', extends = '→' } 40 | set.fillchars = { 41 | stl = ' ', 42 | stlnc = ' ', 43 | diff = '∙', 44 | eob = ' ', 45 | fold = '·', 46 | horiz = '━', 47 | horizup = '┻', 48 | horizdown = '┳', 49 | vert = '┃', 50 | vertleft = '┫', 51 | vertright = '┣', 52 | verthoriz = '╋' 53 | } 54 | 55 | -- vim tablines 56 | set.showtabline = 2 57 | set.showmode = false 58 | 59 | -- enable EOL navigate using hl 60 | set.whichwrap:append '<>[]hl' 61 | 62 | -- set active cursor as vim cursor 63 | set.guicursor = '' 64 | 65 | -- set undo history 66 | set.history = 100 67 | 68 | -- split directives 69 | set.splitbelow = true 70 | set.splitright = true 71 | 72 | -- miscellaneous 73 | for _, provider in ipairs { 'node', 'perl', 'python3', 'ruby' } do 74 | vim.g['loaded_' .. provider .. '_provider'] = 0 75 | end 76 | 77 | vim.env.PATH = vim.env.PATH .. ":" .. vim.fn.stdpath "data" .. "/mason/bin" 78 | -------------------------------------------------------------------------------- /nvim/lua/core/keybinds.lua: -------------------------------------------------------------------------------- 1 | local map = vim.keymap.set 2 | 3 | vim.g.mapleader = ' ' 4 | vim.g.maplocalleader = ' ' 5 | 6 | map('n', '', ':bnext!', { desc = 'Next buffer' }) 7 | map('n', '', ':bprevious!', { desc = 'Previous buffer' }) 8 | map('n', '', ':bdelete', { desc = 'Delete buffer' }) 9 | map('n', '', ':bdelete!', { desc = 'Force delete buffer' }) 10 | map('n', '', ':badd ', { desc = 'Add buffer' }) 11 | map('n', '', ':NvimTreeToggle', { desc = 'Next buffer' }) 12 | map('n', '', '', { desc = 'Down Window' }) 13 | map('n', '', '', { desc = 'Up Window' }) 14 | map('n', '', '', { desc = 'Right Window' }) 15 | map('n', '', '', { desc = 'Left Window' }) 16 | map('n', '', '', { desc = 'Resize Small' }) 17 | map('n', '', '>', { desc = 'Resize Large' }) 18 | map('n', '', '', { desc = 'Resize Down' }) 19 | map('n', '', '', { desc = 'Resize Up' }) 20 | map('n', '', ':noh', { desc = 'Clear Selection' }) 21 | map('n', '', 'zz', { desc = 'Center down' }) 22 | map('n', '', 'zz', { desc = 'Center up' }) 23 | map('n', 'f', ':Telescope find_files', { desc = 'Telescope File Finder' }) 24 | map('n', 'b', ':Telescope buffers', { desc = 'Telescope Buffer Finder' }) 25 | map('n', '', ':ToggleTerm', { desc = 'Toggle Toggleterm' }) 26 | map('n', 'l', ':Lazy', { desc = 'Launch Lazy' }) 27 | -------------------------------------------------------------------------------- /nvim/lua/core/utils.lua: -------------------------------------------------------------------------------- 1 | local M = {} 2 | 3 | M.lazy_load = function(plugin) 4 | vim.api.nvim_create_autocmd({ 'BufRead', 'BufWinEnter', 'BufNewFile' }, { 5 | callback = function() 6 | require("lazy").load { plugins = plugin } 7 | 8 | -- if plugin == "nvim-lspconfig" then 9 | -- vim.cmd "silent! do FileType" 10 | -- end 11 | end, 12 | }) 13 | end 14 | 15 | return M 16 | -------------------------------------------------------------------------------- /nvim/lua/plugins/configs/blankline.lua: -------------------------------------------------------------------------------- 1 | --vim.cmd [[highlight IndentBlanklineIndent1 guifg=#E06C75 gui=nocombine]] 2 | --vim.cmd [[highlight IndentBlanklineIndent2 guifg=#E5C07B gui=nocombine]] 3 | --vim.cmd [[highlight IndentBlanklineIndent3 guifg=#98C379 gui=nocombine]] 4 | --vim.cmd [[highlight IndentBlanklineIndent4 guifg=#56B6C2 gui=nocombine]] 5 | --vim.cmd [[highlight IndentBlanklineIndent5 guifg=#61AFEF gui=nocombine]] 6 | --vim.cmd [[highlight IndentBlanklineIndent6 guifg=#C678DD gui=nocombine]] 7 | 8 | local options = { 9 | space_char_blankline = ' ', 10 | show_current_context = true, 11 | show_current_context_start = true, 12 | 13 | -- char_highlight_list = { 14 | -- 'IndentBlanklineIndent1', 15 | -- 'IndentBlanklineIndent2', 16 | -- 'IndentBlanklineIndent3', 17 | -- 'IndentBlanklineIndent4', 18 | -- 'IndentBlanklineIndent5', 19 | -- 'IndentBlanklineIndent6', 20 | -- } 21 | } 22 | 23 | return options 24 | -------------------------------------------------------------------------------- /nvim/lua/plugins/configs/bufferline.lua: -------------------------------------------------------------------------------- 1 | local options = { 2 | options = { 3 | indicator = { 4 | icon = '  ', 5 | style = 'icon', 6 | }, 7 | modified_icon = '●', 8 | -- buffer_close_icon = '', 9 | buffer_close_icon = '', 10 | left_trunc_marker = '', 11 | right_trunc_marker = '', 12 | separator_style = 'thin', 13 | color_icons = true, 14 | diagnostics = 'nvim_lsp', 15 | diagnostics_update_in_insert = false, 16 | diagnostics_indicator = function(count, level, diagnostics_dict, context) 17 | local icon = level:match('error') and ' ' or ' ' 18 | return ' ' .. icon .. count 19 | end, 20 | }, 21 | } 22 | 23 | return options 24 | -------------------------------------------------------------------------------- /nvim/lua/plugins/configs/cmp.lua: -------------------------------------------------------------------------------- 1 | local cmp = require 'cmp' 2 | 3 | local options = { 4 | require('luasnip/loaders/from_vscode').lazy_load(), 5 | 6 | preselect = cmp.PreselectMode.None, 7 | 8 | completion = { 9 | completeopt='menu,menuone,noselect,noinsert', 10 | }, 11 | 12 | snippet = { 13 | expand = function(args) 14 | require('luasnip').lsp_expand(args.body) 15 | end, 16 | }, 17 | 18 | mapping = cmp.mapping({ 19 | [''] = cmp.mapping.select_prev_item(), -- previous suggestion 20 | [''] = cmp.mapping.select_next_item(), -- next suggestion 21 | [''] = cmp.mapping.scroll_docs(4), 22 | [''] = cmp.mapping.scroll_docs(-4), 23 | [''] = cmp.mapping.complete(), -- show completion suggestions 24 | [''] = cmp.mapping.abort(), -- close completion window 25 | [''] = cmp.mapping.confirm({ select = false }), 26 | }), 27 | 28 | sources = cmp.config.sources({ 29 | { name = 'nvim_lsp' }, -- lsp 30 | { name = 'luasnip' }, -- snippets 31 | { name = 'buffer' }, -- text from current buffer 32 | { name = 'path' }, -- file system paths 33 | }), 34 | 35 | formatting = { 36 | format = require('lspkind').cmp_format({ 37 | maxwidth = 50, 38 | ellipsis_char = '...', 39 | }), 40 | }, 41 | } 42 | 43 | return options 44 | -------------------------------------------------------------------------------- /nvim/lua/plugins/configs/colorscheme.lua: -------------------------------------------------------------------------------- 1 | ---@diagnostic disable: undefined-global 2 | vim.cmd.colorscheme 'tokyonight-night' 3 | 4 | vim.api.nvim_set_hl(0, 'NonText', { ctermbg = none }) 5 | vim.api.nvim_set_hl(0, 'Normal', { guibg = none, ctermbg = none }) 6 | vim.api.nvim_set_hl(0, 'NormalNC', { guibg = none, ctermbg = none }) 7 | vim.api.nvim_set_hl(0, 'SignColumn', { guibg = none }) 8 | vim.api.nvim_set_hl(0, 'NvimTreeNormal', { guibg = none, ctermbg = none }) 9 | vim.api.nvim_set_hl(0, 'NvimTreeNormalNC', { guibg = none, ctermbg = none }) 10 | vim.api.nvim_set_hl(0, 'TelescopeNormal', { guibg = none, ctermbg = none }) 11 | vim.api.nvim_set_hl(0, 'TelescopeBorder', { guibg = none, ctermbg = none }) 12 | -------------------------------------------------------------------------------- /nvim/lua/plugins/configs/gitsigns.lua: -------------------------------------------------------------------------------- 1 | local options = { 2 | signs = { 3 | add = { text = "│" }, 4 | change = { text = "│" }, 5 | delete = { text = "󰍵" }, 6 | topdelete = { text = "‾" }, 7 | changedelete = { text = "~" }, 8 | untracked = { text = "│" }, 9 | }, 10 | } 11 | 12 | return options 13 | -------------------------------------------------------------------------------- /nvim/lua/plugins/configs/lazy_nvim.lua: -------------------------------------------------------------------------------- 1 | return { 2 | defaults = { lazy = true }, 3 | 4 | ui = { 5 | icons = { 6 | ft = "", 7 | lazy = "󰂠 ", 8 | loaded = "", 9 | not_loaded = "", 10 | }, 11 | }, 12 | 13 | performance = { 14 | -- cache = { 15 | -- enabled = true, 16 | -- }, 17 | rtp = { 18 | disabled_plugins = { 19 | '2html_plugin', 20 | 'tohtml', 21 | 'getscript', 22 | 'getscriptPlugin', 23 | 'gzip', 24 | 'logipat', 25 | 'netrw', 26 | 'netrwPlugin', 27 | 'netrwSettings', 28 | 'netrwFileHandlers', 29 | 'matchit', 30 | 'tar', 31 | 'tarPlugin', 32 | 'rrhelper', 33 | 'spellfile_plugin', 34 | 'vimball', 35 | 'vimballPlugin', 36 | 'zip', 37 | 'zipPlugin', 38 | 'tutor', 39 | 'rplugin', 40 | 'syntax', 41 | 'synmenu', 42 | 'optwin', 43 | 'compiler', 44 | 'bugreport', 45 | 'ftplugin', 46 | }, 47 | }, 48 | }, 49 | } 50 | 51 | -------------------------------------------------------------------------------- /nvim/lua/plugins/configs/lspconfig.lua: -------------------------------------------------------------------------------- 1 | local M = {} 2 | 3 | local keymap = vim.keymap 4 | 5 | M.on_attach = function(client, bufnr) 6 | client.server_capabilities.documentFormattingProvider = false 7 | client.server_capabilities.documentRangeFormattingProvider = false 8 | 9 | local opts = { noremap = true, silent = true, buffer = bufnr } 10 | 11 | -- set keybinds 12 | keymap.set('n', 'gd', 'lua vim.lsp.buf.definition()', opts) 13 | keymap.set('n', 'gD', 'Lspsaga peek_definition', opts) 14 | keymap.set('n', 'ca', 'Lspsaga code_action', opts) 15 | keymap.set('n', 'rn', 'Lspsaga rename', opts) 16 | keymap.set('n', 'd', 'Lspsaga show_line_diagnostics', opts) 17 | keymap.set('n', '[d', 'Lspsaga diagnostic_jump_prev', opts) 18 | keymap.set('n', ']d', 'Lspsaga diagnostic_jump_next', opts) 19 | keymap.set('n', 'K', 'Lspsaga hover_doc', opts) 20 | 21 | local signs = { Error = '✗ ', Warn = ' ', Hint = ' ', Info = ' ' } 22 | for type, icon in pairs(signs) do 23 | local hl = 'DiagnosticSign' .. type 24 | vim.fn.sign_define(hl, { text = icon, texthl= hl, numhl = hl }) 25 | end 26 | end 27 | 28 | M.capabilities = vim.lsp.protocol.make_client_capabilities() 29 | 30 | M.capabilities.textDocument.completion.completionItem = { 31 | documentationFormat = { "markdown", "plaintext" }, 32 | snippetSupport = true, 33 | preselectSupport = true, 34 | insertReplaceSupport = true, 35 | labelDetailsSupport = true, 36 | deprecatedSupport = true, 37 | commitCharactersSupport = true, 38 | tagSupport = { valueSet = { 1 } }, 39 | resolveSupport = { 40 | properties = { 41 | "documentation", 42 | "detail", 43 | "additionalTextEdits", 44 | }, 45 | }, 46 | } 47 | 48 | require('lspconfig').lua_ls.setup { 49 | on_attach = M.on_attach, 50 | capabilities = M.capabilities, 51 | 52 | settings = { 53 | Lua = { 54 | diagnostics = { 55 | globals = { 'vim' }, 56 | }, 57 | workspace = { 58 | library = { 59 | [vim.fn.expand "$VIMRUNTIME/lua"] = true, 60 | [vim.fn.expand "$VIMRUNTIME/lua/vim/lsp"] = true, 61 | }, 62 | maxPreload = 10000, 63 | preloadFileSize = 10000, 64 | }, 65 | }, 66 | }, 67 | } 68 | 69 | require('lspconfig').tsserver.setup { 70 | on_attach = M.on_attach, 71 | capabilities = M.capabilities, 72 | } 73 | 74 | require('lspconfig').gopls.setup { 75 | on_attach = M.on_attach, 76 | capabilities = M.capabilities, 77 | } 78 | 79 | return M 80 | -------------------------------------------------------------------------------- /nvim/lua/plugins/configs/lspsaga.lua: -------------------------------------------------------------------------------- 1 | local options = { 2 | scroll_preview = { scroll_down = '', scroll_up = '' }, 3 | definition = { 4 | edit = '', 5 | }, 6 | ui = { 7 | colors = { 8 | normal_bg = '#022746', 9 | }, 10 | }, 11 | } 12 | 13 | return options 14 | -------------------------------------------------------------------------------- /nvim/lua/plugins/configs/lualine.lua: -------------------------------------------------------------------------------- 1 | local diff = { 2 | 'diff', 3 | colored = true, 4 | symbols = { 5 | added = ' ', 6 | modified = ' ', 7 | removed = ' ', 8 | }, 9 | color = { bg = '#1c2e4a' }, 10 | separator = { left = '', right = '' }, 11 | } 12 | 13 | local diagnostics = { 14 | 'diagnostics', 15 | color = { bg = '#23395d' }, 16 | sources = { 'nvim_diagnostic' }, sections = { 17 | 'info', 18 | 'error', 19 | 'warn', 'hint', 20 | }, 21 | symbols = { error = 'ﮊ ', warn = ' ', 22 | hint = ' ', 23 | info = ' ', 24 | }, colored = true, always_visible = false, 25 | separator = { left = '', right = '' }, 26 | } 27 | local branch = { 28 | 'branch', 29 | icon = '', 30 | function () 31 | return ' ' 32 | end, 33 | color = { bg = '#42d6a4', fg = '#111111' }, 34 | separator = { left = '', right = '' }, 35 | } 36 | 37 | local custom_icon = { 38 | function() 39 | return '󰣇 ' 40 | end, 41 | separator = { left = '', right = '' }, 42 | color = { bg = '#ff6961', fg = '#111111' } 43 | } 44 | 45 | local filetype = { 46 | 'filetype', 47 | icon_only = true, 48 | colored = false, 49 | padding = 1, 50 | color = { bg = '#ffb480', fg = '#111111' }, 51 | separator = { left = '', right = '' }, 52 | } 53 | 54 | local filename = { 55 | 'filename', padding = 1, 56 | color = { bg = '#c780e8', fg = '#111111' }, 57 | separator = { left = '', right = '' }, 58 | } 59 | 60 | local mode = { 61 | 'mode', 62 | separator = { left = '', right = '' }, 63 | } 64 | 65 | local location = { 66 | 'location', 67 | separator = { left = '', right = '' }, 68 | color = { bg = '#59adf6', fg = '#111111' }, 69 | } 70 | 71 | local theme = require('lualine.themes.auto') 72 | theme.normal.c.bg = nil 73 | 74 | local options = { 75 | options = { 76 | globalstatus = true, 77 | icons_enabled = true, 78 | theme = theme, 79 | component_separators = { left = '', right = '' }, 80 | section_separators = { left = '', right = '' }, 81 | disabled_filetypes = { 'alpha', 'dashboard', 'packer' }, 82 | always_divide_middle = true, 83 | }, 84 | 85 | sections = { 86 | lualine_a = { custom_icon, mode }, 87 | lualine_b = { filetype, filename }, 88 | lualine_c = { branch, diff }, 89 | lualine_x = { diagnostics, location }, 90 | lualine_y = {}, 91 | lualine_z = {}, 92 | } 93 | } 94 | 95 | return options 96 | -------------------------------------------------------------------------------- /nvim/lua/plugins/configs/mason.lua: -------------------------------------------------------------------------------- 1 | local options = { 2 | ensure_installed = { 3 | 'lua-language-server', 4 | 'typescript-language-server', 5 | 'gopls' 6 | }, 7 | 8 | PATH = 'skip', 9 | 10 | ui = { 11 | icons = { 12 | package_pending = ' ', 13 | package_installed = '󰄳 ', 14 | package_uninstalled = ' 󰚌', 15 | }, 16 | }, 17 | 18 | max_concurrent_installers = 10, 19 | } 20 | 21 | return options 22 | -------------------------------------------------------------------------------- /nvim/lua/plugins/configs/nvimtree.lua: -------------------------------------------------------------------------------- 1 | local function on_attach(bufnr) 2 | local api = require('nvim-tree.api') 3 | 4 | local function opts(desc) 5 | return { desc = 'nvim-tree: ' .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true } 6 | end 7 | 8 | vim.keymap.set('n', '', api.node.open.edit, opts('Open')) 9 | vim.keymap.set('n', '-', api.tree.change_root_to_parent, opts('Up')) 10 | vim.keymap.set('n', '=', api.tree.change_root_to_node, opts('CD')) 11 | vim.keymap.set('n', 'v', api.node.open.vertical, opts('Open: Vertical Split')) 12 | vim.keymap.set('n', 's', api.node.open.horizontal, opts('Open: Horizontal Split')) 13 | end 14 | 15 | local options = { 16 | sort_by = 'case_sensitive', 17 | disable_netrw = true, 18 | hijack_netrw = true, 19 | hijack_cursor = true, 20 | update_cwd = true, 21 | on_attach = on_attach, 22 | update_focused_file = { 23 | enable = true, 24 | update_cwd = false, 25 | }, 26 | view = { 27 | adaptive_size = false, 28 | side = 'right', 29 | width = 30, 30 | hide_root_folder = false, 31 | }, 32 | git = { 33 | enable = true, 34 | ignore = false, 35 | }, 36 | filesystem_watchers = { 37 | enable = true, 38 | }, 39 | actions = { 40 | open_file = { 41 | resize_window = false, 42 | }, 43 | }, 44 | renderer = { 45 | highlight_git = true, 46 | group_empty = true, 47 | highlight_opened_files = 'none', 48 | 49 | indent_markers = { 50 | enable = true, 51 | }, 52 | 53 | icons = { 54 | show = { 55 | file = true, 56 | folder = true, 57 | folder_arrow = true, 58 | git = true, 59 | }, 60 | glyphs = { 61 | default = '', 62 | symlink = '', 63 | folder = { 64 | default = '', 65 | empty = '', 66 | empty_open = '', 67 | open = '', 68 | symlink = '', 69 | symlink_open = '', 70 | arrow_open = '', 71 | arrow_closed = '', 72 | }, 73 | git = { 74 | unstaged = '✗', 75 | staged = '✓', 76 | unmerged = '', 77 | renamed = '➜', 78 | untracked = '★', 79 | deleted = '', 80 | ignored = '◌', 81 | }, 82 | }, 83 | }, 84 | }, 85 | filters = { 86 | dotfiles = false, 87 | }, 88 | } 89 | 90 | return options 91 | -------------------------------------------------------------------------------- /nvim/lua/plugins/configs/telescope.lua: -------------------------------------------------------------------------------- 1 | local actions = require('telescope.actions') 2 | 3 | local options = { 4 | defaults = { 5 | prompt_prefix = '  ', 6 | selection_caret = '❯ ', 7 | mappings = { 8 | i = { 9 | [''] = actions.close, 10 | [''] = actions.move_selection_previous, 11 | [''] = actions.move_selection_next, 12 | } 13 | }, 14 | layout_config = { 15 | horizontal = { 16 | prompt_position = 'top', 17 | preview_width = 0.55, 18 | results_width = 0.8, 19 | }, 20 | vertical = { 21 | mirror = false, 22 | }, 23 | width = 0.87, 24 | height = 0.80, 25 | preview_cutoff = 120, 26 | }, 27 | } 28 | } 29 | 30 | return options 31 | -------------------------------------------------------------------------------- /nvim/lua/plugins/configs/terminal.lua: -------------------------------------------------------------------------------- 1 | local options = { 2 | open_mapping = [[]], 3 | hide_numbers = true, 4 | shade_filetypes = {}, 5 | shade_terminals = true, 6 | shading_factor = 2, 7 | start_in_insert = true, 8 | insert_mappings = true, 9 | persist_size = true, 10 | direction = 'float', 11 | close_on_exit= true, 12 | shell = vim.o.shell, 13 | float_opts = { 14 | width = function() 15 | return math.ceil(vim.o.columns * 0.6) 16 | end, 17 | height = function() 18 | return math.ceil(vim.o.lines * 0.7) 19 | end, 20 | border = 'curved', 21 | winblend = 0, 22 | highlights = { 23 | border = 'Normal', 24 | background = 'Normal', 25 | }, 26 | }, 27 | } 28 | 29 | return options 30 | -------------------------------------------------------------------------------- /nvim/lua/plugins/configs/treesitter.lua: -------------------------------------------------------------------------------- 1 | local options = { 2 | ensure_installed = { "lua" }, 3 | -- auto_install = true, 4 | 5 | highlight = { 6 | enable = true, 7 | use_languagetree = true, 8 | }, 9 | 10 | indent = { enable = true }, 11 | } 12 | 13 | return options 14 | -------------------------------------------------------------------------------- /nvim/lua/plugins/init.lua: -------------------------------------------------------------------------------- 1 | local default_plugins = { 2 | 'nvim-tree/nvim-web-devicons', 3 | 4 | { 5 | 'folke/tokyonight.nvim', 6 | -- event = { 'BufReadPost', 'BufNewFile' }, 7 | init = function() 8 | require('core.utils').lazy_load 'tokyonight.nvim' 9 | end, 10 | config = function() 11 | require('plugins.configs.colorscheme') 12 | end, 13 | }, 14 | 15 | { 16 | 'lukas-reineke/indent-blankline.nvim', 17 | event = { 'BufReadPost', 'BufNewFile' }, 18 | -- init = function() 19 | -- require('core.utils').lazy_load 'indent-blankline.nvim' 20 | -- end, 21 | opts = function() return require 'plugins.configs.blankline' 22 | end, 23 | config = function(_, opts) 24 | require('indent_blankline').setup(opts) 25 | end, 26 | }, 27 | 28 | { 29 | 'nvim-treesitter/nvim-treesitter', 30 | event = { 'BufReadPost', 'BufNewFile' }, 31 | -- init = function() 32 | -- require('core.utils').lazy_load 'nvim-treesitter' 33 | -- end, 34 | cmd = { 'TSInstall', 'TSBufEnable', 'TSBufDisable', 'TSModuleInfo' }, 35 | build = ':TSUpdate', 36 | opts = function() 37 | return require 'plugins.configs.treesitter' end, 38 | config = function(_, opts) 39 | require('nvim-treesitter.configs').setup(opts) 40 | end, 41 | }, 42 | 43 | { 44 | 'lewis6991/gitsigns.nvim', 45 | ft = { 'gitcommit', 'diff' }, 46 | init = function() 47 | vim.api.nvim_create_autocmd({ 'BufRead' }, { 48 | group = vim.api.nvim_create_augroup('GitSignsLazyLoad', { clear = true }), 49 | callback = function() 50 | vim.fn.system("git -C " .. '"' .. vim.fn.expand "%:p:h" .. '"' .. " rev-parse") 51 | if vim.v.shell_error == 0 then 52 | vim.api.nvim_del_augroup_by_name 'GitSignsLazyLoad' 53 | vim.schedule(function() 54 | require('lazy').load { plugins = { 'gitsigns.nvim' } } 55 | end) 56 | end 57 | end, 58 | }) 59 | end, 60 | opts = function() 61 | return require 'plugins.configs.gitsigns' 62 | end, 63 | config = function() 64 | require('gitsigns').setup(opts) 65 | end, 66 | }, 67 | 68 | { 69 | 'williamboman/mason.nvim', 70 | cmd = { 'Mason', 'MasonInstall', 'MasonInstallAll', 'MasonUninstall', 'MasonUninstallAll', 'MasonLog' }, 71 | opts = function() 72 | return require 'plugins.configs.mason' 73 | end, 74 | config = function(_, opts) 75 | require('mason').setup(opts) 76 | vim.api.nvim_create_user_command('MasonInstallAll', function() 77 | vim.cmd('MasonInstall ' .. table.concat(opts.ensure_installed, ' ')) 78 | end, {}) 79 | 80 | vim.g.mason_binaries_list = opts.ensure_installed 81 | end, 82 | }, 83 | 84 | { 85 | 'neovim/nvim-lspconfig', 86 | event = { 'BufReadPost', 'BufNewFile' }, 87 | -- init = function() 88 | -- require('core.utils').lazy_load 'nvim-lspconfig' 89 | -- end, 90 | dependencies = { 91 | { 92 | 'glepnir/lspsaga.nvim', 93 | branch = 'main', 94 | dependencies = 'onsails/lspkind.nvim', 95 | opts = function() 96 | return require('plugins.configs.lspsaga') 97 | end, 98 | config = function(_, opts) 99 | require('lspsaga').setup(opts) 100 | end, 101 | }, 102 | }, 103 | config = function() 104 | require 'plugins.configs.lspconfig' 105 | end, 106 | }, 107 | 108 | { 109 | 'hrsh7th/nvim-cmp', 110 | event = 'InsertEnter', 111 | dependencies = { 112 | { 113 | 'L3MON4D3/LuaSnip', 114 | dependencies = 'rafamadriz/friendly-snippets', 115 | }, 116 | 117 | { 118 | 'windwp/nvim-autopairs', 119 | opts = { 120 | fast_wrap = {}, 121 | disable_filetype = { 'TelescopePrompt', 'vim' }, 122 | }, 123 | config = function(_, opts) 124 | require('nvim-autopairs').setup(opts) 125 | 126 | local cmp_autopairs = require 'nvim-autopairs.completion.cmp' 127 | require('cmp').event:on('confirm_done', cmp_autopairs.on_confirm_done()) 128 | end, 129 | }, 130 | 131 | { 132 | 'saadparwaiz1/cmp_luasnip', 133 | 'hrsh7th/cmp-nvim-lsp', 134 | 'hrsh7th/cmp-buffer', 135 | 'hrsh7th/cmp-path', 136 | }, 137 | }, 138 | opts = function() 139 | return require 'plugins.configs.cmp' 140 | end, 141 | config = function(_, opts) 142 | require('cmp').setup(opts) 143 | end, 144 | }, 145 | 146 | { 147 | 'nvim-tree/nvim-tree.lua', 148 | cmd = { 'NvimTreeToggle', 'NvimTreeFocus' }, 149 | opts = function() 150 | return require 'plugins.configs.nvimtree' 151 | end, 152 | config = function(_, opts) 153 | require('nvim-tree').setup(opts) 154 | end, 155 | }, 156 | 157 | { 158 | 'nvim-telescope/telescope.nvim', 159 | cmd = 'Telescope', 160 | dependencies = { 161 | 'nvim-lua/plenary.nvim', 162 | }, 163 | opts = function() 164 | return require 'plugins.configs.telescope' 165 | end, 166 | config = function(_, opts) 167 | require('telescope').setup(opts) 168 | end, 169 | }, 170 | 171 | { 172 | 'nvim-lualine/lualine.nvim', 173 | event = 'VeryLazy', 174 | opts = function() 175 | return require 'plugins.configs.lualine' 176 | end, 177 | config = function(_, opts) 178 | require('lualine').setup(opts) 179 | end 180 | }, 181 | 182 | { 183 | 'akinsho/bufferline.nvim', 184 | event = 'VeryLazy', 185 | opts = function() 186 | return require 'plugins.configs.bufferline' 187 | end, 188 | config = function(_, opts) 189 | require('bufferline').setup(opts) 190 | end, 191 | }, 192 | 193 | { 194 | 'akinsho/toggleterm.nvim', 195 | cmd = { 'ToggleTerm', 'ToggleTermAll' }, 196 | opts = function() 197 | return require 'plugins.configs.terminal' 198 | end, 199 | config = function(_, opts) 200 | require('toggleterm').setup(opts) 201 | end 202 | }, 203 | {'romgrk/barbar.nvim', 204 | dependencies = { 205 | 'lewis6991/gitsigns.nvim', -- OPTIONAL: for git status 206 | 'nvim-tree/nvim-web-devicons', -- OPTIONAL: for file icons 207 | }, 208 | init = function() vim.g.barbar_auto_setup = false end, 209 | opts = { 210 | -- lazy.nvim will automatically call setup for you. put your options here, anything missing will use the default: 211 | -- animation = true, 212 | -- insert_at_start = true, 213 | -- …etc. 214 | }, 215 | version = '^1.0.0', -- optional: only update when a new 1.x version is released 216 | }, 217 | } 218 | 219 | require('lazy').setup(default_plugins, require 'plugins.configs.lazy_nvim') 220 | -------------------------------------------------------------------------------- /rofi/config.rasi: -------------------------------------------------------------------------------- 1 | configuration{ 2 | modi: "run,drun,window"; 3 | icon-theme: "Oranchelo"; 4 | show-icons: true; 5 | terminal: "alacritty"; 6 | drun-display-format: "{icon} {name}"; 7 | location: 0; 8 | disable-history: false; 9 | hide-scrollbar: true; 10 | display-drun: "  Apps "; 11 | display-run: "  Run "; 12 | display-window: " 﩯 Window"; 13 | display-Network: " 󰤨 Network"; 14 | sidebar-mode: true; 15 | } 16 | 17 | @theme "catppuccin-mocha" 18 | 19 | -------------------------------------------------------------------------------- /rofi/userconfig/config.rasi: -------------------------------------------------------------------------------- 1 | configuration{ 2 | modi: "run,drun,window"; 3 | icon-theme: "Oranchelo"; 4 | show-icons: true; 5 | terminal: "alacritty"; 6 | drun-display-format: "{icon} {name}"; 7 | location: 0; 8 | disable-history: false; 9 | hide-scrollbar: true; 10 | display-drun: "  Apps "; 11 | display-run: "  Run "; 12 | display-window: " 﩯 Window"; 13 | display-Network: " 󰤨 Network"; 14 | sidebar-mode: true; 15 | } 16 | 17 | @theme "catppuccin-mocha" 18 | 19 | --------------------------------------------------------------------------------