Some Desktop Widgets Don't Retain their Position after Restart

I’ve been using desktop widgets for a long time, specifically system-monitoring widgets to monitor core temperatures, memory usage, and network traffic. These stay right where I put them way back when and they don’t dare move.

Now, I recently started doing some desktop modding to make everything look a bit prettier with neat little widgets like an analogue clock, “NowPlaying,” and “Panon.” The widgets work great, however, after a restart, they don’t retain the position I previously set them at. After each restart they move to the top left corner, for some reason. They don’t overlap each other, they just reposition themselves starting at that top left corner.

I have tested if the issue also occurs on a newly created user and there it doesn’t happen. This leads me to believe that the issue is related to some borked configuration of my main user, but I really don’t know where to start looking.


Edit:

Something that came to my mind that might be useful information is that not only the position of the mentioned widgets is reset at every restart, but also their sizes. Is it possible that somewhere along the way I revoked my plasmashell’s permissions to permanently create config files for widgets or something like that? I will investigate and test further to see if any settings are retained and if so, which.


inxi:

$ inxi --admin --verbosity=7 --filter --no-host --width
System:
  Kernel: 5.10.61-1-MANJARO x86_64 bits: 64 compiler: gcc v: 11.1.0 
  parameters: BOOT_IMAGE=/boot/vmlinuz-5.10-x86_64 
  root=UUID=628f24a1-5443-4159-99a5-4a1e4dfaa518 rw quiet apparmor=1 
  security=apparmor udev.log_priority=3 
  Desktop: KDE Plasma 5.22.5 tk: Qt 5.15.2 wm: kwin_x11 vt: 1 dm: SDDM 
  Distro: Manjaro Linux base: Arch Linux 
Machine:
  Type: Laptop System: LENOVO product: 81HE v: Lenovo Legion Y740-15ICHg 
  serial: <filter> Chassis: type: 10 v: Lenovo Legion Y740-15ICHg 
  serial: <filter> 
  Mobo: LENOVO model: LNVNB161216 v: SDK0R32862 WIN serial: <filter> 
  UEFI: LENOVO v: AVCN22WW(V1.12) date: 07/20/2020 
Battery:
  ID-1: BAT1 charge: 51.5 Wh (95.2%) condition: 54.1/57.0 Wh (94.9%) 
  volts: 12.8 min: 11.5 model: SMP L17M3PG2 type: Li-ion serial: <filter> 
  status: Unknown cycles: 18 
  ID-2: hidpp_battery_0 charge: N/A condition: N/A volts: 3.9 min: N/A 
  model: Logitech G903 Wired/Wireless Gaming Mouse type: N/A serial: <filter> 
  status: Discharging 
Memory:
  RAM: total: 15.55 GiB used: 3.57 GiB (22.9%) 
  RAM Report: permissions: Unable to run dmidecode. Root privileges required. 
CPU:
  Info: 6-Core model: Intel Core i7-8750H bits: 64 type: MT MCP 
  arch: Kaby Lake note: check family: 6 model-id: 9E (158) stepping: A (10) 
  microcode: EA cache: L2: 9 MiB bogomips: 52815 
  Speed: 2932 MHz min/max: 800/4100 MHz Core speeds (MHz): 1: 2932 2: 2721 
  3: 2311 4: 2937 5: 2696 6: 2670 7: 2685 8: 2729 9: 2725 10: 2684 11: 2766 
  12: 2684 
  Flags: 3dnowprefetch abm acpi adx aes aperfmperf apic arat arch_perfmon art 
  avx avx2 bmi1 bmi2 bts clflush clflushopt cmov constant_tsc cpuid 
  cpuid_fault cx16 cx8 de ds_cpl dtes64 dtherm dts epb ept ept_ad erms est 
  f16c flexpriority flush_l1d fma fpu fsgsbase fxsr ht hwp hwp_act_window 
  hwp_epp hwp_notify ibpb ibrs ida intel_pt invpcid invpcid_single lahf_lm lm 
  mca mce md_clear mmx monitor movbe mpx msr mtrr nonstop_tsc nopl nx pae pat 
  pbe pcid pclmulqdq pdcm pdpe1gb pebs pge pln pni popcnt pse pse36 pti pts 
  rdrand rdseed rdtscp rep_good sdbg sep smap smep ss ssbd sse sse2 sse4_1 
  sse4_2 ssse3 stibp syscall tm tm2 tpr_shadow tsc tsc_adjust 
  tsc_deadline_timer vme vmx vnmi vpid x2apic xgetbv1 xsave xsavec xsaveopt 
  xsaves xtopology xtpr 
  Vulnerabilities: Type: itlb_multihit status: KVM: VMX disabled 
  Type: l1tf 
  mitigation: PTE Inversion; VMX: conditional cache flushes, SMT vulnerable 
  Type: mds mitigation: Clear CPU buffers; SMT vulnerable 
  Type: meltdown mitigation: PTI 
  Type: spec_store_bypass 
  mitigation: Speculative Store Bypass disabled via prctl and seccomp 
  Type: spectre_v1 
  mitigation: usercopy/swapgs barriers and __user pointer sanitization 
  Type: spectre_v2 mitigation: Full generic retpoline, IBPB: conditional, 
  IBRS_FW, STIBP: conditional, RSB filling 
  Type: srbds mitigation: Microcode 
  Type: tsx_async_abort status: Not affected 
