Zrnik/cs2-config

★ 1Forks 0ShellGitHub ↗Compare

README

CS2 Config

Personal Counter-Strike 2 configuration with keybinds, crosshair recoil modes, practice setup, and utility scripts.

Setup

On Debian/Linux Steam, use:

./setup.sh

It installs autoexec.cfg + custom_cfg/ into CS2's game/csgo/cfg directory. It does not edit Steam settings, install packages, change launch options, restart Steam, or touch display settings.

Preview the target without copying:

./setup.sh --dry-run
./setup.sh --print-target

./install.sh is kept as a compatibility alias for ./setup.sh.

Launch Options

Manual reference only. Set this in Steam: Library -> Counter-Strike 2 -> Properties -> Launch Options.

-freq 144 -fullscreen -w 1920 -h 1080 -console -novid -nojoy -high +exec autoexec

FPS & Performance

Debian/Linux display mode

On Linux, CS2 does not expose the same true exclusive fullscreen mode as Windows. The useful modes are Windowed and Fullscreen Windowed. Use native 1920x1080 for normal play.

Display mode is not a good fit for autoexec.cfg: it is applied before/around engine startup, and changing it after launch can cause a black screen on Linux. Prefer manual launch options.

NVIDIA Control Panel

Go to Manage 3D Settings → Program Settings → CS2:

Setting Value
Preferred graphics processor High-performance NVIDIA (not Intel UHD 770!)
Power Management Mode Prefer Maximum Performance
Low Latency Mode Ultra
Vertical Sync Off

In-game Video Settings

Setting Value
Display Mode Fullscreen / Fullscreen Windowed at 1920x1080
Global Shadow Quality High
Model / Texture Detail Low
Shader Detail Low
Particle Detail Low
VSync Off
NVIDIA Reflex Enabled
Boost Player Contrast On

Config Structure

autoexec.cfg is the entry point — it unbinds everything and loads configs from custom_cfg/:

autoexec.cfg
  custom_cfg/crosshair.cfg
  custom_cfg/movement.cfg
  custom_cfg/model.cfg
  custom_cfg/common.cfg
  custom_cfg/buy.cfg
  custom_cfg/misc.cfg
  custom_cfg/fps.cfg
  custom_cfg/walk/initialize.cfg
  custom_cfg/practice/binds.cfg
  custom_cfg/crosshair_state.cfg

Press F6 to reload the config at any time.

Features

Movement

Key Action
WASD Move
Space / Scroll Up / Scroll Down Jump
Ctrl Crouch
Shift Walk (see Walk System)
  • Sensitivity: 2
  • Zoom sensitivity: 0.818933 (1:1 scoped feel)

Crosshair

Static crosshair (style 4) with custom size, color, and outline. The recoil-follow mode system is controlled by these keys:

Key Mode Mouse 1 behaviour Visual indicator
Numpad + Rifle Follow recoil only while firing; return to centre when released. RGB 220 150 150, no centre dot.
Numpad - Pistol Always follow recoil. RGB 220 150 150, with centre dot.
Numpad * Static (default) Never follow recoil. Orange (255 220 80), no centre dot.

Reload the crosshair configuration from the CS2 console with exec autoexec.

Resolution-independent settings

The September 2026 CS2 update changed crosshairs to resolution-independent values. The current config uses the closest migration of the previous appearance:

Command Value Purpose
cl_crosshairstyle 4 Static crosshair.
cl_crosshair_length 4 Crosshair line length.
cl_crosshair_gap 4 Gap between the centre and lines.
cl_crosshair_thickness 1 Line thickness.
cl_crosshaircolor_a 255 Opacity.
cl_crosshair_drawoutline 1 Enable outline.
cl_crosshair_outlinethickness 0.5 Outline thickness.
cl_crosshair_recoil 0 or 1 Disable or enable recoil-following.

The updated UI does not support a negative gap, so an exact pixel-for-pixel match to the former crosshair is not possible. The current config uses length 4, gap 4, and thickness 1.

