diff --git a/config/autostart/blueman.desktop b/config/autostart/blueman.desktop new file mode 100644 index 0000000..abbe2a7 --- /dev/null +++ b/config/autostart/blueman.desktop @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Application +Name=Blueman +Exec=blueman-applet +X-GNOME-Autostart-enabled=true \ No newline at end of file diff --git a/config/autostart/kdeconnectd.desktop b/config/autostart/kdeconnectd.desktop new file mode 100644 index 0000000..7328181 --- /dev/null +++ b/config/autostart/kdeconnectd.desktop @@ -0,0 +1,5 @@ +[Desktop Entry] +Type=Application +Name=kdeconnect +Exec=kdeconnectd +X-GNOME-Autostart-enabled=true \ No newline at end of file diff --git a/config/kitty/kitty.conf b/config/kitty/kitty.conf index 7bd6421..14083b8 100644 --- a/config/kitty/kitty.conf +++ b/config/kitty/kitty.conf @@ -1,2 +1,4 @@ paste_actions filter include current-theme.conf +font_family Terminus +font_size 11 diff --git a/config/kitty/kitty.conf.bak b/config/kitty/kitty.conf.bak new file mode 100644 index 0000000..58a1c57 --- /dev/null +++ b/config/kitty/kitty.conf.bak @@ -0,0 +1,4 @@ +paste_actions filter +include current-theme.conf +font_family Terminus +font_size 10 diff --git a/config/nushell/env.nu b/config/nushell/env.nu index 58eb608..a44325c 100644 --- a/config/nushell/env.nu +++ b/config/nushell/env.nu @@ -29,3 +29,7 @@ let flatpak_xdg = [ $env.XDG_DATA_DIRS = ($base_xdg | append $flatpak_xdg | str join ":") $env.PATH = ( $env.PATH | split row (char env_sep) | prepend "~/.local/bin" | append "/sbin" | append "/usr/sbin/") + +def pfind [name: string] { + ps | where name =~ $name | select name pid +} \ No newline at end of file diff --git a/config/sway/config b/config/sway/config index 6d989eb..fec160b 100755 --- a/config/sway/config +++ b/config/sway/config @@ -1,8 +1,97 @@ set $base ~/.config/sway/ xwayland enable -exec_always env BASE_SWAY=$base XDG_DATA_DIRS=/var/lib/flatpak/exports/share:$HOME/.local/share/flatpak/exports/share:/usr/local/share:/usr/share /usr/bin/python3 $base/main/boot.py + +floating_modifier Mod4 + +default_border none +default_floating_border none + +client.focused #ffffff #ffffff #ffffff #ffffff +client.focused_inactive #000000 #000000 #000000 #000000 +client.unfocused #000000 #000000 #000000 #000000 +client.urgent #ffffff #ffffff #ffffff #ffffff +client.placeholder #000000 #000000 #000000 #000000 + + +bar top { + position top + status_command python3 $base/main/sway_status.py + font pango:Noto Sans Mono 10 + mode dock + + colors { + background #000000 + statusline #ffffff + separator #ffffff + focused_workspace #000000 #ffffff #000000 + active_workspace #000000 #ffffff #000000 + inactive_workspace #000000 #000000 #ffffff + urgent_workspace #ffffff #ffffff #ffffff + } +} + +for_window [app_id="xpad"] floating enable + +exec_always gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' +exec_always gsettings set org.gnome.desktop.interface gtk-theme 'Adwaita-dark' +exec_always gsettings set org.gnome.desktop.interface cursor-size 12 +exec_always gsettings set org.gnome.desktop.interface font-name 'Noto Sans Mono 10' + +exec_always /usr/lib/xdg-desktop-portal -r + +exec_always swaybg -i $base/wallpaper/metrowaymaka.png -m fill +exec_always /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 +exec_always dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP SWAYSOCK + +bindsym Mod4+h focus left +bindsym Mod4+j focus down +bindsym Mod4+k focus up +bindsym Mod4+l focus right +bindsym Mod4+Shift+h move left +bindsym Mod4+Shift+j move down +bindsym Mod4+Shift+k move up +bindsym Mod4+Shift+l move right +bindsym Mod4+bracketleft workspace prev +bindsym Mod4+bracketright workspace next +bindsym Mod4+q exec kitty +bindsym Mod4+c kill +bindsym Mod4+Shift+s exec python3 $base/main/moves.py screenshot --out ~/screenshots/ +bindsym Mod4+Shift+Escape exit +bindsym Mod4+Up exec pamixer --increase 1 +bindsym Mod4+Down exec pamixer --decrease 1 +bindsym Mod4+Shift+grave reload +bindsym Mod4+Shift+f exec python3 $base/main/moves.py record --fullscreen +bindsym Mod4+r exec wofi --show drun --width 400 --height 500 --layer overlay --location 1 +bindsym Ctrl+Shift+Alt+Mod4+L exec flatpak run io.github.ungoogled_software.ungoogled_chromium https://www.linkedin.com +bindsym Mod4+Shift+c exec python3 $base/main/moves.py kill +bindsym Mod4+n exec xpad +bindsym Mod4+v floating toggle +bindsym XF86AudioPlay exec playerctl play-pause +bindsym XF86AudioPause exec playerctl play-pause + +exec_always python3 $base/main/swayworkspace.py init 1 +bindsym Mod4+1 exec python3 $base/main/swayworkspace.py focus 1 +bindsym Mod4+Shift+1 exec python3 $base/main/swayworkspace.py move 1 +bindsym Mod4+2 exec python3 $base/main/swayworkspace.py focus 2 +bindsym Mod4+Shift+2 exec python3 $base/main/swayworkspace.py move 2 +bindsym Mod4+3 exec python3 $base/main/swayworkspace.py focus 3 +bindsym Mod4+Shift+3 exec python3 $base/main/swayworkspace.py move 3 +bindsym Mod4+4 exec python3 $base/main/swayworkspace.py focus 4 +bindsym Mod4+Shift+4 exec python3 $base/main/swayworkspace.py move 4 +bindsym Mod4+5 exec python3 $base/main/swayworkspace.py focus 5 +bindsym Mod4+Shift+5 exec python3 $base/main/swayworkspace.py move 5 +bindsym Mod4+6 exec python3 $base/main/swayworkspace.py focus 6 +bindsym Mod4+Shift+6 exec python3 $base/main/swayworkspace.py move 6 +bindsym Mod4+7 exec python3 $base/main/swayworkspace.py focus 7 +bindsym Mod4+Shift+7 exec python3 $base/main/swayworkspace.py move 7 +bindsym Mod4+8 exec python3 $base/main/swayworkspace.py focus 8 +bindsym Mod4+Shift+8 exec python3 $base/main/swayworkspace.py move 8 +bindsym Mod4+9 exec python3 $base/main/swayworkspace.py focus 9 +bindsym Mod4+Shift+9 exec python3 $base/main/swayworkspace.py move 9 +bindsym Mod4+0 exec python3 $base/main/swayworkspace.py focus 10 +bindsym Mod4+Shift+0 exec python3 $base/main/swayworkspace.py move 10 include ~/.config/mute/* -seat seat0 xcursor_theme DMZ-Black 12 -exec_always env BASE_SWAY=$base /usr/bin/python3 $base/main/boot.py + +seat seat0 xcursor_theme DMZ-Black 12 \ No newline at end of file diff --git a/config/sway/main/boot.py b/config/sway/main/boot.py deleted file mode 100644 index 3dc2aa1..0000000 --- a/config/sway/main/boot.py +++ /dev/null @@ -1,49 +0,0 @@ -import os -import subprocess -from swayipc import Swayipc -from warehouse import get_base - -Logs = "/tmp/sway_boot.log" - - -def apply_safe_config(sway): - try: - sway.cmd("default_border none") - sway.cmd("default_floating_border none") - sway.cmd("floating_modifier Mod4") - sway.cmd("bindsym Mod4+Shift+grave reload") - sway.cmd("bindsym Mod4+Shift+escape exit") - sway.cmd("bindsym Mod4+q exec kitty") - sway.cmd("bindsym Mod4+c kill") - sway.cmd("exec notify-send 'Sway FUCKED!' 'Fallback active'") - sway.cmd('for_window [app_id="xpad"] floating enable') - except Exception: - print("truely fucked") - pass - - -def boot(base): - base = os.path.expanduser(base) - with open(Logs, "w") as f: - return subprocess.run( - ["python3", os.path.join(base, "main/swayconfig.py")], - stdout=f, - stderr=f - ).returncode - - -def main(): - sway = Swayipc() - base = get_base() - if not base: - print("BASE_SWAY isnt defined correctly. This WILL cause problems with startup.") - return - rc = boot(base) - - if rc != 0: - apply_safe_config(sway) - subprocess.Popen(["xpad", "-f", Logs]) - - -if __name__ == "__main__": - main() \ No newline at end of file diff --git a/config/sway/main/moves.py b/config/sway/main/moves.py index 3afe27c..5965dbd 100644 --- a/config/sway/main/moves.py +++ b/config/sway/main/moves.py @@ -8,6 +8,7 @@ import base64 from datetime import datetime from pathlib import Path from warehouse import Media_flag, rand12 +from swayipc import Swayipc Recordings = Path.home() / "records" Tmp = tempfile.gettempdir() @@ -35,17 +36,16 @@ def find_focused_pid(node): return None def force_kill(): - tree = json.loads(subprocess.check_output( - ["swaymsg", "-t", "get_tree"], - text=True - )) + sway = Swayipc() + tree = sway.tree() + pid = find_focused_pid(tree) if not pid: return os.kill(pid, 9) - + def is_recording(): return subprocess.run( ["pgrep", "-x", "wf-recorder"], diff --git a/config/sway/main/sway_status.py b/config/sway/main/sway_status.py index d9a8cd8..a54ca9f 100755 --- a/config/sway/main/sway_status.py +++ b/config/sway/main/sway_status.py @@ -1,12 +1,12 @@ -import os import time import json -import socket -import struct import subprocess -import urllib.request +from datetime import datetime from pathlib import Path -from warehouse import Vpn_cache, Media_flag +import pulsectl +import psutil + +from warehouse import Vpn_cache, Media_flag, http_get class Cached: def __init__(self, ttl): @@ -25,105 +25,122 @@ class Cached: return self.value -def http_get(url, timeout=2): - try: - with urllib.request.urlopen(url, timeout=timeout) as r: - return r.read().decode().strip() - except Exception: - return "" - - class StatusBar: def __init__(self): self.cpu = Cached(5) - self.bat = Cached(5) - self.vpn = Cached(60) + self.ram = Cached(5) + self.bat = Cached(1) + self.vpn = Cached(1) self.rec = Cached(1) - def run(self, cmd): - return subprocess.run(cmd, capture_output=True, text=True).stdout.strip() - def get_volume(self): - return self.run(["pamixer", "--get-volume-human"]) + with pulsectl.Pulse("statusbar") as pulse: + sink = pulse.get_sink_by_name( + pulse.server_info().default_sink_name + ) + + volume = sink.volume.value_flat * 100 + + if sink.mute: + return "Muted" + + return f"{volume:.0f}%" def get_ram(self): - out = self.run(["free", "-m"]).splitlines() - mem = next((l for l in out if l.startswith("Mem:")), "") - parts = mem.split() - if len(parts) < 7: - return "?" - total = int(parts[1]) - used = int(parts[2]) - return f"{used//1000}GB/{total//1000}GB" + def compute(): + mem = psutil.virtual_memory() + used = mem.total - mem.available + + return f"{used // 1024**3}GB/{mem.total // 1024**3}GB" + + return self.ram.get(compute) def get_cpu(self): def compute(): - try: - out = self.run(["grep", "cpu ", "/proc/stat"]) - p = out.split() - if len(p) < 8: - return "0.0%" - user, nice, system, idle = map(int, p[1:5]) - total = user + nice + system + idle - busy = total - idle - return f"{(busy / total) * 100:.1f}%" - except Exception: - return "0.0%" + return f"{psutil.cpu_percent(interval=0.2):.1f}%" return self.cpu.get(compute) def get_battery(self): def compute(): - bat = Path("/sys/class/power_supply/BAT0") - if not bat.exists(): - return "" - try: - cap = (bat / "capacity").read_text().strip() - status = (bat / "status").read_text().strip() - return f"{cap}% ({status})" - except Exception: + bat = psutil.sensors_battery() + + if bat is None: return "" + if bat.power_plugged: + status = "Charging" + else: + status = "Discharging" + + return f"{bat.percent:.0f}% ({status})" + return self.bat.get(compute) def get_vpn(self): def compute(): - if not self.run(["wg", "show", "interfaces"]): + try: + with open("/proc/net/dev") as f: + interfaces = [ + line.split(":")[0].strip() + for line in f.readlines()[2:] + ] + + vpn = any( + iface.startswith(("wg", "tun", "tap", "ppp")) + for iface in interfaces + ) + + except Exception as e: + return "" + + if not vpn: if Vpn_cache.exists(): Vpn_cache.unlink() return "" country = "" - if Vpn_cache.exists(): - country = Vpn_cache.read_text().strip() - if not country: - ip = http_get("https://ifconfig.me") - geo = http_get(f"https://iplookup.stab.ing/api/v1/lookup?ip={ip}") + try: + if Vpn_cache.exists(): + country = Vpn_cache.read_text().strip() - if '"country"' in geo: - try: - country = geo.split('"country":"')[1].split('"')[0] - except Exception: - country = "" + if not country: + ip = http_get("https://ifconfig.me") + geo = http_get( + f"https://iplookup.stab.ing/api/v1/lookup?ip={ip}" + ) - if country: - Vpn_cache.write_text(country) + country = json.loads(geo).get("country", "") - return f"VPN: {country or 'Unknown'}" + if country: + Vpn_cache.write_text(country) + + except Exception as e: + print(e) + + return f"VPN: {country or 'NAY!'}" return self.vpn.get(compute) def get_recording(self): def compute(): - return "RECORDING!" if self.run(["pgrep", "-x", "wf-recorder"]) else "" + for proc in psutil.process_iter(["name"]): + try: + if proc.info["name"] == "wf-recorder": + return "RECORDING!" + except (psutil.NoSuchProcess, psutil.AccessDenied): + pass + + return "" return self.rec.get(compute) def get_time(self): if Media_flag.exists(): return "0001-01-01 12:00 AM" - return self.run(["date", "+%Y-%m-%d %I:%M %p"]) + + return datetime.now().strftime("%Y-%m-%d %I:%M %p") def render(self): vol = self.get_volume() @@ -138,14 +155,15 @@ class StatusBar: if extra: return f"CPU: {cpu} / RAM: {ram} / VOL: {vol} / {extra} / {t}" + return f"CPU: {cpu} / RAM: {ram} / VOL: {vol} / {t}" def main(): bar = StatusBar() + while True: print(bar.render(), flush=True) - time.sleep(0.1) if __name__ == "__main__": diff --git a/config/sway/main/swayconfig.py b/config/sway/main/swayconfig.py deleted file mode 100755 index c9e1e16..0000000 --- a/config/sway/main/swayconfig.py +++ /dev/null @@ -1,164 +0,0 @@ -import os -import subprocess -import sys -from swayipc import Swayipc -import swayworkspace -from pathlib import Path -from warehouse import get_base - -def run_sh(c): - subprocess.Popen(c, shell=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) - -def apply_ui_and_environment(sway): - base = os.path.expanduser(get_base()) - - sway.cmd("floating_modifier Mod4") - sway.cmd("default_border none") - sway.cmd("default_floating_border none") - - sway.cmd("client.focused #ffffff #ffffff #ffffff #ffffff") - sway.cmd("client.focused_inactive #000000 #000000 #000000 #000000") - sway.cmd("client.unfocused #000000 #000000 #000000 #000000") - sway.cmd("client.urgent #ffffff #ffffff #ffffff #ffffff") - sway.cmd("client.placeholder #000000 #000000 #000000 #000000") - - sway.cmd('for_window [app_id="xpad"] floating enable') - - sway.cmd("exec_always gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'") - sway.cmd("exec_always gsettings set org.gnome.desktop.interface gtk-theme 'Adwaita-dark'") - sway.cmd("exec_always gsettings set org.gnome.desktop.interface cursor-size 12") - sway.cmd("exec_always gsettings set org.gnome.desktop.interface font-name 'Noto Sans Mono 10'") - run_sh("wl-paste --watch cliphist store") - run_sh("/usr/lib/xdg-desktop-portal -r") - sway.cmd("setenv GTK_USE_PORTAL 0") - sway.cmd("setenv XDG_CURRENT_DESKTOP sway") - sway.cmd("setenv XDG_SESSION_TYPE wayland") - sway.cmd("setenv XDG_PORTAL_BACKEND wlroots") - - run_sh(f"swaybg -i {base}/wallpaper/metrowaymaka.png -m fill") - run_sh("blueman-applet") - run_sh("kdeconnectd") - run_sh("/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1") - swayworkspace.SwaySome().init(1) - run_sh("dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP SWAYSOCK") - -def bind_keys(sway): - base = get_base() - mod = "Mod4" - - binding_actions = {} - script_path = os.path.abspath(__file__) - - def assign_key(key_combo): - def decorator(func): - result = func() - sway.cmd(f"bindsym {key_combo} {result}") - return func - return decorator - - @assign_key(f"{mod}+h") - def focus_left(): return "focus left" - - @assign_key(f"{mod}+j") - def focus_down(): return "focus down" - - @assign_key(f"{mod}+k") - def focus_up(): return "focus up" - - @assign_key(f"{mod}+l") - def focus_right(): return "focus right" - - @assign_key(f"{mod}+Shift+h") - def move_left(): return "move left" - - @assign_key(f"{mod}+Shift+j") - def move_down(): return "move down" - - @assign_key(f"{mod}+Shift+k") - def move_up(): return "move up" - - @assign_key(f"{mod}+Shift+l") - def move_right(): return "move right" - - @assign_key(f"{mod}+bracketleft") - def workspace_prev(): return "workspace prev" - - @assign_key(f"{mod}+bracketright") - def workspace_next(): return "workspace next" - - @assign_key(f"{mod}+Q") - def open_terminal(): return "exec kitty" - - @assign_key(f"{mod}+c") - def kill_window(): return "kill" - - @assign_key(f"{mod}+Shift+s") - def take_screenshot(): return f"exec python3 {base}/main/moves.py screenshot --out ~/screenshots/" - - @assign_key(f"{mod}+Shift+escape") - def exit_sway(): return "exit" - - @assign_key(f"{mod}+Up") - def volume_up(): return "exec pamixer --increase 5" - - @assign_key(f"{mod}+Down") - def volume_down(): return "exec pamixer --decrease 5" - - @assign_key(f"{mod}+Shift+grave") - def reload_sway(): return "reload" - - @assign_key(f"{mod}+Shift+f") - def record_screen(): return f"exec python3 {base}/main/moves.py record --fullscreen" - - @assign_key(f"{mod}+r") - def open_menu(): return "exec wofi --show drun --width 400 --height 500 --layer overlay --location 1" - - @assign_key(f"{mod}+o") - def open_menu(): return "exec cliphist list | wofi -S dmenu --width 400 --height 500 --layer overlay --location 3 | cliphist decode | wl-copy" - - @assign_key("Ctrl+Shift+Alt+Mod4+L") - def open_linkedin(): return "exec flatpak run io.github.ungoogled_software.ungoogled_chromium https://www.linkedin.com" - - @assign_key(f"{mod}+Shift+c") - def force_kill(): return f"exec python3 {base}/main/moves.py kill" - - @assign_key(f"{mod}+n") - def open_notes(): return "exec xpad" - - @assign_key(f"{mod}+v") - def toggle_floating(): return "floating toggle" - - @assign_key("XF86AudioPlay") - def media_play(): return "exec playerctl play-pause" - - @assign_key("XF86AudioPause") - def media_pause(): return "exec playerctl play-pause" - - for i in range(1, 11): - num = 0 if i == 10 else i - sway.cmd(f"bindsym {mod}+{num} exec python3 {base}/main/swayworkspace.py focus {i}") - sway.cmd(f"bindsym {mod}+Shift+{num} exec python3 {base}/main/swayworkspace.py move {i}") - - return binding_actions - -def build_bar(sway): - base = os.path.expanduser(get_base()) - - sway.cmd("bar bar-main position top") - sway.cmd(f"bar bar-main status_command python3 {base}/main/sway_status.py") - sway.cmd("bar bar-main font pango:Noto Sans Mono 10") - sway.cmd("bar bar-main mode dock") - - sway.cmd("bar bar-main colors background #000000") - sway.cmd("bar bar-main colors statusline #ffffff") - sway.cmd("bar bar-main colors separator #ffffff") - sway.cmd("bar bar-main colors focused_workspace #000000 #ffffff #000000") - sway.cmd("bar bar-main colors active_workspace #000000 #ffffff #000000") - sway.cmd("bar bar-main colors inactive_workspace #000000 #000000 #ffffff") - sway.cmd("bar bar-main colors urgent_workspace #ffffff #ffffff #ffffff") - -if __name__ == "__main__": - sway = Swayipc() - apply_ui_and_environment(sway) - bind_keys(sway) - build_bar(sway) diff --git a/config/sway/main/swayipc.py b/config/sway/main/swayipc.py index 39c6f1b..f2b652a 100644 --- a/config/sway/main/swayipc.py +++ b/config/sway/main/swayipc.py @@ -85,6 +85,10 @@ class Swayipc: Output(name=o["name"], focused=o.get("focused", False), active=o.get("active", False)) for o in data if o.get("active", False) ] + + def tree(self): + self._send(4, "") + return json.loads(self._read()) def workspaces(self): self._send(1, "") diff --git a/config/sway/main/swayworkspace.py b/config/sway/main/swayworkspace.py index ce1ae9a..13b2dcc 100755 --- a/config/sway/main/swayworkspace.py +++ b/config/sway/main/swayworkspace.py @@ -74,6 +74,8 @@ def main(): sway.focus_abs(n) elif cmd == "move-abs": sway.move_abs(n) + elif cmd == "init": + sway.init(n) else: print(f"Unknown command: {cmd}", file=sys.stderr) sys.exit(1) diff --git a/config/sway/main/warehouse.py b/config/sway/main/warehouse.py index 58234aa..d4df62f 100644 --- a/config/sway/main/warehouse.py +++ b/config/sway/main/warehouse.py @@ -1,14 +1,14 @@ -# probably shouldnt mess with this! -# boot depends on it and if u break it u get no safe mode. from pathlib import Path import os import base64 +import urllib.request Vpn_cache = Path("/tmp/vpn_country.cache") Media_flag = Path("/tmp/media_active") -def get_base(): - return os.environ.get("BASE_SWAY") - def rand12(): - return base64.urlsafe_b64encode(os.urandom(9)).decode()[:12] \ No newline at end of file + return base64.urlsafe_b64encode(os.urandom(9)).decode()[:12] + +def http_get(url, timeout=2): + with urllib.request.urlopen(url, timeout=timeout) as r: + return r.read().decode().strip() \ No newline at end of file diff --git a/init/startsway.sh b/init/startsway.sh index dd2986a..4ff3290 100644 --- a/init/startsway.sh +++ b/init/startsway.sh @@ -6,13 +6,18 @@ killall pipewire 2>/dev/null killall pipewire-pulse 2>/dev/null killall wireplumber 2>/dev/null -killall blueman-applet 2>/dev/null sleep 1 +export GTK_USE_PORTAL=0 +export XDG_CURRENT_DESKTOP=sway +export XDG_SESSION_TYPE=wayland +export XDG_PORTAL_BACKEND=wlroots + pipewire & pipewire-pulse & wireplumber & -blueman-applet & -exec_always dbus-update-activation-environment --all \ + +dbus-update-activation-environment --all \ DISPLAY WAYLAND_DISPLAY XDG_CURRENT_DESKTOP SWAYSOCK + exec dbus-run-session sway \ No newline at end of file diff --git a/justfile b/justfile index 730a1b2..225d4e8 100644 --- a/justfile +++ b/justfile @@ -11,13 +11,13 @@ install-alpine: # my apps install-stabs-apps: - doas flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo - @echo "installing my apps" - doas flatpak install -y dev.vencord.Vesktop com.valvesoftware.Steam io.gitlab.librewolf-community + doas apk add flatpak + doas flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo + @echo "installing my apps" + doas flatpak install -y flathub dev.vencord.Vesktop com.valvesoftware.Steam - @echo "Permissionizing..." - flatpak override --user --filesystem=home io.gitlab.librewolf-community - flatpak override --user --filesystem=home dev.vencord.Vesktop + @echo "Permissionizing..." + flatpak override --user --filesystem=home dev.vencord.Vesktop stow: mkdir -p ~/.config/ diff --git a/packages b/packages index 949569e..6d3406d 100644 --- a/packages +++ b/packages @@ -27,9 +27,9 @@ pipewire-pulse pipewire-spa-tools pipewire-spa-bluez python3 -py3-qt5 +py3-psutil +py3-pulsectl cargo -flatpak git curl jq @@ -40,4 +40,5 @@ libxkbcommon-dev wayland-dev xwayland xwayland-satellite -font-noto-emoji \ No newline at end of file +font-noto-emoji +dex \ No newline at end of file diff --git a/readme.md b/readme.md index 8b6b2e8..4d2a829 100644 --- a/readme.md +++ b/readme.md @@ -1,8 +1,6 @@ # MY DOTS! -these are my dot files for sway. Its completely overcomplicated and stupid but i think its cool. -Instead of using the normal config (i kinda do just for bootup) we use python and sways ipc! - +these are my dot files for sway. also config for kitty, mako, nu, wofi.