linux-notes's People
linux-notes's Issues
Keep bash shell history but exclude and encrypt passwords (prompt to unlock encrypted credential)
Is there anyway where I can keep commands in my history which include sensitive credentials but prompt me for my sudo password to unlock and fill in the details when I actually try to run/use the commands.
It's really useful to be able to keep that pesky Mongo command in my history but plain-text password in the shell history isn't great. I imagine using some sort of magic like this:
$ mongosh gitter-mongo.vpn.dev --username eric --password $(encrypt xxx)
Could end up in my bash history as:
mongosh gitter-mongo.vpn.dev --username eric --password $(decrypt <encrypted>)
And then when I Ctrl+r
to recall it later and use it, it would recognize the encrypted syntax and prompts me for my sudo password to unencrypt and use those contents.
It seems like there would need to be some middleware when running command to recognize the encrypt syntax and decrypt syntax. Not sure if query sub-commands can also prompt.
Frequent `ERR_NETWORK_CHANGED` in Chrome ("Your connection was interrupted")
Frequent ERR_NETWORK_CHANGED
in Chrome ("Your connection was interrupted") and then the page just reloads on its own successfully.
Related issues:
- https://forum.manjaro.org/t/err-network-changed-sometimes/135443
- https://forum.manjaro.org/t/err-network-changed-every-couple-of-seconds-on-new-kde-installation/48155
- docker/for-linux#914
Looking through sudo journalctl | grep 'state changed'
, I do see the state changed new lease
message a lot but it doesn't seem to correspond to every time this happens. because I saw it around 17:00
but the last occurrence in the log is 15:50:50
. The timing here is probably just whenever I unlock my computer because I have noticed that the network seems to come back online whenever I log in again (feature?)
sudo journalctl | grep 'state changed'
$ sudo journalctl | grep 'state changed
...
Jun 07 01:11:02 eric-desktop-pc NetworkManager[1330]: <info> [1686118262.3496] dhcp6 (eno1): state changed new lease, address=xxx:xxx:xxxx::xxx xxxx:xxx:xxxx:xxxx::xxx
Jun 07 01:53:34 eric-desktop-pc NetworkManager[1330]: <info> [1686120814.0294] dhcp4 (eno1): state changed new lease, address=192.168.1.xxx
Jun 07 07:05:05 eric-desktop-pc NetworkManager[1330]: <info> [1686139505.3063] dhcp6 (eno1): state changed new lease, address=xxx:xxx:xxxx::xxx xxxx:xxx:xxxx:xxxx::xxx
Jun 07 07:21:34 eric-desktop-pc NetworkManager[1330]: <info> [1686140494.0295] dhcp4 (eno1): state changed new lease, address=192.168.1.xxx
Jun 07 12:44:52 eric-desktop-pc NetworkManager[1330]: <info> [1686159892.3497] dhcp6 (eno1): state changed new lease, address=xxx:xxx:xxxx::xxx xxxx:xxx:xxxx:xxxx::xxx
Jun 07 12:51:11 eric-desktop-pc NetworkManager[1330]: <info> [1686160271.0294] dhcp4 (eno1): state changed new lease, address=192.168.1.xxx
Jun 07 18:11:18 eric-desktop-pc NetworkManager[1330]: <info> [1686179478.7956] dhcp6 (eno1): state changed new lease, address=xxx:xxx:xxxx::xxx xxxx:xxx:xxxx:xxxx::xxx
Jun 07 18:27:48 eric-desktop-pc NetworkManager[1330]: <info> [1686180468.0295] dhcp4 (eno1): state changed new lease, address=192.168.1.xxx
Jun 07 23:51:09 eric-desktop-pc NetworkManager[1330]: <info> [1686199869.0206] dhcp4 (eno1): state changed new lease, address=192.168.1.xxx
Jun 08 00:09:12 eric-desktop-pc NetworkManager[1330]: <info> [1686200952.3496] dhcp6 (eno1): state changed new lease, address=xxx:xxx:xxxx::xxx xxxx:xxx:xxxx:xxxx::xxx
Jun 08 05:25:15 eric-desktop-pc NetworkManager[1330]: <info> [1686219915.0296] dhcp4 (eno1): state changed new lease, address=192.168.1.xxx
Jun 08 05:39:32 eric-desktop-pc NetworkManager[1330]: <info> [1686220772.3497] dhcp6 (eno1): state changed new lease, address=xxx:xxx:xxxx::xxx xxxx:xxx:xxxx:xxxx::xxx
Jun 08 10:51:42 eric-desktop-pc NetworkManager[1330]: <info> [1686239502.0294] dhcp4 (eno1): state changed new lease, address=192.168.1.xxx
Jun 08 11:18:52 eric-desktop-pc NetworkManager[1330]: <info> [1686241132.3496] dhcp6 (eno1): state changed new lease, address=xxx:xxx:xxxx::xxx xxxx:xxx:xxxx:xxxx::xxx
Jun 08 16:21:44 eric-desktop-pc NetworkManager[1330]: <info> [1686259304.0296] dhcp4 (eno1): state changed new lease, address=192.168.1.xxx
Jun 08 17:17:02 eric-desktop-pc NetworkManager[1330]: <info> [1686262622.3497] dhcp6 (eno1): state changed new lease, address=xxx:xxx:xxxx::xxx xxxx:xxx:xxxx:xxxx::xxx
Jun 08 21:49:26 eric-desktop-pc NetworkManager[1330]: <info> [1686278966.0297] dhcp4 (eno1): state changed new lease, address=192.168.1.xxx
Jun 08 22:56:22 eric-desktop-pc NetworkManager[1330]: <info> [1686282982.3496] dhcp6 (eno1): state changed new lease, address=xxx:xxx:xxxx::xxx xxxx:xxx:xxxx:xxxx::xxx
Jun 09 03:25:51 eric-desktop-pc NetworkManager[1330]: <info> [1686299151.0300] dhcp4 (eno1): state changed new lease, address=192.168.1.xxx
Jun 09 04:48:07 eric-desktop-pc NetworkManager[1330]: <info> [1686304087.9299] dhcp6 (eno1): state changed new lease, address=xxx:xxx:xxxx::xxx xxxx:xxx:xxxx:xxxx::xxx
Jun 09 08:54:40 eric-desktop-pc NetworkManager[1330]: <info> [1686318880.0296] dhcp4 (eno1): state changed new lease, address=192.168.1.xxx
Jun 09 10:27:13 eric-desktop-pc NetworkManager[1330]: <info> [1686324433.9312] dhcp6 (eno1): state changed new lease, address=xxx:xxx:xxxx::xxx xxxx:xxx:xxxx:xxxx::xxx
Jun 09 14:21:17 eric-desktop-pc NetworkManager[1330]: <info> [1686338477.0297] dhcp4 (eno1): state changed new lease, address=192.168.1.xxx
Jun 09 16:24:29 eric-desktop-pc NetworkManager[1330]: <info> [1686345869.8470] dhcp6 (eno1): state changed new lease, address=xxx:xxx:xxxx::xxx xxxx:xxx:xxxx:xxxx::xxx
Jun 09 19:42:31 eric-desktop-pc NetworkManager[1330]: <info> [1686357751.0297] dhcp4 (eno1): state changed new lease, address=192.168.1.xxx
Jun 09 22:22:22 eric-desktop-pc NetworkManager[1330]: <info> [1686367342.3496] dhcp6 (eno1): state changed new lease, address=xxx:xxx:xxxx::xxx xxxx:xxx:xxxx:xxxx::xxx
Jun 10 01:17:26 eric-desktop-pc NetworkManager[1330]: <info> [1686377846.0299] dhcp4 (eno1): state changed new lease, address=192.168.1.xxx
Jun 10 04:14:12 eric-desktop-pc NetworkManager[1330]: <info> [1686388452.3496] dhcp6 (eno1): state changed new lease, address=xxx:xxx:xxxx::xxx xxxx:xxx:xxxx:xxxx::xxx
Jun 10 06:45:03 eric-desktop-pc NetworkManager[1330]: <info> [1686397503.0299] dhcp4 (eno1): state changed new lease, address=192.168.1.xxx
Jun 10 10:04:38 eric-desktop-pc NetworkManager[1330]: <info> [1686409478.6918] dhcp6 (eno1): state changed new lease, address=xxx:xxx:xxxx::xxx xxxx:xxx:xxxx:xxxx::xxx
Jun 10 12:01:00 eric-desktop-pc NetworkManager[1330]: <info> [1686416460.0300] dhcp4 (eno1): state changed new lease, address=192.168.1.xxx
Jun 10 15:50:50 eric-desktop-pc NetworkManager[1330]: <info> [1686430250.9306] dhcp6 (eno1): state changed new lease, address=xxx:xxx:xxxx::xxx xxxx:xxx:xxxx:xxxx::xxx
I never noticed this problem on Windows with the same wired connection or on my Macbook which comes from the same switch.
System information
inxi --admin --verbosity=7 --filter --no-host
(Personally Identifiable Information like serial numbers and MAC addresses will be filtered out by the above command)
$ inxi --admin --verbosity=7 --filter --no-host
System:
Kernel: 6.1.29-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 12.2.1
parameters: BOOT_IMAGE=/boot/vmlinuz-6.1-x86_64
root=UUID=xxx rw quiet
cryptdevice=UUID=xxx:luks-xxx
root=/dev/mapper/luks-xxx splash
apparmor=1 security=apparmor udev.log_priority=3 amdgpu.aspm=0
Desktop: Xfce v: 4.18.1 tk: Gtk v: 3.24.36 info: xfce4-panel wm: xfwm
v: 4.18.0 vt: 7 dm: LightDM v: 1.32.0 Distro: Manjaro Linux base: Arch Linux
Machine:
Type: Desktop System: ASUS product: N/A v: N/A serial: <superuser required>
Mobo: ASUSTeK model: PRIME X670-P WIFI v: Rev 1.xx
serial: <superuser required> UEFI: American Megatrends v: 1413
date: 04/26/2023
Battery:
Device-1: hidpp_battery_0 model: Logitech Wireless Mouse MX Master 3
serial: <filter> charge: 100% (should be ignored) rechargeable: yes
status: discharging
Memory:
System RAM: available: 62.53 GiB used: 41.89 GiB (67.0%)
RAM Report: permissions: Unable to run dmidecode. Root privileges
required.
CPU:
Info: model: AMD Ryzen 7 7800X3D bits: 64 type: MT MCP arch: Zen 4 gen: 5
level: v4 note: check built: 2022+ process: TSMC n5 (5nm) family: 0x19 (25)
model-id: 0x61 (97) stepping: 2 microcode: 0xA601203
Topology: cpus: 1x cores: 8 tpc: 2 threads: 16 smt: enabled cache:
L1: 512 KiB desc: d-8x32 KiB; i-8x32 KiB L2: 8 MiB desc: 8x1024 KiB
L3: 96 MiB desc: 1x96 MiB
Speed (MHz): avg: 3333 high: 4795 min/max: 3000/5049 boost: enabled
scaling: driver: acpi-cpufreq governor: schedutil cores: 1: 3000 2: 2842
3: 3761 4: 2768 5: 2773 6: 4482 7: 2759 8: 4795 9: 2774 10: 2767 11: 3297
12: 2868 13: 2755 14: 4122 15: 2778 16: 4790 bogomips: 134194
Flags: 3dnowprefetch abm adx aes amd_lbr_v2 aperfmperf apic arat avic avx
avx2 avx512_bf16 avx512_bitalg avx512_vbmi2 avx512_vnni avx512_vpopcntdq
avx512bw avx512cd avx512dq avx512f avx512ifma avx512vbmi avx512vl bmi1
bmi2 bpext cat_l3 cdp_l3 clflush clflushopt clwb clzero cmov cmp_legacy
constant_tsc cpb cppc cpuid cqm cqm_llc cqm_mbm_local cqm_mbm_total
cqm_occup_llc cr8_legacy cx16 cx8 de decodeassists erms extapic
extd_apicid f16c flush_l1d flushbyasid fma fpu fsgsbase fsrm fxsr
fxsr_opt gfni ht hw_pstate ibpb ibrs ibs invpcid irperf lahf_lm lbrv lm
mba mca mce misalignsse mmx mmxext monitor movbe msr mtrr mwaitx
nonstop_tsc nopl npt nrip_save nx ospke osvw overflow_recov pae pat
pausefilter pclmulqdq pdpe1gb perfctr_core perfctr_llc perfctr_nb
perfmon_v2 pfthreshold pge pku pni popcnt pse pse36 rapl rdpid rdpru
rdrand rdseed rdt_a rdtscp rep_good sep sha_ni skinit smap smca smep ssbd
sse sse2 sse4_1 sse4_2 sse4a ssse3 stibp succor svm svm_lock syscall tce
topoext tsc tsc_scale umip v_spec_ctrl v_vmsave_vmload vaes vgif
vmcb_clean vme vmmcall vpclmulqdq wbnoinvd wdt x2apic x2avic xgetbv1
xsave xsavec xsaveerptr xsaveopt xsaves
Vulnerabilities:
Type: itlb_multihit status: Not affected
Type: l1tf status: Not affected
Type: mds status: Not affected
Type: meltdown status: Not affected
Type: mmio_stale_data status: Not affected
Type: retbleed status: Not affected
Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
prctl
Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
sanitization
Type: spectre_v2 mitigation: Retpolines, IBPB: conditional, IBRS_FW,
STIBP: always-on, RSB filling, PBRSB-eIBRS: Not affected
Type: srbds status: Not affected
Type: tsx_async_abort status: Not affected
Graphics:
Device-1: AMD Navi 31 [Radeon RX 7900 XT/7900 XTX] vendor: ASRock
driver: amdgpu v: kernel arch: RDNA-3 code: Navi-3x process: TSMC n5 (5nm)
built: 2022+ pcie: gen: 4 speed: 16 GT/s lanes: 16 ports: active: DP-1
empty: DP-2,DP-3,HDMI-A-1 bus-ID: 03:00.0 chip-ID: 1002:744c
class-ID: 0300
Display: x11 server: X.Org v: 21.1.8 compositor: xfwm v: 4.18.0 driver: X:
loaded: amdgpu unloaded: modesetting,radeon alternate: fbdev,vesa
dri: radeonsi gpu: amdgpu display-ID: :0.0 screens: 1
Screen-1: 0 s-res: 3840x2160 s-dpi: 96 s-size: 1016x571mm (40.00x22.48")
s-diag: 1165mm (45.88")
Monitor-1: DP-1 mapped: DisplayPort-0 model: A409U serial: <filter>
built: 2015 res: 3840x2160 hz: 60 dpi: 111 gamma: 1.2
size: 878x485mm (34.57x19.09") diag: 1003mm (39.5") ratio: 16:9 modes:
max: 3840x2160 min: 720x400
API: OpenGL v: 4.6 Mesa 23.2.0-devel (git-8e53b293f8) renderer: AMD
Radeon RX 7900 XTX (gfx1100 LLVM 15.0.7 DRM 3.49 6.1.29-1-MANJARO)
direct-render: Yes
Audio:
Device-1: AMD driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s
lanes: 16 bus-ID: 03:00.1 chip-ID: 1002:ab30 class-ID: 0403
Device-2: AMD Family 17h/19h HD Audio vendor: ASUSTeK
driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16
bus-ID: 12:00.6 chip-ID: 1022:15e3 class-ID: 0403
Device-3: Audio-Technica AT2020 USB driver: snd-usb-audio type: USB
rev: 1.1 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 3-3:7 chip-ID: 0909:0018
class-ID: 0102
API: ALSA v: k6.1.29-1-MANJARO status: kernel-api with: aoss
type: oss-emulator tools: alsactl,alsamixer,amixer
Server-1: JACK v: 1.9.22 status: off tools: N/A
Server-2: PipeWire v: 0.3.70 status: off with: wireplumber status: active
tools: pw-cli,wpctl
Server-3: PulseAudio v: 16.1 status: active with: pulseaudio-alsa
type: plugin tools: pacat,pactl,pavucontrol
Network:
Device-1: Realtek RTL8125 2.5GbE vendor: ASUSTeK driver: r8169 v: kernel
pcie: gen: 2 speed: 5 GT/s lanes: 1 port: e000 bus-ID: 0b:00.0
chip-ID: 10ec:8125 class-ID: 0200
IF: eno1 state: up speed: 1000 Mbps duplex: full mac: <filter>
IP v4: <filter> type: dynamic noprefixroute scope: global
broadcast: <filter>
IP v6: <filter> type: dynamic noprefixroute scope: global
IP v6: <filter> type: dynamic noprefixroute scope: global
IP v6: <filter> type: dynamic noprefixroute scope: global
IP v6: <filter> type: noprefixroute scope: global
IP v6: <filter> type: dynamic noprefixroute scope: global
IP v6: <filter> type: noprefixroute scope: link
Device-2: Realtek vendor: AzureWave driver: N/A pcie: gen: 1
speed: 2.5 GT/s lanes: 1 port: d000 bus-ID: 0c:00.0 chip-ID: 10ec:b852
class-ID: 0280
IF-ID-1: br-4e443c44bdff state: up speed: 10000 Mbps duplex: unknown
mac: <filter>
Message: Output throttled. IPs: 2; Limit: 10; Override: --limit [1-x;-1
all]
IF-ID-2: docker0 state: up speed: 10000 Mbps duplex: unknown mac: <filter>
Message: Output throttled. IPs: 2; Limit: 10; Override: --limit [1-x;-1
all]
IF-ID-3: veth030bb53 state: up speed: 10000 Mbps duplex: full
mac: <filter>
IF-ID-4: veth12991a2 state: up speed: 10000 Mbps duplex: full
mac: <filter>
IF-ID-5: veth87768b4 state: up speed: 10000 Mbps duplex: full
mac: <filter>
IF-ID-6: vetha3f2679 state: up speed: 10000 Mbps duplex: full
mac: <filter>
WAN IP: <filter>
Bluetooth:
Device-1: Cambridge Silicon Radio Bluetooth Dongle (HCI mode) driver: btusb
v: 0.8 type: USB rev: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1
bus-ID: 1-5.3.3:5 chip-ID: 0a12:0001 class-ID: e001
Report: rfkill ID: hci1 rfk-id: 1 state: up address: see --recommends
Device-2: IMC Networks Bluetooth Radio driver: btusb v: 0.8 type: USB
rev: 1.0 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 3-2:2 chip-ID: 13d3:3571
class-ID: e001 serial: <filter>
Report: ID: hci0 rfk-id: 0 state: up address: N/A
Logical:
Message: No logical block device data found.
Device-1: luks-42ea82bf-14d8-4122-a190-5ae9845faa1a maj-min: 254:0
type: LUKS dm: dm-0 size: 1.82 TiB
Components:
p-1: nvme0n1p2 maj-min: 259:2 size: 1.82 TiB
RAID:
Message: No RAID data found.
Drives:
Local Storage: total: 1.82 TiB used: 418.28 GiB (22.5%)
SMART Message: Required tool smartctl not installed. Check --recommends
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung model: SSD 980 PRO 2TB
size: 1.82 TiB block-size: physical: 512 B logical: 512 B speed: 63.2 Gb/s
lanes: 4 tech: SSD serial: <filter> fw-rev: 5B2QGXA7 temp: 35.9 C
scheme: GPT
Message: No optical or floppy data found.
Partition:
ID-1: / raw-size: 1.82 TiB size: 1.79 TiB (98.37%) used: 418.28 GiB (22.8%)
fs: ext4 dev: /dev/dm-0 maj-min: 254:0
mapped: luks-42ea82bf-14d8-4122-a190-5ae9845faa1a label: N/A
uuid: e8e411f9-d7ac-4221-bb2c-8052f92e474f
ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
used: 472 KiB (0.2%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1 label: N/A
uuid: A9FA-383D
Swap:
Kernel: swappiness: 60 (default) cache-pressure: 100 (default)
ID-1: swap-1 type: file size: 16 GiB used: 1.15 GiB (7.2%) priority: -2
file: /swapfile
Unmounted:
Message: No unmounted partitions found.
USB:
Hub-1: 1-0:1 info: hi-speed hub with single TT ports: 12 rev: 2.0
speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 1d6b:0002
class-ID: 0900
Hub-2: 1-5:2 info: VIA Labs Hub ports: 4 rev: 2.1
speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 2109:2811
class-ID: 0900
Device-1: 1-5.2:36 info: Cooler Master MASTERKEYS PRO S type: keyboard,HID
driver: hid-generic,usbhid interfaces: 3 rev: 1.1 speed: 12 Mb/s (1.4 MiB/s)
lanes: 1 mode: 1.1 power: 100mA chip-ID: 2516:003c class-ID: 0300
Hub-3: 1-5.3:4 info: VIA Labs Hub ports: 4 rev: 2.1
speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 2109:2811
class-ID: 0900
Device-1: 1-5.3.3:5 info: Cambridge Silicon Radio Bluetooth Dongle (HCI
mode) type: bluetooth driver: btusb interfaces: 2 rev: 2.0
speed: 12 Mb/s (1.4 MiB/s) lanes: 1 mode: 1.1 chip-ID: 0a12:0001
class-ID: e001
Hub-4: 2-0:1 info: super-speed hub ports: 5 rev: 3.1
speed: 20 Gb/s (2.33 GiB/s) lanes: 2 mode: 3.2 gen-2x2 chip-ID: 1d6b:0003
class-ID: 0900
Hub-5: 2-5:2 info: VIA Labs Hub ports: 4 rev: 3.0
speed: 5 Gb/s (596.0 MiB/s) lanes: 1 mode: 3.2 gen-1x1 chip-ID: 2109:8110
class-ID: 0900
Hub-6: 2-5.3:3 info: VIA Labs Hub ports: 4 rev: 3.0
speed: 5 Gb/s (596.0 MiB/s) lanes: 1 mode: 3.2 gen-1x1 chip-ID: 2109:8110
class-ID: 0900
Hub-7: 3-0:1 info: hi-speed hub with single TT ports: 12 rev: 2.0
speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 1d6b:0002
class-ID: 0900
Device-1: 3-2:2 info: IMC Networks Bluetooth Radio type: bluetooth
driver: btusb interfaces: 2 rev: 1.0 speed: 12 Mb/s (1.4 MiB/s) lanes: 1
mode: 1.1 power: 500mA chip-ID: 13d3:3571 class-ID: e001 serial: <filter>
Device-2: 3-3:7 info: Audio-Technica AT2020 USB type: audio
driver: snd-usb-audio interfaces: 2 rev: 1.1 speed: 12 Mb/s (1.4 MiB/s)
lanes: 1 mode: 1.1 power: 90mA chip-ID: 0909:0018 class-ID: 0102
Device-3: 3-4:4 info: Logitech Unifying Receiver type: keyboard,mouse,HID
driver: logitech-djreceiver,usbhid interfaces: 3 rev: 2.0
speed: 12 Mb/s (1.4 MiB/s) lanes: 1 mode: 1.1 power: 98mA
chip-ID: 046d:c52b class-ID: 0300
Device-4: 3-7:5 info: ASUSTek AURA LED Controller type: HID
driver: hid-generic,usbhid interfaces: 2 rev: 2.0 speed: 12 Mb/s (1.4 MiB/s)
lanes: 1 mode: 1.1 power: 16mA chip-ID: 0b05:19af class-ID: 0300
serial: <filter>
Device-5: 3-11:6 info: Corsair HX1000i Power Supply type: HID
driver: corsair-psu,usbhid interfaces: 1 rev: 2.0 speed: 12 Mb/s (1.4 MiB/s)
lanes: 1 mode: 1.1 power: 100mA chip-ID: 1b1c:1c1e class-ID: 0300
Hub-8: 4-0:1 info: super-speed hub ports: 6 rev: 3.1
speed: 10 Gb/s (1.16 GiB/s) lanes: 1 mode: 3.2 gen-2x1 chip-ID: 1d6b:0003
class-ID: 0900
Hub-9: 5-0:1 info: hi-speed hub with single TT ports: 2 rev: 2.0
speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 1d6b:0002
class-ID: 0900
Hub-10: 6-0:1 info: super-speed hub ports: 2 rev: 3.1
speed: 10 Gb/s (1.16 GiB/s) lanes: 1 mode: 3.2 gen-2x1 chip-ID: 1d6b:0003
class-ID: 0900
Hub-11: 7-0:1 info: hi-speed hub with single TT ports: 2 rev: 2.0
speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 1d6b:0002
class-ID: 0900
Hub-12: 8-0:1 info: super-speed hub ports: 2 rev: 3.1
speed: 10 Gb/s (1.16 GiB/s) lanes: 1 mode: 3.2 gen-2x1 chip-ID: 1d6b:0003
class-ID: 0900
Hub-13: 9-0:1 info: hi-speed hub with single TT ports: 1 rev: 2.0
speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 1d6b:0002
class-ID: 0900
Hub-14: 10-0:1 info: Linux Foundation 3.0 root hub ports: N/A rev: 3.0
speed: 5 Gb/s (596.0 MiB/s) lanes: 1 mode: 3.2 gen-1x1 chip-ID: 1d6b:0003
class-ID: 0900
Sensors:
System Temperatures: cpu: 51.5 C mobo: N/A gpu: amdgpu temp: 62.0 C
mem: 63.0 C
Fan Speeds (RPM): N/A gpu: amdgpu fan: 1033
Info:
Processes: 581 Uptime: 20d 1h 2m wakeups: 754 Init: systemd v: 253
default: graphical tool: systemctl Compilers: gcc: 13.1.1 clang: 15.0.7
Packages: 1262 pm: pacman pkgs: 1255 libs: 362 tools: pamac,yay pm: flatpak
pkgs: 0 pm: snap pkgs: 7 Shell: Bash v: 5.1.16 running-in: wezterm-gui
inxi: 3.3.27
(Docker is installed)
My Docker containers are not constantly restarting (up for days)
Potential solution
If you can accept disabling IPv6, it seems like that works for many people.
I've tried this out for now: https://wiki.archlinux.org/title/IPv6#Disable_IPv6
- Disable IPv6:
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
- Make the changes persist over restarts
/etc/sysctl.d/40-ipv6.conf
# Disable IPv6 to avoid `ERR_NETWORK_CHANGED` in Chrome # (see https://github.com/MadLittleMods/linux-notes/issues/36) net.ipv6.conf.all.disable_ipv6 = 1
Manjaro/XFCE tips
As @Costava mentioned:
- Hold
Alt
and left-click drag on any part of a window to move a window around - Hold
Alt
and right-click drag on any part of a window to resize any window - TODO: Gotcha: Scrolling on a window title which expands/collapses it
- TODO: Multiple desktops gotcha
Emoji support on Manjaro
Actual
Emoji on website in Google Chrome (https://emojipedia.org/nature):
Actual | Expected |
---|---|
Solution for emoji support
$ pamac install noto-fonts-emoji
$ fc-cache -f -v
Then just restart Google Chrome to see emoji in your browser
Solution for emoji keyboard/picker
Install Emote
I was unable to install emote
from AUR thanks to the required dependency python-manimpango
not installing from AUR (python-manimpango/src/ManimPango-0.4.3/manimpango/cmanimpango.c: No such file or directory
)
So I installed it from source:
$ git clone [email protected]:tom-james-watson/Emote.git
$ cd Emote
$ sudo pip3 install pipenv
$ make install
$ make dev
...
ModuleNotFoundError: No module named 'gi'
# To fix the missing `gi` dependency (https://stackoverflow.com/a/43808204/796832)
$ pip install vext
$ pip install vext.gi
# It works now!
$ make dev
Keyboard shortcut: Ctrl + Alt + e
to open the emoji picker
System Details:
- Manjaro 22.1.2 with XFCE
- Chrome Version 113.0.5672.126
Bluetooth headphones (audio)
Bluetooth headphones (audio)
Restart Bluetooth service
# See the status of the service
$ sudo systemctl status bluetooth
# Restart the service
sh sudo systemctl restart bluetooth
# Start/stop the service
sh sudo systemctl start bluetooth
sh sudo systemctl stop bluetooth
Bluetooth headphones don't show up as an audio output device after being connected
I was experiencing this problem with my Apple AirPods are successfully connecting Bluetooth but not being able to choose them as an audio output device in the volume mixer.
To resolve this, use the following steps:
First, you can check if you're using PulseAudio via the following command (via https://forum.manjaro.org/t/how-to-know-what-audio-driver-am-i-using/87530):
$ inxi -Ax | grep -E 'PulseAudio|PipeWire'
Server-2: PipeWire v: 0.3.70 status: off
Server-3: PulseAudio v: 16.1 status: active
If you're using PulseAudio, here are the easy steps to restart it:
# Check if any PulseAudio instances are running. It normally prints no output, just exit code. 0 means running.
$ pulseaudio --check
$ Kill any existing instances
$ pulseaudio -k
$ Start PulseAudio again as a daemon
$ pulseaudio -D
(via https://askubuntu.com/questions/15223/how-can-i-restart-pulseaudio-without-having-to-logout)
🎉 Yay, successful bluetooth audio
Install PostgreSQL (database)
Install PostgreSQL (database)
$ pamac install postgresql
# Also install the old version of Postgres so you can update when the
# next major version comes out (save yourself the headache).
# See https://wiki.archlinux.org/title/PostgreSQL#Upgrading_PostgreSQL
$ pamac install postgresql-old-upgrade
# Login and use the `postgres` user
$ sudo -iu postgres
# Initialize the database
$ initdb --locale en_US.UTF-8 -D '/var/lib/postgres/data'
# Make sure the service is running now
$ sudo systemctl start postgresql.service
$ sudo systemctl status postgresql.service
Other things you might want to do:
# Login and use the `postgres` user
$ sudo -iu postgres
# Create a new postgres user
$ createuser eric
# Create a new database (maybe you want to replace `owner` with the user you just created)
$ createdb --encoding=UTF8 --locale=C --template=template0 --owner=postgres synapse
Dev notes
Packages to get after a fresh install
See #4 to make sure you're able to search for packages in the AUR (Arch User Repository).
See #48 for how to lock/pin dependencies that are coming from unofficial repositories like AUR.
Installing packages
pamac install google-chrome
TODO
-
barrier
-
Use official source and instructionssublime-text-4
-
google-chrome
-
visual-studio-code-bin
(to get the non-OSS version which has settings sync, extensions, etc) -
steam
-
slack-desktop
(also needspatch
) -
discord
-
Piper (for mouse sensitivity/acceleration)- See #1
- Screenshot tool
- See #3
More developer related:
Show the GRUB boot selection menu to change kernels
The Manjaro docs make it seem like after installing new kernel versions, you can just select them on boot but the GRUB menu wasn't showing for me by default.
Even pressing Esc
(escape) during boot just dropped me into another terminal looking thing vs the GRUB selector menu looking thing. Perhaps I was pressing escape at the wrong stage of the boot process, or that was GRUB but I needed to know the magic spell to bring up the menu, I don't know...
But if you just want to show the GRUB menu each time on boot, you can use the following steps:
Solution
via https://youtu.be/7od9dPf4gnM
- Edit
/etc/default/grub
- Change
GRUB_TIMEOUT_STYLE=hidden
toGRUB_TIMEOUT_STYLE=menu
sudo update-grub
- You will see the changes on next boot 🎉
Check if Logitech Unifying receiver for wireless mouse is patched and up-to-date
Check if Logitech Unifying receiver for wireless mouse is patched and up-to-date
pamac install fwupd
-
$ fwupdmgr get-devices ... └─Unifying Receiver: Device ID: xxx Summary: Miniaturised USB wireless receiver Current version: RQR12.11_B0032 Bootloader Version: BOT01.04_B0016 Vendor: HIDRAW:0x046D|USB:0x046D Install Duration: 30 seconds GUIDs: xxx xxx ← HIDRAW\VEN_046D&DEV_C52B Device Flags: • Updatable • Signed Payload
- Already up-to-date ✅
$ fwupdmgr get-updates Devices with no available firmware updates: • ... Devices with the latest available firmware version: • Unifying Receiver ...
- If we needed to update, we could use
fwupdmgr update xxx
Dev notes
Pretty shell option
Bash shell alternative where we can do nice pretty things.
First figure out your terminal emulator: #30
Solution
TBD
Interesting options:
- https://starship.rs/
- Zsh and Oh My Zsh
AMD Radeon 7900 XTX support on Manjaro
TLDR
Your AMD 7900 XTX GPU probably mostly works out of the box with the latest Manjaro 22.1.2+.
I had to add amdgpu.aspm=0
as a kernel boot param (see section below for exact instruction) in order to get consistent good performance. This issue is best tracked by https://gitlab.freedesktop.org/drm/amd/-/issues/2434
I still have to use the mesa-git
and lib32-mesa-git
packages in order to get Halo Infinite to launch although other games worked with just mesa
/lib32-mesa
. So there is some fix between mesa
23.0.3-1
and 23.2.0_devel.171495.8e53b293f88.932463d268438ce945b21718552d92ab-1
at least for Halo (more context).
My system specs for reference:
- Motherboard: ASUS Prime X670-P WIFI (AM5)
- BIOS version 1413
- Never enabled EXPO (especially with the motherboard/CPU voltage and melting debacle going on atm)
- CPU: AMD Ryzen 7 7800X3D
- Memory: 64 GB
- GPU: Asrock AMD Radeon™ RX 7900 XTX Taichi 24GB
- Resolution: 3840x2160 @ 60 FPS
- Type of Display Connection: DP
- OS: Manjaro 22.1.2 (with XFCE)
Check if your GPU is recognized
See instructions below if your GPU isn't recognized out of the box.
Manjaro Settings Manager -> Hardware configuration where my integrated and dedicated GPU's are showing up (iGPU and dGPU)
Before support (Unknown device name (ATI Technologies Inc) ) |
After supported (it looks exactly the same for the AMD 7900XTX 🤷) |
---|---|
![]() |
(no change) |
Checking drivers. video-linux
seems to be the one to care about and use from my reading 🤷 :
$ mhwd --list
> 0000:03:00.0 (0300:1002:744c) Display controller ATI Technologies Inc:
--------------------------------------------------------------------------------
NAME VERSION FREEDRIVER TYPE
--------------------------------------------------------------------------------
video-linux 2018.05.04 true PCI
video-modesetting 2020.01.13 true PCI
video-vesa 2017.03.12 true PCI
$ mhwd --listinstalled
> Installed PCI configs:
--------------------------------------------------------------------------------
NAME VERSION FREEDRIVER TYPE
--------------------------------------------------------------------------------
video-linux 2018.05.04 true PCI
$ mhwd --listinstalled --detail
NAME: video-linux
ATTACHED: PCI
VERSION: 2018.05.04
INFO: Standard open source drivers.
PRIORITY: 2
FREEDRIVER: true
DEPENDS: -
CONFLICTS: -
CLASSIDS: 0300 0380 0302
VENDORIDS: 1002 8086 10de
$ glxinfo | grep OpenGL
OpenGL vendor string: AMD
OpenGL renderer string: AMD Radeon RX 7900 XTX (gfx1100, LLVM 15.0.7, DRM 3.49, 6.1.26-1-MANJARO)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 23.2.0-devel (git-ebe3b91ca0)
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6 (Compatibility Profile) Mesa 23.2.0-devel (git-ebe3b91ca0)
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 23.2.0-devel (git-ebe3b91ca0)
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:
The 7900XTX is actually named and listed using nvtop
though (pamac install nvtop
then run nvtop
)
$ nvtop
Device 0 [AMD Radeon RX 7900 XTX] PCIe GEN 4@16x RX: N/A TX: N/A
GPU 1455MHz MEM 1249MHz TEMP 44°C FAN 15% POW 108 / 339 W
GPU[||||||||||||||||| 49%] MEM[||||||||||| 8.060Gi/23.984Gi]
[...]
Getting the GPU to be recognized
Which kernel?
I don't know of a minimum or anything (I've seen a lot of people recommending upgrading to 6.x) but I am working from a fresh Manjaro install and got Linux 6.1.26-1
out of the box
Are there nonfree drivers?
There are AMDGPU PRO drivers (proprietary) listed from the table on https://wiki.archlinux.org/title/Xorg#Driver_installation. But from some replies on Reddit, it seems like you don't want to use them over the free drivers since they lack something important (can't recall).
xf86-video-amdgpu
(driver) -> amdgpu-pro-oglp
/lib32-amdgpu-pro-oglp
(OpenGL)
Open-source drivers
You might already have some installed. See what you have with pamac search xf86 --installed
and compare with the table on https://wiki.archlinux.org/title/Xorg#Driver_installation
xf86-video-amdgpu
and xf86-video-ati
(drivers) -> mesa
and lib32-mesa
(OpenGL)
$ pamac search xf86 --installed
libxxf86vm 1.1.5-1 extra
X11 XFree86 video mode extension library
lib32-libxxf86vm 1.1.5-1 multilib
X11 XFree86 video mode extension library (32-bit)
xf86-video-nouveau 1.0.17-2 extra
Open Source 3D acceleration driver for nVidia cards
xf86-video-intel 1:2.99.917+923+gb74b67f0-1 extra
X.org Intel i810/i830/i915/945G/G965+ video drivers
xf86-video-ati 1:19.1.0.r15.g7a6a34af-1 extra
X.org ati video driver
xf86-video-amdgpu 23.0.0-1 extra
X.org amdgpu video driver
xf86-input-void 1.4.2-1 extra
X.org void input driver
xf86-input-libinput 1.3.0-1 extra
Generic input driver for the X.Org server based on libinput
xf86-input-evdev 2.10.6-3 extra
X.org evdev input driver
xf86-input-elographics 1.4.3-1 extra
X.org Elographics TouchScreen input driver
$ pamac search mesa --installed
lib32-mesa-git 23.2.0_devel.170864.ebe3b91ca01.d41d8cd98f00b204e9800998ecf8427e-1 AUR
an open-source implementation of the OpenGL specification,
git version
lib32-mesa-demos 8.5.0-1 multilib
Mesa demos (32-bit)
mesa-utils 9.0.0-2 extra
Essential Mesa utilities
mesa-git 23.2.0_devel.170864.ebe3b91ca01.dae32bb875358c786b404388bf1ee875-1 AUR
an open-source implementation of the OpenGL specification,
git version
mesa-demos 9.0.0-2 extra
Mesa demos
Using mesa
and lib32-mesa
(works as of 2023-05-08)
The package repositories finally have mesa@23+
compiled with llvm@15
which means you should be able to simply install these stable versions. Or maybe if you're installing Manjaro from scratch, all of this just works out of the box?
$ pamac install mesa
$ pamac install lib32-mesa
And for reference, here is what the repositories look like as of 2023-05-08.
$ pamac search llvm
llvm [Installed] 15.0.7-2 extra
Compiler infrastructure
$ pamac search mesa
mesa [Installed] 23.0.3-1 extra
An open-source implementation of the OpenGL specification
$ pamac search lib32-mesa
lib32-mesa [Installed] 23.0.3-1 multilib
An open-source implementation of the OpenGL specification (32-bit)
- https://archlinux.org/packages/extra/x86_64/mesa/
- https://archlinux.org/packages/multilib/x86_64/lib32-mesa/
- https://gitlab.freedesktop.org/mesa/mesa
- https://gitlab.freedesktop.org/drm/amd (for
amdgpu
driver)
Using mesa-git
and lib32-mesa-git
(no longer needed)
Using mesa-git
and lib32-mesa-git
The AMD Radeon 7900XTX does not have drivers shipped on Manjaro (Arch) because it's stuck on LLVM 14 and AMD 7900 GPUs need at least LLVM 15 (also recommended to have any kernel 6.1 or higher).
According to comment in the Manjaro forum, as of 2023-01-19, mesa-git
from AUR has also been updated to use LLVM/Clang 15.0.7 without setting WHICH_LLVM
manually.
I was able to install mesa-git
and lib32-mesa-git
with the following commands. Keep in mind that until I figured out mesa-git
was updated to build out of the box now, I also messed with the below manual build instructions so if you run into any weirdness maybe you also have to uninstall/install some of the same things mentioned below.
$ pamac install directx-headers-git
$ pamac install mesa-git
$ pamac install lib32-mesa-git
# Afterwards
$ pamac search mesa-git --installed
lib32-mesa-git 23.2.0_devel.170561.040aeb5a23e.d41d8cd98f00b204e9800998ecf8427e-1 AUR
an open-source implementation of the OpenGL specification, git version
mesa-git 23.2.0_devel.170561.040aeb5a23e.dae32bb875358c786b404388bf1ee875-1 AUR
an open-source implementation of the OpenGL specification, git version
$ glxinfo|grep -E "OpenGL vendor|OpenGL renderer"
OpenGL vendor string: AMD
OpenGL renderer string: AMD Radeon RX 7900 XTX (gfx1100, LLVM 15.0.7, DRM 3.49, 6.1.25-1-MANJARO)
References:
- https://old.reddit.com/r/ManjaroLinux/comments/zr1jhj/manjaroarch_and_radeon_7900_series_a_howto_guide/?sort=new
- https://forum.manjaro.org/t/temporary-solution-to-get-7900-xt-x-to-work/129529
- https://old.reddit.com/r/archlinux/comments/zn8fhb/rx_7900xtx_llvmpipe/j18jfi5/
- https://forum.level1techs.com/t/manjaro-7900-xtx-issues/192250
- Comments from this video are useful to see other success stories: https://www.youtube.com/watch?v=6iBOmcDZv_E
- https://www.reddit.com/r/archlinux/comments/vv6ibz/whats_up_with_mesagit/
- https://aur.archlinux.org/packages/mesa-git
- https://aur.archlinux.org/packages/lib32-mesa-git
Manual build steps (no longer needed)
Manual build steps
- Get some prerequisites to build C++ things:
pamac install make gcc clang base-devel
- Remove some conflicting packages:
sudo pacman -Rs shiboken6 pyside6 web-installer-url-handler manjaro-hello
sudo pacman -S directx-headers libclc
- To make the build go faster, you can edit
/etc/makepkg.conf
->MAKEFLAGS="-jX"
where X is the number of jobs/cores you want the build to run with. I usedMAKEFLAGS="-j12"
for example. - Download latest snapshots for both
mesa-git
andlib32-mesa-git
from AUR. For those of you unaware of what that means, for example, go to https://aur.archlinux.org/packages/mesa-git, on the right of the page you see a link called "Download Snapshot", and you download said gz file. Same for lib32-mesa-git. - Run through these commands:
$ mkdir ~/build $ cd ~/build $ cp ~/Downloads/mesa-git.tar.gz mesa-git.tar.gz $ cp ~/Downloads/lib32-mesa-git.tar.gz lib32-mesa-git.tar.gz $ tar zxvf mesa-git.tar.gz $ tar zxvf lib32-mesa-git.tar.gz $ yay --mflags "--nocheck" --sudoloop -S llvm-minimal-git lib32-llvm-minimal-git $ cd ~/build/mesa-git $ MESA_WHICH_LLVM=1 makepkg -si $ cd ~/build/lib32-mesa-git $ MESA_WHICH_LLVM=1 makepkg -si $ shutdown -r now
- If the build ever fails, in order to resume, make sure to answer No to a
cleanBuild
of the given packages
Do I want the Vulkan drivers?
I don't think so.
From replies around the internet, it seems like you want to uninstall anything amdvlk
or vulkan
related to get good performance.
GPU usage monitoring
Check if your dedicated GPI is set as the primary OpenGL renderer
$ glxinfo | grep "OpenGL renderer"
OpenGL renderer string: AMD Radeon RX 7900 XTX (gfx1100, LLVM 15.0.7, DRM 3.49, 6.1.26-1-MANJARO)
You can see if you're GPU is being utilized when playing games.
- See https://wiki.archlinux.org/title/AMDGPU#Monitoring
nvtop
seemed to work wellpamac install nvtop
radeontop
pamac install radeontop
amdgpu_top
pamac build amdgpu_top
(withoutsudo
)
umr
(User Mode Register Debugger for AMDGPU Hardware)GPUOpen-Tools/radeon_gpu_profiler
(Radeon GPU Profiler (RGP) is a tool from AMD that allows for deep inspection of GPU workloads.)
It's still sometimes stuttering/hitching/low FPS, awful load time mess
Sometimes, it seems to regress and there is a lot of hitching and stutter even in the Steam UI but nvtop
does have the AMD Radeon RX 7900 XTX
name and shows usage when this happens. Although it shows usage on the integrated GPU (iGPU) and dedicated GPU (dGPU).
I can easily tell when it's bad because the steam UI glow around achievements is stuttering/hitching and even just moving the Steam window around is bad. I don't know the cause yet around why it's sometimes good and not.
With stutter | Without stutter |
---|---|
![]() |
![]() |
One hunch for good vs bad mode in terms of hitching is it happens after I install something like pamac install code
which updates and builds all other packages (including mesa-git
) and my computer needs a restart to get the "driver" in place again. Although, even after restarting my PC, I have seen it still stutter before 🤔
Another hunch I had was that it was sometimes choosing my integrated GPU which kinda makes sense in terms of the bad performance I was seeing. After disabling the iGPU (see instructions below), things also appeared good on first boot but then still experienced laggy bad mode later after gaming.
Other references:
- https://www.reddit.com/r/archlinux/comments/10nrgcv/new_amd_system_is_laggy_with_the_cursor_hanging/
- https://gitlab.freedesktop.org/drm/amd/-/issues/2346
Disable integrated GPU (iGPU)
Shut-down your computer and go into your BIOS (F2 or DEL for my Asus Prime x670-P WIFI motherboard) -> Advanced mode -> Advanced -> NB Configuration -> set Integrated Graphics as Disabled -> Save and reset
(on the same page, Primary Video Device was already set to PCIE Video which is the dedicated GPU)
This didn't seem to help.
Related:
- https://www.reddit.com/r/linux_gaming/comments/10ews9u/7900xtx_in_linux_update_poor_performance_in_linux/
- https://www.reddit.com/r/Amd/comments/xw25z7/7950x_igpu_driver_causing_performance_loss_ddu/
Use amdgpu.aspm=0
to disable power management fixed my problems 🚀
As discovered in https://gitlab.freedesktop.org/drm/amd/-/issues/2434, the workaround by adding amdgpu.aspm=0
as a kernel boot param to disable active state power management worked to give me consistent good performance!
- Edit
/etc/default/grub
- Add
amdgpu.aspm=0
toGRUB_CMDLINE_LINUX_DEFAULT="..."
- Restart computer
Since that fixed my problem, I replied on that issue with some more reproduction info and explaining the same context from this issue -> https://gitlab.freedesktop.org/drm/amd/-/issues/2434#note_1929459
Restart/reset GPU driver
TBD: needs solution.
I want to restart/reset the GPU driver whenever I see some odd behavior to better debug which layer is going wrong and as a get out of jail free card.
Restart the X server from terminal
To restart the Xorg/X server (X11),
TODO
Restart the display manager:
sudo systemctl restart lightdm
Restart the X server with the Ctrl + Alt + Backspace
keyboard shortcut
There is a Ctrl + Alt + Backspace
shortcut you can enable with the following config:
/etc/X11/xorg.conf.d/00-keyboard.conf
Section "ServerFlags"
Option "DontZap" "false"
EndSection
Section "InputClass"
Identifier "Keyboard Defaults"
MatchIsKeyboard "yes"
Option "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection
- https://wiki.archlinux.org/title/Xorg/Keyboard_configuration#Terminating_Xorg_with_Ctrl+Alt+Backspace
- https://superuser.com/a/1686233/130885
- https://unix.stackexchange.com/a/445/52320
View Xorg server logs
Logs are stored in /var/log/Xorg.*
$ ls -la /var/log/
...
-rw-r--r-- 1 root root 79522 May 20 13:38 Xorg.0.log
-rw-r--r-- 1 root root 80829 May 20 13:37 Xorg.0.log.old
-rw-r--r-- 1 root root 54502 May 20 11:43 Xorg.1.log
-rw-r--r-- 1 root root 54574 May 19 10:57 Xorg.1.log.old
To view the most recent logs,
$ less /var/log/Xorg.0.log
# View the logs starting from the bottom
$ less +G /var/log/Xorg.0.log
Here are my logs from 2023-05-20 when it's not working and being laggy (bad mode), https://gist.github.com/MadLittleMods/4ba2d5ab5116c713ab229ddfb93ff30d
Wireshark doesn't list network interfaces
Wireshark doesn't list network interfaces to inspect and filter from
Solution
via https://wiki.archlinux.org/title/Wireshark#Capturing_privileges
# Check what groups you already belong to
$ groups
...
# Add yourself to the wireshark group (https://wiki.archlinux.org/title/Users_and_groups#Group_management)
$ sudo gpasswd -a eric wireshark
# Log out and back in for the changes to take effect
Freeze/lockup while using Chrome where mouse cursor stops working
Sometimes, the whole computer appears to freeze but I think it's actually just my mouse stops working and Chrome freezes up. I can still press Alt + F4
and force close Chrome to get it to respond again along with my mouse working.
Saw someone mention the same symptoms here:
Basically, randomly, the mouse stops responding, but the keyboard still works, or the other way, especially modifiers, sometimes dropping presses, sometimes buffering them.
-- https://www.reddit.com/r/archlinux/comments/10nrgcv/new_amd_system_is_laggy_with_the_cursor_hanging/
I tend to just Alt + F4
-> force close and bring it up again because it's faster than waiting. I have waited once and it did respond again after 3 minutes.
I do get other Chrome Freezes where my cursor and clicking on other programs in the task bar still works but have to close Chrome before it responds again.
(still happening, 2023-08-25)
System Details:
- Manjaro 22.1.2
- Chrome Version 113.0.5672.126
- GPU: AMD Radeon 7900 XTX -> #2
Window snapping and tiling
Setup keyboards shortcuts
Go to Window Manager -> Keyboard -> Tile window to the x (edit these shortcuts)
Note: These aren't the same convenient keyboard shortcuts from Windows where you can just use the arrow keys to tile on a given side and corner with the same arrow keys. Not sure how to adapt these to that.
Setup drag to screen edge to automatically tile
Go to Window Manager Tweaks -> Accessibility -> Automatically tile windows when moving towards the screen edge
Note: This was already on by default to me but I had to open these settings and toggle for it to actually work.
Using the `sysprof` profiler
Using the sysprof
profiler
Sysprof is a sampling profiler that uses a kernel module to generate stacktraces which are then interpreted by the userspace program "sysprof".
Sysprof is a statistical, system-wide profiler for Linux.
- Detailed, accurate, and fast profiling of the entire Linux system, including the kernel and all userspace applications
- No recompiling necessary
- Load and Save> profiles
- Fast, no-nonsense graphical user interface
- Command line tool included
NOTE: The programs and libraries you want to profile should be compiled with
-fno-omit-frame-pointer
and have debugging symbols available, or you won't get much usable information.
Project: https://gitlab.gnome.org/GNOME/sysprof
How to use:
- https://blogs.gnome.org/chergert/2020/03/14/how-to-use-sysprof-to/
- https://blogs.gnome.org/chergert/2020/03/15/how-to-use-sysprof-to-part-ii/
- https://blogs.gnome.org/chergert/2023/07/28/how-to-use-sysprof-again/
- https://blogs.gnome.org/chergert/2023/07/27/sysprof-45/
- https://tecnocode.co.uk/2021/04/19/simple-http-profiling-of-applications-using-sysprof/
- Profiling a Steam application that runs under Proton (which is Valve's wine distribution), https://gitlab.gnome.org/GNOME/sysprof/-/issues/70
Other profilers:
- https://perfetto.dev/
- https://github.com/wolfpld/tracy
- Valgrind/callgrind
Building sysprof
from source (on Manjaro, arch-based)
The latest version of sysprof
as pictured in https://blogs.gnome.org/chergert/2023/07/27/sysprof-45/ isn't released yet so you have to build it from source.
When building everything, it's best to use your own install prefix so you don't muddy your global versions of things (I used ~/dev-builds/
). Andrew Kelley also touches on this point in his How to Build Software From Source talk at Software You Can Love Vancouver 2023. This makes it simple to just define PKG_CONFIG_PATH=~/dev-builds/lib/pkgconfig/
and have the meson
dependency resolving/detection magic work out of the box (it uses pkgconfig
as part of the auto
detection list).
1. Figure out the sub-dependencies
sysprof
and the relevant dependencies below use the meson
build system. This documentation around dependencies might be of some help: https://mesonbuild.com/Dependencies.html
libdex-1
We need [email protected]
which as the time of writing is only at 0.2.0
in the extra
arch package repository. So we need to manually build it.
git clone [email protected]:GNOME/libdex.git
cd libdex
pamac install gi-docgen gobject-introspection vala
(these are fromPKGBUILD
source in the repository)- Run through the normal build steps:
$ meson --prefix=~/dev-builds/ build $ ninja -C build $ ninja -C build install
You probably need to do the same with:
- https://gitlab.gnome.org/GNOME/libadwaita
- https://gitlab.gnome.org/GNOME/libpanel
- https://gitlab.gnome.org/GNOME/gtk
Some prerequisite tool
pamac install itstool
2. Building sysprof
If this build complains about not having new enough versions, go through the "Figure out the sub-dependencies" section above
$ PKG_CONFIG_PATH=~/dev-builds/lib/pkgconfig/ meson --prefix=~/dev-builds/ build
$ ninja -C build
Now you can either run the binary straight from the build directory:
$ build/src/sysprof/sysprof
Or install it:
WARNING:
ninja install
will mostly install under the configured install prefix but installs systemd service configuration directly in the system default location/usr/lib/systemd
so it won't work without root privileges, even if the install prefix is a user-owned directory.
ninja -C build install
Here is a screenshot of the latest sysprof
built from the main
branch on 2023-08-01.
Dev notes
File not found cairo.h
- https://askubuntu.com/questions/706512/cant-access-cairo-h
pacman -F cairo.h
->extra/cairo 1.17.8-2 [installed]
usr/include/cairo/cairo.h
pkg-config --libs --cflags cairo
Trying to manually define dependencies:
dex_lib = 'dex-1'
dex_lib_dir = '/home/eric/Documents/gitlab/libdex/build/src'
dex_header_dir = '/home/eric/Documents/gitlab/libdex/src'
dex_include_dirs = []
dex_include_dirs += include_directories(dex_header_dir)
dex_include_dirs += include_directories(dex_lib_dir)
dex_dep = declare_dependency(
link_args : [
'-L' + dex_lib_dir,
'-l' + dex_lib
],
include_directories : dex_include_dirs
)
CS:GO slow load times on fast PC
CS:GO slow load times on fast PC
See
- ValveSoftware/csgo-osx-linux#2801
- ValveSoftware/csgo-osx-linux#3054
- ValveSoftware/csgo-osx-linux#2427
Canonical Proton issue: ValveSoftware/Proton#2704
Related issues:
Solution
TBD (unknown and haven't looked into this that much yet)
System Details:
- Manjaro 22.1.2
- CPU: AMD 7800X3D
- GPU: AMD Radeon 7900 XTX -> #2
- 64GB of RAM
Halo Infinite won't launch (2023-05-21)
When first building my Linux PC, I was surprised to see that Halo Infinite just worked out of the box on Manjaro. I had plenty of issues with my GPU not giving me performance but when my GPU was chooching, the game played great.
Last successful play through
I last played Halo Infinite successfully on 2023-05-14 which according to https://steamdb.info/app/1240440/patchnotes/, must have meant I had build 10989515
. I had never messed with specifying a Proton version before and I think it just uses proton-experimental
according to https://steamdb.info/app/1240440/ which aligns with what I had installed and probably meant build 11164623
(https://steamdb.info/app/1493710/patchnotes/)
- GPU: ASRock AMD Radeon™ RX 7900 XTX Taichi 24GB
- Driver/LLVM version: Mesa 23.2.0_devel.170864.ebe3b91ca01.dae32bb875358c786b404388bf1ee875-1/15.0.7-2
- Kernel version: Linux 6.1.29-1
- Proton: experimental (steam build ID
11164623
assumed from release date 2023-05-05) - Halo Infinite build:
10989515
assumed from release date 2023-05-10
Current broken details
- GPU: ASRock AMD Radeon™ RX 7900 XTX Taichi 24GB
- Driver/LLVM version: Mesa 23.0.3-1/15.0.7-2
- Kernel version: Linux 6.1.29-1 (also tried Linux 6.3.3-1)
- Proton: 1684333320 experimental-8.0-20230517 (steam build ID
11254524
(2023-05-17))- Also tried Properties -> Compatibility -> Force the use of a specific Steam Play compatible tool with
Proton 8.0
andProton Hotfix
- Also tried Properties -> Compatibility -> Force the use of a specific Steam Play compatible tool with
- Halo Infinite build:
10989515
(2023-05-10)
Reproduction steps:
- Use Manjaro 22.1.2 Linux
- Launch the game from Steam
- Game prepares to launch, syncs but never actually launches any window and goes back to the stopped state in Steam (assumed crash)
- Reported on Halo Waypoint as https://support.halowaypoint.com/hc/en-us/requests/1009849 ("Submit a bug report" on their support page)
Proton crash logs: steam-1240440.log
(see "How to get Proton logs" below)
Lots of these kinds of exceptions show up in the logs:
39976.919:0064:007c:trace:seh:dispatch_exception code=6ba flags=0 addr=000000007B04D713 ip=7b04d713
39976.919:0064:007c:warn:seh:dispatch_exception unknown exception (code=6ba) raised
39976.919:0064:007c:trace:seh:dispatch_exception rax=000000007b04d6b0 rbx=000000000122f4a8 rcx=000000000122f1b0 rdx=0000000000000000
39976.919:0064:007c:trace:seh:dispatch_exception rsi=00000000000000c8 rdi=00000000008f3e40 rbp=000000000122f250 rsp=000000000122f190
39976.919:0064:007c:trace:seh:dispatch_exception r8=0000000000000000 r9=0000000000000000 r10=00000000008f5480 r11=0000000000000014
39976.919:0064:007c:trace:seh:dispatch_exception r12=000000000122f4a8 r13=0000000000f634e0 r14=0000000000f634e0 r15=00000000000000b4
1173.266:0134:0138:warn:seh:dispatch_exception backtrace: --- Exception 0xc0000005.
1173.266:0134:0138:trace:seh:dispatch_exception code=c0000005 flags=0 addr=0000000141178308 ip=141178308
1173.266:0134:0138:trace:seh:dispatch_exception info[0]=0000000000000008
1173.266:0134:0138:trace:seh:dispatch_exception info[1]=0000000141178308
1173.266:0134:0138:warn:seh:dispatch_exception EXCEPTION_ACCESS_VIOLATION exception (code=c0000005) raised
1173.266:0134:0138:trace:seh:dispatch_exception rax=00000001438beb80 rbx=000000007fee0000 rcx=0000000140000000 rdx=0000000000000001
1173.266:0134:0138:trace:seh:dispatch_exception rsi=000000000054aa70 rdi=000000000054ac60 rbp=000000000041f760 rsp=000000000041f698
1173.266:0134:0138:trace:seh:dispatch_exception r8=0000000000000000 r9=0000000000000000 r10=0000000141178308 r11=0000000000000060
1173.266:0134:0138:trace:seh:dispatch_exception r12=0000000000000000 r13=0000000170077cd0 r14=000000000041fb00 r15=0000000170077ba8
53.567:0130:0148:trace:seh:dispatch_exception info[0]=0000000000000000
53.567:0130:014c:warn:seh:dispatch_exception backtrace: --- Exception 0xc0000420.
53.567:0130:0148:warn:seh:dispatch_exception EXCEPTION_BREAKPOINT exception (code=80000003) raised
53.567:0130:0140:trace:seh:sigsys_handler SIGSYS, rax 0xb6, rip 0x1fd4e0d.
53.567:0130:014c:trace:seh:dispatch_exception code=c0000420 flags=0 addr=0000000000E1C216 ip=e1c216
53.567:0130:0148:trace:seh:dispatch_exception rax=3d126baff9fbc89f rbx=55e4621b88025d0e rcx=00000000015ad940 rdx=000000007ffe0000
53.567:0130:0134:warn:seh:dispatch_exception backtrace: --- Exception 0xc0000005.
53.567:0130:014c:err:seh:dispatch_exception unknown exception (code=c0000420) raised
53.961:0130:015c:warn:seh:virtual_unwind backtrace: 000000007B04D713: L"kernelbase.dll" + 000000000004D713.
53.961:0130:015c:trace:unwind:RtlVirtualUnwind type 1 rip 7b04d713 rsp 12bfece0
53.961:0130:015c:trace:unwind:dump_unwind_info **** func 4d6b0-4d748
53.961:0130:015c:trace:unwind:dump_unwind_info unwind info at 000000007B0AD768 flags 0 prolog 0x1a bytes function 000000007B04D6B0-000000007B04D748
53.961:0130:015c:trace:unwind:dump_unwind_info frame register rbp offset 0xc0(%rsp)
53.961:0130:015c:trace:unwind:dump_unwind_info 0x1a: leaq 0xc0(%rsp),rbp
53.961:0130:015c:trace:unwind:dump_unwind_info 0x12: subq $0xc0,%rsp
53.961:0130:015c:trace:unwind:dump_unwind_info 0xb: pushq %rsi
53.961:0130:015c:trace:unwind:dump_unwind_info 0xa: pushq %rdi
53.961:0130:015c:trace:unwind:dump_unwind_info 0x9: pushq %rbp
53.961:0130:015c:warn:seh:virtual_unwind backtrace: 00000002EDF0CB21: L"DXGI.DLL" + 000000000000CB21.
53.961:0130:015c:trace:unwind:RtlVirtualUnwind type 1 rip 2edf0cb21 rsp 12bfedc0
53.961:0130:015c:trace:unwind:dump_unwind_info **** func cad0-cb2b
53.961:0130:015c:trace:unwind:dump_unwind_info unwind info at 00000002EE14A94C flags 0 prolog 0x4 bytes function 00000002EDF0CAD0-00000002EDF0CB2B
53.961:0130:015c:trace:unwind:dump_unwind_info 0x4: subq $0x28,%rsp
53.961:0130:015c:warn:seh:virtual_unwind backtrace: 00000002EE08D2E3: L"DXGI.DLL" + 000000000018D2E3.
53.961:0130:015c:trace:unwind:RtlVirtualUnwind type 1 rip 2ee08d2e3 rsp 12bfedf0
53.961:0130:015c:trace:unwind:dump_unwind_info **** func 18d280-18d2f9
53.961:0130:015c:trace:unwind:dump_unwind_info unwind info at 00000002EE136F04 flags 0 prolog 0x8 bytes function 00000002EE08D280-00000002EE08D2F9
53.961:0130:015c:trace:unwind:dump_unwind_info frame register rbp offset 0x0(%rsp)
53.961:0130:015c:trace:unwind:dump_unwind_info 0x8: subq $0x30,%rsp
53.961:0130:015c:trace:unwind:dump_unwind_info 0x4: leaq 0x0(%rsp),rbp
53.961:0130:015c:trace:unwind:dump_unwind_info 0x1: pushq %rbp
53.961:0130:015c:warn:seh:virtual_unwind backtrace: 00000002EE0A327F: L"DXGI.DLL" + 00000000001A327F.
53.961:0130:015c:trace:unwind:RtlVirtualUnwind type 1 rip 2ee0a327f rsp 12bfee30
53.961:0130:015c:trace:unwind:dump_unwind_info **** func 1a31f0-1a364b
53.961:0130:015c:trace:unwind:dump_unwind_info unwind info at 00000002EE128084 flags 3 prolog 0x0 bytes function 00000002EE0A31F0-00000002EE0A364B
53.961:0130:015c:trace:unwind:dump_unwind_info frame register rbp offset 0x80(%rsp)
53.961:0130:015c:trace:unwind:dump_unwind_info 0x0: leaq 0x80(%rsp),rbp
53.961:0130:015c:trace:unwind:dump_unwind_info 0x0: movq %r15,0x368(%rsp)
53.961:0130:015c:trace:unwind:dump_unwind_info 0x0: movq %r14,0x360(%rsp)
53.961:0130:015c:trace:unwind:dump_unwind_info 0x0: movq %r13,0x358(%rsp)
53.961:0130:015c:trace:unwind:dump_unwind_info 0x0: movq %r12,0x350(%rsp)
53.961:0130:015c:trace:unwind:dump_unwind_info 0x0: movq %rbp,0x370(%rsp)
53.961:0130:015c:trace:unwind:dump_unwind_info 0x0: movq %rdi,0x348(%rsp)
53.961:0130:015c:trace:unwind:dump_unwind_info 0x0: movq %rsi,0x340(%rsp)
53.961:0130:015c:trace:unwind:dump_unwind_info 0x0: movq %rbx,0x338(%rsp)
53.961:0130:015c:trace:unwind:dump_unwind_info 0x0: subq $0x378,%rsp
53.961:0130:015c:trace:unwind:dump_unwind_info handler 00000002EE08D4E0 data at 00000002EE1280B4
53.961:0130:015c:trace:seh:call_handler calling handler 00000002EE08D4E0 (rec=0000000012BFED00, frame=0000000012BFEE30 context=0000000012BFE230, dispatch=0000000012BFE100)
53.961:0130:015c:trace:seh:call_handler handler at 00000002EE08D4E0 returned 1
Reference
- Halo Infinite builds/updates: https://steamdb.info/app/1240440/patchnotes/
- Halo Infinite SteamDB: https://steamdb.info/app/1240440/
- Proton Experimental builds/updates on Steam: https://steamdb.info/app/1493710/patchnotes/
- Proton changelog: https://github.com/ValveSoftware/Proton/wiki/Changelog
- Proton canonical game compatibility issue: ValveSoftware/Proton#5030
How to get Proton logs
Halo Infinite in Steam -> Properties -> General -> Launch options, set PROTON_LOG=1 %command%
A different way:
- Copy
~/.local/share/Steam/steamapps/common/Proton - Experimental/user_settings.sample.py
and save it asuser_settings.py
in the same directory - Edit
~/.local/share/Steam/steamapps/common/Proton - Experimental/user_settings.py
- Set
DXVK_LOG_LEVEL
todebug
- Set
- Now launch the Steam game again
- Logs will show up in
~/steam-<STEAM_GAME_ID>.log
- To find the Steam game ID (app ID):
find ~/.local/share/Steam/steamapps/ -maxdepth 1 -type f -name '*.acf' -exec awk -F '"' '/"appid|name/{ printf $4 "|" } END { print "" }' {} \; | column -t -s '|' | sort -k 2
. For Halo Infinite, it's1240440
- To find the Steam game ID (app ID):
Full disk encryption
How to setup?
I don't know of the best option, I used the option in the installer.
Decrypting takes a long time
Related to how I set it up initially. Seems like a LUKS2 problem or something (idk)
Graceful retry after entering the wrong password
If you use the built-in disk encryption option from the Manjaro/XFCE install, it will only give you once chance to enter your password correctly before dropping you in grub rescue.
Enter passphrase for hd1,gp2 (...):
Attempting to decrypt master key...
Enter passphrase for hd2,gpt2(...long-hex-string...):
error: access denied.
error: no such cryptodisk found.
error: disk 'cryptouuid/...long-hex-string...' not found.
Entering rescue mode...
grub rescue>
To workaround this issue, you can use:
cryptomount -a
to mount all encrypted partitions (hopefully only one)insmod normal
to get of grub rescuenormal
to continue the boot process
Updating the UEFI (BIOS)
When updating the UEFI (BIOS), it warns about suspending BitLocker and any encryption relying on the TPM (Trusted Platform Module, security chip on your motherboard). I was uncertain whether this applied to me with how I had full-disk encryption setup but I was completely fine without doing anything:
This is just a default warning, the BIOS always gives it. Only if you use the TPM to automatically decrypt LUKS on boot this would apply to you, if you have such a setup the TPM will not release the password anymore making it so that you will have to manually enter the password.
So if you are typing a password on boot right now this does not apply to you.
-- @arkane-linux, https://www.reddit.com/r/linux4noobs/comments/17z6ol8/comment/k9z6pqo/
Enable REISUB for safe reboots during freezes/system lockups
Instead of having to hold the power button down to hard reset the system, we can use REISUB to more gently try to let the system reboot a bit more gracefully.
Alt + SysReq + { R | E | I | S | U | B }
R - switch the keyboard mode
This is said to "Switch the keyboard from raw mode, the mode used by programs such as X11 and svgalib, to XLATE mode" (from Wikipedia), but I don't really know if this would normally have any notable effect.
E - gracefully terminate all running programs
This sends the SIGTERM signal to all processes except
init
and thereby asks them to gracefully terminate, giving them a chance to tidy up and free their resources, save data, etc...I - forcibly kill all running programs
This is similar to the E, but sends the SIGKILL signal to all processes except
init
, which kills them immediately and forcibly.S - sync all disks and flush their caches
All your disks normally have a write cache, a piece of RAM where the system caches data it wants to save on the device, to speed the access up. Syncing tells the system to flush these caches now and perform all remaining writes. That way you do not lose any data that has already been cached but not been written yet, and it protects from leaving the file system in an inconsistent state.
U - unmount all disks and remount them read-only
This is again pretty unspectacular, it simply makes all mounted disks read-only to prevent any further (partial) writes.
B - reboot the system
This reboots the system. However, it does not perform a clean shutdown, but instead a hard reset.
The SysReq key is the same as the PrintScreen key.
(via https://en.wikipedia.org/wiki/Magic_SysRq_key)
Resources:
- https://forum.manjaro.org/t/howto-reboot-turn-off-your-frozen-computer-reisub-reisuo/3855
- https://askubuntu.com/questions/926461/whats-the-difference-between-the-magic-reisub-reset-and-holding-down-the-power
- https://wiki.archlinux.org/title/keyboard_shortcuts#Rebooting
- https://en.wikipedia.org/wiki/Magic_SysRq_key
Enable the SysReq key
- Edit
/etc/default/grub
- In
GRUB_CMDLINE_LINUX_DEFAULT="[...]"
, addsysrq_always_enabled=1
sudo update-grub
cat /proc/sys/kernel/sysrq
which will now output16
. To understand this bitmask, TODO. TODO: This also needs to read at least128
to do all of the commands.- After a system restart,
cat /proc/sys/kernel/sysrq
should output1
and you should be able to run all of the REISUB commands now - I usually only have to run
REI
to get things working again.
What are the risks? Why isn't this just enabled by default?
There are some obvious security risks involved in fully enabling the SysRq key. In addition to forcing reboots and the like, it can be used to dump the contents of the CPU registers, which could theoretically reveal sensitive information. Since using it requires physical access to the system (unless you go out of your way), most desktop users will probably consider the level of risk acceptable. That said, make sure you fully understand the implications of enabling it and the dynamics of the larger context in which your system is operating before you turn SysRq all the way on.
-- https://wiki.archlinux.org/title/keyboard_shortcuts#Enabling*
Google Drive sync
Setup
Configure
First setup the rclone
config and add your Google Drive account as a remote. The docs are easy to follow but I also included the output from when I set things up below.
rclone config
setup
$ rclone config
2023/05/08 13:26:18 NOTICE: Config file "/home/eric/.config/rclone/rclone.conf" not found - using defaults
No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
Enter name for new remote.
name> google-drive-remote
Option Storage.
Type of storage to configure.
Choose a number from below, or type in your own value.
[...]
18 / Google Drive
\ (drive)
[...]
Storage> 18
Option client_id.
Google Application Client Id
Setting your own is recommended.
See https://rclone.org/drive/#making-your-own-client-id for how to create your own.
If you leave this blank, it will use an internal key which is low performance.
Enter a value. Press Enter to leave empty.
client_id> xxx
Option client_secret.
OAuth Client Secret.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_secret> xxx
Option scope.
Scope that rclone should use when requesting access from drive.
Choose a number from below, or type in your own value.
Press Enter to leave empty.
1 / Full access all files, excluding Application Data Folder.
\ (drive)
2 / Read-only access to file metadata and file contents.
\ (drive.readonly)
/ Access to files created by rclone only.
3 | These are visible in the drive website.
| File authorization is revoked when the user deauthorizes the app.
\ (drive.file)
/ Allows read and write access to the Application Data folder.
4 | This is not visible in the drive website.
\ (drive.appfolder)
/ Allows read-only access to file metadata but
5 | does not allow any access to read or download file content.
\ (drive.metadata.readonly)
scope> 1
Option service_account_file.
Service Account Credentials JSON file path.
Leave blank normally.
Needed only if you want use SA instead of interactive login.
Leading `~` will be expanded in the file name as will environment variables such as `${RCLONE_CONFIG_DIR}`.
Enter a value. Press Enter to leave empty.
service_account_file>
Edit advanced config?
y) Yes
n) No (default)
y/n> n
Use web browser to automatically authenticate rclone with remote?
* Say Y if the machine running rclone has a web browser you can use
* Say N if running rclone on a (remote) machine without web browser access
If not sure try Y. If Y failed, try N.
y) Yes (default)
n) No
y/n> y
2023/05/08 13:33:30 NOTICE: Make sure your Redirect URL is set to "http://127.0.0.1:53682/" in your custom config.
2023/05/08 13:33:30 NOTICE: If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=xxx
2023/05/08 13:33:30 NOTICE: Log in and authorize rclone for access
2023/05/08 13:33:30 NOTICE: Waiting for code...
2023/05/08 13:35:14 NOTICE: Got code
Configure this as a Shared Drive (Team Drive)?
y) Yes
n) No (default)
y/n> n
Configuration complete.
Options:
- type: drive
- client_id: xxx
- client_secret: xxx
- scope: drive
- token: {"access_token":"xxx","token_type":"Bearer","refresh_token":"xxx","expiry":"2023-05-08T14:35:13.748643158-05:00"}
- team_drive:
Keep this "google-drive-remote" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y
Current remotes:
Name Type
==== ====
google-drive-remote drive
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q
Setup bisync
Then setup rclone bisync
between your Google drive remote and a local folder and do an initial sync with the --resync
flag to get things started.
A word of warning from the docs:
rclone bisync remote1:path1 remote2:path2 --resync
Warning: Path1 files may overwrite Path2 versions.
Consider using--verbose
or--dry-run
first.
This will effectively make both Path1 and Path2 filesystems contain a matching superset of all files. Path2 files that do not exist in Path1 will be copied to Path1, and the process will then sync the Path1 tree to Path2.
In terms of how to refer to your remote, this notice explained it pretty well:
NOTICE: "google-drive-remote" refers to a local folder, use "google-drive-remote:" to refer to your remote or "./google-drive-remote" to hide this warning
With all that being said, we can use the following command:
$ rclone bisync google-drive-remote: ~/google-drive/ --resync --drive-acknowledge-abuse
# Wait for it to finish...
2023/05/08 14:24:54 INFO : Bisync successful
2023/05/08 14:24:54 INFO :
Transferred: 31.500 KiB / 31.500 KiB, 100%, 117 B/s, ETA 0s
Checks: 6411 / 6411, 100%
Transferred: 1 / 1, 100%
Elapsed time: 6m39.8s
# If it fails, ----------------------------------------------------------------------------------------
# we can double-check what it will do on resync with a dry-run and then do a `--resync` again
$ rclone bisync google-drive-remote: ~/google-drive/ --resync --drive-acknowledge-abuse --dry-run --verbose
# Inspect the output to make sure it's doing sane things
$ rclone bisync google-drive-remote: ~/google-drive/ --resync --drive-acknowledge-abuse
# Wait for it to finish...
Automatically run the sync periodically/regularly
Then we need to setup a scheduled task to run the sync periodically. We're going to be using a systemd
timer instead of a cron for a variety of benefits.
-
First create the service and timer unit files:
/etc/systemd/system/eric-rclone-bisync.service
[Unit] Description=Run rclone bisync to sync Eric's Google Drive [Service] User=eric Group=eric ExecStart=rclone bisync google-drive-remote: ~/google-drive/ --drive-acknowledge-abuse
/etc/systemd/system/eric-rclone-bisync.timer
[Unit] Description=rclone bisync service timer [Timer] OnBootSec=0min # Run every 6 hours OnCalendar=*-*-* */6:00:00 Unit=eric-rclone-bisync.service [Install] WantedBy=multi-user.target
-
Run
sudo systemctl daemon-reload
to makesystemd
aware of the new files (this makessystemd
reload all files and re-consider their dependencies) -
Enable the timer unit so the timer is enabled at boot every time:
sudo systemctl enable eric-rclone-bisync.timer
-
To start the the timer unit immediately (without booting):
sudo systemctl start eric-rclone-bisync.timer
-
To see the status of the timer and service:
sudo systemctl status eric-rclone-bisync.timer eric-rclone-bisync.service
Other references:
Problems
Unable to bisync Google Docs
When trying to sync after --resync
, a bunch of Ignoring incorrect line
for every file that then turns into Path2 file not found in Path1
later.
Lock screen keyboard shortcut
Lock screen keyboard shortcut
Settings Manager -> Keyboard -> Application shortcuts -> xflock4
via https://unix.stackexchange.com/questions/105718/how-to-lock-my-session-in-xfce
Timeshift backup
Just search for the Timeshift app that comes with Manjaro.
RSYNC snapshots
Snapshots are created by creating copies of the system files using rsync, and hard-linking unchanged files from the previous snapshot
All files are copied when the first snapshot is created. Subsequent snapshots are incremental. Unchanged files will be hard-linked from the previous snapshot if available.
Screenshot tool
Expected
Something as good as ShareX (GitHub repo) that I used on Windows
Potential solutions
Screenshot tool
-
Built-in:
xfce4-screenshooter
(just search forScreenshot
in the apps) -
pamac install flameshot
- No gif capture
- Works fine for basic screenshotting
-
pamac install peek
✔️- This works pretty well for gifs
- Only problem is that it's deprecated (as of 2023-01-14)
-
pamac install kooha
❌- I couldn't get this one to work and seems like they don't support non-GNOME desktop environments.
Error output
Failed to start recording Caused by: 0: Check out <a href="https://github.com/SeaDve/Kooha#-it-doesnt-work">It Doesn't Work page</a> for help. 1: Failed to create ScreencastSession 2: Failed to create session 3: Interaction was ended in some other way with response Variant { ptr: 0x5629a1b918d0, type: VariantTy { inner: "a{sv}" }, value: "@a{sv} {}" }
Error as of 2024-02-09:
Failed to start recording Caused by: 0: Check out <a href="https://github.com/SeaDve/Kooha#-it-doesnt-work">It Doesn't Work page</a> for help. 1: Failed to create ScreencastSession 2: Failed to create session 3: Failed to call `CreateSession` with parameters: Variant { ptr: 0x5618d5dee260, type: VariantTy { inner: "(a{sv})" }, value: "({'session_handle_token': <'kooha_0'>, 'handle_token': <'kooha_1'>},)" } 4: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such interface “org.freedesktop.portal.ScreenCast” on object at path /org/freedesktop/portal/desktop
-
TODO: Find something better
Automatic time sync (NTP)
Separate Chrome profiles in the task bar
Actual
Currently, all of the Chrome windows across different profiles just stack up under the same tile in the task bar (window buttons).
Expected
Each profile should have it's windows grouped under their own tile in the task bar (window buttons).
(image via this Reddit post)
Solutions
TBD
System details
- Manjaro 22.1.2 with XFCE
- Chrome Version 113.0.5672.126
Messed up garbled text on Chrome "New Tab" text
Actual
Messed up garbled text on Chrome "New Tab" text
Another example:
Solution
TBD
System Details:
- Manjaro 22.1.2
- Chrome Version 113.0.5672.126
- GPU: AMD Radeon 7900 XTX -> #2
Installing `timg` from source
timg
is a terminal image and video viewer that supports Kitty, iTerm2, or sixel graphics protocols
Usage:
# Auto-detect and display image
$ timg test.png
# Use Kitty graphics pixelation
$ timg -pk test.png
Installation
See https://github.com/hzeller/timg?tab=readme-ov-file#get-repo-and-compile-timg
# Get repo
git clone https://github.com/hzeller/timg.git
# Enter the checked out repository directory.
cd timg
# Generate a dedicated build directory.
mkdir build
cd build
# cmake with your desired options (a bunch of sane options are already on by default),
# see descriptions above (example: `cmake ../ -DWITH_OPENSLIDE_SUPPORT=On`).
#
# You can specify your install prefix via `-DCMAKE_INSTALL_PREFIX`
cmake -DCMAKE_INSTALL_PREFIX=/home/eric/ ../
# This will produce a binary in `build/src/timg`
make
# Install on your system
# (will use the `-DCMAKE_INSTALL_PREFIX=/home/eric/` you specified in the `cmake` step)
make install
Terminal emulator alternative
Currently using xfce4-terminal
which came with my Manjaro/XFCE install but it's lacking features. Basically, I'm just used to some niceties from iTerm2 on macOS.
Lacking features:
Ctrl + Shift + f
find dialog does not show number of occurrences and highlight the position in the scrollbar- Features tracked in the
xfce4-terminal
repo by https://gitlab.xfce.org/apps/xfce4-terminal/-/issues/241 and https://gitlab.xfce.org/apps/xfce4-terminal/-/issues/242 - Bonus points for being able to search only in the output of the previous command
- Features tracked in the
- Be able to jump up and down to previous commands/prompts
- With iTerm2, I could do this with
Cmd + Shift + arrow up/down
after installing the shell integration (https://stackoverflow.com/a/56420163/796832). Basically what it does it add a special mark to your shell prompt and you can jump from mark to mark.
- With iTerm2, I could do this with
- Persistently highlight matching text in the terminal
- In iTerm2, I could achieve this with a trigger to highlight text, https://stackoverflow.com/a/41468739/796832
- Captured output
- "When you build a big project, you used to have to pore over its output to find warnings and errors. No more! With the captured output feature, iTerm2 finds those messages (based on regular expressions you define) and shows them in the toolbelt.", https://iterm2.com/documentation-captured-output.html
- I didn't even know this was a feature in iTerm2 but is exactly what I've been wanting forever and basically what I was jankily trying to achieve with the persistent highlights
Some stuff from https://www.warp.dev/ also looks cool but haven't tried it.
Potential solutions
Some recommendations: https://askubuntu.com/a/1079589/196148
Interesting options:
- https://github.com/Eugeny/tabby
- https://github.com/wez/wezterm (works pretty well)
- https://github.com/KDE/konsole (seems decent)
- https://github.com/gnunn1/tilix (seems decent)
- Make sure to go to Preferences -> Appearance -> Use tabs instead of sidebar
Possible options:
- https://github.com/gnome-terminator/terminator (seemed ok but weird looking out of the box)
Not viable:
- https://github.com/alacritty/alacritty (no tabs)
- https://github.com/kovidgoyal/kitty (maybe, but couldn't figure out how to search out of the box and dropped it quick)
Solution
TBD
TODO: Install Oh My Zsh -> #35
Add network Firewall
With Manjaro (with XFCE), it comes with the ufw
(Uncomplicated FireWall) firewall package but it's disabled by default, https://wiki.manjaro.org/index.php/Firewalls
You can enable by going into the Firewall configuration GUI app or using the following commands to enable the service:
$ sudo systemctl enable ufw.service
$ sudo ufw enable
To see the status:
$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip
This indicates that it will block all incoming traffic and allow all outgoing traffic. This is a good starting point for most desktop systems.
Thunar file manager does not always update on file changes
The default file manager that comes with Manjaro 22.1.2 with XFCE is Thunar.
It doesn't always update when new directories/files are added while you're staring at it. Requires a manual View -> Reload (Ctrl + R
) to show the up to date state of things.
Noticed while playing around with npm
and installing things for a Node.js project staring at the node_modules/
directory.
Solution
TBD
Possibility: Maybe switch to another file manager
Steam fails to launch
Steam fails to launch and just runs through the update step then disappears. Here is the output from running it in the terminal,
$ /usr/bin/steam-runtime
steam.sh[343752]: Running Steam on manjarolinux 23.0.0 64-bit
steam.sh[343752]: STEAM_RUNTIME is enabled automatically
setup.sh[343826]: Steam runtime environment up-to-date!
steam.sh[343752]: Steam client's requirements are satisfied
[2023-06-16 23:06:36] Startup - updater built Jun 16 2023 01:41:16
[2023-06-16 23:06:36] Startup - Steam Client launched with: '/home/eric/.local/share/Steam/ubuntu12_32/steam'
06/16 23:06:36 Init: Installing breakpad exception handler for appid(steam)/version(1686880776)/tid(343883)
Looks like steam didn't shutdown cleanly, scheduling immediate update check
[2023-06-16 23:06:36] Loading cached metrics from disk (/home/eric/.local/share/Steam/package/steam_client_metrics.bin)
[2023-06-16 23:06:36] Using the following download hosts for Public, Realm steamglobal
[2023-06-16 23:06:36] 1. https://client-update.akamai.steamstatic.com, /, Realm 'steamglobal', weight was 1000, source = 'update_hosts_cached.vdf'
[2023-06-16 23:06:36] 2. https://cdn.cloudflare.steamstatic.com, /client/, Realm 'steamglobal', weight was 1, source = 'update_hosts_cached.vdf'
[2023-06-16 23:06:36] 3. http://media.steampowered.com, /client/, Realm 'steamglobal', weight was 1, source = 'baked in'
[2023-06-16 23:06:36] Checking for update on startup
[2023-06-16 23:06:36] Checking for available updates...
[2023-06-16 23:06:36] Downloading manifest: https://client-update.akamai.steamstatic.com/steam_client_ubuntu12
[2023-06-16 23:06:36] Manifest download: send request
[2023-06-16 23:06:37] Manifest download: waiting for download to finish
[2023-06-16 23:06:37] Manifest download: finished
[2023-06-16 23:06:37] Download skipped: /steam_client_ubuntu12 version 1686880776, installed version 1686880776, existing pending version 0
[2023-06-16 23:06:37] Nothing to do
[2023-06-16 23:06:37] Verifying installation...
[2023-06-16 23:06:37] Performing checksum verification of executable files
[2023-06-16 23:06:37] Verification complete
(process:343883): GLib-GObject-CRITICAL **: 23:06:37.784: g_object_ref: assertion 'G_IS_OBJECT (object)' failed
(process:343883): GLib-GObject-CRITICAL **: 23:06:37.784: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
XRRGetOutputInfo Workaround: initialized with override: 0 real: 0xec408db0
XRRGetCrtcInfo Workaround: initialized with override: 0 real: 0xec407500
GetWin32Stats: display was not open yet, good
Loaded SDL version 3.0.0-1735-g2e465ae31
(steam:343883): Gtk-WARNING **: 23:07:03.180: Unable to locate theme engine in module_path: "adwaita",
/home/eric/.themes/Fluent-custom-Light/gtk-2.0/main.rc:790: error: unexpected identifier 'direction', expected character '}'
(steam:343883): Gtk-WARNING **: 23:07:03.180: Unable to locate theme engine in module_path: "adwaita",
/home/eric/.themes/Fluent-custom-Light/gtk-2.0/hacks.rc:28: error: invalid string constant "normal_entry", expected valid string constant
GetWin32Stats: display was not open yet, good
ComputeStartupMode: found registry default startup mode: 0
Switching to desktopui, since -vgui was not specified
steamwebhelper.sh[344012]: Runtime for steamwebhelper: defaulting to /home/eric/.local/share/Steam/ubuntu12_64/steam-runtime-heavy
steamwebhelper.sh[344012]: glibc >= 2.34, partially disabling sandbox until CEF supports clone3()
CAppInfoCacheReadFromDiskThread took 19 milliseconds to initialize
src/steamUI/steamuisharedjscontroller.cpp (529) : Failed creating offscreen shared JS context
src/steamUI/steamuisharedjscontroller.cpp (529) : Failed creating offscreen shared JS context
src/steamUI/steamuisharedjscontroller.cpp (529) : Fatal assert; application exiting
src/steamUI/steamuisharedjscontroller.cpp (529) : Fatal assert; application exiting
06/16 23:07:25 Init: Installing breakpad exception handler for appid(steam)/version(1686880776)/tid(343883)
assert_20230616230725_29.dmp[344383]: Uploading dump (out-of-process)
/tmp/dumps/assert_20230616230725_29.dmp
_ExitOnFatalAssert
[eric@eric-desktop-pc ~]$ assert_20230616230725_29.dmp[344383]: Finished uploading minidump (out-of-process): success = yes
assert_20230616230725_29.dmp[344383]: response: CrashID=bp-d7ccb3a7-89c5-4bf2-bc13-211e52230616
assert_20230616230725_29.dmp[344383]: file ''/tmp/dumps/assert_20230616230725_29.dmp'', upload yes: ''CrashID=bp-d7ccb3a7-89c5-4bf2-bc13-211e52230616''
Related links:
- https://www.reddit.com/r/ManjaroLinux/comments/149zkr7/steam_refuses_to_start_since_newest_update/
- ValveSoftware/steam-for-linux#9321
Workaround
This worked for a while but then stopped working after Steam queued up an update (asking to restart Steam) and then I spawned outside of the map in Halo Infinite, quit the lobby and my whole screen went black and I was back at the Manjaro login screen. Signing in again and all of my applications were gone (not sure what to call this failure mode).
/usr/bin/steam-runtime -vgui
Show CPU core usage (monitor)
Manjaro with XFCE desktop environment
CPU Usage
Potential options:
With the KDE Plasma desktop environment, the desktop widgets look pretty good: (picture from https://gitlab.freedesktop.org/drm/amd/-/issues/2557)
Conky
Show CPU core usage (monitor)
pamac install conky
- Copy the default config to start your own custom config:
mkdir -p ~/.config/conky && conky --print-config > ~/.config/conky/conky.conf
- Other reference configs: https://github.com/brndnmtthws/conky/wiki/Configs
~/.config/conky/conky.conf
for AMD Ryzen 7 7800X3D
-- Conky, a system monitor https://github.com/brndnmtthws/conky
--
-- This configuration file is Lua code. You can write code in here, and it will
-- execute when Conky loads. You can use it to generate your own advanced
-- configurations.
--
-- Try this (remove the `--`):
--
-- print("Loading Conky config")
--
-- For more on Lua, see:
-- https://www.lua.org/pil/contents.html
conky.config = {
alignment = 'top_left',
background = false,
border_width = 1,
cpu_avg_samples = 2,
default_color = 'white',
default_outline_color = 'white',
default_shade_color = 'white',
double_buffer = true,
draw_borders = false,
draw_graph_borders = true,
draw_outline = false,
draw_shades = false,
extra_newline = false,
font = 'DejaVu Sans Mono:size=12',
gap_x = 60,
gap_y = 60,
minimum_height = 5,
minimum_width = 5,
net_avg_samples = 2,
no_buffers = true,
out_to_console = false,
out_to_ncurses = false,
out_to_stderr = false,
out_to_x = true,
own_window = true,
own_window_class = 'Conky',
own_window_type = 'normal',
show_graph_range = false,
show_graph_scale = false,
stippled_borders = 0,
update_interval = 1.0,
uppercase = false,
use_spacer = 'none',
use_xft = true,
}
conky.text = [[
${color grey}Info:$color ${scroll 32 Conky $conky_version - $sysname $nodename $kernel $machine}
$hr
${color grey}Uptime:$color $uptime
${color grey}Frequency (in MHz):$color $freq
${color grey}Frequency (in GHz):$color $freq_g
${color grey}RAM Usage:$color $mem/$memmax - $memperc% ${membar 4}
${color grey}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar 4}
${color grey}CPU Usage:$color $cpu% ${cpubar 4}
${color2}${voffset 5}AMD® Ryzen 7 7800X3D 4.2 GHz: ${color1}@ ${color green}${freq} MHz
${color}${goto 13}CPU 1 ${goto 81}${color green}${cpu cpu1}% ${goto 131}${color3}${cpubar cpu1 18}
${color}${goto 13}CPU 2 ${goto 81}${color green}${cpu cpu2}% ${goto 131}${color3}${cpubar cpu2 18}
${color}${goto 13}CPU 3 ${goto 81}${color green}${cpu cpu3}% ${goto 131}${color3}${cpubar cpu3 18}
${color}${goto 13}CPU 4 ${goto 81}${color green}${cpu cpu4}% ${goto 131}${color3}${cpubar cpu4 18}
${color}${goto 13}CPU 5 ${goto 81}${color green}${cpu cpu5}% ${goto 131}${color3}${cpubar cpu5 18}
${color}${goto 13}CPU 6 ${goto 81}${color green}${cpu cpu6}% ${goto 131}${color3}${cpubar cpu6 18}
${color}${goto 13}CPU 7 ${goto 81}${color green}${cpu cpu7}% ${goto 131}${color3}${cpubar cpu7 18}
${color}${goto 13}CPU 8 ${goto 81}${color green}${cpu cpu8}% ${goto 131}${color3}${cpubar cpu8 18}
${color}${goto 13}CPU 9 ${goto 81}${color green}${cpu cpu9}% ${goto 131}${color3}${cpubar cpu9 18}
${color}${goto 13}CPU 10 ${goto 81}${color green}${cpu cpu10}% ${goto 131}${color3}${cpubar cpu10 18}
${color}${goto 13}CPU 11 ${goto 81}${color green}${cpu cpu11}% ${goto 131}${color3}${cpubar cpu11 18}
${color}${goto 13}CPU 12 ${goto 81}${color green}${cpu cpu12}% ${goto 131}${color3}${cpubar cpu12 18}
${color}${goto 13}CPU 13 ${goto 81}${color green}${cpu cpu13}% ${goto 131}${color3}${cpubar cpu13 18}
${color}${goto 13}CPU 14 ${goto 81}${color green}${cpu cpu14}% ${goto 131}${color3}${cpubar cpu14 18}
${color}${goto 13}CPU 15 ${goto 81}${color green}${cpu cpu15}% ${goto 131}${color3}${cpubar cpu15 18}
${color}${goto 13}CPU 16 ${goto 81}${color green}${cpu cpu16}% ${goto 131}${color3}${cpubar cpu16 18}
${color1}All CPU ${color green}${cpu}% ${goto 131}${color1}Temp: ${color green}${hwmon 2 temp 1}°C ${goto 250}${color1}Up: ${color green}$uptime
${color grey}$hr
${color green}$running_processes ${color1}running of ${color green}$processes ${color1}loaded processes.
${color grey}Processes:$color $processes ${color grey}Running:$color $running_processes
$hr
${color grey}File systems:
/ $color${fs_used /}/${fs_size /} ${fs_bar 6 /}
${color grey}Networking:
Up:$color ${upspeed} ${color grey} - Down:$color ${downspeed}
$hr
${color grey}Name PID CPU% MEM%
${color lightgrey} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
${color lightgrey} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4}
]]
Showing GPU usage
TBD. Need to figure out the command to extract this info from and put in the conky template
See https://wiki.archlinux.org/title/AMDGPU#Monitoring. You could use amdgpu_top
or nvtop
which despite the name, does work with AMD cards.
Other references:
- https://askubuntu.com/questions/164064/is-there-an-application-indicator-for-cpu-usage-by-core/846327#846327
- https://askubuntu.com/a/1014284/196148
- https://forum.level1techs.com/t/how-i-got-conky-to-show-my-amdgpu-temps-and-amd-cpu-temps/138753
- https://forum.level1techs.com/t/how-to-configure-customize-glances-conky-and-determine-which-sensor-is-what/153813
Disable lockout after failing to enter your password correctly
Disable lockout after failing to enter your password correctly
via https://wiki.archlinux.org/title/security#Lock_out_user_after_three_failed_login_attempts
- Edit
/etc/security/faillock.conf
- Uncomment the
deny
and update todeny = 0
deny = 0
will disable the lockout mechanism entirely.
Reset faillock after it's tripped
If you just want to reset the timer, you can use faillock --user eric --reset
.
What's the point of this mechanism if you can just reset it though?
via https://joshtronic.com/2021/05/23/unlock-user-after-too-many-failed-sudo-attempts/
Steam zoomed in too much (display scaling)
Steam zoomed in too much.
Tracked by ValveSoftware/steam-for-linux#9708
My Steam looks exactly the same as the screenshots in that issue. I'm unable to get to Settings -> Interface -> Scale text and icons to match monitor settings (requires restart) to fix the problem directly. Even when using the workaround and toggling it on and off to try to get it save the preference doesn't seem to persist so have to use the workaround.
Workaround
(via ValveSoftware/steam-for-linux#9708 (comment))
steam -forcedesktopscaling 1
Mouse settings - sensitivity, acceleration
XFCE/Manjaro mouse settings - sensitivity, acceleration
Built-in mouse settings -> Launch the Mouse and Touchpad app. You can also get to it via LANG=C xfce4-mouse-settings
See https://wiki.archlinux.org/title/Mouse_buttons#User_tools
- Piper (piper) is a graphical user interface to configure gaming mice, works with Wayland. In order to work with your mouse, it must be in the list of supported devices.
- lomoco (AUR) for Logitech MX mice will help you set the proper resolution, enable or disable smart scroll (with boot time support too!), etc. Be sure to look at /etc/udev/lomoco_mouse.conf and set up the the options you want to be automatically applied when the mouse gets loaded by udev.
- Note: The lomoco package may be out of date. There is a hack for newer Logitech mice: [1]
- logiops (AUR) is a tool for configuring Logitech mouses (Logitech Options for Linux). It may remap buttons to actions, support gestures, smart shift and so on.
Start piper
on startup
TODO
Lock AUR dependencies
Anyone can submit a package to the Arch User Repository (AUR) which means there is potential for malicious packages. Since Arch is a rolling release, when using pamac
/pacman
, everything updates to the latest version any time you install/remove something. It would be nice to lock some of those AUR dependencies down so they have less of a chance to change under my feet.
Find AUR packages
$ pacman --query --foreign
Find orphaned packages
https://wiki.manjaro.org/index.php/Pamac#Dealing_with_Orphaned_Packages
$ pamac list -o
Solution: Lock AUR dependencies
/etc/pacman.conf
# eric: Lock AUR packages so they don't update under our feet with something malicious
IgnorePkg = bfg
Dev notes
Click on window buttons in task bar to cycle through windows
Expected
A really nice feature of 7+ Taskbar Tweaker that I was using on Windows 10, was the option to cycle through the windows grouped/combined under the tasbar item (window button in XFCE) just by left-clicking on the item itself.
Actual
Currently when left-clicking on a window button with the Group windows by application
panel preference enabled, it just brings up the list of open windows and you have to select something in the list before it brings the window to focous.
Solution
TBD
There are some cycling options in Window Manager Tweaks -> Cycling but none of them address my use case and are pretty much focused on the Alt + Tab
functionality.
And looking at the Window Buttons preferences by Right-clicking on the task bar -> Panel -> Panel Preferences -> Items -> Select the Window Buttons -> Click the 4-line hamburger menu icon at the bottom to edit the item; we don't see anything that would address this: (Window Buttons preferences screenshot)
System Details:
- Manjaro 22.1.2 with XFCE
- Chrome Version 113.0.5672.126
Keywords:
- switch windows by left-clicking on window button
Unable to update system because `mesa-git`/`lib32-mesa-git` are `unable to satisfy dependency` (`llvm`, `llvm-libs`, `clang`)
Whenever I try to update (pamac update
) or install (pamac install foo
) a package, I run into unable to satisfy dependency
errors which prevent me from making any changes. Even trying to go back the stable versions of mesa
/lib32-mesa
which don't depend on these new versions gives the same errors.
The problem is that Manjaro is a rolling release that rolls things out slowly (unstable
-> testing
-> stable
branches) to gain some stability; while the main Arch repositories have the llvm=17.0.6
, Manjaro doesn't have it yet (llvm=16.0.6-1
), and some packages from the AUR are using the latest version in the Arch repositories (hence the mismatch we get now).
Problem output whenever I update ❌:
$ pamac update
Preparing...
Synchronizing package databases...
Refreshing extra.db...
Refreshing sublime-text.db...
Refreshing AUR...
Cloning mesa-git build files...
Generating mesa-git information...
Checking mesa-git dependencies...
Cloning lib32-mesa-git build files...
Generating lib32-mesa-git information...
Checking lib32-mesa-git dependencies...
Checking llvm-libs-git dependencies...
Checking llvm-libs-rocm-git dependencies...
Checking llvm-mingw-w64-toolchain-msvcrt-bin dependencies...
Checking llvm-mingw-w64-toolchain-ucrt-bin dependencies...
Checking llvm-ocaml-rocm-git dependencies...
Checking llvm-ocaml-git dependencies...
Checking ldc-xtensa-git dependencies...
Checking dg-git dependencies...
Checking llvm-rocm-git dependencies...
Checking llvm-git dependencies...
Checking llvm-minimal-git dependencies...
Checking clang-opencl-headers-minimal-git dependencies...
Checking clang-build-analyzer-git dependencies...
Checking clang-format-static-bin dependencies...
Checking clangd-opt-git dependencies...
Checking clang-libs-minimal-git dependencies...
Checking clang-format-linter-git dependencies...
Checking clang-minimal-git dependencies...
Checking lib32-llvm-libs-minimal-git dependencies...
Checking lib32-llvm-libs-git dependencies...
Checking lib32-llvm-git dependencies...
Checking lib32-llvm-minimal-git dependencies...
Checking python2 dependencies...
Checking llvm-libs-minimal-git dependencies...
Resolving dependencies...
[...]
Warning: cannot resolve "lib32-llvm-libs=17.0.6", a dependency of "lib32-mesa-git"
Warning: cannot resolve "lib32-llvm=17.0.6", a dependency of "lib32-mesa-git"
[...]
Warning: cannot resolve "llvm-libs=17.0.6", a dependency of "mesa-git"
Warning: cannot resolve "llvm=17.0.6", a dependency of "mesa-git"
Warning: cannot resolve "clang=17.0.6", a dependency of "mesa-git"
Error: Failed to prepare transaction:
could not satisfy dependencies:
- unable to satisfy dependency 'llvm-libs=17.0.6' required by mesa-git
- unable to satisfy dependency 'llvm=17.0.6' required by mesa-git
- unable to satisfy dependency 'clang=17.0.6' required by mesa-git
- unable to satisfy dependency 'lib32-llvm-libs=17.0.6' required by lib32-mesa-git
- unable to satisfy dependency 'lib32-llvm=17.0.6' required by lib32-mesa-git
Edit build files : [e]
Apply transaction ? [e/y/N] y
Transaction cancelled.
For a while now, I've just been waiting for the next Manjaro stable update (since 2024-03-13) for the llvm
, llvm-libs
, clang
dependencies to be updated but they haven't cut a stable release in almost 2 months now. The normal Arch repos have version 17.0.6
of everything needed but Manjaro lags behind to add some stability to things. Not having updates for a few weeks has been workable but I really needed a package to upgrade postgres and had a need to actually resolve this (see Resolve section below).
Resolve by going back to stable versions of mesa
I was able to get back to the stable versions of mesa
by using pacman
directly instead of Manjaro's pamac
sudo pacman --sync lib32-mesa
, sudo pacman --sync mesa
✅
$ sudo pacman --sync lib32-mesa
[...]
$ sudo pacman --sync mesa
resolving dependencies...
Looking for conflicting packages...
:: mesa and mesa-git are in conflict (mesa-libgl). Remove mesa-git? [y/N] y
Packages (2) mesa-git-24.1.0_devel.185004.c1418dcb3d6.d41d8cd-1 [removal] mesa-1:24.0.2-1
Total Download Size: 18.68 MiB
Total Installed Size: 96.18 MiB
Net Upgrade Size: -80.22 MiB
Proceed with installation? [Y/n]
:: Retrieving packages...
mesa-1:24.0.2-1-x86_64
(1/1) checking keys in keyring
(1/1) checking package integrity
(1/1) loading package files
(1/1) checking for file conflicts
(2/2) checking available disk space
:: Processing package changes...
(1/1) removing mesa-git
(1/1) installing mesa
Optional dependencies for mesa
opengl-man-pages: for the OpenGL API man pages
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...
Unfortunately, the latest stable versions of mesa
still don't work for me (see #32 (comment)) and now I have to figure out how to get back to mesa-git
with the llvm=17.0.6
dependency.
Overall, it does suck that Manjaro/Arch doesn't have a llvm17
package yet (like they have with llvm15
for example) that can be used alongside the the latest/rolling main packages. And in general, not being able to install side-by-side versions of the same thing and have dependencies worry about what they need. Perhaps NixOS is in my future.
Notes
This type of situation isn't rare though. It happens every time LLVM updates, ex:
LLVM 16 update may break 3rd party MESA drivers
Mesa drivers are affected when there is no matching LLVM version they are complied on. If you use a 3rd party repo like mesanonfree you may want to install llvm15-libs 24 until those get recompiled. See for releases: https://github.com/mesa-freeworld/mesa-nonfree/releases 28
-- https://forum.manjaro.org/t/stable-update-2023-09-10-kernels-systemd-firefox-thunderbird-llvm/147713
Other references:
Manjaro XFCE and window manager themes
Manjaro XFCE and window manager themes
Related issues:
Window manager theme
Search for the Window Manager program -> Style and Icons
Window theme
Search for Appearance to adjust things like the window title bar with the minimiz/maximize, exit controls
App chrome border is thick on Google Chrome
Expected
I expect the border around the Google Chrome window to be a nice 1px thickness all the way around and the minimize/maximize close to be integrated with the tabs. Here is how it looks on Windows 10 for reference (expected):
Actual
but it seems to be at least a 4px chonky border for google-chrome
with XFCE on Manjaro. Surprisingly, the guest mode, has a 1px border but it also seems to be more using the default XFCE app chrome (GTK).
Normal account with thick border (unxpected ❌) | Guest mode with normal 1px border and integrated chrome controls (pretty expected ✅) |
---|---|
![]() |
![]() |
Potential solution
For a built-in mostly solution:
- In Google Chrome -> Settings -> Appearance -> Use GTK
- Adjust the window and window manager theme to
Matcha-light-azul
and change the icons toPapirus-Light-maia
(also under Appearance)
- Result is half-decent but I think it would benefit from a darker border around the window because it blends in on white backgrounds
But for something a little better, the Fluent round gtk theme (GitHub) seems like a slight better option.
I'm using a custom tweaked version from the GitHub source (./install.sh --dest ~/.themes/ --name Fluent-custom --color light --size standard --icon manjaro --libadwaita --tweaks solid square
)
Surveying the landscape looking for options/solutions
Maybe Use system title bar and borders
can save us? No
The Use system title bar and borders
setting in Chrome makes the borders border slightly better (I think, not perfect though) but also puts the window title and minimize/maximize/exit control above the tabs which isn't desired:
Maybe Use GTK
theme option can save us? It's maybe better but not perfect
The Use GTK
Theme option in Chrome gets us to that pretty desirable guest mode look where we have 1px border and integrated minimize/maximize/exit controls (chrome controls).
But it still has weird dark theme issues when it comes to inactive tabs. And I don't want to use dark mode in my browser.
How can we do GTK but light theme? -> Changing your system XFCE theme via Appearance does work to adjust things but none of the default ones are perfect. The default I had was Matcha-sea
for reference. Some have problems with the tray icons (light icons on light theme pictured below although probably need to pick an icon set), some don't seem to trigger dark mode favicons, etc. But this probably comes down to finding a good custom XFCE/GTK theme (I don't understand the distinction yet). Although I would rather use the native "Aura" windowing that Chrome ships and just have less chunky borders.
Related references:
Disable scroll wheel changing tabs in Chrome
When hovering over the tab strip at the top in Chrome, by default scrolling your mouse wheel will switch tabs across the strip but this is undesired.
- Visit
chrome://flags/#scrollable-tabstrip
and setTab Scrolling
toEnabled
- The
Tab Scrolling
description mentions an unrelated problem but this option does stop the mouse wheel from changing tabs. It also still allows you to scroll the list of tabs when it's full and overflows.
- The
Internet/network not working
My wired internet connection just stopped working after I came back overnight. This has happened multiple times before where I just restarted my computer to get going again but would be nice to get to the bottom of the problem.
I noticed that when pulling up the Network Manager GUI, it was just blank.
Blank network manager (internet not working) | Network Manager when things are working |
---|---|
And then checking on the NetworkManager
service, it wasn't even running:
$ nmcli
Warning: nmcli (1.44.2) and NetworkManager (Unknown) versions don't match. Restarting NetworkManager is advised.
Error: NetworkManager is not running.
$ sudo systemctl status NetworkManager
○ NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; preset: disabled)
Active: inactive (dead) since Mon 2023-12-18 13:44:56 CST; 18h ago
Duration: 2d 2h 43min 26.681s
Docs: man:NetworkManager(8)
Process: 67777 ExecStart=/usr/bin/NetworkManager --no-daemon (code=exited, status=0/SUCCESS)
Main PID: 67777 (code=exited, status=0/SUCCESS)
CPU: 4.109s
Start NetworkManager
Starting NetworkManager
again got everything going ✅
$ sudo systemctl start NetworkManager
$ sudo systemctl status NetworkManager
WARNING: terminal is not fully functional
Press RETURN to continue
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; preset: disabled)
Active: active (running) since Sat 2023-12-16 11:01:29 CST; 8s ago
Docs: man:NetworkManager(8)
Main PID: 67777 (NetworkManager)
Tasks: 5 (limit: 76806)
Memory: 7.0M
CPU: 56ms
CGroup: /system.slice/NetworkManager.service
└─67777 /usr/bin/NetworkManager --no-daemon
Anything interesting in the logs?
$ journalctl --pager-end --unit NetworkManager.service
[...nothing of interest]
System information/Details
- Kernel 6.1.68-1 in the Manjaro Settings Manager (
mhwd-kernel -li
says this isCurrently running: 6.1.67-2-MANJARO (linux61)
) lsb_release -sirc
->ManjaroLinux 23.1.0 Vulcan
$ inxi -F
System:
Host: eric-desktop-pc Kernel: 6.1.67-2-MANJARO arch: x86_64 bits: 64
Desktop: Xfce v: 4.18.1 Distro: Manjaro Linux
Machine:
Type: Desktop System: ASUS product: N/A v: N/A serial: <superuser required>
Mobo: ASUSTeK model: PRIME X670-P WIFI v: Rev 1.xx
serial: <superuser required> UEFI: American Megatrends v: 1413
date: 04/26/2023
CPU:
Info: 8-core model: AMD Ryzen 7 7800X3D bits: 64 type: MT MCP cache:
L2: 8 MiB
Speed (MHz): avg: 2998 min/max: 3000/5049 cores: 1: 3000 2: 3000 3: 3000
4: 3000 5: 3000 6: 2994 7: 2993 8: 3000 9: 3000 10: 3000 11: 3000 12: 3000
13: 3000 14: 2994 15: 3000 16: 3000
Graphics:
Device-1: AMD Navi 31 [Radeon RX 7900 XT/7900 XTX] driver: amdgpu v: kernel
Display: x11 server: X.Org v: 21.1.9 driver: X: loaded: amdgpu
unloaded: modesetting,radeon dri: radeonsi gpu: amdgpu
resolution: 3840x2160~60Hz
API: EGL v: 1.5 drivers: kms_swrast,radeonsi,swrast
platforms: gbm,x11,surfaceless,device
API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd v: N/A renderer: AMD Radeon
RX 7900 XTX (radeonsi navi31 LLVM 16.0.6 DRM 3.49 6.1.67-2-MANJARO)
Audio:
Device-1: AMD Navi 31 HDMI/DP Audio driver: snd_hda_intel
Device-2: AMD Family 17h/19h HD Audio driver: snd_hda_intel
Device-3: Audio-Technica AT2020 USB driver: snd-usb-audio type: USB
API: ALSA v: k6.1.67-2-MANJARO status: kernel-api
Server-1: PulseAudio v: 16.1 status: active
Network:
Device-1: Realtek RTL8125 2.5GbE driver: r8169
[...]
Device-2: Realtek RTL8852BE PCIe 802.11ax Wireless Network driver: N/A
[...]
Bluetooth:
Device-1: IMC Networks Bluetooth Radio driver: btusb type: USB
Report: rfkill ID: hci0 state: up address: see --recommends
Device-2: Cambridge Silicon Radio Bluetooth Dongle (HCI mode)
driver: btusb type: USB
Report: ID: hci1 state: up address: N/A
inxi --admin --verbosity=7 --filter --no-host
(Personally Identifiable Information like serial numbers and MAC addresses will be filtered out by the above command)
$ inxi --admin --verbosity=7 --filter --no-host
System:
Kernel: 6.1.67-2-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 13.2.1
clocksource: tsc available: hpet,acpi_pm
parameters: BOOT_IMAGE=/boot/vmlinuz-6.1-x86_64
root=UUID=e8e411f9-d7ac-4221-bb2c-8052f92e474f rw quiet
cryptdevice=UUID=42ea82bf-14d8-4122-a190-5ae9845faa1a:luks-42ea82bf-14d8-4122-a190-5ae9845faa1a
root=/dev/mapper/luks-42ea82bf-14d8-4122-a190-5ae9845faa1a splash
apparmor=1 security=apparmor udev.log_priority=3 amdgpu.aspm=0
sysrq_always_enabled=1
Desktop: Xfce v: 4.18.1 tk: Gtk v: 3.24.36 info: xfce4-panel wm: xfwm
v: 4.18.0 vt: 7 dm: LightDM v: 1.32.0 Distro: Manjaro Linux base: Arch Linux
Machine:
Type: Desktop System: ASUS product: N/A v: N/A serial: <superuser required>
Mobo: ASUSTeK model: PRIME X670-P WIFI v: Rev 1.xx
serial: <superuser required> UEFI: American Megatrends v: 1413
date: 04/26/2023
Battery:
Device-1: hidpp_battery_0 model: Logitech Wireless Mouse MX Master 3
serial: <filter> charge: 100% (should be ignored) rechargeable: yes
status: discharging
Memory:
System RAM: total: 64 GiB available: 62.53 GiB used: 31.19 GiB (49.9%)
RAM Report: permissions: Unable to run dmidecode. Root privileges
required.
CPU:
Info: model: AMD Ryzen 7 7800X3D bits: 64 type: MT MCP arch: Zen 4 gen: 5
level: v4 note: check built: 2022+ process: TSMC n5 (5nm) family: 0x19 (25)
model-id: 0x61 (97) stepping: 2 microcode: 0xA601203
Topology: cpus: 1x cores: 8 tpc: 2 threads: 16 smt: enabled cache:
L1: 512 KiB desc: d-8x32 KiB; i-8x32 KiB L2: 8 MiB desc: 8x1024 KiB
L3: 96 MiB desc: 1x96 MiB
Speed (MHz): avg: 2999 high: 3001 min/max: 3000/5049 boost: enabled
scaling: driver: acpi-cpufreq governor: schedutil cores: 1: 3000 2: 3000
3: 3000 4: 3000 5: 3000 6: 2995 7: 3000 8: 3000 9: 3000 10: 3000 11: 2991
12: 3000 13: 3000 14: 3001 15: 3000 16: 3000 bogomips: 134207
Flags: 3dnowprefetch abm adx aes amd_lbr_v2 aperfmperf apic arat avic avx
avx2 avx512_bf16 avx512_bitalg avx512_vbmi2 avx512_vnni avx512_vpopcntdq
avx512bw avx512cd avx512dq avx512f avx512ifma avx512vbmi avx512vl bmi1
bmi2 bpext cat_l3 cdp_l3 clflush clflushopt clwb clzero cmov cmp_legacy
constant_tsc cpb cppc cpuid cqm cqm_llc cqm_mbm_local cqm_mbm_total
cqm_occup_llc cr8_legacy cx16 cx8 de decodeassists erms extapic
extd_apicid f16c flush_l1d flushbyasid fma fpu fsgsbase fsrm fxsr
fxsr_opt gfni ht hw_pstate ibpb ibrs ibs invpcid irperf lahf_lm lbrv lm
mba mca mce misalignsse mmx mmxext monitor movbe msr mtrr mwaitx
nonstop_tsc nopl npt nrip_save nx ospke osvw overflow_recov pae pat
pausefilter pclmulqdq pdpe1gb perfctr_core perfctr_llc perfctr_nb
perfmon_v2 pfthreshold pge pku pni popcnt pse pse36 rapl rdpid rdpru
rdrand rdseed rdt_a rdtscp rep_good sep sha_ni skinit smap smca smep ssbd
sse sse2 sse4_1 sse4_2 sse4a ssse3 stibp succor svm svm_lock syscall tce
topoext tsc tsc_scale umip v_spec_ctrl v_vmsave_vmload vaes vgif
vmcb_clean vme vmmcall vpclmulqdq wbnoinvd wdt x2apic x2avic xgetbv1
xsave xsavec xsaveerptr xsaveopt xsaves
Vulnerabilities:
Type: gather_data_sampling status: Not affected
Type: itlb_multihit status: Not affected
Type: l1tf status: Not affected
Type: mds status: Not affected
Type: meltdown status: Not affected
Type: mmio_stale_data status: Not affected
Type: retbleed status: Not affected
Type: spec_rstack_overflow mitigation: safe RET, no microcode
Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
prctl
Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
sanitization
Type: spectre_v2 mitigation: Retpolines, IBPB: conditional, IBRS_FW,
STIBP: always-on, RSB filling, PBRSB-eIBRS: Not affected
Type: srbds status: Not affected
Type: tsx_async_abort status: Not affected
Graphics:
Device-1: AMD Navi 31 [Radeon RX 7900 XT/7900 XTX] vendor: ASRock
driver: amdgpu v: kernel arch: RDNA-3 code: Navi-3x process: TSMC n5 (5nm)
built: 2022+ pcie: gen: 4 speed: 16 GT/s lanes: 16 ports: active: DP-1
empty: DP-2,DP-3,HDMI-A-1 bus-ID: 03:00.0 chip-ID: 1002:744c
class-ID: 0300
Display: x11 server: X.Org v: 21.1.9 compositor: xfwm v: 4.18.0 driver: X:
loaded: amdgpu unloaded: modesetting,radeon alternate: fbdev,vesa
dri: radeonsi gpu: amdgpu display-ID: :0.0 screens: 1
Screen-1: 0 s-res: 3840x2160 s-dpi: 96 s-size: 1016x571mm (40.00x22.48")
s-diag: 1165mm (45.88")
Monitor-1: DP-1 mapped: DisplayPort-0 model: A409U serial: <filter>
built: 2015 res: 3840x2160 hz: 60 dpi: 111 gamma: 1.2
size: 878x485mm (34.57x19.09") diag: 1003mm (39.5") ratio: 16:9 modes:
max: 3840x2160 min: 720x400
API: EGL v: 1.5 hw: drv: amd radeonsi platforms: device: 0 drv: radeonsi
device: 1 drv: swrast gbm: drv: kms_swrast surfaceless: drv: radeonsi x11:
drv: radeonsi inactive: wayland
API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd v: N/A glx-v: 1.4
direct-render: yes renderer: AMD Radeon RX 7900 XTX (radeonsi navi31 LLVM
16.0.6 DRM 3.49 6.1.67-2-MANJARO) device-ID: 1002:744c memory: 23.44 GiB
unified: no
Audio:
Device-1: AMD Navi 31 HDMI/DP Audio driver: snd_hda_intel v: kernel pcie:
gen: 4 speed: 16 GT/s lanes: 16 bus-ID: 03:00.1 chip-ID: 1002:ab30
class-ID: 0403
Device-2: AMD Family 17h/19h HD Audio vendor: ASUSTeK
driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16
bus-ID: 12:00.6 chip-ID: 1022:15e3 class-ID: 0403
Device-3: Audio-Technica AT2020 USB driver: snd-usb-audio type: USB
rev: 1.1 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 3-3:3 chip-ID: 0909:0018
class-ID: 0102
API: ALSA v: k6.1.67-2-MANJARO status: kernel-api with: aoss
type: oss-emulator tools: alsactl,alsamixer,amixer
Server-1: JACK v: 1.9.22 status: off tools: N/A
Server-2: PipeWire v: 1.0.0 status: off with: wireplumber status: active
tools: pw-cli,wpctl
Server-3: PulseAudio v: 16.1 status: active with: pulseaudio-alsa
type: plugin tools: pacat,pactl,pavucontrol
Network:
Device-1: Realtek RTL8125 2.5GbE vendor: ASUSTeK driver: r8169 v: kernel
pcie: gen: 2 speed: 5 GT/s lanes: 1 port: e000 bus-ID: 0b:00.0
chip-ID: 10ec:8125 class-ID: 0200
IF: eno1 state: up speed: 1000 Mbps duplex: full mac: <filter>
IP v4: <filter> type: dynamic noprefixroute scope: global
broadcast: <filter>
IP v6: <filter> type: dynamic noprefixroute scope: global
IP v6: <filter> type: dynamic noprefixroute scope: global
IP v6: <filter> type: dynamic noprefixroute scope: global
IP v6: <filter> type: noprefixroute scope: global
IP v6: <filter> type: noprefixroute scope: link
Device-2: Realtek RTL8852BE PCIe 802.11ax Wireless Network
vendor: AzureWave driver: N/A pcie: gen: 1 speed: 2.5 GT/s lanes: 1
port: d000 bus-ID: 0c:00.0 chip-ID: 10ec:b852 class-ID: 0280
IF-ID-1: br-33861c916131 state: up speed: 10000 Mbps duplex: unknown
mac: <filter>
IP v4: <filter> scope: global broadcast: <filter>
IF-ID-2: br-3520c7b74b79 state: down mac: <filter>
IP v4: <filter> scope: global broadcast: <filter>
IF-ID-3: br-4e443c44bdff state: down mac: <filter>
IP v4: <filter> scope: global broadcast: <filter>
IF-ID-4: docker0 state: up speed: 10000 Mbps duplex: unknown mac: <filter>
IP v4: <filter> scope: global broadcast: <filter>
IF-ID-5: veth1827a37 state: up speed: 10000 Mbps duplex: full
mac: <filter>
IF-ID-6: veth333766e state: up speed: 10000 Mbps duplex: full
mac: <filter>
IF-ID-7: vetha877124 state: up speed: 10000 Mbps duplex: full
mac: <filter>
WAN IP: <filter>
Bluetooth:
Device-1: IMC Networks Bluetooth Radio driver: btusb v: 0.8 type: USB
rev: 1.0 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 3-2:2 chip-ID: 13d3:3571
class-ID: e001 serial: <filter>
Report: rfkill ID: hci0 rfk-id: 0 state: up address: see --recommends
Device-2: Cambridge Silicon Radio Bluetooth Dongle (HCI mode)
driver: btusb v: 0.8 type: USB rev: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1
bus-ID: 7-2.3.3:5 chip-ID: 0a12:0001 class-ID: e001
Report: ID: hci1 rfk-id: 1 state: up address: N/A
Logical:
Message: No logical block device data found.
Device-1: luks-42ea82bf-14d8-4122-a190-5ae9845faa1a maj-min: 254:0
type: LUKS dm: dm-0 size: 1.82 TiB
Components:
p-1: nvme0n1p2 maj-min: 259:2 size: 1.82 TiB
RAID:
Message: No RAID data found.
Drives:
Local Storage: total: 1.82 TiB used: 820.39 GiB (44.0%)
SMART Message: Required tool smartctl not installed. Check --recommends
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung model: SSD 980 PRO 2TB
size: 1.82 TiB block-size: physical: 512 B logical: 512 B speed: 63.2 Gb/s
lanes: 4 tech: SSD serial: <filter> fw-rev: 5B2QGXA7 temp: 36.9 C
scheme: GPT
Message: No optical or floppy data found.
Partition:
[...]
Swap:
Kernel: swappiness: 60 (default) cache-pressure: 100 (default) zswap: yes
compressor: zstd max-pool: 20%
ID-1: swap-1 type: file size: 16 GiB used: 4 MiB (0.0%) priority: -2
file: /swapfile
Unmounted:
Message: No unmounted partitions found.
USB:
[...]
Sensors:
System Temperatures: cpu: 44.0 C mobo: N/A gpu: amdgpu temp: 39.0 C
mem: 60.0 C
Fan Speeds (rpm): N/A gpu: amdgpu fan: 0
Info:
Processes: 511 Uptime: 4d 1h 4m wakeups: 0 Init: systemd v: 254
default: graphical tool: systemctl Compilers: gcc: 13.2.1 clang: 16.0.6
Packages: 1386 pm: pacman pkgs: 1378 libs: 402 tools: pamac,yay pm: flatpak
pkgs: 0 pm: snap pkgs: 8 Shell: Bash v: 5.2.21 running-in: ghostty
inxi: 3.3.31
Phone charges for a second then stops when plugged in via USB
When plugging in my Pixel 4a, it plays the charging sound and the lightning bolt appears for 2 seconds then goes away. After the charging indicator lightning bolt goes away, the pull down menu still says "Charging this device via USB" but it's not charging.
Everything is plugged into a powered USB hub which I had no issues with on Windows.
Same symptoms as experienced in https://bbs.archlinux.org/viewtopic.php?id=268682 (even mentions a Pixel 4a)
Solution
Check if you have USB autosuspend enabled somewhere. With Manjaro 22.1.1 and Linux kernel 6.1.26-1, it seems like TLP is the culprit here and USB autosuspend enabled by default ("TLP is not an acronym, it’s just a three-letter name."). Here is the relevant config around USB autosuspend in TLP (USB_AUTOSUSPEND
is commented out but the comment says it defaults to 1
anyway):
$ cat /etc/tlp.conf | grep -i usb
[...]
+ # Set to 0 to disable, 1 to enable USB autosuspend feature.
+ # Default: 1
+ #USB_AUTOSUSPEND=1
# Exclude listed devices from USB autosuspend (separate with spaces).
# Use lsusb to get the ids.
# Note: input devices (usbhid) and libsane-supported scanners are excluded
# automatically.
# Default: <none>
#USB_DENYLIST="1111:2222 3333:4444"
# Exclude audio devices from USB autosuspend:
# 0=do not exclude, 1=exclude.
# Default: 1
#USB_EXCLUDE_AUDIO=1
# Exclude bluetooth devices from USB autosuspend:
# 0=do not exclude, 1=exclude.
# Default: 0
#USB_EXCLUDE_BTUSB=0
# Exclude phone devices from USB autosuspend:
# 0=do not exclude, 1=exclude (enable charging).
# Default: 0
+ #USB_EXCLUDE_PHONE=0
# Exclude printers from USB autosuspend:
# 0=do not exclude, 1=exclude.
# Default: 1
#USB_EXCLUDE_PRINTER=1
# Exclude WWAN devices from USB autosuspend:
# 0=do not exclude, 1=exclude.
# Default: 0
#USB_EXCLUDE_WWAN=0
# Allow USB autosuspend for listed devices even if already denylisted or
# excluded above (separate with spaces). Use lsusb to get the ids.
# Default: 0
#USB_ALLOWLIST="1111:2222 3333:4444"
# Set to 1 to disable autosuspend before shutdown, 0 to do nothing
# Note: use as a workaround for USB devices that cause shutdown problems.
# Default: 0
#USB_AUTOSUSPEND_DISABLE_ON_SHUTDOWN=0
There are many interesting options here. For me, since I'm trying to charge my Pixel 4a phone, I think I'll use the USB_EXCLUDE_PHONE=1
option to "Exclude phone devices from USB autosuspend". We just need to uncomment and adjust that line in the /etc/tlp.conf
As soon as I made the change and re-plugged in my phone, all was good! 🎉
Other things you may have to look at
During my research for this, I also stumbled upon these things which could be affecting USB autosuspend:
- See https://wiki.archlinux.org/title/Power_management#USB_autosuspend and https://wiki.archlinux.org/title/TLP#USB_autosuspend
- If that doesn't solve your problem, you might also have to configure the Laptop Mode Tools (LMT) (
laptop-mode
), see https://wiki.archlinux.org/title/Laptop_Mode_Tools#USB_autosuspend. - I've also seen
powertop
mentioned in places
Sublime Text takes up a lot of RAM (memory usage)
Sublime Text takes up a lot of RAM (memory usage).
As an example, it's taking 13.5GB right now.
Package sublime-text-4
on AUR, version 4.4152-2
- Stable Channel, build 4152
Related issues:
Disable scrolling over select box changing values
It's pretty disconcerting when you scroll over a settings panel and you see some value changing in select box as you go by 😬
Solution
TODO: I don't know how to fix this yet
XFCE/GTK on Manjaro 22.1.2
Access Windows network drive from Linux (Manjaro)
Access Windows network drive from Linux (Manjaro)
In the Thunar file manager, just paste this in the location bar:
smb://mlm@mlm-desktop-pc
Install Docker
Install Docker
$ pamac install docker
# Start the Docker service
$ sudo systemctl start docker.service
# Make sure the Docker service keeps running after we restart the PC
$ sudo systemctl enable docker.service
# Check if it's working
$ sudo docker version
# Install some extras you probably want
# (for docker-compose)
$ pamac install docker-compose
# (for BuildKit build layer caching)
$ pamac install docker-buildx
You probably also want to pamac install docker-buildx
otherwise, you will run into the following error when using Docker BuildKit (Docker build layer caching):
ERROR: BuildKit is enabled but the buildx component is missing or broken.
Install the buildx component to build images with BuildKit:
https://docs.docker.com/go/buildx/
Run Docker without root
By default, you’ll have to use sudo or login to root anytime you want to run a Docker command. This next step is optional, but if you’d prefer the ability to run Docker as your current user, add your account to the docker group with this command:
$ sudo usermod -aG docker $USER
You’ll need to reboot your system for those changes to take effect. [or you can just logout and log back in]
-- https://linuxconfig.org/manjaro-linux-docker-installation
`pamac` not showing basic packages like Chrome, barrier, sublime, etc
`Save as...`, `Save image as...` file dialogs do not appear sometimes
The Save as...
, Save image as...
file dialogs do not appear sometimes which means I can't save anything from Chrome.
If I just paste the same URL into Firefox and save, it works as expected.
It has worked in Chrome before but currently experiencing a persistent issue even closing Chrome completely and brining it back up. I haven't restarted my computer yet but will report back.
Update: Seems to work fine now
System details:
- Chrome Version 113.0.5672.126
- Manjaro Linux 23.0.0 (with XFCE)
Take screenshot without prompt to save (`xfce4-screenshooter`)
Take screenshot without prompt
- XFCE Settings -> Keyboard -> Application Shortcuts
- Add a new shortcut with the following command:
bash -c 'xfce4-screenshooter --save /home/eric/Pictures/screenshots/"Screenshot $(date -d "today" +"%Y-%m-%d %H:%M:%S").png" --window'
- Set the keyboard combination
- 🎉
If you want to play a sound on screenshot as well:
bash -c 'xfce4-screenshooter --save /home/eric/Pictures/screenshots/"Screenshot $(date -d "today" +"%Y-%m-%d %H:%M:%S").png" --window && mpv /usr/share/sounds/freedesktop/stereo/camera-shutter.oga'
Related posts:
- https://superuser.com/questions/1688596/can-xfce4-screenshotter-be-configured-to-save-a-screenshot-without-any-gui-appea
- https://wiki.archlinux.org/title/Screen_capture#Xfce_Screenshooter
Default screenshot flow
By default, pressing Print Screen, will bring up a dialogue to let you choose what you want to do with the image (save, open in an app, upload to imgur, etc), and then saving it will bring up a dialogue to choose the location/filename.
. | . | . |
---|---|---|
Press Print Screen |
Default screenshot keyboard shortcuts (XFCE Settings -> Keyboard -> Application Shortcuts):
xfce4-screenshooter -fd 1
: Printxfce4-screenshooter -r
: Shift + Ctrl + Printxfce4-screenshooter -wd 1
: Shift + Print
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.