openSUSE 13.2/13.1 KDE 安装后设置

请先参考这篇文章:FEDORA 20 KDE安装后的操作

设置网络连接:
YaST 控制中心 -> 网络设置 -> 全局选项 -> 由用户通过 NetworkManager 控制

添加 Packman 软件源:
YaST -> 软件源 -> 添加:http://packman.inode.at/suse/openSUSE_Tumbleweed/

解决终端文字加粗后显示不完整:
终端 -> 设置 -> 编辑当前方案 -> 外观 -> 取消勾选“用粗体绘制强调色”

通过 Live CD 安装的系统自带的语言包不全,会出现菜单和YaST为英文的情况,需要安装中文语言包:
sudo zypper install kde4-l10n-zh_CN bundle-lang-common-zh bundle-lang-gnome-zh bundle-lang-kde-zh translation-update-zh_CN man-pages-zh_CN desktop-translations

然后去 系统设置 -> Locale -> Languages 中移除并重新添加中文

再到 YaST控制中心 -> Languages 里将主要语言设置为 English(US),保存之后,再重新设置为中文简体,将会自动下载缺失的语言包和字体

设置离开时自动锁定屏幕:
系统设置 -> 显示和控制 -> 屏幕锁 -> 取消“自动启动前等待”
系统设置 -> 电源管理 -> 节能 -> 勾选“挂起会话”、选择“锁定屏幕”

openSUSE 13.2/13.1 安装 Apache PHP5 MariaDB/MySQL

安装编译工具:
sudo zypper update
sudo zypper install gcc gcc-c++ make

安装Apache:
sudo zypper in apache2
sudo systemctl start apache2.service
sudo systemctl enable apache2.service

设置默认文档路径:
sudo vi /etc/apache2/default-server.conf

创建测试页面:
cd /srv/www/htdocs
sudo vi index.html
输入:
hello world!
访问 http://localhost/ 查看

安装PHP:
sudo zypper in php5 php5-devel apache2-mod_php5

Enable mod-php:
sudo /usr/sbin/a2enmod php5

Enable mod-rewrite:
sudo /usr/sbin/a2enmod rewrite
要想支持 rewrite 还需要同时在 Apache 配置文件里设置:
Options +FollowSymLinks
AllowOverride all

创建测试页面:
cd /srv/www/htdocs
sudo vi index.php
输入:
<?php
phpinfo();
?>
访问 http://localhost/index.php 查看

设置PHP环境:
sudo vi /etc/php5/apache2/php.ini
date.timezone = PRC
display_errors = On

安装PHP模块:
sudo zypper in php5-bcmath php5-gd libjpeg8* php5-intl php5-ldap php5-mysql php5-mbstring php5-mcrypt php5-odbc php5-pdo php5-pear pcre-devel php5-soap php5-xmlrpc

安装 php-apc:
sudo pecl install apc
sudo vi /etc/php5/conf.d/apc.ini
添加:extension=apc.so

安装 php-memcache:
sudo pecl install memcache
sudo vi /etc/php5/conf.d/memcache.ini
添加:extension=memcache.so

安装 Xdebug:
源码下载地址 http://xdebug.org/download.php
解压
cd xdebug-2.2.4
phpize
./configure
make
sudo make install
sudo vi /etc/php5/conf.d/xdebug.ini
添加:
zend_extension=/usr/lib64/php5/extensions/xdebug.so
参考Fedora


安装MariaDB:
sudo zypper in mariadb mariadb-tools
sudo systemctl start mysql.service
sudo systemctl enable mysql.service
设置时区:
vi /etc/my.cnf 在 [mysqld] 节点添加:
default-time_zone = '+8:00'
设置密码:
mysqladmin -u root password NEWPASSWORD

安装MySQL:
(如果先安装了MariaDB并卸载之后再安装MySQL,有可能会提示升级失败,则需先导出全部数据,并删除旧版本数据:sudo rm -rf /var/lib/mysql/)
sudo zypper install mysql-community-server mysql-community-server-client mysql-community-server-errormessages
sudo systemctl start mysql
sudo mysql_secure_installation

安装Memcache:
sudo zypper install memcached
sudo systemctl start memcached.service
sudo systemctl enable memcached.service

openSUSE 13.1/13.2 安装 JDK 1.7

下载解压 JDK 7,给予 777 权限

使用 update-alternatives 管理多个JDK:
sudo zypper install update-alternatives
sudo /usr/sbin/update-alternatives --install /usr/bin/java java /home/li/jdk1.7.0/bin/java 1065
sudo /usr/sbin/update-alternatives --install /usr/bin/javac javac /home/li/jdk1.7.0/bin/javac 1065
sudo /usr/sbin/update-alternatives --install /usr/bin/jar jar /home/li/jdk1.7.0/bin/jar 1065
sudo /usr/sbin/update-alternatives --install /usr/bin/javaws javaws /home/li/jdk1.7.0/bin/javaws 1065

设置默认JDK,输入数字进行选择:
sudo /usr/sbin/update-alternatives --config java
sudo /usr/sbin/update-alternatives --config javac

设置环境变量:
vi ~/.bashrc
在倒数第二行加入:
export JAVA_HOME=/home/li/jdk1.7.0

保存,然后执行:
source ~/.bashrc

Fedora 25/21/20 KDE安装后的操作

建议安装完毕后先不要联网,否则自动更新会非常慢,建议关闭自动更新,安装yum加速插件后使用手动更新:
系统设置 -> 软件管理 -> 设置 -> 检查更新:从不

Fedora 25 关闭自动更新:
sudo systemctl disable dnf-makecache.timer

设置触摸板轻触为点击事件:
系统设置 -> 输入设备 -> Touchpad -> Tapping:
One Finger means Left Button
Two Fingers means Right Button

设置网络设备自动连接:
桌面右下角网络连接图标 -> 扳手图标 -> Edit Connection -> General -> 如果可用则自动连接

添加中文语言:
sudo yum install kde-i18n-Chinese kde-l10n-Chinese
遇到 yumBackend.py 锁定yum则等待或者杀掉 yumBackend.py 进程
系统设置 -> Locale -> Languages -> 选择中文添加

使用经典菜单风格:
在桌面左下角的Fedora图标上点右键 -> 切换为经典菜单风格

解决终端光标偏移问题:
终端 -> 设置 -> 编辑当前方案 -> 外观 -> 选择字体 -> Liberation Mono
之后再切换回 Monospace 好像也没问题了

解决终端文字加粗后显示不完整:
终端 -> 设置 -> 编辑当前方案 -> 外观 -> 取消勾选“用粗体绘制强调色”

设置用双击打开文件:
Dolphin -> 控制 -> 配置Dolphin -> 启动 -> 在地址栏中显示完整路径
Dolphin -> 控制 -> 配置Dolphin -> 导航 -> 双击打开文件和文件夹
Dolphin -> 控制 -> 配置Dolphin -> 常规 -> 行为 -> 为所有文件夹使用相同的视图属性
Dolphin -> 控制 -> 配置Dolphin -> 常规 -> 状态栏 -> 取消“显示缩放条”、勾选“显示空间信息”
在菜单栏点击“细节视图模式”
显示隐藏文件:
Dolphin -> 控制 -> 显示隐藏文件

KWrite 设置:
KWrite -> 设置 -> 配置编辑器 -> 外观 -> 通用 -> 动态文字换行
KWrite -> 设置 -> 配置编辑器 -> 外观 -> 边框 -> 显示行号

显示全部托盘图标:
在托盘区点右键 -> 系统托盘设置 -> 条目 -> 可见性:总是可见

显示日期:
在桌面右下角的时钟上点右键 -> 数字时钟设置 -> 外观 -> 日期格式:短日期
取消“显示阴影”,勾选“粗体”

关闭剪切板工具:
在桌面右下角剪刀图标点右键 -> 退出 -> 不自动启动

任务栏点右键 -> 任务管理器设置 -> 分组:“不分组”、排序:“不排序”

关闭蓝牙:
系统设置 -> 蓝牙 -> 取消“启用 KDE 蓝牙集成”

长时间不操作锁定屏幕:
系统设置 -> 电源管理 -> 勾选“挂起会话” -> 锁定屏幕
取消勾选“暗淡屏幕”

Fedora 20 有时会出现休眠后唤醒时屏幕无法点亮的问题,是因为屏幕亮度为0,可以将屏幕亮度增加脚本 middle.sh 存储到 home 目录下,然后在无法点亮时通过 Ctrl + Alt + F2 切换到命令行模式,然后执行此脚本,脚本内容请参考:
CentOS 7 手工调节屏幕亮度

磁盘分区管理器:
sudo yum install kde-partitionmanager

swift iOS 音频录制

网上找了好久,发现都不能用,最后找了一个用 Obj-C 写的能正常录制,参考了一下,用 swift 写了一个。
在 iPhone 4 + iOS 7.1 上测试通过,主要代码:

import UIKit
import AVFoundation

class ViewController: UIViewController, AVAudioRecorderDelegate {
    
    var recorder: AVAudioRecorder!
    var player: AVAudioPlayer!
    var session: AVAudioSession!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
        var paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
        
//====== 方法1
//        var fullPath = String(paths[0] as NSString) + "/sound.m4a"
//
//        var settings: Dictionary = [:]
//        settings["AVFormatIDKey"] = kAudioFormatMPEG4AAC
//        settings["AVSampleRateKey"] = 44100
//        settings["AVNumberOfChannelsKey"] = 2
//
//        recorder = AVAudioRecorder(URL: NSURL(fileURLWithPath: fullPath), settings: settings, error: nil)
//====== 方法1
        
//====== 方法2
        var fullPath = String(paths[0] as NSString) + "/sound.wav"
        recorder = AVAudioRecorder(URL: NSURL(fileURLWithPath: fullPath), settings: nil, error: nil)
//====== 方法2
        
        session = AVAudioSession.sharedInstance()
        session.setCategory("AVAudioSessionCategoryPlayAndRecord", error: nil)
        
        recorder.delegate = self
        recorder.meteringEnabled = true
        println("(recorder.prepareToRecord())")
    }
    
    @IBAction func startRecord(sender: AnyObject) {
        var session: AVAudioSession = AVAudioSession.sharedInstance()
        session.setActive(true, error: nil)
        println("(recorder.record())");
    }
    
    @IBAction func stopRecord(sender: AnyObject) {
        recorder.stop()
        println("stop")
    }
    
    @IBAction func play(sender: AnyObject) {
        player = AVAudioPlayer(contentsOfURL: recorder.url, error: nil)
        player.prepareToPlay()
        player.play()
        println("play")
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}