Graphics:
  Device-1: NVIDIA TU106BM [GeForce RTX 2060 Mobile] vendor: Lenovo 
  driver: nvidia v: 470.63.01 alternate: nouveau,nvidia_drm bus-ID: 01:00.0 
  chip-ID: 10de:1f51 class-ID: 0300 
  Device-2: Chicony Integrated Camera (1280x720@30) type: USB driver: uvcvideo 
  bus-ID: 1-7:6 chip-ID: 04f2:b604 class-ID: 0e02 serial: <filter> 
  Display: x11 server: X.Org 1.20.13 compositor: kwin_x11 driver: 
  loaded: nvidia display-ID: :0 screens: 1 
  Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x286mm (20.0x11.3") 
  s-diag: 583mm (23") 
  Monitor-1: DP-4 res: 1920x1080 hz: 144 dpi: 142 size: 344x194mm (13.5x7.6") 
  diag: 395mm (15.5") 
  OpenGL: renderer: NVIDIA GeForce RTX 2060/PCIe/SSE2 
  v: 4.6.0 NVIDIA 470.63.01 direct render: Yes 
Audio:
  Device-1: Intel Cannon Lake PCH cAVS vendor: Lenovo driver: snd_hda_intel 
  v: kernel alternate: snd_soc_skl,snd_sof_pci bus-ID: 00:1f.3 
  chip-ID: 8086:a348 class-ID: 0403 
  Device-2: NVIDIA TU106 High Definition Audio vendor: Lenovo 
  driver: snd_hda_intel v: kernel bus-ID: 01:00.1 chip-ID: 10de:10f9 
  class-ID: 0403 
  Device-3: C-Media Q9-1 type: USB driver: hid-generic,snd-usb-audio,usbhid 
  bus-ID: 1-5:4 chip-ID: 0d8c:0135 class-ID: 0300 
  Sound Server-1: ALSA v: k5.10.61-1-MANJARO running: yes 
  Sound Server-2: JACK v: 1.9.19 running: no 
  Sound Server-3: PulseAudio v: 15.0 running: yes 
  Sound Server-4: PipeWire v: 0.3.34 running: yes 
Network:
  Device-1: Intel Cannon Lake PCH CNVi WiFi 
  vendor: Rivet Networks Killer Wireless-AC 1550i Wireless driver: iwlwifi 
  v: kernel bus-ID: 00:14.3 chip-ID: 8086:a370 class-ID: 0280 
  IF: wlp0s20f3 state: up mac: <filter> 
  IP v4: <filter> type: dynamic noprefixroute scope: global 
  broadcast: <filter> 
  IP v6: <filter> type: dynamic noprefixroute scope: global 
  IP v6: <filter> type: noprefixroute scope: link 
  Device-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet 
  vendor: Lenovo driver: r8169 v: kernel port: 3000 bus-ID: 3f:00.0 
  chip-ID: 10ec:8168 class-ID: 0200 
  IF: enp63s0 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: noprefixroute scope: link 
  IF-ID-1: wg-mullvad state: unknown speed: N/A duplex: N/A mac: N/A 
  IP v4: <filter> scope: global 
  IP v6: <filter> scope: global 
  WAN IP: <filter> 
Bluetooth:
  Device-1: Intel Bluetooth 9460/9560 Jefferson Peak (JfP) type: USB 
  driver: btusb v: 0.8 bus-ID: 1-14:7 chip-ID: 8087:0aaa class-ID: e001 
  Report: rfkill ID: hci0 rfk-id: 3 state: down bt-service: enabled,running 
  rfk-block: hardware: no software: yes address: see --recommends 
Logical:
  Message: No logical block device data found. 
RAID:
  Message: No RAID data found. 
Drives:
  Local Storage: total: 1.38 TiB used: 844.79 GiB (60.0%) 
  SMART Message: Unable to run smartctl. Root privileges required. 
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Western Digital 
  model: PC SN720 SDAPNTW-512G-1101 size: 476.94 GiB block-size: 
  physical: 512 B logical: 512 B speed: 31.6 Gb/s lanes: 4 type: SSD 
  serial: <filter> rev: 10130001 temp: 44.9 C scheme: GPT 
  ID-2: /dev/sda maj-min: 8:0 vendor: Crucial model: CT1000MX500SSD1 
  size: 931.51 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s 
  type: SSD serial: <filter> rev: 033 scheme: GPT 
  Message: No optical or floppy data found. 
Partition:
  ID-1: / raw-size: 204.8 GiB size: 200.59 GiB (97.94%) 
  used: 119.73 GiB (59.7%) fs: ext4 dev: /dev/sda3 maj-min: 8:3 label: N/A 
  uuid: 628f24a1-5443-4159-99a5-4a1e4dfaa518 
  ID-2: /boot/efi raw-size: 260 MiB size: 256 MiB (98.46%) 
  used: 29 MiB (11.3%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1 
  label: SYSTEM_DRV uuid: D48E-60B3 
  ID-3: /mnt/8EC28FE8C28FD2BF raw-size: 475.69 GiB size: 475.69 GiB (100.00%) 
  used: 189.32 GiB (39.8%) fs: ntfs dev: /dev/nvme0n1p3 maj-min: 259:3 
  label: Windows-SSD uuid: 8EC28FE8C28FD2BF 
  ID-4: /mnt/Data raw-size: 576.06 GiB size: 576.06 GiB (100.00%) 
  used: 483.65 GiB (84.0%) fs: ntfs dev: /dev/sda2 maj-min: 8:2 label: Data 
  uuid: 01D75132E5F5E0F0 
  ID-5: /mnt/Data2 raw-size: 150.64 GiB size: 147.21 GiB (97.73%) 
  used: 52.07 GiB (35.4%) fs: ext4 dev: /dev/sda4 maj-min: 8:4 label: Data 2 
  uuid: 708fcbc1-116d-49bb-9171-a77b48962022 
Swap:
  Alert: No swap data was found. 
Unmounted:
  ID-1: /dev/nvme0n1p2 maj-min: 259:2 size: 16 MiB fs: <superuser required> 
  label: N/A uuid: N/A 
  ID-2: /dev/nvme0n1p4 maj-min: 259:4 size: 1000 MiB fs: ntfs label: WINRE_DRV 
  uuid: D28E90838E9061B1 
  ID-3: /dev/sda1 maj-min: 8:1 size: 16 MiB fs: <superuser required> 
  label: N/A uuid: N/A 
USB:
  Hub-1: 1-0:1 info: Full speed (or root) Hub ports: 16 rev: 2.0 
  speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900 
  Device-1: 1-1:2 info: Logitech USB Receiver type: Keyboard,Mouse,HID 
  driver: logitech-djreceiver,usbhid interfaces: 3 rev: 2.0 speed: 12 Mb/s 
  power: 98mA chip-ID: 046d:c539 class-ID: 0300 
  Device-2: 1-4:3 info: Integrated Express ITE Device(8910) type: Keyboard 
  driver: hid-generic,usbhid interfaces: 1 rev: 2.0 speed: 12 Mb/s 
  power: 100mA chip-ID: 048d:c936 class-ID: 0301 
  Device-3: 1-5:4 info: C-Media Q9-1 type: Audio,HID 
  driver: hid-generic,snd-usb-audio,usbhid interfaces: 3 rev: 1.1 
  speed: 12 Mb/s power: 100mA chip-ID: 0d8c:0135 class-ID: 0300 
  Device-4: 1-6:5 
  info: Integrated Express Corsair Gaming K95 RGB PLATINUM Keyboard 
  type: Keyboard,HID driver: hid-generic,usbhid interfaces: 2 rev: 2.0 
  speed: 12 Mb/s power: 100mA chip-ID: 048d:c935 class-ID: 0300 
  Device-5: 1-7:6 info: Chicony Integrated Camera (1280x720@30) type: Video 
  driver: uvcvideo interfaces: 2 rev: 2.0 speed: 480 Mb/s power: 500mA 
  chip-ID: 04f2:b604 class-ID: 0e02 serial: <filter> 
  Device-6: 1-14:7 info: Intel Bluetooth 9460/9560 Jefferson Peak (JfP) 
  type: Bluetooth driver: btusb interfaces: 2 rev: 2.0 speed: 12 Mb/s 
  power: 100mA chip-ID: 8087:0aaa class-ID: e001 
  Hub-2: 2-0:1 info: Full speed (or root) Hub ports: 8 rev: 3.1 speed: 10 Gb/s 
  chip-ID: 1d6b:0003 class-ID: 0900 
  Hub-3: 3-0:1 info: Full speed (or root) Hub ports: 2 rev: 2.0 
  speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900 
  Hub-4: 4-0:1 info: Full speed (or root) Hub ports: 4 rev: 3.1 speed: 10 Gb/s 
  chip-ID: 1d6b:0003 class-ID: 0900 
  Hub-5: 5-0:1 info: Full speed (or root) Hub ports: 2 rev: 2.0 
  speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900 
  Hub-6: 6-0:1 info: Full speed (or root) Hub ports: 2 rev: 3.1 speed: 10 Gb/s 
  chip-ID: 1d6b:0003 class-ID: 0900 
Sensors:
  System Temperatures: cpu: 62.0 C mobo: N/A gpu: nvidia temp: 55 C 
  Fan Speeds (RPM): N/A 
Info:
  Processes: 321 Uptime: 1h 54m wakeups: 7 Init: systemd v: 248 
  tool: systemctl Compilers: gcc: 11.1.0 Packages: 1516 pacman: 1512 lib: 439 
  flatpak: 0 snap: 4 Shell: Bash v: 5.1.8 running-in: konsole inxi: 3.3.06 
1 Like
  1. Does this also happen under a newly created user when you log in there? (E.G. fhonb2)
  2. Please read this

:crossed_fingers:

See third paragraph: No, under a newly created user this doesn’t happen.

  1. Yeah, I don’t have a swap partition. That’s never been an issue before.
  1. Oops! Missed that, sorry! :sob:

    So you have an issue in your user profile and finding out which exact setting you changed is going to take weeks if not months, therefore, we’re going to do the following:

    • Verify that the new user has access to the same groups as your old one by executing groups and comparing the output of both users.

      groups twitty
      groups twitty2
      

      (Where obviously, twitty is your old user and twitty2 is your new one.)
      E.G. if twitty is a member of operator and twitty2 isn’t, execute:

      usermod --append --groups operator twitty2
      
    • Copy all data files from your old profile into your new one

      cp --verbose --recursive --preserve=timestamps /home/twitty/Documents/* /home/twitty2/Documents/
      

      If that worked and you had no errors, remove the documents from your old user:

      rm --recursive /home/twitty/Documents/*
      

      repeat for:

      • Pictures
      • Videos
      • Music
      • .thunderbird
      • .mozilla/firefox/
      • Templates, and everything else that is important to you.
      • Linux games like Battle of Wesnoth have their game data stored under ~/.local/share/ E.G. ~/.local/share/wesnoth/
    • After everything has been copied over, disable the old user so you cannot accidentally log on to it any more:

       usermod --lock twitty
      
    • If you would have theming or other customisations going on, don’t do everything in one day but do this at the rate of 1 application / theme / … per day and if the same issue crops up again, roll back your last change and thus you’ve now pinpointed the exact setting that made your old user misbehave. :thinking:

    • in 1 month delete the entire home directory of your old user, but don’t delete the user itself so that in 6 months time files still owned by that user will still show up under its username.

    • If you ever migrate to a new machine, just don’t migrate the old user: only the new one.

    • From now on, start making backups so you can roll back and never have to do this again:

    [HowTo] make a crash-proof backup in Manjaro for your entire system

  2. Did you read the article? Especially this:

    Do you need swap?

    That is a question that cannot be answered without having a look at your configuration and even with plenty of available memory, it is often used as a safety net or even sometimes due to specific application requirements so have a look at the following non-exhaustive list:

    • If you use hibernation: yes, you need swap!
    • If you have services that are not always active, but are still running all the time: yes, you need swap!
    • If you have an application that allocates virtual memory directly for temporary storage instead of RAM: yes, you need swap!
    • If you have an application that has a memory leak: yes, you need swap!
    • If you have a server with 1TB of RAM that you’re using as a desktop without applications allocating virtual memory or having memory leaks: No, you don’t need swap!

    and also this one:

    note: The largest server one of the authors of this wiki article has ever installed had, indeed, 8TB of RAM and even that machine has the above swap settings, so why not your machine?

    And that author happens to be me and this is the proof to the pudding:

:man_shrugging:

1 Like
  1. So, I read your post right before going to bed last night and decided to try your advice today. I shut down my laptop and, lo and behold, after booting it up today, the widgets are right where I put them yesterday and I have no idea why and what’s happening here. This is especially confusing to me as I didn’t even change anything yet.
    As for backups: I would like to think that I’m somewhat diligent on backing up my system and data. I use a dedicated Raspberry Pi with BorgBackup to create data backups every day and Timeshift creates a system backup thrice a week. I didn’t get around to reading your backup tutorial yet, though, and my job awaits, so I figured I’ll just reply here real quick and save it to read it later. I’m sure I can learn something cool and new from it.

  2. Yes, I did read it, and I gathered that the info I got from both a very helpful r/manjarolinux user and a friend of mine, who first told me of Manjaro, might not have been entirely correct, as they both told me that I don’t necessarily need a swap partition and I shouldn’t stress out about it, if everything works fine. I never understood why the Manjaro installer created a swap partition on my secondary laptop but not on this one, either.
    To be honest, I’m also always a bit afraid of “retrofitting” something like this, since I have literally zero experience with it and I always thought that this kind of partitioning should be done when first creating the system and not retrospectively. Would you say it’s safe to create a swap partition now, as the system is already in use?
    Something else I would like to mention in passing is that your wonderful guide kind of suffers from a slight miscolouration when viewed in dark mode: The boxes that are supposed to highlight notes and tips are a bit hard to read.

As always: Thank you for your extensive replies.

1 Like

:clap: :clap: :clap:

Fear is the path to the dark side: fear leads to anger, anger leads to hate and hate leads to suffering… :grin: There is absolutely no reason to fear “retrofitting” as it’s just an “add” in this case.

There is a thing called a “swapfile” that needs no repartitioning. RTFM! (Read the Fine Manual)… :stuck_out_tongue_winking_eye:

I’m running this site in dark mode too… Or do you mean the wiki site?

:thinking:

:bowing_man:

I ultimately opted for a swapfile of 8 GB, as I don’t use hibernation—never did and I don’t really think I ever will. At some time in the future, I’ll redo the whole partitioning of my laptop and create a proper, nice and big-ish swap partition. I’ll probably do that when I upgrade/replace the SSDs the next time, but that time is not now.

I marked your above reply as a solution, because it does actually describe a feasible albeit laborious solution to the problem.


Yes, I’m sorry. I was referring to the wiki site, please see the attached screenshot in the above post. Now, it is possible that my Firefox is just messing up the CSS here for some reason. Maybe some extension is interfering with it.

1 Like

Oh, yeah, that’s awful and I never noticed till now… I"ll have a look into that, but after I’ve finished converting this into that because currently my wiki knowledge is shaky… :cold_sweat:

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.