StatusBar의 텍스트 폰트 사라졌을 경우(Ubuntu 20.04)

|

Ubuntu 20.04를 사용하고 있는데, 컴퓨터를 오래 켜놓으면 갑자기 상단바의 텍스트들이 하나도 안 보이는 현상이 발생했습니다.

저 혼자만의 문제인가 했는데, 구글링해보니 같은 증상을 겪는 사람들이 있네요. 해결법은

글자가 사라졌을 때

Alt + F2 를 누르고, 출력되는 다이얼로그에 알파벳 R을 입력하고 엔터키로 창을 닫으면 문제가 해결됩니다.

iTerm2에서 한글 깨지는 경우

|

iTerm2

Linux에는 terminator가 있다면, MacOS에서는 iTerm2라는 막강한 터미널 프로그램이 있습니다.

그런데, 3.3.10 버전 이후로 아래 사진과 같이 한글이 깨져서 보여주는 현상이 발생하고 있습니다.

image

위 이미지에서 1 번째, 2 번째 디렉토리의 한글이 깨져서 보이는 것을 확인할 수 있습니다. 그런데, 3 번째 디렉토리는 정상으로 보이네요?

차이는 1 번째, 2 번째 디렉토리는 Finder에서 새로 생성한 디렉토리이고, 3 번째 디렉토리는 iTerm2에서 mkdir 명령어를 이용해서 만들었다는 차이가 있습니다.

즉, 단순히 폰트의 문제가 아닌 글자 자체, 유니코드 쪽의 설정이 다르다는 것을 의심할 수 있습니다.

해결책은 iTerm2Preference -> Text로 가서

image

Unicode normalization formNone에서 NFC로 변경합니다.

image

그 이후 다시 출력해보면 한글이 잘 출력되는 것을 알 수 있습니다.

오른 Command 버튼으로 한/영 전환 기능 사용하기

|

Big Sur 버전에서 Karabiner-Elements 오류

기존에는 Karabiner-Elements를 이용해서 오른 command 키를 이용해서 한/영 전환을 잘 했었는데, MacOS가 Big Sur 버전으로 업그레이드되고 나서 문제가 발생했습니다.

그래서 다음 방법은 아예 별도의 프로그램없이 사용하는 방법입니다.

mkdir -p /Users/Shared/bin
printf '%s\n' '#!/bin/sh' \
    'hidutil property --set '"'"'{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x7000000e7,"HIDKeyboardModifierMappingDst":0x70000006d}]}'"'" \
    >/Users/Shared/bin/userkeymapping
chmod 755 /Users/Shared/bin/userkeymapping
sudo cat<<: >/Users/Shared/bin/userkeymapping.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "
http://www.apple.com/DTDs/PropertyList-1.0.dtd
">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>userkeymapping</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/Shared/bin/userkeymapping</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>
:
sudo mv /Users/Shared/bin/userkeymapping.plist /Library/LaunchAgents/userkeymapping.plist
sudo chown root /Library/LaunchAgents/userkeymapping.plist
sudo launchctl load /Library/LaunchAgents/userkeymapping.plist

위 스크립트를 실행하고 나면, 오른 command 키가 F18로 대체됩니다.

그 이후 Setting -> Keyboard -> Shortcuts -> Input Source -> Select next source in input menu로 둘어가서 해당 키를 오른 command 키로 설정하면 됩니다.


기능 해제

만약 위 기능을 삭제하고 싶은 경우는,

sudo launchctl remove userkeymapping

명령어를 수행하면 됩니다.

MS Surface Pro 7에 Ubuntu 20.04 설치하기

|

MS Surface Pro 7에 Ubuntu 20.04를 설치하는 방법입니다. 이 글을 포스팅하는 시점에 Ubuntu 최신 버전은 20.10인데, 여기서는 그냥 20.04 LTS 버전으로 설치합니다. (어차피 20.10 버전도 같은 방법입니다.)

Surface Pro 윈도우에서 할 일

먼저 암호화 시스템인 BitLocker를 해제합니다. 기본 세팅으로 SSD 전체에 BitLocker가 걸려 있더군요. 탐색기 등에서 C 드라이브를 선택한다음 마우스 오른 버튼을 이용한 팝업에서 ‘BitLocker 관리’를 선택합니다. 그 다음 ‘BitLocker 끄기’를 선택하면 됩니다. 경우에 따라서는 BitLocker 프로그램을 설치하는 작업을 거칠 수도 있습니다.


파티션 나누기

