making some config changes to better setup qt environments
This commit is contained in:
		
							parent
							
								
									1e2cc2c916
								
							
						
					
					
						commit
						982b86059f
					
				
					 12 changed files with 278 additions and 79 deletions
				
			
		
							
								
								
									
										16
									
								
								README.org
									
										
									
									
									
								
							
							
						
						
									
										16
									
								
								README.org
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -165,7 +165,7 @@ services.pipewire = {
 | 
			
		|||
  wireplumber.enable = true;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
# Needed for some pipewire progs
 | 
			
		||||
# Needed for some pipewire progs and other gtk apps
 | 
			
		||||
programs.dconf.enable = true;
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -175,13 +175,15 @@ To make sure certain things are setup properly I'll modify the shells a bit.
 | 
			
		|||
# Set default shell to be dash for speed
 | 
			
		||||
# Apparently this is bad because a lot of nix relies on bash
 | 
			
		||||
# environment.binsh = "${pkgs.dash}/bin/dash";
 | 
			
		||||
 | 
			
		||||
environment.variables = {
 | 
			
		||||
  EDITOR = "emacsclient -t -a";
 | 
			
		||||
  VISUAL = "emacsclient -c -a";
 | 
			
		||||
 | 
			
		||||
  # Fixing Qt apps in other environments
 | 
			
		||||
  # Thought I needed this but apparently they are working fine without it.
 | 
			
		||||
  # QT_XCB_GL_INTEGRATION = "xcb_egl";
 | 
			
		||||
  QT_QPA_PLATFORM_PLUGIN_PATH = "${pkgs.qt5.qtbase.bin}/lib/qt-${pkgs.qt5.qtbase.qtCompatVersion}/plugins/platforms";
 | 
			
		||||
  # QT_QPA_PLATFORM_PLUGIN_PATH = "${pkgs.qt5.qtbase.bin}/lib/qt-${pkgs.qt5.qtbase.qtCompatVersion}/plugins/platforms";
 | 
			
		||||
};
 | 
			
		||||
environment.homeBinInPath = true;
 | 
			
		||||
programs.fish.enable = true;
 | 
			
		||||
| 
						 | 
				
			
			@ -218,6 +220,7 @@ services.samba = {
 | 
			
		|||
};
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
Now lets turn on docker and podman. I create a lot of containers for my job.
 | 
			
		||||
#+NAME: podman
 | 
			
		||||
#+begin_src nix
 | 
			
		||||
virtualisation.podman.enable = true;
 | 
			
		||||
| 
						 | 
				
			
			@ -273,6 +276,7 @@ rofi-emoji
 | 
			
		|||
nerdfonts
 | 
			
		||||
latte-dock
 | 
			
		||||
bat
 | 
			
		||||
jq
 | 
			
		||||
alacritty
 | 
			
		||||
libsForQt5.bismuth
 | 
			
		||||
libnotify
 | 
			
		||||
| 
						 | 
				
			
			@ -299,6 +303,7 @@ btop
 | 
			
		|||
qrencode
 | 
			
		||||
brave
 | 
			
		||||
scribus
 | 
			
		||||
qutebrowser
 | 
			
		||||
# firefox
 | 
			
		||||
kate
 | 
			
		||||
kdialog
 | 
			
		||||
| 
						 | 
				
			
			@ -338,6 +343,7 @@ quickemu
 | 
			
		|||
OVMFFull
 | 
			
		||||
element-desktop-wayland
 | 
			
		||||
scrcpy
 | 
			
		||||
python
 | 
			
		||||
# hyprland
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -422,7 +428,7 @@ Emacs service
 | 
			
		|||
#+begin_src nix
 | 
			
		||||
services.emacs = {
 | 
			
		||||
  enable = true;
 | 
			
		||||
  package = with pkgs; ((emacsPackagesFor emacsPgtkNativeComp).emacsWithPackages (epkgs: [ epkgs.vterm epkgs.magit epkgs.pdf-tools pkgs.mu ]));
 | 
			
		||||
  package = with pkgs; ((emacsPackagesFor emacsNativeComp).emacsWithPackages (epkgs: [ epkgs.vterm epkgs.magit epkgs.pdf-tools pkgs.mu ]));
 | 
			
		||||
};
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1217,7 +1223,7 @@ I also use home-manager for managing dotfiles. This means that everything is con
 | 
			
		|||
    source = ../fish/functions;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  programs.qutebrowser.enable = true;
 | 
			
		||||
  # programs.qutebrowser.enable = true;
 | 
			
		||||
  home.file.".config/qutebrowser" = {
 | 
			
		||||
    source = ../qutebrowser;
 | 
			
		||||
    recursive = true;
 | 
			
		||||
| 
						 | 
				
			
			@ -1294,7 +1300,7 @@ I also use home-manager for managing dotfiles. This means that everything is con
 | 
			
		|||
      myip = "curl icanhazip.com";
 | 
			
		||||
    };
 | 
			
		||||
    initExtra = ''
 | 
			
		||||
      pfetch
 | 
			
		||||
      macchina
 | 
			
		||||
    '';
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										75
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										75
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							| 
						 | 
				
			
			@ -1,37 +1,18 @@
 | 
			
		|||
{
 | 
			
		||||
  "nodes": {
 | 
			
		||||
    "flake-compat": {
 | 
			
		||||
      "flake": false,
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1650374568,
 | 
			
		||||
        "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
 | 
			
		||||
        "owner": "edolstra",
 | 
			
		||||
        "repo": "flake-compat",
 | 
			
		||||
        "rev": "b4a34015c698c7793d592d66adbab377907a2be8",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "edolstra",
 | 
			
		||||
        "repo": "flake-compat",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "home-manager": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "flake-compat": "flake-compat",
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "nixpkgs"
 | 
			
		||||
        ],
 | 
			
		||||
        "nmd": "nmd",
 | 
			
		||||
        "nmt": "nmt",
 | 
			
		||||
        "utils": "utils"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1655594877,
 | 
			
		||||
        "narHash": "sha256-AQ39Vlb6zhsJqIRz2cN923+ESBxHmeHMHoPqA80xOCE=",
 | 
			
		||||
        "lastModified": 1656927578,
 | 
			
		||||
        "narHash": "sha256-ZSFrM/1PlJOqCb3mN88ZUh9dkQvNLU/nkoQ2tu02/FM=",
 | 
			
		||||
        "owner": "nix-community",
 | 
			
		||||
        "repo": "home-manager",
 | 
			
		||||
        "rev": "5197e5df7d3a148b1ad080235f70800987bc3549",
 | 
			
		||||
        "rev": "f2445620d177e295e711c1b2bc6c01ed6df26c16",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
| 
						 | 
				
			
			@ -49,11 +30,11 @@
 | 
			
		|||
        "wlroots": "wlroots"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1655497428,
 | 
			
		||||
        "narHash": "sha256-B1P/EDJvho3lBxqtGAXKBlPDXlF/7bLHeC+h2aTPkWc=",
 | 
			
		||||
        "lastModified": 1656957531,
 | 
			
		||||
        "narHash": "sha256-pdbXjyWo9nkK+Uun6AjwCMPFgfS32pF91bsoD1ebq6I=",
 | 
			
		||||
        "owner": "vaxerski",
 | 
			
		||||
        "repo": "Hyprland",
 | 
			
		||||
        "rev": "f7bdc2e87020ea7308035bceaa2ab659af91d2de",
 | 
			
		||||
        "rev": "cc8b8f595fa5c20b394394fe777451d4873608b3",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
| 
						 | 
				
			
			@ -64,11 +45,11 @@
 | 
			
		|||
    },
 | 
			
		||||
    "nixpkgs": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1655567057,
 | 
			
		||||
        "narHash": "sha256-Cc5hQSMsTzOHmZnYm8OSJ5RNUp22bd5NADWLHorULWQ=",
 | 
			
		||||
        "lastModified": 1656753965,
 | 
			
		||||
        "narHash": "sha256-BCrB3l0qpJokOnIVc3g2lHiGhnjUi0MoXiw6t1o8H1E=",
 | 
			
		||||
        "owner": "nixos",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "e0a42267f73ea52adc061a64650fddc59906fc99",
 | 
			
		||||
        "rev": "0ea7a8f1b939d74e5df8af9a8f7342097cdf69eb",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
| 
						 | 
				
			
			@ -78,38 +59,6 @@
 | 
			
		|||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nmd": {
 | 
			
		||||
      "flake": false,
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1653339422,
 | 
			
		||||
        "narHash": "sha256-8nc7lcYOgih3YEmRMlBwZaLLJYpLPYKBlewqHqx8ieg=",
 | 
			
		||||
        "owner": "rycee",
 | 
			
		||||
        "repo": "nmd",
 | 
			
		||||
        "rev": "9e7a20e6ee3f6751f699f79c0b299390f81f7bcd",
 | 
			
		||||
        "type": "gitlab"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "rycee",
 | 
			
		||||
        "repo": "nmd",
 | 
			
		||||
        "type": "gitlab"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nmt": {
 | 
			
		||||
      "flake": false,
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1648075362,
 | 
			
		||||
        "narHash": "sha256-u36WgzoA84dMVsGXzml4wZ5ckGgfnvS0ryzo/3zn/Pc=",
 | 
			
		||||
        "owner": "rycee",
 | 
			
		||||
        "repo": "nmt",
 | 
			
		||||
        "rev": "d83601002c99b78c89ea80e5e6ba21addcfe12ae",
 | 
			
		||||
        "type": "gitlab"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "rycee",
 | 
			
		||||
        "repo": "nmt",
 | 
			
		||||
        "type": "gitlab"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "root": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "home-manager": "home-manager",
 | 
			
		||||
| 
						 | 
				
			
			@ -136,11 +85,11 @@
 | 
			
		|||
      "flake": false,
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "host": "gitlab.freedesktop.org",
 | 
			
		||||
        "lastModified": 1654618691,
 | 
			
		||||
        "narHash": "sha256-8y3u8CoigjoZOVbA2wCWBHlDNEakv0AVxU46/cOC00s=",
 | 
			
		||||
        "lastModified": 1655824477,
 | 
			
		||||
        "narHash": "sha256-1kskHOLsnisR3kqIL5IHrQbQG/4xoXxeEf1ExMV6/RU=",
 | 
			
		||||
        "owner": "wlroots",
 | 
			
		||||
        "repo": "wlroots",
 | 
			
		||||
        "rev": "b89ed9015c3fbe8d339e9d65cf70fdca6e5645bc",
 | 
			
		||||
        "rev": "5c4384a1330faedf975c8b8644881d50390f3613",
 | 
			
		||||
        "type": "gitlab"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										173
									
								
								mpv/scripts/chapters.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										173
									
								
								mpv/scripts/chapters.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,173 @@
 | 
			
		|||
"use strict";
 | 
			
		||||
 | 
			
		||||
//display chapter on osd and easily switch between chapters by click on title of chapter
 | 
			
		||||
mp.register_event("file-loaded", init);
 | 
			
		||||
mp.observe_property("chapter", "number", onChapterChange);
 | 
			
		||||
mp.observe_property("chapter-list/count", "number", init);
 | 
			
		||||
var options = {
 | 
			
		||||
	font_size: 16,
 | 
			
		||||
	font_color: "00FFFF",
 | 
			
		||||
	border_size: 1.0,
 | 
			
		||||
	border_color: "000000",
 | 
			
		||||
	font_color_currentChapter: "C27F1B",
 | 
			
		||||
};
 | 
			
		||||
var playinfo = {
 | 
			
		||||
	chapters: [], //array
 | 
			
		||||
	chaptercount: "", // int
 | 
			
		||||
	assinterface: [], //array(deprecated, use single assdraw instead)
 | 
			
		||||
	currentChapter: "", //int
 | 
			
		||||
    loaded:false,
 | 
			
		||||
};
 | 
			
		||||
var toggle_switch = false;
 | 
			
		||||
var assdraw = mp.create_osd_overlay("ass-events");
 | 
			
		||||
var autohidedelay = mp.get_property_number("cursor-autohide");
 | 
			
		||||
//function
 | 
			
		||||
function init() {
 | 
			
		||||
	playinfo.chapters = getChapters();
 | 
			
		||||
	playinfo.chaptercount = playinfo.chapters.length;
 | 
			
		||||
    if(playinfo.chaptercount == 0){
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
	while (playinfo.chaptercount * options.font_size > 1000 / 1.5) {
 | 
			
		||||
		options.font_size = options.font_size - 1;
 | 
			
		||||
	}
 | 
			
		||||
	drawChapterList();
 | 
			
		||||
	mp.msg.info("initiated");
 | 
			
		||||
    playinfo.loaded = true;
 | 
			
		||||
}
 | 
			
		||||
function getChapters() {
 | 
			
		||||
	var chapterCount = mp.get_property("chapter-list/count");
 | 
			
		||||
	if (chapterCount === 0) {
 | 
			
		||||
		return ["null"];
 | 
			
		||||
	} else {
 | 
			
		||||
		var chaptersArray = [];
 | 
			
		||||
		for (var index = 0; index < chapterCount; index++) {
 | 
			
		||||
			var chapterTitle = mp.get_property_native(
 | 
			
		||||
				"chapter-list/" + index + "/title"
 | 
			
		||||
			);
 | 
			
		||||
 | 
			
		||||
			if (chapterTitle != undefined) {
 | 
			
		||||
				chaptersArray.push(chapterTitle);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return chaptersArray;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function drawChapterList() {
 | 
			
		||||
	var resY = 0;
 | 
			
		||||
	var resX = 0;
 | 
			
		||||
	var assdrawdata = "";
 | 
			
		||||
	function setPos(str, _X, _Y) {
 | 
			
		||||
		str = str + "{\\pos(" + _X + ", " + _Y + ")}";
 | 
			
		||||
		return str;
 | 
			
		||||
	}
 | 
			
		||||
	function setborderSize(str) {
 | 
			
		||||
		str = str + "{\\bord" + options.border_size + "}";
 | 
			
		||||
		return str;
 | 
			
		||||
	}
 | 
			
		||||
	function setborderColor(str) {
 | 
			
		||||
		str = str + "{\\3c&H" + options.border_color + "&}";
 | 
			
		||||
		return str;
 | 
			
		||||
	}
 | 
			
		||||
	function setFontColor(str, index) {
 | 
			
		||||
		var _color;
 | 
			
		||||
		if (playinfo.currentChapter == index) {
 | 
			
		||||
			_color = options.font_color_currentChapter;
 | 
			
		||||
		} else {
 | 
			
		||||
			_color = options.font_color;
 | 
			
		||||
		}
 | 
			
		||||
		str = str + "{\\c&H" + _color + "&}";
 | 
			
		||||
		return str;
 | 
			
		||||
	}
 | 
			
		||||
	function setFont(str) {
 | 
			
		||||
		str = str + "{\\fs" + options.font_size + "}";
 | 
			
		||||
		return str;
 | 
			
		||||
	}
 | 
			
		||||
	function setEndofmodifiers(str) {
 | 
			
		||||
		str = str + "{\\p0}";
 | 
			
		||||
		return str;
 | 
			
		||||
	}
 | 
			
		||||
	function setEndofLine(str) {
 | 
			
		||||
		str = str + "\n";
 | 
			
		||||
		return str;
 | 
			
		||||
	}
 | 
			
		||||
	playinfo.chapters.forEach(function (element, index) {
 | 
			
		||||
		assdrawdata = setPos(assdrawdata, resX, resY);
 | 
			
		||||
		assdrawdata = setborderSize(assdrawdata);
 | 
			
		||||
		assdrawdata = setborderColor(assdrawdata);
 | 
			
		||||
		assdrawdata = setFontColor(assdrawdata, index);
 | 
			
		||||
		assdrawdata = setFont(assdrawdata);
 | 
			
		||||
		assdrawdata = setEndofmodifiers(assdrawdata);
 | 
			
		||||
		assdrawdata = assdrawdata + element;
 | 
			
		||||
		assdrawdata = setEndofLine(assdrawdata);
 | 
			
		||||
		resY += options.font_size;
 | 
			
		||||
	});
 | 
			
		||||
	assdraw.data = assdrawdata
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function toggleOverlay() {
 | 
			
		||||
    if(!playinfo.loaded){
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
	if (!toggle_switch) {
 | 
			
		||||
		drawChapterList();
 | 
			
		||||
		assdraw.update();
 | 
			
		||||
		mp.set_property("cursor-autohide", "no");
 | 
			
		||||
		toggle_switch = !toggle_switch;
 | 
			
		||||
	} else {
 | 
			
		||||
		assdraw.remove();
 | 
			
		||||
		mp.set_property("cursor-autohide", autohidedelay);
 | 
			
		||||
		toggle_switch = !toggle_switch;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function onChapterChange() {
 | 
			
		||||
	playinfo.currentChapter = mp.get_property_native("chapter");
 | 
			
		||||
	if (playinfo.currentChapter != undefined) {
 | 
			
		||||
		drawChapterList();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if ((playinfo.currentChapter != undefined) & toggle_switch) {
 | 
			
		||||
		assdraw.update();
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
function pos2chapter(x, y, overallscale) {
 | 
			
		||||
	var vectical = y / (options.font_size * overallscale);
 | 
			
		||||
    if(vectical > playinfo.chaptercount){
 | 
			
		||||
        return null;
 | 
			
		||||
    }
 | 
			
		||||
	var intVectical = Math.floor(vectical);
 | 
			
		||||
	var lengthofTitleClicked = playinfo.chapters[intVectical].length;
 | 
			
		||||
	var lengthofTitleClicked_px =
 | 
			
		||||
		(lengthofTitleClicked * options.font_size) / overallscale;
 | 
			
		||||
	if (x < lengthofTitleClicked_px) {
 | 
			
		||||
		return intVectical;
 | 
			
		||||
	} else {
 | 
			
		||||
		return null;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
function getOverallScale() {
 | 
			
		||||
	return mp.get_osd_size().height / 720;
 | 
			
		||||
}
 | 
			
		||||
function onMBTN_LEFT() {
 | 
			
		||||
	//get mouse position
 | 
			
		||||
    if(!playinfo.loaded){
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
	if (toggle_switch) {
 | 
			
		||||
		var overallscale = getOverallScale();
 | 
			
		||||
		var pos = mp.get_mouse_pos();
 | 
			
		||||
		var chapterClicked = pos2chapter(pos.x, pos.y, overallscale);
 | 
			
		||||
		if (chapterClicked != null) {
 | 
			
		||||
			mp.set_property_native("chapter", chapterClicked);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
mp.add_key_binding("TAB", "tab", function () {
 | 
			
		||||
	toggleOverlay();
 | 
			
		||||
});
 | 
			
		||||
mp.add_key_binding("MBTN_LEFT", "mbtn_left", function () {
 | 
			
		||||
	onMBTN_LEFT();
 | 
			
		||||
});
 | 
			
		||||
| 
						 | 
				
			
			@ -1547,6 +1547,7 @@ c.hints.selectors['all'].append('mdc-switch__native-control')
 | 
			
		|||
c.hints.selectors['all'].append('[for="checkbox"]')
 | 
			
		||||
c.hints.selectors['all'].append('label')
 | 
			
		||||
c.hints.selectors['all'].append('hui-button-card')
 | 
			
		||||
c.hints.selectors['all'].append('a[class="button"]')
 | 
			
		||||
 | 
			
		||||
## Make characters in hint strings uppercase.
 | 
			
		||||
## Type: Bool
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								scripts/kde-fflof
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										2
									
								
								scripts/kde-fflof
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
#!/usr/bin/env bash
 | 
			
		||||
ww -fa firefox -c firefox
 | 
			
		||||
							
								
								
									
										4
									
								
								scripts/kde-list-windows.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								scripts/kde-list-windows.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
const clients = workspace.clientList();
 | 
			
		||||
for (var i = 0; i < clients.length; i++) {
 | 
			
		||||
  print(clients[i].caption);
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										37
									
								
								scripts/kde-list-windows.py
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										37
									
								
								scripts/kde-list-windows.py
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,37 @@
 | 
			
		|||
#!/usr/bin/env python
 | 
			
		||||
 | 
			
		||||
# Author: Andrew Shark
 | 
			
		||||
 | 
			
		||||
# This script lists windows in kwin on wayland. It is useful, because wmctrl does not work on wayland.
 | 
			
		||||
# I read journalctl because printing in kwin script is currently broken. See https://bugs.kde.org/show_bug.cgi?id=445058
 | 
			
		||||
# https://unix.stackexchange.com/questions/706477/is-there-a-way-to-get-list-of-windows-on-kde-wayland - described this script here.
 | 
			
		||||
 | 
			
		||||
import subprocess
 | 
			
		||||
from datetime import datetime
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_list_of_windows():
 | 
			
		||||
   datetime_now = datetime.now()
 | 
			
		||||
 | 
			
		||||
   script = "/home/chris/.dotfiles/scripts/kde-list-windows.js"
 | 
			
		||||
 | 
			
		||||
   reg_script_number = subprocess.run("dbus-send --print-reply --dest=org.kde.KWin \
 | 
			
		||||
                        /Scripting org.kde.kwin.Scripting.loadScript \
 | 
			
		||||
                        string:" + script + " | awk 'END {print $2}'",
 | 
			
		||||
                           capture_output=True, shell=True).stdout.decode().split("\n")[0]
 | 
			
		||||
 | 
			
		||||
   subprocess.run("dbus-send --print-reply --dest=org.kde.KWin /" + reg_script_number + " org.kde.kwin.Script.run",
 | 
			
		||||
                  shell=True, stdout=subprocess.DEVNULL)
 | 
			
		||||
   subprocess.run("dbus-send --print-reply --dest=org.kde.KWin /" + reg_script_number + " org.kde.kwin.Script.stop",
 | 
			
		||||
                  shell=True, stdout=subprocess.DEVNULL)  # unregister number
 | 
			
		||||
 | 
			
		||||
   since = str(datetime_now)
 | 
			
		||||
 | 
			
		||||
   msg = subprocess.run("journalctl _COMM=kwin_wayland -o cat --since \"" + since + "\"",
 | 
			
		||||
                        capture_output=True, shell=True).stdout.decode().rstrip().split("\n")
 | 
			
		||||
   msg = [el.lstrip("js: ") for el in msg]
 | 
			
		||||
 | 
			
		||||
   return msg
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
print('\n'.join(get_list_of_windows()))
 | 
			
		||||
							
								
								
									
										14
									
								
								scripts/kdewindows
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										14
									
								
								scripts/kdewindows
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,14 @@
 | 
			
		|||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
script="/home/chris/.dotfiles/scripts/kde-list-windows.js"
 | 
			
		||||
 | 
			
		||||
num=$(dbus-send --print-reply --dest=org.kde.KWin \
 | 
			
		||||
    /Scripting org.kde.kwin.Scripting.loadScript \
 | 
			
		||||
    string:"$script" | awk 'END {print $2}' )
 | 
			
		||||
 | 
			
		||||
dbus-send --print-reply --dest=org.kde.KWin /$num \
 | 
			
		||||
    org.kde.kwin.Script.run
 | 
			
		||||
# I'm not sure if some delay is in order here to let your script complete?
 | 
			
		||||
sleep 1
 | 
			
		||||
dbus-send --print-reply --dest=org.kde.KWin /$num \
 | 
			
		||||
    org.kde.kwin.Script.stop
 | 
			
		||||
							
								
								
									
										9
									
								
								scripts/miner-unpaid.sh
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										9
									
								
								scripts/miner-unpaid.sh
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,9 @@
 | 
			
		|||
#!/usr/bin/env sh
 | 
			
		||||
eth=$(curl -X GET "https://eth.2miners.com/api/accounts/bc1qarhl2mwgdnatdn3q8fjy794c7jtmhtvjvsztd4" -H  "accept: application/json" | jq '.stats.balance' | sed 's/^/0\.00/')
 | 
			
		||||
echo "current eth: $eth"
 | 
			
		||||
 | 
			
		||||
rate=$(curl rate.sx/eth | rg avg | awk '{print $2}' | sed 's/\$//')
 | 
			
		||||
echo $rate
 | 
			
		||||
 | 
			
		||||
dollar=$(echo "$eth * $rate" | bc -l)
 | 
			
		||||
echo $dollar
 | 
			
		||||
| 
						 | 
				
			
			@ -64,8 +64,6 @@
 | 
			
		|||
    # desktopManager.gnome.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
  
 | 
			
		||||
  # programs.qt5ct.enable = true;
 | 
			
		||||
  
 | 
			
		||||
  # Configure keymap in X11
 | 
			
		||||
  services.xserver.layout = "us";
 | 
			
		||||
  # services.xserver.xkbOptions = "eurosign:e";
 | 
			
		||||
| 
						 | 
				
			
			@ -84,7 +82,7 @@
 | 
			
		|||
    wireplumber.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
  
 | 
			
		||||
  # Needed for some pipewire progs
 | 
			
		||||
  # Needed for some pipewire progs and other gtk apps
 | 
			
		||||
  programs.dconf.enable = true;
 | 
			
		||||
  
 | 
			
		||||
  # Turn on flatpak
 | 
			
		||||
| 
						 | 
				
			
			@ -96,13 +94,14 @@
 | 
			
		|||
  # Set default shell to be dash for speed
 | 
			
		||||
  # Apparently this is bad because a lot of nix relies on bash
 | 
			
		||||
  # environment.binsh = "${pkgs.dash}/bin/dash";
 | 
			
		||||
  
 | 
			
		||||
  environment.variables = {
 | 
			
		||||
    EDITOR = "emacsclient -t -a";
 | 
			
		||||
    VISUAL = "emacsclient -c -a";
 | 
			
		||||
  
 | 
			
		||||
    # Fixing Qt apps in other environments
 | 
			
		||||
    # QT_XCB_GL_INTEGRATION = "xcb_egl";
 | 
			
		||||
    QT_QPA_PLATFORM_PLUGIN_PATH = "${pkgs.qt5.qtbase.bin}/lib/qt-${pkgs.qt5.qtbase.qtCompatVersion}/plugins/platforms";
 | 
			
		||||
    # QT_QPA_PLATFORM_PLUGIN_PATH = "${pkgs.qt5.qtbase.bin}/lib/qt-${pkgs.qt5.qtbase.qtCompatVersion}/plugins/platforms";
 | 
			
		||||
  };
 | 
			
		||||
  environment.homeBinInPath = true;
 | 
			
		||||
  programs.fish.enable = true;
 | 
			
		||||
| 
						 | 
				
			
			@ -188,6 +187,7 @@
 | 
			
		|||
    nerdfonts
 | 
			
		||||
    latte-dock
 | 
			
		||||
    bat
 | 
			
		||||
    jq
 | 
			
		||||
    alacritty
 | 
			
		||||
    libsForQt5.bismuth
 | 
			
		||||
    libnotify
 | 
			
		||||
| 
						 | 
				
			
			@ -214,6 +214,7 @@
 | 
			
		|||
    qrencode
 | 
			
		||||
    brave
 | 
			
		||||
    scribus
 | 
			
		||||
    qutebrowser
 | 
			
		||||
    # firefox
 | 
			
		||||
    kate
 | 
			
		||||
    kdialog
 | 
			
		||||
| 
						 | 
				
			
			@ -253,6 +254,7 @@
 | 
			
		|||
    OVMFFull
 | 
			
		||||
    element-desktop-wayland
 | 
			
		||||
    scrcpy
 | 
			
		||||
    python
 | 
			
		||||
    # hyprland
 | 
			
		||||
    blender
 | 
			
		||||
    neofetch
 | 
			
		||||
| 
						 | 
				
			
			@ -326,7 +328,7 @@
 | 
			
		|||
 | 
			
		||||
  services.emacs = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    package = with pkgs; ((emacsPackagesFor emacsPgtkNativeComp).emacsWithPackages (epkgs: [ epkgs.vterm epkgs.magit epkgs.pdf-tools pkgs.mu ]));
 | 
			
		||||
    package = with pkgs; ((emacsPackagesFor emacsNativeComp).emacsWithPackages (epkgs: [ epkgs.vterm epkgs.magit epkgs.pdf-tools pkgs.mu ]));
 | 
			
		||||
  };
 | 
			
		||||
  services.samba-wsdd.enable = true;
 | 
			
		||||
  services.samba = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -64,8 +64,6 @@
 | 
			
		|||
    desktopManager.plasma5.enable = true;
 | 
			
		||||
    # desktopManager.gnome.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
  
 | 
			
		||||
  # programs.qt5ct.enable = true;
 | 
			
		||||
 | 
			
		||||
  # Configure keymap in X11
 | 
			
		||||
  services.xserver.layout = "us";
 | 
			
		||||
| 
						 | 
				
			
			@ -89,7 +87,7 @@
 | 
			
		|||
    wireplumber.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
  
 | 
			
		||||
  # Needed for some pipewire progs
 | 
			
		||||
  # Needed for some pipewire progs and other gtk apps
 | 
			
		||||
  programs.dconf.enable = true;
 | 
			
		||||
 | 
			
		||||
  # Turn on flatpak
 | 
			
		||||
| 
						 | 
				
			
			@ -123,13 +121,14 @@
 | 
			
		|||
  # Set default shell to be dash for speed
 | 
			
		||||
  # Apparently this is bad because a lot of nix relies on bash
 | 
			
		||||
  # environment.binsh = "${pkgs.dash}/bin/dash";
 | 
			
		||||
  
 | 
			
		||||
  environment.variables = {
 | 
			
		||||
    EDITOR = "emacsclient -t -a";
 | 
			
		||||
    VISUAL = "emacsclient -c -a";
 | 
			
		||||
  
 | 
			
		||||
    # Fixing Qt apps in other environments
 | 
			
		||||
    # QT_XCB_GL_INTEGRATION = "xcb_egl";
 | 
			
		||||
    QT_QPA_PLATFORM_PLUGIN_PATH = "${pkgs.qt5.qtbase.bin}/lib/qt-${pkgs.qt5.qtbase.qtCompatVersion}/plugins/platforms";
 | 
			
		||||
    # QT_QPA_PLATFORM_PLUGIN_PATH = "${pkgs.qt5.qtbase.bin}/lib/qt-${pkgs.qt5.qtbase.qtCompatVersion}/plugins/platforms";
 | 
			
		||||
  };
 | 
			
		||||
  environment.homeBinInPath = true;
 | 
			
		||||
  programs.fish.enable = true;
 | 
			
		||||
| 
						 | 
				
			
			@ -202,6 +201,7 @@
 | 
			
		|||
    nerdfonts
 | 
			
		||||
    latte-dock
 | 
			
		||||
    bat
 | 
			
		||||
    jq
 | 
			
		||||
    alacritty
 | 
			
		||||
    libsForQt5.bismuth
 | 
			
		||||
    libnotify
 | 
			
		||||
| 
						 | 
				
			
			@ -228,6 +228,7 @@
 | 
			
		|||
    qrencode
 | 
			
		||||
    brave
 | 
			
		||||
    scribus
 | 
			
		||||
    qutebrowser
 | 
			
		||||
    # firefox
 | 
			
		||||
    kate
 | 
			
		||||
    kdialog
 | 
			
		||||
| 
						 | 
				
			
			@ -267,6 +268,7 @@
 | 
			
		|||
    OVMFFull
 | 
			
		||||
    element-desktop-wayland
 | 
			
		||||
    scrcpy
 | 
			
		||||
    python
 | 
			
		||||
    # hyprland
 | 
			
		||||
    neofetch
 | 
			
		||||
    afetch
 | 
			
		||||
| 
						 | 
				
			
			@ -343,7 +345,7 @@
 | 
			
		|||
 | 
			
		||||
  services.emacs = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    package = with pkgs; ((emacsPackagesFor emacsPgtkNativeComp).emacsWithPackages (epkgs: [ epkgs.vterm epkgs.magit epkgs.pdf-tools pkgs.mu ]));
 | 
			
		||||
    package = with pkgs; ((emacsPackagesFor emacsNativeComp).emacsWithPackages (epkgs: [ epkgs.vterm epkgs.magit epkgs.pdf-tools pkgs.mu ]));
 | 
			
		||||
  };
 | 
			
		||||
  services.samba-wsdd.enable = true;
 | 
			
		||||
  services.samba = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -340,7 +340,7 @@
 | 
			
		|||
    source = ../fish/functions;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  programs.qutebrowser.enable = true;
 | 
			
		||||
  # programs.qutebrowser.enable = true;
 | 
			
		||||
  home.file.".config/qutebrowser" = {
 | 
			
		||||
    source = ../qutebrowser;
 | 
			
		||||
    recursive = true;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue