├── 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 | 
29 | 
30 | 
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 |
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 |
--------------------------------------------------------------------------------