updates for eww and ydotool
This commit is contained in:
		
							parent
							
								
									f153a71270
								
							
						
					
					
						commit
						25853d63db
					
				
					 19 changed files with 1147 additions and 31 deletions
				
			
		| 
						 | 
				
			
			@ -420,7 +420,7 @@ pulsemixer
 | 
			
		|||
any-nix-shell
 | 
			
		||||
wtype
 | 
			
		||||
xdotool
 | 
			
		||||
ydotool
 | 
			
		||||
#ydotool
 | 
			
		||||
wmctrl
 | 
			
		||||
xcape
 | 
			
		||||
xclip
 | 
			
		||||
| 
						 | 
				
			
			@ -499,6 +499,11 @@ Let's also add our own package from my WIP presenter
 | 
			
		|||
(libsForQt5.callPackage /home/chris/dev/church-presenter {})
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+NAME: ydotool
 | 
			
		||||
#+begin_src nix
 | 
			
		||||
(callPackage /home/chris/.dotfiles/ydotool {})
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
Firefox has it's own setup
 | 
			
		||||
#+NAME: firefox
 | 
			
		||||
#+begin_src nix
 | 
			
		||||
| 
						 | 
				
			
			@ -1040,6 +1045,7 @@ Kaladin is my desktop machine. A powerhouse for the most part with a recent i7 a
 | 
			
		|||
    protonup
 | 
			
		||||
    nvtop
 | 
			
		||||
    # Dev tools
 | 
			
		||||
    <<ydotool>>
 | 
			
		||||
    <<dev-tools>>
 | 
			
		||||
    <<lightlyshaders>>
 | 
			
		||||
  ];
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
#? Config file for btop v. 1.2.12
 | 
			
		||||
#? Config file for btop v. 1.2.13
 | 
			
		||||
 | 
			
		||||
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
 | 
			
		||||
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
 | 
			
		||||
| 
						 | 
				
			
			@ -16,7 +16,7 @@ force_tty = False
 | 
			
		|||
 | 
			
		||||
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
 | 
			
		||||
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
 | 
			
		||||
#* Use withespace " " as separator between different presets.
 | 
			
		||||
#* Use whitespace " " as separator between different presets.
 | 
			
		||||
#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
 | 
			
		||||
presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										446
									
								
								eww/eww.scss
									
										
									
									
									
								
							
							
						
						
									
										446
									
								
								eww/eww.scss
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -0,0 +1,446 @@
 | 
			
		|||
/** EWW.SCSS
 | 
			
		||||
Created by saimoom **/
 | 
			
		||||