저는 윈도우즈 상에서 하드 디스크 파티션 만들기 및 포맷 기능을 이용해서 파티션을 나누었습니다. 256GB SSD라 적당히 100GB 및 나머지 용량으로 나누었습니다. 이 화면에서도 BitLocker가 정상적으로 적용/해제되었는지 여부를 확인할 수도 있습니다.


Ubuntu 부팅 디스크 만들기

이 부분은 생략합니다. 우분투 이미지 다운로드는 여기에서 할 수 있습니다. USB 디스크에 부팅 디스크 옵션으로 만들면 됩니다.


UEFI 해제

UEFI 옵션은 Surface Pro에 Windows가 아닌 다른 OS가 설치되었을 경우 해당 부팅되지 않도록 해주는 보안 옵션입니다. 우리는 Ubuntu를 사용할 것이기 때문에 UEFI 옵션을 해제시켜줍니다.

BIOS에서 해제할 수 있는데, 들어가는 방법은 Surface Pro 전원이 꺼진 상태에서 전원 + Volume Up 키를 오래동안 누르고 있으면 됩니다.


Ubuntu 설치

이제 USB로 부팅을 하기 위해서 전원 + Volume Down 카를 이용해서 전원을 넣습니다. USB로 부팅한 다음 Ubuntu 설치 방법은 특별하지 않습니다. 기존에 Ubuntu 설치하듯이 하시면 됩니다.


Surface에 Ubuntu를 설치했을 때 발생하는 문제점 해결하기

Surface Pro에 Ubuntu를 설치했을 때 남은 배터리 잔량이 표시안되거나 터치 스크린이 안되는 문제, 재부팅시 Freeze 되는 현상 등이 있습니다. (Surface Pro 7 가준)

다음 방법을 통해 해결할 수 있습니다.


배터리 잔량 표시

커널을 Surface 용으로 설치하면 해결됩니다. 설치하는 방법은 다음과 같습니다.

wget -qO - https://raw.githubusercontent.com/linux-surface/linux-surface/master/pkg/keys/surface.asc \
    | sudo apt-key add -

echo "deb [arch=amd64] https://pkg.surfacelinux.com/debian release main" | sudo tee /etc/apt/sources.list.d/linux-surface.list

sudo apt-get update
sudo apt-get install linux-headers-surface linux-image-surface surface-ipts-firmware libwacom-surface iptsd

이와 같이 설치한다음 재부팅을 하면 새로운 커널을 이용해서 부팅을 하면 됩니다. 새로운 커널 확인은 uname -a 명령어를 이용해서 확인할 수 있습니다. 현재 Surface 커널 최신 버전은 5.9입니다.


Touch 스크린 활성화

위에서 커널을 새로 설치한 다음 systemctl start iptsd.service 명령을 수행하면 터치 스크린이 활성화됩니다. 만약 재부팅 후에도 서비스를 계속 활성화하고 싶으면 sudo systemctl enable iptsd.service 명령어를 실행하면 됩니다.

현재는 멀티 터치는 지원하지 않고 싱글 터치만 지원합니다.


Reboot 시 Freeze 되는 현상 수정

Boot Parameterreboot=pci를 추가하면 됩니다. Boot Parameter는 다음 방법을 이용해서 수정할 수 있습니다.

sudo code /etc/default/grub

그 이후 GRUB_CMDLINE_LINUX_DEFAULT 변수에 reboot=pci룰 추가하고 저장을 합니다. 아래 명령어를 이용해서 GRUB에 반영을 해줘야 합니다.

sudo update-grub


GRUB 해상도 조절

윈도우와 멀티 부팅으로 했을 경우 부팅 OS를 선택하는 화면인 GRUB 화면의 해상도가 너무 높아서 글씨가 아주 작게 나옵니다. 이를 해결하기 위해서 다음과 같은 작업을 해줍니다.

sudo nano /etc/default/grub

여기에 GRUB_GFXMODE=640x480 옵션을 추가해줍니다. (기본적으로 주석으로 존재하고 있습니다. 주석을 제거해줘도 됩니다.)

수정 후 다음 명령어를 이용해서 GRUB에 반영을 해줍니다.

sudo update-grub

sudo reboot

Flutter 설치 방법(Ubuntu)

|

Flutter 설치 방법

Flutter를 Ubuntu에 설치 하는 방법입니다.

sudo snap install flutter --classic

또는


Linux Desktop App 지원

flutter channel dev
flutter upgrade
flutter config --enable-linux-desktop
flutter devices