Make Custom Resolution Permanent

hi, I want to make a Custom Resolution as Permanent
currently I have a Script FIle which I am running after Every Restart , is there any way that scripts run while startup or after loging in
i think a Automatic Service file is a good Idea but I am not very Familiar with it
here is a Templet I found On internet.

[Unit]
Description=<description_string>

[Service]
WorkingDirectory=<working_directory>
Type=forking
ExecStart=/bin/bash <absolute_path_to_script>
KillMode=process

[Install]
WantedBy=multi-user.target

what is a working Directory ?
or any other way will also help

Some Extra Info that May Be needed:

lspci -n -n -k | grep -A 2 -e VGA -e 3D
00:02.0 VGA compatible controller [0300]: Intel Corporation CoffeeLake-H GT2 [UHD Graphics 630] [8086:3e9b]
	Subsystem: Lenovo Device [17aa:38ec]
	Kernel driver in use: i915
--
01:00.0 3D controller [0302]: NVIDIA Corporation GP107M [GeForce GTX 1050 Mobile] [10de:1c8d] (rev a1)
	Subsystem: Lenovo Device [17aa:38ec]
	Kernel driver in use: nvidia
xrandr                                  
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 16384 x 16384
eDP-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
   1920x1080     60.01*+  60.01    59.97    59.96    59.93  
   1680x1050     59.95    59.88  
   1400x1050     59.98  
   1600x900      59.99    59.94    59.95    59.82  
   1280x1024     60.02  
   1400x900      59.96    59.88  
   1280x960      60.00  
   1440x810      60.00    59.97  
   1368x768      59.88    59.85  
   1280x800      59.99    59.97    59.81    59.91  
   1280x720      60.00    59.99    59.86    59.74  
   1024x768      60.04    60.00  
   960x720       60.00  
   928x696       60.05  
   896x672       60.01  
   1024x576      59.95    59.96    59.90    59.82  
   960x600       59.93    60.00  
   960x540       59.96    59.99    59.63    59.82  
   800x600       60.00    60.32    56.25  
   840x525       60.01    59.88  
   864x486       59.92    59.57  
   700x525       59.98  
   800x450       59.95    59.82  
   640x512       60.02  
   700x450       59.96    59.88  
   640x480       60.00    59.94  
   720x405       59.51    58.99  
   684x384       59.88    59.85  
   640x400       59.88    59.98  
   640x360       59.86    59.83    59.84    59.32  
   512x384       60.00  
   512x288       60.00    59.92  
   480x270       59.63    59.82  
   400x300       60.32    56.34  
   432x243       59.92    59.57  
   320x240       60.05  
   360x202       59.51    59.13  
   320x180       59.84    59.32  
   2112x1188_60.00  59.92  
HDMI-1 disconnected (normal left inverted right x axis y axis)
HDMI-2 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-3 disconnected (normal left inverted right x axis y axis)

Goal :
Below As Permanent Resolution

xrandr --newmode "2112x1188_60.00"  210.25  2112 2256 2480 2848  1188 1191 1196 1232 -hsync +vsync
 xrandr --addmode eDP-1 "2112x1188_60.00"

Any help ?

Which desktop environment?

It may be easier to just put your script into: ~/.config/autostart/

At least on KDE, that dir does not work well.

Systemd services work better.

Have a look at these docs, your cherrypicked service is incomplete and misleading. You only need to set the variables you need.

https://www.freedesktop.org/software/systemd/man/latest/systemd.service.html

Or

man systemd.service
man systemd.target
man systemd.timer

That’s interesting about KDE.
I forgot about the whole desktop file thing for this …
As an example you would need something like this in ~/.config/autostart

[Desktop Entry]
Type=Application
Exec=/usr/bin/bash -c "cmd; next cmd"

or

[Desktop Entry]
Type=Application
Exec=/path/to/script/you/would/like/to/run

Another reference if you want to do a systemd service: https://www.redhat.com/sysadmin/systemd-oneshot-service

Yes the strange workaround on KDE seems to be

  1. Create a .desktop entry like this:
>> cat ~/.config/autostart/fastfetch.desktop
[Desktop Entry]
Type=Application
Name=Fastfetch
Exec=/usr/bin/fastfetch
  1. In the KDE settings under “Autostart” enable that

It seems to work, but I still often see “did not run”

Oh sorry I forgot to mention Desktop Env in main post

ITS Gnome

And the script I made is not that effective coz sometimes I have to adjust it to add new mode and sometimes only applying works.

Added gnome, workstation