mirror of
				https://github.com/frebib/dotfiles.git
				synced 2024-06-14 12:57:23 +00:00 
			
		
		
		
	Compare commits
	
		
			280 Commits
		
	
	
		
			surface-do
			...
			2cace82b29
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						
						
							
						
						2cace82b29
	
				 | 
					
					
						|||
| 
						
						
							
						
						39d5f2a370
	
				 | 
					
					
						|||
| 
						
						
							
						
						09f36fa202
	
				 | 
					
					
						|||
| 
						
						
							
						
						3f274253ff
	
				 | 
					
					
						|||
| 
						
						
							
						
						9a04e70e77
	
				 | 
					
					
						|||
| 
						
						
							
						
						e2d1c57792
	
				 | 
					
					
						|||
| 
						
						
							
						
						6c4767b01e
	
				 | 
					
					
						|||
| 
						
						
							
						
						e08fe1b262
	
				 | 
					
					
						|||
| 
						
						
							
						
						9316d74027
	
				 | 
					
					
						|||
| 
						
						
							
						
						521f462141
	
				 | 
					
					
						|||
| 
						
						
							
						
						322adb478a
	
				 | 
					
					
						|||
| 
						
						
							
						
						1272045e9a
	
				 | 
					
					
						|||
| 
						
						
							
						
						7b8191b737
	
				 | 
					
					
						|||
| 
						
						
							
						
						49b5924f14
	
				 | 
					
					
						|||
| 
						
						
							
						
						91ac3d470d
	
				 | 
					
					
						|||
| 
						
						
							
						
						715349d0f4
	
				 | 
					
					
						|||
| 
						
						
							
						
						0bf16821d5
	
				 | 
					
					
						|||
| 
						
						
							
						
						60bf423556
	
				 | 
					
					
						|||
| 
						
						
							
						
						20f48e25b4
	
				 | 
					
					
						|||
| 
						
						
							
						
						35d08af7ce
	
				 | 
					
					
						|||
| 
						
						
							
						
						ec76965c70
	
				 | 
					
					
						|||
| 
						
						
							
						
						8a5408c002
	
				 | 
					
					
						|||
| 
						
						
							
						
						e7b3c5e3e0
	
				 | 
					
					
						|||
| 
						
						
							
						
						eddb464053
	
				 | 
					
					
						|||
| 
						
						
							
						
						30be10a7f4
	
				 | 
					
					
						|||
| 
						
						
							
						
						8e91156b4e
	
				 | 
					
					
						|||
| 
						
						
							
						
						bd1671fcc8
	
				 | 
					
					
						|||
| 
						
						
							
						
						561582734e
	
				 | 
					
					
						|||
| 
						
						
							
						
						c1ff08b878
	
				 | 
					
					
						|||
| 
						
						
							
						
						ce595c81b6
	
				 | 
					
					
						|||
| 
						
						
							
						
						5c105f4851
	
				 | 
					
					
						|||
| 
						
						
							
						
						8e32bc8618
	
				 | 
					
					
						|||
| 
						
						
							
						
						67676df08a
	
				 | 
					
					
						|||
| 
						
						
							
						
						7209ef65f6
	
				 | 
					
					
						|||
| 
						
						
							
						
						2d414258ca
	
				 | 
					
					
						|||
| 
						
						
							
						
						41fff2dd6c
	
				 | 
					
					
						|||
| 
						
						
							
						
						1f6518193e
	
				 | 
					
					
						|||
| 
						
						
							
						
						08373e019a
	
				 | 
					
					
						|||
| 
						
						
							
						
						58e3e31d7d
	
				 | 
					
					
						|||
| 
						
						
							
						
						fa0e057e2e
	
				 | 
					
					
						|||
| 
						
						
							
						
						6943839b3b
	
				 | 
					
					
						|||
| 
						
						
							
						
						b52496bbb3
	
				 | 
					
					
						|||
| 
						
						
							
						
						308eff050e
	
				 | 
					
					
						|||
| 
						
						
							
						
						bae4f0b819
	
				 | 
					
					
						|||
| 
						
						
							
						
						ee9af5eeca
	
				 | 
					
					
						|||
| 
						
						
							
						
						fbb43dfff5
	
				 | 
					
					
						|||
| d407512522 | |||
| 
						
						
							
						
						f67a8e5f80
	
				 | 
					
					
						|||
| 
						
						
							
						
						d1772bc178
	
				 | 
					
					
						|||
| 
						
						
							
						
						7f79cca7bc
	
				 | 
					
					
						|||
| 
						
						
							
						
						928ef584e6
	
				 | 
					
					
						|||
| 
						
						
							
						
						b58469c1ea
	
				 | 
					
					
						|||
| 
						
						
							
						
						5d55a2eeba
	
				 | 
					
					
						|||
| 
						
						
							
						
						2e5b5d18fe
	
				 | 
					
					
						|||
| 
						
						
							
						
						6e28f1d0c4
	
				 | 
					
					
						|||
| 
						
						
							
						
						3958c544a3
	
				 | 
					
					
						|||
| 
						
						
							
						
						45680df7c5
	
				 | 
					
					
						|||
| 
						
						
							
						
						e6bf7b181f
	
				 | 
					
					
						|||
| 
						
						
							
						
						cd5cb41179
	
				 | 
					
					
						|||
| 
						
						
							
						
						40946fed7c
	
				 | 
					
					
						|||
| 
						
						
							
						
						54bc7448b9
	
				 | 
					
					
						|||
| 
						
						
							
						
						937e0cf2dc
	
				 | 
					
					
						|||
| 
						
						
							
						
						e017568b41
	
				 | 
					
					
						|||
| 
						
						
							
						
						e43b6af0ad
	
				 | 
					
					
						|||
| 
						
						
							
						
						fa79deeb05
	
				 | 
					
					
						|||
| 
						
						
							
						
						90fc09e1a9
	
				 | 
					
					
						|||
| 
						
						
							
						
						7017703cab
	
				 | 
					
					
						|||
| 
						
						
							
						
						4a646b6573
	
				 | 
					
					
						|||
| 
						
						
							
						
						37ad234319
	
				 | 
					
					
						|||
| 
						
						
							
						
						5547ec844c
	
				 | 
					
					
						|||
| 
						
						
							
						
						934944d248
	
				 | 
					
					
						|||
| 
						
						
							
						
						ec0b562960
	
				 | 
					
					
						|||
| 
						
						
							
						
						028c549ea9
	
				 | 
					
					
						|||
| 
						
						
							
						
						96902aee6b
	
				 | 
					
					
						|||
| 
						
						
							
						
						c495293fb7
	
				 | 
					
					
						|||
| 
						
						
							
						
						9aeeee58d0
	
				 | 
					
					
						|||
| 
						
						
							
						
						8e86599372
	
				 | 
					
					
						|||
| 
						
						
							
						
						4b52c21ac9
	
				 | 
					
					
						|||
| 
						
						
							
						
						d985ba7b12
	
				 | 
					
					
						|||
| 
						
						
							
						
						fb68f77812
	
				 | 
					
					
						|||
| 
						
						
							
						
						7deef0edfc
	
				 | 
					
					
						|||
| 
						
						
							
						
						82d7d0409f
	
				 | 
					
					
						|||
| 
						
						
							
						
						133af4caf1
	
				 | 
					
					
						|||
| 
						
						
							
						
						b59f33a1f5
	
				 | 
					
					
						|||
| 
						
						
							
						
						6dc01ac2bd
	
				 | 
					
					
						|||
| 
						
						
							
						
						ce2d5e267a
	
				 | 
					
					
						|||
| 
						
						
							
						
						874e177b8f
	
				 | 
					
					
						|||
| 
						
						
							
						
						7b193b1b99
	
				 | 
					
					
						|||
| 
						
						
							
						
						16c629fc70
	
				 | 
					
					
						|||
| 
						
						
							
						
						02041c3b27
	
				 | 
					
					
						|||
| 
						
						
							
						
						18aa625eca
	
				 | 
					
					
						|||
| 
						
						
							
						
						a45ef24aff
	
				 | 
					
					
						|||
| 
						
						
							
						
						d741e2e6fa
	
				 | 
					
					
						|||
| 
						
						
							
						
						080e92b740
	
				 | 
					
					
						|||
| 
						
						
							
						
						9e9ba8a76f
	
				 | 
					
					
						|||
| 
						
						
							
						
						f2c67c19aa
	
				 | 
					
					
						|||
| 
						
						
							
						
						8ceb3434a0
	
				 | 
					
					
						|||
| 
						
						
							
						
						1929a94ef4
	
				 | 
					
					
						|||
| 
						
						
							
						
						ccce866b55
	
				 | 
					
					
						|||
| 
						
						
							
						
						bbfb8fff3f
	
				 | 
					
					
						|||
| 
						
						
							
						
						ff0d449fa5
	
				 | 
					
					
						|||
| 
						
						
							
						
						936e8828c8
	
				 | 
					
					
						|||
| 
						
						
							
						
						fb480c73c5
	
				 | 
					
					
						|||
| 
						
						
							
						
						bc89989bbb
	
				 | 
					
					
						|||
| 
						
						
							
						
						2770fefefd
	
				 | 
					
					
						|||
| 
						
						
							
						
						0256369cd6
	
				 | 
					
					
						|||
| 
						
						
							
						
						1fdb93e356
	
				 | 
					
					
						|||
| 
						
						
							
						
						f379b758c9
	
				 | 
					
					
						|||
| 
						
						
							
						
						93a2899c7b
	
				 | 
					
					
						|||
| 
						
						
							
						
						df03d9062e
	
				 | 
					
					
						|||
| 
						
						
							
						
						ddf5a1d387
	
				 | 
					
					
						|||
| 
						
						
							
						
						ba8dc84993
	
				 | 
					
					
						|||
| 
						
						
							
						
						757bd4c26d
	
				 | 
					
					
						|||
| 
						
						
							
						
						d96ffc16ff
	
				 | 
					
					
						|||
| 
						
						
							
						
						2598df0f17
	
				 | 
					
					
						|||
| 
						
						
							
						
						d251f3e23a
	
				 | 
					
					
						|||
| 
						
						
							
						
						0d5e1a92c9
	
				 | 
					
					
						|||
| 
						
						
							
						
						ed0e66dede
	
				 | 
					
					
						|||
| 
						
						
							
						
						f695136338
	
				 | 
					
					
						|||
| 
						
						
							
						
						4fd3c35d52
	
				 | 
					
					
						|||
| 
						
						
							
						
						4335eb18c7
	
				 | 
					
					
						|||
| 
						
						
							
						
						27991a9460
	
				 | 
					
					
						|||
| 
						
						
							
						
						d54737ee28
	
				 | 
					
					
						|||
| 
						
						
							
						
						30fd0b3024
	
				 | 
					
					
						|||
| 
						
						
							
						
						7a2e8b3f1e
	
				 | 
					
					
						|||
| 
						
						
							
						
						37d044aab0
	
				 | 
					
					
						|||
| 
						
						
							
						
						6d0df3bc65
	
				 | 
					
					
						|||
| 
						
						
							
						
						dc6fab9f8a
	
				 | 
					
					
						|||
| 
						
						
							
						
						a7f104e942
	
				 | 
					
					
						|||
| 
						
						
							
						
						5759872bbd
	
				 | 
					
					
						|||
| 
						
						
							
						
						10ffcecb31
	
				 | 
					
					
						|||
| 
						
						
							
						
						4c634c402a
	
				 | 
					
					
						|||
| 
						
						
							
						
						00a83da619
	
				 | 
					
					
						|||
| 
						
						
							
						
						1eae7f9969
	
				 | 
					
					
						|||
| 
						
						
							
						
						4646ddae36
	
				 | 
					
					
						|||
| 
						
						
							
						
						ae5521f516
	
				 | 
					
					
						|||
| 
						
						
							
						
						e2816d2837
	
				 | 
					
					
						|||
| 
						
						
							
						
						ae35df326d
	
				 | 
					
					
						|||
| 
						
						
							
						
						90a5d29178
	
				 | 
					
					
						|||
| 
						
						
							
						
						616edc0cc7
	
				 | 
					
					
						|||
| 
						
						
							
						
						3bb6de1dd9
	
				 | 
					
					
						|||
| 
						
						
							
						
						7b418c2abc
	
				 | 
					
					
						|||
| 
						
						
							
						
						0fc023db91
	
				 | 
					
					
						|||
| 
						
						
							
						
						e17ebf0201
	
				 | 
					
					
						|||
| 
						
						
							
						
						8f969737ed
	
				 | 
					
					
						|||
| 
						
						
							
						
						8287acf3a7
	
				 | 
					
					
						|||
| 
						
						
							
						
						2050b1a5b7
	
				 | 
					
					
						|||
| 
						
						
							
						
						d6289c47ba
	
				 | 
					
					
						|||
| 
						
						
							
						
						6c19740e21
	
				 | 
					
					
						|||
| 
						
						
							
						
						8b838aa771
	
				 | 
					
					
						|||
| 
						
						
							
						
						af65ab019e
	
				 | 
					
					
						|||
| 
						
						
							
						
						a11dac4d00
	
				 | 
					
					
						|||
| 
						
						
							
						
						90750c0ede
	
				 | 
					
					
						|||
| 
						
						
							
						
						18208e2362
	
				 | 
					
					
						|||
| 
						
						
							
						
						ad713cd680
	
				 | 
					
					
						|||
| 
						
						
							
						
						b4e3cdeff3
	
				 | 
					
					
						|||
| 
						
						
							
						
						c6bd6a83c6
	
				 | 
					
					
						|||
| 
						
						
							
						
						f247802bda
	
				 | 
					
					
						|||
| 
						
						
							
						
						abb66a954b
	
				 | 
					
					
						|||
| 
						
						
							
						
						ed9d50d68e
	
				 | 
					
					
						|||
| 
						 | 
					
						
						
							
						
						89b9222b7c
	
				 | 
					
					
						||
| 
						 | 
					
						
						
							
						
						ee6b7333fb
	
				 | 
					
					
						||
| 
						 | 
					
						
						
							
						
						2ac1111b72
	
				 | 
					
					
						||
| 
						
						
							
						
						83f8566faf
	
				 | 
					
					
						|||
| 
						
						
							
						
						59ac129a85
	
				 | 
					
					
						|||
| 
						
						
							
						
						809f27b576
	
				 | 
					
					
						|||
| 
						
						
							
						
						c6f653f88c
	
				 | 
					
					
						|||
| 
						
						
							
						
						48b116e2a6
	
				 | 
					
					
						|||
| 
						
						
							
						
						8bd77f63cd
	
				 | 
					
					
						|||
| 
						
						
							
						
						e8a3b91052
	
				 | 
					
					
						|||
| 
						
						
							
						
						ef4e16fe5b
	
				 | 
					
					
						|||
| 
						
						
							
						
						43a656ee96
	
				 | 
					
					
						|||
| 
						
						
							
						
						51c91b4803
	
				 | 
					
					
						|||
| 
						
						
							
						
						1a6c9dedc0
	
				 | 
					
					
						|||
| 
						
						
							
						
						820c355722
	
				 | 
					
					
						|||
| 
						
						
							
						
						868454c26a
	
				 | 
					
					
						|||
| 
						
						
							
						
						5185349b8c
	
				 | 
					
					
						|||
| 
						
						
							
						
						bedead5cda
	
				 | 
					
					
						|||
| 
						
						
							
						
						e140647ba7
	
				 | 
					
					
						|||
| 
						
						
							
						
						acf3e57c74
	
				 | 
					
					
						|||
| 
						
						
							
						
						8f089165ab
	
				 | 
					
					
						|||
| 
						
						
							
						
						add6050146
	
				 | 
					
					
						|||
| 
						
						
							
						
						4cb02a72da
	
				 | 
					
					
						|||
| 
						
						
							
						
						861ee18775
	
				 | 
					
					
						|||
| 
						
						
							
						
						30cab7d90b
	
				 | 
					
					
						|||
| 
						
						
							
						
						56229dea13
	
				 | 
					
					
						|||
| 
						
						
							
						
						3471454e8e
	
				 | 
					
					
						|||
| 
						
						
							
						
						fc8bfb220b
	
				 | 
					
					
						|||
| 
						
						
							
						
						abe83d85c4
	
				 | 
					
					
						|||
| 
						
						
							
						
						cfe95eb879
	
				 | 
					
					
						|||
| 
						
						
							
						
						c03170a4ef
	
				 | 
					
					
						|||
| 
						
						
							
						
						60b52ffc29
	
				 | 
					
					
						|||
| 
						
						
							
						
						944d64a5e6
	
				 | 
					
					
						|||
| 
						
						
							
						
						01abda43c3
	
				 | 
					
					
						|||
| 
						
						
							
						
						1894a6f965
	
				 | 
					
					
						|||
| 
						
						
							
						
						990b9ffb30
	
				 | 
					
					
						|||
| 
						
						
							
						
						927fdb5660
	
				 | 
					
					
						|||
| 
						
						
							
						
						2c3d0edc28
	
				 | 
					
					
						|||
| 
						
						
							
						
						6e7f2f1074
	
				 | 
					
					
						|||
| 
						
						
							
						
						e0db65a9d8
	
				 | 
					
					
						|||
| 
						
						
							
						
						216737535e
	
				 | 
					
					
						|||
| 
						
						
							
						
						c5cd1cf36e
	
				 | 
					
					
						|||
| 
						
						
							
						
						863de0d0ef
	
				 | 
					
					
						|||
| 
						
						
							
						
						ebe00b192a
	
				 | 
					
					
						|||
| 
						
						
							
						
						0e4b0aee25
	
				 | 
					
					
						|||
| 
						
						
							
						
						8b1f6aaa01
	
				 | 
					
					
						|||
| 
						
						
							
						
						12a46db7dd
	
				 | 
					
					
						|||
| 
						
						
							
						
						e4bc126708
	
				 | 
					
					
						|||
| 
						
						
							
						
						a619593815
	
				 | 
					
					
						|||
| 
						
						
							
						
						51edd3ddf7
	
				 | 
					
					
						|||
| 
						
						
							
						
						f17a34c65a
	
				 | 
					
					
						|||
| 
						
						
							
						
						3dbc78c03b
	
				 | 
					
					
						|||
| 
						
						
							
						
						f37cf0f49b
	
				 | 
					
					
						|||
| 
						
						
							
						
						abed398b07
	
				 | 
					
					
						|||
| 
						
						
							
						
						d0fee7b959
	
				 | 
					
					
						|||
| 
						
						
							
						
						f1371b67db
	
				 | 
					
					
						|||
| 
						
						
							
						
						eb88ac1c04
	
				 | 
					
					
						|||
| 
						
						
							
						
						38f0f8ccec
	
				 | 
					
					
						|||
| 
						
						
							
						
						289e31b65a
	
				 | 
					
					
						|||
| 
						
						
							
						
						700dfdda6f
	
				 | 
					
					
						|||
| 
						
						
							
						
						a3c0e5d7de
	
				 | 
					
					
						|||
| 
						
						
							
						
						580b9e33b5
	
				 | 
					
					
						|||
| 
						
						
							
						
						bbf329eb70
	
				 | 
					
					
						|||
| 
						
						
							
						
						09be200c9c
	
				 | 
					
					
						|||
| 
						
						
							
						
						650ff6e0c1
	
				 | 
					
					
						|||
| 
						
						
							
						
						89e325c503
	
				 | 
					
					
						|||
| 
						
						
							
						
						7b1bd4f808
	
				 | 
					
					
						|||
| 
						
						
							
						
						3b85967614
	
				 | 
					
					
						|||
| 
						
						
							
						
						eeb90bd2e3
	
				 | 
					
					
						|||
| 
						
						
							
						
						972ee067ab
	
				 | 
					
					
						|||
| 
						
						
							
						
						5d3eb76075
	
				 | 
					
					
						|||
| 
						
						
							
						
						7f8c8eccb3
	
				 | 
					
					
						|||
| 
						
						
							
						
						815da41076
	
				 | 
					
					
						|||
| 
						
						
							
						
						66e0bf911b
	
				 | 
					
					
						|||
| 
						
						
							
						
						2562a50f89
	
				 | 
					
					
						|||
| 
						
						
							
						
						5c705fde91
	
				 | 
					
					
						|||
| 
						
						
							
						
						f0e6807814
	
				 | 
					
					
						|||
| 
						
						
							
						
						dbbb533850
	
				 | 
					
					
						|||
| 
						
						
							
						
						a057c840cd
	
				 | 
					
					
						|||
| 
						
						
							
						
						c89a3829dc
	
				 | 
					
					
						|||
| 
						
						
							
						
						f0508fe73e
	
				 | 
					
					
						|||
| 
						
						
							
						
						59a138c605
	
				 | 
					
					
						|||
| 
						
						
							
						
						e4e62ae40d
	
				 | 
					
					
						|||
| 
						
						
							
						
						28dda3e9b0
	
				 | 
					
					
						|||
| 
						
						
							
						
						c260a480aa
	
				 | 
					
					
						|||
| 94c3cb5741 | |||
| 
						
						
							
						
						3bcb38f9f2
	
				 | 
					
					
						|||
| 
						
						
							
						
						d7f1a2193d
	
				 | 
					
					
						|||
| 
						
						
							
						
						1418a51626
	
				 | 
					
					
						|||
| 7597a300f4 | |||
| 
						
						
							
						
						f1a353aed5
	
				 | 
					
					
						|||
| 
						
						
							
						
						2b2e963c2a
	
				 | 
					
					
						|||
| 
						
						
							
						
						b7ef22f4f6
	
				 | 
					
					
						|||
| 
						
						
							
						
						9b89946ea4
	
				 | 
					
					
						|||
| 
						
						
							
						
						e854d2b1d5
	
				 | 
					
					
						|||
| 
						
						
							
						
						b59607c147
	
				 | 
					
					
						|||
| 
						
						
							
						
						24cf4ac494
	
				 | 
					
					
						|||
| 
						
						
							
						
						fc4560b31f
	
				 | 
					
					
						|||
| 
						
						
							
						
						c164577bd7
	
				 | 
					
					
						|||
| 
						
						
							
						
						2b631fb2cd
	
				 | 
					
					
						|||
| 
						
						
							
						
						40c3f61819
	
				 | 
					
					
						|||
| 
						
						
							
						
						c0420a7022
	
				 | 
					
					
						|||
| 
						
						
							
						
						1c297d3a77
	
				 | 
					
					
						|||
| ae1acb194c | |||
| 
						
						
							
						
						73ecd1f584
	
				 | 
					
					
						|||
| 
						
						
							
						
						ff4bdb5ec2
	
				 | 
					
					
						|||
| 
						
						
							
						
						4579473479
	
				 | 
					
					
						|||
| 
						
						
							
						
						fff7fa1452
	
				 | 
					
					
						|||
| 
						
						
							
						
						1d590fe8c6
	
				 | 
					
					
						|||
| 
						
						
							
						
						223034a3ea
	
				 | 
					
					
						|||
| 
						
						
							
						
						5bb7c53519
	
				 | 
					
					
						|||
| 
						
						
							
						
						8edf74dc4f
	
				 | 
					
					
						|||
| 
						
						
							
						
						366873ea47
	
				 | 
					
					
						|||
| 
						
						
							
						
						e09e7105dd
	
				 | 
					
					
						|||
| 
						
						
							
						
						b512bace44
	
				 | 
					
					
						|||
| 
						
						
							
						
						69d884ec5f
	
				 | 
					
					
						|||
| 
						
						
							
						
						3f16439695
	
				 | 
					
					
						|||
| 
						
						
							
						
						8edd378b66
	
				 | 
					
					
						|||
| 
						
						
							
						
						1bc7dd7845
	
				 | 
					
					
						|||
| 
						
						
							
						
						ebc435ad33
	
				 | 
					
					
						
							
								
								
									
										96
									
								
								.Xresources
									
									
									
									
									
								
							
							
						
						
									
										96
									
								
								.Xresources
									
									
									
									
									
								
							@@ -1,96 +0,0 @@
 | 
				
			|||||||
!!=============================================================================
 | 
					 | 
				
			||||||
!! RXVT-unicode setting
 | 
					 | 
				
			||||||
!!=============================================================================
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
urxvt.depth:                32
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
urxvt.internalBorder:       4
 | 
					 | 
				
			||||||
urxvt.blurRadius:           25
 | 
					 | 
				
			||||||
urxvt.scrollBar:            false
 | 
					 | 
				
			||||||
urxvt.saveLines:            10000
 | 
					 | 
				
			||||||
urxvt.preeditType:          Root
 | 
					 | 
				
			||||||
urxvt.jumpScroll:           false
 | 
					 | 
				
			||||||
urxvt.altSendsEscape:       true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
xterm.metaSendsEscape:      true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
!Set TERM
 | 
					 | 
				
			||||||
urxvt.termName:             xterm-256color
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Xft.dpi:                    96
 | 
					 | 
				
			||||||
Xft.antialias:              true
 | 
					 | 
				
			||||||
Xft.rgba:                   rgb
 | 
					 | 
				
			||||||
Xft.autohint:               false
 | 
					 | 
				
			||||||
Xft.hinting:                true
 | 
					 | 
				
			||||||
Xft.hintstyle:              hintfull
 | 
					 | 
				
			||||||
urxvt*font:                 xft:Sauce Code Pro:style=Regular:size=9
 | 
					 | 
				
			||||||
urxvt*imFont:               xft:Sauce Code Pro:style=Regular:size=9
 | 
					 | 
				
			||||||
urxvt*boldFont:             xft:Sauce Code Pro:style=Bold:size=9
 | 
					 | 
				
			||||||
urxvt*italicFont:           xft:Sauce Code Pro:style=Italic:size=9
 | 
					 | 
				
			||||||
urxvt*boldItalicFont:       xft:Sauce Code Pro:style=Bold,Italic:size=9
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
! clickable Url and copy paste keys
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
urxvt.iso14755:             false
 | 
					 | 
				
			||||||
urxvt.iso14755_52:          false
 | 
					 | 
				
			||||||
urxvt.perl-ext-common:      default,clipboard,vtwheel,font-size
 | 
					 | 
				
			||||||
urxvt.keysym.Shift-Control-C:   perl:clipboard:copy
 | 
					 | 
				
			||||||
urxvt.keysym.Shift-Control-V:   perl:clipboard:paste
 | 
					 | 
				
			||||||
urxvt.url-launcher:         /usr/bin/chromium
 | 
					 | 
				
			||||||
urxvt.matcher.button:       1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
urxvt.keysym.C-Up:     font-size:increase
 | 
					 | 
				
			||||||
urxvt.keysym.C-Down:   font-size:decrease
 | 
					 | 
				
			||||||
urxvt.keysym.C-S-Up:   font-size:incglobal
 | 
					 | 
				
			||||||
urxvt.keysym.C-S-Down: font-size:decglobal
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Xft.lcdfilter:              lcddefault
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
! special
 | 
					 | 
				
			||||||
*.foreground:               #ECEFF1
 | 
					 | 
				
			||||||
*.background:               #002B36
 | 
					 | 
				
			||||||
!*.cursorColor:              #ECEFF1
 | 
					 | 
				
			||||||
*.cursorColor:              #5294E2
 | 
					 | 
				
			||||||
*.highlightColor:           #5294E2
 | 
					 | 
				
			||||||
urxvt.background:           [95]#383C4A
 | 
					 | 
				
			||||||
urxvt.scrollColor:          #767B87
 | 
					 | 
				
			||||||
urxvt*dynamicColors:        on
 | 
					 | 
				
			||||||
urxvt*highlightSelection:   true
 | 
					 | 
				
			||||||
urxvt*colorMode:            on
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
! black
 | 
					 | 
				
			||||||
*.color0:       #333638
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
!white
 | 
					 | 
				
			||||||
*.color15:      #eceff1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
! gray
 | 
					 | 
				
			||||||
*.color7:       #8b9396
 | 
					 | 
				
			||||||
*.color8:       #475760
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
! red
 | 
					 | 
				
			||||||
*.color1:       #ff3f00
 | 
					 | 
				
			||||||
*.color9:       #ef5345
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
! green
 | 
					 | 
				
			||||||
*.color2:       #8bc34a
 | 
					 | 
				
			||||||
*.color10:      #9ccc65
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
! yellow
 | 
					 | 
				
			||||||
*.color3:       #ffc107
 | 
					 | 
				
			||||||
*.color11:      #ffa000
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
! blue
 | 
					 | 
				
			||||||
*.color4:       #0266f4
 | 
					 | 
				
			||||||
*.color12:      #3f86da
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
! magenta
 | 
					 | 
				
			||||||
*.color5:       #cc17cc
 | 
					 | 
				
			||||||
*.color13:      #a56ecC
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
! cyan
 | 
					 | 
				
			||||||
*.color6:       #10aeba
 | 
					 | 
				
			||||||
*.color14:      #5ddae2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -1,93 +0,0 @@
 | 
				
			|||||||
# Shadow
 | 
					 | 
				
			||||||
shadow = true;					# Enabled client-side shadows on windows.
 | 
					 | 
				
			||||||
no-dock-shadow = true;			# Avoid drawing shadows on dock/panel windows.
 | 
					 | 
				
			||||||
no-dnd-shadow = false;			# Don't draw shadows on DND windows.
 | 
					 | 
				
			||||||
clear-shadow = true;			# Zero the part of the shadow's mask behind the
 | 
					 | 
				
			||||||
								# window. Fix some weirdness with ARGB windows.
 | 
					 | 
				
			||||||
shadow-radius = 12;				# The blur radius for shadows. (default 12)
 | 
					 | 
				
			||||||
shadow-offset-x = -16;	    	# The left offset for shadows. (default -15)
 | 
					 | 
				
			||||||
shadow-offset-y = -16;			# The top offset for shadows. (default -15)
 | 
					 | 
				
			||||||
shadow-opacity = 0.65;			# The translucency for shadows. (default .75)
 | 
					 | 
				
			||||||
# shadow-red = 0.0;				# Red color value of shadow. (0.0 - 1.0, defaults to 0)
 | 
					 | 
				
			||||||
# shadow-green = 0.0;			# Green color value of shadow. (0.0 - 1.0, defaults to 0)
 | 
					 | 
				
			||||||
# shadow-blue = 0.0;			# Blue color value of shadow. (0.0 - 1.0, defaults to 0)
 | 
					 | 
				
			||||||
shadow-exclude = [ "class_g = 'slop'" ];	# Exclude conditions for shadows.
 | 
					 | 
				
			||||||
shadow-ignore-shaped = false;	# Avoid drawing shadow on all shaped windows
 | 
					 | 
				
			||||||
								# (see also: --detect-rounded-corners)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Opacity
 | 
					 | 
				
			||||||
menu-opacity = 0.9;				# The opacity for menus. (default 1.0)
 | 
					 | 
				
			||||||
inactive-opacity = 0.8;			# Default opacity of inactive windows. (0.0 - 1.0)
 | 
					 | 
				
			||||||
active-opacity = 1.0;			# Default opacity for active windows. (0.0 - 1.0)
 | 
					 | 
				
			||||||
frame-opacity = 1.0;			# Opacity of window titlebars and borders. (0.1 - 1.0)
 | 
					 | 
				
			||||||
inactive-opacity-override = true;	# Let inactive opacity set by 'inactive-opacity' overrides
 | 
					 | 
				
			||||||
								# value of _NET_WM_OPACITY. Bad choice.
 | 
					 | 
				
			||||||
opacity-rule = [
 | 
					 | 
				
			||||||
  "0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
 | 
					 | 
				
			||||||
];
 | 
					 | 
				
			||||||
alpha-step = 0.06;				# XRender backend: Step size for alpha pictures. Increasing
 | 
					 | 
				
			||||||
								# it may result in less X resource usage,
 | 
					 | 
				
			||||||
								# Yet f ading may look bad.
 | 
					 | 
				
			||||||
# inactive-dim = 0.2;			# Dim inactive windows. (0.0 - 1.0)
 | 
					 | 
				
			||||||
#inactive-dim-fixed = true;		# Do not let dimness adjust based on window opacity.
 | 
					 | 
				
			||||||
inactive-opacity-exclude = [ "window_type = 'dock'", "window_type = 'desktop'" ];
 | 
					 | 
				
			||||||
blur-background = true;		    # Blur background of transparent windows.
 | 
					 | 
				
			||||||
blur-background-exclude  = [ "class_g = 'Peek'", "class_g = 'Onboard'", "class_g = 'slop'" ];
 | 
					 | 
				
			||||||
blur-background-frame = false;	# Blur background of opaque windows with transparent
 | 
					 | 
				
			||||||
								# frames as well.
 | 
					 | 
				
			||||||
blur-background-fixed = true;	# Do not let blur radius adjust based on window opacity.
 | 
					 | 
				
			||||||
								# Exclude conditions for background blur.
 | 
					 | 
				
			||||||
blur-kern = "5,5,0.894839,0.932912,0.945959,0.932912,0.894839,0.932912,0.972604,0.986207,0.972604,0.932912,0.945959,0.986207,0.986207,0.945959,0.932912,0.972604,0.986207,0.972604,0.932912,0.894839,0.932912,0.945959,0.932912,0.894839"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# python compton-convgen.py --dump-compton gaussian 9 -f=sigma=10
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Fading
 | 
					 | 
				
			||||||
fading = true;					# Fade windows during opacity changes.
 | 
					 | 
				
			||||||
# fade-delta = 16;				# The time between steps in a fade in milliseconds. (default 10).
 | 
					 | 
				
			||||||
fade-in-step = 0.025;			# Opacity change between steps while fading in. (default 0.028).
 | 
					 | 
				
			||||||
fade-out-step = 0.02;			# Opacity change between steps while fading out. (default 0.03).
 | 
					 | 
				
			||||||
# no-fading-openclose = true;	# Avoid fade windows in/out when opening/closing.
 | 
					 | 
				
			||||||
# fade-exclude = [ ];				# Exclude conditions for fading.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Other
 | 
					 | 
				
			||||||
backend = "glx"					# Backend to use: "xrender" or "glx". GLX backend is typically
 | 
					 | 
				
			||||||
								# much faster but depends on a sane driver.
 | 
					 | 
				
			||||||
mark-wmwin-focused = true;		# Try to detect WM windows and mark them as active.
 | 
					 | 
				
			||||||
mark-ovredir-focused = true;	# Mark all non-WM but override-redirect windows active (e.g. menus).
 | 
					 | 
				
			||||||
use-ewmh-active-win = true;		# Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused
 | 
					 | 
				
			||||||
								# instead of using FocusIn/Out events. Usually more reliable but
 | 
					 | 
				
			||||||
								# depends on a EWMH-compliant WM.
 | 
					 | 
				
			||||||
detect-rounded-corners = true;	# Detect rounded corners and treat them as rectangular when --shadow-ignore-shaped is on.
 | 
					 | 
				
			||||||
detect-client-opacity = true;	# Detect _NET_WM_OPACITY on client windows, useful for window
 | 
					 | 
				
			||||||
								# managers not passing _NET_WM_OPACITY of client windows to frame windows.
 | 
					 | 
				
			||||||
refresh-rate = 0;				# For --sw-opti: Specify refresh rate of the screen. 0 for auto.
 | 
					 | 
				
			||||||
vsync = "none";					# "none", "drm", "opengl", "opengl-oml", "opengl-swc", "opengl-mswc"
 | 
					 | 
				
			||||||
								# See man page for more details.
 | 
					 | 
				
			||||||
dbe = false;					# Enable DBE painting mode. Rarely needed.
 | 
					 | 
				
			||||||
paint-on-overlay = true;		# Painting on X Composite overlay window. Recommended.
 | 
					 | 
				
			||||||
sw-opti = false;				# Limit compton to repaint at most once every 1 / refresh_rate.
 | 
					 | 
				
			||||||
								# Incompatible with certain VSync methods.
 | 
					 | 
				
			||||||
unredir-if-possible = false;	# Unredirect all windows if a full-screen opaque window is
 | 
					 | 
				
			||||||
								# detected, to maximize performance for full-screen windows.
 | 
					 | 
				
			||||||
focus-exclude = [ "i:ai:chromium" ];	# A list of conditions of windows that should always be considered focused.
 | 
					 | 
				
			||||||
detect-transient = true;		# Use WM_TRANSIENT_FOR to group windows, and consider windows in
 | 
					 | 
				
			||||||
								# the same group focused at the same time.
 | 
					 | 
				
			||||||
detect-client-leader = true;	# Use WM_CLIENT_LEADER to group windows.
 | 
					 | 
				
			||||||
invert-color-include = [ ];		# Conditions for windows to be painted with inverted color.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# GLX backend					# GLX backend fine-tune options. See man page for more info.
 | 
					 | 
				
			||||||
glx-no-stencil = true;			# Recommended.
 | 
					 | 
				
			||||||
glx-copy-from-front = false;	# Useful with --glx-swap-method,
 | 
					 | 
				
			||||||
# glx-use-copysubbuffermesa = true; # Recommended if it works. Breaks VSync.
 | 
					 | 
				
			||||||
# glx-no-rebind-pixmap = true;	# Recommended if it works.	
 | 
					 | 
				
			||||||
glx-swap-method = "undefined";	# See man page.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Window type settings
 | 
					 | 
				
			||||||
wintypes:
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  tooltip = { fade = true; shadow = false; opacity = 1; focus = true; };
 | 
					 | 
				
			||||||
  # fade: Fade the particular type of windows.
 | 
					 | 
				
			||||||
  # shadow: Give those windows shadow
 | 
					 | 
				
			||||||
  # opacity: Default opacity for the type of windows.
 | 
					 | 
				
			||||||
  # focus: Whether to always consider windows of this type focused.
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
@@ -1,44 +0,0 @@
 | 
				
			|||||||
<?xml version="1.0"?>
 | 
					 | 
				
			||||||
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
 | 
					 | 
				
			||||||
<fontconfig>
 | 
					 | 
				
			||||||
    <match>
 | 
					 | 
				
			||||||
        <test name="family">
 | 
					 | 
				
			||||||
            <string>sans-serif</string>
 | 
					 | 
				
			||||||
        </test>
 | 
					 | 
				
			||||||
        <edit name="family" mode="prepend" binding="weak">
 | 
					 | 
				
			||||||
            <string>Noto Sans</string>
 | 
					 | 
				
			||||||
            <string>Noto Color Emoji</string>
 | 
					 | 
				
			||||||
        </edit>
 | 
					 | 
				
			||||||
    </match>
 | 
					 | 
				
			||||||
    <match>
 | 
					 | 
				
			||||||
        <test name="family">
 | 
					 | 
				
			||||||
            <string>serif</string>
 | 
					 | 
				
			||||||
        </test>
 | 
					 | 
				
			||||||
        <edit name="family" mode="prepend" binding="weak">
 | 
					 | 
				
			||||||
            <string>Noto Serif</string>
 | 
					 | 
				
			||||||
            <string>Noto Color Emoji</string>
 | 
					 | 
				
			||||||
        </edit>
 | 
					 | 
				
			||||||
    </match>
 | 
					 | 
				
			||||||
    <match>
 | 
					 | 
				
			||||||
        <test name="family">
 | 
					 | 
				
			||||||
            <string>monospace</string>
 | 
					 | 
				
			||||||
        </test>
 | 
					 | 
				
			||||||
        <edit name="family" mode="prepend" binding="weak">
 | 
					 | 
				
			||||||
            <string>Sauce Code Pro</string>
 | 
					 | 
				
			||||||
            <string>Noto Color Emoji</string>
 | 
					 | 
				
			||||||
        </edit>
 | 
					 | 
				
			||||||
    </match>
 | 
					 | 
				
			||||||
    <match>
 | 
					 | 
				
			||||||
        <test name="family">
 | 
					 | 
				
			||||||
            <string>Apple Color Emoji</string>
 | 
					 | 
				
			||||||
        </test>
 | 
					 | 
				
			||||||
        <edit name="family" mode="prepend" binding="weak">
 | 
					 | 
				
			||||||
            <string>Noto Color Emoji</string>
 | 
					 | 
				
			||||||
        </edit>
 | 
					 | 
				
			||||||
    </match>
 | 
					 | 
				
			||||||
    <match target="font">
 | 
					 | 
				
			||||||
        <edit name="hintstyle" mode="assign">
 | 
					 | 
				
			||||||
            <const>hintfull</const>
 | 
					 | 
				
			||||||
        </edit>
 | 
					 | 
				
			||||||
    </match>
 | 
					 | 
				
			||||||
</fontconfig>
 | 
					 | 
				
			||||||
@@ -1,5 +0,0 @@
 | 
				
			|||||||
VteTerminal,
 | 
					 | 
				
			||||||
TerminalScreen,
 | 
					 | 
				
			||||||
vte-terminal {
 | 
					 | 
				
			||||||
    padding: 6px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,19 +0,0 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					 | 
				
			||||||
# ================================================================================== #
 | 
					 | 
				
			||||||
# Focus the next window on the current workspace in i3, e.g. for binding to Alt+Tab  #
 | 
					 | 
				
			||||||
# Depends: jq, awk, i3wm (obviously)                                                 #
 | 
					 | 
				
			||||||
# Author: Nervengift <dev@nerven.gift>                                               #
 | 
					 | 
				
			||||||
# License: Don't think this deserves a license, Public Domain                        #
 | 
					 | 
				
			||||||
# Known bugs: doesn't work with non-window container focused                         #
 | 
					 | 
				
			||||||
# ================================================================================== #
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ws=$(i3-msg -t get_workspaces|jq "map(select(.focused))[]|.name")
 | 
					 | 
				
			||||||
echo $ws
 | 
					 | 
				
			||||||
windows=$(i3-msg -t get_tree|jq ".nodes|map(.nodes[])|map(.nodes[])|map(select(.type==\"workspace\" and .name==$ws))[0].nodes|map(recurse(.nodes[]))|map(.window)|.[]|values")
 | 
					 | 
				
			||||||
echo $windows
 | 
					 | 
				
			||||||
current=$(i3-msg -t get_tree|jq "recurse(.nodes[])|select(.focused)|.window")
 | 
					 | 
				
			||||||
echo $current
 | 
					 | 
				
			||||||
if [ "x$current" != "xnull" ]; then
 | 
					 | 
				
			||||||
	next=$(echo $windows | awk "BEGIN {RS=\" \";FS=\"   \"};NR == 1 {w=\$1};{if (f == 1){w=\$1;f=0}else if (\$1 == \"$current\") f=1};END {print w}")
 | 
					 | 
				
			||||||
	i3-msg [id=$next] focus > /dev/null
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
@@ -1,90 +0,0 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					 | 
				
			||||||
# Copyright (C) 2012 Stefan Breunig <stefan+measure-net-speed@mathphys.fsk.uni-heidelberg.de>
 | 
					 | 
				
			||||||
# Copyright (C) 2014 kaueraal
 | 
					 | 
				
			||||||
# Copyright (C) 2015 Thiago Perrotta <perrotta dot thiago at poli dot ufrj dot br>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This program is free software: you can redistribute it and/or modify
 | 
					 | 
				
			||||||
# it under the terms of the GNU General Public License as published by
 | 
					 | 
				
			||||||
# the Free Software Foundation, either version 3 of the License, or
 | 
					 | 
				
			||||||
# (at your option) any later version.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This program is distributed in the hope that it will be useful,
 | 
					 | 
				
			||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 | 
				
			||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
					 | 
				
			||||||
# GNU General Public License for more details.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# You should have received a copy of the GNU General Public License
 | 
					 | 
				
			||||||
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Use the provided interface, otherwise the device used for the default route.
 | 
					 | 
				
			||||||
if [[ -n $BLOCK_INSTANCE ]]; then
 | 
					 | 
				
			||||||
  INTERFACE=$BLOCK_INSTANCE
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
  INTERFACE=$(ip route | awk '/^default/ { print $5 ; exit }')
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Issue #36 compliant.
 | 
					 | 
				
			||||||
if ! [ -e "/sys/class/net/${INTERFACE}/operstate" ] || ! [ "`cat /sys/class/net/${INTERFACE}/operstate`" = "up" ]
 | 
					 | 
				
			||||||
then
 | 
					 | 
				
			||||||
    echo "$INTERFACE down"
 | 
					 | 
				
			||||||
    echo "$INTERFACE down"
 | 
					 | 
				
			||||||
    echo "#FF0000"
 | 
					 | 
				
			||||||
    exit 0
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# path to store the old results in
 | 
					 | 
				
			||||||
path="/dev/shm/$(basename $0)-${INTERFACE}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# grabbing data for each adapter.
 | 
					 | 
				
			||||||
read rx < "/sys/class/net/${INTERFACE}/statistics/rx_bytes"
 | 
					 | 
				
			||||||
read tx < "/sys/class/net/${INTERFACE}/statistics/tx_bytes"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# get time
 | 
					 | 
				
			||||||
time=$(date +%s)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# write current data if file does not exist. Do not exit, this will cause
 | 
					 | 
				
			||||||
# problems if this file is sourced instead of executed as another process.
 | 
					 | 
				
			||||||
if ! [[ -f "${path}" ]]; then
 | 
					 | 
				
			||||||
  echo "${time} ${rx} ${tx}" > "${path}"
 | 
					 | 
				
			||||||
  chmod 0666 "${path}"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# read previous state and update data storage
 | 
					 | 
				
			||||||
read old < "${path}"
 | 
					 | 
				
			||||||
echo "${time} ${rx} ${tx}" > "${path}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# parse old data and calc time passed
 | 
					 | 
				
			||||||
old=(${old//;/ })
 | 
					 | 
				
			||||||
time_diff=$(( $time - ${old[0]} ))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# sanity check: has a positive amount of time passed
 | 
					 | 
				
			||||||
[[ "${time_diff}" -gt 0 ]] || exit
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# calc bytes transferred, and their rate in byte/s
 | 
					 | 
				
			||||||
rx_diff=$(( $rx - ${old[1]} ))
 | 
					 | 
				
			||||||
tx_diff=$(( $tx - ${old[2]} ))
 | 
					 | 
				
			||||||
rx_rate=$(( $rx_diff / $time_diff ))
 | 
					 | 
				
			||||||
tx_rate=$(( $tx_diff / $time_diff ))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# shift by 10 bytes to get KiB/s. If the value is larger than
 | 
					 | 
				
			||||||
# 1024^2 = 1048576, then display MiB/s instead
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# incoming
 | 
					 | 
				
			||||||
echo -n " "
 | 
					 | 
				
			||||||
rx_kib=$(( $rx_rate >> 10 ))
 | 
					 | 
				
			||||||
if [[ "$rx_rate" -gt 1048576 ]]; then
 | 
					 | 
				
			||||||
  printf '%sk' "`echo "scale=1; $rx_kib / 1024" | bc`"
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
  echo -n "${rx_kib}k"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
echo -n " "
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# outgoing
 | 
					 | 
				
			||||||
echo -n " "
 | 
					 | 
				
			||||||
tx_kib=$(( $tx_rate >> 10 ))
 | 
					 | 
				
			||||||
if [[ "$tx_rate" -gt 1048576 ]]; then
 | 
					 | 
				
			||||||
  printf '%sm' "`echo "scale=1; $tx_kib / 1024" | bc`"
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
  echo -n "${tx_kib}k"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
@@ -1,97 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/perl
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Copyright 2014 Pierre Mavro <deimos@deimos.fr>
 | 
					 | 
				
			||||||
# Copyright 2014 Vivien Didelot <vivien@didelot.org>
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Licensed under the terms of the GNU GPL v3, or any later version.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# This script is meant to use with i3blocks. It parses the output of the "acpi"
 | 
					 | 
				
			||||||
# command (often provided by a package of the same name) to read the status of
 | 
					 | 
				
			||||||
# the battery, and eventually its remaining time (to full charge or discharge).
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# The color will gradually change for a percentage below 85%, and the urgency
 | 
					 | 
				
			||||||
# (exit code 33) is set if there is less that 5% remaining.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
use strict;
 | 
					 | 
				
			||||||
use warnings;
 | 
					 | 
				
			||||||
use Switch;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
my $acpi;
 | 
					 | 
				
			||||||
my $status;
 | 
					 | 
				
			||||||
my $percent;
 | 
					 | 
				
			||||||
my $hours = -1;
 | 
					 | 
				
			||||||
my $mins;
 | 
					 | 
				
			||||||
my $full_text;
 | 
					 | 
				
			||||||
my $short_text;
 | 
					 | 
				
			||||||
my $bat_number = $ENV{BLOCK_INSTANCE} || 0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# read the first line of the "acpi" command output
 | 
					 | 
				
			||||||
open (ACPI, "acpi -b | grep 'Battery $bat_number' |") or die;
 | 
					 | 
				
			||||||
$acpi = <ACPI>;
 | 
					 | 
				
			||||||
close(ACPI);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# fail on unexpected output
 | 
					 | 
				
			||||||
if ($acpi !~ /: (\w+), (\d+)%/) {
 | 
					 | 
				
			||||||
	die "$acpi\n";
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
$status = $1;
 | 
					 | 
				
			||||||
$percent = $2;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if ($acpi =~ /, (\d+):(\d+)/) {
 | 
					 | 
				
			||||||
    $hours = $1;
 | 
					 | 
				
			||||||
    $mins = $2;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if ($status eq 'Discharging') {
 | 
					 | 
				
			||||||
    if ($percent <= 10) {
 | 
					 | 
				
			||||||
		$full_text = "";
 | 
					 | 
				
			||||||
	} elsif ($percent <= 40) {
 | 
					 | 
				
			||||||
		$full_text = "";
 | 
					 | 
				
			||||||
	} elsif ($percent <= 75) {
 | 
					 | 
				
			||||||
		$full_text = "";
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		$full_text = "";
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
} elsif ($status eq 'Charging') {
 | 
					 | 
				
			||||||
	$full_text = '';
 | 
					 | 
				
			||||||
} else {
 | 
					 | 
				
			||||||
	$full_text = '';
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
$full_text .= " $percent%";
 | 
					 | 
				
			||||||
$short_text = $full_text;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
switch($ENV{BLOCK_BUTTON} || 0) {
 | 
					 | 
				
			||||||
    case "1" {
 | 
					 | 
				
			||||||
        if ($hours lt 0) {
 | 
					 | 
				
			||||||
            $full_text .= " Charged";
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
            $full_text .= " ($hours:$mins";
 | 
					 | 
				
			||||||
            if ($status eq 'Discharging') {
 | 
					 | 
				
			||||||
                $full_text .= ")";
 | 
					 | 
				
			||||||
            } else {
 | 
					 | 
				
			||||||
                $full_text .= " until full)";
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    case "4" { system("light -U -l 1") }
 | 
					 | 
				
			||||||
    case "5" { system("light -A -l 1") }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# print text
 | 
					 | 
				
			||||||
print "$full_text\n";
 | 
					 | 
				
			||||||
print "$short_text\n";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# consider color and urgent flag only on discharge
 | 
					 | 
				
			||||||
if ($status eq 'Discharging') {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if ($percent < 20) {
 | 
					 | 
				
			||||||
		print "#FF0000\n";
 | 
					 | 
				
			||||||
	} elsif ($percent < 40) {
 | 
					 | 
				
			||||||
		print "#FFCB00\n";
 | 
					 | 
				
			||||||
	} 
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
exit(0);
 | 
					 | 
				
			||||||
@@ -1,5 +0,0 @@
 | 
				
			|||||||
case $BLOCK_BUTTON in
 | 
					 | 
				
			||||||
    1) printf " "$(date '+%d/%m/%y') ; exit ;;
 | 
					 | 
				
			||||||
    2|3) i3-sensible-terminal -r i3blocks-clock-term --geometry 68x35 -e "$SHELL -c \"cal -y $(date +'%Y');$SHELL\"" &>/dev/null & ;;
 | 
					 | 
				
			||||||
    *) printf " "$(date '+%H:%M')
 | 
					 | 
				
			||||||
esac
 | 
					 | 
				
			||||||
@@ -1,100 +0,0 @@
 | 
				
			|||||||
# i3blocks config file
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Please see man i3blocks for a complete reference!
 | 
					 | 
				
			||||||
# The man page is also hosted at http://vivien.github.io/i3blocks
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# List of valid properties:
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# align
 | 
					 | 
				
			||||||
# color
 | 
					 | 
				
			||||||
# command
 | 
					 | 
				
			||||||
# full_text
 | 
					 | 
				
			||||||
# instance
 | 
					 | 
				
			||||||
# interval
 | 
					 | 
				
			||||||
# label
 | 
					 | 
				
			||||||
# min_width
 | 
					 | 
				
			||||||
# name
 | 
					 | 
				
			||||||
# separator
 | 
					 | 
				
			||||||
# separator_block_width
 | 
					 | 
				
			||||||
# short_text
 | 
					 | 
				
			||||||
# signal
 | 
					 | 
				
			||||||
# urgent
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Global properties
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# The top properties below are applied to every block, but can be overridden.
 | 
					 | 
				
			||||||
# Each block command defaults to the script name to avoid boilerplate.
 | 
					 | 
				
			||||||
command=~/.config/i3/blocks/$BLOCK_NAME
 | 
					 | 
				
			||||||
markup=none
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#full_text=
 | 
					 | 
				
			||||||
align=center
 | 
					 | 
				
			||||||
color=#F3F4F5
 | 
					 | 
				
			||||||
separator=false
 | 
					 | 
				
			||||||
separator_block_width=12
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#[window title]
 | 
					 | 
				
			||||||
#command=xtitle -s #| sed 's/^$/ /g'"
 | 
					 | 
				
			||||||
#color=#A6D1FA
 | 
					 | 
				
			||||||
#align=center
 | 
					 | 
				
			||||||
#min_width=700
 | 
					 | 
				
			||||||
#interval=persist
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[volume]
 | 
					 | 
				
			||||||
interval=persist
 | 
					 | 
				
			||||||
signal=10
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[separator]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[iface]
 | 
					 | 
				
			||||||
label=
 | 
					 | 
				
			||||||
interval=60
 | 
					 | 
				
			||||||
signal=15
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[separator]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[updates]
 | 
					 | 
				
			||||||
label=
 | 
					 | 
				
			||||||
interval=600
 | 
					 | 
				
			||||||
signal=5
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[separator]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[cpu_usage]
 | 
					 | 
				
			||||||
label=
 | 
					 | 
				
			||||||
interval=persist
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[separator]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[memory]
 | 
					 | 
				
			||||||
label=
 | 
					 | 
				
			||||||
interval=10
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[separator]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[temperature]
 | 
					 | 
				
			||||||
label=
 | 
					 | 
				
			||||||
interval=5
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[separator]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[rotation]
 | 
					 | 
				
			||||||
interval=once
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[separator]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[keyboard]
 | 
					 | 
				
			||||||
label=
 | 
					 | 
				
			||||||
interval=30
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[separator]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[battery]
 | 
					 | 
				
			||||||
interval=30
 | 
					 | 
				
			||||||
signal=11
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[separator]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[clock]
 | 
					 | 
				
			||||||
interval=5
 | 
					 | 
				
			||||||
min_width=" 00:00"
 | 
					 | 
				
			||||||
@@ -1,31 +0,0 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					 | 
				
			||||||
# by Paul Colby (http://colby.id.au), no rights reserved ;)
 | 
					 | 
				
			||||||
# https://github.com/Leo-G/DevopsWiki/wiki/How-Linux-CPU-Usage-Time-and-Percentage-is-calculated
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
PREV_TOTAL=0
 | 
					 | 
				
			||||||
PREV_IDLE=0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
while true; do
 | 
					 | 
				
			||||||
    # Get the total CPU statistics, discarding the 'cpu ' prefix.
 | 
					 | 
				
			||||||
    CPU=(`sed -n 's/^cpu\s//p' /proc/stat`)
 | 
					 | 
				
			||||||
    IDLE=${CPU[3]} # Just the idle CPU time.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Calculate the total CPU time.
 | 
					 | 
				
			||||||
    TOTAL=0
 | 
					 | 
				
			||||||
    for VALUE in "${CPU[@]}"; do
 | 
					 | 
				
			||||||
        let "TOTAL=$TOTAL+$VALUE"
 | 
					 | 
				
			||||||
    done
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Calculate the CPU usage since we last checked.
 | 
					 | 
				
			||||||
    let "DIFF_IDLE=$IDLE-$PREV_IDLE"
 | 
					 | 
				
			||||||
    let "DIFF_TOTAL=$TOTAL-$PREV_TOTAL"
 | 
					 | 
				
			||||||
    let "DIFF_USAGE=(1000*($DIFF_TOTAL-$DIFF_IDLE)/$DIFF_TOTAL+5)/10"
 | 
					 | 
				
			||||||
    echo -e "$DIFF_USAGE%\n$DIFF_USAGE%"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Remember the total and idle CPU times for the next check.
 | 
					 | 
				
			||||||
    PREV_TOTAL="$TOTAL"
 | 
					 | 
				
			||||||
    PREV_IDLE="$IDLE"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Wait before checking again.
 | 
					 | 
				
			||||||
    sleep 1
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
@@ -1,41 +0,0 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					 | 
				
			||||||
# Copyright (C) 2014 Julien Bonjean <julien@bonjean.info>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This program is free software: you can redistribute it and/or modify
 | 
					 | 
				
			||||||
# it under the terms of the GNU General Public License as published by
 | 
					 | 
				
			||||||
# the Free Software Foundation, either version 3 of the License, or
 | 
					 | 
				
			||||||
# (at your option) any later version.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This program is distributed in the hope that it will be useful,
 | 
					 | 
				
			||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 | 
				
			||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
					 | 
				
			||||||
# GNU General Public License for more details.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# You should have received a copy of the GNU General Public License
 | 
					 | 
				
			||||||
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DIR="${BLOCK_INSTANCE:-$HOME}"
 | 
					 | 
				
			||||||
ALERT_LOW="${1:-10}" # color will turn red under this value (default: 10%)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
df -h -P -l "$DIR" | awk -v alert_low=$ALERT_LOW '
 | 
					 | 
				
			||||||
/\/.*/ {
 | 
					 | 
				
			||||||
	# full text
 | 
					 | 
				
			||||||
	print $4
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	# short text
 | 
					 | 
				
			||||||
	print $4
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	use=$5
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	# no need to continue parsing
 | 
					 | 
				
			||||||
	exit 0
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
END {
 | 
					 | 
				
			||||||
	gsub(/%$/,"",use)
 | 
					 | 
				
			||||||
	if (100 - use < alert_low) {
 | 
					 | 
				
			||||||
		# color
 | 
					 | 
				
			||||||
		print "#FF0000"
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
'
 | 
					 | 
				
			||||||
@@ -1,62 +0,0 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					 | 
				
			||||||
# Copyright (C) 2014 Julien Bonjean <julien@bonjean.info>
 | 
					 | 
				
			||||||
# Copyright (C) 2014 Alexander Keller <github@nycroth.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This program is free software: you can redistribute it and/or modify
 | 
					 | 
				
			||||||
# it under the terms of the GNU General Public License as published by
 | 
					 | 
				
			||||||
# the Free Software Foundation, either version 3 of the License, or
 | 
					 | 
				
			||||||
# (at your option) any later version.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This program is distributed in the hope that it will be useful,
 | 
					 | 
				
			||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 | 
				
			||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
					 | 
				
			||||||
# GNU General Public License for more details.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# You should have received a copy of the GNU General Public License
 | 
					 | 
				
			||||||
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#------------------------------------------------------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Use the provided interface, otherwise the device used for the default route.
 | 
					 | 
				
			||||||
if [[ -n $BLOCK_INSTANCE ]]; then
 | 
					 | 
				
			||||||
    IF=$BLOCK_INSTANCE
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
    IF=$(ip route | awk '/^default/ { print $5 ; exit }')
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#------------------------------------------------------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# As per #36 -- It is transparent: e.g. if the machine has no battery or wireless
 | 
					 | 
				
			||||||
# connection (think desktop), the corresponding block should not be displayed.
 | 
					 | 
				
			||||||
[[ ! -d /sys/class/net/${IF} ]] && exit
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#------------------------------------------------------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [[ -z $IF ]] || [[ "$(cat /sys/class/net/$IF/operstate)" = 'down' ]]; then
 | 
					 | 
				
			||||||
    echo down # full text
 | 
					 | 
				
			||||||
    echo down # short text
 | 
					 | 
				
			||||||
    echo \#FF0000 # color
 | 
					 | 
				
			||||||
    exit
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
case $1 in
 | 
					 | 
				
			||||||
    -4) AF=inet ;;
 | 
					 | 
				
			||||||
    -6) AF=inet6 ;;
 | 
					 | 
				
			||||||
    *) AF=inet6? ;;
 | 
					 | 
				
			||||||
esac
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# if no interface is found, use the first device with a global scope
 | 
					 | 
				
			||||||
LOCIP=$(ip addr show $IF | perl -n -e "/$AF ([^\/]+).* scope global/ && print \$1 and exit")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#------------------------------------------------------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
case $BLOCK_BUTTON in
 | 
					 | 
				
			||||||
    1)  curl -s https://api.ipify.org;
 | 
					 | 
				
			||||||
        break;;
 | 
					 | 
				
			||||||
    2)  curl -s https://api.ipify.org | tee >(xclip -i);
 | 
					 | 
				
			||||||
        break;;
 | 
					 | 
				
			||||||
    0|3)  echo "$LOCIP" | tee >(xclip -i);
 | 
					 | 
				
			||||||
        break;;
 | 
					 | 
				
			||||||
    *)  echo "$LOCIP"
 | 
					 | 
				
			||||||
        break;;
 | 
					 | 
				
			||||||
esac
 | 
					 | 
				
			||||||
@@ -1,10 +0,0 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[[ $BLOCK_BUTTON -eq 1 ]] && `$DOTFILES/scripts/togglekeyboard`
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
layout=$(setxkbmap -query | grep 'layout:' | awk '{print $2}')
 | 
					 | 
				
			||||||
variant=$(setxkbmap -query | grep 'variant:' | awk '{print $2}')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
short=`([ "$variant" ] && echo $variant || echo $layout) | cut -c1-2`
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
echo -e "$short\n$short" | awk '{print toupper($0)}'
 | 
					 | 
				
			||||||
@@ -1,70 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/perl
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Copyright 2014 Marcelo Cerri <mhcerri at gmail dot com>
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# This program is free software: you can redistribute it and/or modify
 | 
					 | 
				
			||||||
# it under the terms of the GNU General Public License as published by
 | 
					 | 
				
			||||||
# the Free Software Foundation, either version 3 of the License, or
 | 
					 | 
				
			||||||
# (at your option) any later version.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# This program is distributed in the hope that it will be useful,
 | 
					 | 
				
			||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 | 
				
			||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
					 | 
				
			||||||
# GNU General Public License for more details.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# You should have received a copy of the GNU General Public License
 | 
					 | 
				
			||||||
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
use strict;
 | 
					 | 
				
			||||||
use warnings;
 | 
					 | 
				
			||||||
use utf8;
 | 
					 | 
				
			||||||
use Getopt::Long;
 | 
					 | 
				
			||||||
use File::Basename;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Default values
 | 
					 | 
				
			||||||
my $indicator = $ENV{BLOCK_INSTANCE} || "CAPS";
 | 
					 | 
				
			||||||
my $color_on  = "#00FF00";
 | 
					 | 
				
			||||||
my $color_off = "#222222";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
sub help {
 | 
					 | 
				
			||||||
    my $program = basename($0);
 | 
					 | 
				
			||||||
    printf "Usage: %s [-c <color on>] [-C <color off>]\n", $program;
 | 
					 | 
				
			||||||
    printf "  -c <color on>: hex color to use when indicator is on\n";
 | 
					 | 
				
			||||||
    printf "  -C <color off>: hex color to use when indicator is off\n";
 | 
					 | 
				
			||||||
    printf "\n";
 | 
					 | 
				
			||||||
    printf "Note: environment variable \$BLOCK_INSTANCE should be one of:\n";
 | 
					 | 
				
			||||||
    printf "  CAPS, NUM (default is CAPS).\n";
 | 
					 | 
				
			||||||
    exit 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Getopt::Long::config qw(no_ignore_case);
 | 
					 | 
				
			||||||
GetOptions("help|h" => \&help,
 | 
					 | 
				
			||||||
           "c=s"    => \$color_on,
 | 
					 | 
				
			||||||
           "C=s"    => \$color_off) or exit 1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Key mapping
 | 
					 | 
				
			||||||
my %indicators = (
 | 
					 | 
				
			||||||
    CAPS => 0x00000001,
 | 
					 | 
				
			||||||
    NUM  => 0x00000002,
 | 
					 | 
				
			||||||
);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Retrieve key flags
 | 
					 | 
				
			||||||
my $mask = 0;
 | 
					 | 
				
			||||||
open(XSET, "xset -q |") or die;
 | 
					 | 
				
			||||||
while (<XSET>) {
 | 
					 | 
				
			||||||
    if (/LED mask:\s*([0-9]+)/) {
 | 
					 | 
				
			||||||
        $mask = $1;
 | 
					 | 
				
			||||||
        last;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
close(XSET);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Output
 | 
					 | 
				
			||||||
printf "%s\n", $indicator;
 | 
					 | 
				
			||||||
printf "%s\n", $indicator;
 | 
					 | 
				
			||||||
if (($indicators{$indicator} || 0) & $mask) {
 | 
					 | 
				
			||||||
    printf "%s\n", $color_on;
 | 
					 | 
				
			||||||
} else {
 | 
					 | 
				
			||||||
    printf "%s\n", $color_off;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
exit 0
 | 
					 | 
				
			||||||
@@ -1,34 +0,0 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					 | 
				
			||||||
# Copyright (C) 2014 Julien Bonjean <julien@bonjean.info>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This program is free software: you can redistribute it and/or modify
 | 
					 | 
				
			||||||
# it under the terms of the GNU General Public License as published by
 | 
					 | 
				
			||||||
# the Free Software Foundation, either version 3 of the License, or
 | 
					 | 
				
			||||||
# (at your option) any later version.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This program is distributed in the hope that it will be useful,
 | 
					 | 
				
			||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 | 
				
			||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
					 | 
				
			||||||
# GNU General Public License for more details.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# You should have received a copy of the GNU General Public License
 | 
					 | 
				
			||||||
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
load="$(cut -d ' ' -f1 /proc/loadavg)"
 | 
					 | 
				
			||||||
cpus="$(nproc)"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# full text
 | 
					 | 
				
			||||||
echo "$load"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# short text
 | 
					 | 
				
			||||||
echo "$load"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# color if load is too high
 | 
					 | 
				
			||||||
awk -v cpus=$cpus -v cpuload=$load '
 | 
					 | 
				
			||||||
    BEGIN {
 | 
					 | 
				
			||||||
        if (cpus <= cpuload) {
 | 
					 | 
				
			||||||
            print "#FF0000";
 | 
					 | 
				
			||||||
            exit 33;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
'
 | 
					 | 
				
			||||||
@@ -1,76 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/perl
 | 
					 | 
				
			||||||
# Copyright (C) 2014 Tony Crisci <tony@dubstepdish.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This program is free software: you can redistribute it and/or modify
 | 
					 | 
				
			||||||
# it under the terms of the GNU General Public License as published by
 | 
					 | 
				
			||||||
# the Free Software Foundation, either version 3 of the License, or
 | 
					 | 
				
			||||||
# (at your option) any later version.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This program is distributed in the hope that it will be useful,
 | 
					 | 
				
			||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 | 
				
			||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
					 | 
				
			||||||
# GNU General Public License for more details.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# You should have received a copy of the GNU General Public License
 | 
					 | 
				
			||||||
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Requires playerctl binary to be in your path (except cmus)
 | 
					 | 
				
			||||||
# See: https://github.com/acrisci/playerctl
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Set instance=NAME in the i3blocks configuration to specify a music player
 | 
					 | 
				
			||||||
# (playerctl will attempt to connect to org.mpris.MediaPlayer2.[NAME] on your
 | 
					 | 
				
			||||||
# DBus session).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
use Env qw(BLOCK_INSTANCE);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
my @metadata = ();
 | 
					 | 
				
			||||||
my $player_arg = "";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if ($BLOCK_INSTANCE) {
 | 
					 | 
				
			||||||
    $player_arg = "--player='$BLOCK_INSTANCE'";
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if ($ENV{'BLOCK_BUTTON'} == 1) {
 | 
					 | 
				
			||||||
    system("playerctl $player_arg previous");
 | 
					 | 
				
			||||||
} elsif ($ENV{'BLOCK_BUTTON'} == 2) {
 | 
					 | 
				
			||||||
    system("playerctl $player_arg play-pause");
 | 
					 | 
				
			||||||
} elsif ($ENV{'BLOCK_BUTTON'} == 3) {
 | 
					 | 
				
			||||||
    system("playerctl $player_arg next");
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if ($player_arg eq '' or $player_arg =~ /cmus$/) {
 | 
					 | 
				
			||||||
    # try cmus first
 | 
					 | 
				
			||||||
    my @cmus = split /^/, qx(cmus-remote -Q);
 | 
					 | 
				
			||||||
    if ($? == 0) {
 | 
					 | 
				
			||||||
        foreach my $line (@cmus) {
 | 
					 | 
				
			||||||
            my @data = split /\s/, $line;
 | 
					 | 
				
			||||||
            if (shift @data eq 'tag') {
 | 
					 | 
				
			||||||
                my $key = shift @data;
 | 
					 | 
				
			||||||
                my $value = join ' ', @data;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                @metadata[0] = $value if $key eq 'artist';
 | 
					 | 
				
			||||||
                @metadata[1] = $value if $key eq 'title';
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (@metadata) {
 | 
					 | 
				
			||||||
            # metadata found so we are done
 | 
					 | 
				
			||||||
            print(join ' - ', @metadata);
 | 
					 | 
				
			||||||
            exit 0;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # if cmus was given, we are done
 | 
					 | 
				
			||||||
    exit 0 unless $player_arg eq '';
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
my $artist = qx(playerctl $player_arg metadata artist);
 | 
					 | 
				
			||||||
# exit status will be nonzero when playerctl cannot find your player
 | 
					 | 
				
			||||||
exit(0) if $?;
 | 
					 | 
				
			||||||
push(@metadata, $artist) if $artist;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
my $title = qx(playerctl $player_arg metadata title);
 | 
					 | 
				
			||||||
exit(0) if $?;
 | 
					 | 
				
			||||||
push(@metadata, $title) if $title;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
print(join(" - ", @metadata)) if @metadata;
 | 
					 | 
				
			||||||
@@ -1,65 +0,0 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					 | 
				
			||||||
# Copyright (C) 2014 Julien Bonjean <julien@bonjean.info>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This program is free software: you can redistribute it and/or modify
 | 
					 | 
				
			||||||
# it under the terms of the GNU General Public License as published by
 | 
					 | 
				
			||||||
# the Free Software Foundation, either version 3 of the License, or
 | 
					 | 
				
			||||||
# (at your option) any later version.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This program is distributed in the hope that it will be useful,
 | 
					 | 
				
			||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 | 
				
			||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
					 | 
				
			||||||
# GNU General Public License for more details.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# You should have received a copy of the GNU General Public License
 | 
					 | 
				
			||||||
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
TYPE="${BLOCK_INSTANCE:-mem}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [ $BLOCK_BUTTON -gt 0 ]; then
 | 
					 | 
				
			||||||
    i3-sensible-terminal -r floating-term --geometry 100x54 -e 'top -d 0.1'
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
awk -v type=$TYPE '
 | 
					 | 
				
			||||||
BEGIN {
 | 
					 | 
				
			||||||
    swap_total=1
 | 
					 | 
				
			||||||
    mem_total=1
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
/^MemTotal:/ {
 | 
					 | 
				
			||||||
	mem_total=$2
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
/^MemFree:/ {
 | 
					 | 
				
			||||||
	mem_free=$2
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
/^Buffers:/ {
 | 
					 | 
				
			||||||
	mem_free+=$2
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
/^Cached:/ {
 | 
					 | 
				
			||||||
	mem_free+=$2
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
/^SwapTotal:/ {
 | 
					 | 
				
			||||||
	swap_total=$2
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
/^SwapFree:/ {
 | 
					 | 
				
			||||||
	swap_free=$2
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
END {
 | 
					 | 
				
			||||||
	if (type == "swap") {
 | 
					 | 
				
			||||||
        swap_perc = (swap_total - swap_free) / swap_total * 100
 | 
					 | 
				
			||||||
		printf("%.0f%\n", swap_perc)
 | 
					 | 
				
			||||||
		printf("%.0f%\n", swap_perc)	
 | 
					 | 
				
			||||||
		perc = swap_perc
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	else{
 | 
					 | 
				
			||||||
        mem_perc  = (mem_total - mem_free) / mem_total * 100
 | 
					 | 
				
			||||||
		printf("%.0f%\n", mem_perc)
 | 
					 | 
				
			||||||
		printf("%.0f%\n", mem_perc)
 | 
					 | 
				
			||||||
	    perc = mem_perc
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (perc > 80)
 | 
					 | 
				
			||||||
        print "#FFCB00"
 | 
					 | 
				
			||||||
    else if (perc > 60)
 | 
					 | 
				
			||||||
        print "#FFCB00"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
' /proc/meminfo
 | 
					 | 
				
			||||||
@@ -1,149 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/perl
 | 
					 | 
				
			||||||
# Made by Pierre Mavro/Deimosfr <deimos@deimos.fr>
 | 
					 | 
				
			||||||
# Licensed under the terms of the GNU GPL v3, or any later version.
 | 
					 | 
				
			||||||
# Version: 0.2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Usage:
 | 
					 | 
				
			||||||
# 1. The configuration name of OpenVPN should be familiar for you (home,work...)
 | 
					 | 
				
			||||||
# 2. The device name in your configuration file should be fully named (tun0,tap1...not only tun or tap)
 | 
					 | 
				
			||||||
# 3. When you launch one or multiple OpenVPN connexion, be sure the PID file is written in the correct folder (ex: --writepid /run/openvpn/home.pid)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
use strict;
 | 
					 | 
				
			||||||
use warnings;
 | 
					 | 
				
			||||||
use utf8;
 | 
					 | 
				
			||||||
use Getopt::Long;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
my $openvpn_enabled='/dev/shm/openvpn_i3blocks_enabled';
 | 
					 | 
				
			||||||
my $openvpn_disabled='/dev/shm/openvpn_i3blocks_disabled';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Print output
 | 
					 | 
				
			||||||
sub print_output {
 | 
					 | 
				
			||||||
    my $ref_pid_files = shift;
 | 
					 | 
				
			||||||
    my @pid_files = @$ref_pid_files;
 | 
					 | 
				
			||||||
    my $change=0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Total pid files
 | 
					 | 
				
			||||||
    my $total_pid = @pid_files;
 | 
					 | 
				
			||||||
    if ($total_pid == 0) {
 | 
					 | 
				
			||||||
        print "VPN: down\n"x2;
 | 
					 | 
				
			||||||
        # Delete OpenVPN i3blocks temp files
 | 
					 | 
				
			||||||
        if (-f $openvpn_enabled) {
 | 
					 | 
				
			||||||
            unlink $openvpn_enabled or die "Can't delete $openvpn_enabled\n";
 | 
					 | 
				
			||||||
            # Colorize if VPN has just went down
 | 
					 | 
				
			||||||
            print '#FF0000\n';
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        unless (-f $openvpn_disabled) {
 | 
					 | 
				
			||||||
            open(my $shm, '>', $openvpn_disabled) or die "Can't write $openvpn_disabled\n";
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        exit(0);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Check if interface device is present
 | 
					 | 
				
			||||||
    my $vpn_found=0;
 | 
					 | 
				
			||||||
    my $pid;
 | 
					 | 
				
			||||||
    my $cmd_line;
 | 
					 | 
				
			||||||
    my @config_name;
 | 
					 | 
				
			||||||
    my @config_path;
 | 
					 | 
				
			||||||
    my $interface;
 | 
					 | 
				
			||||||
    my $current_config_path;
 | 
					 | 
				
			||||||
    my $current_config_name;
 | 
					 | 
				
			||||||
    foreach (@pid_files) {
 | 
					 | 
				
			||||||
        # Get current PID
 | 
					 | 
				
			||||||
        $pid=0;
 | 
					 | 
				
			||||||
        open(PID, '<', $_);
 | 
					 | 
				
			||||||
        while(<PID>) {
 | 
					 | 
				
			||||||
            chomp $_;
 | 
					 | 
				
			||||||
            $pid = $_;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        close(PID);
 | 
					 | 
				
			||||||
        # Check if PID has been found
 | 
					 | 
				
			||||||
        if ($pid ==0) {
 | 
					 | 
				
			||||||
            print "Can't get PID $_: $!\n";
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Check if PID is still alive
 | 
					 | 
				
			||||||
        $cmd_line='/proc/'.$pid.'/cmdline';
 | 
					 | 
				
			||||||
        if (-f $cmd_line) {
 | 
					 | 
				
			||||||
            # Get config name
 | 
					 | 
				
			||||||
            open(CMD_LINE, '<', $cmd_line);
 | 
					 | 
				
			||||||
            while(<CMD_LINE>) {
 | 
					 | 
				
			||||||
                chomp $_;
 | 
					 | 
				
			||||||
                if ($_ =~ /--config\s*(.*\.conf)/) {
 | 
					 | 
				
			||||||
                    # Get interface from config file
 | 
					 | 
				
			||||||
                    $current_config_path = $1;
 | 
					 | 
				
			||||||
                    # Remove unwanted escape chars
 | 
					 | 
				
			||||||
                    $current_config_path =~ s/\x{00}//g;
 | 
					 | 
				
			||||||
                    $interface = 'null';
 | 
					 | 
				
			||||||
                    # Get configuration name
 | 
					 | 
				
			||||||
                    if ($current_config_path =~ /(\w+).conf/) {
 | 
					 | 
				
			||||||
                        $current_config_name=$1;
 | 
					 | 
				
			||||||
                    } else {
 | 
					 | 
				
			||||||
                        $current_config_name='unknow';
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                    # Get OpenVPN interface device name
 | 
					 | 
				
			||||||
                    open(CONFIG, '<', $current_config_path) or die "Can't read config file '$current_config_path': $!\n";
 | 
					 | 
				
			||||||
                    while(<CONFIG>) {
 | 
					 | 
				
			||||||
                        chomp $_;
 | 
					 | 
				
			||||||
                        if ($_ =~ /dev\s+(\w+)/) {
 | 
					 | 
				
			||||||
                            $interface=$1;
 | 
					 | 
				
			||||||
                            last;
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                    close(CONFIG);
 | 
					 | 
				
			||||||
                    # check if interface exist
 | 
					 | 
				
			||||||
                    unless ($interface eq 'null') {
 | 
					 | 
				
			||||||
                        if (-d "/sys/class/net/$interface") {
 | 
					 | 
				
			||||||
                            push @config_name, $current_config_name;
 | 
					 | 
				
			||||||
                            $vpn_found=1;
 | 
					 | 
				
			||||||
                            # Write enabled file
 | 
					 | 
				
			||||||
                            unless (-f $openvpn_enabled) {
 | 
					 | 
				
			||||||
                                open(my $shm, '>', $openvpn_enabled) or die "Can't write $openvpn_enabled\n";
 | 
					 | 
				
			||||||
                                $change=1;
 | 
					 | 
				
			||||||
                            }
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            close(CMD_LINE);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Check if PID found
 | 
					 | 
				
			||||||
    my $names;
 | 
					 | 
				
			||||||
    my $short_status;
 | 
					 | 
				
			||||||
    if ($vpn_found == 1) {
 | 
					 | 
				
			||||||
        $names = join('/', @config_name);
 | 
					 | 
				
			||||||
        $short_status='up';
 | 
					 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
        $short_status='down';
 | 
					 | 
				
			||||||
        $names = $short_status;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    print "VPN: $names\n";
 | 
					 | 
				
			||||||
    print "VPN: $short_status\n";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Print color if there were changes
 | 
					 | 
				
			||||||
    print "#00FF00\n" if ($change == 1);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    exit(0);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
sub check_opts {
 | 
					 | 
				
			||||||
    # Vars
 | 
					 | 
				
			||||||
    my @pid_file=glob '/run/openvpn/*.pid';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Set options
 | 
					 | 
				
			||||||
    GetOptions( "help|h" => \&help,
 | 
					 | 
				
			||||||
        "p=s"    => \@pid_file);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    print_output(\@pid_file);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
sub help {
 | 
					 | 
				
			||||||
    print "Usage: openvpn [-d pid folder files]\n";
 | 
					 | 
				
			||||||
    print "-d : pid folder files (default /run/openvpn/*.pid)\n";
 | 
					 | 
				
			||||||
    print "Note: devices in configuration file should be named with their number (ex: tun0, tap1)\n";
 | 
					 | 
				
			||||||
    exit(1);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
&check_opts;
 | 
					 | 
				
			||||||
@@ -1,20 +0,0 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
lock="/tmp/rotlock"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[[ -e $lock ]] || echo "unlocked" > "$lock"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
status=$(<$lock)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [ $BLOCK_BUTTON -gt 0 ]; then
 | 
					 | 
				
			||||||
    case $status in
 | 
					 | 
				
			||||||
        "unlocked") status="locked" ;;
 | 
					 | 
				
			||||||
        "locked") status="unlocked";;
 | 
					 | 
				
			||||||
    esac
 | 
					 | 
				
			||||||
    echo $status > "$lock"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
case $status in
 | 
					 | 
				
			||||||
    "locked") echo "";;
 | 
					 | 
				
			||||||
    "unlocked") echo "";;
 | 
					 | 
				
			||||||
esac
 | 
					 | 
				
			||||||
@@ -1,69 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/perl
 | 
					 | 
				
			||||||
# Copyright 2014 Pierre Mavro <deimos@deimos.fr>
 | 
					 | 
				
			||||||
# Copyright 2014 Vivien Didelot <vivien@didelot.org>
 | 
					 | 
				
			||||||
# Copyright 2014 Andreas Guldstrand <andreas.guldstrand@gmail.com>
 | 
					 | 
				
			||||||
# Copyright 2014 Benjamin Chretien <chretien at lirmm dot fr>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This program is free software: you can redistribute it and/or modify
 | 
					 | 
				
			||||||
# it under the terms of the GNU General Public License as published by
 | 
					 | 
				
			||||||
# the Free Software Foundation, either version 3 of the License, or
 | 
					 | 
				
			||||||
# (at your option) any later version.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This program is distributed in the hope that it will be useful,
 | 
					 | 
				
			||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 | 
				
			||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
					 | 
				
			||||||
# GNU General Public License for more details.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# You should have received a copy of the GNU General Public License
 | 
					 | 
				
			||||||
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
use strict;
 | 
					 | 
				
			||||||
use warnings;
 | 
					 | 
				
			||||||
use utf8;
 | 
					 | 
				
			||||||
use Getopt::Long;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
binmode(STDOUT, ":utf8");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# default values
 | 
					 | 
				
			||||||
my $t_warn = 70;
 | 
					 | 
				
			||||||
my $t_crit = 90;
 | 
					 | 
				
			||||||
my $chip = "coretemp-isa-0000";
 | 
					 | 
				
			||||||
my $temperature = -9999;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
sub help {
 | 
					 | 
				
			||||||
    print "Usage: temperature [-w <warning>] [-c <critical>] [--chip <chip>]\n";
 | 
					 | 
				
			||||||
    print "-w <percent>: warning threshold to become yellow\n";
 | 
					 | 
				
			||||||
    print "-c <percent>: critical threshold to become red\n";
 | 
					 | 
				
			||||||
    print "--chip <chip>: sensor chip\n";
 | 
					 | 
				
			||||||
    exit 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GetOptions("help|h" => \&help,
 | 
					 | 
				
			||||||
           "w=i"    => \$t_warn,
 | 
					 | 
				
			||||||
           "c=i"    => \$t_crit,
 | 
					 | 
				
			||||||
           "chip=s" => \$chip);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Get chip temperature
 | 
					 | 
				
			||||||
open (SENSORS, "sensors -u $chip |") or die;
 | 
					 | 
				
			||||||
while (<SENSORS>) {
 | 
					 | 
				
			||||||
    if (/^\s+temp1_input:\s+[\+]*([\-]*\d+\.\d)/) {
 | 
					 | 
				
			||||||
        $temperature = $1;
 | 
					 | 
				
			||||||
        last;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
close(SENSORS);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
$temperature eq -9999 and die 'Cannot find temperature';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Print short_text, full_text
 | 
					 | 
				
			||||||
print int($temperature)."°c\n" x2;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Print color, if needed
 | 
					 | 
				
			||||||
if ($temperature >= $t_crit) {
 | 
					 | 
				
			||||||
    print "#FF0000\n";
 | 
					 | 
				
			||||||
    exit 33;
 | 
					 | 
				
			||||||
} elsif ($temperature >= $t_warn) {
 | 
					 | 
				
			||||||
    print "#FFFC00\n";
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
exit 0;
 | 
					 | 
				
			||||||
@@ -1,27 +0,0 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
CARDS=$(pacmd list-cards | grep -e index: -e alsa.card_name  | xargs -n5 | awk '{print $2}')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [[ ${#CARDS} != 3 ]];  # there is a space 
 | 
					 | 
				
			||||||
then
 | 
					 | 
				
			||||||
    echo "This script works only with 2 outputs, and you have ..."
 | 
					 | 
				
			||||||
    pacmd list-cards | grep -e index: -e alsa.card_name  | xargs -n5 
 | 
					 | 
				
			||||||
    exit
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
i=1
 | 
					 | 
				
			||||||
for card_index in $CARDS ; 
 | 
					 | 
				
			||||||
do 
 | 
					 | 
				
			||||||
    eval CARD$i=$card_index 
 | 
					 | 
				
			||||||
    let i+=1
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
LAST_SINK_LINE=$(pacmd list-sink-inputs | grep -e index: -e sink: | xargs -n5 | tail -n1)
 | 
					 | 
				
			||||||
last_sink_app_index=$( echo $LAST_SINK_LINE | awk '{print $2}' )
 | 
					 | 
				
			||||||
last_sink_out_index=$( echo $LAST_SINK_LINE | awk '{print $4}' )
 | 
					 | 
				
			||||||
[[ ${last_sink_out_index} == ${CARD1} ]] && new_sink_out=$CARD2 || new_sink_out=$CARD1
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
#echo "$last_sink_app_index > $last_sink_out_index > ${new_sink_out}"
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
pacmd move-sink-input ${last_sink_app_index} ${new_sink_out}
 | 
					 | 
				
			||||||
@@ -1,31 +0,0 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					 | 
				
			||||||
set -e
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
for p in trizen pacaur yaourt pacman; do
 | 
					 | 
				
			||||||
    if $p --version &>/dev/null; then
 | 
					 | 
				
			||||||
        PAC="$p"
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [ -z "$PAC" ]; then
 | 
					 | 
				
			||||||
    >&2 echo "Error: No Arch package manager found?"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [ "$BLOCK_BUTTON" == 1 ]; then
 | 
					 | 
				
			||||||
    nohup i3-sensible-terminal -r i3blocks-update-term -e "sh -c '$PAC -Syu || exec zsh; pkill -RTMIN+5 i3blocks'" &>/dev/null &
 | 
					 | 
				
			||||||
    disown
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [ $p = "pacman" ]; then
 | 
					 | 
				
			||||||
    exec 3< <(checkupdates)
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
    exec 3< <({ checkupdates & cower -u & })
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
count="$(wc -l <&3)"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [ -n "$count" -a "$count" -gt 0 ]; then
 | 
					 | 
				
			||||||
    echo $count
 | 
					 | 
				
			||||||
    echo $count
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
@@ -1,182 +0,0 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					 | 
				
			||||||
# Displays the default device, volume, and mute status for i3blocks
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
AUDIO_HIGH_SYMBOL=' '
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
AUDIO_MED_THRESH=59
 | 
					 | 
				
			||||||
AUDIO_MED_SYMBOL=' '
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
AUDIO_LOW_THRESH=0
 | 
					 | 
				
			||||||
AUDIO_LOW_SYMBOL=' '
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
AUDIO_MUTED_SYMBOL='X'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
AUDIO_INTERVAL=5
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DEFAULT_COLOR="#ffffff"
 | 
					 | 
				
			||||||
MUTED_COLOR="#a0a0a0"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
LONG_FORMAT=0
 | 
					 | 
				
			||||||
SHORT_FORMAT=3
 | 
					 | 
				
			||||||
USE_PERCENT=0
 | 
					 | 
				
			||||||
USE_ALSA_NAME=0
 | 
					 | 
				
			||||||
USE_DESCRIPTION=0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SUBSCRIBE=1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
while getopts F:Sf:padH:M:L:X:T:t:C:c:i:m:s:h opt; do
 | 
					 | 
				
			||||||
    case "$opt" in
 | 
					 | 
				
			||||||
        S) SUBSCRIBE=1 ;;
 | 
					 | 
				
			||||||
        F) LONG_FORMAT="$OPTARG" ;;
 | 
					 | 
				
			||||||
        f) SHORT_FORMAT="$OPTARG" ;;
 | 
					 | 
				
			||||||
        p) USE_PERCENT=0 ;;
 | 
					 | 
				
			||||||
        a) USE_ALSA_NAME=1 ;;
 | 
					 | 
				
			||||||
        d) USE_DESCRIPTION=1 ;;
 | 
					 | 
				
			||||||
        H) AUDIO_HIGH_SYMBOL="$OPTARG" ;;
 | 
					 | 
				
			||||||
        M) AUDIO_MED_SYMBOL="$OPTARG" ;;
 | 
					 | 
				
			||||||
        L) AUDIO_LOW_SYMBOL="$OPTARG" ;;
 | 
					 | 
				
			||||||
        X) AUDIO_MUTED_SYMBOL="$OPTARG" ;;
 | 
					 | 
				
			||||||
        T) AUDIO_MED_THRESH="$OPTARG" ;;
 | 
					 | 
				
			||||||
        t) AUDIO_LOW_THRESH="$OPTARG" ;;
 | 
					 | 
				
			||||||
        C) DEFAULT_COLOR="$OPTARG" ;;
 | 
					 | 
				
			||||||
        c) MUTED_COLOR="$OPTARG" ;;
 | 
					 | 
				
			||||||
        i) AUDIO_INTERVAL="$OPTARG" ;;
 | 
					 | 
				
			||||||
        m) MIXER="$OPTARG" ;;
 | 
					 | 
				
			||||||
        s) SCONTROL="$OPTARG" ;;
 | 
					 | 
				
			||||||
        h) printf \
 | 
					 | 
				
			||||||
"Usage: volume-pulseaudio [-S] [-F format] [-f format] [-p] [-a|-d] [-H symb] [-M symb]
 | 
					 | 
				
			||||||
        [-L symb] [-X symb] [-T thresh] [-t thresh] [-C color] [-c color] [-i inter] 
 | 
					 | 
				
			||||||
        [-m mixer] [-s scontrol] [-h]
 | 
					 | 
				
			||||||
Options:
 | 
					 | 
				
			||||||
-F, -f\tOutput format (-F long format, -f short format) to use, amongst:
 | 
					 | 
				
			||||||
\t0\t symb vol [index:name]\t (default long)
 | 
					 | 
				
			||||||
\t1\t symb vol [name]
 | 
					 | 
				
			||||||
\t2\t symb vol [index]\t (default short)
 | 
					 | 
				
			||||||
\t3\t symb vol
 | 
					 | 
				
			||||||
-S\tSubscribe to volume events (requires persistent block, always uses long format)
 | 
					 | 
				
			||||||
-p\tOmit the percent sign (%%) in volume
 | 
					 | 
				
			||||||
-a\tUse ALSA name if possible
 | 
					 | 
				
			||||||
-d\tUse device description instead of name if possible
 | 
					 | 
				
			||||||
-H\tSymbol to use when audio level is high. Default: '$AUDIO_HIGH_SYMBOL'
 | 
					 | 
				
			||||||
-M\tSymbol to use when audio level is medium. Default: '$AUDIO_MED_SYMBOL'
 | 
					 | 
				
			||||||
-L\tSymbol to use when audio level is low. Default: '$AUDIO_LOW_SYMBOL'
 | 
					 | 
				
			||||||
-X\tSymbol to use when audio is muted. Default: '$AUDIO_MUTED_SYMBOL'
 | 
					 | 
				
			||||||
-T\tThreshold for medium audio level. Default: $AUDIO_MED_THRESH
 | 
					 | 
				
			||||||
-t\tThreshold for low audio level. Default: $AUDIO_LOW_THRESH
 | 
					 | 
				
			||||||
-C\tColor for non-muted audio. Default: $DEFAULT_COLOR
 | 
					 | 
				
			||||||
-c\tColor for muted audio. Default: $MUTED_COLOR
 | 
					 | 
				
			||||||
-i\tInterval size of volume increase/decrease. Default: $AUDIO_INTERVAL
 | 
					 | 
				
			||||||
-m\tUse the given mixer.
 | 
					 | 
				
			||||||
-s\tUse the given scontrol.
 | 
					 | 
				
			||||||
-h\tShow this help text
 | 
					 | 
				
			||||||
" && exit 0;;
 | 
					 | 
				
			||||||
    esac
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [[ -z "$MIXER" ]] ; then
 | 
					 | 
				
			||||||
    MIXER="default"
 | 
					 | 
				
			||||||
    if amixer -D pulse info >/dev/null 2>&1 ; then
 | 
					 | 
				
			||||||
        MIXER="pulse"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [[ -z "$SCONTROL" ]] ; then
 | 
					 | 
				
			||||||
    SCONTROL=$(amixer -D "$MIXER" scontrols | sed -n "s/Simple mixer control '\([^']*\)',0/\1/p" | head -n1)
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CAPABILITY=$(amixer -D $MIXER get $SCONTROL | sed -n "s/  Capabilities:.*cvolume.*/Capture/p")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function move_sinks_to_new_default {
 | 
					 | 
				
			||||||
    DEFAULT_SINK=$1
 | 
					 | 
				
			||||||
    pacmd list-sink-inputs | grep index: | grep -o '[0-9]\+' | while read SINK
 | 
					 | 
				
			||||||
    do
 | 
					 | 
				
			||||||
        pacmd move-sink-input $SINK $DEFAULT_SINK
 | 
					 | 
				
			||||||
    done
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function set_default_playback_device_next {
 | 
					 | 
				
			||||||
    inc=${1:-1}
 | 
					 | 
				
			||||||
    num_devices=$(pacmd list-sinks | grep -c index:)
 | 
					 | 
				
			||||||
    sink_arr=($(pacmd list-sinks | grep index: | grep -o '[0-9]\+'))
 | 
					 | 
				
			||||||
    default_sink_index=$(( $(pacmd list-sinks | grep index: | grep -no '*' | grep -o '^[0-9]\+') - 1 ))
 | 
					 | 
				
			||||||
    default_sink_index=$(( ($default_sink_index + $num_devices + $inc) % $num_devices ))
 | 
					 | 
				
			||||||
    default_sink=${sink_arr[$default_sink_index]}
 | 
					 | 
				
			||||||
    pacmd set-default-sink $default_sink
 | 
					 | 
				
			||||||
    move_sinks_to_new_default $default_sink
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
case "$BLOCK_BUTTON" in
 | 
					 | 
				
			||||||
    1) set_default_playback_device_next ;;
 | 
					 | 
				
			||||||
    2) amixer -q -D $MIXER sset $SCONTROL $CAPABILITY toggle ;;
 | 
					 | 
				
			||||||
    3) set_default_playback_device_next -1 ;;
 | 
					 | 
				
			||||||
    4) amixer -q -D $MIXER sset $SCONTROL $CAPABILITY $AUDIO_INTERVAL%+ ;;
 | 
					 | 
				
			||||||
    5) amixer -q -D $MIXER sset $SCONTROL $CAPABILITY $AUDIO_INTERVAL%- ;;
 | 
					 | 
				
			||||||
esac
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function print_format {
 | 
					 | 
				
			||||||
    PERCENT="%"
 | 
					 | 
				
			||||||
    [[ $USE_PERCENT == 0 ]] && PERCENT=""
 | 
					 | 
				
			||||||
    case "$1" in
 | 
					 | 
				
			||||||
        1) echo "$SYMBOL$VOL$PERCENT [$NAME]" ;;
 | 
					 | 
				
			||||||
        2) echo "$SYMBOL$VOL$PERCENT [$INDEX]";;
 | 
					 | 
				
			||||||
        3) echo "$SYMBOL$VOL$PERCENT" ;;
 | 
					 | 
				
			||||||
        *) echo "$SYMBOL$VOL$PERCENT [$INDEX:$NAME]" ;;
 | 
					 | 
				
			||||||
    esac
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function print_block {
 | 
					 | 
				
			||||||
    for name in INDEX NAME VOL MUTED; do
 | 
					 | 
				
			||||||
        read $name
 | 
					 | 
				
			||||||
    done < <(pacmd list-sinks | grep "index:\|name:\|volume: front\|muted:" | grep -A3 '*')
 | 
					 | 
				
			||||||
    INDEX=$(echo "$INDEX" | grep -o '[0-9]\+')
 | 
					 | 
				
			||||||
    VOL=$(echo "$VOL" | grep -o "[0-9]*%" | head -1 )
 | 
					 | 
				
			||||||
    VOL="${VOL%?}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    NAME=$(echo "$NAME" | sed \
 | 
					 | 
				
			||||||
's/.*<.*\.\(.*\)>.*/\1/; t;'\
 | 
					 | 
				
			||||||
's/.*<\(.*\)>.*/\1/; t;'\
 | 
					 | 
				
			||||||
's/.*/unknown/')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if [[ $USE_ALSA_NAME == 1 ]] ; then
 | 
					 | 
				
			||||||
        ALSA_NAME=$(pacmd list-sinks |\
 | 
					 | 
				
			||||||
awk '/^\s*\*/{f=1}/^\s*index:/{f=0}f' |\
 | 
					 | 
				
			||||||
grep "alsa.name\|alsa.mixer_name" |\
 | 
					 | 
				
			||||||
head -n1 |\
 | 
					 | 
				
			||||||
sed 's/.*= "\(.*\)".*/\1/')
 | 
					 | 
				
			||||||
        NAME=${ALSA_NAME:-$NAME}
 | 
					 | 
				
			||||||
    elif [[ $USE_DESCRIPTION == 1 ]] ; then
 | 
					 | 
				
			||||||
        DESCRIPTION=$(pacmd list-sinks |\
 | 
					 | 
				
			||||||
awk '/^\s*\*/{f=1}/^\s*index:/{f=0}f' |\
 | 
					 | 
				
			||||||
grep "device.description" |\
 | 
					 | 
				
			||||||
head -n1 |\
 | 
					 | 
				
			||||||
sed 's/.*= "\(.*\)".*/\1/')
 | 
					 | 
				
			||||||
        NAME=${DESCRIPTION:-$NAME}
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if [[ $MUTED =~ "no" ]] ; then
 | 
					 | 
				
			||||||
        SYMBOL=$AUDIO_HIGH_SYMBOL
 | 
					 | 
				
			||||||
        [[ $VOL -le $AUDIO_MED_THRESH ]] && SYMBOL=$AUDIO_MED_SYMBOL
 | 
					 | 
				
			||||||
        [[ $VOL -le $AUDIO_LOW_THRESH ]] && SYMBOL=$AUDIO_LOW_SYMBOL
 | 
					 | 
				
			||||||
        COLOR=$DEFAULT_COLOR
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
        SYMBOL=$AUDIO_MUTED_SYMBOL
 | 
					 | 
				
			||||||
        COLOR=$MUTED_COLOR
 | 
					 | 
				
			||||||
        VOL=""
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#    if [[ $SUBSCRIBE == 1 ]] ; then
 | 
					 | 
				
			||||||
#        print_format "$LONG_FORMAT"
 | 
					 | 
				
			||||||
#    else
 | 
					 | 
				
			||||||
#        print_format "$LONG_FORMAT"
 | 
					 | 
				
			||||||
        print_format "$SHORT_FORMAT"
 | 
					 | 
				
			||||||
#        echo "$COLOR"
 | 
					 | 
				
			||||||
#    fi
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
print_block
 | 
					 | 
				
			||||||
if [[ $SUBSCRIBE == 1 ]] ; then
 | 
					 | 
				
			||||||
    while read -r EVENT; do
 | 
					 | 
				
			||||||
        print_block
 | 
					 | 
				
			||||||
    done < <(pactl subscribe | stdbuf -oL grep change)
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
@@ -1,46 +0,0 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					 | 
				
			||||||
# Copyright (C) 2014 Alexander Keller <github@nycroth.com>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This program is free software: you can redistribute it and/or modify
 | 
					 | 
				
			||||||
# it under the terms of the GNU General Public License as published by
 | 
					 | 
				
			||||||
# the Free Software Foundation, either version 3 of the License, or
 | 
					 | 
				
			||||||
# (at your option) any later version.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This program is distributed in the hope that it will be useful,
 | 
					 | 
				
			||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					 | 
				
			||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
					 | 
				
			||||||
# GNU General Public License for more details.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# You should have received a copy of the GNU General Public License
 | 
					 | 
				
			||||||
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#------------------------------------------------------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
INTERFACE="${BLOCK_INSTANCE:-wlan0}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#------------------------------------------------------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# As per #36 -- It is transparent: e.g. if the machine has no battery or wireless
 | 
					 | 
				
			||||||
# connection (think desktop), the corresponding block should not be displayed.
 | 
					 | 
				
			||||||
[[ ! -d /sys/class/net/${INTERFACE}/wireless ]] ||
 | 
					 | 
				
			||||||
    [[ "$(cat /sys/class/net/$INTERFACE/operstate)" = 'down' ]] && exit
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#------------------------------------------------------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
QUALITY=$(grep $INTERFACE /proc/net/wireless | awk '{ print int($3 * 100 / 70) }')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#------------------------------------------------------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
echo $QUALITY% # full text
 | 
					 | 
				
			||||||
echo $QUALITY% # short text
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# color
 | 
					 | 
				
			||||||
if [[ $QUALITY -ge 80 ]]; then
 | 
					 | 
				
			||||||
    echo "#00FF00"
 | 
					 | 
				
			||||||
elif [[ $QUALITY -lt 80 ]]; then
 | 
					 | 
				
			||||||
    echo "#FFF600"
 | 
					 | 
				
			||||||
elif [[ $QUALITY -lt 60 ]]; then
 | 
					 | 
				
			||||||
    echo "#FFAE00"
 | 
					 | 
				
			||||||
elif [[ $QUALITY -lt 40 ]]; then
 | 
					 | 
				
			||||||
    echo "#FF0000"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
@@ -1,193 +0,0 @@
 | 
				
			|||||||
# i3 config file (v4)
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set $mod Mod4
 | 
					 | 
				
			||||||
floating_modifier $mod
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
font pango:Noto Sans 9
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# kill focused window
 | 
					 | 
				
			||||||
bindsym $mod+apostrophe kill
 | 
					 | 
				
			||||||
bindsym Mod1+F4 kill
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# change window focus
 | 
					 | 
				
			||||||
bindsym $mod+d focus left
 | 
					 | 
				
			||||||
bindsym $mod+n focus right
 | 
					 | 
				
			||||||
bindsym $mod+t focus up
 | 
					 | 
				
			||||||
bindsym $mod+h focus down
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# move focused window
 | 
					 | 
				
			||||||
bindsym $mod+Shift+d move left
 | 
					 | 
				
			||||||
bindsym $mod+Shift+n move down
 | 
					 | 
				
			||||||
bindsym $mod+Shift+t move up
 | 
					 | 
				
			||||||
bindsym $mod+Shift+h move right
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# split in horizontal orientation
 | 
					 | 
				
			||||||
bindsym $mod+m split h
 | 
					 | 
				
			||||||
bindsym $mod+w split v
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# enter fullscreen mode for the focused container
 | 
					 | 
				
			||||||
bindsym $mod+Shift+f fullscreen toggle global
 | 
					 | 
				
			||||||
bindsym $mod+f fullscreen toggle
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# change container layout (stacked, tabbed, toggle split)
 | 
					 | 
				
			||||||
bindsym $mod+p layout stacking
 | 
					 | 
				
			||||||
bindsym $mod+comma layout tabbed
 | 
					 | 
				
			||||||
bindsym $mod+period layout toggle split
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# toggle tiling / floating
 | 
					 | 
				
			||||||
bindsym $mod+u floating toggle
 | 
					 | 
				
			||||||
bindsym $mod+e sticky toggle
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# focus the parent container
 | 
					 | 
				
			||||||
bindsym $mod+a focus parent
 | 
					 | 
				
			||||||
bindsym $mod+o focus child
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set $surf eDP1
 | 
					 | 
				
			||||||
set $hdmi HDMI1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Workspace -> Screen
 | 
					 | 
				
			||||||
workspace 1 output $hdmi
 | 
					 | 
				
			||||||
workspace 5 output $surf
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# switch to workspace
 | 
					 | 
				
			||||||
bindsym $mod+1 workspace 1
 | 
					 | 
				
			||||||
bindsym $mod+2 workspace 2
 | 
					 | 
				
			||||||
bindsym $mod+3 workspace 3
 | 
					 | 
				
			||||||
bindsym $mod+4 workspace 4
 | 
					 | 
				
			||||||
bindsym $mod+5 workspace 5
 | 
					 | 
				
			||||||
bindsym $mod+6 workspace 6
 | 
					 | 
				
			||||||
bindsym $mod+7 workspace 7
 | 
					 | 
				
			||||||
bindsym $mod+8 workspace 8
 | 
					 | 
				
			||||||
bindsym $mod+9 workspace 9
 | 
					 | 
				
			||||||
bindsym $mod+0 workspace 10
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# move workspaces across screens
 | 
					 | 
				
			||||||
bindsym $mod+Mod1+d move workspace to output left
 | 
					 | 
				
			||||||
bindsym $mod+Mod1+n move workspace to output right
 | 
					 | 
				
			||||||
bindsym $mod+Mod1+t move workspace to output up
 | 
					 | 
				
			||||||
bindsym $mod+Mod1+h move workspace to output down
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# move focused container to workspace
 | 
					 | 
				
			||||||
bindsym $mod+Shift+1 move container to workspace 1
 | 
					 | 
				
			||||||
bindsym $mod+Shift+2 move container to workspace 2
 | 
					 | 
				
			||||||
bindsym $mod+Shift+3 move container to workspace 3
 | 
					 | 
				
			||||||
bindsym $mod+Shift+4 move container to workspace 4
 | 
					 | 
				
			||||||
bindsym $mod+Shift+5 move container to workspace 5
 | 
					 | 
				
			||||||
bindsym $mod+Shift+6 move container to workspace 6
 | 
					 | 
				
			||||||
bindsym $mod+Shift+7 move container to workspace 7
 | 
					 | 
				
			||||||
bindsym $mod+Shift+8 move container to workspace 8
 | 
					 | 
				
			||||||
bindsym $mod+Shift+9 move container to workspace 9
 | 
					 | 
				
			||||||
bindsym $mod+Shift+0 move container to workspace 10
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# opens logout/shutdown menu
 | 
					 | 
				
			||||||
bindsym $mod+Shift+Escape exec --no-startup-id ~/.config/i3/powermenu.sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set $bg-color            #2f343f
 | 
					 | 
				
			||||||
set $inactive-bg-color   #2f343f
 | 
					 | 
				
			||||||
set $text-color          #f3f4f5
 | 
					 | 
				
			||||||
set $inactive-text-color #676E7D
 | 
					 | 
				
			||||||
set $urgent-bg-color     #E53935
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# window colors
 | 
					 | 
				
			||||||
#                       border              background         text                 indicator
 | 
					 | 
				
			||||||
client.focused          $bg-color           $bg-color          $text-color          $bg-color
 | 
					 | 
				
			||||||
client.unfocused        $inactive-bg-color  $inactive-bg-color $inactive-text-color $bg-color
 | 
					 | 
				
			||||||
client.focused_inactive $inactive-bg-color  $inactive-bg-color $inactive-text-color $bg-color
 | 
					 | 
				
			||||||
client.urgent           $urgent-bg-color    $urgent-bg-color   $text-color          $bg-color
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
bar {
 | 
					 | 
				
			||||||
    status_command i3blocks -c ~/.config/i3/blocks/config
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    workspace_buttons yes
 | 
					 | 
				
			||||||
    strip_workspace_numbers yes
 | 
					 | 
				
			||||||
    tray_output $hdmi
 | 
					 | 
				
			||||||
    tray_padding 2
 | 
					 | 
				
			||||||
    position top
 | 
					 | 
				
			||||||
    height 20
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    colors {
 | 
					 | 
				
			||||||
        separator #757575
 | 
					 | 
				
			||||||
        background #2f343f
 | 
					 | 
				
			||||||
        #                  border             background         text
 | 
					 | 
				
			||||||
        focused_workspace  $bg-color          $bg-color          $text-color
 | 
					 | 
				
			||||||
        inactive_workspace $inactive-bg-color $inactive-bg-color $inactive-text-color
 | 
					 | 
				
			||||||
        urgent_workspace   $urgent-bg-color   $urgent-bg-color   $text-color
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Window rules
 | 
					 | 
				
			||||||
for_window [class="Pinentry"] floating enable
 | 
					 | 
				
			||||||
for_window [class="Pavucontrol"] floating enable
 | 
					 | 
				
			||||||
for_window [class="Blueman-manager"] floating enable
 | 
					 | 
				
			||||||
for_window [window_role="floating-term"] floating enable
 | 
					 | 
				
			||||||
for_window [window_role="pop-up"] floating enable
 | 
					 | 
				
			||||||
for_window [window_role="i3blocks-update-term"] floating enable
 | 
					 | 
				
			||||||
for_window [window_role="i3blocks-clock-term"] floating enable
 | 
					 | 
				
			||||||
for_window [title="^rofi$"] floating enable
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
new_window pixel 5
 | 
					 | 
				
			||||||
new_float none
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
gaps inner 7
 | 
					 | 
				
			||||||
gaps outer 2
 | 
					 | 
				
			||||||
#smart_gaps on
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
focus_follows_mouse yes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# keybindings
 | 
					 | 
				
			||||||
bindsym $mod+Shift+j reload
 | 
					 | 
				
			||||||
#bindsym $mod+Shift+p restart
 | 
					 | 
				
			||||||
bindsym $mod+c       exec chromium
 | 
					 | 
				
			||||||
bindsym $mod+v       exec "i3-sensible-terminal -e \\"$SHELL -c vim;$SHELL\\"
 | 
					 | 
				
			||||||
bindsym $mod+Ctrl+v  exec "i3-sensible-terminal -r floating-term -e \\"$SHELL -c vim;$SHELL\\"
 | 
					 | 
				
			||||||
bindsym Mod1+Tab     exec ~/.config/i3/alt-tab.sh
 | 
					 | 
				
			||||||
bindsym $mod+Return  exec i3-sensible-terminal
 | 
					 | 
				
			||||||
bindsym $mod+Ctrl+Return  exec i3-sensible-terminal -r floating-term  --geometry 96x30
 | 
					 | 
				
			||||||
bindsym $mod+Shift+Return  exec i3-sensible-terminal -d "`xcwd`"
 | 
					 | 
				
			||||||
bindsym $mod+Ctrl+Shift+Return  exec i3-sensible-terminal -r floating-term  --geometry 96x30 -d "`xcwd`"
 | 
					 | 
				
			||||||
bindsym $mod+l       exec ~/.config/i3/lock.sh
 | 
					 | 
				
			||||||
# -fg "#CCD3DAE3" -bg "#CC383C4A" -hlbg "#CC5294E2" 
 | 
					 | 
				
			||||||
bindsym $mod+space   exec "pkill rofi; rofi -show run -sidebar-mode -terminal i3-sensible-terminal -normal-window"
 | 
					 | 
				
			||||||
bindsym $mod+Shift+p exec rofi-pass
 | 
					 | 
				
			||||||
bindsym $mod+Shift+e exec rofi-emoji
 | 
					 | 
				
			||||||
bindsym --release Print        exec imgur-screenshot
 | 
					 | 
				
			||||||
bindsym --release $mod+Print   exec imgur-screenshot -f
 | 
					 | 
				
			||||||
bindsym $mod+Mod1+space exec --no-startup-id ~/.config/i3/cycleaudio.py && pkill -RTMIN+10 i3blocks
 | 
					 | 
				
			||||||
bindsym $mod+numbersign exec "termite -e 'sh -c xclip\ -o\ |\ gpg\ --decrypt\ 2>&1\ \;\ $SHELL'"
 | 
					 | 
				
			||||||
bindsym $mod+r       exec "bash -c 'pwgen -nc 32 1 | tee >(xargs notify-send Generated\ password\:) | xclip -i'"
 | 
					 | 
				
			||||||
bindsym $mod+g       exec "LINK=$(gist -PRpc); notify-send -c transfer \\"<a href=\\\\"$LINK\\\\">$LINK</a>\\""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Media player controls
 | 
					 | 
				
			||||||
bindsym XF86AudioPlay  exec --no-startup-id mpc toggle
 | 
					 | 
				
			||||||
bindsym XF86AudioPause exec --no-startup-id mpc pause
 | 
					 | 
				
			||||||
bindsym XF86AudioStop  exec --no-startup-id mpc stop
 | 
					 | 
				
			||||||
bindsym XF86AudioNext  exec --no-startup-id mpc next
 | 
					 | 
				
			||||||
bindsym XF86AudioPrev  exec --no-startup-id mpc previous
 | 
					 | 
				
			||||||
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@  +1000
 | 
					 | 
				
			||||||
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@  -1000
 | 
					 | 
				
			||||||
bindsym XF86AudioMute        exec --no-startup-id pactl set-sink-mute   @DEFAULT_SINK@ toggle
 | 
					 | 
				
			||||||
bindsym XF86MonBrightnessUp  exec xbacklight -inc 5 && pkill -RTMIN+12 i3blocks
 | 
					 | 
				
			||||||
bindsym XF86MonBrightnessDown exec xbacklight -dec 5 && pkill -RTMIN+12 i3blocks
 | 
					 | 
				
			||||||
exec --no-startup-id "ip monitor | while read; do pkill -RTMIN+15 i3blocks; done"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# app launch shortcuts
 | 
					 | 
				
			||||||
exec --no-startup-id ~/.fehbg
 | 
					 | 
				
			||||||
exec --no-startup-id ~/.config/i3/disable-standby-fs.py
 | 
					 | 
				
			||||||
exec --no-startup-id xautolock -time 5 -locker ~/.config/i3/lock.sh -nocloseout -nocloseerr
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# startup programs
 | 
					 | 
				
			||||||
exec --no-startup-id pulseaudio
 | 
					 | 
				
			||||||
exec --no-startup-id nextcloud
 | 
					 | 
				
			||||||
exec --no-startup-id blueman-applet
 | 
					 | 
				
			||||||
exec --no-startup-id redshift
 | 
					 | 
				
			||||||
exec --no-startup-id xbindkeys
 | 
					 | 
				
			||||||
exec --no-startup-id onboard
 | 
					 | 
				
			||||||
exec --no-startup-id compton -b --config ~/.config/compton.conf
 | 
					 | 
				
			||||||
exec --no-startup-id chromium --no-startup-window
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
exec i3-msg 'workspace 1; exec sleep 2 && chromium'
 | 
					 | 
				
			||||||
exec i3-msg 'workspace 2; exec i3-sensible-terminal'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# vim:ft=i3
 | 
					 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 7.8 KiB  | 
@@ -1,40 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
icon="$HOME/.config/i3/lock.png"
 | 
					 | 
				
			||||||
tmpbg='/tmp/screen.png'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
(( $# )) && { icon=$1; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
PX=0
 | 
					 | 
				
			||||||
PY=0
 | 
					 | 
				
			||||||
# lockscreen image info
 | 
					 | 
				
			||||||
R=$(file $icon | grep -o '[0-9]* x [0-9]*')
 | 
					 | 
				
			||||||
RX=$(echo $R | cut -d' ' -f 1)
 | 
					 | 
				
			||||||
RY=$(echo $R | cut -d' ' -f 3)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RES=$(xrandr --query | grep ' connected primary' | cut -f4 -d' ')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# monitor position/offset
 | 
					 | 
				
			||||||
SRX=$(echo $RES | cut -d'x' -f 1)                   # x pos
 | 
					 | 
				
			||||||
SRY=$(echo $RES | cut -d'x' -f 2 | cut -d'+' -f 1)  # y pos
 | 
					 | 
				
			||||||
SROX=$(echo $RES | cut -d'x' -f 2 | cut -d'+' -f 2) # x offset
 | 
					 | 
				
			||||||
SROY=$(echo $RES | cut -d'x' -f 2 | cut -d'+' -f 3) # y offset
 | 
					 | 
				
			||||||
PX=$(($SROX + $SRX/2 - $RX/2))
 | 
					 | 
				
			||||||
PY=$(($SROY + $SRY/2 - $RY/2))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# screenshot, pixelise and overlay
 | 
					 | 
				
			||||||
maim | convert - -scale 5% -scale 2000% $icon -geometry +$PX+$PY -composite -matte $tmpbg
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if command mpc 2>&1 1>/dev/null; then
 | 
					 | 
				
			||||||
    playing=$(mpc status | grep playing | wc -l)
 | 
					 | 
				
			||||||
    [[ $playing == 1 ]] && mpc pause
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
i3lock -i "$tmpbg" -n -e
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if command mpc 2>&1 1>/dev/null; then
 | 
					 | 
				
			||||||
    [[ $playing == 1 ]] && mpc play
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
rm "$tmpbg"
 | 
					 | 
				
			||||||
@@ -1,18 +0,0 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
option=$(echo "        lock|      logout|       sleep|   hibernate|   power off|      reboot|    windows" | rofi -sep "|" -dmenu -i -p "" -auto-select -hide-scrollbar -monitor 0 -width 8 -lines 6 -location 3 -tokenize false -matching normal | xargs)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
case $option in
 | 
					 | 
				
			||||||
    lock) ./lock.sh;;
 | 
					 | 
				
			||||||
    logout) i3-msg exit;;
 | 
					 | 
				
			||||||
    sleep) systemctl suspend;;
 | 
					 | 
				
			||||||
    hibernate) systemctl hibernate;;
 | 
					 | 
				
			||||||
    power\ off) systemctl poweroff;;
 | 
					 | 
				
			||||||
    reboot) systemctl reboot;;
 | 
					 | 
				
			||||||
    windows)
 | 
					 | 
				
			||||||
        windows=`efibootmgr | grep -Po -m1 'Boot\K(\d{4}).*Windows.*' | head -c4`
 | 
					 | 
				
			||||||
        sudo efibootmgr -n $windows
 | 
					 | 
				
			||||||
        sudo hibereboot;;
 | 
					 | 
				
			||||||
esac
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
exit 0
 | 
					 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 1.1 KiB  | 
@@ -1,20 +0,0 @@
 | 
				
			|||||||
imgur_icon_path="$HOME/.config/imgur-screenshot/imgur.ico"
 | 
					 | 
				
			||||||
imgur_acct_key=""
 | 
					 | 
				
			||||||
imgur_secret=""
 | 
					 | 
				
			||||||
login="false"
 | 
					 | 
				
			||||||
log_file="$HOME/.config/imgur-screenshot/imgur-screenshot.log"
 | 
					 | 
				
			||||||
credentials_file="$HOME/.config/imgur-screenshot/credentials.conf"
 | 
					 | 
				
			||||||
file_name_format="screenshot-%Y-%m-%d-%H%M%S.png" # when using scrot, must end with .png!
 | 
					 | 
				
			||||||
file_dir="$HOME/pictures/screenshots"
 | 
					 | 
				
			||||||
screenshot_select_command="maim -m 10 -us %img"
 | 
					 | 
				
			||||||
screenshot_window_command="maim -m 10 -uw %img"
 | 
					 | 
				
			||||||
edit_command="gimp %img"
 | 
					 | 
				
			||||||
edit="false"
 | 
					 | 
				
			||||||
exit_on_selection_fail="true"
 | 
					 | 
				
			||||||
edit_on_selection_fail="false"
 | 
					 | 
				
			||||||
exit_on_album_creation_fail="true"
 | 
					 | 
				
			||||||
open_command="xdg-open %url"
 | 
					 | 
				
			||||||
open="false"
 | 
					 | 
				
			||||||
copy_url="true"
 | 
					 | 
				
			||||||
keep_file="true"
 | 
					 | 
				
			||||||
check_update="true"
 | 
					 | 
				
			||||||
@@ -1,26 +0,0 @@
 | 
				
			|||||||
!-----------------------------
 | 
					 | 
				
			||||||
! Rofi config
 | 
					 | 
				
			||||||
!-----------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
! State:            'bg',       'fg',     'bgalt'     'hlbg',   'hlfg'
 | 
					 | 
				
			||||||
rofi.color-window:  #F2383C4A,  #2F343F
 | 
					 | 
				
			||||||
rofi.color-normal:  #00383C4A,  #D3DAE3,  #00383C4A,  #5294E2,  #ECEFF1
 | 
					 | 
				
			||||||
rofi.bc:            #CC383C4A
 | 
					 | 
				
			||||||
rofi.bw:            5
 | 
					 | 
				
			||||||
rofi.padding:       8
 | 
					 | 
				
			||||||
rofi.lines:         12
 | 
					 | 
				
			||||||
rofi.width:         40
 | 
					 | 
				
			||||||
rofi.font:          Noto Sans 14
 | 
					 | 
				
			||||||
rofi.line-margin:   6
 | 
					 | 
				
			||||||
rofi.sep:           |
 | 
					 | 
				
			||||||
rofi.prompt:        >
 | 
					 | 
				
			||||||
rofi.ssh-command:   {terminal} -e "{ssh-client} {host}"
 | 
					 | 
				
			||||||
rofi.separator-style: solid
 | 
					 | 
				
			||||||
rofi.kb-row-tab:    Shift+Tab
 | 
					 | 
				
			||||||
rofi.kb-row-select: Tab
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
rofi.matching:      glob
 | 
					 | 
				
			||||||
rofi.tokenize:      true
 | 
					 | 
				
			||||||
rofi.normal-window: true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
! vim: ft=xdefaults
 | 
					 | 
				
			||||||
@@ -1,10 +0,0 @@
 | 
				
			|||||||
[Unit]
 | 
					 | 
				
			||||||
Description=Lock X session using i3lock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[Service]
 | 
					 | 
				
			||||||
User=%i
 | 
					 | 
				
			||||||
Environment=DISPLAY=:0
 | 
					 | 
				
			||||||
ExecStart=sh -c '~/.config/i3/lock.sh'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[Install]
 | 
					 | 
				
			||||||
WantedBy=sleep.target
 | 
					 | 
				
			||||||
@@ -1,83 +0,0 @@
 | 
				
			|||||||
# ZSH Theme emulating the Fish shell's default prompt.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
_fishy_collapsed_wd() {
 | 
					 | 
				
			||||||
  echo $(pwd | perl -pe '
 | 
					 | 
				
			||||||
   BEGIN {
 | 
					 | 
				
			||||||
      binmode STDIN,  ":encoding(UTF-8)";
 | 
					 | 
				
			||||||
      binmode STDOUT, ":encoding(UTF-8)";
 | 
					 | 
				
			||||||
   }; s|^$ENV{HOME}|~|g; s|/([^/.])[^/]*(?=/)|/$1|g; s|/\.([^/])[^/]*(?=/)|/.$1|g
 | 
					 | 
				
			||||||
')
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
git_prompt_info() {
 | 
					 | 
				
			||||||
  ref=$(git symbolic-ref HEAD 2> /dev/null) || return
 | 
					 | 
				
			||||||
  echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$ZSH_THEME_GIT_PROMPT_SUFFIX"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
git_prompt_status() {
 | 
					 | 
				
			||||||
    # Get the status of the working tree
 | 
					 | 
				
			||||||
    INDEX=$(command git status --porcelain -b 2> /dev/null)
 | 
					 | 
				
			||||||
    STATUS=""
 | 
					 | 
				
			||||||
    if $(echo "$INDEX" | grep -E '^\?\? ' &> /dev/null); then
 | 
					 | 
				
			||||||
      STATUS="$ZSH_THEME_GIT_PROMPT_UNTRACKED$STATUS"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    if $(echo "$INDEX" | grep '^A  ' &> /dev/null); then
 | 
					 | 
				
			||||||
      STATUS="$ZSH_THEME_GIT_PROMPT_ADDED$STATUS"
 | 
					 | 
				
			||||||
    elif $(echo "$INDEX" | grep '^M  ' &> /dev/null); then
 | 
					 | 
				
			||||||
      STATUS="$ZSH_THEME_GIT_PROMPT_ADDED$STATUS"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    if $(echo "$INDEX" | grep '^ M ' &> /dev/null); then
 | 
					 | 
				
			||||||
      STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
 | 
					 | 
				
			||||||
    elif $(echo "$INDEX" | grep '^AM ' &> /dev/null); then
 | 
					 | 
				
			||||||
      STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
 | 
					 | 
				
			||||||
    elif $(echo "$INDEX" | grep '^ T ' &> /dev/null); then
 | 
					 | 
				
			||||||
      STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    if $(echo "$INDEX" | grep '^R  ' &> /dev/null); then
 | 
					 | 
				
			||||||
      STATUS="$ZSH_THEME_GIT_PROMPT_RENAMED$STATUS"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    if $(echo "$INDEX" | grep '^ D ' &> /dev/null); then
 | 
					 | 
				
			||||||
      STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
 | 
					 | 
				
			||||||
    elif $(echo "$INDEX" | grep '^D  ' &> /dev/null); then
 | 
					 | 
				
			||||||
      STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
 | 
					 | 
				
			||||||
    elif $(echo "$INDEX" | grep '^AD ' &> /dev/null); then
 | 
					 | 
				
			||||||
      STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    if $(command git rev-parse --verify refs/stash >/dev/null 2>&1); then
 | 
					 | 
				
			||||||
      STATUS="$ZSH_THEME_GIT_PROMPT_STASHED$STATUS"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    if $(echo "$INDEX" | grep '^UU ' &> /dev/null); then
 | 
					 | 
				
			||||||
      STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$STATUS"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    if $(echo "$INDEX" | grep '^## .*ahead' &> /dev/null); then
 | 
					 | 
				
			||||||
      STATUS="$ZSH_THEME_GIT_PROMPT_AHEAD$STATUS"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    if $(echo "$INDEX" | grep '^## .*behind' &> /dev/null); then
 | 
					 | 
				
			||||||
      STATUS="$ZSH_THEME_GIT_PROMPT_BEHIND$STATUS"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    if $(echo "$INDEX" | grep '^## .*diverged' &> /dev/null); then
 | 
					 | 
				
			||||||
      STATUS="$ZSH_THEME_GIT_PROMPT_DIVERGED$STATUS"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    echo $STATUS
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Required for dynamic prompt
 | 
					 | 
				
			||||||
setopt prompt_subst
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
local user_color='green'; [ $UID -eq 0 ] && user_color='red'
 | 
					 | 
				
			||||||
PROMPT="%n@%m %F{$user_color}\$(_fishy_collapsed_wd)%f%(!.#.>) "
 | 
					 | 
				
			||||||
PROMPT2='%F{red}\ %f'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
local return_status="%F{red}%(?..%?)%f"
 | 
					 | 
				
			||||||
RPROMPT='${return_status}$(git_prompt_info)$(git_prompt_status)%{$reset_color%}'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ZSH_THEME_GIT_PROMPT_PREFIX=" "
 | 
					 | 
				
			||||||
ZSH_THEME_GIT_PROMPT_SUFFIX=""
 | 
					 | 
				
			||||||
ZSH_THEME_GIT_PROMPT_DIRTY=""
 | 
					 | 
				
			||||||
ZSH_THEME_GIT_PROMPT_CLEAN=""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ZSH_THEME_GIT_PROMPT_ADDED="%{$fg_bold[green]%}+"
 | 
					 | 
				
			||||||
ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg_bold[blue]%}!"
 | 
					 | 
				
			||||||
ZSH_THEME_GIT_PROMPT_DELETED="%{$fg_bold[red]%}-"
 | 
					 | 
				
			||||||
ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg_bold[magenta]%}>"
 | 
					 | 
				
			||||||
ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg_bold[yellow]%}#"
 | 
					 | 
				
			||||||
ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg_bold[cyan]%}?"
 | 
					 | 
				
			||||||
							
								
								
									
										2
									
								
								.fehbg
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								.fehbg
									
									
									
									
									
								
							@@ -1,2 +0,0 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					 | 
				
			||||||
'feh' '--no-xinerama' '--bg-fill' '/home/frebib/pictures/lakesidesunrise.jpg' 
 | 
					 | 
				
			||||||
							
								
								
									
										5
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,6 +1,11 @@
 | 
				
			|||||||
bookmarks
 | 
					bookmarks
 | 
				
			||||||
.config/secrets
 | 
					.config/secrets
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.config/gopass/gopass-logo-small.png
 | 
				
			||||||
 | 
					.config/gtk-2.0/gtkfilechooser.ini
 | 
				
			||||||
.config/imgur-screenshot/credentials.conf
 | 
					.config/imgur-screenshot/credentials.conf
 | 
				
			||||||
 | 
					.config/mailnag/mailnag.dat
 | 
				
			||||||
 | 
					.config/zsh/.zshrc.zwc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*.log
 | 
					*.log
 | 
				
			||||||
.xournal/recent-files
 | 
					.xournal/recent-files
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										3
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							@@ -1,3 +0,0 @@
 | 
				
			|||||||
[submodule "surface-scripts"]
 | 
					 | 
				
			||||||
	path = surface-scripts
 | 
					 | 
				
			||||||
	url = https://github.com/frebib/surface-scripts.git
 | 
					 | 
				
			||||||
							
								
								
									
										71
									
								
								.profile
									
									
									
									
									
								
							
							
						
						
									
										71
									
								
								.profile
									
									
									
									
									
								
							@@ -1,71 +0,0 @@
 | 
				
			|||||||
export LC_ALL=en_GB.UTF-8
 | 
					 | 
				
			||||||
export LANG=en_GB.UTF-8
 | 
					 | 
				
			||||||
export LC_NUMERIC=en_GB
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export CONFIG_DIR="$HOME/.config"
 | 
					 | 
				
			||||||
export XDG_CONFIG_HOME="$CONFIG_DIR"
 | 
					 | 
				
			||||||
case "$(basename "$(readlink -f /proc/$$/exe)")" in
 | 
					 | 
				
			||||||
    zsh)  thisfile="$(readlink -f "${(%):-%N}")";;
 | 
					 | 
				
			||||||
    bash) thisfile="$(readlink -f "${BASH_SOURCE[0]}")";;
 | 
					 | 
				
			||||||
    *)   thisfile="$(find /proc/$$/fd/ | xargs readlink -f | grep .profile | head -n1)";;
 | 
					 | 
				
			||||||
esac
 | 
					 | 
				
			||||||
export DOTFILES="$(dirname "${thisfile:-$CONFIG_DIR/dotfiles}")"
 | 
					 | 
				
			||||||
export PATH="${PATH}:$DOTFILES/scripts"
 | 
					 | 
				
			||||||
export XDG_CURRENT_DESKTOP="GNOME" # Fixes xdg-open
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Allow Vim to load from ~/.config/vim
 | 
					 | 
				
			||||||
export VIMDIR="$CONFIG_DIR/vim"
 | 
					 | 
				
			||||||
export MYVIMRC="$VIMDIR/vimrc"
 | 
					 | 
				
			||||||
export VIMINIT=":so $MYVIMRC"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export EDITOR="vim"
 | 
					 | 
				
			||||||
export VISUAL="vim"
 | 
					 | 
				
			||||||
export MANPAGER="less -+N"
 | 
					 | 
				
			||||||
export TERMINAL="termite"
 | 
					 | 
				
			||||||
export BROWSER="chromium"
 | 
					 | 
				
			||||||
export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel"
 | 
					 | 
				
			||||||
export QT_QPA_PLATFORMTHEME=gtk2
 | 
					 | 
				
			||||||
export GOPATH="$HOME/.cache/go"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
exists() { which $@ 0<&- 1>/dev/null 2>/dev/null; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export LESS="-RI"
 | 
					 | 
				
			||||||
export PAGER="less $LESS"
 | 
					 | 
				
			||||||
if exists tput; then
 | 
					 | 
				
			||||||
    export LESS_TERMCAP_mb=$(tput bold; tput setaf 2) # green
 | 
					 | 
				
			||||||
    export LESS_TERMCAP_md=$(tput bold; tput setaf 6) # cyan
 | 
					 | 
				
			||||||
    export LESS_TERMCAP_me=$(tput sgr0)
 | 
					 | 
				
			||||||
    export LESS_TERMCAP_so=$(tput bold; tput setaf 4) # blue
 | 
					 | 
				
			||||||
    export LESS_TERMCAP_se=$(tput rmso; tput sgr0)
 | 
					 | 
				
			||||||
    export LESS_TERMCAP_us=$(tput smul; tput bold; tput setaf 7) # white
 | 
					 | 
				
			||||||
    export LESS_TERMCAP_ue=$(tput rmul; tput sgr0)
 | 
					 | 
				
			||||||
    export LESS_TERMCAP_mr=$(tput rev)
 | 
					 | 
				
			||||||
    export LESS_TERMCAP_mh=$(tput dim)
 | 
					 | 
				
			||||||
    export LESS_TERMCAP_ZN=$(tput ssubm)
 | 
					 | 
				
			||||||
    export LESS_TERMCAP_ZV=$(tput rsubm)
 | 
					 | 
				
			||||||
    export LESS_TERMCAP_ZO=$(tput ssupm)
 | 
					 | 
				
			||||||
    export LESS_TERMCAP_ZW=$(tput rsupm)
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Source secret keys and values into environment
 | 
					 | 
				
			||||||
if [ -f "$CONFIG_DIR/secrets" ]; then
 | 
					 | 
				
			||||||
    set -o allexport
 | 
					 | 
				
			||||||
    source $CONFIG_DIR/secrets
 | 
					 | 
				
			||||||
    set +o allexport
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Merge system clipboards
 | 
					 | 
				
			||||||
if [ -n "$DISPLAY" ] && exists autocutsel && ! pidof autocutsel 1>/dev/null; then
 | 
					 | 
				
			||||||
    autocutsel -fork
 | 
					 | 
				
			||||||
    autocutsel -selection PRIMARY -fork
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [ -z "$DBUS_SESSION_BUS_ADDRESS" ] && exists dbus-launch; then
 | 
					 | 
				
			||||||
    eval $(dbus-launch --sh-syntax --exit-with-session)
 | 
					 | 
				
			||||||
    dbus-update-activation-environment --systemd DISPLAY
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Start the gnome-keyring if it's installed
 | 
					 | 
				
			||||||
if exists gnome-keyring-daemon; then
 | 
					 | 
				
			||||||
    export $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh,gnupg)
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
@@ -1,5 +0,0 @@
 | 
				
			|||||||
setxkbmap -option caps:none
 | 
					 | 
				
			||||||
xset r rate 200 18
 | 
					 | 
				
			||||||
xrandr --dpi 96
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
~/.local/share/surface-scripts/pend &
 | 
					 | 
				
			||||||
							
								
								
									
										124
									
								
								.zshrc
									
									
									
									
									
								
							
							
						
						
									
										124
									
								
								.zshrc
									
									
									
									
									
								
							@@ -1,124 +0,0 @@
 | 
				
			|||||||
unsetopt MULTIBYTE
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Config and cache directory paths
 | 
					 | 
				
			||||||
CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}"
 | 
					 | 
				
			||||||
ZSH_DIR="$CONFIG_DIR/zsh"
 | 
					 | 
				
			||||||
ZSH_CACHE_DIR="$CONFIG_DIR/oh-my-zsh/cache"
 | 
					 | 
				
			||||||
ADOTDIR="$ZSH_DIR/antigen" # Antigen directory
 | 
					 | 
				
			||||||
LOG_DIR="$ZSH_DIR/log"
 | 
					 | 
				
			||||||
ANTIGEN_LOG="$LOG_DIR/antigen-$(date +"%Y_%m_%d_%I_%M_%p").log"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
mkdir -p "$ZSH_CACHE_DIR" "$ZSH_DIR" "$LOG_DIR"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
HISTFILE="$ZSH_DIR/histfile"
 | 
					 | 
				
			||||||
HISTSIZE=999999
 | 
					 | 
				
			||||||
SAVEHIST=999999
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
exists() { which $@ 0<&- 1>/dev/null 2>/dev/null; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Only set tty if running interactively
 | 
					 | 
				
			||||||
if exists tty && tty -s; then
 | 
					 | 
				
			||||||
    # Resolve at shell runtime
 | 
					 | 
				
			||||||
    export GPG_TTY="$(tty)"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Set some useful ZSH/Bash options
 | 
					 | 
				
			||||||
setopt sharehistory histignorealldups histignorespace histreduceblanks
 | 
					 | 
				
			||||||
setopt pathdirs autocd autopushd extendedglob alwaystoend dvorak
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Completion initialisation
 | 
					 | 
				
			||||||
autoload -U compinit ; compinit
 | 
					 | 
				
			||||||
autoload -U bashcompinit ; bashcompinit
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# gopass completion
 | 
					 | 
				
			||||||
if exists gopass; then
 | 
					 | 
				
			||||||
    source <(gopass completion bash)
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
zstyle ':completion:*:sudo|_::' environ PATH="/sbin:/usr/sbin:$PATH" HOME="/root"
 | 
					 | 
				
			||||||
zstyle ':completion:*' matcher-list '' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'r:|[._-]=** r:|=**' 'l:|=* r:|=*'
 | 
					 | 
				
			||||||
zstyle ':completion:*' rehash true
 | 
					 | 
				
			||||||
zstyle ':completion:*' menu select
 | 
					 | 
				
			||||||
zstyle ':completion:*' list-colors "${(@s.:.)LS_COLORS}"
 | 
					 | 
				
			||||||
zstyle ':compinstall'  filename "$HOME/.zshrc"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Load antigen & plugins
 | 
					 | 
				
			||||||
antigen_src="$ADOTDIR/antigen.zsh"
 | 
					 | 
				
			||||||
if [ ! -f "$antigen_src" ]; then
 | 
					 | 
				
			||||||
    git clone https://github.com/zsh-users/antigen.git "$ADOTDIR"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
source "$antigen_src"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
antigen bundle zsh-users/zsh-completions
 | 
					 | 
				
			||||||
antigen bundle zsh-users/zsh-autosuggestions
 | 
					 | 
				
			||||||
antigen bundle Tarrasch/zsh-syntax-highlighting
 | 
					 | 
				
			||||||
antigen bundle zsh-users/zsh-history-substring-search
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
antigen apply
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Set some key-binds
 | 
					 | 
				
			||||||
bindkey -e
 | 
					 | 
				
			||||||
bindkey "^[[1;3C" forward-word
 | 
					 | 
				
			||||||
bindkey "^[[1;5C" forward-word
 | 
					 | 
				
			||||||
bindkey "^[[1;3D" backward-word
 | 
					 | 
				
			||||||
bindkey "^[[1;5D" backward-word
 | 
					 | 
				
			||||||
bindkey "^[[7~" beginning-of-line
 | 
					 | 
				
			||||||
bindkey "^[[8~" end-of-line
 | 
					 | 
				
			||||||
bindkey "^[[3~" delete-char
 | 
					 | 
				
			||||||
bindkey "^[[3;3~" delete-word
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export WORDCHARS='*?_[]~=&;!#$%^(){}'
 | 
					 | 
				
			||||||
x-bash-backward-kill-word(){
 | 
					 | 
				
			||||||
    WORDCHARS='' zle kill-word
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
zle -N x-bash-backward-kill-word
 | 
					 | 
				
			||||||
bindkey '^[^[[3~' x-bash-backward-kill-word
 | 
					 | 
				
			||||||
bindkey '^[^[[3^' x-bash-backward-kill-word
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
bindkey '^[[A' history-substring-search-up
 | 
					 | 
				
			||||||
bindkey '^[[B' history-substring-search-down
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ZSH_AUTOSUGGEST_CLEAR_WIDGETS=("${(@)ZSH_AUTOSUGGEST_CLEAR_WIDGETS:#(up|down)-line-or-history}")
 | 
					 | 
				
			||||||
ZSH_AUTOSUGGEST_CLEAR_WIDGETS+=(history-substring-search-up history-substring-search-down)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
HISTORY_SUBSTRING_SEARCH_FUZZY=true
 | 
					 | 
				
			||||||
HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE=true
 | 
					 | 
				
			||||||
HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='underline'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
typeset -A ZSH_HIGHLIGHT_STYLES
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[default]='fg=12'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[unknown-token]='fg=red,bold'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[reserved-word]='fg=yellow'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[alias]='fg=blue'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[suffix-alias]='fg=green,underline'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[builtin]='fg=blue'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[function]='fg=blue'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[command]='fg=blue'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[precommand]='fg=blue'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[commandseparator]='fg=cyan'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[hashed-command]='fg=green'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[path]='fg=blue'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[path_prefix]='fg=yellow,bold'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[globbing]='fg=red'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[comment]='fg=7'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[history-expansion]='fg=blue'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]='fg=12'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]='fg=12'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[back-quoted-argument]='fg=magenta'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[single-quoted-argument]='fg=yellow'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[double-quoted-argument]='fg=yellow'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]='fg=yellow'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]='fg=cyan'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]='fg=cyan'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]='fg=cyan'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[assign]='fg=green'
 | 
					 | 
				
			||||||
ZSH_HIGHLIGHT_STYLES[redirection]='fg=cyan'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
source "$DOTFILES/aliases"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Load some manual plugins
 | 
					 | 
				
			||||||
source "$ZSH_DIR/plugins/sudo.zsh"
 | 
					 | 
				
			||||||
source "$ZSH_DIR/plugins/fish-theme.zsh"
 | 
					 | 
				
			||||||
							
								
								
									
										3
									
								
								Element/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								Element/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					*
 | 
				
			||||||
 | 
					!.gitignore
 | 
				
			||||||
 | 
					!config.json
 | 
				
			||||||
							
								
								
									
										88
									
								
								Element/config.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								Element/config.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,88 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					    "default_server_config": {
 | 
				
			||||||
 | 
					        "m.homeserver": {
 | 
				
			||||||
 | 
					            "base_url": "https://chat.nerdhouse.io/",
 | 
				
			||||||
 | 
					            "server_name": "chat.nerdhouse.io"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "m.identity_server": {
 | 
				
			||||||
 | 
					            "base_url": "https://chat.nerdhouse.io/"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "disable_custom_urls": false,
 | 
				
			||||||
 | 
					    "disable_guests": false,
 | 
				
			||||||
 | 
					    "disable_login_language_selector": false,
 | 
				
			||||||
 | 
					    "disable_3pid_login": false,
 | 
				
			||||||
 | 
					    "brand": "NerdChat",
 | 
				
			||||||
 | 
					    "integrations_ui_url": "https://scalar.vector.im/",
 | 
				
			||||||
 | 
					    "integrations_rest_url": "https://scalar.vector.im/api",
 | 
				
			||||||
 | 
					    "integrations_widgets_urls": [
 | 
				
			||||||
 | 
					        "https://scalar.vector.im/_matrix/integrations/v1",
 | 
				
			||||||
 | 
					        "https://scalar.vector.im/api",
 | 
				
			||||||
 | 
					        "https://scalar-staging.vector.im/_matrix/integrations/v1",
 | 
				
			||||||
 | 
					        "https://scalar-staging.vector.im/api",
 | 
				
			||||||
 | 
					        "https://scalar-staging.riot.im/scalar/api"
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    "bug_report_endpoint_url": "https://riot.im/bugreports/submit",
 | 
				
			||||||
 | 
					    "defaultCountryCode": "GB",
 | 
				
			||||||
 | 
					    "showLabsSettings": false,
 | 
				
			||||||
 | 
					    "features": {
 | 
				
			||||||
 | 
					        "feature_font_scaling": "labs",
 | 
				
			||||||
 | 
					        "feature_pinning": "labs",
 | 
				
			||||||
 | 
					        "feature_custom_status": "labs",
 | 
				
			||||||
 | 
					        "feature_custom_tags": "labs",
 | 
				
			||||||
 | 
					        "feature_state_counters": "labs",
 | 
				
			||||||
 | 
					        "feature_irc_ui": "labs"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "default_federate": true,
 | 
				
			||||||
 | 
					    "default_theme": "dark",
 | 
				
			||||||
 | 
					    "roomDirectory": {
 | 
				
			||||||
 | 
					        "servers": [
 | 
				
			||||||
 | 
					            "matrix.org"
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "welcomeUserId": "@riot-bot:matrix.org",
 | 
				
			||||||
 | 
					    "piwik": {
 | 
				
			||||||
 | 
					        "url": "https://piwik.riot.im/",
 | 
				
			||||||
 | 
					        "whitelistedHSUrls": ["https://matrix.org"],
 | 
				
			||||||
 | 
					        "whitelistedISUrls": ["https://vector.im", "https://matrix.org"],
 | 
				
			||||||
 | 
					        "siteId": 1
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "enable_presence_by_hs_url": {
 | 
				
			||||||
 | 
					        "https://matrix.org": false,
 | 
				
			||||||
 | 
					        "https://matrix-client.matrix.org": false
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "settingDefaults": {
 | 
				
			||||||
 | 
					        "breadcrumbs": true,
 | 
				
			||||||
 | 
					        "custom_themes": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "name": "Arc Dark",
 | 
				
			||||||
 | 
					                "is_dark": true,
 | 
				
			||||||
 | 
					                "fonts": {
 | 
				
			||||||
 | 
					                    "general": "sans",
 | 
				
			||||||
 | 
					                    "monospace": "monospace"
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "colors": {
 | 
				
			||||||
 | 
					                    "accent-color": "#5294e2",
 | 
				
			||||||
 | 
					                    "primary-color": "#d3dae3",
 | 
				
			||||||
 | 
					                    "warning-color": "#bf616a",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    "sidebar-color": "#313742",
 | 
				
			||||||
 | 
					                    "roomlist-background-color": "#383c4a",
 | 
				
			||||||
 | 
					                    "roomlist-text-color": "#afb8c5",
 | 
				
			||||||
 | 
					                    "roomlist-text-secondary-color": "#7c818c",
 | 
				
			||||||
 | 
					                    "roomlist-highlights-color": "#404552",
 | 
				
			||||||
 | 
					                    "roomlist-separator-color": "#2F343F",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    "timeline-background-color": "#404552",
 | 
				
			||||||
 | 
					                    "timeline-text-color": "#afb8c5",
 | 
				
			||||||
 | 
					                    "timeline-text-secondary-color": "#7c818c",
 | 
				
			||||||
 | 
					                    "timeline-highlights-color": "#404552",
 | 
				
			||||||
 | 
					                    "reaction-row-button-selected-bg-color": "#bf616a"
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "jitsi": {
 | 
				
			||||||
 | 
					        "preferredDomain": "jitsi.riot.im"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										22
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								README.md
									
									
									
									
									
								
							@@ -1,17 +1,11 @@
 | 
				
			|||||||
These are the configs I use on my Arch Linux installation at home. They can be use and changed as much or as little as you please
 | 
					# frebib/dotfiles
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Usage
 | 
					## Usage
 | 
				
			||||||
To quickly get started, clone this repo and run the setup scripts.
 | 
					To get started, clone this repo and link the relevant files/directories
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    git clone https://github.com/frebib/dotfiles.git ~/.config/dotfiles
 | 
					```shell
 | 
				
			||||||
    cd ~/.config/dotfiles
 | 
					git clone https://github.com/frebib/dotfiles.git ~/.config
 | 
				
			||||||
 | 
					ln -sfv .config/zsh/.zshenv ~
 | 
				
			||||||
You can put the `dotfiles` directory anywhere, just be sure to update the `$DOTFILES` envvar in `.profile`
 | 
					# if it is not already "enabled", make sure the systemd-environment.d generator is active
 | 
				
			||||||
 | 
					sudo ln -sfv /lib/systemd/user-environment-generators/30-systemd-environment-d-generator /lib/systemd/user-generators/
 | 
				
			||||||
To link all the configuration files, run the init-dotfiles script:
 | 
					```
 | 
				
			||||||
 | 
					 | 
				
			||||||
**Be warned that this will destroy your current configs without warning**
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    scripts/init-dotfiles.sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
To install all of my packages & programs, check out my other repo <https://github.com/frebib/arch-install/> and the [`userinstall`](https://github.com/frebib/arch-install/blob/master/userinstall) script
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,4 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Run all system xinitrc shell scripts
 | 
					# Run all system xinitrc shell scripts
 | 
				
			||||||
xinitdir="/etc/X11/xinit/xinitrc.d"
 | 
					xinitdir="/etc/X11/xinit/xinitrc.d"
 | 
				
			||||||
@@ -11,8 +11,12 @@ if [ -d "$xinitdir" ]; then
 | 
				
			|||||||
    done
 | 
					    done
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
source ~/.profile
 | 
					# Source generic xprofile stuff
 | 
				
			||||||
source ~/.xsession
 | 
					source "$(dirname "${BASH_SOURCE[0]}")/xprofile"
 | 
				
			||||||
xrdb -merge ~/.Xresources
 | 
					
 | 
				
			||||||
 | 
					# Start the gnome-keyring if it's installed
 | 
				
			||||||
 | 
					if exists gnome-keyring-daemon; then
 | 
				
			||||||
 | 
					    export $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh,gnupg)
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
exec i3
 | 
					exec i3
 | 
				
			||||||
							
								
								
									
										23
									
								
								X11/xprofile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								X11/xprofile
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					#!/bin/sh -u
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Graphical-specific environment variables
 | 
				
			||||||
 | 
					export TERMINAL="alacritty"
 | 
				
			||||||
 | 
					export BROWSER="firefox"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel"
 | 
				
			||||||
 | 
					export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/settings.ini"
 | 
				
			||||||
 | 
					export QT_QPA_PLATFORMTHEME=qt5ct
 | 
				
			||||||
 | 
					# https://www.reddit.com/r/linux/comments/72mfv8/psa_for_firefox_users_set_moz_use_xinput21_to/
 | 
				
			||||||
 | 
					export MOZ_USE_XINPUT2=1 # enable pixel-accurate scrolling in firefox
 | 
				
			||||||
 | 
					export XDG_CURRENT_DESKTOP="GNOME" # Fixes xdg-open
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Load Xorg resources and set the DPI
 | 
				
			||||||
 | 
					xrdb -merge $XDG_CONFIG_HOME/X11/xresources
 | 
				
			||||||
 | 
					xrandr --dpi $(xrdb -query | grep -i xft.dpi | cut -d: -f2)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					setxkbmap -option caps:none
 | 
				
			||||||
 | 
					xset r rate 200 18
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test -f "$XDG_CONFIG_HOME"/X11/xmodmap && \
 | 
				
			||||||
 | 
					    xmodmap "$XDG_CONFIG_HOME"/X11/xmodmap
 | 
				
			||||||
							
								
								
									
										89
									
								
								X11/xresources
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								X11/xresources
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,89 @@
 | 
				
			|||||||
 | 
					! Colour order:
 | 
				
			||||||
 | 
					!   black
 | 
				
			||||||
 | 
					!   red
 | 
				
			||||||
 | 
					!   green
 | 
				
			||||||
 | 
					!   yellow
 | 
				
			||||||
 | 
					!   blue
 | 
				
			||||||
 | 
					!   magenta
 | 
				
			||||||
 | 
					!   cyan
 | 
				
			||||||
 | 
					!   white/gray
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					! Normal colours
 | 
				
			||||||
 | 
					*.color0:       #333638
 | 
				
			||||||
 | 
					*.color1:       #f41f1c
 | 
				
			||||||
 | 
					*.color2:       #8bc34a
 | 
				
			||||||
 | 
					*.color3:       #ffc107
 | 
				
			||||||
 | 
					*.color4:       #0266f4
 | 
				
			||||||
 | 
					*.color5:       #cc17cc
 | 
				
			||||||
 | 
					*.color6:       #10aeba
 | 
				
			||||||
 | 
					*.color7:       #8b9396
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					! Bright colours
 | 
				
			||||||
 | 
					*.color8:       #475760
 | 
				
			||||||
 | 
					*.color9:       #e53727
 | 
				
			||||||
 | 
					*.color10:      #9ccc65
 | 
				
			||||||
 | 
					*.color11:      #ffa000
 | 
				
			||||||
 | 
					*.color12:      #81b3f9
 | 
				
			||||||
 | 
					*.color13:      #a56ecc
 | 
				
			||||||
 | 
					*.color14:      #5ddae2
 | 
				
			||||||
 | 
					*.color15:      #eceff1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Xft.dpi:        96
 | 
				
			||||||
 | 
					Xft.antialias:  true
 | 
				
			||||||
 | 
					Xft.rgba:       rgb
 | 
				
			||||||
 | 
					Xft.hinting:    true
 | 
				
			||||||
 | 
					Xft.hintstyle:  hintfull
 | 
				
			||||||
 | 
					Xft.lcdfilter:  lcddefault
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Xcursor.theme: Breeze_Obsidian
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					!!======================!!
 | 
				
			||||||
 | 
					!! RXVT-unicode setting !!
 | 
				
			||||||
 | 
					!!======================!!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					urxvt.depth:                32
 | 
				
			||||||
 | 
					urxvt.internalBorder:       16
 | 
				
			||||||
 | 
					urxvt.blurRadius:           25
 | 
				
			||||||
 | 
					urxvt.saveLines:            10000
 | 
				
			||||||
 | 
					urxvt.preeditType:          Root
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					urxvt.scrollBar:            false
 | 
				
			||||||
 | 
					urxvt.jumpScroll:           false
 | 
				
			||||||
 | 
					urxvt.scrollTtyOutput:      false
 | 
				
			||||||
 | 
					urxvt.scrollWithBuffer:     true
 | 
				
			||||||
 | 
					urxvt.scrollTtyKeypress:    true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					urxvt.altSendsEscape:       true
 | 
				
			||||||
 | 
					xterm.metaSendsEscape:      true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					urxvt.termName:             xterm-256color
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					urxvt.font:                 xft:Source Code Pro:style=regular:size=9
 | 
				
			||||||
 | 
					urxvt.imFont:               xft:Source Code Pro:style=regular:size=9
 | 
				
			||||||
 | 
					urxvt.boldFont:             xft:Source Code Pro:style=bold:size=9
 | 
				
			||||||
 | 
					urxvt.italicFont:           xft:Source Code Pro:style=italic:size=9
 | 
				
			||||||
 | 
					urxvt.boldItalicFont:       xft:Source Code Pro:style=bold,italic:size=9
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					urxvt.iso14755:             false
 | 
				
			||||||
 | 
					urxvt.iso14755_52:          false
 | 
				
			||||||
 | 
					urxvt.perl-ext-common:      default,vtwheel,font-size
 | 
				
			||||||
 | 
					urxvt.url-launcher:         /usr/bin/firefox
 | 
				
			||||||
 | 
					urxvt.matcher.button:       1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					urxvt.keysym.C-Up:          font-size:increase
 | 
				
			||||||
 | 
					urxvt.keysym.C-Down:        font-size:decrease
 | 
				
			||||||
 | 
					urxvt.keysym.C-equal:       font-size:reset
 | 
				
			||||||
 | 
					urxvt.keysym.C-slash:       font-size:show
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					! special
 | 
				
			||||||
 | 
					*.foreground:               #ECEFF1
 | 
				
			||||||
 | 
					*.background:               #002B36
 | 
				
			||||||
 | 
					*.cursorColor:              #5294E2
 | 
				
			||||||
 | 
					*.highlightColor:           #5294E2
 | 
				
			||||||
 | 
					urxvt.background:           [95]#383C4A
 | 
				
			||||||
 | 
					urxvt.scrollColor:          #767B87
 | 
				
			||||||
 | 
					urxvt.dynamicColors:        on
 | 
				
			||||||
 | 
					urxvt.highlightSelection:   true
 | 
				
			||||||
 | 
					urxvt.colorMode:            on
 | 
				
			||||||
							
								
								
									
										647
									
								
								alacritty/alacritty.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										647
									
								
								alacritty/alacritty.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,647 @@
 | 
				
			|||||||
 | 
					# Configuration for Alacritty, the GPU enhanced terminal emulator.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Any items in the `env` entry below will be added as
 | 
				
			||||||
 | 
					# environment variables. Some entries may override variables
 | 
				
			||||||
 | 
					# set by alacritty itself.
 | 
				
			||||||
 | 
					env:
 | 
				
			||||||
 | 
					  # TERM variable
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # This value is used to set the `$TERM` environment variable for
 | 
				
			||||||
 | 
					  # each instance of Alacritty. If it is not present, alacritty will
 | 
				
			||||||
 | 
					  # check the local terminfo database and use `alacritty` if it is
 | 
				
			||||||
 | 
					  # available, otherwise `xterm-256color` is used.
 | 
				
			||||||
 | 
					  TERM: xterm-256color
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					window:
 | 
				
			||||||
 | 
					  # Window dimensions (changes require restart)
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # Specified in number of columns/lines, not pixels.
 | 
				
			||||||
 | 
					  # If both are `0`, this setting is ignored.
 | 
				
			||||||
 | 
					  dimensions:
 | 
				
			||||||
 | 
					    columns: 120
 | 
				
			||||||
 | 
					    lines: 40
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Window position (changes require restart)
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # Specified in number of pixels.
 | 
				
			||||||
 | 
					  # If the position is not set, the window manager will handle the placement.
 | 
				
			||||||
 | 
					  #position:
 | 
				
			||||||
 | 
					  #  x: 0
 | 
				
			||||||
 | 
					  #  y: 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Window padding (changes require restart)
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # Blank space added around the window in pixels. This padding is scaled
 | 
				
			||||||
 | 
					  # by DPI and the specified value is always added at both opposing sides.
 | 
				
			||||||
 | 
					  padding:
 | 
				
			||||||
 | 
					    x: 22
 | 
				
			||||||
 | 
					    y: 22
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Spread additional padding evenly around the terminal content.
 | 
				
			||||||
 | 
					  dynamic_padding: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Window decorations
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # Values for `decorations`:
 | 
				
			||||||
 | 
					  #     - full: Borders and title bar
 | 
				
			||||||
 | 
					  #     - none: Neither borders nor title bar
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # Values for `decorations` (macOS only):
 | 
				
			||||||
 | 
					  #     - transparent: Title bar, transparent background and title bar buttons
 | 
				
			||||||
 | 
					  #     - buttonless: Title bar, transparent background, but no title bar buttons
 | 
				
			||||||
 | 
					  decorations: full
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Startup Mode (changes require restart)
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # Values for `startup_mode`:
 | 
				
			||||||
 | 
					  #   - Windowed
 | 
				
			||||||
 | 
					  #   - Maximized
 | 
				
			||||||
 | 
					  #   - Fullscreen
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # Values for `startup_mode` (macOS only):
 | 
				
			||||||
 | 
					  #   - SimpleFullscreen
 | 
				
			||||||
 | 
					  startup_mode: Windowed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Window title
 | 
				
			||||||
 | 
					  #title: Alacritty
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Allow terminal applications to change Alacritty's window title.
 | 
				
			||||||
 | 
					  dynamic_title: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Window class (Linux/BSD only):
 | 
				
			||||||
 | 
					  #class:
 | 
				
			||||||
 | 
					    # Application instance name
 | 
				
			||||||
 | 
					    #instance: Alacritty
 | 
				
			||||||
 | 
					    # General application class
 | 
				
			||||||
 | 
					    #general: Alacritty
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # GTK theme variant (Linux/BSD only)
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # Override the variant of the GTK theme. Commonly supported values are `dark` and `light`.
 | 
				
			||||||
 | 
					  # Set this to `None` to use the default theme variant.
 | 
				
			||||||
 | 
					  #gtk_theme_variant: None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					scrolling:
 | 
				
			||||||
 | 
					  # Maximum number of lines in the scrollback buffer.
 | 
				
			||||||
 | 
					  # Specifying '0' will disable scrolling.
 | 
				
			||||||
 | 
					  history: 100000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Number of lines the viewport will move for every line scrolled when
 | 
				
			||||||
 | 
					  # scrollback is enabled (history > 0).
 | 
				
			||||||
 | 
					  multiplier: 3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Font configuration
 | 
				
			||||||
 | 
					font:
 | 
				
			||||||
 | 
					  # Normal (roman) font face
 | 
				
			||||||
 | 
					  #normal:
 | 
				
			||||||
 | 
					    # Font family
 | 
				
			||||||
 | 
					    #
 | 
				
			||||||
 | 
					    # Default:
 | 
				
			||||||
 | 
					    #   - (macOS) Menlo
 | 
				
			||||||
 | 
					    #   - (Linux/BSD) monospace
 | 
				
			||||||
 | 
					    #   - (Windows) Consolas
 | 
				
			||||||
 | 
					    #family: monospace
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # The `style` can be specified to pick a specific face.
 | 
				
			||||||
 | 
					    #style: Regular
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Bold font face
 | 
				
			||||||
 | 
					  #bold:
 | 
				
			||||||
 | 
					    # Font family
 | 
				
			||||||
 | 
					    #
 | 
				
			||||||
 | 
					    # If the bold family is not specified, it will fall back to the
 | 
				
			||||||
 | 
					    # value specified for the normal font.
 | 
				
			||||||
 | 
					    #family: monospace
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # The `style` can be specified to pick a specific face.
 | 
				
			||||||
 | 
					    #style: Bold
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Italic font face
 | 
				
			||||||
 | 
					  #italic:
 | 
				
			||||||
 | 
					    # Font family
 | 
				
			||||||
 | 
					    #
 | 
				
			||||||
 | 
					    # If the italic family is not specified, it will fall back to the
 | 
				
			||||||
 | 
					    # value specified for the normal font.
 | 
				
			||||||
 | 
					    #family: monospace
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # The `style` can be specified to pick a specific face.
 | 
				
			||||||
 | 
					    #style: Italic
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Bold italic font face
 | 
				
			||||||
 | 
					  #bold_italic:
 | 
				
			||||||
 | 
					    # Font family
 | 
				
			||||||
 | 
					    #
 | 
				
			||||||
 | 
					    # If the bold italic family is not specified, it will fall back to the
 | 
				
			||||||
 | 
					    # value specified for the normal font.
 | 
				
			||||||
 | 
					    #family: monospace
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # The `style` can be specified to pick a specific face.
 | 
				
			||||||
 | 
					    #style: Bold Italic
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Point size
 | 
				
			||||||
 | 
					  size: 9.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Offset is the extra space around each character. `offset.y` can be thought of
 | 
				
			||||||
 | 
					  # as modifying the line spacing, and `offset.x` as modifying the letter spacing.
 | 
				
			||||||
 | 
					  #offset:
 | 
				
			||||||
 | 
					  #  x: 0
 | 
				
			||||||
 | 
					  #  y: 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Glyph offset determines the locations of the glyphs within their cells with
 | 
				
			||||||
 | 
					  # the default being at the bottom. Increasing `x` moves the glyph to the right,
 | 
				
			||||||
 | 
					  # increasing `y` moves the glyph upwards.
 | 
				
			||||||
 | 
					  #glyph_offset:
 | 
				
			||||||
 | 
					  #  x: 0
 | 
				
			||||||
 | 
					  #  y: 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Thin stroke font rendering (macOS only)
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # Thin strokes are suitable for retina displays, but for non-retina screens
 | 
				
			||||||
 | 
					  # it is recommended to set `use_thin_strokes` to `false`
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # macOS >= 10.14.x:
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # If the font quality on non-retina display looks bad then set
 | 
				
			||||||
 | 
					  # `use_thin_strokes` to `true` and enable font smoothing by running the
 | 
				
			||||||
 | 
					  # following command:
 | 
				
			||||||
 | 
					  #   `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO`
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # This is a global setting and will require a log out or restart to take
 | 
				
			||||||
 | 
					  # effect.
 | 
				
			||||||
 | 
					  #use_thin_strokes: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# If `true`, bold text is drawn using the bright color variants.
 | 
				
			||||||
 | 
					draw_bold_text_with_bright_colors: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Colors (Tomorrow Night Bright)
 | 
				
			||||||
 | 
					colors:
 | 
				
			||||||
 | 
					  # Default colors
 | 
				
			||||||
 | 
					  primary:
 | 
				
			||||||
 | 
					    foreground: '#eceff1'
 | 
				
			||||||
 | 
					    background: '#383c4a'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Bright and dim foreground colors
 | 
				
			||||||
 | 
					    #
 | 
				
			||||||
 | 
					    # The dimmed foreground color is calculated automatically if it is not present.
 | 
				
			||||||
 | 
					    # If the bright foreground color is not set, or `draw_bold_text_with_bright_colors`
 | 
				
			||||||
 | 
					    # is `false`, the normal foreground color will be used.
 | 
				
			||||||
 | 
					    #dim_foreground: '#9a9a9a'
 | 
				
			||||||
 | 
					    #bright_foreground: '#ffffff'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Cursor colors
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # Colors which should be used to draw the terminal cursor. If these are
 | 
				
			||||||
 | 
					  # unset, the cursor color will be the inverse of the cell color.
 | 
				
			||||||
 | 
					  cursor:
 | 
				
			||||||
 | 
					    text:       '#eceff1'
 | 
				
			||||||
 | 
					    cursor:     '#5294e2'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Vi mode cursor colors
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # Colors for the cursor when the vi mode is active. If these are unset, the
 | 
				
			||||||
 | 
					  # cursor color will be the inverse of the cell color.
 | 
				
			||||||
 | 
					  #vi_mode_cursor:
 | 
				
			||||||
 | 
					  #  text: '#000000'
 | 
				
			||||||
 | 
					  #  cursor: '#ffffff'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Selection colors
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # Colors which should be used to draw the selection area. If selection
 | 
				
			||||||
 | 
					  # background is unset, selection color will be the inverse of the cell colors.
 | 
				
			||||||
 | 
					  # If only text is unset the cell text color will remain the same.
 | 
				
			||||||
 | 
					  selection:
 | 
				
			||||||
 | 
					    text: CellForeground
 | 
				
			||||||
 | 
					    background: '#5294e2'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Normal colors
 | 
				
			||||||
 | 
					  normal:
 | 
				
			||||||
 | 
					    black:      '#333638'
 | 
				
			||||||
 | 
					    red:        '#f41f1c'
 | 
				
			||||||
 | 
					    green:      '#8bc34a'
 | 
				
			||||||
 | 
					    yellow:     '#ffc107'
 | 
				
			||||||
 | 
					    blue:       '#0266f4'
 | 
				
			||||||
 | 
					    magenta:    '#cc17cc'
 | 
				
			||||||
 | 
					    cyan:       '#10aeba'
 | 
				
			||||||
 | 
					    white:      '#8b9396'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Bright colors
 | 
				
			||||||
 | 
					  bright:
 | 
				
			||||||
 | 
					    black:      '#475760'
 | 
				
			||||||
 | 
					    red:        '#e53727'
 | 
				
			||||||
 | 
					    green:      '#9ccc65'
 | 
				
			||||||
 | 
					    yellow:     '#ffa000'
 | 
				
			||||||
 | 
					    blue:       '#81b3f9'
 | 
				
			||||||
 | 
					    magenta:    '#a56ecc'
 | 
				
			||||||
 | 
					    cyan:       '#5ddae2'
 | 
				
			||||||
 | 
					    white:      '#eceff1'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Dim colors
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # If the dim colors are not set, they will be calculated automatically based
 | 
				
			||||||
 | 
					  # on the `normal` colors.
 | 
				
			||||||
 | 
					  #dim:
 | 
				
			||||||
 | 
					  #  black:   '#000000'
 | 
				
			||||||
 | 
					  #  red:     '#8c3336'
 | 
				
			||||||
 | 
					  #  green:   '#7a8530'
 | 
				
			||||||
 | 
					  #  yellow:  '#97822e'
 | 
				
			||||||
 | 
					  #  blue:    '#506d8f'
 | 
				
			||||||
 | 
					  #  magenta: '#80638e'
 | 
				
			||||||
 | 
					  #  cyan:    '#497e7a'
 | 
				
			||||||
 | 
					  #  white:   '#9a9a9a'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Indexed Colors
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # The indexed colors include all colors from 16 to 256.
 | 
				
			||||||
 | 
					  # When these are not set, they're filled with sensible defaults.
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # Example:
 | 
				
			||||||
 | 
					  #   `- { index: 16, color: '#ff00ff' }`
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  #indexed_colors: []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Visual Bell
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Any time the BEL code is received, Alacritty "rings" the visual bell. Once
 | 
				
			||||||
 | 
					# rung, the terminal background will be set to white and transition back to the
 | 
				
			||||||
 | 
					# default background color. You can control the rate of this transition by
 | 
				
			||||||
 | 
					# setting the `duration` property (represented in milliseconds). You can also
 | 
				
			||||||
 | 
					# configure the transition function by setting the `animation` property.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Values for `animation`:
 | 
				
			||||||
 | 
					#   - Ease
 | 
				
			||||||
 | 
					#   - EaseOut
 | 
				
			||||||
 | 
					#   - EaseOutSine
 | 
				
			||||||
 | 
					#   - EaseOutQuad
 | 
				
			||||||
 | 
					#   - EaseOutCubic
 | 
				
			||||||
 | 
					#   - EaseOutQuart
 | 
				
			||||||
 | 
					#   - EaseOutQuint
 | 
				
			||||||
 | 
					#   - EaseOutExpo
 | 
				
			||||||
 | 
					#   - EaseOutCirc
 | 
				
			||||||
 | 
					#   - Linear
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Specifying a `duration` of `0` will disable the visual bell.
 | 
				
			||||||
 | 
					#visual_bell:
 | 
				
			||||||
 | 
					#  animation: EaseOutExpo
 | 
				
			||||||
 | 
					#  duration: 0
 | 
				
			||||||
 | 
					#  color: '#ffffff'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Background opacity
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Window opacity as a floating point number from `0.0` to `1.0`.
 | 
				
			||||||
 | 
					# The value `0.0` is completely transparent and `1.0` is opaque.
 | 
				
			||||||
 | 
					background_opacity: 0.80
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					selection:
 | 
				
			||||||
 | 
					  #semantic_escape_chars: ",│`|:\"' ()[]{}<>\t"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # When set to `true`, selected text will be copied to the primary clipboard.
 | 
				
			||||||
 | 
					  save_to_clipboard: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cursor:
 | 
				
			||||||
 | 
					  # Cursor style
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # Values for `style`:
 | 
				
			||||||
 | 
					  #   - ▇ Block
 | 
				
			||||||
 | 
					  #   - _ Underline
 | 
				
			||||||
 | 
					  #   - | Beam
 | 
				
			||||||
 | 
					  style: Block
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Vi mode cursor style
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # If the vi mode cursor style is `None` or not specified, it will fall back to
 | 
				
			||||||
 | 
					  # the style of the active value of the normal cursor.
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # See `cursor.style` for available options.
 | 
				
			||||||
 | 
					  #vi_mode_style: None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # If this is `true`, the cursor will be rendered as a hollow box when the
 | 
				
			||||||
 | 
					  # window is not focused.
 | 
				
			||||||
 | 
					  unfocused_hollow: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Live config reload (changes require restart)
 | 
				
			||||||
 | 
					live_config_reload: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Shell
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`.
 | 
				
			||||||
 | 
					# Entries in `shell.args` are passed unmodified as arguments to the shell.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Default:
 | 
				
			||||||
 | 
					#   - (macOS) /bin/bash --login
 | 
				
			||||||
 | 
					#   - (Linux/BSD) user login shell
 | 
				
			||||||
 | 
					#   - (Windows) powershell
 | 
				
			||||||
 | 
					#shell:
 | 
				
			||||||
 | 
					#  program: /bin/bash
 | 
				
			||||||
 | 
					#  args:
 | 
				
			||||||
 | 
					#    - --login
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Startup directory
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Directory the shell is started in. If this is unset, or `None`, the working
 | 
				
			||||||
 | 
					# directory of the parent process will be used.
 | 
				
			||||||
 | 
					#working_directory: None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# WinPTY backend (Windows only)
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Alacritty defaults to using the newer ConPTY backend if it is available,
 | 
				
			||||||
 | 
					# since it resolves a lot of bugs and is quite a bit faster. If it is not
 | 
				
			||||||
 | 
					# available, the the WinPTY backend will be used instead.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Setting this option to `true` makes Alacritty use the legacy WinPTY backend,
 | 
				
			||||||
 | 
					# even if the ConPTY backend is available.
 | 
				
			||||||
 | 
					#winpty_backend: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Send ESC (\x1b) before characters when alt is pressed.
 | 
				
			||||||
 | 
					#alt_send_esc: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mouse:
 | 
				
			||||||
 | 
					  # Click settings
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # The `double_click` and `triple_click` settings control the time
 | 
				
			||||||
 | 
					  # alacritty should wait for accepting multiple clicks as one double
 | 
				
			||||||
 | 
					  # or triple click.
 | 
				
			||||||
 | 
					  #double_click: { threshold: 300 }
 | 
				
			||||||
 | 
					  #triple_click: { threshold: 300 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # If this is `true`, the cursor is temporarily hidden when typing.
 | 
				
			||||||
 | 
					  hide_when_typing: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  url:
 | 
				
			||||||
 | 
					    # URL launcher
 | 
				
			||||||
 | 
					    #
 | 
				
			||||||
 | 
					    # This program is executed when clicking on a text which is recognized as a URL.
 | 
				
			||||||
 | 
					    # The URL is always added to the command as the last parameter.
 | 
				
			||||||
 | 
					    #
 | 
				
			||||||
 | 
					    # When set to `None`, URL launching will be disabled completely.
 | 
				
			||||||
 | 
					    #
 | 
				
			||||||
 | 
					    # Default:
 | 
				
			||||||
 | 
					    #   - (macOS) open
 | 
				
			||||||
 | 
					    #   - (Linux/BSD) xdg-open
 | 
				
			||||||
 | 
					    #   - (Windows) explorer
 | 
				
			||||||
 | 
					    launcher:
 | 
				
			||||||
 | 
					      program: xdg-open
 | 
				
			||||||
 | 
					      args: []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # URL modifiers
 | 
				
			||||||
 | 
					    #
 | 
				
			||||||
 | 
					    # These are the modifiers that need to be held down for opening URLs when clicking
 | 
				
			||||||
 | 
					    # on them. The available modifiers are documented in the key binding section.
 | 
				
			||||||
 | 
					    #modifiers: None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Mouse bindings
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Mouse bindings are specified as a list of objects, much like the key
 | 
				
			||||||
 | 
					# bindings further below.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# To trigger mouse bindings when an application running within Alacritty captures the mouse, the
 | 
				
			||||||
 | 
					# `Shift` modifier is automatically added as a requirement.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Each mouse binding will specify a:
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# - `mouse`:
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#   - Middle
 | 
				
			||||||
 | 
					#   - Left
 | 
				
			||||||
 | 
					#   - Right
 | 
				
			||||||
 | 
					#   - Numeric identifier such as `5`
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# - `action` (see key bindings)
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# And optionally:
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# - `mods` (see key bindings)
 | 
				
			||||||
 | 
					mouse_bindings:
 | 
				
			||||||
 | 
					  - { mouse: Middle, action: PasteSelection }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Key bindings
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Key bindings are specified as a list of objects. For example, this is the
 | 
				
			||||||
 | 
					# default paste binding:
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# `- { key: V, mods: Control|Shift, action: Paste }`
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Each key binding will specify a:
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# - `key`: Identifier of the key pressed
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#    - A-Z
 | 
				
			||||||
 | 
					#    - F1-F24
 | 
				
			||||||
 | 
					#    - Key0-Key9
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#    A full list with available key codes can be found here:
 | 
				
			||||||
 | 
					#    https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#    Instead of using the name of the keys, the `key` field also supports using
 | 
				
			||||||
 | 
					#    the scancode of the desired key. Scancodes have to be specified as a
 | 
				
			||||||
 | 
					#    decimal number. This command will allow you to display the hex scancodes
 | 
				
			||||||
 | 
					#    for certain keys:
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#       `showkey --scancodes`.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Then exactly one of:
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# - `chars`: Send a byte sequence to the running application
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#    The `chars` field writes the specified string to the terminal. This makes
 | 
				
			||||||
 | 
					#    it possible to pass escape sequences. To find escape codes for bindings
 | 
				
			||||||
 | 
					#    like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside
 | 
				
			||||||
 | 
					#    of tmux. Note that applications use terminfo to map escape sequences back
 | 
				
			||||||
 | 
					#    to keys. It is therefore required to update the terminfo when changing an
 | 
				
			||||||
 | 
					#    escape sequence.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# - `action`: Execute a predefined action
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#   - ToggleViMode
 | 
				
			||||||
 | 
					#   - Copy
 | 
				
			||||||
 | 
					#   - Paste
 | 
				
			||||||
 | 
					#   - PasteSelection
 | 
				
			||||||
 | 
					#   - IncreaseFontSize
 | 
				
			||||||
 | 
					#   - DecreaseFontSize
 | 
				
			||||||
 | 
					#   - ResetFontSize
 | 
				
			||||||
 | 
					#   - ScrollPageUp
 | 
				
			||||||
 | 
					#   - ScrollPageDown
 | 
				
			||||||
 | 
					#   - ScrollLineUp
 | 
				
			||||||
 | 
					#   - ScrollLineDown
 | 
				
			||||||
 | 
					#   - ScrollToTop
 | 
				
			||||||
 | 
					#   - ScrollToBottom
 | 
				
			||||||
 | 
					#   - ClearHistory
 | 
				
			||||||
 | 
					#   - Hide
 | 
				
			||||||
 | 
					#   - Minimize
 | 
				
			||||||
 | 
					#   - Quit
 | 
				
			||||||
 | 
					#   - ToggleFullscreen
 | 
				
			||||||
 | 
					#   - SpawnNewInstance
 | 
				
			||||||
 | 
					#   - ClearLogNotice
 | 
				
			||||||
 | 
					#   - ClearSelection
 | 
				
			||||||
 | 
					#   - ReceiveChar
 | 
				
			||||||
 | 
					#   - None
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#   (`mode: Vi` only):
 | 
				
			||||||
 | 
					#   - Open
 | 
				
			||||||
 | 
					#   - Up
 | 
				
			||||||
 | 
					#   - Down
 | 
				
			||||||
 | 
					#   - Left
 | 
				
			||||||
 | 
					#   - Right
 | 
				
			||||||
 | 
					#   - First
 | 
				
			||||||
 | 
					#   - Last
 | 
				
			||||||
 | 
					#   - FirstOccupied
 | 
				
			||||||
 | 
					#   - High
 | 
				
			||||||
 | 
					#   - Middle
 | 
				
			||||||
 | 
					#   - Low
 | 
				
			||||||
 | 
					#   - SemanticLeft
 | 
				
			||||||
 | 
					#   - SemanticRight
 | 
				
			||||||
 | 
					#   - SemanticLeftEnd
 | 
				
			||||||
 | 
					#   - SemanticRightEnd
 | 
				
			||||||
 | 
					#   - WordRight
 | 
				
			||||||
 | 
					#   - WordLeft
 | 
				
			||||||
 | 
					#   - WordRightEnd
 | 
				
			||||||
 | 
					#   - WordLeftEnd
 | 
				
			||||||
 | 
					#   - Bracket
 | 
				
			||||||
 | 
					#   - ToggleNormalSelection
 | 
				
			||||||
 | 
					#   - ToggleLineSelection
 | 
				
			||||||
 | 
					#   - ToggleBlockSelection
 | 
				
			||||||
 | 
					#   - ToggleSemanticSelection
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#   (macOS only):
 | 
				
			||||||
 | 
					#   - ToggleSimpleFullscreen: Enters fullscreen without occupying another space
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# - `command`: Fork and execute a specified command plus arguments
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#    The `command` field must be a map containing a `program` string and an
 | 
				
			||||||
 | 
					#    `args` array of command line parameter strings. For example:
 | 
				
			||||||
 | 
					#       `{ program: "alacritty", args: ["-e", "vttest"] }`
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# And optionally:
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# - `mods`: Key modifiers to filter binding actions
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#    - Command
 | 
				
			||||||
 | 
					#    - Control
 | 
				
			||||||
 | 
					#    - Option
 | 
				
			||||||
 | 
					#    - Super
 | 
				
			||||||
 | 
					#    - Shift
 | 
				
			||||||
 | 
					#    - Alt
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#    Multiple `mods` can be combined using `|` like this:
 | 
				
			||||||
 | 
					#       `mods: Control|Shift`.
 | 
				
			||||||
 | 
					#    Whitespace and capitalization are relevant and must match the example.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# - `mode`: Indicate a binding for only specific terminal reported modes
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#    This is mainly used to send applications the correct escape sequences
 | 
				
			||||||
 | 
					#    when in different modes.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#    - AppCursor
 | 
				
			||||||
 | 
					#    - AppKeypad
 | 
				
			||||||
 | 
					#    - Alt
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#    A `~` operator can be used before a mode to apply the binding whenever
 | 
				
			||||||
 | 
					#    the mode is *not* active, e.g. `~Alt`.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Bindings are always filled by default, but will be replaced when a new
 | 
				
			||||||
 | 
					# binding with the same triggers is defined. To unset a default binding, it can
 | 
				
			||||||
 | 
					# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for
 | 
				
			||||||
 | 
					# a no-op if you do not wish to receive input characters for that binding.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# If the same trigger is assigned to multiple actions, all of them are executed
 | 
				
			||||||
 | 
					# at once.
 | 
				
			||||||
 | 
					key_bindings:
 | 
				
			||||||
 | 
					  - { key: Paste,                                action: Paste          }
 | 
				
			||||||
 | 
					  - { key: Copy,                                 action: Copy           }
 | 
				
			||||||
 | 
					  #- { key: L,         mods: Control,             action: ClearLogNotice }
 | 
				
			||||||
 | 
					  #- { key: L,         mods: Control, mode: ~Vi,  chars: "\x0c"          }
 | 
				
			||||||
 | 
					  #- { key: PageUp,    mods: Shift,   mode: ~Alt, action: ScrollPageUp,  }
 | 
				
			||||||
 | 
					  #- { key: PageDown,  mods: Shift,   mode: ~Alt, action: ScrollPageDown }
 | 
				
			||||||
 | 
					  #- { key: Home,      mods: Shift,   mode: ~Alt, action: ScrollToTop,   }
 | 
				
			||||||
 | 
					  #- { key: End,       mods: Shift,   mode: ~Alt, action: ScrollToBottom }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Vi Mode
 | 
				
			||||||
 | 
					  #- { key: Space,  mods: Shift|Control, mode: Vi, action: ScrollToBottom          }
 | 
				
			||||||
 | 
					  #- { key: Space,  mods: Shift|Control,           action: ToggleViMode            }
 | 
				
			||||||
 | 
					  #- { key: Escape,                      mode: Vi, action: ClearSelection          }
 | 
				
			||||||
 | 
					  #- { key: I,                           mode: Vi, action: ScrollToBottom          }
 | 
				
			||||||
 | 
					  #- { key: I,                           mode: Vi, action: ToggleViMode            }
 | 
				
			||||||
 | 
					  #- { key: Y,      mods: Control,       mode: Vi, action: ScrollLineUp            }
 | 
				
			||||||
 | 
					  #- { key: E,      mods: Control,       mode: Vi, action: ScrollLineDown          }
 | 
				
			||||||
 | 
					  #- { key: G,                           mode: Vi, action: ScrollToTop             }
 | 
				
			||||||
 | 
					  #- { key: G,      mods: Shift,         mode: Vi, action: ScrollToBottom          }
 | 
				
			||||||
 | 
					  #- { key: B,      mods: Control,       mode: Vi, action: ScrollPageUp            }
 | 
				
			||||||
 | 
					  #- { key: F,      mods: Control,       mode: Vi, action: ScrollPageDown          }
 | 
				
			||||||
 | 
					  #- { key: U,      mods: Control,       mode: Vi, action: ScrollHalfPageUp        }
 | 
				
			||||||
 | 
					  #- { key: D,      mods: Control,       mode: Vi, action: ScrollHalfPageDown      }
 | 
				
			||||||
 | 
					  #- { key: Y,                           mode: Vi, action: Copy                    }
 | 
				
			||||||
 | 
					  #- { key: V,                           mode: Vi, action: ToggleNormalSelection   }
 | 
				
			||||||
 | 
					  #- { key: V,      mods: Shift,         mode: Vi, action: ToggleLineSelection     }
 | 
				
			||||||
 | 
					  #- { key: V,      mods: Control,       mode: Vi, action: ToggleBlockSelection    }
 | 
				
			||||||
 | 
					  #- { key: V,      mods: Alt,           mode: Vi, action: ToggleSemanticSelection }
 | 
				
			||||||
 | 
					  #- { key: Return,                      mode: Vi, action: Open                    }
 | 
				
			||||||
 | 
					  #- { key: K,                           mode: Vi, action: Up                      }
 | 
				
			||||||
 | 
					  #- { key: J,                           mode: Vi, action: Down                    }
 | 
				
			||||||
 | 
					  #- { key: H,                           mode: Vi, action: Left                    }
 | 
				
			||||||
 | 
					  #- { key: L,                           mode: Vi, action: Right                   }
 | 
				
			||||||
 | 
					  #- { key: Up,                          mode: Vi, action: Up                      }
 | 
				
			||||||
 | 
					  #- { key: Down,                        mode: Vi, action: Down                    }
 | 
				
			||||||
 | 
					  #- { key: Left,                        mode: Vi, action: Left                    }
 | 
				
			||||||
 | 
					  #- { key: Right,                       mode: Vi, action: Right                   }
 | 
				
			||||||
 | 
					  #- { key: Key0,                        mode: Vi, action: First                   }
 | 
				
			||||||
 | 
					  #- { key: Key4,   mods: Shift,         mode: Vi, action: Last                    }
 | 
				
			||||||
 | 
					  #- { key: Key6,   mods: Shift,         mode: Vi, action: FirstOccupied           }
 | 
				
			||||||
 | 
					  #- { key: H,      mods: Shift,         mode: Vi, action: High                    }
 | 
				
			||||||
 | 
					  #- { key: M,      mods: Shift,         mode: Vi, action: Middle                  }
 | 
				
			||||||
 | 
					  #- { key: L,      mods: Shift,         mode: Vi, action: Low                     }
 | 
				
			||||||
 | 
					  #- { key: B,                           mode: Vi, action: SemanticLeft            }
 | 
				
			||||||
 | 
					  #- { key: W,                           mode: Vi, action: SemanticRight           }
 | 
				
			||||||
 | 
					  #- { key: E,                           mode: Vi, action: SemanticRightEnd        }
 | 
				
			||||||
 | 
					  #- { key: B,      mods: Shift,         mode: Vi, action: WordLeft                }
 | 
				
			||||||
 | 
					  #- { key: W,      mods: Shift,         mode: Vi, action: WordRight               }
 | 
				
			||||||
 | 
					  #- { key: E,      mods: Shift,         mode: Vi, action: WordRightEnd            }
 | 
				
			||||||
 | 
					  #- { key: Key5,   mods: Shift,         mode: Vi, action: Bracket                 }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # (Windows, Linux, and BSD only)
 | 
				
			||||||
 | 
					  - { key: V,        mods: Control|Shift, action: Paste            }
 | 
				
			||||||
 | 
					  - { key: C,        mods: Control|Shift, action: Copy             }
 | 
				
			||||||
 | 
					  - { key: Insert,   mods: Shift,         action: PasteSelection   }
 | 
				
			||||||
 | 
					  - { key: Key0,     mods: Control,       action: ResetFontSize    }
 | 
				
			||||||
 | 
					  - { key: Equals,   mods: Control,       action: ResetFontSize    }
 | 
				
			||||||
 | 
					  - { key: Add,      mods: Control|Shift, action: IncreaseFontSize }
 | 
				
			||||||
 | 
					  - { key: Subtract, mods: Control|Shift, action: DecreaseFontSize }
 | 
				
			||||||
 | 
					  - { key: Minus,    mods: Control|Shift, action: DecreaseFontSize }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # (Windows only)
 | 
				
			||||||
 | 
					  #- { key: Return,   mods: Alt,           action: ToggleFullscreen }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # (macOS only)
 | 
				
			||||||
 | 
					  #- { key: K,      mods: Command, mode: ~Vi, chars: "\x0c"            }
 | 
				
			||||||
 | 
					  #- { key: Key0,   mods: Command,            action: ResetFontSize    }
 | 
				
			||||||
 | 
					  #- { key: Equals, mods: Command,            action: IncreaseFontSize }
 | 
				
			||||||
 | 
					  #- { key: Add,    mods: Command,            action: IncreaseFontSize }
 | 
				
			||||||
 | 
					  #- { key: Minus,  mods: Command,            action: DecreaseFontSize }
 | 
				
			||||||
 | 
					  #- { key: K,      mods: Command,            action: ClearHistory     }
 | 
				
			||||||
 | 
					  #- { key: V,      mods: Command,            action: Paste            }
 | 
				
			||||||
 | 
					  #- { key: C,      mods: Command,            action: Copy             }
 | 
				
			||||||
 | 
					  #- { key: H,      mods: Command,            action: Hide             }
 | 
				
			||||||
 | 
					  #- { key: M,      mods: Command,            action: Minimize         }
 | 
				
			||||||
 | 
					  #- { key: Q,      mods: Command,            action: Quit             }
 | 
				
			||||||
 | 
					  #- { key: W,      mods: Command,            action: Quit             }
 | 
				
			||||||
 | 
					  #- { key: N,      mods: Command,            action: SpawnNewInstance }
 | 
				
			||||||
 | 
					  #- { key: F,      mods: Command|Control,    action: ToggleFullscreen }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					debug:
 | 
				
			||||||
 | 
					  # Display the time it takes to redraw each frame.
 | 
				
			||||||
 | 
					  #render_timer: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Keep the log file after quitting Alacritty.
 | 
				
			||||||
 | 
					  #persistent_logging: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Log level
 | 
				
			||||||
 | 
					  #
 | 
				
			||||||
 | 
					  # Values for `log_level`:
 | 
				
			||||||
 | 
					  #   - None
 | 
				
			||||||
 | 
					  #   - Error
 | 
				
			||||||
 | 
					  #   - Warn
 | 
				
			||||||
 | 
					  #   - Info
 | 
				
			||||||
 | 
					  #   - Debug
 | 
				
			||||||
 | 
					  #   - Trace
 | 
				
			||||||
 | 
					  log_level: Info
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Print all received window events.
 | 
				
			||||||
 | 
					  #print_events: false
 | 
				
			||||||
							
								
								
									
										258
									
								
								aliases
									
									
									
									
									
								
							
							
						
						
									
										258
									
								
								aliases
									
									
									
									
									
								
							@@ -1,16 +1,48 @@
 | 
				
			|||||||
#!/usr/bin/zsh
 | 
					case "$(basename "$(readlink -f /proc/$$/exe)")" in
 | 
				
			||||||
 | 
					    zsh)  thisfile="$(readlink -f "${(%):-%N}")";;
 | 
				
			||||||
 | 
					    bash) thisfile="$(readlink -f "${BASH_SOURCE[0]}")";;
 | 
				
			||||||
 | 
					    *)   thisfile="$(find /proc/$$/fd/ | xargs -n1 -r readlink -f | grep aliases | head -n1)";;
 | 
				
			||||||
 | 
					esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Common Aliases
 | 
					# Global aliases for ZSH
 | 
				
			||||||
alias -g ...=../..
 | 
					if alias -g 2>/dev/null; then
 | 
				
			||||||
alias -g ....=../../..
 | 
					    alias -g ...=../..
 | 
				
			||||||
alias -g .....=../../../..
 | 
					    alias -g ....=../../..
 | 
				
			||||||
alias -g ......=../../../../..
 | 
					    alias -g .....=../../../..
 | 
				
			||||||
 | 
					    alias -g ......=../../../../..
 | 
				
			||||||
 | 
					    alias -g H='| head'
 | 
				
			||||||
 | 
					    alias -g T='| tail'
 | 
				
			||||||
 | 
					    alias -g G='| grep'
 | 
				
			||||||
 | 
					    alias -g L="| less"
 | 
				
			||||||
 | 
					    alias -g C="| wc -l"
 | 
				
			||||||
 | 
					    alias -g S="| sort"
 | 
				
			||||||
 | 
					    alias -g U="| uniq"
 | 
				
			||||||
 | 
					    alias -g count="| wc -l"
 | 
				
			||||||
 | 
					    alias -g NO="1> /dev/null"
 | 
				
			||||||
 | 
					    alias -g NE="2> /dev/null"
 | 
				
			||||||
 | 
					    alias -g NUL="&> /dev/null"
 | 
				
			||||||
 | 
					    alias -g BG="&;disown"
 | 
				
			||||||
 | 
					    alias -g COL="| column -t"
 | 
				
			||||||
 | 
					    alias -g CLIP="| xclip -i -selection primary -f | xclip -i -selection clipboard"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# File default aliases
 | 
				
			||||||
 | 
					if alias -s 2>/dev/null; then
 | 
				
			||||||
 | 
					    alias -s pdf="open"
 | 
				
			||||||
 | 
					    alias -s zip="unzip -l"
 | 
				
			||||||
 | 
					    alias -s rar="unrar l"
 | 
				
			||||||
 | 
					    alias -s tar="tar tf"
 | 
				
			||||||
 | 
					    alias -s gz="tar tf"
 | 
				
			||||||
 | 
					    alias -s jar="java -jar"
 | 
				
			||||||
 | 
					    alias -s git="git clone --recursive"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
alias ..la="cd ..;la"
 | 
					alias ..la="cd ..;la"
 | 
				
			||||||
alias ..ll="cd..;ll"
 | 
					alias ..ll="cd..;ll"
 | 
				
			||||||
alias ..l="..ll"
 | 
					alias ..l="..ll"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
alias l=ll
 | 
					alias l=ll
 | 
				
			||||||
 | 
					alias ls='ls --color=auto'
 | 
				
			||||||
alias ll="ls -lFh  --group-directories-first"
 | 
					alias ll="ls -lFh  --group-directories-first"
 | 
				
			||||||
alias la="ls -lAFh --group-directories-first"
 | 
					alias la="ls -lAFh --group-directories-first"
 | 
				
			||||||
alias lt='ls -lAFh --sort=time'
 | 
					alias lt='ls -lAFh --sort=time'
 | 
				
			||||||
@@ -19,134 +51,136 @@ alias al=la # No, I don't need the Mono Assembly Linker
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
alias md="mkdir -p"
 | 
					alias md="mkdir -p"
 | 
				
			||||||
alias rd="rmdir -p"
 | 
					alias rd="rmdir -p"
 | 
				
			||||||
mcd(){ mkdir -p $@ && cd $@; }
 | 
					 | 
				
			||||||
alias -- -='cd -'
 | 
					alias -- -='cd -'
 | 
				
			||||||
alias cdt='cd `mktemp -d`'
 | 
					alias cdt='cd `mktemp -d`'
 | 
				
			||||||
alias grep='grep --color'
 | 
					 | 
				
			||||||
alias -g H='| head'
 | 
					 | 
				
			||||||
alias -g T='| tail'
 | 
					 | 
				
			||||||
alias -g G='| grep'
 | 
					 | 
				
			||||||
alias -g L="| less"
 | 
					 | 
				
			||||||
alias -g C="| wc -l"
 | 
					 | 
				
			||||||
alias -g S="| sort"
 | 
					 | 
				
			||||||
alias -g U="| uniq"
 | 
					 | 
				
			||||||
alias -g count="| wc -l"
 | 
					 | 
				
			||||||
alias -g NO="1> /dev/null"
 | 
					 | 
				
			||||||
alias -g NE="2> /dev/null"
 | 
					 | 
				
			||||||
alias -g NUL="&> /dev/null"
 | 
					 | 
				
			||||||
alias -g BG="&;disown"
 | 
					 | 
				
			||||||
alias -g COL="| column -t"
 | 
					 | 
				
			||||||
alias -g CLIP="| xclip -i -selection primary -f | xclip -i -selection clipboard"
 | 
					 | 
				
			||||||
calc() { bc -l <<< "$@"; }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
alias svi=sudoedit
 | 
					alias svi=sudoedit
 | 
				
			||||||
 | 
					alias svim=sudoedit
 | 
				
			||||||
# This will enable us to use aliases in sudo.
 | 
					# This will enable us to use aliases in sudo.
 | 
				
			||||||
# (If alias finishes with a space or tab, the shell will check if the next command is also aliased.)
 | 
					# (If alias finishes with a space or tab, the shell will check if the next command is also aliased.)
 | 
				
			||||||
# Source: https://github.com/mayah/home/blob/master/.zsh/zshrc.d/alias.zsh
 | 
					# Source: https://github.com/mayah/home/blob/master/.zsh/zshrc.d/alias.zsh
 | 
				
			||||||
alias sudo='sudo -E '
 | 
					alias sudo='sudo '
 | 
				
			||||||
alias open=xdg-open
 | 
					alias open=xdg-open
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Command rewrites
 | 
					# Command rewrites
 | 
				
			||||||
alias ls='ls --color=always'
 | 
					 | 
				
			||||||
alias rm='rm -i'
 | 
					alias rm='rm -i'
 | 
				
			||||||
alias mv='mv -i'
 | 
					alias mv='mv -i'
 | 
				
			||||||
alias cp='cp -ir'
 | 
					alias cp='cp -ir'
 | 
				
			||||||
alias pacman='pacman --color=always'
 | 
					alias scp='scp -r'
 | 
				
			||||||
alias pacaur='pacaur --color=always'
 | 
					 | 
				
			||||||
alias tree='tree --dirsfirst -C -F'
 | 
					 | 
				
			||||||
alias make="make -j$(nproc)"
 | 
					 | 
				
			||||||
alias dd='dd status=progress'
 | 
					alias dd='dd status=progress'
 | 
				
			||||||
alias env='env | sort'
 | 
					 | 
				
			||||||
alias ssh="ssh -tt"
 | 
					alias ssh="ssh -tt"
 | 
				
			||||||
alias vim="vim --servername vim -p"
 | 
					alias wget="wget --hsts-file=$XDG_DATA_HOME/wget/hsts-file"
 | 
				
			||||||
alias vi=vim
 | 
					alias vi=vim
 | 
				
			||||||
alias grip='grip --user=frebib --pass=$GRIP_API_KEY'
 | 
					alias grip='grip --user=frebib --pass=$GRIP_API_KEY'
 | 
				
			||||||
alias acme.sh='$XDG_CONFIG_HOME/acme.sh/acme.sh --home $XDG_CONFIG_HOME/acme.sh --config-home $XDG_CONFIG_HOME/acme.sh --log $XDG_CONFIG_HOME/acme.sh/acme.sh.log'
 | 
					alias acme.sh='$XDG_CONFIG_HOME/acme.sh/acme.sh --home $XDG_CONFIG_HOME/acme.sh --config-home $XDG_CONFIG_HOME/acme.sh --log $XDG_CONFIG_HOME/acme.sh/acme.sh.log'
 | 
				
			||||||
alias acmesh='$XDG_CONFIG_HOME/acme.sh/acme.sh --home $XDG_CONFIG_HOME/acme.sh --config-home $XDG_CONFIG_HOME/acme.sh --log $XDG_CONFIG_HOME/acme.sh/acme.sh.log'
 | 
					alias acmesh='$XDG_CONFIG_HOME/acme.sh/acme.sh --home $XDG_CONFIG_HOME/acme.sh --config-home $XDG_CONFIG_HOME/acme.sh --log $XDG_CONFIG_HOME/acme.sh/acme.sh.log'
 | 
				
			||||||
exists gopass && alias pass='gopass'
 | 
					alias alpine-sdk='docker run -ti --rm \
 | 
				
			||||||
alias abuild='docker run -ti --rm \
 | 
					 | 
				
			||||||
    -e USER \
 | 
					    -e USER \
 | 
				
			||||||
 | 
					    -e UID="$(id -u)" \
 | 
				
			||||||
    -e PWD \
 | 
					    -e PWD \
 | 
				
			||||||
    -e HOME \
 | 
					    -e HOME \
 | 
				
			||||||
    -w $PWD \
 | 
					    -w $PWD \
 | 
				
			||||||
    -v $PWD:$PWD \
 | 
					    -v $PWD:$PWD \
 | 
				
			||||||
    -v ~/.abuild:$HOME/.abuild \
 | 
					    -v ~/.abuild:$HOME/.abuild \
 | 
				
			||||||
    frebib/alpine-sdk:edge abuild'
 | 
					    -v ~/.abuild/distfiles:/var/cache/distfiles \
 | 
				
			||||||
 | 
					    frebib/alpine-sdk:edge'
 | 
				
			||||||
 | 
					alias abuild='alpine-sdk abuild'
 | 
				
			||||||
 | 
					alias abuild-sign='alpine-sdk abuild-sign'
 | 
				
			||||||
 | 
					alias apk='alpine-sdk apk'
 | 
				
			||||||
 | 
					alias hddtemps='find /sys/block/ -name sd\* | sed "s|sys/block|dev|g" | sudo xargs hddtemp | sort -t: -k3'
 | 
				
			||||||
 | 
					alias stripansi='sed -r "s/\x1B\[(([0-9]+)(;[0-9]+)*)?[m,K,H,f,J]//g"'
 | 
				
			||||||
 | 
					alias calc="noglob bc -l <<<" # noglob allows * without quoting
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					exists pacman && \
 | 
				
			||||||
 | 
					    alias pacman='pacman --color=always'
 | 
				
			||||||
 | 
					exists yay && \
 | 
				
			||||||
 | 
					    alias p='yay'
 | 
				
			||||||
 | 
					exists tree && \
 | 
				
			||||||
 | 
					    alias tree='tree --dirsfirst -C -F'
 | 
				
			||||||
 | 
					exists make && \
 | 
				
			||||||
 | 
					    alias make="make -j$(nproc)"
 | 
				
			||||||
 | 
					exists gopass && \
 | 
				
			||||||
 | 
					    alias pass='gopass'
 | 
				
			||||||
 | 
					echo | busybox grep --color '' >/dev/null 2>&1 && \
 | 
				
			||||||
 | 
					    alias grep='grep --color'
 | 
				
			||||||
 | 
					vim --version 2>/dev/null | command grep -q +clientserver && \
 | 
				
			||||||
 | 
					    alias vim="vim --servername vim -p"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Function aliases
 | 
				
			||||||
 | 
					env() { command env $@ | stripansi | sort; }
 | 
				
			||||||
 | 
					mcd(){ mkdir -p -- $@ && cd -- $@; }
 | 
				
			||||||
 | 
					randstr() { tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w $1 | head -n 1; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# System aliases
 | 
					# System aliases
 | 
				
			||||||
alias s="sudo systemctl"
 | 
					alias sc="systemctl"
 | 
				
			||||||
 | 
					alias ssc="sudo systemctl"
 | 
				
			||||||
 | 
					alias scu="systemctl --user"
 | 
				
			||||||
alias j=journalctl
 | 
					alias j=journalctl
 | 
				
			||||||
alias p=pacaur
 | 
					 | 
				
			||||||
alias ps='ps aux'
 | 
					alias ps='ps aux'
 | 
				
			||||||
alias catn='tail -n +1 --'
 | 
					alias catn='tail -n +1 --'
 | 
				
			||||||
alias kl='killall -s 9'
 | 
					alias kl='killall -s 9'
 | 
				
			||||||
alias chx='chmod +x'
 | 
					alias chx='chmod +x'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# File default aliases
 | 
					 | 
				
			||||||
pdf() {
 | 
					 | 
				
			||||||
    evince $@ NE BG
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
alias -s pdf=pdf
 | 
					 | 
				
			||||||
alias -s zip="unzip -l"
 | 
					 | 
				
			||||||
alias -s rar="unrar l"
 | 
					 | 
				
			||||||
alias -s tar="tar tf"
 | 
					 | 
				
			||||||
alias -s gz="tar tf"
 | 
					 | 
				
			||||||
alias -s jar="java -jar"
 | 
					 | 
				
			||||||
alias -s git="git clone --recursive"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Git Aliases
 | 
					# Git Aliases
 | 
				
			||||||
alias g=git
 | 
					alias g=git
 | 
				
			||||||
 | 
					alias ginit='git init'
 | 
				
			||||||
alias gignore='$EDITOR .gitignore'
 | 
					alias gignore='$EDITOR .gitignore'
 | 
				
			||||||
alias gitc='$EDITOR ~/.config/git/config'
 | 
					alias gitc='$EDITOR $XDG_CONFIG_HOME/git/config'
 | 
				
			||||||
alias ggignore='$EDITOR ~/.config/git/gitignore'
 | 
					alias ggignore='$EDITOR $XDG_CONFIG_HOME/git/gitignore'
 | 
				
			||||||
alias gcl="git clone --recursive"
 | 
					alias gcl="git clone --recursive"
 | 
				
			||||||
alias gco="git checkout"
 | 
					alias gco="git checkout"
 | 
				
			||||||
alias gcom="git checkout master"
 | 
					alias gcom="git checkout master"
 | 
				
			||||||
alias ga="git add"
 | 
					alias ga="git add"
 | 
				
			||||||
alias gap="git add -p"
 | 
					alias gap="git add -p"
 | 
				
			||||||
 | 
					alias gau="git add -u"
 | 
				
			||||||
 | 
					alias gaN="git add -N"
 | 
				
			||||||
alias gaa="ga -A"
 | 
					alias gaa="ga -A"
 | 
				
			||||||
alias grm="git rm"
 | 
					alias grm="git rm"
 | 
				
			||||||
alias gc="git commit"
 | 
					alias gc="git commit -s"
 | 
				
			||||||
alias gcm="gc -m"
 | 
					alias gcm="git commit -s -em"
 | 
				
			||||||
gcmst() { git stash -u -k && git commit -m "$1" && git stash pop; }
 | 
					alias gca="git commit -s --amend --date=\"$(date -R)\""
 | 
				
			||||||
alias gca="git commit --amend"
 | 
					alias gcn="git commit -s --no-edit"
 | 
				
			||||||
alias gcan="git commit --amend --no-edit"
 | 
					alias gcan="gca -s --no-edit"
 | 
				
			||||||
alias gcam="git commit --amend -m"
 | 
					alias gcam="gca -s -m"
 | 
				
			||||||
alias gst="git status"
 | 
					alias gst="git status"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
alias gm="git merge"
 | 
					alias gm="git merge"
 | 
				
			||||||
alias gma="git merge --abort"
 | 
					alias gma="git merge --abort"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
alias grb="git rebase"
 | 
					alias grb="git rebase"
 | 
				
			||||||
alias grba="grb --abort"
 | 
					alias grba="grb --abort"
 | 
				
			||||||
alias grbc="grb --continue"
 | 
					alias grbc="grb --continue"
 | 
				
			||||||
 | 
					alias grbsk="grb --skip"
 | 
				
			||||||
 | 
					alias grbsh="grb --show-current"
 | 
				
			||||||
 | 
					alias grbom="git rebase origin/master"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					alias gcp="git cherry-pick"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
alias gf="git fetch"
 | 
					alias gf="git fetch"
 | 
				
			||||||
alias gp="git push"
 | 
					alias gp="git push"
 | 
				
			||||||
alias gpf="gp --force"
 | 
					alias gpf="gp --force"
 | 
				
			||||||
alias gpsu="git push --set-upstream"
 | 
					alias gpsu="git push --set-upstream"
 | 
				
			||||||
 | 
					alias gpoH="git push origin HEAD"
 | 
				
			||||||
alias gpsuom="git push --set-upstream origin master"
 | 
					alias gpsuom="git push --set-upstream origin master"
 | 
				
			||||||
alias gpall="git remote | xargs -L1 git push"
 | 
					alias gpall="git remote | xargs -L1 git push"
 | 
				
			||||||
alias gl="git pull --rebase"
 | 
					alias gl="git pull --rebase"
 | 
				
			||||||
alias glp="gl && gp"
 | 
					alias glp="gl && gp"
 | 
				
			||||||
gd() {
 | 
					alias gd="git diff --patch-with-stat"
 | 
				
			||||||
    local commit=$1
 | 
					alias gdni="gd --no-index"
 | 
				
			||||||
    if [ -z "$commit" ] || [ ${commit:0:1} != '@' ]; then
 | 
					alias gds="gd --staged"
 | 
				
			||||||
        git diff $@
 | 
					alias gsh="git show --format=fuller --patch-with-stat"
 | 
				
			||||||
    else
 | 
					alias glg="git log --color --format=fuller --stat"
 | 
				
			||||||
        git diff "@~${commit:1}^!"
 | 
					alias glgp="git log --color --format=fuller --patch-with-stat"
 | 
				
			||||||
    fi
 | 
					alias glog="git log --color --oneline --decorate --graph"
 | 
				
			||||||
}
 | 
					 | 
				
			||||||
alias gds="git diff --staged"
 | 
					 | 
				
			||||||
alias gsh="git show"
 | 
					 | 
				
			||||||
alias glg="git log --stat --color"
 | 
					 | 
				
			||||||
alias glog="git log --oneline --decorate --color --graph"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
alias grst="git reset"
 | 
					alias grst="git reset"
 | 
				
			||||||
alias gundo="git reset @~1"
 | 
					alias gundo="git reset --keep @~1"
 | 
				
			||||||
alias gclean="git clean"
 | 
					alias gclean="git clean"
 | 
				
			||||||
alias gbr="git branch"
 | 
					alias gbr="git branch"
 | 
				
			||||||
 | 
					alias gtg="git tag"
 | 
				
			||||||
 | 
					alias gbl="git blame"
 | 
				
			||||||
alias gr="git remote"
 | 
					alias gr="git remote"
 | 
				
			||||||
alias grv="git remote -v"
 | 
					alias grv="git revert"
 | 
				
			||||||
alias gra="gr add"
 | 
					alias gra="gr add"
 | 
				
			||||||
alias grr="gr rm"
 | 
					alias grr="gr rm"
 | 
				
			||||||
alias grao="gra origin"
 | 
					alias grao="gra origin"
 | 
				
			||||||
@@ -160,8 +194,11 @@ alias gstv="gsta show -p stash@{0}"
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# Docker aliases
 | 
					# Docker aliases
 | 
				
			||||||
alias d=docker
 | 
					alias d=docker
 | 
				
			||||||
alias dps='docker ps'
 | 
					alias dps="docker ps --format='table {{.ID}}\t{{.Image}}\t{{.Label \"org.label-schema.version\"}}\t{{.Networks}}\t{{.RunningFor}}\t{{.Status}}\t{{.Names}}' | sed '1s/version/VERSION/'"
 | 
				
			||||||
alias dpsa='docker ps -a'
 | 
					alias dpsa="docker ps -a --format='table {{.ID}}\t{{.Image}}\t{{.Label \"org.label-schema.version\"}}\t{{.Networks}}\t{{.RunningFor}}\t{{.Status}}\t{{.Names}}' | sed '1s/version/VERSION/'"
 | 
				
			||||||
 | 
					alias dnets="docker network ls -q | xargs docker inspect | jq '.[] | select(.Name != \"host\" and .Name != \"none\") | [.] | map(.Name + \"\t\" + (.IPAM.Config | map(.Subnet) | join(\"\t\")))[]' -r | sort -V -k2,3 | column -t"
 | 
				
			||||||
 | 
					daddrs() { docker inspect ${1:-bridge} | jq '.[0].Containers | map(.Name + "\t" + .IPv4Address + "\t" + .IPv6Address)[]' -r | sort -V -k2,3 | column -t; }
 | 
				
			||||||
 | 
					alias din='docker inspect'
 | 
				
			||||||
alias drm='docker rm'
 | 
					alias drm='docker rm'
 | 
				
			||||||
alias drmi='docker rmi'
 | 
					alias drmi='docker rmi'
 | 
				
			||||||
alias dim='docker images'
 | 
					alias dim='docker images'
 | 
				
			||||||
@@ -169,21 +206,25 @@ alias dbl='docker build --pull'
 | 
				
			|||||||
alias dbl.='docker build --pull .'
 | 
					alias dbl.='docker build --pull .'
 | 
				
			||||||
alias drun='docker run -ti'
 | 
					alias drun='docker run -ti'
 | 
				
			||||||
alias dkl='docker kill'
 | 
					alias dkl='docker kill'
 | 
				
			||||||
dklrm() { docker kill $@ ; docker rm $@ }
 | 
					dklrm() { docker kill $@ ; docker rm $@; }
 | 
				
			||||||
alias dst='docker stop'
 | 
					alias dst='docker stop'
 | 
				
			||||||
alias drst='docker restart'
 | 
					alias drst='docker restart'
 | 
				
			||||||
alias dnet='docker network'
 | 
					alias dnet='docker network'
 | 
				
			||||||
alias dvol='docker volume'
 | 
					alias dvol='docker volume'
 | 
				
			||||||
alias dlg='docker logs -f'
 | 
					alias dlg='docker logs -f'
 | 
				
			||||||
alias dalpine='docker run -ti --rm alpine /bin/sh'
 | 
					alias dalpine='docker run -ti --rm spritsail/alpine /bin/sh'
 | 
				
			||||||
alias drm-stopped='docker container prune'
 | 
					alias drm-stopped='docker container prune'
 | 
				
			||||||
alias drmi-untag='docker image prune'
 | 
					alias drmi-untag='docker image prune'
 | 
				
			||||||
alias dprune='docker system prune -f'
 | 
					alias dprune='docker system prune -f'
 | 
				
			||||||
alias dsh='_CMD=dsh _dsh exec'
 | 
					dsh() { do_dsh 2 exec $@; return $?; }
 | 
				
			||||||
alias drsh='_CMD=drsh _dsh run --rm --entrypoint='
 | 
					_dsh() { __docker_complete_running_containers $@; }
 | 
				
			||||||
_dsh() {
 | 
					drsh() { do_dsh 4 run --rm --entrypoint= $@; return $?; }
 | 
				
			||||||
    if [ $# -lt 2 ]; then
 | 
					_drsh() { __docker_container_subcommand $@; }
 | 
				
			||||||
        echo "Usage: ${_CMD:-$0} [user@]container [program [args]]" >&2
 | 
					do_dsh() {
 | 
				
			||||||
 | 
					    local minargs=$1
 | 
				
			||||||
 | 
					    shift
 | 
				
			||||||
 | 
					    if [ $# -lt $minargs ]; then
 | 
				
			||||||
 | 
					        echo "Usage: ${funcstack[2]} [user@]container [program [args]]" >&2
 | 
				
			||||||
        return 64
 | 
					        return 64
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -216,18 +257,20 @@ _dsh() {
 | 
				
			|||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if [ -z "$prog" ]; then
 | 
					    if [ -z "$prog" ]; then
 | 
				
			||||||
        set -o pipefail
 | 
					        shell_args=()
 | 
				
			||||||
        local rm=
 | 
					 | 
				
			||||||
        if [ "$dowhat" = 'run' ]; then
 | 
					        if [ "$dowhat" = 'run' ]; then
 | 
				
			||||||
            rm='--rm --entrypoint='
 | 
					            shell_args=(--rm --entrypoint=)
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        for shell in bash sh; do
 | 
					        for shell in bash sh; do
 | 
				
			||||||
            if shell_path="$(eval "docker $dowhat $rm $host which $shell" <&- | sed 's|[\r\n]||g')"; then
 | 
					            shell_path="$(set -o pipefail; docker $dowhat ${shell_args[@]} "$host" which "$shell" <&- | sed 's|[\r\n]||g')"
 | 
				
			||||||
 | 
					            retval=$?
 | 
				
			||||||
 | 
					            if [ $retval -eq 0 ]; then
 | 
				
			||||||
                prog="$shell_path"
 | 
					                prog="$shell_path"
 | 
				
			||||||
                break
 | 
					                break
 | 
				
			||||||
 | 
					            elif [ $retval -ge 125 ]; then
 | 
				
			||||||
 | 
					                return
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
        done
 | 
					        done
 | 
				
			||||||
        set +o pipefail
 | 
					 | 
				
			||||||
        if [ -z "$prog" ]; then
 | 
					        if [ -z "$prog" ]; then
 | 
				
			||||||
            echo "Warning: No shell found in path.. trying /bin/sh" >&2
 | 
					            echo "Warning: No shell found in path.. trying /bin/sh" >&2
 | 
				
			||||||
            prog=/bin/sh
 | 
					            prog=/bin/sh
 | 
				
			||||||
@@ -237,41 +280,40 @@ _dsh() {
 | 
				
			|||||||
    docker $dowhat ${docker_args[@]} -ti $usercmd $host $(xargs <<< $prog)
 | 
					    docker $dowhat ${docker_args[@]} -ti $usercmd $host $(xargs <<< $prog)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
alias dm='docker-machine'
 | 
					 | 
				
			||||||
dm-con() {
 | 
					 | 
				
			||||||
    eval $(docker-machine env $1)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
alias dmc=dm-con
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
alias dc='docker-compose'
 | 
					alias dc='docker-compose'
 | 
				
			||||||
 | 
					alias dm='docker-machine'
 | 
				
			||||||
 | 
					dmc() { eval $(docker-machine env $1); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# ZFS aliases
 | 
					# ZFS aliases
 | 
				
			||||||
alias zfs='sudo zfs'
 | 
					alias zfs='sudo zfs'
 | 
				
			||||||
alias zpool='sudo zpool'
 | 
					alias zpool='sudo zpool'
 | 
				
			||||||
alias z=zfs
 | 
					 | 
				
			||||||
alias zp=zpool
 | 
					alias zp=zpool
 | 
				
			||||||
 | 
					zl() { (set -o pipefail; command zfs list $@ | grep -Ev 'docker/[0-9a-f]{64}' | column -t -R 2,3,4); return $?; }
 | 
				
			||||||
 | 
					_zl() { _zfs "list $@"; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# General Aliases
 | 
					# General Aliases
 | 
				
			||||||
alias ssha='eval `ssh-agent` ; ssh-add'
 | 
					alias ssha='eval `ssh-agent` ; ssh-add'
 | 
				
			||||||
alias aliases="$EDITOR $DOTFILES/aliases ; exec zsh"
 | 
					alias aliases="$EDITOR $thisfile ; exec zsh"
 | 
				
			||||||
alias vimrc="$EDITOR $MYVIMRC"
 | 
					alias vimrc="$EDITOR $VIMRC"
 | 
				
			||||||
alias zshrc="$EDITOR ~/.zshrc ; exec zsh"
 | 
					alias zshrc="$EDITOR ${ZDOTDIR:-$HOME}/.zshrc ; exec zsh"
 | 
				
			||||||
alias gitrc="$EDITOR ~/.config/git/config"
 | 
					alias gitrc="$EDITOR $XDG_CONFIG_HOME/git/config"
 | 
				
			||||||
alias xinitrc="$EDITOR ~/.xinitrc"
 | 
					alias xinitrc="$EDITOR $XDG_CONFIG_HOME/X11/xinitrc"
 | 
				
			||||||
alias xresources="$EDITOR ~/.Xresources ; xrdb merge ~/.Xresources"
 | 
					alias xresources="$EDITOR $XDG_CONFIG_HOME/X11/xresources ; xrdb merge $XDG_CONFIG_HOME/X11/xresources"
 | 
				
			||||||
alias xsession="$EDITOR ~/.xsession"
 | 
					 | 
				
			||||||
alias sshc="$EDITOR ~/.ssh/config"
 | 
					alias sshc="$EDITOR ~/.ssh/config"
 | 
				
			||||||
alias dotfiles="cd $DOTFILES"
 | 
					alias dotfiles="cd $XDG_CONFIG_HOME"
 | 
				
			||||||
alias i3c="$EDITOR ~/.config/i3/config ; i3-msg restart"
 | 
					alias i3c="$EDITOR $XDG_CONFIG_HOME/i3/config; systemctl --user reload i3"
 | 
				
			||||||
alias i3bc="$EDITOR ~/.config/i3/blocks/config ; i3-msg restart"
 | 
					alias polybarc="$EDITOR $XDG_CONFIG_HOME/polybar/config; systemctl --user reload polybar@i3bar"
 | 
				
			||||||
i3b() {
 | 
					
 | 
				
			||||||
    $EDITOR ~/.config/i3/blocks/$@
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
alias sf=screenfetch
 | 
					 | 
				
			||||||
alias nf=neofetch
 | 
					 | 
				
			||||||
randstr() { tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w $1 | head -n 1; }
 | 
					 | 
				
			||||||
alias rot13="tr '[A-Za-z]' '[N-ZA-Mn-za-m]'"
 | 
					alias rot13="tr '[A-Za-z]' '[N-ZA-Mn-za-m]'"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
alias lab="ssh -tt tw '~/ctl' 2>/dev/null"
 | 
					# Networking aliases
 | 
				
			||||||
 | 
					alias ipa="ip a"
 | 
				
			||||||
 | 
					alias addrs="ip a | grep inet | grep -ve fe80 -e '127\\.0\\.0\\.1/8' -e '::1/128' | sort -n | sed 's/^\\s*//'"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# alertmanager
 | 
				
			||||||
 | 
					alias alert='amtool alert'
 | 
				
			||||||
 | 
					alias silence='amtool silence'
 | 
				
			||||||
 | 
					alias expire='amtool silence expire'
 | 
				
			||||||
 | 
					unsilence() { { for inst in "$@"; do amtool silence query instance=$inst | grep -Po '^([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})' | tee /dev/stderr | xargs -r amtool silence expire & done; wait; } | cat }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# vim: ft=sh
 | 
					# vim: ft=sh
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								chromium-flags.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								chromium-flags.conf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					--enable-features=NativeNotifications,OverlayScrollbar
 | 
				
			||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
[global]
 | 
					[global]
 | 
				
			||||||
    font = Noto Sans 10
 | 
					    font = sans 9.5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Allow a small subset of html markup:
 | 
					    # Allow a small subset of html markup:
 | 
				
			||||||
    #   <b>bold</b>
 | 
					    #   <b>bold</b>
 | 
				
			||||||
@@ -11,7 +11,7 @@
 | 
				
			|||||||
    # <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
 | 
					    # <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
 | 
				
			||||||
    # If markup is not allowed, those tags will be stripped out of the
 | 
					    # If markup is not allowed, those tags will be stripped out of the
 | 
				
			||||||
    # message.
 | 
					    # message.
 | 
				
			||||||
    markup = yes
 | 
					    markup = full
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # The format of the message.  Possible variables are:
 | 
					    # The format of the message.  Possible variables are:
 | 
				
			||||||
    #   %a  appname
 | 
					    #   %a  appname
 | 
				
			||||||
@@ -21,7 +21,7 @@
 | 
				
			|||||||
    #   %I  iconname (without its path)
 | 
					    #   %I  iconname (without its path)
 | 
				
			||||||
    #   %p  progress value if set ([  0%] to [100%]) or nothing
 | 
					    #   %p  progress value if set ([  0%] to [100%]) or nothing
 | 
				
			||||||
    # Markup is allowed
 | 
					    # Markup is allowed
 | 
				
			||||||
    format = "<b>%s</b>\n%b"
 | 
					    format = "<b>%s %p</b>\n%b"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Sort messages by urgency.
 | 
					    # Sort messages by urgency.
 | 
				
			||||||
    sort = yes
 | 
					    sort = yes
 | 
				
			||||||
@@ -51,7 +51,6 @@
 | 
				
			|||||||
    # Ignore newlines '\n' in notifications.
 | 
					    # Ignore newlines '\n' in notifications.
 | 
				
			||||||
    ignore_newline = no
 | 
					    ignore_newline = no
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    # The geometry of the window:
 | 
					    # The geometry of the window:
 | 
				
			||||||
    #   [{width}]x{height}[+/-{x}+/-{y}]
 | 
					    #   [{width}]x{height}[+/-{x}+/-{y}]
 | 
				
			||||||
    # The geometry of the message window.
 | 
					    # The geometry of the message window.
 | 
				
			||||||
@@ -66,16 +65,16 @@
 | 
				
			|||||||
    # screen width minus the width defined in within the geometry option.
 | 
					    # screen width minus the width defined in within the geometry option.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # 53 = 30 + 23 (bar-height)
 | 
					    # 53 = 30 + 23 (bar-height)
 | 
				
			||||||
    geometry = "300x5-30+52"
 | 
					    geometry = "360x5-30+30"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Shrink window if it's smaller than the width.  Will be ignored if
 | 
					    # Shrink window if it's smaller than the width.  Will be ignored if
 | 
				
			||||||
    # width is 0.
 | 
					    # width is 0.
 | 
				
			||||||
    shrink = no
 | 
					    shrink = yes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # The transparency of the window.  Range: [0; 100].
 | 
					    # The transparency of the window.  Range: [0; 100].
 | 
				
			||||||
    # This option will only work if a compositing windowmanager is
 | 
					    # This option will only work if a compositing windowmanager is
 | 
				
			||||||
    # present (e.g. xcompmgr, compiz, etc.).
 | 
					    # present (e.g. xcompmgr, compiz, etc.).
 | 
				
			||||||
    # transparency = 10
 | 
					    transparency = 15
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Don't remove messages, if the user is idle (no mouse or keyboard input)
 | 
					    # Don't remove messages, if the user is idle (no mouse or keyboard input)
 | 
				
			||||||
    # for longer than idle_threshold seconds.
 | 
					    # for longer than idle_threshold seconds.
 | 
				
			||||||
@@ -103,7 +102,7 @@
 | 
				
			|||||||
    sticky_history = yes
 | 
					    sticky_history = yes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Maximum amount of notifications kept in history
 | 
					    # Maximum amount of notifications kept in history
 | 
				
			||||||
    history_length = 20
 | 
					    history_length = 100
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Display indicators for URLs (U) and actions (A).
 | 
					    # Display indicators for URLs (U) and actions (A).
 | 
				
			||||||
    show_indicators = no
 | 
					    show_indicators = no
 | 
				
			||||||
@@ -119,10 +118,10 @@
 | 
				
			|||||||
    separator_height = 2
 | 
					    separator_height = 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Padding between text and separator.
 | 
					    # Padding between text and separator.
 | 
				
			||||||
    padding = 12
 | 
					    padding = 15
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Horizontal padding.
 | 
					    # Horizontal padding.
 | 
				
			||||||
    horizontal_padding = 20
 | 
					    horizontal_padding = 16
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Define a color for the separator.
 | 
					    # Define a color for the separator.
 | 
				
			||||||
    # possible values are:
 | 
					    # possible values are:
 | 
				
			||||||
@@ -141,15 +140,17 @@
 | 
				
			|||||||
    dmenu = /usr/bin/rofi -dmenu -i -p '' -config ~/.config/dunst/dunst-xresources
 | 
					    dmenu = /usr/bin/rofi -dmenu -i -p '' -config ~/.config/dunst/dunst-xresources
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Browser for opening urls in context menu.
 | 
					    # Browser for opening urls in context menu.
 | 
				
			||||||
    browser = /usr/bin/chromium
 | 
					    browser = /usr/bin/firefox
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Align icons left/right/off
 | 
					    # Align icons left/right/off
 | 
				
			||||||
    icon_position = off
 | 
					    icon_position = left
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Scale larger icons down to this size, set to 0 to disable
 | 
				
			||||||
 | 
					    max_icon_size = 44
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Paths to default icons.
 | 
					    # Paths to default icons.
 | 
				
			||||||
    icon_folders = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
 | 
					    icon_path = /usr/share/icons/Xenlism-Wildfire/Status/:/usr/share/icons/Xenlism-Wildfire/Devices/:/usr/share/icons/Adwaita/32x32/status:/usr/share/icons/Adwaita/32x32/devices
 | 
				
			||||||
 | 
					    frame_width = 0
 | 
				
			||||||
    frame_width = 3
 | 
					 | 
				
			||||||
    frame_color = "#404552"
 | 
					    frame_color = "#404552"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[shortcuts]
 | 
					[shortcuts]
 | 
				
			||||||
							
								
								
									
										34
									
								
								environment.d/10-profile.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								environment.d/10-profile.conf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
				
			|||||||
 | 
					LC_ALL="en_GB.UTF-8"
 | 
				
			||||||
 | 
					LANG="en_GB.UTF-8"
 | 
				
			||||||
 | 
					LC_NUMERIC="en_GB"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
 | 
				
			||||||
 | 
					XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
 | 
				
			||||||
 | 
					XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EDITOR="vim"
 | 
				
			||||||
 | 
					VISUAL="vim"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Override paths for non-compliant programs
 | 
				
			||||||
 | 
					# https://wiki.archlinux.org/index.php/XDG_Base_Directory_support
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ADOTDIR="$XDG_DATA_HOME/zsh/antigen"
 | 
				
			||||||
 | 
					CARGO_HOME="$XDG_DATA_HOME/cargo"
 | 
				
			||||||
 | 
					GNUPGHOME="$XDG_CONFIG_HOME/gnupg"
 | 
				
			||||||
 | 
					GOPATH="$XDG_DATA_HOME/go"
 | 
				
			||||||
 | 
					NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME/npm/npmrc"
 | 
				
			||||||
 | 
					#PASSWORD_STORE_DIR="$XDG_DATA_HOME/pass"
 | 
				
			||||||
 | 
					PYTHONHISTFILE="$XDG_DATA_HOME/python/histfile"
 | 
				
			||||||
 | 
					RUSTUP_HOME="$XDG_DATA_HOME/rustup"
 | 
				
			||||||
 | 
					TERMINFO="$XDG_DATA_HOME/terminfo"
 | 
				
			||||||
 | 
					TERMINFO_DIRS="$XDG_DATA_HOME/terminfo:/usr/share/terminfo"
 | 
				
			||||||
 | 
					VIMDIR="$XDG_CONFIG_HOME/vim"
 | 
				
			||||||
 | 
					VIMRC="$VIMDIR/vimrc"
 | 
				
			||||||
 | 
					VIMINIT=":so $VIMRC"
 | 
				
			||||||
 | 
					WEECHAT_HOME="$XDG_CONFIG_HOME/weechat"
 | 
				
			||||||
 | 
					XINITRC="$XDG_CONFIG_HOME/X11/xinitrc"
 | 
				
			||||||
 | 
					ZDOTDIR="$XDG_CONFIG_HOME/zsh"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PATH="${PATH}:/sbin:/usr/sbin:${XDG_CONFIG_HOME}/scripts:${GOPATH}/bin"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vim: ft=sh
 | 
				
			||||||
							
								
								
									
										45
									
								
								fontconfig/fonts.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								fontconfig/fonts.conf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,45 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0"?>
 | 
				
			||||||
 | 
					<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
 | 
				
			||||||
 | 
					<fontconfig>
 | 
				
			||||||
 | 
					    <match>
 | 
				
			||||||
 | 
					        <test qual="any" name="family"><string>sans-serif</string></test>
 | 
				
			||||||
 | 
					        <edit name="family" mode="prepend" binding="strong">
 | 
				
			||||||
 | 
					            <string>Noto Sans</string>
 | 
				
			||||||
 | 
					            <string>Noto Color Emoji</string>
 | 
				
			||||||
 | 
					            <string>FontAwesome 5 Pro Light</string>
 | 
				
			||||||
 | 
					        </edit>
 | 
				
			||||||
 | 
					    </match>
 | 
				
			||||||
 | 
					    <match>
 | 
				
			||||||
 | 
					        <test qual="any" name="family"><string>serif</string></test>
 | 
				
			||||||
 | 
					        <edit name="family" mode="prepend" binding="strong">
 | 
				
			||||||
 | 
					            <string>Noto Serif</string>
 | 
				
			||||||
 | 
					            <string>Noto Color Emoji</string>
 | 
				
			||||||
 | 
					            <string>FontAwesome 5 Pro Light</string>
 | 
				
			||||||
 | 
					        </edit>
 | 
				
			||||||
 | 
					    </match>
 | 
				
			||||||
 | 
					    <match>
 | 
				
			||||||
 | 
					        <test qual="any" name="family"><string>monospace</string></test>
 | 
				
			||||||
 | 
					        <edit name="family" mode="prepend" binding="strong">
 | 
				
			||||||
 | 
					            <string>Source Code Pro</string>
 | 
				
			||||||
 | 
					            <string>Noto Color Emoji</string>
 | 
				
			||||||
 | 
					            <string>FontAwesome 5 Pro Light</string>
 | 
				
			||||||
 | 
					        </edit>
 | 
				
			||||||
 | 
					    </match>
 | 
				
			||||||
 | 
					    <alias>
 | 
				
			||||||
 | 
					        <family>SF Mono</family>
 | 
				
			||||||
 | 
					        <accept>
 | 
				
			||||||
 | 
					            <family>monospace</family>
 | 
				
			||||||
 | 
					        </accept>
 | 
				
			||||||
 | 
					    </alias>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <match target="font">
 | 
				
			||||||
 | 
					        <test qual="all" name="family" compare="eq"><string>Noto Sans</string></test>
 | 
				
			||||||
 | 
					        <edit name="hintstyle" mode="assign"><const>hintnone</const></edit>
 | 
				
			||||||
 | 
					    </match>
 | 
				
			||||||
 | 
					    <match target="font">
 | 
				
			||||||
 | 
					        <test qual="all" name="family" compare="eq"><string>Source Code Pro</string></test>
 | 
				
			||||||
 | 
					        <edit name="hintstyle" mode="assign"><const>hintfull</const></edit>
 | 
				
			||||||
 | 
					        <edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit>
 | 
				
			||||||
 | 
					        <edit name="rgba" mode="assign"><const>rgb</const></edit>
 | 
				
			||||||
 | 
					    </match>
 | 
				
			||||||
 | 
					</fontconfig>
 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -4,18 +4,21 @@
 | 
				
			|||||||
	signingkey = CFBB6A86
 | 
						signingkey = CFBB6A86
 | 
				
			||||||
[core]
 | 
					[core]
 | 
				
			||||||
	autocrlf = input
 | 
						autocrlf = input
 | 
				
			||||||
	excludesfile = $HOME/.config/git/gitignore
 | 
						excludesfile = /home/frebib/.config/git/gitignore
 | 
				
			||||||
	pager = diff-so-fancy | less
 | 
						pager = diff-highlight | $PAGER
 | 
				
			||||||
 | 
					[interactive]
 | 
				
			||||||
 | 
						diffFilter = diff-highlight
 | 
				
			||||||
[commit]
 | 
					[commit]
 | 
				
			||||||
	gpgsign = true
 | 
						gpgsign = true
 | 
				
			||||||
 | 
					[fetch]
 | 
				
			||||||
 | 
						prune = true
 | 
				
			||||||
[push]
 | 
					[push]
 | 
				
			||||||
	default = upstream
 | 
						default = upstream
 | 
				
			||||||
[pull]
 | 
					[pull]
 | 
				
			||||||
	rebase = true
 | 
						rebase = true
 | 
				
			||||||
 | 
						prune = true
 | 
				
			||||||
[rebase]
 | 
					[rebase]
 | 
				
			||||||
	autoStash = true
 | 
						autoStash = true
 | 
				
			||||||
[log]
 | 
					 | 
				
			||||||
	date = relative
 | 
					 | 
				
			||||||
[format]
 | 
					[format]
 | 
				
			||||||
	pretty = format:%h %Cblue%ad%Creset %ae %Cgreen%s%Creset
 | 
						pretty = format:%h %Cblue%ad%Creset %ae %Cgreen%s%Creset
 | 
				
			||||||
[alias]
 | 
					[alias]
 | 
				
			||||||
@@ -23,6 +26,7 @@
 | 
				
			|||||||
	pushall = !git remote | xargs -L1 git push
 | 
						pushall = !git remote | xargs -L1 git push
 | 
				
			||||||
	count = !echo $(pwd) && git rev-list HEAD --count
 | 
						count = !echo $(pwd) && git rev-list HEAD --count
 | 
				
			||||||
	unpushed = !git log --oneline @{u}..HEAD
 | 
						unpushed = !git log --oneline @{u}..HEAD
 | 
				
			||||||
 | 
						leaders = !git shortlog -s -n --all --no-merges
 | 
				
			||||||
[advice]
 | 
					[advice]
 | 
				
			||||||
	statusHints = false
 | 
						statusHints = false
 | 
				
			||||||
	pushUpdateRejected = false
 | 
						pushUpdateRejected = false
 | 
				
			||||||
@@ -35,8 +39,6 @@
 | 
				
			|||||||
	suppresscc = self
 | 
						suppresscc = self
 | 
				
			||||||
[diff]
 | 
					[diff]
 | 
				
			||||||
	algorithm = patience
 | 
						algorithm = patience
 | 
				
			||||||
[interactive]
 | 
					 | 
				
			||||||
	diffFilter = diff-so-fancy --patch-mode
 | 
					 | 
				
			||||||
[color]
 | 
					[color]
 | 
				
			||||||
	ui = true
 | 
						ui = true
 | 
				
			||||||
[color "diff"]
 | 
					[color "diff"]
 | 
				
			||||||
@@ -51,7 +53,5 @@
 | 
				
			|||||||
	oldHighlight = red 88
 | 
						oldHighlight = red 88
 | 
				
			||||||
	newNormal = green
 | 
						newNormal = green
 | 
				
			||||||
	newHighlight = green 22
 | 
						newHighlight = green 22
 | 
				
			||||||
[diff-so-fancy]
 | 
					 | 
				
			||||||
	changeHunkIndicators = false
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# vim: noet
 | 
					# vim: noet
 | 
				
			||||||
							
								
								
									
										35
									
								
								gopass/config.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								gopass/config.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
				
			|||||||
 | 
					root:
 | 
				
			||||||
 | 
					  askformore: false
 | 
				
			||||||
 | 
					  autoclip: false
 | 
				
			||||||
 | 
					  autoimport: true
 | 
				
			||||||
 | 
					  autosync: true
 | 
				
			||||||
 | 
					  check_recipient_hash: false
 | 
				
			||||||
 | 
					  cliptimeout: 45
 | 
				
			||||||
 | 
					  concurrency: 1
 | 
				
			||||||
 | 
					  editrecipients: false
 | 
				
			||||||
 | 
					  nocolor: false
 | 
				
			||||||
 | 
					  noconfirm: true
 | 
				
			||||||
 | 
					  nopager: false
 | 
				
			||||||
 | 
					  notifications: false
 | 
				
			||||||
 | 
					  path: gpgcli-gitcli-fs+file:///home/frebib/.local/share/pass
 | 
				
			||||||
 | 
					  recipient_hash: {}
 | 
				
			||||||
 | 
					  safecontent: false
 | 
				
			||||||
 | 
					  usesymbols: false
 | 
				
			||||||
 | 
					mounts:
 | 
				
			||||||
 | 
					  spritsail:
 | 
				
			||||||
 | 
					    askformore: false
 | 
				
			||||||
 | 
					    autoclip: false
 | 
				
			||||||
 | 
					    autoimport: true
 | 
				
			||||||
 | 
					    autosync: true
 | 
				
			||||||
 | 
					    check_recipient_hash: false
 | 
				
			||||||
 | 
					    cliptimeout: 45
 | 
				
			||||||
 | 
					    concurrency: 1
 | 
				
			||||||
 | 
					    editrecipients: false
 | 
				
			||||||
 | 
					    nocolor: false
 | 
				
			||||||
 | 
					    noconfirm: true
 | 
				
			||||||
 | 
					    nopager: false
 | 
				
			||||||
 | 
					    notifications: false
 | 
				
			||||||
 | 
					    path: gpgcli-gitcli-fs+file:///home/frebib/.local/share/pass-spritsail
 | 
				
			||||||
 | 
					    recipient_hash: {}
 | 
				
			||||||
 | 
					    safecontent: false
 | 
				
			||||||
 | 
					    usesymbols: false
 | 
				
			||||||
@@ -1,7 +1,6 @@
 | 
				
			|||||||
# DO NOT EDIT! This file will be overwritten by LXAppearance.
 | 
					# DO NOT EDIT! This file will be overwritten by LXAppearance.
 | 
				
			||||||
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
 | 
					# Any customization should be done in ~/.gtkrc-2.0.mine instead.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
include "/home/frebib/.gtkrc-2.0.mine"
 | 
					 | 
				
			||||||
gtk-theme-name="Arc-Dark"
 | 
					gtk-theme-name="Arc-Dark"
 | 
				
			||||||
gtk-icon-theme-name="Xenlism-Wildfire"
 | 
					gtk-icon-theme-name="Xenlism-Wildfire"
 | 
				
			||||||
gtk-font-name="Noto Sans 9"
 | 
					gtk-font-name="Noto Sans 9"
 | 
				
			||||||
							
								
								
									
										15
									
								
								gtk-3.0/gtk.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								gtk-3.0/gtk.css
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					VteTerminal,
 | 
				
			||||||
 | 
					TerminalScreen,
 | 
				
			||||||
 | 
					vte-terminal {
 | 
				
			||||||
 | 
					    padding: 1.8em;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.window-frame, .window-frame:backdrop {
 | 
				
			||||||
 | 
					    margin: 0;
 | 
				
			||||||
 | 
					    border-style: none;
 | 
				
			||||||
 | 
					    border-radius: 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.titlebar {
 | 
				
			||||||
 | 
					    border-radius: 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										170
									
								
								i3/config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										170
									
								
								i3/config
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,170 @@
 | 
				
			|||||||
 | 
					# i3 config file (v4)
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Please see http://i3wm.org/docs/userguide.html for a complete reference!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set $mod Mod4
 | 
				
			||||||
 | 
					set $alt Mod1
 | 
				
			||||||
 | 
					floating_modifier $mod
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					font pango:sans 9
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# kill focused window
 | 
				
			||||||
 | 
					bindsym $mod+apostrophe kill
 | 
				
			||||||
 | 
					bindsym $alt+F4 kill
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# change window focus
 | 
				
			||||||
 | 
					bindsym $mod+d focus left
 | 
				
			||||||
 | 
					bindsym $mod+h focus down
 | 
				
			||||||
 | 
					bindsym $mod+t focus up
 | 
				
			||||||
 | 
					bindsym $mod+n focus right
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# move focused window
 | 
				
			||||||
 | 
					bindsym $mod+Shift+d move left
 | 
				
			||||||
 | 
					bindsym $mod+Shift+h move down
 | 
				
			||||||
 | 
					bindsym $mod+Shift+t move up
 | 
				
			||||||
 | 
					bindsym $mod+Shift+n move right
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# split in horizontal orientation
 | 
				
			||||||
 | 
					bindsym $mod+m split h
 | 
				
			||||||
 | 
					bindsym $mod+w split v
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# enter fullscreen mode for the focused container
 | 
				
			||||||
 | 
					bindsym $mod+Shift+f fullscreen toggle global
 | 
				
			||||||
 | 
					bindsym $mod+f fullscreen toggle
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# change container layout (stacked, tabbed, toggle split)
 | 
				
			||||||
 | 
					bindsym $mod+p layout stacking
 | 
				
			||||||
 | 
					bindsym $mod+comma layout tabbed
 | 
				
			||||||
 | 
					bindsym $mod+period layout toggle split
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# toggle tiling / floating
 | 
				
			||||||
 | 
					bindsym $mod+u floating toggle
 | 
				
			||||||
 | 
					bindsym $mod+e sticky toggle
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# focus the parent container
 | 
				
			||||||
 | 
					bindsym $mod+a focus parent
 | 
				
			||||||
 | 
					bindsym $mod+o focus child
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#  Screen configs  #
 | 
				
			||||||
 | 
					set    $bl  "DP-5"
 | 
				
			||||||
 | 
					set    $tl  "DP-1"
 | 
				
			||||||
 | 
					set    $br  "HDMI-0"
 | 
				
			||||||
 | 
					set    $tr  "DP-3"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Workspace -> Screen
 | 
				
			||||||
 | 
					workspace 1 output $bl
 | 
				
			||||||
 | 
					workspace 2 output $br
 | 
				
			||||||
 | 
					workspace 3 output $tl
 | 
				
			||||||
 | 
					workspace 4 output $tr
 | 
				
			||||||
 | 
					workspace 5 output $bl
 | 
				
			||||||
 | 
					workspace 6 output $br
 | 
				
			||||||
 | 
					workspace 7 output $tl
 | 
				
			||||||
 | 
					workspace 8 output $tr
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# switch to workspace
 | 
				
			||||||
 | 
					bindsym $mod+1 workspace 1
 | 
				
			||||||
 | 
					bindsym $mod+2 workspace 2
 | 
				
			||||||
 | 
					bindsym $mod+3 workspace 3
 | 
				
			||||||
 | 
					bindsym $mod+4 workspace 4
 | 
				
			||||||
 | 
					bindsym $mod+5 workspace 5
 | 
				
			||||||
 | 
					bindsym $mod+6 workspace 6
 | 
				
			||||||
 | 
					bindsym $mod+7 workspace 7
 | 
				
			||||||
 | 
					bindsym $mod+8 workspace 8
 | 
				
			||||||
 | 
					bindsym $mod+9 workspace 9
 | 
				
			||||||
 | 
					bindsym $mod+0 workspace 10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# move workspaces across screens
 | 
				
			||||||
 | 
					bindsym $mod+$alt+d move workspace to output left
 | 
				
			||||||
 | 
					bindsym $mod+$alt+n move workspace to output right
 | 
				
			||||||
 | 
					bindsym $mod+$alt+t move workspace to output up
 | 
				
			||||||
 | 
					bindsym $mod+$alt+h move workspace to output down
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# move focused container to workspace
 | 
				
			||||||
 | 
					bindsym $mod+Shift+1 move container to workspace 1
 | 
				
			||||||
 | 
					bindsym $mod+Shift+2 move container to workspace 2
 | 
				
			||||||
 | 
					bindsym $mod+Shift+3 move container to workspace 3
 | 
				
			||||||
 | 
					bindsym $mod+Shift+4 move container to workspace 4
 | 
				
			||||||
 | 
					bindsym $mod+Shift+5 move container to workspace 5
 | 
				
			||||||
 | 
					bindsym $mod+Shift+6 move container to workspace 6
 | 
				
			||||||
 | 
					bindsym $mod+Shift+7 move container to workspace 7
 | 
				
			||||||
 | 
					bindsym $mod+Shift+8 move container to workspace 8
 | 
				
			||||||
 | 
					bindsym $mod+Shift+9 move container to workspace 9
 | 
				
			||||||
 | 
					bindsym $mod+Shift+0 move container to workspace 10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# opens logout/shutdown menu
 | 
				
			||||||
 | 
					bindsym $mod+Shift+Escape exec --no-startup-id ~/.config/i3/powermenu.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set $bg-color            #2f343f
 | 
				
			||||||
 | 
					set $inactive-bg-color   #2f343f
 | 
				
			||||||
 | 
					set $text-color          #f3f4f5
 | 
				
			||||||
 | 
					set $inactive-text-color #676E7D
 | 
				
			||||||
 | 
					set $urgent-bg-color     #E53935
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# window colors
 | 
				
			||||||
 | 
					#                       border              background         text                 indicator
 | 
				
			||||||
 | 
					client.focused          $bg-color           $bg-color          $text-color          $bg-color
 | 
				
			||||||
 | 
					client.unfocused        $inactive-bg-color  $inactive-bg-color $inactive-text-color $bg-color
 | 
				
			||||||
 | 
					client.focused_inactive $inactive-bg-color  $inactive-bg-color $inactive-text-color $bg-color
 | 
				
			||||||
 | 
					client.urgent           $urgent-bg-color    $urgent-bg-color   $text-color          $bg-color
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					exec_always --no-startup-id feh --no-fehbg --no-xinerama --bg-fill $DOTFILES/lakesidesunrise.jpg
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Window rules
 | 
				
			||||||
 | 
					for_window [class="Pinentry"] floating enable
 | 
				
			||||||
 | 
					for_window [class="Pavucontrol"] floating enable
 | 
				
			||||||
 | 
					for_window [class="Blueman-manager"] floating enable
 | 
				
			||||||
 | 
					for_window [class="floating-term" instance="termite"] floating enable
 | 
				
			||||||
 | 
					for_window [class="Alacritty" instance="floating-term"] floating enable
 | 
				
			||||||
 | 
					for_window [class="^jetbrains-.+$" title="win0"] floating enable
 | 
				
			||||||
 | 
					for_window [window_role="floating-term"] floating enable
 | 
				
			||||||
 | 
					for_window [title="^rofi$"] floating enable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					new_window none
 | 
				
			||||||
 | 
					new_float none
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					gaps inner 24
 | 
				
			||||||
 | 
					gaps outer 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					focus_follows_mouse yes
 | 
				
			||||||
 | 
					popup_during_fullscreen smart
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# keybindings
 | 
				
			||||||
 | 
					bindsym $mod+Shift+j            reload
 | 
				
			||||||
 | 
					bindsym --release $mod+x        exec xkill
 | 
				
			||||||
 | 
					bindsym $mod+c                  exec notify-send "Try again" "You meant \\\$mod+b"
 | 
				
			||||||
 | 
					bindsym $mod+b                  exec systemd-run-i3 -n firefox
 | 
				
			||||||
 | 
					bindsym $mod+Return             exec systemd-run-i3 -n alacritty
 | 
				
			||||||
 | 
					bindsym $mod+Ctrl+Return        exec systemd-run-i3 -n alacritty --class floating
 | 
				
			||||||
 | 
					bindsym $mod+Shift+Return       exec systemd-run-i3 -n alacritty --working-directory "$(xcwd)"
 | 
				
			||||||
 | 
					bindsym $mod+Ctrl+Shift+Return  exec systemd-run-i3 -n alacritty --class floating --working-directory "$(xcwd)"
 | 
				
			||||||
 | 
					bindsym $mod+v                  exec systemd-run-i3 -n alacritty -e sh -c "($SHELL -c $EDITOR || :) && $SHELL"
 | 
				
			||||||
 | 
					bindsym $mod+Ctrl+v             exec systemd-run-i3 -n alacritty --class floating -e sh -c "($SHELL -c $EDITOR || : ) && $SHELL"
 | 
				
			||||||
 | 
					bindsym $mod+l                  exec dm-tool switch-to-greeter
 | 
				
			||||||
 | 
					bindsym $mod+space              exec "pkill rofi; rofi -show run -sidebar-mode -terminal i3-sensible-terminal -normal-window -run-command 'systemd-run-i3 -n {cmd}'"
 | 
				
			||||||
 | 
					bindsym $mod+Shift+p            exec rofi-pass --root $(grep path ~/.config/gopass/config.yml | sed -E 's|^.*fs\+file://||g' | tr '\n' ':') | sed 's/:$//g'
 | 
				
			||||||
 | 
					bindsym $mod+Shift+e            exec "pkill rofi; rofi -show emoji -modi emoji -normal-window"
 | 
				
			||||||
 | 
					bindsym $mod+Shift+i            exec rofi-fontawesome
 | 
				
			||||||
 | 
					bindsym --release Print         exec screenshot
 | 
				
			||||||
 | 
					bindsym --release $mod+Print    exec screenshot --clip
 | 
				
			||||||
 | 
					bindsym --release Shift+Print   exec screenshot --active
 | 
				
			||||||
 | 
					bindsym --release $mod+Shift+Print exec screenshot --active --clip
 | 
				
			||||||
 | 
					bindsym $mod+Shift+x            exec systemd-run-i3 -n i3-sensible-terminal --class floating-term --hold -e /bin/echo "$(xprop -id $(xdotool getactivewindow))"
 | 
				
			||||||
 | 
					bindsym $mod+$alt+space         exec systemd-run-i3 -s background -n ~/.config/i3/cycleaudio.py && pkill -RTMIN+10 i3blocks
 | 
				
			||||||
 | 
					bindsym $mod+numbersign         exec systemd-run-i3 -n i3-sensible-terminal --hold -e sh -c 'xclip -o | gpg --decrypt 2>&1'
 | 
				
			||||||
 | 
					bindsym $mod+r                  exec bash -c 'pwgen -snc 32 1 | tee >(xargs notify-send Generated\ password\:) | xclip -i -r'
 | 
				
			||||||
 | 
					bindsym $mod+g                  exec systemd-run-i3 -n notify-send -c transfer "$(gist -PRpc)"
 | 
				
			||||||
 | 
					bindsym --release $mod+i        exec systemd-run-i3 -s background -n sh -c 'sleep 0.5 && xdotool getactivewindow type --delay 250 "$(xclip -o -selection clipboard)"'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Media player controls
 | 
				
			||||||
 | 
					bindsym XF86AudioPlay           exec --no-startup-id playerctl -a play-pause
 | 
				
			||||||
 | 
					bindsym XF86AudioPause          exec --no-startup-id playerctl -a pause
 | 
				
			||||||
 | 
					bindsym XF86AudioStop           exec --no-startup-id playerctl -a stop
 | 
				
			||||||
 | 
					bindsym XF86AudioNext           exec --no-startup-id playerctl -a next
 | 
				
			||||||
 | 
					bindsym XF86AudioPrev           exec --no-startup-id playerctl -a previous
 | 
				
			||||||
 | 
					bindsym XF86AudioRaiseVolume    exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@  +1000
 | 
				
			||||||
 | 
					bindsym XF86AudioLowerVolume    exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@  -1000
 | 
				
			||||||
 | 
					bindsym XF86AudioMute           exec --no-startup-id pactl set-sink-mute   @DEFAULT_SINK@ toggle
 | 
				
			||||||
 | 
					bindsym XF86MonBrightnessUp     exec light -A 5 && pkill -RTMIN+12 i3blocks
 | 
				
			||||||
 | 
					bindsym XF86MonBrightnessDown   exec light -U 5 && pkill -RTMIN+12 i3blocks
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vim:ft=i3
 | 
				
			||||||
							
								
								
									
										17
									
								
								i3/powermenu.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										17
									
								
								i3/powermenu.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					option="$(echo "  lock|  logout|  sleep|  hibernate|  power off|  reboot|  windows" | \
 | 
				
			||||||
 | 
					    rofi -sep "|" -dmenu -i -p "" -auto-select -hide-scrollbar -monitor 0 -width 10 -lines 7 -location 3 -tokenize false -matching normal | cut -d' ' -f2- | xargs)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					case $option in
 | 
				
			||||||
 | 
					    lock) dm-tool switch-to-greeter;;
 | 
				
			||||||
 | 
					    logout) systemctl --user exit;;
 | 
				
			||||||
 | 
					    sleep) systemctl suspend;;
 | 
				
			||||||
 | 
					    hibernate) systemctl hibernate;;
 | 
				
			||||||
 | 
					    power\ off) systemctl poweroff;;
 | 
				
			||||||
 | 
					    reboot) systemctl reboot;;
 | 
				
			||||||
 | 
					    windows)
 | 
				
			||||||
 | 
					        windows=`efibootmgr | grep -Po -m1 'Boot\K(\d{4}).*Windows.*' | head -c4`
 | 
				
			||||||
 | 
					        sudo efibootmgr -n $windows
 | 
				
			||||||
 | 
					        reboot;;
 | 
				
			||||||
 | 
					esac
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								lakesidesunrise.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								lakesidesunrise.jpg
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 3.7 MiB  | 
							
								
								
									
										16
									
								
								latexmk/latexmkrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								latexmk/latexmkrc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					$clean_ext = "bbl run.xml eps-converted-to.pdf";
 | 
				
			||||||
 | 
					$pdf_mode = 1;
 | 
				
			||||||
 | 
					$pdf_previewer = 'evince';
 | 
				
			||||||
 | 
					$latex = 'xetex -shell-escape';
 | 
				
			||||||
 | 
					$pdflatex = 'xelatex -shell-escape';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					add_cus_dep('glo', 'gls', 0, 'run_makeglossaries');
 | 
				
			||||||
 | 
					add_cus_dep('acn', 'acr', 0, 'run_makeglossaries');
 | 
				
			||||||
 | 
					sub run_makeglossaries {
 | 
				
			||||||
 | 
					  if ( $silent ) {
 | 
				
			||||||
 | 
					    system "makeglossaries -q '$_[0]'";
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  else {
 | 
				
			||||||
 | 
					    system "makeglossaries '$_[0]'";
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										42
									
								
								mimeapps.list
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								mimeapps.list
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
				
			|||||||
 | 
					[Default Applications]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# eog for images
 | 
				
			||||||
 | 
					image/bmp=eog.desktop
 | 
				
			||||||
 | 
					image/gif=eog.desktop
 | 
				
			||||||
 | 
					image/jpeg=eog.desktop
 | 
				
			||||||
 | 
					image/jpg=eog.desktop
 | 
				
			||||||
 | 
					image/pjpeg=eog.desktop
 | 
				
			||||||
 | 
					image/png=eog.desktop
 | 
				
			||||||
 | 
					image/svg+xml-compressed=eog.desktop
 | 
				
			||||||
 | 
					image/svg+xml=eog.desktop
 | 
				
			||||||
 | 
					image/tiff=eog.desktop
 | 
				
			||||||
 | 
					image/x-bmp=eog.desktop
 | 
				
			||||||
 | 
					image/x-gray=eog.desktop
 | 
				
			||||||
 | 
					image/x-icb=eog.desktop
 | 
				
			||||||
 | 
					image/x-ico=eog.desktop
 | 
				
			||||||
 | 
					image/x-png=eog.desktop
 | 
				
			||||||
 | 
					image/x-portable-anymap=eog.desktop
 | 
				
			||||||
 | 
					image/x-portable-bitmap=eog.desktop
 | 
				
			||||||
 | 
					image/x-portable-graymap=eog.desktop
 | 
				
			||||||
 | 
					image/x-portable-pixmap=eog.desktop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# evince for pdfs
 | 
				
			||||||
 | 
					application/pdf=evince.desktop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vim for textual files
 | 
				
			||||||
 | 
					application/x-shellscript=vim.desktop
 | 
				
			||||||
 | 
					text/english=vim.desktop
 | 
				
			||||||
 | 
					text/plain=vim.desktop
 | 
				
			||||||
 | 
					text/x-makefile=vim.desktop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Chromium for web/html
 | 
				
			||||||
 | 
					text/html=firefox.desktop
 | 
				
			||||||
 | 
					x-scheme-handler/about=firefox.desktop
 | 
				
			||||||
 | 
					x-scheme-handler/http=firefox.desktop
 | 
				
			||||||
 | 
					x-scheme-handler/https=firefox.desktop
 | 
				
			||||||
 | 
					x-scheme-handler/unknown=firefox.desktop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Various desktop applications
 | 
				
			||||||
 | 
					inode/directory=nautilus.desktop
 | 
				
			||||||
 | 
					x-scheme-handler/magnet=deluge.desktop
 | 
				
			||||||
 | 
					x-scheme-handler/tg=telegramdesktop.desktop
 | 
				
			||||||
							
								
								
									
										3
									
								
								npm/npmrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								npm/npmrc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					prefix=${XDG_DATA_HOME}/npm
 | 
				
			||||||
 | 
					cache=${XDG_CACHE_HOME}/npm
 | 
				
			||||||
 | 
					tmp=${XDG_RUNTIME_DIR}/npm
 | 
				
			||||||
							
								
								
									
										41
									
								
								parcellite/parcelliterc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								parcellite/parcelliterc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,41 @@
 | 
				
			|||||||
 | 
					[rc]
 | 
				
			||||||
 | 
					RCVersion=1
 | 
				
			||||||
 | 
					use_copy=true
 | 
				
			||||||
 | 
					use_primary=true
 | 
				
			||||||
 | 
					synchronize=true
 | 
				
			||||||
 | 
					save_history=true
 | 
				
			||||||
 | 
					history_pos=false
 | 
				
			||||||
 | 
					history_x=1
 | 
				
			||||||
 | 
					history_y=1
 | 
				
			||||||
 | 
					history_limit=25
 | 
				
			||||||
 | 
					data_size=0
 | 
				
			||||||
 | 
					item_size=5
 | 
				
			||||||
 | 
					automatic_paste=true
 | 
				
			||||||
 | 
					auto_key=false
 | 
				
			||||||
 | 
					auto_mouse=true
 | 
				
			||||||
 | 
					key_input=true
 | 
				
			||||||
 | 
					restore_empty=true
 | 
				
			||||||
 | 
					rc_edit=false
 | 
				
			||||||
 | 
					type_search=false
 | 
				
			||||||
 | 
					case_search=false
 | 
				
			||||||
 | 
					ignore_whiteonly=false
 | 
				
			||||||
 | 
					trim_wspace_begend=false
 | 
				
			||||||
 | 
					trim_newline=false
 | 
				
			||||||
 | 
					hyperlinks_only=false
 | 
				
			||||||
 | 
					confirm_clear=true
 | 
				
			||||||
 | 
					current_on_top=true
 | 
				
			||||||
 | 
					single_line=true
 | 
				
			||||||
 | 
					reverse_history=false
 | 
				
			||||||
 | 
					item_length=50
 | 
				
			||||||
 | 
					persistent_history=false
 | 
				
			||||||
 | 
					persistent_separate=false
 | 
				
			||||||
 | 
					persistent_on_top=false
 | 
				
			||||||
 | 
					persistent_delim=\\n
 | 
				
			||||||
 | 
					nonprint_disp=false
 | 
				
			||||||
 | 
					ellipsize=2
 | 
				
			||||||
 | 
					multi_user=false
 | 
				
			||||||
 | 
					icon_name=parcellite
 | 
				
			||||||
 | 
					menu_key=<Ctrl><Alt>P
 | 
				
			||||||
 | 
					history_key=<Ctrl><Alt>H
 | 
				
			||||||
 | 
					phistory_key=<Ctrl><Alt>X
 | 
				
			||||||
 | 
					actions_key=<Ctrl><Alt>A
 | 
				
			||||||
							
								
								
									
										104
									
								
								picom.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										104
									
								
								picom.conf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,104 @@
 | 
				
			|||||||
 | 
					# Logging
 | 
				
			||||||
 | 
					log-level = "info";
 | 
				
			||||||
 | 
					#log-file = "/home/frebib/.local/share/picom.log";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Shadow
 | 
				
			||||||
 | 
					shadow = true;
 | 
				
			||||||
 | 
					shadow-radius = 24;
 | 
				
			||||||
 | 
					shadow-offset-x = -24;
 | 
				
			||||||
 | 
					shadow-offset-y = -24;
 | 
				
			||||||
 | 
					shadow-opacity = 0.6;
 | 
				
			||||||
 | 
					# shadow-red = 0.0;
 | 
				
			||||||
 | 
					# shadow-green = 0.0;
 | 
				
			||||||
 | 
					# shadow-blue = 0.0;
 | 
				
			||||||
 | 
					shadow-exclude = [
 | 
				
			||||||
 | 
						"class_g = 'slop'",
 | 
				
			||||||
 | 
						"class_g = 'Conky'",
 | 
				
			||||||
 | 
						"class_g ?= 'Notify-osd'",
 | 
				
			||||||
 | 
						"class_g = 'Cairo-clock'",
 | 
				
			||||||
 | 
						"class_g = 'firefox' && argb",
 | 
				
			||||||
 | 
						"name = 'Notification'",
 | 
				
			||||||
 | 
						"name = 'cpt_frame_window'",
 | 
				
			||||||
 | 
						"_GTK_FRAME_EXTENTS@:c"
 | 
				
			||||||
 | 
					];
 | 
				
			||||||
 | 
					# shadow-exclude = "n:e:Notification";
 | 
				
			||||||
 | 
					# shadow-exclude-reg = "x10+0+0";
 | 
				
			||||||
 | 
					xinerama-shadow-crop = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Opacity
 | 
				
			||||||
 | 
					frame-opacity = 1.0;
 | 
				
			||||||
 | 
					# active-opacity = 0.8;
 | 
				
			||||||
 | 
					inactive-opacity = 0.6;
 | 
				
			||||||
 | 
					inactive-opacity-override = true;
 | 
				
			||||||
 | 
					# inactive-dim = 0.2;
 | 
				
			||||||
 | 
					# inactive-dim-fixed = true;
 | 
				
			||||||
 | 
					opacity-rule = [
 | 
				
			||||||
 | 
						"0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
 | 
				
			||||||
 | 
					];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Blurring
 | 
				
			||||||
 | 
					blur:
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						method = "dual_kawase";
 | 
				
			||||||
 | 
						strength = 8;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					blur-background-frame = true;
 | 
				
			||||||
 | 
					blur-background-fixed = true;
 | 
				
			||||||
 | 
					blur-background-exclude = [
 | 
				
			||||||
 | 
						"class_g = 'Peek'",
 | 
				
			||||||
 | 
						"class_g = 'Onboard'",
 | 
				
			||||||
 | 
						"class_g = 'slop'",
 | 
				
			||||||
 | 
						"class_g = 'Polybar'",
 | 
				
			||||||
 | 
						"class_g = 'firefox' && argb",
 | 
				
			||||||
 | 
						"window_type = 'dock'",
 | 
				
			||||||
 | 
						"window_type = 'desktop'",
 | 
				
			||||||
 | 
						"_GTK_FRAME_EXTENTS@:c"
 | 
				
			||||||
 | 
					];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Fading
 | 
				
			||||||
 | 
					fading = true;
 | 
				
			||||||
 | 
					fade-delta = 10;
 | 
				
			||||||
 | 
					fade-in-step = 0.04
 | 
				
			||||||
 | 
					fade-out-step = 0.06;
 | 
				
			||||||
 | 
					no-fading-openclose = false;
 | 
				
			||||||
 | 
					no-fading-destroyed-argb = false;
 | 
				
			||||||
 | 
					# fade-exclude = [ ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Other
 | 
				
			||||||
 | 
					backend = "glx";
 | 
				
			||||||
 | 
					mark-wmwin-focused = true;
 | 
				
			||||||
 | 
					mark-ovredir-focused = true;
 | 
				
			||||||
 | 
					use-ewmh-active-win = true;
 | 
				
			||||||
 | 
					detect-rounded-corners = true;
 | 
				
			||||||
 | 
					detect-client-opacity = true;
 | 
				
			||||||
 | 
					refresh-rate = 0;
 | 
				
			||||||
 | 
					vsync = true;
 | 
				
			||||||
 | 
					# sw-opti = true;
 | 
				
			||||||
 | 
					# unredir-if-possible = true;
 | 
				
			||||||
 | 
					# unredir-if-possible-delay = 5000;
 | 
				
			||||||
 | 
					# unredir-if-possible-exclude = [ ];
 | 
				
			||||||
 | 
					focus-exclude = [
 | 
				
			||||||
 | 
						"i:ai:chromium",
 | 
				
			||||||
 | 
						"class_g = 'firefox'",
 | 
				
			||||||
 | 
						"class_g = 'zoom'"
 | 
				
			||||||
 | 
					];
 | 
				
			||||||
 | 
					detect-transient = true;
 | 
				
			||||||
 | 
					detect-client-leader = true;
 | 
				
			||||||
 | 
					invert-color-include = [ ];
 | 
				
			||||||
 | 
					# resize-damage = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# GLX backend
 | 
				
			||||||
 | 
					glx-no-stencil = true;
 | 
				
			||||||
 | 
					glx-no-rebind-pixmap = true;
 | 
				
			||||||
 | 
					xrender-sync-fence = true;
 | 
				
			||||||
 | 
					use-damage = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Window type settings
 | 
				
			||||||
 | 
					wintypes:
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
 | 
				
			||||||
 | 
					  dock = { shadow = false; }
 | 
				
			||||||
 | 
					  dnd = { shadow = false; }
 | 
				
			||||||
 | 
					  popup_menu = { opacity = 0.8; }
 | 
				
			||||||
 | 
					  dropdown_menu = { opacity = 0.8; }
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										327
									
								
								polybar/config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										327
									
								
								polybar/config
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,327 @@
 | 
				
			|||||||
 | 
					[colours]
 | 
				
			||||||
 | 
					background = transparent
 | 
				
			||||||
 | 
					text = #eceff1
 | 
				
			||||||
 | 
					icon = #147a82
 | 
				
			||||||
 | 
					warning = #ffcb00
 | 
				
			||||||
 | 
					critical = #bd2c40
 | 
				
			||||||
 | 
					urgent = #e53935
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[settings]
 | 
				
			||||||
 | 
					format-foreground = ${colours.text}
 | 
				
			||||||
 | 
					format-background = ${colours.background}
 | 
				
			||||||
 | 
					format-spacing = 0
 | 
				
			||||||
 | 
					format-margin  = 2.5
 | 
				
			||||||
 | 
					format-offset  = 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					screenchange-reload = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[bar/i3bar]
 | 
				
			||||||
 | 
					monitor = ${env:MONITOR:HDMI-0}
 | 
				
			||||||
 | 
					dpi  = ${xrdb:Xft.dpi:96}
 | 
				
			||||||
 | 
					fixed-center = false
 | 
				
			||||||
 | 
					enable-ipc = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					width = 100%
 | 
				
			||||||
 | 
					#offset-x = 18px
 | 
				
			||||||
 | 
					height = 16pt
 | 
				
			||||||
 | 
					bottom = true
 | 
				
			||||||
 | 
					radius = 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					font-0 = sans:pixelsize=9;2
 | 
				
			||||||
 | 
					font-1 = FontAwesome5ProLight:pixelsize=10;2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					foreground = ${colours.text}
 | 
				
			||||||
 | 
					background = ${colours.background}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					padding-left = 0
 | 
				
			||||||
 | 
					padding-right = 2pt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					border-size = 0
 | 
				
			||||||
 | 
					border-left-size = 16pt
 | 
				
			||||||
 | 
					border-right-size = 16pt
 | 
				
			||||||
 | 
					border-bottom-size = 8pt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					line-size = 0
 | 
				
			||||||
 | 
					line-colour = #f00
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					modules-left = i3
 | 
				
			||||||
 | 
					modules-center =
 | 
				
			||||||
 | 
					# modules-right = volume updates weather xkeyboard wlan gateway eth memory cpu xbacklight battery cputemp gputemp date
 | 
				
			||||||
 | 
					modules-right = volume updates weather wlan gateway eth memory cpu xbacklight battery cputemp gputemp date
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					tray-position = right
 | 
				
			||||||
 | 
					tray-detached = false
 | 
				
			||||||
 | 
					tray-background = ${colours.background}
 | 
				
			||||||
 | 
					#tray-offset-x = -20
 | 
				
			||||||
 | 
					#tray-offset-y = 0
 | 
				
			||||||
 | 
					tray-maxsize = 16
 | 
				
			||||||
 | 
					tray-padding = 8pt
 | 
				
			||||||
 | 
					tray-scale = 1.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cursor-click = pointer
 | 
				
			||||||
 | 
					cursor-scroll = ns-resize
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[module/updates]
 | 
				
			||||||
 | 
					type = custom/script
 | 
				
			||||||
 | 
					exec = $XDG_CONFIG_HOME/polybar/update.sh
 | 
				
			||||||
 | 
					tail = true
 | 
				
			||||||
 | 
					format-prefix = "  "
 | 
				
			||||||
 | 
					format-prefix-foreground = ${colours.icon}
 | 
				
			||||||
 | 
					click-left = systemd-run --user --no-block -- i3-sensible-terminal --class floating-term -e sh -c "yay; kill -USR1 %pid%; sleep 1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[module/weather]
 | 
				
			||||||
 | 
					type = custom/script
 | 
				
			||||||
 | 
					exec = $XDG_CONFIG_HOME/polybar/weather.sh
 | 
				
			||||||
 | 
					interval = 120
 | 
				
			||||||
 | 
					click-left = systemd-run --user --no-block -- i3-sensible-terminal --class floating-term -d 125 40 --hold -e sh -c "curl wttr.in"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[module/gateway]
 | 
				
			||||||
 | 
					type = custom/script
 | 
				
			||||||
 | 
					exec = for v in 4 6; do ip -$v r show default | xargs -rL1 sh -c 'fping --retry=1 --quiet --iface "$4" "$2"'; done && echo  || echo '%{F#f41f1c}%{F-}'
 | 
				
			||||||
 | 
					interval = 2
 | 
				
			||||||
 | 
					format-prefix = "  "
 | 
				
			||||||
 | 
					format-prefix-foreground = ${colours.icon}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[module/xkeyboard]
 | 
				
			||||||
 | 
					type = internal/xkeyboard
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					format = <label-layout> <label-indicator>
 | 
				
			||||||
 | 
					format-prefix = "  "
 | 
				
			||||||
 | 
					format-prefix-foreground = ${colours.icon}
 | 
				
			||||||
 | 
					format-prefix-underline = ${colours.background}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					label-layout = %name%
 | 
				
			||||||
 | 
					label-indicator = %name%
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[module/i3]
 | 
				
			||||||
 | 
					type = internal/i3
 | 
				
			||||||
 | 
					format = <label-state> <label-mode>
 | 
				
			||||||
 | 
					index-sort = true
 | 
				
			||||||
 | 
					wrapping-scroll = false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; Only show workspaces on the same output as the bar
 | 
				
			||||||
 | 
					; pin-workspaces = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					label-mode-padding = 2
 | 
				
			||||||
 | 
					label-mode-foreground = ${colours.text}
 | 
				
			||||||
 | 
					label-mode-background = ${colours.background}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; focused = Active workspace on focused monitor
 | 
				
			||||||
 | 
					label-focused = %index%
 | 
				
			||||||
 | 
					label-focused-padding = ${self.label-mode-padding}
 | 
				
			||||||
 | 
					label-focused-foreground = ${colours.text}
 | 
				
			||||||
 | 
					label-focused-background = ${colours.background}
 | 
				
			||||||
 | 
					label-focused-underline = ${colours.background}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; unfocused = Inactive workspace on any monitor
 | 
				
			||||||
 | 
					label-unfocused = ${self.label-focused}
 | 
				
			||||||
 | 
					label-unfocused-padding = ${self.label-focused-padding}
 | 
				
			||||||
 | 
					label-unfocused-foreground= ${colours.icon}
 | 
				
			||||||
 | 
					label-unfocused-underline = ${self.label-focused-underline}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; visible = Active workspace on unfocused monitor
 | 
				
			||||||
 | 
					label-visible = ${self.label-focused}
 | 
				
			||||||
 | 
					label-visible-foreground= ${colours.icon}
 | 
				
			||||||
 | 
					label-visible-padding = ${self.label-focused-padding}
 | 
				
			||||||
 | 
					label-visible-background = ${self.label-focused-background}
 | 
				
			||||||
 | 
					label-visible-underline = ${self.label-focused-underline}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; urgent = Workspace with urgency hint set
 | 
				
			||||||
 | 
					label-urgent = ${self.label-focused}
 | 
				
			||||||
 | 
					label-urgent-foreground = ${colours.urgent}
 | 
				
			||||||
 | 
					label-urgent-padding = ${self.label-focused-padding}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[module/xbacklight]
 | 
				
			||||||
 | 
					type = internal/xbacklight
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					label = %percentage%
 | 
				
			||||||
 | 
					format = <label>
 | 
				
			||||||
 | 
					format-prefix = "  "
 | 
				
			||||||
 | 
					format-prefix-foreground = ${colours.icon}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[module/backlight-acpi]
 | 
				
			||||||
 | 
					inherit = module/xbacklight
 | 
				
			||||||
 | 
					type = internal/backlight
 | 
				
			||||||
 | 
					card = intel_backlight
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[module/cpu]
 | 
				
			||||||
 | 
					type = internal/cpu
 | 
				
			||||||
 | 
					interval = 2
 | 
				
			||||||
 | 
					format-prefix = "  "
 | 
				
			||||||
 | 
					format-prefix-foreground = ${colours.icon}
 | 
				
			||||||
 | 
					format-underline = ${colours.background}
 | 
				
			||||||
 | 
					label = %percentage%%
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[module/memory]
 | 
				
			||||||
 | 
					type = internal/memory
 | 
				
			||||||
 | 
					interval = 2
 | 
				
			||||||
 | 
					format-prefix = "  "
 | 
				
			||||||
 | 
					format-prefix-foreground = ${colours.icon}
 | 
				
			||||||
 | 
					label = %percentage_used%%
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[module/wlan]
 | 
				
			||||||
 | 
					type = internal/network
 | 
				
			||||||
 | 
					interface = wlp1s0
 | 
				
			||||||
 | 
					interval = 3.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					format-connected = <ramp-signal>  <label-connected>
 | 
				
			||||||
 | 
					format-connected-underline = ${colours.background}
 | 
				
			||||||
 | 
					label-connected = %essid%
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					format-disconnected =
 | 
				
			||||||
 | 
					;format-disconnected = <label-disconnected>
 | 
				
			||||||
 | 
					;format-disconnected-underline = ${self.format-connected-underline}
 | 
				
			||||||
 | 
					;label-disconnected = %ifname% disconnected
 | 
				
			||||||
 | 
					;label-disconnected-foreground = ${colours.icon}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ramp-signal-0 = 
 | 
				
			||||||
 | 
					ramp-signal-1 = 
 | 
				
			||||||
 | 
					ramp-signal-2 = 
 | 
				
			||||||
 | 
					ramp-signal-foreground = ${colours.icon}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[module/eth]
 | 
				
			||||||
 | 
					type = internal/network
 | 
				
			||||||
 | 
					interface = eth0
 | 
				
			||||||
 | 
					interval = 3.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					label-connected = %local_ip%
 | 
				
			||||||
 | 
					format-connected-prefix = "  "
 | 
				
			||||||
 | 
					format-connected-prefix-foreground = ${colours.icon}
 | 
				
			||||||
 | 
					format-connected-underline = ${colours.background}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;format-disconnected = RIP
 | 
				
			||||||
 | 
					;format-disconnected = <label-disconnected>
 | 
				
			||||||
 | 
					;format-disconnected-underline = ${self.format-connected-underline}
 | 
				
			||||||
 | 
					;label-disconnected = %ifname% disconnected
 | 
				
			||||||
 | 
					label-disconnected-foreground = ${colours.critical}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[module/date]
 | 
				
			||||||
 | 
					type = internal/date
 | 
				
			||||||
 | 
					interval = 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					label = %{A3:systemd-run --user --no-block -- i3-sensible-terminal --class floating-term -d 66 35 -qq --hold -e sh -c "cal -y $(date +%Y)":}%date% %time%%{A}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					time = %H:%M
 | 
				
			||||||
 | 
					time-alt = %a %e %b %Y %H:%M:%S
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					format-prefix = " "
 | 
				
			||||||
 | 
					format-prefix-foreground = ${colours.icon}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[module/volume]
 | 
				
			||||||
 | 
					type = internal/pulseaudio
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					label-volume = %percentage%
 | 
				
			||||||
 | 
					format-volume = %{A3:systemd-run --user --no-block -- pavucontrol:}<ramp-volume>  <label-volume>%{A}
 | 
				
			||||||
 | 
					format-muted = %{A3:systemd-run --user --no-block -- pavucontrol:}<label-muted>%{A}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					label-volume-foreground = ${root.foreground}
 | 
				
			||||||
 | 
					format-muted-foreground = ${colours.icon}
 | 
				
			||||||
 | 
					ramp-volume-foreground  = ${colours.icon}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					label-muted = ""
 | 
				
			||||||
 | 
					ramp-volume-0 = ""
 | 
				
			||||||
 | 
					ramp-volume-1 = ""
 | 
				
			||||||
 | 
					ramp-volume-2 = ""
 | 
				
			||||||
 | 
					ramp-volume-3 = ""
 | 
				
			||||||
 | 
					ramp-volume-4 = ""
 | 
				
			||||||
 | 
					ramp-volume-5 = ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[module/battery]
 | 
				
			||||||
 | 
					type = internal/battery
 | 
				
			||||||
 | 
					battery = BAT0
 | 
				
			||||||
 | 
					adapter = AC0
 | 
				
			||||||
 | 
					full-at = 98
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					format-full = <label-full>
 | 
				
			||||||
 | 
					format-charging = <label-charging>
 | 
				
			||||||
 | 
					format-discharging = <ramp-capacity>  <label-discharging>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					format-full-underline = ${self.format-charging-underline}
 | 
				
			||||||
 | 
					format-charging-underline = ${colours.background}
 | 
				
			||||||
 | 
					format-discharging-underline = ${self.format-charging-underline}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					format-full-prefix = "  "
 | 
				
			||||||
 | 
					format-charging-prefix = "  "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ramp-capacity-0 = 
 | 
				
			||||||
 | 
					ramp-capacity-1 = 
 | 
				
			||||||
 | 
					ramp-capacity-2 = 
 | 
				
			||||||
 | 
					ramp-capacity-3 = 
 | 
				
			||||||
 | 
					ramp-capacity-4 = 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					format-full-prefix-foreground = ${colours.icon}
 | 
				
			||||||
 | 
					format-charging-prefix-foreground = ${colours.icon}
 | 
				
			||||||
 | 
					ramp-capacity-foreground = ${colours.icon}
 | 
				
			||||||
 | 
					ramp-capacity-0-foreground = ${colours.critical}
 | 
				
			||||||
 | 
					ramp-capacity-1-foreground = ${colours.warning}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[module/cputemp]
 | 
				
			||||||
 | 
					type = internal/temperature
 | 
				
			||||||
 | 
					hwmon-path = /sys/devices/platform/nct6775.656/hwmon/hwmon1/temp2_input
 | 
				
			||||||
 | 
					base-temperature = 25
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					format = <ramp>  <label>
 | 
				
			||||||
 | 
					format-warn = <ramp>  <label-warn>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					label = %temperature-c%
 | 
				
			||||||
 | 
					label-warn = %temperature-c%
 | 
				
			||||||
 | 
					label-warn-foreground = ${colours.background}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ramp-0 = 
 | 
				
			||||||
 | 
					ramp-1 = 
 | 
				
			||||||
 | 
					ramp-2 = 
 | 
				
			||||||
 | 
					ramp-3 = 
 | 
				
			||||||
 | 
					ramp-4 = 
 | 
				
			||||||
 | 
					ramp-5 = 
 | 
				
			||||||
 | 
					ramp-foreground = ${colours.icon}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[module/gputemp]
 | 
				
			||||||
 | 
					type = custom/script
 | 
				
			||||||
 | 
					exec = nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits
 | 
				
			||||||
 | 
					interval = 10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					label = %output%°C
 | 
				
			||||||
 | 
					format-prefix = "  "
 | 
				
			||||||
 | 
					format-prefix-foreground = ${colours.icon}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[module/powermenu]
 | 
				
			||||||
 | 
					type = custom/menu
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					expand-right = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					label-open = 
 | 
				
			||||||
 | 
					label-close = cancel
 | 
				
			||||||
 | 
					label-separator = |
 | 
				
			||||||
 | 
					label-open-foreground = ${colours.icon}
 | 
				
			||||||
 | 
					label-close-foreground = ${colours.background}
 | 
				
			||||||
 | 
					label-separator-foreground = ${colours.icon}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					menu-0-0 = reboot
 | 
				
			||||||
 | 
					menu-0-0-exec = menu-open-1
 | 
				
			||||||
 | 
					menu-0-1 = power off
 | 
				
			||||||
 | 
					menu-0-1-exec = menu-open-2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					menu-1-0 = cancel
 | 
				
			||||||
 | 
					menu-1-0-exec = menu-open-0
 | 
				
			||||||
 | 
					menu-1-1 = reboot
 | 
				
			||||||
 | 
					menu-1-1-exec = sudo reboot
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					menu-2-0 = power off
 | 
				
			||||||
 | 
					menu-2-0-exec = sudo poweroff
 | 
				
			||||||
 | 
					menu-2-1 = cancel
 | 
				
			||||||
 | 
					menu-2-1-exec = menu-open-0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					; vim:ft=dosini
 | 
				
			||||||
							
								
								
									
										11
									
								
								polybar/update.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										11
									
								
								polybar/update.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dothething() { count=$( (checkupdates & yay -Qum) 2>/dev/null | wc -l); test $count -gt 0 && echo $count || echo; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					trap 'true' HUP USR1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					while true; do
 | 
				
			||||||
 | 
					    dothething
 | 
				
			||||||
 | 
					    sleep 120 &
 | 
				
			||||||
 | 
					    wait
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
							
								
								
									
										136
									
								
								polybar/weather.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										136
									
								
								polybar/weather.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,136 @@
 | 
				
			|||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					get_icon_day() {
 | 
				
			||||||
 | 
					    case $1 in
 | 
				
			||||||
 | 
					        210) echo  ;;		# light thunderstorm
 | 
				
			||||||
 | 
					        211) echo  ;;		# thunderstorm
 | 
				
			||||||
 | 
					        500) echo  ;;		# light rain
 | 
				
			||||||
 | 
					        721) echo  ;;		# haze
 | 
				
			||||||
 | 
					        800) echo  ;;		# clear sky
 | 
				
			||||||
 | 
					        801) echo  ;;		# few clouds
 | 
				
			||||||
 | 
					        802) echo  ;;		# scattered clouds
 | 
				
			||||||
 | 
					        803) echo  ;;		# broken clouds
 | 
				
			||||||
 | 
					        804) echo  ;;		# overcast clouds
 | 
				
			||||||
 | 
					        *) return 1;;
 | 
				
			||||||
 | 
					    esac
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					get_icon_night() {
 | 
				
			||||||
 | 
					    case $1 in
 | 
				
			||||||
 | 
					        210) echo  ;;		# light thunderstorm
 | 
				
			||||||
 | 
					        211) echo  ;;		# thunderstorm
 | 
				
			||||||
 | 
					        500) echo  ;;		# light rain
 | 
				
			||||||
 | 
					        800) echo  ;;		# clear sky
 | 
				
			||||||
 | 
					        801) echo  ;;		# few clouds
 | 
				
			||||||
 | 
					        802) echo  ;;		# scattered clouds
 | 
				
			||||||
 | 
					        803) echo  ;;		# broken clouds
 | 
				
			||||||
 | 
					        804) echo  ;;		# overcast clouds
 | 
				
			||||||
 | 
					        *) return 1;;
 | 
				
			||||||
 | 
					    esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					get_icon() {
 | 
				
			||||||
 | 
					    case $1 in
 | 
				
			||||||
 | 
					        d) fn=get_icon_day;;
 | 
				
			||||||
 | 
					        n) fn=get_icon_night;;
 | 
				
			||||||
 | 
					    esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if $fn $2; then
 | 
				
			||||||
 | 
					        return
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    case $2 in
 | 
				
			||||||
 | 
					        200) echo  ;;		# thunderstorm with light rain
 | 
				
			||||||
 | 
					        201) echo  ;;		# thunderstorm with rain
 | 
				
			||||||
 | 
					        202) echo  ;;		# thunderstorm with heavy rain
 | 
				
			||||||
 | 
					        210) echo  ;;		# light thunderstorm
 | 
				
			||||||
 | 
					        211) echo  ;;		# thunderstorm
 | 
				
			||||||
 | 
					        212) echo  ;;		# heavy thunderstorm
 | 
				
			||||||
 | 
					        221) echo  ;;		# ragged thunderstorm
 | 
				
			||||||
 | 
					        230) echo  ;;		# thunderstorm with light drizzle
 | 
				
			||||||
 | 
					        231) echo  ;;		# thunderstorm with drizzle
 | 
				
			||||||
 | 
					        232) echo  ;;		# thunderstorm with heavy drizzle
 | 
				
			||||||
 | 
					        300) echo  ;;		# light intensity drizzle
 | 
				
			||||||
 | 
					        301) echo  ;;		# drizzle
 | 
				
			||||||
 | 
					        302) echo  ;;		# heavy intensity drizzle
 | 
				
			||||||
 | 
					        310) echo  ;;		# light intensity drizzle rain
 | 
				
			||||||
 | 
					        311) echo  ;;		# drizzle rain
 | 
				
			||||||
 | 
					        312) echo  ;;		# heavy intensity drizzle rain
 | 
				
			||||||
 | 
					        313) echo  ;;		# shower rain and drizzle
 | 
				
			||||||
 | 
					        314) echo  ;;		# heavy shower rain and drizzle
 | 
				
			||||||
 | 
					        321) echo  ;;		# shower drizzle
 | 
				
			||||||
 | 
					        500) echo   ;; 	# light rain
 | 
				
			||||||
 | 
					        501) echo  ;;		# moderate rain
 | 
				
			||||||
 | 
					        502) echo  ;;		# heavy intensity rain
 | 
				
			||||||
 | 
					        503) echo  ;;		# very heavy rain
 | 
				
			||||||
 | 
					        504) echo  ;;		# extreme rain
 | 
				
			||||||
 | 
					        511) echo  ;;		# freezing rain
 | 
				
			||||||
 | 
					        520) echo  ;;		# light intensity shower rain
 | 
				
			||||||
 | 
					        521) echo  ;;		# shower rain
 | 
				
			||||||
 | 
					        522) echo  ;;		# heavy intensity shower rain
 | 
				
			||||||
 | 
					        531) echo  ;;		# ragged shower rain
 | 
				
			||||||
 | 
					        600) echo  ;;		# light snow
 | 
				
			||||||
 | 
					        601) echo  ;;		# snow
 | 
				
			||||||
 | 
					        602) echo  ;;		# heavy snow
 | 
				
			||||||
 | 
					        611) echo  ;;		# sleet
 | 
				
			||||||
 | 
					        612) echo  ;;		# shower sleet
 | 
				
			||||||
 | 
					        615) echo  ;;		# light rain and snow
 | 
				
			||||||
 | 
					        616) echo  ;;		# rain and snow
 | 
				
			||||||
 | 
					        620) echo  ;;		# light shower snow
 | 
				
			||||||
 | 
					        621) echo  ;;		# shower snow
 | 
				
			||||||
 | 
					        622) echo  ;;		# heavy shower snow
 | 
				
			||||||
 | 
					        701) echo  ;;		# mist
 | 
				
			||||||
 | 
					        711) echo  ;;		# smoke
 | 
				
			||||||
 | 
					        721) echo  ;;		# haze
 | 
				
			||||||
 | 
					        741) echo  ;;		# fog
 | 
				
			||||||
 | 
					        762) echo  ;;		# volcanic ash
 | 
				
			||||||
 | 
					        781) echo  ;;		# tornado
 | 
				
			||||||
 | 
					        # 731) echo  ;;		# sand, dust whirls
 | 
				
			||||||
 | 
					        # 751) echo  ;;		# sand
 | 
				
			||||||
 | 
					        # 761) echo  ;;		# dust
 | 
				
			||||||
 | 
					        # 771) echo  ;;		# squalls
 | 
				
			||||||
 | 
					        *) echo  ;;
 | 
				
			||||||
 | 
					    esac
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					KEY="$OPENWEATHERMAP_API_KEY"
 | 
				
			||||||
 | 
					CITY=""
 | 
				
			||||||
 | 
					UNITS="metric"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SYMBOL="°"
 | 
				
			||||||
 | 
					ICON_COL="147a82"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					API="https://api.openweathermap.org/data/2.5"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ ! -z $CITY ]; then
 | 
				
			||||||
 | 
					    if [ "$CITY" -eq "$CITY" ] 2>/dev/null; then
 | 
				
			||||||
 | 
					        CITY_PARAM="id=$CITY"
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        CITY_PARAM="q=$CITY"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    weather=$(curl -sf "$API/weather?appid=$KEY&$CITY_PARAM&units=$UNITS")
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    location=$(curl -sf https://location.services.mozilla.com/v1/geolocate?key=geoclue)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if [ ! -z "$location" ]; then
 | 
				
			||||||
 | 
					        location_lat="$(echo "$location" | jq '.location.lat')"
 | 
				
			||||||
 | 
					        location_lon="$(echo "$location" | jq '.location.lng')"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        weather=$(curl -sf "$API/weather?appid=$KEY&lat=$location_lat&lon=$location_lon&units=$UNITS")
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        echo "%{F#$ICON_COL}%{F-}"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ ! -z "$weather" ]; then
 | 
				
			||||||
 | 
					    # weather_desc=$(echo "$weather" | jq -r ".weather[0].description")
 | 
				
			||||||
 | 
					    weather_temp=$(echo "$weather" | jq '.main.temp' | cut -d "." -f 1)
 | 
				
			||||||
 | 
					    weather_code=$(echo "$weather" | jq -r '.weather[0].id')
 | 
				
			||||||
 | 
					    time_of_day=$(echo "$weather" | jq -r '.weather[0].icon | split("") | last')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    icon=$(get_icon "$time_of_day" "$weather_code")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    echo "%{F#$ICON_COL}$icon%{F-}  $weather_temp$SYMBOL"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
							
								
								
									
										16
									
								
								procps/toprc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								procps/toprc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					top's Config File (Linux processes with windows)
 | 
				
			||||||
 | 
					Id:i, Mode_altscr=0, Mode_irixps=0, Delay_time=0.500, Curwin=0
 | 
				
			||||||
 | 
					Def	fieldscur=<3D>&K<><4B><EFBFBD><EFBFBD><EFBFBD>@<40><><EFBFBD>56<35>F<EFBFBD>')*+,-./0128<>?ABCGHIJLMNOPQRSTUVWXYZ[\]^_`abcdefghij
 | 
				
			||||||
 | 
						winflags=163638, sortindx=21, maxtasks=0, graph_cpus=1, graph_mems=1
 | 
				
			||||||
 | 
						summclr=1, msgsclr=1, headclr=3, taskclr=1
 | 
				
			||||||
 | 
					Job	fieldscur=<3D><><EFBFBD><EFBFBD><EFBFBD>(<28><>Ļ<EFBFBD>@<<3C><>)*+,-./012568>?ABCFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij
 | 
				
			||||||
 | 
						winflags=163124, sortindx=0, maxtasks=0, graph_cpus=2, graph_mems=0
 | 
				
			||||||
 | 
						summclr=6, msgsclr=6, headclr=7, taskclr=6
 | 
				
			||||||
 | 
					Mem	fieldscur=<3D><><EFBFBD><<3C><><EFBFBD><EFBFBD><EFBFBD>MBN<42>D34<33><34>&'()*+,-./0125689FGHIJKLOPQRSTUVWXYZ[\]^_`abcdefghij
 | 
				
			||||||
 | 
						winflags=163124, sortindx=21, maxtasks=0, graph_cpus=2, graph_mems=0
 | 
				
			||||||
 | 
						summclr=5, msgsclr=5, headclr=4, taskclr=5
 | 
				
			||||||
 | 
					Usr	fieldscur=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)+,-./1234568;<=>?@ABCFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij
 | 
				
			||||||
 | 
						winflags=163124, sortindx=3, maxtasks=0, graph_cpus=2, graph_mems=0
 | 
				
			||||||
 | 
						summclr=3, msgsclr=3, headclr=2, taskclr=3
 | 
				
			||||||
 | 
					Fixed_widest=0, Summ_mscale=2, Task_mscale=1, Zero_suppress=0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										27
									
								
								qt5ct/qt5ct.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								qt5ct/qt5ct.conf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					[Appearance]
 | 
				
			||||||
 | 
					color_scheme_path=/usr/share/qt5ct/colors/airy.conf
 | 
				
			||||||
 | 
					custom_palette=false
 | 
				
			||||||
 | 
					standard_dialogs=gtk2
 | 
				
			||||||
 | 
					style=gtk2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Fonts]
 | 
				
			||||||
 | 
					fixed=@Variant(\0\0\0@\0\0\0\x12\0M\0o\0n\0o\0s\0p\0\x61\0\x63\0\x65@\"\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10)
 | 
				
			||||||
 | 
					general=@Variant(\0\0\0@\0\0\0\x14\0S\0\x61\0n\0s\0 \0S\0\x65\0r\0i\0\x66@\"\0\0\0\0\0\0\xff\xff\xff\xff\x5\x1\0\x32\x10)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Interface]
 | 
				
			||||||
 | 
					activate_item_on_single_click=1
 | 
				
			||||||
 | 
					buttonbox_layout=3
 | 
				
			||||||
 | 
					cursor_flash_time=1000
 | 
				
			||||||
 | 
					dialog_buttons_have_icons=1
 | 
				
			||||||
 | 
					double_click_interval=400
 | 
				
			||||||
 | 
					gui_effects=@Invalid()
 | 
				
			||||||
 | 
					keyboard_scheme=2
 | 
				
			||||||
 | 
					menus_have_icons=true
 | 
				
			||||||
 | 
					show_shortcuts_in_context_menus=true
 | 
				
			||||||
 | 
					stylesheets=@Invalid()
 | 
				
			||||||
 | 
					toolbutton_style=4
 | 
				
			||||||
 | 
					underline_shortcut=1
 | 
				
			||||||
 | 
					wheel_scroll_lines=3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[SettingsWindow]
 | 
				
			||||||
 | 
					geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\a\x98\0\0\x6\xfd\0\0\v5\0\0\b8\0\0\a\x98\0\0\x6\xfd\0\0\v5\0\0\b8\0\0\0\x1\0\0\0\0\a\x80\0\0\a\x98\0\0\x6\xfd\0\0\v5\0\0\b8)
 | 
				
			||||||
							
								
								
									
										42
									
								
								rofi/arc-dark.rasi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								rofi/arc-dark.rasi
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
				
			|||||||
 | 
					* {
 | 
				
			||||||
 | 
					  background-color: transparent;
 | 
				
			||||||
 | 
					  text-color:       #D3DAE3;
 | 
				
			||||||
 | 
					  border-color:     @text-color;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					window {
 | 
				
			||||||
 | 
					  border:           0.3em;
 | 
				
			||||||
 | 
					  border-color:     #2f343f;
 | 
				
			||||||
 | 
					  padding:          0.8em;
 | 
				
			||||||
 | 
					  background-color: rgba(56, 60, 74, 0.95);
 | 
				
			||||||
 | 
					  transparency:     "real";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					inputbar {
 | 
				
			||||||
 | 
					  padding:          0 0 0.3em;
 | 
				
			||||||
 | 
					  border:           0 0 0.1em;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					prompt {
 | 
				
			||||||
 | 
					  padding:          0 0.4em 0 0.2em;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					listview {
 | 
				
			||||||
 | 
					  padding:          0.3em 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					element {
 | 
				
			||||||
 | 
					  padding:          0.1em 0.2em;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					button {
 | 
				
			||||||
 | 
					  border:           0 0 0.1em;
 | 
				
			||||||
 | 
					  border-color:     transparent;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					button.selected.normal {
 | 
				
			||||||
 | 
					  border-color:     @text-color;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					element.selected.normal {
 | 
				
			||||||
 | 
					  background-color: rgb(64, 132, 214);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* vim: ft=css sw=2 */
 | 
				
			||||||
							
								
								
									
										145
									
								
								rofi/config.rasi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										145
									
								
								rofi/config.rasi
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,145 @@
 | 
				
			|||||||
 | 
					configuration {
 | 
				
			||||||
 | 
					  theme: "arc-dark";
 | 
				
			||||||
 | 
					  font: "sans 14";
 | 
				
			||||||
 | 
					  dpi: 0;
 | 
				
			||||||
 | 
					  width: 35;
 | 
				
			||||||
 | 
					  lines: 10;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* show-icons: true; */
 | 
				
			||||||
 | 
					  separator-style: "solid";
 | 
				
			||||||
 | 
					  modi: "window,run,ssh";
 | 
				
			||||||
 | 
					  kb-row-tab: "Shift-Tab";
 | 
				
			||||||
 | 
					  kb-row-select: "Tab";
 | 
				
			||||||
 | 
					  terminal: "i3-sensible-terminal";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  matching: "glob";
 | 
				
			||||||
 | 
					  tokenize: true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*  columns: 1;*/
 | 
				
			||||||
 | 
					/*  bw: 1;*/
 | 
				
			||||||
 | 
					/*  location: 0;*/
 | 
				
			||||||
 | 
					/*  padding: 5;*/
 | 
				
			||||||
 | 
					/*  yoffset: 0;*/
 | 
				
			||||||
 | 
					/*  xoffset: 0;*/
 | 
				
			||||||
 | 
					/*  fixed-num-lines: true;*/
 | 
				
			||||||
 | 
					/*  ssh-client: "ssh";*/
 | 
				
			||||||
 | 
					/*  ssh-command: "{terminal} -e {ssh-client} {host}";*/
 | 
				
			||||||
 | 
					/*  run-command: "{cmd}";*/
 | 
				
			||||||
 | 
					/*  run-list-command: "";*/
 | 
				
			||||||
 | 
					/*  run-shell-command: "{terminal} -e {cmd}";*/
 | 
				
			||||||
 | 
					/*  window-command: "xkill -id {window}";*/
 | 
				
			||||||
 | 
					/*  window-match-fields: "all";*/
 | 
				
			||||||
 | 
					/*  drun-icon-theme: ;*/
 | 
				
			||||||
 | 
					/*  drun-match-fields: "name,generic,exec,categories";*/
 | 
				
			||||||
 | 
					/*  disable-history: false;*/
 | 
				
			||||||
 | 
					/*  sort: false;*/
 | 
				
			||||||
 | 
					/*  levenshtein-sort: false;*/
 | 
				
			||||||
 | 
					/*  case-sensitive: false;*/
 | 
				
			||||||
 | 
					/*  cycle: true;*/
 | 
				
			||||||
 | 
					/*  sidebar-mode: false;*/
 | 
				
			||||||
 | 
					/*  eh: 1;*/
 | 
				
			||||||
 | 
					/*  auto-select: false;*/
 | 
				
			||||||
 | 
					/*  parse-hosts: false;*/
 | 
				
			||||||
 | 
					/*  parse-known-hosts: true;*/
 | 
				
			||||||
 | 
					/*  combi-modi: "window,run";*/
 | 
				
			||||||
 | 
					/*  m: "-5";*/
 | 
				
			||||||
 | 
					/*  line-margin: 2;*/
 | 
				
			||||||
 | 
					/*  line-padding: 1;*/
 | 
				
			||||||
 | 
					/*  filter: ;*/
 | 
				
			||||||
 | 
					/*  hide-scrollbar: false;*/
 | 
				
			||||||
 | 
					/*  fullscreen: false;*/
 | 
				
			||||||
 | 
					/*  fake-transparency: false;*/
 | 
				
			||||||
 | 
					/*  dpi: -1;*/
 | 
				
			||||||
 | 
					/*  threads: 0;*/
 | 
				
			||||||
 | 
					/*  scrollbar-width: 8;*/
 | 
				
			||||||
 | 
					/*  scroll-method: 0;*/
 | 
				
			||||||
 | 
					/*  fake-background: "screenshot";*/
 | 
				
			||||||
 | 
					/*  window-format: "{w}    {i}{c}   {t}";*/
 | 
				
			||||||
 | 
					/*  click-to-exit: true;*/
 | 
				
			||||||
 | 
					/*  show-match: true;*/
 | 
				
			||||||
 | 
					/*  color-normal: ;*/
 | 
				
			||||||
 | 
					/*  color-urgent: ;*/
 | 
				
			||||||
 | 
					/*  color-active: ;*/
 | 
				
			||||||
 | 
					/*  color-window: ;*/
 | 
				
			||||||
 | 
					/*  max-history-size: 25;*/
 | 
				
			||||||
 | 
					/*  combi-hide-mode-prefix: false;*/
 | 
				
			||||||
 | 
					/*  pid: "/run/user/1000/rofi.pid";*/
 | 
				
			||||||
 | 
					/*  display-window: ;*/
 | 
				
			||||||
 | 
					/*  display-windowcd: ;*/
 | 
				
			||||||
 | 
					/*  display-run: ;*/
 | 
				
			||||||
 | 
					/*  display-ssh: ;*/
 | 
				
			||||||
 | 
					/*  display-drun: ;*/
 | 
				
			||||||
 | 
					/*  display-combi: ;*/
 | 
				
			||||||
 | 
					/*  display-keys: ;*/
 | 
				
			||||||
 | 
					/*  kb-primary-paste: "Control+V,Shift+Insert";*/
 | 
				
			||||||
 | 
					/*  kb-secondary-paste: "Control+v,Insert";*/
 | 
				
			||||||
 | 
					/*  kb-clear-line: "Control+w";*/
 | 
				
			||||||
 | 
					/*  kb-move-front: "Control+a";*/
 | 
				
			||||||
 | 
					/*  kb-move-end: "Control+e";*/
 | 
				
			||||||
 | 
					/*  kb-move-word-back: "Alt+b";*/
 | 
				
			||||||
 | 
					/*  kb-move-word-forward: "Alt+f";*/
 | 
				
			||||||
 | 
					/*  kb-move-char-back: "Left,Control+b";*/
 | 
				
			||||||
 | 
					/*  kb-move-char-forward: "Right,Control+f";*/
 | 
				
			||||||
 | 
					/*  kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/
 | 
				
			||||||
 | 
					/*  kb-remove-word-forward: "Control+Alt+d";*/
 | 
				
			||||||
 | 
					/*  kb-remove-char-forward: "Delete,Control+d";*/
 | 
				
			||||||
 | 
					/*  kb-remove-char-back: "BackSpace,Control+h";*/
 | 
				
			||||||
 | 
					/*  kb-remove-to-eol: "Control+k";*/
 | 
				
			||||||
 | 
					/*  kb-remove-to-sol: "Control+u";*/
 | 
				
			||||||
 | 
					/*  kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/
 | 
				
			||||||
 | 
					/*  kb-accept-custom: "Control+Return";*/
 | 
				
			||||||
 | 
					/*  kb-accept-alt: "Shift+Return";*/
 | 
				
			||||||
 | 
					/*  kb-delete-entry: "Shift+Delete";*/
 | 
				
			||||||
 | 
					/*  kb-mode-next: "Shift+Right,Control+Tab";*/
 | 
				
			||||||
 | 
					/*  kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/
 | 
				
			||||||
 | 
					/*  kb-row-left: "Control+Page_Up";*/
 | 
				
			||||||
 | 
					/*  kb-row-right: "Control+Page_Down";*/
 | 
				
			||||||
 | 
					/*  kb-row-up: "Up,Control+p,ISO_Left_Tab";*/
 | 
				
			||||||
 | 
					/*  kb-row-down: "Down,Control+n";*/
 | 
				
			||||||
 | 
					/*  kb-page-prev: "Page_Up";*/
 | 
				
			||||||
 | 
					/*  kb-page-next: "Page_Down";*/
 | 
				
			||||||
 | 
					/*  kb-row-first: "Home,KP_Home";*/
 | 
				
			||||||
 | 
					/*  kb-row-last: "End,KP_End";*/
 | 
				
			||||||
 | 
					/*  kb-screenshot: "Alt+S";*/
 | 
				
			||||||
 | 
					/*  kb-toggle-case-sensitivity: "grave,dead_grave";*/
 | 
				
			||||||
 | 
					/*  kb-toggle-sort: "Alt+grave";*/
 | 
				
			||||||
 | 
					/*  kb-cancel: "Escape,Control+g,Control+bracketleft";*/
 | 
				
			||||||
 | 
					/*  kb-custom-1: "Alt+1";*/
 | 
				
			||||||
 | 
					/*  kb-custom-2: "Alt+2";*/
 | 
				
			||||||
 | 
					/*  kb-custom-3: "Alt+3";*/
 | 
				
			||||||
 | 
					/*  kb-custom-4: "Alt+4";*/
 | 
				
			||||||
 | 
					/*  kb-custom-5: "Alt+5";*/
 | 
				
			||||||
 | 
					/*  kb-custom-6: "Alt+6";*/
 | 
				
			||||||
 | 
					/*  kb-custom-7: "Alt+7";*/
 | 
				
			||||||
 | 
					/*  kb-custom-8: "Alt+8";*/
 | 
				
			||||||
 | 
					/*  kb-custom-9: "Alt+9";*/
 | 
				
			||||||
 | 
					/*  kb-custom-10: "Alt+0";*/
 | 
				
			||||||
 | 
					/*  kb-custom-11: "Alt+exclam";*/
 | 
				
			||||||
 | 
					/*  kb-custom-12: "Alt+at";*/
 | 
				
			||||||
 | 
					/*  kb-custom-13: "Alt+numbersign";*/
 | 
				
			||||||
 | 
					/*  kb-custom-14: "Alt+dollar";*/
 | 
				
			||||||
 | 
					/*  kb-custom-15: "Alt+percent";*/
 | 
				
			||||||
 | 
					/*  kb-custom-16: "Alt+dead_circumflex";*/
 | 
				
			||||||
 | 
					/*  kb-custom-17: "Alt+ampersand";*/
 | 
				
			||||||
 | 
					/*  kb-custom-18: "Alt+asterisk";*/
 | 
				
			||||||
 | 
					/*  kb-custom-19: "Alt+parenleft";*/
 | 
				
			||||||
 | 
					/*  kb-select-1: "Super+1";*/
 | 
				
			||||||
 | 
					/*  kb-select-2: "Super+2";*/
 | 
				
			||||||
 | 
					/*  kb-select-3: "Super+3";*/
 | 
				
			||||||
 | 
					/*  kb-select-4: "Super+4";*/
 | 
				
			||||||
 | 
					/*  kb-select-5: "Super+5";*/
 | 
				
			||||||
 | 
					/*  kb-select-6: "Super+6";*/
 | 
				
			||||||
 | 
					/*  kb-select-7: "Super+7";*/
 | 
				
			||||||
 | 
					/*  kb-select-8: "Super+8";*/
 | 
				
			||||||
 | 
					/*  kb-select-9: "Super+9";*/
 | 
				
			||||||
 | 
					/*  kb-select-10: "Super+0";*/
 | 
				
			||||||
 | 
					/*  ml-row-left: "ScrollLeft";*/
 | 
				
			||||||
 | 
					/*  ml-row-right: "ScrollRight";*/
 | 
				
			||||||
 | 
					/*  ml-row-up: "ScrollUp";*/
 | 
				
			||||||
 | 
					/*  ml-row-down: "ScrollDown";*/
 | 
				
			||||||
 | 
					/*  me-select-entry: "MousePrimary";*/
 | 
				
			||||||
 | 
					/*  me-accept-entry: "MouseDPrimary";*/
 | 
				
			||||||
 | 
					/*  me-accept-custom: "Control+MouseDPrimary";*/
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* vim: ft=css sw=2 */
 | 
				
			||||||
@@ -11,4 +11,4 @@ xrandr --output $BOTTOM_LEFT --primary --mode 1920x1080 --pos 0x1080 --rotate no
 | 
				
			|||||||
       --output $TOP_RIGHT --mode 1920x1080 --pos 1920x0 --rotate inverted \
 | 
					       --output $TOP_RIGHT --mode 1920x1080 --pos 1920x0 --rotate inverted \
 | 
				
			||||||
       --output $BOTTOM_RIGHT --mode 1920x1080 --pos 1920x1080 --rotate normal
 | 
					       --output $BOTTOM_RIGHT --mode 1920x1080 --pos 1920x1080 --rotate normal
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[ -e ~/.fehbg ] && ~/.fehbg
 | 
					feh --no-fehbg --no-xinerama --bg-fill $DOTFILES/lakesidesunrise.jpg
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										289
									
								
								scripts/diff-highlight
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										289
									
								
								scripts/diff-highlight
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,289 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/perl
 | 
				
			||||||
 | 
					package DiffHighlight;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use 5.008;
 | 
				
			||||||
 | 
					use warnings FATAL => 'all';
 | 
				
			||||||
 | 
					use strict;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Highlight by reversing foreground and background. You could do
 | 
				
			||||||
 | 
					# other things like bold or underline if you prefer.
 | 
				
			||||||
 | 
					my @OLD_HIGHLIGHT = (
 | 
				
			||||||
 | 
						color_config('color.diff-highlight.oldnormal'),
 | 
				
			||||||
 | 
						color_config('color.diff-highlight.oldhighlight', "\x1b[7m"),
 | 
				
			||||||
 | 
						color_config('color.diff-highlight.oldreset', "\x1b[27m")
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					my @NEW_HIGHLIGHT = (
 | 
				
			||||||
 | 
						color_config('color.diff-highlight.newnormal', $OLD_HIGHLIGHT[0]),
 | 
				
			||||||
 | 
						color_config('color.diff-highlight.newhighlight', $OLD_HIGHLIGHT[1]),
 | 
				
			||||||
 | 
						color_config('color.diff-highlight.newreset', $OLD_HIGHLIGHT[2])
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					my $RESET = "\x1b[m";
 | 
				
			||||||
 | 
					my $COLOR = qr/\x1b\[[0-9;]*m/;
 | 
				
			||||||
 | 
					my $BORING = qr/$COLOR|\s/;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					my @removed;
 | 
				
			||||||
 | 
					my @added;
 | 
				
			||||||
 | 
					my $in_hunk;
 | 
				
			||||||
 | 
					my $graph_indent = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					our $line_cb = sub { print @_ };
 | 
				
			||||||
 | 
					our $flush_cb = sub { local $| = 1 };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Count the visible width of a string, excluding any terminal color sequences.
 | 
				
			||||||
 | 
					sub visible_width {
 | 
				
			||||||
 | 
						local $_ = shift;
 | 
				
			||||||
 | 
						my $ret = 0;
 | 
				
			||||||
 | 
						while (length) {
 | 
				
			||||||
 | 
							if (s/^$COLOR//) {
 | 
				
			||||||
 | 
								# skip colors
 | 
				
			||||||
 | 
							} elsif (s/^.//) {
 | 
				
			||||||
 | 
								$ret++;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return $ret;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Return a substring of $str, omitting $len visible characters from the
 | 
				
			||||||
 | 
					# beginning, where terminal color sequences do not count as visible.
 | 
				
			||||||
 | 
					sub visible_substr {
 | 
				
			||||||
 | 
						my ($str, $len) = @_;
 | 
				
			||||||
 | 
						while ($len > 0) {
 | 
				
			||||||
 | 
							if ($str =~ s/^$COLOR//) {
 | 
				
			||||||
 | 
								next
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							$str =~ s/^.//;
 | 
				
			||||||
 | 
							$len--;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return $str;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sub handle_line {
 | 
				
			||||||
 | 
						my $orig = shift;
 | 
				
			||||||
 | 
						local $_ = $orig;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# match a graph line that begins a commit
 | 
				
			||||||
 | 
						if (/^(?:$COLOR?\|$COLOR?[ ])* # zero or more leading "|" with space
 | 
				
			||||||
 | 
						         $COLOR?\*$COLOR?[ ]   # a "*" with its trailing space
 | 
				
			||||||
 | 
						      (?:$COLOR?\|$COLOR?[ ])* # zero or more trailing "|"
 | 
				
			||||||
 | 
						                         [ ]*  # trailing whitespace for merges
 | 
				
			||||||
 | 
						    /x) {
 | 
				
			||||||
 | 
						        my $graph_prefix = $&;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							# We must flush before setting graph indent, since the
 | 
				
			||||||
 | 
							# new commit may be indented differently from what we
 | 
				
			||||||
 | 
							# queued.
 | 
				
			||||||
 | 
							flush();
 | 
				
			||||||
 | 
							$graph_indent = visible_width($graph_prefix);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						} elsif ($graph_indent) {
 | 
				
			||||||
 | 
							if (length($_) < $graph_indent) {
 | 
				
			||||||
 | 
								$graph_indent = 0;
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								$_ = visible_substr($_, $graph_indent);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (!$in_hunk) {
 | 
				
			||||||
 | 
							$line_cb->($orig);
 | 
				
			||||||
 | 
							$in_hunk = /^$COLOR*\@\@ /;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						elsif (/^$COLOR*-/) {
 | 
				
			||||||
 | 
							push @removed, $orig;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						elsif (/^$COLOR*\+/) {
 | 
				
			||||||
 | 
							push @added, $orig;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						else {
 | 
				
			||||||
 | 
							flush();
 | 
				
			||||||
 | 
							$line_cb->($orig);
 | 
				
			||||||
 | 
							$in_hunk = /^$COLOR*[\@ ]/;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# Most of the time there is enough output to keep things streaming,
 | 
				
			||||||
 | 
						# but for something like "git log -Sfoo", you can get one early
 | 
				
			||||||
 | 
						# commit and then many seconds of nothing. We want to show
 | 
				
			||||||
 | 
						# that one commit as soon as possible.
 | 
				
			||||||
 | 
						#
 | 
				
			||||||
 | 
						# Since we can receive arbitrary input, there's no optimal
 | 
				
			||||||
 | 
						# place to flush. Flushing on a blank line is a heuristic that
 | 
				
			||||||
 | 
						# happens to match git-log output.
 | 
				
			||||||
 | 
						if (!length) {
 | 
				
			||||||
 | 
							$flush_cb->();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sub flush {
 | 
				
			||||||
 | 
						# Flush any queued hunk (this can happen when there is no trailing
 | 
				
			||||||
 | 
						# context in the final diff of the input).
 | 
				
			||||||
 | 
						show_hunk(\@removed, \@added);
 | 
				
			||||||
 | 
						@removed = ();
 | 
				
			||||||
 | 
						@added = ();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sub highlight_stdin {
 | 
				
			||||||
 | 
						while (<STDIN>) {
 | 
				
			||||||
 | 
							handle_line($_);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						flush();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Ideally we would feed the default as a human-readable color to
 | 
				
			||||||
 | 
					# git-config as the fallback value. But diff-highlight does
 | 
				
			||||||
 | 
					# not otherwise depend on git at all, and there are reports
 | 
				
			||||||
 | 
					# of it being used in other settings. Let's handle our own
 | 
				
			||||||
 | 
					# fallback, which means we will work even if git can't be run.
 | 
				
			||||||
 | 
					sub color_config {
 | 
				
			||||||
 | 
						my ($key, $default) = @_;
 | 
				
			||||||
 | 
						my $s = `git config --get-color $key 2>/dev/null`;
 | 
				
			||||||
 | 
						return length($s) ? $s : $default;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sub show_hunk {
 | 
				
			||||||
 | 
						my ($a, $b) = @_;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# If one side is empty, then there is nothing to compare or highlight.
 | 
				
			||||||
 | 
						if (!@$a || !@$b) {
 | 
				
			||||||
 | 
							$line_cb->(@$a, @$b);
 | 
				
			||||||
 | 
							return;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# If we have mismatched numbers of lines on each side, we could try to
 | 
				
			||||||
 | 
						# be clever and match up similar lines. But for now we are simple and
 | 
				
			||||||
 | 
						# stupid, and only handle multi-line hunks that remove and add the same
 | 
				
			||||||
 | 
						# number of lines.
 | 
				
			||||||
 | 
						if (@$a != @$b) {
 | 
				
			||||||
 | 
							$line_cb->(@$a, @$b);
 | 
				
			||||||
 | 
							return;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						my @queue;
 | 
				
			||||||
 | 
						for (my $i = 0; $i < @$a; $i++) {
 | 
				
			||||||
 | 
							my ($rm, $add) = highlight_pair($a->[$i], $b->[$i]);
 | 
				
			||||||
 | 
							$line_cb->($rm);
 | 
				
			||||||
 | 
							push @queue, $add;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						$line_cb->(@queue);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sub highlight_pair {
 | 
				
			||||||
 | 
						my @a = split_line(shift);
 | 
				
			||||||
 | 
						my @b = split_line(shift);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# Find common prefix, taking care to skip any ansi
 | 
				
			||||||
 | 
						# color codes.
 | 
				
			||||||
 | 
						my $seen_plusminus;
 | 
				
			||||||
 | 
						my ($pa, $pb) = (0, 0);
 | 
				
			||||||
 | 
						while ($pa < @a && $pb < @b) {
 | 
				
			||||||
 | 
							if ($a[$pa] =~ /$COLOR/) {
 | 
				
			||||||
 | 
								$pa++;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							elsif ($b[$pb] =~ /$COLOR/) {
 | 
				
			||||||
 | 
								$pb++;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							elsif ($a[$pa] eq $b[$pb]) {
 | 
				
			||||||
 | 
								$pa++;
 | 
				
			||||||
 | 
								$pb++;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							elsif (!$seen_plusminus && $a[$pa] eq '-' && $b[$pb] eq '+') {
 | 
				
			||||||
 | 
								$seen_plusminus = 1;
 | 
				
			||||||
 | 
								$pa++;
 | 
				
			||||||
 | 
								$pb++;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							else {
 | 
				
			||||||
 | 
								last;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# Find common suffix, ignoring colors.
 | 
				
			||||||
 | 
						my ($sa, $sb) = ($#a, $#b);
 | 
				
			||||||
 | 
						while ($sa >= $pa && $sb >= $pb) {
 | 
				
			||||||
 | 
							if ($a[$sa] =~ /$COLOR/) {
 | 
				
			||||||
 | 
								$sa--;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							elsif ($b[$sb] =~ /$COLOR/) {
 | 
				
			||||||
 | 
								$sb--;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							elsif ($a[$sa] eq $b[$sb]) {
 | 
				
			||||||
 | 
								$sa--;
 | 
				
			||||||
 | 
								$sb--;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							else {
 | 
				
			||||||
 | 
								last;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (is_pair_interesting(\@a, $pa, $sa, \@b, $pb, $sb)) {
 | 
				
			||||||
 | 
							return highlight_line(\@a, $pa, $sa, \@OLD_HIGHLIGHT),
 | 
				
			||||||
 | 
							       highlight_line(\@b, $pb, $sb, \@NEW_HIGHLIGHT);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						else {
 | 
				
			||||||
 | 
							return join('', @a),
 | 
				
			||||||
 | 
							       join('', @b);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# we split either by $COLOR or by character. This has the side effect of
 | 
				
			||||||
 | 
					# leaving in graph cruft. It works because the graph cruft does not contain "-"
 | 
				
			||||||
 | 
					# or "+"
 | 
				
			||||||
 | 
					sub split_line {
 | 
				
			||||||
 | 
						local $_ = shift;
 | 
				
			||||||
 | 
						return utf8::decode($_) ?
 | 
				
			||||||
 | 
							map { utf8::encode($_); $_ }
 | 
				
			||||||
 | 
								map { /$COLOR/ ? $_ : (split //) }
 | 
				
			||||||
 | 
								split /($COLOR+)/ :
 | 
				
			||||||
 | 
							map { /$COLOR/ ? $_ : (split //) }
 | 
				
			||||||
 | 
							split /($COLOR+)/;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sub highlight_line {
 | 
				
			||||||
 | 
						my ($line, $prefix, $suffix, $theme) = @_;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						my $start = join('', @{$line}[0..($prefix-1)]);
 | 
				
			||||||
 | 
						my $mid = join('', @{$line}[$prefix..$suffix]);
 | 
				
			||||||
 | 
						my $end = join('', @{$line}[($suffix+1)..$#$line]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# If we have a "normal" color specified, then take over the whole line.
 | 
				
			||||||
 | 
						# Otherwise, we try to just manipulate the highlighted bits.
 | 
				
			||||||
 | 
						if (defined $theme->[0]) {
 | 
				
			||||||
 | 
							s/$COLOR//g for ($start, $mid, $end);
 | 
				
			||||||
 | 
							chomp $end;
 | 
				
			||||||
 | 
							return join('',
 | 
				
			||||||
 | 
								$theme->[0], $start, $RESET,
 | 
				
			||||||
 | 
								$theme->[1], $mid, $RESET,
 | 
				
			||||||
 | 
								$theme->[0], $end, $RESET,
 | 
				
			||||||
 | 
								"\n"
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							return join('',
 | 
				
			||||||
 | 
								$start,
 | 
				
			||||||
 | 
								$theme->[1], $mid, $theme->[2],
 | 
				
			||||||
 | 
								$end
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Pairs are interesting to highlight only if we are going to end up
 | 
				
			||||||
 | 
					# highlighting a subset (i.e., not the whole line). Otherwise, the highlighting
 | 
				
			||||||
 | 
					# is just useless noise. We can detect this by finding either a matching prefix
 | 
				
			||||||
 | 
					# or suffix (disregarding boring bits like whitespace and colorization).
 | 
				
			||||||
 | 
					sub is_pair_interesting {
 | 
				
			||||||
 | 
						my ($a, $pa, $sa, $b, $pb, $sb) = @_;
 | 
				
			||||||
 | 
						my $prefix_a = join('', @$a[0..($pa-1)]);
 | 
				
			||||||
 | 
						my $prefix_b = join('', @$b[0..($pb-1)]);
 | 
				
			||||||
 | 
						my $suffix_a = join('', @$a[($sa+1)..$#$a]);
 | 
				
			||||||
 | 
						my $suffix_b = join('', @$b[($sb+1)..$#$b]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return visible_substr($prefix_a, $graph_indent) !~ /^$COLOR*-$BORING*$/ ||
 | 
				
			||||||
 | 
						       visible_substr($prefix_b, $graph_indent) !~ /^$COLOR*\+$BORING*$/ ||
 | 
				
			||||||
 | 
						       $suffix_a !~ /^$BORING*$/ ||
 | 
				
			||||||
 | 
						       $suffix_b !~ /^$BORING*$/;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					package main;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Some scripts may not realize that SIGPIPE is being ignored when launching the
 | 
				
			||||||
 | 
					# pager--for instance scripts written in Python.
 | 
				
			||||||
 | 
					$SIG{PIPE} = 'DEFAULT';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DiffHighlight::highlight_stdin();
 | 
				
			||||||
 | 
					exit 0;
 | 
				
			||||||
@@ -16,6 +16,4 @@ xrandr --newmode $MODELINE 2>/dev/null || true
 | 
				
			|||||||
xrandr --addmode $OUTPUT $MODENAME 2>/dev/null || true
 | 
					xrandr --addmode $OUTPUT $MODENAME 2>/dev/null || true
 | 
				
			||||||
xrandr --output  $OUTPUT --mode $MODENAME
 | 
					xrandr --output  $OUTPUT --mode $MODENAME
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [ -f ~/.fehbg -a -x ~/.fehbg ]; then
 | 
					feh --no-fehbg --no-xinerama --bg-fill $DOTFILES/lakesidesunrise.jpg
 | 
				
			||||||
    ~/.fehbg
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										28
									
								
								scripts/dpi
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										28
									
								
								scripts/dpi
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,28 @@
 | 
				
			|||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					set -e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Based on https://github.com/vincentbernat/awesome-configuration/blob/master/bin/xsettingsd-setup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dpi=$1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ -z "$1" ]; then
 | 
				
			||||||
 | 
					    >&2 printf "Usage\n\t%s: <dpi>" "$(basename "$0")"
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CONF_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/xsettingsd"
 | 
				
			||||||
 | 
					mkdir -p "$CONF_DIR"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Build xsettingsd.local
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    cat $CONF_DIR/xsettingsd.conf 2>/dev/null || true
 | 
				
			||||||
 | 
					    echo Xft/DPI $(( $dpi*1024 ))
 | 
				
			||||||
 | 
					    echo Gdk/WindowScalingFactor $(( $dpi/96 ))
 | 
				
			||||||
 | 
					    echo Gdk/UnscaledDPI $(( $dpi*1024/($dpi/96) ))
 | 
				
			||||||
 | 
					} > $CONF_DIR/xsettingsd.local
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo Xft.dpi: $dpi | xrdb -merge
 | 
				
			||||||
 | 
					xrandr --dpi $dpi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					systemctl --user reload-or-restart xsettingsd
 | 
				
			||||||
 | 
					systemctl --user --no-block reload i3 polybar@i3bar
 | 
				
			||||||
							
								
								
									
										2
									
								
								scripts/gtav
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										2
									
								
								scripts/gtav
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					exec xdg-open steam://rungameid/271590
 | 
				
			||||||
@@ -23,27 +23,3 @@ echo cd `pwd`
 | 
				
			|||||||
for file in $conffiles; do
 | 
					for file in $conffiles; do
 | 
				
			||||||
    ln -sfv $confpath/.config/$file .
 | 
					    ln -sfv $confpath/.config/$file .
 | 
				
			||||||
done
 | 
					done
 | 
				
			||||||
 | 
					 | 
				
			||||||
cd $HOME
 | 
					 | 
				
			||||||
mkdir -p .local/share/ && cd .local/share
 | 
					 | 
				
			||||||
echo cd `pwd`
 | 
					 | 
				
			||||||
ln -sfv $DOTFILES/fonts .
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
sudo -s << EOF
 | 
					 | 
				
			||||||
cd ~
 | 
					 | 
				
			||||||
echo -n "cd "
 | 
					 | 
				
			||||||
pwd
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ln -sfv $DOTFILES .config/
 | 
					 | 
				
			||||||
ln -sfv $userhome/.zshrc .
 | 
					 | 
				
			||||||
ln -sfv $userhome/.profile .
 | 
					 | 
				
			||||||
ln -sfv $userhome/.zprofile .
 | 
					 | 
				
			||||||
ln -sfv $userhome/.vimrc .
 | 
					 | 
				
			||||||
ln -sfv $userhome/.vim/ .
 | 
					 | 
				
			||||||
ln -sfv $userhome/.gtkrc-2.0 .
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
mkdir -p .config && cd .config/
 | 
					 | 
				
			||||||
echo -n "cd "
 | 
					 | 
				
			||||||
pwd
 | 
					 | 
				
			||||||
ln -sfv $userhome/.config/gtk-3.0 .
 | 
					 | 
				
			||||||
EOF
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										7
									
								
								scripts/netsplit
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										7
									
								
								scripts/netsplit
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PID="$(pidof GTA5.exe)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					kill -s STOP $PID
 | 
				
			||||||
 | 
					sleep 30
 | 
				
			||||||
 | 
					kill -s CONT $PID
 | 
				
			||||||
@@ -1,87 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#   Use rofi to pick emoji because that's what this
 | 
					 | 
				
			||||||
#   century is about apparently...
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#   Requirements:
 | 
					 | 
				
			||||||
#     rofi, xsel, xdotool, curl, xmllint
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#   Usage:
 | 
					 | 
				
			||||||
#     1. Download all emoji
 | 
					 | 
				
			||||||
#        $ rofi-emoji --download
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#     2. Run it!
 | 
					 | 
				
			||||||
#        $ rofi-emoji
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#   Notes:
 | 
					 | 
				
			||||||
#     * You'll need a emoji font like "Noto Emoji" or "EmojiOne".
 | 
					 | 
				
			||||||
#     * Confirming an item will automatically paste it WITHOUT
 | 
					 | 
				
			||||||
#       writing it to your clipboard.
 | 
					 | 
				
			||||||
#     * Ctrl+C will copy it to your clipboard WITHOUT pasting it.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Where to save the emojis file.
 | 
					 | 
				
			||||||
EMOJI_FILE="$HOME/.cache/emojis.txt"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Urls of emoji to download.
 | 
					 | 
				
			||||||
# You can remove what you don't need.
 | 
					 | 
				
			||||||
URLS=(
 | 
					 | 
				
			||||||
    'https://emojipedia.org/people/'
 | 
					 | 
				
			||||||
    'https://emojipedia.org/nature/'
 | 
					 | 
				
			||||||
    'https://emojipedia.org/food-drink/'
 | 
					 | 
				
			||||||
    'https://emojipedia.org/activity/'
 | 
					 | 
				
			||||||
    'https://emojipedia.org/travel-places/'
 | 
					 | 
				
			||||||
    'https://emojipedia.org/objects/'
 | 
					 | 
				
			||||||
    'https://emojipedia.org/symbols/'
 | 
					 | 
				
			||||||
    'https://emojipedia.org/flags/'
 | 
					 | 
				
			||||||
    'https://emojipedia.org/modifiers/'
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function download() {
 | 
					 | 
				
			||||||
    echo "" > "$EMOJI_FILE"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    for url in "${URLS[@]}"; do
 | 
					 | 
				
			||||||
        echo "Downloading: $url"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Download the list of emoji and remove all the junk around it
 | 
					 | 
				
			||||||
        emojis=$(curl -s "$url" | \
 | 
					 | 
				
			||||||
                 xmllint --html \
 | 
					 | 
				
			||||||
                         --xpath '//ul[@class="emoji-list"]' - 2>/dev/null)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Get rid of starting/closing ul tags
 | 
					 | 
				
			||||||
        emojis=$(echo "$emojis" | head -n -1 | tail -n +1)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Extract the emoji and its description
 | 
					 | 
				
			||||||
        emojis=$(echo "$emojis" | \
 | 
					 | 
				
			||||||
                 sed -rn 's/.*<span class="emoji">(.*)<\/span> (.*)<\/a><\/li>/\1 \2/p')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        echo "$emojis" >> "$EMOJI_FILE"
 | 
					 | 
				
			||||||
    done
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function display() {
 | 
					 | 
				
			||||||
    emoji=$(cat "$EMOJI_FILE" | grep -v '#' | grep -v '^[[:space:]]*$')
 | 
					 | 
				
			||||||
    line=$(echo "$emoji" | rofi -dmenu -i -p emoji -kb-custom-1 Ctrl+c $@)
 | 
					 | 
				
			||||||
    exit_code=$?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    line=($line)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if [ $exit_code == 0 ]; then
 | 
					 | 
				
			||||||
        xdotool type --clearmodifiers "${line[0]}"
 | 
					 | 
				
			||||||
    elif [ $exit_code == 10 ]; then
 | 
					 | 
				
			||||||
        echo -n "${line[0]}" | xsel -i -b
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [[ "$1" =~ -D|--download ]]; then
 | 
					 | 
				
			||||||
    download
 | 
					 | 
				
			||||||
    exit 0
 | 
					 | 
				
			||||||
elif [[ "$1" =~ -h|--help ]]; then
 | 
					 | 
				
			||||||
    echo "usage: $0 [-D|--download]"
 | 
					 | 
				
			||||||
    exit 0
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
display
 | 
					 | 
				
			||||||
							
								
								
									
										96
									
								
								scripts/rofi-fontawesome
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										96
									
								
								scripts/rofi-fontawesome
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,96 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#   Use rofi to pick fontawesome because that's what this
 | 
				
			||||||
 | 
					#   century is about apparently...
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#   Requirements:
 | 
				
			||||||
 | 
					#     rofi, xclip, xdotool, curl, xmllint
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#   Usage:
 | 
				
			||||||
 | 
					#     1. Download all fontawesome
 | 
				
			||||||
 | 
					#        $ rofi-fontawesome --download
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#     2. Run it!
 | 
				
			||||||
 | 
					#        $ rofi-fontawesome
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#   Notes:
 | 
				
			||||||
 | 
					#     * You'll need a fontawesome font like "Noto fontawesome" or "fontawesomeOne".
 | 
				
			||||||
 | 
					#     * Confirming an item will automatically paste it WITHOUT
 | 
				
			||||||
 | 
					#       writing it to your clipboard.
 | 
				
			||||||
 | 
					#     * Ctrl+C will copy it to your clipboard WITHOUT pasting it.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Where to save the fontawesomes file.
 | 
				
			||||||
 | 
					FONTAWESOME_FILE="${XDG_CACHE_DIR:-$HOME/.cache}/fontawesome.txt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function download() {
 | 
				
			||||||
 | 
					    notify "$(basename "$0")" 'Downloading all Font Awesome for your pleasure'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    echo -n > "$FONTAWESOME_FILE"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    cat /usr/share/fontawesome/icons.json | \
 | 
				
			||||||
 | 
					        jq -r --argfile ctgs <(yq r -j /usr/share/fontawesome/categories.yml) \
 | 
				
			||||||
 | 
					        '.[] | . as $icon | "\\\\u" + .unicode + "\t" + .label + "\t" + ( ([.search.terms,.styles,([select($ctgs[].icons[]|index($icon.label))|.label]|unique)]|add)|sort|join(", "))' | \
 | 
				
			||||||
 | 
					        while IFS=$'\t' read icon name labels; do \
 | 
				
			||||||
 | 
					            printf "%b\t%-120s\t%s\n" "$icon" "$name" "$labels";\
 | 
				
			||||||
 | 
					        done \
 | 
				
			||||||
 | 
					        > "$FONTAWESOME_FILE"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    notify "$(basename "$0")" "We're all set!"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function toclip() {
 | 
				
			||||||
 | 
					    xclip -i -selection primary
 | 
				
			||||||
 | 
					    xclip -o -selection primary | xclip -i -selection clipboard
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function repeat() {
 | 
				
			||||||
 | 
					    local rplc str="$1" count="$2"
 | 
				
			||||||
 | 
					    rplc="$(printf "%${count}s")"
 | 
				
			||||||
 | 
					    echo "${rplc// /"$str"}"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function notify() {
 | 
				
			||||||
 | 
					   if which notify-send 1>/dev/null 2>/dev/null; then
 | 
				
			||||||
 | 
					        notify-send "$1" "$2"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function display() {
 | 
				
			||||||
 | 
					    update=$'\tUpdate Font Awesome cache'
 | 
				
			||||||
 | 
					    fontawesome=$(grep -v '#\|^[[:space:]]*$' "$FONTAWESOME_FILE"; printf "$update\n")
 | 
				
			||||||
 | 
					    line=$(echo "$fontawesome" | rofi -dmenu -i -p fontawesome -normal-window -kb-custom-1 Ctrl+c -kb-row-tab '' -kb-row-select Tab $@)
 | 
				
			||||||
 | 
					    exit_code=$?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if [ "${line[@]}" == "$update" ]; then
 | 
				
			||||||
 | 
					        download
 | 
				
			||||||
 | 
					        display
 | 
				
			||||||
 | 
					        return
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    line=($line)
 | 
				
			||||||
 | 
					    last=${line[${#line[@]}-1]}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    quantifier="${last:${#last}-1:1}"
 | 
				
			||||||
 | 
					    echo "$quantifier" | egrep -q '^[0-9]+$' || quantifier=1
 | 
				
			||||||
 | 
					    icons="$(repeat "${line[0]}" "$quantifier")"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if [ $exit_code == 0 ]; then
 | 
				
			||||||
 | 
					        xdotool type --clearmodifiers "$icons"
 | 
				
			||||||
 | 
					        echo -n "$icons" | xclip -i
 | 
				
			||||||
 | 
					    elif [ $exit_code == 10 ]; then
 | 
				
			||||||
 | 
					        echo -n "$icons" | xclip -i
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [[ "$1" =~ -D|--download ]]; then
 | 
				
			||||||
 | 
					    download
 | 
				
			||||||
 | 
					    exit 0
 | 
				
			||||||
 | 
					elif [[ "$1" =~ -h|--help ]]; then
 | 
				
			||||||
 | 
					    echo "usage: $0 [-D|--download]"
 | 
				
			||||||
 | 
					    exit 0
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[ ! -f "$FONTAWESOME_FILE" ] && download
 | 
				
			||||||
 | 
					display
 | 
				
			||||||
							
								
								
									
										106
									
								
								scripts/screenshot
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										106
									
								
								scripts/screenshot
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,106 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					set -e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NOTIFY_APPNAME="$(basename "$0")"
 | 
				
			||||||
 | 
					NOTIFY_ICONPATH="/usr/share/icons/Xenlism-Wildfire/Apps/screenshot.svg"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FILENAME="$(date '+%s%N' | sha256sum | head -c7).png"
 | 
				
			||||||
 | 
					DIRECTORY="$HOME/pictures/screenshots"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SCP_HOST=frebib@Poseidon.nerdhouse.io
 | 
				
			||||||
 | 
					SCP_PATH=/services/www/files/frebib.net/s
 | 
				
			||||||
 | 
					URL_PATH=https://frebib.net/s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					params=$(getopt -o ac -l active,clip -n screenshot -- "$@")
 | 
				
			||||||
 | 
					eval set -- "$params"
 | 
				
			||||||
 | 
					unset params
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					while true; do
 | 
				
			||||||
 | 
					    case "$1" in
 | 
				
			||||||
 | 
					        '-a'|'--active')
 | 
				
			||||||
 | 
					            active=1
 | 
				
			||||||
 | 
					            shift
 | 
				
			||||||
 | 
					            continue;;
 | 
				
			||||||
 | 
					        '-c'|'--clip')
 | 
				
			||||||
 | 
					            clip=1
 | 
				
			||||||
 | 
					            shift
 | 
				
			||||||
 | 
					            continue;;
 | 
				
			||||||
 | 
							'--')
 | 
				
			||||||
 | 
								shift
 | 
				
			||||||
 | 
								break;;
 | 
				
			||||||
 | 
							*)
 | 
				
			||||||
 | 
								echo 'getopt error' >&2
 | 
				
			||||||
 | 
								exit 1;;
 | 
				
			||||||
 | 
						esac
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					send_notification() {
 | 
				
			||||||
 | 
					    title="$1"
 | 
				
			||||||
 | 
					    body="$2"
 | 
				
			||||||
 | 
					    replace_id="$3"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    notify-send \
 | 
				
			||||||
 | 
					        -a "$NOTIFY_APPNAME" \
 | 
				
			||||||
 | 
					        -i "$NOTIFY_ICONPATH" \
 | 
				
			||||||
 | 
					        "$title" "$body" \
 | 
				
			||||||
 | 
					        $(if [ -n "$replace_id" ]; then printf "%s" "-r $replace_id"; fi) \
 | 
				
			||||||
 | 
					        -p
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Make the screenshot directory
 | 
				
			||||||
 | 
					mkdir -p "$DIRECTORY"
 | 
				
			||||||
 | 
					out_path="$DIRECTORY/$FILENAME"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ "$active" = '1' ]; then
 | 
				
			||||||
 | 
					    args+=(-i "$(xdotool getactivewindow)")
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    # Take screenshot geometry
 | 
				
			||||||
 | 
					    read -r winid geom < <(slop -f "%i %g") || :
 | 
				
			||||||
 | 
					    if [ -z "$geom" -o -z "$winid" ]; then
 | 
				
			||||||
 | 
					        send_notification "Screenshot error" "Failed to capture screenshot area" > /dev/null
 | 
				
			||||||
 | 
					        exit 1
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    args=(-g "$geom")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # If selection is the root window
 | 
				
			||||||
 | 
					    if xwininfo -id "$winid" | grep -qw root; then
 | 
				
			||||||
 | 
					        isroot=1
 | 
				
			||||||
 | 
					        args+=(-i "$winid")
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Take the screenshot and save it
 | 
				
			||||||
 | 
					if ! error=$(maim -m 10 -u -f png ${args[@]} "$out_path" 2>&1); then
 | 
				
			||||||
 | 
					    send_notification "Screenshot error" "Failed to take a screenshot:<br><br>$error" >/dev/null
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# If the screenshot is a complete window, add a shadow
 | 
				
			||||||
 | 
					if [ "$isroot" != "1" ]; then
 | 
				
			||||||
 | 
					    # but don't worry if it fails
 | 
				
			||||||
 | 
					    convert "$out_path" \( +clone -background black -alpha set -channel Alpha -evaluate set 60% -shadow 100x16+0+0 \) +swap -background none -layers merge +repage "$out_path" || :
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ "$clip" = '1' ]; then
 | 
				
			||||||
 | 
					    # Add image to clipboard
 | 
				
			||||||
 | 
					    xclip -i "$out_path" -selection clipboard -t image/png
 | 
				
			||||||
 | 
					    send_notification "Screenshot captured" "$FILENAME<br><br>The image is available in the clipboard" >/dev/null
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    exit 0
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					notif_id=$(send_notification "Screenshot uploading" "$FILENAME" || true)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 'Upload' the screenshot
 | 
				
			||||||
 | 
					if ! error=$(scp -C $out_path $SCP_HOST:$SCP_PATH 2>&1); then
 | 
				
			||||||
 | 
					    send_notification "Screenshot upload error" "Failed to upload image:<br><br>$error" >/dev/null
 | 
				
			||||||
 | 
					    exit 2
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Add URL to clipboard
 | 
				
			||||||
 | 
					out_url="$URL_PATH/$FILENAME"
 | 
				
			||||||
 | 
					echo "$out_url" | xclip -i -selection clipboard
 | 
				
			||||||
 | 
					send_notification "Screenshot uploaded!" "$out_url" $notif_id >/dev/null || true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										29
									
								
								scripts/systemd-run-i3
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										29
									
								
								scripts/systemd-run-i3
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,29 @@
 | 
				
			|||||||
 | 
					#!/bin/bash -e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					rand=$(tr -dc 'a-f0-9' < /dev/urandom | head -c 8)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					args=()
 | 
				
			||||||
 | 
					while getopts "s:e:d:cnw" opt
 | 
				
			||||||
 | 
					do case "$opt" in
 | 
				
			||||||
 | 
					    s) slice="$OPTARG";;
 | 
				
			||||||
 | 
					    e) args+=("--setenv=$OPTARG");;
 | 
				
			||||||
 | 
					    d) args+=("--working-directory=$OPTARG");;
 | 
				
			||||||
 | 
					    c) args+=("--scope");;
 | 
				
			||||||
 | 
					    n) args+=("--no-block");;
 | 
				
			||||||
 | 
					    w) args+=("--wait");;
 | 
				
			||||||
 | 
					    *) shift;;
 | 
				
			||||||
 | 
					    esac
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					shift $((OPTIND-1))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ -z "$slice" ]; then
 | 
				
			||||||
 | 
					    slice=app
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					exec systemd-run \
 | 
				
			||||||
 | 
					    --user \
 | 
				
			||||||
 | 
					    --collect \
 | 
				
			||||||
 | 
					    --slice="$slice" \
 | 
				
			||||||
 | 
					    --unit="$slice-$1-$rand" \
 | 
				
			||||||
 | 
					    --property=BindsTo=graphical-session.target \
 | 
				
			||||||
 | 
					    ${args[@]} -- "$@"
 | 
				
			||||||
@@ -26,4 +26,4 @@ vim +PluginUpdate +qall
 | 
				
			|||||||
#########################
 | 
					#########################
 | 
				
			||||||
cd "$VIMDIR/bundle/YouCompleteMe"
 | 
					cd "$VIMDIR/bundle/YouCompleteMe"
 | 
				
			||||||
git submodule update --init --recursive
 | 
					git submodule update --init --recursive
 | 
				
			||||||
./install.py --system-libclang --clang-completer
 | 
					./install.py --system-libclang --clang-completer --go-completer --rust-completer --js-completer --java-completer
 | 
				
			||||||
 
 | 
				
			|||||||
 Submodule surface-scripts deleted from f94e25f0b8
									
								
							
							
								
								
									
										13
									
								
								systemd/user/blueman-applet.service
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								systemd/user/blueman-applet.service
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					[Unit]
 | 
				
			||||||
 | 
					Description=Bluetooth Applet
 | 
				
			||||||
 | 
					After=graphical-session.target
 | 
				
			||||||
 | 
					Requires=graphical-session.target
 | 
				
			||||||
 | 
					ConditionPathExists=/sys/class/bluetooth
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Service]
 | 
				
			||||||
 | 
					Type=simple
 | 
				
			||||||
 | 
					ExecStart=/usr/bin/blueman-applet
 | 
				
			||||||
 | 
					Restart=on-failure
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[Install]
 | 
				
			||||||
 | 
					WantedBy=desktop.target
 | 
				
			||||||
							
								
								
									
										1
									
								
								systemd/user/default.target
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								systemd/user/default.target
									
									
									
									
									
										Symbolic link
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					/usr/lib/systemd/user/basic.target
 | 
				
			||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user