*{
 | 
			
		||||
	all: unset;
 | 
			
		||||
	font-family: feather;
 | 
			
		||||
	font-family: DaddyTimeMono NF;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/** General **/
 | 
			
		||||
.bar_class {
 | 
			
		||||
    background-color: #0f0f17;
 | 
			
		||||
    border-radius: 16px;
 | 
			
		||||
}
 | 
			
		||||
.module {
 | 
			
		||||
    margin: 0px 0px 0px 0px;
 | 
			
		||||
    border-radius: 10px 16px 0px 10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/** tooltip!! **/
 | 
			
		||||
tooltip.background {
 | 
			
		||||
    background-color: #0f0f17;
 | 
			
		||||
    font-size: 18;
 | 
			
		||||
    border-radius: 10px;
 | 
			
		||||
    color: #bfc9db;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
tooltip label {
 | 
			
		||||
    margin: 6px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/** Widgets **/
 | 
			
		||||
 | 
			
		||||
.clock_time_sep {
 | 
			
		||||
    font-size: 16;
 | 
			
		||||
    color: #bfc9db;
 | 
			
		||||
    margin: 0px 4px 1px 4px;
 | 
			
		||||
}
 | 
			
		||||
.clock_time_class, .clock_minute_class {
 | 
			
		||||
    font-size: 23;
 | 
			
		||||
}
 | 
			
		||||
.clock_date_class {
 | 
			
		||||
    font-size: 18;
 | 
			
		||||
    margin: 0px 20px 0px -1px;
 | 
			
		||||
    color: #d7beda;
 | 
			
		||||
}
 | 
			
		||||
.clock_minute_class {
 | 
			
		||||
    margin: 0px 20px 0px 3px;
 | 
			
		||||
    color: #bfc9db;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.clock_time_class {
 | 
			
		||||
    color: #bfc9db;
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
    margin: 0px 5px 0px 0px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.membar {
 | 
			
		||||
  color: #e0b089;
 | 
			
		||||
    background-color: #38384d;
 | 
			
		||||
  border-radius: 10px;
 | 
			
		||||
}
 | 
			
		||||
.batbar {
 | 
			
		||||
  color: #afbea2;
 | 
			
		||||
    background-color: #38384d;
 | 
			
		||||
  border-radius: 10px;
 | 
			
		||||
}
 | 
			
		||||
.brightbar trough highlight {
 | 
			
		||||
  background-image: linear-gradient(to right, #e4c9af 30%, #f2cdcd 50%, #e0b089 100% *50);
 | 
			
		||||
  border-radius: 10px;
 | 
			
		||||
}
 | 
			
		||||
.volbar trough highlight {
 | 
			
		||||
  background-image: linear-gradient(to right, #afcee0 30%, #a1bdce 50%, #77a5bf 100% *50);
 | 
			
		||||
  border-radius: 10px;
 | 
			
		||||
}
 | 
			
		||||
.volume_icon {
 | 
			
		||||
    font-size: 22;
 | 
			
		||||
    color: #a1bdce;
 | 
			
		||||
  margin: 0px 10px 0px 10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.module_essid {
 | 
			
		||||
    font-size: 18;
 | 
			
		||||
    color: #a1bdce;
 | 
			
		||||
  margin: 0px 10px 0px 0px;
 | 
			
		||||
}
 | 
			
		||||
.module-wif {
 | 
			
		||||
    font-size: 22;
 | 
			
		||||
    color: #a1bdce;
 | 
			
		||||
    border-radius: 100%;
 | 
			
		||||
  margin: 0px 10px 0px 5px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.iconmem {
 | 
			
		||||
    color: #e0b089;
 | 
			
		||||
}
 | 
			
		||||
.iconbat {
 | 
			
		||||
    color: #afbea2;
 | 
			
		||||
}
 | 
			
		||||
.iconbat, .iconmem {
 | 
			
		||||
    font-size: 15;
 | 
			
		||||
    margin: 10px;
 | 
			
		||||
}
 | 
			
		||||
.bright_icon {
 | 
			
		||||
    font-size: 22;
 | 
			
		||||
    color: #e4c9af;
 | 
			
		||||
  margin: 0px 10px 0px 10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.separ {
 | 
			
		||||
    color: #3e424f;
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
    font-size: 22px;
 | 
			
		||||
    margin: 0px 8px 0px 8px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
.mem_module {
 | 
			
		||||
    background-color: #0f0f17;
 | 
			
		||||
	border-radius: 16px;
 | 
			
		||||
  margin: 0px 10px 0px 3px;
 | 
			
		||||
  }
 | 
			
		||||
.bat_module {
 | 
			
		||||
    background-color: #0f0f17;
 | 
			
		||||
	border-radius: 16px;
 | 
			
		||||
  margin: 0px 10px 0px 10px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
scale trough {
 | 
			
		||||
  all: unset;
 | 
			
		||||
  background-color: #22242b;
 | 
			
		||||
  box-shadow: 0 2px 3px 2px #06060b;
 | 
			
		||||
  border-radius: 16px;
 | 
			
		||||
  min-height: 10px;
 | 
			
		||||
  min-width: 70px;
 | 
			
		||||
  margin: 0px 10px 0px 0px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.works {
 | 
			
		||||
font-size: 27px;
 | 
			
		||||
font-weight: normal;
 | 
			
		||||
margin: 5px 0px 0px 20px;
 | 
			
		||||
background-color: #0f0f17;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.0 , .01, .02, .03, .04, .05, .06,
 | 
			
		||||
.011, .022, .033, .044, .055, .066{
 | 
			
		||||
  margin: 0px 10px 0px 0px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Unoccupied */
 | 
			
		||||
.0 {
 | 
			
		||||
color: #3e424f;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Occupied */
 | 
			
		||||
.01, .02, .03, .04, .05, .06 {
 | 
			
		||||
  color: #bfc9db;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Focused */
 | 
			
		||||
.011, .022, .033, .044, .055, .066 {
 | 
			
		||||
  color: #a1bdce;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.song_cover_art {
 | 
			
		||||
	background-size: cover;	
 | 
			
		||||
	background-position: center;
 | 
			
		||||
	min-height: 24px;
 | 
			
		||||
	min-width: 24px;
 | 
			
		||||
	margin: 10px;
 | 
			
		||||
	border-radius: 100px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.song {
 | 
			
		||||
	color: #a1bdce;
 | 
			
		||||
	font-size : 18px;
 | 
			
		||||
	font-weight : bold;
 | 
			
		||||
	margin : 3px 5px 0px 0px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.song_btn_play {
 | 
			
		||||
	color: #a1bdce;
 | 
			
		||||
	font-size : 28px;
 | 
			
		||||
	margin : 3px 0px 0px 5px;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.song_btn_prev, .song_btn_next {
 | 
			
		||||
	color: #bfc9db;
 | 
			
		||||
	font-size : 24px;
 | 
			
		||||
	margin : 3px 0px 0px 5px;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
// Calendar
 | 
			
		||||
.cal {
 | 
			
		||||
  background-color: #0f0f17;
 | 
			
		||||
  font-family: JetBrainsMono Nerd Font;
 | 
			
		||||
  font-size: 18px;
 | 
			
		||||
  font-weight: normal;
 | 
			
		||||
 | 
			
		||||
.cal-in {
 | 
			
		||||
    padding: 0px 10px 0px 10px;
 | 
			
		||||
    color: #bfc9db;
 | 
			
		||||
 | 
			
		||||
.cal {
 | 
			
		||||
     &.highlight {
 | 
			
		||||
          padding: 20px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      padding: 5px 5px 5px 5px;
 | 
			
		||||
      margin-left: 10px;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
calender {
 | 
			
		||||
    color: #bfc9db;
 | 
			
		||||
}
 | 
			
		||||
calendar:selected {
 | 
			
		||||
  color: #a1bdce;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
calendar.header {
 | 
			
		||||
color: #a1bdce;
 | 
			
		||||
font-weight: bold;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
calendar.button {
 | 
			
		||||
color: #afbea2;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
calendar.highlight {
 | 
			
		||||
color: #a1bdce;
 | 
			
		||||
font-weight: bold;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
calendar:indeterminate {
 | 
			
		||||
color: #bfc9db;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.sys_sep {
 | 
			
		||||
    color: #38384d;
 | 
			
		||||
    font-size: 18;
 | 
			
		||||
    margin: 0px 10px 0px 10px;
 | 
			
		||||
}
 | 
			
		||||
.sys_text_bat_sub, .sys_text_mem_sub {
 | 
			
		||||
    font-size: 16;
 | 
			
		||||
    color: #bbc5d7;
 | 
			
		||||
    margin: 5px 0px 0px 25px;
 | 
			
		||||
}
 | 
			
		||||
.sys_text_bat, .sys_text_mem {
 | 
			
		||||
    font-size: 21;
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
    margin: 14px 0px 0px 25px;
 | 
			
		||||
}
 | 
			
		||||
.sys_icon_bat, .sys_icon_mem {
 | 
			
		||||
    font-size: 30;
 | 
			
		||||
    margin: 30px;
 | 
			
		||||
}
 | 
			
		||||
.sys_win {
 | 
			
		||||
    background-color: #0f0f17;
 | 
			
		||||
}
 | 
			
		||||
.sys_bat {
 | 
			
		||||
  color: #afbea2;
 | 
			
		||||
    background-color: #38384d;
 | 
			
		||||
  border-radius: 10px;
 | 
			
		||||
}
 | 
			
		||||
.sys_mem {
 | 
			
		||||
  color: #e4c9af;
 | 
			
		||||
    background-color: #38384d;
 | 
			
		||||
  border-radius: 10px;
 | 
			
		||||
}
 | 
			
		||||
.sys_icon_bat, .sys_text_bat {
 | 
			
		||||
    color: #afbea2;
 | 
			
		||||
}
 | 
			
		||||
.sys_icon_mem, .sys_text_mem {
 | 
			
		||||
    color: #e4c9af;
 | 
			
		||||
}
 | 
			
		||||
.sys_bat_box {
 | 
			
		||||
	border-radius: 16px;
 | 
			
		||||
    margin: 15px 10px 10px 20px;
 | 
			
		||||
  }
 | 
			
		||||
.sys_mem_box {
 | 
			
		||||
	border-radius: 16px;
 | 
			
		||||
    margin: 10px 10px 15px 20px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.music_pop {
 | 
			
		||||
    background-color: #0f0f17;
 | 
			
		||||
	border-radius: 16px;
 | 
			
		||||
}
 | 
			
		||||
  .music_cover_art {
 | 
			
		||||
	background-size: cover;
 | 
			
		||||
	background-position: center;
 | 
			
		||||
	min-height: 100px;
 | 
			
		||||
    box-shadow: 5px 5px 5px 5px #06060b;
 | 
			
		||||
	min-width: 170px;
 | 
			
		||||
	margin: 20px;
 | 
			
		||||
	border-radius: 20px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.music {
 | 
			
		||||
	color: #a1bdce;
 | 
			
		||||
	font-size : 20px;
 | 
			
		||||
	font-weight : bold;
 | 
			
		||||
	margin : 20px 0px 0px -15px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.music_artist {
 | 
			
		||||
	color: #bbc5d7;
 | 
			
		||||
	font-size : 16px;
 | 
			
		||||
	font-weight : normal;
 | 
			
		||||
	margin : 0px 0px 0px 0px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.music_btn_prev, .music_btn_play, .music_btn_next {
 | 
			
		||||
	font-family: Iosevka Nerd Font;
 | 
			
		||||
}
 | 
			
		||||
.music_btn_prev {
 | 
			
		||||
	color: #bbc5d7;
 | 
			
		||||
	font-size : 32px;
 | 
			
		||||
	font-weight : normal;
 | 
			
		||||
	margin: 0px 0px 0px 0px;
 | 
			
		||||
}
 | 
			
		||||
.music_btn_play {
 | 
			
		||||
	color: #a1bdce;
 | 
			
		||||
	font-size : 48px;
 | 
			
		||||
	font-weight : normal;
 | 
			
		||||
	margin: 0px 0px 0px 0px;
 | 
			
		||||
}
 | 
			
		||||
.music_btn_next {
 | 
			
		||||
	color: #bbc5d7;
 | 
			
		||||
	font-size : 32px;
 | 
			
		||||
	font-weight : normal;
 | 
			
		||||
	margin: 0px 0px 0px 0px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.music_bar scale trough highlight {
 | 
			
		||||
	all: unset;
 | 
			
		||||
    background-image: linear-gradient(to right, #afcee0 30%, #a1bdce 50%, #77a5bf 100% *50);
 | 
			
		||||
	border-radius: 24px;
 | 
			
		||||
}
 | 
			
		||||
.music_bar scale trough {
 | 
			
		||||
	all: unset;
 | 
			
		||||
	background-color: #232232;
 | 
			
		||||
    box-shadow: 0 6px 5px 2px #06060b;
 | 
			
		||||
	border-radius: 24px;
 | 
			
		||||
	min-height: 13px;
 | 
			
		||||
	min-width: 190px;
 | 
			
		||||
	margin : -10px 10px 20px 0px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.audio-box {
 | 
			
		||||
    background-color: #0f0f17;
 | 
			
		||||
	border-radius: 16px;
 | 
			
		||||
}
 | 
			
		||||
.speaker_icon {
 | 
			
		||||
	background-size: cover;
 | 
			
		||||
    background-image: url('images/speaker.png');
 | 
			
		||||
	background-position: center;
 | 
			
		||||
	min-height: 70px;
 | 
			
		||||
	min-width: 75px;
 | 
			
		||||
	margin: 10px 20px 5px 20px;
 | 
			
		||||
	border-radius: 12px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.speaker_text {
 | 
			
		||||
	color: #a1bdce;
 | 
			
		||||
	font-size : 26px;
 | 
			
		||||
	font-weight : bold;
 | 
			
		||||
	margin: 20px 0px 0px 0px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.speaker_bar scale trough highlight {
 | 
			
		||||
	all: unset;
 | 
			
		||||
    background-image: linear-gradient(to right, #afcee0 30%, #a1bdce 50%, #77a5bf 100% *50);
 | 
			
		||||
	border-radius: 24px;
 | 
			
		||||
}
 | 
			
		||||
.speaker_bar scale trough {
 | 
			
		||||
	all: unset;
 | 
			
		||||
	background-color: #232232;
 | 
			
		||||
    box-shadow: 0 6px 5px 2px #06060b;
 | 
			
		||||
	border-radius: 24px;
 | 
			
		||||
	min-height: 13px;
 | 
			
		||||
	min-width: 120px;
 | 
			
		||||
	margin : 0px 0px 5px 0px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.mic_icon {
 | 
			
		||||
	background-size: cover;
 | 
			
		||||
    background-image: url('images/mic.png');
 | 
			
		||||
	background-position: center;
 | 
			
		||||
	min-height: 70px;
 | 
			
		||||
	min-width: 75px;
 | 
			
		||||
	margin: 5px 20px 20px 20px;
 | 
			
		||||
	border-radius: 12px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.mic_text {
 | 
			
		||||
	color: #a1bdce;
 | 
			
		||||
	font-size : 26px;
 | 
			
		||||
	font-weight : bold;
 | 
			
		||||
	margin: 0px 0px 0px 0px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.mic_bar scale trough highlight {
 | 
			
		||||
	all: unset;
 | 
			
		||||
    background-image: linear-gradient(to right, #afcee0 30%, #a1bdce 50%, #77a5bf 100% *50);
 | 
			
		||||
	border-radius: 24px;
 | 
			
		||||
}
 | 
			
		||||
.mic_bar scale trough {
 | 
			
		||||
	all: unset;
 | 
			
		||||
    box-shadow: 0 6px 5px 2px #06060b;
 | 
			
		||||
	background-color: #232232;
 | 
			
		||||
	border-radius: 24px;
 | 
			
		||||
	min-height: 13px;
 | 
			
		||||
	min-width: 120px;
 | 
			
		||||
	margin : 0px 0px 20px 0px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.audio_sep {
 | 
			
		||||
    color: #38384d;
 | 
			
		||||
    font-size: 18;
 | 
			
		||||
	margin : 0px 0px 0px 0px;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										369
									
								
								eww/eww.yuck
									
										
									
									
									
								
							
							
						
						
									
										369
									
								
								eww/eww.yuck
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1,23 +1,350 @@
 | 
			
		|||
(defwindow example
 | 
			
		||||
  :monitor 0
 | 
			
		||||
  :geometry (geometry :x "0%"
 | 
			
		||||
                      :y "80px"
 | 
			
		||||
                      :width "20%"
 | 
			
		||||
                      :height "60px"
 | 
			
		||||
                      :anchor "top center")
 | 
			
		||||
  :stacking "fg"
 | 
			
		||||
  :windowtype "dialog"
 | 
			
		||||
  :wm-ignore true
 | 
			
		||||
  volslider)
 | 
			
		||||
;; Variables
 | 
			
		||||
(defpoll clock_time :interval "5m" "date +\%I")
 | 
			
		||||
(defpoll clock_minute :interval "5s" "date +\%M")
 | 
			
		||||
(defpoll clock_date :interval "10h" "date '+%d/%m'")
 | 
			
		||||
(defpoll volume_percent :interval "3s" "amixer -D pulse sget Master | grep 'Left:' | awk -F'[][]' '{ print $2 }' | tr -d '%'")
 | 
			
		||||
(defpoll mic_percent :interval "3s" "amixer -D pulse sget Capture | grep 'Left:' | awk -F'[][]' '{ print $2 }' | tr -d '%'")
 | 
			
		||||
(defpoll brightness_percent :interval "5s" "brightnessctl -m -d intel_backlight | awk -F, '{print substr($4, 0, length($4)-1)}' | tr -d '%'")
 | 
			
		||||
(defpoll battery :interval "15s" "./scripts/battery --bat")
 | 
			
		||||
(defpoll battery_status :interval "1m" "./scripts/battery --bat-st")
 | 
			
		||||
(defpoll memory :interval "15s" "scripts/memory")
 | 
			
		||||
(defpoll memory_used_mb :interval "2m" "scripts/mem-ad used")
 | 
			
		||||
(defpoll memory_total_mb :interval "2m" "scripts/mem-ad total")
 | 
			
		||||
(defpoll memory_free_mb :interval "2m" "scripts/mem-ad free")
 | 
			
		||||
(defvar vol_reveal false)
 | 
			
		||||
(defvar br_reveal false)
 | 
			
		||||
(defvar music_reveal false)
 | 
			
		||||
(defvar wifi_rev false)
 | 
			
		||||
(defvar time_rev false)
 | 
			
		||||
(deflisten workspace "scripts/workspace")
 | 
			
		||||
 | 
			
		||||
(deflisten volume
 | 
			
		||||
  :initial "getvol"
 | 
			
		||||
  'tail -F /tmp/vol')
 | 
			
		||||
(defvar eww "$HOME/.local/bin/eww/eww -c $HOME/.config/eww/bar")
 | 
			
		||||
 | 
			
		||||
;; (defwidget volslider []
 | 
			
		||||
;;   (box :orientation "horizontal"
 | 
			
		||||
;;        :halign "center"
 | 
			
		||||
;;        volume
 | 
			
		||||
;;        (scale :value volume
 | 
			
		||||
;;               :min 0
 | 
			
		||||
;;               :max 100)))
 | 
			
		||||
 | 
			
		||||
(defpoll COL_WLAN :interval "1m" "~/.config/eww/bar/scripts/wifi --COL")
 | 
			
		||||
(defpoll ESSID_WLAN :interval "1m" "~/.config/eww/bar/scripts/wifi --ESSID")
 | 
			
		||||
(defpoll WLAN_ICON :interval "1m" "~/.config/eww/bar/scripts/wifi --ICON")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(defpoll song :interval "2s"  "~/.config/eww/bar/scripts/music_info --song")
 | 
			
		||||
(defpoll song_artist :interval "2s"  "~/.config/eww/bar/scripts/music_info --artist")
 | 
			
		||||
(defpoll current_status :interval "1s"  "~/.config/eww/bar/scripts/music_info --time")
 | 
			
		||||
(defpoll song_status :interval "2s"  "~/.config/eww/bar/scripts/music_info --status")
 | 
			
		||||
(defpoll cover_art :interval "2s"  "~/.config/eww/bar/scripts/music_info --cover")
 | 
			
		||||
 | 
			
		||||
(defpoll calendar_day :interval "20h" "date '+%d'")
 | 
			
		||||
(defpoll calendar_year :interval "20h" "date '+%Y'")
 | 
			
		||||
 | 
			
		||||
;; widgets
 | 
			
		||||
 | 
			
		||||
(defwidget wifi [] 
 | 
			
		||||
  (eventbox :onhover "${eww} update wifi_rev=true"
 | 
			
		||||
			  :onhoverlost "${eww} update wifi_rev=false"
 | 
			
		||||
		(box :vexpand "false" :hexpand "false" :space-evenly "false"
 | 
			
		||||
				(button :class "module-wif" :onclick "networkmanager_dmenu" :wrap "false" :limit-width 12 :style "color: ${COL_WLAN};" WLAN_ICON)
 | 
			
		||||
	(revealer :transition "slideright"
 | 
			
		||||
			  :reveal wifi_rev
 | 
			
		||||
			  :duration "350ms"
 | 
			
		||||
	(label    :class "module_essid"
 | 
			
		||||
			  :text ESSID_WLAN
 | 
			
		||||
			  :orientation "h"
 | 
			
		||||
			  )))))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(defwidget workspaces []
 | 
			
		||||
  (literal :content workspace))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(defwidget bat []
 | 
			
		||||
		(box :class "bat_module" :vexpand "false" :hexpand "false" 
 | 
			
		||||
            (circular-progress :value battery
 | 
			
		||||
                :class "batbar"
 | 
			
		||||
                :thickness 4
 | 
			
		||||
            (button 
 | 
			
		||||
                :class "iconbat"
 | 
			
		||||
                :limit-width 2
 | 
			
		||||
                :tooltip "battery on ${battery}%"
 | 
			
		||||
                :show_truncated false
 | 
			
		||||
                :onclick "$HOME/.config/eww/bar/scripts/pop system"
 | 
			
		||||
                :wrap false
 | 
			
		||||
                ""))))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(defwidget mem []
 | 
			
		||||
		(box :class "mem_module" :vexpand "false" :hexpand "false" 
 | 
			
		||||
            (circular-progress :value memory
 | 
			
		||||
                :class "membar"
 | 
			
		||||
                :thickness 4
 | 
			
		||||
            (button 
 | 
			
		||||
                :class "iconmem"
 | 
			
		||||
                :limit-width 2
 | 
			
		||||
                :tooltip "using ${memory}% ram"
 | 
			
		||||
                :onclick "$HOME/.config/eww/bar/scripts/pop system"
 | 
			
		||||
                :show_truncated false
 | 
			
		||||
                :wrap false
 | 
			
		||||
                ""))))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(defwidget sep []
 | 
			
		||||
  (box :class "module-2" :vexpand "false" :hexpand "false"
 | 
			
		||||
    (label :class "separ" :text "|")))
 | 
			
		||||
 | 
			
		||||
(defwidget clock_module []
 | 
			
		||||
  (eventbox :onhover "${eww} update time_rev=true"
 | 
			
		||||
			  :onhoverlost "${eww} update time_rev=false"
 | 
			
		||||
    (box :class "module" :space-evenly "false" :orientation "h" :spacing "3" 
 | 
			
		||||
      (label :text clock_time :class "clock_time_class" )
 | 
			
		||||
      (label :text "" :class "clock_time_sep" )
 | 
			
		||||
      (label :text clock_minute :class "clock_minute_class")
 | 
			
		||||
	  (revealer :transition "slideleft"
 | 
			
		||||
			  :reveal time_rev
 | 
			
		||||
			  :duration "350ms"
 | 
			
		||||
      (button :class "clock_date_class"
 | 
			
		||||
             :onclick "$HOME/.config/eww/bar/scripts/pop calendar" clock_date
 | 
			
		||||
        )
 | 
			
		||||
  ))))
 | 
			
		||||
  
 | 
			
		||||
(defwidget volume []
 | 
			
		||||
  (eventbox :onhover "${eww} update vol_reveal=true"
 | 
			
		||||
			  :onhoverlost "${eww} update vol_reveal=false"
 | 
			
		||||
  (box :class "module-2" :space-evenly "false" :orientation "h" :spacing "3" 
 | 
			
		||||
	(button   :onclick "scripts/pop audio"   :class "volume_icon" "")
 | 
			
		||||
	(revealer :transition "slideleft"
 | 
			
		||||
			  :reveal vol_reveal
 | 
			
		||||
			  :duration "350ms"
 | 
			
		||||
	(scale    :class "volbar"
 | 
			
		||||
			  :value volume_percent
 | 
			
		||||
			  :orientation "h"
 | 
			
		||||
			  :tooltip "${volume_percent}%"
 | 
			
		||||
			  :max 100
 | 
			
		||||
			  :min 0
 | 
			
		||||
			  :onchange "amixer -D pulse sset Master {}%" )))))
 | 
			
		||||
 | 
			
		||||
(defwidget bright []
 | 
			
		||||
  (eventbox :onhover "${eww} update br_reveal=true" :onhoverlost "${eww} update br_reveal=false"
 | 
			
		||||
  (box :class "module-2" :space-evenly "false" :orientation "h" :spacing "3" 
 | 
			
		||||
    (label :text "" :class "bright_icon" :tooltip "brightness")
 | 
			
		||||
	(revealer :transition "slideleft"
 | 
			
		||||
			  :reveal br_reveal
 | 
			
		||||
			  :duration "350ms"
 | 
			
		||||
	(scale    :class "brightbar"
 | 
			
		||||
			  :value brightness_percent
 | 
			
		||||
			  :orientation "h"
 | 
			
		||||
			  :tooltip "${brightness_percent}%"
 | 
			
		||||
			  :max 100
 | 
			
		||||
			  :min 0
 | 
			
		||||
			  :onchange "brightnessctl set {}%" )))))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	;;  Music 
 | 
			
		||||
(defwidget music [] 
 | 
			
		||||
  (eventbox :onhover "${eww} update music_reveal=true"
 | 
			
		||||
			  :onhoverlost "${eww} update music_reveal=false"
 | 
			
		||||
		(box :class "module-2" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false" 
 | 
			
		||||
			(box :class "song_cover_art" :vexpand "false" :hexpand "false" :style "background-image: url('${cover_art}');")
 | 
			
		||||
			(button :class "song" :wrap "true" :onclick "~/.config/eww/bar/scripts/pop music" song)
 | 
			
		||||
	    (revealer :transition "slideright"
 | 
			
		||||
			      :reveal music_reveal
 | 
			
		||||
			      :duration "350ms"
 | 
			
		||||
          (box :vexpand "false" :hexpand "false" :oreintation "h" 
 | 
			
		||||
                    (button :class "song_btn_prev" :onclick "~/.config/eww/bar/scripts/music_info --prev" "")
 | 
			
		||||
					(button :class "song_btn_play" :onclick "~/.config/eww/bar/scripts/music_info --toggle" song_status)
 | 
			
		||||
					(button :class "song_btn_next" :onclick "~/.config/eww/bar/scripts/music_info --next" ""))))))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(defwidget left []
 | 
			
		||||
	(box :orientation "h" 
 | 
			
		||||
		 :space-evenly false  
 | 
			
		||||
         :halign "end"
 | 
			
		||||
		 :class "left_modules"
 | 
			
		||||
(bright)
 | 
			
		||||
(volume)
 | 
			
		||||
(wifi)
 | 
			
		||||
(sep)
 | 
			
		||||
(bat)
 | 
			
		||||
(mem)
 | 
			
		||||
(sep)
 | 
			
		||||
(clock_module)))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(defwidget right []
 | 
			
		||||
	(box :orientation "h" 
 | 
			
		||||
		 :space-evenly false  
 | 
			
		||||
         :halign "start"
 | 
			
		||||
		 :class "right_modules"
 | 
			
		||||
(workspaces)))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(defwidget center []
 | 
			
		||||
	(box :orientation "h" 
 | 
			
		||||
		 :space-evenly false  
 | 
			
		||||
         :halign "center"
 | 
			
		||||
		 :class "center_modules"
 | 
			
		||||
(music)))
 | 
			
		||||
 | 
			
		||||
(defwidget bar_1 []
 | 
			
		||||
  (box :class "bar_class"
 | 
			
		||||
       :orientation "h"
 | 
			
		||||
  (right)
 | 
			
		||||
  (center)
 | 
			
		||||
  (left)
 | 
			
		||||
    ))
 | 
			
		||||
 | 
			
		||||
(defwindow bar
 | 
			
		||||
          :monitor 1
 | 
			
		||||
          :geometry (geometry :x "0%"
 | 
			
		||||
                       :y "9px"
 | 
			
		||||
                       :width "98%"
 | 
			
		||||
                       :height "30px"
 | 
			
		||||
                       :anchor "top center")
 | 
			
		||||
          :stacking "bottom"
 | 
			
		||||
          :exclusize true
 | 
			
		||||
  (bar_1))
 | 
			
		||||
  
 | 
			
		||||
(defwidget system []
 | 
			
		||||
  (box :class "sys_win" :orientation "v" :space-evenly "false" :hexpand "false" :vexpand "false" :spacing 0
 | 
			
		||||
  (box :class "sys_bat_box" :orientation "h" :space-evenly "false"
 | 
			
		||||
      (circular-progress :value battery
 | 
			
		||||
                :class "sys_bat"
 | 
			
		||||
                :thickness 9
 | 
			
		||||
            (label :text ""
 | 
			
		||||
                :class "sys_icon_bat"
 | 
			
		||||
                :limit-width 2
 | 
			
		||||
                :show_truncated false
 | 
			
		||||
                :wrap false))
 | 
			
		||||
            (box :orientation "v" :space-evenly "false" :spacing 0 :hexpand "false" :vexpand "false"
 | 
			
		||||
            (label :text "battery"
 | 
			
		||||
                :halign "start"
 | 
			
		||||
                :class "sys_text_bat"
 | 
			
		||||
                :limit-width 9
 | 
			
		||||
                :show_truncated false
 | 
			
		||||
                :wrap false)
 | 
			
		||||
            (label :text "${battery}%"
 | 
			
		||||
                :halign "start"
 | 
			
		||||
                :class "sys_text_bat_sub"
 | 
			
		||||
                :limit-width 22
 | 
			
		||||
                :show_truncated false
 | 
			
		||||
                :wrap false)
 | 
			
		||||
            (label :text "${battery_status}"
 | 
			
		||||
                :halign "start"
 | 
			
		||||
                :class "sys_text_bat_sub"
 | 
			
		||||
                :limit-width 22
 | 
			
		||||
                :show_truncated false
 | 
			
		||||
                :wrap false)))
 | 
			
		||||
            (label :text "" :class "sys_sep" :halign "center")
 | 
			
		||||
  (box :class "sys_mem_box" :orientation "h" :space-evenly "false" :halign "start"
 | 
			
		||||
      (circular-progress :value memory
 | 
			
		||||
                :class "sys_mem"
 | 
			
		||||
                :thickness 9
 | 
			
		||||
            (label :text ""
 | 
			
		||||
                :class "sys_icon_mem"
 | 
			
		||||
                :limit-width 2
 | 
			
		||||
                :show_truncated false
 | 
			
		||||
                :wrap false
 | 
			
		||||
                :angle 0.0))
 | 
			
		||||
            (box :orientation "v" :space-evenly "false" :spacing 0 :hexpand "false" :vexpand "false"
 | 
			
		||||
            (label :text "memory"
 | 
			
		||||
                :halign "start"
 | 
			
		||||
                :class "sys_text_mem"
 | 
			
		||||
                :limit-width 9
 | 
			
		||||
                :show_truncated false
 | 
			
		||||
                :wrap false)
 | 
			
		||||
            (label :text "${memory_used_mb} | ${memory_total_mb}mb "
 | 
			
		||||
                :halign "start"
 | 
			
		||||
                :class "sys_text_mem_sub"
 | 
			
		||||
                :limit-width 22
 | 
			
		||||
                :show_truncated false
 | 
			
		||||
                :wrap false)
 | 
			
		||||
            (label :text "${memory_free_mb}mb free"
 | 
			
		||||
                :halign "start"
 | 
			
		||||
                :class "sys_text_mem_sub"
 | 
			
		||||
                :limit-width 22
 | 
			
		||||
                :show_truncated false
 | 
			
		||||
                :wrap false)))))
 | 
			
		||||
 | 
			
		||||
(defwidget cal []
 | 
			
		||||
	(box :class "cal" :orientation "v"
 | 
			
		||||
	(box :class "cal-in"
 | 
			
		||||
	(calendar :class "cal" 
 | 
			
		||||
			  :day calendar_day 
 | 
			
		||||
			  :year calendar_year))))
 | 
			
		||||
 | 
			
		||||
(defwindow calendar
 | 
			
		||||
	:geometry (geometry :x "-20px" 
 | 
			
		||||
						:y "7%" 
 | 
			
		||||
                        :anchor "top right"
 | 
			
		||||
						:width "270px" 
 | 
			
		||||
						:height "60px")
 | 
			
		||||
(cal))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(defwidget audio []
 | 
			
		||||
	(box :class "audio-box" :orientation "v" :space-evenly "false" :vexpand "false" :hexpand "false"
 | 
			
		||||
	(box :halign "v" :space-evenly "false" :hexpand "false" :vexpand "false"
 | 
			
		||||
	(box :class "speaker_icon" :orientation "v")
 | 
			
		||||
	(box :orientation "v" :halign "center" :vexpand "false" :hexpand "false"
 | 
			
		||||
    (label :class "speaker_text" :text "speaker" :valign "center" :halign "left" )
 | 
			
		||||
	(box :class "speaker_bar" :halign "center" :vexpand "false" :hexpand "false"
 | 
			
		||||
	(scale    :value volume_percent
 | 
			
		||||
              :space-evenly "false"
 | 
			
		||||
			  :orientation "h"
 | 
			
		||||
			  :onchange "amixer -D pulse sset Master {}%" 
 | 
			
		||||
              :tooltip "volume on ${volume_percent}%"
 | 
			
		||||
			  :max 100
 | 
			
		||||
			  :min 0))))
 | 
			
		||||
            (label :text "" :class "audio_sep" :halign "center")
 | 
			
		||||
	(box :halign "v" :space-evenly "false" :hexpand "false" :vexpand "false"
 | 
			
		||||
	(box :class "mic_icon" :orientation "v")
 | 
			
		||||
	(box :orientation "v" :halign "center" :vexpand "false" :hexpand "false"
 | 
			
		||||
    (label :class "mic_text" :text "mic" :valign "center" :halign "left" )
 | 
			
		||||
	(box :class "mic_bar" :halign "center" :vexpand "false" :hexpand "false"
 | 
			
		||||
	(scale    :value mic_percent
 | 
			
		||||
              :space-evenly "false"
 | 
			
		||||
			  :orientation "h"
 | 
			
		||||
              :tooltip "mic on ${mic_percent}%"
 | 
			
		||||
			  :onchange "amixer -D pulse sset Capture {}%" 
 | 
			
		||||
			  :max 100
 | 
			
		||||
			  :min 0))))))
 | 
			
		||||
 | 
			
		||||
(defwindow audio_ctl
 | 
			
		||||
	:geometry (geometry :x "-20px" 
 | 
			
		||||
						:y "7%" 
 | 
			
		||||
                        :anchor "top right"
 | 
			
		||||
						:width "280px" 
 | 
			
		||||
						:height "60px")
 | 
			
		||||
(audio))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
(defwindow system
 | 
			
		||||
	:geometry (geometry :x "-20px" 
 | 
			
		||||
						:y "7%" 
 | 
			
		||||
                        :anchor "top right"
 | 
			
		||||
						:width "290px" 
 | 
			
		||||
						:height "120px")
 | 
			
		||||
(system))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;;  Music
 | 
			
		||||
(defwidget music_pop []
 | 
			
		||||
		(box :class "music_pop" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false"
 | 
			
		||||
			(box :class "music_cover_art" :vexpand "false" :hexpand "false" :style "background-image: url('${cover_art}');")
 | 
			
		||||
			(box :orientation "v" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false"
 | 
			
		||||
				(label :halign "center" :class "music" :wrap "true" :limit-width 13 :text song)
 | 
			
		||||
				(label :halign "center" :class "music_artist" :wrap "true" :limit-width 15 :text song_artist)
 | 
			
		||||
				(box :orientation "h" :spacing 15 :halign "center" :space-evenly "false" :vexpand "false" :hexpand "false"
 | 
			
		||||
					(button :class "music_btn_prev" :onclick "~/.config/eww/bar/scripts/music_info --prev" "")
 | 
			
		||||
					(button :class "music_btn_play" :onclick "~/.config/eww/bar/scripts/music_info --toggle" song_status)
 | 
			
		||||
					(button :class "music_btn_next" :onclick "~/.config/eww/bar/scripts/music_info --next" ""))
 | 
			
		||||
				(box :class "music_bar" :halign "center" :vexpand "false" :hexpand "false" :space-evenly "false"
 | 
			
		||||
					(scale :onscroll "mpc -q seek {}" :min 0 :active "true" :max 100 :value current_status)))))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
;;  music
 | 
			
		||||
		(defwindow music_win :stacking "fg" :focusable "false" :screen 1
 | 
			
		||||
			    :geometry (geometry :x "0" :y "7%" :width 428 :height 104 :anchor "top center")
 | 
			
		||||
			     				(music_pop))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										
											BIN
										
									
								
								eww/images/mic.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								eww/images/mic.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 39 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								eww/images/music.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								eww/images/music.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 14 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								eww/images/profile.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								eww/images/profile.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 134 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								eww/images/speaker.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								eww/images/speaker.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 16 KiB  | 
							
								
								
									
										17
									
								
								eww/scripts/battery
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										17
									
								
								eww/scripts/battery
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,17 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
battery() {
 | 
			
		||||
	BAT=`ls /sys/class/power_supply | grep BAT | head -n 1`
 | 
			
		||||
	cat /sys/class/power_supply/${BAT}/capacity
 | 
			
		||||
}
 | 
			
		||||
battery_stat() {
 | 
			
		||||
	BAT=`ls /sys/class/power_supply | grep BAT | head -n 1`
 | 
			
		||||
	cat /sys/class/power_supply/${BAT}/status
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if [[ "$1" == "--bat" ]]; then
 | 
			
		||||
	battery
 | 
			
		||||
elif [[ "$1" == "--bat-st" ]]; then
 | 
			
		||||
	battery_stat
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										15
									
								
								eww/scripts/mem-ad
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										15
									
								
								eww/scripts/mem-ad
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,15 @@
 | 
			
		|||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
total="$(free -m | grep Mem: | awk '{ print $2 }')"
 | 
			
		||||
used="$(free -m | grep Mem: | awk '{ print $3 }')"
 | 
			
		||||
 | 
			
		||||
free=$(expr $total - $used)
 | 
			
		||||
 | 
			
		||||
if [ "$1" = "total" ]; then
 | 
			
		||||
    echo $total
 | 
			
		||||
elif [ "$1" = "used" ]; then
 | 
			
		||||
    echo $used
 | 
			
		||||
elif [ "$1" = "free" ]; then
 | 
			
		||||
    echo $free
 | 
			
		||||
fi
 | 
			
		||||
							
								
								
									
										3
									
								
								eww/scripts/memory
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										3
									
								
								eww/scripts/memory
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,3 @@
 | 
			
		|||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
printf "%.0f\n" $(free -m | grep Mem | awk '{print ($3/$2)*100}')
 | 
			
		||||
							
								
								
									
										98
									
								
								eww/scripts/music_info
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										98
									
								
								eww/scripts/music_info
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,98 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
# scripts by adi1090x
 | 
			
		||||
 | 
			
		||||
## Get data
 | 
			
		||||
STATUS="$(mpc status)"
 | 
			
		||||
COVER="/tmp/.music_cover.png"
 | 
			
		||||
MUSIC_DIR="$HOME/Music"
 | 
			
		||||
 | 
			
		||||
## Get status
 | 
			
		||||
get_status() {
 | 
			
		||||
	if [[ $STATUS == *"[playing]"* ]]; then
 | 
			
		||||
		echo ""
 | 
			
		||||
	else
 | 
			
		||||
		echo "奈"
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
## Get song
 | 
			
		||||
get_song() {
 | 
			
		||||
	song=`mpc -f %title% current`
 | 
			
		||||
	if [[ -z "$song" ]]; then
 | 
			
		||||
		echo "Offline"
 | 
			
		||||
	else
 | 
			
		||||
		echo "$song"
 | 
			
		||||
	fi	
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
## Get artist
 | 
			
		||||
get_artist() {
 | 
			
		||||
	artist=`mpc -f %artist% current`
 | 
			
		||||
	if [[ -z "$artist" ]]; then
 | 
			
		||||
		echo ""
 | 
			
		||||
	else
 | 
			
		||||
		echo "$artist"
 | 
			
		||||
	fi	
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
## Get time
 | 
			
		||||
get_time() {
 | 
			
		||||
	time=`mpc status | grep "%)" | awk '{print $4}' | tr -d '(%)'`
 | 
			
		||||
	if [[ -z "$time" ]]; then
 | 
			
		||||
		echo "0"
 | 
			
		||||
	else
 | 
			
		||||
		echo "$time"
 | 
			
		||||
	fi	
 | 
			
		||||
}
 | 
			
		||||
get_ctime() {
 | 
			
		||||
	ctime=`mpc status | grep "#" | awk '{print $3}' | sed 's|/.*||g'`
 | 
			
		||||
	if [[ -z "$ctime" ]]; then
 | 
			
		||||
		echo "0:00"
 | 
			
		||||
	else
 | 
			
		||||
		echo "$ctime"
 | 
			
		||||
	fi	
 | 
			
		||||
}
 | 
			
		||||
get_ttime() {
 | 
			
		||||
	ttime=`mpc -f %time% current`
 | 
			
		||||
	if [[ -z "$ttime" ]]; then
 | 
			
		||||
		echo "0:00"
 | 
			
		||||
	else
 | 
			
		||||
		echo "$ttime"
 | 
			
		||||
	fi	
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
## Get cover
 | 
			
		||||
get_cover() {
 | 
			
		||||
	ffmpeg -i "${MUSIC_DIR}/$(mpc current -f %file%)" "${COVER}" -y &> /dev/null
 | 
			
		||||
	STATUS=$?
 | 
			
		||||
 | 
			
		||||
	# Check if the file has a embbeded album art
 | 
			
		||||
	if [ "$STATUS" -eq 0 ];then
 | 
			
		||||
		echo "$COVER"
 | 
			
		||||
	else
 | 
			
		||||
		echo "images/music.png"
 | 
			
		||||
	fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
## Execute accordingly
 | 
			
		||||
if [[ "$1" == "--song" ]]; then
 | 
			
		||||
	get_song
 | 
			
		||||
elif [[ "$1" == "--artist" ]]; then
 | 
			
		||||
	get_artist
 | 
			
		||||
elif [[ "$1" == "--status" ]]; then
 | 
			
		||||
	get_status
 | 
			
		||||
elif [[ "$1" == "--time" ]]; then
 | 
			
		||||
	get_time
 | 
			
		||||
elif [[ "$1" == "--ctime" ]]; then
 | 
			
		||||
	get_ctime
 | 
			
		||||
elif [[ "$1" == "--ttime" ]]; then
 | 
			
		||||
	get_ttime
 | 
			
		||||
elif [[ "$1" == "--cover" ]]; then
 | 
			
		||||
	get_cover
 | 
			
		||||
elif [[ "$1" == "--toggle" ]]; then
 | 
			
		||||
	mpc -q toggle
 | 
			
		||||
elif [[ "$1" == "--next" ]]; then
 | 
			
		||||
	{ mpc -q next; get_cover; }
 | 
			
		||||
elif [[ "$1" == "--prev" ]]; then
 | 
			
		||||
	{ mpc -q prev; get_cover; }
 | 
			
		||||
fi
 | 
			
		||||
							
								
								
									
										92
									
								
								eww/scripts/pop
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										92
									
								
								eww/scripts/pop
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,92 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
calendar() {
 | 
			
		||||
LOCK_FILE="$HOME/.cache/eww-calendar.lock"
 | 
			
		||||
EWW_BIN="$HOME/.local/bin/eww/eww"
 | 
			
		||||
 | 
			
		||||
run() {
 | 
			
		||||
    ${EWW_BIN} -c $HOME/.config/eww/bar open calendar
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Open widgets
 | 
			
		||||
if [[ ! -f "$LOCK_FILE" ]]; then
 | 
			
		||||
    ${EWW_BIN} -c $HOME/.config/eww/bar close system music_win audio_ctl
 | 
			
		||||
    touch "$LOCK_FILE"
 | 
			
		||||
    run && echo "ok good!"
 | 
			
		||||
else
 | 
			
		||||
    ${EWW_BIN} -c $HOME/.config/eww/bar close calendar
 | 
			
		||||
    rm "$LOCK_FILE" && echo "closed"
 | 
			
		||||
fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
system() {
 | 
			
		||||
LOCK_FILE_MEM="$HOME/.cache/eww-system.lock"
 | 
			
		||||
EWW_BIN="$HOME/.local/bin/eww/eww"
 | 
			
		||||
 | 
			
		||||
run() {
 | 
			
		||||
    ${EWW_BIN} -c $HOME/.config/eww/bar open system 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Open widgets
 | 
			
		||||
if [[ ! -f "$LOCK_FILE_MEM" ]]; then
 | 
			
		||||
    ${EWW_BIN} -c $HOME/.config/eww/bar close calendar music_win audio_ctl
 | 
			
		||||
    touch "$LOCK_FILE_MEM"
 | 
			
		||||
    run && echo "ok good!"
 | 
			
		||||
else
 | 
			
		||||
    ${EWW_BIN} -c $HOME/.config/eww/bar close system 
 | 
			
		||||
    rm "$LOCK_FILE_MEM" && echo "closed"
 | 
			
		||||
fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
music() {
 | 
			
		||||
LOCK_FILE_SONG="$HOME/.cache/eww-song.lock"
 | 
			
		||||
EWW_BIN="$HOME/.local/bin/eww/eww"
 | 
			
		||||
 | 
			
		||||
run() {
 | 
			
		||||
    ${EWW_BIN} -c $HOME/.config/eww/bar open music_win 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Open widgets
 | 
			
		||||
if [[ ! -f "$LOCK_FILE_SONG" ]]; then
 | 
			
		||||
    ${EWW_BIN} -c $HOME/.config/eww/bar close system calendar
 | 
			
		||||
    touch "$LOCK_FILE_SONG"
 | 
			
		||||
    run && echo "ok good!"
 | 
			
		||||
else
 | 
			
		||||
    ${EWW_BIN} -c $HOME/.config/eww/bar close music_win
 | 
			
		||||
    rm "$LOCK_FILE_SONG" && echo "closed"
 | 
			
		||||
fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
audio() {
 | 
			
		||||
LOCK_FILE_AUDIO="$HOME/.cache/eww-audio.lock"
 | 
			
		||||
EWW_BIN="$HOME/.local/bin/eww/eww"
 | 
			
		||||
 | 
			
		||||
run() {
 | 
			
		||||
    ${EWW_BIN} -c $HOME/.config/eww/bar open audio_ctl 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Open widgets
 | 
			
		||||
if [[ ! -f "$LOCK_FILE_AUDIO" ]]; then
 | 
			
		||||
    ${EWW_BIN} -c $HOME/.config/eww/bar close system calendar music
 | 
			
		||||
    touch "$LOCK_FILE_AUDIO"
 | 
			
		||||
    run && echo "ok good!"
 | 
			
		||||
else
 | 
			
		||||
    ${EWW_BIN} -c $HOME/.config/eww/bar close audio_ctl
 | 
			
		||||
    rm "$LOCK_FILE_AUDIO" && echo "closed"
 | 
			
		||||
fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if [ "$1" = "calendar" ]; then
 | 
			
		||||
calendar
 | 
			
		||||
elif [ "$1" = "system" ]; then
 | 
			
		||||
system
 | 
			
		||||
elif [ "$1" = "music" ]; then
 | 
			
		||||
music
 | 
			
		||||
elif [ "$1" = "audio" ]; then
 | 
			
		||||
audio
 | 
			
		||||
fi
 | 
			
		||||
							
								
								
									
										26
									
								
								eww/scripts/wifi
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										26
									
								
								eww/scripts/wifi
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,26 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
status=$(nmcli g | grep -oE "disconnected")
 | 
			
		||||
essid=$(nmcli c | grep wlp2s0 | awk '{print ($1)}')
 | 
			
		||||
 | 
			
		||||
if [ $status ] ; then
 | 
			
		||||
    icon=""
 | 
			
		||||
    text=""
 | 
			
		||||
    col="#575268"
 | 
			
		||||
 | 
			
		||||
else
 | 
			
		||||
    icon=""
 | 
			
		||||
    text="${essid}"
 | 
			
		||||
    col="#a1bdce"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if [[ "$1" == "--COL" ]]; then
 | 
			
		||||
    echo $col	
 | 
			
		||||
elif [[ "$1" == "--ESSID" ]]; then
 | 
			
		||||
	echo $text
 | 
			
		||||
elif [[ "$1" == "--ICON" ]]; then
 | 
			
		||||
	echo $icon
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										56
									
								
								eww/scripts/workspace
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										56
									
								
								eww/scripts/workspace
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,56 @@
 | 
			
		|||
#!/bin/sh
 | 
			
		||||
workspaces() {
 | 
			
		||||
 | 
			
		||||
ws1="1"
 | 
			
		||||
ws2="2"
 | 
			
		||||
ws3="3"
 | 
			
		||||
ws4="4"
 | 
			
		||||
ws5="5"
 | 
			
		||||
ws6="6"
 | 
			
		||||
 | 
			
		||||
# Unoccupied
 | 
			
		||||
un="0"
 | 
			
		||||
 | 
			
		||||
# check if Occupied
 | 
			
		||||
o1=$(bspc query -D -d .occupied --names | grep "$ws1" )
 | 
			
		||||
o2=$(bspc query -D -d .occupied --names | grep "$ws2" )
 | 
			
		||||
o3=$(bspc query -D -d .occupied --names | grep "$ws3" )
 | 
			
		||||
o4=$(bspc query -D -d .occupied --names | grep "$ws4" )
 | 
			
		||||
o5=$(bspc query -D -d .occupied --names | grep "$ws5" )
 | 
			
		||||
o6=$(bspc query -D -d .occupied --names | grep "$ws6" )
 | 
			
		||||
 | 
			
		||||
# check if Focused
 | 
			
		||||
f1=$(bspc query -D -d focused --names | grep "$ws1" )
 | 
			
		||||
f2=$(bspc query -D -d focused --names | grep "$ws2" )
 | 
			
		||||
f3=$(bspc query -D -d focused --names | grep "$ws3" )
 | 
			
		||||
f4=$(bspc query -D -d focused --names | grep "$ws4" )
 | 
			
		||||
f5=$(bspc query -D -d focused --names | grep "$ws5" )
 | 
			
		||||
f6=$(bspc query -D -d focused --names | grep "$ws6" )
 | 
			
		||||
 | 
			
		||||
ic_1=""
 | 
			
		||||
ic_2=""
 | 
			
		||||
ic_3=""
 | 
			
		||||
ic_4=""
 | 
			
		||||
ic_5=""
 | 
			
		||||
ic_6=""
 | 
			
		||||
if [ $f1 ]; then
 | 
			
		||||
    ic_1=""
 | 
			
		||||
elif [ $f2 ]; then
 | 
			
		||||
    ic_2=""
 | 
			
		||||
elif [ $f3 ]; then
 | 
			
		||||
    ic_3=""
 | 
			
		||||
elif [ $f4 ]; then
 | 
			
		||||
    ic_4=""
 | 
			
		||||
elif [ $f5 ]; then
 | 
			
		||||
    ic_5=""
 | 
			
		||||
elif [ $f6 ]; then
 | 
			
		||||
    ic_6=""
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
echo 	"(box	:class \"works\"	:orientation \"h\" :spacing 5 :space-evenly \"false\" (button :onclick \"bspc desktop -f $ws1\"	:class	\"$un$o1$f1\"	\"$ic_1\") (button :onclick \"bspc desktop -f $ws2\"	:class \"$un$o2$f2\"	 \"$ic_2\") (button :onclick \"bspc desktop -f $ws3\"	:class \"$un$o3$f3\" \"$ic_3\") (button :onclick \"bspc desktop -f $ws4\"	:class \"$un$o4$f4\"	\"$ic_4\") (button :onclick \"bspc desktop -f $ws5\"	:class \"$un$o5$f5\" \"$ic_5\")  (button :onclick \"bspc desktop -f $ws6\"	:class \"$un$o6$f6\" \"$ic_6\"))"
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
workspaces
 | 
			
		||||
bspc subscribe desktop node_transfer | while read -r _ ; do
 | 
			
		||||
workspaces
 | 
			
		||||
done
 | 
			
		||||
| 
						 | 
				
			
			@ -69,16 +69,16 @@ fi
 | 
			
		|||
case ${option} in
 | 
			
		||||
    Password )
 | 
			
		||||
	echo "${SECRET}"
 | 
			
		||||
	ydotool type --key-delay 6ms $(rbw get "${SECRET}")
 | 
			
		||||
	ydotool type --key-delay 2ms $(rbw get "${SECRET}")
 | 
			
		||||
	;;
 | 
			
		||||
    User )
 | 
			
		||||
	echo "$(rbw get --full "${SECRET}" | rg Username: | awk '{print $2}')"
 | 
			
		||||
	ydotool type --key-delay 6ms "$(rbw get --full "${SECRET}" | rg Username: | awk '{print $2}')"
 | 
			
		||||
	ydotool type --key-delay 2ms "$(rbw get --full "${SECRET}" | rg Username: | awk '{print $2}')"
 | 
			
		||||
	;;
 | 
			
		||||
    "User and password" )
 | 
			
		||||
	ydotool type --key-delay 6ms $(rbw get --full "${SECRET}" | rg Username: | awk '{print $2}')
 | 
			
		||||
	ydotool type --key-delay 2ms $(rbw get --full "${SECRET}" | rg Username: | awk '{print $2}')
 | 
			
		||||
	ydotool key 15:1 15:0
 | 
			
		||||
	ydotool type --key-delay 6ms $(rbw get "${SECRET}")
 | 
			
		||||
	ydotool type --key-delay 2ms $(rbw get "${SECRET}")
 | 
			
		||||
	;;
 | 
			
		||||
    "QR-Code" )
 | 
			
		||||
	if [[ $SECRET =~ wifi$ ]]; then
 | 
			
		||||
| 
						 | 
				
			
			@ -93,7 +93,7 @@ case ${option} in
 | 
			
		|||
	fi
 | 
			
		||||
	;;
 | 
			
		||||
    OTP )
 | 
			
		||||
	ydotool type --key-delay 6ms $(rbw code "${SECRET}")
 | 
			
		||||
	ydotool type --key-delay 2ms $(rbw code "${SECRET}")
 | 
			
		||||
	;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -305,7 +305,7 @@
 | 
			
		|||
    any-nix-shell
 | 
			
		||||
    wtype
 | 
			
		||||
    xdotool
 | 
			
		||||
    ydotool
 | 
			
		||||
    #ydotool
 | 
			
		||||
    wmctrl
 | 
			
		||||
    xcape
 | 
			
		||||
    xclip
 | 
			
		||||
| 
						 | 
				
			
			@ -344,6 +344,7 @@
 | 
			
		|||
    protonup
 | 
			
		||||
    nvtop
 | 
			
		||||
    # Dev tools
 | 
			
		||||
    (callPackage /home/chris/.dotfiles/ydotool {})
 | 
			
		||||
    # android-tools
 | 
			
		||||
    nix-index
 | 
			
		||||
    meson
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -324,7 +324,7 @@
 | 
			
		|||
    any-nix-shell
 | 
			
		||||
    wtype
 | 
			
		||||
    xdotool
 | 
			
		||||
    ydotool
 | 
			
		||||
    #ydotool
 | 
			
		||||
    wmctrl
 | 
			
		||||
    xcape
 | 
			
		||||
    xclip
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										29
									
								
								ydotool/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								ydotool/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,29 @@
 | 
			
		|||
{ lib, stdenv, fetchFromGitHub, cmake, scdoc, util-linux }:
 | 
			
		||||
 | 
			
		||||
stdenv.mkDerivation rec {
 | 
			
		||||
  pname = "ydotool";
 | 
			
		||||
  version = "1.0.2";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "ReimuNotMoe";
 | 
			
		||||
    repo = "ydotool";
 | 
			
		||||
    rev = "1d5d227e3a6dc9b70147960e99f17695d9f6804e";
 | 
			
		||||
    sha256 = "sha256-maXXGCqB8dkGO8956hsKSwM4HQdYn6z1jBFENQ9sKcA=";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  strictDeps = true;
 | 
			
		||||
  nativeBuildInputs = [ cmake scdoc ];
 | 
			
		||||
 | 
			
		||||
  postInstall = ''
 | 
			
		||||
    substituteInPlace ${placeholder "out"}/lib/systemd/user/ydotool.service \
 | 
			
		||||
      --replace /usr/bin/kill "${util-linux}/bin/kill"
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
  meta = with lib; {
 | 
			
		||||
    homepage = "https://github.com/ReimuNotMoe/ydotool";
 | 
			
		||||
    description = "Generic Linux command-line automation tool";
 | 
			
		||||
    license = licenses.agpl3Plus;
 | 
			
		||||
    maintainers = with maintainers; [ willibutz kraem ];
 | 
			
		||||
    platforms = with platforms; linux;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue