Skip to content

Commit b61cff1

Browse files
authored
Update 2025-07-20-customizing-my-debian-terminal.md
1 parent 4d79a67 commit b61cff1

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

_posts/2025-07-20-customizing-my-debian-terminal.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33
I would like to note before beginning that this is on Debian 12 with KDE Plasma as my desktop environment. The colors may not be the same if you are on a different desktop environment or if you use a different terminal emulator.
44

55
Ever since I switched to Debian, I've been using the default shell configuration. Recently, after I riced my Kali VM up a bit, I was inspired to start doing some terminal ricing on my host Debian machine. In this process, I went from the default shell configuration that looks like this:
6+
67
![Default Debian Terminal](/assets/images/default-debian-terminal.png)
78

89
to one that looks like this:
10+
911
![Customized Debian Terminal](/assets/images/customized-debian-terminal.png)
1012

1113
## Zsh
@@ -31,16 +33,22 @@ Konsole will be my terminal emulator of choice. There is no particular reason be
3133
### Making a New Profile
3234

3335
This step is required to run zsh instead of bash. Before we do this, we need to double check where our zsh is installed. To do this, we can use `which zsh`. Make sure to remember the directory it gives you. To start creating our new profile, we open Konsole, then on the top bar we click Settings then Manage Profiles.
36+
3437
![Manage Profiles Button Selected](/assets/images/manage-profiles-button-selected.png)
3538

3639
Once we are on this page, we will click New on the right to start making a new profile.
3740
There are only a few options we need to change, those being the profile name, and the command.
3841
We can set the profile name to whatever we wish, I chose to use "Main".
3942
For the command, we want to use the directory that `which zsh` gave us. For me, this was `/usr/bin/zsh`. Make sure to check the 'Default profile' box so Konsole will launch into this profile by default. Once we are done in the General tab, it should look something like this:
43+
4044
![Finished Konsole Profile](/assets/images/new-debian-profile-finished.png)
45+
4146
Additionally, if we click the Scrolling tab on the left, we can set our Scrollback to unlimited. I find this incredibly useful as sometimes commands will output very large amounts of text that's long enough to move previous commands beyond the scrollback distance.
47+
4248
![Scrollback Settings](/assets/images/scrollback-unlimited-setting.png)
49+
4350
I also opted to uncheck "Highlight the lines coming into view setting" in this area. This will remove the blue lines on the left of the terminal when new text appears.
51+
4452
![Blue lines](/assets/images/blue-bar.png)
4553

4654
### Changing Misc. Konsole Settings
@@ -53,15 +61,20 @@ We have a couple different tabs on the left with settings we will want to change
5361

5462
- General
5563
- Remember window size: unchecked
64+
5665
![Konsole General Tab Config](/assets/images/konsole-general-config.png)
66+
5767
- Tab Bar / Splitters
5868
- Show: Always
5969
- This will make the new tab button visible even when there is only 1 tab
6070
- Position: Above terminal area
6171
- Show 'New Tab' button: checked
72+
6273
![Konsole Tab Bar / Splitters Config](/assets/images/konsole-tab-bar-config.png)
74+
6375
- Temporary Files
6476
- Scrollback file location: User cache directory (~/.cache/konsole)
77+
6578
![Konsole Temporary Files Config](/assets/images/konsole-temp-files-config.png)
6679

6780
## .zshrc Prompt
@@ -71,7 +84,9 @@ Now that we have that stuff out of the way, we can get to working on our prompt!
7184
PROMPT=$'%F{%(#.blue.green)}┌──${debian_chroot:+($debian_chroot)─}${VIRTUAL_ENV:+($(basename $VIRTUAL_ENV))─}(%F{%(#.red.blue)}%* %b%F{%(#.blue.green)}| %F{%(#.red.blue)}%n@%m%b%F{%(#.blue.green)})-[%F{reset}%(6~.%-1~/…/%4~.%5~)%b%F{%(#.blue.green)}]\n└─%(#.%F{red}#.%F{blue}$)%b%F{reset} '
7285
```
7386
This line will make our prompt look like the following:
87+
7488
![Finished Prompt Image](/assets/images/prompt-finished.png)
89+
7590
I adapted this from Kali Linux's default prompt. If you are looking to customize this further, [this website](https://zsh.sourceforge.io/Doc/Release/Prompt-Expansion.html) describes the custom variables usable inside the PROMPT variable.
7691

7792
## Setting up eza
@@ -110,14 +125,18 @@ This will make `ls` actually run `eza --icons --color=always --group-directories
110125
### Installing Nerd Font Icons
111126

112127
If we were to try it now, we would see this:
128+
113129
![Image of ls output no icons](/assets/images/ls-output-no-icon.png)
130+
114131
What's up with all the icons!? They're not working! This is because we have not yet installed a font to allow these icons to appear correctly.
115132
We can download the font required [here](https://github.com/ryanoasis/nerd-fonts/releases/download/v3.4.0/NerdFontsSymbolsOnly.zip). Once this zip is downloaded, open it and install both .ttf files.
116133

117134
Note: If you are getting an error about not being able to read the font, you likely need to switch from a Wayland session to an x11 session. Do this by logging out, clicking the session type in the bottom left, and switching it to x11. After this, log back in and try again.
118135

119136
Now let's try it again.
137+
120138
![Image of ls output with icons](/assets/images/ls-output-with-icon.png)
139+
121140
It works!
122141

123142
### Changing eza color output
@@ -130,13 +149,17 @@ export LS_COLORS
130149
If you want to change these colors around, I recommend looking [here](https://gist.github.com/thomd/7667642). This post does not mention it, but you can also change color per file extension. For example: `*.py=93` changes .py files to an unbolded yellow color. This color scheming was grabbed from Kali linux and then edited.
131150

132151
After these changes, our `ls` should look like so:
152+
133153
![Image of unbolded ls](/assets/images/ls-output-unbolded.png)
154+
134155
Looks great! Except for some of the symbols...
135156

136157
### Setting up eza config
137158

138159
If you look closely, you will notice that some symbols aren't exactly what you would expect. For example, let's look at the symbols for .zip and other compressed file formats.
160+
139161
![Image of wrong icon for compressed files](/assets/images/ls-zip-icon-before.png)
162+
140163
I believe this issue is caused due to the [seen icon](https://unicodes.jessetane.com/%EF%90%90) having the same Unicode code as the default zip icon used by eza. I also had issues with .jar files showing an eight-ball icon, but I did not have the same issue when recreating these steps in a virtual machine.
141164

142165
First, we have to make the eza config:
@@ -168,4 +191,5 @@ If you would like to customize these icons, I recognize reading [this](https://g
168191

169192
## Results
170193
That wraps it up! We should now have a terminal that looks like the following:
194+
171195
![Completed Terminal](/assets/images/finished-terminal-output.png)

0 commit comments

Comments
 (0)