making some config changes to better setup qt environments

This commit is contained in:
Chris Cochrun 2022-07-05 09:26:54 -05:00
parent 1e2cc2c916
commit 982b86059f
12 changed files with 278 additions and 79 deletions

View file

@ -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
'';
};

View file

@ -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
View 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();
});

View file

@ -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
View file

@ -0,0 +1,2 @@
#!/usr/bin/env bash
ww -fa firefox -c firefox

View 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
View 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
View 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
View 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

View file

@ -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 = {

View file

@ -65,8 +65,6 @@
# desktopManager.gnome.enable = true;
};
# programs.qt5ct.enable = true;
# Configure keymap in X11
services.xserver.layout = "us";
# services.xserver.xkbOptions = "eurosign:e";
@ -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 = {

View file

@ -340,7 +340,7 @@
source = ../fish/functions;
};
programs.qutebrowser.enable = true;
# programs.qutebrowser.enable = true;
home.file.".config/qutebrowser" = {
source = ../qutebrowser;
recursive = true;