diff --git a/README.org b/README.org index c16f452..8fa9137 100644 --- a/README.org +++ b/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 ''; }; diff --git a/flake.lock b/flake.lock index 22ae811..c9b41ba 100644 --- a/flake.lock +++ b/flake.lock @@ -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": { diff --git a/mpv/scripts/chapters.js b/mpv/scripts/chapters.js new file mode 100644 index 0000000..c89b8c3 --- /dev/null +++ b/mpv/scripts/chapters.js @@ -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(); +}); diff --git a/qutebrowser/config.py b/qutebrowser/config.py index 9ea2b67..afaff8c 100644 --- a/qutebrowser/config.py +++ b/qutebrowser/config.py @@ -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 diff --git a/scripts/kde-fflof b/scripts/kde-fflof new file mode 100755 index 0000000..f3289a2 --- /dev/null +++ b/scripts/kde-fflof @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +ww -fa firefox -c firefox diff --git a/scripts/kde-list-windows.js b/scripts/kde-list-windows.js new file mode 100644 index 0000000..cd59656 --- /dev/null +++ b/scripts/kde-list-windows.js @@ -0,0 +1,4 @@ +const clients = workspace.clientList(); +for (var i = 0; i < clients.length; i++) { + print(clients[i].caption); +}; diff --git a/scripts/kde-list-windows.py b/scripts/kde-list-windows.py new file mode 100755 index 0000000..8c3744c --- /dev/null +++ b/scripts/kde-list-windows.py @@ -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())) diff --git a/scripts/kdewindows b/scripts/kdewindows new file mode 100755 index 0000000..e40eae5 --- /dev/null +++ b/scripts/kdewindows @@ -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 diff --git a/scripts/miner-unpaid.sh b/scripts/miner-unpaid.sh new file mode 100755 index 0000000..72c1f49 --- /dev/null +++ b/scripts/miner-unpaid.sh @@ -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 diff --git a/system/kaladin/configuration.nix b/system/kaladin/configuration.nix index e0509e3..d4376c3 100644 --- a/system/kaladin/configuration.nix +++ b/system/kaladin/configuration.nix @@ -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 = { diff --git a/system/syl/configuration.nix b/system/syl/configuration.nix index 9976b2c..5390c75 100644 --- a/system/syl/configuration.nix +++ b/system/syl/configuration.nix @@ -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 = { diff --git a/user/home.nix b/user/home.nix index ba4c992..d272df7 100644 --- a/user/home.nix +++ b/user/home.nix @@ -340,7 +340,7 @@ source = ../fish/functions; }; - programs.qutebrowser.enable = true; + # programs.qutebrowser.enable = true; home.file.".config/qutebrowser" = { source = ../qutebrowser; recursive = true;