Static mode starts with RGB 255 220 80 at full opacity. Use cl_crosshair_length, cl_crosshair_gap, cl_crosshair_thickness, and cl_crosshaircolor_a for new changes instead of legacy appearance commands cl_crosshairsize, cl_crosshairgap, cl_crosshairthickness, cl_crosshairalpha, and cl_crosshaircolor.

Buy Binds

Key Buy Also does
F1 Kevlar vest Vote Yes
F2 Rifle (team default) Vote No
F3 Smoke + HE grenade —
F4 Defuse kit + Flashbang —
F5 Kevlar + Helmet —

Quick Grenades

Key Grenade
F Flashbang
MOUSE4 Smoke
C HE grenade

Common Binds

Key Action
E Use
R Reload
G Drop weapon
Q Last weapon (quick switch)
V Toggle voice chat on/off
MOUSE5 Push-to-talk
MOUSE3 Player ping
T Spray menu
TAB Scoreboard
X Radio menu
B Buy menu
M Team menu
DEL Disconnect
1-5 Weapon slots (primary, secondary, knife, grenades, bomb)

Walk System

Shift does more than just walk — it's a multi-action modifier:

While holding Shift:

  • Walk (slow movement)
  • Volume increases by +0.5 (from 0.5 to 1.0) to hear footsteps better
  • Enter key switches to all-chat (messagemode)

When Shift is released:

  • Normal run speed
  • Volume returns to 0.5
  • Enter key switches back to team-chat (messagemode2)

Viewmodel

Left-side shifted viewmodel with FOV 60 (viewmodel_offset_x -1, viewmodel_offset_y -2, viewmodel_offset_z -2).

Network / Misc

  • cl_interp_ratio 1 — interpolation ratio
  • mm_dedicated_search_maxping 35 — low ping matchmaking

Practice Mode

Press HOME to activate practice mode on a local server. Sets up a full practice environment:

  • Cheats enabled, infinite ammo, unlimited money ($60,000)
  • Buy anywhere, no round time limit, no freeze time
  • Grenade trajectories and impact markers visible
  • One bot added and frozen for reference

Practice Binds

Key Action
INS Noclip (fly through walls)
PGUP Give all grenade types
Numpad 0 Rethrow last grenade
Numpad 5 Toggle bot freeze
Numpad 7 Clear all grenade projectiles

Scripts

setup.sh — Debian / Linux Steam

Installs this config into CS2's game/csgo/cfg directory:

./setup.sh

The script auto-detects CS2 installed through Steam on Debian/Linux and copies only:

  • autoexec.cfg
  • custom_cfg/

Preview the target without copying:

./setup.sh --dry-run
./setup.sh --print-target

If Steam or CS2 is in a non-standard location, pass a Linux path manually:

CS2_ROOT="$HOME/.local/share/Steam/steamapps/common/Counter-Strike Global Offensive" ./setup.sh
CS2_CFG="/path/to/Counter-Strike Global Offensive/game/csgo/cfg" ./setup.sh

./install.sh accepts the same arguments and delegates to ./setup.sh.

demos.sh — Debian / Linux Steam

Requires zstd:

sudo apt install zstd

Processes downloaded demo files (.dem.zst) from ~/Downloads:

./demos.sh

What it does:

  1. Auto-detects CS2 installed through Steam on Debian/Linux
  2. Deletes loose .dem files from Downloads, matching demos.cmd behavior
  3. Decompresses all .dem.zst files to CS2's game/csgo folder
  4. Deletes successfully processed .dem.zst files from Downloads
  5. Lists available demos with playdemo commands sorted newest-first

Use a custom downloads folder:

DOWNLOADS_DIR=/path/to/downloads ./demos.sh
./demos.sh --source /path/to/downloads

Keep loose .dem files in Downloads:

./demos.sh --keep-loose

Windows helpers

install.cmd copies the config into the default Windows Steam CS2 cfg folder.

demos.cmd processes demos from Downloads into the Windows CS2 folder. It expects zstd.exe at zstd\zstd.exe next to the script and does not download it automatically.

Contributors

Zrnik

Issues